diff -Nru codelite-8.0.1+dfsg2/abbreviation/abbreviation.cpp codelite-9.0+dfsg/abbreviation/abbreviation.cpp --- codelite-8.0.1+dfsg2/abbreviation/abbreviation.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/abbreviation/abbreviation.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -229,7 +229,7 @@ { // get the active editor IEditor* editor = m_mgr->GetActiveEditor(); - if(!editor || !abbreviation.IsEmpty()) return false; + if(!editor || abbreviation.IsEmpty()) return false; // search for abbreviation that matches str // prepate list of abbreviations diff -Nru codelite-8.0.1+dfsg2/abbreviation/abbreviationssettingsbase_abbreviation_bitmaps.cpp codelite-9.0+dfsg/abbreviation/abbreviationssettingsbase_abbreviation_bitmaps.cpp --- codelite-8.0.1+dfsg2/abbreviation/abbreviationssettingsbase_abbreviation_bitmaps.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/abbreviation/abbreviationssettingsbase_abbreviation_bitmaps.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,148 +1,122 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2014 The CodeLite Team -// file name : abbreviationssettingsbase_abbreviation_bitmaps.cpp -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - -// -// This file was automatically generated by wxrc, do not edit by hand. -// - -#include - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#include -#include -#include -#include - -#if wxCHECK_VERSION(2,8,5) && wxABI_VERSION >= 20805 - #define XRC_ADD_FILE(name, data, size, mime) \ - wxMemoryFSHandler::AddFileWithMimeType(name, data, size, mime) -#else - #define XRC_ADD_FILE(name, data, size, mime) \ - wxMemoryFSHandler::AddFile(name, data, size) -#endif - -static size_t xml_res_size_0 = 141; -static unsigned char xml_res_file_0[] = { -137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, -0,31,243,255,97,0,0,0,6,98,75,71,68,0,255,0,255,0,255,160,189,167,147,0, -0,0,66,73,68,65,84,56,141,99,96,160,49,216,207,192,192,176,151,18,3,254, -67,49,78,192,68,137,233,195,204,128,253,12,136,0,67,198,48,128,77,110,47, -178,1,44,100,88,78,148,158,209,104,36,2,16,10,201,35,12,12,12,255,40,181, -4,47,0,0,24,93,18,205,125,76,220,139,0,0,0,0,73,69,78,68,174,66,96,130}; - -static size_t xml_res_size_1 = 200; -static unsigned char xml_res_file_1[] = { -137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, -0,31,243,255,97,0,0,0,6,98,75,71,68,0,255,0,255,0,255,160,189,167,147,0, -0,0,125,73,68,65,84,56,141,99,100,192,4,69,12,12,12,150,88,196,25,24,24, -24,142,51,48,48,244,225,144,131,131,213,164,200,49,34,9,170,49,48,48,8, -49,48,48,8,19,176,224,45,3,3,195,59,6,6,134,91,164,216,140,83,45,19,14, -5,170,80,90,24,234,42,100,49,20,128,203,128,86,40,237,196,192,192,224,140, -38,70,148,1,68,131,81,3,6,131,1,44,56,196,119,64,233,59,12,12,12,255,209, -196,112,2,178,146,50,186,11,72,49,132,129,129,129,129,1,0,177,220,15,190, -254,47,47,78,0,0,0,0,73,69,78,68,174,66,96,130}; - -static size_t xml_res_size_2 = 220; -static unsigned char xml_res_file_2[] = { -137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, -0,31,243,255,97,0,0,0,163,73,68,65,84,120,218,99,100,160,16,48,18,144,79, -0,226,249,248,244,19,50,128,144,33,68,25,0,2,251,129,216,1,151,1,246,64, -124,0,139,228,6,32,78,4,226,126,168,43,112,186,224,63,22,137,15,64,28,8, -196,241,120,52,99,24,0,114,226,65,40,91,0,234,108,3,44,154,22,32,25,138, -98,0,35,17,154,19,145,12,152,143,203,128,0,32,94,143,71,51,3,146,186,13, -216,12,96,96,192,140,186,68,40,253,0,61,192,113,25,128,108,72,34,52,80, -215,99,83,135,207,0,116,240,159,28,3,20,160,206,38,202,0,7,6,68,52,162, -3,228,196,134,211,0,98,1,134,1,184,146,50,54,128,225,74,0,122,115,40,17, -243,122,245,2,0,0,0,0,73,69,78,68,174,66,96,130}; - -static size_t xml_res_size_3 = 199; -static unsigned char xml_res_file_3[] = { -137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, -0,31,243,255,97,0,0,0,142,73,68,65,84,120,218,99,100,32,29,36,0,241,124, -32,78,4,226,5,140,100,106,134,129,68,70,2,138,23,224,209,12,6,248,12,248, -15,53,32,17,151,102,152,23,236,129,248,0,22,131,255,67,217,32,57,7,108, -154,97,94,248,143,69,18,151,56,138,102,116,133,32,91,14,162,121,1,175,102, -116,3,208,195,3,155,1,15,128,88,17,151,83,137,49,128,98,23,192,192,4,32, -46,36,100,0,81,128,20,3,176,170,35,100,128,2,52,224,136,50,192,129,1,53, -26,145,1,114,98,195,105,0,41,222,70,225,96,75,202,184,0,134,43,1,25,250, -41,15,126,74,75,185,0,0,0,0,73,69,78,68,174,66,96,130}; - -static size_t xml_res_size_4 = 621; -static unsigned char xml_res_file_4[] = { -60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, -110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, -115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, -47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, -47,119,120,120,114,99,34,32,118,101,114,115,105,111,110,61,34,50,46,51, -46,48,46,49,34,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, -61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,97,98,98, -45,97,100,100,34,62,97,98,98,114,101,118,105,97,116,105,111,110,115,115, -101,116,116,105,110,103,115,98,97,115,101,95,97,98,98,114,101,118,105,97, -116,105,111,110,95,98,105,116,109,97,112,115,46,99,112,112,36,105,109,97, -103,101,115,95,97,98,98,45,97,100,100,46,112,110,103,60,47,111,98,106,101, -99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34, -119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,97,98,98,45,100, -101,108,101,116,101,34,62,97,98,98,114,101,118,105,97,116,105,111,110,115, -115,101,116,116,105,110,103,115,98,97,115,101,95,97,98,98,114,101,118,105, -97,116,105,111,110,95,98,105,116,109,97,112,115,46,99,112,112,36,105,109, -97,103,101,115,95,97,98,98,45,100,101,108,101,116,101,46,112,110,103,60, -47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108, -97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61, -34,97,98,98,45,101,120,112,111,114,116,34,62,97,98,98,114,101,118,105,97, -116,105,111,110,115,115,101,116,116,105,110,103,115,98,97,115,101,95,97, -98,98,114,101,118,105,97,116,105,111,110,95,98,105,116,109,97,112,115,46, -99,112,112,36,105,109,97,103,101,115,95,97,98,98,45,101,120,112,111,114, -116,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106, -101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34, -32,110,97,109,101,61,34,97,98,98,45,105,109,112,111,114,116,34,62,97,98, -98,114,101,118,105,97,116,105,111,110,115,115,101,116,116,105,110,103,115, -98,97,115,101,95,97,98,98,114,101,118,105,97,116,105,111,110,95,98,105, -116,109,97,112,115,46,99,112,112,36,105,109,97,103,101,115,95,97,98,98, -45,105,109,112,111,114,116,46,112,110,103,60,47,111,98,106,101,99,116,62, -10,60,47,114,101,115,111,117,114,99,101,62,10}; - -void wxC94E5InitBitmapResources() -{ - - // Check for memory FS. If not present, load the handler: - { - wxMemoryFSHandler::AddFile(wxT("XRC_resource/dummy_file"), wxT("dummy one")); - wxFileSystem fsys; - wxFSFile *f = fsys.OpenFile(wxT("memory:XRC_resource/dummy_file")); - wxMemoryFSHandler::RemoveFile(wxT("XRC_resource/dummy_file")); - if (f) delete f; - else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase); - } - - XRC_ADD_FILE(wxT("XRC_resource/abbreviationssettingsbase_abbreviation_bitmaps.cpp$images_abb-add.png"), xml_res_file_0, xml_res_size_0, wxT("image/x-apple-ios-png")); - XRC_ADD_FILE(wxT("XRC_resource/abbreviationssettingsbase_abbreviation_bitmaps.cpp$images_abb-delete.png"), xml_res_file_1, xml_res_size_1, wxT("image/x-apple-ios-png")); - XRC_ADD_FILE(wxT("XRC_resource/abbreviationssettingsbase_abbreviation_bitmaps.cpp$images_abb-export.png"), xml_res_file_2, xml_res_size_2, wxT("image/x-apple-ios-png")); - XRC_ADD_FILE(wxT("XRC_resource/abbreviationssettingsbase_abbreviation_bitmaps.cpp$images_abb-import.png"), xml_res_file_3, xml_res_size_3, wxT("image/x-apple-ios-png")); - XRC_ADD_FILE(wxT("XRC_resource/abbreviationssettingsbase_abbreviation_bitmaps.cpp$_home_eran_devl_codelite_abbreviation_abbreviationssettingsbase_abbreviation_bitmaps.xrc"), xml_res_file_4, xml_res_size_4, wxT("text/xml")); - wxXmlResource::Get()->Load(wxT("memory:XRC_resource/abbreviationssettingsbase_abbreviation_bitmaps.cpp$_home_eran_devl_codelite_abbreviation_abbreviationssettingsbase_abbreviation_bitmaps.xrc")); -} +// +// This file was automatically generated by wxrc, do not edit by hand. +// + +#include + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +#include +#include +#include +#include + +#if wxCHECK_VERSION(2,8,5) && wxABI_VERSION >= 20805 + #define XRC_ADD_FILE(name, data, size, mime) \ + wxMemoryFSHandler::AddFileWithMimeType(name, data, size, mime) +#else + #define XRC_ADD_FILE(name, data, size, mime) \ + wxMemoryFSHandler::AddFile(name, data, size) +#endif + +static size_t xml_res_size_0 = 141; +static unsigned char xml_res_file_0[] = { +137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, +0,31,243,255,97,0,0,0,6,98,75,71,68,0,255,0,255,0,255,160,189,167,147,0, +0,0,66,73,68,65,84,56,141,99,96,160,49,216,207,192,192,176,151,18,3,254, +67,49,78,192,68,137,233,195,204,128,253,12,136,0,67,198,48,128,77,110,47, +178,1,44,100,88,78,148,158,209,104,36,2,16,10,201,35,12,12,12,255,40,181, +4,47,0,0,24,93,18,205,125,76,220,139,0,0,0,0,73,69,78,68,174,66,96,130}; + +static size_t xml_res_size_1 = 200; +static unsigned char xml_res_file_1[] = { +137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, +0,31,243,255,97,0,0,0,6,98,75,71,68,0,255,0,255,0,255,160,189,167,147,0, +0,0,125,73,68,65,84,56,141,99,100,192,4,69,12,12,12,150,88,196,25,24,24, +24,142,51,48,48,244,225,144,131,131,213,164,200,49,34,9,170,49,48,48,8, +49,48,48,8,19,176,224,45,3,3,195,59,6,6,134,91,164,216,140,83,45,19,14, +5,170,80,90,24,234,42,100,49,20,128,203,128,86,40,237,196,192,192,224,140, +38,70,148,1,68,131,81,3,6,131,1,44,56,196,119,64,233,59,12,12,12,255,209, +196,112,2,178,146,50,186,11,72,49,132,129,129,129,129,1,0,177,220,15,190, +254,47,47,78,0,0,0,0,73,69,78,68,174,66,96,130}; + +static size_t xml_res_size_2 = 220; +static unsigned char xml_res_file_2[] = { +137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, +0,31,243,255,97,0,0,0,163,73,68,65,84,120,218,99,100,160,16,48,18,144,79, +0,226,249,248,244,19,50,128,144,33,68,25,0,2,251,129,216,1,151,1,246,64, +124,0,139,228,6,32,78,4,226,126,168,43,112,186,224,63,22,137,15,64,28,8, +196,241,120,52,99,24,0,114,226,65,40,91,0,234,108,3,44,154,22,32,25,138, +98,0,35,17,154,19,145,12,152,143,203,128,0,32,94,143,71,51,3,146,186,13, +216,12,96,96,192,140,186,68,40,253,0,61,192,113,25,128,108,72,34,52,80, +215,99,83,135,207,0,116,240,159,28,3,20,160,206,38,202,0,7,6,68,52,162, +3,228,196,134,211,0,98,1,134,1,184,146,50,54,128,225,74,0,122,115,40,17, +243,122,245,2,0,0,0,0,73,69,78,68,174,66,96,130}; + +static size_t xml_res_size_3 = 199; +static unsigned char xml_res_file_3[] = { +137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, +0,31,243,255,97,0,0,0,142,73,68,65,84,120,218,99,100,32,29,36,0,241,124, +32,78,4,226,5,140,100,106,134,129,68,70,2,138,23,224,209,12,6,248,12,248, +15,53,32,17,151,102,152,23,236,129,248,0,22,131,255,67,217,32,57,7,108, +154,97,94,248,143,69,18,151,56,138,102,116,133,32,91,14,162,121,1,175,102, +116,3,208,195,3,155,1,15,128,88,17,151,83,137,49,128,98,23,192,192,4,32, +46,36,100,0,81,128,20,3,176,170,35,100,128,2,52,224,136,50,192,129,1,53, +26,145,1,114,98,195,105,0,41,222,70,225,96,75,202,184,0,134,43,1,25,250, +41,15,126,74,75,185,0,0,0,0,73,69,78,68,174,66,96,130}; + +static size_t xml_res_size_4 = 603; +static unsigned char xml_res_file_4[] = { +60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, +110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, +115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, +47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, +47,119,120,120,114,99,34,62,10,32,32,60,111,98,106,101,99,116,32,99,108, +97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61, +34,97,98,98,45,97,100,100,34,62,97,98,98,114,101,118,105,97,116,105,111, +110,115,115,101,116,116,105,110,103,115,98,97,115,101,95,97,98,98,114,101, +118,105,97,116,105,111,110,95,98,105,116,109,97,112,115,46,99,112,112,36, +105,109,97,103,101,115,95,97,98,98,45,97,100,100,46,112,110,103,60,47,111, +98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115, +115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,97,98, +98,45,100,101,108,101,116,101,34,62,97,98,98,114,101,118,105,97,116,105, +111,110,115,115,101,116,116,105,110,103,115,98,97,115,101,95,97,98,98,114, +101,118,105,97,116,105,111,110,95,98,105,116,109,97,112,115,46,99,112,112, +36,105,109,97,103,101,115,95,97,98,98,45,100,101,108,101,116,101,46,112, +110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116, +32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109, +101,61,34,97,98,98,45,101,120,112,111,114,116,34,62,97,98,98,114,101,118, +105,97,116,105,111,110,115,115,101,116,116,105,110,103,115,98,97,115,101, +95,97,98,98,114,101,118,105,97,116,105,111,110,95,98,105,116,109,97,112, +115,46,99,112,112,36,105,109,97,103,101,115,95,97,98,98,45,101,120,112, +111,114,116,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111, +98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97, +112,34,32,110,97,109,101,61,34,97,98,98,45,105,109,112,111,114,116,34,62, +97,98,98,114,101,118,105,97,116,105,111,110,115,115,101,116,116,105,110, +103,115,98,97,115,101,95,97,98,98,114,101,118,105,97,116,105,111,110,95, +98,105,116,109,97,112,115,46,99,112,112,36,105,109,97,103,101,115,95,97, +98,98,45,105,109,112,111,114,116,46,112,110,103,60,47,111,98,106,101,99, +116,62,10,60,47,114,101,115,111,117,114,99,101,62,10}; + +void wxC94E5InitBitmapResources() +{ + + // Check for memory FS. If not present, load the handler: + { + wxMemoryFSHandler::AddFile(wxT("XRC_resource/dummy_file"), wxT("dummy one")); + wxFileSystem fsys; + wxFSFile *f = fsys.OpenFile(wxT("memory:XRC_resource/dummy_file")); + wxMemoryFSHandler::RemoveFile(wxT("XRC_resource/dummy_file")); + if (f) delete f; + else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase); + } + + XRC_ADD_FILE(wxT("XRC_resource/abbreviationssettingsbase_abbreviation_bitmaps.cpp$images_abb-add.png"), xml_res_file_0, xml_res_size_0, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/abbreviationssettingsbase_abbreviation_bitmaps.cpp$images_abb-delete.png"), xml_res_file_1, xml_res_size_1, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/abbreviationssettingsbase_abbreviation_bitmaps.cpp$images_abb-export.png"), xml_res_file_2, xml_res_size_2, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/abbreviationssettingsbase_abbreviation_bitmaps.cpp$images_abb-import.png"), xml_res_file_3, xml_res_size_3, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/abbreviationssettingsbase_abbreviation_bitmaps.cpp$C__src_codelite_abbreviation_abbreviationssettingsbase_abbreviation_bitmaps.xrc"), xml_res_file_4, xml_res_size_4, wxT("text/xml")); + wxXmlResource::Get()->Load(wxT("memory:XRC_resource/abbreviationssettingsbase_abbreviation_bitmaps.cpp$C__src_codelite_abbreviation_abbreviationssettingsbase_abbreviation_bitmaps.xrc")); +} diff -Nru codelite-8.0.1+dfsg2/abbreviation/abbreviationssettingsbase.cpp codelite-9.0+dfsg/abbreviation/abbreviationssettingsbase.cpp --- codelite-8.0.1+dfsg2/abbreviation/abbreviationssettingsbase.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/abbreviation/abbreviationssettingsbase.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -75,7 +75,7 @@ m_staticText1 = new wxStaticText(this, wxID_ANY, _("Name:"), wxDefaultPosition, wxSize(-1, -1), 0); - bSizer5->Add(m_staticText1, 0, wxALL|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5); + bSizer5->Add(m_staticText1, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5); m_textCtrlName = new wxTextCtrl(this, wxID_ANY, wxT(""), wxDefaultPosition, wxSize(-1, -1), 0); #if wxVERSION_NUMBER >= 3000 @@ -163,11 +163,19 @@ m_stdBtnSizer24->AddButton(m_buttonHelp); m_stdBtnSizer24->Realize(); + SetName(wxT("AbbreviationsSettingsBase")); SetSizeHints(-1,-1); if ( GetSizer() ) { GetSizer()->Fit(this); } - Centre(wxBOTH); + CentreOnParent(wxBOTH); +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(this)) { + wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); + } +#endif // Connect events this->Connect(ID_TOOL_NEW, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler(AbbreviationsSettingsBase::OnNew), NULL, this); this->Connect(ID_TOOL_DELETE, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(AbbreviationsSettingsBase::OnDeleteUI), NULL, this); diff -Nru codelite-8.0.1+dfsg2/abbreviation/abbreviationssettingsbase.h codelite-9.0+dfsg/abbreviation/abbreviationssettingsbase.h --- codelite-8.0.1+dfsg2/abbreviation/abbreviationssettingsbase.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/abbreviation/abbreviationssettingsbase.h 2015-10-11 13:56:07.000000000 +0000 @@ -4,8 +4,8 @@ // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// -#ifndef ABBREVIATIONSSETTINGSBASE_BASE_CLASSES_H -#define ABBREVIATIONSSETTINGSBASE_BASE_CLASSES_H +#ifndef CODELITE_ABBREVIATION_ABBREVIATIONSSETTINGSBASE_BASE_CLASSES_H +#define CODELITE_ABBREVIATION_ABBREVIATIONSSETTINGSBASE_BASE_CLASSES_H #include #include @@ -27,6 +27,12 @@ #include #include #include +#if wxVERSION_NUMBER >= 2900 +#include +#include +#include +#include +#endif class AbbreviationsSettingsBase : public wxDialog { @@ -65,6 +71,14 @@ virtual void OnHelp(wxCommandEvent& event) { event.Skip(); } public: + wxBannerWindow* GetBanner4() { return m_banner4; } + wxAuiToolBar* GetAuibar9() { return m_auibar9; } + wxListBox* GetListBoxAbbreviations() { return m_listBoxAbbreviations; } + wxStaticText* GetStaticText1() { return m_staticText1; } + wxTextCtrl* GetTextCtrlName() { return m_textCtrlName; } + wxStyledTextCtrl* GetStc() { return m_stc; } + wxCheckBox* GetCheckBoxImmediateInsert() { return m_checkBoxImmediateInsert; } + wxStaticLine* GetStaticline1() { return m_staticline1; } AbbreviationsSettingsBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Abbreviations Settings..."), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER); virtual ~AbbreviationsSettingsBase(); }; diff -Nru codelite-8.0.1+dfsg2/abbreviation/abbreviationssettingsbase.wxcp codelite-9.0+dfsg/abbreviation/abbreviationssettingsbase.wxcp --- codelite-8.0.1+dfsg2/abbreviation/abbreviationssettingsbase.wxcp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/abbreviation/abbreviationssettingsbase.wxcp 2015-10-11 13:56:07.000000000 +0000 @@ -72,6 +72,10 @@ "m_label": "Style:", "m_value": "" }, { + "type": "bool", + "m_label": "Enable Window Persistency:", + "m_value": true + }, { "type": "string", "m_label": "Title:", "m_value": "Abbreviations Settings..." @@ -128,6 +132,10 @@ "m_sizerFlags": [], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "mainSizer" }, { @@ -525,6 +533,10 @@ "m_sizerFlags": ["wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "mainSizer_Inner" }, { @@ -548,6 +560,10 @@ "m_sizerFlags": ["wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer3" }, { @@ -653,6 +669,10 @@ "m_sizerFlags": ["wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer4" }, { @@ -676,6 +696,10 @@ "m_sizerFlags": ["wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer5" }, { @@ -696,7 +720,7 @@ "gbSpan": ",", "gbPosition": ",", "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT", "wxALIGN_CENTER_VERTICAL"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_VERTICAL"], "m_properties": [{ "type": "winid", "m_label": "ID:", diff -Nru codelite-8.0.1+dfsg2/abbreviation/CMakeLists.txt codelite-9.0+dfsg/abbreviation/CMakeLists.txt --- codelite-8.0.1+dfsg2/abbreviation/CMakeLists.txt 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/abbreviation/CMakeLists.txt 2015-10-11 13:56:07.000000000 +0000 @@ -26,11 +26,6 @@ add_definitions(-Winvalid-pch) endif ( USE_PCH ) -# Add RPATH -if (UNIX) -set (LINKER_OPTIONS -Wl,-rpath,"${PLUGINS_DIR}") -endif (UNIX) - if (UNIX AND NOT APPLE) set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC" ) set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC" ) @@ -52,8 +47,6 @@ ${wxWidgets_LIBRARIES} libcodelite plugin - wxsqlite3 - sqlite3lib ) # Installation destination CL_INSTALL_PLUGIN(${PLUGIN_NAME}) Binary files /tmp/0wlVVhsoFK/codelite-8.0.1+dfsg2/art/cl-splash.png and /tmp/qKeBoHmecl/codelite-9.0+dfsg/art/cl-splash.png differ Binary files /tmp/0wlVVhsoFK/codelite-8.0.1+dfsg2/art/cl-splash.xcf and /tmp/qKeBoHmecl/codelite-9.0+dfsg/art/cl-splash.xcf differ diff -Nru codelite-8.0.1+dfsg2/CallGraph/callgraph.cpp codelite-9.0+dfsg/CallGraph/callgraph.cpp --- codelite-8.0.1+dfsg2/CallGraph/callgraph.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/CallGraph/callgraph.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -402,7 +402,7 @@ if (!wxFileExists(GetGprofPath()) || !wxFileExists(GetDotPath())) return MessageBox(_T("Failed to locate required tools (gprof, dot). Please check the plugin settings."), wxICON_ERROR); - Workspace *ws = m_mgr->GetWorkspace(); + clCxxWorkspace *ws = m_mgr->GetWorkspace(); if (!ws) return MessageBox(_("Unable to get opened workspace."), wxICON_ERROR); wxFileName ws_cfn = ws->GetWorkspaceFileName(); diff -Nru codelite-8.0.1+dfsg2/CallGraph/CMakeLists.txt codelite-9.0+dfsg/CallGraph/CMakeLists.txt --- codelite-8.0.1+dfsg2/CallGraph/CMakeLists.txt 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/CallGraph/CMakeLists.txt 2015-10-11 13:56:07.000000000 +0000 @@ -26,12 +26,6 @@ add_definitions(-Winvalid-pch) endif ( USE_PCH ) - -# Add RPATH -if (UNIX) -set (LINKER_OPTIONS -Wl,-rpath,"${PLUGINS_DIR}") -endif (UNIX) - FILE(GLOB SRCS "*.cpp") if (UNIX AND NOT APPLE) @@ -48,7 +42,7 @@ # Remove the "lib" prefix from the plugin name set_target_properties(${PLUGIN_NAME} PROPERTIES PREFIX "") -target_link_libraries(${PLUGIN_NAME} ${LINKER_OPTIONS} ${wxWidgets_LIBRARIES} -L"${CL_LIBPATH}" -lwxsqlite3 -lsqlite3lib -llibcodelite -lplugin) +target_link_libraries(${PLUGIN_NAME} ${LINKER_OPTIONS} ${wxWidgets_LIBRARIES} -L"${CL_LIBPATH}" libcodelite plugin) # Make sure that the plugin will not start build before 'plugin.so' is ready add_dependencies(${PLUGIN_NAME} plugin) diff -Nru codelite-8.0.1+dfsg2/cmake/Modules/FindClang.cmake codelite-9.0+dfsg/cmake/Modules/FindClang.cmake --- codelite-8.0.1+dfsg2/cmake/Modules/FindClang.cmake 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/cmake/Modules/FindClang.cmake 2015-10-11 13:56:07.000000000 +0000 @@ -45,6 +45,7 @@ FIND_AND_ADD_CLANG_LIB(clangStaticAnalyzerCore) FIND_AND_ADD_CLANG_LIB(clangStaticAnalyzerFrontend) FIND_AND_ADD_CLANG_LIB(clangTooling) +FIND_AND_ADD_CLANG_LIB(clangToolingCore) find_path(CLANG_INCLUDE_DIRS clang/Basic/Version.h HINTS ${LLVM_INCLUDE_DIRS}) diff -Nru codelite-8.0.1+dfsg2/cmake/Modules/FindLibClang.cmake codelite-9.0+dfsg/cmake/Modules/FindLibClang.cmake --- codelite-8.0.1+dfsg2/cmake/Modules/FindLibClang.cmake 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/cmake/Modules/FindLibClang.cmake 2015-10-11 13:56:07.000000000 +0000 @@ -5,21 +5,27 @@ HINTS /usr/lib /usr/local/lib + /usr/lib/llvm-3.8/lib + /usr/lib/llvm-3.7/lib /usr/lib/llvm-3.6/lib /usr/lib/llvm-3.5/lib /usr/lib/llvm-3.4/lib /usr/lib/llvm-3.3/lib # For fedora - /usr/lib32/llvm + /usr/lib/llvm /usr/lib64/llvm ${CMAKE_INSTALL_LIBDIR}) find_path(LIBCLANG_INCLUDE_T NAMES clang-c/Index.h HINTS + /usr/lib/llvm-3.8/include + /usr/lib/llvm-3.7/include /usr/lib/llvm-3.6/include /usr/lib/llvm-3.5/include /usr/lib/llvm-3.4/include /usr/lib/llvm-3.3/include + /usr/include/llvm-3.8 + /usr/include/llvm-3.7 /usr/include/llvm-3.6 /usr/include/llvm-3.5 /usr/include/llvm-3.4 diff -Nru codelite-8.0.1+dfsg2/cmake/Modules/FindLibLLDB.cmake codelite-9.0+dfsg/cmake/Modules/FindLibLLDB.cmake --- codelite-8.0.1+dfsg2/cmake/Modules/FindLibLLDB.cmake 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/cmake/Modules/FindLibLLDB.cmake 2015-10-11 13:56:07.000000000 +0000 @@ -6,21 +6,27 @@ HINTS /usr/lib /usr/local/lib + /usr/lib/llvm-3.8/lib + #/usr/lib/llvm-3.7/lib /usr/lib/llvm-3.6/lib /usr/lib/llvm-3.5/lib /usr/lib/llvm-3.4/lib /usr/lib/llvm-3.3/lib # For fedora - /usr/lib32/llvm + /usr/lib/llvm /usr/lib64/llvm ${CMAKE_INSTALL_LIBDIR}) find_path(LIBLLDB_INCLUDE_T NAMES lldb/API/SBDebugger.h HINTS + /usr/lib/llvm-3.8/include + #/usr/lib/llvm-3.7/include /usr/lib/llvm-3.6/include /usr/lib/llvm-3.5/include /usr/lib/llvm-3.4/include /usr/lib/llvm-3.3/include + /usr/include/llvm-3.8 + #/usr/include/llvm-3.7 /usr/include/llvm-3.6 /usr/include/llvm-3.5 /usr/include/llvm-3.4 diff -Nru codelite-8.0.1+dfsg2/cmake/Modules/FindSqlite3.cmake codelite-9.0+dfsg/cmake/Modules/FindSqlite3.cmake --- codelite-8.0.1+dfsg2/cmake/Modules/FindSqlite3.cmake 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/cmake/Modules/FindSqlite3.cmake 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,26 @@ +if(UNIX AND NOT APPLE) + find_library(SQLITE3_LIBRARY + NAMES libsqlite3.so + HINTS + /usr/local/lib + /usr/lib + /usr/lib/x86_64-linux-gnu + ) + + find_path(SQLITE3_INCLUDE_DIR NAMES sqlite3.h + HINTS + /usr/local/include + /usr/include + /usr/include/sqlite3 + ) + if (SQLITE3_INCLUDE_DIR AND SQLITE3_LIBRARY) + set(SQLITE3_FOUND TRUE) + endif() + + if(NOT SQLITE3_FOUND) + message(FATAL_ERROR " **** Could not find Sqlite3. Please install libsqlite3-dev package **** ") + else() + message("-- SQLITE3_INCLUDE_DIR: " ${SQLITE3_INCLUDE_DIR}) + message("-- SQLITE3_LIBRARY: " ${SQLITE3_LIBRARY}) + endif() +endif() diff -Nru codelite-8.0.1+dfsg2/cmake/Modules/plugin.cmake codelite-9.0+dfsg/cmake/Modules/plugin.cmake --- codelite-8.0.1+dfsg2/cmake/Modules/plugin.cmake 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/cmake/Modules/plugin.cmake 2015-10-11 13:56:07.000000000 +0000 @@ -50,9 +50,6 @@ add_definitions(-include "${CL_PCH_FILE}") add_definitions(-Winvalid-pch) endif ( USE_PCH ) - - # Add RPATH - set (LINKER_OPTIONS -Wl,-rpath,"${PLUGINS_DIR}") ## By default, use the sources under the current folder FILE(GLOB_RECURSE PLUGIN_SRCS "${CMAKE_CURRENT_LIST_DIR}/*.cpp" "${CMAKE_CURRENT_LIST_DIR}/*.c") diff -Nru codelite-8.0.1+dfsg2/CMakeLists.txt codelite-9.0+dfsg/CMakeLists.txt --- codelite-8.0.1+dfsg2/CMakeLists.txt 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/CMakeLists.txt 2015-10-11 13:56:07.000000000 +0000 @@ -29,7 +29,6 @@ ################################################################################################################################################################# set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/") -include(FindLibClang) ############################################# ## Defaults @@ -46,6 +45,14 @@ set( CL_SRC_ROOT ${CMAKE_CURRENT_SOURCE_DIR}) # which seems to be the same, at least in this situation endif() +include(FindLibClang) +include(FindSqlite3) + +if(NOT SQLITE3_FOUND) + set(SQLITE3_INCLUDE_DIR ${CL_SRC_ROOT}/sqlite3) + set(SQLITE3_LIBRARY "-lsqlite3lib") +endif() + set( USE_CLANG 1 ) set( IS_FREEBSD 0 ) set( BUILD_WXC 0 ) @@ -281,6 +288,23 @@ else () message("-- Building in Release mode") set ( DEBUG_BUILD 0 ) + set(CMAKE_INSTALL_DO_STRIP TRUE) + message("-- CMAKE_INSTALL_DO_STRIP is " ${CMAKE_INSTALL_DO_STRIP}) + if(UNIX AND NOT APPLE) + ## Avoid hardening-no-relro wrarning messages from lintian + if(EXISTS "/usr/bin/dpkg-buildflags") + execute_process(COMMAND /usr/bin/dpkg-buildflags --get CFLAGS OUTPUT_VARIABLE EXTRA_CFLAGS OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_QUIET) + execute_process(COMMAND /usr/bin/dpkg-buildflags --get CPPFLAGS OUTPUT_VARIABLE EXTRA_CPPFLAGS OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_QUIET) + execute_process(COMMAND /usr/bin/dpkg-buildflags --get CXXFLAGS OUTPUT_VARIABLE EXTRA_CXXFLAGS OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_QUIET) + execute_process(COMMAND /usr/bin/dpkg-buildflags --get LDFLAGS OUTPUT_VARIABLE EXTRA_LDFLAGS OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_QUIET) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CXXFLAGS}") + add_definitions(${EXTRA_CPPFLAGS}) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}") + set(LINKER_OPTIONS "${EXTRA_LDFLAGS}") + list(APPEND LINKER_OPTIONS "-s") ## strip binaries + endif() + endif() + set( CL_PCH_FILE "${CL_SRC_ROOT}/PCH/precompiled_header_release.h") set( CL_PCH_TARGET "precompiled_header_release.h.gch") add_custom_target(distclean COMMAND cd ${CL_SRC_ROOT}/PCH && $(MAKE) type=release clean ) @@ -357,13 +381,15 @@ set(CPACK_GENERATOR "DEB") set(CPACK_PACKAGE_NAME "CodeLite") - set(CPACK_PACKAGE_VERSION "8.0") - set(CPACK_DEBIAN_PACKAGE_MAINTAINER "Eran Ifrah ") #required - set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "codelite IDE for C/C++/PHP") + set(CPACK_PACKAGE_VERSION "9.0.0") + set(CPACK_DEBIAN_PACKAGE_MAINTAINER "Eran Ifrah ") + set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "C/C++/PHP and Node.js IDE (Integrated Development Environment)") set(CPACK_DEBIAN_PACKAGE_SECTION "devel") set(CPACK_DEBIAN_PACKAGE_PRIORITY "optional") - set(CPACK_DEBIAN_PACKAGE_RECOMMENDS "build-essential, git, subversion, gdb, xterm") - set(CPACK_DEBIAN_PACKAGE_DEPENDS "libgtk2.0-dev, libssh-dev, libedit-dev, libhunspell-dev, libclang-3.5-dev, clang-format-3.5, liblldb-3.5-dev") + set(CPACK_DEBIAN_PACKAGE_RECOMMENDS "build-essential, git, subversion, gdb, xterm, gcc, g++") + set(CPACK_DEBIAN_PACKAGE_DEPENDS "libc6, libgtk2.0-dev, libsqlite3-dev, libssh-dev, libedit-dev, libhunspell-dev, libclang-3.5-dev, clang-format-3.5, liblldb-3.5-dev") + set(CPACK_PACKAGE_DESCRIPTION_FILE "${CL_SRC_ROOT}/DESC") + set(CPACK_STRIP_FILES TRUE) INCLUDE(CPack) endif( MAKE_DEB ) @@ -440,7 +466,7 @@ if (UNIX AND NOT APPLE) SET(CMAKE_INSTALL_RPATH ${PLUGINS_DIR}) SET(CMAKE_SKIP_BUILD_RPATH FALSE) - SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) + #SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) endif(UNIX AND NOT APPLE) if ( WITH_PCH ) @@ -459,7 +485,11 @@ add_definitions( -mmacosx-version-min=10.8 ) endif() -add_subdirectory(sqlite3) +if(APPLE) + # On Linux, we use the distro's libsqlite3 + add_subdirectory(sqlite3) +endif() + add_subdirectory(sdk/wxsqlite3) add_subdirectory(sdk/wxshapeframework) add_subdirectory(sdk/databaselayer) @@ -530,11 +560,13 @@ ## ## Setup the proper dependencies ## -if ( USE_PCH ) - add_dependencies(sqlite3lib ${CL_PCH_TARGET}) -endif ( USE_PCH ) +if(APPLE) + if ( USE_PCH ) + add_dependencies(sqlite3lib ${CL_PCH_TARGET}) + endif ( USE_PCH ) + add_dependencies(wxsqlite3 sqlite3lib) +endif() -add_dependencies(wxsqlite3 sqlite3lib) add_dependencies(databaselayersqlite wxsqlite3) add_dependencies(wxshapeframework wxsqlite3) add_dependencies(libcodelite wxshapeframework databaselayersqlite wxsqlite3) diff -Nru codelite-8.0.1+dfsg2/CMakePlugin/CMake.cpp codelite-9.0+dfsg/CMakePlugin/CMake.cpp --- codelite-8.0.1+dfsg2/CMakePlugin/CMake.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/CMakePlugin/CMake.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -49,6 +49,7 @@ // Declaration #include "CMake.h" +#include "cl_standard_paths.h" // C++ #include @@ -101,7 +102,7 @@ CMake::CMake(const wxFileName& path) : m_path(path) , m_version("?") - , m_dbFileName(wxStandardPaths::Get().GetUserDataDir(), "cmake.db") + , m_dbFileName(clStandardPaths::Get().GetUserDataDir(), "cmake.db") { // Prepare database PrepareDatabase(); diff -Nru codelite-8.0.1+dfsg2/CMakePlugin/CMakeGenerator.cpp codelite-9.0+dfsg/CMakePlugin/CMakeGenerator.cpp --- codelite-8.0.1+dfsg2/CMakePlugin/CMakeGenerator.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/CMakePlugin/CMakeGenerator.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -120,7 +120,7 @@ /* ************************************************************************ */ bool -CMakeGenerator::Generate(Workspace* workspace) +CMakeGenerator::Generate(clCxxWorkspace* workspace) { if ( !workspace ) return false; @@ -237,7 +237,7 @@ if ( topProject ) { wxArrayString depsProjects = project->GetDependencies( buildConf->GetName() ); for(size_t i=0; iGetProject( depsProjects.Item(i) ); + ProjectPtr pProj = clCxxWorkspaceST::Get()->GetProject( depsProjects.Item(i) ); if ( pProj ) { if ( Generate( pProj, false ) ) { wxString depProjFilePath = pProj->GetFileName().GetFullPath(); diff -Nru codelite-8.0.1+dfsg2/CMakePlugin/CMakeGenerator.h codelite-9.0+dfsg/CMakePlugin/CMakeGenerator.h --- codelite-8.0.1+dfsg2/CMakePlugin/CMakeGenerator.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/CMakePlugin/CMakeGenerator.h 2015-10-11 13:56:07.000000000 +0000 @@ -79,7 +79,7 @@ * * @param workspace Exported workspace. */ - static bool Generate(Workspace* workspace); + static bool Generate(clCxxWorkspace* workspace); /** diff -Nru codelite-8.0.1+dfsg2/CMakePlugin/CMakeLists.txt codelite-9.0+dfsg/CMakePlugin/CMakeLists.txt --- codelite-8.0.1+dfsg2/CMakePlugin/CMakeLists.txt 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/CMakePlugin/CMakeLists.txt 2015-10-11 13:56:07.000000000 +0000 @@ -38,11 +38,6 @@ add_definitions(-Winvalid-pch) endif (USE_PCH) -# Add RPATH -if (UNIX) -set (LINKER_OPTIONS -Wl,-rpath,"${PLUGINS_DIR}") -endif (UNIX) - if (UNIX AND NOT APPLE) set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC" ) set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC" ) @@ -65,8 +60,6 @@ ${wxWidgets_LIBRARIES} libcodelite plugin - wxsqlite3 - sqlite3lib ) CL_INSTALL_PLUGIN(${PLUGIN_NAME}) diff -Nru codelite-8.0.1+dfsg2/CMakePlugin/CMakePlugin.cpp codelite-9.0+dfsg/CMakePlugin/CMakePlugin.cpp --- codelite-8.0.1+dfsg2/CMakePlugin/CMakePlugin.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/CMakePlugin/CMakePlugin.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -102,7 +102,7 @@ /* ************************************************************************ */ -static const wxString HELP_TAB_NAME = "CMake Help"; +static const wxString HELP_TAB_NAME = _("CMake Help"); /* ************************************************************************ */ /* FUNCTIONS */ @@ -204,21 +204,24 @@ m_shortName = "CMakePlugin"; // Create CMake configuration file - m_configuration.reset(new CMakeConfiguration(wxStandardPaths::Get().GetUserDataDir() + + m_configuration.reset(new CMakeConfiguration(clStandardPaths::Get().GetUserDataDir() + wxFileName::GetPathSeparator() + "config/cmake.ini")); // Create cmake application m_cmake.reset(new CMake(m_configuration->GetProgramPath())); - + Notebook* book = m_mgr->GetWorkspacePaneNotebook(); cmakeImages images; const wxBitmap& bmp = images.Bitmap("cmake_16"); + if(IsPaneDetached()) { DockablePane* cp = new DockablePane(book->GetParent()->GetParent(), book, HELP_TAB_NAME, bmp, wxSize(200, 200)); - cp->SetChildNoReparent(new CMakeHelpTab(cp, this)); - + m_helpTab = new CMakeHelpTab(cp, this); + cp->SetChildNoReparent(m_helpTab); } else { - book->AddPage(new CMakeHelpTab(book, this), HELP_TAB_NAME, false, bmp); + m_helpTab = new CMakeHelpTab(book, this); + book->AddPage(m_helpTab, HELP_TAB_NAME, false, bmp); + m_mgr->AddWorkspaceTab(HELP_TAB_NAME); } // Bind events @@ -230,6 +233,7 @@ wxEVT_GET_IS_PLUGIN_MAKEFILE, clBuildEventHandler(CMakePlugin::OnGetIsPluginMakefile), this); EventNotifier::Get()->Bind(wxEVT_PLUGIN_EXPORT_MAKEFILE, clBuildEventHandler(CMakePlugin::OnExportMakefile), this); EventNotifier::Get()->Bind(wxEVT_WORKSPACE_LOADED, wxCommandEventHandler(CMakePlugin::OnWorkspaceLoaded), this); + EventNotifier::Get()->Bind(wxEVT_SHOW_WORKSPACE_TAB, &CMakePlugin::OnToggleHelpTab, this); } /* ************************************************************************ */ @@ -243,7 +247,7 @@ wxFileName CMakePlugin::GetWorkspaceDirectory() const { - const Workspace* workspace = m_mgr->GetWorkspace(); + const clCxxWorkspace* workspace = m_mgr->GetWorkspace(); wxASSERT(workspace); return wxFileName::DirName(workspace->GetWorkspaceFileName().GetPath(wxPATH_GET_SEPARATOR | wxPATH_GET_VOLUME)); @@ -253,7 +257,7 @@ wxFileName CMakePlugin::GetProjectDirectory(const wxString& projectName) const { - const Workspace* workspace = m_mgr->GetWorkspace(); + const clCxxWorkspace* workspace = m_mgr->GetWorkspace(); wxASSERT(workspace); wxString errMsg; @@ -278,7 +282,7 @@ BuildConfigPtr CMakePlugin::GetSelectedBuildConfig() const { - const Workspace* workspace = m_mgr->GetWorkspace(); + const clCxxWorkspace* workspace = m_mgr->GetWorkspace(); wxASSERT(workspace); const ProjectPtr projectPtr = GetSelectedProject(); @@ -444,8 +448,8 @@ Notebook* notebook = m_mgr->GetWorkspacePaneNotebook(); wxASSERT(notebook); - size_t pos = notebook->GetPageIndex("CMake Help"); - if(pos != Notebook::npos) { + int pos = notebook->GetPageIndex("CMake Help"); + if(pos != wxNOT_FOUND) { CMakeHelpTab* helpTab = dynamic_cast(notebook->GetPage(pos)); if(helpTab) { helpTab->Stop(); @@ -467,6 +471,7 @@ EventNotifier::Get()->Unbind( wxEVT_PLUGIN_EXPORT_MAKEFILE, clBuildEventHandler(CMakePlugin::OnExportMakefile), this); EventNotifier::Get()->Unbind(wxEVT_WORKSPACE_LOADED, wxCommandEventHandler(CMakePlugin::OnWorkspaceLoaded), this); + EventNotifier::Get()->Unbind(wxEVT_SHOW_WORKSPACE_TAB, &CMakePlugin::OnToggleHelpTab, this); } /* ************************************************************************ */ @@ -757,5 +762,25 @@ // The build command is simple make call with different makefile event.SetCommand(cmd); } + +void CMakePlugin::OnToggleHelpTab(clCommandEvent& event) +{ + if(event.GetString() != HELP_TAB_NAME) { + event.Skip(); + return; + } + + if(event.IsSelected()) { + // show it + cmakeImages images; + const wxBitmap& bmp = images.Bitmap("cmake_16"); + m_mgr->GetWorkspacePaneNotebook()->InsertPage(0, m_helpTab, HELP_TAB_NAME, true, bmp); + } else { + int where = m_mgr->GetWorkspacePaneNotebook()->GetPageIndex(HELP_TAB_NAME); + if(where != wxNOT_FOUND) { + m_mgr->GetWorkspacePaneNotebook()->RemovePage(where); + } + } +} /* ************************************************************************ */ diff -Nru codelite-8.0.1+dfsg2/CMakePlugin/CMakePlugin.h codelite-9.0+dfsg/CMakePlugin/CMakePlugin.h --- codelite-8.0.1+dfsg2/CMakePlugin/CMakePlugin.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/CMakePlugin/CMakePlugin.h 2015-10-11 13:56:07.000000000 +0000 @@ -71,6 +71,7 @@ class CMakeProjectSettingsPanel; class CMakeProjectSettings; class CMakeGenerator; +class CMakeHelpTab; /* ************************************************************************ */ /* CLASSES */ @@ -93,19 +94,15 @@ class CMakePlugin : public IPlugin { -// Public Constants + // Public Constants public: - - /** * @brief Name of the output file - CMakeLists.txt */ static const wxString CMAKELISTS_FILE; -// Public Ctors & Dtors + // Public Ctors & Dtors public: - - /** * @brief Create plugin. * @@ -113,56 +110,40 @@ */ explicit CMakePlugin(IManager* manager); - /** * @brief Destructor. */ virtual ~CMakePlugin(); - -// Public Accessors + // Public Accessors public: - - /** * @brief Returns a pointer to the manager object. * * @return */ - IManager* GetManager() const { - return m_mgr; - } - + IManager* GetManager() const { return m_mgr; } /** * @brief Returns CMake application pointer. * * @return */ - CMake* GetCMake() const { - return m_cmake.get(); - } - + CMake* GetCMake() const { return m_cmake.get(); } /** * @brief Returns settings manager pointer. * * @return */ - CMakeSettingsManager* GetSettingsManager() const { - return m_settingsManager.get(); - } - + CMakeSettingsManager* GetSettingsManager() const { return m_settingsManager.get(); } /** * @brief Returns CMake configuration. * * @return */ - CMakeConfiguration* GetConfiguration() const { - return m_configuration.get(); - } - + CMakeConfiguration* GetConfiguration() const { return m_configuration.get(); } /** * @brief Returns directory where is workspace project stored. @@ -171,7 +152,6 @@ */ wxFileName GetWorkspaceDirectory() const; - /** * @brief Returns directory where is the given project stored. * @@ -181,16 +161,12 @@ */ wxFileName GetProjectDirectory(const wxString& projectName) const; - /** * @brief Returns seleted project. * * @return Pointer to project. */ - ProjectPtr GetSelectedProject() const { - return m_mgr->GetSelectedProject(); - } - + ProjectPtr GetSelectedProject() const { return m_mgr->GetSelectedProject(); } /** * @brief Returns currently selected config for seleted project. @@ -199,7 +175,6 @@ */ wxString GetSelectedProjectConfig() const; - /** * @brief Returns currently selected build config. * @@ -207,7 +182,6 @@ */ BuildConfigPtr GetSelectedBuildConfig() const; - /** * @brief Returns settings for currently selected project. * @@ -215,7 +189,6 @@ */ const CMakeProjectSettings* GetSelectedProjectSettings() const; - /** * @brief Returns if currently selected project is enabled. * @@ -223,7 +196,6 @@ */ bool IsSeletedProjectEnabled() const; - /** * @brief Returns a list of supported generators. * @@ -234,7 +206,6 @@ */ wxArrayString GetSupportedGenerators() const; - /** * @brief Check if Help pane is detached. * @@ -242,11 +213,8 @@ */ bool IsPaneDetached() const; - -// Public Operations + // Public Operations public: - - /** * @brief Creates a tool bar. * @@ -256,7 +224,6 @@ */ clToolBar* CreateToolBar(wxWindow* parent); - /** * @brief Creates a menu for plugin. * @@ -264,7 +231,6 @@ */ void CreatePluginMenu(wxMenu* pluginsMenu); - /** * @brief Hook popup menu. * @@ -273,17 +239,13 @@ */ void HookPopupMenu(wxMenu* menu, MenuType type); - /** * @brief allow the plugins to hook a tab in the project settings * * @param notebook the parent * @param configName the associated configuration name */ - void HookProjectSettingsTab(wxBookCtrlBase* notebook, - const wxString& projectName, - const wxString& configName); - + void HookProjectSettingsTab(wxBookCtrlBase* notebook, const wxString& projectName, const wxString& configName); /** * @brief Unhook any tab from the project settings dialog. @@ -291,17 +253,13 @@ * @param notebook the parent * @param configName the associated configuration name */ - void UnHookProjectSettingsTab(wxBookCtrlBase* notebook, - const wxString& projectName, - const wxString& configName); - + void UnHookProjectSettingsTab(wxBookCtrlBase* notebook, const wxString& projectName, const wxString& configName); /** * @brief Unplug plugin. */ void UnPlug(); - /** * @brief Check if CMakeLists.txt exists in given directory. * @@ -311,7 +269,6 @@ */ bool ExistsCMakeLists(wxFileName directory) const; - /** * @brief Open CMakeLists.txt in given directory. * @@ -319,11 +276,9 @@ */ void OpenCMakeLists(wxFileName directory) const; - -// Public Events + // Public Events public: - - + void OnToggleHelpTab(clCommandEvent& event); /** * @brief On setting dialog. * @@ -331,7 +286,6 @@ */ void OnSettings(wxCommandEvent& event); - /** * @brief On project config saving. * @@ -339,7 +293,6 @@ */ void OnSaveConfig(clProjectSettingsEvent& event); - /** * @brief Returns clean command. * @@ -347,7 +300,6 @@ */ void OnGetCleanCommand(clBuildEvent& event); - /** * @brief Returns build command. * @@ -355,13 +307,11 @@ */ void OnGetBuildCommand(clBuildEvent& event); - /** * @brief Returns if custom makefile is generated. */ void OnGetIsPluginMakefile(clBuildEvent& event); - /** * @brief Generate custom makefile. * @@ -369,7 +319,6 @@ */ void OnExportMakefile(clBuildEvent& event); - /** * @brief On workspace is loaded. * @@ -377,11 +326,8 @@ */ void OnWorkspaceLoaded(wxCommandEvent& event); - -// Private Operations + // Private Operations private: - - /** * @brief Processes build event. * @@ -390,11 +336,8 @@ */ void ProcessBuildEvent(clBuildEvent& event, wxString param = ""); - -// Private Data Members + // Private Data Members private: - - /// CMake configuration. wxScopedPtr m_configuration; @@ -407,6 +350,7 @@ /// Only one is enough CMakeProjectSettingsPanel* m_panel; + CMakeHelpTab* m_helpTab; }; /* ************************************************************************ */ diff -Nru codelite-8.0.1+dfsg2/CMakePlugin/CMakePluginUi.cpp codelite-9.0+dfsg/CMakePlugin/CMakePluginUi.cpp --- codelite-8.0.1+dfsg2/CMakePlugin/CMakePluginUi.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/CMakePlugin/CMakePluginUi.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -65,12 +65,20 @@ m_stdBtnSizer->AddButton(m_buttonCancel); m_stdBtnSizer->Realize(); + SetName(wxT("CMakeSettingsDialogBase")); SetMinSize( wxSize(400,150) ); SetSizeHints(-1,-1); if ( GetSizer() ) { GetSizer()->Fit(this); } - Centre(wxBOTH); + CentreOnParent(wxBOTH); +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(this)) { + wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); + } +#endif } CMakeSettingsDialogBase::~CMakeSettingsDialogBase() @@ -154,11 +162,12 @@ boxSizerList->Add(m_listBoxList, 1, wxALL|wxEXPAND, 0); m_listBoxList->SetMinSize(wxSize(100,200)); + SetName(wxT("CMakeHelpTabBase")); SetSizeHints(-1,-1); if ( GetSizer() ) { GetSizer()->Fit(this); } - Centre(wxBOTH); + CentreOnParent(wxBOTH); // Connect events m_staticTextVersion->Connect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(CMakeHelpTabBase::OnUpdateUi), NULL, this); m_staticTextVersionValue->Connect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(CMakeHelpTabBase::OnUpdateUi), NULL, this); @@ -286,12 +295,13 @@ boxSizer->Add(m_textCtrlArguments, 1, wxALL|wxEXPAND, 5); + SetName(wxT("CMakeProjectSettingsPanelBase")); SetMinSize( wxSize(400,300) ); SetSizeHints(400,300); if ( GetSizer() ) { GetSizer()->Fit(this); } - Centre(wxBOTH); + CentreOnParent(wxBOTH); // Connect events m_staticTextParent->Connect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(CMakeProjectSettingsPanelBase::OnCheck), NULL, this); m_choiceParent->Connect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(CMakeProjectSettingsPanelBase::OnCheck), NULL, this); diff -Nru codelite-8.0.1+dfsg2/CMakePlugin/CMakePluginUi.h codelite-9.0+dfsg/CMakePlugin/CMakePluginUi.h --- codelite-8.0.1+dfsg2/CMakePlugin/CMakePluginUi.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/CMakePlugin/CMakePluginUi.h 2015-10-11 13:56:07.000000000 +0000 @@ -4,8 +4,8 @@ // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// -#ifndef CMAKEPLUGIN_BASE_CLASSES_H -#define CMAKEPLUGIN_BASE_CLASSES_H +#ifndef CODELITE_CMAKEPLUGIN_CMAKEPLUGIN_BASE_CLASSES_H +#define CODELITE_CMAKEPLUGIN_CMAKEPLUGIN_BASE_CLASSES_H #include #include @@ -30,6 +30,12 @@ #include #include #include +#if wxVERSION_NUMBER >= 2900 +#include +#include +#include +#include +#endif class CMakeSettingsDialogBase : public wxDialog { diff -Nru codelite-8.0.1+dfsg2/CMakePlugin/CMakePlugin.wxcp codelite-9.0+dfsg/CMakePlugin/CMakePlugin.wxcp --- codelite-8.0.1+dfsg2/CMakePlugin/CMakePlugin.wxcp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/CMakePlugin/CMakePlugin.wxcp 2015-10-11 13:56:07.000000000 +0000 @@ -72,6 +72,10 @@ "m_label": "Style:", "m_value": "" }, { + "type": "bool", + "m_label": "Enable Window Persistency:", + "m_value": true + }, { "type": "string", "m_label": "Title:", "m_value": "CMakePlugin Settings" @@ -128,6 +132,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "boxSizerMain" }, { @@ -151,6 +159,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "flexGridSizer" }, { @@ -710,6 +722,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "boxSizerMain" }, { @@ -733,6 +749,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "flexGridSizer225" }, { @@ -1307,6 +1327,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "boxSizerList" }, { @@ -1623,6 +1647,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "boxSizer" }, { @@ -1721,6 +1749,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "flexGridSizer" }, { diff -Nru codelite-8.0.1+dfsg2/CMakePlugin/CMakeSettingsManager.cpp codelite-9.0+dfsg/CMakePlugin/CMakeSettingsManager.cpp --- codelite-8.0.1+dfsg2/CMakePlugin/CMakeSettingsManager.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/CMakePlugin/CMakeSettingsManager.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -168,7 +168,7 @@ void CMakeSettingsManager::SaveProjects() { - Workspace* workspace = m_plugin->GetManager()->GetWorkspace(); + clCxxWorkspace* workspace = m_plugin->GetManager()->GetWorkspace(); wxASSERT(workspace); wxArrayString projects; @@ -185,7 +185,7 @@ void CMakeSettingsManager::SaveProject(const wxString& name) { - Workspace* workspace = m_plugin->GetManager()->GetWorkspace(); + clCxxWorkspace* workspace = m_plugin->GetManager()->GetWorkspace(); wxASSERT(workspace); wxString err; @@ -241,7 +241,7 @@ void CMakeSettingsManager::LoadProjects() { - Workspace* workspace = m_plugin->GetManager()->GetWorkspace(); + clCxxWorkspace* workspace = m_plugin->GetManager()->GetWorkspace(); wxASSERT(workspace); wxArrayString projects; @@ -258,7 +258,7 @@ void CMakeSettingsManager::LoadProject(const wxString& name) { - Workspace* workspace = m_plugin->GetManager()->GetWorkspace(); + clCxxWorkspace* workspace = m_plugin->GetManager()->GetWorkspace(); wxASSERT(workspace); wxString err; diff -Nru codelite-8.0.1+dfsg2/CodeDesigner/CMakeLists.txt codelite-9.0+dfsg/CodeDesigner/CMakeLists.txt --- codelite-8.0.1+dfsg2/CodeDesigner/CMakeLists.txt 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/CodeDesigner/CMakeLists.txt 2015-10-11 13:56:07.000000000 +0000 @@ -21,11 +21,6 @@ add_definitions(-DWXUSINGDLL_CL) add_definitions(-DWXUSINGDLL_SDK) -# Add RPATH -if (UNIX) -set (LINKER_OPTIONS -Wl,-rpath,"${PLUGINS_DIR}") -endif (UNIX) - FILE(GLOB SRCS "*.cpp") # Define the output @@ -33,4 +28,4 @@ # Remove the "lib" prefix from the plugin name set_target_properties(${PLUGIN_NAME} PROPERTIES PREFIX "") -target_link_libraries(${PLUGIN_NAME} ${LINKER_OPTIONS} ${wxWidgets_LIBRARIES} -L"${CL_LIBPATH}" -lwxsqlite3 -lsqlite3lib -llibcodelite -lplugin) +target_link_libraries(${PLUGIN_NAME} ${LINKER_OPTIONS} ${wxWidgets_LIBRARIES} -L"${CL_LIBPATH}" libcodelite plugin) diff -Nru codelite-8.0.1+dfsg2/CodeDesigner/codedesigner.cpp codelite-9.0+dfsg/CodeDesigner/codedesigner.cpp --- codelite-8.0.1+dfsg2/CodeDesigner/codedesigner.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/CodeDesigner/codedesigner.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -46,7 +46,7 @@ PluginInfo info; info.SetAuthor(wxT("Michal Bližňák")); info.SetName(wxT("CodeDesigner")); - info.SetDescription(wxT("CodeDesigner RAD integration with CodeLite")); + info.SetDescription(_("CodeDesigner RAD integration with CodeLite")); info.SetVersion(wxT("v1.0")); return info; } @@ -60,7 +60,7 @@ : IPlugin(manager) , m_addFileMenu(true) { - m_longName = wxT("CodeDesigner RAD integration with CodeLite"); + m_longName = _("CodeDesigner RAD integration with CodeLite"); m_shortName = wxT("CodeDesigner"); m_Server = NULL; diff -Nru codelite-8.0.1+dfsg2/CodeFormatter/CMakeLists.txt codelite-9.0+dfsg/CodeFormatter/CMakeLists.txt --- codelite-8.0.1+dfsg2/CodeFormatter/CMakeLists.txt 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/CodeFormatter/CMakeLists.txt 2015-10-11 13:56:07.000000000 +0000 @@ -36,11 +36,6 @@ add_definitions(-fPIC) endif() -# Add RPATH -if (UNIX) -set (LINKER_OPTIONS -Wl,-rpath,"${PLUGINS_DIR}") -endif (UNIX) - FILE(GLOB SRCS "*.cpp") # Define the output @@ -53,8 +48,6 @@ ${wxWidgets_LIBRARIES} libcodelite plugin - wxsqlite3 - sqlite3lib ) diff -Nru codelite-8.0.1+dfsg2/CodeFormatter/codeformatter.cpp codelite-9.0+dfsg/CodeFormatter/codeformatter.cpp --- codelite-8.0.1+dfsg2/CodeFormatter/codeformatter.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/CodeFormatter/codeformatter.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -113,7 +113,7 @@ NULL, this); EventNotifier::Get()->Bind(wxEVT_BEFORE_EDITOR_SAVE, clCommandEventHandler(CodeFormatter::OnBeforeFileSave), this); - + // Migrate settings if needed FormatOptions fmtroptions; m_mgr->GetConfigTool()->ReadObject("FormatterOptions", &fmtroptions); @@ -131,8 +131,6 @@ fmtroptions.SetEngine(kFormatEngineAStyle); fmtroptions.SetClangFormatExe(""); // Clear the non existed executable } - - } } // Save the options @@ -259,33 +257,89 @@ FormatOptions fmtroptions; m_mgr->GetConfigTool()->ReadObject(wxT("FormatterOptions"), &fmtroptions); if(FileExtManager::IsPHPFile(editor->GetFileName())) { - // use the built-in PHP formatter - // Construct the formatting options - PHPFormatterOptions phpOptions; - phpOptions.flags = fmtroptions.GetPHPFormatterOptions(); - if(m_mgr->GetEditorSettings()->GetIndentUsesTabs()) { - phpOptions.flags |= kPFF_UseTabs; + if(fmtroptions.GetPhpEngine() == kPhpFormatEngineBuiltin) { + + // use the built-in PHP formatter + + // Construct the formatting options + PHPFormatterOptions phpOptions; + phpOptions.flags = fmtroptions.GetPHPFormatterOptions(); + if(m_mgr->GetEditorSettings()->GetIndentUsesTabs()) { + phpOptions.flags |= kPFF_UseTabs; + } + phpOptions.indentSize = m_mgr->GetEditorSettings()->GetTabWidth(); + phpOptions.eol = m_mgr->GetEditorSettings()->GetEOLAsString(); + // Create the formatter buffer + PHPFormatterBuffer buffer(editor->GetCtrl()->GetText(), phpOptions); + + // Format the source + buffer.format(); + + // Restore line + if(!buffer.GetBuffer().IsEmpty()) { + clSTCLineKeeper lk(editor); + editor->GetCtrl()->BeginUndoAction(); + // Replace the text with the new formatted buffer + editor->SetEditorText(buffer.GetBuffer()); + editor->GetCtrl()->EndUndoAction(); + } + } else { + wxFileName php(fmtroptions.GetPhpExecutable()); + if(!php.Exists()) { + ::wxMessageBox(_("Can not format file using PHP-CS-Fixer: Missing PHP executable path"), + "Code Formatter", + wxICON_ERROR | wxOK | wxCENTER); + return; + } + wxFileName phar(fmtroptions.GetPHPCSFixerPhar()); + if(!phar.Exists()) { + ::wxMessageBox(_("Can not format file using PHP-CS-Fixer: Missing PHAR file"), + "Code Formatter", + wxICON_ERROR | wxOK | wxCENTER); + return; + } + + // Run the command, PHP-CS-Fixer works directly on the file + // so create a copy of the file and format it, then replace the buffers + // we do this like this so we won't lose our ability to undo the action + wxString output; + wxString command, filename, tmpfile; + filename = editor->GetFileName().GetFullPath(); + tmpfile << filename << ".php-cs-fixer"; + if(!FileUtils::WriteFileContent(tmpfile, editor->GetEditorText())) { + ::wxMessageBox(_("Can not format file using PHP-CS-Fixer:\nFailed to write temporary file"), + "Code Formatter", + wxICON_ERROR | wxOK | wxCENTER); + return; + } + + // Ensure that the temporary file is deleted once we are done with it + FileUtils::Deleter fd(tmpfile); + + ::WrapWithQuotes(tmpfile); + command << fmtroptions.GetPhpFixerCommand() << " " << tmpfile; + ::WrapInShell(command); + IProcess::Ptr_t phpFixer( + ::CreateSyncProcess(command, IProcessCreateDefault | IProcessCreateWithHiddenConsole)); + CHECK_PTR_RET(phpFixer); + phpFixer->WaitForTerminate(output); + + output.clear(); + if(!FileUtils::ReadFileContent(tmpfile, output)) { + ::wxMessageBox(_("Can not format file using PHP-CS-Fixer:\nfailed to read temporary file content"), + "Code Formatter", + wxICON_ERROR | wxOK | wxCENTER); + return; + } + + // Update the editor + clEditorStateLocker lk(editor->GetCtrl()); + editor->GetCtrl()->BeginUndoAction(); + editor->SetEditorText(output); + editor->GetCtrl()->EndUndoAction(); } - phpOptions.indentSize = m_mgr->GetEditorSettings()->GetTabWidth(); - phpOptions.eol = m_mgr->GetEditorSettings()->GetEOLAsString(); - // Create the formatter buffer - PHPFormatterBuffer buffer(editor->GetCtrl()->GetText(), phpOptions); - - // Format the source - buffer.format(); - - // Restore line - clSTCLineKeeper lk(editor); - editor->GetCtrl()->BeginUndoAction(); - // Replace the text with the new formatted buffer - editor->SetEditorText(buffer.GetBuffer()); - - // Restore caret position - editor->SetCaretAt(curpos); - - editor->GetCtrl()->EndUndoAction(); - + } else { // We allow ClangFormat to work only when the source file is known to be // a C/C++ source file or JavaScript (these are the types of files that clang-format can handle properly) @@ -474,24 +528,49 @@ wxString output; if(FileExtManager::IsPHPFile(e.GetFileName())) { - // use the built-in PHP formatter - // Construct the formatting options - PHPFormatterOptions phpOptions; - phpOptions.flags = fmtroptions.GetPHPFormatterOptions(); - if(m_mgr->GetEditorSettings()->GetIndentUsesTabs()) { - phpOptions.flags |= kPFF_UseTabs; - } - phpOptions.indentSize = m_mgr->GetEditorSettings()->GetTabWidth(); - phpOptions.eol = m_mgr->GetEditorSettings()->GetEOLAsString(); - // Create the formatter buffer - PHPFormatterBuffer buffer(e.GetInputString(), phpOptions); - // Format the source - buffer.format(); + if(fmtroptions.GetPhpEngine() == kPhpFormatEngineBuiltin) { + // use the built-in PHP formatter + // Construct the formatting options + PHPFormatterOptions phpOptions; + phpOptions.flags = fmtroptions.GetPHPFormatterOptions(); + if(m_mgr->GetEditorSettings()->GetIndentUsesTabs()) { + phpOptions.flags |= kPFF_UseTabs; + } + phpOptions.indentSize = m_mgr->GetEditorSettings()->GetTabWidth(); + phpOptions.eol = m_mgr->GetEditorSettings()->GetEOLAsString(); + // Create the formatter buffer + PHPFormatterBuffer buffer(e.GetInputString(), phpOptions); - // set the output - output = buffer.GetBuffer(); + // Format the source + buffer.format(); + // set the output + output = buffer.GetBuffer(); + } else { + wxFileName php(fmtroptions.GetPhpExecutable()); + if(!php.Exists()) { + ::wxMessageBox(_("Can not format file using PHP-CS-Fixer: Missing PHP executable path"), + "Code Formatter", + wxICON_ERROR | wxOK | wxCENTER); + return; + } + wxFileName phar(fmtroptions.GetPHPCSFixerPhar()); + if(!phar.Exists()) { + ::wxMessageBox(_("Can not format file using PHP-CS-Fixer: Missing PHAR file"), + "Code Formatter", + wxICON_ERROR | wxOK | wxCENTER); + return; + } + + // Run the command, PHP-CS-Fixer works directly on the file + // + output.Clear(); + IProcess::Ptr_t phpFixer(::CreateSyncProcess(fmtroptions.GetPhpFixerCommand(), + IProcessCreateDefault | IProcessCreateWithHiddenConsole)); + CHECK_PTR_RET(phpFixer); + phpFixer->WaitForTerminate(output); + } } else if(fmtroptions.GetEngine() == kFormatEngineAStyle) { wxString options = fmtroptions.AstyleOptionsAsString(); @@ -556,7 +635,7 @@ int length) { // Write the content into a temporary file - wxFileName fn(wxStandardPaths::Get().GetTempDir(), "code-formatter-tmp.cpp"); + wxFileName fn(clStandardPaths::Get().GetTempDir(), "code-formatter-tmp.cpp"); fn.SetExt(filename.GetExt()); wxFFile fp(fn.GetFullPath(), "w+b"); @@ -592,7 +671,7 @@ int startOffset, length, cursorPosition; startOffset = length = cursorPosition = wxNOT_FOUND; - wxFileName fn(wxStandardPaths::Get().GetTempDir(), "code-formatter-tmp.cpp"); + wxFileName fn(clStandardPaths::Get().GetTempDir(), "code-formatter-tmp.cpp"); wxFFile fp(fn.GetFullPath(), "w+b"); if(fp.IsOpened()) { fp.Write(content, wxConvUTF8); @@ -622,10 +701,10 @@ } wxString command, file; - + clClangFormatLocator locator; double version = locator.GetVersion(options.GetClangFormatExe()); - + command << options.GetClangFormatExe(); file = filename.GetFullPath(); ::WrapWithQuotes(command); @@ -678,7 +757,7 @@ return; } - ProjectPtr pProj = WorkspaceST::Get()->GetProject(selectedItem.m_text); + ProjectPtr pProj = clCxxWorkspaceST::Get()->GetProject(selectedItem.m_text); CHECK_PTR_RET(pProj); Project::FileInfoVector_t allFiles; @@ -719,12 +798,13 @@ FormatOptions options; m_mgr->GetConfigTool()->ReadObject(wxT("FormatterOptions"), &options); - if(options.GetEngine() == kFormatEngineAStyle) { + switch(options.GetEngine()) { + case kFormatEngineAStyle: return AStyleBatchFOrmat(files, options); - - } else if(options.GetEngine() == kFormatEngineClangFormat) { + case kFormatEngineClangFormat: return ClangBatchFormat(files, options); } + return false; } bool CodeFormatter::ClangBatchFormat(const std::vector& files, const FormatOptions& options) @@ -735,10 +815,10 @@ wxProgressDialog dlg( _("Source Code Formatter"), _("Formatting files..."), (int)files.size(), m_mgr->GetTheApp()->GetTopWindow()); - + clClangFormatLocator locator; double version = locator.GetVersion(options.GetClangFormatExe()); - + for(size_t i = 0; i < files.size(); ++i) { wxString command, file; command << options.GetClangFormatExe(); @@ -769,7 +849,7 @@ clangFormatProc->WaitForTerminate(output); CL_DEBUG("clang-format returned with:\n%s\n", output); } - + EventNotifier::Get()->PostReloadExternallyModifiedEvent(false); return true; } diff -Nru codelite-8.0.1+dfsg2/CodeFormatter/codeformatterdlgbase.cpp codelite-9.0+dfsg/CodeFormatter/codeformatterdlgbase.cpp --- codelite-8.0.1+dfsg2/CodeFormatter/codeformatterdlgbase.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/CodeFormatter/codeformatterdlgbase.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -30,15 +30,11 @@ m_treebook = new wxTreebook(this, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxBK_DEFAULT); m_treebook->SetName(wxT("m_treebook")); - wxImageList* m_treebook_il = new wxImageList(16, 16); - m_treebook->AssignImageList(m_treebook_il); bSizerMain->Add(m_treebook, 1, wxALL|wxEXPAND, 5); m_panel133 = new wxPanel(m_treebook, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxTAB_TRAVERSAL); - int m_panel133ImgIndex; - m_panel133ImgIndex = m_treebook_il->Add(wxXmlResource::Get()->LoadBitmap(wxT("configure"))); - m_treebook->AddPage(m_panel133, _("General"), true, m_panel133ImgIndex); + m_treebook->AddPage(m_panel133, _("General"), true, wxNOT_FOUND); wxBoxSizer* boxSizer179 = new wxBoxSizer(wxVERTICAL); m_panel133->SetSizer(boxSizer179); @@ -50,17 +46,15 @@ boxSizer179->Add(flexGridSizer158, 1, wxALL|wxEXPAND, 2); - m_staticText162 = new wxStaticText(m_panel133, wxID_ANY, _("Format editor on file save:"), wxDefaultPosition, wxSize(-1,-1), 0); + flexGridSizer158->Add(0, 0, 1, wxALL, 5); - flexGridSizer158->Add(m_staticText162, 0, wxALL|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5); - - m_checkBoxFormatOnSave = new wxCheckBox(m_panel133, wxID_ANY, wxT(""), wxDefaultPosition, wxSize(-1,-1), 0); + m_checkBoxFormatOnSave = new wxCheckBox(m_panel133, wxID_ANY, _("Format editor on file save"), wxDefaultPosition, wxSize(-1,-1), 0); m_checkBoxFormatOnSave->SetValue(false); m_checkBoxFormatOnSave->SetToolTip(_("When saving a file, automatically format it")); - flexGridSizer158->Add(m_checkBoxFormatOnSave, 0, wxRIGHT|wxTOP|wxBOTTOM|wxALIGN_LEFT, 5); + flexGridSizer158->Add(m_checkBoxFormatOnSave, 0, wxALL|wxALIGN_LEFT, 5); - m_staticText115 = new wxStaticText(m_panel133, wxID_ANY, _("Select C++ formatter:"), wxDefaultPosition, wxSize(-1,-1), 0); + m_staticText115 = new wxStaticText(m_panel133, wxID_ANY, _("C++ formatter:"), wxDefaultPosition, wxSize(-1,-1), 0); flexGridSizer158->Add(m_staticText115, 0, wxALL|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5); @@ -71,16 +65,25 @@ m_choiceCxxEngine->SetToolTip(_("Select the formatter engine for C/C++\nNote that JavaScript, clang-format is always used")); m_choiceCxxEngine->SetSelection(1); - flexGridSizer158->Add(m_choiceCxxEngine, 0, wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5); + flexGridSizer158->Add(m_choiceCxxEngine, 0, wxALL|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5); + + m_staticText198 = new wxStaticText(m_panel133, wxID_ANY, _("PHP formatter:"), wxDefaultPosition, wxSize(-1,-1), 0); + + flexGridSizer158->Add(m_staticText198, 0, wxALL|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5); - int m_panelCxxImgIndex; - m_panelCxxImgIndex = m_treebook_il->Add(wxXmlResource::Get()->LoadBitmap(wxT("page_white_cplusplus"))); - m_treebook->AddPage(NULL, _("C++"), false, m_panelCxxImgIndex); + wxArrayString m_choicePhpFormatterArr; + m_choicePhpFormatterArr.Add(wxT("Builtin")); + m_choicePhpFormatterArr.Add(wxT("PHP-CS-Fixer")); + m_choicePhpFormatter = new wxChoice(m_panel133, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), m_choicePhpFormatterArr, 0); + m_choicePhpFormatter->SetToolTip(_("Select the formatter engine for PHP files")); + m_choicePhpFormatter->SetSelection(0); + + flexGridSizer158->Add(m_choicePhpFormatter, 0, wxALL|wxEXPAND, 5); + + m_treebook->AddPage(NULL, _("C++"), false, wxNOT_FOUND); m_panelAstyle = new wxPanel(m_treebook, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxTAB_TRAVERSAL); - int m_panelAstyleImgIndex; - m_panelAstyleImgIndex = m_treebook_il->Add(wxXmlResource::Get()->LoadBitmap(wxT("astyle"))); - m_treebook->InsertSubPage(1, m_panelAstyle, _("AStyle"), false, m_panelAstyleImgIndex); + m_treebook->InsertSubPage(1, m_panelAstyle, _("AStyle"), false, wxNOT_FOUND); wxBoxSizer* boxSizer95 = new wxBoxSizer(wxVERTICAL); m_panelAstyle->SetSizer(boxSizer95); @@ -249,9 +252,7 @@ boxSizer157->Add(m_textCtrlPreview, 1, wxALL|wxEXPAND, 2); m_panelClang = new wxPanel(m_treebook, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxTAB_TRAVERSAL); - int m_panelClangImgIndex; - m_panelClangImgIndex = m_treebook_il->Add(wxXmlResource::Get()->LoadBitmap(wxT("clang"))); - m_treebook->InsertSubPage(1, m_panelClang, _("clang-format"), false, m_panelClangImgIndex); + m_treebook->InsertSubPage(1, m_panelClang, _("clang-format"), false, wxNOT_FOUND); wxBoxSizer* boxSizer97 = new wxBoxSizer(wxVERTICAL); m_panelClang->SetSizer(boxSizer97); @@ -405,14 +406,15 @@ boxSizer177->Add(m_textCtrlPreview_Clang, 1, wxALL|wxEXPAND, 2); m_panelPHP = new wxPanel(m_treebook, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxTAB_TRAVERSAL); - int m_panelPHPImgIndex; - m_panelPHPImgIndex = m_treebook_il->Add(wxXmlResource::Get()->LoadBitmap(wxT("php"))); - m_treebook->AddPage(m_panelPHP, _("PHP"), false, m_panelPHPImgIndex); + m_treebook->AddPage(m_panelPHP, _("PHP"), false, wxNOT_FOUND); + + m_panelBuiltIn = new wxPanel(m_treebook, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxTAB_TRAVERSAL); + m_treebook->InsertSubPage(4, m_panelBuiltIn, _("Builtin"), false, wxNOT_FOUND); wxBoxSizer* boxSizer99 = new wxBoxSizer(wxVERTICAL); - m_panelPHP->SetSizer(boxSizer99); + m_panelBuiltIn->SetSizer(boxSizer99); - m_splitter119 = new wxSplitterWindow(m_panelPHP, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxSP_LIVE_UPDATE); + m_splitter119 = new wxSplitterWindow(m_panelBuiltIn, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxSP_LIVE_UPDATE); m_splitter119->SetSashGravity(0.5); m_splitter119->SetMinimumPaneSize(10); @@ -499,6 +501,120 @@ boxSizer131->Add(m_stcPhpPreview, 1, wxALL|wxEXPAND, 2); + m_panel185 = new wxPanel(m_treebook, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxTAB_TRAVERSAL); + m_treebook->InsertSubPage(4, m_panel185, _("PHP-CS-Fixer"), false, wxNOT_FOUND); + + wxBoxSizer* boxSizer209 = new wxBoxSizer(wxVERTICAL); + m_panel185->SetSizer(boxSizer209); + + wxFlexGridSizer* flexGridSizer190 = new wxFlexGridSizer(0, 2, 0, 0); + flexGridSizer190->SetFlexibleDirection( wxBOTH ); + flexGridSizer190->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); + flexGridSizer190->AddGrowableCol(1); + + boxSizer209->Add(flexGridSizer190, 0, wxALL|wxEXPAND, 5); + + m_staticText192 = new wxStaticText(m_panel185, wxID_ANY, _("PHP Executable:"), wxDefaultPosition, wxSize(-1,-1), 0); + + flexGridSizer190->Add(m_staticText192, 0, wxALL|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5); + + m_filePickerPhpExec = new wxFilePickerCtrl(m_panel185, wxID_ANY, wxEmptyString, _("Select a file"), wxT("*"), wxDefaultPosition, wxSize(-1,-1), wxFLP_USE_TEXTCTRL|wxFLP_SMALL); + m_filePickerPhpExec->SetToolTip(_("Select the PHP executable to use")); + m_filePickerPhpExec->SetFocus(); + + flexGridSizer190->Add(m_filePickerPhpExec, 0, wxALL|wxEXPAND, 5); + + m_staticText202 = new wxStaticText(m_panel185, wxID_ANY, _("PHP-CS-Fixer phar file:"), wxDefaultPosition, wxSize(-1,-1), 0); + + flexGridSizer190->Add(m_staticText202, 0, wxALL|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5); + + m_filePickerPHPCsFixerPhar = new wxFilePickerCtrl(m_panel185, wxID_ANY, wxEmptyString, _("Select a file"), wxT("*"), wxDefaultPosition, wxSize(-1,-1), wxFLP_USE_TEXTCTRL|wxFLP_SMALL); + m_filePickerPHPCsFixerPhar->SetToolTip(_("Select the PHP-CS-Fixer phar file location")); + + flexGridSizer190->Add(m_filePickerPHPCsFixerPhar, 0, wxALL|wxEXPAND, 5); + + m_staticText217 = new wxStaticText(m_panel185, wxID_ANY, _("Options:"), wxDefaultPosition, wxSize(-1,-1), 0); + + boxSizer209->Add(m_staticText217, 0, wxALL, 5); + + m_stc = new wxStyledTextCtrl(m_panel185, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), 0); + m_stc->SetToolTip(_("Set here list of options to pass to PHP-CS-Fixer\nClick the Help button to view documentation page")); + // Configure the fold margin + m_stc->SetMarginType (4, wxSTC_MARGIN_SYMBOL); + m_stc->SetMarginMask (4, wxSTC_MASK_FOLDERS); + m_stc->SetMarginSensitive(4, true); + m_stc->SetMarginWidth (4, 0); + + // Configure the tracker margin + m_stc->SetMarginWidth(1, 0); + + // Configure the symbol margin + m_stc->SetMarginType (2, wxSTC_MARGIN_SYMBOL); + m_stc->SetMarginMask (2, ~(wxSTC_MASK_FOLDERS)); + m_stc->SetMarginWidth(2, 0); + m_stc->SetMarginSensitive(2, true); + + // Configure the line numbers margin + m_stc->SetMarginType(0, wxSTC_MARGIN_NUMBER); + m_stc->SetMarginWidth(0,0); + + // Configure the line symbol margin + m_stc->SetMarginType(3, wxSTC_MARGIN_FORE); + m_stc->SetMarginMask(3, 0); + m_stc->SetMarginWidth(3,0); + // Select the lexer + m_stc->SetLexer(wxSTC_LEX_NULL); + // Set default font / styles + m_stc->StyleClearAll(); + m_stc->SetWrapMode(1); + m_stc->SetIndentationGuides(0); + m_stc->SetEOLMode(2); + m_stc->SetKeyWords(0, wxT("")); + m_stc->SetKeyWords(1, wxT("")); + m_stc->SetKeyWords(2, wxT("")); + m_stc->SetKeyWords(3, wxT("")); + m_stc->SetKeyWords(4, wxT("")); + + boxSizer209->Add(m_stc, 1, wxALL|wxEXPAND, 5); + + m_stcFixerPreview = new wxStyledTextCtrl(m_panel185, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), 0); + // Configure the fold margin + m_stcFixerPreview->SetMarginType (4, wxSTC_MARGIN_SYMBOL); + m_stcFixerPreview->SetMarginMask (4, wxSTC_MASK_FOLDERS); + m_stcFixerPreview->SetMarginSensitive(4, true); + m_stcFixerPreview->SetMarginWidth (4, 0); + + // Configure the tracker margin + m_stcFixerPreview->SetMarginWidth(1, 0); + + // Configure the symbol margin + m_stcFixerPreview->SetMarginType (2, wxSTC_MARGIN_SYMBOL); + m_stcFixerPreview->SetMarginMask (2, ~(wxSTC_MASK_FOLDERS)); + m_stcFixerPreview->SetMarginWidth(2, 0); + m_stcFixerPreview->SetMarginSensitive(2, true); + + // Configure the line numbers margin + m_stcFixerPreview->SetMarginType(0, wxSTC_MARGIN_NUMBER); + m_stcFixerPreview->SetMarginWidth(0,0); + + // Configure the line symbol margin + m_stcFixerPreview->SetMarginType(3, wxSTC_MARGIN_FORE); + m_stcFixerPreview->SetMarginMask(3, 0); + m_stcFixerPreview->SetMarginWidth(3,0); + // Select the lexer + m_stcFixerPreview->SetLexer(wxSTC_LEX_NULL); + // Set default font / styles + m_stcFixerPreview->StyleClearAll(); + m_stcFixerPreview->SetWrapMode(1); + m_stcFixerPreview->SetIndentationGuides(0); + m_stcFixerPreview->SetKeyWords(0, wxT("")); + m_stcFixerPreview->SetKeyWords(1, wxT("")); + m_stcFixerPreview->SetKeyWords(2, wxT("")); + m_stcFixerPreview->SetKeyWords(3, wxT("")); + m_stcFixerPreview->SetKeyWords(4, wxT("")); + + boxSizer209->Add(m_stcFixerPreview, 1, wxALL|wxEXPAND, 5); + wxBoxSizer* bSizerButtons = new wxBoxSizer(wxHORIZONTAL); bSizerMain->Add(bSizerButtons, 0, wxALIGN_CENTER_HORIZONTAL, 5); @@ -523,13 +639,19 @@ #if wxVERSION_NUMBER >= 2900 - wxPersistenceManager::Get().RegisterAndRestore(m_treebook); + if(!wxPersistenceManager::Get().Find(m_treebook)){ + wxPersistenceManager::Get().RegisterAndRestore(m_treebook); + } else { + wxPersistenceManager::Get().Restore(m_treebook); + } #endif m_treebook->ExpandNode( 0, true ); m_treebook->ExpandNode( 1, true ); m_treebook->ExpandNode( 2, true ); m_treebook->ExpandNode( 3, true ); m_treebook->ExpandNode( 4, true ); + m_treebook->ExpandNode( 5, true ); + m_treebook->ExpandNode( 6, true ); SetName(wxT("CodeFormatterBaseDlg")); SetSizeHints(-1,-1); @@ -538,15 +660,23 @@ } CentreOnParent(wxBOTH); #if wxVERSION_NUMBER >= 2900 - wxPersistenceManager::Get().RegisterAndRestore(this); + if(!wxPersistenceManager::Get().Find(this)) { + wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); + } #endif // Connect events m_checkBoxFormatOnSave->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(CodeFormatterBaseDlg::OnFormatOnSave), NULL, this); m_choiceCxxEngine->Connect(wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler(CodeFormatterBaseDlg::OnChoicecxxengineChoiceSelected), NULL, this); + m_choicePhpFormatter->Connect(wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler(CodeFormatterBaseDlg::OnChoicephpformatterChoiceSelected), NULL, this); m_pgMgrAstyle->Connect(wxEVT_PG_CHANGED, wxPropertyGridEventHandler(CodeFormatterBaseDlg::OnPgmgrastylePgChanged), NULL, this); m_textCtrlUserFlags->Connect(wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler(CodeFormatterBaseDlg::OnCustomAstyleFlags), NULL, this); m_pgMgrClang->Connect(wxEVT_PG_CHANGED, wxPropertyGridEventHandler(CodeFormatterBaseDlg::OnPgmgrclangPgChanged), NULL, this); m_pgMgrPhp->Connect(wxEVT_PG_CHANGED, wxPropertyGridEventHandler(CodeFormatterBaseDlg::OnPgmgrphpPgChanged), NULL, this); + m_filePickerPhpExec->Connect(wxEVT_COMMAND_FILEPICKER_CHANGED, wxFileDirPickerEventHandler(CodeFormatterBaseDlg::OnPhpFileSelected), NULL, this); + m_filePickerPHPCsFixerPhar->Connect(wxEVT_COMMAND_FILEPICKER_CHANGED, wxFileDirPickerEventHandler(CodeFormatterBaseDlg::OnPharFileSelected), NULL, this); + m_stc->Connect(wxEVT_STC_CHANGE, wxStyledTextEventHandler(CodeFormatterBaseDlg::OnPHPCSFixerOptionsUpdated), NULL, this); m_buttonOK->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(CodeFormatterBaseDlg::OnOK), NULL, this); m_buttonApply->Connect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(CodeFormatterBaseDlg::OnApplyUI), NULL, this); m_buttonApply->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(CodeFormatterBaseDlg::OnApply), NULL, this); @@ -558,10 +688,14 @@ { m_checkBoxFormatOnSave->Disconnect(wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(CodeFormatterBaseDlg::OnFormatOnSave), NULL, this); m_choiceCxxEngine->Disconnect(wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler(CodeFormatterBaseDlg::OnChoicecxxengineChoiceSelected), NULL, this); + m_choicePhpFormatter->Disconnect(wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler(CodeFormatterBaseDlg::OnChoicephpformatterChoiceSelected), NULL, this); m_pgMgrAstyle->Disconnect(wxEVT_PG_CHANGED, wxPropertyGridEventHandler(CodeFormatterBaseDlg::OnPgmgrastylePgChanged), NULL, this); m_textCtrlUserFlags->Disconnect(wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler(CodeFormatterBaseDlg::OnCustomAstyleFlags), NULL, this); m_pgMgrClang->Disconnect(wxEVT_PG_CHANGED, wxPropertyGridEventHandler(CodeFormatterBaseDlg::OnPgmgrclangPgChanged), NULL, this); m_pgMgrPhp->Disconnect(wxEVT_PG_CHANGED, wxPropertyGridEventHandler(CodeFormatterBaseDlg::OnPgmgrphpPgChanged), NULL, this); + m_filePickerPhpExec->Disconnect(wxEVT_COMMAND_FILEPICKER_CHANGED, wxFileDirPickerEventHandler(CodeFormatterBaseDlg::OnPhpFileSelected), NULL, this); + m_filePickerPHPCsFixerPhar->Disconnect(wxEVT_COMMAND_FILEPICKER_CHANGED, wxFileDirPickerEventHandler(CodeFormatterBaseDlg::OnPharFileSelected), NULL, this); + m_stc->Disconnect(wxEVT_STC_CHANGE, wxStyledTextEventHandler(CodeFormatterBaseDlg::OnPHPCSFixerOptionsUpdated), NULL, this); m_buttonOK->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(CodeFormatterBaseDlg::OnOK), NULL, this); m_buttonApply->Disconnect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(CodeFormatterBaseDlg::OnApplyUI), NULL, this); m_buttonApply->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(CodeFormatterBaseDlg::OnApply), NULL, this); diff -Nru codelite-8.0.1+dfsg2/CodeFormatter/codeformatterdlgbase.h codelite-9.0+dfsg/CodeFormatter/codeformatterdlgbase.h --- codelite-8.0.1+dfsg2/CodeFormatter/codeformatterdlgbase.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/CodeFormatter/codeformatterdlgbase.h 2015-10-11 13:56:07.000000000 +0000 @@ -4,8 +4,8 @@ // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// -#ifndef CODEFORMATTERDLG_BASE_CLASSES_H -#define CODEFORMATTERDLG_BASE_CLASSES_H +#ifndef CODELITE_CODEFORMATTER_CODEFORMATTERDLG_BASE_CLASSES_H +#define CODELITE_CODEFORMATTER_CODEFORMATTERDLG_BASE_CLASSES_H #include #include @@ -17,8 +17,8 @@ #include #include #include -#include #include +#include #include #include #include @@ -27,6 +27,7 @@ #include #include #include +#include #include #if wxVERSION_NUMBER >= 2900 #include @@ -42,10 +43,11 @@ protected: wxTreebook* m_treebook; wxPanel* m_panel133; - wxStaticText* m_staticText162; wxCheckBox* m_checkBoxFormatOnSave; wxStaticText* m_staticText115; wxChoice* m_choiceCxxEngine; + wxStaticText* m_staticText198; + wxChoice* m_choicePhpFormatter; wxPanel* m_panelCxx; wxPanel* m_panelAstyle; wxSplitterWindow* m_splitter145; @@ -74,6 +76,7 @@ wxPanel* m_splitterPage173; wxStyledTextCtrl* m_textCtrlPreview_Clang; wxPanel* m_panelPHP; + wxPanel* m_panelBuiltIn; wxSplitterWindow* m_splitter119; wxPanel* m_splitterPage123; wxPropertyGridManager* m_pgMgrPhp; @@ -81,6 +84,14 @@ wxPGProperty* m_pgPropPhpFormatterOptions; wxPanel* m_splitterPage127; wxStyledTextCtrl* m_stcPhpPreview; + wxPanel* m_panel185; + wxStaticText* m_staticText192; + wxFilePickerCtrl* m_filePickerPhpExec; + wxStaticText* m_staticText202; + wxFilePickerCtrl* m_filePickerPHPCsFixerPhar; + wxStaticText* m_staticText217; + wxStyledTextCtrl* m_stc; + wxStyledTextCtrl* m_stcFixerPreview; wxStdDialogButtonSizer* m_stdBtnSizer30; wxButton* m_buttonOK; wxButton* m_buttonApply; @@ -90,20 +101,25 @@ protected: virtual void OnFormatOnSave(wxCommandEvent& event) { event.Skip(); } virtual void OnChoicecxxengineChoiceSelected(wxCommandEvent& event) { event.Skip(); } + virtual void OnChoicephpformatterChoiceSelected(wxCommandEvent& event) { event.Skip(); } virtual void OnPgmgrastylePgChanged(wxPropertyGridEvent& event) { event.Skip(); } virtual void OnCustomAstyleFlags(wxCommandEvent& event) { event.Skip(); } virtual void OnPgmgrclangPgChanged(wxPropertyGridEvent& event) { event.Skip(); } virtual void OnPgmgrphpPgChanged(wxPropertyGridEvent& event) { event.Skip(); } + virtual void OnPhpFileSelected(wxFileDirPickerEvent& event) { event.Skip(); } + virtual void OnPharFileSelected(wxFileDirPickerEvent& event) { event.Skip(); } + virtual void OnPHPCSFixerOptionsUpdated(wxStyledTextEvent& event) { event.Skip(); } virtual void OnOK(wxCommandEvent& event) { event.Skip(); } virtual void OnApplyUI(wxUpdateUIEvent& event) { event.Skip(); } virtual void OnApply(wxCommandEvent& event) { event.Skip(); } virtual void OnHelp(wxCommandEvent& event) { event.Skip(); } public: - wxStaticText* GetStaticText162() { return m_staticText162; } wxCheckBox* GetCheckBoxFormatOnSave() { return m_checkBoxFormatOnSave; } wxStaticText* GetStaticText115() { return m_staticText115; } wxChoice* GetChoiceCxxEngine() { return m_choiceCxxEngine; } + wxStaticText* GetStaticText198() { return m_staticText198; } + wxChoice* GetChoicePhpFormatter() { return m_choicePhpFormatter; } wxPanel* GetPanel133() { return m_panel133; } wxPropertyGridManager* GetPgMgrAstyle() { return m_pgMgrAstyle; } wxStaticText* GetStaticText59() { return m_staticText59; } @@ -126,6 +142,15 @@ wxStyledTextCtrl* GetStcPhpPreview() { return m_stcPhpPreview; } wxPanel* GetSplitterPage127() { return m_splitterPage127; } wxSplitterWindow* GetSplitter119() { return m_splitter119; } + wxPanel* GetPanelBuiltIn() { return m_panelBuiltIn; } + wxStaticText* GetStaticText192() { return m_staticText192; } + wxFilePickerCtrl* GetFilePickerPhpExec() { return m_filePickerPhpExec; } + wxStaticText* GetStaticText202() { return m_staticText202; } + wxFilePickerCtrl* GetFilePickerPHPCsFixerPhar() { return m_filePickerPHPCsFixerPhar; } + wxStaticText* GetStaticText217() { return m_staticText217; } + wxStyledTextCtrl* GetStc() { return m_stc; } + wxStyledTextCtrl* GetStcFixerPreview() { return m_stcFixerPreview; } + wxPanel* GetPanel185() { return m_panel185; } wxPanel* GetPanelPHP() { return m_panelPHP; } wxTreebook* GetTreebook() { return m_treebook; } CodeFormatterBaseDlg(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Source Code Formatter Options"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER); diff -Nru codelite-8.0.1+dfsg2/CodeFormatter/codeformatterdlg_codeformatter_bitmaps.cpp codelite-9.0+dfsg/CodeFormatter/codeformatterdlg_codeformatter_bitmaps.cpp --- codelite-8.0.1+dfsg2/CodeFormatter/codeformatterdlg_codeformatter_bitmaps.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/CodeFormatter/codeformatterdlg_codeformatter_bitmaps.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,227 +1,47 @@ -// -// This file was automatically generated by wxrc, do not edit by hand. -// - -#include - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#include -#include -#include -#include - -#if wxCHECK_VERSION(2,8,5) && wxABI_VERSION >= 20805 - #define XRC_ADD_FILE(name, data, size, mime) \ - wxMemoryFSHandler::AddFileWithMimeType(name, data, size, mime) -#else - #define XRC_ADD_FILE(name, data, size, mime) \ - wxMemoryFSHandler::AddFile(name, data, size) -#endif - -static size_t xml_res_size_0 = 457; -static unsigned char xml_res_file_0[] = { -137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, -0,31,243,255,97,0,0,1,144,73,68,65,84,120,94,197,83,49,72,35,65,20,253, -51,187,193,221,77,80,204,17,227,33,130,85,184,74,143,20,54,130,96,109,23, -184,70,176,56,244,240,174,20,177,144,116,98,163,216,136,130,138,224,161, -7,41,14,180,16,139,195,66,144,131,43,162,120,81,11,81,3,42,42,196,72,212, -24,179,58,217,157,249,238,186,10,129,36,166,72,225,131,207,188,207,127, -252,121,243,96,8,34,66,37,160,80,33,232,167,5,160,190,175,63,67,225,191, -184,58,25,21,177,225,13,190,55,184,102,156,246,173,24,177,142,95,230,127, -40,135,234,174,153,222,111,203,215,199,227,235,12,7,150,178,216,29,209, -177,125,158,69,191,44,234,216,60,205,226,47,79,196,34,5,246,76,174,245, -250,190,83,208,154,118,46,5,16,66,33,174,75,219,255,122,92,173,129,240, -214,99,234,195,231,16,56,32,80,2,178,33,105,222,132,233,2,34,59,97,50,196, -103,241,53,3,2,57,158,182,36,142,131,226,32,114,42,113,62,119,149,201,140, -152,158,26,170,27,0,201,123,243,89,156,102,128,148,161,94,214,65,206,31, -28,221,253,19,225,245,13,141,3,186,164,214,129,191,141,216,183,186,37,1, -46,202,25,0,148,112,224,44,165,98,34,40,50,191,127,140,129,65,90,20,80, -134,200,217,230,71,123,224,38,8,30,16,252,85,92,88,14,228,87,114,52,213, -153,8,132,247,103,85,35,217,111,247,182,3,133,112,97,209,183,51,200,239, -220,132,243,28,69,135,91,167,70,133,40,155,65,126,163,1,114,74,80,179,185, -74,68,149,38,76,250,86,6,5,11,178,183,30,72,223,156,28,216,252,234,226, -238,80,87,179,138,69,31,16,177,164,131,119,255,76,149,47,120,2,65,15,166, -14,122,118,68,230,0,0,0,0,73,69,78,68,174,66,96,130}; - -static size_t xml_res_size_1 = 750; -static unsigned char xml_res_file_1[] = { -137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, -0,31,243,255,97,0,0,0,6,98,75,71,68,0,255,0,255,0,255,160,189,167,147,0, -0,0,9,112,72,89,115,0,0,13,215,0,0,13,215,1,66,40,155,120,0,0,0,7,116,73, -77,69,7,222,10,18,5,22,27,196,118,238,154,0,0,2,123,73,68,65,84,56,203, -205,146,111,72,19,113,24,199,159,187,157,155,238,47,166,206,191,211,169, -203,116,21,102,137,78,45,178,94,56,12,36,173,23,5,246,162,222,100,33,68, -5,210,171,40,66,236,69,144,239,6,153,65,5,5,13,201,148,70,129,148,34,102, -205,78,229,202,169,233,160,23,77,243,188,118,110,187,219,206,187,221,126, -215,43,65,195,234,101,125,94,125,31,120,158,207,243,230,11,240,47,112,187, -135,76,27,25,219,8,138,162,96,94,175,215,236,112,56,232,63,29,123,60,158, -130,72,76,238,240,146,211,249,160,200,215,48,0,0,87,207,227,195,8,83,26, -210,140,250,104,190,181,128,170,171,174,244,252,78,240,212,253,178,179, -175,127,240,210,220,236,156,65,171,213,180,18,36,57,155,125,241,242,149, -158,72,132,47,177,228,230,136,142,218,170,169,39,207,94,148,183,158,106, -238,58,215,214,102,111,105,62,209,5,160,162,49,89,232,110,106,106,154,95, -240,127,49,153,140,186,32,96,160,91,97,24,25,175,172,180,127,103,86,25, -90,81,20,64,40,129,133,67,161,116,146,242,213,2,0,20,21,22,247,241,97,225, -85,24,83,223,140,201,232,254,240,240,48,161,209,166,16,20,229,179,166,154, -12,211,113,81,12,225,0,0,9,164,44,34,148,128,28,75,238,204,187,241,143, -59,165,104,116,247,192,192,152,33,142,18,60,31,227,239,156,113,30,90,161, -40,138,93,139,74,165,116,128,54,115,60,7,156,192,207,136,18,242,227,0,0, -72,150,70,13,6,253,250,114,32,80,200,113,28,188,25,25,181,166,24,177,7, -89,89,153,167,9,125,250,140,203,229,42,93,99,217,84,4,40,87,171,77,58,32, -138,235,66,178,162,190,21,166,23,190,170,0,0,140,186,180,64,217,158,178, -6,138,242,117,32,37,113,60,30,143,19,150,236,108,181,16,139,239,218,191, -215,230,166,105,54,79,146,165,11,26,34,185,126,232,237,8,179,180,188,252, -112,113,110,162,31,0,64,5,0,192,113,63,4,179,37,159,245,77,142,61,87,107, -244,175,113,2,175,243,251,23,71,39,38,167,118,68,56,254,106,122,166,185, -229,96,77,141,234,250,141,219,157,65,54,228,249,166,145,123,129,97,18,91, -122,176,25,155,173,81,211,214,126,172,174,98,95,197,221,247,222,15,37,69, -197,182,228,208,90,104,164,253,252,217,163,191,238,18,155,135,238,123,189, -205,38,173,166,62,35,35,103,126,137,13,82,49,73,10,229,89,11,23,152,149, -165,207,85,85,181,186,237,158,109,17,96,8,101,68,133,117,220,40,10,71,178, -82,141,141,24,129,63,178,151,219,7,171,203,78,6,73,146,76,218,78,128,253, -173,247,227,228,167,82,145,227,65,146,56,214,233,116,174,194,127,199,79, -219,59,35,42,74,18,233,107,0,0,0,0,73,69,78,68,174,66,96,130}; - -static size_t xml_res_size_2 = 412; -static unsigned char xml_res_file_2[] = { -137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, -0,31,243,255,97,0,0,0,6,98,75,71,68,0,255,0,255,0,255,160,189,167,147,0, -0,0,9,112,72,89,115,0,0,13,215,0,0,13,215,1,66,40,155,120,0,0,0,7,116,73, -77,69,7,222,11,17,20,2,54,157,54,42,163,0,0,1,41,73,68,65,84,56,203,165, -147,175,78,195,80,20,198,127,167,235,11,44,4,11,65,160,113,72,82,1,9,19, -237,168,32,65,19,22,38,120,0,120,2,4,2,7,193,48,131,36,172,183,19,21,51, -35,40,28,201,4,15,128,66,177,45,65,48,104,15,130,54,225,79,71,59,56,238, -158,123,127,223,119,238,253,114,133,18,229,186,238,156,72,229,24,88,17, -225,122,56,28,108,245,122,189,55,0,187,36,124,7,84,129,219,241,248,101, -59,131,1,172,34,129,212,185,170,202,189,101,177,30,69,209,40,219,115,28, -199,182,75,220,96,237,67,136,126,16,4,131,172,233,251,254,76,28,39,23,101, -4,244,123,163,86,219,156,141,227,215,46,200,130,20,209,158,183,209,5,86, -129,71,160,159,78,179,168,202,60,200,229,175,2,245,122,125,87,85,78,129, -188,115,79,34,186,100,77,118,246,155,159,96,5,110,128,103,96,4,210,134, -100,217,24,243,32,249,206,254,190,170,30,166,203,4,164,17,134,237,243,220, -148,254,3,255,16,152,22,6,168,76,130,69,116,39,12,131,86,81,74,149,52,170, -3,224,11,108,140,105,149,249,39,226,121,126,3,244,44,123,109,85,221,235, -116,204,9,37,203,2,61,250,43,12,96,169,202,85,154,111,115,90,24,224,29, -53,46,134,245,219,91,107,252,0,0,0,0,73,69,78,68,174,66,96,130}; - -static size_t xml_res_size_3 = 672; -static unsigned char xml_res_file_3[] = { -137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, -0,31,243,255,97,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112, -72,89,115,0,0,1,187,0,0,1,187,1,58,236,227,226,0,0,0,25,116,69,88,116,83, -111,102,116,119,97,114,101,0,119,119,119,46,105,110,107,115,99,97,112,101, -46,111,114,103,155,238,60,26,0,0,2,29,73,68,65,84,56,141,149,147,193,107, -19,65,20,198,191,55,155,128,45,10,162,212,30,84,170,226,69,132,30,236,193, -139,158,164,168,180,80,90,115,17,68,61,232,201,131,244,228,255,80,65,241, -164,103,15,130,166,45,141,173,72,107,244,82,17,27,111,134,144,64,84,170, -81,170,151,88,72,118,179,179,187,179,159,135,108,54,217,70,4,31,60,120, -195,204,247,123,111,190,97,132,36,68,100,4,192,24,254,47,62,146,252,148, -138,22,99,174,171,23,60,79,67,68,65,4,16,17,72,187,128,236,80,166,82,41, -164,211,233,75,0,98,0,180,214,176,29,27,74,89,176,44,21,3,18,25,157,21, -233,34,99,128,40,129,101,89,80,74,181,83,4,162,84,66,220,17,246,2,84,92, -136,128,18,98,177,118,31,179,31,206,226,202,250,49,220,222,56,131,183,191, -22,96,41,5,203,178,48,157,31,2,20,161,148,234,7,136,8,94,252,120,132,231, -181,135,200,28,157,197,221,211,121,156,59,120,25,15,74,183,176,105,151, -48,181,182,31,0,48,189,118,32,49,1,72,2,192,140,227,56,188,186,122,146, -115,133,155,108,54,155,116,28,135,45,215,101,109,187,74,207,243,232,121, -30,199,151,6,232,251,62,141,49,4,48,67,178,199,3,17,212,189,45,12,15,30, -233,250,160,20,134,7,71,98,31,94,78,54,250,222,178,123,25,17,12,237,58, -140,45,231,75,44,22,17,148,126,191,131,97,0,17,193,197,149,61,8,97,254, -110,162,0,56,127,232,26,214,127,46,98,245,251,99,124,107,86,240,236,243, -61,220,121,63,129,202,118,1,23,150,119,3,0,38,86,246,38,71,232,120,224, -106,205,166,221,228,147,242,28,175,191,26,229,228,242,62,222,120,125,138, -111,106,79,25,134,33,125,223,231,248,210,0,27,141,6,181,214,97,199,131, -24,160,181,166,227,56,212,90,211,247,125,6,65,64,99,76,44,174,215,235,44, -151,203,172,86,171,204,102,179,27,0,78,244,1,90,173,22,61,207,75,0,140, -49,180,109,155,197,98,145,182,109,51,151,203,109,2,24,5,32,36,147,38,238, -12,17,1,73,4,65,219,196,124,62,255,53,147,201,76,1,40,50,234,28,79,16,24, -211,215,57,12,67,26,99,232,186,110,56,63,63,95,232,237,220,73,137,190,243, -241,104,243,95,81,6,80,137,59,71,241,7,28,152,90,249,152,21,25,66,0,0,0, -0,73,69,78,68,174,66,96,130}; - -static size_t xml_res_size_4 = 418; -static unsigned char xml_res_file_4[] = { -137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, -0,31,243,255,97,0,0,0,25,116,69,88,116,83,111,102,116,119,97,114,101,0, -65,100,111,98,101,32,73,109,97,103,101,82,101,97,100,121,113,201,101,60, -0,0,1,68,73,68,65,84,120,218,148,83,61,107,132,64,16,29,197,202,70,184, -66,108,252,73,18,76,68,176,136,135,69,10,3,214,254,14,27,13,39,39,156,193, -46,228,119,249,85,30,130,95,108,156,13,43,42,119,135,247,224,241,216,157, -153,183,59,142,203,17,66,0,145,166,105,56,137,11,143,17,217,182,253,185, -218,65,3,100,146,36,100,28,199,135,196,156,137,33,171,65,242,204,104,24, -6,170,85,85,65,89,150,148,69,81,64,158,231,148,8,77,211,48,207,141,227, -56,100,117,179,65,223,247,84,57,142,91,145,231,121,170,136,174,235,64,215, -117,204,117,195,9,187,12,24,89,14,154,152,166,73,77,130,32,8,103,3,12,48, -3,118,42,83,102,160,170,42,40,138,2,135,195,1,60,207,195,26,87,184,101, -176,5,238,213,117,13,108,98,168,178,44,211,26,225,213,136,255,119,65,6, -195,60,195,30,124,133,47,84,219,182,5,208,223,78,228,122,109,103,178,245, -86,151,241,105,66,116,172,190,239,147,249,27,188,31,47,171,83,190,47,199, -213,122,25,103,109,226,13,248,61,5,219,248,114,172,194,189,130,45,238,221, -128,195,158,224,73,156,99,3,36,73,2,199,113,64,248,253,249,160,118,150, -101,145,44,203,160,105,154,121,84,203,247,114,75,87,45,224,91,192,31,71, -20,197,93,183,192,92,172,89,26,68,211,127,238,62,217,77,244,39,192,0,184, -55,5,114,19,230,197,246,0,0,0,0,73,69,78,68,174,66,96,130}; - -static size_t xml_res_size_5 = 717; -static unsigned char xml_res_file_5[] = { -60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, -110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, -115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, -47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, -47,119,120,120,114,99,34,62,10,32,32,60,111,98,106,101,99,116,32,99,108, -97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61, -34,97,115,116,121,108,101,34,62,99,111,100,101,102,111,114,109,97,116,116, -101,114,100,108,103,95,99,111,100,101,102,111,114,109,97,116,116,101,114, -95,98,105,116,109,97,112,115,46,99,112,112,36,97,115,116,121,108,101,46, -112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99, -116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110, -97,109,101,61,34,99,108,97,110,103,34,62,99,111,100,101,102,111,114,109, -97,116,116,101,114,100,108,103,95,99,111,100,101,102,111,114,109,97,116, -116,101,114,95,98,105,116,109,97,112,115,46,99,112,112,36,99,108,97,110, -103,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106, -101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34, -32,110,97,109,101,61,34,99,111,110,102,105,103,117,114,101,34,62,99,111, -100,101,102,111,114,109,97,116,116,101,114,100,108,103,95,99,111,100,101, -102,111,114,109,97,116,116,101,114,95,98,105,116,109,97,112,115,46,99,112, -112,36,46,46,95,76,105,116,101,69,100,105,116,111,114,95,114,101,115,95, -99,111,110,102,105,103,117,114,101,46,112,110,103,60,47,111,98,106,101, -99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34, -119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,112,97,103,101, -95,119,104,105,116,101,95,99,112,108,117,115,112,108,117,115,34,62,99,111, -100,101,102,111,114,109,97,116,116,101,114,100,108,103,95,99,111,100,101, -102,111,114,109,97,116,116,101,114,95,98,105,116,109,97,112,115,46,99,112, -112,36,46,46,95,99,111,100,101,108,105,116,101,45,105,99,111,110,115,95, -109,105,109,101,95,49,54,95,112,97,103,101,95,119,104,105,116,101,95,99, -112,108,117,115,112,108,117,115,46,112,110,103,60,47,111,98,106,101,99, -116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119, -120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,112,104,112,34,62, -99,111,100,101,102,111,114,109,97,116,116,101,114,100,108,103,95,99,111, -100,101,102,111,114,109,97,116,116,101,114,95,98,105,116,109,97,112,115, -46,99,112,112,36,46,46,95,99,111,100,101,108,105,116,101,45,105,99,111, -110,115,95,109,105,109,101,95,49,54,95,112,104,112,46,112,110,103,60,47, -111,98,106,101,99,116,62,10,60,47,114,101,115,111,117,114,99,101,62,10}; - -void wxCrafterGgLOZbInitBitmapResources() -{ - - // Check for memory FS. If not present, load the handler: - { - wxMemoryFSHandler::AddFile(wxT("XRC_resource/dummy_file"), wxT("dummy one")); - wxFileSystem fsys; - wxFSFile *f = fsys.OpenFile(wxT("memory:XRC_resource/dummy_file")); - wxMemoryFSHandler::RemoveFile(wxT("XRC_resource/dummy_file")); - if (f) delete f; - else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase); - } - - XRC_ADD_FILE(wxT("XRC_resource/codeformatterdlg_codeformatter_bitmaps.cpp$astyle.png"), xml_res_file_0, xml_res_size_0, wxT("image/x-apple-ios-png")); - XRC_ADD_FILE(wxT("XRC_resource/codeformatterdlg_codeformatter_bitmaps.cpp$clang.png"), xml_res_file_1, xml_res_size_1, wxT("image/x-apple-ios-png")); - XRC_ADD_FILE(wxT("XRC_resource/codeformatterdlg_codeformatter_bitmaps.cpp$.._LiteEditor_res_configure.png"), xml_res_file_2, xml_res_size_2, wxT("image/x-apple-ios-png")); - XRC_ADD_FILE(wxT("XRC_resource/codeformatterdlg_codeformatter_bitmaps.cpp$.._codelite-icons_mime_16_page_white_cplusplus.png"), xml_res_file_3, xml_res_size_3, wxT("image/x-apple-ios-png")); - XRC_ADD_FILE(wxT("XRC_resource/codeformatterdlg_codeformatter_bitmaps.cpp$.._codelite-icons_mime_16_php.png"), xml_res_file_4, xml_res_size_4, wxT("image/x-apple-ios-png")); - XRC_ADD_FILE(wxT("XRC_resource/codeformatterdlg_codeformatter_bitmaps.cpp$_home_eran_devl_codelite_CodeFormatter_codeformatterdlg_codeformatter_bitmaps.xrc"), xml_res_file_5, xml_res_size_5, wxT("text/xml")); - wxXmlResource::Get()->Load(wxT("memory:XRC_resource/codeformatterdlg_codeformatter_bitmaps.cpp$_home_eran_devl_codelite_CodeFormatter_codeformatterdlg_codeformatter_bitmaps.xrc")); -} +// +// This file was automatically generated by wxrc, do not edit by hand. +// + +#include + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +#include +#include +#include +#include + +#if wxCHECK_VERSION(2,8,5) && wxABI_VERSION >= 20805 + #define XRC_ADD_FILE(name, data, size, mime) \ + wxMemoryFSHandler::AddFileWithMimeType(name, data, size, mime) +#else + #define XRC_ADD_FILE(name, data, size, mime) \ + wxMemoryFSHandler::AddFile(name, data, size) +#endif + +static size_t xml_res_size_0 = 90; +static unsigned char xml_res_file_0[] = { +60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, +110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, +115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, +47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, +47,119,120,120,114,99,34,47,62,10}; + +void wxCrafterGgLOZbInitBitmapResources() +{ + + // Check for memory FS. If not present, load the handler: + { + wxMemoryFSHandler::AddFile(wxT("XRC_resource/dummy_file"), wxT("dummy one")); + wxFileSystem fsys; + wxFSFile *f = fsys.OpenFile(wxT("memory:XRC_resource/dummy_file")); + wxMemoryFSHandler::RemoveFile(wxT("XRC_resource/dummy_file")); + if (f) delete f; + else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase); + } + + XRC_ADD_FILE(wxT("XRC_resource/codeformatterdlg_codeformatter_bitmaps.cpp$C__src_codelite_CodeFormatter_codeformatterdlg_codeformatter_bitmaps.xrc"), xml_res_file_0, xml_res_size_0, wxT("text/xml")); + wxXmlResource::Get()->Load(wxT("memory:XRC_resource/codeformatterdlg_codeformatter_bitmaps.cpp$C__src_codelite_CodeFormatter_codeformatterdlg_codeformatter_bitmaps.xrc")); +} diff -Nru codelite-8.0.1+dfsg2/CodeFormatter/codeformatterdlg.cpp codelite-9.0+dfsg/CodeFormatter/codeformatterdlg.cpp --- codelite-8.0.1+dfsg2/CodeFormatter/codeformatterdlg.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/CodeFormatter/codeformatterdlg.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -33,6 +33,7 @@ #include #include "clSTCLineKeeper.h" #include "fileextmanager.h" +#include "ColoursAndFontsManager.h" static const wxString PHPSample = "GetGrid()); ::wxPGPropertyBooleanUseCheckbox(m_pgMgrClang->GetGrid()); ::wxPGPropertyBooleanUseCheckbox(m_pgMgrPhp->GetGrid()); - + // center the dialog Centre(); @@ -82,12 +83,12 @@ GetSizer()->Fit(this); InitDialog(); UpdatePreview(); - - // Clear the modified status + + // Clear the modified status m_pgMgrPhp->GetGrid()->ClearModifiedStatus(); m_pgMgrAstyle->GetGrid()->ClearModifiedStatus(); m_pgMgrClang->GetGrid()->ClearModifiedStatus(); - + // set the selection based on the editor IEditor* editor = m_mgr->GetActiveEditor(); if(editor && FileExtManager::IsPHPFile(editor->GetFileName())) { @@ -97,15 +98,21 @@ } else { m_treebook->SetSelection(0); } - + SetName("CodeFormatterDlg"); WindowAttrManager::Load(this); } void CodeFormatterDlg::InitDialog() { - long formatOptions = m_options.GetOptions() & AS_ALL_FORMAT_OPTIONS; - long indentOptions = m_options.GetOptions() & AS_ALL_INDENT_OPTIONS; + LexerConf::Ptr_t text = ColoursAndFontsManager::Get().GetLexer("text"); + if(text) { + text->Apply(m_stc); + text->Apply(m_stcFixerPreview); + } + + long formatOptions = (m_options.GetOptions() & AS_ALL_FORMAT_OPTIONS); + long indentOptions = (m_options.GetOptions() & AS_ALL_INDENT_OPTIONS); m_pgPropIndentation->SetValue(indentOptions); m_pgPropFormatting->SetValue(formatOptions); @@ -148,6 +155,7 @@ // Select the proper engine m_choiceCxxEngine->SetSelection((int)m_options.GetEngine()); + m_choicePhpFormatter->SetSelection((int)m_options.GetPhpEngine()); //------------------------------------------------------------------ // Clang options @@ -175,6 +183,10 @@ // PHP flags m_pgPropPhpFormatterOptions->SetValue((int)m_options.GetPHPFormatterOptions()); + m_filePickerPHPCsFixerPhar->SetPath(m_options.GetPHPCSFixerPhar()); + m_filePickerPhpExec->SetPath(m_options.GetPhpExecutable()); + m_stc->SetText(m_options.GetPHPCSFixerPharOptions()); + // General Options m_checkBoxFormatOnSave->SetValue(m_options.HasFlag(kCF_AutoFormatOnFileSave)); @@ -190,16 +202,19 @@ #define ID_ASTYLE_HELP 1309 #define ID_CLANG_FORMAST_HELP 1310 +#define ID_PHP_FORMAST_HELP 1311 void CodeFormatterDlg::OnHelp(wxCommandEvent& e) { wxUnusedVar(e); static wxString astyleHelpUrl(wxT("http://astyle.sourceforge.net/astyle.html")); static wxString clangFormatHelpUrl(wxT("http://clang.llvm.org/docs/ClangFormatStyleOptions.html")); + static wxString phpFormatHelpUrl(wxT("https://github.com/FriendsOfPHP/PHP-CS-Fixer")); wxMenu menu; menu.Append(ID_ASTYLE_HELP, _("AStyle help page")); menu.Append(ID_CLANG_FORMAST_HELP, _("clang-format help page")); + menu.Append(ID_PHP_FORMAST_HELP, _("PHP-CS-Fixer help page")); wxRect size = m_buttonHelp->GetSize(); wxPoint menuPos(0, size.GetHeight()); @@ -210,6 +225,9 @@ } else if(res == ID_CLANG_FORMAST_HELP) { ::wxLaunchDefaultBrowser(clangFormatHelpUrl); + + } else if(res == ID_PHP_FORMAST_HELP) { + ::wxLaunchDefaultBrowser(phpFormatHelpUrl); } } @@ -244,13 +262,17 @@ m_stcPhpPreview->SetText(output); m_stcPhpPreview->SetEditable(false); } -} - -CodeFormatterDlg::~CodeFormatterDlg() -{ + { + // Update the preview command + m_stcFixerPreview->SetEditable(true); + m_stcFixerPreview->SetText(m_options.GetPhpFixerCommand()); + m_stcFixerPreview->SetEditable(false); + } } +CodeFormatterDlg::~CodeFormatterDlg() {} + void CodeFormatterDlg::OnApplyUI(wxUpdateUIEvent& event) { event.Enable(m_isDirty); } void CodeFormatterDlg::OnCustomAstyleFlags(wxCommandEvent& event) @@ -342,3 +364,30 @@ m_isDirty = true; m_options.SetFlag(kCF_AutoFormatOnFileSave, event.IsChecked()); } +void CodeFormatterDlg::OnPHPCSFixerOptionsUpdated(wxStyledTextEvent& event) +{ + m_isDirty = true; + m_options.SetPHPCSFixerPharOptions(m_stc->GetText()); + CallAfter(&CodeFormatterDlg::UpdatePreview); + event.Skip(); +} +void CodeFormatterDlg::OnPharFileSelected(wxFileDirPickerEvent& event) +{ + m_isDirty = true; + m_options.SetPHPCSFixerPhar(m_filePickerPHPCsFixerPhar->GetPath()); + CallAfter(&CodeFormatterDlg::UpdatePreview); + event.Skip(); +} +void CodeFormatterDlg::OnPhpFileSelected(wxFileDirPickerEvent& event) +{ + m_isDirty = true; + m_options.SetPhpExecutable(m_filePickerPhpExec->GetPath()); + CallAfter(&CodeFormatterDlg::UpdatePreview); + event.Skip(); +} +void CodeFormatterDlg::OnChoicephpformatterChoiceSelected(wxCommandEvent& event) +{ + m_isDirty = true; + m_options.SetPhpEngine((PHPFormatterEngine)event.GetSelection()); + CallAfter(&CodeFormatterDlg::UpdatePreview); +} diff -Nru codelite-8.0.1+dfsg2/CodeFormatter/codeformatterdlg.h codelite-9.0+dfsg/CodeFormatter/codeformatterdlg.h --- codelite-8.0.1+dfsg2/CodeFormatter/codeformatterdlg.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/CodeFormatter/codeformatterdlg.h 2015-10-11 13:56:07.000000000 +0000 @@ -40,6 +40,10 @@ IManager* m_mgr; protected: + virtual void OnChoicephpformatterChoiceSelected(wxCommandEvent& event); + virtual void OnPHPCSFixerOptionsUpdated(wxStyledTextEvent& event); + virtual void OnPharFileSelected(wxFileDirPickerEvent& event); + virtual void OnPhpFileSelected(wxFileDirPickerEvent& event); virtual void OnChoicecxxengineChoiceSelected(wxCommandEvent& event); virtual void OnFormatOnSave(wxCommandEvent& event); virtual void OnPgmgrastylePgChanged(wxPropertyGridEvent& event); diff -Nru codelite-8.0.1+dfsg2/CodeFormatter/codeformatterdlg.wxcp codelite-9.0+dfsg/CodeFormatter/codeformatterdlg.wxcp --- codelite-8.0.1+dfsg2/CodeFormatter/codeformatterdlg.wxcp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/CodeFormatter/codeformatterdlg.wxcp 2015-10-11 13:56:07.000000000 +0000 @@ -1,7 +1,7 @@ { "metadata": { "m_generatedFilesDir": ".", - "m_objCounter": 179, + "m_objCounter": 219, "m_includeFiles": ["formatoptions.h", "PHPFormatterBuffer.h"], "m_bitmapFunction": "wxCrafterGgLOZbInitBitmapResources", "m_bitmapsFile": "codeformatterdlg_codeformatter_bitmaps.cpp", @@ -286,7 +286,7 @@ }, { "type": "bitmapPicker", "m_label": "Bitmap File:", - "m_path": "../LiteEditor/res/configure.png" + "m_path": "" }, { "type": "bool", "m_label": "Selected", @@ -375,6 +375,107 @@ }], "m_events": [], "m_children": [{ + "m_type": 4454, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "Spacer196" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "0,0" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4415, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_LEFT"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_checkBoxFormatOnSave" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "When saving a file, automatically format it" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Format editor on file save" + }, { + "type": "bool", + "m_label": "Value:", + "m_value": false + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_CHECKBOX_CLICKED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnFormatOnSave(wxCommandEvent& event)", + "m_description": "Process a wxEVT_COMMAND_CHECKBOX_CLICKED event, when the checkbox is clicked.", + "m_noBody": false + }], + "m_children": [] + }, { "m_type": 4405, "proportion": 0, "border": 5, @@ -397,7 +498,7 @@ }, { "type": "string", "m_label": "Name:", - "m_value": "m_staticText162" + "m_value": "m_staticText115" }, { "type": "multi-string", "m_label": "Tooltip:", @@ -441,7 +542,7 @@ }, { "type": "multi-string", "m_label": "Label:", - "m_value": "Format editor on file save:" + "m_value": "C++ formatter:" }, { "type": "string", "m_label": "Wrap:", @@ -450,13 +551,13 @@ "m_events": [], "m_children": [] }, { - "m_type": 4415, + "m_type": 4411, "proportion": 0, "border": 5, "gbSpan": "1,1", "gbPosition": "0,0", "m_styles": [], - "m_sizerFlags": ["wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_LEFT"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND", "wxALIGN_CENTER_VERTICAL"], "m_properties": [{ "type": "winid", "m_label": "ID:", @@ -472,11 +573,11 @@ }, { "type": "string", "m_label": "Name:", - "m_value": "m_checkBoxFormatOnSave" + "m_value": "m_choiceCxxEngine" }, { "type": "multi-string", "m_label": "Tooltip:", - "m_value": "When saving a file, automatically format it" + "m_value": "Select the formatter engine for C/C++\\nNote that JavaScript, clang-format is always used" }, { "type": "colour", "m_label": "Bg Colour:", @@ -514,20 +615,20 @@ "m_label": "Style:", "m_value": "" }, { - "type": "string", - "m_label": "Label:", - "m_value": "" + "type": "multi-string", + "m_label": "Choices:", + "m_value": "AStyle;clang-format" }, { - "type": "bool", - "m_label": "Value:", - "m_value": false + "type": "string", + "m_label": "Selection:", + "m_value": "1" }], "m_events": [{ - "m_eventName": "wxEVT_COMMAND_CHECKBOX_CLICKED", + "m_eventName": "wxEVT_COMMAND_CHOICE_SELECTED", "m_eventClass": "wxCommandEvent", "m_eventHandler": "wxCommandEventHandler", - "m_functionNameAndSignature": "OnFormatOnSave(wxCommandEvent& event)", - "m_description": "Process a wxEVT_COMMAND_CHECKBOX_CLICKED event, when the checkbox is clicked.", + "m_functionNameAndSignature": "OnChoicecxxengineChoiceSelected(wxCommandEvent& event)", + "m_description": "Process a wxEVT_COMMAND_CHOICE_SELECTED event, when an item on the list is selected.", "m_noBody": false }], "m_children": [] @@ -554,7 +655,7 @@ }, { "type": "string", "m_label": "Name:", - "m_value": "m_staticText115" + "m_value": "m_staticText198" }, { "type": "multi-string", "m_label": "Tooltip:", @@ -598,7 +699,7 @@ }, { "type": "multi-string", "m_label": "Label:", - "m_value": "Select C++ formatter:" + "m_value": "PHP formatter:" }, { "type": "string", "m_label": "Wrap:", @@ -613,7 +714,7 @@ "gbSpan": "1,1", "gbPosition": "0,0", "m_styles": [], - "m_sizerFlags": ["wxBOTTOM", "wxEXPAND", "wxALIGN_CENTER_VERTICAL"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "winid", "m_label": "ID:", @@ -629,11 +730,11 @@ }, { "type": "string", "m_label": "Name:", - "m_value": "m_choiceCxxEngine" + "m_value": "m_choicePhpFormatter" }, { "type": "multi-string", "m_label": "Tooltip:", - "m_value": "Select the formatter engine for C/C++\\nNote that JavaScript, clang-format is always used" + "m_value": "Select the formatter engine for PHP files" }, { "type": "colour", "m_label": "Bg Colour:", @@ -673,17 +774,17 @@ }, { "type": "multi-string", "m_label": "Choices:", - "m_value": "AStyle;clang-format" + "m_value": "Builtin;PHP-CS-Fixer" }, { "type": "string", "m_label": "Selection:", - "m_value": "1" + "m_value": "0" }], "m_events": [{ "m_eventName": "wxEVT_COMMAND_CHOICE_SELECTED", "m_eventClass": "wxCommandEvent", "m_eventHandler": "wxCommandEventHandler", - "m_functionNameAndSignature": "OnChoicecxxengineChoiceSelected(wxCommandEvent& event)", + "m_functionNameAndSignature": "OnChoicephpformatterChoiceSelected(wxCommandEvent& event)", "m_description": "Process a wxEVT_COMMAND_CHOICE_SELECTED event, when an item on the list is selected.", "m_noBody": false }], @@ -762,7 +863,7 @@ }, { "type": "bitmapPicker", "m_label": "Bitmap File:", - "m_path": "../codelite-icons/mime/16/page_white_cplusplus.png" + "m_path": "" }, { "type": "bool", "m_label": "Selected", @@ -848,7 +949,7 @@ }, { "type": "bitmapPicker", "m_label": "Bitmap File:", - "m_path": "astyle.png" + "m_path": "" }, { "type": "bool", "m_label": "Selected", @@ -2063,7 +2164,7 @@ }, { "type": "bitmapPicker", "m_label": "Bitmap File:", - "m_path": "clang.png" + "m_path": "" }, { "type": "bool", "m_label": "Selected", @@ -3044,7 +3145,7 @@ }, { "type": "bitmapPicker", "m_label": "Bitmap File:", - "m_path": "../codelite-icons/mime/16/php.png" + "m_path": "" }, { "type": "bool", "m_label": "Selected", @@ -3060,123 +3161,126 @@ }], "m_events": [], "m_children": [{ - "m_type": 4401, - "proportion": 1, + "m_type": 4441, + "proportion": 0, "border": 5, "gbSpan": "1,1", "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_styles": ["wxTAB_TRAVERSAL"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { "type": "string", "m_label": "Minimum Size:", "m_value": "-1,-1" }, { "type": "string", "m_label": "Name:", - "m_value": "boxSizer99" + "m_value": "m_panelBuiltIn" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" }, { "type": "string", "m_label": "Style:", "m_value": "" }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + "type": "string", + "m_label": "Label:", + "m_value": "Builtin" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "bool", + "m_label": "Selected", + "m_value": false + }, { + "type": "bool", + "m_label": "Null Page", + "m_value": false + }, { + "type": "bool", + "m_label": "Expand Node", + "m_value": true }], "m_events": [], "m_children": [{ - "m_type": 4447, + "m_type": 4401, "proportion": 1, "border": 5, "gbSpan": "1,1", "gbPosition": "0,0", - "m_styles": ["wxSP_LIVE_UPDATE"], - "m_sizerFlags": ["wxEXPAND"], + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { "type": "string", "m_label": "Minimum Size:", "m_value": "-1,-1" }, { "type": "string", "m_label": "Name:", - "m_value": "m_splitter119" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" + "m_value": "boxSizer99" }, { "type": "string", "m_label": "Style:", "m_value": "" }, { "type": "choice", - "m_label": "Split Mode:", + "m_label": "Orientation:", "m_selection": 0, - "m_options": ["wxSPLIT_VERTICAL", "wxSPLIT_HORIZONTAL"] - }, { - "type": "string", - "m_label": "Sash Gravity:", - "m_value": "0.5" - }, { - "type": "string", - "m_label": "Minimum Pane Size:", - "m_value": "10" - }, { - "type": "string", - "m_label": "Sash Position:", - "m_value": "0" + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] }], "m_events": [], "m_children": [{ - "m_type": 4448, - "proportion": 0, + "m_type": 4447, + "proportion": 1, "border": 5, "gbSpan": "1,1", "gbPosition": "0,0", - "m_styles": ["wxTAB_TRAVERSAL"], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_styles": ["wxSP_LIVE_UPDATE"], + "m_sizerFlags": ["wxEXPAND"], "m_properties": [{ "type": "winid", "m_label": "ID:", @@ -3192,7 +3296,7 @@ }, { "type": "string", "m_label": "Name:", - "m_value": "m_splitterPage123" + "m_value": "m_splitter119" }, { "type": "multi-string", "m_label": "Tooltip:", @@ -3233,180 +3337,199 @@ "type": "string", "m_label": "Style:", "m_value": "" + }, { + "type": "choice", + "m_label": "Split Mode:", + "m_selection": 0, + "m_options": ["wxSPLIT_VERTICAL", "wxSPLIT_HORIZONTAL"] + }, { + "type": "string", + "m_label": "Sash Gravity:", + "m_value": "0.5" + }, { + "type": "string", + "m_label": "Minimum Pane Size:", + "m_value": "10" + }, { + "type": "string", + "m_label": "Sash Position:", + "m_value": "0" }], "m_events": [], "m_children": [{ - "m_type": 4401, - "proportion": 1, + "m_type": 4448, + "proportion": 0, "border": 5, "gbSpan": "1,1", "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_styles": ["wxTAB_TRAVERSAL"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { "type": "string", "m_label": "Minimum Size:", "m_value": "-1,-1" }, { "type": "string", "m_label": "Name:", - "m_value": "boxSizer129" + "m_value": "m_splitterPage123" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false }, { "type": "string", - "m_label": "Style:", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", "m_value": "" }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + "type": "string", + "m_label": "Style:", + "m_value": "" }], "m_events": [], "m_children": [{ - "m_type": 4485, + "m_type": 4401, "proportion": 1, - "border": 2, + "border": 5, "gbSpan": "1,1", "gbPosition": "0,0", - "m_styles": ["wxPG_DESCRIPTION", "wxPG_SPLITTER_AUTO_CENTER", "wxPG_BOLD_MODIFIED"], + "m_styles": [], "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { "type": "string", "m_label": "Minimum Size:", "m_value": "-1,-1" }, { "type": "string", "m_label": "Name:", - "m_value": "m_pgMgrPhp" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" + "m_value": "boxSizer129" }, { "type": "string", "m_label": "Style:", "m_value": "" }, { - "type": "integer", - "m_label": "Sash Position:", - "m_value": -1 - }, { - "type": "bool", - "m_label": "Set Splitter Left:", - "m_value": false - }], - "m_events": [{ - "m_eventName": "wxEVT_PG_CHANGED", - "m_eventClass": "wxPropertyGridEvent", - "m_eventHandler": "wxPropertyGridEventHandler", - "m_functionNameAndSignature": "OnPgmgrphpPgChanged(wxPropertyGridEvent& event)", - "m_description": "Respond to wxEVT_PG_CHANGED event, generated when property value has been changed by the user", - "m_noBody": false + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] }], + "m_events": [], "m_children": [{ - "m_type": 4486, - "proportion": 0, - "border": 5, + "m_type": 4485, + "proportion": 1, + "border": 2, "gbSpan": "1,1", "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": [], + "m_styles": ["wxPG_DESCRIPTION", "wxPG_SPLITTER_AUTO_CENTER", "wxPG_BOLD_MODIFIED"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { "type": "string", - "m_label": "Name:", - "m_value": "m_pgPropPhpFormatter" + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" }, { "type": "string", - "m_label": "Label:", - "m_value": "PHP" + "m_label": "Name:", + "m_value": "m_pgMgrPhp" }, { "type": "multi-string", "m_label": "Tooltip:", - "m_value": "PHP related settings" + "m_value": "" }, { "type": "colour", "m_label": "Bg Colour:", "colour": "" }, { - "type": "choice", - "m_label": "Property Editor Control", - "m_selection": 0, - "m_options": ["", "TextCtrl", "Choice", "ComboBox", "CheckBox", "TextCtrlAndButton", "ChoiceAndButton", "SpinCtrl", "DatePickerCtrl"] - }, { - "type": "choice", - "m_label": "Kind:", - "m_selection": 0, - "m_options": ["wxPropertyCategory", "wxIntProperty", "wxFloatProperty", "wxBoolProperty", "wxStringProperty", "wxLongStringProperty", "wxDirProperty", "wxArrayStringProperty", "wxFileProperty", "wxEnumProperty", "wxEditEnumProperty", "wxFlagsProperty", "wxDateProperty", "wxImageFileProperty", "wxFontProperty", "wxSystemColourProperty"] + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" }, { - "type": "string", - "m_label": "String Value", + "type": "font", + "m_label": "Font:", "m_value": "" }, { - "type": "multi-string", - "m_label": "Choices:", - "m_value": "" + "type": "bool", + "m_label": "Hidden", + "m_value": false }, { - "type": "multi-string", - "m_label": "Array Integer Values", - "m_value": "" + "type": "bool", + "m_label": "Disabled", + "m_value": false }, { "type": "bool", - "m_label": "Bool Value", - "m_value": true + "m_label": "Focused", + "m_value": false }, { "type": "string", - "m_label": "Wildcard", + "m_label": "Class Name:", "m_value": "" }, { - "type": "font", - "m_label": "Font:", + "type": "string", + "m_label": "Include File:", "m_value": "" }, { - "type": "colour", - "m_label": "Initial Colour", - "colour": "" + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "integer", + "m_label": "Sash Position:", + "m_value": -1 + }, { + "type": "bool", + "m_label": "Set Splitter Left:", + "m_value": false + }], + "m_events": [{ + "m_eventName": "wxEVT_PG_CHANGED", + "m_eventClass": "wxPropertyGridEvent", + "m_eventHandler": "wxPropertyGridEventHandler", + "m_functionNameAndSignature": "OnPgmgrphpPgChanged(wxPropertyGridEvent& event)", + "m_description": "Respond to wxEVT_PG_CHANGED event, generated when property value has been changed by the user", + "m_noBody": false }], - "m_events": [], "m_children": [{ "m_type": 4486, "proportion": 0, @@ -3418,15 +3541,15 @@ "m_properties": [{ "type": "string", "m_label": "Name:", - "m_value": "m_pgPropPhpFormatterOptions" + "m_value": "m_pgPropPhpFormatter" }, { "type": "string", "m_label": "Label:", - "m_value": "PHPFormatter Options" + "m_value": "PHP" }, { "type": "multi-string", "m_label": "Tooltip:", - "m_value": "" + "m_value": "PHP related settings" }, { "type": "colour", "m_label": "Bg Colour:", @@ -3439,7 +3562,7 @@ }, { "type": "choice", "m_label": "Kind:", - "m_selection": 11, + "m_selection": 0, "m_options": ["wxPropertyCategory", "wxIntProperty", "wxFloatProperty", "wxBoolProperty", "wxStringProperty", "wxLongStringProperty", "wxDirProperty", "wxArrayStringProperty", "wxFileProperty", "wxEnumProperty", "wxEditEnumProperty", "wxFlagsProperty", "wxDateProperty", "wxImageFileProperty", "wxFontProperty", "wxSystemColourProperty"] }, { "type": "string", @@ -3448,11 +3571,11 @@ }, { "type": "multi-string", "m_label": "Choices:", - "m_value": "Break before class;Break before function;Break before 'while';Break before 'foreach';'else' doesn't break;Break after 'heredoc' statement;Break PHP Arrays vertically;Break after string concatentation operator (\".\")" + "m_value": "" }, { "type": "multi-string", "m_label": "Array Integer Values", - "m_value": "kPFF_BreakBeforeClass;kPFF_BreakBeforeFunction;kPFF_BreakBeforeWhile;kPFF_BreakBeforeForeach;kPFF_ElseOnSameLineAsClosingCurlyBrace;kPFF_BreakAfterHeredoc;kPFF_VerticalArrays;kPFF_BreakAfterStringConcatentation" + "m_value": "" }, { "type": "bool", "m_label": "Bool Value", @@ -3471,227 +3594,1096 @@ "colour": "" }], "m_events": [], - "m_children": [] + "m_children": [{ + "m_type": 4486, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "m_pgPropPhpFormatterOptions" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "PHPFormatter Options" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "choice", + "m_label": "Property Editor Control", + "m_selection": 0, + "m_options": ["", "TextCtrl", "Choice", "ComboBox", "CheckBox", "TextCtrlAndButton", "ChoiceAndButton", "SpinCtrl", "DatePickerCtrl"] + }, { + "type": "choice", + "m_label": "Kind:", + "m_selection": 11, + "m_options": ["wxPropertyCategory", "wxIntProperty", "wxFloatProperty", "wxBoolProperty", "wxStringProperty", "wxLongStringProperty", "wxDirProperty", "wxArrayStringProperty", "wxFileProperty", "wxEnumProperty", "wxEditEnumProperty", "wxFlagsProperty", "wxDateProperty", "wxImageFileProperty", "wxFontProperty", "wxSystemColourProperty"] + }, { + "type": "string", + "m_label": "String Value", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Choices:", + "m_value": "Break before class;Break before function;Break before 'while';Break before 'foreach';'else' doesn't break;Break after 'heredoc' statement;Break PHP Arrays vertically;Break after string concatentation operator (\".\")" + }, { + "type": "multi-string", + "m_label": "Array Integer Values", + "m_value": "kPFF_BreakBeforeClass;kPFF_BreakBeforeFunction;kPFF_BreakBeforeWhile;kPFF_BreakBeforeForeach;kPFF_ElseOnSameLineAsClosingCurlyBrace;kPFF_BreakAfterHeredoc;kPFF_VerticalArrays;kPFF_BreakAfterStringConcatentation" + }, { + "type": "bool", + "m_label": "Bool Value", + "m_value": true + }, { + "type": "string", + "m_label": "Wildcard", + "m_value": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Initial Colour", + "colour": "" + }], + "m_events": [], + "m_children": [] + }] }] }] }] - }] - }, { - "m_type": 4448, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": ["wxTAB_TRAVERSAL"], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_splitterPage127" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }], - "m_events": [], - "m_children": [{ - "m_type": 4401, - "proportion": 1, + "m_type": 4448, + "proportion": 0, "border": 5, "gbSpan": "1,1", "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_styles": ["wxTAB_TRAVERSAL"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { "type": "string", "m_label": "Minimum Size:", "m_value": "-1,-1" }, { "type": "string", "m_label": "Name:", - "m_value": "boxSizer131" + "m_value": "m_splitterPage127" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false }, { "type": "string", - "m_label": "Style:", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", "m_value": "" }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + "type": "string", + "m_label": "Style:", + "m_value": "" }], "m_events": [], "m_children": [{ - "m_type": 4466, + "m_type": 4401, "proportion": 1, - "border": 2, + "border": 5, "gbSpan": "1,1", "gbPosition": "0,0", "m_styles": [], "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { "type": "string", "m_label": "Minimum Size:", "m_value": "-1,-1" }, { "type": "string", "m_label": "Name:", - "m_value": "m_stcPhpPreview" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" + "m_value": "boxSizer131" }, { "type": "string", "m_label": "Style:", "m_value": "" }, { - "type": "bool", - "m_label": "Fold Margin", - "m_value": false - }, { - "type": "bool", - "m_label": "Line Number Margin", - "m_value": false - }, { - "type": "bool", - "m_label": "Separator Margin", - "m_value": false - }, { - "type": "bool", - "m_label": "Symbol Margin", - "m_value": false - }, { - "type": "choice", - "m_label": "Wrap Text", - "m_selection": 0, - "m_options": ["None", "Word", "Char"] - }, { "type": "choice", - "m_label": "Indentation Guides", + "m_label": "Orientation:", "m_selection": 0, - "m_options": ["None", "Real", "Look Forward", "Look Both"] - }, { - "type": "choice", - "m_label": "EOL Mode", - "m_selection": 3, - "m_options": ["CRLF", "CR", "LF", "Default"] - }, { - "type": "bool", - "m_label": "Display EOL Markers", - "m_value": false - }, { - "type": "choice", - "m_label": "Lexer", - "m_selection": 39, - "m_options": ["wxSTC_LEX_ABAQUS", "wxSTC_LEX_ADA", "wxSTC_LEX_APDL", "wxSTC_LEX_ASM", "wxSTC_LEX_ASN1", "wxSTC_LEX_ASYMPTOTE", "wxSTC_LEX_AUTOMATIC", "wxSTC_LEX_AVE", "wxSTC_LEX_BAAN", "wxSTC_LEX_BASH", "wxSTC_LEX_BATCH", "wxSTC_LEX_BLITZBASIC", "wxSTC_LEX_BULLANT", "wxSTC_LEX_CAML", "wxSTC_LEX_CLW", "wxSTC_LEX_CLWNOCASE", "wxSTC_LEX_CMAKE", "wxSTC_LEX_COBOL", "wxSTC_LEX_CONF", "wxSTC_LEX_CONTAINER", "wxSTC_LEX_CPP", "wxSTC_LEX_CPPNOCASE", "wxSTC_LEX_CSOUND", "wxSTC_LEX_CSS", "wxSTC_LEX_D", "wxSTC_LEX_DIFF", "wxSTC_LEX_EIFFEL", "wxSTC_LEX_EIFFELKW", "wxSTC_LEX_ERLANG", "wxSTC_LEX_ERRORLIST", "wxSTC_LEX_ESCRIPT", "wxSTC_LEX_F77", "wxSTC_LEX_FLAGSHIP", "wxSTC_LEX_FORTH", "wxSTC_LEX_FORTRAN", "wxSTC_LEX_FREEBASIC", "wxSTC_LEX_GAP", "wxSTC_LEX_GUI4CLI", "wxSTC_LEX_HASKELL", "wxSTC_LEX_HTML", "wxSTC_LEX_INNOSETUP", "wxSTC_LEX_KIX", "wxSTC_LEX_LATEX", "wxSTC_LEX_LISP", "wxSTC_LEX_LOT", "wxSTC_LEX_LOUT", "wxSTC_LEX_LUA", "wxSTC_LEX_MAGIK", "wxSTC_LEX_MAKEFILE", "wxSTC_LEX_MARKDOWN", "wxSTC_LEX_MATLAB", "wxSTC_LEX_METAPOST", "wxSTC_LEX_MMIXAL", "wxSTC_LEX_MSSQL", "wxSTC_LEX_MYSQL", "wxSTC_LEX_NIMROD", "wxSTC_LEX_NNCRONTAB", "wxSTC_LEX_NSIS", "wxSTC_LEX_NULL", "wxSTC_LEX_OCTAVE", "wxSTC_LEX_OPAL", "wxSTC_LEX_PASCAL", "wxSTC_LEX_PERL", "wxSTC_LEX_PHPSCRIPT", "wxSTC_LEX_PLM", "wxSTC_LEX_PO", "wxSTC_LEX_POV", "wxSTC_LEX_POWERBASIC", "wxSTC_LEX_POWERPRO", "wxSTC_LEX_POWERSHELL", "wxSTC_LEX_PROGRESS", "wxSTC_LEX_PROPERTIES", "wxSTC_LEX_PS", "wxSTC_LEX_PUREBASIC", "wxSTC_LEX_PYTHON", "wxSTC_LEX_R", "wxSTC_LEX_REBOL", "wxSTC_LEX_RUBY", "wxSTC_LEX_SCRIPTOL", "wxSTC_LEX_SMALLTALK", "wxSTC_LEX_SML", "wxSTC_LEX_SORCUS", "wxSTC_LEX_SPECMAN", "wxSTC_LEX_SPICE", "wxSTC_LEX_SQL", "wxSTC_LEX_TACL", "wxSTC_LEX_TADS3", "wxSTC_LEX_TAL", "wxSTC_LEX_TCL", "wxSTC_LEX_TEX", "wxSTC_LEX_VB", "wxSTC_LEX_VBSCRIPT", "wxSTC_LEX_VERILOG", "wxSTC_LEX_VHDL", "wxSTC_LEX_XCODE", "wxSTC_LEX_XML", "wxSTC_LEX_YAML"] - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Keywords Set 1", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Keywords Set 2", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Keywords Set 3", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Keywords Set 4", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Keywords Set 5", - "m_value": "" + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] }], "m_events": [], - "m_children": [] + "m_children": [{ + "m_type": 4466, + "proportion": 1, + "border": 2, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_stcPhpPreview" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Fold Margin", + "m_value": false + }, { + "type": "bool", + "m_label": "Line Number Margin", + "m_value": false + }, { + "type": "bool", + "m_label": "Separator Margin", + "m_value": false + }, { + "type": "bool", + "m_label": "Symbol Margin", + "m_value": false + }, { + "type": "choice", + "m_label": "Wrap Text", + "m_selection": 0, + "m_options": ["None", "Word", "Char"] + }, { + "type": "choice", + "m_label": "Indentation Guides", + "m_selection": 0, + "m_options": ["None", "Real", "Look Forward", "Look Both"] + }, { + "type": "choice", + "m_label": "EOL Mode", + "m_selection": 3, + "m_options": ["CRLF", "CR", "LF", "Default"] + }, { + "type": "bool", + "m_label": "Display EOL Markers", + "m_value": false + }, { + "type": "choice", + "m_label": "Lexer", + "m_selection": 39, + "m_options": ["wxSTC_LEX_ABAQUS", "wxSTC_LEX_ADA", "wxSTC_LEX_APDL", "wxSTC_LEX_ASM", "wxSTC_LEX_ASN1", "wxSTC_LEX_ASYMPTOTE", "wxSTC_LEX_AUTOMATIC", "wxSTC_LEX_AVE", "wxSTC_LEX_BAAN", "wxSTC_LEX_BASH", "wxSTC_LEX_BATCH", "wxSTC_LEX_BLITZBASIC", "wxSTC_LEX_BULLANT", "wxSTC_LEX_CAML", "wxSTC_LEX_CLW", "wxSTC_LEX_CLWNOCASE", "wxSTC_LEX_CMAKE", "wxSTC_LEX_COBOL", "wxSTC_LEX_CONF", "wxSTC_LEX_CONTAINER", "wxSTC_LEX_CPP", "wxSTC_LEX_CPPNOCASE", "wxSTC_LEX_CSOUND", "wxSTC_LEX_CSS", "wxSTC_LEX_D", "wxSTC_LEX_DIFF", "wxSTC_LEX_EIFFEL", "wxSTC_LEX_EIFFELKW", "wxSTC_LEX_ERLANG", "wxSTC_LEX_ERRORLIST", "wxSTC_LEX_ESCRIPT", "wxSTC_LEX_F77", "wxSTC_LEX_FLAGSHIP", "wxSTC_LEX_FORTH", "wxSTC_LEX_FORTRAN", "wxSTC_LEX_FREEBASIC", "wxSTC_LEX_GAP", "wxSTC_LEX_GUI4CLI", "wxSTC_LEX_HASKELL", "wxSTC_LEX_HTML", "wxSTC_LEX_INNOSETUP", "wxSTC_LEX_KIX", "wxSTC_LEX_LATEX", "wxSTC_LEX_LISP", "wxSTC_LEX_LOT", "wxSTC_LEX_LOUT", "wxSTC_LEX_LUA", "wxSTC_LEX_MAGIK", "wxSTC_LEX_MAKEFILE", "wxSTC_LEX_MARKDOWN", "wxSTC_LEX_MATLAB", "wxSTC_LEX_METAPOST", "wxSTC_LEX_MMIXAL", "wxSTC_LEX_MSSQL", "wxSTC_LEX_MYSQL", "wxSTC_LEX_NIMROD", "wxSTC_LEX_NNCRONTAB", "wxSTC_LEX_NSIS", "wxSTC_LEX_NULL", "wxSTC_LEX_OCTAVE", "wxSTC_LEX_OPAL", "wxSTC_LEX_PASCAL", "wxSTC_LEX_PERL", "wxSTC_LEX_PHPSCRIPT", "wxSTC_LEX_PLM", "wxSTC_LEX_PO", "wxSTC_LEX_POV", "wxSTC_LEX_POWERBASIC", "wxSTC_LEX_POWERPRO", "wxSTC_LEX_POWERSHELL", "wxSTC_LEX_PROGRESS", "wxSTC_LEX_PROPERTIES", "wxSTC_LEX_PS", "wxSTC_LEX_PUREBASIC", "wxSTC_LEX_PYTHON", "wxSTC_LEX_R", "wxSTC_LEX_REBOL", "wxSTC_LEX_RUBY", "wxSTC_LEX_SCRIPTOL", "wxSTC_LEX_SMALLTALK", "wxSTC_LEX_SML", "wxSTC_LEX_SORCUS", "wxSTC_LEX_SPECMAN", "wxSTC_LEX_SPICE", "wxSTC_LEX_SQL", "wxSTC_LEX_TACL", "wxSTC_LEX_TADS3", "wxSTC_LEX_TAL", "wxSTC_LEX_TCL", "wxSTC_LEX_TEX", "wxSTC_LEX_VB", "wxSTC_LEX_VBSCRIPT", "wxSTC_LEX_VERILOG", "wxSTC_LEX_VHDL", "wxSTC_LEX_XCODE", "wxSTC_LEX_XML", "wxSTC_LEX_YAML"] + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Keywords Set 1", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Keywords Set 2", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Keywords Set 3", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Keywords Set 4", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Keywords Set 5", + "m_value": "" + }], + "m_events": [], + "m_children": [] + }] }] }] }] }] + }, { + "m_type": 4441, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxTAB_TRAVERSAL"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_panel185" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "PHP-CS-Fixer" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "bool", + "m_label": "Selected", + "m_value": false + }, { + "type": "bool", + "m_label": "Null Page", + "m_value": false + }, { + "type": "bool", + "m_label": "Expand Node", + "m_value": true + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "boxSizer209" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4403, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "flexGridSizer190" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "# Columns:", + "m_value": "2" + }, { + "type": "string", + "m_label": "# Rows:", + "m_value": "0" + }, { + "type": "string", + "m_label": "Growable columns:", + "m_value": "1" + }, { + "type": "string", + "m_label": "Growable rows:", + "m_value": "" + }, { + "type": "string", + "m_label": "Horizontal gap:", + "m_value": "0" + }, { + "type": "string", + "m_label": "Vertical gap:", + "m_value": "0" + }], + "m_events": [], + "m_children": [{ + "m_type": 4405, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT", "wxALIGN_CENTER_VERTICAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_staticText192" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Label:", + "m_value": "PHP Executable:" + }, { + "type": "string", + "m_label": "Wrap:", + "m_value": "-1" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4431, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxFLP_USE_TEXTCTRL", "wxFLP_SMALL"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_filePickerPhpExec" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "Select the PHP executable to use" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": true + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Value:", + "m_value": "" + }, { + "type": "string", + "m_label": "Message:", + "m_value": "Select a file" + }, { + "type": "string", + "m_label": "Wildcard:", + "m_value": "*" + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_FILEPICKER_CHANGED", + "m_eventClass": "wxFileDirPickerEvent", + "m_eventHandler": "wxFileDirPickerEventHandler", + "m_functionNameAndSignature": "OnPhpFileSelected(wxFileDirPickerEvent& event)", + "m_description": "The user changed the file selected in the control either using the button or using text control\n(see wxFLP_USE_TEXTCTRL; note that in this case the event is fired\nonly if the user's input is valid, e.g. an existing file path if wxFLP_FILE_MUST_EXIST was given).", + "m_noBody": false + }], + "m_children": [] + }, { + "m_type": 4405, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT", "wxALIGN_CENTER_VERTICAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_staticText202" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Label:", + "m_value": "PHP-CS-Fixer phar file:" + }, { + "type": "string", + "m_label": "Wrap:", + "m_value": "-1" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4431, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxFLP_USE_TEXTCTRL", "wxFLP_SMALL"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_filePickerPHPCsFixerPhar" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "Select the PHP-CS-Fixer phar file location" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Value:", + "m_value": "" + }, { + "type": "string", + "m_label": "Message:", + "m_value": "Select a file" + }, { + "type": "string", + "m_label": "Wildcard:", + "m_value": "*" + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_FILEPICKER_CHANGED", + "m_eventClass": "wxFileDirPickerEvent", + "m_eventHandler": "wxFileDirPickerEventHandler", + "m_functionNameAndSignature": "OnPharFileSelected(wxFileDirPickerEvent& event)", + "m_description": "The user changed the file selected in the control either using the button or using text control\n(see wxFLP_USE_TEXTCTRL; note that in this case the event is fired\nonly if the user's input is valid, e.g. an existing file path if wxFLP_FILE_MUST_EXIST was given).", + "m_noBody": false + }], + "m_children": [] + }] + }, { + "m_type": 4405, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_staticText217" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Label:", + "m_value": "Options:" + }, { + "type": "string", + "m_label": "Wrap:", + "m_value": "-1" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4466, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_stc" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "Set here list of options to pass to PHP-CS-Fixer\\nClick the Help button to view documentation page" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Fold Margin", + "m_value": false + }, { + "type": "bool", + "m_label": "Line Number Margin", + "m_value": false + }, { + "type": "bool", + "m_label": "Separator Margin", + "m_value": false + }, { + "type": "bool", + "m_label": "Symbol Margin", + "m_value": false + }, { + "type": "choice", + "m_label": "Wrap Text", + "m_selection": 1, + "m_options": ["None", "Word", "Char"] + }, { + "type": "choice", + "m_label": "Indentation Guides", + "m_selection": 0, + "m_options": ["None", "Real", "Look Forward", "Look Both"] + }, { + "type": "choice", + "m_label": "EOL Mode", + "m_selection": 2, + "m_options": ["CRLF", "CR", "LF", "Default"] + }, { + "type": "bool", + "m_label": "Display EOL Markers", + "m_value": false + }, { + "type": "choice", + "m_label": "Lexer", + "m_selection": 58, + "m_options": ["wxSTC_LEX_ABAQUS", "wxSTC_LEX_ADA", "wxSTC_LEX_APDL", "wxSTC_LEX_ASM", "wxSTC_LEX_ASN1", "wxSTC_LEX_ASYMPTOTE", "wxSTC_LEX_AUTOMATIC", "wxSTC_LEX_AVE", "wxSTC_LEX_BAAN", "wxSTC_LEX_BASH", "wxSTC_LEX_BATCH", "wxSTC_LEX_BLITZBASIC", "wxSTC_LEX_BULLANT", "wxSTC_LEX_CAML", "wxSTC_LEX_CLW", "wxSTC_LEX_CLWNOCASE", "wxSTC_LEX_CMAKE", "wxSTC_LEX_COBOL", "wxSTC_LEX_CONF", "wxSTC_LEX_CONTAINER", "wxSTC_LEX_CPP", "wxSTC_LEX_CPPNOCASE", "wxSTC_LEX_CSOUND", "wxSTC_LEX_CSS", "wxSTC_LEX_D", "wxSTC_LEX_DIFF", "wxSTC_LEX_EIFFEL", "wxSTC_LEX_EIFFELKW", "wxSTC_LEX_ERLANG", "wxSTC_LEX_ERRORLIST", "wxSTC_LEX_ESCRIPT", "wxSTC_LEX_F77", "wxSTC_LEX_FLAGSHIP", "wxSTC_LEX_FORTH", "wxSTC_LEX_FORTRAN", "wxSTC_LEX_FREEBASIC", "wxSTC_LEX_GAP", "wxSTC_LEX_GUI4CLI", "wxSTC_LEX_HASKELL", "wxSTC_LEX_HTML", "wxSTC_LEX_INNOSETUP", "wxSTC_LEX_KIX", "wxSTC_LEX_LATEX", "wxSTC_LEX_LISP", "wxSTC_LEX_LOT", "wxSTC_LEX_LOUT", "wxSTC_LEX_LUA", "wxSTC_LEX_MAGIK", "wxSTC_LEX_MAKEFILE", "wxSTC_LEX_MARKDOWN", "wxSTC_LEX_MATLAB", "wxSTC_LEX_METAPOST", "wxSTC_LEX_MMIXAL", "wxSTC_LEX_MSSQL", "wxSTC_LEX_MYSQL", "wxSTC_LEX_NIMROD", "wxSTC_LEX_NNCRONTAB", "wxSTC_LEX_NSIS", "wxSTC_LEX_NULL", "wxSTC_LEX_OCTAVE", "wxSTC_LEX_OPAL", "wxSTC_LEX_PASCAL", "wxSTC_LEX_PERL", "wxSTC_LEX_PHPSCRIPT", "wxSTC_LEX_PLM", "wxSTC_LEX_PO", "wxSTC_LEX_POV", "wxSTC_LEX_POWERBASIC", "wxSTC_LEX_POWERPRO", "wxSTC_LEX_POWERSHELL", "wxSTC_LEX_PROGRESS", "wxSTC_LEX_PROPERTIES", "wxSTC_LEX_PS", "wxSTC_LEX_PUREBASIC", "wxSTC_LEX_PYTHON", "wxSTC_LEX_R", "wxSTC_LEX_REBOL", "wxSTC_LEX_RUBY", "wxSTC_LEX_SCRIPTOL", "wxSTC_LEX_SMALLTALK", "wxSTC_LEX_SML", "wxSTC_LEX_SORCUS", "wxSTC_LEX_SPECMAN", "wxSTC_LEX_SPICE", "wxSTC_LEX_SQL", "wxSTC_LEX_TACL", "wxSTC_LEX_TADS3", "wxSTC_LEX_TAL", "wxSTC_LEX_TCL", "wxSTC_LEX_TEX", "wxSTC_LEX_VB", "wxSTC_LEX_VBSCRIPT", "wxSTC_LEX_VERILOG", "wxSTC_LEX_VHDL", "wxSTC_LEX_XCODE", "wxSTC_LEX_XML", "wxSTC_LEX_YAML"] + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Keywords Set 1", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Keywords Set 2", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Keywords Set 3", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Keywords Set 4", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Keywords Set 5", + "m_value": "" + }], + "m_events": [{ + "m_eventName": "wxEVT_STC_CHANGE", + "m_eventClass": "wxStyledTextEvent", + "m_eventHandler": "wxStyledTextEventHandler", + "m_functionNameAndSignature": "OnPHPCSFixerOptionsUpdated(wxStyledTextEvent& event)", + "m_description": "", + "m_noBody": false + }], + "m_children": [] + }, { + "m_type": 4466, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_stcFixerPreview" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Fold Margin", + "m_value": false + }, { + "type": "bool", + "m_label": "Line Number Margin", + "m_value": false + }, { + "type": "bool", + "m_label": "Separator Margin", + "m_value": false + }, { + "type": "bool", + "m_label": "Symbol Margin", + "m_value": false + }, { + "type": "choice", + "m_label": "Wrap Text", + "m_selection": 1, + "m_options": ["None", "Word", "Char"] + }, { + "type": "choice", + "m_label": "Indentation Guides", + "m_selection": 0, + "m_options": ["None", "Real", "Look Forward", "Look Both"] + }, { + "type": "choice", + "m_label": "EOL Mode", + "m_selection": 3, + "m_options": ["CRLF", "CR", "LF", "Default"] + }, { + "type": "bool", + "m_label": "Display EOL Markers", + "m_value": false + }, { + "type": "choice", + "m_label": "Lexer", + "m_selection": 58, + "m_options": ["wxSTC_LEX_ABAQUS", "wxSTC_LEX_ADA", "wxSTC_LEX_APDL", "wxSTC_LEX_ASM", "wxSTC_LEX_ASN1", "wxSTC_LEX_ASYMPTOTE", "wxSTC_LEX_AUTOMATIC", "wxSTC_LEX_AVE", "wxSTC_LEX_BAAN", "wxSTC_LEX_BASH", "wxSTC_LEX_BATCH", "wxSTC_LEX_BLITZBASIC", "wxSTC_LEX_BULLANT", "wxSTC_LEX_CAML", "wxSTC_LEX_CLW", "wxSTC_LEX_CLWNOCASE", "wxSTC_LEX_CMAKE", "wxSTC_LEX_COBOL", "wxSTC_LEX_CONF", "wxSTC_LEX_CONTAINER", "wxSTC_LEX_CPP", "wxSTC_LEX_CPPNOCASE", "wxSTC_LEX_CSOUND", "wxSTC_LEX_CSS", "wxSTC_LEX_D", "wxSTC_LEX_DIFF", "wxSTC_LEX_EIFFEL", "wxSTC_LEX_EIFFELKW", "wxSTC_LEX_ERLANG", "wxSTC_LEX_ERRORLIST", "wxSTC_LEX_ESCRIPT", "wxSTC_LEX_F77", "wxSTC_LEX_FLAGSHIP", "wxSTC_LEX_FORTH", "wxSTC_LEX_FORTRAN", "wxSTC_LEX_FREEBASIC", "wxSTC_LEX_GAP", "wxSTC_LEX_GUI4CLI", "wxSTC_LEX_HASKELL", "wxSTC_LEX_HTML", "wxSTC_LEX_INNOSETUP", "wxSTC_LEX_KIX", "wxSTC_LEX_LATEX", "wxSTC_LEX_LISP", "wxSTC_LEX_LOT", "wxSTC_LEX_LOUT", "wxSTC_LEX_LUA", "wxSTC_LEX_MAGIK", "wxSTC_LEX_MAKEFILE", "wxSTC_LEX_MARKDOWN", "wxSTC_LEX_MATLAB", "wxSTC_LEX_METAPOST", "wxSTC_LEX_MMIXAL", "wxSTC_LEX_MSSQL", "wxSTC_LEX_MYSQL", "wxSTC_LEX_NIMROD", "wxSTC_LEX_NNCRONTAB", "wxSTC_LEX_NSIS", "wxSTC_LEX_NULL", "wxSTC_LEX_OCTAVE", "wxSTC_LEX_OPAL", "wxSTC_LEX_PASCAL", "wxSTC_LEX_PERL", "wxSTC_LEX_PHPSCRIPT", "wxSTC_LEX_PLM", "wxSTC_LEX_PO", "wxSTC_LEX_POV", "wxSTC_LEX_POWERBASIC", "wxSTC_LEX_POWERPRO", "wxSTC_LEX_POWERSHELL", "wxSTC_LEX_PROGRESS", "wxSTC_LEX_PROPERTIES", "wxSTC_LEX_PS", "wxSTC_LEX_PUREBASIC", "wxSTC_LEX_PYTHON", "wxSTC_LEX_R", "wxSTC_LEX_REBOL", "wxSTC_LEX_RUBY", "wxSTC_LEX_SCRIPTOL", "wxSTC_LEX_SMALLTALK", "wxSTC_LEX_SML", "wxSTC_LEX_SORCUS", "wxSTC_LEX_SPECMAN", "wxSTC_LEX_SPICE", "wxSTC_LEX_SQL", "wxSTC_LEX_TACL", "wxSTC_LEX_TADS3", "wxSTC_LEX_TAL", "wxSTC_LEX_TCL", "wxSTC_LEX_TEX", "wxSTC_LEX_VB", "wxSTC_LEX_VBSCRIPT", "wxSTC_LEX_VERILOG", "wxSTC_LEX_VHDL", "wxSTC_LEX_XCODE", "wxSTC_LEX_XML", "wxSTC_LEX_YAML"] + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Keywords Set 1", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Keywords Set 2", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Keywords Set 3", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Keywords Set 4", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Keywords Set 5", + "m_value": "" + }], + "m_events": [], + "m_children": [] + }] + }] }] }] }, { diff -Nru codelite-8.0.1+dfsg2/CodeFormatter/formatoptions.cpp codelite-9.0+dfsg/CodeFormatter/formatoptions.cpp --- codelite-8.0.1+dfsg2/CodeFormatter/formatoptions.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/CodeFormatter/formatoptions.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -26,10 +26,12 @@ #include "clClangFormatLocator.h" #include "editor_config.h" #include "PHPFormatterBuffer.h" +#include "globals.h" FormatOptions::FormatOptions() : m_astyleOptions(AS_DEFAULT | AS_INDENT_USES_TABS) , m_engine(kFormatEngineClangFormat) + , m_phpEngine(kPhpFormatEngineBuiltin) , m_clangFormatOptions(kClangFormatWebKit | kAlignTrailingComments | kBreakConstructorInitializersBeforeComma | kSpaceBeforeAssignmentOperators | kAlignEscapedNewlinesLeft) @@ -55,12 +57,20 @@ int engine = kFormatEngineClangFormat; arch.Read("m_engine", engine); m_engine = static_cast(engine); + + engine = kPhpFormatEngineBuiltin; + arch.Read("m_phpEngine", engine); + m_phpEngine = static_cast(engine); + arch.Read("m_clangFormatOptions", m_clangFormatOptions); arch.Read("m_clangFormatExe", m_clangFormatExe); arch.Read("m_clangBreakBeforeBrace", m_clangBreakBeforeBrace); arch.Read("m_clangColumnLimit", m_clangColumnLimit); arch.Read("m_phpFormatOptions", m_phpFormatOptions); arch.Read("m_generalFlags", m_generalFlags); + arch.Read("m_phpExecutable", m_phpExecutable); + arch.Read("m_PHPCSFixerPhar", m_PHPCSFixerPhar); + arch.Read("m_PHPCSFixerPharOptions", m_PHPCSFixerPharOptions); } void FormatOptions::Serialize(Archive& arch) @@ -68,12 +78,16 @@ arch.Write(wxT("m_options"), m_astyleOptions); arch.Write(wxT("m_customFlags"), m_customFlags); arch.Write("m_engine", static_cast(m_engine)); + arch.Write("m_phpEngine", static_cast(m_phpEngine)); arch.Write("m_clangFormatOptions", m_clangFormatOptions); arch.Write("m_clangFormatExe", m_clangFormatExe); arch.Write("m_clangBreakBeforeBrace", m_clangBreakBeforeBrace); arch.Write("m_clangColumnLimit", m_clangColumnLimit); arch.Write("m_phpFormatOptions", m_phpFormatOptions); arch.Write("m_generalFlags", m_generalFlags); + arch.Write("m_phpExecutable", m_phpExecutable); + arch.Write("m_PHPCSFixerPhar", m_PHPCSFixerPhar); + arch.Write("m_PHPCSFixerPharOptions", m_PHPCSFixerPharOptions); } wxString FormatOptions::AstyleOptionsAsString() const @@ -275,3 +289,18 @@ options << ", UseTab: " << (useTabs ? "ForIndentation" : "Never"); return options; } + +wxString FormatOptions::GetPhpFixerCommand() const +{ + wxString command, phar, php, options; + php << GetPhpExecutable(); + ::WrapWithQuotes(php); + + phar << GetPHPCSFixerPhar(); + ::WrapWithQuotes(phar); + + options << GetPHPCSFixerPharOptions(); + options.Trim().Trim(false); + command << php << " " << phar << " fix " << options; + return command; +} diff -Nru codelite-8.0.1+dfsg2/CodeFormatter/formatoptions.h codelite-9.0+dfsg/CodeFormatter/formatoptions.h --- codelite-8.0.1+dfsg2/CodeFormatter/formatoptions.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/CodeFormatter/formatoptions.h 2015-10-11 13:56:07.000000000 +0000 @@ -82,6 +82,11 @@ kFormatEngineClangFormat, }; +enum PHPFormatterEngine { + kPhpFormatEngineBuiltin, + kPhpFormatEnginePhpCsFixer, +}; + enum ClangFormatStyle { kClangFormatLLVM = (1 << 0), kClangFormatGoogle = (1 << 1), @@ -129,10 +134,14 @@ size_t m_clangBreakBeforeBrace; wxString m_customFlags; FormatterEngine m_engine; + PHPFormatterEngine m_phpEngine; wxString m_clangFormatExe; size_t m_clangColumnLimit; // when indenting, limit the line to fit into a column width size_t m_phpFormatOptions; size_t m_generalFlags; + wxString m_phpExecutable; + wxString m_PHPCSFixerPhar; + wxString m_PHPCSFixerPharOptions; private: wxString ClangFlagToBool(ClangFormatStyle flag) const; @@ -173,9 +182,21 @@ void SetClangFormatOptions(size_t clangFormatOptions) { this->m_clangFormatOptions = clangFormatOptions; } size_t GetClangFormatOptions() const { return m_clangFormatOptions; } size_t GetPHPFormatterOptions() const { return m_phpFormatOptions; } - size_t SetPHPFormatterOptions(size_t options) { m_phpFormatOptions = options; } + void SetPHPFormatterOptions(size_t options) { m_phpFormatOptions = options; } bool HasFlag(eCF_GeneralOptions flag) const { return m_generalFlags & flag; } void SetFlag(eCF_GeneralOptions flag, bool b) { b ? m_generalFlags |= flag : m_generalFlags &= ~flag; } + void SetPHPCSFixerPhar(const wxString& PHPCSFixerPhar) { this->m_PHPCSFixerPhar = PHPCSFixerPhar; } + void SetPHPCSFixerPharOptions(const wxString& PHPCSFixerPharOptions) + { + this->m_PHPCSFixerPharOptions = PHPCSFixerPharOptions; + } + void SetPhpEngine(const PHPFormatterEngine& phpEngine) { this->m_phpEngine = phpEngine; } + void SetPhpExecutable(const wxString& phpExecutable) { this->m_phpExecutable = phpExecutable; } + const wxString& GetPHPCSFixerPhar() const { return m_PHPCSFixerPhar; } + const wxString& GetPHPCSFixerPharOptions() const { return m_PHPCSFixerPharOptions; } + const PHPFormatterEngine& GetPhpEngine() const { return m_phpEngine; } + const wxString& GetPhpExecutable() const { return m_phpExecutable; } + wxString GetPhpFixerCommand() const; }; #endif // FORMATOPTIONS_H diff -Nru codelite-8.0.1+dfsg2/CodeLite/cl_calltip.cpp codelite-9.0+dfsg/CodeLite/cl_calltip.cpp --- codelite-8.0.1+dfsg2/CodeLite/cl_calltip.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/CodeLite/cl_calltip.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -266,3 +266,14 @@ tips.push_back(ti); } } + +bool clCallTip::SelectTipToMatchArgCount(size_t argcount) +{ + for(size_t i=0; i argcount) { + m_curr = i; + return true; + } + } + return false; +} diff -Nru codelite-8.0.1+dfsg2/CodeLite/cl_calltip.h codelite-9.0+dfsg/CodeLite/cl_calltip.h --- codelite-8.0.1+dfsg2/CodeLite/cl_calltip.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/CodeLite/cl_calltip.h 2015-10-11 13:56:07.000000000 +0000 @@ -109,7 +109,13 @@ * @return return the current tip */ wxString Current(); - + + /** + * @brief select the first tip that has at least argcount + * @return true if we managed to find this tip, false otherwise + */ + bool SelectTipToMatchArgCount(size_t argcount); + /** * Return number of tips stored in this object * \return number of tips diff -Nru codelite-8.0.1+dfsg2/CodeLite/cl_command_event.cpp codelite-9.0+dfsg/CodeLite/cl_command_event.cpp --- codelite-8.0.1+dfsg2/CodeLite/cl_command_event.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/CodeLite/cl_command_event.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -49,7 +49,9 @@ m_answer = src.m_answer; m_allowed = src.m_allowed; m_oldName = src.m_oldName; - + m_lineNumber = src.m_lineNumber; + m_selected = src.m_selected; + // Copy wxCommandEvent members here m_eventType = src.m_eventType; m_id = src.m_id; @@ -86,6 +88,7 @@ , m_insideCommentOrString(false) { *this = event; + m_position = wxNOT_FOUND; m_entry.reset(NULL); } @@ -94,6 +97,7 @@ , m_editor(NULL) , m_insideCommentOrString(false) { + m_position = wxNOT_FOUND; m_entry.reset(NULL); } @@ -342,3 +346,25 @@ m_totalFiles = src.m_totalFiles; return *this; } + +//------------------------------------------------------------------- +// clProcessEvent +//------------------------------------------------------------------- + +clProcessEvent::clProcessEvent(const clProcessEvent& event) { *this = event; } + +clProcessEvent::clProcessEvent(wxEventType commandType, int winid) + : clCommandEvent(commandType, winid) + , m_process(NULL) +{ +} + +clProcessEvent::~clProcessEvent() {} + +clProcessEvent& clProcessEvent::operator=(const clProcessEvent& src) +{ + clCommandEvent::operator=(src); + m_process = src.m_process; + m_output = src.m_output; + return *this; +} diff -Nru codelite-8.0.1+dfsg2/CodeLite/cl_command_event.h codelite-9.0+dfsg/CodeLite/cl_command_event.h --- codelite-8.0.1+dfsg2/CodeLite/cl_command_event.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/CodeLite/cl_command_event.h 2015-10-11 13:56:07.000000000 +0000 @@ -49,6 +49,8 @@ wxString m_oldName; bool m_answer; bool m_allowed; + int m_lineNumber; + bool m_selected; public: clCommandEvent(wxEventType commandType = wxEVT_NULL, int winid = 0); @@ -56,27 +58,64 @@ clCommandEvent& operator=(const clCommandEvent& src); virtual ~clCommandEvent(); + clCommandEvent& SetSelected(bool selected) + { + this->m_selected = selected; + return *this; + } + bool IsSelected() const { return m_selected; } + // Veto management - void SetAllowed(bool allowed) { this->m_allowed = allowed; } - bool IsAllowed() const { return m_allowed; } void Veto() { this->m_allowed = false; } void Allow() { this->m_allowed = true; } // Hides wxCommandEvent::Set{Get}ClientObject void SetClientObject(wxClientData* clientObject); - void SetOldName(const wxString& oldName) { this->m_oldName = oldName; } - const wxString& GetOldName() const { return m_oldName; } wxClientData* GetClientObject() const; - virtual wxEvent* Clone() const; - void SetAnswer(bool answer) { this->m_answer = answer; } + clCommandEvent& SetLineNumber(int lineNumber) + { + this->m_lineNumber = lineNumber; + return *this; + } + int GetLineNumber() const { return m_lineNumber; } + clCommandEvent& SetAllowed(bool allowed) + { + this->m_allowed = allowed; + return *this; + } + clCommandEvent& SetAnswer(bool answer) + { + this->m_answer = answer; + return *this; + } + clCommandEvent& SetFileName(const wxString& fileName) + { + this->m_fileName = fileName; + return *this; + } + clCommandEvent& SetOldName(const wxString& oldName) + { + this->m_oldName = oldName; + return *this; + } + clCommandEvent& SetPtr(const wxSharedPtr& ptr) + { + this->m_ptr = ptr; + return *this; + } + clCommandEvent& SetStrings(const wxArrayString& strings) + { + this->m_strings = strings; + return *this; + } + bool IsAllowed() const { return m_allowed; } bool IsAnswer() const { return m_answer; } - - void SetFileName(const wxString& fileName) { this->m_fileName = fileName; } const wxString& GetFileName() const { return m_fileName; } - void SetStrings(const wxArrayString& strings) { this->m_strings = strings; } + const wxString& GetOldName() const { return m_oldName; } + const wxSharedPtr& GetPtr() const { return m_ptr; } const wxArrayString& GetStrings() const { return m_strings; } wxArrayString& GetStrings() { return m_strings; } }; @@ -107,7 +146,7 @@ const wxArrayString& GetDefinitions() const { return m_definitions; } void SetEntry(wxCodeCompletionBoxEntry::Ptr_t entry) { this->m_entry = entry; } wxCodeCompletionBoxEntry::Ptr_t GetEntry() { return m_entry; } - + void SetInsideCommentOrString(bool insideCommentOrString) { this->m_insideCommentOrString = insideCommentOrString; } bool IsInsideCommentOrString() const { return m_insideCommentOrString; } @@ -317,6 +356,31 @@ typedef void (wxEvtHandler::*clCompilerEventFunction)(clCompilerEvent&); #define clCompilerEventHandler(func) wxEVENT_HANDLER_CAST(clCompilerEventFunction, func) +// -------------------------------------------------------------- +// Processs event +// -------------------------------------------------------------- +class IProcess; +class WXDLLIMPEXP_CL clProcessEvent : public clCommandEvent +{ + wxString m_output; + IProcess* m_process; + +public: + clProcessEvent(wxEventType commandType = wxEVT_NULL, int winid = 0); + clProcessEvent(const clProcessEvent& event); + clProcessEvent& operator=(const clProcessEvent& src); + virtual ~clProcessEvent(); + virtual wxEvent* Clone() const { return new clProcessEvent(*this); } + + void SetOutput(const wxString& output) { this->m_output = output; } + void SetProcess(IProcess* process) { this->m_process = process; } + const wxString& GetOutput() const { return m_output; } + IProcess* GetProcess() { return m_process; } +}; + +typedef void (wxEvtHandler::*clProcessEventFunction)(clProcessEvent&); +#define clProcessEventHandler(func) wxEVENT_HANDLER_CAST(clProcessEventFunction, func) + //--------------------------------------------------------------- // Source formatting event //--------------------------------------------------------------- diff -Nru codelite-8.0.1+dfsg2/CodeLite/clCommandProcessor.cpp codelite-9.0+dfsg/CodeLite/clCommandProcessor.cpp --- codelite-8.0.1+dfsg2/CodeLite/clCommandProcessor.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/CodeLite/clCommandProcessor.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -5,11 +5,6 @@ wxDEFINE_EVENT(wxEVT_COMMAND_PROCESSOR_ENDED, clCommandEvent); wxDEFINE_EVENT(wxEVT_COMMAND_PROCESSOR_OUTPUT, clCommandEvent); -BEGIN_EVENT_TABLE(clCommandProcessor, wxEvtHandler) -EVT_COMMAND(wxID_ANY, wxEVT_PROC_DATA_READ, clCommandProcessor::OnProcessOutput) -EVT_COMMAND(wxID_ANY, wxEVT_PROC_TERMINATED, clCommandProcessor::OnProcessTerminated) -END_EVENT_TABLE() - clCommandProcessor::clCommandProcessor(const wxString& command, const wxString& wd, size_t processFlags) : m_next(NULL) , m_prev(NULL) @@ -20,6 +15,9 @@ , m_postExecCallback(NULL) , m_obj(NULL) { + Bind(wxEVT_ASYNC_PROCESS_OUTPUT, &clCommandProcessor::OnProcessOutput, this); + Bind(wxEVT_ASYNC_PROCESS_TERMINATED, &clCommandProcessor::OnProcessTerminated, this); + } clCommandProcessor::~clCommandProcessor() { wxDELETE(m_process); } @@ -44,24 +42,20 @@ m_process->SetHardKill(true); } -void clCommandProcessor::OnProcessOutput(wxCommandEvent& event) +void clCommandProcessor::OnProcessOutput(clProcessEvent& event) { - ProcessEventData* ped = (ProcessEventData*)event.GetClientData(); clCommandEvent eventStart(wxEVT_COMMAND_PROCESSOR_OUTPUT); - m_output << ped->GetData(); - eventStart.SetString(ped->GetData()); + m_output << event.GetOutput(); + eventStart.SetString(event.GetOutput()); GetFirst()->ProcessEvent(eventStart); - if(eventStart.GetString() != ped->GetData()) { + if(eventStart.GetString() != event.GetOutput()) { // user provided some input, write it to the running process - m_process->WriteToConsole(event.GetString()); + m_process->WriteToConsole(eventStart.GetString()); } - wxDELETE(ped); } -void clCommandProcessor::OnProcessTerminated(wxCommandEvent& event) +void clCommandProcessor::OnProcessTerminated(clProcessEvent& event) { - ProcessEventData* ped = (ProcessEventData*)event.GetClientData(); - wxDELETE(ped); if(m_obj && m_postExecCallback) { // Call the user callback, if the user returns false // stop the processor diff -Nru codelite-8.0.1+dfsg2/CodeLite/clCommandProcessor.h codelite-9.0+dfsg/CodeLite/clCommandProcessor.h --- codelite-8.0.1+dfsg2/CodeLite/clCommandProcessor.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/CodeLite/clCommandProcessor.h 2015-10-11 13:56:07.000000000 +0000 @@ -77,9 +77,8 @@ */ void Terminate(); - DECLARE_EVENT_TABLE() - void OnProcessOutput(wxCommandEvent& event); - void OnProcessTerminated(wxCommandEvent& event); + void OnProcessOutput(clProcessEvent& event); + void OnProcessTerminated(clProcessEvent& event); }; #endif // CLCOMMANDPROCESSOR_H diff -Nru codelite-8.0.1+dfsg2/CodeLite/cl_config.cpp codelite-9.0+dfsg/CodeLite/cl_config.cpp --- codelite-8.0.1+dfsg2/CodeLite/cl_config.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/CodeLite/cl_config.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -30,46 +30,43 @@ #include #include "cl_standard_paths.h" -#define ADD_OBJ_IF_NOT_EXISTS(parent, objName) \ - if ( !parent.hasNamedObject( objName ) ) { \ - JSONElement obj = JSONElement::createObject( objName ); \ - parent.append( obj ); \ - }\ - -#define ADD_ARR_IF_NOT_EXISTS(parent, arrName) \ - if ( !parent.hasNamedObject( arrName ) ) { \ - JSONElement arr = JSONElement::createArray( arrName ); \ - parent.append( arr ); \ - }\ - +#define ADD_OBJ_IF_NOT_EXISTS(parent, objName) \ + if(!parent.hasNamedObject(objName)) { \ + JSONElement obj = JSONElement::createObject(objName); \ + parent.append(obj); \ + } + +#define ADD_ARR_IF_NOT_EXISTS(parent, arrName) \ + if(!parent.hasNamedObject(arrName)) { \ + JSONElement arr = JSONElement::createArray(arrName); \ + parent.append(arr); \ + } + clConfig::clConfig(const wxString& filename) { - if ( wxFileName(filename).IsAbsolute() ) { + if(wxFileName(filename).IsAbsolute()) { m_filename = filename; } else { - m_filename = clStandardPaths::Get().GetUserDataDir() + wxFileName::GetPathSeparator() + "config" + wxFileName::GetPathSeparator() + filename; + m_filename = clStandardPaths::Get().GetUserDataDir() + wxFileName::GetPathSeparator() + "config" + + wxFileName::GetPathSeparator() + filename; } - + { // Make sure that the directory exists wxLogNull noLog; - wxMkdir( clStandardPaths::Get().GetUserDataDir() ); - wxMkdir( m_filename.GetPath() ); + wxMkdir(clStandardPaths::Get().GetUserDataDir()); + wxMkdir(m_filename.GetPath()); } - - if ( m_filename.FileExists() ) { + + if(m_filename.FileExists()) { m_root = new JSONRoot(m_filename); - + } else { m_root = new JSONRoot(cJSON_Object); } } -clConfig::~clConfig() -{ - m_root->save( m_filename ); - wxDELETE(m_root); -} +clConfig::~clConfig() { wxDELETE(m_root); } clConfig& clConfig::Get() { @@ -77,9 +74,32 @@ return config; } +bool clConfig::GetOutputTabOrder(wxArrayString& tabs, int& selected) +{ + if(m_root->toElement().hasNamedObject("outputTabOrder")) { + JSONElement element = m_root->toElement().namedObject("outputTabOrder"); + tabs = element.namedObject("tabs").toArrayString(); + selected = element.namedObject("selected").toInt(); + return true; + } + return false; +} + +void clConfig::SetOutputTabOrder(const wxArrayString& tabs, int selected) +{ + DoDeleteProperty("outputTabOrder"); + + // first time + JSONElement e = JSONElement::createObject("outputTabOrder"); + e.addProperty("tabs", tabs); + e.addProperty("selected", selected); + m_root->toElement().append(e); + m_root->save(m_filename); +} + bool clConfig::GetWorkspaceTabOrder(wxArrayString& tabs, int& selected) { - if ( m_root->toElement().hasNamedObject("workspaceTabOrder") ) { + if(m_root->toElement().hasNamedObject("workspaceTabOrder")) { JSONElement element = m_root->toElement().namedObject("workspaceTabOrder"); tabs = element.namedObject("tabs").toArrayString(); selected = element.namedObject("selected").toInt(); @@ -91,34 +111,34 @@ void clConfig::SetWorkspaceTabOrder(const wxArrayString& tabs, int selected) { DoDeleteProperty("workspaceTabOrder"); - + // first time JSONElement e = JSONElement::createObject("workspaceTabOrder"); e.addProperty("tabs", tabs); e.addProperty("selected", selected); - m_root->toElement().append( e ); - + m_root->toElement().append(e); + m_root->save(m_filename); } void clConfig::DoDeleteProperty(const wxString& property) { - if ( m_root->toElement().hasNamedObject(property) ) { + if(m_root->toElement().hasNamedObject(property)) { m_root->toElement().removeProperty(property); } } -bool clConfig::ReadItem(clConfigItem* item, const wxString &differentName) +bool clConfig::ReadItem(clConfigItem* item, const wxString& differentName) { wxString nameToUse = differentName.IsEmpty() ? item->GetName() : differentName; - if ( m_root->toElement().hasNamedObject(nameToUse) ) { - item->FromJSON( m_root->toElement().namedObject(nameToUse)); + if(m_root->toElement().hasNamedObject(nameToUse)) { + item->FromJSON(m_root->toElement().namedObject(nameToUse)); return true; } return false; } -void clConfig::WriteItem(const clConfigItem* item, const wxString &differentName) +void clConfig::WriteItem(const clConfigItem* item, const wxString& differentName) { wxString nameToUse = differentName.IsEmpty() ? item->GetName() : differentName; DoDeleteProperty(nameToUse); @@ -126,11 +146,10 @@ m_root->save(m_filename); } -void clConfig::Reload() +void clConfig::Reload() { - if ( m_filename.FileExists() == false ) - return; - + if(m_filename.FileExists() == false) return; + delete m_root; m_root = new JSONRoot(m_filename); } @@ -140,17 +159,18 @@ wxArrayString sArr1, sArr2; sArr1.insert(sArr1.end(), arr1.begin(), arr1.end()); sArr2.insert(sArr2.end(), arr2.begin(), arr2.end()); - + // Sort the arrays std::sort(sArr1.begin(), sArr1.end()); std::sort(sArr2.begin(), sArr2.end()); - + wxArrayString output; std::set_union(sArr1.begin(), sArr1.end(), sArr2.begin(), sArr2.end(), std::back_inserter(output)); return output; } -JSONElement::wxStringMap_t clConfig::MergeStringMaps(const JSONElement::wxStringMap_t& map1, const JSONElement::wxStringMap_t& map2) const +JSONElement::wxStringMap_t clConfig::MergeStringMaps(const JSONElement::wxStringMap_t& map1, + const JSONElement::wxStringMap_t& map2) const { JSONElement::wxStringMap_t output; output.insert(map1.begin(), map1.end()); @@ -160,19 +180,17 @@ void clConfig::Save() { - if ( m_root ) - m_root->save(m_filename); + if(m_root) m_root->save(m_filename); } void clConfig::Save(const wxFileName& fn) { - if ( m_root ) - m_root->save(fn); + if(m_root) m_root->save(fn); } JSONElement clConfig::GetGeneralSetting() { - if ( !m_root->toElement().hasNamedObject("General") ) { + if(!m_root->toElement().hasNamedObject("General")) { JSONElement general = JSONElement::createObject("General"); m_root->toElement().append(general); } @@ -182,7 +200,7 @@ void clConfig::Write(const wxString& name, bool value) { JSONElement general = GetGeneralSetting(); - if (general.hasNamedObject(name)) { + if(general.hasNamedObject(name)) { general.removeProperty(name); } @@ -193,7 +211,7 @@ bool clConfig::Read(const wxString& name, bool defaultValue) { JSONElement general = GetGeneralSetting(); - if (general.namedObject(name).isBool()) { + if(general.namedObject(name).isBool()) { return general.namedObject(name).toBool(); } @@ -203,7 +221,7 @@ void clConfig::Write(const wxString& name, int value) { JSONElement general = GetGeneralSetting(); - if (general.hasNamedObject(name)) { + if(general.hasNamedObject(name)) { general.removeProperty(name); } @@ -220,7 +238,7 @@ void clConfig::Write(const wxString& name, const wxString& value) { JSONElement general = GetGeneralSetting(); - if (general.hasNamedObject(name)) { + if(general.hasNamedObject(name)) { general.removeProperty(name); } @@ -231,7 +249,7 @@ wxString clConfig::Read(const wxString& name, const wxString& defaultValue) { JSONElement general = GetGeneralSetting(); - if (general.namedObject(name).isString()) { + if(general.namedObject(name).isString()) { return general.namedObject(name).toString(); } @@ -240,10 +258,10 @@ int clConfig::GetAnnoyingDlgAnswer(const wxString& name, int defaultValue) { - if ( m_root->toElement().hasNamedObject("AnnoyingDialogsAnswers") ) { - + if(m_root->toElement().hasNamedObject("AnnoyingDialogsAnswers")) { + JSONElement element = m_root->toElement().namedObject("AnnoyingDialogsAnswers"); - if ( element.hasNamedObject(name) ) { + if(element.hasNamedObject(name)) { return element.namedObject(name).toInt(defaultValue); } } @@ -252,13 +270,13 @@ void clConfig::SetAnnoyingDlgAnswer(const wxString& name, int value) { - if ( !m_root->toElement().hasNamedObject("AnnoyingDialogsAnswers") ) { + if(!m_root->toElement().hasNamedObject("AnnoyingDialogsAnswers")) { JSONElement element = JSONElement::createObject("AnnoyingDialogsAnswers"); m_root->toElement().append(element); } - - JSONElement element =m_root->toElement().namedObject("AnnoyingDialogsAnswers"); - if ( element.hasNamedObject(name) ) { + + JSONElement element = m_root->toElement().namedObject("AnnoyingDialogsAnswers"); + if(element.hasNamedObject(name)) { element.removeProperty(name); } element.addProperty(name, value); @@ -274,84 +292,82 @@ void clConfig::AddQuickFindReplaceItem(const wxString& str) { - ADD_OBJ_IF_NOT_EXISTS( m_root->toElement(), "QuickFindBar" ); - + ADD_OBJ_IF_NOT_EXISTS(m_root->toElement(), "QuickFindBar"); + JSONElement quickFindBar = m_root->toElement().namedObject("QuickFindBar"); - ADD_ARR_IF_NOT_EXISTS( quickFindBar, "ReplaceHistory" ); - + ADD_ARR_IF_NOT_EXISTS(quickFindBar, "ReplaceHistory"); + JSONElement arr = quickFindBar.namedObject("ReplaceHistory"); wxArrayString items = arr.toArrayString(); - + // Update the array int where = items.Index(str); - if ( where != wxNOT_FOUND ) { + if(where != wxNOT_FOUND) { items.RemoveAt(where); items.Insert(str, 0); - + } else { // remove overflow items if needed - if ( items.GetCount() > 20 ) { + if(items.GetCount() > 20) { // remove last item - items.RemoveAt( items.GetCount() - 1); + items.RemoveAt(items.GetCount() - 1); } items.Insert(str, 0); } - - quickFindBar.removeProperty( "ReplaceHistory" ); + + quickFindBar.removeProperty("ReplaceHistory"); quickFindBar.addProperty("ReplaceHistory", items); Save(); } void clConfig::AddQuickFindSearchItem(const wxString& str) { - ADD_OBJ_IF_NOT_EXISTS( m_root->toElement(), "QuickFindBar" ); - + ADD_OBJ_IF_NOT_EXISTS(m_root->toElement(), "QuickFindBar"); + JSONElement quickFindBar = m_root->toElement().namedObject("QuickFindBar"); - ADD_ARR_IF_NOT_EXISTS( quickFindBar, "SearchHistory" ); - + ADD_ARR_IF_NOT_EXISTS(quickFindBar, "SearchHistory"); + JSONElement arr = quickFindBar.namedObject("SearchHistory"); wxArrayString items = arr.toArrayString(); - + // Update the array int where = items.Index(str); - if ( where != wxNOT_FOUND ) { + if(where != wxNOT_FOUND) { items.RemoveAt(where); - items.Insert(str, 0); - - } else { - // remove overflow items if needed - if ( items.GetCount() > 20 ) { - // remove last item - items.RemoveAt( items.GetCount() - 1); - } - items.Insert(str, 0); } + items.Insert(str, 0); - quickFindBar.removeProperty( "SearchHistory" ); + // Reudce to size to max of 20 + while(items.size() > 20) { + items.RemoveAt(items.size() - 1); + } + + // Update the array + quickFindBar.removeProperty("SearchHistory"); quickFindBar.addProperty("SearchHistory", items); Save(); } wxArrayString clConfig::GetQuickFindReplaceItems() const { - ADD_OBJ_IF_NOT_EXISTS( m_root->toElement(), "QuickFindBar" ); + ADD_OBJ_IF_NOT_EXISTS(m_root->toElement(), "QuickFindBar"); JSONElement quickFindBar = m_root->toElement().namedObject("QuickFindBar"); - ADD_ARR_IF_NOT_EXISTS( quickFindBar, "ReplaceHistory" ); + ADD_ARR_IF_NOT_EXISTS(quickFindBar, "ReplaceHistory"); return quickFindBar.namedObject("ReplaceHistory").toArrayString(); } wxArrayString clConfig::GetQuickFindSearchItems() const { - ADD_OBJ_IF_NOT_EXISTS( m_root->toElement(), "QuickFindBar" ); + ADD_OBJ_IF_NOT_EXISTS(m_root->toElement(), "QuickFindBar"); JSONElement quickFindBar = m_root->toElement().namedObject("QuickFindBar"); - ADD_ARR_IF_NOT_EXISTS( quickFindBar, "SearchHistory" ); + ADD_ARR_IF_NOT_EXISTS(quickFindBar, "SearchHistory"); return quickFindBar.namedObject("SearchHistory").toArrayString(); } wxArrayString clConfig::Read(const wxString& name, const wxArrayString& defaultValue) { JSONElement general = GetGeneralSetting(); - if (general.hasNamedObject(name)) { + if(general.hasNamedObject(name)) { return general.namedObject(name).toArrayString(); } return defaultValue; @@ -360,10 +376,71 @@ void clConfig::Write(const wxString& name, const wxArrayString& value) { JSONElement general = GetGeneralSetting(); - if (general.hasNamedObject(name)) { + if(general.hasNamedObject(name)) { general.removeProperty(name); } general.addProperty(name, value); Save(); } + +void clConfig::DoAddRecentItem(const wxString& propName, const wxString& filename) +{ + wxArrayString recentItems = DoGetRecentItems(propName); + + // Prepend the item + if(recentItems.Index(filename) != wxNOT_FOUND) { + recentItems.Remove(filename); + } + recentItems.Insert(filename, 0); + + // Make sure the list does not go over 15 items + while(recentItems.size() >= 15) { + recentItems.RemoveAt(recentItems.size() - 1); + } + + // Remove old node if exists + JSONElement e = m_root->toElement(); + if(e.hasNamedObject(propName)) { + e.removeProperty(propName); + } + + // append new property + e.addProperty(propName, recentItems); + + // update the cache + if(m_cacheRecentItems.count(propName)) { + m_cacheRecentItems.erase(propName); + } + m_cacheRecentItems.insert(std::make_pair(propName, recentItems)); + m_root->save(m_filename); +} + +void clConfig::DoClearRecentItems(const wxString& propName) +{ + JSONElement e = m_root->toElement(); + if(e.hasNamedObject(propName)) { + e.removeProperty(propName); + } + m_root->save(m_filename); + // update the cache + if(m_cacheRecentItems.count(propName)) { + m_cacheRecentItems.erase(propName); + } +} + +wxArrayString clConfig::DoGetRecentItems(const wxString& propName) const +{ + wxArrayString recentItems; + + // Try the cache first + if(m_cacheRecentItems.count(propName)) { + return m_cacheRecentItems.find(propName)->second; + } + + JSONElement e = m_root->toElement(); + if(e.hasNamedObject(propName)) { + recentItems = e.namedObject(propName).toArrayString(); + } + return recentItems; +} diff -Nru codelite-8.0.1+dfsg2/CodeLite/cl_config.h codelite-9.0+dfsg/CodeLite/cl_config.h --- codelite-8.0.1+dfsg2/CodeLite/cl_config.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/CodeLite/cl_config.h 2015-10-11 13:56:07.000000000 +0000 @@ -28,6 +28,7 @@ #include "codelite_exports.h" #include "json_node.h" +#include //////////////////////////////////////////////////////// @@ -80,11 +81,16 @@ protected: wxFileName m_filename; JSONRoot* m_root; - + std::map m_cacheRecentItems; + protected: void DoDeleteProperty(const wxString& property); JSONElement GetGeneralSetting(); + void DoAddRecentItem(const wxString& propName, const wxString& filename); + wxArrayString DoGetRecentItems(const wxString& propName) const; + void DoClearRecentItems(const wxString& propName); + public: // We provide a global configuration // and the ability to allocate a private copy with a different file @@ -106,12 +112,26 @@ wxArrayString MergeArrays(const wxArrayString& arr1, const wxArrayString& arr2) const; JSONElement::wxStringMap_t MergeStringMaps(const JSONElement::wxStringMap_t& map1, const JSONElement::wxStringMap_t& map2) const; + // Workspace history + void AddRecentWorkspace(const wxString& filename) { DoAddRecentItem("RecentWorkspaces", filename); } + wxArrayString GetRecentWorkspaces() const { return DoGetRecentItems("RecentWorkspaces"); } + void ClearRecentWorkspaces() { DoClearRecentItems("RecentWorkspaces"); } + + // File history + void AddRecentFile(const wxString& filename) { DoAddRecentItem("RecentFiles", filename); } + wxArrayString GetRecentFiles() const { return DoGetRecentItems("RecentFiles"); } + void ClearRecentFiles() { DoClearRecentItems("RecentFiles"); } // Workspace tab order //------------------------------ void SetWorkspaceTabOrder(const wxArrayString& tabs, int selected); bool GetWorkspaceTabOrder(wxArrayString& tabs, int& selected); + // Output tab order + //------------------------------ + void SetOutputTabOrder(const wxArrayString& tabs, int selected); + bool GetOutputTabOrder(wxArrayString& tabs, int& selected); + // General objects // ----------------------------- bool ReadItem(clConfigItem* item, const wxString& differentName = wxEmptyString); @@ -125,7 +145,7 @@ // wxString wxString Read(const wxString& name, const wxString& defaultValue); void Write(const wxString& name, const wxString& value); - + // wxArrayString wxArrayString Read(const wxString& name, const wxArrayString& defaultValue); void Write(const wxString& name, const wxArrayString& value); diff -Nru codelite-8.0.1+dfsg2/CodeLite/cl_sftp.cpp codelite-9.0+dfsg/CodeLite/cl_sftp.cpp --- codelite-8.0.1+dfsg2/CodeLite/cl_sftp.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/CodeLite/cl_sftp.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -94,11 +94,11 @@ throw clException(wxString() << "scp::Write could not open file '" << localFile.GetFullPath() << "'. " << ::strerror(errno)); } - - char buffer[1024]; + + char buffer[4096]; wxMemoryBuffer memBuffer; size_t nbytes(0); - while( !fp.Eof() ) { + while(!fp.Eof()) { nbytes = fp.Read(buffer, sizeof(buffer)); if(nbytes == 0) break; memBuffer.AppendData(buffer, nbytes); @@ -115,21 +115,57 @@ int access_type = O_WRONLY | O_CREAT | O_TRUNC; sftp_file file; - file = sftp_open(m_sftp, remotePath.mb_str(wxConvUTF8).data(), access_type, 0644); + wxString tmpRemoteFile = remotePath; + tmpRemoteFile << ".codelitesftp"; + + file = sftp_open(m_sftp, tmpRemoteFile.mb_str(wxConvUTF8).data(), access_type, 0644); if(file == NULL) { - throw clException(wxString() << _("Can't open file: ") << remotePath << ". " + throw clException(wxString() << _("Can't open file: ") << tmpRemoteFile << ". " << ssh_get_error(m_ssh->GetSession()), sftp_get_error(m_sftp)); } - size_t nbytes = sftp_write(file, fileContent.GetData(), fileContent.GetDataLen()); - if(nbytes != fileContent.GetDataLen()) { - sftp_close(file); - throw clException(wxString() << _("Can't write data to file: ") << remotePath << ". " + char* p = (char*)fileContent.GetData(); + const int maxChunkSize = 65536; + wxInt64 bytesLeft = fileContent.GetDataLen(); + + while(bytesLeft > 0) { + wxInt64 chunkSize = bytesLeft > maxChunkSize ? maxChunkSize : bytesLeft; + wxInt64 bytesWritten = sftp_write(file, p, chunkSize); + if(bytesWritten < 0) { + sftp_close(file); + throw clException(wxString() << _("Can't write data to file: ") << tmpRemoteFile << ". " + << ssh_get_error(m_ssh->GetSession()), + sftp_get_error(m_sftp)); + } + bytesLeft -= bytesWritten; + p += bytesWritten; + } + sftp_close(file); + + // Unlink the original file if it exists + bool needUnlink = false; + { + // Check if the file exists + sftp_attributes attr = sftp_stat(m_sftp, remotePath.mb_str(wxConvISO8859_1).data()); + if(attr) { + needUnlink = true; + sftp_attributes_free(attr); + } + } + + if(needUnlink && sftp_unlink(m_sftp, remotePath.mb_str(wxConvUTF8).data()) < 0) { + throw clException(wxString() << _("Failed to unlink file: ") << remotePath << ". " + << ssh_get_error(m_ssh->GetSession()), + sftp_get_error(m_sftp)); + } + + // Rename the file + if(sftp_rename(m_sftp, tmpRemoteFile.mb_str(wxConvUTF8).data(), remotePath.mb_str(wxConvUTF8).data()) < 0) { + throw clException(wxString() << _("Failed to rename file: ") << tmpRemoteFile << " -> " << remotePath << ". " << ssh_get_error(m_ssh->GetSession()), sftp_get_error(m_sftp)); } - sftp_close(file); } SFTPAttribute::List_t clSFTP::List(const wxString& folder, size_t flags, const wxString& filter) throw(clException) @@ -206,20 +242,32 @@ sftp_get_error(m_sftp)); } - wxString content; - char bytes[1024]; - int nbytes = 0; - memset(bytes, 0, sizeof(bytes)); - nbytes = sftp_read(file, bytes, sizeof(bytes)); - while(nbytes > 0) { - buffer.AppendData((const void*)bytes, nbytes); - memset(bytes, 0, sizeof(bytes)); - nbytes = sftp_read(file, bytes, sizeof(bytes)); + SFTPAttribute::Ptr_t fileAttr = Stat(remotePath); + if(!fileAttr) { + throw clException(wxString() << _("Could not stat file:") << remotePath << ". " + << ssh_get_error(m_ssh->GetSession()), + sftp_get_error(m_sftp)); + } + wxInt64 fileSize = fileAttr->GetSize(); + if(fileSize == 0) return; + + // Allocate buffer for the file content + char pBuffer[65536]; // buffer + + // Read the entire file content + wxInt64 bytesLeft = fileSize; + wxInt64 bytesRead = 0; + while(bytesLeft > 0) { + wxInt64 nbytes = sftp_read(file, pBuffer, sizeof(pBuffer)); + bytesRead += nbytes; + bytesLeft -= nbytes; + buffer.AppendData(pBuffer, nbytes); } - if(nbytes < 0) { + if(bytesRead != fileSize) { sftp_close(file); - throw clException(wxString() << _("Failed to read remote file: ") << remotePath << ". " + buffer.Clear(); + throw clException(wxString() << _("Could not read file:") << remotePath << ". " << ssh_get_error(m_ssh->GetSession()), sftp_get_error(m_sftp)); } diff -Nru codelite-8.0.1+dfsg2/CodeLite/clSFTPEvent.cpp codelite-9.0+dfsg/CodeLite/clSFTPEvent.cpp --- codelite-8.0.1+dfsg2/CodeLite/clSFTPEvent.cpp 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/CodeLite/clSFTPEvent.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,22 @@ +#include "clSFTPEvent.h" + +wxDEFINE_EVENT(wxEVT_SFTP_SAVE_FILE, clSFTPEvent); + +clSFTPEvent::~clSFTPEvent() {} + +clSFTPEvent::clSFTPEvent(const clSFTPEvent& event) { *this = event; } + +clSFTPEvent::clSFTPEvent(wxEventType commandType, int winid) + : clCommandEvent(commandType, winid) +{ +} + +clSFTPEvent& clSFTPEvent::operator=(const clSFTPEvent& src) +{ + clCommandEvent::operator=(src); + + m_account = src.m_account; + m_localFile = src.m_localFile; + m_remoteFile = src.m_remoteFile; + return *this; +} diff -Nru codelite-8.0.1+dfsg2/CodeLite/clSFTPEvent.h codelite-9.0+dfsg/CodeLite/clSFTPEvent.h --- codelite-8.0.1+dfsg2/CodeLite/clSFTPEvent.h 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/CodeLite/clSFTPEvent.h 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,33 @@ +#ifndef CLSFTPEVENT_H +#define CLSFTPEVENT_H + +#include "cl_command_event.h" // Base class: clCommandEvent + +class WXDLLIMPEXP_CL clSFTPEvent : public clCommandEvent +{ +protected: + wxString m_account; + wxString m_localFile; + wxString m_remoteFile; + +public: + clSFTPEvent(wxEventType commandType = wxEVT_NULL, int winid = 0); + clSFTPEvent(const clSFTPEvent& event); + clSFTPEvent& operator=(const clSFTPEvent& src); + + virtual ~clSFTPEvent(); + virtual wxEvent* Clone() const { return new clSFTPEvent(*this); } + + void SetAccount(const wxString& account) { this->m_account = account; } + void SetLocalFile(const wxString& localFile) { this->m_localFile = localFile; } + void SetRemoteFile(const wxString& remoteFile) { this->m_remoteFile = remoteFile; } + const wxString& GetAccount() const { return m_account; } + const wxString& GetLocalFile() const { return m_localFile; } + const wxString& GetRemoteFile() const { return m_remoteFile; } +}; + +typedef void (wxEvtHandler::*clSFTPEventFunction)(clSFTPEvent&); +#define clSFTPEventHandler(func) wxEVENT_HANDLER_CAST(clSFTPEventFunction, func) + +wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CL, wxEVT_SFTP_SAVE_FILE, clSFTPEvent); +#endif // CLSFTPEVENT_H diff -Nru codelite-8.0.1+dfsg2/CodeLite/cl_standard_paths.cpp codelite-9.0+dfsg/CodeLite/cl_standard_paths.cpp --- codelite-8.0.1+dfsg2/CodeLite/cl_standard_paths.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/CodeLite/cl_standard_paths.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -34,9 +34,7 @@ #endif } -clStandardPaths::~clStandardPaths() -{ -} +clStandardPaths::~clStandardPaths() {} clStandardPaths& clStandardPaths::Get() { @@ -47,7 +45,7 @@ wxString clStandardPaths::GetUserDataDir() const { // If the user has provided an alternative datadir, use it - if (!m_path.empty()) { + if(!m_path.empty()) { return m_path; } @@ -57,7 +55,7 @@ // Debug mode wxFileName fn(wxStandardPaths::Get().GetUserDataDir()); - fn.SetFullName( fn.GetFullName() + "-dbg" ); + fn.SetFullName(fn.GetFullName() + "-dbg"); return fn.GetFullPath(); #else @@ -70,44 +68,38 @@ #endif } -void clStandardPaths::SetUserDataDir(const wxString& path) -{ - m_path = path; -} +void clStandardPaths::SetUserDataDir(const wxString& path) { m_path = path; } wxString clStandardPaths::GetPluginsDirectory() const { #ifdef __WXGTK__ wxString pluginsDir = PLUGINS_DIR; #else -# ifdef USE_POSIX_LAYOUT +#ifdef USE_POSIX_LAYOUT wxFileName path(GetDataDir() + wxT(PLUGINS_DIR), ""); -# else +#else wxFileName path(GetDataDir(), ""); path.AppendDir("plugins"); -# endif +#endif wxString pluginsDir = path.GetPath(); #endif return pluginsDir; } -wxString clStandardPaths::GetDataDir() const -{ - return wxStandardPaths::Get().GetDataDir(); -} +wxString clStandardPaths::GetDataDir() const { return wxStandardPaths::Get().GetDataDir(); } wxString clStandardPaths::GetBinFolder() const { - wxFileName fnExe( wxStandardPaths::Get().GetExecutablePath() ); + wxFileName fnExe(wxStandardPaths::Get().GetExecutablePath()); return fnExe.GetPath(); } wxString clStandardPaths::GetBinaryFullPath(const wxString& toolname) const { - wxFileName binary( GetBinFolder(), toolname ); - binary.SetExt( wxEmptyString ); + wxFileName binary(GetBinFolder(), toolname); + binary.SetExt(wxEmptyString); #ifdef __WXMSW__ - binary.SetExt( "exe" ); + binary.SetExt("exe"); #endif return binary.GetFullPath(); } @@ -141,3 +133,34 @@ fn.AppendDir("lexers"); return fn.GetPath(); } + +wxString clStandardPaths::GetUserProjectTemplatesDir() const +{ +#ifdef USE_POSIX_LAYOUT + wxFileName fn(GetUserDataDir() + wxT(INSTALL_DIR), ""); +#else + wxFileName fn(GetUserDataDir(), ""); +#endif + fn.AppendDir("templates"); + fn.AppendDir("projects"); + return fn.GetPath(); +} + +wxString clStandardPaths::GetExecutablePath() const { return wxStandardPaths::Get().GetExecutablePath(); } + +wxString clStandardPaths::GetTempDir() const { return wxStandardPaths::Get().GetTempDir(); } + +wxString clStandardPaths::GetDocumentsDir() const +{ + wxString path = wxStandardPaths::Get().GetDocumentsDir(); +#ifdef __WXGTK__ + // On linux, according to the docs, GetDocumentsDir() return the home directory + // but what we really want is ~/Documents + wxFileName fp(path, ""); + fp.AppendDir("Documents"); + if(fp.DirExists()) { + return fp.GetPath(); + } +#endif + return path; +} diff -Nru codelite-8.0.1+dfsg2/CodeLite/cl_standard_paths.h codelite-9.0+dfsg/CodeLite/cl_standard_paths.h --- codelite-8.0.1+dfsg2/CodeLite/cl_standard_paths.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/CodeLite/cl_standard_paths.h 2015-10-11 13:56:07.000000000 +0000 @@ -52,6 +52,11 @@ void SetUserDataDir(const wxString& path); /** + * @brief return the temp folder for this OS + */ + wxString GetTempDir() const; + + /** * @brief return the path to the plugins folder */ wxString GetPluginsDirectory() const; @@ -81,6 +86,11 @@ wxString GetBinaryFullPath(const wxString &toolname) const; /** + * @brief get CodeLite executale path + */ + wxString GetExecutablePath() const; + + /** * @brief return the user lexers directory */ wxString GetUserLexersDir() const; @@ -94,6 +104,20 @@ * @brief return the project templates dircectory */ wxString GetProjectTemplatesDir() const; + + /** + * @brief return the user templates folder + * @return + */ + wxString GetUserProjectTemplatesDir() const; + + /** + * @brief return the documents directory. + * Windows: C:\Users\name\Documents + * Unix: /home/name/Documents + * OSX: /Users/name/Documents + */ + wxString GetDocumentsDir() const; }; #endif // CLSTANDARDPATHS_H diff -Nru codelite-8.0.1+dfsg2/CodeLite/CMakeLists.txt codelite-9.0+dfsg/CodeLite/CMakeLists.txt --- codelite-8.0.1+dfsg2/CodeLite/CMakeLists.txt 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/CodeLite/CMakeLists.txt 2015-10-11 13:56:07.000000000 +0000 @@ -91,16 +91,11 @@ add_definitions(-DWXUSINGDLL_WXSQLITE3) # Add RPATH -if (NOT MINGW) -if ( WXC_APP ) +if (NOT MINGW AND WXC_APP) string( REPLACE "codelite" "wxcrafter" WXC_LIBS_DIR ${PLUGINS_DIR}) - set (LINKER_OPTIONS -Wl,-rpath,"${WXC_LIBS_DIR}:${PLUGINS_DIR}") - message( "-- libcodelite.so is using RPATH set to ${WXC_LIBS_DIR}:${PLUGINS_DIR}") -else ( WXC_APP ) - set (LINKER_OPTIONS -Wl,-rpath,"${PLUGINS_DIR}") - message( "-- libcodelite.so is using RPATH set to ${PLUGINS_DIR}") -endif ( WXC_APP ) -endif (NOT MINGW) + set (LINKER_OPTIONS -Wl,-rpath,"${WXC_LIBS_DIR}") + message( "-- libcodelite.so is using RPATH set to ${WXC_LIBS_DIR}") +endif () FILE(GLOB SRCS "*.cpp" "../sdk/codelite_indexer/network/*.cpp" "SocketAPI/*.cpp") # Define the output @@ -110,7 +105,7 @@ ${LINKER_OPTIONS} ${wxWidgets_LIBRARIES} -L"${CL_LIBPATH}" - sqlite3lib + ${SQLITE3_LIBRARY} wxsqlite3 ${LIBSSH_LIB} ${ADDITIONAL_LIBRARIES}) diff -Nru codelite-8.0.1+dfsg2/CodeLite/codelite_events.cpp codelite-9.0+dfsg/CodeLite/codelite_events.cpp --- codelite-8.0.1+dfsg2/CodeLite/codelite_events.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/CodeLite/codelite_events.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -31,8 +31,8 @@ wxDEFINE_EVENT(wxEVT_CMD_RELOAD_EXTERNALLY_MODIFIED_NOPROMPT, wxCommandEvent); wxDEFINE_EVENT(wxEVT_CMD_PROJ_SETTINGS_SAVED, clProjectSettingsEvent); wxDEFINE_EVENT(wxEVT_CMD_EXECUTE_ACTIVE_PROJECT, clExecuteEvent); -wxDEFINE_EVENT(wxEVT_CMD_STOP_EXECUTED_PROGRAM, wxCommandEvent); -wxDEFINE_EVENT(wxEVT_CMD_IS_PROGRAM_RUNNING, wxCommandEvent); +wxDEFINE_EVENT(wxEVT_CMD_IS_PROGRAM_RUNNING, clExecuteEvent); +wxDEFINE_EVENT(wxEVT_CMD_STOP_EXECUTED_PROGRAM, clExecuteEvent); wxDEFINE_EVENT(wxEVT_BUILD_STARTED, clBuildEvent); wxDEFINE_EVENT(wxEVT_BUILD_ENDED, clBuildEvent); wxDEFINE_EVENT(wxEVT_BUILD_STARTING, clBuildEvent); @@ -43,10 +43,10 @@ wxDEFINE_EVENT(wxEVT_GET_ADDITIONAL_COMPILEFLAGS, clBuildEvent); wxDEFINE_EVENT(wxEVT_GET_ADDITIONAL_LINKFLAGS, clBuildEvent); wxDEFINE_EVENT(wxEVT_PLUGIN_EXPORT_MAKEFILE, clBuildEvent); -wxDEFINE_EVENT(wxEVT_DEBUG_STARTING, wxCommandEvent); -wxDEFINE_EVENT(wxEVT_DEBUG_STARTED, wxCommandEvent); -wxDEFINE_EVENT(wxEVT_DEBUG_ENDING, wxCommandEvent); -wxDEFINE_EVENT(wxEVT_DEBUG_ENDED, wxCommandEvent); +wxDEFINE_EVENT(wxEVT_DEBUG_STARTING, clDebugEvent); +wxDEFINE_EVENT(wxEVT_DEBUG_STARTED, clDebugEvent); +wxDEFINE_EVENT(wxEVT_DEBUG_ENDING, clDebugEvent); +wxDEFINE_EVENT(wxEVT_DEBUG_ENDED, clDebugEvent); wxDEFINE_EVENT(wxEVT_DEBUG_EDITOR_LOST_CONTROL, wxCommandEvent); wxDEFINE_EVENT(wxEVT_DEBUG_EDITOR_GOT_CONTROL, wxCommandEvent); wxDEFINE_EVENT(wxEVT_CC_CODE_COMPLETE, clCodeCompletionEvent); @@ -59,7 +59,7 @@ wxDEFINE_EVENT(wxEVT_CC_JUMP_HYPER_LINK, clCodeCompletionEvent); wxDEFINE_EVENT(wxEVT_CC_FIND_SYMBOL, clCodeCompletionEvent); wxDEFINE_EVENT(wxEVT_CC_GENERATE_DOXY_BLOCK, clCodeCompletionEvent); -wxDEFINE_EVENT(wxEVT_CMD_CREATE_NEW_WORKSPACE, wxCommandEvent); +wxDEFINE_EVENT(wxEVT_CMD_CREATE_NEW_WORKSPACE, clCommandEvent); wxDEFINE_EVENT(wxEVT_CMD_OPEN_WORKSPACE, clCommandEvent); wxDEFINE_EVENT(wxEVT_CMD_CLOSE_WORKSPACE, clCommandEvent); wxDEFINE_EVENT(wxEVT_CMD_IS_WORKSPACE_OPEN, clCommandEvent); @@ -70,7 +70,6 @@ wxDEFINE_EVENT(wxEVT_CMD_GET_CURRENT_FILE_PROJECT_FILES, wxCommandEvent); wxDEFINE_EVENT(wxEVT_CMD_OPEN_RESOURCE, wxCommandEvent); wxDEFINE_EVENT(wxEVT_CMD_EDITOR_CONTEXT_MENU, wxCommandEvent); -wxDEFINE_EVENT(wxEVT_CMD_GET_FIND_IN_FILES_MASK, clCommandEvent); wxDEFINE_EVENT(wxEVT_CMD_FIND_IN_FILES_DISMISSED, clCommandEvent); wxDEFINE_EVENT(wxEVT_CMD_EDITOR_TIP_DWELL_END, wxCommandEvent); wxDEFINE_EVENT(wxEVT_CMD_RETAG_COMPLETED, wxCommandEvent); @@ -142,8 +141,11 @@ wxDEFINE_EVENT(wxEVT_PROJ_RENAMED, clCommandEvent); wxDEFINE_EVENT(wxEVT_EDITOR_INITIALIZING, clCommandEvent); wxDEFINE_EVENT(wxEVT_FILE_SYSTEM_UPDATED, clFileSystemEvent); +wxDEFINE_EVENT(wxEVT_FILES_MODIFIED_REPLACE_IN_FILES, clFileSystemEvent); wxDEFINE_EVENT(wxEVT_SAVE_SESSION_NEEDED, clCommandEvent); wxDEFINE_EVENT(wxEVT_ENVIRONMENT_VARIABLES_MODIFIED, clCommandEvent); wxDEFINE_EVENT(wxEVT_DND_FOLDER_DROPPED, clCommandEvent); wxDEFINE_EVENT(wxEVT_DND_FILE_DROPPED, clCommandEvent); wxDEFINE_EVENT(wxEVT_RESTART_CODELITE, clCommandEvent); +wxDEFINE_EVENT(wxEVT_SHOW_WORKSPACE_TAB, clCommandEvent); +wxDEFINE_EVENT(wxEVT_SHOW_OUTPUT_TAB, clCommandEvent); diff -Nru codelite-8.0.1+dfsg2/CodeLite/codelite_events.h codelite-9.0+dfsg/CodeLite/codelite_events.h --- codelite-8.0.1+dfsg2/CodeLite/codelite_events.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/CodeLite/codelite_events.h 2015-10-11 13:56:07.000000000 +0000 @@ -158,12 +158,12 @@ wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CL, wxEVT_CMD_EXECUTE_ACTIVE_PROJECT, clExecuteEvent); // A user requested to stop the previously executed program -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CL, wxEVT_CMD_STOP_EXECUTED_PROGRAM, wxCommandEvent); +wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CL, wxEVT_CMD_STOP_EXECUTED_PROGRAM, clExecuteEvent); // codelite sends this event to query plugins incase there is a program running -// use evet.SetInt(1) to indicate that the plugin has launched an executable +// use evet.SetAnswer(true) to indicate that the plugin has launched an executable // it is mainly used for displaying the 'Stop' button in the toolbar as active/disabled -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CL, wxEVT_CMD_IS_PROGRAM_RUNNING, wxCommandEvent); +wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CL, wxEVT_CMD_IS_PROGRAM_RUNNING, clExecuteEvent); // ---------------------------------------------------------------------- // Build Events @@ -233,19 +233,19 @@ */ // sent when the debugger is about to start // clientData is a pointer to a DebuggerStartupInfo structure -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CL, wxEVT_DEBUG_STARTING, wxCommandEvent); +wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CL, wxEVT_DEBUG_STARTING, clDebugEvent); // sent right after the debugger started; program is not running yet // clientData is a pointer to a DebuggerStartupInfo structure -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CL, wxEVT_DEBUG_STARTED, wxCommandEvent); +wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CL, wxEVT_DEBUG_STARTED, clDebugEvent); // sent just before the debugger stops // clientData is NULL -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CL, wxEVT_DEBUG_ENDING, wxCommandEvent); +wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CL, wxEVT_DEBUG_ENDING, clDebugEvent); // sent after the debugger stopped // clientData is NULL -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CL, wxEVT_DEBUG_ENDED, wxCommandEvent); +wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CL, wxEVT_DEBUG_ENDED, clDebugEvent); // set when the editor gains or loses // the control over the debugger @@ -318,7 +318,7 @@ ///////////////////////////////////////////////// // User selected an option to create a new workspace -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CL, wxEVT_CMD_CREATE_NEW_WORKSPACE, wxCommandEvent); +wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CL, wxEVT_CMD_CREATE_NEW_WORKSPACE, clCommandEvent); // Event type: clCommandEvent // A workspace file was selected by the user. @@ -381,16 +381,6 @@ wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CL, wxEVT_CMD_EDITOR_CONTEXT_MENU, wxCommandEvent); // Event type: clCommandEvent -// The Find In Files dialog requests an additional file mask -// the format should be: -// *.a;*.b -// and should be placed at: -// event.GetStrings().Add("*.a;*.b"); -// In order to set the mask that will be used (there can be multiple entries), use -// event.SetString("*.mask"); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CL, wxEVT_CMD_GET_FIND_IN_FILES_MASK, clCommandEvent); - -// Event type: clCommandEvent // Sent by the Find IN Files dialog when the dialog is dismissed // The information passed in the event contains the selected 'file mask' // used for the search. Use event.GetString() to get it @@ -689,6 +679,12 @@ // after git pull, svn update etc) wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CL, wxEVT_FILE_SYSTEM_UPDATED, clFileSystemEvent); +// Event: clFileSystemEvent +// List of files were modified by the replace-in-files operation (this event will only include +// the files that were modified on the file system directly and have no open editor) +// Use clFileSystemEvent::GetStrings to get list of modified files +wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CL, wxEVT_FILES_MODIFIED_REPLACE_IN_FILES, clFileSystemEvent); + // Event: clCommandEvent // Sent when CodeLite requires to store the current workspace session // Call event.Skip(false) to instruct codelite to skip the default session-save @@ -712,4 +708,16 @@ // a codelite restart is required wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CL, wxEVT_RESTART_CODELITE, clCommandEvent); +// Event: clCommandEvent +// Toggle workspace view tab. Use event.IsSelected() to test whether we should hide/show the tab +// In anycase, you should not destroy the window, just hide it +// The tab name is set in the event.GetString() +wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CL, wxEVT_SHOW_WORKSPACE_TAB, clCommandEvent); + +// Event: clCommandEvent +// Toggle output view tab. Use event.IsSelected() to test whether we should hide/show the tab +// In anycase, you should not destroy the window, just hide it +// The tab name is set in the event.GetString() +wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CL, wxEVT_SHOW_OUTPUT_TAB, clCommandEvent); + #endif // CODELITE_EVENTS_H diff -Nru codelite-8.0.1+dfsg2/CodeLite/CodeLite.project codelite-9.0+dfsg/CodeLite/CodeLite.project --- codelite-8.0.1+dfsg2/CodeLite/CodeLite.project 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/CodeLite/CodeLite.project 2015-10-11 13:56:07.000000000 +0000 @@ -92,6 +92,7 @@ + @@ -288,6 +289,8 @@ + + @@ -296,6 +299,8 @@ + + @@ -328,6 +333,8 @@ + + diff -Nru codelite-8.0.1+dfsg2/CodeLite/cpptoken.cpp codelite-9.0+dfsg/CodeLite/cpptoken.cpp --- codelite-8.0.1+dfsg2/CodeLite/cpptoken.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/CodeLite/cpptoken.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -24,15 +24,11 @@ ////////////////////////////////////////////////////////////////////////////// #include "cpptoken.h" #include +#include -CppToken::CppToken() -{ - reset(); -} +CppToken::CppToken() { reset(); } -CppToken::~CppToken() -{ -} +CppToken::~CppToken() {} void CppToken::reset() { @@ -43,76 +39,84 @@ filename.clear(); } -void CppToken::append(wxChar ch) -{ - name << ch; -} +void CppToken::append(wxChar ch) { name << ch; } -void CppToken::print() -{ - wxPrintf(wxT("%s | %ld\n"), name.c_str(), offset); -} +void CppToken::print() { wxPrintf(wxT("%s | %ld\n"), name.c_str(), offset); } -int CppToken::store(wxSQLite3Database* db) const +int CppToken::store(wxSQLite3Database* db, wxLongLong fileID) const { try { - - wxSQLite3Statement st = db->PrepareStatement("REPLACE INTO TOKENS_TABLE (ID, NAME, OFFSET, FILE_NAME, LINE_NUMBER) VALUES(NULL, ?, ?, ?, ?)"); + + wxSQLite3Statement st = db->PrepareStatement( + "REPLACE INTO TOKENS_TABLE (ID, NAME, OFFSET, FILE_ID, LINE_NUMBER) VALUES(NULL, ?, ?, ?, ?)"); st.Bind(1, getName()); st.Bind(2, (int)getOffset()); - st.Bind(3, getFilename()); + st.Bind(3, fileID); st.Bind(4, (int)getLineNumber()); st.ExecuteUpdate(); return db->GetLastRowId().ToLong(); - } catch (wxSQLite3Exception &e) { - wxUnusedVar( e ); + } catch(wxSQLite3Exception& e) { + wxUnusedVar(e); } return wxNOT_FOUND; } -CppToken::List_t CppToken::loadByNameAndFile(wxSQLite3Database* db, const wxString& name, const wxString& filename) +CppToken::List_t CppToken::loadByNameAndFile(wxSQLite3Database* db, const wxString& name, wxLongLong fileID) { CppToken::List_t matches; try { - wxSQLite3Statement st = db->PrepareStatement("select * from TOKENS_TABLE where FILE_NAME=? AND NAME=?"); - st.Bind(1, filename); + wxSQLite3Statement st = db->PrepareStatement("select * from TOKENS_TABLE where FILE_ID=? AND NAME=?"); + st.Bind(1, fileID); st.Bind(2, name); wxSQLite3ResultSet res = st.ExecuteQuery(); - while ( res.NextRow() ) { + while(res.NextRow()) { CppToken token(res); - matches.push_back( token ); + matches.push_back(token); } - - } catch (wxSQLite3Exception &e) { - wxUnusedVar( e ); + + } catch(wxSQLite3Exception& e) { + wxUnusedVar(e); } return matches; } CppToken::CppToken(wxSQLite3ResultSet& res) { - setId( res.GetInt(0) ); - setName( res.GetString(1) ); - setOffset( res.GetInt(2) ); - setFilename( res.GetString(3) ); - setLineNumber( res.GetInt(4) ); + setId(res.GetInt(0)); + setName(res.GetString(1)); + setOffset(res.GetInt(2)); + setLineNumber(res.GetInt(4)); } CppToken::List_t CppToken::loadByName(wxSQLite3Database* db, const wxString& name) { CppToken::List_t matches; + std::map fileIdToFile; try { wxSQLite3Statement st = db->PrepareStatement("select * from TOKENS_TABLE where NAME=?"); st.Bind(1, name); wxSQLite3ResultSet res = st.ExecuteQuery(); - while ( res.NextRow() ) { + while(res.NextRow()) { CppToken token(res); - matches.push_back( token ); + wxLongLong fileID = res.GetInt64(3); + if(fileIdToFile.count(fileID)) { + token.setFilename(fileIdToFile.find(fileID)->second); + } else { + // load from the db + wxSQLite3Statement st1 = db->PrepareStatement("SELECT FILE_NAME FROM FILES WHERE ID=? LIMIT 1"); + st1.Bind(1, fileID); + wxSQLite3ResultSet res1 = st1.ExecuteQuery(); + if(res1.NextRow()) { + token.setFilename(res1.GetString(0)); + fileIdToFile.insert(std::make_pair(fileID, token.getFilename())); + } + } + matches.push_back(token); } - - } catch (wxSQLite3Exception &e) { - wxUnusedVar( e ); + + } catch(wxSQLite3Exception& e) { + wxUnusedVar(e); } return matches; } @@ -120,26 +124,21 @@ //----------------------------------------------------------------- // CppTokensMap //----------------------------------------------------------------- -CppTokensMap::CppTokensMap() -{ -} +CppTokensMap::CppTokensMap() {} -CppTokensMap::~CppTokensMap() -{ - clear(); -} +CppTokensMap::~CppTokensMap() { clear(); } -void CppTokensMap::addToken(const wxString& name, const CppToken::List_t &list) +void CppTokensMap::addToken(const wxString& name, const CppToken::List_t& list) { // try to locate an entry with this name - std::map* >::iterator iter = m_tokens.find( name ); - std::list *tokensList(NULL); - if (iter != m_tokens.end()) { + std::map*>::iterator iter = m_tokens.find(name); + std::list* tokensList(NULL); + if(iter != m_tokens.end()) { tokensList = iter->second; } else { // create new list and add it to the map tokensList = new std::list; - m_tokens.insert( std::make_pair(name, tokensList) ); + m_tokens.insert(std::make_pair(name, tokensList)); } tokensList->insert(tokensList->end(), list.begin(), list.end()); } @@ -147,42 +146,39 @@ void CppTokensMap::addToken(const CppToken& token) { // try to locate an entry with this name - std::map* >::iterator iter = m_tokens.find(token.getName()); - std::list *tokensList(NULL); - if (iter != m_tokens.end()) { + std::map*>::iterator iter = m_tokens.find(token.getName()); + std::list* tokensList(NULL); + if(iter != m_tokens.end()) { tokensList = iter->second; } else { // create new list and add it to the map tokensList = new std::list; m_tokens[token.getName()] = tokensList; } - tokensList->push_back( token ); + tokensList->push_back(token); } bool CppTokensMap::contains(const wxString& name) { - std::map* >::iterator iter = m_tokens.find(name); + std::map*>::iterator iter = m_tokens.find(name); return iter != m_tokens.end(); } void CppTokensMap::findTokens(const wxString& name, std::list& tokens) { - std::map* >::iterator iter = m_tokens.find(name); -// std::list *tokensList(NULL); - if (iter != m_tokens.end()) { + std::map*>::iterator iter = m_tokens.find(name); + // std::list *tokensList(NULL); + if(iter != m_tokens.end()) { tokens = *(iter->second); } } void CppTokensMap::clear() { - std::map* >::iterator iter = m_tokens.begin(); + std::map*>::iterator iter = m_tokens.begin(); for(; iter != m_tokens.end(); ++iter) { delete iter->second; } m_tokens.clear(); } -bool CppTokensMap::is_empty() -{ - return m_tokens.empty(); -} +bool CppTokensMap::is_empty() { return m_tokens.empty(); } diff -Nru codelite-8.0.1+dfsg2/CodeLite/cpptoken.h codelite-9.0+dfsg/CodeLite/cpptoken.h --- codelite-8.0.1+dfsg2/CodeLite/cpptoken.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/CodeLite/cpptoken.h 2015-10-11 13:56:07.000000000 +0000 @@ -98,7 +98,13 @@ void reset(); void append(wxChar ch); - int store(wxSQLite3Database* db) const; + /** + * @brief store the token into the datbase. + * @param db database pointer + * @param fileId the file ID for this token + */ + int store(wxSQLite3Database* db, wxLongLong fileId) const; + /** * @brief load tokens from the cache by file/name * @param db @@ -106,7 +112,7 @@ * @param file_name * @return */ - static CppToken::List_t loadByNameAndFile(wxSQLite3Database* db, const wxString& name, const wxString& filename); + static CppToken::List_t loadByNameAndFile(wxSQLite3Database* db, const wxString& name, wxLongLong fileID); /** * @brief * @param db diff -Nru codelite-8.0.1+dfsg2/CodeLite/ctags_manager.cpp codelite-9.0+dfsg/CodeLite/ctags_manager.cpp --- codelite-8.0.1+dfsg2/CodeLite/ctags_manager.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/CodeLite/ctags_manager.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -137,12 +137,6 @@ // CTAGS Manager //------------------------------------------------------------------------------ -BEGIN_EVENT_TABLE(TagsManager, wxEvtHandler) -EVT_COMMAND(wxID_ANY, wxEVT_PROC_TERMINATED, TagsManager::OnIndexerTerminated) -END_EVENT_TABLE() - -// ToDo: use GetScopesByScopeName method - DRY - TagsManager::TagsManager() : wxEvtHandler() , m_codeliteIndexerPath(wxT("codelite_indexer")) @@ -152,7 +146,8 @@ , m_evtHandler(NULL) , m_encoding(wxFONTENCODING_DEFAULT) { - + Bind(wxEVT_ASYNC_PROCESS_TERMINATED, &TagsManager::OnIndexerTerminated, this); + m_db = new TagsStorageSQLite(); m_db->SetSingleSearchLimit(MAX_SEARCH_LIMIT); @@ -330,12 +325,10 @@ void TagsManager::SetCodeLiteIndexerPath(const wxString& path) { m_codeliteIndexerPath = path; } -void TagsManager::OnIndexerTerminated(wxCommandEvent& event) +void TagsManager::OnIndexerTerminated(clProcessEvent& event) { - if(m_codeliteIndexerProcess) { - delete m_codeliteIndexerProcess; - m_codeliteIndexerProcess = NULL; - } + wxUnusedVar(event); + wxDELETE(m_codeliteIndexerProcess); StartCodeLiteIndexer(); } diff -Nru codelite-8.0.1+dfsg2/CodeLite/ctags_manager.h codelite-9.0+dfsg/CodeLite/ctags_manager.h --- codelite-8.0.1+dfsg2/CodeLite/ctags_manager.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/CodeLite/ctags_manager.h 2015-10-11 13:56:07.000000000 +0000 @@ -45,6 +45,7 @@ #include #include "istorage.h" #include "codelite_exports.h" +#include "cl_command_event.h" #ifdef USE_TRACE #include @@ -875,9 +876,7 @@ /** * Handler ctags process termination */ - void OnIndexerTerminated(wxCommandEvent& event); - - DECLARE_EVENT_TABLE() + void OnIndexerTerminated(clProcessEvent& event); private: /** diff -Nru codelite-8.0.1+dfsg2/CodeLite/CxxLexer.cpp codelite-9.0+dfsg/CodeLite/CxxLexer.cpp --- codelite-8.0.1+dfsg2/CodeLite/CxxLexer.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/CodeLite/CxxLexer.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1096,10 +1096,6 @@ void yyset_lineno (int line_number ,yyscan_t yyscanner ); -int yyget_column (yyscan_t yyscanner ); - -void yyset_column (int column_no ,yyscan_t yyscanner ); - /* Macros after this point can all be overridden by user definitions in * section 1. */ diff -Nru codelite-8.0.1+dfsg2/CodeLite/CxxPreProcessor.cpp codelite-9.0+dfsg/CodeLite/CxxPreProcessor.cpp --- codelite-8.0.1+dfsg2/CodeLite/CxxPreProcessor.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/CodeLite/CxxPreProcessor.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -8,9 +8,7 @@ { } -CxxPreProcessor::~CxxPreProcessor() -{ -} +CxxPreProcessor::~CxxPreProcessor() {} void CxxPreProcessor::Parse(const wxFileName& filename, size_t options) { @@ -74,14 +72,18 @@ tmpfile = fn.GetFullPath(); // CL_DEBUG(" ... Checking include file: %s\n", fn.GetFullPath()); struct stat buff; - if(stat(tmpfile.mb_str(wxConvUTF8).data(), &buff) == 0) { + if((stat(tmpfile.mb_str(wxConvUTF8).data(), &buff) == 0)) { CL_DEBUG1(" ==> Creating scanner for file: %s\n", tmpfile); wxFileName fixedFileName(tmpfile); - fixedFileName.Normalize(wxPATH_NORM_DOTS); - tmpfile = fixedFileName.GetFullPath(); - m_fileMapping.insert(std::make_pair(includeStatement, tmpfile)); - outFile = fixedFileName; - return true; + if(fixedFileName.FileExists()) { + fixedFileName.Normalize(wxPATH_NORM_DOTS); + tmpfile = fixedFileName.GetFullPath(); + m_fileMapping.insert(std::make_pair(includeStatement, tmpfile)); + outFile = fixedFileName; + return true; + } else { + CL_DEBUG("Including a folder :/ : %s", fixedFileName.GetFullPath()); + } } } @@ -91,10 +93,7 @@ return false; } -void CxxPreProcessor::AddIncludePath(const wxString& path) -{ - m_includePaths.Add(path); -} +void CxxPreProcessor::AddIncludePath(const wxString& path) { m_includePaths.Add(path); } void CxxPreProcessor::AddDefinition(const wxString& def) { @@ -161,7 +160,4 @@ } } -void CxxPreProcessor::IncDepth() -{ - m_currentDepth++; -} +void CxxPreProcessor::IncDepth() { m_currentDepth++; } diff -Nru codelite-8.0.1+dfsg2/CodeLite/CxxPreProcessorScanner.cpp codelite-9.0+dfsg/CodeLite/CxxPreProcessorScanner.cpp --- codelite-8.0.1+dfsg2/CodeLite/CxxPreProcessorScanner.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/CodeLite/CxxPreProcessorScanner.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -11,6 +11,7 @@ , m_options(options) { m_scanner = ::LexerNew(m_filename, m_options); + wxASSERT(m_scanner); } CxxPreProcessorScanner::~CxxPreProcessorScanner() diff -Nru codelite-8.0.1+dfsg2/CodeLite/fileextmanager.cpp codelite-9.0+dfsg/CodeLite/fileextmanager.cpp --- codelite-8.0.1+dfsg2/CodeLite/fileextmanager.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/CodeLite/fileextmanager.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -28,6 +28,7 @@ #include "fileutils.h" #include #include +#include "json_node.h" std::map FileExtManager::m_map; std::vector FileExtManager::m_matchers; @@ -77,10 +78,10 @@ m_map[wxT("js")] = TypeJS; m_map[wxT("javascript")] = TypeJS; m_map[wxT("py")] = TypePython; - + // Java file m_map[wxT("java")] = TypeJava; - + m_map[wxT("exe")] = TypeExe; m_map[wxT("html")] = TypeHtml; m_map[wxT("htm")] = TypeHtml; @@ -120,12 +121,12 @@ m_map[wxT("sql")] = TypeSQL; m_map[wxT("phpwsp")] = TypeWorkspacePHP; m_map[wxT("phptags")] = TypeWorkspacePHPTags; - + m_map["pro"] = TypeQMake; m_map["pri"] = TypeQMake; m_map["cmake"] = TypeCMake; m_map["s"] = TypeAsm; - + // Initialize regexes: m_matchers.push_back(Matcher::Ptr_t(new Matcher("#[ \t]*![ \t]*/bin/bash", TypeScript))); m_matchers.push_back(Matcher::Ptr_t(new Matcher("#[ \t]*![ \t]*/bin/sh", TypeScript))); @@ -135,13 +136,13 @@ m_matchers.push_back(Matcher::Ptr_t(new Matcher("#[ \t]*![ \t]*/usr/bin/python", TypePython))); m_matchers.push_back(Matcher::Ptr_t(new Matcher("second == TypeText) && (fn.GetFullName().CmpNoCase("CMakeLists.txt") == 0)) { return TypeCMake; } - + FileExtManager::FileType type = iter->second; - if(fn.Exists() && type == TypeWorkspace) { - // try to decide if this is a PHP workspace or a standard workspace - wxXmlDocument doc; - if(doc.Load(fn.GetFullPath())) { - // an XML type, assume standard workspace - return TypeWorkspace; + if(fn.Exists() && (type == TypeWorkspace)) { + wxString content; + if(FileUtils::ReadFileContent(fn, content)) { + if(content.Contains("second; @@ -203,27 +211,27 @@ return ft == TypePhp; } -bool FileExtManager::AutoDetectByContent(const wxString& filename, FileExtManager::FileType& fileType) +bool FileExtManager::AutoDetectByContent(const wxString& filename, FileExtManager::FileType& fileType) { - wxString fileContent; + wxString fileContent; if(!FileUtils::ReadFileContent(filename, fileContent)) return false; - + // Use only the first 4K bytes from the input file (tested with default STL headers) if(fileContent.length() > 4096) { fileContent.Truncate(4096); } - - for(size_t i=0; iMatches(fileContent)) { fileType = m_matchers.at(i)->m_fileType; return true; } } - return false; + return false; } - -bool FileExtManager::IsJavaFile(const wxString& filename) + +bool FileExtManager::IsJavaFile(const wxString& filename) { FileType ft = GetType(filename); - return ft == TypeJava; -} + return ft == TypeJava; +} diff -Nru codelite-8.0.1+dfsg2/CodeLite/fileextmanager.h codelite-9.0+dfsg/CodeLite/fileextmanager.h --- codelite-8.0.1+dfsg2/CodeLite/fileextmanager.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/CodeLite/fileextmanager.h 2015-10-11 13:56:07.000000000 +0000 @@ -70,6 +70,7 @@ TypeFolder, TypeProjectActive, TypeWorkspacePHP, + TypeWorkspaceNodeJS, TypeWorkspacePHPTags, TypeWorkspaceDatabase, TypeAsm, diff -Nru codelite-8.0.1+dfsg2/CodeLite/fileutils.cpp codelite-9.0+dfsg/CodeLite/fileutils.cpp --- codelite-8.0.1+dfsg2/CodeLite/fileutils.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/CodeLite/fileutils.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -33,6 +33,7 @@ #include "procutils.h" #include #include +#include void FileUtils::OpenFileExplorer(const wxString& path) { @@ -107,8 +108,15 @@ cmd = GTKGetTerminal(""); #elif defined(__WXMAC__) + strPath = path; + if(strPath.Contains(" ")) { + strPath.Prepend("\\\"").Append("\\\""); + } // osascript -e 'tell app "Terminal" to do script "echo hello"' cmd << "osascript -e 'tell app \"Terminal\" to do script \"cd " << strPath << "\"'"; + CL_DEBUG(cmd); + ::system(cmd.mb_str(wxConvUTF8).data()); + return; #endif if(cmd.IsEmpty()) return; ::wxExecute(cmd); @@ -129,7 +137,8 @@ bool FileUtils::ReadFileContent(const wxFileName& fn, wxString& data, const wxMBConv& conv) { - wxFFile file(fn.GetFullPath().GetData(), wxT("rb")); + wxString filename = fn.GetFullPath(); + wxFFile file(filename, wxT("rb")); if(file.IsOpened() == false) { // Nothing to be done return false; @@ -157,13 +166,17 @@ tty.Clear(); wxString command; wxString tmpfile; + wxString escapedPath = path; + if(escapedPath.Contains(" ")) { + escapedPath.Prepend("\"").Append("\""); + } tmpfile << "/tmp/terminal.tty." << ::wxGetProcessId(); - command << "osascript -e 'tell app \"Terminal\" to do script \"cd " << path << " && tty > " << tmpfile + command << "osascript -e 'tell app \"Terminal\" to do script \"tty > " << tmpfile << " && clear && sleep 12345\"'"; CL_DEBUG("Executing: %s", command); long res = ::wxExecute(command); if(res == 0) { - CL_WARNING("Failed to execute command"); + CL_WARNING("Failed to execute command:\n%s", command); return; } @@ -187,20 +200,23 @@ wxString psCommand; psCommand << "ps -A -o ppid,command"; wxString psOutput = ProcUtils::SafeExecuteCommand(psCommand); + CL_DEBUG("PS output:\n%s\n", psOutput); wxArrayString lines = ::wxStringTokenize(psOutput, "\n", wxTOKEN_STRTOK); for(size_t u = 0; u < lines.GetCount(); ++u) { - wxString ppidString = lines.Item(u).BeforeFirst(' '); - wxString pidCommand = lines.Item(u).AfterFirst(' '); - ppidString.Trim().Trim(false); - pidCommand.Trim().Trim(false); - if(pidCommand.Contains("sleep") && pidCommand.Contains("12345")) { + wxString l = lines.Item(u); + l.Trim().Trim(false); + if(l.Contains("sleep") && l.Contains("12345")) { // we got a match + CL_DEBUG("Got a match!"); + wxString ppidString = l.BeforeFirst(' '); ppidString.ToCLong(&pid); break; } } break; } + CL_DEBUG("PID is: %d\n", (int)pid); + CL_DEBUG("TTY is: %s\n", tty); } void @@ -208,7 +224,18 @@ { #ifdef __WXMSW__ wxString command; - command << "cmd /C \"" << sshClient << " -P " << port << " " << connectString << " -pw " << password << "\""; + wxFileName putty(sshClient); + if(!putty.Exists()) { + wxMessageBox(_("Can't launch PuTTY. Don't know where it is ...."), "CodeLite", wxOK | wxCENTER | wxICON_ERROR); + return; + } + + wxString puttyClient = putty.GetFullPath(); + if(puttyClient.Contains(" ")) { + puttyClient.Prepend("\"").Append("\""); + } + + command << "cmd /C \"" << puttyClient << " -P " << port << " " << connectString << " -pw " << password << "\""; ::wxExecute(command, wxEXEC_ASYNC | wxEXEC_HIDE_CONSOLE); #elif defined(__WXGTK__) @@ -308,3 +335,34 @@ } return encoded; } + +bool FileUtils::FuzzyMatch(const wxString& needle, const wxString& haystack) +{ + wxArrayString parts = ::wxStringTokenize(needle, " \t", wxTOKEN_STRTOK); + for(size_t i = 0; i < parts.size(); ++i) { + wxString pattern = parts.Item(i); + pattern = pattern.Lower(); + wxString lchaystack = haystack.Lower(); + if(!lchaystack.Contains(pattern)) { + return false; + } + } + return true; +} + +bool FileUtils::IsHidden(const wxFileName& filename) +{ +#ifdef __WXMSW__ + DWORD dwAttrs = GetFileAttributes(filename.GetFullPath().c_str()); + if(dwAttrs == INVALID_FILE_ATTRIBUTES) return false; + return (dwAttrs & FILE_ATTRIBUTE_HIDDEN) || (filename.GetFullName().StartsWith(".")); +#else + // is it enough to test for file name? + return filename.GetFullName().StartsWith("."); +#endif +} + +bool FileUtils::IsHidden(const wxString& filename) +{ + return IsHidden(filename); +} diff -Nru codelite-8.0.1+dfsg2/CodeLite/fileutils.h codelite-9.0+dfsg/CodeLite/fileutils.h --- codelite-8.0.1+dfsg2/CodeLite/fileutils.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/CodeLite/fileutils.h 2015-10-11 13:56:07.000000000 +0000 @@ -28,10 +28,31 @@ #include "wx/filename.h" #include "codelite_exports.h" #include +#include class WXDLLIMPEXP_CL FileUtils { public: + class Deleter + { + wxFileName m_filename; + + public: + Deleter(const wxFileName& filename) + : m_filename(filename) + { + } + + ~Deleter() + { + if(m_filename.Exists()) { + wxLogNull noLog; + ::wxRemoveFile(m_filename.GetFullPath()); + } + } + }; + +public: static bool ReadFileContent(const wxFileName& fn, wxString& data, const wxMBConv& conv = wxConvUTF8); /** @@ -70,7 +91,7 @@ * @param [output] tty the TTY of the launched terminal */ static void OSXOpenDebuggerTerminalAndGetTTY(const wxString& path, wxString& tty, long& pid); - + /** * @brief file masking search */ @@ -79,15 +100,31 @@ * @brief file masking search */ static bool WildMatch(const wxString& mask, const wxFileName& filename); - + + /** + * @brief return true if needle exists in the haystack. Supports fuzzy search + * @param needle the pattern to search + * @param haystack the string to search on + */ + static bool FuzzyMatch(const wxString& needle, const wxString& haystack); + /** * @brief decode URI using percent encoding */ static wxString DecodeURI(const wxString& uri); - + /** * @brief encode URI using percent encoding */ static wxString EncodeURI(const wxString& uri); + + /** + * @brief is the file or folder a hidden file? + */ + static bool IsHidden(const wxFileName& path); + /** + * @brief is the file or folder a hidden file? + */ + static bool IsHidden(const wxString& path); }; #endif // FILEUTILS_H diff -Nru codelite-8.0.1+dfsg2/CodeLite/json_node.cpp codelite-9.0+dfsg/CodeLite/json_node.cpp --- codelite-8.0.1+dfsg2/CodeLite/json_node.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/CodeLite/json_node.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -408,17 +408,17 @@ void JSONElement::arrayAppend(const wxString& value) { arrayAppend(JSONElement(wxT(""), value, cJSON_String)); } -wxArrayString JSONElement::toArrayString() const +wxArrayString JSONElement::toArrayString(const wxArrayString& defaultValue) const { - wxArrayString arr; if(!_json) { - return arr; + return defaultValue; } if(_json->type != cJSON_Array) { - return arr; + return defaultValue; } + wxArrayString arr; for(int i = 0; i < arraySize(); i++) { arr.Add(arrayItem(i).toString()); } @@ -595,3 +595,19 @@ wxFont f = clFontHelper::FromString(str); return f; } + +bool JSONElement::isArray() const +{ + if(!_json) { + return false; + } + return _json->type == cJSON_Array; +} + +bool JSONElement::isNumber() const +{ + if(!_json) { + return false; + } + return _json->type == cJSON_Number; +} diff -Nru codelite-8.0.1+dfsg2/CodeLite/json_node.h codelite-9.0+dfsg/CodeLite/json_node.h --- codelite-8.0.1+dfsg2/CodeLite/json_node.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/CodeLite/json_node.h 2015-10-11 13:56:07.000000000 +0000 @@ -79,11 +79,16 @@ bool toBool(bool defaultValue = false) const; wxString toString(const wxString& defaultValue = wxEmptyString) const; - wxArrayString toArrayString() const; + wxArrayString toArrayString(const wxArrayString& defaultValue = wxArrayString()) const; JSONElement arrayItem(int pos) const; + + // Retuen the object type bool isNull() const; bool isBool() const; bool isString() const; + bool isNumber() const; + bool isArray() const; + wxString format() const; /** * @brief format the JSON into a raw c string @@ -98,7 +103,7 @@ wxPoint toPoint() const; wxColour toColour(const wxColour& defaultColour = wxNullColour) const; wxFont toFont(const wxFont& defaultFont = wxNullFont) const; - + JSONElement::wxStringMap_t toStringMap() const; // Writers diff -Nru codelite-8.0.1+dfsg2/CodeLite/macros.h codelite-9.0+dfsg/CodeLite/macros.h --- codelite-8.0.1+dfsg2/CodeLite/macros.h 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/CodeLite/macros.h 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,173 @@ +////////////////////////////////////////////////////////////////////////////// +////////////////////////////////////////////////////////////////////////////// +// +// copyright : (C) 2008 by Eran Ifrah +// file name : macros.h +// +// ------------------------------------------------------------------------- +// A +// _____ _ _ _ _ +// / __ \ | | | | (_) | +// | / \/ ___ __| | ___| | _| |_ ___ +// | | / _ \ / _ |/ _ \ | | | __/ _ ) +// | \__/\ (_) | (_| | __/ |___| | || __/ +// \____/\___/ \__,_|\___\_____/_|\__\___| +// +// F i l e +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// +////////////////////////////////////////////////////////////////////////////// +////////////////////////////////////////////////////////////////////////////// +#ifndef MACROS_H +#define MACROS_H + +#include "cl_standard_paths.h" +#include +#include +#include +#include + +//------------------------------------------------------- +// wxWidgets Connect macros +//------------------------------------------------------- + +#define ConnectChoice(ctrl, fn) \ + ctrl->Connect(ctrl->GetId(), wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler(fn), NULL, this); + +#define ConnectButton(ctrl, fn) \ + ctrl->Connect(ctrl->GetId(), wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(fn), NULL, this); + +#define ConnectListBoxDClick(ctrl, fn) \ + ctrl->Connect(ctrl->GetId(), wxEVT_COMMAND_LISTBOX_DOUBLECLICKED, wxCommandEventHandler(fn), NULL, this); + +#define ConnectCheckBox(ctrl, fn) \ + ctrl->Connect(ctrl->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(fn), NULL, this); + +#define ConnectListCtrlItemSelected(ctrl, fn) \ + ctrl->Connect(ctrl->GetId(), wxEVT_COMMAND_LIST_ITEM_SELECTED, wxListEventHandler(fn), NULL, this); + +#define ConnectListCtrlItemActivated(ctrl, fn) \ + ctrl->Connect(ctrl->GetId(), wxEVT_COMMAND_LIST_ITEM_ACTIVATED, wxListEventHandler(fn), NULL, this); + +#define ConnectKeyDown(ctrl, fn) ctrl->Connect(ctrl->GetId(), wxEVT_KEY_DOWN, wxKeyEventHandler(fn), NULL, this); + +#define ConnectCharEvent(ctrl, fn) ctrl->Connect(ctrl->GetId(), wxEVT_CHAR, wxKeyEventHandler(fn), NULL, this); + +#define ConnectCmdTextEntered(ctrl, fn) \ + ctrl->Connect(ctrl->GetId(), wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler(fn), NULL, this); + +#define ConnectCmdTextUpdated(ctrl, fn) \ + ctrl->Connect(ctrl->GetId(), wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler(fn), NULL, this); + +#define ConnectCombo(ctrl, fn) \ + ctrl->Connect(ctrl->GetId(), wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler(fn), NULL, this); + +#define ConnectCheckList(ctrl, fn) \ + ctrl->Connect(ctrl->GetId(), wxEVT_COMMAND_CHECKLISTBOX_TOGGLED, wxCommandEventHandler(fn), NULL, this); + +#define TrimString(str) \ + { \ + str = str.Trim(); \ + str = str.Trim(false); \ + } + +#define IsSourceFile(ext) \ + (ext == wxT("cpp") || ext == wxT("cxx") || ext == wxT("c") || ext == wxT("c++") || ext == wxT("cc")) + +#define BoolToString(b) b ? wxT("yes") : wxT("no") + +//----------------------------------------------------- +// Constants +//----------------------------------------------------- + +const wxString clCMD_NEW = _(""); +const wxString clCMD_EDIT = _(""); +// const wxString clCMD_DELETE = _(""); Unused + +// constant message +const wxString BUILD_START_MSG = _("----------Build Started--------\n"); +const wxString BUILD_END_MSG = _("----------Build Ended----------\n"); +const wxString BUILD_PROJECT_PREFIX = _("----------Building project:[ "); +const wxString CLEAN_PROJECT_PREFIX = _("----------Cleaning project:[ "); + +// Find in files options +#define SEARCH_IN_WORKSPACE "" +#define SEARCH_IN_PROJECT "" +#define SEARCH_IN_CURR_FILE_PROJECT "" +#define SEARCH_IN_CURRENT_FILE "" +#define SEARCH_IN_OPEN_FILES "" +#define USE_WORKSPACE_ENV_VAR_SET _("") +#define USE_GLOBAL_SETTINGS _("") + +// terminal macro +#ifdef __WXGTK__ +#define TERMINAL_CMD \ + wxString::Format(wxT("%s/codelite_xterm '$(TITLE)' '$(CMD)'"), \ + wxFileName(clStandardPaths::Get().GetExecutablePath()).GetPath().c_str()) +#elif defined(__WXMAC__) +#define TERMINAL_CMD wxString::Format(wxT("%s/OpenTerm '$(CMD)'"), clStandardPaths::Get().GetDataDir().c_str()) +#else +const wxString TERMINAL_CMD = wxT(""); +#endif + +#if defined(__WXMSW__) && !defined(USE_POSIX_LAYOUT) +#define PATH_SEP wxT("\\") +#else +#define PATH_SEP wxT("/") +#endif + +#define ID_MENU_CUSTOM_TARGET_FIRST 15000 +#define ID_MENU_CUSTOM_TARGET_MAX 15100 + +#define viewAsMenuItemID 23500 +#define viewAsMenuItemMaxID 23500 + 100 + +#define viewAsSubMenuID 23499 +#define RecentFilesSubMenuID 23600 +#define RecentWorkspaceSubMenuID 23650 + +// ----------------------------- usefule typedefs ------------------------------- +typedef std::map wxStringBoolMap_t; +typedef std::set wxStringSet_t; +typedef std::map wxStringMap_t; + +// Useful macros +#define CHECK_PTR_RET(p) \ + if(!p) return +#define CHECK_PTR_RET_FALSE(p) \ + if(!p) return false +#define CHECK_PTR_RET_NULL(p) \ + if(!p) return NULL +#define CHECK_PTR_RET_EMPTY_STRING(p) \ + if(!p) return wxEmptyString + +#define CHECK_COND_RET(p) \ + if(!(p)) return +#define CHECK_COND_RET_FALSE(p) \ + if(!(p)) return false +#define CHECK_COND_RET_NULL(p) \ + if(!(p)) return NULL +#define CHECK_COND_RET_EMPTY_STRING(p) \ + if(!(p)) return wxEmptyString + +#define CHECK_ITEM_RET(item) \ + if(!item.IsOk()) return +#define CHECK_ITEM_RET_FALSE(item) \ + if(!item.IsOk()) return false +#define CHECK_ITEM_RET_NULL(item) \ + if(!item.IsOk()) return NULL +#define CHECK_ITEM_RET_EMPTY_STRING(item) \ + if(!item.IsOk()) return wxEmptyString + +// PATH environment variable separator +#ifdef __WXMSW__ +#define clPATH_SEPARATOR ";" +#else +#define clPATH_SEPARATOR ":" +#endif + +#endif // MACROS_H diff -Nru codelite-8.0.1+dfsg2/CodeLite/parse_thread.cpp codelite-9.0+dfsg/CodeLite/parse_thread.cpp --- codelite-8.0.1+dfsg2/CodeLite/parse_thread.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/CodeLite/parse_thread.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -450,7 +450,7 @@ } // Process the macros - PPTable::Instance()->Squeeze(); + //PPTable::Instance()->Squeeze(); const std::map& table = PPTable::Instance()->GetTable(); // Store the macros diff -Nru codelite-8.0.1+dfsg2/CodeLite/PHPDocComment.cpp codelite-9.0+dfsg/CodeLite/PHPDocComment.cpp --- codelite-8.0.1+dfsg2/CodeLite/PHPDocComment.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/CodeLite/PHPDocComment.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,13 +1,47 @@ #include "PHPDocComment.h" #include #include +#include PHPDocComment::PHPDocComment(PHPSourceFile& sourceFile, const wxString& comment) : m_comment(comment) { - static wxRegEx reReturnStatement(wxT("@(return)[ \t]+([\\a-zA-Z_]{1}[\\a-zA-Z0-9_]*)")); + std::set nativeTypes; + nativeTypes.insert("int"); + nativeTypes.insert("integer"); + nativeTypes.insert("real"); + nativeTypes.insert("double"); + nativeTypes.insert("float"); + nativeTypes.insert("string"); + nativeTypes.insert("binary"); + nativeTypes.insert("array"); + nativeTypes.insert("object"); + nativeTypes.insert("bool"); + nativeTypes.insert("boolean"); + nativeTypes.insert("mixed"); + nativeTypes.insert("null"); + + static wxRegEx reReturnStatement(wxT("@(return)[ \t]+([\\a-zA-Z_]{1}[\\|\\a-zA-Z0-9_]*)")); if(reReturnStatement.IsValid() && reReturnStatement.Matches(m_comment)) { - m_returnValue = sourceFile.MakeIdentifierAbsolute(reReturnStatement.GetMatch(m_comment, 2)); + wxString returnValue = reReturnStatement.GetMatch(m_comment, 2); + wxArrayString types = ::wxStringTokenize(returnValue, "|", wxTOKEN_STRTOK); + if(types.size() > 1) { + // Multiple return types, guess the best match + wxString bestMatch; + for(size_t i = 0; i < types.size(); ++i) { + if(bestMatch.IsEmpty() && (nativeTypes.count(types.Item(i)) == 0)) { + bestMatch = types.Item(i); + break; + } + } + + if(bestMatch.IsEmpty()) { + bestMatch = types.Item(0); // just get the first match + } + m_returnValue = sourceFile.MakeIdentifierAbsolute(bestMatch); + } else if(types.size() == 1) { + m_returnValue = sourceFile.MakeIdentifierAbsolute(types.Item(0)); + } } static wxRegEx reVarType(wxT("@(var|variable)[ \t]+([\\a-zA-Z_]{1}[\\a-zA-Z0-9_]*)")); @@ -24,22 +58,6 @@ m_varName = reVarType2.GetMatch(m_comment, 2); } -// // @param $name PDO -// static wxRegEx reParam(wxT("@(param|parameter)[ \t]+([\\$]{1}[\\a-zA-Z0-9_]*)[ \t]+([\\a-zA-Z0-9_]+)")); -// wxArrayString lines = wxStringTokenize(m_comment, wxT("\n"), wxTOKEN_STRTOK); -// if(reParam.IsValid()) { -// for(size_t i = 0; i < lines.GetCount(); i++) { -// wxString line = lines.Item(i).Trim().Trim(false); -// if(reParam.Matches(line)) { -// wxString paramName, paramHint; -// paramHint = sourceFile.MakeIdentifierAbsolute(reParam.GetMatch(line, 3)); -// paramName = reParam.GetMatch(line, 2); -// m_paramsArr.Add(paramHint); -// m_params.insert(std::make_pair(paramName, paramHint)); -// } -// } -// } -// // @param PDO $name static wxRegEx reParam2(wxT("@(param|parameter)[ \t]+([\\a-zA-Z0-9_]*)[ \t]+([\\$]{1}[\\a-zA-Z0-9_]+)")); wxArrayString lines2 = wxStringTokenize(m_comment, wxT("\n"), wxTOKEN_STRTOK); diff -Nru codelite-8.0.1+dfsg2/CodeLite/PHPDocVisitor.cpp codelite-9.0+dfsg/CodeLite/PHPDocVisitor.cpp --- codelite-8.0.1+dfsg2/CodeLite/PHPDocVisitor.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/CodeLite/PHPDocVisitor.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -18,7 +18,22 @@ { // Locate a comment for this entity entity->SetFilename(m_sourceFile.GetFilename()); - std::map::iterator iter = m_comments.find(entity->GetLine() - 1); + + // search for the comment placed at the top of the variable + // this is why we use here -1 + int lineNum = (entity->GetLine() - 1); + + // for debugging purposes + wxString entityName = entity->GetShortName(); + wxUnusedVar(entityName); + + std::map::iterator iter = m_comments.find(lineNum); + if(iter == m_comments.end()) { + // try to locate a comment on the same line + ++lineNum; + iter = m_comments.find(lineNum); + } + if(iter != m_comments.end()) { // we got a match diff -Nru codelite-8.0.1+dfsg2/CodeLite/PHPEntityBase.h codelite-9.0+dfsg/CodeLite/PHPEntityBase.h --- codelite-8.0.1+dfsg2/CodeLite/PHPEntityBase.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/CodeLite/PHPEntityBase.h 2015-10-11 13:56:07.000000000 +0000 @@ -20,6 +20,7 @@ kEntityTypeClass = 2, kEntityTypeNamespace = 3, kEntityTypeKeyword = 4, + kEntityTypeFunctionAlias = 5, }; // Variable flags @@ -43,6 +44,7 @@ kFunc_Final = (1 << 4), kFunc_Static = (1 << 5), kFunc_Abstract = (1 << 6), + kFunc_ReturnReference = (1 << 7), }; // Class flags diff -Nru codelite-8.0.1+dfsg2/CodeLite/PHPEntityFunctionAlias.cpp codelite-9.0+dfsg/CodeLite/PHPEntityFunctionAlias.cpp --- codelite-8.0.1+dfsg2/CodeLite/PHPEntityFunctionAlias.cpp 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/CodeLite/PHPEntityFunctionAlias.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,60 @@ +#include "PHPEntityFunctionAlias.h" +#include "file_logger.h" + +PHPEntityFunctionAlias::PHPEntityFunctionAlias() {} + +PHPEntityFunctionAlias::~PHPEntityFunctionAlias() {} + +bool PHPEntityFunctionAlias::Is(eEntityType type) const { return type == kEntityTypeFunctionAlias; } + +void PHPEntityFunctionAlias::FromResultSet(wxSQLite3ResultSet& res) +{ + SetDbId(res.GetInt("ID")); + SetShortName(res.GetString("NAME")); + SetRealname(res.GetString("REALNAME")); + SetLine(res.GetInt("LINE_NUMBER")); + SetFilename(res.GetString("FILE_NAME")); + SetFullName(res.GetString("FULLNAME")); + SetScope(res.GetString("SCOPE")); +} + +void PHPEntityFunctionAlias::Store(wxSQLite3Database& db) +{ + try { + wxSQLite3Statement statement = db.PrepareStatement( + "INSERT OR REPLACE INTO FUNCTION_ALIAS_TABLE VALUES(NULL, :SCOPE_ID, :NAME, :REALNAME, :FULLNAME, :SCOPE, " + ":LINE_NUMBER, :FILE_NAME)"); + statement.Bind(statement.GetParamIndex(":SCOPE_ID"), Parent()->GetDbId()); + statement.Bind(statement.GetParamIndex(":NAME"), GetShortName()); + statement.Bind(statement.GetParamIndex(":REALNAME"), GetRealname()); + statement.Bind(statement.GetParamIndex(":FULLNAME"), GetFullName()); + statement.Bind(statement.GetParamIndex(":SCOPE"), GetScope()); + statement.Bind(statement.GetParamIndex(":LINE_NUMBER"), GetLine()); + statement.Bind(statement.GetParamIndex(":FILE_NAME"), GetFilename().GetFullPath()); + statement.ExecuteUpdate(); + SetDbId(db.GetLastRowId()); + + } catch(wxSQLite3Exception& exc) { + CL_WARNING("PHPEntityFunctionAlias::Store: %s", exc.GetMessage()); + } +} + +wxString PHPEntityFunctionAlias::FormatPhpDoc() const +{ + if(m_func) { + return m_func->FormatPhpDoc(); + } + return ""; +} + +wxString PHPEntityFunctionAlias::GetDisplayName() const { return GetShortName(); } + +void PHPEntityFunctionAlias::PrintStdout(int indent) const { wxUnusedVar(indent); } + +wxString PHPEntityFunctionAlias::Type() const +{ + if(m_func) { + return m_func->Type(); + } + return ""; +} diff -Nru codelite-8.0.1+dfsg2/CodeLite/PHPEntityFunctionAlias.h codelite-9.0+dfsg/CodeLite/PHPEntityFunctionAlias.h --- codelite-8.0.1+dfsg2/CodeLite/PHPEntityFunctionAlias.h 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/CodeLite/PHPEntityFunctionAlias.h 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,35 @@ +#ifndef PHPENTITYFUNCTIONALIAS_H +#define PHPENTITYFUNCTIONALIAS_H + +#include "codelite_exports.h" +#include "PHPEntityBase.h" + +class WXDLLIMPEXP_CL PHPEntityFunctionAlias : public PHPEntityBase +{ + wxString m_realname; + wxString m_scope; + + PHPEntityBase::Ptr_t m_func; + +public: + virtual wxString FormatPhpDoc() const; + virtual wxString GetDisplayName() const; + virtual void PrintStdout(int indent) const; + virtual wxString Type() const; + PHPEntityFunctionAlias(); + virtual ~PHPEntityFunctionAlias(); + +public: + virtual bool Is(eEntityType type) const; + virtual void Store(wxSQLite3Database& db); + virtual void FromResultSet(wxSQLite3ResultSet& res); + + void SetScope(const wxString& scope) { this->m_scope = scope; } + const wxString& GetScope() const { return m_scope; } + void SetRealname(const wxString& realname) { this->m_realname = realname; } + const wxString& GetRealname() const { return m_realname; } + void SetFunc(PHPEntityBase::Ptr_t func) { this->m_func = func; } + PHPEntityBase::Ptr_t GetFunc() const { return m_func; } +}; + +#endif // PHPENTITYFUNCTIONALIAS_H diff -Nru codelite-8.0.1+dfsg2/CodeLite/PHPExpression.cpp codelite-9.0+dfsg/CodeLite/PHPExpression.cpp --- codelite-8.0.1+dfsg2/CodeLite/PHPExpression.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/CodeLite/PHPExpression.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -7,6 +7,7 @@ #include #include #include "PHPEntityNamespace.h" +#include "PHPEntityFunctionAlias.h" PHPExpression::PHPExpression(const wxString& fulltext, const wxString& exprText, bool functionCalltipExpr) : m_type(kNone) @@ -112,6 +113,9 @@ case ':': case ',': case '!': + case '?': + case '|': + case '@': if(current) current->clear(); break; case '(': @@ -245,6 +249,10 @@ } else { // load the children of the current token (optionally, filter by the text) currentToken = lookpTable.FindMemberOf(currentToken->GetDbId(), part.m_text); + if(currentToken && currentToken->Is(kEntityTypeFunctionAlias)) { + // If the member is a function-alias, use the actual function instead + currentToken = currentToken->Cast()->GetFunc(); + } } // If the current "part" of the expression ends with a scope resolving operator ("::") or @@ -328,12 +336,14 @@ // Same as $this: replace it with the current class absolute path if(!innerClass) return ""; firstToken = innerClass->GetFullName(); // Is always in absolute path - + firstTokenType = kPHP_T_SELF; + } else if(token.type == kPHP_T_STATIC) { // Same as $this: replace it with the current class absolute path if(!innerClass) return ""; firstToken = innerClass->GetFullName(); // Is always in absolute path - + firstTokenType = kPHP_T_STATIC; + } else if(token.type == kPHP_T_VARIABLE) { // the expression being evaluated starts with a variable (e.g. $a->something()->) // in this case, use the current scope ('scope') and replace it with the real type @@ -420,11 +430,11 @@ } } - if(m_parts.empty() && firstTokenType == kPHP_T_PARENT) { + if(m_parts.empty()) { // If the first token before the simplication was 'parent' // keyword, we need to carry this over - part.m_textType = kPHP_T_PARENT; - } + part.m_textType = firstTokenType; + } part.m_operator = token.type; part.m_operatorText = token.text; @@ -483,9 +493,9 @@ Part lastExpressionPart = m_parts.back(); if(lastExpressionPart.m_operator == kPHP_T_PAAMAYIM_NEKUDOTAYIM) { if(lastExpressionPart.m_textType == kPHP_T_SELF) - flags |= PHPLookupTable::kLookupFlags_SelfStaticMembers; + flags |= PHPLookupTable::kLookupFlags_Self; else - flags |= PHPLookupTable::kLookupFlags_StaticMembers; + flags |= PHPLookupTable::kLookupFlags_Static; } } return flags; diff -Nru codelite-8.0.1+dfsg2/CodeLite/PhpLexer.cpp codelite-9.0+dfsg/CodeLite/PhpLexer.cpp --- codelite-8.0.1+dfsg2/CodeLite/PhpLexer.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/CodeLite/PhpLexer.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,5 +1,5 @@ -#line 3 "PhpLexer.cpp" +#line 3 "/home/eran/devl/codelite/CodeLite/PhpLexer.cpp" #define YY_INT_ALIGNED short int diff -Nru codelite-8.0.1+dfsg2/CodeLite/PHPLookupTable.cpp codelite-9.0+dfsg/CodeLite/PHPLookupTable.cpp --- codelite-8.0.1+dfsg2/CodeLite/PHPLookupTable.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/CodeLite/PHPLookupTable.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -9,12 +9,13 @@ #include "fileutils.h" #include #include +#include "PHPEntityFunctionAlias.h" wxDEFINE_EVENT(wxPHP_PARSE_STARTED, clParseEvent); wxDEFINE_EVENT(wxPHP_PARSE_ENDED, clParseEvent); wxDEFINE_EVENT(wxPHP_PARSE_PROGRESS, clParseEvent); -static wxString PHP_SCHEMA_VERSION = "7.0.6"; +static wxString PHP_SCHEMA_VERSION = "9.0.1"; //------------------------------------------------ // Metadata table @@ -80,6 +81,28 @@ "CREATE INDEX IF NOT EXISTS FUNCTION_TABLE_IDX_5 ON FUNCTION_TABLE(LINE_NUMBER)"; //------------------------------------------------ +// Function Alias table +//------------------------------------------------ +const static wxString CREATE_FUNCTION_ALIAS_TABLE_SQL = + "CREATE TABLE IF NOT EXISTS FUNCTION_ALIAS_TABLE(ID INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, " + "SCOPE_ID INTEGER NOT NULL DEFAULT -1, " + "NAME TEXT, " // no scope, just the function name + "REALNAME TEXT, " // The fullname of the actual function we are referencing + "FULLNAME TEXT, " // Fullname with scope (of the alias name) + "SCOPE TEXT, " // Usually, this means the namespace\class + "LINE_NUMBER INTEGER NOT NULL DEFAULT 0, " + "FILE_NAME TEXT )"; + +const static wxString CREATE_FUNCTION_ALIAS_TABLE_SQL_IDX1 = + "CREATE INDEX IF NOT EXISTS FUNCTION_ALIAS_TABLE_IDX_1 ON FUNCTION_ALIAS_TABLE(SCOPE_ID)"; +const static wxString CREATE_FUNCTION_ALIAS_TABLE_SQL_IDX2 = + "CREATE INDEX IF NOT EXISTS FUNCTION_ALIAS_TABLE_IDX_2 ON FUNCTION_ALIAS_TABLE(NAME)"; +const static wxString CREATE_FUNCTION_ALIAS_TABLE_SQL_IDX3 = + "CREATE INDEX IF NOT EXISTS FUNCTION_ALIAS_TABLE_IDX_3 ON FUNCTION_ALIAS_TABLE(REALNAME)"; +const static wxString CREATE_FUNCTION_ALIAS_TABLE_SQL_IDX4 = + "CREATE UNIQUE INDEX IF NOT EXISTS FUNCTION_ALIAS_TABLE_IDX_4 ON FUNCTION_ALIAS_TABLE(NAME,REALNAME,SCOPE_ID)"; + +//------------------------------------------------ // Variables table //------------------------------------------------ const static wxString CREATE_VARIABLES_TABLE_SQL = @@ -120,10 +143,7 @@ { } -PHPLookupTable::~PHPLookupTable() -{ - Close(); -} +PHPLookupTable::~PHPLookupTable() { Close(); } PHPEntityBase::Ptr_t PHPLookupTable::FindMemberOf(wxLongLong parentDbId, const wxString& exactName, size_t flags) { @@ -162,30 +182,19 @@ void PHPLookupTable::Open(const wxFileName& dbfile) { try { + + if(dbfile.Exists()) { + // Check for its integrity. If the database is corrupted, + // it will be deleted + EnsureIntegrity(dbfile); + } + wxFileName::Mkdir(dbfile.GetPath(), wxS_DIR_DEFAULT, wxPATH_MKDIR_FULL); m_db.Open(dbfile.GetFullPath()); m_db.SetBusyTimeout(10); // Don't lock when we cant access to the database m_filename = dbfile; CreateSchema(); -#if 0 - if(!CheckDiskImage()) { - // database is corrupted. - Close(); - - // Remove the file - { - wxLogNull noLog; - ::wxRemoveFile(m_filename.GetFullPath()); - } - - // Reopen the database - m_db.Open(dbfile.GetFullPath()); - m_db.SetBusyTimeout(10); // Don't lock when we cant access to the database - CreateSchema(); - } -#endif - } catch(wxSQLite3Exception& e) { CL_WARNING("PHPLookupTable::Open: %s", e.GetMessage()); } @@ -206,7 +215,7 @@ wxString schemaVersion; try { wxString sql; - sql = wxT("PRAGMA journal_mode= OFF;"); + sql = wxT("PRAGMA journal_mode = ON;"); m_db.ExecuteUpdate(sql); sql = wxT("PRAGMA synchronous = OFF;"); @@ -231,6 +240,7 @@ m_db.ExecuteUpdate("drop table if exists SCHEMA_VERSION"); m_db.ExecuteUpdate("drop table if exists SCOPE_TABLE"); m_db.ExecuteUpdate("drop table if exists FUNCTION_TABLE"); + m_db.ExecuteUpdate("drop table if exists FUNCTION_ALIAS_TABLE"); m_db.ExecuteUpdate("drop table if exists VARIABLES_TABLE"); m_db.ExecuteUpdate("drop table if exists FILES_TABLE"); } @@ -257,6 +267,13 @@ m_db.ExecuteUpdate(CREATE_FUNCTION_TABLE_SQL_IDX4); m_db.ExecuteUpdate(CREATE_FUNCTION_TABLE_SQL_IDX5); + // function alias table + m_db.ExecuteUpdate(CREATE_FUNCTION_ALIAS_TABLE_SQL); + m_db.ExecuteUpdate(CREATE_FUNCTION_ALIAS_TABLE_SQL_IDX1); + m_db.ExecuteUpdate(CREATE_FUNCTION_ALIAS_TABLE_SQL_IDX2); + m_db.ExecuteUpdate(CREATE_FUNCTION_ALIAS_TABLE_SQL_IDX3); + m_db.ExecuteUpdate(CREATE_FUNCTION_ALIAS_TABLE_SQL_IDX4); + // variables (function args, globals class members and consts) m_db.ExecuteUpdate(CREATE_VARIABLES_TABLE_SQL); m_db.ExecuteUpdate(CREATE_VARIABLES_TABLE_SQL_IDX1); @@ -367,7 +384,25 @@ matches.push_back(match); } } + + if(matches.empty()) { + // Search functions alias table + wxString sql; + sql << "SELECT * from FUNCTION_ALIAS_TABLE WHERE SCOPE_ID=" << parentDbId << " AND NAME='" << exactName << "'"; + wxSQLite3Statement st = m_db.PrepareStatement(sql); + wxSQLite3ResultSet res = st.ExecuteQuery(); + while(res.NextRow()) { + PHPEntityBase::Ptr_t match(new PHPEntityFunctionAlias()); + match->FromResultSet(res); + PHPEntityBase::Ptr_t pFunc = FindFunction(match->Cast()->GetRealname()); + if(pFunc) { + match->Cast()->SetFunc(pFunc); + matches.push_back(match); + } + } + } + if(matches.empty() && parentIsNamespace) { // search the scope table as well wxString sql; @@ -611,7 +646,7 @@ wxStopWatch sw; sw.Start(); - + m_db.Begin(); for(size_t i = 0; i < files.GetCount(); ++i) { { @@ -669,7 +704,7 @@ wxString message; message << _("PHP: parsed ") << files.GetCount() << " in " << elapsedMs << " milliseconds"; CL_DEBUGS(message); - + { clParseEvent event(wxPHP_PARSE_ENDED); event.SetTotalFiles(files.GetCount()); @@ -760,20 +795,25 @@ DoAddNameFilter(sql, trimmedNameHint, flags); DoAddLimit(sql); - wxSQLite3Statement st = m_db.PrepareStatement(sql); - wxSQLite3ResultSet res = st.ExecuteQuery(); + try { + wxSQLite3Statement st = m_db.PrepareStatement(sql); + wxSQLite3ResultSet res = st.ExecuteQuery(); - while(res.NextRow()) { - ePhpScopeType st = kPhpScopeTypeAny; - if(tableName == "SCOPE_TABLE") { - st = res.GetInt("SCOPE_TYPE", 1) == kPhpScopeTypeNamespace ? kPhpScopeTypeNamespace : kPhpScopeTypeClass; - } + while(res.NextRow()) { + ePhpScopeType st = kPhpScopeTypeAny; + if(tableName == "SCOPE_TABLE") { + st = + res.GetInt("SCOPE_TYPE", 1) == kPhpScopeTypeNamespace ? kPhpScopeTypeNamespace : kPhpScopeTypeClass; + } - PHPEntityBase::Ptr_t match = NewEntity(tableName, st); - if(match) { - match->FromResultSet(res); - matches.push_back(match); + PHPEntityBase::Ptr_t match = NewEntity(tableName, st); + if(match) { + match->FromResultSet(res); + matches.push_back(match); + } } + } catch(wxSQLite3Exception& e) { + CL_WARNING("PHPLookupTable::LoadFromTableByNameHint: %s", e.GetMessage()); } } @@ -799,7 +839,15 @@ st.Bind(st.GetParamIndex(":FILE_NAME"), filename.GetFullPath()); st.ExecuteUpdate(); } - + + { + wxString sql; + sql << "delete from FUNCTION_ALIAS_TABLE where FILE_NAME=:FILE_NAME"; + wxSQLite3Statement st = m_db.PrepareStatement(sql); + st.Bind(st.GetParamIndex(":FILE_NAME"), filename.GetFullPath()); + st.ExecuteUpdate(); + } + { wxString sql; sql << "delete from VARIABLES_TABLE where FILE_NAME=:FILE_NAME"; @@ -830,7 +878,7 @@ m_db.Close(); } m_filename.Clear(); - + } catch(wxSQLite3Exception& e) { CL_WARNING("PHPLookupTable::Close: %s", e.GetMessage()); } @@ -875,16 +923,43 @@ while(res.NextRow()) { PHPEntityBase::Ptr_t match(new PHPEntityFunction()); match->FromResultSet(res); - bool isStatic = match->HasFlag(kFunc_Static); - if(isStatic & CollectingStatics(flags)) { + bool isStaticFunction = match->HasFlag(kFunc_Static); + if(isStaticFunction) { + // always return static functions matches.push_back(match); - } else if(!isStatic && !CollectingStatics(flags)) { - matches.push_back(match); + } else { + // Non static function. + if(!(flags & kLookupFlags_Static)) { + matches.push_back(match); + } } } } + + { + // load function aliases + wxString sql; + sql << "SELECT * from FUNCTION_ALIAS_TABLE WHERE SCOPE_ID=" << parentId << " AND "; + DoAddNameFilter(sql, nameHint, flags); + DoAddLimit(sql); + wxSQLite3Statement st = m_db.PrepareStatement(sql); + wxSQLite3ResultSet res = st.ExecuteQuery(); + while(res.NextRow()) { + PHPEntityBase::Ptr_t match(new PHPEntityFunctionAlias()); + match->FromResultSet(res); + const wxString& realFuncName = match->Cast()->GetRealname(); + // Load the function pointed by this reference + PHPEntityBase::Ptr_t pFunc = FindFunction(realFuncName); + if(pFunc) { + // Keep the reference to the real function + match->Cast()->SetFunc(pFunc); + matches.push_back(match); + } + } + } + { // Add members from the variables table wxString sql; @@ -983,7 +1058,14 @@ wxSQLite3Statement st = m_db.PrepareStatement(sql); st.ExecuteUpdate(); } - + + { + wxString sql; + sql << "delete from FUNCTION_ALIAS_TABLE"; + wxSQLite3Statement st = m_db.PrepareStatement(sql); + st.ExecuteUpdate(); + } + if(autoCommit) m_db.Commit(); } catch(wxSQLite3Exception& e) { if(autoCommit) m_db.Rollback(); @@ -1131,31 +1213,125 @@ // Delete it from the file system wxLogNull noLog; if(!::wxRemoveFile(curfile.GetFullPath())) { - //CL_WARNING("PHPLookupTable::ResetDatabase: failed to remove file '%s'", curfile.GetFullPath()); + // CL_WARNING("PHPLookupTable::ResetDatabase: failed to remove file '%s'", curfile.GetFullPath()); } } Open(curfile); } -bool PHPLookupTable::CheckDiskImage() +bool PHPLookupTable::CheckDiskImage(wxSQLite3Database& db) { - wxArrayString tables; - tables.Add("METADATA_TABLE"); - tables.Add("SCOPE_TABLE"); - tables.Add("FUNCTION_TABLE"); - tables.Add("VARIABLES_TABLE"); - tables.Add("FILES_TABLE"); - try { - for(size_t i=0; iFromResultSet(res); + matches.push_back(match); + } + } + } + + { + //--------------------------------------------------------------------- + // Load functions + //--------------------------------------------------------------------- + wxString sql; + sql << "SELECT * from FUNCTION_TABLE WHERE NAME='" << name << "'"; + + wxSQLite3Statement st = m_db.PrepareStatement(sql); + wxSQLite3ResultSet res = st.ExecuteQuery(); + + while(res.NextRow()) { + PHPEntityBase::Ptr_t match(new PHPEntityFunction()); + match->FromResultSet(res); + matches.push_back(match); + } + } + + { + //--------------------------------------------------------------------- + // Load function aliases + //--------------------------------------------------------------------- + wxString sql; + sql << "SELECT * from FUNCTION_ALIAS_TABLE WHERE NAME='" << name << "'"; + + wxSQLite3Statement st = m_db.PrepareStatement(sql); + wxSQLite3ResultSet res = st.ExecuteQuery(); + + while(res.NextRow()) { + PHPEntityBase::Ptr_t match(new PHPEntityFunction()); + match->FromResultSet(res); + matches.push_back(match); + } + } + + { + //--------------------------------------------------------------------- + // Load variables + //--------------------------------------------------------------------- + wxString sql; + sql << "SELECT * from VARIABLES_TABLE WHERE NAME='" << name << "'"; + + wxSQLite3Statement st = m_db.PrepareStatement(sql); + wxSQLite3ResultSet res = st.ExecuteQuery(); + + while(res.NextRow()) { + PHPEntityBase::Ptr_t match = NewEntity("VARIABLES_TABLE", kPhpScopeTypeAny); + match->FromResultSet(res); + matches.push_back(match); + } + } + + } catch(wxSQLite3Exception& e) { + CL_WARNING("PHPLookupTable::FindSymbol: %s", e.GetMessage()); + } + return matches; +} diff -Nru codelite-8.0.1+dfsg2/CodeLite/PHPLookupTable.h codelite-9.0+dfsg/CodeLite/PHPLookupTable.h --- codelite-8.0.1+dfsg2/CodeLite/PHPLookupTable.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/CodeLite/PHPLookupTable.h 2015-10-11 13:56:07.000000000 +0000 @@ -39,14 +39,14 @@ kLookupFlags_ExactMatch = (1 << 1), kLookupFlags_Contains = (1 << 2), kLookupFlags_StartsWith = (1 << 3), - kLookupFlags_Members = (1 << 4), // Class members - kLookupFlags_Constants = (1 << 5), // 'const' - kLookupFlags_StaticMembers = (1 << 6), // include static members/functions (static::, class_type::) - kLookupFlags_SelfStaticMembers = (1 << 7), // Current class static members only (self::) - kLookupFlags_NameHintIsScope = (1 << 8), // the namehint provided is of a class name. When enabled, the search - // will try to take "\" into consideration - kLookupFlags_Parent = (1 << 9), // Exclude 'this' from the results and return only - // its parents parent:: + kLookupFlags_Members = (1 << 4), // Class members + kLookupFlags_Constants = (1 << 5), // 'const' + kLookupFlags_Static = (1 << 6), // include static members/functions (static::, class_type::) + kLookupFlags_Self = (1 << 7), // self:: + kLookupFlags_NameHintIsScope = (1 << 8), // the namehint provided is of a class name. When enabled, the search + // will try to take "\" into consideration + kLookupFlags_Parent = (1 << 9), // Exclude 'this' from the results and return only + // its parents parent:: kLookupFlags_FunctionsAndConstsOnly = (1 << 10), // Fetch functions and consts ONLY kLookupFlags_IncludeAbstractMethods = (1 << 11), // Include abstract functions in the result set }; @@ -59,6 +59,7 @@ static void DoSplitFullname(const wxString& fullname, wxString& ns, wxString& shortName); private: + void EnsureIntegrity(const wxFileName& filename); void DoAddNameFilter(wxString& sql, const wxString& nameHint, size_t flags); void CreateSchema(); @@ -69,7 +70,7 @@ std::vector& parents, std::set& parentsVisited, bool excludeSelf); - + /** * @brief find namespace by fullname. If it does not exist, add it and return a pointer to it */ @@ -98,11 +99,11 @@ const wxString& tableName, const wxString& nameHint, eLookupFlags flags); - - bool CollectingStatics(size_t flags) const - { - return flags & (kLookupFlags_SelfStaticMembers | kLookupFlags_StaticMembers); - } + + /** + * @brief use typed: static:: + */ + bool CollectingStatics(size_t flags) const { return (flags & kLookupFlags_Static) || (flags & kLookupFlags_Self); } /** * @brief return children of parentId _WITHOUT_ taking inheritance into consideration @@ -125,12 +126,12 @@ /** * @brief check the database disk image to see if it corrupted */ - bool CheckDiskImage(); - + bool CheckDiskImage(wxSQLite3Database& db); + public: PHPLookupTable(); virtual ~PHPLookupTable(); - + /** * @brief return the entity at a given file/line */ @@ -140,12 +141,12 @@ * @brief open the lookup table database */ void Open(const wxString& workspacePath); - + /** * @brief open the symbols database */ void Open(const wxFileName& dbfile); - + /** * @brief * @return @@ -156,12 +157,12 @@ * @brief close the lookup table database */ void Close(); - + /** * @brief delete the symbols database file from the file system and recreate an empty one */ void ResetDatabase(); - + /** * @brief clear all cached data from the database */ @@ -199,6 +200,12 @@ FindChildren(wxLongLong parentId, size_t flags = kLookupFlags_None, const wxString& nameHint = ""); /** + * @brief find list of symbols with a given name (regardless of the type / scope) + * a "free style" search + */ + PHPEntityBase::List_t FindSymbol(const wxString& name); + + /** * @brief load the global functions and consts that matches nameHint * If nameHint is empty, return an empty list */ diff -Nru codelite-8.0.1+dfsg2/CodeLite/PHPSourceFile.cpp codelite-9.0+dfsg/CodeLite/PHPSourceFile.cpp --- codelite-8.0.1+dfsg2/CodeLite/PHPSourceFile.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/CodeLite/PHPSourceFile.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -7,6 +7,7 @@ #include #include "PHPEntityClass.h" #include "PHPDocVisitor.h" +#include "PHPEntityFunctionAlias.h" #define NEXT_TOKEN_BREAK_IF_NOT(t, action) \ { \ @@ -52,6 +53,23 @@ } } +bool PHPSourceFile::IsInPHPSection(const wxString& buffer) +{ + PHPScanner_t scanner = ::phpLexerNew(buffer); + if(!scanner) return false; + phpLexerToken tok; + bool inPhp = false; + while(::phpLexerNext(scanner, tok)) { + if(::phpLexerIsPHPCode(scanner)) { + inPhp = true; + } else { + inPhp = false; + } + } + ::phpLexerDestroy(&scanner); + return inPhp; +} + void PHPSourceFile::Parse(int exitDepth) { int retDepth = exitDepth; @@ -144,6 +162,11 @@ // Handle include files m_lookBackTokens.clear(); break; + case kPHP_T_FOREACH: + // found "foreach" statement + OnForEach(); + m_lookBackTokens.clear(); + break; case kPHP_T_USE: // Found outer 'use' statement - construct the alias table if(Class()) { @@ -271,6 +294,14 @@ return; } + bool funcReturnRef = false; + if(token.type == '&') { + funcReturnRef = true; + if(!NextToken(token)) { + return; + } + } + PHPEntityFunction* func(NULL); int funcDepth(0); if(token.type == kPHP_T_IDENTIFIER) { @@ -288,6 +319,9 @@ if(!func) return; PHPEntityBase::Ptr_t funcPtr(func); + if(funcReturnRef) { + funcPtr->SetFlag(kFunc_ReturnReference); + } // add the function to the current scope CurrentScope()->AddChild(funcPtr); @@ -661,6 +695,31 @@ } if(typeWithNS.IsEmpty()) return ""; + + // A fully qualified type? don't touch it + if(typeWithNS.StartsWith("\\")) { + return typeWithNS; + } + + // Handle 'use' cases: + // use Zend\Form; // create an alias entry: Form => Zend\Form + // class A extends Form\Form {} + // The extends should be expanded to Zend\Form\Form + if(typeWithNS.Contains("\\")) { + wxString scopePart = typeWithNS.BeforeLast('\\'); + wxString className = typeWithNS.AfterLast('\\'); + if(m_aliases.find(scopePart) != m_aliases.end()) { + typeWithNS.clear(); + typeWithNS << m_aliases.find(scopePart)->second << "\\" << className; + // Remove duplicate NS separators + typeWithNS.Replace("\\\\", "\\"); + if(!typeWithNS.StartsWith("\\")) { + typeWithNS << "\\"; + } + return typeWithNS; + } + } + // If the symbol contains namespace separator // Convert it full path and return (prepend namespace separator) if(typeWithNS.Contains("\\")) { @@ -670,10 +729,6 @@ return typeWithNS; } - if(typeWithNS.StartsWith("\\")) { - return typeWithNS; - } - // Use the alias table first if(m_aliases.find(type) != m_aliases.end()) { return m_aliases.find(type)->second; @@ -718,14 +773,16 @@ switch(token.type) { case kPHP_T_EXTENDS: { // inheritance - if(!ReadUntilFound(kPHP_T_IDENTIFIER, token)) return; - pClass->SetExtends(MakeIdentifierAbsolute(token.text)); + wxString extends = ReadExtends(); + if(extends.IsEmpty()) return; + // No need to call 'MakeIdentifierAbsolute' it was called internally by + // ReadType() + pClass->SetExtends(extends); } break; case kPHP_T_IMPLEMENTS: { wxArrayString implements; - if(!ReadCommaSeparatedIdentifiers('{', implements)) return; + ReadImplements(implements); pClass->SetImplements(implements); - } break; case '{': { // entering the class body @@ -1025,6 +1082,18 @@ } tempname.clear(); } break; + case '{': { + // we are looking at a case like: + // use A, B { ... } + if(!tempname.IsEmpty()) { + identifiers.Add(MakeIdentifierAbsolute(tempname)); + ParseUseTraitsBody(); + } + tempname.clear(); + // add the traits as list of 'extends' + clas->Cast()->SetTraits(identifiers); + return; + } break; case ';': { if(!tempname.IsEmpty()) { identifiers.Add(MakeIdentifierAbsolute(tempname)); @@ -1055,15 +1124,15 @@ cont = false; varname = token.text; break; - case kPHP_T_C_COMMENT: - case kPHP_T_CXX_COMMENT: + case kPHP_T_IDENTIFIER: + case kPHP_T_NS_SEPARATOR: + typehint << token.text; break; default: - typehint << token.text; break; } } - + if(!varname.IsEmpty()) { // we found the variable PHPEntityBase::Ptr_t var(new PHPEntityVariable()); @@ -1071,10 +1140,174 @@ var->SetFilename(m_filename.GetFullPath()); var->SetLine(token.lineNumber); var->Cast()->SetTypeHint(MakeIdentifierAbsolute(typehint)); - + // add the variable to the current scope if(!CurrentScope()->FindChild(var->GetFullName(), true)) { CurrentScope()->AddChild(var); } } } + +wxString PHPSourceFile::ReadExtends() +{ + wxString type; + phpLexerToken token; + while(NextToken(token)) { + if(token.type == kPHP_T_IDENTIFIER || token.type == kPHP_T_NS_SEPARATOR) { + type << token.text; + } else { + UngetToken(token); + break; + } + } + type = MakeIdentifierAbsolute(type); + return type; +} + +void PHPSourceFile::ReadImplements(wxArrayString& impls) +{ + wxString type; + phpLexerToken token; + while(NextToken(token)) { + switch(token.type) { + case kPHP_T_IDENTIFIER: + case kPHP_T_NS_SEPARATOR: + type << token.text; + break; + case ',': + // More to come + if(!type.IsEmpty()) { + wxString fullyQualifiedType = MakeIdentifierAbsolute(type); + if(impls.Index(fullyQualifiedType) == wxNOT_FOUND) { + impls.Add(fullyQualifiedType); + } + type.clear(); + } + break; + default: + // unexpected token + if(!type.IsEmpty()) { + wxString fullyQualifiedType = MakeIdentifierAbsolute(type); + if(impls.Index(fullyQualifiedType) == wxNOT_FOUND) { + impls.Add(fullyQualifiedType); + } + type.clear(); + } + UngetToken(token); + return; + } + } +} + +/*foreach (array_expression as $value) + statement +foreach (array_expression as $key => $value) + statement*/ +void PHPSourceFile::OnForEach() +{ + // read until the "as" keyword + phpLexerToken token; + if(!ReadUntilFound(kPHP_T_AS, token)) return; + + // Found the "as" key word and consumed it + if(!NextToken(token)) return; + + phpLexerToken peekToken; + if(!NextToken(peekToken)) return; + + // Ensure we got a variable + if(token.type != kPHP_T_VARIABLE) return; + + // Check to see if we are using the syntax of: + // foreach (array_expression as $key => $value) + if(peekToken.type == kPHP_T_DOUBLE_ARROW) { + if(!NextToken(token) || token.type != kPHP_T_VARIABLE) { + return; + } + } else { + UngetToken(peekToken); + } + + // Create a new variable + PHPEntityBase::Ptr_t var(new PHPEntityVariable()); + var->SetFullName(token.text); + var->SetFilename(m_filename.GetFullPath()); + var->SetLine(token.lineNumber); + + if(!CurrentScope()->FindChild(var->GetFullName(), true)) { + CurrentScope()->AddChild(var); + } +} + +void PHPSourceFile::ParseUseTraitsBody() +{ + wxString fullname, alias, temp; + phpLexerToken token; + bool cont = true; + while(cont && NextToken(token)) { + switch(token.type) { + case '}': { + cont = false; + } break; + case ',': + case ';': { + if(fullname.IsEmpty()) { + // no full name yet + fullname.swap(temp); + + } else if(alias.IsEmpty()) { + alias.swap(temp); + } + + if(alias.IsEmpty()) { + // no alias provided, use the last part of the fullname + alias = fullname.AfterLast('\\'); + } + + if(!fullname.IsEmpty() && !alias.IsEmpty()) { + // Use namespace is alway refered as fullpath namespace + // So writing: + // use Zend\Mvc\Controll\Action; + // is equal for writing: + // use \Zend\Mvc\Controll\Action; + // For simplicitiy, we change it to fully qualified path + // so parsing is easier + if(!fullname.StartsWith("\\")) { + fullname.Prepend("\\"); + } + PHPEntityBase::Ptr_t funcAlias(new PHPEntityFunctionAlias()); + funcAlias->Cast()->SetRealname(MakeIdentifierAbsolute(fullname)); + funcAlias->Cast()->SetScope(CurrentScope()->GetFullName()); + funcAlias->SetShortName(alias); + funcAlias->SetFullName(CurrentScope()->GetFullName() + "\\" + alias); + funcAlias->SetFilename(GetFilename()); + funcAlias->SetLine(token.lineNumber); + CurrentScope()->AddChild(funcAlias); + } + + temp.clear(); + fullname.clear(); + alias.clear(); + } break; + case kPHP_T_PAAMAYIM_NEKUDOTAYIM: { + // Convert "::" into "\\" + temp << "\\"; + } break; + case kPHP_T_AS: { + fullname.swap(temp); + temp.clear(); + } break; + case kPHP_T_INSTEADOF: { + // For now, we are not interested in + // A insteadof b; statements, so just clear the collected data so far + fullname.clear(); + temp.clear(); + alias.clear(); + if(!ConsumeUntil(';')) return; + } break; + default: + temp << token.text; + break; + } + } +} diff -Nru codelite-8.0.1+dfsg2/CodeLite/PHPSourceFile.h codelite-9.0+dfsg/CodeLite/PHPSourceFile.h --- codelite-8.0.1+dfsg2/CodeLite/PHPSourceFile.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/CodeLite/PHPSourceFile.h 2015-10-11 13:56:07.000000000 +0000 @@ -70,7 +70,18 @@ * @brief read the type */ wxString ReadType(); - + + /** + * @brief read the value that comes after the 'extends' keyword + */ + wxString ReadExtends(); + + /** + * @brief read the tokens after the implements keyword + */ + void ReadImplements(wxArrayString& impls); + + /** * @brief parse 'use' statements (outer scope, for aliasing) */ @@ -82,6 +93,20 @@ void OnUseTrait(); /** + * @brief we are looking at a case like: + * use A, B { + * B::bigTalk as talk; + * } + * parse the inner block and scan for aliases + */ + void ParseUseTraitsBody(); + + /** + * @brief found 'foreach' statement + */ + void OnForEach(); + + /** * @brief 'namespace' keyword found */ void OnNamespace(); @@ -155,8 +180,14 @@ public: PHPSourceFile(const wxFileName& filename); PHPSourceFile(const wxString& content); + virtual ~PHPSourceFile(); - + + /** + * @brief check if we are inside a PHP block at the end of the given buffer + */ + static bool IsInPHPSection(const wxString& buffer); + /** * @brief return list of aliases (their short name) that appears on this file */ diff -Nru codelite-8.0.1+dfsg2/CodeLite/pptable.cpp codelite-9.0+dfsg/CodeLite/pptable.cpp --- codelite-8.0.1+dfsg2/CodeLite/pptable.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/CodeLite/pptable.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,690 +1,649 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2014 The CodeLite Team -// file name : pptable.cpp -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - +////////////////////////////////////////////////////////////////////////////// +////////////////////////////////////////////////////////////////////////////// +// +// copyright : (C) 2014 The CodeLite Team +// file name : pptable.cpp +// +// ------------------------------------------------------------------------- +// A +// _____ _ _ _ _ +// / __ \ | | | | (_) | +// | / \/ ___ __| | ___| | _| |_ ___ +// | | / _ \ / _ |/ _ \ | | | __/ _ ) +// | \__/\ (_) | (_| | __/ |___| | || __/ +// \____/\___/ \__,_|\___\_____/_|\__\___| +// +// F i l e +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// +////////////////////////////////////////////////////////////////////////////// +////////////////////////////////////////////////////////////////////////////// + #include "pptable.h" #include #include - -bool IsWordChar(const wxString &s, int strSize) -{ - if(strSize) { - return s.find_first_of(wxT("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890_")) != wxString::npos; - - } else { - return s.find_first_of(wxT("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_")) != wxString::npos; - } +#include "CxxLexerAPI.h" +#include "CxxScannerTokens.h" +#include + +bool IsWordChar(const wxString& s, int strSize) +{ + if(strSize) { + return s.find_first_of(wxT("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890_")) != + wxString::npos; + + } else { + return s.find_first_of(wxT("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_")) != wxString::npos; + } } bool IsWordCharA(char c, int strSize) { - if(strSize) { - return ((c >= 97 && c <= 122) ||// a-z - (c >= 65 && c <= 90) ||// A-Z - (c >= 48 && c <= 57) ||// 0-9 - (c == '_')); - - } else { - return ((c >= 97 && c <= 122) ||// a-z - (c >= 65 && c <= 90) ||// A-Z - (c == '_')); - } -} - -std::string ReplaceWordA(const std::string &str, const std::string &word, const std::string &replaceWith) -{ - char currChar; - char nextChar; - std::string currentWord; - std::string output; - - output.reserve( str.length() * 2 ); - - for(size_t i=0; i i + 1 ) { - nextChar = str[i+1]; - } else { - // we are at the end of buffer - nextChar = '\0'; - } - - currChar = str[i]; - if(!IsWordCharA( currChar, currentWord.length() )) { - output += str[i]; - currentWord.clear(); - - } else { - - currentWord += currChar; - if(IsWordCharA(nextChar, currentWord.length())) { - // do nothing - - } else if( !IsWordCharA(nextChar, currentWord.length()) && currentWord == word ) { - output += replaceWith; - currentWord.clear(); - - } else { - output += currentWord; - currentWord.clear(); - } - - } - } - return output; + if(strSize) { + return ((c >= 97 && c <= 122) || // a-z + (c >= 65 && c <= 90) || // A-Z + (c >= 48 && c <= 57) || // 0-9 + (c == '_')); + + } else { + return ((c >= 97 && c <= 122) || // a-z + (c >= 65 && c <= 90) || // A-Z + (c == '_')); + } +} + +std::string ReplaceWordA(const std::string& str, const std::string& word, const std::string& replaceWith) +{ + char currChar; + char nextChar; + std::string currentWord; + std::string output; + + output.reserve(str.length() * 2); + + for(size_t i = 0; i < str.length(); i++) { + // Look ahead + if(str.length() > i + 1) { + nextChar = str[i + 1]; + } else { + // we are at the end of buffer + nextChar = '\0'; + } + + currChar = str[i]; + if(!IsWordCharA(currChar, currentWord.length())) { + output += str[i]; + currentWord.clear(); + + } else { + + currentWord += currChar; + if(IsWordCharA(nextChar, currentWord.length())) { + // do nothing + + } else if(!IsWordCharA(nextChar, currentWord.length()) && currentWord == word) { + output += replaceWith; + currentWord.clear(); + + } else { + output += currentWord; + currentWord.clear(); + } + } + } + return output; } // Helper string find metho -wxString ReplaceWord(const wxString &str, const wxString &word, const wxString &replaceWith) +wxString ReplaceWord(const wxString& str, const wxString& word, const wxString& replaceWith) { - wxString currChar; - wxString nextChar; - wxString currentWord; - wxString output; - for(size_t i=0; i i + 1 ) { - nextChar = str[i+1]; - } else { - // we are at the end of buffer - nextChar = wxT('\0'); - } - - currChar = str[i]; - if(!IsWordChar( currChar, currentWord.Length() )) { - output << str[i]; - currentWord.Clear(); - - } else { - - currentWord << currChar; - if(IsWordChar(nextChar, currentWord.Length())) { - // do nothing - - } else if( !IsWordChar(nextChar, currentWord.Length()) && currentWord == word ) { - output << replaceWith; - currentWord.Clear(); - - } else { - output << currentWord; - currentWord.Clear(); - } - - } - } - return output; -} - -wxArrayString TokenizeWords(const wxString &str) -{ - wxString currChar; - wxString nextChar; - wxString currentWord; - wxArrayString outputArr; - - wxString::const_iterator iter = str.begin(); - for(; iter != str.end(); iter++) { - // Look ahead - if( (iter + 1) != str.end() ) { - nextChar = *(iter+1); - } else { - // we are at the end of buffer - nextChar = wxT('\0'); - } - - currChar = *iter; - if(!IsWordChar( currChar, currentWord.Length() )) { - currentWord.Clear(); - - } else { - - currentWord << currChar; - if(IsWordChar(nextChar, currentWord.Length())) { - // do nothing - - } else { - - outputArr.Add(currentWord); - currentWord.Clear(); - } - - } - } - return outputArr; + wxString currChar; + wxString nextChar; + wxString currentWord; + wxString output; + for(size_t i = 0; i < str.Length(); i++) { + // Look ahead + if(str.Length() > i + 1) { + nextChar = str[i + 1]; + } else { + // we are at the end of buffer + nextChar = wxT('\0'); + } + + currChar = str[i]; + if(!IsWordChar(currChar, currentWord.Length())) { + output << str[i]; + currentWord.Clear(); + + } else { + + currentWord << currChar; + if(IsWordChar(nextChar, currentWord.Length())) { + // do nothing + + } else if(!IsWordChar(nextChar, currentWord.Length()) && currentWord == word) { + output << replaceWith; + currentWord.Clear(); + + } else { + output << currentWord; + currentWord.Clear(); + } + } + } + return output; +} + +void TokenizeWords(const wxString& str, std::list& outputList) +{ + outputList.clear(); + Scanner_t scanner = ::LexerNew(str); + if(scanner) { + CxxLexerToken token; + while(::LexerNext(scanner, token)) { + if(token.type == T_IDENTIFIER || token.type == T_PP_IDENTIFIER) { + outputList.push_back(token.text); + // put a limit or we might run into memory issues + if(outputList.size() >= 1000) { + break; + } + } + } + // Destroy the lexer + ::LexerDestroy(&scanner); + } } static PPTable* ms_instance = NULL; - -void PPToken::processArgs(const wxString &argsList) + +void PPToken::processArgs(const wxString& argsList) { - args = wxStringTokenize(argsList, wxT(","), wxTOKEN_STRTOK); + args = wxStringTokenize(argsList, wxT(","), wxTOKEN_STRTOK); + + // replace all occurances of 'arg' with %1, %2 etc + for(size_t i = 0; i < args.GetCount(); i++) { + wxString replaceWith = wxString::Format(wxT("%%%d"), (int)i); + std::string res = ReplaceWordA( + replacement.To8BitData().data(), args.Item(i).To8BitData().data(), replaceWith.To8BitData().data()); + if(res.empty()) { + replacement.clear(); + + } else { + replacement = wxString::From8BitData(res.c_str()); + } + } +} - // replace all occurances of 'arg' with %1, %2 etc - for(size_t i=0; i alreadyReplacedMacros; + std::set alreadyReplacedMacros; + + // perform the squeeze 5 times max + for(size_t count = 0; count < 5; count++) { + bool modified(false); + + // get list of possible macros in the replacement + std::list tmpWords; + TokenizeWords(replacement, tmpWords); + wxArrayString words; + if(tmpWords.empty()) break; + + // Make room for at least tmpWords.size() items + words.Alloc(tmpWords.size()); + + // make sure that a word is not been replaced more than once + // this will avoid recursion + // an example (taken from qglobal.h of the Qt library): + // + // #define qDebug QT_NO_QDEBUG_MACRO + // #define QT_NO_QDEBUG_MACRO if(1); else qDebug + // + std::for_each(tmpWords.begin(), tmpWords.end(), [&](const wxString& word){ + if(alreadyReplacedMacros.count(word) == 0) { + alreadyReplacedMacros.insert(word); + words.Add(word); + } + }); - // perform the squeeze 5 times max - for(size_t count=0; count < 5; count++) { - bool modified(false); - - // get list of possible macros in the replacement - wxArrayString tmpWords = TokenizeWords(replacement); - wxArrayString words; - - // make sure that a word is not been replaced more than once - // this will avoid recursion - // an example (taken from qglobal.h of the Qt library): - // - // #define qDebug QT_NO_QDEBUG_MACRO - // #define QT_NO_QDEBUG_MACRO if(1); else qDebug - // - for(size_t i=0; iToken(words.Item(i)); - if(tok.flags & IsValid) { - if(tok.flags & IsFunctionLike) { - int where = replacement.Find(words.Item(i)); - if(where != wxNOT_FOUND) { - wxString initList; - wxArrayString initListArr; - if(readInitList( replacement, where + words.Item(i).Length(), initList, initListArr )) { - tok.expandOnce(initListArr); - - replacement.Remove(where, words.Item(i).Length() + initList.Length()); - tok.replacement.Replace(wxT("##"), wxT("")); - replacement.insert(where, tok.replacement); - modified = true; - } - } - - } else { - if(replacement.Replace(words.Item(i), tok.replacement)) { - modified = true; - } - } - } - } - - if(!modified) - break; - } - replacement.Replace(wxT("##"), wxT("")); -} - -bool PPToken::readInitList(const std::string& in, size_t from, std::string& initList, std::vector& initListArr) -{ - if(in.length() < from) { - return false; - } - - std::string tmpString = in.substr(from); - size_t start = tmpString.find('('); - if(start == std::string::npos ) { - return false; - } - - // skip the open brace - tmpString = tmpString.substr(start+1); - - for(size_t i=0; iToken(words.Item(i)); + if(tok.flags & IsValid) { + if(tok.flags & IsFunctionLike) { + int where = replacement.Find(words.Item(i)); + if(where != wxNOT_FOUND) { + wxString initList; + wxArrayString initListArr; + if(readInitList(replacement, where + words.Item(i).Length(), initList, initListArr)) { + tok.expandOnce(initListArr); + + replacement.Remove(where, words.Item(i).Length() + initList.Length()); + tok.replacement.Replace(wxT("##"), wxT("")); + replacement.insert(where, tok.replacement); + modified = true; + } + } + + } else { + if(replacement.Replace(words.Item(i), tok.replacement)) { + modified = true; + } + } + } + } + + if(!modified) break; + } + replacement.Replace(wxT("##"), wxT("")); +} + +bool +PPToken::readInitList(const std::string& in, size_t from, std::string& initList, std::vector& initListArr) +{ + if(in.length() < from) { + return false; + } + + std::string tmpString = in.substr(from); + size_t start = tmpString.find('('); + if(start == std::string::npos) { + return false; + } + + // skip the open brace + tmpString = tmpString.substr(start + 1); + + for(size_t i = 0; i < start; i++) { + initList += " "; + } + + initList += "("; + std::string word; + int depth(1); + + for(size_t i = 0; i < tmpString.length(); i++) { + char ch = tmpString[i]; + initList += ch; + switch(ch) { + case ')': + depth--; + if(depth == 0) { + initListArr.push_back(word); + return true; + } else { + word += ch; + } + break; + case '(': + depth++; + word += ch; + break; + case ',': + if(depth == 1) { + initListArr.push_back(word); + word.clear(); + } else { + word += ch; + } + break; + default: + word += ch; + break; + } + } + return false; +} + +bool PPToken::readInitList(const wxString& in, int from, wxString& initList, wxArrayString& initListArr) +{ + // sanity + if(in.length() > 100) return false; + + if((int)in.Length() < from) { + return false; + } + + wxString tmpString = in.Mid(from); + int start = tmpString.Find(wxT("(")); + if(start == wxNOT_FOUND) { + return false; + } + tmpString = tmpString.Mid(start + 1); + + for(size_t i = 0; i < (size_t)start; i++) { + initList << wxT(" "); + } + + initList << wxT("("); + wxString word; + int depth(1); + + for(size_t i = 0; i < tmpString.Length(); i++) { + wxChar ch = tmpString[i]; + initList << ch; + switch(ch) { + case wxT(')'): + depth--; + if(depth == 0) { + initListArr.Add(word); + return true; + } else { + word << ch; + } + break; + case wxT('('): + depth++; + word << ch; + break; + case wxT(','): + if(depth == 1) { + initListArr.Add(word); + word.Clear(); + } else { + word << ch; + } + break; + default: + word << ch; + break; + } + } + return false; } void PPToken::expandOnce(const wxArrayString& initList) { - if(initList.size() != args.size()) - return; + if(initList.size() != args.size()) return; + + for(size_t i = 0; i < args.size(); i++) { + wxString placeHolder; + placeHolder << wxT("%") << i; + + wxString replaceWith = initList.Item(i); + replaceWith.Trim().Trim(false); - for(size_t i=0; i::iterator iter = m_table.find(name); - if(iter == m_table.end()) { - return PPToken(); - } + std::map::iterator iter = m_table.find(name); + if(iter == m_table.end()) { + return PPToken(); + } - return iter->second; + return iter->second; } void PPTable::Add(const PPToken& token) { - if(token.name.IsEmpty()) - return; + if(token.name.IsEmpty()) return; - wxString name = token.name; - name.Trim().Trim(false); - std::map::iterator iter = m_table.find(name); - if(iter == m_table.end()) - m_table[name] = token; - else { - // if the new token's replacement is empty and the current one is NOT empty, - // replace the two (we prefer empty replacements) - if(iter->second.flags & PPToken::IsOverridable && !iter->second.replacement.IsEmpty() && token.replacement.IsEmpty()) { - m_table[name] = token; - } - } + wxString name = token.name; + name.Trim().Trim(false); + std::map::iterator iter = m_table.find(name); + if(iter == m_table.end()) + m_table[name] = token; + else { + // if the new token's replacement is empty and the current one is NOT empty, + // replace the two (we prefer empty replacements) + if(iter->second.flags & PPToken::IsOverridable && !iter->second.replacement.IsEmpty() && + token.replacement.IsEmpty()) { + m_table[name] = token; + } + } } void PPTable::AddUsed(const wxString& name) { - if(name.IsEmpty()) { - return; - } - m_namesUsed.insert(name); + if(name.IsEmpty()) { + return; + } + m_namesUsed.insert(name); } -void PPTable::Print(wxFFile &fp) -{ - std::map::iterator iter = m_table.begin(); - for(; iter != m_table.end(); iter++) { - iter->second.print(fp); - } +void PPTable::Print(wxFFile& fp) +{ + std::map::iterator iter = m_table.begin(); + for(; iter != m_table.end(); iter++) { + iter->second.print(fp); + } } bool PPTable::Contains(const wxString& name) { - std::map::iterator iter = m_table.find(name); - return iter != m_table.end(); + std::map::iterator iter = m_table.find(name); + return iter != m_table.end(); } wxString PPTable::Export() { - wxString table; - std::map::iterator iter = m_table.begin(); - for(; iter != m_table.end(); iter++) { - iter->second.squeeze(); - wxString replacement = iter->second.replacement; - replacement.Trim().Trim(false); - - // remove extra whitespaces - while(replacement.Replace(wxT(" "), wxT(" "))){} - - if(replacement.IsEmpty()) { - table << iter->second.fullname() << wxT("\n"); - - } else if(iter->second.flags & PPToken::IsFunctionLike) { - table << iter->second.fullname() << wxT("=") << replacement << wxT("\n"); - - } else { - // macros with replacement but they are not in a form of a function - // we take only macros that thier replacement is not a number - long v(-1); - if(!replacement.ToLong(&v) && !replacement.ToLong(&v, 8) && !replacement.ToLong(&v, 16) && replacement.find(wxT('"')) == wxString::npos && !replacement.StartsWith(wxT("0x"))) { - table << iter->second.fullname() << wxT("=") << replacement << wxT("\n"); - } - } - } - return table; + wxString table; + std::map::iterator iter = m_table.begin(); + for(; iter != m_table.end(); iter++) { + iter->second.squeeze(); + wxString replacement = iter->second.replacement; + replacement.Trim().Trim(false); + + // remove extra whitespaces + while(replacement.Replace(wxT(" "), wxT(" "))) { + } + + if(replacement.IsEmpty()) { + table << iter->second.fullname() << wxT("\n"); + + } else if(iter->second.flags & PPToken::IsFunctionLike) { + table << iter->second.fullname() << wxT("=") << replacement << wxT("\n"); + + } else { + // macros with replacement but they are not in a form of a function + // we take only macros that thier replacement is not a number + long v(-1); + if(!replacement.ToLong(&v) && !replacement.ToLong(&v, 8) && !replacement.ToLong(&v, 16) && + replacement.find(wxT('"')) == wxString::npos && !replacement.StartsWith(wxT("0x"))) { + table << iter->second.fullname() << wxT("=") << replacement << wxT("\n"); + } + } + } + return table; } void PPTable::Squeeze() { - std::map::iterator iter = m_table.begin(); - for(; iter != m_table.end(); iter++) { - m_table[iter->first].squeeze(); - } -} - -void PPTable::Clear() -{ - m_table.clear(); -} - -void PPTable::ClearNamesUsed() -{ - m_namesUsed.clear(); -} - -bool CLReplacePattern(const wxString& in, const wxString& pattern, const wxString& replaceWith, wxString &outStr) -{ - int where = pattern.Find(wxT("%0")); - if(where != wxNOT_FOUND) { - wxString replacement(replaceWith); - - // a patterened expression - wxString searchFor = pattern.BeforeFirst(wxT('(')); - where = in.Find(searchFor); - if(where == wxNOT_FOUND) { - return false; - } - - wxString initList; - wxArrayString initListArr; - if(PPToken::readInitList(in, searchFor.Length() + where, initList, initListArr) == false) - return false; - - outStr = in; - // update the 'replacement' with the actual values ( replace %0..%n) - for(size_t i=0; i::iterator iter = m_table.begin(); + for(; iter != m_table.end(); iter++) { + m_table[iter->first].squeeze(); + } +} + +void PPTable::Clear() { m_table.clear(); } + +void PPTable::ClearNamesUsed() { m_namesUsed.clear(); } + +bool CLReplacePattern(const wxString& in, const wxString& pattern, const wxString& replaceWith, wxString& outStr) +{ + int where = pattern.Find(wxT("%0")); + if(where != wxNOT_FOUND) { + wxString replacement(replaceWith); + + // a patterened expression + wxString searchFor = pattern.BeforeFirst(wxT('(')); + where = in.Find(searchFor); + if(where == wxNOT_FOUND) { + return false; + } + + wxString initList; + wxArrayString initListArr; + if(PPToken::readInitList(in, searchFor.Length() + where, initList, initListArr) == false) return false; + + outStr = in; + // update the 'replacement' with the actual values ( replace %0..%n) + for(size_t i = 0; i < initListArr.size(); i++) { + wxString placeHolder; + placeHolder << wxT("%") << i; + replacement.Replace(placeHolder, initListArr.Item(i)); + } + + outStr.Remove(where, searchFor.Length() + initList.Length()); + outStr.insert(where, replacement); + return true; + + } else { + if(in.Find(pattern) == wxNOT_FOUND) { + return false; + } + // simple replacement + outStr = ReplaceWord(in, pattern, replaceWith); + return outStr != in; + } } std::string replacement; bool CLReplacePatternA(const std::string& in, const CLReplacement& repl, std::string& outStr) { - if(repl.is_compound) { - size_t where = in.find(repl.searchFor); - if(where == std::string::npos) - return false; - - std::string initList; - std::vector initListArr; - if(PPToken::readInitList(in, repl.searchFor.length() + where, initList, initListArr) == false) - return false; - - // update the 'replacement' with the actual values ( replace %0..%n) - replacement = repl.replaceWith; - char placeHolder[4]; - for(size_t i=0; i initListArr; + if(PPToken::readInitList(in, repl.searchFor.length() + where, initList, initListArr) == false) return false; + + // update the 'replacement' with the actual values ( replace %0..%n) + replacement = repl.replaceWith; + char placeHolder[4]; + for(size_t i = 0; i < initListArr.size(); i++) { memset(placeHolder, 0, sizeof(placeHolder)); sprintf(placeHolder, "%%%d", (int)i); - size_t pos = replacement.find(placeHolder); - const std::string& init = initListArr[i]; - while( pos != std::string::npos ) { - replacement.replace(pos, strlen(placeHolder), init.c_str()); + size_t pos = replacement.find(placeHolder); + const std::string& init = initListArr[i]; + while(pos != std::string::npos) { + replacement.replace(pos, strlen(placeHolder), init.c_str()); - // search for the next match + // search for the next match pos = replacement.find(placeHolder, pos + 1); } - } + } - outStr = in; - where = outStr.find(repl.searchFor); - if(where == std::string::npos) - return false; + outStr = in; + where = outStr.find(repl.searchFor); + if(where == std::string::npos) return false; - outStr.replace(where, repl.searchFor.length() + initList.length(), replacement); - return true; + outStr.replace(where, repl.searchFor.length() + initList.length(), replacement); + return true; - } else { + } else { - size_t where = in.find(repl.searchFor); - if(where == std::string::npos) { - return false; - } + size_t where = in.find(repl.searchFor); + if(where == std::string::npos) { + return false; + } - outStr = ReplaceWordA(in, repl.searchFor, repl.replaceWith); + outStr = ReplaceWordA(in, repl.searchFor, repl.replaceWith); -// outStr = in; -// outStr.replace(where, repl.searchFor.length(), repl.replaceWith); + // outStr = in; + // outStr.replace(where, repl.searchFor.length(), repl.replaceWith); - // simple replacement - return outStr != in; - } + // simple replacement + return outStr != in; + } } void CLReplacement::construct(const std::string& pattern, const std::string& replacement) { - is_ok = true; - full_pattern = pattern; - is_compound = full_pattern.find("%0") != std::string::npos; - if(is_compound) { - // a patterened expression - replaceWith = replacement; - size_t where = pattern.find('('); - if(where == std::string::npos) { - is_ok = false; - return; - } - - searchFor = pattern.substr(0, where); - if(searchFor.empty()){ - is_ok = false; - return; - } - - } else { - // simple Key=Value pair - replaceWith = replacement; - searchFor = full_pattern; - } + is_ok = true; + full_pattern = pattern; + is_compound = full_pattern.find("%0") != std::string::npos; + if(is_compound) { + // a patterened expression + replaceWith = replacement; + size_t where = pattern.find('('); + if(where == std::string::npos) { + is_ok = false; + return; + } + + searchFor = pattern.substr(0, where); + if(searchFor.empty()) { + is_ok = false; + return; + } + + } else { + // simple Key=Value pair + replaceWith = replacement; + searchFor = full_pattern; + } } - diff -Nru codelite-8.0.1+dfsg2/CodeLite/pptable.h codelite-9.0+dfsg/CodeLite/pptable.h --- codelite-8.0.1+dfsg2/CodeLite/pptable.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/CodeLite/pptable.h 2015-10-11 13:56:07.000000000 +0000 @@ -1,28 +1,28 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2014 The CodeLite Team -// file name : pptable.h -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - +////////////////////////////////////////////////////////////////////////////// +////////////////////////////////////////////////////////////////////////////// +// +// copyright : (C) 2014 The CodeLite Team +// file name : pptable.h +// +// ------------------------------------------------------------------------- +// A +// _____ _ _ _ _ +// / __ \ | | | | (_) | +// | / \/ ___ __| | ___| | _| |_ ___ +// | | / _ \ / _ |/ _ \ | | | __/ _ ) +// | \__/\ (_) | (_| | __/ |___| | || __/ +// \____/\___/ \__,_|\___\_____/_|\__\___| +// +// F i l e +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// +////////////////////////////////////////////////////////////////////////////// +////////////////////////////////////////////////////////////////////////////// + #ifndef PPTABLE_H #define PPTABLE_H @@ -34,27 +34,25 @@ #include #include - #ifndef WXDLLIMPEXP_CL #ifdef WXMAKINGDLL_CL -# define WXDLLIMPEXP_CL __declspec(dllexport) +#define WXDLLIMPEXP_CL __declspec(dllexport) #elif defined(WXUSINGDLL_CL) -# define WXDLLIMPEXP_CL __declspec(dllimport) +#define WXDLLIMPEXP_CL __declspec(dllimport) #else // not making nor using DLL -# define WXDLLIMPEXP_CL +#define WXDLLIMPEXP_CL #endif #endif - struct WXDLLIMPEXP_CL CLReplacement { - bool is_compound; - bool is_ok; - std::string full_pattern; - std::string searchFor; - std::string replaceWith; - void construct(const std::string& pattern, const std::string& replacement); + bool is_compound; + bool is_ok; + std::string full_pattern; + std::string searchFor; + std::string replaceWith; + void construct(const std::string& pattern, const std::string& replacement); }; typedef std::list CLReplacementList; @@ -71,7 +69,7 @@ * * It also supports simple search and replace */ -bool CLReplacePattern(const wxString &in, const wxString& pattern, const wxString& replacement, wxString &output); +bool CLReplacePattern(const wxString& in, const wxString& pattern, const wxString& replacement, wxString& output); /** * @brief perform search and replace using CL pattern @@ -88,69 +86,63 @@ bool CLReplacePatternA(const std::string& in, const CLReplacement& repl, std::string& outStr); /** - * + * */ struct WXDLLIMPEXP_CL PPToken { - enum { - IsFunctionLike = 0x00000001, - IsValid = 0x00000002, - IsOverridable = 0x00000004 - }; - - int line; // line where found - wxString name; // preprocessor name - wxString replacement; // un processed replacement - wxArrayString args; // for function like macros, contains the argument's names - size_t flags; // PP token flags - wxString fileName; - - PPToken() : line(0), flags(IsOverridable) - {} - - ~PPToken() - {} - - void expandOnce(const wxArrayString& initList); - void processArgs(const wxString &argsList); - wxString signature() const; - void print(wxFFile &fp); - static bool readInitList(const wxString &in, int from, wxString& initList, wxArrayString &initListArr); - static bool readInitList(const std::string &in, size_t from, std::string& initList, std::vector &initListArr); - void squeeze(); - wxString fullname() const; - + enum { IsFunctionLike = 0x00000001, IsValid = 0x00000002, IsOverridable = 0x00000004 }; + + int line; // line where found + wxString name; // preprocessor name + wxString replacement; // un processed replacement + wxArrayString args; // for function like macros, contains the argument's names + size_t flags; // PP token flags + wxString fileName; + + PPToken() + : line(0) + , flags(IsOverridable) + { + } + + ~PPToken() {} + + void expandOnce(const wxArrayString& initList); + void processArgs(const wxString& argsList); + wxString signature() const; + void print(wxFFile& fp); + static bool readInitList(const wxString& in, int from, wxString& initList, wxArrayString& initListArr); + static bool + readInitList(const std::string& in, size_t from, std::string& initList, std::vector& initListArr); + void squeeze(); + wxString fullname() const; }; class WXDLLIMPEXP_CL PPTable { - std::map m_table; - std::set m_namesUsed; + std::map m_table; + std::set m_namesUsed; public: - static PPTable* Instance(); - static void Release(); + static PPTable* Instance(); + static void Release(); private: - PPTable(); - ~PPTable(); + PPTable(); + ~PPTable(); public: - PPToken Token(const wxString &name); - bool Contains(const wxString &name); - void Add (const PPToken& token); - void AddUsed(const wxString& name); - void Print(wxFFile &fp); - wxString Export(); - void Clear(); - void ClearNamesUsed(); - void Squeeze(); - - const std::map& GetTable() const { - return m_table; - } - - const std::set& GetNamesUsed() const { - return m_namesUsed; - } + PPToken Token(const wxString& name); + bool Contains(const wxString& name); + void Add(const PPToken& token); + void AddUsed(const wxString& name); + void Print(wxFFile& fp); + wxString Export(); + void Clear(); + void ClearNamesUsed(); + void Squeeze(); + + const std::map& GetTable() const { return m_table; } + + const std::set& GetNamesUsed() const { return m_namesUsed; } }; #endif // PPTABLE_H diff -Nru codelite-8.0.1+dfsg2/CodeLite/processreaderthread.cpp codelite-9.0+dfsg/CodeLite/processreaderthread.cpp --- codelite-8.0.1+dfsg2/CodeLite/processreaderthread.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/CodeLite/processreaderthread.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -25,8 +25,8 @@ #include "processreaderthread.h" #include "asyncprocess.h" -const wxEventType wxEVT_PROC_DATA_READ = 10950; -const wxEventType wxEVT_PROC_TERMINATED = 10951; +wxDEFINE_EVENT(wxEVT_ASYNC_PROCESS_OUTPUT, clProcessEvent); +wxDEFINE_EVENT(wxEVT_ASYNC_PROCESS_TERMINATED, clProcessEvent); #if defined(__WXGTK__) || defined(__WXMAC__) #include @@ -34,69 +34,54 @@ ProcessReaderThread::ProcessReaderThread() : wxThread(wxTHREAD_JOINABLE) - , m_notifiedWindow( NULL ) - , m_process ( NULL ) + , m_notifiedWindow(NULL) + , m_process(NULL) { } -ProcessReaderThread::~ProcessReaderThread() -{ - m_notifiedWindow = NULL; -} +ProcessReaderThread::~ProcessReaderThread() { m_notifiedWindow = NULL; } void* ProcessReaderThread::Entry() { - while ( true ) { + while(true) { // Did we get a request to terminate? - if (TestDestroy()) { + if(TestDestroy()) { break; } - if ( m_process ) { + if(m_process) { wxString buff; - if(m_process->Read( buff )) { - if( buff.IsEmpty() == false ) { - + if(m_process->Read(buff)) { + if(buff.IsEmpty() == false) { + // If we got a callback object, use it - if ( m_process && m_process->GetCallback() ) { - m_process->GetCallback()->CallAfter( &IProcessCallback::OnProcessOutput, buff ); - + if(m_process && m_process->GetCallback()) { + m_process->GetCallback()->CallAfter(&IProcessCallback::OnProcessOutput, buff); + } else { // fallback to the event system // we got some data, send event to parent - wxCommandEvent e(wxEVT_PROC_DATA_READ); - ProcessEventData *ed = new ProcessEventData(); - ed->SetData(buff); - ed->SetProcess( m_process ); - - e.SetClientData( ed ); - if ( m_notifiedWindow ) { - m_notifiedWindow->AddPendingEvent( e ); - - } else { - wxDELETE(ed); + clProcessEvent e(wxEVT_ASYNC_PROCESS_OUTPUT); + e.SetOutput(buff); + e.SetProcess(m_process); + if(m_notifiedWindow) { + m_notifiedWindow->AddPendingEvent(e); } - } } } else { - + // Process terminated, exit // If we got a callback object, use it - if ( m_process && m_process->GetCallback() ) { - m_process->GetCallback()->CallAfter( &IProcessCallback::OnProcessTerminated ); - + if(m_process && m_process->GetCallback()) { + m_process->GetCallback()->CallAfter(&IProcessCallback::OnProcessTerminated); + } else { // fallback to the event system - wxCommandEvent e(wxEVT_PROC_TERMINATED); - ProcessEventData *ed = new ProcessEventData(); - ed->SetProcess( m_process ); - e.SetClientData( ed ); - - if ( m_notifiedWindow ) { - m_notifiedWindow->AddPendingEvent( e ); - } else { - wxDELETE(ed); + clProcessEvent e(wxEVT_ASYNC_PROCESS_TERMINATED); + e.SetProcess(m_process); + if(m_notifiedWindow) { + m_notifiedWindow->AddPendingEvent(e); } } break; @@ -119,15 +104,13 @@ #else // Notify the thread to exit and // wait for it - if ( IsAlive() ) { + if(IsAlive()) { Delete(NULL, wxTHREAD_WAIT_BLOCK); } else { Wait(wxTHREAD_WAIT_BLOCK); - } #endif - } void ProcessReaderThread::Start(int priority) diff -Nru codelite-8.0.1+dfsg2/CodeLite/processreaderthread.h codelite-9.0+dfsg/CodeLite/processreaderthread.h --- codelite-8.0.1+dfsg2/CodeLite/processreaderthread.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/CodeLite/processreaderthread.h 2015-10-11 13:56:07.000000000 +0000 @@ -29,100 +29,65 @@ #include "wx/thread.h" #include "wx/event.h" #include "codelite_exports.h" +#include "cl_command_event.h" class IProcess; /** - * @class ProcessEventData - * @author eran - * @date 10/09/09 - * @file i_process.h - * @brief - */ -class WXDLLIMPEXP_CL ProcessEventData -{ - wxString m_data; - IProcess *m_process; - -public: - ProcessEventData() : m_process(NULL) {} - virtual ~ProcessEventData() { - m_data.Clear(); - } - - void SetData(const wxString& data) { - this->m_data = data.c_str(); - } - const wxString& GetData() const { - return m_data; - } - void SetProcess(IProcess* process) { - this->m_process = process; - } - IProcess* GetProcess() { - return m_process; - } -}; - -/** * Worker Thread class * usually user should define the ProcessRequest method */ class WXDLLIMPEXP_CL ProcessReaderThread : public wxThread { protected: - wxEvtHandler * m_notifiedWindow; - IProcess* m_process; + wxEvtHandler* m_notifiedWindow; + IProcess* m_process; + public: - /** - * Default constructor. - */ - ProcessReaderThread(); - - /** - * Destructor. - */ - virtual ~ProcessReaderThread(); - - /** - * Thread execution point. - */ - virtual void *Entry(); - - /** - * Called when the thread exits - * whether it terminates normally or is stopped with Delete() (but not when it is Kill()'ed!) - */ - virtual void OnExit() {}; - - - /** - * Set the window to be notified when a change was done - * between current source file tree and the actual tree. - * \param evtHandler - */ - void SetNotifyWindow( wxEvtHandler* evtHandler ) { - m_notifiedWindow = evtHandler; - } - - /** - * Stops the thread - * This function returns only when the thread is terminated. - * \note This call must be called from the context of other thread (e.g. main thread) - */ - void Stop(); - - /** - * Start the thread as joinable thread. - * \note This call must be called from the context of other thread (e.g. main thread) - */ - void Start(int priority = WXTHREAD_DEFAULT_PRIORITY); - - void SetProcess( IProcess *proc ) { - m_process = proc; - } + /** + * Default constructor. + */ + ProcessReaderThread(); + + /** + * Destructor. + */ + virtual ~ProcessReaderThread(); + + /** + * Thread execution point. + */ + virtual void* Entry(); + + /** + * Called when the thread exits + * whether it terminates normally or is stopped with Delete() (but not when it is Kill()'ed!) + */ + virtual void OnExit(){}; + + /** + * Set the window to be notified when a change was done + * between current source file tree and the actual tree. + * \param evtHandler + */ + void SetNotifyWindow(wxEvtHandler* evtHandler) { m_notifiedWindow = evtHandler; } + + /** + * Stops the thread + * This function returns only when the thread is terminated. + * \note This call must be called from the context of other thread (e.g. main thread) + */ + void Stop(); + + /** + * Start the thread as joinable thread. + * \note This call must be called from the context of other thread (e.g. main thread) + */ + void Start(int priority = WXTHREAD_DEFAULT_PRIORITY); + + void SetProcess(IProcess* proc) { m_process = proc; } }; -extern WXDLLIMPEXP_CL const wxEventType wxEVT_PROC_DATA_READ; -extern WXDLLIMPEXP_CL const wxEventType wxEVT_PROC_TERMINATED; +wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CL, wxEVT_ASYNC_PROCESS_OUTPUT, clProcessEvent); +wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CL, wxEVT_ASYNC_PROCESS_TERMINATED, clProcessEvent); #endif // _ProcessReaderThread_H_ diff -Nru codelite-8.0.1+dfsg2/CodeLite/procutils.h codelite-9.0+dfsg/CodeLite/procutils.h --- codelite-8.0.1+dfsg2/CodeLite/procutils.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/CodeLite/procutils.h 2015-10-11 13:56:07.000000000 +0000 @@ -37,6 +37,7 @@ #include #include #include +#include #endif struct ProcessEntry { diff -Nru codelite-8.0.1+dfsg2/CodeLite/refactorengine.cpp codelite-9.0+dfsg/CodeLite/refactorengine.cpp --- codelite-8.0.1+dfsg2/CodeLite/refactorengine.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/CodeLite/refactorengine.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,28 +1,28 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2014 The CodeLite Team -// file name : refactorengine.cpp -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - +////////////////////////////////////////////////////////////////////////////// +////////////////////////////////////////////////////////////////////////////// +// +// copyright : (C) 2014 The CodeLite Team +// file name : refactorengine.cpp +// +// ------------------------------------------------------------------------- +// A +// _____ _ _ _ _ +// / __ \ | | | | (_) | +// | / \/ ___ __| | ___| | _| |_ ___ +// | | / _ \ / _ |/ _ \ | | | __/ _ ) +// | \__/\ (_) | (_| | __/ |___| | || __/ +// \____/\___/ \__,_|\___\_____/_|\__\___| +// +// F i l e +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// +////////////////////////////////////////////////////////////////////////////// +////////////////////////////////////////////////////////////////////////////// + #include "refactorengine.h" #include "cppwordscanner.h" #include "entry.h" @@ -35,13 +35,9 @@ const wxEventType wxEVT_REFACTORING_ENGINE_CACHE_INITIALIZING = wxNewEventType(); -RefactoringEngine::RefactoringEngine() -{ -} +RefactoringEngine::RefactoringEngine() {} -RefactoringEngine::~RefactoringEngine() -{ -} +RefactoringEngine::~RefactoringEngine() {} RefactoringEngine* RefactoringEngine::Instance() { @@ -49,14 +45,17 @@ return &ms_instance; } - void RefactoringEngine::Clear() { m_possibleCandidates.clear(); m_candidates.clear(); } -void RefactoringEngine::RenameGlobalSymbol(const wxString& symname, const wxFileName& fn, int line, int pos, const wxFileList_t& files) +void RefactoringEngine::RenameGlobalSymbol(const wxString& symname, + const wxFileName& fn, + int line, + int pos, + const wxFileList_t& files) { DoFindReferences(symname, fn, line, pos, files, false); } @@ -71,14 +70,13 @@ // get the current file states TextStatesPtr states = scanner.states(); - if( !states ) { + if(!states) { return; } - // get the local by scanning from the current function's TagEntryPtr tag = TagsManagerST::Get()->FunctionFromFileLine(fn, line + 1); - if( !tag ) { + if(!tag) { return; } @@ -86,11 +84,10 @@ int funcLine = tag->GetLine() - 1; // Convert the line number to offset - int from = states->LineToPos (funcLine); - int to = states->FunctionEndPos(from); + int from = states->LineToPos(funcLine); + int to = states->FunctionEndPos(from); - if(to == wxNOT_FOUND) - return; + if(to == wxNOT_FOUND) return; // search for matches in the given range CppTokensMap l; @@ -98,22 +95,27 @@ CppToken::List_t tokens; l.findTokens(symname, tokens); - if (tokens.empty()) - return; + if(tokens.empty()) return; // Loop over the matches - // Incase we did manage to resolve the word, it means that it is NOT a local variable (DoResolveWord only wors for globals NOT for locals) + // Incase we did manage to resolve the word, it means that it is NOT a local variable (DoResolveWord only wors for + // globals NOT for locals) RefactorSource target; std::list::iterator iter = tokens.begin(); - for (; iter != tokens.end(); iter++) { - wxFileName f( iter->getFilename() ); - if (!DoResolveWord(states, wxFileName(iter->getFilename()), iter->getOffset(), line, symname, &target)) { - m_candidates.push_back( *iter ); + for(; iter != tokens.end(); iter++) { + wxFileName f(iter->getFilename()); + if(!DoResolveWord(states, wxFileName(iter->getFilename()), iter->getOffset(), line, symname, &target)) { + m_candidates.push_back(*iter); } } } -bool RefactoringEngine::DoResolveWord(TextStatesPtr states, const wxFileName& fn, int pos, int line, const wxString &word, RefactorSource *rs) +bool RefactoringEngine::DoResolveWord(TextStatesPtr states, + const wxFileName& fn, + int pos, + int line, + const wxString& word, + RefactorSource* rs) { std::vector tags; @@ -121,35 +123,38 @@ wxString expr = GetExpression(pos, states); // sanity - if(states->text.length() < (size_t)pos + 1) - return false; - + if(states->text.length() < (size_t)pos + 1) return false; + + // Hack: + // disable sqlite3.c + if(fn.GetFullName() == "sqlite3.c") return false; + // get the scope // Optimize the text for large files wxString text(states->text.substr(0, pos + 1)); // we simply collect declarations & implementations - //try implemetation first + // try implemetation first bool found(false); TagsManagerST::Get()->FindImplDecl(fn, line, expr, word, text, tags, true, true); - if (tags.empty() == false) { + if(tags.empty() == false) { // try to see if we got a function and not class/struct - for (size_t i=0; iGetKind() != wxT("class") && tag->GetKind() != wxT("struct")) { + if(tag->GetKind() != wxT("class") && tag->GetKind() != wxT("struct")) { // if there is no match, add it anyways - if (!found) { - rs->isClass = (tag->GetKind() == wxT("class") ||tag->GetKind() == wxT("struct")); + if(!found) { + rs->isClass = (tag->GetKind() == wxT("class") || tag->GetKind() == wxT("struct")); rs->name = tag->GetName(); rs->scope = tag->GetScope(); found = true; - } else if (rs->scope == wxT("") && rs->isClass == false) { + } else if(rs->scope == wxT("") && rs->isClass == false) { // give predecense to variables - rs->isClass = (tag->GetKind() == wxT("class") ||tag->GetKind() == wxT("struct")); + rs->isClass = (tag->GetKind() == wxT("class") || tag->GetKind() == wxT("struct")); rs->name = tag->GetName(); rs->scope = tag->GetScope(); found = true; @@ -159,29 +164,28 @@ } // if no match was found, keep the first result but keep searching - if ( !found ) { + if(!found) { TagEntryPtr tag = tags.at(0); - rs->scope = tag->GetScope(); - rs->name = tag->GetName(); + rs->scope = tag->GetScope(); + rs->name = tag->GetName(); rs->isClass = tag->IsClass() || tag->IsStruct(); found = true; } else { return true; - } } // Ok, the "implementation" search did not yield definite results, try declaration tags.clear(); TagsManagerST::Get()->FindImplDecl(fn, line, expr, word, text, tags, false, true); - if (tags.empty() == false) { + if(tags.empty() == false) { // try to see if we got a function and not class/struct - for (size_t i=0; iGetKind() != wxT("class") && tag->GetKind() != wxT("struct")) { + if(tag->GetKind() != wxT("class") && tag->GetKind() != wxT("struct")) { rs->name = tag->GetName(); rs->scope = tag->GetScope(); return true; @@ -189,11 +193,11 @@ } // if no match was found, keep the first result but keep searching - if ( !found ) { + if(!found) { TagEntryPtr tag = tags.at(0); - rs->scope = tag->GetScope(); - rs->name = tag->GetName(); - rs->isClass = tag->IsClass() || tag->IsStruct(); + rs->scope = tag->GetScope(); + rs->name = tag->GetName(); + rs->isClass = tag->IsClass() || tag->IsStruct(); } return true; } @@ -204,32 +208,32 @@ wxString RefactoringEngine::GetExpression(int pos, TextStatesPtr states) { - bool cont(true); - int depth(0); - bool prevGt (false); + bool cont(true); + int depth(0); + bool prevGt(false); wxString expression; states->SetPosition(pos); - while (cont && depth >= 0) { + while(cont && depth >= 0) { wxChar ch = states->Previous(); // eof? - if (ch == 0) { + if(ch == 0) { break; } - switch (ch) { + switch(ch) { case wxT(';'): cont = false; break; case wxT('-'): - if (prevGt) { + if(prevGt) { prevGt = false; - //if previous char was '>', we found an arrow so reduce the depth - //which was increased + // if previous char was '>', we found an arrow so reduce the depth + // which was increased depth--; } else { - if (depth <= 0) { + if(depth <= 0) { cont = false; } } @@ -240,7 +244,7 @@ case wxT('\t'): case wxT('\r'): prevGt = false; - if (depth <= 0) { + if(depth <= 0) { cont = false; } break; @@ -253,8 +257,8 @@ case wxT('['): depth--; prevGt = false; - if (depth < 0) { - //dont include this token + if(depth < 0) { + // dont include this token cont = false; } break; @@ -269,8 +273,8 @@ case wxT('%'): case wxT('?'): prevGt = false; - if (depth <= 0) { - //dont include this token + if(depth <= 0) { + // dont include this token cont = false; } break; @@ -281,8 +285,8 @@ case wxT('<'): prevGt = false; depth--; - if (depth < 0) { - //dont include this token + if(depth < 0) { + // dont include this token cont = false; } break; @@ -307,25 +311,34 @@ { clProgressDlg* prgDlg = NULL; // Create a progress dialog - prgDlg = new clProgressDlg (NULL, title, wxT(""), maxValue); + prgDlg = new clProgressDlg(NULL, title, wxT(""), maxValue); return prgDlg; } -void RefactoringEngine::FindReferences(const wxString& symname, const wxFileName& fn, int line, int pos, const wxFileList_t& files) +void RefactoringEngine::FindReferences(const wxString& symname, + const wxFileName& fn, + int line, + int pos, + const wxFileList_t& files) { DoFindReferences(symname, fn, line, pos, files, true); } -void RefactoringEngine::DoFindReferences(const wxString& symname, const wxFileName& fn, int line, int pos, const wxFileList_t& files, bool onlyDefiniteMatches) +void RefactoringEngine::DoFindReferences(const wxString& symname, + const wxFileName& fn, + int line, + int pos, + const wxFileList_t& files, + bool onlyDefiniteMatches) { // Clear previous results Clear(); - - if ( ! m_storage.IsCacheReady() ) { - m_storage.InitializeCache( files ); + + if(!m_storage.IsCacheReady()) { + m_storage.InitializeCache(files); return; } - + // Container for the results found in the 'files' CppTokensMap tokensMap; @@ -334,27 +347,25 @@ // get the current file states TextStatesPtr states = scanner.states(); - if(!states) - return; + if(!states) return; // Attempt to understand the expression that the caret is currently located at (using line:pos:file) RefactorSource rs; - if(!DoResolveWord(states, fn, pos + symname.Len(), line, symname, &rs)) - return; + if(!DoResolveWord(states, fn, pos + symname.Len(), line, symname, &rs)) return; - wxFileList_t modifiedFilesList = m_storage.FilterUpToDateFiles( files ); + wxFileList_t modifiedFilesList = m_storage.FilterUpToDateFiles(files); clProgressDlg* prgDlg = NULL; - if ( !modifiedFilesList.empty() ) { + if(!modifiedFilesList.empty()) { prgDlg = CreateProgressDialog(_("Updating cache..."), files.size()); // Search the provided input files for the symbol to rename and prepare // a CppTokensMap - for (size_t i=0; iUpdate(i, msg)) { + if(!prgDlg->Update(i, msg)) { prgDlg->Destroy(); Clear(); return; @@ -367,8 +378,7 @@ case FileExtManager::TypeSourceCpp: { // load matches for a give symbol m_storage.Match(symname, curfile.GetFullPath(), tokensMap); - } - break; + } break; default: break; } @@ -377,8 +387,7 @@ } // load all tokens, first we need to parse the workspace files... CppToken::List_t tokens = m_storage.GetTokens(symname, files); - if (tokens.empty()) - return; + if(tokens.empty()) return; // sort the tokens tokens.sort(); @@ -388,16 +397,16 @@ int counter(0); TextStatesPtr statesPtr(NULL); - wxString statesPtrFileName; - prgDlg = CreateProgressDialog(_("Stage 2/2: Parsing matches..."), (int) tokens.size()); + wxString statesPtrFileName; + prgDlg = CreateProgressDialog(_("Stage 2/2: Parsing matches..."), (int)tokens.size()); - for (; iter != tokens.end(); ++iter) { + for(; iter != tokens.end(); ++iter) { // TODO :: send an event here to report our progress - wxFileName f( iter->getFilename() ); - wxString msg; + wxFileName f(iter->getFilename()); + wxString msg; msg << _("Parsing expression ") << counter << wxT("/") << tokens.size() << _(" in file: ") << f.GetFullName(); - if ( !prgDlg->Update(counter, msg) ) { + if(!prgDlg->Update(counter, msg)) { // user clicked 'Cancel' Clear(); prgDlg->Destroy(); @@ -408,41 +417,45 @@ // reset the result target.Reset(); - if(!statesPtr || statesPtrFileName != iter->getFilename() ) { + if(!statesPtr || statesPtrFileName != iter->getFilename()) { // Create new statesPtr CppWordScanner sc(iter->getFilename()); - statesPtr = sc.states(); + statesPtr = sc.states(); statesPtrFileName = iter->getFilename(); } - if(!statesPtr) - continue; + if(!statesPtr) continue; - if (DoResolveWord(statesPtr, wxFileName( iter->getFilename() ), iter->getOffset(), iter->getLineNumber(), symname, &target)) { + if(DoResolveWord(statesPtr, + wxFileName(iter->getFilename()), + iter->getOffset(), + iter->getLineNumber(), + symname, + &target)) { // set the line number if(statesPtr->states.size() > iter->getOffset()) - iter->setLineNumber( statesPtr->states[iter->getOffset()].lineNo ); + iter->setLineNumber(statesPtr->states[iter->getOffset()].lineNo); - if (target.name == rs.name && target.scope == rs.scope) { + if(target.name == rs.name && target.scope == rs.scope) { // full match - m_candidates.push_back( *iter ); + m_candidates.push_back(*iter); - } else if (target.name == rs.scope && !rs.isClass) { + } else if(target.name == rs.scope && !rs.isClass) { // source is function, and target is class - m_candidates.push_back( *iter ); + m_candidates.push_back(*iter); - } else if (target.name == rs.name && rs.isClass) { + } else if(target.name == rs.name && rs.isClass) { // source is class, and target is ctor - m_candidates.push_back( *iter ); + m_candidates.push_back(*iter); - } else if (!onlyDefiniteMatches) { + } else if(!onlyDefiniteMatches) { // add it to the possible match list - m_possibleCandidates.push_back( *iter ); + m_possibleCandidates.push_back(*iter); } - } else if( !onlyDefiniteMatches) { + } else if(!onlyDefiniteMatches) { // resolved word failed, add it to the possible list - m_possibleCandidates.push_back( *iter ); + m_possibleCandidates.push_back(*iter); } } @@ -450,43 +463,39 @@ } TagEntryPtr RefactoringEngine::SyncSignature(const wxFileName& fn, - int line, - int pos, - const wxString &word, - const wxString &text, - const wxString &expr) + int line, + int pos, + const wxString& word, + const wxString& text, + const wxString& expr) { TagEntryPtr func = TagsManagerST::Get()->FunctionFromFileLine(fn, line); - if(!func) - return NULL; + if(!func) return NULL; bool bIsImpl = (func->GetKind() == wxT("function")); // Found the counterpart std::vector tags; TagsManagerST::Get()->FindImplDecl(fn, line, expr, word, text, tags, !bIsImpl); - if(tags.size() != 1) - return NULL; + if(tags.size() != 1) return NULL; TagEntryPtr tag = tags.at(0); - if(tag->IsMethod() == false) - return NULL; + if(tag->IsMethod() == false) return NULL; wxString signature; - if (bIsImpl) { + if(bIsImpl) { // The "source" is an implementaion, which means that we need to prepare declaration signature // this could be tricky since we might lose the "default" values - signature = TagsManagerST::Get()->NormalizeFunctionSig(func->GetSignature(), Normalize_Func_Default_value|Normalize_Func_Name|Normalize_Func_Reverse_Macro); + signature = TagsManagerST::Get()->NormalizeFunctionSig( + func->GetSignature(), Normalize_Func_Default_value | Normalize_Func_Name | Normalize_Func_Reverse_Macro); } else { // Prepare an "implementation" signature - signature = TagsManagerST::Get()->NormalizeFunctionSig(func->GetSignature(), Normalize_Func_Name|Normalize_Func_Reverse_Macro); + signature = TagsManagerST::Get()->NormalizeFunctionSig(func->GetSignature(), + Normalize_Func_Name | Normalize_Func_Reverse_Macro); } tag->SetSignature(signature); return tag; } - -bool RefactoringEngine::IsCacheInitialized() const -{ - return m_storage.IsCacheReady(); -} + +bool RefactoringEngine::IsCacheInitialized() const { return m_storage.IsCacheReady(); } diff -Nru codelite-8.0.1+dfsg2/CodeLite/refactorengine.h codelite-9.0+dfsg/CodeLite/refactorengine.h --- codelite-8.0.1+dfsg2/CodeLite/refactorengine.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/CodeLite/refactorengine.h 2015-10-11 13:56:07.000000000 +0000 @@ -43,12 +43,17 @@ struct RefactorSource { wxString name; wxString scope; - bool isClass; + bool isClass; - RefactorSource() : name(wxEmptyString), scope(wxEmptyString), isClass(false) { + RefactorSource() + : name(wxEmptyString) + , scope(wxEmptyString) + , isClass(false) + { } - void Reset() { + void Reset() + { name.clear(); scope.clear(); isClass = false; @@ -62,43 +67,41 @@ { std::list m_candidates; std::list m_possibleCandidates; - wxEvtHandler * m_evtHandler; - RefactoringStorage m_storage; - + wxEvtHandler* m_evtHandler; + RefactoringStorage m_storage; + public: static RefactoringEngine* Instance(); - + protected: - clProgressDlg *CreateProgressDialog(const wxString &title, int maxValue); - void DoFindReferences(const wxString &symname, const wxFileName& fn, int line, int pos, const wxFileList_t& files, bool onlyDefiniteMatches); + clProgressDlg* CreateProgressDialog(const wxString& title, int maxValue); + void DoFindReferences(const wxString& symname, + const wxFileName& fn, + int line, + int pos, + const wxFileList_t& files, + bool onlyDefiniteMatches); private: RefactoringEngine(); ~RefactoringEngine(); - bool DoResolveWord( TextStatesPtr states, - const wxFileName& fn, - int pos, - int line, - const wxString &word, - RefactorSource *rs); + bool DoResolveWord(TextStatesPtr states, + const wxFileName& fn, + int pos, + int line, + const wxString& word, + RefactorSource* rs); public: - void InitializeCache(const wxFileList_t& files) { - m_storage.InitializeCache(files); - } + void InitializeCache(const wxFileList_t& files) { m_storage.InitializeCache(files); } bool IsCacheInitialized() const; - void SetCandidates(const std::list& candidates) { - this->m_candidates = candidates; - } - void SetPossibleCandidates(const std::list& possibleCandidates) { + void SetCandidates(const std::list& candidates) { this->m_candidates = candidates; } + void SetPossibleCandidates(const std::list& possibleCandidates) + { this->m_possibleCandidates = possibleCandidates; } - const std::list& GetCandidates() const { - return m_candidates; - } - const std::list& GetPossibleCandidates() const { - return m_possibleCandidates; - } + const std::list& GetCandidates() const { return m_candidates; } + const std::list& GetPossibleCandidates() const { return m_possibleCandidates; } wxString GetExpression(int pos, TextStatesPtr states); void Clear(); @@ -119,7 +122,8 @@ * @param pos at that position * @param files perform the refactoring on these files */ - void RenameGlobalSymbol(const wxString &symname, const wxFileName& fn, int line, int pos, const wxFileList_t& files); + void + RenameGlobalSymbol(const wxString& symname, const wxFileName& fn, int line, int pos, const wxFileList_t& files); /** * @param rename local variable @@ -128,7 +132,7 @@ * @param line the line where our symbol appears * @param pos the position of the symbol (this should be pointing to the *start* of the symbol) */ - void RenameLocalSymbol (const wxString &symname, const wxFileName& fn, int line, int pos); + void RenameLocalSymbol(const wxString& symname, const wxFileName& fn, int line, int pos); /** * @brief find usages of given symbol in a list of files @@ -138,13 +142,18 @@ * @param pos the position of the symbol (this should be pointing to the *start* of the symbol) * @param files list of files to search in */ - void FindReferences(const wxString &symname, const wxFileName& fn, int line, int pos, const wxFileList_t& files); + void FindReferences(const wxString& symname, const wxFileName& fn, int line, int pos, const wxFileList_t& files); /** * @brief given a location (file:line:pos) use the current location function signature * and return the propsed counter-part tag */ - TagEntryPtr SyncSignature(const wxFileName& fn, int line, int pos, const wxString &word, const wxString &text, const wxString &expr); + TagEntryPtr SyncSignature(const wxFileName& fn, + int line, + int pos, + const wxString& word, + const wxString& text, + const wxString& expr); }; #endif // REFACTORENGINE_H diff -Nru codelite-8.0.1+dfsg2/CodeLite/refactoring_storage.cpp codelite-9.0+dfsg/CodeLite/refactoring_storage.cpp --- codelite-8.0.1+dfsg2/CodeLite/refactoring_storage.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/CodeLite/refactoring_storage.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -32,6 +32,8 @@ #include "refactorengine.h" #include "ctags_manager.h" #include "codelite_events.h" +#include "file_logger.h" +#include "fileextmanager.h" class CppTokenCacheMakerThread : public wxThread { @@ -164,7 +166,7 @@ void RefactoringStorage::StoreTokens(const wxString& filename, const CppToken::List_t& tokens, bool startTx) { - if(!IsCacheReady()) { + if(!IsCacheReady() || !m_db.IsOpen()) { return; } @@ -174,16 +176,19 @@ if(startTx) { Begin(); } - - DoDeleteFile(filename); - + + wxLongLong fileId = GetFileID(filename); + if(fileId != wxNOT_FOUND) { + DoDeleteFile(fileId); + } + + // Insert a match to the FILES table + fileId = DoUpdateFileTimestamp(filename); CppToken::List_t::const_iterator iter = tokens.begin(); for(; iter != tokens.end(); ++iter) { - iter->store(&m_db); + iter->store(&m_db, fileId); } - DoUpdateFileTimestamp(filename); - if(startTx) { Commit(); } @@ -198,49 +203,61 @@ void RefactoringStorage::Open(const wxString& workspacePath) { - wxString cache_db; wxFileName fnWorkspace(workspacePath); - cache_db << fnWorkspace.GetPath() << "/.codelite"; - - { - wxLogNull nolog; - ::wxMkdir(cache_db); - } - - cache_db << "/refactoring.db"; + fnWorkspace.AppendDir(".codelite"); + fnWorkspace.SetFullName("refactoring.db"); + fnWorkspace.Mkdir(wxS_DIR_DEFAULT, wxPATH_MKDIR_FULL); if(m_db.IsOpen()) { m_db.Close(); } - m_db.Open(cache_db); - m_cacheDb = cache_db; + static const wxString CURR_SCHEMA = "1.0.0"; + m_db.Open(fnWorkspace.GetFullPath()); + if(GetSchemaVersion() != CURR_SCHEMA) { + // Drop the tables and recreate the schema + try { + m_db.ExecuteUpdate("drop table if exists REFACTORING_SCHEMA"); + m_db.ExecuteUpdate("drop table if exists TOKENS_TABLE"); + m_db.ExecuteUpdate("drop table if exists FILES"); + m_db.ExecuteUpdate("drop index if exists TOKENS_TABLE_IDX1"); + m_db.ExecuteUpdate("drop index if exists TOKENS_TABLE_IDX2"); + m_db.ExecuteUpdate("drop index if exists FILES_IDX1"); + } catch(wxSQLite3Exception& e) { + wxUnusedVar(e); + } + } + + m_cacheDb = fnWorkspace.GetFullPath(); // Create the schema try { m_db.ExecuteUpdate("PRAGMA journal_mode= OFF"); - m_db.ExecuteUpdate("PRAGMA synchronous = OFF"); m_db.ExecuteUpdate("PRAGMA temp_store = MEMORY"); + m_db.ExecuteUpdate("create table if not exists REFACTORING_SCHEMA (VERSION string primary key)"); m_db.ExecuteUpdate("create table if not exists TOKENS_TABLE(ID INTEGER PRIMARY KEY AUTOINCREMENT," " NAME VARCHAR(128)," " OFFSET INTEGER," - " FILE_NAME VARCHAR(256)," + " FILE_ID INTEGER," " LINE_NUMBER INTEGER)"); m_db.ExecuteUpdate("create index if not exists TOKENS_TABLE_IDX1 on TOKENS_TABLE(NAME)"); - m_db.ExecuteUpdate("create index if not exists TOKENS_TABLE_IDX2 on TOKENS_TABLE(FILE_NAME)"); + m_db.ExecuteUpdate("create index if not exists TOKENS_TABLE_IDX2 on TOKENS_TABLE(FILE_ID)"); m_db.ExecuteUpdate("create table if not exists FILES (ID INTEGER PRIMARY KEY AUTOINCREMENT, FILE_NAME " "VARCHAR(256), LAST_UPDATED INTEGER)"); m_db.ExecuteUpdate("create unique index if not exists FILES_IDX1 on FILES(FILE_NAME)"); + // set the schema version + wxString sql = wxString(wxT("replace into REFACTORING_SCHEMA values ('")) << CURR_SCHEMA << wxT("')"); + m_db.ExecuteUpdate(sql); } catch(wxSQLite3Exception& e) { wxUnusedVar(e); } } -void RefactoringStorage::DoUpdateFileTimestamp(const wxString& filename) +wxLongLong RefactoringStorage::DoUpdateFileTimestamp(const wxString& filename) { try { wxSQLite3Statement st = @@ -248,10 +265,12 @@ st.Bind(1, filename); st.Bind(2, (int)time(NULL)); st.ExecuteUpdate(); - + return m_db.GetLastRowId(); + } catch(wxSQLite3Exception& e) { wxUnusedVar(e); } + return wxNOT_FOUND; } void RefactoringStorage::OnWorkspaceLoaded(wxCommandEvent& e) @@ -261,24 +280,33 @@ if(m_workspaceFile.IsEmpty()) { return; } + + if(FileExtManager::GetType(m_workspaceFile) != FileExtManager::TypeWorkspace) { + m_workspaceFile.Clear(); + return; // Not a C++ workspace, nothing to be done here + } + m_cacheStatus = CACHE_NOT_READY; Open(m_workspaceFile); } -void RefactoringStorage::DoDeleteFile(const wxString& filename) +void RefactoringStorage::DoDeleteFile(wxLongLong fileID) { try { // delete fhe file entry - wxSQLite3Statement st = m_db.PrepareStatement("DELETE FROM FILES WHERE FILE_NAME=?"); - st.Bind(1, filename); - st.ExecuteUpdate(); - - // remove all tokens - wxSQLite3Statement st3 = m_db.PrepareStatement("delete from TOKENS_TABLE where FILE_NAME=?"); - st3.Bind(1, filename); - st3.ExecuteUpdate(); + { + wxSQLite3Statement st = m_db.PrepareStatement("DELETE FROM FILES WHERE ID=?"); + st.Bind(1, fileID); + st.ExecuteUpdate(); + } + // remove all tokens for the given file + { + wxSQLite3Statement st = m_db.PrepareStatement("delete from TOKENS_TABLE where FILE_ID=?"); + st.Bind(1, fileID); + st.ExecuteUpdate(); + } } catch(wxSQLite3Exception& e) { wxUnusedVar(e); } @@ -286,7 +314,7 @@ void RefactoringStorage::Match(const wxString& symname, const wxString& filename, CppTokensMap& matches) { - if(!IsCacheReady()) { + if(!IsCacheReady() || !m_db.IsOpen()) { return; } @@ -296,8 +324,10 @@ CppToken::List_t tokens_list = tmpScanner.tokenize(); StoreTokens(filename, tokens_list, true); } - - CppToken::List_t list = CppToken::loadByNameAndFile(&m_db, symname, filename); + + wxLongLong fileID = GetFileID(filename); + if(fileID == wxNOT_FOUND) return; + CppToken::List_t list = CppToken::loadByNameAndFile(&m_db, symname, fileID); matches.addToken(symname, list); } @@ -340,7 +370,7 @@ wxFileList_t RefactoringStorage::FilterUpToDateFiles(const wxFileList_t& files) { - if(!IsCacheReady()) { + if(!IsCacheReady() || !m_db.IsOpen()) { return files; } wxFileList_t res; @@ -355,7 +385,7 @@ CppToken::List_t RefactoringStorage::GetTokens(const wxString& symname, const wxFileList_t& filelist) { - if(!IsCacheReady()) { + if(!IsCacheReady() || !m_db.IsOpen()) { return CppToken::List_t(); } @@ -438,3 +468,38 @@ m_thread = NULL; } } + +wxString RefactoringStorage::GetSchemaVersion() +{ + try { + wxString sql("SELECT VERSION from REFACTORING_SCHEMA"); + wxSQLite3Statement st = m_db.PrepareStatement(sql); + wxSQLite3ResultSet res = st.ExecuteQuery(); + if(res.NextRow()) { + return res.GetString(0); + } + + } catch(wxSQLite3Exception& e) { + wxUnusedVar(e); + } + return wxEmptyString; +} + +wxLongLong RefactoringStorage::GetFileID(const wxFileName& filename) { return GetFileID(filename.GetFullPath()); } + +wxLongLong RefactoringStorage::GetFileID(const wxString& filename) +{ + try { + wxLongLong fileId = wxNOT_FOUND; + wxSQLite3Statement st = m_db.PrepareStatement("SELECT ID FROM FILES WHERE FILE_NAME=? LIMIT 1"); + st.Bind(1, filename); + wxSQLite3ResultSet res = st.ExecuteQuery(); + if(res.NextRow()) { + fileId = res.GetInt64(0); + } + return fileId; + } catch(wxSQLite3Exception& e) { + CL_ERROR("RefactoringStorage::GetFileID: %s", e.GetMessage()); + return wxNOT_FOUND; + } +} diff -Nru codelite-8.0.1+dfsg2/CodeLite/refactoring_storage.h codelite-9.0+dfsg/CodeLite/refactoring_storage.h --- codelite-8.0.1+dfsg2/CodeLite/refactoring_storage.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/CodeLite/refactoring_storage.h 2015-10-11 13:56:07.000000000 +0000 @@ -38,48 +38,52 @@ class WXDLLIMPEXP_CL RefactoringStorage : public wxEvtHandler { public: - enum CacheStatus { - CACHE_NOT_READY, - CACHE_IN_PROGRESS, - CACHE_READY - }; + enum CacheStatus { CACHE_NOT_READY, CACHE_IN_PROGRESS, CACHE_READY }; + protected: - - wxSQLite3Database m_db; - wxString m_cacheDb; - CacheStatus m_cacheStatus; - wxString m_workspaceFile; + wxSQLite3Database m_db; + wxString m_cacheDb; + CacheStatus m_cacheStatus; + wxString m_workspaceFile; CppTokenCacheMakerThread* m_thread; - + friend class CppTokenCacheMakerThread; + public: RefactoringStorage(); virtual ~RefactoringStorage(); protected: - void DoUpdateFileTimestamp(const wxString &filename); - void DoDeleteFile(const wxString &filename); - bool IsFileUpToDate(const wxString &filename); - - void OnWorkspaceLoaded(wxCommandEvent &e); - void OnWorkspaceClosed(wxCommandEvent &e); - void OnThreadStatus(wxCommandEvent &e); - void Open(const wxString &workspacePath); + wxLongLong DoUpdateFileTimestamp(const wxString& filename); + void DoDeleteFile(wxLongLong fileID); + bool IsFileUpToDate(const wxString& filename); + + void OnWorkspaceLoaded(wxCommandEvent& e); + void OnWorkspaceClosed(wxCommandEvent& e); + void OnThreadStatus(wxCommandEvent& e); + void Open(const wxString& workspacePath); void Begin(); void Commit(); void Rollback(); - + void JoinWorkerThread(); + wxString GetSchemaVersion(); + /** + * @brief return the file ID from the database + */ + wxLongLong GetFileID(const wxFileName& filename); + /** + * @brief return the file ID from the database + */ + wxLongLong GetFileID(const wxString& filename); public: - bool IsCacheReady() const { - return m_cacheStatus == CACHE_READY; - } - void StoreTokens( const wxString &filename, const CppToken::List_t& tokens , bool startTx); - void Match(const wxString &symname, const wxString &filename, CppTokensMap& matches); + bool IsCacheReady() const { return m_cacheStatus == CACHE_READY; } + void StoreTokens(const wxString& filename, const CppToken::List_t& tokens, bool startTx); + void Match(const wxString& symname, const wxString& filename, CppTokensMap& matches); void InitializeCache(const wxFileList_t& files); wxFileList_t FilterUpToDateFiles(const wxFileList_t& files); CppToken::List_t GetTokens(const wxString& symname, const wxFileList_t& filelist = wxFileList_t()); }; -#endif // REFACTORINGSTORAGE_H +#endif // REFACTORINGSTORAGE_H diff -Nru codelite-8.0.1+dfsg2/CodeLite/SocketAPI/clSocketBase.cpp codelite-9.0+dfsg/CodeLite/SocketAPI/clSocketBase.cpp --- codelite-8.0.1+dfsg2/CodeLite/SocketAPI/clSocketBase.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/CodeLite/SocketAPI/clSocketBase.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -180,10 +180,25 @@ { std::string err; #ifdef _WIN32 - char _buf[256]; - memset(_buf, 0, sizeof(_buf)); - sprintf(_buf, "WSAGetLastError returned: %d", WSAGetLastError()); - err = _buf; + // Get the error message, if any. + DWORD errorMessageID = ::WSAGetLastError(); + if(errorMessageID == 0) return "No error message has been recorded"; + + LPSTR messageBuffer = nullptr; + size_t size = + FormatMessageA(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, + NULL, + errorMessageID, + MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), + (LPSTR)&messageBuffer, + 0, + NULL); + + std::string message(messageBuffer, size); + + // Free the buffer. + LocalFree(messageBuffer); + err = message; #else err = strerror(errno); #endif diff -Nru codelite-8.0.1+dfsg2/CodeLite/SocketAPI/clSocketClientAsync.cpp codelite-9.0+dfsg/CodeLite/SocketAPI/clSocketClientAsync.cpp --- codelite-8.0.1+dfsg2/CodeLite/SocketAPI/clSocketClientAsync.cpp 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/CodeLite/SocketAPI/clSocketClientAsync.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,142 @@ +#include "clSocketClientAsync.h" +#include "SocketAPI/clSocketClient.h" + +wxDEFINE_EVENT(wxEVT_ASYNC_SOCKET_CONNECTED, clCommandEvent); +wxDEFINE_EVENT(wxEVT_ASYNC_SOCKET_CONNECT_ERROR, clCommandEvent); +wxDEFINE_EVENT(wxEVT_ASYNC_SOCKET_CONNECTION_LOST, clCommandEvent); +wxDEFINE_EVENT(wxEVT_ASYNC_SOCKET_INPUT, clCommandEvent); +wxDEFINE_EVENT(wxEVT_ASYNC_SOCKET_ERROR, clCommandEvent); + +clSocketClientAsync::clSocketClientAsync(wxEvtHandler* owner) + : m_owner(owner) + , m_thread(NULL) +{ +} + +clSocketClientAsync::~clSocketClientAsync() { Disconnect(); } + +void clSocketClientAsync::Connect(const wxString& host, int port, const wxString& keepAliveMessage) +{ + Disconnect(); + m_thread = new clSocketClientAsyncHelperThread(m_owner, host, port, keepAliveMessage); + m_thread->Start(); +} + +void clSocketClientAsync::Disconnect() +{ + if(m_thread) { + m_thread->Stop(); + wxDELETE(m_thread); + } +} + +void clSocketClientAsync::Send(const wxString& buffer) +{ + if(m_thread) { + clSocketClientAsyncHelperThread::MyRequest req; + req.m_command = clSocketClientAsyncHelperThread::kSend; + req.m_buffer = buffer; + m_thread->AddRequest(req); + } +} + +//----------------------------------------------------------------------------------------------- +// The helper thread +//----------------------------------------------------------------------------------------------- +clSocketClientAsyncHelperThread::clSocketClientAsyncHelperThread(wxEvtHandler* sink, + const wxString& host, + int port, + const wxString& keepAliveMessage) + : wxThread(wxTHREAD_JOINABLE) + , m_sink(sink) + , m_host(host) + , m_keepAliveMessage(keepAliveMessage) + , m_port(port) +{ +} + +clSocketClientAsyncHelperThread::~clSocketClientAsyncHelperThread() {} + +void* clSocketClientAsyncHelperThread::Entry() +{ + // Connect + clSocketClient* client = new clSocketClient(); + clSocketBase::Ptr_t socket(client); + + bool wouldBlock; + bool connected = false; + + // Try to connect and wait up to 5 seconds + for(size_t i = 0; i < 10; ++i) { + connected = client->ConnectRemote(m_host, m_port, wouldBlock); + if(connected) { + break; + } + ::wxMilliSleep(500); + } + + // Connected? + if(!connected) { + // report error and go out + clCommandEvent event(wxEVT_ASYNC_SOCKET_CONNECT_ERROR); + event.SetString(socket->error()); + m_sink->AddPendingEvent(event); + return NULL; + } + + wxUnusedVar(wouldBlock); + + // Notify about connection successful + clCommandEvent event(wxEVT_ASYNC_SOCKET_CONNECTED); + m_sink->AddPendingEvent(event); + + try { + int counter = 0; + while(!TestDestroy()) { + // Wait for request from the user + ++counter; + if(!m_keepAliveMessage.IsEmpty() && (counter % 10) == 0) { + // Fire the keep alive message + // if we lost the socket, it will raise an exception + socket->Send(m_keepAliveMessage); + } + + MyRequest req; + if(m_queue.ReceiveTimeout(1, req) == wxMSGQUEUE_NO_ERROR) { + // got something + if(req.m_command == kDisconnect) { + socket.reset(NULL); + return NULL; + + } else if(req.m_command == kSend) { + socket->Send(req.m_buffer); + } + } + + // timeout, test to see if we got something on the socket + wxString buffer; + if(socket->SelectReadMS(5) == clSocketBase::kSuccess) { + int rc = socket->Read(buffer); + if(rc == clSocketBase::kSuccess) { + clCommandEvent event(wxEVT_ASYNC_SOCKET_INPUT); + event.SetString(buffer); + m_sink->AddPendingEvent(event); + + } else if(rc == clSocketBase::kError) { + // Connection lost + clCommandEvent event(wxEVT_ASYNC_SOCKET_CONNECTION_LOST); + m_sink->AddPendingEvent(event); + return NULL; + } else { + // Timeout + } + } + } + } catch(clSocketException& e) { + clCommandEvent event(wxEVT_ASYNC_SOCKET_ERROR); + event.SetString(e.what()); + m_sink->AddPendingEvent(event); + return NULL; + } + return NULL; +} diff -Nru codelite-8.0.1+dfsg2/CodeLite/SocketAPI/clSocketClientAsync.h codelite-9.0+dfsg/CodeLite/SocketAPI/clSocketClientAsync.h --- codelite-8.0.1+dfsg2/CodeLite/SocketAPI/clSocketClientAsync.h 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/CodeLite/SocketAPI/clSocketClientAsync.h 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,84 @@ +#ifndef CLSOCKETCLIENTASYNC_H +#define CLSOCKETCLIENTASYNC_H + +#include "cl_command_event.h" +#include "codelite_exports.h" +#include "worker_thread.h" +#include +#include +#include "SocketAPI/clSocketClient.h" + +wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CL, wxEVT_ASYNC_SOCKET_CONNECTED, clCommandEvent); +wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CL, wxEVT_ASYNC_SOCKET_CONNECTION_LOST, clCommandEvent); +wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CL, wxEVT_ASYNC_SOCKET_INPUT, clCommandEvent); +wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CL, wxEVT_ASYNC_SOCKET_ERROR, clCommandEvent); +wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CL, wxEVT_ASYNC_SOCKET_CONNECT_ERROR, clCommandEvent); + +class WXDLLIMPEXP_CL clSocketClientAsyncHelperThread : public wxThread +{ +public: + enum eCommand { + kSend, + kDisconnect, + }; + + struct MyRequest { + eCommand m_command; + wxString m_buffer; + }; + +protected: + wxEvtHandler* m_sink; + wxString m_host; + wxString m_keepAliveMessage; + int m_port; + wxMessageQueue m_queue; + +public: + virtual void AddRequest(const MyRequest& req) { m_queue.Post(req); } + virtual void* Entry(); + + /** + * @brief start the worker thread + */ + void Start() + { + Create(); + Run(); + } + + /** + * @brief stop and wait for the thread to terminate + */ + void Stop() + { + if(IsAlive()) { + Delete(NULL, wxTHREAD_WAIT_BLOCK); + + } else { + Wait(wxTHREAD_WAIT_BLOCK); + } + } + + clSocketClientAsyncHelperThread(wxEvtHandler* sink, + const wxString& host, + int port, + const wxString& keepAliveMessage = ""); + virtual ~clSocketClientAsyncHelperThread(); +}; + +class WXDLLIMPEXP_CL clSocketClientAsync +{ + wxEvtHandler* m_owner; + clSocketClientAsyncHelperThread* m_thread; + +public: + clSocketClientAsync(wxEvtHandler* owner); + ~clSocketClientAsync(); + + void Connect(const wxString& host, int port, const wxString& keepAliveMessage = ""); + void Send(const wxString& buffer); + void Disconnect(); +}; + +#endif // CLSOCKETCLIENTASYNC_H diff -Nru codelite-8.0.1+dfsg2/CodeLite/symbol_tree.cpp codelite-9.0+dfsg/CodeLite/symbol_tree.cpp --- codelite-8.0.1+dfsg2/CodeLite/symbol_tree.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/CodeLite/symbol_tree.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -23,6 +23,7 @@ ////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// #include "precompiled_header.h" +#include "fileutils.h" #ifdef __VISUALC__ #ifdef _DEBUG @@ -35,23 +36,17 @@ #include #include "tokenizer.h" - IMPLEMENT_DYNAMIC_CLASS(SymbolTree, wxTreeCtrl) -SymbolTree::SymbolTree() -{ - InitialiseSymbolMap(); -} +SymbolTree::SymbolTree() { InitialiseSymbolMap(); } -SymbolTree::SymbolTree(wxWindow *parent, const wxWindowID id, const wxPoint& pos, const wxSize& size, long style) +SymbolTree::SymbolTree(wxWindow* parent, const wxWindowID id, const wxPoint& pos, const wxSize& size, long style) { InitialiseSymbolMap(); Create(parent, id, pos, size, style); } -SymbolTree::~SymbolTree() -{ -} +SymbolTree::~SymbolTree() {} void SymbolTree::InitialiseSymbolMap() { @@ -119,50 +114,48 @@ m_globalsKind[wxT("enumerator")] = true; } -void SymbolTree::Create(wxWindow *parent, const wxWindowID id, const wxPoint& pos, const wxSize& size, long style) +void SymbolTree::Create(wxWindow* parent, const wxWindowID id, const wxPoint& pos, const wxSize& size, long style) { #ifndef __WXGTK__ style |= wxTR_LINES_AT_ROOT; #endif wxTreeCtrl::Create(parent, id, pos, size, style); - BuildTree( wxFileName() ); + BuildTree(wxFileName()); } -void SymbolTree::BuildTree(const wxFileName &fileName, TagEntryPtrVector_t* tags /*NULL*/) +void SymbolTree::BuildTree(const wxFileName& fileName, TagEntryPtrVector_t* tags /*NULL*/) { TagEntryPtrVector_t newTags; - if ( !tags ) { - + if(!tags) { + // Get the current database ITagsStoragePtr db = TagsManagerST::Get()->GetDatabase(); - if ( ! db ) { + if(!db) { Clear(); return; } // Load the new tags from the database db->SelectTagsByFile(fileName.GetFullPath(), newTags); // Compare the new tags with the old ones - if ( TagsManagerST::Get()->AreTheSame(newTags, m_currentTags) ) - return; - + if(TagsManagerST::Get()->AreTheSame(newTags, m_currentTags)) return; + m_currentTags.clear(); m_currentTags.insert(m_currentTags.end(), newTags.begin(), newTags.end()); - + } else { - + m_currentTags.clear(); m_currentTags.insert(m_currentTags.end(), tags->begin(), tags->end()); - } - + wxWindowUpdateLocker locker(this); Clear(); m_fileName = fileName; - + // Convert them into tree m_tree = TagsManagerST::Get()->Load(m_fileName, &m_currentTags); - if ( !m_tree ) { + if(!m_tree) { return; } @@ -174,41 +167,45 @@ // add three items here: // the globals node, the mcros and the prototype node - m_globalsNode = AppendItem(root, wxT("Global Functions and Variables"), 2, 2, new MyTreeItemData(wxT("Global Functions and Variables"), wxEmptyString)); - m_prototypesNode = AppendItem(root, wxT("Functions Prototypes"), 2, 2, new MyTreeItemData(wxT("Functions Prototypes"), wxEmptyString)); - m_macrosNode = AppendItem(root, wxT("Macros"), 2, 2, new MyTreeItemData(wxT("Macros"), wxEmptyString)); + m_globalsNode = AppendItem(root, + wxT("Global Functions and Variables"), + 2, + 2, + new MyTreeItemData(wxT("Global Functions and Variables"), wxEmptyString)); + m_prototypesNode = AppendItem( + root, wxT("Functions Prototypes"), 2, 2, new MyTreeItemData(wxT("Functions Prototypes"), wxEmptyString)); + m_macrosNode = AppendItem(root, wxT("Macros"), 2, 2, new MyTreeItemData(wxT("Macros"), wxEmptyString)); // Iterate over the tree and add items m_sortItems.clear(); Freeze(); - for (; !walker.End(); walker++) { + for(; !walker.End(); walker++) { // Add the item to the tree TagNode* node = walker.GetNode(); // Skip root node - if (node->IsRoot()) - continue; + if(node->IsRoot()) continue; // Add the node AddItem(node); } - + SortTree(m_sortItems); - if ( ItemHasChildren(m_globalsNode) == false ) { + if(ItemHasChildren(m_globalsNode) == false) { Delete(m_globalsNode); } - if ( ItemHasChildren(m_prototypesNode) == false ) { + if(ItemHasChildren(m_prototypesNode) == false) { Delete(m_prototypesNode); } - if ( ItemHasChildren(m_macrosNode) == false ) { + if(ItemHasChildren(m_macrosNode) == false) { Delete(m_macrosNode); } Thaw(); - //select the root node by default - if (!(GetWindowStyleFlag() & wxTR_HIDE_ROOT)) { - //root is visible, select it + // select the root node by default + if(!(GetWindowStyleFlag() & wxTR_HIDE_ROOT)) { + // root is visible, select it SelectItem(GetRootItem()); } } @@ -222,23 +219,23 @@ wxString displayName(nodeData.GetDisplayName()); wxTreeItemId parentHti; - if (nodeData.GetName().IsEmpty()) - return; + if(nodeData.GetName().IsEmpty()) return; wxFont font = wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT); - if (nodeData.GetKind() == wxT("prototype")) { + if(nodeData.GetKind() == wxT("prototype")) { font.SetStyle(wxFONTSTYLE_ITALIC); } - if (nodeData.GetAccess() == wxT("public")) { + if(nodeData.GetAccess() == wxT("public")) { font.SetWeight(wxFONTWEIGHT_BOLD); } //------------------------------------------------------------------------------- // We gather globals together under special node //------------------------------------------------------------------------------- - if ( (nodeData.GetParent() == wxT("")) && // parent is global scope - m_globalsKind.find(nodeData.GetKind()) != m_globalsKind.end() ) { //the node kind is one of function, prototype or variable - if (nodeData.GetKind() == wxT("prototype")) + if((nodeData.GetParent() == wxT("")) && // parent is global scope + m_globalsKind.find(nodeData.GetKind()) != + m_globalsKind.end()) { // the node kind is one of function, prototype or variable + if(nodeData.GetKind() == wxT("prototype")) parentHti = m_prototypesNode; else parentHti = m_globalsNode; @@ -248,59 +245,49 @@ //--------------------------------------------------------------------------------- // Macros are gathered under the 'Macros' node //--------------------------------------------------------------------------------- - if (nodeData.GetKind() == wxT("macro")) { + if(nodeData.GetKind() == wxT("macro")) { parentHti = m_macrosNode; } - //only if parent is valid, we add item to the tree + // only if parent is valid, we add item to the tree wxTreeItemId hti; - if (parentHti.IsOk() == false) { + if(parentHti.IsOk() == false) { parentHti = GetRootItem(); } - if (parentHti.IsOk()) { - hti = AppendItem(parentHti, // parent - displayName, // display name - iconIndex, // item image index - iconIndex, // selected item image - new MyTreeItemData(node->GetData().GetFile(), node->GetData().GetPattern(), node->GetData().GetLine())); + if(parentHti.IsOk()) { + hti = AppendItem( + parentHti, // parent + displayName, // display name + iconIndex, // item image index + iconIndex, // selected item image + new MyTreeItemData(node->GetData().GetFile(), node->GetData().GetPattern(), node->GetData().GetLine())); SetItemFont(hti, font); - node->GetData().SetTreeItemId( hti ); + node->GetData().SetTreeItemId(hti); m_sortItems[parentHti.m_pItem] = true; m_items[nodeData.Key()] = hti.m_pItem; } } -void SymbolTree::SelectItemByName(const wxString &name) +void SymbolTree::SelectItemByName(const wxString& name) { - std::map::iterator iter = m_items.begin(); - for (; iter != m_items.end(); iter++) { - wxString tmpkey = iter->first; - wxString key(tmpkey); -// tmpkey.StartsWith(wxT("[prototype] "), &key); - wxString path = key.BeforeFirst(wxT('(')); - //get the name from the path - path = path.AfterLast(wxT(':')); - - if (wxStrnicmp(path, name, name.Length()) == 0) { - //we got an item to select - SelectItem(iter->second); - EnsureVisible(iter->second); - return; - } + if(!Matches(GetRootItem(), name)) { + // wxTreeItemId currentSelection = GetSelection(); + // if(currentSelection.IsOk()) { + // SelectItem(currentSelection, false); + // } } } -void SymbolTree::SortTree(std::map & nodes) +void SymbolTree::SortTree(std::map& nodes) { std::map::iterator iter = nodes.begin(); - for (; iter != nodes.end(); iter++) { + for(; iter != nodes.end(); iter++) { wxTreeItemId item = iter->first; - if (item.IsOk()) { + if(item.IsOk()) { // Does this node has children? - if ( GetChildrenCount( item ) == 0 ) - continue; + if(GetChildrenCount(item) == 0) continue; SortChildren(item); } } @@ -312,9 +299,9 @@ int img1, img2; img1 = GetItemImage(item1); img2 = GetItemImage(item2); - if (img1 > img2) + if(img1 > img2) return 1; - else if (img1 < img2) + else if(img1 < img2) return -1; else { // Items has the same icons, compare text @@ -322,31 +309,28 @@ } } -int SymbolTree::GetItemIconIndex(const wxString &kind, const wxString &access) +int SymbolTree::GetItemIconIndex(const wxString& kind, const wxString& access) { wxString key(kind); - int index(4); // structs will be the default icon index + int index(4); // structs will be the default icon index - if ( !access.IsEmpty() ) - key += wxT("_") + access; + if(!access.IsEmpty()) key += wxT("_") + access; key.Trim(); std::map::iterator iter = m_imagesMap.find(key); - if (iter != m_imagesMap.end()) - index = iter->second; + if(iter != m_imagesMap.end()) index = iter->second; return index; } -void SymbolTree::UpdateSymbols(const std::vector > &items) +void SymbolTree::UpdateSymbols(const std::vector >& items) { - if ( !m_tree ) - return; + if(!m_tree) return; Freeze(); - for (size_t i=0; iFind(key); - if ( node ) { + if(node) { // Update the new data with the gui tree item id - data.SetTreeItemId( node->GetData().GetTreeItemId() ); + data.SetTreeItemId(node->GetData().GetTreeItemId()); node->SetData(data); // Update Icon if needed int iconIndex = GetItemIconIndex(data.GetKind(), data.GetAccess()); int curIconIndex = -1; wxTreeItemId itemId = node->GetData().GetTreeItemId(); - if (itemId.IsOk()) { + if(itemId.IsOk()) { curIconIndex = GetItemImage(itemId); - if (curIconIndex != iconIndex ) { + if(curIconIndex != iconIndex) { // Need to update the image as well SetItemImage(node->GetData().GetTreeItemId(), iconIndex); SetItemImage(node->GetData().GetTreeItemId(), iconIndex, wxTreeItemIcon_Selected); } // if(curIconIndex != iconIndex ) - //update the linenumber and file - MyTreeItemData *item_data = new MyTreeItemData(data.GetFile(), data.GetPattern()); - wxTreeItemData *old_data = GetItemData(itemId); - if (old_data) - delete old_data; + // update the linenumber and file + MyTreeItemData* item_data = new MyTreeItemData(data.GetFile(), data.GetPattern()); + wxTreeItemData* old_data = GetItemData(itemId); + if(old_data) delete old_data; SetItemData(itemId, item_data); } } } -void SymbolTree::DeleteSymbols(const std::vector > &items) +void SymbolTree::DeleteSymbols(const std::vector >& items) { - if (!m_tree) - return; + if(!m_tree) return; std::map deletedMap; Freeze(); - for (size_t i=0; i::iterator iter = m_items.find(key); - if (iter != m_items.end() && iter->second) { + if(iter != m_items.end() && iter->second) { wxTreeItemId hti = iter->second; - //if this note was already deleted, dont delete it again - if (deletedMap.find(hti.m_pItem) == deletedMap.end()) { + // if this note was already deleted, dont delete it again + if(deletedMap.find(hti.m_pItem) == deletedMap.end()) { GetItemChildrenRecursive(hti, deletedMap); - //remove just the parent + // remove just the parent Delete(hti); } m_items.erase(iter); @@ -412,13 +393,13 @@ Thaw(); } -void SymbolTree::GetItemChildrenRecursive(wxTreeItemId &parent, std::map &deletedMap) +void SymbolTree::GetItemChildrenRecursive(wxTreeItemId& parent, std::map& deletedMap) { - //delete the item's children + // delete the item's children wxTreeItemIdValue cookie; wxTreeItemId child = GetFirstChild(parent, cookie); - while (child.IsOk()) { - if (ItemHasChildren(child)) { + while(child.IsOk()) { + if(ItemHasChildren(child)) { GetItemChildrenRecursive(child, deletedMap); } else { deletedMap[child.m_pItem] = child; @@ -428,18 +409,17 @@ deletedMap[parent.m_pItem] = true; } -void SymbolTree::AddSymbols(const std::vector > &items) +void SymbolTree::AddSymbols(const std::vector >& items) { - if (!m_tree) - return; + if(!m_tree) return; m_sortItems.clear(); Freeze(); - for (size_t i=0; iAddEntry(data); - if (node) { + if(m_tree) { + TagNode* node = m_tree->AddEntry(data); + if(node) { AddItem(node); } } @@ -462,3 +442,30 @@ m_fileName.Clear(); Thaw(); } + +bool SymbolTree::Matches(const wxTreeItemId& item, const wxString& patter) +{ + if(!item.IsOk()) return false; + wxString displayName = GetItemText(item); + wxString path = displayName.BeforeFirst(wxT('(')); + // Get the name from the path + path = path.AfterLast(wxT(':')); + if(FileUtils::FuzzyMatch(patter, path)) { + SelectItem(item); + EnsureVisible(item); + return true; + } + + // Check the item's children + if(ItemHasChildren(item)) { + wxTreeItemIdValue cookie; + wxTreeItemId child = GetFirstChild(item, cookie); + while(child.IsOk()) { + if(Matches(child, patter)) { + return true; + } + child = GetNextChild(item, cookie); + } + } + return false; +} diff -Nru codelite-8.0.1+dfsg2/CodeLite/symbol_tree.h codelite-9.0+dfsg/CodeLite/symbol_tree.h --- codelite-8.0.1+dfsg2/CodeLite/symbol_tree.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/CodeLite/symbol_tree.h 2015-10-11 13:56:07.000000000 +0000 @@ -176,7 +176,9 @@ * \param name disply name of the item to be selected (can be partial name) */ void SelectItemByName(const wxString &name); + protected: + bool Matches(const wxTreeItemId& item, const wxString& patter); void GetItemChildrenRecursive(wxTreeItemId& parent, std::map &deletedMap); diff -Nru codelite-8.0.1+dfsg2/CodeLite/tags_options_data.cpp codelite-9.0+dfsg/CodeLite/tags_options_data.cpp --- codelite-8.0.1+dfsg2/CodeLite/tags_options_data.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/CodeLite/tags_options_data.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -161,6 +161,7 @@ m_tokens.Add(wxT("_GLIBCXX_END_NAMESPACE=}")); m_tokens.Add(wxT("_GLIBCXX_BEGIN_NESTED_NAMESPACE(%0, %1)=namespace %0{")); m_tokens.Add(wxT("wxDECLARE_EXPORTED_EVENT(%0,%1,%2)=int %1;")); + m_tokens.Add(wxT("wxDECLARE_EVENT(%0,%1)=int %0;")); m_tokens.Add(wxT("BOOST_FOREACH(%0, %1)=%0;")); m_tokens.Add(wxT("DECLARE_EVENT_TYPE(%0,%1)=int %0;")); m_tokens.Add(wxT("_GLIBCXX_END_NESTED_NAMESPACE=}")); diff -Nru codelite-8.0.1+dfsg2/CodeLite/TerminalEmulator.cpp codelite-9.0+dfsg/CodeLite/TerminalEmulator.cpp --- codelite-8.0.1+dfsg2/CodeLite/TerminalEmulator.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/CodeLite/TerminalEmulator.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -2,6 +2,7 @@ #include #include #include "processreaderthread.h" +#include "macros.h" #ifndef __WXMSW__ #include @@ -10,14 +11,32 @@ wxDEFINE_EVENT(wxEVT_TERMINAL_COMMAND_EXIT, clCommandEvent); wxDEFINE_EVENT(wxEVT_TERMINAL_COMMAND_OUTPUT, clCommandEvent); -BEGIN_EVENT_TABLE(TerminalEmulator, wxEvtHandler) -EVT_COMMAND(wxID_ANY, wxEVT_PROC_DATA_READ, TerminalEmulator::OnProcessOutput) -EVT_COMMAND(wxID_ANY, wxEVT_PROC_TERMINATED, TerminalEmulator::OnProcessTerminated) -END_EVENT_TABLE() +class MyProcess : public wxProcess +{ + TerminalEmulator* m_parent; + +public: + MyProcess(TerminalEmulator* parent) + : wxProcess(parent) + , m_parent(parent) + { + } + virtual ~MyProcess() { m_parent = NULL; } + void OnTerminate(int pid, int status) + { + clCommandEvent terminateEvent(wxEVT_TERMINAL_COMMAND_EXIT); + m_parent->AddPendingEvent(terminateEvent); + m_parent->m_pid = wxNOT_FOUND; + delete this; + } +}; TerminalEmulator::TerminalEmulator() : m_process(NULL) + , m_pid(wxNOT_FOUND) { + Bind(wxEVT_ASYNC_PROCESS_OUTPUT, &TerminalEmulator::OnProcessOutput, this); + Bind(wxEVT_ASYNC_PROCESS_TERMINATED, &TerminalEmulator::OnProcessTerminated, this); } TerminalEmulator::~TerminalEmulator() {} @@ -27,11 +46,6 @@ bool waitOnExit, const wxString& title) { - if(m_process) { - // another process is running - return false; - } - wxString consoleCommand; wxString strTitle = title; if(strTitle.IsEmpty()) { @@ -39,19 +53,24 @@ } else { strTitle.Prepend("'").Append("'"); } - #ifdef __WXMSW__ consoleCommand = PrepareCommand(command, strTitle, waitOnExit); #elif defined(__WXGTK__) // Test for the common terminals on Linux - if(wxFileName::Exists("/usr/bin/gnome-terminal")) { + // gnome-terminal, konsole and lxterminal are all starting asychronously + // this means that "waitOnExit" has no effect here + if(wxFileName::Exists("/usr/bin/gnome-terminal") && !waitOnExit) { consoleCommand << "/usr/bin/gnome-terminal -t " << strTitle << " -x " << PrepareCommand(command, strTitle, waitOnExit); - } else if(wxFileName::Exists("/usr/bin/konsole")) { + } else if(wxFileName::Exists("/usr/bin/konsole") && !waitOnExit) { consoleCommand << "/usr/bin/konsole -e " << PrepareCommand(command, strTitle, waitOnExit); + } else if(wxFileName::Exists("/usr/bin/lxterminal") && !waitOnExit) { + consoleCommand << "/usr/bin/lxterminal -T " << strTitle << " -e " + << PrepareCommand(command, strTitle, waitOnExit); + } else if(wxFileName::Exists("/usr/bin/uxterm")) { consoleCommand << "/usr/bin/uxterm -T " << strTitle << " -e " << PrepareCommand(command, strTitle, waitOnExit); @@ -61,12 +80,19 @@ #elif defined(__WXMAC__) + consoleCommand = TERMINAL_CMD; + consoleCommand.Replace("$(CMD)", command); + wxUnusedVar(strTitle); + wxUnusedVar(waitOnExit); + #endif if(consoleCommand.IsEmpty()) return false; wxLogMessage(consoleCommand); - m_process = ::CreateAsyncProcess(this, consoleCommand, IProcessCreateConsole, workingDirectory); - return m_process != NULL; + // Create the process as group leader, this way we make sure that killing it + // will also kill all the children processes + m_pid = ::wxExecute(consoleCommand, wxEXEC_ASYNC | wxEXEC_MAKE_GROUP_LEADER, new MyProcess(this)); + return (m_pid != 0); } wxString TerminalEmulator::PrepareCommand(const wxString& str, const wxString& title, bool waitOnExit) @@ -79,16 +105,16 @@ escapedString.Replace("\"", "\\\""); command << "/bin/bash -c \"" << escapedString; if(waitOnExit) { - command << " && echo 'Hit ENTER to continue' && read"; + command << " ; echo 'Hit ENTER to continue' ; read"; } command << "\""; #elif defined(__WXMSW__) // Windows wxString escapedString = str; - command << "cmd /c call title " << title << " && " << escapedString; + command << "cmd /C call title \"" << title << "\" && " << escapedString; if(waitOnExit) { - command << " && echo \"\" && pause"; + command << " && echo \"\" & pause"; } #else // OSX @@ -97,11 +123,11 @@ return command; } -void TerminalEmulator::OnProcessTerminated(wxCommandEvent& event) +void TerminalEmulator::OnProcessTerminated(clProcessEvent& event) { // Process terminated wxDELETE(m_process); - + m_pid = wxNOT_FOUND; // Notify that the terminal has terminated clCommandEvent terminateEvent(wxEVT_TERMINAL_COMMAND_EXIT); AddPendingEvent(terminateEvent); @@ -110,18 +136,22 @@ void TerminalEmulator::Terminate() { if(IsRunning()) { - m_process->Terminate(); + if(m_process) { + m_process->Terminate(); + } + if(m_pid != wxNOT_FOUND) { + wxKill(m_pid, wxSIGKILL, NULL, wxKILL_CHILDREN); + m_pid = wxNOT_FOUND; + } } } -bool TerminalEmulator::IsRunning() const { return m_process != NULL; } +bool TerminalEmulator::IsRunning() const { return (m_process != NULL) || (m_pid != wxNOT_FOUND); } -void TerminalEmulator::OnProcessOutput(wxCommandEvent& event) +void TerminalEmulator::OnProcessOutput(clProcessEvent& event) { - ProcessEventData* ped = reinterpret_cast(event.GetClientData()); clCommandEvent evtOutput(wxEVT_TERMINAL_COMMAND_OUTPUT); - evtOutput.SetString(ped->GetData()); - wxDELETE(ped); + evtOutput.SetString(event.GetOutput()); AddPendingEvent(evtOutput); } diff -Nru codelite-8.0.1+dfsg2/CodeLite/TerminalEmulator.h codelite-9.0+dfsg/CodeLite/TerminalEmulator.h --- codelite-8.0.1+dfsg2/CodeLite/TerminalEmulator.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/CodeLite/TerminalEmulator.h 2015-10-11 13:56:07.000000000 +0000 @@ -11,16 +11,17 @@ wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CL, wxEVT_TERMINAL_COMMAND_EXIT, clCommandEvent); wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CL, wxEVT_TERMINAL_COMMAND_OUTPUT, clCommandEvent); +class MyProcess; class WXDLLIMPEXP_CL TerminalEmulator : public wxEvtHandler { IProcess* m_process; - + long m_pid; + friend class MyProcess; + protected: - DECLARE_EVENT_TABLE() - - void OnProcessTerminated(wxCommandEvent& event); - void OnProcessOutput(wxCommandEvent& event); - + void OnProcessTerminated(clProcessEvent& event); + void OnProcessOutput(clProcessEvent& event); + public: TerminalEmulator(); virtual ~TerminalEmulator(); diff -Nru codelite-8.0.1+dfsg2/CodeLite/TerminalEmulatorUIBase.cpp codelite-9.0+dfsg/CodeLite/TerminalEmulatorUIBase.cpp --- codelite-8.0.1+dfsg2/CodeLite/TerminalEmulatorUIBase.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/CodeLite/TerminalEmulatorUIBase.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -73,11 +73,12 @@ boxSizer2->Add(m_textCtrl, 0, wxALL|wxEXPAND, 2); + SetName(wxT("TerminalEmulatorUIBase")); SetSizeHints(500,300); if ( GetSizer() ) { GetSizer()->Fit(this); } - Centre(wxBOTH); + CentreOnParent(wxBOTH); // Connect events m_textCtrl->Connect(wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler(TerminalEmulatorUIBase::OnSendCommand), NULL, this); @@ -102,11 +103,19 @@ wxBoxSizer* boxSizer10 = new wxBoxSizer(wxVERTICAL); this->SetSizer(boxSizer10); + SetName(wxT("TerminalEmulatorFrameBase")); SetSizeHints(500,300); if ( GetSizer() ) { GetSizer()->Fit(this); } - Centre(wxBOTH); + CentreOnParent(wxBOTH); +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(this)) { + wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); + } +#endif } TerminalEmulatorFrameBase::~TerminalEmulatorFrameBase() diff -Nru codelite-8.0.1+dfsg2/CodeLite/TerminalEmulatorUIBase.h codelite-9.0+dfsg/CodeLite/TerminalEmulatorUIBase.h --- codelite-8.0.1+dfsg2/CodeLite/TerminalEmulatorUIBase.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/CodeLite/TerminalEmulatorUIBase.h 2015-10-11 13:56:07.000000000 +0000 @@ -4,8 +4,8 @@ // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// -#ifndef TERMINALEMULATORUI_BASE_CLASSES_H -#define TERMINALEMULATORUI_BASE_CLASSES_H +#ifndef CODELITE_CODELITE_TERMINALEMULATORUI_BASE_CLASSES_H +#define CODELITE_CODELITE_TERMINALEMULATORUI_BASE_CLASSES_H #include #include @@ -17,6 +17,12 @@ #include #include #include +#if wxVERSION_NUMBER >= 2900 +#include +#include +#include +#include +#endif #include "codelite_exports.h" class WXDLLIMPEXP_CL TerminalEmulatorUIBase : public wxPanel diff -Nru codelite-8.0.1+dfsg2/CodeLite/TerminalEmulatorUI_codelite_bitmaps.cpp codelite-9.0+dfsg/CodeLite/TerminalEmulatorUI_codelite_bitmaps.cpp --- codelite-8.0.1+dfsg2/CodeLite/TerminalEmulatorUI_codelite_bitmaps.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/CodeLite/TerminalEmulatorUI_codelite_bitmaps.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,48 +1,47 @@ -// -// This file was automatically generated by wxrc, do not edit by hand. -// - -#include - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#include -#include -#include -#include - -#if wxCHECK_VERSION(2,8,5) && wxABI_VERSION >= 20805 - #define XRC_ADD_FILE(name, data, size, mime) \ - wxMemoryFSHandler::AddFileWithMimeType(name, data, size, mime) -#else - #define XRC_ADD_FILE(name, data, size, mime) \ - wxMemoryFSHandler::AddFile(name, data, size) -#endif - -static size_t xml_res_size_0 = 108; -static unsigned char xml_res_file_0[] = { -60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, -110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, -115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, -47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, -47,119,120,120,114,99,34,32,118,101,114,115,105,111,110,61,34,50,46,51, -46,48,46,49,34,47,62,10}; - -void wxCB1DAInitBitmapResources() -{ - - // Check for memory FS. If not present, load the handler: - { - wxMemoryFSHandler::AddFile(wxT("XRC_resource/dummy_file"), wxT("dummy one")); - wxFileSystem fsys; - wxFSFile *f = fsys.OpenFile(wxT("memory:XRC_resource/dummy_file")); - wxMemoryFSHandler::RemoveFile(wxT("XRC_resource/dummy_file")); - if (f) delete f; - else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase); - } - - XRC_ADD_FILE(wxT("XRC_resource/TerminalEmulatorUI_codelite_bitmaps.cpp$_home_eran_devl_codelite_CodeLite_TerminalEmulatorUI_codelite_bitmaps.xrc"), xml_res_file_0, xml_res_size_0, wxT("text/xml")); - wxXmlResource::Get()->Load(wxT("memory:XRC_resource/TerminalEmulatorUI_codelite_bitmaps.cpp$_home_eran_devl_codelite_CodeLite_TerminalEmulatorUI_codelite_bitmaps.xrc")); -} +// +// This file was automatically generated by wxrc, do not edit by hand. +// + +#include + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +#include +#include +#include +#include + +#if wxCHECK_VERSION(2,8,5) && wxABI_VERSION >= 20805 + #define XRC_ADD_FILE(name, data, size, mime) \ + wxMemoryFSHandler::AddFileWithMimeType(name, data, size, mime) +#else + #define XRC_ADD_FILE(name, data, size, mime) \ + wxMemoryFSHandler::AddFile(name, data, size) +#endif + +static size_t xml_res_size_0 = 90; +static unsigned char xml_res_file_0[] = { +60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, +110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, +115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, +47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, +47,119,120,120,114,99,34,47,62,10}; + +void wxCB1DAInitBitmapResources() +{ + + // Check for memory FS. If not present, load the handler: + { + wxMemoryFSHandler::AddFile(wxT("XRC_resource/dummy_file"), wxT("dummy one")); + wxFileSystem fsys; + wxFSFile *f = fsys.OpenFile(wxT("memory:XRC_resource/dummy_file")); + wxMemoryFSHandler::RemoveFile(wxT("XRC_resource/dummy_file")); + if (f) delete f; + else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase); + } + + XRC_ADD_FILE(wxT("XRC_resource/TerminalEmulatorUI_codelite_bitmaps.cpp$C__src_codelite_CodeLite_TerminalEmulatorUI_codelite_bitmaps.xrc"), xml_res_file_0, xml_res_size_0, wxT("text/xml")); + wxXmlResource::Get()->Load(wxT("memory:XRC_resource/TerminalEmulatorUI_codelite_bitmaps.cpp$C__src_codelite_CodeLite_TerminalEmulatorUI_codelite_bitmaps.xrc")); +} diff -Nru codelite-8.0.1+dfsg2/CodeLite/TerminalEmulatorUI.wxcp codelite-9.0+dfsg/CodeLite/TerminalEmulatorUI.wxcp --- codelite-8.0.1+dfsg2/CodeLite/TerminalEmulatorUI.wxcp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/CodeLite/TerminalEmulatorUI.wxcp 2015-10-11 13:56:07.000000000 +0000 @@ -108,6 +108,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "boxSizer2" }, { @@ -397,6 +401,10 @@ "m_label": "Style:", "m_value": "" }, { + "type": "bool", + "m_label": "Enable Window Persistency:", + "m_value": true + }, { "type": "string", "m_label": "Title:", "m_value": "Terminal" @@ -458,6 +466,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "boxSizer10" }, { diff -Nru codelite-8.0.1+dfsg2/CodeLite/unixprocess_impl.cpp codelite-9.0+dfsg/CodeLite/unixprocess_impl.cpp --- codelite-8.0.1+dfsg2/CodeLite/unixprocess_impl.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/CodeLite/unixprocess_impl.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,32 +1,32 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2014 The CodeLite Team -// file name : unixprocess_impl.cpp -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - +////////////////////////////////////////////////////////////////////////////// +////////////////////////////////////////////////////////////////////////////// +// +// copyright : (C) 2014 The CodeLite Team +// file name : unixprocess_impl.cpp +// +// ------------------------------------------------------------------------- +// A +// _____ _ _ _ _ +// / __ \ | | | | (_) | +// | / \/ ___ __| | ___| | _| |_ ___ +// | | / _ \ / _ |/ _ \ | | | __/ _ ) +// | \__/\ (_) | (_| | __/ |___| | || __/ +// \____/\___/ \__,_|\___\_____/_|\__\___| +// +// F i l e +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// +////////////////////////////////////////////////////////////////////////////// +////////////////////////////////////////////////////////////////////////////// + #include "unixprocess_impl.h" #include "file_logger.h" -#if defined(__WXMAC__)||defined(__WXGTK__) +#if defined(__WXMAC__) || defined(__WXGTK__) #include #include @@ -41,23 +41,23 @@ #ifdef __WXGTK__ #ifdef __FreeBSD__ -# include -# include -# include +#include +#include +#include #else -# include -# include +#include +#include #endif #else -# include +#include #endif -static char **argv = NULL; -static int argc = 0; +static char** argv = NULL; +static int argc = 0; // ---------------------------------------------- #define ISBLANK(ch) ((ch) == ' ' || (ch) == '\t') -#define BUFF_SIZE 1024*64 +#define BUFF_SIZE 1024 * 64 /* Routines imported from standard C runtime libraries. */ @@ -67,19 +67,18 @@ #include #include -#else /* !__STDC__ */ +#else /* !__STDC__ */ #if !defined _WIN32 || defined __GNUC__ -extern char *memcpy (); /* Copy memory region */ -extern int strlen (); /* Count length of string */ -extern char *malloc (); /* Standard memory allocater */ -extern char *realloc (); /* Standard memory reallocator */ -extern void free (); /* Free malloc'd memory */ -extern char *strdup (); /* Duplicate a string */ +extern char* memcpy(); /* Copy memory region */ +extern int strlen(); /* Count length of string */ +extern char* malloc(); /* Standard memory allocater */ +extern char* realloc(); /* Standard memory reallocator */ +extern void free(); /* Free malloc'd memory */ +extern char* strdup(); /* Duplicate a string */ #endif -#endif /* __STDC__ */ - +#endif /* __STDC__ */ #ifndef NULL #define NULL 0 @@ -89,82 +88,80 @@ #define EOS '\0' #endif -#define INITIAL_MAXARGC 8 /* Number of args + NULL in initial argv */ +#define INITIAL_MAXARGC 8 /* Number of args + NULL in initial argv */ -static void freeargv (char **vector) +static void freeargv(char** vector) { - register char **scan; + register char** scan; - if (vector != NULL) { - for (scan = vector; *scan != NULL; scan++) { - free (*scan); + if(vector != NULL) { + for(scan = vector; *scan != NULL; scan++) { + free(*scan); } - free (vector); + free(vector); } } -char ** -dupargv (char **argv) +char** dupargv(char** argv) { int argc; - char **copy; + char** copy; - if (argv == NULL) - return NULL; + if(argv == NULL) return NULL; /* the vector */ - for (argc = 0; argv[argc] != NULL; argc++); - copy = (char **) malloc ((argc + 1) * sizeof (char *)); - if (copy == NULL) - return NULL; + for(argc = 0; argv[argc] != NULL; argc++) + ; + copy = (char**)malloc((argc + 1) * sizeof(char*)); + if(copy == NULL) return NULL; /* the strings */ - for (argc = 0; argv[argc] != NULL; argc++) { - int len = strlen (argv[argc]); - copy[argc] = (char*)malloc (sizeof (char *) * (len + 1)); - if (copy[argc] == NULL) { - freeargv (copy); + for(argc = 0; argv[argc] != NULL; argc++) { + int len = strlen(argv[argc]); + copy[argc] = (char*)malloc(sizeof(char*) * (len + 1)); + if(copy[argc] == NULL) { + freeargv(copy); return NULL; } - strcpy (copy[argc], argv[argc]); + strcpy(copy[argc], argv[argc]); } copy[argc] = NULL; return copy; } -char **buildargv (const char *input) +char** buildargv(const char* input) { - char *arg; - char *copybuf; + char* arg; + char* copybuf; int squote = 0; int dquote = 0; int bsquote = 0; int argc = 0; int maxargc = 0; - char **argv = NULL; - char **nargv; + char** argv = NULL; + char** nargv; - if (input != NULL) { - copybuf = (char *) alloca (strlen (input) + 1); + if(input != NULL) { + copybuf = (char*)alloca(strlen(input) + 1); /* Is a do{}while to always execute the loop once. Always return an argv, even for null strings. See NOTES above, test case below. */ do { /* Pick off argv[argc] */ - while (ISBLANK (*input)) { + while(ISBLANK(*input)) { input++; } - if ((maxargc == 0) || (argc >= (maxargc - 1))) { + if((maxargc == 0) || (argc >= (maxargc - 1))) { /* argv needs initialization, or expansion */ - if (argv == NULL) { + if(argv == NULL) { maxargc = INITIAL_MAXARGC; - nargv = (char **) malloc (maxargc * sizeof (char *)); + nargv = (char**)malloc(maxargc * sizeof(char*)); } else { maxargc *= 2; - nargv = (char **) realloc (argv, maxargc * sizeof (char *)); + nargv = (char**)realloc(argv, maxargc * sizeof(char*)); } - if (nargv == NULL) { - if (argv != NULL) { - freeargv (argv); + if(nargv == NULL) { + if(argv != NULL) { + freeargv(argv); argv = NULL; } break; @@ -174,31 +171,31 @@ } /* Begin scanning arg */ arg = copybuf; - while (*input != EOS) { - if (ISBLANK (*input) && !squote && !dquote && !bsquote) { + while(*input != EOS) { + if(ISBLANK(*input) && !squote && !dquote && !bsquote) { break; } else { - if (bsquote) { + if(bsquote) { bsquote = 0; *arg++ = *input; - } else if (*input == '\\') { + } else if(*input == '\\') { bsquote = 1; - } else if (squote) { - if (*input == '\'') { + } else if(squote) { + if(*input == '\'') { squote = 0; } else { *arg++ = *input; } - } else if (dquote) { - if (*input == '"') { + } else if(dquote) { + if(*input == '"') { dquote = 0; } else { *arg++ = *input; } } else { - if (*input == '\'') { + if(*input == '\'') { squote = 1; - } else if (*input == '"') { + } else if(*input == '"') { dquote = 1; } else { *arg++ = *input; @@ -208,36 +205,36 @@ } } *arg = EOS; - argv[argc] = strdup (copybuf); - if (argv[argc] == NULL) { - freeargv (argv); + argv[argc] = strdup(copybuf); + if(argv[argc] == NULL) { + freeargv(argv); argv = NULL; break; } argc++; argv[argc] = NULL; - while (ISBLANK (*input)) { + while(ISBLANK(*input)) { input++; } - } while (*input != EOS); + } while(*input != EOS); } return (argv); } //----------------------------------------------------- -static void make_argv(const wxString &cmd) +static void make_argv(const wxString& cmd) { if(argc) { freeargv(argv); - argc=0; + argc = 0; } argv = buildargv(cmd.mb_str(wxConvUTF8).data()); - argc=0; + argc = 0; - for (char **targs = argv; *targs != NULL; targs++) { + for(char** targs = argv; *targs != NULL; targs++) { argc++; } } @@ -245,17 +242,17 @@ #define BUFF_STATE_NORMAL 0 #define BUFF_STATE_IN_ESC 1 -static void RemoveTerminalColoring(char *buffer) +static void RemoveTerminalColoring(char* buffer) { - char *saved_buff = buffer; - char tmpbuf[BUFF_SIZE+1]; + char* saved_buff = buffer; + char tmpbuf[BUFF_SIZE + 1]; memset(tmpbuf, 0, sizeof(tmpbuf)); short state = BUFF_STATE_NORMAL; size_t i(0); - while(*buffer != 0) { - switch (state) { + while((*buffer) != 0) { + switch(state) { case BUFF_STATE_NORMAL: if(*buffer == 0x1B) { // found ESC char state = BUFF_STATE_IN_ESC; @@ -277,25 +274,22 @@ memcpy(saved_buff, tmpbuf, strlen(tmpbuf)); } -UnixProcessImpl::UnixProcessImpl(wxEvtHandler *parent) +UnixProcessImpl::UnixProcessImpl(wxEvtHandler* parent) : IProcess(parent) - , m_readHandle (-1) - , m_writeHandle (-1) - , m_thr (NULL) + , m_readHandle(-1) + , m_writeHandle(-1) + , m_thr(NULL) { } -UnixProcessImpl::~UnixProcessImpl() -{ - Cleanup(); -} +UnixProcessImpl::~UnixProcessImpl() { Cleanup(); } void UnixProcessImpl::Cleanup() { close(GetReadHandle()); close(GetWriteHandle()); - if ( m_thr ) { + if(m_thr) { // Stop the reader thread m_thr->Stop(); delete m_thr; @@ -310,36 +304,34 @@ } } -bool UnixProcessImpl::IsAlive() -{ - return kill(m_pid, 0) == 0; -} +bool UnixProcessImpl::IsAlive() { return kill(m_pid, 0) == 0; } bool UnixProcessImpl::Read(wxString& buff) { - fd_set rs; + fd_set rs; timeval timeout; memset(&rs, 0, sizeof(rs)); FD_SET(GetReadHandle(), &rs); - timeout.tv_sec = 0; // 0 seconds - timeout.tv_usec = 50000; // 50 ms + timeout.tv_sec = 0; // 0 seconds + timeout.tv_usec = 50000; // 50 ms int errCode(0); errno = 0; - + buff.Clear(); - int rc = select(GetReadHandle()+1, &rs, NULL, NULL, &timeout); + int rc = select(GetReadHandle() + 1, &rs, NULL, NULL, &timeout); errCode = errno; - if ( rc == 0 ) { + if(rc == 0) { // timeout return true; - } else if ( rc > 0 ) { + } else if(rc > 0) { // there is something to read - char buffer[BUFF_SIZE+1]; // our read buffer + char buffer[BUFF_SIZE + 1]; // our read buffer memset(buffer, 0, sizeof(buffer)); - if(read(GetReadHandle(), buffer, sizeof(buffer)) > 0) { + int bytesRead = read(GetReadHandle(), buffer, sizeof(buffer)); + if(bytesRead > 0) { buffer[BUFF_SIZE] = 0; // allways place a terminator // Remove coloring chars from the incomnig buffer @@ -358,7 +350,7 @@ } else { - if ( errCode == EINTR || errCode == EAGAIN ) { + if(errCode == EINTR || errCode == EAGAIN) { return true; } @@ -376,12 +368,13 @@ return bytes == (int)tmpbuf.length(); } -IProcess* UnixProcessImpl::Execute(wxEvtHandler* parent, const wxString& cmd, size_t flags, const wxString& workingDirectory, IProcessCallback *cb) +IProcess* UnixProcessImpl::Execute( + wxEvtHandler* parent, const wxString& cmd, size_t flags, const wxString& workingDirectory, IProcessCallback* cb) { wxUnusedVar(flags); make_argv(cmd); - if ( argc == 0 ) { + if(argc == 0) { return NULL; } @@ -393,14 +386,14 @@ openpty(&master, &slave, NULL, NULL, NULL); int rc = fork(); - if ( rc == 0 ) { + if(rc == 0) { login_tty(slave); close(master); // close the un-needed master end // at this point, slave is used as stdin/stdout/stderr // Child process if(workingDirectory.IsEmpty() == false) { - wxSetWorkingDirectory( workingDirectory ); + wxSetWorkingDirectory(workingDirectory); } // execute the process @@ -409,7 +402,7 @@ // if we got here, we failed... exit(0); - } else if ( rc < 0 ) { + } else if(rc < 0) { // Error // restore the working directory @@ -418,14 +411,12 @@ return NULL; } else { - + // Parent close(slave); freeargv(argv); argc = 0; - - - + // disable ECHO struct termios termio; tcgetattr(master, &termio); @@ -436,15 +427,15 @@ // restore the working directory wxSetWorkingDirectory(curdir); - UnixProcessImpl *proc = new UnixProcessImpl(parent); + UnixProcessImpl* proc = new UnixProcessImpl(parent); proc->m_callback = cb; - proc->SetReadHandle (master); + proc->SetReadHandle(master); proc->SetWriteHandler(master); - proc->SetPid( rc ); - proc->m_flags = flags; // Keep the creation flags - - if ( !(proc->m_flags & IProcessCreateSync) ) { - proc->StartReaderThread(); + proc->SetPid(rc); + proc->m_flags = flags; // Keep the creation flags + + if(!(proc->m_flags & IProcessCreateSync)) { + proc->StartReaderThread(); } return proc; } @@ -454,8 +445,8 @@ { // Launch the 'Reader' thread m_thr = new ProcessReaderThread(); - m_thr->SetProcess( this ); - m_thr->SetNotifyWindow( m_parent ); + m_thr->SetProcess(this); + m_thr->SetNotifyWindow(m_parent); m_thr->Start(); } @@ -476,15 +467,15 @@ int bytes = write(GetWriteHandle(), tmpbuf.mb_str(wxConvUTF8).data(), tmpbuf.Length()); return bytes == (int)tmpbuf.length(); } - -void UnixProcessImpl::Detach() + +void UnixProcessImpl::Detach() { - if ( m_thr ) { + if(m_thr) { // Stop the reader thread m_thr->Stop(); delete m_thr; } - m_thr = NULL; -} + m_thr = NULL; +} #endif //#if defined(__WXMAC )||defined(__WXGTK__) diff -Nru codelite-8.0.1+dfsg2/CodeLite/wx_ordered_map.h codelite-9.0+dfsg/CodeLite/wx_ordered_map.h --- codelite-8.0.1+dfsg2/CodeLite/wx_ordered_map.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/CodeLite/wx_ordered_map.h 2015-10-11 13:56:07.000000000 +0000 @@ -128,6 +128,11 @@ m_list.erase(iter->second); m_map.erase(iter); } + + /** + * @brief is empty? + */ + bool IsEmpty() const { return m_list.empty(); } // end() ConstIterator End() const { diff -Nru codelite-8.0.1+dfsg2/CodeLite/XmlLexer.cpp codelite-9.0+dfsg/CodeLite/XmlLexer.cpp --- codelite-8.0.1+dfsg2/CodeLite/XmlLexer.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/CodeLite/XmlLexer.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -368,8 +368,8 @@ *yy_cp = '\0'; \ yyg->yy_c_buf_p = yy_cp; -#define YY_NUM_RULES 20 -#define YY_END_OF_BUFFER 21 +#define YY_NUM_RULES 23 +#define YY_END_OF_BUFFER 24 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -377,17 +377,17 @@ flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[82] = +static yyconst flex_int16_t yy_accept[89] = { 0, - 0, 0, 0, 0, 21, 19, 18, 20, 19, 12, - 19, 19, 19, 19, 19, 19, 19, 0, 17, 0, - 12, 0, 0, 0, 0, 0, 16, 0, 0, 1, - 0, 2, 3, 6, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 14, 0, 0, 0, 15, 0, - 0, 0, 0, 8, 7, 0, 0, 0, 13, 0, - 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, - 10, 11, 0, 0, 0, 0, 0, 0, 4, 5, - 0 + 0, 0, 0, 0, 0, 0, 0, 0, 24, 16, + 1, 23, 16, 13, 16, 16, 16, 16, 18, 18, + 20, 20, 22, 22, 0, 15, 0, 13, 0, 0, + 0, 0, 0, 14, 0, 2, 0, 3, 4, 0, + 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 17, 19, 0, 0, 0, 0, + 8, 7, 0, 0, 0, 12, 0, 0, 0, 0, + 9, 0, 0, 0, 0, 0, 0, 10, 11, 0, + 0, 0, 0, 0, 0, 5, 6, 0 } ; static yyconst flex_int32_t yy_ec[256] = @@ -431,93 +431,103 @@ 4, 7 } ; -static yyconst flex_int16_t yy_base[90] = +static yyconst flex_int16_t yy_base[99] = { 0, - 0, 0, 0, 0, 135, 177, 177, 177, 37, 0, - 14, 36, 123, 116, 43, 115, 101, 43, 177, 38, - 0, 19, 89, 83, 81, 42, 177, 43, 105, 177, - 47, 177, 177, 177, 104, 55, 0, 80, 80, 98, - 96, 73, 50, 0, 177, 98, 84, 86, 177, 60, - 83, 86, 60, 177, 177, 58, 64, 106, 177, 77, - 73, 63, 0, 177, 79, 76, 49, 0, 62, 68, - 177, 177, 58, 57, 57, 61, 53, 36, 177, 177, - 177, 137, 144, 148, 155, 160, 165, 168, 170 + 0, 0, 40, 41, 42, 43, 44, 45, 146, 208, + 208, 208, 43, 0, 25, 45, 124, 55, 208, 110, + 208, 128, 208, 121, 50, 208, 38, 0, 30, 94, + 93, 88, 56, 208, 39, 208, 58, 208, 208, 111, + 110, 208, 70, 0, 88, 88, 109, 103, 80, 65, + 0, 105, 91, 91, 208, 208, 77, 100, 96, 69, + 208, 208, 64, 79, 123, 208, 83, 81, 69, 0, + 208, 87, 86, 81, 0, 74, 78, 208, 208, 69, + 69, 68, 69, 64, 32, 208, 208, 208, 154, 161, + 168, 175, 179, 186, 191, 196, 199, 201 + } ; -static yyconst flex_int16_t yy_def[90] = +static yyconst flex_int16_t yy_def[99] = { 0, - 81, 1, 82, 82, 81, 81, 81, 81, 83, 84, - 81, 85, 81, 81, 81, 81, 81, 83, 81, 86, - 84, 81, 81, 81, 81, 85, 81, 87, 81, 81, - 81, 81, 81, 81, 81, 83, 88, 81, 81, 81, - 81, 81, 85, 89, 81, 81, 81, 81, 81, 83, - 83, 81, 81, 81, 81, 81, 85, 85, 81, 81, - 81, 83, 51, 81, 81, 81, 85, 58, 81, 81, - 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, - 0, 81, 81, 81, 81, 81, 81, 81, 81 + 88, 1, 89, 89, 90, 90, 91, 91, 88, 88, + 88, 88, 92, 93, 88, 94, 88, 88, 88, 88, + 88, 88, 88, 88, 92, 88, 95, 93, 88, 88, + 88, 88, 94, 88, 96, 88, 88, 88, 88, 88, + 88, 88, 92, 97, 88, 88, 88, 88, 88, 94, + 98, 88, 88, 88, 88, 88, 92, 92, 88, 88, + 88, 88, 88, 94, 94, 88, 88, 88, 92, 58, + 88, 88, 88, 94, 65, 88, 88, 88, 88, 88, + 88, 88, 88, 88, 88, 88, 88, 0, 88, 88, + 88, 88, 88, 88, 88, 88, 88, 88 + } ; -static yyconst flex_int16_t yy_nxt[220] = +static yyconst flex_int16_t yy_nxt[251] = { 0, - 6, 7, 8, 7, 6, 9, 10, 11, 12, 13, - 14, 6, 6, 6, 15, 6, 16, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 6, 6, 17, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 19, 22, 27, 23, 24, 31, 19, 36, - 27, 25, 38, 32, 43, 39, 46, 27, 27, 33, - 19, 57, 80, 28, 20, 19, 50, 47, 19, 28, - 20, 62, 27, 48, 79, 67, 28, 28, 78, 37, - 77, 76, 20, 75, 44, 74, 73, 20, 19, 72, - 20, 28, 71, 70, 63, 63, 69, 66, 65, 64, - - 63, 63, 63, 63, 63, 61, 60, 59, 56, 55, - 20, 54, 63, 63, 27, 53, 52, 68, 68, 49, - 45, 42, 41, 68, 68, 68, 68, 68, 40, 35, - 34, 30, 29, 28, 81, 68, 68, 8, 8, 8, - 8, 8, 8, 8, 18, 81, 18, 18, 18, 18, - 18, 21, 21, 21, 21, 26, 81, 26, 26, 26, - 26, 26, 18, 81, 18, 81, 18, 26, 81, 26, - 81, 26, 51, 51, 58, 58, 5, 81, 81, 81, - 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, - 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, - - 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, - 81, 81, 81, 81, 81, 81, 81, 81, 81 + 10, 11, 12, 11, 10, 13, 14, 15, 16, 10, + 17, 10, 10, 10, 18, 10, 10, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 10, 10, 10, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 12, 12, 12, 12, 12, 12, 26, 43, + 50, 22, 22, 34, 29, 26, 30, 31, 87, 37, + 24, 24, 32, 45, 34, 38, 46, 52, 20, 20, + 27, 39, 35, 34, 26, 26, 64, 27, 53, 44, + 51, 57, 26, 35, 54, 86, 85, 34, 69, 34, + 74, 84, 35, 83, 82, 81, 27, 27, 80, 79, + + 78, 77, 76, 73, 27, 26, 35, 72, 35, 71, + 68, 70, 70, 67, 66, 63, 62, 70, 70, 70, + 70, 70, 61, 60, 59, 56, 55, 27, 49, 70, + 70, 34, 48, 47, 75, 75, 42, 41, 40, 36, + 75, 75, 75, 75, 75, 88, 88, 88, 88, 88, + 35, 88, 75, 75, 19, 19, 19, 19, 19, 19, + 19, 21, 21, 21, 21, 21, 21, 21, 23, 23, + 23, 23, 23, 23, 23, 25, 88, 25, 25, 25, + 25, 25, 28, 28, 28, 28, 33, 88, 33, 33, + 33, 33, 33, 25, 88, 25, 88, 25, 33, 88, + + 33, 88, 33, 58, 58, 65, 65, 9, 88, 88, + 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, + 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, + 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, + 88, 88, 88, 88, 88, 88, 88, 88, 88, 88 } ; -static yyconst flex_int16_t yy_chk[220] = +static yyconst flex_int16_t yy_chk[251] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 9, 11, 12, 11, 11, 15, 18, 20, - 26, 11, 22, 15, 28, 22, 31, 67, 43, 15, - 36, 43, 78, 12, 9, 50, 36, 31, 62, 26, - 18, 50, 57, 31, 77, 57, 67, 43, 76, 20, - 75, 74, 36, 73, 28, 70, 69, 50, 51, 66, - 62, 57, 65, 61, 51, 51, 60, 56, 53, 52, - - 51, 51, 51, 51, 51, 48, 47, 46, 42, 41, - 51, 40, 51, 51, 58, 39, 38, 58, 58, 35, - 29, 25, 24, 58, 58, 58, 58, 58, 23, 17, - 16, 14, 13, 58, 5, 58, 58, 82, 82, 82, - 82, 82, 82, 82, 83, 0, 83, 83, 83, 83, - 83, 84, 84, 84, 84, 85, 0, 85, 85, 85, - 85, 85, 86, 0, 86, 0, 86, 87, 0, 87, - 0, 87, 88, 88, 89, 89, 81, 81, 81, 81, - 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, - 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, - - 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, - 81, 81, 81, 81, 81, 81, 81, 81, 81 + 1, 1, 3, 4, 5, 6, 7, 8, 13, 27, + 35, 5, 6, 16, 15, 25, 15, 15, 85, 18, + 7, 8, 15, 29, 33, 18, 29, 37, 3, 4, + 13, 18, 16, 50, 69, 43, 50, 25, 37, 27, + 35, 43, 57, 33, 37, 84, 83, 64, 57, 74, + 64, 82, 50, 81, 80, 77, 69, 43, 76, 73, + + 72, 68, 67, 63, 57, 58, 64, 60, 74, 59, + 54, 58, 58, 53, 52, 49, 48, 58, 58, 58, + 58, 58, 47, 46, 45, 41, 40, 58, 32, 58, + 58, 65, 31, 30, 65, 65, 24, 22, 20, 17, + 65, 65, 65, 65, 65, 9, 0, 0, 0, 0, + 65, 0, 65, 65, 89, 89, 89, 89, 89, 89, + 89, 90, 90, 90, 90, 90, 90, 90, 91, 91, + 91, 91, 91, 91, 91, 92, 0, 92, 92, 92, + 92, 92, 93, 93, 93, 93, 94, 0, 94, 94, + 94, 94, 94, 95, 0, 95, 0, 95, 96, 0, + + 96, 0, 96, 97, 97, 98, 98, 88, 88, 88, + 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, + 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, + 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, + 88, 88, 88, 88, 88, 88, 88, 88, 88, 88 } ; /* Table of booleans, true if rule could match eol. */ -static yyconst flex_int32_t yy_rule_can_match_eol[21] = +static yyconst flex_int32_t yy_rule_can_match_eol[24] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, }; + 0, 0, 0, 0, }; /* The intent behind this definition is that it'll catch * any uses of REJECT which flex missed. @@ -563,10 +573,14 @@ /* regex and modes */ /* options */ -#line 567 "XmlLexer.cpp" + + +#line 579 "XmlLexer.cpp" #define INITIAL 0 #define CDATA 1 +#define COMMENT 2 +#define NOXML 3 #ifndef YY_NO_UNISTD_H /* Special case for "unistd.h", since it is non-ANSI. We include it way @@ -790,9 +804,9 @@ register int yy_act; struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; -#line 70 "XMLLexer.l" +#line 72 "XMLLexer.l" -#line 796 "XmlLexer.cpp" +#line 810 "XmlLexer.cpp" if ( !yyg->yy_init ) { @@ -845,13 +859,13 @@ while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 82 ) + if ( yy_current_state >= 89 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; ++yy_cp; } - while ( yy_current_state != 81 ); + while ( yy_current_state != 88 ); yy_cp = yyg->yy_last_accepting_cpos; yy_current_state = yyg->yy_last_accepting_state; @@ -885,110 +899,136 @@ case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(CDATA): -#line 71 "XMLLexer.l" +case YY_STATE_EOF(COMMENT): +case YY_STATE_EOF(NOXML): +#line 73 "XMLLexer.l" {yyterminate();} YY_BREAK case 1: YY_RULE_SETUP -#line 72 "XMLLexer.l" -{return kXML_T_CLOSE_TAG_SUFFIX;} +#line 74 "XMLLexer.l" +{} YY_BREAK case 2: YY_RULE_SETUP -#line 73 "XMLLexer.l" -{return kXML_T_CLOSE_TAG_PREFIX;} +#line 75 "XMLLexer.l" +{return kXML_T_CLOSE_TAG_SUFFIX;} YY_BREAK case 3: YY_RULE_SETUP -#line 74 "XMLLexer.l" -{return kXML_T_XML_OPEN_TAG;} +#line 76 "XMLLexer.l" +{return kXML_T_CLOSE_TAG_PREFIX;} YY_BREAK case 4: YY_RULE_SETUP -#line 75 "XMLLexer.l" -{return kXML_T_HTML_DOCTYPE;} +#line 77 "XMLLexer.l" +{ BEGIN NOXML; return kXML_T_XML_OPEN_TAG;} YY_BREAK case 5: YY_RULE_SETUP -#line 76 "XMLLexer.l" -{ return kXML_T_CDATA_START; } +#line 78 "XMLLexer.l" +{return kXML_T_HTML_DOCTYPE;} YY_BREAK case 6: YY_RULE_SETUP -#line 77 "XMLLexer.l" -{return kXML_T_XML_CLOSE_TAG;} +#line 79 "XMLLexer.l" +{ BEGIN CDATA; return kXML_T_CDATA_START; } YY_BREAK case 7: YY_RULE_SETUP -#line 78 "XMLLexer.l" +#line 80 "XMLLexer.l" {return kXML_T_ENTITY_LT;} YY_BREAK case 8: YY_RULE_SETUP -#line 79 "XMLLexer.l" +#line 81 "XMLLexer.l" {return kXML_T_ENTITY_GT;} YY_BREAK case 9: YY_RULE_SETUP -#line 80 "XMLLexer.l" +#line 82 "XMLLexer.l" {return kXML_T_ENTITY_AMP;} YY_BREAK case 10: YY_RULE_SETUP -#line 81 "XMLLexer.l" +#line 83 "XMLLexer.l" {return kXML_T_ENTITY_APOS;} YY_BREAK case 11: YY_RULE_SETUP -#line 82 "XMLLexer.l" +#line 84 "XMLLexer.l" {return kXML_T_ENTITY_QUOATATION_MARK;} YY_BREAK case 12: YY_RULE_SETUP -#line 83 "XMLLexer.l" -{return kXML_T_IDENTIFIER;} +#line 85 "XMLLexer.l" +{ BEGIN COMMENT; return kXML_T_COMMENT_START;} YY_BREAK case 13: YY_RULE_SETUP -#line 84 "XMLLexer.l" -{ return kXML_T_COMMENT_START;} +#line 86 "XMLLexer.l" +{return kXML_T_IDENTIFIER;} YY_BREAK case 14: YY_RULE_SETUP -#line 85 "XMLLexer.l" -{ return kXML_T_COMMENT_END;} +#line 87 "XMLLexer.l" +{ return kXML_T_STRING;} YY_BREAK case 15: YY_RULE_SETUP -#line 86 "XMLLexer.l" -{ return kXML_T_CDATA_END; } +#line 88 "XMLLexer.l" +{ return kXML_T_STRING;} YY_BREAK case 16: YY_RULE_SETUP -#line 87 "XMLLexer.l" -{ return kXML_T_STRING;} +#line 89 "XMLLexer.l" +{ return yytext[0];} YY_BREAK case 17: YY_RULE_SETUP -#line 88 "XMLLexer.l" -{ return kXML_T_STRING;} +#line 90 "XMLLexer.l" +{ + BEGIN INITIAL; + return kXML_T_CDATA_END; +} YY_BREAK case 18: YY_RULE_SETUP -#line 89 "XMLLexer.l" -{} +#line 94 "XMLLexer.l" +{ return yytext[0];} YY_BREAK case 19: YY_RULE_SETUP -#line 90 "XMLLexer.l" -{ return yytext[0];} +#line 95 "XMLLexer.l" +{ + BEGIN INITIAL; + return kXML_T_COMMENT_END; +} YY_BREAK case 20: YY_RULE_SETUP -#line 92 "XMLLexer.l" +#line 99 "XMLLexer.l" +{ return yytext[0];} + YY_BREAK +case 21: +YY_RULE_SETUP +#line 100 "XMLLexer.l" +{ + BEGIN INITIAL; + return kXML_T_XML_CLOSE_TAG; +} + YY_BREAK +case 22: +YY_RULE_SETUP +#line 104 "XMLLexer.l" +{ return yytext[0];} + YY_BREAK +case 23: +YY_RULE_SETUP +#line 105 "XMLLexer.l" ECHO; YY_BREAK -#line 992 "XmlLexer.cpp" +#line 1032 "XmlLexer.cpp" case YY_END_OF_BUFFER: { @@ -1281,7 +1321,7 @@ while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 82 ) + if ( yy_current_state >= 89 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; @@ -1310,11 +1350,11 @@ while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 82 ) + if ( yy_current_state >= 89 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - yy_is_jam = (yy_current_state == 81); + yy_is_jam = (yy_current_state == 88); return yy_is_jam ? 0 : yy_current_state; } @@ -2153,7 +2193,7 @@ #define YYTABLES_NAME "yytables" -#line 92 "XMLLexer.l" +#line 105 "XMLLexer.l" diff -Nru codelite-8.0.1+dfsg2/CodeLite/XMLLexer.l codelite-9.0+dfsg/CodeLite/XMLLexer.l --- codelite-8.0.1+dfsg2/CodeLite/XMLLexer.l 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/CodeLite/XMLLexer.l 2015-10-11 13:56:07.000000000 +0000 @@ -66,29 +66,42 @@ horizontal_white [ ]|{h_tab} %x CDATA +%x COMMENT +%x NOXML %% <> {yyterminate();} +{horizontal_white} {} "/>" {return kXML_T_CLOSE_TAG_SUFFIX;} """"""?>" {return kXML_T_XML_CLOSE_TAG;} +""<" {return kXML_T_ENTITY_LT;} ">" {return kXML_T_ENTITY_GT;} "&" {return kXML_T_ENTITY_AMP;} "'" {return kXML_T_ENTITY_APOS;} """ {return kXML_T_ENTITY_QUOATATION_MARK;} +"" { return kXML_T_COMMENT_END;} -"]]>" { return kXML_T_CDATA_END; } [']{c_char}*['] { return kXML_T_STRING;} ["]{s_char}*["] { return kXML_T_STRING;} -{horizontal_white} {} . { return yytext[0];} - +"]]>" { + BEGIN INITIAL; + return kXML_T_CDATA_END; +} +. { return yytext[0];} +"-->" { + BEGIN INITIAL; + return kXML_T_COMMENT_END; +} +. { return yytext[0];} +"?>" { + BEGIN INITIAL; + return kXML_T_XML_CLOSE_TAG; +} +. { return yytext[0];} %% //=============------------------------------- diff -Nru codelite-8.0.1+dfsg2/CodeLiteDiff/CMakeLists.txt codelite-9.0+dfsg/CodeLiteDiff/CMakeLists.txt --- codelite-8.0.1+dfsg2/CodeLiteDiff/CMakeLists.txt 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/CodeLiteDiff/CMakeLists.txt 2015-10-11 13:56:07.000000000 +0000 @@ -34,11 +34,6 @@ add_definitions(-Winvalid-pch) endif (USE_PCH) -# Add RPATH -if (UNIX) -set (LINKER_OPTIONS -Wl,-rpath,"${PLUGINS_DIR}") -endif (UNIX) - if (UNIX AND NOT APPLE) set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC" ) set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC" ) @@ -61,8 +56,6 @@ ${wxWidgets_LIBRARIES} libcodelite plugin - wxsqlite3 - sqlite3lib ) # Installation destination CL_INSTALL_PLUGIN(${PLUGIN_NAME}) diff -Nru codelite-8.0.1+dfsg2/CodeLiteDiff/codelitediff.cpp codelite-9.0+dfsg/CodeLiteDiff/codelitediff.cpp --- codelite-8.0.1+dfsg2/CodeLiteDiff/codelitediff.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/CodeLiteDiff/codelitediff.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -44,7 +44,7 @@ PluginInfo info; info.SetAuthor(wxT("Eran Ifrah")); info.SetName(wxT("Diff Plugin")); - info.SetDescription(wxT("CodeLite Diff Plugin")); + info.SetDescription(_("CodeLite Diff Plugin")); info.SetVersion(wxT("v1.0")); return info; } @@ -57,7 +57,7 @@ CodeLiteDiff::CodeLiteDiff(IManager *manager) : IPlugin(manager) { - m_longName = wxT("CodeLite Diff Plugin"); + m_longName = _("CodeLite Diff Plugin"); m_shortName = wxT("Diff Plugin"); } diff -Nru codelite-8.0.1+dfsg2/codelitegcc/CMakeLists.txt codelite-9.0+dfsg/codelitegcc/CMakeLists.txt --- codelite-8.0.1+dfsg2/codelitegcc/CMakeLists.txt 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/codelitegcc/CMakeLists.txt 2015-10-11 13:56:07.000000000 +0000 @@ -5,11 +5,6 @@ # visual studio, and in our makefiles. project(codelite-cc) -# Add RPATH -if (UNIX) -set (LINKER_OPTIONS -Wl,-rpath,"${PLUGINS_DIR}") -endif (UNIX) - FILE(GLOB SRCS "*.cpp") # Define the output diff -Nru codelite-8.0.1+dfsg2/codelite-icons/manifest.ini codelite-9.0+dfsg/codelite-icons/manifest.ini --- codelite-8.0.1+dfsg2/codelite-icons/manifest.ini 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/codelite-icons/manifest.ini 2015-10-11 13:56:07.000000000 +0000 @@ -85,6 +85,7 @@ output-pane.16.clear=clear.png output-pane.16.reload=reload.png output-pane.16.ToolPin=ToolPin.png +output-pane.16.history=history.png ;; Mimetype mime.16.asm=asm.png Binary files /tmp/0wlVVhsoFK/codelite-8.0.1+dfsg2/codelite-icons/output-pane/16/history.png and /tmp/qKeBoHmecl/codelite-9.0+dfsg/codelite-icons/output-pane/16/history.png differ diff -Nru codelite-8.0.1+dfsg2/codelite-icons-dark/manifest.ini codelite-9.0+dfsg/codelite-icons-dark/manifest.ini --- codelite-8.0.1+dfsg2/codelite-icons-dark/manifest.ini 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/codelite-icons-dark/manifest.ini 2015-10-11 13:56:07.000000000 +0000 @@ -85,6 +85,7 @@ output-pane.16.clear=clear.png output-pane.16.reload=reload.png output-pane.16.ToolPin=ToolPin.png +output-pane.16.history=history.png ;; Mimetype mime.16.cmake=document-code.png Binary files /tmp/0wlVVhsoFK/codelite-8.0.1+dfsg2/codelite-icons-dark/output-pane/16/history.png and /tmp/qKeBoHmecl/codelite-9.0+dfsg/codelite-icons-dark/output-pane/16/history.png differ diff -Nru codelite-8.0.1+dfsg2/codelite-icons-fresh-farm/manifest.ini codelite-9.0+dfsg/codelite-icons-fresh-farm/manifest.ini --- codelite-8.0.1+dfsg2/codelite-icons-fresh-farm/manifest.ini 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/codelite-icons-fresh-farm/manifest.ini 2015-10-11 13:56:07.000000000 +0000 @@ -85,6 +85,7 @@ output-pane.16.clear=clear.png output-pane.16.reload=reload.png output-pane.16.ToolPin=ToolPin.png +output-pane.16.history=history.png ;; Mimetype mime.16.cmake=cmake-16.png Binary files /tmp/0wlVVhsoFK/codelite-8.0.1+dfsg2/codelite-icons-fresh-farm/output-pane/16/history.png and /tmp/qKeBoHmecl/codelite-9.0+dfsg/codelite-icons-fresh-farm/output-pane/16/history.png differ diff -Nru codelite-8.0.1+dfsg2/codelite_make/cl_make_generator_app.cpp codelite-9.0+dfsg/codelite_make/cl_make_generator_app.cpp --- codelite-8.0.1+dfsg2/codelite_make/cl_make_generator_app.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/codelite_make/cl_make_generator_app.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -83,28 +83,28 @@ Info(wxString() << "-- Generating makefile for workspace file " << fnWorkspace.GetFullPath()); wxString errmsg; - if(!WorkspaceST::Get()->OpenWorkspace(fnWorkspace.GetFullPath(), errmsg)) { + if(!clCxxWorkspaceST::Get()->OpenWorkspace(fnWorkspace.GetFullPath(), errmsg)) { Error(wxString() << "Error while loading workspace: " << fnWorkspace.GetFullPath() << ". " << errmsg); return false; } if(m_project.IsEmpty()) { - m_project = WorkspaceST::Get()->GetActiveProjectName(); + m_project = clCxxWorkspaceST::Get()->GetActiveProjectName(); } // Set the active project to the configuration set the by the user - WorkspaceST::Get()->GetBuildMatrix()->SetSelectedConfigurationName(m_configuration); + clCxxWorkspaceST::Get()->GetBuildMatrix()->SetSelectedConfigurationName(m_configuration); // Which makefile should we create? BuilderGnuMake builder; - ProjectPtr project = WorkspaceST::Get()->FindProjectByName(m_project, errmsg); + ProjectPtr project = clCxxWorkspaceST::Get()->FindProjectByName(m_project, errmsg); if(!project) { Error(wxString() << "Could not find project " << m_project << ". " << errmsg); return false; } // Load the build configuration - BuildConfigPtr bldConf = WorkspaceST::Get()->GetProjBuildConf(m_project, m_configuration); + BuildConfigPtr bldConf = clCxxWorkspaceST::Get()->GetProjBuildConf(m_project, m_configuration); if(!bldConf) { Error(wxString() << "Could not find configuration " << m_configuration << " for project " << m_project); return false; diff -Nru codelite-8.0.1+dfsg2/codelite_make/CMakeLists.txt codelite-9.0+dfsg/codelite_make/CMakeLists.txt --- codelite-8.0.1+dfsg2/codelite_make/CMakeLists.txt 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/codelite_make/CMakeLists.txt 2015-10-11 13:56:07.000000000 +0000 @@ -14,11 +14,6 @@ # Include paths #include_directories("${CL_SRC_ROOT}/Plugin" "${CL_SRC_ROOT}/sdk/wxsqlite3/include" "${CL_SRC_ROOT}/CodeLite" "${CL_SRC_ROOT}/PCH" "${CL_SRC_ROOT}/Interfaces") -# Add RPATH -if ( UNIX ) -set (LINKER_OPTIONS -Wl,-rpath,"${PLUGINS_DIR}") -endif ( UNIX ) - # we need wxWidgets flags to be set only for the c++ files, so we do it like this # by setting the CMAKE_CXX_FLAGS if ( NOT MINGW ) @@ -42,6 +37,6 @@ endif ( UNIX ) target_link_libraries(codelite-make ${LINKER_OPTIONS} ${wxWidgets_LIBRARIES} -L"${CL_LIBPATH}" - wxsqlite3 sqlite3lib libcodelite plugin ${UTIL_LIB} ) + libcodelite plugin ${UTIL_LIB} ) CL_INSTALL_EXECUTABLE(codelite-make) diff -Nru codelite-8.0.1+dfsg2/codelitephp/CMakeLists.txt codelite-9.0+dfsg/codelitephp/CMakeLists.txt --- codelite-8.0.1+dfsg2/codelitephp/CMakeLists.txt 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/codelitephp/CMakeLists.txt 2015-10-11 13:56:07.000000000 +0000 @@ -45,11 +45,6 @@ add_definitions(-DWXUSINGDLL_CL) add_definitions(-DWXUSINGDLL_SDK) -if (UNIX) -# Add RPATH -set (LINKER_OPTIONS -Wl,-rpath,"${PLUGINS_DIR}") -endif() - if(CMAKE_BUILD_TYPE MATCHES Debug OR CMAKE_BUILD_TYPE MATCHES DebugFull) ## Debug build of codelite set( CL_LIB_DIR lib) @@ -94,8 +89,6 @@ PHPParser libcodelite plugin - wxsqlite3 - sqlite3lib ) # Installation destination CL_INSTALL_PLUGIN(${PLUGIN_NAME}) @@ -106,8 +99,6 @@ -L"${CMAKE_LIBRARY_OUTPUT_DIRECTORY}" -L"${CL_LIBPATH}" PHPParser - wxsqlite3 - sqlite3lib libcodelite plugin ${ADDITIONAL_LIBRARIES} diff -Nru codelite-8.0.1+dfsg2/codelitephp/PHPParser/php_code_completion.cpp codelite-9.0+dfsg/codelitephp/PHPParser/php_code_completion.cpp --- codelite-8.0.1+dfsg2/codelitephp/PHPParser/php_code_completion.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/codelitephp/PHPParser/php_code_completion.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -26,6 +26,8 @@ #include "PHPEntityKeyword.h" #include "wxCodeCompletionBoxManager.h" #include "globals.h" +#include "clSelectSymbolDialog.h" +#include "PHPEntityFunctionAlias.h" /////////////////////////////////////////////////////////////////// @@ -228,8 +230,14 @@ } t->SetReturnValue(""); - } else if(entry->Is(kEntityTypeFunction)) { - PHPEntityFunction* func = entry->Cast(); + } else if(entry->Is(kEntityTypeFunction) || entry->Is(kEntityTypeFunctionAlias)) { + PHPEntityFunction* func = NULL; + if(entry->Is(kEntityTypeFunctionAlias)) { + func = entry->Cast()->GetFunc()->Cast(); + } else { + func = entry->Cast(); + } + if(func->HasFlag(kFunc_Private)) { t->SetAccess(wxT("private")); } else if(func->HasFlag(kFunc_Protected)) { @@ -327,21 +335,53 @@ } } +struct PHPFindSymbol_ClientData : public wxClientData { + PHPEntityBase::Ptr_t m_ptr; + + PHPFindSymbol_ClientData(PHPEntityBase::Ptr_t ptr) { m_ptr = ptr; } + virtual ~PHPFindSymbol_ClientData() {} +}; + void PHPCodeCompletion::OnFindSymbol(clCodeCompletionEvent& e) { + e.Skip(); if(PHPWorkspace::Get()->IsOpen()) { if(!CanCodeComplete(e)) return; - + e.Skip(false); IEditor* editor = dynamic_cast(e.GetEditor()); if(editor) { - PHPEntityBase::Ptr_t resolved = GetPHPEntryUnderTheAtPos(editor, editor->GetCurrentPosition()); - if(resolved) { - m_manager->OpenFile(resolved->GetFilename().GetFullPath(), "", resolved->GetLine()); + wxString word = editor->GetWordAtCaret(); + if(word.IsEmpty()) return; + PHPEntityBase::List_t symbols = m_lookupTable.FindSymbol(word); + if(symbols.size() == 1) { + PHPEntityBase::Ptr_t match = *symbols.begin(); + DoOpenEditorForEntry(match); + + } else { + + // Convert the matches to clSelectSymbolDialogEntry::List_t + clSelectSymbolDialogEntry::List_t entries; + std::for_each(symbols.begin(), symbols.end(), [&](PHPEntityBase::Ptr_t entry) { + TagEntryPtr tag = DoPHPEntityToTagEntry(entry); + wxBitmap bmp = wxCodeCompletionBox::GetBitmap(tag); + + clSelectSymbolDialogEntry m; + m.bmp = bmp; + m.name = entry->GetFullName(); + m.clientData = new PHPFindSymbol_ClientData(entry); + m.help = tag->GetKind(); + entries.push_back(m); + }); + + // Show selection dialog + clSelectSymbolDialog dlg(EventNotifier::Get()->TopFrame(), entries); + if(dlg.ShowModal() != wxID_OK) return; + PHPFindSymbol_ClientData* cd = dynamic_cast(dlg.GetSelection()); + if(cd) { + DoOpenEditorForEntry(cd->m_ptr); + } } } - - } else { - e.Skip(); } } @@ -388,6 +428,10 @@ if(IsPHPFile(editor)) { PHPEntityBase::Ptr_t resolved = GetPHPEntryUnderTheAtPos(editor, editor->GetCurrentPosition()); if(resolved) { + if(resolved->Is(kEntityTypeFunctionAlias)) { + // use the internal function + resolved = resolved->Cast()->GetFunc(); + } loc = new PHPLocation; loc->filename = resolved->GetFilename().GetFullPath(); loc->linenumber = resolved->GetLine(); @@ -440,9 +484,9 @@ void PHPCodeCompletion::OnFileSaved(clCommandEvent& event) { event.Skip(); - IEditor *editor = clGetManager()->GetActiveEditor(); + IEditor* editor = clGetManager()->GetActiveEditor(); CHECK_PTR_RET(editor); - + // check if the saved file is a PHP file // In case it is, then re-parse the file and store the results if(::IsPHPFile(editor)) { @@ -527,6 +571,10 @@ if(resolved && resolved->Is(kEntityTypeFunction)) { // for a function, we need to load its children (function arguments) resolved->SetChildren(m_lookupTable.LoadFunctionArguments(resolved->GetDbId())); + } else if(resolved && resolved->Is(kEntityTypeFunctionAlias)) { + // for a function alias, we need to load the actual functions' children (function arguments) + PHPEntityBase::Ptr_t realFunc = resolved->Cast()->GetFunc(); + realFunc->SetChildren(m_lookupTable.LoadFunctionArguments(realFunc->GetDbId())); } } return resolved; @@ -612,22 +660,21 @@ CHECK_PTR_RET(definitionLocation); // Open the file (make sure we use the 'OpenFile' so we will get a browsing record) - if(m_manager->OpenFile(definitionLocation->filename, wxEmptyString, definitionLocation->linenumber)) { - // Select the word in the editor (its a new one) - IEditor* activeEditor = m_manager->GetActiveEditor(); - if(activeEditor) { - int selectFromPos = activeEditor->GetCtrl()->PositionFromLine(definitionLocation->linenumber); - CallAfter(&PHPCodeCompletion::DoSelectInEditor, definitionLocation->what, selectFromPos); - } + IEditor* activeEditor = + m_manager->OpenFile(definitionLocation->filename, wxEmptyString, definitionLocation->linenumber); + if(activeEditor) { + int selectFromPos = activeEditor->GetCtrl()->PositionFromLine(definitionLocation->linenumber); + DoSelectInEditor(activeEditor, definitionLocation->what, selectFromPos); } } -void PHPCodeCompletion::DoSelectInEditor(const wxString& what, int from) +void PHPCodeCompletion::DoSelectInEditor(IEditor* editor, const wxString& what, int from) { - IEditor* activeEditor = m_manager->GetActiveEditor(); - if(activeEditor) { - activeEditor->GetCtrl()->ClearSelections(); - activeEditor->FindAndSelect(what, what, from, NULL); + if(editor) { + editor->GetCtrl()->ClearSelections(); + if(!editor->FindAndSelect(what, what, from, NULL)) { + editor->SetCaretAt(from); + } } } @@ -812,3 +859,14 @@ } } } + +void PHPCodeCompletion::DoOpenEditorForEntry(PHPEntityBase::Ptr_t entry) +{ + // Open the file (make sure we use the 'OpenFile' so we will get a browsing record) + IEditor* editor = m_manager->OpenFile(entry->GetFilename().GetFullPath(), wxEmptyString, entry->GetLine()); + if(editor) { + // Select the word in the editor (its a new one) + int selectFromPos = editor->GetCtrl()->PositionFromLine(entry->GetLine()); + DoSelectInEditor(editor, entry->GetShortName(), selectFromPos); + } +} diff -Nru codelite-8.0.1+dfsg2/codelitephp/PHPParser/php_code_completion.h codelite-9.0+dfsg/codelitephp/PHPParser/php_code_completion.h --- codelite-8.0.1+dfsg2/codelitephp/PHPParser/php_code_completion.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/codelitephp/PHPParser/php_code_completion.h 2015-10-11 13:56:07.000000000 +0000 @@ -13,14 +13,14 @@ #include "php_event.h" #include "PHPExpression.h" -struct PHPLocation { +struct PHPLocation +{ wxString what; // Token name wxString filename; // file name (absolute path) int linenumber; // line number within filename typedef SmartPtr Ptr_t; }; - class IManager; class ResourceItem; class PHPCodeCompletion : public wxEvtHandler @@ -56,7 +56,7 @@ TagEntryPtr DoPHPEntityToTagEntry(PHPEntityBase::Ptr_t entry); PHPEntityBase::Ptr_t DoGetPHPEntryUnderTheAtPos(IEditor* editor, int pos, bool forFunctionCalltip); PHPEntityBase::List_t PhpKeywords(const wxString& prefix) const; - + private: PHPCodeCompletion(); virtual ~PHPCodeCompletion(); @@ -72,10 +72,12 @@ void OnInsertDoxyBlock(clCodeCompletionEvent& e); void OnDismissTooltip(wxCommandEvent& e); void OnRetagWorkspace(wxCommandEvent& event); - + // Workspace events void OnFileSaved(clCommandEvent& event); - void DoSelectInEditor(const wxString &what, int from); + void DoSelectInEditor(IEditor* editor, const wxString& what, int from); + + void DoOpenEditorForEntry(PHPEntityBase::Ptr_t entry); public: /** @@ -84,7 +86,7 @@ * @param pos */ void GotoDefinition(IEditor* editor, int pos); - + void SetManager(IManager* manager) { this->m_manager = manager; } /** * @brief return a PHPLocation::Ptr_t for the declaration of the @@ -97,25 +99,25 @@ * @brief return the PHPEntity under the caret */ PHPEntityBase::Ptr_t GetPHPEntryUnderTheAtPos(IEditor* editor, int pos); - + /** * @brief open the symbols database for the given workspace file. * Close any opened database */ void Open(const wxFileName& workspaceFile); - + /** * @brief close the lookup database */ void Close(); - + /** * @brief called by the PHP symbols cache job. - * This is to optimize the searching the database (loading the symbols into the + * This is to optimize the searching the database (loading the symbols into the * memory forces a kernel caching) */ void OnSymbolsCached(); - + /** * @brief same as the above function, but the caching went bad... */ @@ -124,15 +126,15 @@ * @brief expand 'require_once' line (or any require) by replacing __file__ etc with the proper * values and appending everything */ - wxString ExpandRequire(const wxFileName& curfile, const wxString &require); - + wxString ExpandRequire(const wxFileName& curfile, const wxString& require); + /** * @brief return the best location for inserting generated code inside a class name * @param filecontent * @return wxNOT_FOUND when could not determine the location */ - int GetLocationForSettersGetters(const wxString& filecontent, const wxString &classname); - + int GetLocationForSettersGetters(const wxString& filecontent, const wxString& classname); + /** * @brief list members of a class defined in an editor at the current position * This only returns member variables (i.e. no constants, nor static members) diff -Nru codelite-8.0.1+dfsg2/codelitephp/PHPParser/php_configuration_data.cpp codelite-9.0+dfsg/codelitephp/PHPParser/php_configuration_data.cpp --- codelite-8.0.1+dfsg2/codelitephp/PHPParser/php_configuration_data.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/codelitephp/PHPParser/php_configuration_data.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -13,7 +13,7 @@ , m_flags(kRunLintOnFileSave) , m_xdebugIdeKey("codeliteide") , m_xdebugHost("127.0.0.1") - , m_findInFilesMask("*.php;*.inc;*.phtml;*.js;*.html;*.css;*.scss;*.json;*.xml;*.ini;*.md;*.txt;*.text") + , m_findInFilesMask("*.php;*.inc;*.phtml;*.js;*.html;*.css;*.scss;*.json;*.xml;*.ini;*.md;*.txt;*.text;.htaccess") , m_workspaceType(0) , m_settersGettersFlags(kSG_None) { diff -Nru codelite-8.0.1+dfsg2/codelitephp/PHPParser/phpexecutor.cpp codelite-9.0+dfsg/codelitephp/PHPParser/phpexecutor.cpp --- codelite-8.0.1+dfsg2/codelitephp/PHPParser/phpexecutor.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/codelitephp/PHPParser/phpexecutor.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -158,7 +158,7 @@ if(proj) { const PHPProjectSettingsData& data = proj->GetSettings(); - args = ::wxStringTokenize(data.GetArgs(), wxT("\r"), wxTOKEN_STRTOK); + args = ::wxStringTokenize(data.GetArgs(), wxT("\n\r"), wxTOKEN_STRTOK); includePath = data.GetIncludePathAsArray(); php = data.GetPhpExe(); index = script; diff -Nru codelite-8.0.1+dfsg2/codelitephp/PHPParser/php_project.cpp codelite-9.0+dfsg/codelitephp/PHPParser/php_project.cpp --- codelite-8.0.1+dfsg2/codelitephp/PHPParser/php_project.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/codelitephp/PHPParser/php_project.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -41,6 +41,21 @@ return m_files; } +void PHPProject::GetFilesArray(wxArrayString& files) const +{ + if(!m_files.IsEmpty()) { + files.insert(files.end(), m_files.begin(), m_files.end()); + return; + } + + FilesCollector traverser(m_importFileSpec, m_excludeFolders, NULL); + wxDir dir(GetFilename().GetPath()); + dir.Traverse(traverser); + wxArrayString& collectedFiles = traverser.GetFilesAndFolders(); + files.insert(files.end(), collectedFiles.begin(), collectedFiles.end()); + files.Sort(); +} + void PHPProject::Create(const wxFileName& filename, const wxString& name) { m_filename = filename; @@ -114,59 +129,58 @@ } } - void PHPProject::SynchWithFileSystem() { m_files.Clear(); // Call GetFiles so the m_files will get populated again - GetFiles(); + GetFiles(NULL); } - -void PHPProject::FilesDeleted(const wxArrayString& files, bool notify) + +void PHPProject::FilesDeleted(const wxArrayString& files, bool notify) { if(files.IsEmpty()) return; // Normalize the folder name by using wxFileName - for(size_t i=0; iAddPendingEvent(event); - } -} - -bool PHPProject::HasFile(const wxFileName& filename) const -{ - return filename.GetFullPath().StartsWith(GetFilename().GetPath()); -} - -void PHPProject::FileAdded(const wxString& filename, bool notify) + } +} + +bool PHPProject::HasFile(const wxFileName& filename) const +{ + return filename.GetFullPath().StartsWith(GetFilename().GetPath()); +} + +void PHPProject::FileAdded(const wxString& filename, bool notify) { if(m_files.Index(filename) == wxNOT_FOUND) { m_files.Add(filename); - m_files.Sort(); + m_files.Sort(); } - + if(notify) { clCommandEvent event(wxEVT_PROJ_FILE_ADDED); wxArrayString files; files.Add(filename); event.SetStrings(files); EventNotifier::Get()->AddPendingEvent(event); - } -} - -void PHPProject::FolderAdded(const wxString& folderpath) + } +} + +void PHPProject::FolderAdded(const wxString& folderpath) { wxFileName fakeFile(folderpath, FOLDER_MARKER); if(m_files.Index(fakeFile.GetFullPath()) == wxNOT_FOUND) { m_files.Add(fakeFile.GetFullPath()); m_files.Sort(); } -} +} diff -Nru codelite-8.0.1+dfsg2/codelitephp/PHPParser/php_project.h codelite-9.0+dfsg/codelitephp/PHPParser/php_project.h --- codelite-8.0.1+dfsg2/codelitephp/PHPParser/php_project.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/codelitephp/PHPParser/php_project.h 2015-10-11 13:56:07.000000000 +0000 @@ -44,8 +44,9 @@ public: PHPProject() : m_isActive(false) - , m_importFileSpec("*.php;*.html;*.phtml;*.inc;*.css;*.js;.htaccess") - , m_excludeFolders(".git;.svn;.codelite") + , m_importFileSpec( + "*.php;*.inc;*.phtml;*.js;*.html;*.css;*.scss;*.json;*.xml;*.ini;*.md;*.txt;*.text;.htaccess") + , m_excludeFolders(".git;.svn;.codelite;.clang") { } ~PHPProject() {} @@ -72,8 +73,13 @@ /** * @brief return a list of all project files (fullpath) */ - wxArrayString& GetFiles(wxProgressDialog* progress = NULL); - + wxArrayString& GetFiles(wxProgressDialog* progress); + + /** + * @brief return a list of all project files (fullpath) + */ + void GetFilesArray(wxArrayString& files) const; + /** * @brief check if filename is part of this project * @param filename diff -Nru codelite-8.0.1+dfsg2/codelitephp/PHPParser/php_strings.h codelite-9.0+dfsg/codelitephp/PHPParser/php_strings.h --- codelite-8.0.1+dfsg2/codelitephp/PHPParser/php_strings.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/codelitephp/PHPParser/php_strings.h 2015-10-11 13:56:07.000000000 +0000 @@ -11,6 +11,7 @@ const wxString PHP_WORKSPACE_EXT = wxT("workspace"); const wxString PHP_WORKSPACE_VIEW_TITLE = wxT("PHP"); +const wxString PHP_WORKSPACE_VIEW_LABEL = _("PHP"); }; diff -Nru codelite-8.0.1+dfsg2/codelitephp/PHPParser/php_utils.cpp codelite-9.0+dfsg/codelitephp/PHPParser/php_utils.cpp --- codelite-8.0.1+dfsg2/codelitephp/PHPParser/php_utils.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/codelitephp/PHPParser/php_utils.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -13,6 +13,7 @@ #include "json_node.h" #include "file_logger.h" #include "fileutils.h" +#include "PHPSourceFile.h" bool IsPHPCommentOrString(int styleAtPos) { @@ -38,9 +39,9 @@ if(!editor) { return false; } - int style = editor->GetStyleAtPos(editor->GetCurrentPosition()); - return (style >= wxSTC_HPHP_DEFAULT && style <= wxSTC_HPHP_OPERATOR) && - ::IsPHPFileByExt(editor->GetFileName().GetFullPath()); + wxStyledTextCtrl* ctrl = editor->GetCtrl(); + wxString buffer = ctrl->GetTextRange(0, ctrl->GetCurrentPos()); + return ::IsPHPFileByExt(editor->GetFileName().GetFullPath()) && PHPSourceFile::IsInPHPSection(buffer); } bool IsPHPFileByExt(const wxString& filename) @@ -102,9 +103,9 @@ fn.AppendDir("resources"); #else #ifdef USE_POSIX_LAYOUT - fn = wxFileName(wxStandardPaths::Get().GetDataDir() + wxT(PLUGINS_DIR)); + fn = wxFileName(clStandardPaths::Get().GetDataDir() + wxT(PLUGINS_DIR)); #else - fn = wxFileName(wxStandardPaths::Get().GetExecutablePath()); + fn = wxFileName(clStandardPaths::Get().GetExecutablePath()); fn.AppendDir("plugins"); #endif fn.AppendDir("resources"); @@ -126,10 +127,7 @@ return wxFileName(filename).GetFullPath(); } -static wxString URIEncode(const wxString& inputStr) -{ - return FileUtils::EncodeURI(inputStr); -} +static wxString URIEncode(const wxString& inputStr) { return FileUtils::EncodeURI(inputStr); } wxString FileNameToURI(const wxString& filename) { @@ -152,10 +150,7 @@ return encodedString; } -static void DecodeFileName(wxString& filename) -{ - filename = FileUtils::DecodeURI(filename); -} +static void DecodeFileName(wxString& filename) { filename = FileUtils::DecodeURI(filename); } wxString MapRemoteFileToLocalFile(const wxString& remoteFile) { diff -Nru codelite-8.0.1+dfsg2/codelitephp/PHPParser/php_workspace.cpp codelite-9.0+dfsg/codelitephp/PHPParser/php_workspace.cpp --- codelite-8.0.1+dfsg2/codelitephp/PHPParser/php_workspace.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/codelitephp/PHPParser/php_workspace.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -16,6 +16,10 @@ #include "php_parser_thread.h" #include #include "cl_command_event.h" +#include "php_strings.h" +#include "php_configuration_data.h" +#include "clWorkspaceManager.h" +#include #ifndef __WXMSW__ #include @@ -26,6 +30,7 @@ PHPWorkspace::PHPWorkspace() : m_manager(NULL) { + SetWorkspaceType(PHPStrings::PHP_WORKSPACE_VIEW_LABEL); } PHPWorkspace::~PHPWorkspace() { m_workspaceFile.Clear(); } @@ -152,8 +157,13 @@ // Perform a quick re-parse of the workspace ParseWorkspace(false); - CallAfter(&PHPWorkspace::RestoreWorkspaceSession); + // set this workspace as the active one + clWorkspaceManager::Get().SetWorkspace(this); + + // and finally, request codelite to keep this workspace in the recently opened workspace list + clGetManager()->AddWorkspaceToRecentlyUsedList(GetFilename()); + CallAfter(&PHPWorkspace::RestoreWorkspaceSession); // Change the workspace extension return true; } @@ -343,7 +353,7 @@ activeProject = firstProject; SetProjectActive(firstProject->GetName()); } - + if(activeProject) { // Notify about active project been set clProjectSettingsEvent evt(wxEVT_ACTIVE_PROJECT_CHANGED); @@ -395,7 +405,7 @@ if(!IsOpen()) { return; } - // seriaize the workspace and store it to disk + // serialize the workspace and store it to disk JSONRoot root(cJSON_Object); JSONElement ele = root.toElement(); ToJSON(ele); @@ -492,23 +502,23 @@ // close the database, delete it and recreate it // then, restart the parser thread PHPParserThread::Release(); // Stop and wait the thread terminates - + // Close the CC manager PHPCodeCompletion::Instance()->Close(); - + // Delete the file wxFileName fnDatabaseFile(m_workspaceFile.GetPath(), "phpsymbols.db"); fnDatabaseFile.AppendDir(".codelite"); - + wxLogNull noLog; bool bRemoved = ::wxRemoveFile(fnDatabaseFile.GetFullPath()); wxUnusedVar(bRemoved); - + // Start the managers again PHPParserThread::Instance()->Start(); PHPCodeCompletion::Instance()->Open(m_workspaceFile); } - + PHPParserThreadRequest* req = new PHPParserThreadRequest(PHPParserThreadRequest::kParseWorkspaceFilesQuick); req->workspaceFile = GetFilename().GetFullPath(); GetWorkspaceFiles(req->files); @@ -550,6 +560,10 @@ bool PHPWorkspace::AddProject(const wxFileName& projectFile, wxString& errmsg) { + if(!CanCreateProjectAtPath(projectFile, true)) { + return false; + } + PHPProject::Ptr_t proj(new PHPProject()); proj->Load(projectFile); @@ -612,3 +626,42 @@ } return true; } + +bool PHPWorkspace::IsBuildSupported() const { return false; } +bool PHPWorkspace::IsProjectSupported() const { return true; } + +wxString PHPWorkspace::GetFilesMask() const +{ + // set the default find in files mask + PHPConfigurationData conf; + return conf.Load().GetFindInFilesMask(); +} + +wxString PHPWorkspace::GetProjectFromFile(const wxFileName& filename) const +{ + PHPProject::Map_t::const_iterator iter = + std::find_if(m_projects.begin(), m_projects.end(), [&](const PHPProject::Map_t::value_type& v) { + wxString path = filename.GetPath(); + return path.StartsWith(v.second->GetFilename().GetPath()); + }); + + if(iter != m_projects.end()) { + return iter->second->GetName(); + } + return wxEmptyString; +} + +void PHPWorkspace::GetProjectFiles(const wxString& projectName, wxArrayString& files) const +{ + PHPProject::Ptr_t p = GetProject(projectName.IsEmpty() ? GetActiveProjectName() : projectName); + CHECK_PTR_RET(p); + + p->GetFilesArray(files); +} + +void PHPWorkspace::GetWorkspaceFiles(wxArrayString& files) const +{ + std::for_each(m_projects.begin(), m_projects.end(), [&](const PHPProject::Map_t::value_type& v) { + v.second->GetFilesArray(files); + }); +} diff -Nru codelite-8.0.1+dfsg2/codelitephp/PHPParser/php_workspace.h codelite-9.0+dfsg/codelitephp/PHPParser/php_workspace.h --- codelite-8.0.1+dfsg2/codelitephp/PHPParser/php_workspace.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/codelitephp/PHPParser/php_workspace.h 2015-10-11 13:56:07.000000000 +0000 @@ -15,6 +15,7 @@ #include #include "XDebugBreakpoint.h" #include "imanager.h" +#include "IWorkspace.h" // ------------------------------------------------------------------ // ------------------------------------------------------------------ @@ -30,7 +31,7 @@ // ------------------------------------------------------------------ class wxProgressDialog; -class PHPWorkspace : public wxEvtHandler +class PHPWorkspace : public IWorkspace { static PHPWorkspace* ms_instance; @@ -40,6 +41,15 @@ PHPExecutor m_executor; IManager* m_manager; + // IWorkspace API +public: + virtual void GetProjectFiles(const wxString& projectName, wxArrayString& files) const; + virtual void GetWorkspaceFiles(wxArrayString& files) const; + virtual wxString GetProjectFromFile(const wxFileName& filename) const; + virtual wxString GetFilesMask() const; + virtual bool IsBuildSupported() const; + virtual bool IsProjectSupported() const; + public: static PHPWorkspace* Get(); static void Release(); @@ -47,7 +57,7 @@ JSONElement ToJSON(JSONElement& e) const; void FromJSON(const JSONElement& e); -private: +public: PHPWorkspace(); virtual ~PHPWorkspace(); @@ -59,7 +69,7 @@ PHPProject::Ptr_t GetProject(const wxString& project) const; PHPProject::Ptr_t GetActiveProject() const; wxString GetPrivateFolder() const; - + /** * @brief check if we can create a project with the given file name * This function checks that the project's path is not already included @@ -67,17 +77,17 @@ * not include any of the other project path */ bool CanCreateProjectAtPath(const wxFileName& projectFileName, bool prompt) const; - + /** * @brief sync the workspace with the file system */ void SyncWithFileSystem(); - + /** * @brief return the project that owns filename */ PHPProject::Ptr_t GetProjectForFile(const wxFileName& filename) const; - + /** * @brief restore the session for this workspace */ @@ -145,13 +155,13 @@ ///////////////////////////////////// void CreateProject(const PHPProject::CreateData& createData); void DeleteProject(const wxString& project); - + /** * @brief add an existing project file to the workspace * @param projectFile */ bool AddProject(const wxFileName& projectFile, wxString& errmsg); - + void SetProjectActive(const wxString& project); /** * @brief delete a file from a project/folder @@ -175,7 +185,7 @@ /** * @brief same as above, but return the files in the form of an array */ - void GetWorkspaceFiles(wxArrayString& workspaceFiles, wxProgressDialog* progress = NULL) const; + void GetWorkspaceFiles(wxArrayString& workspaceFiles, wxProgressDialog* progress) const; /** * @brief return the active project name */ diff -Nru codelite-8.0.1+dfsg2/codelitephp/PHPParserUnitTests/main.cpp codelite-9.0+dfsg/codelitephp/PHPParserUnitTests/main.cpp --- codelite-8.0.1+dfsg2/codelitephp/PHPParserUnitTests/main.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/codelitephp/PHPParserUnitTests/main.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -145,7 +145,7 @@ PHPEntityBase::List_t matches = lookup.FindChildren( resolved->GetDbId(), PHPLookupTable::kLookupFlags_StartsWith | expr.GetLookupFlags(), expr.GetFilter()); - CHECK_SIZE(matches.size(), 1); + CHECK_SIZE(matches.size(), 4); PrintMatches(matches); return true; } @@ -532,6 +532,43 @@ return true; } +TEST_FUNC(test_goto_def_with_trait) +{ + PHPSourceFile sourceFile(wxFileName("../Tests/test_goto_def_with_trait.php")); + sourceFile.SetParseFunctionBody(true); + sourceFile.Parse(); + lookup.UpdateSourceFile(sourceFile); + + PHPExpression expr(sourceFile.GetText()); + PHPEntityBase::Ptr_t resolved = expr.Resolve(lookup, sourceFile.GetFilename().GetFullPath()); + CHECK_BOOL(resolved); + + PHPEntityBase::List_t matches; + expr.Suggest(resolved, lookup, matches); + + CHECK_SIZE(matches.size(), 2); + return true; +} + +TEST_FUNC(test_trait_alias) +{ + PHPSourceFile sourceFile(wxFileName("../Tests/test_trait_alias.php")); + sourceFile.SetParseFunctionBody(true); + sourceFile.Parse(); + lookup.UpdateSourceFile(sourceFile); + + PHPExpression expr(sourceFile.GetText()); + PHPEntityBase::Ptr_t resolved = expr.Resolve(lookup, sourceFile.GetFilename().GetFullPath()); + CHECK_BOOL(resolved); + CHECK_STRING(resolved->GetFullName(), "\\Aliased_Talker"); + + PHPEntityBase::List_t matches; + expr.Suggest(resolved, lookup, matches); + + CHECK_SIZE(matches.size(), 5); + return true; +} + TEST_FUNC(test_partial_namespace) { { diff -Nru codelite-8.0.1+dfsg2/codelitephp/PHPParserUnitTests/PHPParserUnitTests.project codelite-9.0+dfsg/codelitephp/PHPParserUnitTests/PHPParserUnitTests.project --- codelite-8.0.1+dfsg2/codelitephp/PHPParserUnitTests/PHPParserUnitTests.project 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/codelitephp/PHPParserUnitTests/PHPParserUnitTests.project 2015-10-11 13:56:07.000000000 +0000 @@ -52,7 +52,6 @@ - @@ -85,6 +84,8 @@ + + diff -Nru codelite-8.0.1+dfsg2/codelitephp/PHPParserUnitTests/Tests/test_class_extends.php codelite-9.0+dfsg/codelitephp/PHPParserUnitTests/Tests/test_class_extends.php --- codelite-8.0.1+dfsg2/codelitephp/PHPParserUnitTests/Tests/test_class_extends.php 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/codelitephp/PHPParserUnitTests/Tests/test_class_extends.php 2015-10-11 13:56:07.000000000 +0000 @@ -1,12 +1,11 @@ \ No newline at end of file diff -Nru codelite-8.0.1+dfsg2/codelitephp/php-plugin/evalpane.cpp codelite-9.0+dfsg/codelitephp/php-plugin/evalpane.cpp --- codelite-8.0.1+dfsg2/codelitephp/php-plugin/evalpane.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/codelitephp/php-plugin/evalpane.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -8,6 +8,7 @@ EvalPane::EvalPane(wxWindow* parent) : EvalPaneBase(parent) { + Hide(); EventNotifier::Get()->Bind(wxEVT_XDEBUG_EVAL_EXPRESSION, &EvalPane::OnExpressionEvaluate, this); EventNotifier::Get()->Bind(wxEVT_XDEBUG_UNKNOWN_RESPONSE, &EvalPane::OnDBGPCommandEvaluated, this); LexerConf::Ptr_t lex = EditorConfigST::Get()->GetLexer("text"); diff -Nru codelite-8.0.1+dfsg2/codelitephp/php-plugin/localsview.cpp codelite-9.0+dfsg/codelitephp/php-plugin/localsview.cpp --- codelite-8.0.1+dfsg2/codelitephp/php-plugin/localsview.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/codelitephp/php-plugin/localsview.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -8,6 +8,7 @@ LocalsView::LocalsView(wxWindow* parent) : LocalsViewBase(parent) { + Hide(); LexerConf::Ptr_t lex = EditorConfigST::Get()->GetLexer("php"); if ( lex ) { m_dataview->SetFont( lex->GetFontForSyle(wxSTC_HPHP_DEFAULT) ); diff -Nru codelite-8.0.1+dfsg2/codelitephp/php-plugin/new_class.cpp codelite-9.0+dfsg/codelitephp/php-plugin/new_class.cpp --- codelite-8.0.1+dfsg2/codelitephp/php-plugin/new_class.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/codelitephp/php-plugin/new_class.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -164,11 +164,19 @@ boxSizer4->Add(m_buttonCancel, 0, wxALL, 5); + SetName(wxT("NewPHPClassBase")); SetSizeHints(-1,-1); if ( GetSizer() ) { GetSizer()->Fit(this); } - Centre(wxBOTH); + CentreOnParent(wxBOTH); +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(this)) { + wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); + } +#endif // Connect events m_textCtrlClassName->Connect(wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler(NewPHPClassBase::OnClassNameUpdate), NULL, this); m_textCtrlNamespace->Connect(wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler(NewPHPClassBase::OnNamespaceTextUpdated), NULL, this); diff -Nru codelite-8.0.1+dfsg2/codelitephp/php-plugin/new_class.h codelite-9.0+dfsg/codelitephp/php-plugin/new_class.h --- codelite-8.0.1+dfsg2/codelitephp/php-plugin/new_class.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/codelitephp/php-plugin/new_class.h 2015-10-11 13:56:07.000000000 +0000 @@ -4,8 +4,8 @@ // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// -#ifndef NEW_CLASS_BASE_CLASSES_H -#define NEW_CLASS_BASE_CLASSES_H +#ifndef CODELITEPHP_PHP_PLUGIN_NEW_CLASS_BASE_CLASSES_H +#define CODELITEPHP_PHP_PLUGIN_NEW_CLASS_BASE_CLASSES_H #include #include @@ -21,6 +21,12 @@ #include #include #include +#if wxVERSION_NUMBER >= 2900 +#include +#include +#include +#include +#endif class NewPHPClassBase : public wxDialog { diff -Nru codelite-8.0.1+dfsg2/codelitephp/php-plugin/new_class_php-plugin_bitmaps.cpp codelite-9.0+dfsg/codelitephp/php-plugin/new_class_php-plugin_bitmaps.cpp --- codelite-8.0.1+dfsg2/codelitephp/php-plugin/new_class_php-plugin_bitmaps.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/codelitephp/php-plugin/new_class_php-plugin_bitmaps.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -21,14 +21,13 @@ wxMemoryFSHandler::AddFile(name, data, size) #endif -static size_t xml_res_size_0 = 108; +static size_t xml_res_size_0 = 90; static unsigned char xml_res_file_0[] = { 60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, 110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, 115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, 47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, -47,119,120,120,114,99,34,32,118,101,114,115,105,111,110,61,34,50,46,51, -46,48,46,49,34,47,62,10}; +47,119,120,120,114,99,34,47,62,10}; void wxC847AInitBitmapResources() { diff -Nru codelite-8.0.1+dfsg2/codelitephp/php-plugin/new_class.wxcp codelite-9.0+dfsg/codelitephp/php-plugin/new_class.wxcp --- codelite-8.0.1+dfsg2/codelitephp/php-plugin/new_class.wxcp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/codelitephp/php-plugin/new_class.wxcp 2015-10-11 13:56:07.000000000 +0000 @@ -72,6 +72,10 @@ "m_label": "Style:", "m_value": "" }, { + "type": "bool", + "m_label": "Enable Window Persistency:", + "m_value": true + }, { "type": "string", "m_label": "Title:", "m_value": "New Class" @@ -128,6 +132,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "boxSizer2" }, { @@ -151,6 +159,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "staticBoxSizer24" }, { @@ -178,6 +190,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "flexGridSizer10" }, { @@ -1281,6 +1297,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "staticBoxSizer40" }, { @@ -1308,6 +1328,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_HORIZONTAL"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "flexGridSizer46" }, { @@ -1699,6 +1723,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_HORIZONTAL", "wxALIGN_CENTER_VERTICAL"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "boxSizer4" }, { diff -Nru codelite-8.0.1+dfsg2/codelitephp/php-plugin/NewPHPProjectWizard.cpp codelite-9.0+dfsg/codelitephp/php-plugin/NewPHPProjectWizard.cpp --- codelite-8.0.1+dfsg2/codelitephp/php-plugin/NewPHPProjectWizard.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/codelitephp/php-plugin/NewPHPProjectWizard.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -5,7 +5,7 @@ #include "php_configuration_data.h" #include -NewPHPProjectWizard::NewPHPProjectWizard(wxWindow* parent) +NewPHPProjectWizard::NewPHPProjectWizard(wxWindow* parent, bool createProjectFromWorkspaceFolder) : NewPHPProjectWizardBase(parent) , m_nameModified(false) { @@ -13,6 +13,10 @@ PHPConfigurationData conf; conf.Load(); m_filePickerPhpExe->SetPath(conf.GetPhpExe()); + if(createProjectFromWorkspaceFolder) { + m_radioBoxCreateMethod->SetSelection(1); + m_dirPickerPath->SetPath(PHPWorkspace::Get()->GetFilename().GetPath()); + } } NewPHPProjectWizard::~NewPHPProjectWizard() {} diff -Nru codelite-8.0.1+dfsg2/codelitephp/php-plugin/NewPHPProjectWizard.h codelite-9.0+dfsg/codelitephp/php-plugin/NewPHPProjectWizard.h --- codelite-8.0.1+dfsg2/codelitephp/php-plugin/NewPHPProjectWizard.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/codelitephp/php-plugin/NewPHPProjectWizard.h 2015-10-11 13:56:07.000000000 +0000 @@ -9,7 +9,7 @@ bool m_nameModified; public: - NewPHPProjectWizard(wxWindow* parent); + NewPHPProjectWizard(wxWindow* parent, bool createProjectFromWorkspaceFolder = false); virtual ~NewPHPProjectWizard(); PHPProject::CreateData GetCreateData(); diff -Nru codelite-8.0.1+dfsg2/codelitephp/php-plugin/new_php_workspace_dlg.cpp codelite-9.0+dfsg/codelitephp/php-plugin/new_php_workspace_dlg.cpp --- codelite-8.0.1+dfsg2/codelitephp/php-plugin/new_php_workspace_dlg.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/codelitephp/php-plugin/new_php_workspace_dlg.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,10 +1,12 @@ #include "new_php_workspace_dlg.h" #include #include "php_strings.h" +#include "cl_standard_paths.h" NewPHPWorkspaceDlg::NewPHPWorkspaceDlg(wxWindow* parent) : NewPHPWorkspaceBaseDlg(parent) { + m_textCtrlPath->ChangeValue(clStandardPaths::Get().GetDocumentsDir()); CenterOnParent(); SetName("NewPHPWorkspaceDlg"); WindowAttrManager::Load(this); @@ -34,11 +36,9 @@ void NewPHPWorkspaceDlg::OnOK(wxCommandEvent& event) { - wxFileName fn(GetWorkspacePath()); - wxLogNull noLog; - wxMkdir(fn.GetPath()); EndModal(wxID_OK); } + void NewPHPWorkspaceDlg::OnCheckMakeSeparateDir(wxCommandEvent& event) { m_textCtrlPreview->ChangeValue(GetWorkspacePath()); @@ -46,12 +46,12 @@ void NewPHPWorkspaceDlg::OnOKUI(wxUpdateUIEvent& event) { - event.Enable(!m_textCtrlPath->IsEmpty() && !m_textCtrlName->GetValue().IsEmpty()); + event.Enable(!m_textCtrlPath->GetValue().IsEmpty() && !m_textCtrlName->GetValue().IsEmpty()); } void NewPHPWorkspaceDlg::OnBrowse(wxCommandEvent& event) { - wxString path = ::wxDirSelector(_("select a folder")); + wxString path = ::wxDirSelector(_("select a folder"), m_textCtrlPath->GetValue()); if(!path.IsEmpty()) { m_textCtrlPath->ChangeValue(path); m_textCtrlPreview->ChangeValue(GetWorkspacePath()); diff -Nru codelite-8.0.1+dfsg2/codelitephp/php-plugin/new_php_workspace_dlg.h codelite-9.0+dfsg/codelitephp/php-plugin/new_php_workspace_dlg.h --- codelite-8.0.1+dfsg2/codelitephp/php-plugin/new_php_workspace_dlg.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/codelitephp/php-plugin/new_php_workspace_dlg.h 2015-10-11 13:56:07.000000000 +0000 @@ -15,10 +15,11 @@ { public: /** Constructor */ - NewPHPWorkspaceDlg( wxWindow* parent ); + NewPHPWorkspaceDlg(wxWindow* parent); virtual ~NewPHPWorkspaceDlg(); //// end generated class members wxString GetWorkspacePath() const; + bool IsCreateProject() const { return m_checkBoxAddProjectFromSources->IsChecked(); } protected: virtual void OnBrowse(wxCommandEvent& event); diff -Nru codelite-8.0.1+dfsg2/codelitephp/php-plugin/new_workspace_selection_dlg.cpp codelite-9.0+dfsg/codelitephp/php-plugin/new_workspace_selection_dlg.cpp --- codelite-8.0.1+dfsg2/codelitephp/php-plugin/new_workspace_selection_dlg.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/codelitephp/php-plugin/new_workspace_selection_dlg.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,26 +0,0 @@ -#include "new_workspace_selection_dlg.h" -#include "windowattrmanager.h" -#include "php_configuration_data.h" - -NewWorkspaceSelectionDlg::NewWorkspaceSelectionDlg(wxWindow* parent) - : NewWorkspaceSelectionDlgBase(parent) -{ - GetSizer()->Fit(this); - PHPConfigurationData conf; - m_radioBox->SetSelection(conf.Load().GetWorkspaceType()); - SetName("NewWorkspaceSelectionDlg"); - WindowAttrManager::Load(this); -} - -NewWorkspaceSelectionDlg::~NewWorkspaceSelectionDlg() -{ - PHPConfigurationData conf; - conf.Load().SetWorkspaceType(m_radioBox->GetSelection()).Save(); - -} -void NewWorkspaceSelectionDlg::OnClose(wxCloseEvent& event) -{ -} -void NewWorkspaceSelectionDlg::OnKeyDown(wxKeyEvent& event) -{ -} diff -Nru codelite-8.0.1+dfsg2/codelitephp/php-plugin/new_workspace_selection_dlg.h codelite-9.0+dfsg/codelitephp/php-plugin/new_workspace_selection_dlg.h --- codelite-8.0.1+dfsg2/codelitephp/php-plugin/new_workspace_selection_dlg.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/codelitephp/php-plugin/new_workspace_selection_dlg.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,24 +0,0 @@ -#ifndef __new_workspace_selection_dlg__ -#define __new_workspace_selection_dlg__ - -#include "php_ui.h" - -class NewWorkspaceSelectionDlg : public NewWorkspaceSelectionDlgBase -{ -public: - enum { - kTypeCxx = 0, - kTypePHP = 1, - }; - -protected: - virtual void OnClose(wxCloseEvent& event); - virtual void OnKeyDown(wxKeyEvent& event); - -public: - NewWorkspaceSelectionDlg(wxWindow* parent); - virtual ~NewWorkspaceSelectionDlg(); - bool GetIsPHPWorkspace() const { return m_radioBox->GetSelection() == kTypePHP; } -}; - -#endif // __new_workspace_selection_dlg__ diff -Nru codelite-8.0.1+dfsg2/codelitephp/php-plugin/php.cpp codelite-9.0+dfsg/codelitephp/php-plugin/php.cpp --- codelite-8.0.1+dfsg2/codelitephp/php-plugin/php.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/codelitephp/php-plugin/php.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -10,7 +10,6 @@ #include "quick_outline_dlg.h" #include #include -#include "new_workspace_selection_dlg.h" #include "new_php_workspace_dlg.h" #include "php_workspace.h" #include "php_workspace_view.h" @@ -39,6 +38,9 @@ #include "NewPHPProjectWizard.h" #include "PHPXDebugSetupWizard.h" #include "globals.h" +#include "clWorkspaceView.h" +#include "clWorkspaceManager.h" +#include "clSFTPEvent.h" static PhpPlugin* thePlugin = NULL; @@ -56,7 +58,7 @@ PluginInfo info; info.SetAuthor(wxT("The CodeLite Team")); info.SetName(wxT("PHP")); - info.SetDescription(wxT("Enable PHP support for codelite IDE")); + info.SetDescription(_("Enable PHP support for codelite IDE")); info.SetVersion(wxT("v1.0")); return info; } @@ -74,7 +76,10 @@ { m_lint.Reset(new PHPLint(this)); - m_longName = wxT("PHP Plugin for the codelite IDE"); + // Add new workspace type + clWorkspaceManager::Get().RegisterWorkspace(new PHPWorkspace()); + + m_longName = _("PHP Plugin for the codelite IDE"); m_shortName = wxT("PHP"); // Instantiate the bitmaps, we do this so they will be populated in wxXmlResource @@ -83,23 +88,14 @@ PHPWorkspace::Get()->SetPluginManager(m_mgr); XDebugManager::Initialize(this); + BitmapLoader::RegisterImage(FileExtManager::TypeWorkspacePHP, images.Bitmap("m_bmpPhpWorkspace")); + // Add our UI // create tab (possibly detached) - Notebook* book = m_mgr->GetWorkspacePaneNotebook(); - if(IsWorkspaceViewDetached()) { - // Make the window child of the main panel (which is the grand parent of the notebook) - DockablePane* cp = new DockablePane( - book->GetParent()->GetParent(), book, PHPStrings::PHP_WORKSPACE_VIEW_TITLE, wxNullBitmap, wxSize(200, 200)); - m_workspaceView = new PHPWorkspaceView(cp, m_mgr); - cp->SetChildNoReparent(m_workspaceView); - - } else { - m_workspaceView = new PHPWorkspaceView(book, m_mgr); - book->InsertPage(0, m_workspaceView, PHPStrings::PHP_WORKSPACE_VIEW_TITLE, true); - } + m_workspaceView = new PHPWorkspaceView(m_mgr->GetWorkspaceView()->GetBook(), m_mgr); + m_mgr->GetWorkspaceView()->AddPage(m_workspaceView, PHPStrings::PHP_WORKSPACE_VIEW_LABEL); PHPCodeCompletion::Instance()->SetManager(m_mgr); - PHPEditorContextMenu::Instance()->ConnectEvents(); PHPParserThread::Instance()->Start(); @@ -112,7 +108,7 @@ EventNotifier::Get()->Connect( wxEVT_DBG_UI_DELTE_ALL_BREAKPOINTS, clDebugEventHandler(PhpPlugin::OnXDebugDeleteAllBreakpoints), NULL, this); EventNotifier::Get()->Connect( - wxEVT_CMD_CREATE_NEW_WORKSPACE, wxCommandEventHandler(PhpPlugin::OnNewWorkspace), NULL, this); + wxEVT_CMD_CREATE_NEW_WORKSPACE, clCommandEventHandler(PhpPlugin::OnNewWorkspace), NULL, this); EventNotifier::Get()->Connect( wxEVT_NEW_PROJECT_WIZARD_SHOWING, clNewProjectEventHandler(PhpPlugin::OnNewProject), NULL, this); EventNotifier::Get()->Connect( @@ -136,11 +132,10 @@ EventNotifier::Get()->Connect( wxEVT_CMD_GET_ACTIVE_PROJECT_FILES, wxCommandEventHandler(PhpPlugin::OnGetActiveProjectFiles), NULL, this); EventNotifier::Get()->Connect( - wxEVT_CMD_GET_FIND_IN_FILES_MASK, clCommandEventHandler(PhpPlugin::OnGetFiFMask), NULL, this); - EventNotifier::Get()->Connect( wxEVT_CMD_FIND_IN_FILES_DISMISSED, clCommandEventHandler(PhpPlugin::OnFindInFilesDismissed), NULL, this); EventNotifier::Get()->Connect(wxEVT_FILE_SAVED, clCommandEventHandler(PhpPlugin::OnFileSaved), NULL, this); + EventNotifier::Get()->Bind(wxEVT_FILES_MODIFIED_REPLACE_IN_FILES, &PhpPlugin::OnReplaceInFiles, this); EventNotifier::Get()->Connect(wxEVT_PHP_LOAD_URL, PHPEventHandler(PhpPlugin::OnLoadURL), NULL, this); EventNotifier::Get()->Connect( wxEVT_ALL_EDITORS_CLOSED, wxCommandEventHandler(PhpPlugin::OnAllEditorsClosed), NULL, this); @@ -174,7 +169,7 @@ // Make sure we add this path to the general PHP settings targetDir.AppendDir("cc"); // the CC files are located under an internal folder named "cc" (lowercase) - + if(config.Load().GetCcIncludePath().Index(targetDir.GetPath()) == wxNOT_FOUND) { config.Load().GetCcIncludePath().Add(targetDir.GetPath()); config.Save(); @@ -235,7 +230,7 @@ EventNotifier::Get()->Disconnect( wxEVT_CC_SHOW_QUICK_OUTLINE, clCodeCompletionEventHandler(PhpPlugin::OnShowQuickOutline), NULL, this); EventNotifier::Get()->Disconnect( - wxEVT_CMD_CREATE_NEW_WORKSPACE, wxCommandEventHandler(PhpPlugin::OnNewWorkspace), NULL, this); + wxEVT_CMD_CREATE_NEW_WORKSPACE, clCommandEventHandler(PhpPlugin::OnNewWorkspace), NULL, this); EventNotifier::Get()->Disconnect( wxEVT_NEW_PROJECT_WIZARD_SHOWING, clNewProjectEventHandler(PhpPlugin::OnNewProject), NULL, this); EventNotifier::Get()->Disconnect( @@ -260,9 +255,8 @@ this); EventNotifier::Get()->Disconnect( wxEVT_CMD_GET_ACTIVE_PROJECT_FILES, wxCommandEventHandler(PhpPlugin::OnGetActiveProjectFiles), NULL, this); - EventNotifier::Get()->Disconnect( - wxEVT_CMD_GET_FIND_IN_FILES_MASK, clCommandEventHandler(PhpPlugin::OnGetFiFMask), NULL, this); EventNotifier::Get()->Disconnect(wxEVT_FILE_SAVED, clCommandEventHandler(PhpPlugin::OnFileSaved), NULL, this); + EventNotifier::Get()->Unbind(wxEVT_FILES_MODIFIED_REPLACE_IN_FILES, &PhpPlugin::OnReplaceInFiles, this); EventNotifier::Get()->Disconnect(wxEVT_PHP_LOAD_URL, PHPEventHandler(PhpPlugin::OnLoadURL), NULL, this); EventNotifier::Get()->Disconnect( wxEVT_ALL_EDITORS_CLOSED, wxCommandEventHandler(PhpPlugin::OnAllEditorsClosed), NULL, this); @@ -272,16 +266,13 @@ EventNotifier::Get()->Disconnect(wxEVT_GOING_DOWN, clCommandEventHandler(PhpPlugin::OnGoingDown), NULL, this); EventNotifier::Get()->Unbind(wxEVT_FILE_SYSTEM_UPDATED, &PhpPlugin::OnFileSysetmUpdated, this); EventNotifier::Get()->Unbind(wxEVT_SAVE_SESSION_NEEDED, &PhpPlugin::OnSaveSession, this); - + SafelyDetachAndDestroyPane(m_debuggerPane, "XDebug"); SafelyDetachAndDestroyPane(m_xdebugLocalsView, "XDebugLocals"); SafelyDetachAndDestroyPane(m_xdebugEvalPane, "XDebugEval"); // Remove the PHP tab - size_t index = m_mgr->GetWorkspacePaneNotebook()->GetPageIndex(m_workspaceView); - if(index != Notebook::npos) { - m_mgr->GetWorkspacePaneNotebook()->RemovePage(index, false); - } + m_mgr->GetWorkspaceView()->RemovePage(PHPStrings::PHP_WORKSPACE_VIEW_LABEL); // Close any open workspace if(PHPWorkspace::Get()->IsOpen()) { @@ -314,22 +305,24 @@ } } -void PhpPlugin::OnNewWorkspace(wxCommandEvent& e) +void PhpPlugin::OnNewWorkspace(clCommandEvent& e) { - NewWorkspaceSelectionDlg dlg(FRAME); - if(dlg.ShowModal() == wxID_OK) { - if(dlg.GetIsPHPWorkspace()) { - - // Create a PHP workspace - NewPHPWorkspaceDlg newWspDlg(m_mgr->GetTheApp()->GetTopWindow()); - if(newWspDlg.ShowModal() == wxID_OK) { - PHPWorkspace::Get()->Create(newWspDlg.GetWorkspacePath()); - DoOpenWorkspace(newWspDlg.GetWorkspacePath()); + e.Skip(); + if(e.GetString() == PHPWorkspace::Get()->GetWorkspaceType()) { + e.Skip(false); + // Create a PHP workspace + NewPHPWorkspaceDlg newWspDlg(m_mgr->GetTheApp()->GetTopWindow()); + if(newWspDlg.ShowModal() == wxID_OK) { + // Ensure that the workspace path exists + wxFileName workspaceFile(newWspDlg.GetWorkspacePath()); + if(!workspaceFile.Mkdir(wxS_DIR_DEFAULT, wxPATH_MKDIR_FULL)) { + ::wxMessageBox(wxString::Format(_("Could not create workspace folder:\n%s"), workspaceFile.GetPath()), + "CodeLite", + wxICON_ERROR | wxOK | wxCENTER); + return; } - - } else { - // Call skip so the normal new workspace dialog will popup - e.Skip(); + PHPWorkspace::Get()->Create(newWspDlg.GetWorkspacePath()); + DoOpenWorkspace(newWspDlg.GetWorkspacePath(), false /* create if missing */, newWspDlg.IsCreateProject()); } } } @@ -362,12 +355,6 @@ eventCloseWsp.SetEventObject(FRAME); FRAME->GetEventHandler()->ProcessEvent(eventCloseWsp); - // Show the 'Workspace' tab by sending the main frame a "Hide workspace tab" event - wxCommandEvent event(wxEVT_COMMAND_MENU_SELECTED, XRCID("show_workspace_tab")); - event.SetEventObject(FRAME); - event.SetInt(1); - FRAME->GetEventHandler()->AddPendingEvent(event); - /// The 'wxID_CLOSE_ALL' is done async (i.e. it will take place in the next event loop) /// So we mark ourself that we should display the welcome page next time we capture /// the 'All Editors Closed' event @@ -401,7 +388,7 @@ DoOpenWorkspace(workspaceFile.GetFullPath()); } -void PhpPlugin::DoOpenWorkspace(const wxString& filename, bool createIfMissing) +void PhpPlugin::DoOpenWorkspace(const wxString& filename, bool createIfMissing, bool createProjectFromSources) { // notify codelite to close the currently opened workspace wxCommandEvent eventClose(wxEVT_COMMAND_MENU_SELECTED, XRCID("close_workspace")); @@ -424,20 +411,20 @@ m_mgr->EnableClangCodeCompletion(false); m_workspaceView->LoadWorkspace(); - // Hide the 'Workspace' tab by sending the main frame a "Hide workspace tab" event - wxCommandEvent event(wxEVT_COMMAND_MENU_SELECTED, XRCID("show_workspace_tab")); - event.SetEventObject(FRAME); - event.SetInt(0); - FRAME->GetEventHandler()->AddPendingEvent(event); - // Select the 'PHP' tab - size_t index = m_mgr->GetWorkspacePaneNotebook()->GetPageIndex(m_workspaceView); - if(index != Notebook::npos) { - m_mgr->GetWorkspacePaneNotebook()->SetSelection(index); - } + m_mgr->GetWorkspaceView()->SelectPage(PHPStrings::PHP_WORKSPACE_VIEW_LABEL); - // and finally, request codelite to keep this workspace in the recently opened workspace list - m_mgr->AddWorkspaceToRecentlyUsedList(filename); + if(createProjectFromSources) { + PHPConfigurationData conf; + PHPProject::CreateData cd; + conf.Load(); + cd.importFilesUnderPath = true; + cd.name = PHPWorkspace::Get()->GetWorkspaceName(); + cd.phpExe = conf.GetPhpExe(); + cd.path = PHPWorkspace::Get()->GetFilename().GetPath(); + cd.projectType = PHPProjectSettingsData::kRunAsCLI; + m_workspaceView->CallAfter(&PHPWorkspaceView::CreateNewProject, cd); + } } void PhpPlugin::OnOpenResource(wxCommandEvent& e) @@ -447,11 +434,15 @@ if(dlg.ShowModal() == wxID_OK) { ResourceItem* itemData = dlg.GetSelectedItem(); if(itemData) { - if(m_mgr->OpenFile(itemData->filename.GetFullPath())) { - IEditor* editor = m_mgr->GetActiveEditor(); - if(editor && itemData->line != wxNOT_FOUND) { - editor->FindAndSelect( - itemData->displayName, itemData->displayName, editor->PosFromLine(itemData->line), NULL); + IEditor* editor = m_mgr->OpenFile(itemData->filename.GetFullPath()); + if(editor) { + if(itemData->line != wxNOT_FOUND) { + if(!editor->FindAndSelect(itemData->displayName, + itemData->displayName, + editor->PosFromLine(itemData->line), + NULL)) { + editor->CenterLine(itemData->line); + } } } } @@ -469,7 +460,7 @@ wxString activeProjectName = PHPWorkspace::Get()->GetActiveProjectName(); PHPProject::Ptr_t proj = PHPWorkspace::Get()->GetProject(activeProjectName); CHECK_PTR_RET(proj); - const wxArrayString& projfiles = proj->GetFiles(); + const wxArrayString& projfiles = proj->GetFiles(NULL); pfiles->insert(pfiles->end(), projfiles.begin(), projfiles.end()); } } else { @@ -533,17 +524,6 @@ } } -void PhpPlugin::OnGetFiFMask(clCommandEvent& e) -{ - // always skip this event so other plugins could modify it as well - e.Skip(); - if(PHPWorkspace::Get()->IsOpen()) { - // set the default find in files mask - PHPConfigurationData conf; - e.SetString(conf.Load().GetFindInFilesMask()); - } -} - void PhpPlugin::DoPlaceMenuBar(wxMenuBar* menuBar) { // Add our menu bar @@ -587,34 +567,13 @@ e.Skip(); if(PHPWorkspace::Get()->IsOpen()) { - // Check to see if we got a remote-upload setup - SSHWorkspaceSettings settings; - settings.Load(); - - if(settings.IsRemoteUploadSet() && settings.IsRemoteUploadEnabled()) { - // Post an event to the SFTP plugin and ask it to save our file - wxFileName fnLocalFile(e.GetString()); - - fnLocalFile.MakeRelativeTo(PHPWorkspace::Get()->GetFilename().GetPath()); - fnLocalFile.MakeAbsolute(wxFileName(settings.GetRemoteFolder(), "", wxPATH_UNIX).GetPath()); - wxString remoteFile = fnLocalFile.GetFullPath(wxPATH_UNIX); - wxString localFile = e.GetString(); - - JSONRoot root(cJSON_Object); - root.toElement().addProperty("account", settings.GetAccount()); - root.toElement().addProperty("local_file", localFile); - root.toElement().addProperty("remote_file", remoteFile); - - clCommandEvent eventSave(XRCID("wxEVT_SFTP_SAVE_FILE")); - eventSave.SetString(root.toElement().format()); - EventNotifier::Get()->AddPendingEvent(eventSave); - } + DoSyncFileWithRemote(e.GetString()); } // Run php lint IEditor* editor = m_mgr->GetActiveEditor(); CHECK_PTR_RET(editor); - + PHPConfigurationData conf; conf.Load(); if(::IsPHPFile(editor) && conf.IsRunLint()) { @@ -778,7 +737,6 @@ { PHPXDebugSetupWizard wiz(EventNotifier::Get()->TopFrame()); if(wiz.RunWizard(wiz.GetFirstPage())) { - } #if 0 XDebugTester xdebugTester; @@ -853,10 +811,7 @@ } } -void PhpPlugin::OnGoingDown(clCommandEvent& event) -{ - event.Skip(); -} +void PhpPlugin::OnGoingDown(clCommandEvent& event) { event.Skip(); } void PhpPlugin::PhpLintDone(const wxString& lintOutput, const wxString& filename) { @@ -903,7 +858,7 @@ event.Skip(); if(PHPWorkspace::Get()->IsOpen()) { PHPWorkspace::Get()->SyncWithFileSystem(); - m_workspaceView->ReloadWorkspace(true); + m_workspaceView->LoadWorkspace(); } } @@ -916,3 +871,38 @@ event.Skip(); } } + +void PhpPlugin::DoSyncFileWithRemote(const wxFileName& localFile) +{ + // Check to see if we got a remote-upload setup + SSHWorkspaceSettings settings; + settings.Load(); + + if(settings.IsRemoteUploadSet() && settings.IsRemoteUploadEnabled()) { + // Post an event to the SFTP plugin and ask it to save our file + wxFileName fnLocalFile = localFile; + + fnLocalFile.MakeRelativeTo(PHPWorkspace::Get()->GetFilename().GetPath()); + fnLocalFile.MakeAbsolute(wxFileName(settings.GetRemoteFolder(), "", wxPATH_UNIX).GetPath()); + + wxString remoteFile = fnLocalFile.GetFullPath(wxPATH_UNIX); + + // Fire this event, if the sftp plugin is ON, it will handle it + clSFTPEvent eventSave(wxEVT_SFTP_SAVE_FILE); + eventSave.SetAccount(settings.GetAccount()); + eventSave.SetLocalFile(localFile.GetFullPath()); + eventSave.SetRemoteFile(remoteFile); + EventNotifier::Get()->AddPendingEvent(eventSave); + } +} + +void PhpPlugin::OnReplaceInFiles(clFileSystemEvent& e) +{ + e.Skip(); + if(PHPWorkspace::Get()->IsOpen()) { + const wxArrayString& files = e.GetStrings(); + for(size_t i = 0; i < files.size(); ++i) { + DoSyncFileWithRemote(files.Item(i)); + } + } +} diff -Nru codelite-8.0.1+dfsg2/codelitephp/php-plugin/PHPDebugPane.cpp codelite-9.0+dfsg/codelitephp/php-plugin/PHPDebugPane.cpp --- codelite-8.0.1+dfsg2/codelitephp/php-plugin/PHPDebugPane.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/codelitephp/php-plugin/PHPDebugPane.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -16,6 +16,7 @@ PHPDebugPane::PHPDebugPane(wxWindow* parent) : PHPDebugPaneBase(parent) { + Hide(); EventNotifier::Get()->Bind(wxEVT_XDEBUG_STACK_TRACE, &PHPDebugPane::OnUpdateStackTrace, this); EventNotifier::Get()->Bind(wxEVT_XDEBUG_SESSION_STARTED, &PHPDebugPane::OnXDebugSessionStarted, this); EventNotifier::Get()->Bind(wxEVT_XDEBUG_SESSION_STARTING, &PHPDebugPane::OnXDebugSessionStarting, this); @@ -24,10 +25,6 @@ m_console = new TerminalEmulatorUI(m_auiBook); m_auiBook->AddPage(m_console, _("Console"), true); -#ifndef __WXGTK__ - m_auiBook->SetArtProvider(new clAuiGlossyTabArt); -#endif - LexerConf::Ptr_t phpLexer = ColoursAndFontsManager::Get().GetLexer("php"); if(phpLexer) { phpLexer->Apply(m_console->GetTerminalOutputWindow()); diff -Nru codelite-8.0.1+dfsg2/codelitephp/php-plugin/php_editor_context_menu.cpp codelite-9.0+dfsg/codelitephp/php-plugin/php_editor_context_menu.cpp --- codelite-8.0.1+dfsg2/codelitephp/php-plugin/php_editor_context_menu.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/codelitephp/php-plugin/php_editor_context_menu.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -18,6 +18,7 @@ #include "PHPSettersGettersDialog.h" #include "clEditorStateLocker.h" #include +#include "globals.h" PHPEditorContextMenu* PHPEditorContextMenu::ms_instance = 0; @@ -77,18 +78,6 @@ wxCommandEventHandler(PHPEditorContextMenu::OnGenerateSettersGetters), NULL, this); - -#if 0 - // The below should cover wxID_CUT, wxID_COPY, wxID_PASTE, wxID_CLEAR, wxID_FIND, wxID_DUPLICATE, wxID_SELECTALL, - // wxID_DELETE - //wxTheApp->Bind(wxEVT_COMMAND_MENU_SELECTED, &PHPEditorContextMenu::OnPopupClicked, this, wxID_CUT); - //wxTheApp->Bind(wxEVT_COMMAND_MENU_SELECTED, &PHPEditorContextMenu::OnPopupClicked, this, wxID_COPY); - //wxTheApp->Bind(wxEVT_COMMAND_MENU_SELECTED, &PHPEditorContextMenu::OnPopupClicked, this, wxID_PASTE); - //wxTheApp->Bind(wxEVT_COMMAND_MENU_SELECTED, &PHPEditorContextMenu::OnPopupClicked, this, wxID_SELECTALL); - //wxTheApp->Bind(wxEVT_COMMAND_MENU_SELECTED, &PHPEditorContextMenu::OnPopupClicked, this, wxID_DELETE); - //wxTheApp->Bind(wxEVT_COMMAND_MENU_SELECTED, &PHPEditorContextMenu::OnPopupClicked, this, wxID_UNDO); - //wxTheApp->Bind(wxEVT_COMMAND_MENU_SELECTED, &PHPEditorContextMenu::OnPopupClicked, this, wxID_REDO); -#endif wxTheApp->Bind(wxEVT_MENU, &PHPEditorContextMenu::OnCommentLine, this, XRCID("comment_line")); wxTheApp->Bind(wxEVT_MENU, &PHPEditorContextMenu::OnCommentSelection, this, XRCID("comment_selection")); } @@ -359,28 +348,6 @@ void PHPEditorContextMenu::OnContextOpenDocument(wxCommandEvent& event) { wxUnusedVar(event); } -void PHPEditorContextMenu::DoUncomment() -{ - GET_EDITOR_SCI_VOID(); - - int caret_pos = sci->GetCurrentPos(); - - // the style is defined once and the comment / uncomment behavior is constant per operation - int style = sci->GetStyleAt(caret_pos); - // if this is not a comment area - return - if((style != wxSTC_HPHP_COMMENTLINE) && (style != wxSTC_HPHP_COMMENT)) return; - - sci->BeginUndoAction(); - - if(!RemoveSingleLineComment(sci, caret_pos)) { - // search for the comment start mark - if(RemoveTokenFirstIteration(sci, m_start_comment, false, caret_pos)) - RemoveTokenFirstIteration(sci, m_close_comment, true, caret_pos); - } - - sci->EndUndoAction(); - SET_CARET_POS(caret_pos); -} bool PHPEditorContextMenu::RemoveTokenFirstIteration(wxStyledTextCtrl* sci, const wxString& token, bool direction, @@ -450,159 +417,7 @@ return false; } -void PHPEditorContextMenu::DoCommentSelection() -{ - GET_EDITOR_SCI_VOID(); - int start = sci->GetSelectionStart(); - int end = sci->GetSelectionEnd(); - - if(sci->LineFromPosition(sci->PositionBefore(end)) != sci->LineFromPosition(end)) { - end = std::max(start, sci->PositionBefore(end)); - } - - int caretPos = sci->GetCurrentPos(); // will be used to place the caret after the commenting staff is done - - // the style is defined once and the comment / uncomment behavior is constant per operation - int style = sci->GetStyleAt(start); - - sci->BeginUndoAction(); - if((style != wxSTC_HPHP_COMMENTLINE) && (style != wxSTC_HPHP_COMMENT)) { - // Note: incase a comment exist inside the line - all the line will be commented - sci->SetTargetStart(start); - sci->SetTargetEnd(end); - int endCommnetPos = sci->SearchInTarget(m_close_comment); - while(endCommnetPos != wxSTC_INVALID_POSITION) { - sci->SetSelection(endCommnetPos, sci->PositionAfter(sci->PositionAfter(endCommnetPos))); - sci->DeleteBack(); - end -= m_close_comment.Length(); - - sci->SetTargetStart(endCommnetPos); - sci->SetTargetEnd(end); - endCommnetPos = sci->SearchInTarget(m_close_comment); - } - sci->InsertText(end, m_close_comment); - sci->InsertText(start, m_start_comment); - if(caretPos >= end) caretPos += m_close_comment.Length(); - if(caretPos >= start) caretPos += 2; - - } else { // handle only the naive case for commented lines - otherwise there are too many scenarios - if((sci->GetTextRange(start, sci->PositionAfter(sci->PositionAfter(start))) == m_start_comment) && - (sci->GetTextRange(end, sci->PositionBefore(sci->PositionBefore(end))) == m_close_comment)) { - - // remove m_start_comment - sci->SetSelection(sci->PositionBefore(sci->PositionBefore(end)), end); - sci->DeleteBack(); - if(caretPos >= end) caretPos -= 2; - - // remove m_start_comment - sci->SetSelection(start, sci->PositionAfter(sci->PositionAfter(start))); - sci->DeleteBack(); - if(caretPos >= start) caretPos -= 2; - } - } - sci->EndUndoAction(); - SET_CARET_POS(caretPos); -} -void PHPEditorContextMenu::DoCommentLine() -{ - wxStyledTextCtrl* sci = DoGetActiveScintila(); - if(!sci) return; - - int end = sci->GetSelectionEnd(); - if(sci->LineFromPosition(sci->PositionBefore(end)) != sci->LineFromPosition(end)) { - end = std::max(sci->GetSelectionStart(), sci->PositionBefore(end)); - } - int line_start = sci->LineFromPosition(sci->GetSelectionStart()); - int line_end = sci->LineFromPosition(end); - - int caret_pos = sci->GetCurrentPos(); - // the style is defined once and the comment / uncomment behavior is constant per operation - int style = sci->GetStyleAt(caret_pos); - - sci->BeginUndoAction(); - if(line_start < line_end) { - // comment the exact selection - for(; line_start <= line_end; line_start++) { - - if((style != wxSTC_HPHP_COMMENTLINE) && (style != wxSTC_HPHP_COMMENT)) { - // Note: incase a comment exist inside the line - all the line will be commented - sci->InsertText(sci->PositionFromLine(line_start), m_comment_line_1); - - } else { // handle only the naive case for commented lines - otherwise there are too many scenarios - RemoveSingleLineComment(sci, caret_pos); - } - } - } else { - CommentSingleLine(sci, style, line_start, caret_pos); // in a single line scope all cases are handled - } - - sci->EndUndoAction(); - SET_CARET_POS(caret_pos); - // int newPosition = sci->PositionFromLine(line_end+1); -} - -void PHPEditorContextMenu::CommentSingleLine(wxStyledTextCtrl* sci, int style, int line_number, int& caret_pos) -{ - if((style != wxSTC_HPHP_COMMENTLINE) && (style != wxSTC_HPHP_COMMENT)) { - // Note: incase a comment exist inside the line - all the line will be commented - sci->InsertText(sci->PositionFromLine(line_number), m_comment_line_1); - caret_pos += m_comment_line_1.Length(); - return; - } - - // uncomment line - // there are 3 options: - // 1. the current line is commented with '//' - // 2. the current line is commented with '#' - // 3. the current line is commented with '/* */' - - // Handle cases: 1. the current line is commented with '//' - // 2. the current line is commented with '#' - if(RemoveSingleLineComment(sci, caret_pos)) return; - - // Handle case: 3. the current line is commented with '/* */' - - // search for '/*' - sci->SetTargetStart(sci->PositionFromLine(line_number)); - sci->SetTargetEnd(sci->GetCurrentPos()); - int startCommentPos = sci->SearchInTarget(m_start_comment); - if(startCommentPos != wxSTC_INVALID_POSITION) { - int closeCommentPos = - sci->FindText(sci->GetCurrentPos(), sci->GetLineEndPosition(line_number), m_close_comment); - if(closeCommentPos != wxSTC_INVALID_POSITION) { - // verify the current position in not above the close comment mark - if(caret_pos >= closeCommentPos) caret_pos -= m_start_comment.Length(); - // entering this scope means that both the comment start & end marks are in the current line - // both should be removed - RemoveComment(sci, closeCommentPos, m_close_comment); - caret_pos -= RemoveComment(sci, startCommentPos, m_start_comment); - } else { - // only the start comment mark is in this line: - // remove it & add a start comment mark in the next line - caret_pos -= RemoveComment(sci, startCommentPos, m_start_comment); - sci->InsertText(sci->PositionFromLine(line_number + 1), m_start_comment); - } - } else { - int closeCommentPos = - sci->FindText(sci->GetCurrentPos(), sci->GetLineEndPosition(line_number), m_close_comment); - if(closeCommentPos != wxSTC_INVALID_POSITION) { - // verify the current position in not above the close comment mark - if(caret_pos >= closeCommentPos) caret_pos -= m_start_comment.Length(); - // entering this scope means that this is the comment last line. - // remove the close comment mark & add it to the above line - RemoveComment(sci, closeCommentPos, m_close_comment); - sci->InsertText(sci->GetLineEndPosition(line_number - 1), m_close_comment); - caret_pos += m_close_comment.Length(); - } else { - // entering this scope means that none of the start comment mark and the close comment mark are in this line - // add a close comment mark in the above line & add an open comment line in the line below - sci->InsertText(sci->GetLineEndPosition(line_number - 1), m_close_comment); - caret_pos += m_close_comment.Length(); - sci->InsertText(sci->PositionFromLine(line_number + 1), m_start_comment); - } - } -} int PHPEditorContextMenu::RemoveComment(wxStyledTextCtrl* sci, int posFrom, const wxString& value) { sci->SetAnchor(posFrom); @@ -749,20 +564,20 @@ void PHPEditorContextMenu::OnCommentLine(wxCommandEvent& event) { + event.Skip(); IEditor* editor = m_manager->GetActiveEditor(); if(editor && IsPHPFile(editor)) { - DoCommentLine(); - } else { - event.Skip(); + event.Skip(false); + editor->ToggleLineComment("//", wxSTC_HPHP_COMMENTLINE); } } void PHPEditorContextMenu::OnCommentSelection(wxCommandEvent& event) { + event.Skip(); IEditor* editor = m_manager->GetActiveEditor(); if(editor && IsPHPFile(editor)) { - DoCommentSelection(); - } else { - event.Skip(); + event.Skip(false); + editor->CommentBlockSelection("/*", "*/"); } } diff -Nru codelite-8.0.1+dfsg2/codelitephp/php-plugin/php_editor_context_menu.h codelite-9.0+dfsg/codelitephp/php-plugin/php_editor_context_menu.h --- codelite-8.0.1+dfsg2/codelitephp/php-plugin/php_editor_context_menu.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/codelitephp/php-plugin/php_editor_context_menu.h 2015-10-11 13:56:07.000000000 +0000 @@ -46,9 +46,6 @@ void OnPopupClicked(wxCommandEvent& event); // Helpers - void DoCommentLine(); - void DoCommentSelection(); - void DoUncomment(); void DoOpenPHPFile(); void DoGotoBeginningOfScope(); void DoGotoEndOfScope(); diff -Nru codelite-8.0.1+dfsg2/codelitephp/php-plugin/php_file_layout_tree.cpp codelite-9.0+dfsg/codelitephp/php-plugin/php_file_layout_tree.cpp --- codelite-8.0.1+dfsg2/codelitephp/php-plugin/php_file_layout_tree.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/codelitephp/php-plugin/php_file_layout_tree.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -6,6 +6,7 @@ #include "PHPEntityFunction.h" #include "PHPEntityVariable.h" #include "PHPSourceFile.h" +#include "fileutils.h" #ifndef __WXMSW__ #include @@ -149,10 +150,7 @@ if(!item.IsOk()) return wxTreeItemId(); if(item != GetRootItem()) { - wxString curtext = GetItemText(item); - curtext.MakeLower(); - - if(curtext.StartsWith(word)) { + if(FileUtils::FuzzyMatch(word, GetItemText(item))) { return item; } } diff -Nru codelite-8.0.1+dfsg2/codelitephp/php-plugin/php.h codelite-9.0+dfsg/codelitephp/php-plugin/php.h --- codelite-8.0.1+dfsg2/codelitephp/php-plugin/php.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/codelitephp/php-plugin/php.h 2015-10-11 13:56:07.000000000 +0000 @@ -53,9 +53,10 @@ protected: bool IsWorkspaceViewDetached(); - void DoOpenWorkspace(const wxString& filename, bool createIfMissing = false); + void DoOpenWorkspace(const wxString& filename, bool createIfMissing = false, bool createProjectFromSources = false); void DoPlaceMenuBar(wxMenuBar* menuBar); void DoEnsureXDebugPanesVisible(const wxString& selectWindow = ""); + void DoSyncFileWithRemote(const wxFileName& localFile); public: //-------------------------------------------- @@ -81,7 +82,7 @@ ////////////////////////////////////////////// // Other common codelite events ////////////////////////////////////////////// - void OnNewWorkspace(wxCommandEvent& e); + void OnNewWorkspace(clCommandEvent& e); void OnIsWorkspaceOpen(clCommandEvent& e); void OnCloseWorkspace(clCommandEvent& e); void OnOpenWorkspace(clCommandEvent& e); @@ -92,7 +93,6 @@ void OnGetActiveProjectFiles(wxCommandEvent& e); void OnNewProject(clNewProjectEvent& e); void OnNewProjectFinish(clNewProjectEvent& e); - void OnGetFiFMask(clCommandEvent& e); void OnFindInFilesDismissed(clCommandEvent& e); void OnRunXDebugDiagnostics(wxCommandEvent& e); void OnMenuCommand(wxCommandEvent& e); @@ -107,6 +107,7 @@ void OnDebugEnded(XDebugEvent& e); void OnFileSysetmUpdated(clFileSystemEvent& event); void OnSaveSession(clCommandEvent& event); + void OnReplaceInFiles(clFileSystemEvent& e); }; #endif // PHP diff -Nru codelite-8.0.1+dfsg2/codelitephp/php-plugin/PHPLint.cpp codelite-9.0+dfsg/codelitephp/php-plugin/PHPLint.cpp --- codelite-8.0.1+dfsg2/codelitephp/php-plugin/PHPLint.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/codelitephp/php-plugin/PHPLint.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -6,15 +6,12 @@ #include "php.h" #include "asyncprocess.h" -BEGIN_EVENT_TABLE(PHPLint, wxEvtHandler) -EVT_COMMAND(wxID_ANY, wxEVT_PROC_TERMINATED, PHPLint::OnProcessTerminated) -EVT_COMMAND(wxID_ANY, wxEVT_PROC_DATA_READ, PHPLint::OnProcessOutput) -END_EVENT_TABLE() - PHPLint::PHPLint(PhpPlugin* plugin) : m_plugin(plugin) , m_process(NULL) { + Bind(wxEVT_ASYNC_PROCESS_OUTPUT, &PHPLint::OnProcessOutput, this); + Bind(wxEVT_ASYNC_PROCESS_TERMINATED, &PHPLint::OnProcessTerminated, this); } PHPLint::~PHPLint() {} @@ -34,22 +31,18 @@ } } -void PHPLint::OnProcessTerminated(wxCommandEvent& event) +void PHPLint::OnProcessTerminated(clProcessEvent& event) { CL_DEBUG("PHPLint: process terminated. output: %s", m_output); - ProcessEventData* ped = reinterpret_cast(event.GetClientData()); - wxDELETE(ped); wxDELETE(m_process); m_plugin->CallAfter(&PhpPlugin::PhpLintDone, m_output, m_currentFileBeingProcessed); // Check the queue for more files DoProcessQueue(); } -void PHPLint::OnProcessOutput(wxCommandEvent& event) +void PHPLint::OnProcessOutput(clProcessEvent& event) { - ProcessEventData* ped = reinterpret_cast(event.GetClientData()); - m_output << ped->GetData(); - wxDELETE(ped); + m_output << event.GetOutput(); } void PHPLint::DoCheckFile(const wxFileName& filename) diff -Nru codelite-8.0.1+dfsg2/codelitephp/php-plugin/PHPLint.h codelite-9.0+dfsg/codelitephp/php-plugin/PHPLint.h --- codelite-8.0.1+dfsg2/codelitephp/php-plugin/PHPLint.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/codelitephp/php-plugin/PHPLint.h 2015-10-11 13:56:07.000000000 +0000 @@ -6,6 +6,7 @@ #include #include #include "smart_ptr.h" +#include "cl_command_event.h" class PhpPlugin; class IProcess; @@ -33,9 +34,8 @@ */ void CheckCode(const wxFileName& filename); - DECLARE_EVENT_TABLE() - void OnProcessTerminated(wxCommandEvent &event); - void OnProcessOutput(wxCommandEvent &event); + void OnProcessTerminated(clProcessEvent &event); + void OnProcessOutput(clProcessEvent &event); }; #endif // PHPLINT_H diff -Nru codelite-8.0.1+dfsg2/codelitephp/php-plugin/php_open_resource_dlg.cpp codelite-9.0+dfsg/codelitephp/php-plugin/php_open_resource_dlg.cpp --- codelite-8.0.1+dfsg2/codelitephp/php-plugin/php_open_resource_dlg.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/codelitephp/php-plugin/php_open_resource_dlg.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -61,7 +61,7 @@ DoInitialize(); m_timer = new wxTimer(this, TIMER_ID); - m_timer->Start(500, true); + m_timer->Start(50, true); SetName("OpenResourceDlg"); WindowAttrManager::Load(this); @@ -121,7 +121,7 @@ m_dvListCtrl->DeleteAllItems(); if(m_lastFilter.IsEmpty()) { - m_timer->Start(500, true); + m_timer->Start(50, true); return; } @@ -136,7 +136,7 @@ allVec.insert(allVec.end(), m_resources.begin(), m_resources.end()); DoPopulateListCtrl(allVec); } - m_timer->Start(500, true); + m_timer->Start(50, true); } void OpenResourceDlg::DoPopulateListCtrl(const ResourceVector_t& items) diff -Nru codelite-8.0.1+dfsg2/codelitephp/php-plugin/PHPPlugin.project codelite-9.0+dfsg/codelitephp/php-plugin/PHPPlugin.project --- codelite-8.0.1+dfsg2/codelitephp/php-plugin/PHPPlugin.project 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/codelitephp/php-plugin/PHPPlugin.project 2015-10-11 13:56:07.000000000 +0000 @@ -146,8 +146,6 @@ - - diff -Nru codelite-8.0.1+dfsg2/codelitephp/php-plugin/php_ui.cpp codelite-9.0+dfsg/codelitephp/php-plugin/php_ui.cpp --- codelite-8.0.1+dfsg2/codelitephp/php-plugin/php_ui.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/codelitephp/php-plugin/php_ui.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -39,10 +39,14 @@ SetName(wxT("QuickOutlineDlgBase")); SetSizeHints(400,400); - if ( GetSizer() ) { + if (GetSizer()) { GetSizer()->Fit(this); } - CentreOnParent(wxBOTH); + if(GetParent()) { + CentreOnParent(wxBOTH); + } else { + CentreOnScreen(wxBOTH); + } #if wxVERSION_NUMBER >= 2900 if(!wxPersistenceManager::Get().Find(this)) { wxPersistenceManager::Get().RegisterAndRestore(this); @@ -65,74 +69,6 @@ } -NewWorkspaceSelectionDlgBase::NewWorkspaceSelectionDlgBase(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style) - : wxDialog(parent, id, title, pos, size, style) -{ - if ( !bBitmapLoaded ) { - // We need to initialise the default bitmap handler - wxXmlResource::Get()->AddHandler(new wxBitmapXmlHandler); - wxCF01InitBitmapResources(); - bBitmapLoaded = true; - } - - wxBoxSizer* bSizer2 = new wxBoxSizer(wxVERTICAL); - this->SetSizer(bSizer2); - - m_panel1 = new wxPanel(this, wxID_ANY, wxDefaultPosition, wxSize(-1, -1), wxWANTS_CHARS|wxTAB_TRAVERSAL); - - bSizer2->Add(m_panel1, 1, wxALL|wxEXPAND, 5); - - wxBoxSizer* bSizer11 = new wxBoxSizer(wxVERTICAL); - m_panel1->SetSizer(bSizer11); - - wxArrayString m_radioBoxArr; - m_radioBoxArr.Add(_("C++ Workspace")); - m_radioBoxArr.Add(_("PHP Workspace")); - m_radioBox = new wxRadioBox(m_panel1, wxID_ANY, _("Select the workspace type:"), wxDefaultPosition, wxSize(-1,-1), m_radioBoxArr, 1, wxRA_SPECIFY_COLS); - m_radioBox->SetSelection(0); - - bSizer11->Add(m_radioBox, 0, wxALL|wxEXPAND, 5); - - m_stdBtnSizer469 = new wxStdDialogButtonSizer(); - - bSizer2->Add(m_stdBtnSizer469, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 5); - - m_buttonOK = new wxButton(this, wxID_OK, wxT(""), wxDefaultPosition, wxSize(-1, -1), 0); - m_buttonOK->SetDefault(); - m_stdBtnSizer469->AddButton(m_buttonOK); - - m_buttonCancel = new wxButton(this, wxID_CANCEL, wxT(""), wxDefaultPosition, wxSize(-1, -1), 0); - m_stdBtnSizer469->AddButton(m_buttonCancel); - m_stdBtnSizer469->Realize(); - - SetName(wxT("NewWorkspaceSelectionDlgBase")); - SetSizeHints(-1,-1); - if ( GetSizer() ) { - GetSizer()->Fit(this); - } - CentreOnParent(wxBOTH); -#if wxVERSION_NUMBER >= 2900 - if(!wxPersistenceManager::Get().Find(this)) { - wxPersistenceManager::Get().RegisterAndRestore(this); - } else { - wxPersistenceManager::Get().Restore(this); - } -#endif - // Connect events - this->Connect(wxEVT_CLOSE_WINDOW, wxCloseEventHandler(NewWorkspaceSelectionDlgBase::OnClose), NULL, this); - this->Connect(wxEVT_KEY_DOWN, wxKeyEventHandler(NewWorkspaceSelectionDlgBase::OnKeyDown), NULL, this); - m_panel1->Connect(wxEVT_KEY_DOWN, wxKeyEventHandler(NewWorkspaceSelectionDlgBase::OnKeyDown), NULL, this); - -} - -NewWorkspaceSelectionDlgBase::~NewWorkspaceSelectionDlgBase() -{ - this->Disconnect(wxEVT_CLOSE_WINDOW, wxCloseEventHandler(NewWorkspaceSelectionDlgBase::OnClose), NULL, this); - this->Disconnect(wxEVT_KEY_DOWN, wxKeyEventHandler(NewWorkspaceSelectionDlgBase::OnKeyDown), NULL, this); - m_panel1->Disconnect(wxEVT_KEY_DOWN, wxKeyEventHandler(NewWorkspaceSelectionDlgBase::OnKeyDown), NULL, this); - -} - NewPHPWorkspaceBaseDlg::NewPHPWorkspaceBaseDlg(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style) : wxDialog(parent, id, title, pos, size, style) { @@ -151,7 +87,7 @@ fgSizer1->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); fgSizer1->AddGrowableCol(1); - bSizer3->Add(fgSizer1, 0, wxALL|wxEXPAND, 5); + bSizer3->Add(fgSizer1, 0, wxALL|wxEXPAND, 10); m_staticText2 = new wxStaticText(this, wxID_ANY, _("Name:"), wxDefaultPosition, wxSize(-1, -1), 0); @@ -173,24 +109,37 @@ fgSizer1->Add(m_staticText3, 0, wxALL|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5); m_textCtrlPath = new wxTextCtrl(this, wxID_ANY, wxT(""), wxDefaultPosition, wxSize(-1,-1), 0); + m_textCtrlPath->SetToolTip(_("The workspace path. This path must exist")); #if wxVERSION_NUMBER >= 3000 m_textCtrlPath->SetHint(wxT("")); #endif fgSizer1->Add(m_textCtrlPath, 1, wxALL|wxEXPAND, 5); - m_button49 = new wxButton(this, wxID_ANY, _("Browse"), wxDefaultPosition, wxSize(-1,-1), 0); + m_button49 = new wxButton(this, wxID_ANY, _("..."), wxDefaultPosition, wxSize(-1,-1), wxBU_EXACTFIT); + m_button49->SetToolTip(_("Browse for folder")); fgSizer1->Add(m_button49, 0, wxALIGN_CENTER_VERTICAL, 5); fgSizer1->Add(0, 0, 0, wxALL, 5); + m_checkBoxAddProjectFromSources = new wxCheckBox(this, wxID_ANY, _("Create a project from the source files under the workspace path"), wxDefaultPosition, wxSize(-1,-1), 0); + m_checkBoxAddProjectFromSources->SetValue(false); + m_checkBoxAddProjectFromSources->SetToolTip(_("When checked, CodeLite will create a PHP project that contains all the source files located\nunder the workspace directory")); + + fgSizer1->Add(m_checkBoxAddProjectFromSources, 0, wxALL, 5); + + fgSizer1->Add(0, 0, 1, wxALL, 5); + + fgSizer1->Add(0, 0, 1, wxALL, 5); + m_checkBoxCreateInSeparateDir = new wxCheckBox(this, wxID_ANY, _("Create the workspace in a separate directory"), wxDefaultPosition, wxSize(-1,-1), 0); - m_checkBoxCreateInSeparateDir->SetValue(true); + m_checkBoxCreateInSeparateDir->SetValue(false); + m_checkBoxCreateInSeparateDir->SetToolTip(_("When enabled, create the workspace in a sub directory")); fgSizer1->Add(m_checkBoxCreateInSeparateDir, 0, wxALL, 5); - fgSizer1->Add(0, 0, 1, wxALL, 5); + bSizer3->Add(0, 0, 1, wxALL|wxEXPAND, 5); m_textCtrlPreview = new wxTextCtrl(this, wxID_ANY, wxT(""), wxDefaultPosition, wxSize(-1,-1), wxTE_READONLY); #if wxVERSION_NUMBER >= 3000 @@ -199,27 +148,28 @@ bSizer3->Add(m_textCtrlPreview, 0, wxALL|wxEXPAND, 5); - bSizer3->Add(0, 0, 1, wxALL|wxEXPAND, 5); - - wxBoxSizer* bSizer4 = new wxBoxSizer(wxHORIZONTAL); - - bSizer3->Add(bSizer4, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 5); - - m_button6 = new wxButton(this, wxID_OK, _("&OK"), wxDefaultPosition, wxSize(-1, -1), 0); - m_button6->SetDefault(); + m_stdBtnSizer685 = new wxStdDialogButtonSizer(); - bSizer4->Add(m_button6, 0, wxALL, 5); + bSizer3->Add(m_stdBtnSizer685, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 10); - m_button7 = new wxButton(this, wxID_CANCEL, _("&Cancel"), wxDefaultPosition, wxSize(-1, -1), 0); + m_button687 = new wxButton(this, wxID_OK, wxT(""), wxDefaultPosition, wxSize(-1, -1), 0); + m_button687->SetDefault(); + m_stdBtnSizer685->AddButton(m_button687); - bSizer4->Add(m_button7, 0, wxALL, 5); + m_button689 = new wxButton(this, wxID_CANCEL, wxT(""), wxDefaultPosition, wxSize(-1, -1), 0); + m_stdBtnSizer685->AddButton(m_button689); + m_stdBtnSizer685->Realize(); SetName(wxT("NewPHPWorkspaceBaseDlg")); SetSizeHints(-1,-1); - if ( GetSizer() ) { + if (GetSizer()) { GetSizer()->Fit(this); } - CentreOnParent(wxBOTH); + if(GetParent()) { + CentreOnParent(wxBOTH); + } else { + CentreOnScreen(wxBOTH); + } #if wxVERSION_NUMBER >= 2900 if(!wxPersistenceManager::Get().Find(this)) { wxPersistenceManager::Get().RegisterAndRestore(this); @@ -231,8 +181,8 @@ m_textCtrlName->Connect(wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler(NewPHPWorkspaceBaseDlg::OnNameUpdated), NULL, this); m_button49->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(NewPHPWorkspaceBaseDlg::OnBrowse), NULL, this); m_checkBoxCreateInSeparateDir->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(NewPHPWorkspaceBaseDlg::OnCheckMakeSeparateDir), NULL, this); - m_button6->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(NewPHPWorkspaceBaseDlg::OnOK), NULL, this); - m_button6->Connect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(NewPHPWorkspaceBaseDlg::OnOKUI), NULL, this); + m_button687->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(NewPHPWorkspaceBaseDlg::OnOK), NULL, this); + m_button687->Connect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(NewPHPWorkspaceBaseDlg::OnOKUI), NULL, this); } @@ -241,8 +191,8 @@ m_textCtrlName->Disconnect(wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler(NewPHPWorkspaceBaseDlg::OnNameUpdated), NULL, this); m_button49->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(NewPHPWorkspaceBaseDlg::OnBrowse), NULL, this); m_checkBoxCreateInSeparateDir->Disconnect(wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(NewPHPWorkspaceBaseDlg::OnCheckMakeSeparateDir), NULL, this); - m_button6->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(NewPHPWorkspaceBaseDlg::OnOK), NULL, this); - m_button6->Disconnect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(NewPHPWorkspaceBaseDlg::OnOKUI), NULL, this); + m_button687->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(NewPHPWorkspaceBaseDlg::OnOK), NULL, this); + m_button687->Disconnect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(NewPHPWorkspaceBaseDlg::OnOKUI), NULL, this); } @@ -302,10 +252,14 @@ SetName(wxT("NewFileDlgBase")); SetSizeHints(-1,-1); - if ( GetSizer() ) { + if (GetSizer()) { GetSizer()->Fit(this); } - CentreOnParent(wxBOTH); + if(GetParent()) { + CentreOnParent(wxBOTH); + } else { + CentreOnScreen(wxBOTH); + } #if wxVERSION_NUMBER >= 2900 if(!wxPersistenceManager::Get().Find(this)) { wxPersistenceManager::Get().RegisterAndRestore(this); @@ -354,10 +308,14 @@ SetName(wxT("OpenResourceDlgBase")); SetSizeHints(-1,-1); - if ( GetSizer() ) { + if (GetSizer()) { GetSizer()->Fit(this); } - CentreOnParent(wxBOTH); + if(GetParent()) { + CentreOnParent(wxBOTH); + } else { + CentreOnScreen(wxBOTH); + } #if wxVERSION_NUMBER >= 2900 if(!wxPersistenceManager::Get().Find(this)) { wxPersistenceManager::Get().RegisterAndRestore(this); @@ -584,10 +542,14 @@ SetName(wxT("PHPSettingsBaseDlg")); SetSizeHints(-1,-1); - if ( GetSizer() ) { + if (GetSizer()) { GetSizer()->Fit(this); } - CentreOnParent(wxBOTH); + if(GetParent()) { + CentreOnParent(wxBOTH); + } else { + CentreOnScreen(wxBOTH); + } #if wxVERSION_NUMBER >= 2900 if(!wxPersistenceManager::Get().Find(this)) { wxPersistenceManager::Get().RegisterAndRestore(this); @@ -641,7 +603,7 @@ m_staticText457Font.SetWeight(wxFONTWEIGHT_BOLD); m_staticText457->SetFont(m_staticText457Font); - bSizer21->Add(m_staticText457, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 5); + bSizer21->Add(m_staticText457, 0, wxALL|wxALIGN_LEFT, 5); m_choicebook1 = new wxChoicebook(m_panel43, wxID_ANY, wxDefaultPosition, wxSize(-1, -1), 0); m_choicebook1->SetName(wxT("m_choicebook1")); @@ -916,10 +878,14 @@ SetName(wxT("PHPProjectSettingsBase")); SetSizeHints(-1,-1); - if ( GetSizer() ) { + if (GetSizer()) { GetSizer()->Fit(this); } - CentreOnParent(wxBOTH); + if(GetParent()) { + CentreOnParent(wxBOTH); + } else { + CentreOnScreen(wxBOTH); + } #if wxVERSION_NUMBER >= 2900 if(!wxPersistenceManager::Get().Find(this)) { wxPersistenceManager::Get().RegisterAndRestore(this); @@ -1029,10 +995,14 @@ SetName(wxT("FileMappingDlgBase")); SetSizeHints(-1,-1); - if ( GetSizer() ) { + if (GetSizer()) { GetSizer()->Fit(this); } - CentreOnParent(wxBOTH); + if(GetParent()) { + CentreOnParent(wxBOTH); + } else { + CentreOnScreen(wxBOTH); + } #if wxVERSION_NUMBER >= 2900 if(!wxPersistenceManager::Get().Find(this)) { wxPersistenceManager::Get().RegisterAndRestore(this); @@ -1086,16 +1056,15 @@ bSizer5->Add(m_gaugeParseProgress, 0, wxALL|wxEXPAND, 2); - m_treeCtrlView = new MyTreeView(this, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxTR_DEFAULT_STYLE|wxTR_MULTIPLE|wxTR_FULL_ROW_HIGHLIGHT|wxTR_NO_LINES); + m_treeCtrlView = new MyTreeView(this, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxTR_MULTIPLE|wxTR_FULL_ROW_HIGHLIGHT|wxTR_NO_LINES|wxTR_HAS_BUTTONS|wxBORDER_STATIC); bSizer5->Add(m_treeCtrlView, 1, wxALL|wxEXPAND, 2); SetName(wxT("PHPWorkspaceViewBase")); SetSizeHints(-1,-1); - if ( GetSizer() ) { + if (GetSizer()) { GetSizer()->Fit(this); } - CentreOnParent(wxBOTH); // Connect events this->Connect(ID_PHP_PROJECT_SETTINGS, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler(PHPWorkspaceViewBase::OnActiveProjectSettings), NULL, this); this->Connect(ID_PHP_PROJECT_SETTINGS, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(PHPWorkspaceViewBase::OnActiveProjectSettingsUI), NULL, this); @@ -1162,7 +1131,7 @@ wxBoxSizer* boxSizer129 = new wxBoxSizer(wxVERTICAL); this->SetSizer(boxSizer129); - m_auiBook = new wxAuiNotebook(this, wxID_ANY, wxDefaultPosition, wxSize(300,300), wxAUI_NB_TAB_MOVE|wxAUI_NB_TAB_SPLIT); + m_auiBook = new Notebook(this, wxID_ANY, wxDefaultPosition, wxSize(300,300), wxAUI_NB_TAB_MOVE|wxAUI_NB_TAB_SPLIT); m_auiBook->SetName(wxT("m_auiBook")); boxSizer129->Add(m_auiBook, 1, wxALL|wxEXPAND, 2); @@ -1173,16 +1142,7 @@ wxBoxSizer* boxSizer144 = new wxBoxSizer(wxVERTICAL); m_panel140->SetSizer(boxSizer144); - m_dvListCtrlStackTrace = new wxDataViewListCtrl(m_panel140, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxDV_ROW_LINES|wxDV_SINGLE); - #ifdef __WXMSW__ - // To get the newer version of the font on MSW, we use font wxSYS_DEFAULT_GUI_FONT with family set to wxFONTFAMILY_TELETYPE - wxFont m_dvListCtrlStackTraceFont = wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT); - m_dvListCtrlStackTraceFont.SetFamily(wxFONTFAMILY_TELETYPE); - #else - wxFont m_dvListCtrlStackTraceFont = wxSystemSettings::GetFont(wxSYS_ANSI_FIXED_FONT); - m_dvListCtrlStackTraceFont.SetFamily(wxFONTFAMILY_TELETYPE); - #endif - m_dvListCtrlStackTrace->SetFont(m_dvListCtrlStackTraceFont); + m_dvListCtrlStackTrace = new wxDataViewListCtrl(m_panel140, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxDV_VERT_RULES|wxDV_ROW_LINES|wxDV_SINGLE); boxSizer144->Add(m_dvListCtrlStackTrace, 1, wxALL|wxEXPAND, 2); @@ -1233,10 +1193,9 @@ SetName(wxT("PHPDebugPaneBase")); SetSizeHints(300,300); - if ( GetSizer() ) { + if (GetSizer()) { GetSizer()->Fit(this); } - CentreOnParent(wxBOTH); // Connect events m_dvListCtrlStackTrace->Connect(wxEVT_COMMAND_DATAVIEW_ITEM_ACTIVATED, wxDataViewEventHandler(PHPDebugPaneBase::OnCallStackItemActivated), NULL, this); m_dvListCtrlBreakpoints->Connect(wxEVT_COMMAND_DATAVIEW_ITEM_ACTIVATED, wxDataViewEventHandler(PHPDebugPaneBase::OnBreakpointItemActivated), NULL, this); @@ -1286,10 +1245,9 @@ SetName(wxT("LocalsViewBase")); SetSizeHints(-1,-1); - if ( GetSizer() ) { + if (GetSizer()) { GetSizer()->Fit(this); } - CentreOnParent(wxBOTH); // Connect events m_dataview->Connect(wxEVT_COMMAND_DATAVIEW_ITEM_COLLAPSED, wxDataViewEventHandler(LocalsViewBase::OnLocalCollapsed), NULL, this); m_dataview->Connect(wxEVT_COMMAND_DATAVIEW_ITEM_EXPANDED, wxDataViewEventHandler(LocalsViewBase::OnLocalExpanded), NULL, this); @@ -1378,6 +1336,15 @@ m_bitmaps.insert( std::make_pair(wxT("m_bmpSync"), bmp ) ); } + { + wxBitmap bmp; + wxIcon icn; + bmp = wxXmlResource::Get()->LoadBitmap(wxT("m_bmpPhpWorkspace")); + icn.CopyFromBitmap( bmp ); + this->Add( icn ); + m_bitmaps.insert( std::make_pair(wxT("m_bmpPhpWorkspace"), bmp ) ); + } + } PHPImages::~PHPImages() @@ -1397,17 +1364,13 @@ wxBoxSizer* boxSizer255 = new wxBoxSizer(wxVERTICAL); this->SetSizer(boxSizer255); - m_notebook257 = new wxNotebook(this, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxBK_DEFAULT); + m_notebook257 = new Notebook(this, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxBK_DEFAULT); m_notebook257->SetName(wxT("m_notebook257")); - wxImageList* m_notebook257_il = new wxImageList(16, 16); - m_notebook257->AssignImageList(m_notebook257_il); boxSizer255->Add(m_notebook257, 1, wxALL|wxEXPAND, 2); m_panel259 = new wxPanel(m_notebook257, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxTAB_TRAVERSAL); - int m_panel259ImgIndex; - m_panel259ImgIndex = m_notebook257_il->Add(wxXmlResource::Get()->LoadBitmap(wxT("devil"))); - m_notebook257->AddPage(m_panel259, _("Eval"), true, m_panel259ImgIndex); + m_notebook257->AddPage(m_panel259, _("Eval"), true); wxBoxSizer* boxSizer254 = new wxBoxSizer(wxVERTICAL); m_panel259->SetSizer(boxSizer254); @@ -1478,9 +1441,7 @@ boxSizer247->Add(m_buttonSend, 0, wxALL|wxALIGN_CENTER_VERTICAL, 2); m_panel261 = new wxPanel(m_notebook257, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxTAB_TRAVERSAL); - int m_panel261ImgIndex; - m_panel261ImgIndex = m_notebook257_il->Add(wxXmlResource::Get()->LoadBitmap(wxT("console"))); - m_notebook257->AddPage(m_panel261, _("XDebug Console"), false, m_panel261ImgIndex); + m_notebook257->AddPage(m_panel261, _("XDebug Console"), false); wxBoxSizer* boxSizer263 = new wxBoxSizer(wxVERTICAL); m_panel261->SetSizer(boxSizer263); @@ -1552,10 +1513,9 @@ SetName(wxT("EvalPaneBase")); SetSizeHints(500,300); - if ( GetSizer() ) { + if (GetSizer()) { GetSizer()->Fit(this); } - CentreOnParent(wxBOTH); // Connect events m_textCtrlExpression->Connect(wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler(EvalPaneBase::OnEnter), NULL, this); m_buttonSend->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(EvalPaneBase::OnSend), NULL, this); @@ -1696,10 +1656,14 @@ SetName(wxT("PHPDebugStartDlgBase")); SetSizeHints(-1,-1); - if ( GetSizer() ) { + if (GetSizer()) { GetSizer()->Fit(this); } - CentreOnParent(wxBOTH); + if(GetParent()) { + CentreOnParent(wxBOTH); + } else { + CentreOnScreen(wxBOTH); + } #if wxVERSION_NUMBER >= 2900 if(!wxPersistenceManager::Get().Find(this)) { wxPersistenceManager::Get().RegisterAndRestore(this); @@ -1920,10 +1884,14 @@ SetName(wxT("NewPHPProjectWizardBase")); SetSizeHints(-1,-1); - if ( GetSizer() ) { + if (GetSizer()) { GetSizer()->Fit(this); } - CentreOnParent(wxBOTH); + if(GetParent()) { + CentreOnParent(wxBOTH); + } else { + CentreOnScreen(wxBOTH); + } #if wxVERSION_NUMBER >= 2900 if(!wxPersistenceManager::Get().Find(this)) { wxPersistenceManager::Get().RegisterAndRestore(this); @@ -2101,10 +2069,14 @@ SetName(wxT("PHPXDebugSetupWizardBase")); SetSizeHints(500,300); - if ( GetSizer() ) { + if (GetSizer()) { GetSizer()->Fit(this); } - CentreOnParent(wxBOTH); + if(GetParent()) { + CentreOnParent(wxBOTH); + } else { + CentreOnScreen(wxBOTH); + } #if wxVERSION_NUMBER >= 2900 if(!wxPersistenceManager::Get().Find(this)) { wxPersistenceManager::Get().RegisterAndRestore(this); @@ -2138,7 +2110,7 @@ wxBoxSizer* boxSizer657 = new wxBoxSizer(wxVERTICAL); this->SetSizer(boxSizer657); - m_dvListCtrlFunctions = new wxDataViewListCtrl(this, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxDV_ROW_LINES|wxDV_SINGLE); + m_dvListCtrlFunctions = new wxDataViewListCtrl(this, wxID_ANY, wxDefaultPosition, wxSize(-1,200), wxDV_ROW_LINES|wxDV_SINGLE); boxSizer657->Add(m_dvListCtrlFunctions, 1, wxALL|wxEXPAND, 5); @@ -2182,10 +2154,14 @@ SetName(wxT("PHPSettersGettersDialogBase")); SetSizeHints(-1,-1); - if ( GetSizer() ) { + if (GetSizer()) { GetSizer()->Fit(this); } - CentreOnParent(wxBOTH); + if(GetParent()) { + CentreOnParent(wxBOTH); + } else { + CentreOnScreen(wxBOTH); + } #if wxVERSION_NUMBER >= 2900 if(!wxPersistenceManager::Get().Find(this)) { wxPersistenceManager::Get().RegisterAndRestore(this); diff -Nru codelite-8.0.1+dfsg2/codelitephp/php-plugin/php_ui.h codelite-9.0+dfsg/codelitephp/php-plugin/php_ui.h --- codelite-8.0.1+dfsg2/codelitephp/php-plugin/php_ui.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/codelitephp/php-plugin/php_ui.h 2015-10-11 13:56:07.000000000 +0000 @@ -4,8 +4,8 @@ // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// -#ifndef PHP_UI_BASE_CLASSES_H -#define PHP_UI_BASE_CLASSES_H +#ifndef CODELITEPHP_PHP_PLUGIN_PHP_UI_BASE_CLASSES_H +#define CODELITEPHP_PHP_PLUGIN_PHP_UI_BASE_CLASSES_H #include #include @@ -16,14 +16,13 @@ #include #include #include "php_file_layout_tree.h" -#include -#include -#include #include +#include #include #include #include #include +#include #include #include #include @@ -38,6 +37,7 @@ #include #include "my_tree_view.h" #include +#include "Notebook.h" #include "xdebuglocalsviewmodel.h" #include #include @@ -50,6 +50,7 @@ #include #include #include +#include #if wxVERSION_NUMBER >= 2900 #include #include @@ -76,27 +77,6 @@ }; -class NewWorkspaceSelectionDlgBase : public wxDialog -{ -protected: - wxPanel* m_panel1; - wxRadioBox* m_radioBox; - wxStdDialogButtonSizer* m_stdBtnSizer469; - wxButton* m_buttonOK; - wxButton* m_buttonCancel; - -protected: - virtual void OnClose(wxCloseEvent& event) { event.Skip(); } - virtual void OnKeyDown(wxKeyEvent& event) { event.Skip(); } - -public: - wxRadioBox* GetRadioBox() { return m_radioBox; } - wxPanel* GetPanel1() { return m_panel1; } - NewWorkspaceSelectionDlgBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("New Workspace Type..."), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER); - virtual ~NewWorkspaceSelectionDlgBase(); -}; - - class NewPHPWorkspaceBaseDlg : public wxDialog { protected: @@ -105,10 +85,12 @@ wxStaticText* m_staticText3; wxTextCtrl* m_textCtrlPath; wxButton* m_button49; + wxCheckBox* m_checkBoxAddProjectFromSources; wxCheckBox* m_checkBoxCreateInSeparateDir; wxTextCtrl* m_textCtrlPreview; - wxButton* m_button6; - wxButton* m_button7; + wxStdDialogButtonSizer* m_stdBtnSizer685; + wxButton* m_button687; + wxButton* m_button689; protected: virtual void OnNameUpdated(wxCommandEvent& event) { event.Skip(); } @@ -123,11 +105,10 @@ wxStaticText* GetStaticText3() { return m_staticText3; } wxTextCtrl* GetTextCtrlPath() { return m_textCtrlPath; } wxButton* GetButton49() { return m_button49; } + wxCheckBox* GetCheckBoxAddProjectFromSources() { return m_checkBoxAddProjectFromSources; } wxCheckBox* GetCheckBoxCreateInSeparateDir() { return m_checkBoxCreateInSeparateDir; } wxTextCtrl* GetTextCtrlPreview() { return m_textCtrlPreview; } - wxButton* GetButton6() { return m_button6; } - wxButton* GetButton7() { return m_button7; } - NewPHPWorkspaceBaseDlg(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("New PHP Workspace"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1, -1), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER); + NewPHPWorkspaceBaseDlg(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("New PHP Workspace"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER); virtual ~NewPHPWorkspaceBaseDlg(); }; @@ -412,7 +393,7 @@ ID_DELETE_BREAKPOINTS = 8002, }; protected: - wxAuiNotebook* m_auiBook; + Notebook* m_auiBook; wxPanel* m_panel140; wxDataViewListCtrl* m_dvListCtrlStackTrace; wxPanel* m_panel142; @@ -433,7 +414,7 @@ wxDataViewListCtrl* GetDvListCtrlBreakpoints() { return m_dvListCtrlBreakpoints; } wxAuiToolBar* GetAuibar218() { return m_auibar218; } wxPanel* GetPanel142() { return m_panel142; } - wxAuiNotebook* GetAuiBook() { return m_auiBook; } + Notebook* GetAuiBook() { return m_auiBook; } PHPDebugPaneBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(300,300), long style = wxTAB_TRAVERSAL); virtual ~PHPDebugPaneBase(); }; @@ -481,7 +462,7 @@ class EvalPaneBase : public wxPanel { protected: - wxNotebook* m_notebook257; + Notebook* m_notebook257; wxPanel* m_panel259; wxStyledTextCtrl* m_stcOutput; wxTextCtrl* m_textCtrlExpression; @@ -507,7 +488,7 @@ wxTextCtrl* GetTextCtrlExpressionXdebug() { return m_textCtrlExpressionXdebug; } wxButton* GetButtonSendXdebug() { return m_buttonSendXdebug; } wxPanel* GetPanel261() { return m_panel261; } - wxNotebook* GetNotebook257() { return m_notebook257; } + Notebook* GetNotebook257() { return m_notebook257; } EvalPaneBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(500,300), long style = wxTAB_TRAVERSAL); virtual ~EvalPaneBase(); }; diff -Nru codelite-8.0.1+dfsg2/codelitephp/php-plugin/php_ui_php-plugin_bitmaps.cpp codelite-9.0+dfsg/codelitephp/php-plugin/php_ui_php-plugin_bitmaps.cpp --- codelite-8.0.1+dfsg2/codelitephp/php-plugin/php_ui_php-plugin_bitmaps.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/codelitephp/php-plugin/php_ui_php-plugin_bitmaps.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,501 +1,527 @@ -// -// This file was automatically generated by wxrc, do not edit by hand. -// - -#include - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#include -#include -#include -#include - -#if wxCHECK_VERSION(2,8,5) && wxABI_VERSION >= 20805 - #define XRC_ADD_FILE(name, data, size, mime) \ - wxMemoryFSHandler::AddFileWithMimeType(name, data, size, mime) -#else - #define XRC_ADD_FILE(name, data, size, mime) \ - wxMemoryFSHandler::AddFile(name, data, size) -#endif - -static size_t xml_res_size_0 = 516; -static unsigned char xml_res_file_0[] = { -137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, -0,31,243,255,97,0,0,0,6,98,75,71,68,0,255,0,255,0,255,160,189,167,147,0, -0,0,9,112,72,89,115,0,0,13,215,0,0,13,215,1,66,40,155,120,0,0,0,7,116,73, -77,69,7,223,1,11,6,17,12,155,63,185,98,0,0,1,145,73,68,65,84,56,203,165, -144,177,107,20,97,20,196,127,239,219,91,82,74,196,202,64,192,136,38,157, -86,106,99,80,48,32,228,190,47,119,228,15,176,86,176,53,88,153,66,44,108, -210,42,248,47,196,187,221,229,82,28,4,21,49,69,170,148,137,4,5,83,72,64, -34,40,114,32,251,246,89,220,138,113,77,214,131,76,57,111,102,222,48,194, -17,152,159,95,156,114,78,159,136,48,11,96,198,43,208,135,89,150,125,170, -106,165,74,120,239,207,137,68,155,192,153,202,233,179,136,93,77,146,100, -239,159,0,239,253,164,72,180,2,204,254,49,90,207,172,184,223,104,52,98, -85,123,1,92,47,61,95,64,222,130,62,72,211,116,87,74,243,22,48,254,87,178, -216,100,146,36,123,237,118,251,162,170,189,171,54,50,227,32,142,221,37, -87,126,30,7,222,64,113,1,216,7,246,7,131,193,1,128,170,61,29,154,173,103, -166,83,170,209,121,51,214,68,56,157,231,182,226,128,57,128,60,119,119,210, -52,221,117,142,219,99,99,241,68,191,223,255,81,62,187,57,108,196,221,44, -203,62,246,122,171,31,84,221,189,178,199,92,227,247,14,206,253,204,1,186, -221,238,214,225,170,105,218,61,85,29,58,142,181,48,19,0,113,192,250,48, -32,122,30,66,56,203,127,208,108,54,39,138,66,158,149,75,173,139,247,139, -51,34,186,81,29,113,4,124,141,34,185,230,178,108,117,219,76,47,3,47,129, -239,35,24,191,129,116,160,184,210,233,116,222,215,42,189,95,88,242,126, -97,169,78,19,29,119,8,161,181,44,34,143,69,228,214,244,244,140,236,236, -108,191,30,57,32,132,214,50,240,232,16,117,163,46,132,154,22,22,66,203, -234,52,142,19,226,196,1,191,0,123,238,146,98,147,64,157,113,0,0,0,0,73, -69,78,68,174,66,96,130}; - -static size_t xml_res_size_1 = 425; -static unsigned char xml_res_file_1[] = { -137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, -0,31,243,255,97,0,0,0,6,98,75,71,68,0,255,0,255,0,255,160,189,167,147,0, -0,0,9,112,72,89,115,0,0,13,215,0,0,13,215,1,66,40,155,120,0,0,0,7,116,73, -77,69,7,222,11,17,20,1,43,213,29,21,185,0,0,1,54,73,68,65,84,56,203,165, -147,189,78,2,81,16,133,191,185,43,80,217,202,210,218,153,168,47,65,208, -130,184,96,193,19,152,16,59,27,41,124,7,163,70,67,179,145,39,160,208,37, -38,34,54,60,130,149,157,13,149,29,129,110,119,217,29,11,2,209,117,13,63, -126,213,205,205,156,59,231,204,205,8,9,202,229,227,93,203,210,19,144,18, -104,30,64,132,207,56,150,87,99,226,123,207,243,222,191,215,203,236,80,171, -213,178,190,31,92,129,156,2,22,233,68,170,218,44,20,242,231,174,235,134, -243,7,166,226,240,9,40,177,28,47,185,92,198,105,183,219,129,1,240,253,240, -110,5,49,192,97,16,132,215,0,82,169,84,246,84,229,13,48,201,170,78,231, -81,0,28,167,170,105,113,68,116,223,168,74,61,77,188,4,150,170,212,141,42, -69,214,68,132,162,56,78,117,12,108,38,109,255,69,34,206,216,172,105,127, -110,98,67,149,129,8,59,105,29,22,12,17,144,129,1,233,254,99,6,207,6,38, -45,32,90,67,63,137,99,211,154,89,188,1,206,86,235,46,151,158,247,208,48, -0,182,189,213,16,161,183,188,92,187,163,209,240,130,217,15,184,174,27,102, -179,153,35,208,230,130,56,145,170,222,218,118,222,233,247,251,147,31,219, -248,123,157,57,0,221,158,222,154,15,85,122,105,235,252,5,22,35,120,247, -44,132,234,26,0,0,0,0,73,69,78,68,174,66,96,130}; - -static size_t xml_res_size_2 = 504; -static unsigned char xml_res_file_2[] = { -137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, -0,31,243,255,97,0,0,1,191,73,68,65,84,120,94,165,83,205,110,218,64,16,254, -118,177,1,97,225,184,80,14,189,112,162,2,129,196,163,68,125,18,46,60,73, -115,69,220,184,86,161,138,196,99,112,70,61,33,213,106,185,132,132,127,27, -255,108,103,166,150,229,68,185,49,210,167,89,207,124,243,183,59,86,198, -24,220,34,26,55,138,250,249,244,244,7,192,151,36,78,96,149,74,40,189,129, -134,210,4,165,160,9,128,18,91,146,36,130,115,16,252,181,216,249,237,254, -30,174,235,226,221,56,252,253,94,11,46,151,11,202,229,50,126,60,62,66,18, -164,105,138,201,100,130,249,124,142,237,118,11,173,101,50,174,194,62,209, -196,19,223,106,181,18,91,16,4,194,209,236,96,89,44,22,24,141,70,240,125, -31,187,221,14,167,211,41,199,249,124,150,192,229,114,41,231,98,135,150, -130,8,134,195,33,198,227,49,28,199,193,126,191,71,165,82,97,179,4,172,215, -107,73,244,145,104,100,29,76,167,83,92,175,87,206,42,193,150,101,225,120, -60,98,179,217,200,188,158,231,161,94,175,163,90,173,190,233,64,70,168,213, -106,114,235,182,109,115,176,224,112,56,32,138,34,52,155,77,180,90,45,209, -25,152,47,200,247,224,51,25,169,74,222,118,24,134,76,200,3,27,141,70,17, -204,23,72,7,184,81,44,24,131,59,207,227,17,242,231,242,178,239,236,57,185, -146,248,226,56,150,123,42,138,54,0,6,131,1,218,237,54,58,157,14,250,253, -62,122,189,158,160,219,237,126,164,153,47,144,103,164,21,86,223,31,30,228, -2,227,88,22,7,41,175,42,235,255,40,156,19,110,88,186,216,62,63,227,229, -245,69,169,217,108,214,166,202,95,137,112,71,206,79,128,113,40,179,109, -0,77,108,233,16,6,169,129,73,1,68,48,56,209,249,149,56,59,255,183,255,171, -248,59,243,6,150,149,82,85,185,27,160,68,80,25,82,6,249,40,129,9,235,174, -27,34,147,127,134,135,8,20,97,233,216,1,0,0,0,0,73,69,78,68,174,66,96,130}; - -static size_t xml_res_size_3 = 428; -static unsigned char xml_res_file_3[] = { -137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, -0,31,243,255,97,0,0,1,115,73,68,65,84,120,94,165,147,49,75,3,65,16,133, -39,40,216,72,82,164,73,47,87,8,98,147,8,65,80,54,9,98,167,85,82,164,81, -180,176,177,177,73,39,158,104,33,41,236,173,172,108,226,79,144,68,123,19, -11,193,42,104,157,230,154,43,4,35,50,206,155,229,134,51,104,99,2,95,222, -204,155,153,189,205,132,203,48,51,77,243,153,85,57,216,128,132,194,137, -80,17,30,254,232,119,194,189,112,170,253,87,119,68,184,193,215,126,37,20, -152,59,23,44,10,28,252,52,240,38,122,66,248,90,252,216,89,211,2,223,156, -169,74,14,236,16,196,191,245,216,1,239,205,178,19,152,175,143,129,54,32, -87,223,3,47,169,91,13,179,186,196,184,94,180,223,151,173,213,72,63,249, -60,197,157,142,134,217,70,131,40,138,52,142,187,93,74,246,148,189,29,248, -27,68,91,75,137,58,129,249,242,16,224,169,192,114,169,1,151,158,209,175, -209,102,0,77,98,39,48,159,239,253,64,60,128,225,244,140,255,27,63,199,99, -136,98,113,46,71,52,26,249,184,80,48,127,178,79,79,121,91,45,36,234,4,127, -237,163,237,52,234,73,13,184,100,198,150,56,92,201,219,18,131,86,139,168, -215,67,78,195,126,95,53,40,149,84,169,90,165,97,187,109,75,12,30,35,127, -131,151,229,121,39,248,39,239,174,43,200,213,247,152,47,61,86,179,37,62, -47,206,249,225,102,89,145,28,216,194,16,11,86,71,47,114,59,224,41,152,9, -5,230,122,145,69,129,147,152,210,192,155,232,9,109,7,131,133,204,191,94, -166,226,43,211,212,175,243,55,79,113,167,84,66,180,33,142,0,0,0,0,73,69, -78,68,174,66,96,130}; - -static size_t xml_res_size_4 = 211; -static unsigned char xml_res_file_4[] = { -137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, -0,31,243,255,97,0,0,0,154,73,68,65,84,120,94,237,82,49,10,194,64,16,28, -101,73,202,251,210,89,248,135,252,192,55,249,131,148,41,3,22,110,155,34, -112,141,41,108,44,12,88,152,38,101,194,193,201,44,250,128,144,198,34,3, -3,195,238,204,178,44,187,75,41,97,13,246,20,219,128,117,16,19,167,227,21, -34,30,89,6,228,185,209,180,8,12,49,2,243,12,76,19,73,205,154,226,124,57, -152,99,28,6,239,138,2,75,48,150,165,119,191,13,222,125,15,215,182,88,2, -203,240,6,223,13,52,84,21,110,117,141,187,42,30,77,131,103,8,120,117,29, -73,205,26,123,230,161,151,25,102,255,225,19,183,1,31,82,186,71,83,70,84, -114,252,0,0,0,0,73,69,78,68,174,66,96,130}; - -static size_t xml_res_size_5 = 685; -static unsigned char xml_res_file_5[] = { -137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, -0,31,243,255,97,0,0,2,116,73,68,65,84,56,141,133,147,75,107,19,81,20,199, -127,231,206,76,243,104,146,38,77,211,84,69,99,213,162,216,69,125,20,84, -4,17,68,17,81,16,196,157,224,198,133,43,253,16,10,226,119,112,227,3,183, -162,46,221,249,0,17,21,223,5,21,173,152,134,182,105,155,216,100,38,119, -38,51,115,221,20,169,181,234,89,30,254,143,243,68,0,225,255,241,55,140, -218,173,224,60,140,216,255,32,247,3,23,96,164,162,86,17,40,23,173,117,42, -205,197,242,95,76,4,88,43,8,57,185,90,206,168,63,48,42,83,206,38,123,6, -19,39,198,147,36,108,16,181,68,18,64,1,41,144,177,36,219,83,27,210,59,237, -92,226,15,23,59,236,73,125,175,140,100,50,165,90,245,230,49,225,233,98, -130,39,207,132,103,8,236,23,14,100,2,246,205,42,57,213,55,60,244,65,94, -205,10,96,126,171,240,146,163,54,13,167,83,143,202,185,194,154,222,254, -94,19,116,91,166,177,56,119,7,37,153,82,97,240,176,227,164,165,85,95,148, -90,125,225,211,55,207,63,116,25,170,254,50,1,235,108,79,226,218,250,108, -223,248,198,241,49,25,218,57,170,10,89,71,242,186,177,189,152,74,110,89, -183,107,135,244,111,27,85,105,199,38,158,157,239,15,92,61,240,21,238,206, -44,111,33,91,44,238,181,155,243,34,95,38,196,120,85,236,110,83,114,180, -48,8,214,212,4,241,116,21,169,53,165,71,187,88,176,39,185,114,6,146,207, -55,131,185,233,53,222,212,36,166,37,216,25,176,147,6,113,192,175,79,18, -186,66,167,101,240,99,8,97,33,94,185,5,207,152,123,110,190,96,26,6,211, -142,12,94,100,240,12,116,98,240,34,104,71,134,102,132,105,196,24,15,238, -85,87,8,88,21,165,222,12,148,6,207,4,173,31,217,72,34,34,133,116,1,29,130, -27,192,15,31,83,215,48,163,249,250,54,226,220,67,248,53,195,33,71,97,125, -214,186,51,234,56,143,237,190,194,41,215,109,167,116,28,211,137,144,246, -18,121,94,195,172,102,122,38,228,248,141,152,239,26,176,128,177,98,62,181, -45,193,73,171,99,12,239,92,183,86,81,246,125,149,202,30,108,249,193,64, -91,71,52,125,104,248,80,211,188,174,118,57,122,43,228,227,220,210,129,109, -118,144,18,241,149,182,246,95,88,0,109,99,120,238,121,245,222,48,190,158, -83,137,204,98,167,187,171,165,77,248,45,224,198,131,136,206,20,140,246, -42,106,121,139,112,171,195,216,144,205,233,40,138,110,79,4,188,250,237, -50,5,216,170,148,28,136,227,221,49,232,135,240,126,6,40,41,42,57,197,145, -132,34,29,195,203,133,152,71,147,33,166,187,242,49,150,11,173,246,89,171, -229,126,2,125,194,7,227,39,237,34,248,0,0,0,0,73,69,78,68,174,66,96,130}; - -static size_t xml_res_size_6 = 498; -static unsigned char xml_res_file_6[] = { -137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, -0,31,243,255,97,0,0,0,6,98,75,71,68,0,255,0,255,0,255,160,189,167,147,0, -0,1,167,73,68,65,84,56,141,181,146,207,75,84,81,20,199,63,119,156,17,116, -104,19,132,4,225,162,9,11,166,6,10,52,97,192,137,172,133,171,92,10,22,182, -44,144,126,109,139,176,63,160,69,251,32,138,118,70,8,21,173,204,22,249, -3,158,32,18,227,98,22,131,26,37,14,226,32,188,247,154,121,247,157,115,91, -148,34,229,188,69,212,119,115,23,231,123,63,247,124,207,185,240,63,181, -120,239,220,203,133,219,231,187,146,60,169,164,162,107,234,104,218,232, -178,119,179,112,242,239,0,86,56,118,225,242,17,76,198,243,110,228,139,7, -121,12,192,194,245,188,107,5,57,125,231,22,225,198,55,214,166,222,132,18, -53,199,250,159,149,95,253,1,152,31,61,229,10,15,38,126,61,43,160,130,115, -2,78,65,99,180,81,199,250,150,234,228,84,232,26,223,31,246,61,95,121,188, -11,72,3,168,85,16,33,218,92,106,25,167,173,61,203,241,145,225,206,213,201, -183,143,230,175,230,115,253,39,202,227,102,2,77,3,184,72,136,131,0,187, -93,79,152,72,29,147,233,160,123,232,98,246,203,187,15,99,115,159,123,122, -161,210,251,19,96,21,9,124,108,125,59,1,0,169,246,78,76,70,145,134,197, -217,216,237,139,32,168,31,16,39,116,208,150,61,76,108,13,95,63,206,4,77, -63,120,58,240,126,253,238,30,192,69,74,202,111,112,168,187,136,211,24,39, -49,136,221,59,101,167,134,221,81,214,62,205,134,98,229,126,105,122,253, -201,46,216,0,204,20,143,182,92,99,225,202,32,193,102,141,85,111,37,116, -34,215,74,179,27,175,247,215,77,82,230,233,190,46,151,59,147,211,106,185, -234,59,209,161,65,175,54,247,187,39,157,4,112,86,168,46,85,106,42,148,46, -45,111,85,14,242,36,127,229,72,94,152,166,57,219,234,242,63,209,15,99,239, -209,86,3,110,246,131,0,0,0,0,73,69,78,68,174,66,96,130}; - -static size_t xml_res_size_7 = 508; -static unsigned char xml_res_file_7[] = { -137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, -0,31,243,255,97,0,0,0,6,98,75,71,68,0,255,0,255,0,255,160,189,167,147,0, -0,0,9,112,72,89,115,0,0,11,19,0,0,11,19,1,0,154,156,24,0,0,0,7,116,73,77, -69,7,221,3,16,18,53,21,165,131,217,93,0,0,1,137,73,68,65,84,56,203,181, -146,191,75,66,81,20,199,191,61,125,130,54,71,139,123,224,214,32,8,13,185, -73,32,56,56,70,132,187,10,110,74,146,244,7,36,190,165,169,41,194,73,26, -28,116,112,120,91,139,139,33,162,244,23,248,131,139,136,121,31,239,221, -123,238,107,123,96,166,130,212,119,61,223,243,225,156,243,61,192,127,170, -82,169,188,150,203,229,211,93,30,109,87,81,8,113,173,105,218,71,169,84, -58,59,20,128,88,44,118,2,160,91,44,22,47,126,243,28,1,64,161,80,112,183, -65,50,153,12,166,211,41,58,157,14,23,66,220,86,171,213,198,6,32,151,203, -185,217,108,22,0,224,186,46,148,82,80,74,1,0,148,82,176,109,27,156,115, -180,90,45,110,219,246,125,173,86,123,92,91,65,8,1,34,194,120,60,198,100, -50,193,108,54,3,99,12,140,49,204,231,115,112,206,161,235,58,146,201,100, -40,24,12,62,228,243,249,39,195,48,52,0,240,3,128,148,18,150,101,97,177, -88,236,76,197,231,243,33,30,143,31,155,166,121,59,24,12,162,0,162,30,128, -115,190,23,16,8,4,160,235,58,28,199,129,148,210,245,38,32,162,189,19,132, -66,33,16,17,76,211,92,89,150,245,60,28,14,11,30,192,113,28,112,206,17,14, -135,189,35,18,17,164,148,80,74,97,185,92,98,181,90,161,219,237,114,41,229, -93,189,94,55,214,82,72,167,211,91,99,76,36,18,96,140,161,215,235,113,34, -186,105,52,26,111,27,49,110,83,42,149,114,35,145,136,26,141,70,95,68,116, -213,108,54,223,127,122,252,187,0,82,74,244,251,253,41,17,93,182,219,237, -207,67,94,249,69,8,113,190,173,249,79,244,13,229,89,229,131,163,10,197, -192,0,0,0,0,73,69,78,68,174,66,96,130}; - -static size_t xml_res_size_8 = 691; -static unsigned char xml_res_file_8[] = { -137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, -0,31,243,255,97,0,0,2,122,73,68,65,84,120,94,197,83,93,72,211,123,24,126, -246,241,223,127,155,107,77,157,19,241,35,199,232,40,214,168,252,168,176, -143,139,115,68,163,192,144,224,88,36,226,69,87,125,216,23,229,32,66,237, -92,28,234,198,176,44,88,66,31,24,193,185,136,18,36,43,201,40,209,139,160, -176,146,148,114,230,10,157,110,107,46,231,62,156,219,211,31,107,224,193, -203,130,94,120,126,47,191,231,125,158,247,226,229,125,101,36,241,51,33, -7,240,235,27,136,26,67,118,70,102,206,17,165,82,88,167,20,84,26,189,233, -15,173,104,180,164,8,250,92,253,50,49,201,69,24,178,74,255,214,22,158,187, -106,216,126,241,70,229,169,1,7,73,54,180,190,12,89,119,182,126,88,91,221, -53,186,178,184,203,101,220,242,159,211,188,245,224,121,249,74,139,58,225, -91,124,210,114,45,117,251,31,147,170,51,100,94,11,121,224,46,217,242,140, -108,235,39,109,15,200,170,235,228,234,127,73,189,141,76,169,25,164,204, -184,169,245,255,13,202,27,123,210,78,118,19,181,175,40,156,142,208,114, -129,220,118,133,220,119,155,252,203,46,153,165,191,216,16,33,234,222,18, -101,118,194,188,107,14,130,222,76,18,114,153,202,160,118,15,245,153,221, -61,221,64,208,133,232,172,7,159,124,196,168,15,24,241,0,67,211,128,195, -179,128,136,215,9,120,223,72,120,13,248,71,69,196,194,235,191,15,81,174, -40,0,131,57,80,196,128,217,41,9,211,152,15,124,197,148,63,134,247,110,98, -106,38,138,88,192,13,4,165,90,192,37,213,63,3,115,147,46,196,231,55,2,128, -2,166,226,26,164,152,43,0,220,132,119,252,161,202,31,45,209,228,23,42,231, -195,33,68,98,144,12,62,32,232,6,252,146,49,44,229,144,71,202,190,71,136, -248,103,154,155,155,50,229,200,40,178,34,181,96,2,222,96,61,135,219,109, -116,141,116,198,95,184,177,202,40,67,91,181,26,198,177,47,208,14,57,161, -9,234,160,205,183,2,218,116,192,84,72,8,154,127,0,244,3,21,246,59,154,189, -247,159,39,166,170,95,115,239,132,206,58,73,225,88,148,10,77,220,97,169, -26,111,95,115,124,226,178,34,245,218,19,241,207,78,162,220,78,148,158,237, -74,232,129,61,189,182,178,75,19,99,230,195,110,29,73,148,212,135,107,147, -242,73,211,33,82,158,196,129,132,176,180,49,116,84,93,210,71,84,63,37,118, -117,220,74,240,114,124,84,182,59,3,186,166,104,36,89,4,128,13,155,197,97, -149,14,99,113,7,252,233,149,24,194,143,200,202,8,246,10,43,178,7,161,52, -12,3,218,142,165,155,184,12,201,59,152,174,205,99,126,218,110,38,45,229, -197,29,11,122,20,189,51,44,229,126,255,53,126,3,157,178,104,161,196,144, -240,223,0,0,0,0,73,69,78,68,174,66,96,130}; - -static size_t xml_res_size_9 = 398; -static unsigned char xml_res_file_9[] = { -137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, -0,31,243,255,97,0,0,1,85,73,68,65,84,120,94,157,147,177,75,195,64,20,135, -127,73,109,254,0,227,152,22,23,23,133,182,206,174,78,173,93,116,112,109, -113,18,197,197,201,69,16,4,23,39,23,29,132,74,237,226,170,182,130,56,73, -7,21,108,107,160,46,110,77,160,21,219,138,41,8,166,148,243,114,38,70,184, -179,6,63,8,143,240,187,247,221,227,193,73,103,197,98,21,64,2,195,169,165, -83,169,105,8,24,113,154,231,146,73,12,195,52,205,4,189,40,71,37,89,94,224, -210,48,76,78,16,141,104,56,47,149,224,94,144,161,18,48,137,72,16,10,201, -248,141,102,171,5,77,211,68,18,95,32,203,33,136,136,208,198,251,74,5,20, -54,73,77,215,51,0,178,129,38,176,122,61,196,99,49,246,113,4,153,192,182, -251,104,119,186,240,24,83,71,89,37,132,112,2,198,246,65,25,70,211,194,95, -228,74,5,207,112,242,83,192,154,227,177,40,130,242,160,55,22,65,183,74, -28,94,218,29,50,191,114,76,60,202,85,131,44,109,177,140,171,110,206,206, -203,16,176,188,115,133,153,132,134,112,88,97,193,225,102,18,20,247,223, -207,29,132,130,253,141,89,220,213,159,191,5,107,187,215,190,192,207,189, -37,242,172,239,221,124,53,40,10,95,253,156,33,57,59,240,222,194,194,106, -1,19,83,147,8,202,83,253,17,210,81,62,127,170,170,106,218,238,19,92,220, -90,232,90,3,4,229,227,253,237,82,2,48,14,64,197,255,120,253,4,133,164,161, -185,34,75,47,42,0,0,0,0,73,69,78,68,174,66,96,130}; - -static size_t xml_res_size_10 = 752; -static unsigned char xml_res_file_10[] = { -137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, -0,31,243,255,97,0,0,2,183,73,68,65,84,56,141,125,145,77,104,156,85,20,134, -159,251,243,253,204,76,210,126,95,210,78,52,182,233,52,84,180,174,82,23, -118,163,152,22,17,4,161,45,148,138,180,35,25,221,10,18,196,133,171,218, -133,174,148,160,187,46,116,82,74,41,4,44,21,21,220,37,27,193,141,48,184, -201,162,54,29,18,146,56,38,77,230,127,38,243,243,29,23,211,25,83,12,158, -197,229,94,222,251,188,231,222,243,42,14,168,149,133,107,129,136,76,129, -76,3,136,200,18,138,220,169,119,238,22,255,189,147,206,78,94,185,157,81, -79,131,233,0,100,206,241,234,51,126,172,134,227,237,129,130,78,203,165, -81,141,177,215,244,231,65,205,106,109,231,148,150,153,147,151,239,40,181, -15,158,178,78,115,241,208,72,33,240,98,45,148,2,173,1,69,111,17,161,217, -240,120,252,215,40,195,97,153,70,245,48,199,47,124,175,236,19,56,101,157, -230,98,152,92,15,172,19,1,154,74,201,167,81,179,0,196,19,109,14,133,123, -196,19,45,98,147,155,68,145,208,168,14,1,160,123,253,37,59,28,22,2,235, -68,116,218,150,181,135,35,249,237,205,120,166,90,118,194,74,201,132,133, -13,63,147,127,48,132,136,66,107,208,70,1,17,0,118,101,33,157,242,226,165, -105,215,111,129,104,54,87,131,92,183,195,185,211,233,159,6,3,251,35,123, -254,245,241,103,218,88,71,16,1,29,129,136,244,12,128,139,158,95,67,107, -216,221,78,208,237,170,217,211,233,31,7,112,238,219,215,178,74,183,103, -118,182,20,187,219,30,74,89,148,50,180,91,189,199,171,149,133,107,159,5, -71,215,175,199,19,13,10,235,65,241,196,165,95,194,131,162,237,215,87,223, -253,32,251,207,22,200,87,75,135,151,234,149,24,141,154,147,251,63,152,222, -207,243,175,156,121,49,213,110,119,249,237,247,229,251,234,32,215,253,245, -241,251,23,6,81,127,126,243,94,42,121,36,120,244,252,201,231,40,149,107, -44,255,185,118,67,247,197,209,32,193,248,88,200,228,196,24,97,48,196,227, -221,242,252,126,24,64,107,157,157,24,79,18,69,66,177,82,199,24,115,223, -246,69,207,115,241,61,23,107,13,249,181,66,81,27,125,171,175,125,113,243, -222,148,235,58,115,39,142,141,77,59,142,165,211,141,40,85,234,185,79,50, -111,231,6,6,190,231,226,251,46,190,231,113,254,213,51,193,195,252,198,226, -215,183,127,70,107,195,240,80,140,103,147,163,56,142,37,18,88,221,216,66, -132,76,127,136,0,236,20,43,108,254,189,195,217,151,95,34,238,186,188,112, -234,56,34,16,73,47,251,40,18,58,221,136,181,141,109,154,205,118,230,163, -171,111,230,158,50,88,126,176,58,111,173,185,177,248,107,46,59,113,44,57, -157,60,50,130,181,6,80,116,186,17,229,106,157,90,125,111,73,132,217,15, -223,125,99,144,214,192,224,203,79,63,200,60,217,158,187,254,205,221,84, -97,171,116,209,88,19,88,99,48,214,20,173,177,75,179,239,189,245,159,152, -255,1,107,229,19,73,15,74,233,52,0,0,0,0,73,69,78,68,174,66,96,130}; - -static size_t xml_res_size_11 = 493; -static unsigned char xml_res_file_11[] = { -137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, -0,31,243,255,97,0,0,0,6,98,75,71,68,0,255,0,255,0,255,160,189,167,147,0, -0,0,9,112,72,89,115,0,0,13,215,0,0,13,215,1,66,40,155,120,0,0,0,7,116,73, -77,69,7,223,1,11,6,18,33,245,205,182,212,0,0,1,122,73,68,65,84,56,203,141, -147,33,108,20,65,20,134,191,55,179,41,57,1,9,178,22,2,250,184,221,220,137, -13,242,4,9,6,104,109,5,169,37,52,85,77,234,64,129,2,75,8,2,125,72,204,5, -123,226,146,219,49,136,26,170,43,16,36,173,218,189,157,121,21,236,93,174, -123,115,151,62,55,223,124,239,159,151,153,140,0,100,89,246,81,85,15,129, -47,69,81,156,0,244,251,253,199,222,251,159,0,170,250,204,57,247,39,230, -154,70,120,107,140,121,10,28,209,84,93,215,123,192,24,24,139,200,254,130, -183,221,164,225,59,33,132,231,192,157,133,104,140,217,1,254,54,203,37,111, -187,38,77,211,67,224,28,184,15,156,103,89,246,154,13,21,115,13,112,106, -173,29,22,69,113,98,173,29,170,234,41,155,107,205,53,128,169,170,74,87, -36,187,37,96,205,77,128,247,214,218,95,105,154,142,188,247,251,34,242,110, -75,192,154,107,138,162,248,10,60,4,254,1,15,102,179,217,183,77,221,49,215, -172,108,126,104,55,132,16,242,16,66,30,9,90,186,38,118,210,96,48,184,167, -170,123,192,5,112,161,170,175,242,60,191,27,189,148,24,156,207,231,47,129, -153,115,238,192,57,119,0,184,178,44,95,220,58,192,24,211,230,26,66,136, -186,73,12,90,107,71,117,93,31,247,122,189,239,13,122,210,233,116,222,220, -122,130,233,116,122,41,34,35,96,23,216,21,145,31,147,201,228,106,219,4, -85,183,219,125,4,148,43,47,80,137,200,89,243,129,202,149,158,27,110,2,32, -34,159,173,181,191,129,79,203,228,36,25,121,239,199,255,251,117,184,224, -109,247,26,143,239,186,90,57,29,16,147,0,0,0,0,73,69,78,68,174,66,96,130}; - -static size_t xml_res_size_12 = 418; -static unsigned char xml_res_file_12[] = { -137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, -0,31,243,255,97,0,0,0,6,98,75,71,68,0,255,0,255,0,255,160,189,167,147,0, -0,0,9,112,72,89,115,0,0,11,19,0,0,11,19,1,0,154,156,24,0,0,0,7,116,73,77, -69,7,222,11,10,7,12,32,110,25,127,203,0,0,1,47,73,68,65,84,56,203,165,147, -47,79,195,64,28,134,159,46,53,132,15,0,24,48,76,44,161,6,113,201,18,42, -48,24,20,4,129,89,8,230,106,216,7,128,4,11,31,160,152,213,32,206,32,8,40, -12,182,162,201,178,145,37,77,86,177,25,48,128,66,17,204,146,195,172,77, -183,254,99,225,39,239,238,125,238,253,253,3,64,57,66,179,96,196,26,83,57, -66,239,94,62,160,56,76,32,173,78,215,168,18,54,164,135,66,234,228,112,56, -140,180,114,132,86,142,216,41,114,164,28,161,123,253,129,238,245,7,58,126, -99,164,47,235,167,55,140,110,207,0,108,192,79,59,81,142,208,13,233,17,134, -33,102,224,38,46,141,249,31,86,142,174,249,188,63,159,129,20,137,51,128, -24,178,180,119,193,207,243,85,2,41,18,231,2,98,200,164,217,198,12,92,202, -196,149,109,154,47,88,94,212,202,28,0,68,158,100,210,108,23,206,74,173, -72,108,89,22,145,39,1,108,51,112,249,222,150,185,144,90,153,120,154,179, -15,216,203,47,30,95,91,39,25,136,81,33,78,79,159,13,248,31,245,99,86,71, -119,179,115,16,247,57,206,57,175,218,105,200,219,198,1,235,175,143,180, -58,93,35,25,146,105,190,127,218,3,128,241,218,62,155,239,79,217,139,69, -183,241,223,241,11,153,102,193,223,13,92,156,214,0,0,0,0,73,69,78,68,174, -66,96,130}; - -static size_t xml_res_size_13 = 1853; -static unsigned char xml_res_file_13[] = { -60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, -110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, -115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, -47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, -47,119,120,120,114,99,34,62,10,32,32,60,111,98,106,101,99,116,32,99,108, -97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61, -34,99,108,111,117,100,45,99,111,112,121,34,62,112,104,112,95,117,105,95, -112,104,112,45,112,108,117,103,105,110,95,98,105,116,109,97,112,115,46, -99,112,112,36,46,46,95,114,101,115,111,117,114,99,101,115,95,99,108,111, -117,100,45,99,111,112,121,46,112,110,103,60,47,111,98,106,101,99,116,62, -10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66, -105,116,109,97,112,34,32,110,97,109,101,61,34,99,111,108,108,97,112,115, -101,34,62,112,104,112,95,117,105,95,112,104,112,45,112,108,117,103,105, -110,95,98,105,116,109,97,112,115,46,99,112,112,36,46,46,95,46,46,95,76, -105,116,101,69,100,105,116,111,114,95,114,101,115,95,99,111,108,108,97, -112,115,101,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111, -98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97, -112,34,32,110,97,109,101,61,34,99,111,110,115,111,108,101,34,62,112,104, -112,95,117,105,95,112,104,112,45,112,108,117,103,105,110,95,98,105,116, -109,97,112,115,46,99,112,112,36,46,46,95,114,101,115,111,117,114,99,101, -115,95,99,111,110,115,111,108,101,46,112,110,103,60,47,111,98,106,101,99, -116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119, -120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,100,101,108,101,116, -101,45,97,108,108,34,62,112,104,112,95,117,105,95,112,104,112,45,112,108, -117,103,105,110,95,98,105,116,109,97,112,115,46,99,112,112,36,46,46,95, -114,101,115,111,117,114,99,101,115,95,100,101,108,101,116,101,45,97,108, -108,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106, -101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34, -32,110,97,109,101,61,34,100,101,108,101,116,101,45,111,110,101,34,62,112, -104,112,95,117,105,95,112,104,112,45,112,108,117,103,105,110,95,98,105, -116,109,97,112,115,46,99,112,112,36,46,46,95,114,101,115,111,117,114,99, -101,115,95,100,101,108,101,116,101,45,111,110,101,46,112,110,103,60,47, -111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97, -115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34, -100,101,118,105,108,34,62,112,104,112,95,117,105,95,112,104,112,45,112, -108,117,103,105,110,95,98,105,116,109,97,112,115,46,99,112,112,36,46,46, -95,114,101,115,111,117,114,99,101,115,95,100,101,118,105,108,46,112,110, -103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32, -99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109, -101,61,34,109,95,98,109,112,65,114,114,111,119,65,99,116,105,118,101,34, -62,112,104,112,95,117,105,95,112,104,112,45,112,108,117,103,105,110,95, -98,105,116,109,97,112,115,46,99,112,112,36,46,46,95,46,46,95,99,111,100, -101,108,105,116,101,45,105,99,111,110,115,95,116,111,111,108,98,97,114, -115,95,49,54,95,115,116,97,110,100,97,114,100,95,102,111,114,119,97,114, -100,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106, -101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34, -32,110,97,109,101,61,34,109,95,98,109,112,65,114,114,111,119,68,105,115, -97,98,108,101,100,34,62,112,104,112,95,117,105,95,112,104,112,45,112,108, -117,103,105,110,95,98,105,116,109,97,112,115,46,99,112,112,36,46,46,95, -46,46,95,99,111,100,101,108,105,116,101,45,105,99,111,110,115,95,116,111, -111,108,98,97,114,115,95,49,54,95,115,116,97,110,100,97,114,100,95,102, -111,114,119,97,114,100,45,100,105,115,97,98,108,101,100,46,112,110,103, -60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99, -108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101, -61,34,109,95,98,109,112,67,111,110,115,111,108,101,34,62,112,104,112,95, -117,105,95,112,104,112,45,112,108,117,103,105,110,95,98,105,116,109,97, -112,115,46,99,112,112,36,46,46,95,114,101,115,111,117,114,99,101,115,95, -99,111,110,115,111,108,101,46,112,110,103,60,47,111,98,106,101,99,116,62, -10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66, -105,116,109,97,112,34,32,110,97,109,101,61,34,109,95,98,109,112,68,101, -118,105,108,34,62,112,104,112,95,117,105,95,112,104,112,45,112,108,117, -103,105,110,95,98,105,116,109,97,112,115,46,99,112,112,36,46,46,95,114, -101,115,111,117,114,99,101,115,95,100,101,118,105,108,46,112,110,103,60, -47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108, -97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61, -34,109,95,98,109,112,69,108,101,112,104,97,110,116,34,62,112,104,112,95, -117,105,95,112,104,112,45,112,108,117,103,105,110,95,98,105,116,109,97, -112,115,46,99,112,112,36,46,46,95,114,101,115,111,117,114,99,101,115,95, -101,108,101,112,104,97,110,116,46,112,110,103,60,47,111,98,106,101,99,116, -62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120, -66,105,116,109,97,112,34,32,110,97,109,101,61,34,109,95,98,109,112,80,104, -112,70,105,108,101,34,62,112,104,112,95,117,105,95,112,104,112,45,112,108, -117,103,105,110,95,98,105,116,109,97,112,115,46,99,112,112,36,46,46,95, -114,101,115,111,117,114,99,101,115,95,112,104,112,45,102,105,108,101,46, -112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99, -116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110, -97,109,101,61,34,109,95,98,109,112,83,121,110,99,34,62,112,104,112,95,117, -105,95,112,104,112,45,112,108,117,103,105,110,95,98,105,116,109,97,112, -115,46,99,112,112,36,46,46,95,114,101,115,111,117,114,99,101,115,95,114, -101,102,114,101,115,104,46,112,110,103,60,47,111,98,106,101,99,116,62,10, -32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105, -116,109,97,112,34,32,110,97,109,101,61,34,112,104,112,45,112,114,111,106, -101,99,116,45,115,101,116,116,105,110,103,115,34,62,112,104,112,95,117, -105,95,112,104,112,45,112,108,117,103,105,110,95,98,105,116,109,97,112, -115,46,99,112,112,36,46,46,95,114,101,115,111,117,114,99,101,115,95,112, -104,112,45,112,114,111,106,101,99,116,45,115,101,116,116,105,110,103,115, -46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101, -99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110, -97,109,101,61,34,120,100,101,98,117,103,45,49,54,34,62,112,104,112,95,117, -105,95,112,104,112,45,112,108,117,103,105,110,95,98,105,116,109,97,112, -115,46,99,112,112,36,46,46,95,114,101,115,111,117,114,99,101,115,95,120, -100,101,98,117,103,45,49,54,46,112,110,103,60,47,111,98,106,101,99,116, -62,10,60,47,114,101,115,111,117,114,99,101,62,10}; - -void wxCF01InitBitmapResources() -{ - - // Check for memory FS. If not present, load the handler: - { - wxMemoryFSHandler::AddFile(wxT("XRC_resource/dummy_file"), wxT("dummy one")); - wxFileSystem fsys; - wxFSFile *f = fsys.OpenFile(wxT("memory:XRC_resource/dummy_file")); - wxMemoryFSHandler::RemoveFile(wxT("XRC_resource/dummy_file")); - if (f) delete f; - else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase); - } - - XRC_ADD_FILE(wxT("XRC_resource/php_ui_php-plugin_bitmaps.cpp$.._resources_cloud-copy.png"), xml_res_file_0, xml_res_size_0, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/php_ui_php-plugin_bitmaps.cpp$.._.._LiteEditor_res_collapse.png"), xml_res_file_1, xml_res_size_1, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/php_ui_php-plugin_bitmaps.cpp$.._resources_console.png"), xml_res_file_2, xml_res_size_2, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/php_ui_php-plugin_bitmaps.cpp$.._resources_delete-all.png"), xml_res_file_3, xml_res_size_3, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/php_ui_php-plugin_bitmaps.cpp$.._resources_delete-one.png"), xml_res_file_4, xml_res_size_4, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/php_ui_php-plugin_bitmaps.cpp$.._resources_devil.png"), xml_res_file_5, xml_res_size_5, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/php_ui_php-plugin_bitmaps.cpp$.._.._codelite-icons_toolbars_16_standard_forward.png"), xml_res_file_6, xml_res_size_6, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/php_ui_php-plugin_bitmaps.cpp$.._.._codelite-icons_toolbars_16_standard_forward-disabled.png"), xml_res_file_7, xml_res_size_7, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/php_ui_php-plugin_bitmaps.cpp$.._resources_elephant.png"), xml_res_file_8, xml_res_size_8, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/php_ui_php-plugin_bitmaps.cpp$.._resources_php-file.png"), xml_res_file_9, xml_res_size_9, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/php_ui_php-plugin_bitmaps.cpp$.._resources_refresh.png"), xml_res_file_10, xml_res_size_10, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/php_ui_php-plugin_bitmaps.cpp$.._resources_php-project-settings.png"), xml_res_file_11, xml_res_size_11, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/php_ui_php-plugin_bitmaps.cpp$.._resources_xdebug-16.png"), xml_res_file_12, xml_res_size_12, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/php_ui_php-plugin_bitmaps.cpp$_home_david_devel_git_CL_codelitephp_php-plugin_php_ui_php-plugin_bitmaps.xrc"), xml_res_file_13, xml_res_size_13, wxT("text/xml")); - wxXmlResource::Get()->Load(wxT("memory:XRC_resource/php_ui_php-plugin_bitmaps.cpp$_home_david_devel_git_CL_codelitephp_php-plugin_php_ui_php-plugin_bitmaps.xrc")); -} +// +// This file was automatically generated by wxrc, do not edit by hand. +// + +#include + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +#include +#include +#include +#include + +#if wxCHECK_VERSION(2,8,5) && wxABI_VERSION >= 20805 + #define XRC_ADD_FILE(name, data, size, mime) \ + wxMemoryFSHandler::AddFileWithMimeType(name, data, size, mime) +#else + #define XRC_ADD_FILE(name, data, size, mime) \ + wxMemoryFSHandler::AddFile(name, data, size) +#endif + +static size_t xml_res_size_0 = 516; +static unsigned char xml_res_file_0[] = { +137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, +0,31,243,255,97,0,0,0,6,98,75,71,68,0,255,0,255,0,255,160,189,167,147,0, +0,0,9,112,72,89,115,0,0,13,215,0,0,13,215,1,66,40,155,120,0,0,0,7,116,73, +77,69,7,223,1,11,6,17,12,155,63,185,98,0,0,1,145,73,68,65,84,56,203,165, +144,177,107,20,97,20,196,127,239,219,91,82,74,196,202,64,192,136,38,157, +86,106,99,80,48,32,228,190,47,119,228,15,176,86,176,53,88,153,66,44,108, +210,42,248,47,196,187,221,229,82,28,4,21,49,69,170,148,137,4,5,83,72,64, +34,40,114,32,251,246,89,220,138,113,77,214,131,76,57,111,102,222,48,194, +17,152,159,95,156,114,78,159,136,48,11,96,198,43,208,135,89,150,125,170, +106,165,74,120,239,207,137,68,155,192,153,202,233,179,136,93,77,146,100, +239,159,0,239,253,164,72,180,2,204,254,49,90,207,172,184,223,104,52,98, +85,123,1,92,47,61,95,64,222,130,62,72,211,116,87,74,243,22,48,254,87,178, +216,100,146,36,123,237,118,251,162,170,189,171,54,50,227,32,142,221,37, +87,126,30,7,222,64,113,1,216,7,246,7,131,193,1,128,170,61,29,154,173,103, +166,83,170,209,121,51,214,68,56,157,231,182,226,128,57,128,60,119,119,210, +52,221,117,142,219,99,99,241,68,191,223,255,81,62,187,57,108,196,221,44, +203,62,246,122,171,31,84,221,189,178,199,92,227,247,14,206,253,204,1,186, +221,238,214,225,170,105,218,61,85,29,58,142,181,48,19,0,113,192,250,48, +32,122,30,66,56,203,127,208,108,54,39,138,66,158,149,75,173,139,247,139, +51,34,186,81,29,113,4,124,141,34,185,230,178,108,117,219,76,47,3,47,129, +239,35,24,191,129,116,160,184,210,233,116,222,215,42,189,95,88,242,126, +97,169,78,19,29,119,8,161,181,44,34,143,69,228,214,244,244,140,236,236, +108,191,30,57,32,132,214,50,240,232,16,117,163,46,132,154,22,22,66,203, +234,52,142,19,226,196,1,191,0,123,238,146,98,147,64,157,113,0,0,0,0,73, +69,78,68,174,66,96,130}; + +static size_t xml_res_size_1 = 425; +static unsigned char xml_res_file_1[] = { +137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, +0,31,243,255,97,0,0,0,6,98,75,71,68,0,255,0,255,0,255,160,189,167,147,0, +0,0,9,112,72,89,115,0,0,13,215,0,0,13,215,1,66,40,155,120,0,0,0,7,116,73, +77,69,7,222,11,17,20,1,43,213,29,21,185,0,0,1,54,73,68,65,84,56,203,165, +147,189,78,2,81,16,133,191,185,43,80,217,202,210,218,153,168,47,65,208, +130,184,96,193,19,152,16,59,27,41,124,7,163,70,67,179,145,39,160,208,37, +38,34,54,60,130,149,157,13,149,29,129,110,119,217,29,11,2,209,117,13,63, +126,213,205,205,156,59,231,204,205,8,9,202,229,227,93,203,210,19,144,18, +104,30,64,132,207,56,150,87,99,226,123,207,243,222,191,215,203,236,80,171, +213,178,190,31,92,129,156,2,22,233,68,170,218,44,20,242,231,174,235,134, +243,7,166,226,240,9,40,177,28,47,185,92,198,105,183,219,129,1,240,253,240, +110,5,49,192,97,16,132,215,0,82,169,84,246,84,229,13,48,201,170,78,231, +81,0,28,167,170,105,113,68,116,223,168,74,61,77,188,4,150,170,212,141,42, +69,214,68,132,162,56,78,117,12,108,38,109,255,69,34,206,216,172,105,127, +110,98,67,149,129,8,59,105,29,22,12,17,144,129,1,233,254,99,6,207,6,38, +45,32,90,67,63,137,99,211,154,89,188,1,206,86,235,46,151,158,247,208,48, +0,182,189,213,16,161,183,188,92,187,163,209,240,130,217,15,184,174,27,102, +179,153,35,208,230,130,56,145,170,222,218,118,222,233,247,251,147,31,219, +248,123,157,57,0,221,158,222,154,15,85,122,105,235,252,5,22,35,120,247, +44,132,234,26,0,0,0,0,73,69,78,68,174,66,96,130}; + +static size_t xml_res_size_2 = 428; +static unsigned char xml_res_file_2[] = { +137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, +0,31,243,255,97,0,0,1,115,73,68,65,84,120,94,165,147,49,75,3,65,16,133, +39,40,216,72,82,164,73,47,87,8,98,147,8,65,80,54,9,98,167,85,82,164,81, +180,176,177,177,73,39,158,104,33,41,236,173,172,108,226,79,144,68,123,19, +11,193,42,104,157,230,154,43,4,35,50,206,155,229,134,51,104,99,2,95,222, +204,155,153,189,205,132,203,48,51,77,243,153,85,57,216,128,132,194,137, +80,17,30,254,232,119,194,189,112,170,253,87,119,68,184,193,215,126,37,20, +152,59,23,44,10,28,252,52,240,38,122,66,248,90,252,216,89,211,2,223,156, +169,74,14,236,16,196,191,245,216,1,239,205,178,19,152,175,143,129,54,32, +87,223,3,47,169,91,13,179,186,196,184,94,180,223,151,173,213,72,63,249, +60,197,157,142,134,217,70,131,40,138,52,142,187,93,74,246,148,189,29,248, +27,68,91,75,137,58,129,249,242,16,224,169,192,114,169,1,151,158,209,175, +209,102,0,77,98,39,48,159,239,253,64,60,128,225,244,140,255,27,63,199,99, +136,98,113,46,71,52,26,249,184,80,48,127,178,79,79,121,91,45,36,234,4,127, +237,163,237,52,234,73,13,184,100,198,150,56,92,201,219,18,131,86,139,168, +215,67,78,195,126,95,53,40,149,84,169,90,165,97,187,109,75,12,30,35,127, +131,151,229,121,39,248,39,239,174,43,200,213,247,152,47,61,86,179,37,62, +47,206,249,225,102,89,145,28,216,194,16,11,86,71,47,114,59,224,41,152,9, +5,230,122,145,69,129,147,152,210,192,155,232,9,109,7,131,133,204,191,94, +166,226,43,211,212,175,243,55,79,113,167,84,66,180,33,142,0,0,0,0,73,69, +78,68,174,66,96,130}; + +static size_t xml_res_size_3 = 211; +static unsigned char xml_res_file_3[] = { +137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, +0,31,243,255,97,0,0,0,154,73,68,65,84,120,94,237,82,49,10,194,64,16,28, +101,73,202,251,210,89,248,135,252,192,55,249,131,148,41,3,22,110,155,34, +112,141,41,108,44,12,88,152,38,101,194,193,201,44,250,128,144,198,34,3, +3,195,238,204,178,44,187,75,41,97,13,246,20,219,128,117,16,19,167,227,21, +34,30,89,6,228,185,209,180,8,12,49,2,243,12,76,19,73,205,154,226,124,57, +152,99,28,6,239,138,2,75,48,150,165,119,191,13,222,125,15,215,182,88,2, +203,240,6,223,13,52,84,21,110,117,141,187,42,30,77,131,103,8,120,117,29, +73,205,26,123,230,161,151,25,102,255,225,19,183,1,31,82,186,71,83,70,84, +114,252,0,0,0,0,73,69,78,68,174,66,96,130}; + +static size_t xml_res_size_4 = 498; +static unsigned char xml_res_file_4[] = { +137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, +0,31,243,255,97,0,0,0,6,98,75,71,68,0,255,0,255,0,255,160,189,167,147,0, +0,1,167,73,68,65,84,56,141,181,146,207,75,84,81,20,199,63,119,156,17,116, +104,19,132,4,225,162,9,11,166,6,10,52,97,192,137,172,133,171,92,10,22,182, +44,144,126,109,139,176,63,160,69,251,32,138,118,70,8,21,173,204,22,249, +3,158,32,18,227,98,22,131,26,37,14,226,32,188,247,154,121,247,157,115,91, +148,34,229,188,69,212,119,115,23,231,123,63,247,124,207,185,240,63,181, +120,239,220,203,133,219,231,187,146,60,169,164,162,107,234,104,218,232, +178,119,179,112,242,239,0,86,56,118,225,242,17,76,198,243,110,228,139,7, +121,12,192,194,245,188,107,5,57,125,231,22,225,198,55,214,166,222,132,18, +53,199,250,159,149,95,253,1,152,31,61,229,10,15,38,126,61,43,160,130,115, +2,78,65,99,180,81,199,250,150,234,228,84,232,26,223,31,246,61,95,121,188, +11,72,3,168,85,16,33,218,92,106,25,167,173,61,203,241,145,225,206,213,201, +183,143,230,175,230,115,253,39,202,227,102,2,77,3,184,72,136,131,0,187, +93,79,152,72,29,147,233,160,123,232,98,246,203,187,15,99,115,159,123,122, +161,210,251,19,96,21,9,124,108,125,59,1,0,169,246,78,76,70,145,134,197, +217,216,237,139,32,168,31,16,39,116,208,150,61,76,108,13,95,63,206,4,77, +63,120,58,240,126,253,238,30,192,69,74,202,111,112,168,187,136,211,24,39, +49,136,221,59,101,167,134,221,81,214,62,205,134,98,229,126,105,122,253, +201,46,216,0,204,20,143,182,92,99,225,202,32,193,102,141,85,111,37,116, +34,215,74,179,27,175,247,215,77,82,230,233,190,46,151,59,147,211,106,185, +234,59,209,161,65,175,54,247,187,39,157,4,112,86,168,46,85,106,42,148,46, +45,111,85,14,242,36,127,229,72,94,152,166,57,219,234,242,63,209,15,99,239, +209,86,3,110,246,131,0,0,0,0,73,69,78,68,174,66,96,130}; + +static size_t xml_res_size_5 = 508; +static unsigned char xml_res_file_5[] = { +137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, +0,31,243,255,97,0,0,0,6,98,75,71,68,0,255,0,255,0,255,160,189,167,147,0, +0,0,9,112,72,89,115,0,0,11,19,0,0,11,19,1,0,154,156,24,0,0,0,7,116,73,77, +69,7,221,3,16,18,53,21,165,131,217,93,0,0,1,137,73,68,65,84,56,203,181, +146,191,75,66,81,20,199,191,61,125,130,54,71,139,123,224,214,32,8,13,185, +73,32,56,56,70,132,187,10,110,74,146,244,7,36,190,165,169,41,194,73,26, +28,116,112,120,91,139,139,33,162,244,23,248,131,139,136,121,31,239,221, +123,238,107,123,96,166,130,212,119,61,223,243,225,156,243,61,192,127,170, +82,169,188,150,203,229,211,93,30,109,87,81,8,113,173,105,218,71,169,84, +58,59,20,128,88,44,118,2,160,91,44,22,47,126,243,28,1,64,161,80,112,183, +65,50,153,12,166,211,41,58,157,14,23,66,220,86,171,213,198,6,32,151,203, +185,217,108,22,0,224,186,46,148,82,80,74,1,0,148,82,176,109,27,156,115, +180,90,45,110,219,246,125,173,86,123,92,91,65,8,1,34,194,120,60,198,100, +50,193,108,54,3,99,12,140,49,204,231,115,112,206,161,235,58,146,201,100, +40,24,12,62,228,243,249,39,195,48,52,0,240,3,128,148,18,150,101,97,177, +88,236,76,197,231,243,33,30,143,31,155,166,121,59,24,12,162,0,162,30,128, +115,190,23,16,8,4,160,235,58,28,199,129,148,210,245,38,32,162,189,19,132, +66,33,16,17,76,211,92,89,150,245,60,28,14,11,30,192,113,28,112,206,17,14, +135,189,35,18,17,164,148,80,74,97,185,92,98,181,90,161,219,237,114,41,229, +93,189,94,55,214,82,72,167,211,91,99,76,36,18,96,140,161,215,235,113,34, +186,105,52,26,111,27,49,110,83,42,149,114,35,145,136,26,141,70,95,68,116, +213,108,54,223,127,122,252,187,0,82,74,244,251,253,41,17,93,182,219,237, +207,67,94,249,69,8,113,190,173,249,79,244,13,229,89,229,131,163,10,197, +192,0,0,0,0,73,69,78,68,174,66,96,130}; + +static size_t xml_res_size_6 = 504; +static unsigned char xml_res_file_6[] = { +137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, +0,31,243,255,97,0,0,1,191,73,68,65,84,120,94,165,83,205,110,218,64,16,254, +118,177,1,97,225,184,80,14,189,112,162,2,129,196,163,68,125,18,46,60,73, +115,69,220,184,86,161,138,196,99,112,70,61,33,213,106,185,132,132,127,27, +255,108,103,166,150,229,68,185,49,210,167,89,207,124,243,183,59,86,198, +24,220,34,26,55,138,250,249,244,244,7,192,151,36,78,96,149,74,40,189,129, +134,210,4,165,160,9,128,18,91,146,36,130,115,16,252,181,216,249,237,254, +30,174,235,226,221,56,252,253,94,11,46,151,11,202,229,50,126,60,62,66,18, +164,105,138,201,100,130,249,124,142,237,118,11,173,101,50,174,194,62,209, +196,19,223,106,181,18,91,16,4,194,209,236,96,89,44,22,24,141,70,240,125, +31,187,221,14,167,211,41,199,249,124,150,192,229,114,41,231,98,135,150, +130,8,134,195,33,198,227,49,28,199,193,126,191,71,165,82,97,179,4,172,215, +107,73,244,145,104,100,29,76,167,83,92,175,87,206,42,193,150,101,225,120, +60,98,179,217,200,188,158,231,161,94,175,163,90,173,190,233,64,70,168,213, +106,114,235,182,109,115,176,224,112,56,32,138,34,52,155,77,180,90,45,209, +25,152,47,200,247,224,51,25,169,74,222,118,24,134,76,200,3,27,141,70,17, +204,23,72,7,184,81,44,24,131,59,207,227,17,242,231,242,178,239,236,57,185, +146,248,226,56,150,123,42,138,54,0,6,131,1,218,237,54,58,157,14,250,253, +62,122,189,158,160,219,237,126,164,153,47,144,103,164,21,86,223,31,30,228, +2,227,88,22,7,41,175,42,235,255,40,156,19,110,88,186,216,62,63,227,229, +245,69,169,217,108,214,166,202,95,137,112,71,206,79,128,113,40,179,109, +0,77,108,233,16,6,169,129,73,1,68,48,56,209,249,149,56,59,255,183,255,171, +248,59,243,6,150,149,82,85,185,27,160,68,80,25,82,6,249,40,129,9,235,174, +27,34,147,127,134,135,8,20,97,233,216,1,0,0,0,0,73,69,78,68,174,66,96,130}; + +static size_t xml_res_size_7 = 685; +static unsigned char xml_res_file_7[] = { +137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, +0,31,243,255,97,0,0,2,116,73,68,65,84,56,141,133,147,75,107,19,81,20,199, +127,231,206,76,243,104,146,38,77,211,84,69,99,213,162,216,69,125,20,84, +4,17,68,17,81,16,196,157,224,198,133,43,253,16,10,226,119,112,227,3,183, +162,46,221,249,0,17,21,223,5,21,173,152,134,182,105,155,216,100,38,119, +38,51,115,221,20,169,181,234,89,30,254,143,243,68,0,225,255,241,55,140, +218,173,224,60,140,216,255,32,247,3,23,96,164,162,86,17,40,23,173,117,42, +205,197,242,95,76,4,88,43,8,57,185,90,206,168,63,48,42,83,206,38,123,6, +19,39,198,147,36,108,16,181,68,18,64,1,41,144,177,36,219,83,27,210,59,237, +92,226,15,23,59,236,73,125,175,140,100,50,165,90,245,230,49,225,233,98, +130,39,207,132,103,8,236,23,14,100,2,246,205,42,57,213,55,60,244,65,94, +205,10,96,126,171,240,146,163,54,13,167,83,143,202,185,194,154,222,254, +94,19,116,91,166,177,56,119,7,37,153,82,97,240,176,227,164,165,85,95,148, +90,125,225,211,55,207,63,116,25,170,254,50,1,235,108,79,226,218,250,108, +223,248,198,241,49,25,218,57,170,10,89,71,242,186,177,189,152,74,110,89, +183,107,135,244,111,27,85,105,199,38,158,157,239,15,92,61,240,21,238,206, +44,111,33,91,44,238,181,155,243,34,95,38,196,120,85,236,110,83,114,180, +48,8,214,212,4,241,116,21,169,53,165,71,187,88,176,39,185,114,6,146,207, +55,131,185,233,53,222,212,36,166,37,216,25,176,147,6,113,192,175,79,18, +186,66,167,101,240,99,8,97,33,94,185,5,207,152,123,110,190,96,26,6,211, +142,12,94,100,240,12,116,98,240,34,104,71,134,102,132,105,196,24,15,238, +85,87,8,88,21,165,222,12,148,6,207,4,173,31,217,72,34,34,133,116,1,29,130, +27,192,15,31,83,215,48,163,249,250,54,226,220,67,248,53,195,33,71,97,125, +214,186,51,234,56,143,237,190,194,41,215,109,167,116,28,211,137,144,246, +18,121,94,195,172,102,122,38,228,248,141,152,239,26,176,128,177,98,62,181, +45,193,73,171,99,12,239,92,183,86,81,246,125,149,202,30,108,249,193,64, +91,71,52,125,104,248,80,211,188,174,118,57,122,43,228,227,220,210,129,109, +118,144,18,241,149,182,246,95,88,0,109,99,120,238,121,245,222,48,190,158, +83,137,204,98,167,187,171,165,77,248,45,224,198,131,136,206,20,140,246, +42,106,121,139,112,171,195,216,144,205,233,40,138,110,79,4,188,250,237, +50,5,216,170,148,28,136,227,221,49,232,135,240,126,6,40,41,42,57,197,145, +132,34,29,195,203,133,152,71,147,33,166,187,242,49,150,11,173,246,89,171, +229,126,2,125,194,7,227,39,237,34,248,0,0,0,0,73,69,78,68,174,66,96,130}; + +static size_t xml_res_size_8 = 691; +static unsigned char xml_res_file_8[] = { +137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, +0,31,243,255,97,0,0,2,122,73,68,65,84,120,94,197,83,93,72,211,123,24,126, +246,241,223,127,155,107,77,157,19,241,35,199,232,40,214,168,252,168,176, +143,139,115,68,163,192,144,224,88,36,226,69,87,125,216,23,229,32,66,237, +92,28,234,198,176,44,88,66,31,24,193,185,136,18,36,43,201,40,209,139,160, +176,146,148,114,230,10,157,110,107,46,231,62,156,219,211,31,107,224,193, +203,130,94,120,126,47,191,231,125,158,247,226,229,125,101,36,241,51,33, +7,240,235,27,136,26,67,118,70,102,206,17,165,82,88,167,20,84,26,189,233, +15,173,104,180,164,8,250,92,253,50,49,201,69,24,178,74,255,214,22,158,187, +106,216,126,241,70,229,169,1,7,73,54,180,190,12,89,119,182,126,88,91,221, +53,186,178,184,203,101,220,242,159,211,188,245,224,121,249,74,139,58,225, +91,124,210,114,45,117,251,31,147,170,51,100,94,11,121,224,46,217,242,140, +108,235,39,109,15,200,170,235,228,234,127,73,189,141,76,169,25,164,204, +184,169,245,255,13,202,27,123,210,78,118,19,181,175,40,156,142,208,114, +129,220,118,133,220,119,155,252,203,46,153,165,191,216,16,33,234,222,18, +101,118,194,188,107,14,130,222,76,18,114,153,202,160,118,15,245,153,221, +61,221,64,208,133,232,172,7,159,124,196,168,15,24,241,0,67,211,128,195, +179,128,136,215,9,120,223,72,120,13,248,71,69,196,194,235,191,15,81,174, +40,0,131,57,80,196,128,217,41,9,211,152,15,124,197,148,63,134,247,110,98, +106,38,138,88,192,13,4,165,90,192,37,213,63,3,115,147,46,196,231,55,2,128, +2,166,226,26,164,152,43,0,220,132,119,252,161,202,31,45,209,228,23,42,231, +195,33,68,98,144,12,62,32,232,6,252,146,49,44,229,144,71,202,190,71,136, +248,103,154,155,155,50,229,200,40,178,34,181,96,2,222,96,61,135,219,109, +116,141,116,198,95,184,177,202,40,67,91,181,26,198,177,47,208,14,57,161, +9,234,160,205,183,2,218,116,192,84,72,8,154,127,0,244,3,21,246,59,154,189, +247,159,39,166,170,95,115,239,132,206,58,73,225,88,148,10,77,220,97,169, +26,111,95,115,124,226,178,34,245,218,19,241,207,78,162,220,78,148,158,237, +74,232,129,61,189,182,178,75,19,99,230,195,110,29,73,148,212,135,107,147, +242,73,211,33,82,158,196,129,132,176,180,49,116,84,93,210,71,84,63,37,118, +117,220,74,240,114,124,84,182,59,3,186,166,104,36,89,4,128,13,155,197,97, +149,14,99,113,7,252,233,149,24,194,143,200,202,8,246,10,43,178,7,161,52, +12,3,218,142,165,155,184,12,201,59,152,174,205,99,126,218,110,38,45,229, +197,29,11,122,20,189,51,44,229,126,255,53,126,3,157,178,104,161,196,144, +240,223,0,0,0,0,73,69,78,68,174,66,96,130}; + +static size_t xml_res_size_9 = 398; +static unsigned char xml_res_file_9[] = { +137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, +0,31,243,255,97,0,0,1,85,73,68,65,84,120,94,157,147,177,75,195,64,20,135, +127,73,109,254,0,227,152,22,23,23,133,182,206,174,78,173,93,116,112,109, +113,18,197,197,201,69,16,4,23,39,23,29,132,74,237,226,170,182,130,56,73, +7,21,108,107,160,46,110,77,160,21,219,138,41,8,166,148,243,114,38,70,184, +179,6,63,8,143,240,187,247,221,227,193,73,103,197,98,21,64,2,195,169,165, +83,169,105,8,24,113,154,231,146,73,12,195,52,205,4,189,40,71,37,89,94,224, +210,48,76,78,16,141,104,56,47,149,224,94,144,161,18,48,137,72,16,10,201, +248,141,102,171,5,77,211,68,18,95,32,203,33,136,136,208,198,251,74,5,20, +54,73,77,215,51,0,178,129,38,176,122,61,196,99,49,246,113,4,153,192,182, +251,104,119,186,240,24,83,71,89,37,132,112,2,198,246,65,25,70,211,194,95, +228,74,5,207,112,242,83,192,154,227,177,40,130,242,160,55,22,65,183,74, +28,94,218,29,50,191,114,76,60,202,85,131,44,109,177,140,171,110,206,206, +203,16,176,188,115,133,153,132,134,112,88,97,193,225,102,18,20,247,223, +207,29,132,130,253,141,89,220,213,159,191,5,107,187,215,190,192,207,189, +37,242,172,239,221,124,53,40,10,95,253,156,33,57,59,240,222,194,194,106, +1,19,83,147,8,202,83,253,17,210,81,62,127,170,170,106,218,238,19,92,220, +90,232,90,3,4,229,227,253,237,82,2,48,14,64,197,255,120,253,4,133,164,161, +185,34,75,47,42,0,0,0,0,73,69,78,68,174,66,96,130}; + +static size_t xml_res_size_10 = 530; +static unsigned char xml_res_file_10[] = { +137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,2,0,0, +0,144,145,104,54,0,0,0,9,112,72,89,115,0,0,11,19,0,0,11,19,1,0,154,156, +24,0,0,0,7,116,73,77,69,7,223,7,18,16,26,48,237,94,46,89,0,0,1,177,73,68, +65,84,40,207,189,146,189,107,83,81,24,198,159,115,206,77,114,111,162,233, +247,7,165,52,45,193,182,116,105,164,116,210,165,67,139,208,65,65,112,105, +17,145,78,14,197,193,189,160,96,105,65,240,31,16,196,86,196,77,135,66,75, +69,29,92,164,95,58,88,212,44,69,2,13,212,52,166,201,189,39,247,124,118, +72,192,193,66,201,226,51,189,188,60,63,222,7,158,151,220,121,184,137,70, +68,209,160,26,6,156,51,183,214,218,218,64,8,57,31,48,198,40,109,173,181, +14,163,140,145,179,35,89,139,80,40,159,11,159,43,169,204,232,165,142,153, +107,67,65,168,132,212,213,80,249,92,250,92,73,105,254,94,168,10,121,121, +176,43,213,157,80,202,126,216,203,13,244,36,135,83,173,211,87,6,190,252, +60,106,111,118,211,61,77,210,152,175,217,223,199,165,42,203,76,220,38,64, +177,44,158,220,191,170,52,226,30,155,191,149,169,4,178,80,226,221,109,137, +185,235,35,195,253,173,21,46,155,226,177,185,27,35,239,183,115,20,128,54, +22,4,94,212,121,252,124,107,237,211,1,128,174,118,239,213,102,246,243,183, +124,153,203,32,148,139,47,182,95,110,252,16,194,214,35,41,173,135,82,45, +0,86,22,166,46,196,35,203,171,187,15,102,51,1,151,147,227,125,249,130,223, +215,153,124,179,52,157,76,196,158,189,221,247,185,172,1,118,108,176,163, +236,203,187,143,222,105,107,40,35,247,22,63,10,165,159,190,222,75,247,54, +223,156,72,47,175,236,148,252,208,24,123,49,30,115,0,68,24,221,63,56,206, +230,254,80,138,132,27,5,16,72,229,186,17,46,244,97,161,178,186,254,61,168, +74,47,234,80,74,235,145,28,135,254,202,151,1,120,110,164,86,20,3,1,64,41, +45,158,132,197,147,208,97,180,230,174,3,132,144,127,11,2,0,2,70,232,127, +127,190,83,75,102,190,87,171,164,150,242,0,0,0,0,73,69,78,68,174,66,96, +130}; + +static size_t xml_res_size_11 = 752; +static unsigned char xml_res_file_11[] = { +137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, +0,31,243,255,97,0,0,2,183,73,68,65,84,56,141,125,145,77,104,156,85,20,134, +159,251,243,253,204,76,210,126,95,210,78,52,182,233,52,84,180,174,82,23, +118,163,152,22,17,4,161,45,148,138,180,35,25,221,10,18,196,133,171,218, +133,174,148,160,187,46,116,82,74,41,4,44,21,21,220,37,27,193,141,48,184, +201,162,54,29,18,146,56,38,77,230,127,38,243,243,29,23,211,25,83,12,158, +197,229,94,222,251,188,231,222,243,42,14,168,149,133,107,129,136,76,129, +76,3,136,200,18,138,220,169,119,238,22,255,189,147,206,78,94,185,157,81, +79,131,233,0,100,206,241,234,51,126,172,134,227,237,129,130,78,203,165, +81,141,177,215,244,231,65,205,106,109,231,148,150,153,147,151,239,40,181, +15,158,178,78,115,241,208,72,33,240,98,45,148,2,173,1,69,111,17,161,217, +240,120,252,215,40,195,97,153,70,245,48,199,47,124,175,236,19,56,101,157, +230,98,152,92,15,172,19,1,154,74,201,167,81,179,0,196,19,109,14,133,123, +196,19,45,98,147,155,68,145,208,168,14,1,160,123,253,37,59,28,22,2,235, +68,116,218,150,181,135,35,249,237,205,120,166,90,118,194,74,201,132,133, +13,63,147,127,48,132,136,66,107,208,70,1,17,0,118,101,33,157,242,226,165, +105,215,111,129,104,54,87,131,92,183,195,185,211,233,159,6,3,251,35,123, +254,245,241,103,218,88,71,16,1,29,129,136,244,12,128,139,158,95,67,107, +216,221,78,208,237,170,217,211,233,31,7,112,238,219,215,178,74,183,103, +118,182,20,187,219,30,74,89,148,50,180,91,189,199,171,149,133,107,159,5, +71,215,175,199,19,13,10,235,65,241,196,165,95,194,131,162,237,215,87,223, +253,32,251,207,22,200,87,75,135,151,234,149,24,141,154,147,251,63,152,222, +207,243,175,156,121,49,213,110,119,249,237,247,229,251,234,32,215,253,245, +241,251,23,6,81,127,126,243,94,42,121,36,120,244,252,201,231,40,149,107, +44,255,185,118,67,247,197,209,32,193,248,88,200,228,196,24,97,48,196,227, +221,242,252,126,24,64,107,157,157,24,79,18,69,66,177,82,199,24,115,223, +246,69,207,115,241,61,23,107,13,249,181,66,81,27,125,171,175,125,113,243, +222,148,235,58,115,39,142,141,77,59,142,165,211,141,40,85,234,185,79,50, +111,231,6,6,190,231,226,251,46,190,231,113,254,213,51,193,195,252,198,226, +215,183,127,70,107,195,240,80,140,103,147,163,56,142,37,18,88,221,216,66, +132,76,127,136,0,236,20,43,108,254,189,195,217,151,95,34,238,186,188,112, +234,56,34,16,73,47,251,40,18,58,221,136,181,141,109,154,205,118,230,163, +171,111,230,158,50,88,126,176,58,111,173,185,177,248,107,46,59,113,44,57, +157,60,50,130,181,6,80,116,186,17,229,106,157,90,125,111,73,132,217,15, +223,125,99,144,214,192,224,203,79,63,200,60,217,158,187,254,205,221,84, +97,171,116,209,88,19,88,99,48,214,20,173,177,75,179,239,189,245,159,152, +255,1,107,229,19,73,15,74,233,52,0,0,0,0,73,69,78,68,174,66,96,130}; + +static size_t xml_res_size_12 = 493; +static unsigned char xml_res_file_12[] = { +137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, +0,31,243,255,97,0,0,0,6,98,75,71,68,0,255,0,255,0,255,160,189,167,147,0, +0,0,9,112,72,89,115,0,0,13,215,0,0,13,215,1,66,40,155,120,0,0,0,7,116,73, +77,69,7,223,1,11,6,18,33,245,205,182,212,0,0,1,122,73,68,65,84,56,203,141, +147,33,108,20,65,20,134,191,55,179,41,57,1,9,178,22,2,250,184,221,220,137, +13,242,4,9,6,104,109,5,169,37,52,85,77,234,64,129,2,75,8,2,125,72,204,5, +123,226,146,219,49,136,26,170,43,16,36,173,218,189,157,121,21,236,93,174, +123,115,151,62,55,223,124,239,159,151,153,140,0,100,89,246,81,85,15,129, +47,69,81,156,0,244,251,253,199,222,251,159,0,170,250,204,57,247,39,230, +154,70,120,107,140,121,10,28,209,84,93,215,123,192,24,24,139,200,254,130, +183,221,164,225,59,33,132,231,192,157,133,104,140,217,1,254,54,203,37,111, +187,38,77,211,67,224,28,184,15,156,103,89,246,154,13,21,115,13,112,106, +173,29,22,69,113,98,173,29,170,234,41,155,107,205,53,128,169,170,74,87, +36,187,37,96,205,77,128,247,214,218,95,105,154,142,188,247,251,34,242,110, +75,192,154,107,138,162,248,10,60,4,254,1,15,102,179,217,183,77,221,49,215, +172,108,126,104,55,132,16,242,16,66,30,9,90,186,38,118,210,96,48,184,167, +170,123,192,5,112,161,170,175,242,60,191,27,189,148,24,156,207,231,47,129, +153,115,238,192,57,119,0,184,178,44,95,220,58,192,24,211,230,26,66,136, +186,73,12,90,107,71,117,93,31,247,122,189,239,13,122,210,233,116,222,220, +122,130,233,116,122,41,34,35,96,23,216,21,145,31,147,201,228,106,219,4, +85,183,219,125,4,148,43,47,80,137,200,89,243,129,202,149,158,27,110,2,32, +34,159,173,181,191,129,79,203,228,36,25,121,239,199,255,251,117,184,224, +109,247,26,143,239,186,90,57,29,16,147,0,0,0,0,73,69,78,68,174,66,96,130}; + +static size_t xml_res_size_13 = 418; +static unsigned char xml_res_file_13[] = { +137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, +0,31,243,255,97,0,0,0,6,98,75,71,68,0,255,0,255,0,255,160,189,167,147,0, +0,0,9,112,72,89,115,0,0,11,19,0,0,11,19,1,0,154,156,24,0,0,0,7,116,73,77, +69,7,222,11,10,7,12,32,110,25,127,203,0,0,1,47,73,68,65,84,56,203,165,147, +47,79,195,64,28,134,159,46,53,132,15,0,24,48,76,44,161,6,113,201,18,42, +48,24,20,4,129,89,8,230,106,216,7,128,4,11,31,160,152,213,32,206,32,8,40, +12,182,162,201,178,145,37,77,86,177,25,48,128,66,17,204,146,195,172,77, +183,254,99,225,39,239,238,125,238,253,253,3,64,57,66,179,96,196,26,83,57, +66,239,94,62,160,56,76,32,173,78,215,168,18,54,164,135,66,234,228,112,56, +140,180,114,132,86,142,216,41,114,164,28,161,123,253,129,238,245,7,58,126, +99,164,47,235,167,55,140,110,207,0,108,192,79,59,81,142,208,13,233,17,134, +33,102,224,38,46,141,249,31,86,142,174,249,188,63,159,129,20,137,51,128, +24,178,180,119,193,207,243,85,2,41,18,231,2,98,200,164,217,198,12,92,202, +196,149,109,154,47,88,94,212,202,28,0,68,158,100,210,108,23,206,74,173, +72,108,89,22,145,39,1,108,51,112,249,222,150,185,144,90,153,120,154,179, +15,216,203,47,30,95,91,39,25,136,81,33,78,79,159,13,248,31,245,99,86,71, +119,179,115,16,247,57,206,57,175,218,105,200,219,198,1,235,175,143,180, +58,93,35,25,146,105,190,127,218,3,128,241,218,62,155,239,79,217,139,69, +183,241,223,241,11,153,102,193,223,13,92,156,214,0,0,0,0,73,69,78,68,174, +66,96,130}; + +static size_t xml_res_size_14 = 1767; +static unsigned char xml_res_file_14[] = { +60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, +110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, +115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, +47,47,119,119,119,46,119,120,119,105,100,103,101,116,115,46,111,114,103, +47,119,120,120,114,99,34,62,10,32,32,60,111,98,106,101,99,116,32,99,108, +97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61, +34,99,108,111,117,100,45,99,111,112,121,34,62,112,104,112,95,117,105,95, +112,104,112,45,112,108,117,103,105,110,95,98,105,116,109,97,112,115,46, +99,112,112,36,46,46,95,114,101,115,111,117,114,99,101,115,95,99,108,111, +117,100,45,99,111,112,121,46,112,110,103,60,47,111,98,106,101,99,116,62, +10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66, +105,116,109,97,112,34,32,110,97,109,101,61,34,99,111,108,108,97,112,115, +101,34,62,112,104,112,95,117,105,95,112,104,112,45,112,108,117,103,105, +110,95,98,105,116,109,97,112,115,46,99,112,112,36,46,46,95,46,46,95,76, +105,116,101,69,100,105,116,111,114,95,114,101,115,95,99,111,108,108,97, +112,115,101,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111, +98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97, +112,34,32,110,97,109,101,61,34,100,101,108,101,116,101,45,97,108,108,34, +62,112,104,112,95,117,105,95,112,104,112,45,112,108,117,103,105,110,95, +98,105,116,109,97,112,115,46,99,112,112,36,46,46,95,114,101,115,111,117, +114,99,101,115,95,100,101,108,101,116,101,45,97,108,108,46,112,110,103, +60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99, +108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101, +61,34,100,101,108,101,116,101,45,111,110,101,34,62,112,104,112,95,117,105, +95,112,104,112,45,112,108,117,103,105,110,95,98,105,116,109,97,112,115, +46,99,112,112,36,46,46,95,114,101,115,111,117,114,99,101,115,95,100,101, +108,101,116,101,45,111,110,101,46,112,110,103,60,47,111,98,106,101,99,116, +62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120, +66,105,116,109,97,112,34,32,110,97,109,101,61,34,109,95,98,109,112,65,114, +114,111,119,65,99,116,105,118,101,34,62,112,104,112,95,117,105,95,112,104, +112,45,112,108,117,103,105,110,95,98,105,116,109,97,112,115,46,99,112,112, +36,46,46,95,46,46,95,99,111,100,101,108,105,116,101,45,105,99,111,110,115, +95,116,111,111,108,98,97,114,115,95,49,54,95,115,116,97,110,100,97,114, +100,95,102,111,114,119,97,114,100,46,112,110,103,60,47,111,98,106,101,99, +116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119, +120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,109,95,98,109,112, +65,114,114,111,119,68,105,115,97,98,108,101,100,34,62,112,104,112,95,117, +105,95,112,104,112,45,112,108,117,103,105,110,95,98,105,116,109,97,112, +115,46,99,112,112,36,46,46,95,46,46,95,99,111,100,101,108,105,116,101,45, +105,99,111,110,115,95,116,111,111,108,98,97,114,115,95,49,54,95,115,116, +97,110,100,97,114,100,95,102,111,114,119,97,114,100,45,100,105,115,97,98, +108,101,100,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111, +98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97, +112,34,32,110,97,109,101,61,34,109,95,98,109,112,67,111,110,115,111,108, +101,34,62,112,104,112,95,117,105,95,112,104,112,45,112,108,117,103,105, +110,95,98,105,116,109,97,112,115,46,99,112,112,36,46,46,95,114,101,115, +111,117,114,99,101,115,95,99,111,110,115,111,108,101,46,112,110,103,60, +47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108, +97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61, +34,109,95,98,109,112,68,101,118,105,108,34,62,112,104,112,95,117,105,95, +112,104,112,45,112,108,117,103,105,110,95,98,105,116,109,97,112,115,46, +99,112,112,36,46,46,95,114,101,115,111,117,114,99,101,115,95,100,101,118, +105,108,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98, +106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112, +34,32,110,97,109,101,61,34,109,95,98,109,112,69,108,101,112,104,97,110, +116,34,62,112,104,112,95,117,105,95,112,104,112,45,112,108,117,103,105, +110,95,98,105,116,109,97,112,115,46,99,112,112,36,46,46,95,114,101,115, +111,117,114,99,101,115,95,101,108,101,112,104,97,110,116,46,112,110,103, +60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99, +108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101, +61,34,109,95,98,109,112,80,104,112,70,105,108,101,34,62,112,104,112,95, +117,105,95,112,104,112,45,112,108,117,103,105,110,95,98,105,116,109,97, +112,115,46,99,112,112,36,46,46,95,114,101,115,111,117,114,99,101,115,95, +112,104,112,45,102,105,108,101,46,112,110,103,60,47,111,98,106,101,99,116, +62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120, +66,105,116,109,97,112,34,32,110,97,109,101,61,34,109,95,98,109,112,80,104, +112,87,111,114,107,115,112,97,99,101,34,62,112,104,112,95,117,105,95,112, +104,112,45,112,108,117,103,105,110,95,98,105,116,109,97,112,115,46,99,112, +112,36,46,46,95,114,101,115,111,117,114,99,101,115,95,112,104,112,45,119, +111,114,107,115,112,97,99,101,46,112,110,103,60,47,111,98,106,101,99,116, +62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120, +66,105,116,109,97,112,34,32,110,97,109,101,61,34,109,95,98,109,112,83,121, +110,99,34,62,112,104,112,95,117,105,95,112,104,112,45,112,108,117,103,105, +110,95,98,105,116,109,97,112,115,46,99,112,112,36,46,46,95,114,101,115, +111,117,114,99,101,115,95,114,101,102,114,101,115,104,46,112,110,103,60, +47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108, +97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61, +34,112,104,112,45,112,114,111,106,101,99,116,45,115,101,116,116,105,110, +103,115,34,62,112,104,112,95,117,105,95,112,104,112,45,112,108,117,103, +105,110,95,98,105,116,109,97,112,115,46,99,112,112,36,46,46,95,114,101, +115,111,117,114,99,101,115,95,112,104,112,45,112,114,111,106,101,99,116, +45,115,101,116,116,105,110,103,115,46,112,110,103,60,47,111,98,106,101, +99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34, +119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,120,100,101,98, +117,103,45,49,54,34,62,112,104,112,95,117,105,95,112,104,112,45,112,108, +117,103,105,110,95,98,105,116,109,97,112,115,46,99,112,112,36,46,46,95, +114,101,115,111,117,114,99,101,115,95,120,100,101,98,117,103,45,49,54,46, +112,110,103,60,47,111,98,106,101,99,116,62,10,60,47,114,101,115,111,117, +114,99,101,62,10}; + +void wxCF01InitBitmapResources() +{ + + // Check for memory FS. If not present, load the handler: + { + wxMemoryFSHandler::AddFile(wxT("XRC_resource/dummy_file"), wxT("dummy one")); + wxFileSystem fsys; + wxFSFile *f = fsys.OpenFile(wxT("memory:XRC_resource/dummy_file")); + wxMemoryFSHandler::RemoveFile(wxT("XRC_resource/dummy_file")); + if (f) delete f; + else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase); + } + + XRC_ADD_FILE(wxT("XRC_resource/php_ui_php-plugin_bitmaps.cpp$.._resources_cloud-copy.png"), xml_res_file_0, xml_res_size_0, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/php_ui_php-plugin_bitmaps.cpp$.._.._LiteEditor_res_collapse.png"), xml_res_file_1, xml_res_size_1, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/php_ui_php-plugin_bitmaps.cpp$.._resources_delete-all.png"), xml_res_file_2, xml_res_size_2, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/php_ui_php-plugin_bitmaps.cpp$.._resources_delete-one.png"), xml_res_file_3, xml_res_size_3, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/php_ui_php-plugin_bitmaps.cpp$.._.._codelite-icons_toolbars_16_standard_forward.png"), xml_res_file_4, xml_res_size_4, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/php_ui_php-plugin_bitmaps.cpp$.._.._codelite-icons_toolbars_16_standard_forward-disabled.png"), xml_res_file_5, xml_res_size_5, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/php_ui_php-plugin_bitmaps.cpp$.._resources_console.png"), xml_res_file_6, xml_res_size_6, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/php_ui_php-plugin_bitmaps.cpp$.._resources_devil.png"), xml_res_file_7, xml_res_size_7, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/php_ui_php-plugin_bitmaps.cpp$.._resources_elephant.png"), xml_res_file_8, xml_res_size_8, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/php_ui_php-plugin_bitmaps.cpp$.._resources_php-file.png"), xml_res_file_9, xml_res_size_9, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/php_ui_php-plugin_bitmaps.cpp$.._resources_php-workspace.png"), xml_res_file_10, xml_res_size_10, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/php_ui_php-plugin_bitmaps.cpp$.._resources_refresh.png"), xml_res_file_11, xml_res_size_11, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/php_ui_php-plugin_bitmaps.cpp$.._resources_php-project-settings.png"), xml_res_file_12, xml_res_size_12, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/php_ui_php-plugin_bitmaps.cpp$.._resources_xdebug-16.png"), xml_res_file_13, xml_res_size_13, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/php_ui_php-plugin_bitmaps.cpp$C__src_codelite_codelitephp_php-plugin_php_ui_php-plugin_bitmaps.xrc"), xml_res_file_14, xml_res_size_14, wxT("text/xml")); + wxXmlResource::Get()->Load(wxT("memory:XRC_resource/php_ui_php-plugin_bitmaps.cpp$C__src_codelite_codelitephp_php-plugin_php_ui_php-plugin_bitmaps.xrc")); +} diff -Nru codelite-8.0.1+dfsg2/codelitephp/php-plugin/php_ui.wxcp codelite-9.0+dfsg/codelitephp/php-plugin/php_ui.wxcp --- codelite-8.0.1+dfsg2/codelitephp/php-plugin/php_ui.wxcp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/codelitephp/php-plugin/php_ui.wxcp 2015-10-11 13:56:07.000000000 +0000 @@ -1,7 +1,7 @@ { "metadata": { "m_generatedFilesDir": ".", - "m_objCounter": 675, + "m_objCounter": 689, "m_includeFiles": [], "m_bitmapFunction": "wxCF01InitBitmapResources", "m_bitmapsFile": "php_ui_php-plugin_bitmaps.cpp", @@ -352,468 +352,6 @@ }, { "type": "string", "m_label": "Name:", - "m_value": "NewWorkspaceSelectionDlgBase" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Enable Window Persistency:", - "m_value": true - }, { - "type": "string", - "m_label": "Title:", - "m_value": "New Workspace Type..." - }, { - "type": "virtualFolderPicker", - "m_label": "Virtual Folder:", - "m_path": "" - }, { - "type": "choice", - "m_label": "Centre:", - "m_selection": 1, - "m_options": ["", "wxBOTH", "wxVERTICAL", "wxHORIZONTAL"] - }, { - "type": "string", - "m_label": "Inherited Class", - "m_value": "NewWorkspaceSelectionDlg" - }, { - "type": "string", - "m_label": "File:", - "m_value": "new_workspace_selection_dlg" - }, { - "type": "string", - "m_label": "Class Decorator", - "m_value": "" - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File (16x16) :", - "m_path": "" - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File (32x32) :", - "m_path": "" - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File (64x64) :", - "m_path": "" - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File (128x128):", - "m_path": "" - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File (256x256):", - "m_path": "" - }], - "m_events": [{ - "m_eventName": "wxEVT_CLOSE_WINDOW", - "m_eventClass": "wxCloseEvent", - "m_eventHandler": "wxCloseEventHandler", - "m_functionNameAndSignature": "OnClose(wxCloseEvent& event)", - "m_description": "Process a close event. This event applies to wxFrame and wxDialog classes", - "m_noBody": false - }, { - "m_eventName": "wxEVT_KEY_DOWN", - "m_eventClass": "wxKeyEvent", - "m_eventHandler": "wxKeyEventHandler", - "m_functionNameAndSignature": "OnKeyDown(wxKeyEvent& event)", - "m_description": "Process a wxEVT_KEY_DOWN event (any key has been pressed)", - "m_noBody": false - }], - "m_children": [{ - "m_type": 4401, - "proportion": 0, - "border": 0, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "bSizer2" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4408, - "proportion": 1, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": ["wxWANTS_CHARS", "wxTAB_TRAVERSAL"], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_panel1" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }], - "m_events": [{ - "m_eventName": "wxEVT_KEY_DOWN", - "m_eventClass": "wxKeyEvent", - "m_eventHandler": "wxKeyEventHandler", - "m_functionNameAndSignature": "OnKeyDown(wxKeyEvent& event)", - "m_description": "Process a wxEVT_KEY_DOWN event (any key has been pressed)", - "m_noBody": false - }], - "m_children": [{ - "m_type": 4401, - "proportion": 0, - "border": 0, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "bSizer11" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4416, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": ["wxRA_SPECIFY_COLS"], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_radioBox" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "Select the workspace type:" - }, { - "type": "multi-string", - "m_label": "Choices:", - "m_value": "C++ Workspace;PHP Workspace" - }, { - "type": "string", - "m_label": "Selection:", - "m_value": "0" - }, { - "type": "string", - "m_label": "Major Dimension:", - "m_value": "1" - }], - "m_events": [], - "m_children": [] - }] - }] - }, { - "m_type": 4467, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_HORIZONTAL"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_stdBtnSizer469" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }], - "m_events": [], - "m_children": [{ - "m_type": 4468, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "choice", - "m_label": "ID:", - "m_selection": 0, - "m_options": ["wxID_OK", "wxID_YES", "wxID_SAVE", "wxID_APPLY", "wxID_CLOSE", "wxID_NO", "wxID_CANCEL", "wxID_HELP", "wxID_CONTEXT_HELP"] - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_buttonOK" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Default Button", - "m_value": true - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4468, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "choice", - "m_label": "ID:", - "m_selection": 6, - "m_options": ["wxID_OK", "wxID_YES", "wxID_SAVE", "wxID_APPLY", "wxID_CLOSE", "wxID_NO", "wxID_CANCEL", "wxID_HELP", "wxID_CONTEXT_HELP"] - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_buttonCancel" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Default Button", - "m_value": false - }], - "m_events": [], - "m_children": [] - }] - }] - }] - }, { - "m_type": 4421, - "proportion": 0, - "border": 0, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": ["wxDEFAULT_DIALOG_STYLE", "wxRESIZE_BORDER"], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", "m_value": "NewPHPWorkspaceBaseDlg" }, { "type": "multi-string", @@ -936,7 +474,7 @@ "m_children": [{ "m_type": 4403, "proportion": 0, - "border": 5, + "border": 10, "gbSpan": ",", "gbPosition": ",", "m_styles": [], @@ -1269,7 +807,7 @@ }, { "type": "multi-string", "m_label": "Tooltip:", - "m_value": "" + "m_value": "The workspace path. This path must exist" }, { "type": "colour", "m_label": "Bg Colour:", @@ -1335,7 +873,7 @@ "border": 5, "gbSpan": "1,1", "gbPosition": "0,0", - "m_styles": [], + "m_styles": ["wxBU_EXACTFIT"], "m_sizerFlags": ["wxALIGN_CENTER_VERTICAL"], "m_properties": [{ "type": "winid", @@ -1356,7 +894,7 @@ }, { "type": "multi-string", "m_label": "Tooltip:", - "m_value": "" + "m_value": "Browse for folder" }, { "type": "colour", "m_label": "Bg Colour:", @@ -1396,7 +934,7 @@ }, { "type": "string", "m_label": "Label:", - "m_value": "Browse" + "m_value": "..." }, { "type": "bool", "m_label": "Default Button", @@ -1466,11 +1004,11 @@ }, { "type": "string", "m_label": "Name:", - "m_value": "m_checkBoxCreateInSeparateDir" + "m_value": "m_checkBoxAddProjectFromSources" }, { "type": "multi-string", "m_label": "Tooltip:", - "m_value": "" + "m_value": "When checked, CodeLite will create a PHP project that contains all the source files located\\nunder the workspace directory" }, { "type": "colour", "m_label": "Bg Colour:", @@ -1510,20 +1048,13 @@ }, { "type": "string", "m_label": "Label:", - "m_value": "Create the workspace in a separate directory" + "m_value": "Create a project from the source files under the workspace path" }, { "type": "bool", "m_label": "Value:", - "m_value": true - }], - "m_events": [{ - "m_eventName": "wxEVT_COMMAND_CHECKBOX_CLICKED", - "m_eventClass": "wxCommandEvent", - "m_eventHandler": "wxCommandEventHandler", - "m_functionNameAndSignature": "OnCheckMakeSeparateDir(wxCommandEvent& event)", - "m_description": "Process a wxEVT_COMMAND_CHECKBOX_CLICKED event, when the checkbox is clicked.", - "m_noBody": false + "m_value": false }], + "m_events": [], "m_children": [] }, { "m_type": 4454, @@ -1544,8 +1075,128 @@ }], "m_events": [], "m_children": [] + }, { + "m_type": 4454, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "Spacer683" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "0,0" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4415, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_checkBoxCreateInSeparateDir" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "When enabled, create the workspace in a sub directory" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Create the workspace in a separate directory" + }, { + "type": "bool", + "m_label": "Value:", + "m_value": false + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_CHECKBOX_CLICKED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnCheckMakeSeparateDir(wxCommandEvent& event)", + "m_description": "Process a wxEVT_COMMAND_CHECKBOX_CLICKED event, when the checkbox is clicked.", + "m_noBody": false + }], + "m_children": [] }] }, { + "m_type": 4454, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "Spacer67" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "0,0" + }], + "m_events": [], + "m_children": [] + }, { "m_type": 4406, "proportion": 0, "border": 5, @@ -1633,136 +1284,96 @@ "m_events": [], "m_children": [] }, { - "m_type": 4454, - "proportion": 1, - "border": 5, + "m_type": 4467, + "proportion": 0, + "border": 10, "gbSpan": "1,1", "gbPosition": "0,0", "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_HORIZONTAL"], "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "Spacer67" + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" }, { "type": "string", "m_label": "Size:", - "m_value": "0,0" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4401, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_HORIZONTAL"], - "m_properties": [{ + "m_value": "-1,-1" + }, { "type": "string", "m_label": "Minimum Size:", "m_value": "-1,-1" }, { "type": "string", "m_label": "Name:", - "m_value": "bSizer4" + "m_value": "m_stdBtnSizer685" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false }, { "type": "string", - "m_label": "Style:", + "m_label": "Class Name:", "m_value": "" }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 1, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" }], "m_events": [], "m_children": [{ - "m_type": 4400, + "m_type": 4468, "proportion": 0, "border": 5, - "gbSpan": ",", - "gbPosition": ",", + "gbSpan": "1,1", + "gbPosition": "0,0", "m_styles": [], "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], "m_properties": [{ - "type": "winid", + "type": "choice", "m_label": "ID:", - "m_winid": "wxID_OK" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" + "m_selection": 0, + "m_options": ["wxID_OK", "wxID_YES", "wxID_SAVE", "wxID_APPLY", "wxID_CLOSE", "wxID_NO", "wxID_CANCEL", "wxID_HELP", "wxID_CONTEXT_HELP"] }, { "type": "string", "m_label": "Name:", - "m_value": "m_button6" + "m_value": "m_button687" }, { "type": "multi-string", "m_label": "Tooltip:", "m_value": "" }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "&OK" - }, { "type": "bool", "m_label": "Default Button", "m_value": true - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File:", - "m_path": "" - }, { - "type": "choice", - "m_label": "Direction", - "m_selection": 0, - "m_options": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"] - }, { - "type": "string", - "m_label": "Margins:", - "m_value": "2,2" }], "m_events": [{ "m_eventName": "wxEVT_COMMAND_BUTTON_CLICKED", @@ -1781,90 +1392,30 @@ }], "m_children": [] }, { - "m_type": 4400, + "m_type": 4468, "proportion": 0, "border": 5, - "gbSpan": ",", - "gbPosition": ",", + "gbSpan": "1,1", + "gbPosition": "0,0", "m_styles": [], "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], "m_properties": [{ - "type": "winid", + "type": "choice", "m_label": "ID:", - "m_winid": "wxID_CANCEL" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" + "m_selection": 6, + "m_options": ["wxID_OK", "wxID_YES", "wxID_SAVE", "wxID_APPLY", "wxID_CLOSE", "wxID_NO", "wxID_CANCEL", "wxID_HELP", "wxID_CONTEXT_HELP"] }, { "type": "string", "m_label": "Name:", - "m_value": "m_button7" + "m_value": "m_button689" }, { "type": "multi-string", "m_label": "Tooltip:", "m_value": "" }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "&Cancel" - }, { "type": "bool", "m_label": "Default Button", "m_value": false - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File:", - "m_path": "" - }, { - "type": "choice", - "m_label": "Direction", - "m_selection": 0, - "m_options": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"] - }, { - "type": "string", - "m_label": "Margins:", - "m_value": "2,2" }], "m_events": [], "m_children": [] @@ -5892,7 +5443,7 @@ "gbSpan": "1,1", "gbPosition": "0,0", "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_HORIZONTAL"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_LEFT"], "m_properties": [{ "type": "winid", "m_label": "ID:", @@ -10383,7 +9934,7 @@ "border": 2, "gbSpan": "1,1", "gbPosition": "0,0", - "m_styles": ["wxTR_DEFAULT_STYLE", "wxTR_MULTIPLE", "wxTR_FULL_ROW_HIGHLIGHT", "wxTR_NO_LINES"], + "m_styles": ["wxTR_MULTIPLE", "wxTR_FULL_ROW_HIGHLIGHT", "wxTR_NO_LINES", "wxTR_HAS_BUTTONS", "wxBORDER_STATIC"], "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "winid", @@ -10629,11 +10180,11 @@ }, { "type": "string", "m_label": "Class Name:", - "m_value": "" + "m_value": "Notebook" }, { "type": "string", "m_label": "Include File:", - "m_value": "" + "m_value": "Notebook.h" }, { "type": "string", "m_label": "Style:", @@ -10755,7 +10306,7 @@ "border": 2, "gbSpan": "1,1", "gbPosition": "0,0", - "m_styles": ["wxDV_ROW_LINES", "wxDV_SINGLE"], + "m_styles": ["wxDV_VERT_RULES", "wxDV_ROW_LINES", "wxDV_SINGLE"], "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "winid", @@ -10788,7 +10339,7 @@ }, { "type": "font", "m_label": "Font:", - "m_value": "wxSYS_ANSI_FIXED_FONT,normal,normal,normal" + "m_value": "" }, { "type": "bool", "m_label": "Hidden", @@ -12025,6 +11576,25 @@ }], "m_events": [], "m_children": [] + }, { + "m_type": 4482, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "m_bmpPhpWorkspace" + }, { + "type": "filePicker", + "m_label": "Bitmap File:", + "m_path": "../resources/php-workspace.png" + }], + "m_events": [], + "m_children": [] }] }, { "m_type": 4407, @@ -12195,11 +11765,11 @@ }, { "type": "string", "m_label": "Class Name:", - "m_value": "" + "m_value": "Notebook" }, { "type": "string", "m_label": "Include File:", - "m_value": "" + "m_value": "Notebook.h" }, { "type": "string", "m_label": "Style:", @@ -12277,7 +11847,7 @@ }, { "type": "bitmapPicker", "m_label": "Bitmap File:", - "m_path": "../resources/devil.png" + "m_path": "" }, { "type": "bool", "m_label": "Selected", @@ -12731,7 +12301,7 @@ }, { "type": "bitmapPicker", "m_label": "Bitmap File:", - "m_path": "../resources/console.png" + "m_path": "" }, { "type": "bool", "m_label": "Selected", @@ -18436,7 +18006,7 @@ }, { "type": "string", "m_label": "Size:", - "m_value": "-1,-1" + "m_value": "-1,200" }, { "type": "string", "m_label": "Minimum Size:", diff -Nru codelite-8.0.1+dfsg2/codelitephp/php-plugin/php_workspace_view.cpp codelite-9.0+dfsg/codelitephp/php-plugin/php_workspace_view.cpp --- codelite-8.0.1+dfsg2/codelitephp/php-plugin/php_workspace_view.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/codelitephp/php-plugin/php_workspace_view.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -34,6 +34,8 @@ #include "clFileOrFolderDropTarget.h" #include "php_configuration_data.h" #include +#include "clWorkspaceView.h" +#include "php_strings.h" #define CHECK_ID_FOLDER(id) \ if(!id->IsFolder()) return @@ -77,16 +79,14 @@ m_bitmaps = bmpLoader->MakeStandardMimeMap(); EventNotifier::Get()->Connect( wxEVT_CMD_EXECUTE_ACTIVE_PROJECT, clExecuteEventHandler(PHPWorkspaceView::OnRunActiveProject), NULL, this); - EventNotifier::Get()->Connect( - wxEVT_CMD_STOP_EXECUTED_PROGRAM, wxCommandEventHandler(PHPWorkspaceView::OnStopExecutedProgram), NULL, this); - EventNotifier::Get()->Connect( - wxEVT_CMD_IS_PROGRAM_RUNNING, wxCommandEventHandler(PHPWorkspaceView::OnIsProgramRunning), NULL, this); + EventNotifier::Get()->Bind(wxEVT_CMD_STOP_EXECUTED_PROGRAM, &PHPWorkspaceView::OnStopExecutedProgram, this); + EventNotifier::Get()->Bind(wxEVT_CMD_IS_PROGRAM_RUNNING, &PHPWorkspaceView::OnIsProgramRunning, this); EventNotifier::Get()->Connect( wxEVT_ACTIVE_EDITOR_CHANGED, wxCommandEventHandler(PHPWorkspaceView::OnEditorChanged), NULL, this); EventNotifier::Get()->Connect(wxEVT_PHP_FILE_RENAMED, PHPEventHandler(PHPWorkspaceView::OnFileRenamed), NULL, this); EventNotifier::Get()->Bind(wxPHP_PARSE_ENDED, &PHPWorkspaceView::OnPhpParserDone, this); EventNotifier::Get()->Bind(wxPHP_PARSE_PROGRESS, &PHPWorkspaceView::OnPhpParserProgress, this); - + EventNotifier::Get()->Bind(wxEVT_PHP_WORKSPACE_LOADED, &PHPWorkspaceView::OnWorkspaceLoaded, this); EventNotifier::Get()->Bind(wxEVT_PHP_WORKSPACE_RENAMED, &PHPWorkspaceView::OnWorkspaceRenamed, this); BitmapLoader* bl = m_mgr->GetStdIcons(); wxImageList* imageList = bl->MakeStandardMimeImageList(); @@ -101,16 +101,15 @@ { EventNotifier::Get()->Disconnect( wxEVT_CMD_EXECUTE_ACTIVE_PROJECT, clExecuteEventHandler(PHPWorkspaceView::OnRunActiveProject), NULL, this); - EventNotifier::Get()->Disconnect( - wxEVT_CMD_STOP_EXECUTED_PROGRAM, wxCommandEventHandler(PHPWorkspaceView::OnStopExecutedProgram), NULL, this); - EventNotifier::Get()->Disconnect( - wxEVT_CMD_IS_PROGRAM_RUNNING, wxCommandEventHandler(PHPWorkspaceView::OnIsProgramRunning), NULL, this); + EventNotifier::Get()->Unbind(wxEVT_CMD_STOP_EXECUTED_PROGRAM, &PHPWorkspaceView::OnStopExecutedProgram, this); + EventNotifier::Get()->Unbind(wxEVT_CMD_IS_PROGRAM_RUNNING, &PHPWorkspaceView::OnIsProgramRunning, this); EventNotifier::Get()->Disconnect( wxEVT_ACTIVE_EDITOR_CHANGED, wxCommandEventHandler(PHPWorkspaceView::OnEditorChanged), NULL, this); EventNotifier::Get()->Disconnect( wxEVT_PHP_FILE_RENAMED, PHPEventHandler(PHPWorkspaceView::OnFileRenamed), NULL, this); EventNotifier::Get()->Unbind(wxPHP_PARSE_ENDED, &PHPWorkspaceView::OnPhpParserDone, this); EventNotifier::Get()->Unbind(wxPHP_PARSE_PROGRESS, &PHPWorkspaceView::OnPhpParserProgress, this); + EventNotifier::Get()->Unbind(wxEVT_PHP_WORKSPACE_LOADED, &PHPWorkspaceView::OnWorkspaceLoaded, this); EventNotifier::Get()->Unbind(wxEVT_PHP_WORKSPACE_RENAMED, &PHPWorkspaceView::OnWorkspaceRenamed, this); Unbind(wxEVT_DND_FOLDER_DROPPED, &PHPWorkspaceView::OnFolderDropped, this); } @@ -123,6 +122,18 @@ return; } + // If a workspace is already exist at the selected path - load it + wxArrayString workspaceFiles; + wxString workspaceFile; + wxDir::GetAllFiles(folders.Item(0), &workspaceFiles, "*.workspace", wxDIR_FILES); + // Check the workspace type + for(size_t i = 0; i < workspaceFiles.size(); ++i) { + if(FileExtManager::GetType(workspaceFiles.Item(i)) == FileExtManager::TypeWorkspacePHP) { + workspaceFile = workspaceFiles.Item(i); + break; + } + } + wxFileName workspaceFileName; wxFileName projectFileName(folders.Item(0), ""); projectFileName.SetName(projectFileName.GetDirs().Last()); @@ -133,19 +144,46 @@ workspaceFileName.SetName(workspaceFileName.GetDirs().Last()); workspaceFileName.SetExt("workspace"); + if(!workspaceFile.IsEmpty()) { + workspaceFileName = wxFileName(workspaceFile); + } + + if(!workspaceFileName.IsDirWritable()) { + wxString message; + message << _("Failed to create workspace '") << workspaceFileName.GetFullPath() << "'\n" + << _("Permission denied."); + ::wxMessageBox(message, "CodeLite", wxOK | wxICON_ERROR | wxCENTER); + return; + } // Create an empty workspace if(!PHPWorkspace::Get()->Open(workspaceFileName.GetFullPath(), true)) { wxString message; - message << _("Failed to create workspace '") << workspaceFileName.GetFullPath() << "'\n" - << _("File exists"); + message << _("Failed to open workspace '") << workspaceFileName.GetFullPath() << "'\n" << _("File exists"); ::wxMessageBox(message, "CodeLite", wxOK | wxICON_ERROR | wxCENTER); return; } - // We just created and opened a new workspace, add it to the "Recently used" - m_mgr->AddWorkspaceToRecentlyUsedList(workspaceFileName); + // // We just created and opened a new workspace, add it to the "Recently used" + // m_mgr->AddWorkspaceToRecentlyUsedList(workspaceFileName); + LoadWorkspace(); + + // Ensure that the view is visible + m_mgr->GetWorkspaceView()->SelectPage(PHPStrings::PHP_WORKSPACE_VIEW_LABEL); + + // If we loaded an already existing workspace, we are done here + if(!workspaceFile.IsEmpty()) return; } else { + if(!workspaceFile.IsEmpty()) { + // its the same workspace - do nothing + if(PHPWorkspace::Get()->GetFilename().GetFullPath() == workspaceFile) return; + // Different workspaces, prompt the user to close its workspace before continuing + ::wxMessageBox( + _("The folder already contains a workspace file\nPlease close the current workspace before continuing"), + "CodeLite", + wxOK | wxICON_WARNING | wxCENTER); + return; + } workspaceFileName = PHPWorkspace::Get()->GetFilename(); } @@ -186,8 +224,8 @@ menu.AppendSeparator(); menu.Append(XRCID("php_remove_file"), _("Delete")); menu.AppendSeparator(); - menu.Append(XRCID("php_open_folder_in_explorer"), _("Open in File Explorer")); - menu.Append(XRCID("php_open_shell"), _("Open Shell Here")); + menu.Append(XRCID("php_open_folder_in_explorer"), _("Open Containing Folder")); + menu.Append(XRCID("php_open_shell"), _("Open Shell")); menu.AppendSeparator(); menu.Append(XRCID("php_open_with_default_app"), _("Open with Default Application")); @@ -215,8 +253,8 @@ menu.AppendSeparator(); menu.Append(XRCID("rename_php_workspace"), _("Rename")); menu.AppendSeparator(); - menu.Append(XRCID("php_open_folder_in_explorer"), _("Open in File Explorer")); - menu.Append(XRCID("php_open_shell"), _("Open Shell Here")); + menu.Append(XRCID("php_open_folder_in_explorer"), _("Open Containing Folder")); + menu.Append(XRCID("php_open_shell"), _("Open Shell")); menu.AppendSeparator(); menuItem = new wxMenuItem(NULL, XRCID("php_folder_find_in_files"), _("Find In Files")); menuItem->SetBitmap(bmpFiF); @@ -237,8 +275,8 @@ menuItem->SetBitmap(bmpFiF); menu.Append(menuItem); menu.AppendSeparator(); - menu.Append(XRCID("php_open_folder_in_explorer"), _("Open in File Explorer")); - menu.Append(XRCID("php_open_shell"), _("Open Shell Here")); + menu.Append(XRCID("php_open_folder_in_explorer"), _("Open Containing Folder")); + menu.Append(XRCID("php_open_shell"), _("Open Shell")); menu.AppendSeparator(); menuItem = @@ -266,12 +304,18 @@ menu.AppendSeparator(); menu.Append(XRCID("php_remove_file"), _("Delete")); menu.AppendSeparator(); - menu.Append(XRCID("php_open_folder_in_explorer"), _("Open in File Explorer")); - menu.Append(XRCID("php_open_shell"), _("Open Shell Here")); + menu.Append(XRCID("php_open_folder_in_explorer"), _("Open Containing Folder")); + menu.Append(XRCID("php_open_shell"), _("Open Shell")); menu.AppendSeparator(); menuItem = new wxMenuItem(NULL, XRCID("php_folder_find_in_files"), _("Find In Files")); menuItem->SetBitmap(bmpFiF); menu.Append(menuItem); + + clContextMenuEvent folderMenuEvent(wxEVT_CONTEXT_MENU_FOLDER); + folderMenuEvent.SetMenu(&menu); + folderMenuEvent.SetPath(wxFileName(data->GetFile()).GetPath()); + EventNotifier::Get()->ProcessEvent(folderMenuEvent); + m_treeCtrlView->PopupMenu(&menu); } break; default: @@ -594,6 +638,9 @@ ItemData* data = DoGetItemData(item); if(data && data->IsFile()) { m_mgr->OpenFile(data->GetFile()); + if(m_mgr->GetActiveEditor() && m_mgr->GetActiveEditor()->GetFileName().GetFullPath() == data->GetFile()) { + m_mgr->GetActiveEditor()->GetCtrl()->CallAfter(&wxStyledTextCtrl::SetFocus); + } } } @@ -794,10 +841,10 @@ } } -void PHPWorkspaceView::OnIsProgramRunning(wxCommandEvent& e) +void PHPWorkspaceView::OnIsProgramRunning(clExecuteEvent& e) { if(PHPWorkspace::Get()->IsOpen()) { - e.SetInt(PHPWorkspace::Get()->IsProjectRunning() ? 1 : 0); + e.SetAnswer(PHPWorkspace::Get()->IsProjectRunning()); } else { // Must call skip ! @@ -805,7 +852,7 @@ } } -void PHPWorkspaceView::OnStopExecutedProgram(wxCommandEvent& e) +void PHPWorkspaceView::OnStopExecutedProgram(clExecuteEvent& e) { if(PHPWorkspace::Get()->IsOpen() && PHPWorkspace::Get()->IsProjectRunning()) { PHPWorkspace::Get()->StopExecutedProgram(); @@ -1066,7 +1113,7 @@ void PHPWorkspaceView::DoBuildProjectNode(const wxTreeItemId& projectItem, PHPProject::Ptr_t project) { - const wxArrayString& files = project->GetFiles(); + const wxArrayString& files = project->GetFiles(NULL); for(size_t i = 0; i < files.GetCount(); ++i) { const wxString& filename = files.Item(i); wxFileName file(filename); @@ -1326,6 +1373,10 @@ wxWindowUpdateLocker locker(m_treeCtrlView); wxTreeItemId root = m_treeCtrlView->GetRootItem(); DoCollapseItem(root); + if(m_treeCtrlView->ItemHasChildren(root)) { + m_treeCtrlView->Expand(root); + m_treeCtrlView->Collapse(root); + } } void PHPWorkspaceView::OnCollapseUI(wxUpdateUIEvent& event) { event.Enable(PHPWorkspace::Get()->IsOpen()); } @@ -1358,7 +1409,9 @@ wxString projectToAdd = dlg.GetPath(); wxString errmsg; if(!PHPWorkspace::Get()->AddProject(projectToAdd, errmsg)) { - ::wxMessageBox(errmsg, "CodeLite", wxICON_WARNING | wxOK | wxCENTER); + if(!errmsg.IsEmpty()) { + ::wxMessageBox(errmsg, "CodeLite", wxICON_WARNING | wxOK | wxCENTER); + } return; } LoadWorkspace(); @@ -1379,3 +1432,9 @@ child = m_treeCtrlView->GetNextChild(m_treeCtrlView->GetRootItem(), cookie); } } + +void PHPWorkspaceView::OnWorkspaceLoaded(PHPEvent& event) +{ + event.Skip(); + m_mgr->GetWorkspaceView()->SelectPage(PHPStrings::PHP_WORKSPACE_VIEW_LABEL); // Ensure that the PHP view is selected +} diff -Nru codelite-8.0.1+dfsg2/codelitephp/php-plugin/php_workspace_view.h codelite-9.0+dfsg/codelitephp/php-plugin/php_workspace_view.h --- codelite-8.0.1+dfsg2/codelitephp/php-plugin/php_workspace_view.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/codelitephp/php-plugin/php_workspace_view.h 2015-10-11 13:56:07.000000000 +0000 @@ -29,11 +29,12 @@ virtual void OnCollapse(wxCommandEvent& event); virtual void DoCollapseItem(wxTreeItemId& item); void OnFolderDropped(clCommandEvent& event); - + virtual void OnCollapseUI(wxUpdateUIEvent& event); virtual void OnSetupRemoteUploadUI(wxUpdateUIEvent& event); virtual void OnItemActivated(wxTreeEvent& event); virtual void OnMenu(wxTreeEvent& event); + void OnWorkspaceLoaded(PHPEvent& event); #if USE_SFTP virtual void OnSetupRemoteUpload(wxAuiToolBarEvent& event); #endif @@ -104,8 +105,8 @@ void OnSyncProjectWithFileSystem(wxCommandEvent& e); void OnOpenWithDefaultApp(wxCommandEvent& e); void OnRunActiveProject(clExecuteEvent& e); - void OnStopExecutedProgram(wxCommandEvent& e); - void OnIsProgramRunning(wxCommandEvent& e); + void OnStopExecutedProgram(clExecuteEvent& e); + void OnIsProgramRunning(clExecuteEvent& e); void OnEditorChanged(wxCommandEvent& e); void OnFileRenamed(PHPEvent& e); void OnWorkspaceRenamed(PHPEvent& e); diff -Nru codelite-8.0.1+dfsg2/codelitephp/php-plugin/PHPXDebugSetupWizard.cpp codelite-9.0+dfsg/codelitephp/php-plugin/PHPXDebugSetupWizard.cpp --- codelite-8.0.1+dfsg2/codelitephp/php-plugin/PHPXDebugSetupWizard.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/codelitephp/php-plugin/PHPXDebugSetupWizard.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -21,7 +21,7 @@ // build the text to copy wxString content; content << "xdebug.remote_enable=1\n"; - content << "xdebug.ide_key=\"" << m_textCtrlKey->GetValue() << "\"\n"; + content << "xdebug.idekey=\"" << m_textCtrlKey->GetValue() << "\"\n"; content << "xdebug.remote_host=" << m_textCtrlIP->GetValue() << "\n"; content << "xdebug.remote_port=" << m_textCtrlPort->GetValue() << "\n"; diff -Nru codelite-8.0.1+dfsg2/codelitephp/php-plugin/XDebugCommThread.cpp codelite-9.0+dfsg/codelitephp/php-plugin/XDebugCommThread.cpp --- codelite-8.0.1+dfsg2/codelitephp/php-plugin/XDebugCommThread.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/codelitephp/php-plugin/XDebugCommThread.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -36,6 +36,8 @@ clSocketBase::Ptr_t client; int retry(0); try { + CL_DEBUG("CodeLite >>> Creating server on %s:%d", m_host, m_port); + wxCharBuffer cb = m_host.mb_str(wxConvUTF8); m_server.CreateServer(cb.data(), m_port); diff -Nru codelite-8.0.1+dfsg2/codelitephp/php-plugin/XDebugTester.cpp codelite-9.0+dfsg/codelitephp/php-plugin/XDebugTester.cpp --- codelite-8.0.1+dfsg2/codelitephp/php-plugin/XDebugTester.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/codelitephp/php-plugin/XDebugTester.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -52,7 +52,7 @@ } else { msg << "Passed"; } - m_results.insert(std::make_pair(wxString("xdebug.ide_key"), + m_results.insert(std::make_pair(wxString("xdebug.idekey"), std::make_pair(rootElement.namedObject("_ideKey").toString(), msg))); } m_results.insert(std::make_pair( Binary files /tmp/0wlVVhsoFK/codelite-8.0.1+dfsg2/codelitephp/resources/php-workspace.png and /tmp/qKeBoHmecl/codelite-9.0+dfsg/codelitephp/resources/php-workspace.png differ diff -Nru codelite-8.0.1+dfsg2/codelite_terminal/CMakeLists.txt codelite-9.0+dfsg/codelite_terminal/CMakeLists.txt --- codelite-8.0.1+dfsg2/codelite_terminal/CMakeLists.txt 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/codelite_terminal/CMakeLists.txt 2015-10-11 13:56:07.000000000 +0000 @@ -11,11 +11,6 @@ find_package(wxWidgets REQUIRED) endif ( UNIX OR MINGW AND NOT APPLE ) -# Add RPATH -if ( UNIX ) -set (LINKER_OPTIONS -Wl,-rpath,"${PLUGINS_DIR}") -endif ( UNIX ) - # we need wxWidgets flags to be set only for the c++ files, so we do it like this # by setting the CMAKE_CXX_FLAGS if ( NOT MINGW ) diff -Nru codelite-8.0.1+dfsg2/codelite_terminal/codelite_terminal.project codelite-9.0+dfsg/codelite_terminal/codelite_terminal.project --- codelite-8.0.1+dfsg2/codelite_terminal/codelite_terminal.project 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/codelite_terminal/codelite_terminal.project 2015-10-11 13:56:07.000000000 +0000 @@ -1,6 +1,9 @@ + + + + + + + @@ -90,7 +97,7 @@ - + @@ -122,7 +129,7 @@ - + @@ -162,21 +169,21 @@ - + - + - + @@ -201,7 +208,7 @@ - + @@ -242,7 +249,7 @@ - + @@ -250,8 +257,4 @@ - - - - diff -Nru codelite-8.0.1+dfsg2/codelite_terminal/MainFrame.cpp codelite-9.0+dfsg/codelite_terminal/MainFrame.cpp --- codelite-8.0.1+dfsg2/codelite_terminal/MainFrame.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/codelite_terminal/MainFrame.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -12,32 +12,31 @@ #ifndef __WXMSW__ #if defined(__FreeBSD__) -# include -# include -# include -# include +#include +#include +#include +#include #elif defined(__WXGTK__) -# include +#include #else -# include +#include #endif -# include "unixprocess_impl.h" +#include "unixprocess_impl.h" #endif static const int ID_FG_COLOR = ::wxNewId(); static const int ID_BG_COLOR = ::wxNewId(); -static const int ID_SIGKILL = ::wxNewId(); -static const int ID_SIGHUP = ::wxNewId(); -static const int ID_SIGTERM = ::wxNewId(); -static const int ID_SIGINT = ::wxNewId(); +static const int ID_SIGKILL = ::wxNewId(); +static const int ID_SIGHUP = ::wxNewId(); +static const int ID_SIGTERM = ::wxNewId(); +static const int ID_SIGINT = ::wxNewId(); static void WrapInShell(wxString& cmd) { wxString command; #ifdef __WXMSW__ - wxChar *shell = wxGetenv(wxT("COMSPEC")); - if ( !shell ) - shell = (wxChar*) wxT("\\COMMAND.COM"); + wxChar* shell = wxGetenv(wxT("COMSPEC")); + if(!shell) shell = (wxChar*)wxT("\\COMMAND.COM"); command << shell << wxT(" /c \""); command << cmd << wxT("\""); @@ -51,7 +50,7 @@ #define MARKER_ID 1 -MainFrame::MainFrame(wxWindow* parent, const TerminalOptions &options, long style) +MainFrame::MainFrame(wxWindow* parent, const TerminalOptions& options, long style) : MainFrameBaseClass(parent, wxID_ANY, "codelite-terminal", wxDefaultPosition, wxDefaultSize, style) , m_process(NULL) , m_ptyCllback(this) @@ -59,35 +58,35 @@ , m_options(options) , m_exitOnNextKey(false) { - SetTitle( m_options.GetTitle() ); - m_stc->SetFont( wxSystemSettings::GetFont(wxSYS_SYSTEM_FIXED_FONT) ); + SetTitle(m_options.GetTitle()); + m_stc->SetFont(wxSystemSettings::GetFont(wxSYS_SYSTEM_FIXED_FONT)); wxString tty = StartTTY(); SetCartAtEnd(); m_stc->MarkerDefine(MARKER_ID, wxSTC_MARK_ARROWS); m_stc->MarkerSetBackground(MARKER_ID, *wxBLACK); - //m_stc->MarkerSetAlpha(MARKER_ID, 5); - SetSize( m_config.GetTerminalSize() ); - SetPosition( m_config.GetTerminalPosition() ); + // m_stc->MarkerSetAlpha(MARKER_ID, 5); + SetSize(m_config.GetTerminalSize()); + SetPosition(m_config.GetTerminalPosition()); DoApplySettings(); - CallAfter( &MainFrame::DoExecStartCommand ); + CallAfter(&MainFrame::DoExecStartCommand); // Connect color menu items Connect(ID_BG_COLOR, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(MainFrame::OnSelectBgColour), NULL, this); Connect(ID_FG_COLOR, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(MainFrame::OnSelectFgColour), NULL, this); - Connect(ID_SIGKILL, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(MainFrame::OnSignal), NULL, this); - Connect(ID_SIGINT, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(MainFrame::OnSignal), NULL, this); - Connect(ID_SIGTERM, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(MainFrame::OnSignal), NULL, this); - Connect(ID_SIGHUP, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(MainFrame::OnSignal), NULL, this); + Connect(ID_SIGKILL, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(MainFrame::OnSignal), NULL, this); + Connect(ID_SIGINT, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(MainFrame::OnSignal), NULL, this); + Connect(ID_SIGTERM, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(MainFrame::OnSignal), NULL, this); + Connect(ID_SIGHUP, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(MainFrame::OnSignal), NULL, this); } MainFrame::~MainFrame() { StopTTY(); - m_config.SetTerminalPosition( GetPosition() ); - m_config.SetTerminalSize( GetSize() ); - m_config.SetBgColour( m_stc->StyleGetBackground(0) ); - m_config.SetFgColour( m_stc->StyleGetForeground(0) ); + m_config.SetTerminalPosition(GetPosition()); + m_config.SetTerminalSize(GetSize()); + m_config.SetBgColour(m_stc->StyleGetBackground(0)); + m_config.SetFgColour(m_stc->StyleGetForeground(0)); m_config.Save(); // Call this so the clipboard is still available after codelite-terminal exits @@ -113,50 +112,48 @@ void MainFrame::OnKeyDown(wxKeyEvent& event) { - if ( m_exitOnNextKey ) { + if(m_exitOnNextKey) { - if ( event.GetKeyCode() == WXK_RETURN || event.GetKeyCode() == WXK_NUMPAD_ENTER ) { + if(event.GetKeyCode() == WXK_RETURN || event.GetKeyCode() == WXK_NUMPAD_ENTER) { Close(); - } else if ( event.GetModifiers() == wxMOD_CONTROL && event.GetKeyCode() == 'C') { + } else if(event.GetModifiers() == wxMOD_CONTROL && event.GetKeyCode() == 'C') { // allow copy event.Skip(); } else { return; } - } - if ( event.GetKeyCode() == WXK_RETURN || event.GetKeyCode() == WXK_NUMPAD_ENTER ) { - if ( m_dummyProcess && m_options.HasFlag( TerminalOptions::kDebuggerTerminal ) ) { + if(event.GetKeyCode() == WXK_RETURN || event.GetKeyCode() == WXK_NUMPAD_ENTER) { + if(m_dummyProcess && m_options.HasFlag(TerminalOptions::kDebuggerTerminal)) { // write the output to the dummy process wxString cmd = GetCurrentLine(); AppendNewLine(); - m_dummyProcess->Write( cmd ); + m_dummyProcess->Write(cmd); } - - if ( m_process ) { + + if(m_process) { wxString cmd = GetCurrentLine(); AppendNewLine(); - m_process->Write( cmd ); - + m_process->Write(cmd); + } else { DoExecuteCurrentLine(); - } - } else if ( event.GetKeyCode() == WXK_UP ||event.GetKeyCode() == WXK_NUMPAD_UP ) { + } else if(event.GetKeyCode() == WXK_UP || event.GetKeyCode() == WXK_NUMPAD_UP) { // TODO: show history here - } else if ( event.GetKeyCode() == WXK_DOWN ||event.GetKeyCode() == WXK_NUMPAD_DOWN ) { + } else if(event.GetKeyCode() == WXK_DOWN || event.GetKeyCode() == WXK_NUMPAD_DOWN) { // TODO: show history here - } else if ( event.GetKeyCode() == WXK_DELETE || event.GetKeyCode() == WXK_NUMPAD_DELETE ) { + } else if(event.GetKeyCode() == WXK_DELETE || event.GetKeyCode() == WXK_NUMPAD_DELETE) { event.Skip(); - } else if ( event.GetKeyCode() == WXK_BACK ) { - if ( (m_stc->GetCurrentPos() -1) < m_fromPos ) { + } else if(event.GetKeyCode() == WXK_BACK) { + if((m_stc->GetCurrentPos() - 1) < m_fromPos) { return; } event.Skip(); @@ -166,46 +163,47 @@ } } -void MainFrame::DoExecuteCurrentLine(const wxString &command) +void MainFrame::DoExecuteCurrentLine(const wxString& command) { bool async = false; wxString cmd = command.IsEmpty() ? GetCurrentLine() : command; cmd.Trim().Trim(false); - if ( cmd.EndsWith("&") ) { + if(cmd.EndsWith("&")) { // Run in the background cmd.RemoveLast(); async = true; } - if ( command.IsEmpty() ) { + if(command.IsEmpty()) { AppendNewLine(); } - if ( cmd.IsEmpty() ) { + if(cmd.IsEmpty()) { SetCartAtEnd(); return; } m_process = NULL; static wxRegEx reCD("cd[ \t]+"); - if ( reCD.Matches( cmd ) ) { + if(reCD.Matches(cmd)) { reCD.Replace(&cmd, ""); - if ( ::wxSetWorkingDirectory( cmd ) ) { + if(::wxSetWorkingDirectory(cmd)) { m_stc->AppendText("current directory: " + ::wxGetCwd() + "\n"); } else { - m_stc->AppendText( wxString(strerror(errno)) + "\n" ); + m_stc->AppendText(wxString(strerror(errno)) + "\n"); } SetCartAtEnd(); - } else if ( cmd == "tty" ) { + } else if(cmd == "tty") { m_stc->AppendText(m_tty + "\n"); SetCartAtEnd(); } else { - WrapInShell( cmd ); - IProcess *proc = ::CreateAsyncProcessCB(this, new MyCallback(this), cmd, IProcessCreateWithHiddenConsole, ::wxGetCwd()); - if ( !async ) { + WrapInShell(cmd); + IProcess* proc = + ::CreateAsyncProcessCB(this, new MyCallback(this), cmd, IProcessCreateWithHiddenConsole, ::wxGetCwd()); + if(!async) { // keep the process handle for sync commands only m_process = proc; } @@ -222,13 +220,13 @@ void MainFrame::OnStcUpdateUI(wxStyledTextEvent& event) { - //m_stc->SetReadOnly( m_stc->GetCurrentPos() < m_fromPos ); + // m_stc->SetReadOnly( m_stc->GetCurrentPos() < m_fromPos ); } void MainFrame::SetCartAtEnd() { int len = m_stc->GetLength(); - m_stc->SetInsertionPoint( len ); + m_stc->SetInsertionPoint(len); m_stc->SetCurrentPos(len); m_stc->SetSelection(len, len); m_stc->ScrollToEnd(); @@ -243,7 +241,7 @@ wxString MainFrame::StartTTY() { -#if defined(__WXGTK__)||defined(__WXMAC__) +#if defined(__WXGTK__) || defined(__WXMAC__) m_process = NULL; char __name[128]; @@ -251,8 +249,7 @@ int master(-1); m_slave = -1; - if(openpty(&master, &m_slave, __name, NULL, NULL) != 0) - return wxT(""); + if(openpty(&master, &m_slave, __name, NULL, NULL) != 0) return wxT(""); // disable ECHO struct termios termio; @@ -265,9 +262,9 @@ // Start a listener on the tty m_dummyProcess = new UnixProcessImpl(this); - m_dummyProcess->SetCallback( &m_ptyCllback ); + m_dummyProcess->SetCallback(&m_ptyCllback); - static_cast(m_dummyProcess)->SetReadHandle (master); + static_cast(m_dummyProcess)->SetReadHandle(master); static_cast(m_dummyProcess)->SetWriteHandler(master); static_cast(m_dummyProcess)->SetPid(wxNOT_FOUND); static_cast(m_dummyProcess)->StartReaderThread(); @@ -277,7 +274,7 @@ void MainFrame::StopTTY() { -#if defined(__WXGTK__)||defined(__WXMAC__) +#if defined(__WXGTK__) || defined(__WXMAC__) wxDELETE(m_dummyProcess); m_tty.Clear(); ::close(m_slave); @@ -287,16 +284,16 @@ void MainFrame::DoExecStartCommand() { - if ( !m_options.GetCommand().IsEmpty() ) { - //m_stc->AppendText( m_options.GetCommand() ); + if(!m_options.GetCommand().IsEmpty()) { + // m_stc->AppendText( m_options.GetCommand() ); DoExecuteCurrentLine(m_options.GetCommand()); } } void MainFrame::Exit() { - if ( m_options.HasFlag( TerminalOptions::kPauseBeforeExit ) ) { - + if(m_options.HasFlag(TerminalOptions::kPauseBeforeExit)) { + m_outoutBuffer << "\nHit ENTER to continue..."; FlushOutputBuffer(); m_exitOnNextKey = true; @@ -309,9 +306,9 @@ void MainFrame::OnAddMarker(wxTimerEvent& event) { int lastLine = m_stc->LineFromPosition(m_stc->GetLength()); - if ( m_process == NULL ) { + if(m_process == NULL) { m_stc->MarkerDeleteAll(MARKER_ID); - m_stc->MarkerAdd( lastLine, MARKER_ID); + m_stc->MarkerAdd(lastLine, MARKER_ID); } } @@ -325,20 +322,14 @@ void MainFrame::OnTerminateInfirior(wxCommandEvent& event) { - if ( m_process ) { + if(m_process) { m_process->Terminate(); } } -void MainFrame::OnTerminateInfiriorUI(wxUpdateUIEvent& event) -{ - event.Enable(m_process != NULL); -} +void MainFrame::OnTerminateInfiriorUI(wxUpdateUIEvent& event) { event.Enable(m_process != NULL); } -void MainFrame::OnClearViewUI(wxUpdateUIEvent& event) -{ - event.Enable( !m_stc->IsEmpty() ); -} +void MainFrame::OnClearViewUI(wxUpdateUIEvent& event) { event.Enable(!m_stc->IsEmpty()); } void MainFrame::OnSelectBgColour(wxCommandEvent& e) { @@ -354,8 +345,8 @@ void MainFrame::DoSetFont(wxFont font) { - if ( font.IsOk() ) { - for(int i=0; iStyleSetFont(i, font); } } @@ -363,64 +354,36 @@ void MainFrame::DoSetColour(const wxColour& colour, bool bgColour) { - if ( colour.IsOk() ) { - for(int i=0; iStyleSetBackground(i, colour); } else { m_stc->StyleSetForeground(i, colour); - } } - if ( !bgColour ) { + if(!bgColour) { m_stc->SetCaretForeground(colour); m_stc->MarkerSetForeground(MARKER_ID, colour); } } } -void MainFrame::OnSignalInferiorUI(wxUpdateUIEvent& event) -{ - event.Enable( m_process ); -} - -void MainFrame::OnSignalinferior(wxAuiToolBarEvent& event) -{ - if ( m_process ) { - if ( event.IsDropDownClicked() ) { - wxMenu menu; - menu.Append(ID_SIGKILL, "SIGKILL"); - menu.Append(ID_SIGTERM, "SIGTERM"); - menu.Append(ID_SIGINT, "SIGINT"); - menu.Append(ID_SIGHUP, "SIGHUP"); - - m_auibar17->SetToolSticky(ID_KILL_INFIRIOR, true); - PopupMenu(&menu, event.GetItemRect().GetLeftBottom()); - m_auibar17->SetToolSticky(ID_KILL_INFIRIOR, false); - - } else { - // Terminate - m_process->Terminate(); - - } - } -} - void MainFrame::OnSignal(wxCommandEvent& e) { - if ( m_process ) { + if(m_process) { int sigid = e.GetId(); - if ( sigid == ID_SIGHUP ) + if(sigid == ID_SIGHUP) wxKill(m_process->GetPid(), wxSIGHUP); - else if ( sigid == ID_SIGINT ) + else if(sigid == ID_SIGINT) wxKill(m_process->GetPid(), wxSIGINT); - else if ( sigid == ID_SIGKILL ) + else if(sigid == ID_SIGKILL) wxKill(m_process->GetPid(), wxSIGKILL); - else if ( sigid == ID_SIGKILL ) + else if(sigid == ID_SIGKILL) wxKill(m_process->GetPid(), wxSIGTERM); } } @@ -428,10 +391,10 @@ void MainFrame::OnSettings(wxCommandEvent& event) { SettingsDlg dlg(this); - if( dlg.ShowModal() == wxID_OK ) { - m_config.SetFgColour( dlg.GetFgColour() ); - m_config.SetBgColour( dlg.GetBgColour() ); - m_config.SetFont( dlg.GetFont() ); + if(dlg.ShowModal() == wxID_OK) { + m_config.SetFgColour(dlg.GetFgColour()); + m_config.SetBgColour(dlg.GetBgColour()); + m_config.SetFont(dlg.GetFont()); m_config.Save(); DoApplySettings(); } @@ -439,26 +402,27 @@ void MainFrame::DoApplySettings() { - DoSetColour( m_config.GetFgColour(), false ); - DoSetColour( m_config.GetBgColour(), true ); - DoSetFont ( m_config.GetFont() ); + DoSetColour(m_config.GetFgColour(), false); + DoSetColour(m_config.GetBgColour(), true); + DoSetFont(m_config.GetFont()); } void MainFrame::OnSaveContent(wxCommandEvent& event) { const wxString ALL(wxT("All Files (*)|*")); - wxFileDialog dlg(this, _("Save As"), ::wxGetCwd(), "codelite-terminal.txt", ALL, - wxFD_SAVE | wxFD_OVERWRITE_PROMPT , + wxFileDialog dlg(this, + _("Save As"), + ::wxGetCwd(), + "codelite-terminal.txt", + ALL, + wxFD_SAVE | wxFD_OVERWRITE_PROMPT, wxDefaultPosition); - if ( dlg.ShowModal() == wxID_OK ) { - m_stc->SaveFile( dlg.GetPath() ); + if(dlg.ShowModal() == wxID_OK) { + m_stc->SaveFile(dlg.GetPath()); } } -void MainFrame::OnSaveContentUI(wxUpdateUIEvent& event) -{ - event.Enable( !m_stc->IsEmpty() ); -} +void MainFrame::OnSaveContentUI(wxUpdateUIEvent& event) { event.Enable(!m_stc->IsEmpty()); } void MainFrame::OnIdle(wxIdleEvent& event) { @@ -466,20 +430,20 @@ FlushOutputBuffer(); } -#define wxMEGA_BYTE 1024*1024 +#define wxMEGA_BYTE 1024 * 1024 void MainFrame::AppendOutputText(const wxString& text) { m_outoutBuffer << text; - if ( m_outoutBuffer.length() > wxMEGA_BYTE ) { + if(m_outoutBuffer.length() > wxMEGA_BYTE) { FlushOutputBuffer(); } } void MainFrame::FlushOutputBuffer() { - if ( !m_outoutBuffer.IsEmpty() ) { - m_stc->AppendText( m_outoutBuffer ); + if(!m_outoutBuffer.IsEmpty()) { + m_stc->AppendText(m_outoutBuffer); SetCartAtEnd(); m_outoutBuffer.Clear(); } diff -Nru codelite-8.0.1+dfsg2/codelite_terminal/MainFrame.h codelite-9.0+dfsg/codelite_terminal/MainFrame.h --- codelite-8.0.1+dfsg2/codelite_terminal/MainFrame.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/codelite_terminal/MainFrame.h 2015-10-11 13:56:07.000000000 +0000 @@ -12,23 +12,22 @@ friend class MyCallback; friend class PtyCallback; - IProcess * m_process; - PtyCallback m_ptyCllback; - int m_fromPos; - IProcess * m_dummyProcess; - wxString m_tty; - int m_slave; + IProcess* m_process; + PtyCallback m_ptyCllback; + int m_fromPos; + IProcess* m_dummyProcess; + wxString m_tty; + int m_slave; TerminalOptions m_options; - bool m_exitOnNextKey; - MyConfig m_config; - wxString m_outoutBuffer; + bool m_exitOnNextKey; + MyConfig m_config; + wxString m_outoutBuffer; + protected: virtual void OnIdle(wxIdleEvent& event); virtual void OnSaveContentUI(wxUpdateUIEvent& event); virtual void OnSaveContent(wxCommandEvent& event); virtual void OnSettings(wxCommandEvent& event); - virtual void OnSignalInferiorUI(wxUpdateUIEvent& event); - virtual void OnSignalinferior(wxAuiToolBarEvent& event); virtual void OnClearViewUI(wxUpdateUIEvent& event); virtual void OnTerminateInfirior(wxCommandEvent& event); virtual void OnTerminateInfiriorUI(wxUpdateUIEvent& event); @@ -36,11 +35,11 @@ virtual void OnAddMarker(wxTimerEvent& event); virtual void OnStcUpdateUI(wxStyledTextEvent& event); - void OnSelectBgColour(wxCommandEvent &e); - void OnSelectFgColour(wxCommandEvent &e); - void OnSignal(wxCommandEvent &e); + void OnSelectBgColour(wxCommandEvent& e); + void OnSelectFgColour(wxCommandEvent& e); + void OnSignal(wxCommandEvent& e); - void DoExecuteCurrentLine(const wxString &command = wxEmptyString); + void DoExecuteCurrentLine(const wxString& command = wxEmptyString); wxString GetCurrentLine() const; void SetCartAtEnd(); void AppendNewLine(); @@ -50,17 +49,18 @@ void DoSetColour(const wxColour& colour, bool bgColour = false); void DoSetFont(wxFont font); void DoApplySettings(); - void AppendOutputText(const wxString &text); + void AppendOutputText(const wxString& text); void FlushOutputBuffer(); - + public: - MainFrame(wxWindow* parent, const TerminalOptions &options, long style = wxDEFAULT_FRAME_STYLE); + MainFrame(wxWindow* parent, const TerminalOptions& options, long style = wxDEFAULT_FRAME_STYLE); virtual ~MainFrame(); void OnExit(wxCommandEvent& event); void OnAbout(wxCommandEvent& event); - const TerminalOptions& GetOptions() const { + const TerminalOptions& GetOptions() const + { return m_options; } diff -Nru codelite-8.0.1+dfsg2/codelite_terminal/my_config.cpp codelite-9.0+dfsg/codelite_terminal/my_config.cpp --- codelite-8.0.1+dfsg2/codelite_terminal/my_config.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/codelite_terminal/my_config.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,10 +1,18 @@ #include "my_config.h" #include #include +#include +#include MyConfig::MyConfig() - : wxFileConfig("codelite-terminal", "", "", "", wxCONFIG_USE_SUBDIR|wxCONFIG_USE_LOCAL_FILE) + : wxFileConfig("", + "", + (wxStandardPaths::Get().GetUserDataDir() + "/codelite-terminal.ini"), + "", + wxCONFIG_USE_LOCAL_FILE) { + wxFileName fn(wxStandardPaths::Get().GetUserDataDir(), "codelite-terminal.ini"); + fn.Mkdir(wxS_DIR_DEFAULT, wxPATH_MKDIR_FULL); } MyConfig::~MyConfig() @@ -22,8 +30,8 @@ wxSize MyConfig::GetTerminalSize() const { - wxSize size(600,400); - Read("frame_size_width", &size.x); + wxSize size(600, 400); + Read("frame_size_width", &size.x); Read("frame_size_height", &size.y); return size; } @@ -36,7 +44,7 @@ void MyConfig::SetTerminalSize(const wxSize& size) { - Write("frame_size_width", size.x); + Write("frame_size_width", size.x); Write("frame_size_height", size.y); } @@ -48,7 +56,7 @@ wxColour MyConfig::GetBgColour() const { wxString col; - if ( Read("bg_colour", &col) && !col.IsEmpty() ) { + if(Read("bg_colour", &col) && !col.IsEmpty()) { wxColour colour(col); return colour; } @@ -58,7 +66,7 @@ wxColour MyConfig::GetFgColour() const { wxString col; - if ( Read("fg_colour", &col) && !col.IsEmpty() ) { + if(Read("fg_colour", &col) && !col.IsEmpty()) { wxColour colour(col); return colour; } @@ -79,20 +87,20 @@ { wxFont defaultFont = wxSystemSettings::GetFont(wxSYS_ANSI_FIXED_FONT); defaultFont.SetFamily(wxFONTFAMILY_TELETYPE); - + // read the attributes wxString facename; int pointSize; - - Read("font_facename", &facename, defaultFont.GetFaceName()); - Read("font_size", &pointSize, defaultFont.GetPointSize()); - - wxFont f( wxFontInfo(pointSize).FaceName(facename).Family( wxFONTFAMILY_TELETYPE ) ); + + Read("font_facename", &facename, defaultFont.GetFaceName()); + Read("font_size", &pointSize, defaultFont.GetPointSize()); + + wxFont f(wxFontInfo(pointSize).FaceName(facename).Family(wxFONTFAMILY_TELETYPE)); return f; } void MyConfig::SetFont(const wxFont& font) { Write("font_facename", font.GetFaceName()); - Write("font_size", font.GetPointSize()); + Write("font_size", font.GetPointSize()); } diff -Nru codelite-8.0.1+dfsg2/codelite_terminal/wxcrafter_bitmaps.cpp codelite-9.0+dfsg/codelite_terminal/wxcrafter_bitmaps.cpp --- codelite-8.0.1+dfsg2/codelite_terminal/wxcrafter_bitmaps.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/codelite_terminal/wxcrafter_bitmaps.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,258 +1,132 @@ -// -// This file was automatically generated by wxrc, do not edit by hand. -// - -#include - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#include -#include -#include -#include - -#if wxCHECK_VERSION(2,8,5) && wxABI_VERSION >= 20805 - #define XRC_ADD_FILE(name, data, size, mime) \ - wxMemoryFSHandler::AddFileWithMimeType(name, data, size, mime) -#else - #define XRC_ADD_FILE(name, data, size, mime) \ - wxMemoryFSHandler::AddFile(name, data, size) -#endif - -static size_t xml_res_size_0 = 375; -static unsigned char xml_res_file_0[] = { -137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, -0,31,243,255,97,0,0,1,62,73,68,65,84,120,94,165,147,49,107,131,80,20,133, -79,33,26,200,16,66,192,197,161,67,135,254,143,236,249,13,78,34,248,127, -58,36,99,246,210,201,165,147,5,59,58,56,117,72,138,67,6,87,21,130,160,198, -220,114,30,84,172,134,36,52,31,92,184,188,119,206,125,247,62,159,15,34, -130,187,96,1,199,113,124,215,117,101,19,137,188,126,137,188,127,139,124, -238,69,194,132,193,156,107,106,79,105,168,165,135,94,85,192,182,109,89, -175,215,114,43,212,210,67,239,8,0,142,199,35,154,166,65,217,224,38,168, -165,135,140,186,11,69,133,171,116,15,108,11,212,117,173,162,168,113,149, -174,158,180,35,112,97,183,219,226,241,233,25,151,216,199,91,106,233,249, -219,65,85,85,120,219,188,160,44,75,92,98,60,30,195,48,12,122,134,35,204, -102,179,127,141,208,118,64,150,203,37,76,211,196,57,146,36,129,231,121, -32,103,239,160,40,10,213,133,101,89,32,171,213,10,93,184,151,231,57,38, -147,201,240,14,24,105,154,34,203,50,76,167,83,16,230,125,168,209,52,141, -250,225,59,160,129,39,204,231,115,16,230,125,168,225,62,61,221,17,22,97, -24,250,186,174,115,140,182,3,230,125,14,135,195,240,37,158,78,167,15,0, -11,0,126,16,4,44,160,230,140,227,24,132,159,150,197,24,36,138,162,95,15, -238,254,157,127,0,181,125,59,240,131,84,115,43,0,0,0,0,73,69,78,68,174, -66,96,130}; - -static size_t xml_res_size_1 = 472; -static unsigned char xml_res_file_1[] = { -137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, -0,31,243,255,97,0,0,1,159,73,68,65,84,120,94,149,146,187,138,194,64,20, -134,255,89,172,108,244,1,44,108,44,124,11,5,177,181,180,176,177,16,177, -16,69,11,139,128,100,181,179,18,180,80,59,27,11,237,236,5,3,130,32,216, -9,54,130,22,42,196,59,216,122,153,205,201,238,100,19,80,178,251,65,152, -144,147,239,159,51,204,97,173,86,11,54,4,0,12,241,75,9,192,167,16,88,163, -209,64,42,149,194,43,154,205,166,46,135,195,97,8,42,149,10,180,77,217,79, -29,31,143,199,3,239,208,106,50,201,207,231,19,235,245,26,245,122,29,78, -167,51,104,170,195,97,19,64,29,224,126,191,67,81,20,184,221,238,160,44, -203,74,173,86,19,199,42,217,5,24,171,203,229,2,81,173,86,117,57,18,137, -160,223,239,203,14,74,55,179,92,46,33,16,181,219,237,6,159,207,135,237, -118,75,187,34,20,10,225,122,189,234,117,83,128,149,110,183,203,163,209, -40,206,231,51,8,175,215,11,191,223,15,130,190,93,46,23,28,143,71,176,114, -185,140,98,177,104,233,160,211,233,240,88,44,134,221,110,135,23,144,76, -237,195,227,241,4,29,212,158,153,118,187,205,227,241,56,54,155,13,4,20, -52,24,12,96,66,1,80,210,92,197,114,4,73,146,120,34,145,192,106,181,130, -96,191,223,211,13,136,187,23,136,255,97,4,20,10,5,78,3,181,88,44,32,56, -28,14,24,141,70,47,101,130,92,150,203,229,72,224,233,116,26,243,249,28, -130,211,233,132,241,120,252,86,38,242,249,60,88,38,147,225,217,108,22,179, -217,204,34,79,38,19,33,191,133,60,125,144,84,85,165,118,140,43,154,78,167, -182,178,49,104,218,185,135,218,207,188,215,235,113,90,147,201,36,189,227, -15,15,185,96,154,128,159,185,14,224,27,134,127,240,5,253,117,7,226,179, -196,16,34,0,0,0,0,73,69,78,68,174,66,96,130}; - -static size_t xml_res_size_2 = 567; -static unsigned char xml_res_file_2[] = { -137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, -0,31,243,255,97,0,0,1,254,73,68,65,84,120,94,141,147,207,107,19,65,20,199, -63,19,107,104,26,89,180,41,246,84,132,8,77,41,245,32,30,76,46,150,120,40, -24,219,139,65,20,233,85,240,32,244,226,85,178,32,254,7,130,255,128,20,42, -228,20,201,161,138,233,15,77,140,22,139,74,44,30,34,74,73,139,109,245,16, -76,98,154,31,227,206,176,108,28,34,232,7,222,236,123,243,222,247,193,204, -155,69,74,73,249,49,72,89,246,204,137,237,47,153,81,185,147,59,47,247,55, -174,203,31,165,5,101,202,215,123,42,231,104,114,74,59,0,208,237,226,225, -198,169,240,108,158,191,209,216,43,82,201,221,0,136,3,186,1,157,142,90, -170,40,62,45,157,181,71,166,110,185,177,73,125,111,131,237,220,77,34,215, -54,133,83,135,217,160,117,128,235,167,66,227,73,55,238,81,219,127,199,215, -149,59,76,94,125,42,84,78,107,204,6,223,248,144,158,183,71,39,175,104,223, -20,111,241,121,237,62,103,146,143,132,155,51,27,180,219,192,225,142,250, -166,78,158,142,106,223,133,159,7,101,118,183,158,233,154,205,165,121,73, -143,21,32,174,167,240,250,33,202,236,202,243,168,148,149,133,158,85,23, -157,116,217,176,106,101,81,58,181,202,180,86,168,165,240,64,0,200,169,232, -57,144,224,59,234,199,63,104,49,224,15,160,232,180,154,72,217,161,81,251, -69,169,176,70,108,54,41,10,79,210,196,110,187,99,108,181,176,79,141,143, -209,174,187,103,111,64,253,123,147,102,163,206,97,163,198,224,49,139,161, -227,99,188,127,85,226,194,229,152,112,142,168,52,198,29,76,151,63,110,243, -39,39,66,1,70,66,109,130,86,16,127,32,200,219,23,37,46,38,194,238,37,42, -141,217,32,62,115,201,242,102,191,188,140,109,89,221,84,96,72,224,59,34, -121,243,114,151,153,25,244,248,0,163,129,190,131,236,61,65,34,129,71,54, -139,140,197,244,139,164,88,132,137,9,4,64,56,108,212,144,184,43,189,119, -224,145,201,96,71,34,90,76,62,15,115,115,8,250,241,52,62,116,96,36,82,195, -195,176,190,110,138,77,232,127,137,233,52,10,27,96,117,21,133,80,123,255, -160,239,111,156,70,131,224,63,249,13,96,96,38,122,105,240,248,1,0,0,0,0, -73,69,78,68,174,66,96,130}; - -static size_t xml_res_size_3 = 428; -static unsigned char xml_res_file_3[] = { -137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, -0,31,243,255,97,0,0,1,115,73,68,65,84,120,94,165,147,49,75,3,65,16,133, -39,40,216,72,82,164,73,47,87,8,98,147,8,65,80,54,9,98,167,85,82,164,81, -180,176,177,177,73,39,158,104,33,41,236,173,172,108,226,79,144,68,123,19, -11,193,42,104,157,230,154,43,4,35,50,206,155,229,134,51,104,99,2,95,222, -204,155,153,189,205,132,203,48,51,77,243,153,85,57,216,128,132,194,137, -80,17,30,254,232,119,194,189,112,170,253,87,119,68,184,193,215,126,37,20, -152,59,23,44,10,28,252,52,240,38,122,66,248,90,252,216,89,211,2,223,156, -169,74,14,236,16,196,191,245,216,1,239,205,178,19,152,175,143,129,54,32, -87,223,3,47,169,91,13,179,186,196,184,94,180,223,151,173,213,72,63,249, -60,197,157,142,134,217,70,131,40,138,52,142,187,93,74,246,148,189,29,248, -27,68,91,75,137,58,129,249,242,16,224,169,192,114,169,1,151,158,209,175, -209,102,0,77,98,39,48,159,239,253,64,60,128,225,244,140,255,27,63,199,99, -136,98,113,46,71,52,26,249,184,80,48,127,178,79,79,121,91,45,36,234,4,127, -237,163,237,52,234,73,13,184,100,198,150,56,92,201,219,18,131,86,139,168, -215,67,78,195,126,95,53,40,149,84,169,90,165,97,187,109,75,12,30,35,127, -131,151,229,121,39,248,39,239,174,43,200,213,247,152,47,61,86,179,37,62, -47,206,249,225,102,89,145,28,216,194,16,11,86,71,47,114,59,224,41,152,9, -5,230,122,145,69,129,147,152,210,192,155,232,9,109,7,131,133,204,191,94, -166,226,43,211,212,175,243,55,79,113,167,84,66,180,33,142,0,0,0,0,73,69, -78,68,174,66,96,130}; - -static size_t xml_res_size_4 = 507; -static unsigned char xml_res_file_4[] = { -137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, -0,31,243,255,97,0,0,1,194,73,68,65,84,120,94,157,144,207,107,19,65,24,134, -159,153,157,236,54,155,218,108,19,193,147,32,132,198,122,17,4,245,18,218, -120,16,188,196,31,16,161,7,255,18,21,234,197,67,81,232,77,4,65,208,123, -114,20,68,81,136,24,47,162,237,65,144,106,142,222,188,8,129,148,118,119, -230,211,129,101,209,54,22,218,7,190,203,7,223,59,243,188,234,209,227,39, -56,145,158,136,116,69,0,63,5,194,52,148,86,40,232,107,173,111,26,235,92, -111,249,210,114,119,161,121,26,107,29,136,66,11,4,104,132,12,148,219,31, -160,20,223,70,223,187,239,6,239,123,38,203,178,238,124,189,206,207,115, -11,108,191,24,178,216,63,203,232,198,23,238,189,62,193,253,203,63,248,188, -249,9,52,40,254,229,226,133,243,164,105,218,53,214,90,234,73,194,168,255, -146,147,181,42,155,87,62,112,170,94,229,78,107,68,253,248,60,139,103,154, -160,20,234,111,41,17,106,181,154,255,49,172,61,92,151,163,178,246,96,93, -140,56,135,167,209,104,18,134,33,165,146,193,24,227,61,201,141,81,20,96, -157,101,50,153,176,181,245,21,17,135,17,193,195,220,92,149,141,141,143, -180,90,109,226,184,92,132,236,197,43,143,199,99,114,19,140,115,22,79,28, -207,176,180,212,102,56,28,208,233,92,35,138,162,255,6,88,155,225,241,183, -198,229,10,209,76,153,183,111,94,209,185,122,157,114,28,99,74,6,197,244, -128,112,55,205,3,188,66,238,112,172,50,203,202,202,45,146,106,130,9,12, -74,43,166,225,155,79,163,44,87,16,140,95,120,202,179,101,42,113,133,192, -4,251,95,222,83,98,148,133,69,152,241,11,79,84,138,8,255,76,16,104,14,66, -219,128,176,148,22,97,133,2,74,97,197,33,150,3,113,226,64,41,10,5,242,251, -231,207,158,114,104,4,204,206,206,246,224,246,221,213,182,111,244,48,104, -173,73,211,221,129,2,26,64,194,209,248,245,27,223,112,249,228,81,13,153, -183,0,0,0,0,73,69,78,68,174,66,96,130}; - -static size_t xml_res_size_5 = 871; -static unsigned char xml_res_file_5[] = { -137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0, -0,115,122,122,244,0,0,3,46,73,68,65,84,120,94,197,150,205,107,92,85,24, -135,159,247,156,119,166,51,153,14,1,91,252,44,110,66,52,219,174,164,106, -177,186,17,37,26,26,220,250,23,8,41,193,186,168,82,80,65,17,77,36,54,193, -173,46,93,8,210,65,113,154,86,40,182,37,251,136,169,41,82,146,138,31,132, -88,44,154,76,52,189,231,149,188,112,23,233,237,170,183,119,250,192,225, -46,6,238,243,187,191,247,156,195,136,153,113,47,17,28,244,147,217,79,191, -36,132,49,15,100,236,66,16,28,18,86,90,38,96,233,244,177,137,215,94,1,110, -10,160,211,51,179,95,61,255,226,11,163,35,195,67,36,28,23,137,65,52,8,130, -99,9,76,140,50,4,17,150,126,90,166,123,102,254,235,215,39,39,142,42,208, -140,170,163,7,134,134,136,7,247,179,254,204,75,164,15,62,227,129,47,158, -100,253,190,167,169,31,249,144,183,207,10,195,123,15,241,234,19,231,185, -114,245,50,34,148,226,241,199,134,137,81,71,129,166,2,141,148,140,235,215, -255,34,93,254,147,218,210,231,172,189,57,199,158,63,22,168,253,190,192, -141,131,239,178,122,5,86,109,129,177,145,191,89,185,186,130,4,128,59,73, -97,236,184,238,223,183,15,179,4,208,80,64,176,196,96,163,206,226,194,34, -136,32,171,63,179,246,236,15,0,196,95,151,57,241,220,143,8,198,47,191,173, -240,240,35,15,221,113,3,102,230,171,61,216,246,39,32,154,255,240,239,63, -55,24,57,240,32,49,70,114,0,196,64,220,136,167,46,129,123,178,44,163,183, -185,129,225,160,0,24,236,169,215,57,124,248,8,205,102,19,16,192,128,92, -94,158,60,64,175,215,227,194,133,243,96,56,138,75,32,70,165,221,110,211, -106,181,72,41,177,189,189,141,72,160,86,83,111,197,115,32,148,192,191,94, -85,221,37,130,147,143,192,5,170,53,15,146,101,219,92,188,248,61,83,83,83, -116,58,223,160,90,207,67,148,34,132,136,234,127,136,184,115,119,0,12,98, -12,168,6,204,34,31,77,77,243,198,241,227,100,6,103,190,237,162,218,240, -16,101,16,113,7,216,45,1,146,25,6,121,61,128,208,57,221,97,171,183,197, -201,147,111,209,106,14,208,237,118,41,31,64,220,97,64,42,52,128,87,228, -43,203,18,227,227,227,76,78,30,99,122,122,134,249,249,179,52,26,13,66,8, -148,67,220,1,183,142,32,25,96,94,79,8,178,179,92,126,234,212,44,223,157, -59,71,107,192,235,7,145,187,51,2,204,157,197,6,98,36,170,250,243,229,177, -163,94,217,192,222,22,33,6,4,161,52,34,238,40,54,96,9,0,13,138,70,117,113, -77,107,254,188,155,247,128,32,238,200,157,197,83,160,1,31,67,8,84,129,143, -64,139,167,192,49,31,129,215,95,89,0,68,220,97,56,197,61,160,49,18,67,117, -1,124,4,183,223,3,6,152,127,125,245,13,68,192,138,23,17,64,140,149,239, -1,119,184,179,120,15,64,8,74,168,112,4,32,238,200,157,133,83,160,26,137, -21,142,64,68,220,129,221,246,30,176,62,142,192,138,247,128,245,113,4,6, -197,77,136,177,35,246,37,34,84,65,254,126,108,247,38,116,82,74,164,148, -249,63,161,170,2,152,217,142,195,93,57,10,32,128,4,225,253,247,222,33,72, -0,161,26,252,203,147,55,156,43,20,176,141,141,141,75,31,207,204,61,149, -146,209,15,66,16,54,55,55,47,1,38,64,27,120,20,216,15,40,253,225,38,176, -14,92,83,160,7,92,3,214,0,161,63,24,176,229,238,123,205,255,209,207,101, -101,153,243,140,203,0,0,0,0,73,69,78,68,174,66,96,130}; - -static size_t xml_res_size_6 = 673; -static unsigned char xml_res_file_6[] = { -60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, -110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, -115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, -47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, -47,119,120,120,114,99,34,32,118,101,114,115,105,111,110,61,34,50,46,51, -46,48,46,49,34,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, -61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,115,97,118, -101,34,62,119,120,99,114,97,102,116,101,114,95,98,105,116,109,97,112,115, -46,99,112,112,36,114,101,115,111,117,114,99,101,115,95,115,97,118,101,46, -112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99, -116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110, -97,109,101,61,34,115,101,116,116,105,110,103,115,34,62,119,120,99,114,97, -102,116,101,114,95,98,105,116,109,97,112,115,46,99,112,112,36,114,101,115, -111,117,114,99,101,115,95,115,101,116,116,105,110,103,115,46,112,110,103, -60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99, -108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101, -61,34,115,105,103,110,97,108,34,62,119,120,99,114,97,102,116,101,114,95, -98,105,116,109,97,112,115,46,99,112,112,36,114,101,115,111,117,114,99,101, -115,95,115,105,103,110,97,108,46,112,110,103,60,47,111,98,106,101,99,116, -62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120, -66,105,116,109,97,112,34,32,110,97,109,101,61,34,115,116,111,112,34,62, -119,120,99,114,97,102,116,101,114,95,98,105,116,109,97,112,115,46,99,112, -112,36,114,101,115,111,117,114,99,101,115,95,115,116,111,112,46,112,110, -103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32, -99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109, -101,61,34,116,101,114,109,105,110,97,108,45,49,54,34,62,119,120,99,114, -97,102,116,101,114,95,98,105,116,109,97,112,115,46,99,112,112,36,116,101, -114,109,105,110,97,108,45,49,54,46,112,110,103,60,47,111,98,106,101,99, -116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119, -120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,116,101,114,109,105, -110,97,108,45,51,50,34,62,119,120,99,114,97,102,116,101,114,95,98,105,116, -109,97,112,115,46,99,112,112,36,116,101,114,109,105,110,97,108,45,51,50, -46,112,110,103,60,47,111,98,106,101,99,116,62,10,60,47,114,101,115,111, -117,114,99,101,62,10}; - -void wxC9ED9InitBitmapResources() -{ - - // Check for memory FS. If not present, load the handler: - { - wxMemoryFSHandler::AddFile(wxT("XRC_resource/dummy_file"), wxT("dummy one")); - wxFileSystem fsys; - wxFSFile *f = fsys.OpenFile(wxT("memory:XRC_resource/dummy_file")); - wxMemoryFSHandler::RemoveFile(wxT("XRC_resource/dummy_file")); - if (f) delete f; - else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase); - } - - XRC_ADD_FILE(wxT("XRC_resource/wxcrafter_bitmaps.cpp$resources_save.png"), xml_res_file_0, xml_res_size_0, wxT("image/x-apple-ios-png")); - XRC_ADD_FILE(wxT("XRC_resource/wxcrafter_bitmaps.cpp$resources_settings.png"), xml_res_file_1, xml_res_size_1, wxT("image/x-apple-ios-png")); - XRC_ADD_FILE(wxT("XRC_resource/wxcrafter_bitmaps.cpp$resources_signal.png"), xml_res_file_2, xml_res_size_2, wxT("image/x-apple-ios-png")); - XRC_ADD_FILE(wxT("XRC_resource/wxcrafter_bitmaps.cpp$resources_stop.png"), xml_res_file_3, xml_res_size_3, wxT("image/x-apple-ios-png")); - XRC_ADD_FILE(wxT("XRC_resource/wxcrafter_bitmaps.cpp$terminal-16.png"), xml_res_file_4, xml_res_size_4, wxT("image/x-apple-ios-png")); - XRC_ADD_FILE(wxT("XRC_resource/wxcrafter_bitmaps.cpp$terminal-32.png"), xml_res_file_5, xml_res_size_5, wxT("image/x-apple-ios-png")); - XRC_ADD_FILE(wxT("XRC_resource/wxcrafter_bitmaps.cpp$_home_eran_devl_codelite_codelite_terminal_wxcrafter_bitmaps.xrc"), xml_res_file_6, xml_res_size_6, wxT("text/xml")); - wxXmlResource::Get()->Load(wxT("memory:XRC_resource/wxcrafter_bitmaps.cpp$_home_eran_devl_codelite_codelite_terminal_wxcrafter_bitmaps.xrc")); -} +// +// This file was automatically generated by wxrc, do not edit by hand. +// + +#include + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +#include +#include +#include +#include + +#if wxCHECK_VERSION(2,8,5) && wxABI_VERSION >= 20805 + #define XRC_ADD_FILE(name, data, size, mime) \ + wxMemoryFSHandler::AddFileWithMimeType(name, data, size, mime) +#else + #define XRC_ADD_FILE(name, data, size, mime) \ + wxMemoryFSHandler::AddFile(name, data, size) +#endif + +static size_t xml_res_size_0 = 507; +static unsigned char xml_res_file_0[] = { +137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, +0,31,243,255,97,0,0,1,194,73,68,65,84,120,94,157,144,207,107,19,65,24,134, +159,153,157,236,54,155,218,108,19,193,147,32,132,198,122,17,4,245,18,218, +120,16,188,196,31,16,161,7,255,18,21,234,197,67,81,232,77,4,65,208,123, +114,20,68,81,136,24,47,162,237,65,144,106,142,222,188,8,129,148,118,119, +230,211,129,101,209,54,22,218,7,190,203,7,223,59,243,188,234,209,227,39, +56,145,158,136,116,69,0,63,5,194,52,148,86,40,232,107,173,111,26,235,92, +111,249,210,114,119,161,121,26,107,29,136,66,11,4,104,132,12,148,219,31, +160,20,223,70,223,187,239,6,239,123,38,203,178,238,124,189,206,207,115, +11,108,191,24,178,216,63,203,232,198,23,238,189,62,193,253,203,63,248,188, +249,9,52,40,254,229,226,133,243,164,105,218,53,214,90,234,73,194,168,255, +146,147,181,42,155,87,62,112,170,94,229,78,107,68,253,248,60,139,103,154, +160,20,234,111,41,17,106,181,154,255,49,172,61,92,151,163,178,246,96,93, +140,56,135,167,209,104,18,134,33,165,146,193,24,227,61,201,141,81,20,96, +157,101,50,153,176,181,245,21,17,135,17,193,195,220,92,149,141,141,143, +180,90,109,226,184,92,132,236,197,43,143,199,99,114,19,140,115,22,79,28, +207,176,180,212,102,56,28,208,233,92,35,138,162,255,6,88,155,225,241,183, +198,229,10,209,76,153,183,111,94,209,185,122,157,114,28,99,74,6,197,244, +128,112,55,205,3,188,66,238,112,172,50,203,202,202,45,146,106,130,9,12, +74,43,166,225,155,79,163,44,87,16,140,95,120,202,179,101,42,113,133,192, +4,251,95,222,83,98,148,133,69,152,241,11,79,84,138,8,255,76,16,104,14,66, +219,128,176,148,22,97,133,2,74,97,197,33,150,3,113,226,64,41,10,5,242,251, +231,207,158,114,104,4,204,206,206,246,224,246,221,213,182,111,244,48,104, +173,73,211,221,129,2,26,64,194,209,248,245,27,223,112,249,228,81,13,153, +183,0,0,0,0,73,69,78,68,174,66,96,130}; + +static size_t xml_res_size_1 = 871; +static unsigned char xml_res_file_1[] = { +137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0, +0,115,122,122,244,0,0,3,46,73,68,65,84,120,94,197,150,205,107,92,85,24, +135,159,247,156,119,166,51,153,14,1,91,252,44,110,66,52,219,174,164,106, +177,186,17,37,26,26,220,250,23,8,41,193,186,168,82,80,65,17,77,36,54,193, +173,46,93,8,210,65,113,154,86,40,182,37,251,136,169,41,82,146,138,31,132, +88,44,154,76,52,189,231,149,188,112,23,233,237,170,183,119,250,192,225, +46,6,238,243,187,191,247,156,195,136,153,113,47,17,28,244,147,217,79,191, +36,132,49,15,100,236,66,16,28,18,86,90,38,96,233,244,177,137,215,94,1,110, +10,160,211,51,179,95,61,255,226,11,163,35,195,67,36,28,23,137,65,52,8,130, +99,9,76,140,50,4,17,150,126,90,166,123,102,254,235,215,39,39,142,42,208, +140,170,163,7,134,134,136,7,247,179,254,204,75,164,15,62,227,129,47,158, +100,253,190,167,169,31,249,144,183,207,10,195,123,15,241,234,19,231,185, +114,245,50,34,148,226,241,199,134,137,81,71,129,166,2,141,148,140,235,215, +255,34,93,254,147,218,210,231,172,189,57,199,158,63,22,168,253,190,192, +141,131,239,178,122,5,86,109,129,177,145,191,89,185,186,130,4,128,59,73, +97,236,184,238,223,183,15,179,4,208,80,64,176,196,96,163,206,226,194,34, +136,32,171,63,179,246,236,15,0,196,95,151,57,241,220,143,8,198,47,191,173, +240,240,35,15,221,113,3,102,230,171,61,216,246,39,32,154,255,240,239,63, +55,24,57,240,32,49,70,114,0,196,64,220,136,167,46,129,123,178,44,163,183, +185,129,225,160,0,24,236,169,215,57,124,248,8,205,102,19,16,192,128,92, +94,158,60,64,175,215,227,194,133,243,96,56,138,75,32,70,165,221,110,211, +106,181,72,41,177,189,189,141,72,160,86,83,111,197,115,32,148,192,191,94, +85,221,37,130,147,143,192,5,170,53,15,146,101,219,92,188,248,61,83,83,83, +116,58,223,160,90,207,67,148,34,132,136,234,127,136,184,115,119,0,12,98, +12,168,6,204,34,31,77,77,243,198,241,227,100,6,103,190,237,162,218,240, +16,101,16,113,7,216,45,1,146,25,6,121,61,128,208,57,221,97,171,183,197, +201,147,111,209,106,14,208,237,118,41,31,64,220,97,64,42,52,128,87,228, +43,203,18,227,227,227,76,78,30,99,122,122,134,249,249,179,52,26,13,66,8, +148,67,220,1,183,142,32,25,96,94,79,8,178,179,92,126,234,212,44,223,157, +59,71,107,192,235,7,145,187,51,2,204,157,197,6,98,36,170,250,243,229,177, +163,94,217,192,222,22,33,6,4,161,52,34,238,40,54,96,9,0,13,138,70,117,113, +77,107,254,188,155,247,128,32,238,200,157,197,83,160,1,31,67,8,84,129,143, +64,139,167,192,49,31,129,215,95,89,0,68,220,97,56,197,61,160,49,18,67,117, +1,124,4,183,223,3,6,152,127,125,245,13,68,192,138,23,17,64,140,149,239, +1,119,184,179,120,15,64,8,74,168,112,4,32,238,200,157,133,83,160,26,137, +21,142,64,68,220,129,221,246,30,176,62,142,192,138,247,128,245,113,4,6, +197,77,136,177,35,246,37,34,84,65,254,126,108,247,38,116,82,74,164,148, +249,63,161,170,2,152,217,142,195,93,57,10,32,128,4,225,253,247,222,33,72, +0,161,26,252,203,147,55,156,43,20,176,141,141,141,75,31,207,204,61,149, +146,209,15,66,16,54,55,55,47,1,38,64,27,120,20,216,15,40,253,225,38,176, +14,92,83,160,7,92,3,214,0,161,63,24,176,229,238,123,205,255,209,207,101, +101,153,243,140,203,0,0,0,0,73,69,78,68,174,66,96,130}; + +static size_t xml_res_size_2 = 287; +static unsigned char xml_res_file_2[] = { +60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, +110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, +115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, +47,47,119,119,119,46,119,120,119,105,100,103,101,116,115,46,111,114,103, +47,119,120,120,114,99,34,62,10,32,32,60,111,98,106,101,99,116,32,99,108, +97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61, +34,116,101,114,109,105,110,97,108,45,49,54,34,62,119,120,99,114,97,102, +116,101,114,95,98,105,116,109,97,112,115,46,99,112,112,36,116,101,114,109, +105,110,97,108,45,49,54,46,112,110,103,60,47,111,98,106,101,99,116,62,10, +32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105, +116,109,97,112,34,32,110,97,109,101,61,34,116,101,114,109,105,110,97,108, +45,51,50,34,62,119,120,99,114,97,102,116,101,114,95,98,105,116,109,97,112, +115,46,99,112,112,36,116,101,114,109,105,110,97,108,45,51,50,46,112,110, +103,60,47,111,98,106,101,99,116,62,10,60,47,114,101,115,111,117,114,99, +101,62,10}; + +void wxC9ED9InitBitmapResources() +{ + + // Check for memory FS. If not present, load the handler: + { + wxMemoryFSHandler::AddFile(wxT("XRC_resource/dummy_file"), wxT("dummy one")); + wxFileSystem fsys; + wxFSFile *f = fsys.OpenFile(wxT("memory:XRC_resource/dummy_file")); + wxMemoryFSHandler::RemoveFile(wxT("XRC_resource/dummy_file")); + if (f) delete f; + else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase); + } + + XRC_ADD_FILE(wxT("XRC_resource/wxcrafter_bitmaps.cpp$terminal-16.png"), xml_res_file_0, xml_res_size_0, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/wxcrafter_bitmaps.cpp$terminal-32.png"), xml_res_file_1, xml_res_size_1, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/wxcrafter_bitmaps.cpp$C__src_codelite_codelite_terminal_wxcrafter_bitmaps.xrc"), xml_res_file_2, xml_res_size_2, wxT("text/xml")); + wxXmlResource::Get()->Load(wxT("memory:XRC_resource/wxcrafter_bitmaps.cpp$C__src_codelite_codelite_terminal_wxcrafter_bitmaps.xrc")); +} diff -Nru codelite-8.0.1+dfsg2/codelite_terminal/wxcrafter_bitmaps.xrc codelite-9.0+dfsg/codelite_terminal/wxcrafter_bitmaps.xrc --- codelite-8.0.1+dfsg2/codelite_terminal/wxcrafter_bitmaps.xrc 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/codelite_terminal/wxcrafter_bitmaps.xrc 2015-10-11 13:56:07.000000000 +0000 @@ -1,9 +1,5 @@ - - resources/save.png - resources/settings.png - resources/signal.png - resources/stop.png + terminal-16.png terminal-32.png diff -Nru codelite-8.0.1+dfsg2/codelite_terminal/wxcrafter.cpp codelite-9.0+dfsg/codelite_terminal/wxcrafter.cpp --- codelite-8.0.1+dfsg2/codelite_terminal/wxcrafter.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/codelite_terminal/wxcrafter.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -49,24 +49,6 @@ wxBoxSizer* boxSizer11 = new wxBoxSizer(wxVERTICAL); m_mainPanel->SetSizer(boxSizer11); - m_auibar17 = new wxAuiToolBar(m_mainPanel, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxAUI_TB_PLAIN_BACKGROUND|wxAUI_TB_DEFAULT_STYLE); - m_auibar17->SetToolBitmapSize(wxSize(16,16)); - - boxSizer11->Add(m_auibar17, 0, wxEXPAND, 5); - - m_auibar17->AddTool(wxID_CLEAR, _("Clear"), wxXmlResource::Get()->LoadBitmap(wxT("stop")), wxNullBitmap, wxITEM_NORMAL, _("Clear view"), _("Clear view"), NULL); - - m_auibar17->AddTool(ID_KILL_INFIRIOR, _("Send inferior process signal"), wxXmlResource::Get()->LoadBitmap(wxT("signal")), wxNullBitmap, wxITEM_NORMAL, wxT(""), _("Send inferior process signal"), NULL); - wxAuiToolBarItem* m_toolbarItemKillInfiriorProcess = m_auibar17->FindToolByIndex(m_auibar17->GetToolCount()-1); - if (m_toolbarItemKillInfiriorProcess) { - m_toolbarItemKillInfiriorProcess->SetHasDropDown(true); - } - - m_auibar17->AddTool(ID_SETTINGS, _("Settings..."), wxXmlResource::Get()->LoadBitmap(wxT("settings")), wxNullBitmap, wxITEM_NORMAL, _("Settings..."), _("Settings..."), NULL); - - m_auibar17->AddTool(wxID_SAVE, _("Save"), wxXmlResource::Get()->LoadBitmap(wxT("save")), wxNullBitmap, wxITEM_NORMAL, _("Save"), _("Save"), NULL); - m_auibar17->Realize(); - m_stc = new wxStyledTextCtrl(m_mainPanel, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), 0); #ifdef __WXMSW__ // To get the newer version of the font on MSW, we use font wxSYS_DEFAULT_GUI_FONT with family set to wxFONTFAMILY_TELETYPE @@ -116,99 +98,96 @@ m_stc->SetKeyWords(3, wxT("")); m_stc->SetKeyWords(4, wxT("")); - boxSizer11->Add(m_stc, 1, wxALL|wxEXPAND, 2); + boxSizer11->Add(m_stc, 1, wxALL|wxEXPAND, 0); m_menuBar = new wxMenuBar(0); this->SetMenuBar(m_menuBar); - m_name6 = new wxMenu(); - m_menuBar->Append(m_name6, _("File")); + m_File = new wxMenu(); + m_menuBar->Append(m_File, _("File")); + + m_menuItemSave = new wxMenuItem(m_File, wxID_SAVE, _("Save...\tCtrl-S"), wxT(""), wxITEM_NORMAL); + m_File->Append(m_menuItemSave); + + m_menuItemClear = new wxMenuItem(m_File, wxID_CLEAR, _("Clear View\tCtrl-L"), wxT(""), wxITEM_NORMAL); + m_File->Append(m_menuItemClear); + + m_File->AppendSeparator(); + + m_menuItemPreferences = new wxMenuItem(m_File, wxID_PREFERENCES, _("Preferences..."), wxT(""), wxITEM_NORMAL); + m_File->Append(m_menuItemPreferences); + + m_File->AppendSeparator(); - m_menuItem7 = new wxMenuItem(m_name6, wxID_EXIT, _("Exit\tAlt-X"), _("Quit"), wxITEM_NORMAL); - m_name6->Append(m_menuItem7); + m_menuItem7 = new wxMenuItem(m_File, wxID_EXIT, _("Exit\tAlt-X"), _("Quit"), wxITEM_NORMAL); + m_File->Append(m_menuItem7); - m_name8 = new wxMenu(); - m_menuBar->Append(m_name8, _("Help")); + m_Signals = new wxMenu(); + m_menuBar->Append(m_Signals, _("Signals")); - m_menuItem9 = new wxMenuItem(m_name8, wxID_ABOUT, _("About..."), wxT(""), wxITEM_NORMAL); - m_name8->Append(m_menuItem9); + m_menuItemINT = new wxMenuItem(m_Signals, ID_SIGINT, _("SIGINT"), wxT(""), wxITEM_NORMAL); + m_Signals->Append(m_menuItemINT); + + m_menuItemTERM = new wxMenuItem(m_Signals, ID_SIGTERM, _("SIGTERM"), wxT(""), wxITEM_NORMAL); + m_Signals->Append(m_menuItemTERM); + + m_menuItemKILL = new wxMenuItem(m_Signals, ID_SIGKILL, _("SIGKILL"), wxT(""), wxITEM_NORMAL); + m_Signals->Append(m_menuItemKILL); + + m_menuItemHUP = new wxMenuItem(m_Signals, ID_SIGHUP, _("SIGHUP"), wxT(""), wxITEM_NORMAL); + m_Signals->Append(m_menuItemHUP); + + m_Help = new wxMenu(); + m_menuBar->Append(m_Help, _("Help")); + + m_menuItem9 = new wxMenuItem(m_Help, wxID_ABOUT, _("About..."), wxT(""), wxITEM_NORMAL); + m_Help->Append(m_menuItem9); m_timerMarker = new wxTimer; m_timerMarker->Start(50, false); + SetName(wxT("MainFrameBaseClass")); SetSizeHints(-1,-1); if ( GetSizer() ) { GetSizer()->Fit(this); } - Centre(wxBOTH); + CentreOnParent(wxBOTH); // Connect events this->Connect(wxEVT_IDLE, wxIdleEventHandler(MainFrameBaseClass::OnIdle), NULL, this); - this->Connect(wxID_CLEAR, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler(MainFrameBaseClass::OnClearView), NULL, this); - this->Connect(wxID_CLEAR, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(MainFrameBaseClass::OnClearViewUI), NULL, this); - this->Connect(ID_KILL_INFIRIOR, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler(MainFrameBaseClass::OnTerminateInfirior), NULL, this); - this->Connect(ID_KILL_INFIRIOR, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(MainFrameBaseClass::OnSignalInferiorUI), NULL, this); - this->Connect(ID_KILL_INFIRIOR, wxEVT_COMMAND_AUITOOLBAR_TOOL_DROPDOWN, wxAuiToolBarEventHandler(MainFrameBaseClass::OnSignalinferior), NULL, this); - this->Connect(ID_SETTINGS, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler(MainFrameBaseClass::OnSettings), NULL, this); - this->Connect(wxID_SAVE, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler(MainFrameBaseClass::OnSaveContent), NULL, this); - this->Connect(wxID_SAVE, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(MainFrameBaseClass::OnSaveContentUI), NULL, this); m_stc->Connect(wxEVT_KEY_DOWN, wxKeyEventHandler(MainFrameBaseClass::OnKeyDown), NULL, this); m_stc->Connect(wxEVT_STC_UPDATEUI, wxStyledTextEventHandler(MainFrameBaseClass::OnStcUpdateUI), NULL, this); + this->Connect(m_menuItemClear->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(MainFrameBaseClass::OnClearView), NULL, this); + this->Connect(m_menuItemPreferences->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(MainFrameBaseClass::OnSettings), NULL, this); this->Connect(m_menuItem7->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(MainFrameBaseClass::OnExit), NULL, this); + this->Connect(m_menuItemINT->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(MainFrameBaseClass::OnSignal), NULL, this); + this->Connect(m_menuItemTERM->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(MainFrameBaseClass::OnSignal), NULL, this); + this->Connect(m_menuItemKILL->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(MainFrameBaseClass::OnSignal), NULL, this); + this->Connect(m_menuItemHUP->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(MainFrameBaseClass::OnSignal), NULL, this); this->Connect(m_menuItem9->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(MainFrameBaseClass::OnAbout), NULL, this); m_timerMarker->Connect(wxEVT_TIMER, wxTimerEventHandler(MainFrameBaseClass::OnAddMarker), NULL, this); - this->Connect(wxID_ANY, wxEVT_COMMAND_AUITOOLBAR_TOOL_DROPDOWN, wxAuiToolBarEventHandler(MainFrameBaseClass::ShowAuiToolMenu), NULL, this); } MainFrameBaseClass::~MainFrameBaseClass() { this->Disconnect(wxEVT_IDLE, wxIdleEventHandler(MainFrameBaseClass::OnIdle), NULL, this); - this->Disconnect(wxID_CLEAR, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler(MainFrameBaseClass::OnClearView), NULL, this); - this->Disconnect(wxID_CLEAR, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(MainFrameBaseClass::OnClearViewUI), NULL, this); - this->Disconnect(ID_KILL_INFIRIOR, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler(MainFrameBaseClass::OnTerminateInfirior), NULL, this); - this->Disconnect(ID_KILL_INFIRIOR, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(MainFrameBaseClass::OnSignalInferiorUI), NULL, this); - this->Disconnect(ID_KILL_INFIRIOR, wxEVT_COMMAND_AUITOOLBAR_TOOL_DROPDOWN, wxAuiToolBarEventHandler(MainFrameBaseClass::OnSignalinferior), NULL, this); - this->Disconnect(ID_SETTINGS, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler(MainFrameBaseClass::OnSettings), NULL, this); - this->Disconnect(wxID_SAVE, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler(MainFrameBaseClass::OnSaveContent), NULL, this); - this->Disconnect(wxID_SAVE, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(MainFrameBaseClass::OnSaveContentUI), NULL, this); m_stc->Disconnect(wxEVT_KEY_DOWN, wxKeyEventHandler(MainFrameBaseClass::OnKeyDown), NULL, this); m_stc->Disconnect(wxEVT_STC_UPDATEUI, wxStyledTextEventHandler(MainFrameBaseClass::OnStcUpdateUI), NULL, this); + this->Disconnect(m_menuItemClear->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(MainFrameBaseClass::OnClearView), NULL, this); + this->Disconnect(m_menuItemPreferences->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(MainFrameBaseClass::OnSettings), NULL, this); this->Disconnect(m_menuItem7->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(MainFrameBaseClass::OnExit), NULL, this); + this->Disconnect(m_menuItemINT->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(MainFrameBaseClass::OnSignal), NULL, this); + this->Disconnect(m_menuItemTERM->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(MainFrameBaseClass::OnSignal), NULL, this); + this->Disconnect(m_menuItemKILL->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(MainFrameBaseClass::OnSignal), NULL, this); + this->Disconnect(m_menuItemHUP->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(MainFrameBaseClass::OnSignal), NULL, this); this->Disconnect(m_menuItem9->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(MainFrameBaseClass::OnAbout), NULL, this); m_timerMarker->Disconnect(wxEVT_TIMER, wxTimerEventHandler(MainFrameBaseClass::OnAddMarker), NULL, this); - std::map::iterator menuIter = m_dropdownMenus.begin(); - for( ; menuIter != m_dropdownMenus.end(); ++menuIter ) { - wxDELETE( menuIter->second ); - } - m_dropdownMenus.clear(); - m_timerMarker->Stop(); wxDELETE( m_timerMarker ); - this->Disconnect(wxID_ANY, wxEVT_COMMAND_AUITOOLBAR_TOOL_DROPDOWN, wxAuiToolBarEventHandler(MainFrameBaseClass::ShowAuiToolMenu), NULL, this); } - -void MainFrameBaseClass::ShowAuiToolMenu(wxAuiToolBarEvent& event) -{ - event.Skip(); - if (event.IsDropDownClicked()) { - wxAuiToolBar* toolbar = wxDynamicCast(event.GetEventObject(), wxAuiToolBar); - if (toolbar) { - wxAuiToolBarItem* item = toolbar->FindTool(event.GetId()); - if (item) { - std::map::iterator iter = m_dropdownMenus.find(item->GetId()); - if (iter != m_dropdownMenus.end()) { - event.Skip(false); - wxPoint pt = event.GetItemRect().GetBottomLeft(); - pt.y++; - toolbar->PopupMenu(iter->second, pt); - } - } - } - } -} SettingsDlgBase::SettingsDlgBase(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style) : wxDialog(parent, id, title, pos, size, style) { @@ -274,11 +253,12 @@ boxSizer43->Add(m_button47, 0, wxALL, 5); + SetName(wxT("SettingsDlgBase")); SetSizeHints(-1,-1); if ( GetSizer() ) { GetSizer()->Fit(this); } - Centre(wxBOTH); + CentreOnParent(wxBOTH); // Connect events m_colourPickerFG->Connect(wxEVT_COMMAND_COLOURPICKER_CHANGED, wxColourPickerEventHandler(SettingsDlgBase::OnFGColour), NULL, this); m_colourPickerBG->Connect(wxEVT_COMMAND_COLOURPICKER_CHANGED, wxColourPickerEventHandler(SettingsDlgBase::OnBGColour), NULL, this); diff -Nru codelite-8.0.1+dfsg2/codelite_terminal/wxcrafter.h codelite-9.0+dfsg/codelite_terminal/wxcrafter.h --- codelite-8.0.1+dfsg2/codelite_terminal/wxcrafter.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/codelite_terminal/wxcrafter.h 2015-10-11 13:56:07.000000000 +0000 @@ -4,8 +4,8 @@ // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// -#ifndef WXCRAFTER_BASE_CLASSES_H -#define WXCRAFTER_BASE_CLASSES_H +#ifndef CODELITE_CODELITE_TERMINAL_WXCRAFTER_BASE_CLASSES_H +#define CODELITE_CODELITE_TERMINAL_WXCRAFTER_BASE_CLASSES_H #include #include @@ -15,10 +15,6 @@ #include #include #include -#include -#include -#include -#include #include #include #include @@ -27,45 +23,58 @@ #include #include #include +#if wxVERSION_NUMBER >= 2900 +#include +#include +#include +#include +#endif class MainFrameBaseClass : public wxFrame { -protected: +public: enum { - ID_KILL_INFIRIOR = 1001, - ID_SETTINGS = 1002, + ID_SIGHUP = 1001, + ID_SIGINT = 1002, + ID_SIGKILL = 1003, + ID_SIGTERM = 1004, }; protected: wxPanel* m_mainPanel; - wxAuiToolBar* m_auibar17; - std::map m_dropdownMenus; wxStyledTextCtrl* m_stc; wxMenuBar* m_menuBar; - wxMenu* m_name6; + wxMenu* m_File; + wxMenuItem* m_menuItemSave; + wxMenuItem* m_menuItemClear; + wxMenuItem* m_menuItem69; + wxMenuItem* m_menuItemPreferences; + wxMenuItem* m_menuItem51; wxMenuItem* m_menuItem7; - wxMenu* m_name8; + wxMenu* m_Signals; + wxMenuItem* m_menuItemINT; + wxMenuItem* m_menuItemTERM; + wxMenuItem* m_menuItemKILL; + wxMenuItem* m_menuItemHUP; + wxMenu* m_Help; wxMenuItem* m_menuItem9; wxTimer* m_timerMarker; - virtual void ShowAuiToolMenu(wxAuiToolBarEvent& event); - protected: virtual void OnIdle(wxIdleEvent& event) { event.Skip(); } - virtual void OnClearView(wxCommandEvent& event) { event.Skip(); } - virtual void OnClearViewUI(wxUpdateUIEvent& event) { event.Skip(); } - virtual void OnTerminateInfirior(wxCommandEvent& event) { event.Skip(); } - virtual void OnSignalInferiorUI(wxUpdateUIEvent& event) { event.Skip(); } - virtual void OnSignalinferior(wxAuiToolBarEvent& event) { event.Skip(); } - virtual void OnSettings(wxCommandEvent& event) { event.Skip(); } - virtual void OnSaveContent(wxCommandEvent& event) { event.Skip(); } - virtual void OnSaveContentUI(wxUpdateUIEvent& event) { event.Skip(); } virtual void OnKeyDown(wxKeyEvent& event) { event.Skip(); } virtual void OnStcUpdateUI(wxStyledTextEvent& event) { event.Skip(); } + virtual void OnClearView(wxCommandEvent& event) { event.Skip(); } + virtual void OnSettings(wxCommandEvent& event) { event.Skip(); } virtual void OnExit(wxCommandEvent& event) { event.Skip(); } + virtual void OnSignal(wxCommandEvent& event) { event.Skip(); } virtual void OnAbout(wxCommandEvent& event) { event.Skip(); } virtual void OnAddMarker(wxTimerEvent& event) { event.Skip(); } public: + wxStyledTextCtrl* GetStc() { return m_stc; } + wxPanel* GetMainPanel() { return m_mainPanel; } + wxMenuBar* GetMenuBar() { return m_menuBar; } + wxTimer* GetTimerMarker() { return m_timerMarker; } MainFrameBaseClass(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("codelite-terminal"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxDEFAULT_FRAME_STYLE); virtual ~MainFrameBaseClass(); }; @@ -89,6 +98,14 @@ virtual void OnFontSelected(wxFontPickerEvent& event) { event.Skip(); } public: + wxStaticText* GetStaticText31() { return m_staticText31; } + wxColourPickerCtrl* GetColourPickerFG() { return m_colourPickerFG; } + wxStaticText* GetStaticText35() { return m_staticText35; } + wxColourPickerCtrl* GetColourPickerBG() { return m_colourPickerBG; } + wxStaticText* GetStaticText39() { return m_staticText39; } + wxFontPickerCtrl* GetFontPicker() { return m_fontPicker; } + wxButton* GetButton45() { return m_button45; } + wxButton* GetButton47() { return m_button47; } SettingsDlgBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Settings"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER); virtual ~SettingsDlgBase(); }; diff -Nru codelite-8.0.1+dfsg2/codelite_terminal/wxcrafter.wxcp codelite-9.0+dfsg/codelite_terminal/wxcrafter.wxcp --- codelite-8.0.1+dfsg2/codelite_terminal/wxcrafter.wxcp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/codelite_terminal/wxcrafter.wxcp 2015-10-11 13:56:07.000000000 +0000 @@ -1,1727 +1,1939 @@ { - "metadata": { - "m_generatedFilesDir": ".", - "m_objCounter": 49, - "m_includeFiles": [], - "m_bitmapFunction": "wxC9ED9InitBitmapResources", - "m_bitmapsFile": "wxcrafter_bitmaps.cpp", - "m_GenerateCodeTypes": 1, - "m_outputFileName": "wxcrafter", - "m_firstWindowId": 1000, - "m_useEnum": true, - "m_templateClasses": [] - }, - "windows": [{ - "m_type": 4402, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": ["wxDEFAULT_FRAME_STYLE"], - "m_sizerFlags": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "MainFrameBaseClass" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Title:", - "m_value": "codelite-terminal" - }, { - "type": "virtualFolderPicker", - "m_label": "Virtual Folder:", - "m_path": "" - }, { - "type": "choice", - "m_label": "Centre:", - "m_selection": 1, - "m_options": ["", "wxBOTH", "wxVERTICAL", "wxHORIZONTAL"] - }, { - "type": "string", - "m_label": "Inherited Class", - "m_value": "MainFrame" - }, { - "type": "string", - "m_label": "File:", - "m_value": "MainFrame" - }, { - "type": "string", - "m_label": "Class Decorator", - "m_value": "" - }, { - "type": "choice", - "m_label": "wxFrame Type", - "m_selection": 0, - "m_options": ["wxFrame", "wxDocMDIParentFrame", "wxDocMDIChildFrame", "wxDocParentFrame", "wxDocChildFrame"] - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File (16x16) :", - "m_path": "terminal-16.png" - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File (32x32) :", - "m_path": "terminal-32.png" - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File (64x64) :", - "m_path": "" - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File (128x128):", - "m_path": "" - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File (256x256):", - "m_path": "" - }], - "m_events": [{ - "m_eventName": "wxEVT_IDLE", - "m_eventClass": "wxIdleEvent", - "m_eventHandler": "wxIdleEventHandler", - "m_functionNameAndSignature": "OnIdle(wxIdleEvent& event)", - "m_description": "Process a wxEVT_IDLE event", - "m_noBody": false - }], - "m_children": [{ - "m_type": 4401, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "boxSizer1" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4408, - "proportion": 1, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": ["wxTAB_TRAVERSAL"], - "m_sizerFlags": ["wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "800,600" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_mainPanel" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }], - "m_events": [], - "m_children": [{ - "m_type": 4401, - "proportion": 1, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "boxSizer11" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4463, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": ["wxAUI_TB_PLAIN_BACKGROUND", "wxAUI_TB_DEFAULT_STYLE"], - "m_sizerFlags": ["wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_auibar17" - }, { - "type": "string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "string", - "m_label": "Bitmap Size:", - "m_value": "16,16" - }, { - "type": "string", - "m_label": "Margins:", - "m_value": "-1,-1" - }], - "m_events": [], - "m_children": [{ - "m_type": 4462, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_CLEAR" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_toolbarItemClearView" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "Clear" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "Clear view" - }, { - "type": "string", - "m_label": "Help String:", - "m_value": "Clear view" - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File:", - "m_path": "resources/stop.png" - }, { - "type": "filePicker", - "m_label": "Disabled-Bitmap File", - "m_path": "" - }, { - "type": "choice", - "m_label": "Kind:", - "m_selection": 0, - "m_options": ["normal", "checkable", "radio", "separator", "dropdown"] - }, { - "type": "bool", - "m_label": "Construct the Dropdown Menu:", - "m_value": true - }], - "m_events": [{ - "m_eventName": "wxEVT_COMMAND_TOOL_CLICKED", - "m_eventClass": "wxCommandEvent", - "m_eventHandler": "wxCommandEventHandler", - "m_functionNameAndSignature": "OnClearView(wxCommandEvent& event)", - "m_description": "Process a wxEVT_COMMAND_TOOL_CLICKED event (a synonym for wxEVT_COMMAND_MENU_SELECTED). Pass the id of the tool", - "m_noBody": false - }, { - "m_eventName": "wxEVT_UPDATE_UI", - "m_eventClass": "wxUpdateUIEvent", - "m_eventHandler": "wxUpdateUIEventHandler", - "m_functionNameAndSignature": "OnClearViewUI(wxUpdateUIEvent& event)", - "m_description": "Process a wxEVT_UPDATE_UI event", - "m_noBody": false - }], - "m_children": [] - }, { - "m_type": 4462, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "ID_KILL_INFIRIOR" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_toolbarItemKillInfiriorProcess" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "Send inferior process signal" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "string", - "m_label": "Help String:", - "m_value": "Send inferior process signal" - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File:", - "m_path": "resources/signal.png" - }, { - "type": "filePicker", - "m_label": "Disabled-Bitmap File", - "m_path": "" - }, { - "type": "choice", - "m_label": "Kind:", - "m_selection": 4, - "m_options": ["normal", "checkable", "radio", "separator", "dropdown"] - }, { - "type": "bool", - "m_label": "Construct the Dropdown Menu:", - "m_value": true - }], - "m_events": [{ - "m_eventName": "wxEVT_COMMAND_TOOL_CLICKED", - "m_eventClass": "wxCommandEvent", - "m_eventHandler": "wxCommandEventHandler", - "m_functionNameAndSignature": "OnTerminateInfirior(wxCommandEvent& event)", - "m_description": "Process a wxEVT_COMMAND_TOOL_CLICKED event (a synonym for wxEVT_COMMAND_MENU_SELECTED). Pass the id of the tool", - "m_noBody": false - }, { - "m_eventName": "wxEVT_UPDATE_UI", - "m_eventClass": "wxUpdateUIEvent", - "m_eventHandler": "wxUpdateUIEventHandler", - "m_functionNameAndSignature": "OnSignalInferiorUI(wxUpdateUIEvent& event)", - "m_description": "Process a wxEVT_UPDATE_UI event", - "m_noBody": false - }, { - "m_eventName": "wxEVT_COMMAND_AUITOOLBAR_TOOL_DROPDOWN", - "m_eventClass": "wxAuiToolBarEvent", - "m_eventHandler": "wxAuiToolBarEventHandler", - "m_functionNameAndSignature": "OnSignalinferior(wxAuiToolBarEvent& event)", - "m_description": "Process a wxEVT_COMMAND_AUITOOLBAR_TOOL_DROPDOWN event", - "m_noBody": false - }], - "m_children": [] - }, { - "m_type": 4462, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "ID_SETTINGS" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_toolbarItemColorize" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "Settings..." - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "Settings..." - }, { - "type": "string", - "m_label": "Help String:", - "m_value": "Settings..." - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File:", - "m_path": "resources/settings.png" - }, { - "type": "filePicker", - "m_label": "Disabled-Bitmap File", - "m_path": "" - }, { - "type": "choice", - "m_label": "Kind:", - "m_selection": 0, - "m_options": ["normal", "checkable", "radio", "separator", "dropdown"] - }, { - "type": "bool", - "m_label": "Construct the Dropdown Menu:", - "m_value": true - }], - "m_events": [{ - "m_eventName": "wxEVT_COMMAND_TOOL_CLICKED", - "m_eventClass": "wxCommandEvent", - "m_eventHandler": "wxCommandEventHandler", - "m_functionNameAndSignature": "OnSettings(wxCommandEvent& event)", - "m_description": "Process a wxEVT_COMMAND_TOOL_CLICKED event (a synonym for wxEVT_COMMAND_MENU_SELECTED). Pass the id of the tool", - "m_noBody": false - }], - "m_children": [] - }, { - "m_type": 4462, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_SAVE" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_toolbarItemSaveContent" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "Save" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "Save" - }, { - "type": "string", - "m_label": "Help String:", - "m_value": "Save" - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File:", - "m_path": "resources/save.png" - }, { - "type": "filePicker", - "m_label": "Disabled-Bitmap File", - "m_path": "" - }, { - "type": "choice", - "m_label": "Kind:", - "m_selection": 0, - "m_options": ["normal", "checkable", "radio", "separator", "dropdown"] - }, { - "type": "bool", - "m_label": "Construct the Dropdown Menu:", - "m_value": true - }], - "m_events": [{ - "m_eventName": "wxEVT_COMMAND_TOOL_CLICKED", - "m_eventClass": "wxCommandEvent", - "m_eventHandler": "wxCommandEventHandler", - "m_functionNameAndSignature": "OnSaveContent(wxCommandEvent& event)", - "m_description": "Process a wxEVT_COMMAND_TOOL_CLICKED event (a synonym for wxEVT_COMMAND_MENU_SELECTED). Pass the id of the tool", - "m_noBody": false - }, { - "m_eventName": "wxEVT_UPDATE_UI", - "m_eventClass": "wxUpdateUIEvent", - "m_eventHandler": "wxUpdateUIEventHandler", - "m_functionNameAndSignature": "OnSaveContentUI(wxUpdateUIEvent& event)", - "m_description": "Process a wxEVT_UPDATE_UI event", - "m_noBody": false - }], - "m_children": [] - }] - }, { - "m_type": 4466, - "proportion": 1, - "border": 2, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_stc" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": true - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Fold Margin", - "m_value": false - }, { - "type": "bool", - "m_label": "Line Number Margin", - "m_value": false - }, { - "type": "bool", - "m_label": "Separator Margin", - "m_value": false - }, { - "type": "bool", - "m_label": "Symbol Margin", - "m_value": true - }, { - "type": "choice", - "m_label": "Wrap Text", - "m_selection": 0, - "m_options": ["None", "Word", "Char"] - }, { - "type": "choice", - "m_label": "Indentation Guides", - "m_selection": 0, - "m_options": ["None", "Real", "Look Forward", "Look Both"] - }, { - "type": "choice", - "m_label": "EOL Mode", - "m_selection": 3, - "m_options": ["CRLF", "CR", "LF", "Default"] - }, { - "type": "bool", - "m_label": "Display EOL Markers", - "m_value": false - }, { - "type": "choice", - "m_label": "Lexer", - "m_selection": 58, - "m_options": ["wxSTC_LEX_ABAQUS", "wxSTC_LEX_ADA", "wxSTC_LEX_APDL", "wxSTC_LEX_ASM", "wxSTC_LEX_ASN1", "wxSTC_LEX_ASYMPTOTE", "wxSTC_LEX_AUTOMATIC", "wxSTC_LEX_AVE", "wxSTC_LEX_BAAN", "wxSTC_LEX_BASH", "wxSTC_LEX_BATCH", "wxSTC_LEX_BLITZBASIC", "wxSTC_LEX_BULLANT", "wxSTC_LEX_CAML", "wxSTC_LEX_CLW", "wxSTC_LEX_CLWNOCASE", "wxSTC_LEX_CMAKE", "wxSTC_LEX_COBOL", "wxSTC_LEX_CONF", "wxSTC_LEX_CONTAINER", "wxSTC_LEX_CPP", "wxSTC_LEX_CPPNOCASE", "wxSTC_LEX_CSOUND", "wxSTC_LEX_CSS", "wxSTC_LEX_D", "wxSTC_LEX_DIFF", "wxSTC_LEX_EIFFEL", "wxSTC_LEX_EIFFELKW", "wxSTC_LEX_ERLANG", "wxSTC_LEX_ERRORLIST", "wxSTC_LEX_ESCRIPT", "wxSTC_LEX_F77", "wxSTC_LEX_FLAGSHIP", "wxSTC_LEX_FORTH", "wxSTC_LEX_FORTRAN", "wxSTC_LEX_FREEBASIC", "wxSTC_LEX_GAP", "wxSTC_LEX_GUI4CLI", "wxSTC_LEX_HASKELL", "wxSTC_LEX_HTML", "wxSTC_LEX_INNOSETUP", "wxSTC_LEX_KIX", "wxSTC_LEX_LATEX", "wxSTC_LEX_LISP", "wxSTC_LEX_LOT", "wxSTC_LEX_LOUT", "wxSTC_LEX_LUA", "wxSTC_LEX_MAGIK", "wxSTC_LEX_MAKEFILE", "wxSTC_LEX_MARKDOWN", "wxSTC_LEX_MATLAB", "wxSTC_LEX_METAPOST", "wxSTC_LEX_MMIXAL", "wxSTC_LEX_MSSQL", "wxSTC_LEX_MYSQL", "wxSTC_LEX_NIMROD", "wxSTC_LEX_NNCRONTAB", "wxSTC_LEX_NSIS", "wxSTC_LEX_NULL", "wxSTC_LEX_OCTAVE", "wxSTC_LEX_OPAL", "wxSTC_LEX_PASCAL", "wxSTC_LEX_PERL", "wxSTC_LEX_PHPSCRIPT", "wxSTC_LEX_PLM", "wxSTC_LEX_PO", "wxSTC_LEX_POV", "wxSTC_LEX_POWERBASIC", "wxSTC_LEX_POWERPRO", "wxSTC_LEX_POWERSHELL", "wxSTC_LEX_PROGRESS", "wxSTC_LEX_PROPERTIES", "wxSTC_LEX_PS", "wxSTC_LEX_PUREBASIC", "wxSTC_LEX_PYTHON", "wxSTC_LEX_R", "wxSTC_LEX_REBOL", "wxSTC_LEX_RUBY", "wxSTC_LEX_SCRIPTOL", "wxSTC_LEX_SMALLTALK", "wxSTC_LEX_SML", "wxSTC_LEX_SORCUS", "wxSTC_LEX_SPECMAN", "wxSTC_LEX_SPICE", "wxSTC_LEX_SQL", "wxSTC_LEX_TACL", "wxSTC_LEX_TADS3", "wxSTC_LEX_TAL", "wxSTC_LEX_TCL", "wxSTC_LEX_TEX", "wxSTC_LEX_VB", "wxSTC_LEX_VBSCRIPT", "wxSTC_LEX_VERILOG", "wxSTC_LEX_VHDL", "wxSTC_LEX_XCODE", "wxSTC_LEX_XML", "wxSTC_LEX_YAML"] - }, { - "type": "font", - "m_label": "Font:", - "m_value": "wxSYS_ANSI_FIXED_FONT,normal,normal,normal" - }, { - "type": "multi-string", - "m_label": "Keywords Set 1", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Keywords Set 2", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Keywords Set 3", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Keywords Set 4", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Keywords Set 5", - "m_value": "" - }], - "m_events": [{ - "m_eventName": "wxEVT_KEY_DOWN", - "m_eventClass": "wxKeyEvent", - "m_eventHandler": "wxKeyEventHandler", - "m_functionNameAndSignature": "OnKeyDown(wxKeyEvent& event)", - "m_description": "Process a wxEVT_KEY_DOWN event (any key has been pressed)", - "m_noBody": false - }, { - "m_eventName": "wxEVT_STC_UPDATEUI", - "m_eventClass": "wxStyledTextEvent", - "m_eventHandler": "wxStyledTextEventHandler", - "m_functionNameAndSignature": "OnStcUpdateUI(wxStyledTextEvent& event)", - "m_description": "Update UI", - "m_noBody": false - }], - "m_children": [] - }] - }] - }] - }, { - "m_type": 4457, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_menuBar" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }], - "m_events": [], - "m_children": [{ - "m_type": 4458, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "m_name6" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "File" - }], - "m_events": [], - "m_children": [{ - "m_type": 4459, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_EXIT" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_menuItem7" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "Exit" - }, { - "type": "string", - "m_label": "Shortcut:", - "m_value": "Alt-X" - }, { - "type": "string", - "m_label": "Help String:", - "m_value": "Quit" - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File:", - "m_path": "" - }, { - "type": "choice", - "m_label": "Kind:", - "m_selection": 0, - "m_options": ["normal", "checkable", "radio", "separator"] - }, { - "type": "bool", - "m_label": "Checked", - "m_value": false - }], - "m_events": [{ - "m_eventName": "wxEVT_COMMAND_MENU_SELECTED", - "m_eventClass": "wxCommandEvent", - "m_eventHandler": "wxCommandEventHandler", - "m_functionNameAndSignature": "OnExit(wxCommandEvent& event)", - "m_description": "Menu item has been clicked", - "m_noBody": false - }], - "m_children": [] - }] - }, { - "m_type": 4458, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "m_name8" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "Help" - }], - "m_events": [], - "m_children": [{ - "m_type": 4459, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ABOUT" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_menuItem9" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "About..." - }, { - "type": "string", - "m_label": "Shortcut:", - "m_value": "" - }, { - "type": "string", - "m_label": "Help String:", - "m_value": "" - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File:", - "m_path": "" - }, { - "type": "choice", - "m_label": "Kind:", - "m_selection": 0, - "m_options": ["normal", "checkable", "radio", "separator"] - }, { - "type": "bool", - "m_label": "Checked", - "m_value": false - }], - "m_events": [{ - "m_eventName": "wxEVT_COMMAND_MENU_SELECTED", - "m_eventClass": "wxCommandEvent", - "m_eventHandler": "wxCommandEventHandler", - "m_functionNameAndSignature": "OnAbout(wxCommandEvent& event)", - "m_description": "Menu item has been clicked", - "m_noBody": false - }], - "m_children": [] - }] - }] - }, { - "m_type": 4483, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "m_timerMarker" - }, { - "type": "integer", - "m_label": "Interval", - "m_value": 50 - }, { - "type": "bool", - "m_label": "Start the timer", - "m_value": true - }, { - "type": "bool", - "m_label": "One Shot Timer", - "m_value": false - }], - "m_events": [{ - "m_eventName": "wxEVT_TIMER", - "m_eventClass": "wxTimerEvent", - "m_eventHandler": "wxTimerEventHandler", - "m_functionNameAndSignature": "OnAddMarker(wxTimerEvent& event)", - "m_description": "Process a timer event", - "m_noBody": false - }], - "m_children": [] - }] - }, { - "m_type": 4421, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": ["wxDEFAULT_DIALOG_STYLE", "wxRESIZE_BORDER"], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "SettingsDlgBase" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Title:", - "m_value": "Settings" - }, { - "type": "virtualFolderPicker", - "m_label": "Virtual Folder:", - "m_path": "codelite_terminal:src" - }, { - "type": "choice", - "m_label": "Centre:", - "m_selection": 1, - "m_options": ["", "wxBOTH", "wxVERTICAL", "wxHORIZONTAL"] - }, { - "type": "string", - "m_label": "Inherited Class", - "m_value": "SettingsDlg" - }, { - "type": "string", - "m_label": "File:", - "m_value": "SettingsDlg" - }, { - "type": "string", - "m_label": "Class Decorator", - "m_value": "" - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File (16x16) :", - "m_path": "" - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File (32x32) :", - "m_path": "" - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File (64x64) :", - "m_path": "" - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File (128x128):", - "m_path": "" - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File (256x256):", - "m_path": "" - }], - "m_events": [], - "m_children": [{ - "m_type": 4401, - "proportion": 1, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "boxSizer27" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4403, - "proportion": 1, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "flexGridSizer29" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "# Columns:", - "m_value": "2" - }, { - "type": "string", - "m_label": "# Rows:", - "m_value": "0" - }, { - "type": "string", - "m_label": "Growable columns:", - "m_value": "1" - }, { - "type": "string", - "m_label": "Growable rows:", - "m_value": "" - }, { - "type": "string", - "m_label": "Horizontal gap:", - "m_value": "0" - }, { - "type": "string", - "m_label": "Vertical gap:", - "m_value": "0" - }], - "m_events": [], - "m_children": [{ - "m_type": 4405, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT", "wxALIGN_CENTER_VERTICAL"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_staticText31" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Label:", - "m_value": "Text Colour:" - }, { - "type": "string", - "m_label": "Wrap:", - "m_value": "-1" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4429, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": ["wxCLRP_DEFAULT_STYLE"], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_colourPickerFG" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Value:", - "colour": "(255,255,255)" - }], - "m_events": [{ - "m_eventName": "wxEVT_COMMAND_COLOURPICKER_CHANGED", - "m_eventClass": "wxColourPickerEvent", - "m_eventHandler": "wxColourPickerEventHandler", - "m_functionNameAndSignature": "OnFGColour(wxColourPickerEvent& event)", - "m_description": "The user changed the colour selected in the control either using the button or using text control\n(see wxCLRP_USE_TEXTCTRL; note that in this case the event is fired only if the user's input is valid, i.e. recognizable).", - "m_noBody": false - }], - "m_children": [] - }, { - "m_type": 4405, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT", "wxALIGN_CENTER_VERTICAL"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_staticText35" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Label:", - "m_value": "Background Colour:" - }, { - "type": "string", - "m_label": "Wrap:", - "m_value": "-1" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4429, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": ["wxCLRP_DEFAULT_STYLE"], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_colourPickerBG" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Value:", - "colour": "(32,32,32)" - }], - "m_events": [{ - "m_eventName": "wxEVT_COMMAND_COLOURPICKER_CHANGED", - "m_eventClass": "wxColourPickerEvent", - "m_eventHandler": "wxColourPickerEventHandler", - "m_functionNameAndSignature": "OnBGColour(wxColourPickerEvent& event)", - "m_description": "The user changed the colour selected in the control either using the button or using text control\n(see wxCLRP_USE_TEXTCTRL; note that in this case the event is fired only if the user's input is valid, i.e. recognizable).", - "m_noBody": false - }], - "m_children": [] - }, { - "m_type": 4405, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT", "wxALIGN_CENTER_VERTICAL"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_staticText39" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Label:", - "m_value": "Font:" - }, { - "type": "string", - "m_label": "Wrap:", - "m_value": "-1" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4430, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": ["wxFNTP_DEFAULT_STYLE"], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_fontPicker" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "font", - "m_label": "Value:", - "m_value": "wxSYS_ANSI_FIXED_FONT,normal,normal,normal" - }], - "m_events": [{ - "m_eventName": "wxEVT_COMMAND_FONTPICKER_CHANGED", - "m_eventClass": "wxFontPickerEvent", - "m_eventHandler": "wxFontPickerEventHandler", - "m_functionNameAndSignature": "OnFontSelected(wxFontPickerEvent& event)", - "m_description": "Generated whenever the selected font changes.", - "m_noBody": false - }], - "m_children": [] - }] - }, { - "m_type": 4401, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_HORIZONTAL"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "boxSizer43" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 1, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4400, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_CANCEL" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_button45" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "Cancel" - }, { - "type": "bool", - "m_label": "Default Button", - "m_value": false - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File:", - "m_path": "" - }, { - "type": "string", - "m_label": "Margins:", - "m_value": "2,2" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4400, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_OK" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_button47" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": true - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "&OK" - }, { - "type": "bool", - "m_label": "Default Button", - "m_value": false - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File:", - "m_path": "" - }, { - "type": "string", - "m_label": "Margins:", - "m_value": "2,2" - }], - "m_events": [], - "m_children": [] - }] - }] - }] - }] + "metadata": { + "m_generatedFilesDir": ".", + "m_objCounter": 69, + "m_includeFiles": [], + "m_bitmapFunction": "wxC9ED9InitBitmapResources", + "m_bitmapsFile": "wxcrafter_bitmaps.cpp", + "m_GenerateCodeTypes": 1, + "m_outputFileName": "wxcrafter", + "m_firstWindowId": 1000, + "m_useEnum": true, + "m_templateClasses": [] + }, + "windows": [{ + "m_type": 4402, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxDEFAULT_FRAME_STYLE"], + "m_sizerFlags": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "MainFrameBaseClass" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Enable Window Persistency:", + "m_value": false + }, { + "type": "string", + "m_label": "Title:", + "m_value": "codelite-terminal" + }, { + "type": "virtualFolderPicker", + "m_label": "Virtual Folder:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Centre:", + "m_selection": 1, + "m_options": ["", "wxBOTH", "wxVERTICAL", "wxHORIZONTAL"] + }, { + "type": "string", + "m_label": "Inherited Class", + "m_value": "MainFrame" + }, { + "type": "string", + "m_label": "File:", + "m_value": "MainFrame" + }, { + "type": "string", + "m_label": "Class Decorator", + "m_value": "" + }, { + "type": "choice", + "m_label": "wxFrame Type", + "m_selection": 0, + "m_options": ["wxFrame", "wxDocMDIParentFrame", "wxDocMDIChildFrame", "wxDocParentFrame", "wxDocChildFrame"] + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (16x16) :", + "m_path": "terminal-16.png" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (32x32) :", + "m_path": "terminal-32.png" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (64x64) :", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (128x128):", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (256x256):", + "m_path": "" + }], + "m_events": [{ + "m_eventName": "wxEVT_IDLE", + "m_eventClass": "wxIdleEvent", + "m_eventHandler": "wxIdleEventHandler", + "m_functionNameAndSignature": "OnIdle(wxIdleEvent& event)", + "m_description": "Process a wxEVT_IDLE event", + "m_noBody": false + }], + "m_children": [{ + "m_type": 4401, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "boxSizer1" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4408, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxTAB_TRAVERSAL"], + "m_sizerFlags": ["wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "800,600" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_mainPanel" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "boxSizer11" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4466, + "proportion": 1, + "border": 0, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_stc" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": true + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Fold Margin", + "m_value": false + }, { + "type": "bool", + "m_label": "Line Number Margin", + "m_value": false + }, { + "type": "bool", + "m_label": "Separator Margin", + "m_value": false + }, { + "type": "bool", + "m_label": "Symbol Margin", + "m_value": true + }, { + "type": "choice", + "m_label": "Wrap Text", + "m_selection": 0, + "m_options": ["None", "Word", "Char"] + }, { + "type": "choice", + "m_label": "Indentation Guides", + "m_selection": 0, + "m_options": ["None", "Real", "Look Forward", "Look Both"] + }, { + "type": "choice", + "m_label": "EOL Mode", + "m_selection": 3, + "m_options": ["CRLF", "CR", "LF", "Default"] + }, { + "type": "bool", + "m_label": "Display EOL Markers", + "m_value": false + }, { + "type": "choice", + "m_label": "Lexer", + "m_selection": 58, + "m_options": ["wxSTC_LEX_ABAQUS", "wxSTC_LEX_ADA", "wxSTC_LEX_APDL", "wxSTC_LEX_ASM", "wxSTC_LEX_ASN1", "wxSTC_LEX_ASYMPTOTE", "wxSTC_LEX_AUTOMATIC", "wxSTC_LEX_AVE", "wxSTC_LEX_BAAN", "wxSTC_LEX_BASH", "wxSTC_LEX_BATCH", "wxSTC_LEX_BLITZBASIC", "wxSTC_LEX_BULLANT", "wxSTC_LEX_CAML", "wxSTC_LEX_CLW", "wxSTC_LEX_CLWNOCASE", "wxSTC_LEX_CMAKE", "wxSTC_LEX_COBOL", "wxSTC_LEX_CONF", "wxSTC_LEX_CONTAINER", "wxSTC_LEX_CPP", "wxSTC_LEX_CPPNOCASE", "wxSTC_LEX_CSOUND", "wxSTC_LEX_CSS", "wxSTC_LEX_D", "wxSTC_LEX_DIFF", "wxSTC_LEX_EIFFEL", "wxSTC_LEX_EIFFELKW", "wxSTC_LEX_ERLANG", "wxSTC_LEX_ERRORLIST", "wxSTC_LEX_ESCRIPT", "wxSTC_LEX_F77", "wxSTC_LEX_FLAGSHIP", "wxSTC_LEX_FORTH", "wxSTC_LEX_FORTRAN", "wxSTC_LEX_FREEBASIC", "wxSTC_LEX_GAP", "wxSTC_LEX_GUI4CLI", "wxSTC_LEX_HASKELL", "wxSTC_LEX_HTML", "wxSTC_LEX_INNOSETUP", "wxSTC_LEX_KIX", "wxSTC_LEX_LATEX", "wxSTC_LEX_LISP", "wxSTC_LEX_LOT", "wxSTC_LEX_LOUT", "wxSTC_LEX_LUA", "wxSTC_LEX_MAGIK", "wxSTC_LEX_MAKEFILE", "wxSTC_LEX_MARKDOWN", "wxSTC_LEX_MATLAB", "wxSTC_LEX_METAPOST", "wxSTC_LEX_MMIXAL", "wxSTC_LEX_MSSQL", "wxSTC_LEX_MYSQL", "wxSTC_LEX_NIMROD", "wxSTC_LEX_NNCRONTAB", "wxSTC_LEX_NSIS", "wxSTC_LEX_NULL", "wxSTC_LEX_OCTAVE", "wxSTC_LEX_OPAL", "wxSTC_LEX_PASCAL", "wxSTC_LEX_PERL", "wxSTC_LEX_PHPSCRIPT", "wxSTC_LEX_PLM", "wxSTC_LEX_PO", "wxSTC_LEX_POV", "wxSTC_LEX_POWERBASIC", "wxSTC_LEX_POWERPRO", "wxSTC_LEX_POWERSHELL", "wxSTC_LEX_PROGRESS", "wxSTC_LEX_PROPERTIES", "wxSTC_LEX_PS", "wxSTC_LEX_PUREBASIC", "wxSTC_LEX_PYTHON", "wxSTC_LEX_R", "wxSTC_LEX_REBOL", "wxSTC_LEX_RUBY", "wxSTC_LEX_SCRIPTOL", "wxSTC_LEX_SMALLTALK", "wxSTC_LEX_SML", "wxSTC_LEX_SORCUS", "wxSTC_LEX_SPECMAN", "wxSTC_LEX_SPICE", "wxSTC_LEX_SQL", "wxSTC_LEX_TACL", "wxSTC_LEX_TADS3", "wxSTC_LEX_TAL", "wxSTC_LEX_TCL", "wxSTC_LEX_TEX", "wxSTC_LEX_VB", "wxSTC_LEX_VBSCRIPT", "wxSTC_LEX_VERILOG", "wxSTC_LEX_VHDL", "wxSTC_LEX_XCODE", "wxSTC_LEX_XML", "wxSTC_LEX_YAML"] + }, { + "type": "font", + "m_label": "Font:", + "m_value": "wxSYS_ANSI_FIXED_FONT,normal,normal,normal" + }, { + "type": "multi-string", + "m_label": "Keywords Set 1", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Keywords Set 2", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Keywords Set 3", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Keywords Set 4", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Keywords Set 5", + "m_value": "" + }], + "m_events": [{ + "m_eventName": "wxEVT_KEY_DOWN", + "m_eventClass": "wxKeyEvent", + "m_eventHandler": "wxKeyEventHandler", + "m_functionNameAndSignature": "OnKeyDown(wxKeyEvent& event)", + "m_description": "Process a wxEVT_KEY_DOWN event (any key has been pressed)", + "m_noBody": false + }, { + "m_eventName": "wxEVT_STC_UPDATEUI", + "m_eventClass": "wxStyledTextEvent", + "m_eventHandler": "wxStyledTextEventHandler", + "m_functionNameAndSignature": "OnStcUpdateUI(wxStyledTextEvent& event)", + "m_description": "Update UI", + "m_noBody": false + }], + "m_children": [] + }] + }] + }] + }, { + "m_type": 4457, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_menuBar" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }], + "m_events": [], + "m_children": [{ + "m_type": 4458, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "m_File" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "File" + }], + "m_events": [], + "m_children": [{ + "m_type": 4459, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_SAVE" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_menuItemSave" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Save..." + }, { + "type": "string", + "m_label": "Shortcut:", + "m_value": "Ctrl-S" + }, { + "type": "string", + "m_label": "Help String:", + "m_value": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Kind:", + "m_selection": 0, + "m_options": ["normal", "checkable", "radio", "separator"] + }, { + "type": "bool", + "m_label": "Checked", + "m_value": false + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4459, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_CLEAR" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_menuItemClear" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Clear View" + }, { + "type": "string", + "m_label": "Shortcut:", + "m_value": "Ctrl-L" + }, { + "type": "string", + "m_label": "Help String:", + "m_value": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Kind:", + "m_selection": 0, + "m_options": ["normal", "checkable", "radio", "separator"] + }, { + "type": "bool", + "m_label": "Checked", + "m_value": false + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_MENU_SELECTED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnClearView(wxCommandEvent& event)", + "m_description": "Menu item has been clicked", + "m_noBody": false + }], + "m_children": [] + }, { + "m_type": 4459, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_menuItem69" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Item25" + }, { + "type": "string", + "m_label": "Shortcut:", + "m_value": "" + }, { + "type": "string", + "m_label": "Help String:", + "m_value": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Kind:", + "m_selection": 3, + "m_options": ["normal", "checkable", "radio", "separator"] + }, { + "type": "bool", + "m_label": "Checked", + "m_value": false + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4459, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_PREFERENCES" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_menuItemPreferences" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Preferences..." + }, { + "type": "string", + "m_label": "Shortcut:", + "m_value": "" + }, { + "type": "string", + "m_label": "Help String:", + "m_value": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Kind:", + "m_selection": 0, + "m_options": ["normal", "checkable", "radio", "separator"] + }, { + "type": "bool", + "m_label": "Checked", + "m_value": false + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_MENU_SELECTED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnSettings(wxCommandEvent& event)", + "m_description": "Menu item has been clicked", + "m_noBody": false + }], + "m_children": [] + }, { + "m_type": 4459, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_menuItem51" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Item9" + }, { + "type": "string", + "m_label": "Shortcut:", + "m_value": "" + }, { + "type": "string", + "m_label": "Help String:", + "m_value": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Kind:", + "m_selection": 3, + "m_options": ["normal", "checkable", "radio", "separator"] + }, { + "type": "bool", + "m_label": "Checked", + "m_value": false + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4459, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_EXIT" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_menuItem7" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Exit" + }, { + "type": "string", + "m_label": "Shortcut:", + "m_value": "Alt-X" + }, { + "type": "string", + "m_label": "Help String:", + "m_value": "Quit" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Kind:", + "m_selection": 0, + "m_options": ["normal", "checkable", "radio", "separator"] + }, { + "type": "bool", + "m_label": "Checked", + "m_value": false + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_MENU_SELECTED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnExit(wxCommandEvent& event)", + "m_description": "Menu item has been clicked", + "m_noBody": false + }], + "m_children": [] + }] + }, { + "m_type": 4458, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "m_Signals" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Signals" + }], + "m_events": [], + "m_children": [{ + "m_type": 4459, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "ID_SIGINT" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_menuItemINT" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "SIGINT" + }, { + "type": "string", + "m_label": "Shortcut:", + "m_value": "" + }, { + "type": "string", + "m_label": "Help String:", + "m_value": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Kind:", + "m_selection": 0, + "m_options": ["normal", "checkable", "radio", "separator"] + }, { + "type": "bool", + "m_label": "Checked", + "m_value": false + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_MENU_SELECTED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnSignal(wxCommandEvent& event)", + "m_description": "Menu item has been clicked", + "m_noBody": false + }], + "m_children": [] + }, { + "m_type": 4459, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "ID_SIGTERM" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_menuItemTERM" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "SIGTERM" + }, { + "type": "string", + "m_label": "Shortcut:", + "m_value": "" + }, { + "type": "string", + "m_label": "Help String:", + "m_value": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Kind:", + "m_selection": 0, + "m_options": ["normal", "checkable", "radio", "separator"] + }, { + "type": "bool", + "m_label": "Checked", + "m_value": false + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_MENU_SELECTED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnSignal(wxCommandEvent& event)", + "m_description": "Menu item has been clicked", + "m_noBody": false + }], + "m_children": [] + }, { + "m_type": 4459, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "ID_SIGKILL" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_menuItemKILL" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "SIGKILL" + }, { + "type": "string", + "m_label": "Shortcut:", + "m_value": "" + }, { + "type": "string", + "m_label": "Help String:", + "m_value": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Kind:", + "m_selection": 0, + "m_options": ["normal", "checkable", "radio", "separator"] + }, { + "type": "bool", + "m_label": "Checked", + "m_value": false + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_MENU_SELECTED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnSignal(wxCommandEvent& event)", + "m_description": "Menu item has been clicked", + "m_noBody": false + }], + "m_children": [] + }, { + "m_type": 4459, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "ID_SIGHUP" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_menuItemHUP" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "SIGHUP" + }, { + "type": "string", + "m_label": "Shortcut:", + "m_value": "" + }, { + "type": "string", + "m_label": "Help String:", + "m_value": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Kind:", + "m_selection": 0, + "m_options": ["normal", "checkable", "radio", "separator"] + }, { + "type": "bool", + "m_label": "Checked", + "m_value": false + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_MENU_SELECTED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnSignal(wxCommandEvent& event)", + "m_description": "Menu item has been clicked", + "m_noBody": false + }], + "m_children": [] + }] + }, { + "m_type": 4458, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "m_Help" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Help" + }], + "m_events": [], + "m_children": [{ + "m_type": 4459, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ABOUT" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_menuItem9" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "About..." + }, { + "type": "string", + "m_label": "Shortcut:", + "m_value": "" + }, { + "type": "string", + "m_label": "Help String:", + "m_value": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Kind:", + "m_selection": 0, + "m_options": ["normal", "checkable", "radio", "separator"] + }, { + "type": "bool", + "m_label": "Checked", + "m_value": false + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_MENU_SELECTED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnAbout(wxCommandEvent& event)", + "m_description": "Menu item has been clicked", + "m_noBody": false + }], + "m_children": [] + }] + }] + }, { + "m_type": 4483, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "m_timerMarker" + }, { + "type": "integer", + "m_label": "Interval", + "m_value": 50 + }, { + "type": "bool", + "m_label": "Start the timer", + "m_value": true + }, { + "type": "bool", + "m_label": "One Shot Timer", + "m_value": false + }], + "m_events": [{ + "m_eventName": "wxEVT_TIMER", + "m_eventClass": "wxTimerEvent", + "m_eventHandler": "wxTimerEventHandler", + "m_functionNameAndSignature": "OnAddMarker(wxTimerEvent& event)", + "m_description": "Process a timer event", + "m_noBody": false + }], + "m_children": [] + }] + }, { + "m_type": 4421, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxDEFAULT_DIALOG_STYLE", "wxRESIZE_BORDER"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "SettingsDlgBase" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Enable Window Persistency:", + "m_value": false + }, { + "type": "string", + "m_label": "Title:", + "m_value": "Settings" + }, { + "type": "virtualFolderPicker", + "m_label": "Virtual Folder:", + "m_path": "codelite_terminal:src" + }, { + "type": "choice", + "m_label": "Centre:", + "m_selection": 1, + "m_options": ["", "wxBOTH", "wxVERTICAL", "wxHORIZONTAL"] + }, { + "type": "string", + "m_label": "Inherited Class", + "m_value": "SettingsDlg" + }, { + "type": "string", + "m_label": "File:", + "m_value": "SettingsDlg" + }, { + "type": "string", + "m_label": "Class Decorator", + "m_value": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (16x16) :", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (32x32) :", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (64x64) :", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (128x128):", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (256x256):", + "m_path": "" + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "boxSizer27" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4403, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "flexGridSizer29" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "# Columns:", + "m_value": "2" + }, { + "type": "string", + "m_label": "# Rows:", + "m_value": "0" + }, { + "type": "string", + "m_label": "Growable columns:", + "m_value": "1" + }, { + "type": "string", + "m_label": "Growable rows:", + "m_value": "" + }, { + "type": "string", + "m_label": "Horizontal gap:", + "m_value": "0" + }, { + "type": "string", + "m_label": "Vertical gap:", + "m_value": "0" + }], + "m_events": [], + "m_children": [{ + "m_type": 4405, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT", "wxALIGN_CENTER_VERTICAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_staticText31" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Label:", + "m_value": "Text Colour:" + }, { + "type": "string", + "m_label": "Wrap:", + "m_value": "-1" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4429, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxCLRP_DEFAULT_STYLE"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_colourPickerFG" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Value:", + "colour": "(255,255,255)" + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_COLOURPICKER_CHANGED", + "m_eventClass": "wxColourPickerEvent", + "m_eventHandler": "wxColourPickerEventHandler", + "m_functionNameAndSignature": "OnFGColour(wxColourPickerEvent& event)", + "m_description": "The user changed the colour selected in the control either using the button or using text control\n(see wxCLRP_USE_TEXTCTRL; note that in this case the event is fired only if the user's input is valid, i.e. recognizable).", + "m_noBody": false + }], + "m_children": [] + }, { + "m_type": 4405, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT", "wxALIGN_CENTER_VERTICAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_staticText35" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Label:", + "m_value": "Background Colour:" + }, { + "type": "string", + "m_label": "Wrap:", + "m_value": "-1" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4429, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxCLRP_DEFAULT_STYLE"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_colourPickerBG" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Value:", + "colour": "(32,32,32)" + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_COLOURPICKER_CHANGED", + "m_eventClass": "wxColourPickerEvent", + "m_eventHandler": "wxColourPickerEventHandler", + "m_functionNameAndSignature": "OnBGColour(wxColourPickerEvent& event)", + "m_description": "The user changed the colour selected in the control either using the button or using text control\n(see wxCLRP_USE_TEXTCTRL; note that in this case the event is fired only if the user's input is valid, i.e. recognizable).", + "m_noBody": false + }], + "m_children": [] + }, { + "m_type": 4405, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT", "wxALIGN_CENTER_VERTICAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_staticText39" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Label:", + "m_value": "Font:" + }, { + "type": "string", + "m_label": "Wrap:", + "m_value": "-1" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4430, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxFNTP_DEFAULT_STYLE"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_fontPicker" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "font", + "m_label": "Value:", + "m_value": "wxSYS_ANSI_FIXED_FONT,normal,normal,normal" + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_FONTPICKER_CHANGED", + "m_eventClass": "wxFontPickerEvent", + "m_eventHandler": "wxFontPickerEventHandler", + "m_functionNameAndSignature": "OnFontSelected(wxFontPickerEvent& event)", + "m_description": "Generated whenever the selected font changes.", + "m_noBody": false + }], + "m_children": [] + }] + }, { + "m_type": 4401, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_HORIZONTAL"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "boxSizer43" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 1, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4400, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_CANCEL" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_button45" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Cancel" + }, { + "type": "bool", + "m_label": "Default Button", + "m_value": false + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Direction", + "m_selection": 0, + "m_options": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"] + }, { + "type": "string", + "m_label": "Margins:", + "m_value": "2,2" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4400, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_OK" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_button47" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": true + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "&OK" + }, { + "type": "bool", + "m_label": "Default Button", + "m_value": false + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Direction", + "m_selection": 0, + "m_options": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"] + }, { + "type": "string", + "m_label": "Margins:", + "m_value": "2,2" + }], + "m_events": [], + "m_children": [] + }] + }] + }] + }] } \ No newline at end of file diff -Nru codelite-8.0.1+dfsg2/compilers.json codelite-9.0+dfsg/compilers.json --- codelite-8.0.1+dfsg2/compilers.json 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/compilers.json 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,13 @@ +{ + "Compilers" : { + "MinGW" : [ + { + "Name" : "MinGW-TDM 5.1/32 bit", + "URL" : "http://sourceforge.net/projects/tdm-gcc/files/TDM-GCC%20Installer/tdm-gcc-5.1.0-3.exe/download" + } , { + "Name" : "MinGW-TDM 5.1/64 bit", + "URL" : "http://sourceforge.net/projects/tdm-gcc/files/TDM-GCC%20Installer/tdm64-gcc-5.1.0-2.exe/download" + } + ] + } +} diff -Nru codelite-8.0.1+dfsg2/ContinuousBuild/CMakeLists.txt codelite-9.0+dfsg/ContinuousBuild/CMakeLists.txt --- codelite-8.0.1+dfsg2/ContinuousBuild/CMakeLists.txt 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/ContinuousBuild/CMakeLists.txt 2015-10-11 13:56:07.000000000 +0000 @@ -26,11 +26,6 @@ add_definitions(-Winvalid-pch) endif ( USE_PCH ) -# Add RPATH -if (UNIX) -set (LINKER_OPTIONS -Wl,-rpath,"${PLUGINS_DIR}") -endif (UNIX) - FILE(GLOB SRCS "*.cpp") if (UNIX AND NOT APPLE) @@ -53,7 +48,5 @@ ${wxWidgets_LIBRARIES} libcodelite plugin - wxsqlite3 - sqlite3lib ) CL_INSTALL_PLUGIN(${PLUGIN_NAME}) diff -Nru codelite-8.0.1+dfsg2/ContinuousBuild/continousbuildbasepane.h codelite-9.0+dfsg/ContinuousBuild/continousbuildbasepane.h --- codelite-8.0.1+dfsg2/ContinuousBuild/continousbuildbasepane.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/ContinuousBuild/continousbuildbasepane.h 2015-10-11 13:56:07.000000000 +0000 @@ -4,8 +4,8 @@ // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// -#ifndef CONTINOUSBUILDBASEPANE_BASE_CLASSES_H -#define CONTINOUSBUILDBASEPANE_BASE_CLASSES_H +#ifndef CODELITE_CONTINUOUSBUILD_CONTINOUSBUILDBASEPANE_BASE_CLASSES_H +#define CODELITE_CONTINUOUSBUILD_CONTINOUSBUILDBASEPANE_BASE_CLASSES_H #include #include diff -Nru codelite-8.0.1+dfsg2/ContinuousBuild/continuousbuild.cpp codelite-9.0+dfsg/ContinuousBuild/continuousbuild.cpp --- codelite-8.0.1+dfsg2/ContinuousBuild/continuousbuild.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/ContinuousBuild/continuousbuild.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -45,10 +45,10 @@ #include "cl_command_event.h" static ContinuousBuild* thePlugin = NULL; -//Define the plugin entry point -extern "C" EXPORT IPlugin *CreatePlugin(IManager *manager) +// Define the plugin entry point +extern "C" EXPORT IPlugin* CreatePlugin(IManager* manager) { - if (thePlugin == 0) { + if(thePlugin == 0) { thePlugin = new ContinuousBuild(manager); } return thePlugin; @@ -64,19 +64,11 @@ return info; } -extern "C" EXPORT int GetPluginInterfaceVersion() -{ - return PLUGIN_INTERFACE_VERSION; -} - -BEGIN_EVENT_TABLE(ContinuousBuild, IPlugin) - EVT_COMMAND(wxID_ANY, wxEVT_PROC_DATA_READ, ContinuousBuild::OnBuildProcessOutput) - EVT_COMMAND(wxID_ANY, wxEVT_PROC_TERMINATED, ContinuousBuild::OnBuildProcessEnded) -END_EVENT_TABLE() +extern "C" EXPORT int GetPluginInterfaceVersion() { return PLUGIN_INTERFACE_VERSION; } -static const wxString CONT_BUILD = wxT("BuildQ"); +static const wxString CONT_BUILD = _("BuildQ"); -ContinuousBuild::ContinuousBuild(IManager *manager) +ContinuousBuild::ContinuousBuild(IManager* manager) : IPlugin(manager) , m_buildInProgress(false) { @@ -88,28 +80,27 @@ m_mgr->GetOutputPaneNotebook()->AddPage(m_view, CONT_BUILD, false, LoadBitmapFile(wxT("compfile.png"))); m_topWin = m_mgr->GetTheApp(); - EventNotifier::Get()->Connect(wxEVT_FILE_SAVED, clCommandEventHandler(ContinuousBuild::OnFileSaved), NULL, this); - EventNotifier::Get()->Connect(wxEVT_FILE_SAVE_BY_BUILD_START, wxCommandEventHandler(ContinuousBuild::OnIgnoreFileSaved), NULL, this); - EventNotifier::Get()->Connect(wxEVT_FILE_SAVE_BY_BUILD_END, wxCommandEventHandler(ContinuousBuild::OnStopIgnoreFileSaved), NULL, this); + EventNotifier::Get()->Connect(wxEVT_FILE_SAVED, clCommandEventHandler(ContinuousBuild::OnFileSaved), NULL, this); + EventNotifier::Get()->Connect( + wxEVT_FILE_SAVE_BY_BUILD_START, wxCommandEventHandler(ContinuousBuild::OnIgnoreFileSaved), NULL, this); + EventNotifier::Get()->Connect( + wxEVT_FILE_SAVE_BY_BUILD_END, wxCommandEventHandler(ContinuousBuild::OnStopIgnoreFileSaved), NULL, this); + Bind(wxEVT_ASYNC_PROCESS_OUTPUT, &ContinuousBuild::OnBuildProcessOutput, this); + Bind(wxEVT_ASYNC_PROCESS_TERMINATED, &ContinuousBuild::OnBuildProcessEnded, this); } -ContinuousBuild::~ContinuousBuild() -{ -} +ContinuousBuild::~ContinuousBuild() {} -clToolBar *ContinuousBuild::CreateToolBar(wxWindow *parent) +clToolBar* ContinuousBuild::CreateToolBar(wxWindow* parent) { // Create the toolbar to be used by the plugin - clToolBar *tb(NULL); + clToolBar* tb(NULL); return tb; } -void ContinuousBuild::CreatePluginMenu(wxMenu *pluginsMenu) -{ - wxUnusedVar(pluginsMenu); -} +void ContinuousBuild::CreatePluginMenu(wxMenu* pluginsMenu) { wxUnusedVar(pluginsMenu); } -void ContinuousBuild::HookPopupMenu(wxMenu *menu, MenuType type) +void ContinuousBuild::HookPopupMenu(wxMenu* menu, MenuType type) { wxUnusedVar(menu); wxUnusedVar(type); @@ -118,16 +109,18 @@ void ContinuousBuild::UnPlug() { // before this plugin is un-plugged we must remove the tab we added - for (size_t i=0; iGetOutputPaneNotebook()->GetPageCount(); i++) { - if (m_view == m_mgr->GetOutputPaneNotebook()->GetPage(i)) { + for(size_t i = 0; i < m_mgr->GetOutputPaneNotebook()->GetPageCount(); i++) { + if(m_view == m_mgr->GetOutputPaneNotebook()->GetPage(i)) { m_mgr->GetOutputPaneNotebook()->RemovePage(i); m_view->Destroy(); break; } } - EventNotifier::Get()->Disconnect(wxEVT_FILE_SAVED, clCommandEventHandler(ContinuousBuild::OnFileSaved), NULL, this); - EventNotifier::Get()->Disconnect(wxEVT_FILE_SAVE_BY_BUILD_START, wxCommandEventHandler(ContinuousBuild::OnIgnoreFileSaved), NULL, this); - EventNotifier::Get()->Disconnect(wxEVT_FILE_SAVE_BY_BUILD_END, wxCommandEventHandler(ContinuousBuild::OnStopIgnoreFileSaved), NULL, this); + EventNotifier::Get()->Disconnect(wxEVT_FILE_SAVED, clCommandEventHandler(ContinuousBuild::OnFileSaved), NULL, this); + EventNotifier::Get()->Disconnect( + wxEVT_FILE_SAVE_BY_BUILD_START, wxCommandEventHandler(ContinuousBuild::OnIgnoreFileSaved), NULL, this); + EventNotifier::Get()->Disconnect( + wxEVT_FILE_SAVE_BY_BUILD_END, wxCommandEventHandler(ContinuousBuild::OnStopIgnoreFileSaved), NULL, this); } void ContinuousBuild::OnFileSaved(clCommandEvent& e) @@ -135,7 +128,7 @@ e.Skip(); CL_DEBUG(wxT("ContinuousBuild::OnFileSaved\n")); // Dont build while the main build is in progress - if (m_buildInProgress) { + if(m_buildInProgress) { CL_DEBUG(wxT("Build already in progress, skipping\n")); return; } @@ -143,8 +136,8 @@ ContinousBuildConf conf; m_mgr->GetConfigTool()->ReadObject(wxT("ContinousBuildConf"), &conf); - if (conf.GetEnabled()) { - DoBuild( e.GetString() ); + if(conf.GetEnabled()) { + DoBuild(e.GetString()); } else { CL_DEBUG(wxT("ContinuousBuild is disabled\n")); } @@ -154,12 +147,11 @@ { CL_DEBUG(wxT("DoBuild\n")); // Make sure a workspace is opened - if (!m_mgr->IsWorkspaceOpen()) { + if(!m_mgr->IsWorkspaceOpen()) { CL_DEBUG(wxT("No workspace opened!\n")); return; } - // Filter non source files FileExtManager::FileType type = FileExtManager::GetType(fileName); switch(type) { @@ -188,13 +180,13 @@ } // get the selected configuration to be build - BuildConfigPtr bldConf = m_mgr->GetWorkspace()->GetProjBuildConf( project->GetName(), wxEmptyString ); - if ( !bldConf ) { + BuildConfigPtr bldConf = m_mgr->GetWorkspace()->GetProjBuildConf(project->GetName(), wxEmptyString); + if(!bldConf) { CL_DEBUG(wxT("Failed to locate build configuration\n")); return; } - BuilderPtr builder = m_mgr->GetBuildManager()->GetBuilder( wxT( "GNU makefile for g++/gcc" ) ); + BuilderPtr builder = m_mgr->GetBuildManager()->GetBuilder(wxT("GNU makefile for g++/gcc")); if(!builder) { CL_DEBUG(wxT("Failed to located builder\n")); return; @@ -207,12 +199,12 @@ } // get the single file command to use - wxString cmd = builder->GetSingleFileCmd(projectName, bldConf->GetName(), fileName); + wxString cmd = builder->GetSingleFileCmd(projectName, bldConf->GetName(), fileName); WrapInShell(cmd); - if( m_buildProcess.IsBusy() ) { + if(m_buildProcess.IsBusy()) { // add the build to the queue - if (m_files.Index(fileName) == wxNOT_FOUND) { + if(m_files.Index(fileName) == wxNOT_FOUND) { m_files.Add(fileName); // update the UI @@ -224,7 +216,7 @@ clCommandEvent event(wxEVT_SHELL_COMMAND_STARTED); // Associate the build event details - BuildEventDetails *eventData = new BuildEventDetails(); + BuildEventDetails* eventData = new BuildEventDetails(); eventData->SetProjectName(projectName); eventData->SetConfiguration(bldConf->GetName()); eventData->SetIsCustomProject(bldConf->IsCustomBuild()); @@ -236,22 +228,19 @@ EnvSetter env(NULL, NULL, projectName); CL_DEBUG(wxString::Format(wxT("cmd:%s\n"), cmd.c_str())); - if(!m_buildProcess.Execute(cmd, fileName, project->GetFileName().GetPath(), this)) - return; + if(!m_buildProcess.Execute(cmd, fileName, project->GetFileName().GetPath(), this)) return; // Set some messages - m_mgr->SetStatusMessage(wxString::Format(wxT("%s %s..."), _("Compiling"), wxFileName(fileName).GetFullName().c_str()), 0); + m_mgr->SetStatusMessage( + wxString::Format(wxT("%s %s..."), _("Compiling"), wxFileName(fileName).GetFullName().c_str()), 0); // Add this file to the UI queue m_view->AddFile(fileName); } -void ContinuousBuild::OnBuildProcessEnded(wxCommandEvent& e) +void ContinuousBuild::OnBuildProcessEnded(clProcessEvent& e) { // remove the file from the UI - ProcessEventData *ped = (ProcessEventData*)e.GetClientData(); - delete ped; - int pid = m_buildProcess.GetPid(); m_view->RemoveFile(m_buildProcess.GetFileName()); @@ -267,7 +256,7 @@ m_buildProcess.Stop(); // if the queue is not empty, start another build - if (m_files.IsEmpty() == false) { + if(m_files.IsEmpty() == false) { wxString fileName = m_files.Item(0); m_files.RemoveAt(0); @@ -302,14 +291,9 @@ m_buildInProgress = false; } -void ContinuousBuild::OnBuildProcessOutput(wxCommandEvent& e) +void ContinuousBuild::OnBuildProcessOutput(clProcessEvent& e) { - ProcessEventData *ped = (ProcessEventData*)e.GetClientData(); - clCommandEvent event(wxEVT_SHELL_COMMAND_ADDLINE); - event.SetString(ped->GetData()); + event.SetString(e.GetOutput()); EventNotifier::Get()->AddPendingEvent(event); - - //m_mgr->AddBuildOuptut(ped->GetData(), false); - delete ped; } diff -Nru codelite-8.0.1+dfsg2/ContinuousBuild/continuousbuild.h codelite-9.0+dfsg/ContinuousBuild/continuousbuild.h --- codelite-8.0.1+dfsg2/ContinuousBuild/continuousbuild.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/ContinuousBuild/continuousbuild.h 2015-10-11 13:56:07.000000000 +0000 @@ -37,37 +37,34 @@ class ContinuousBuild : public IPlugin { - ContinousBuildPane *m_view; - wxEvtHandler * m_topWin; - BuildProcess m_buildProcess; - wxArrayString m_files; - bool m_buildInProgress; + ContinousBuildPane* m_view; + wxEvtHandler* m_topWin; + BuildProcess m_buildProcess; + wxArrayString m_files; + bool m_buildInProgress; public: - void DoBuild(const wxString &fileName); + void DoBuild(const wxString& fileName); public: - ContinuousBuild(IManager *manager); + ContinuousBuild(IManager* manager); ~ContinuousBuild(); //-------------------------------------------- - //Abstract methods + // Abstract methods //-------------------------------------------- - virtual clToolBar *CreateToolBar(wxWindow *parent); - virtual void CreatePluginMenu(wxMenu *pluginsMenu); - virtual void HookPopupMenu(wxMenu *menu, MenuType type); + virtual clToolBar* CreateToolBar(wxWindow* parent); + virtual void CreatePluginMenu(wxMenu* pluginsMenu); + virtual void HookPopupMenu(wxMenu* menu, MenuType type); virtual void UnPlug(); void StopAll(); - // Event handlers - DECLARE_EVENT_TABLE() - - void OnFileSaved (clCommandEvent &e); - void OnIgnoreFileSaved (wxCommandEvent &e); - void OnStopIgnoreFileSaved (wxCommandEvent &e); - void OnBuildProcessEnded (wxCommandEvent &e); - void OnBuildProcessOutput (wxCommandEvent &e); + void OnFileSaved(clCommandEvent& e); + void OnIgnoreFileSaved(wxCommandEvent& e); + void OnStopIgnoreFileSaved(wxCommandEvent& e); + void OnBuildProcessEnded(clProcessEvent& e); + void OnBuildProcessOutput(clProcessEvent& e); }; -#endif //ContinuousBuild +#endif // ContinuousBuild diff -Nru codelite-8.0.1+dfsg2/Copyright/CMakeLists.txt codelite-9.0+dfsg/Copyright/CMakeLists.txt --- codelite-8.0.1+dfsg2/Copyright/CMakeLists.txt 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Copyright/CMakeLists.txt 2015-10-11 13:56:07.000000000 +0000 @@ -26,11 +26,6 @@ add_definitions(-Winvalid-pch) endif ( USE_PCH ) -# Add RPATH -if (UNIX) -set (LINKER_OPTIONS -Wl,-rpath,"${PLUGINS_DIR}") -endif (UNIX) - FILE(GLOB SRCS "*.cpp") if (UNIX AND NOT APPLE) @@ -53,7 +48,5 @@ ${wxWidgets_LIBRARIES} libcodelite plugin - wxsqlite3 - sqlite3lib ) CL_INSTALL_PLUGIN(${PLUGIN_NAME}) diff -Nru codelite-8.0.1+dfsg2/Copyright/copyrights_proj_sel_dlg.cpp codelite-9.0+dfsg/Copyright/copyrights_proj_sel_dlg.cpp --- codelite-8.0.1+dfsg2/Copyright/copyrights_proj_sel_dlg.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Copyright/copyrights_proj_sel_dlg.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -25,7 +25,7 @@ #include "copyrights_proj_sel_dlg.h" #include "workspace.h" -CopyrightsProjectSelDlg::CopyrightsProjectSelDlg( wxWindow* parent, Workspace *wsp ) +CopyrightsProjectSelDlg::CopyrightsProjectSelDlg( wxWindow* parent, clCxxWorkspace *wsp ) : CopyrightsProjectSelBaseDlg( parent ) { wxArrayString projects; diff -Nru codelite-8.0.1+dfsg2/Copyright/copyrights_proj_sel_dlg.h codelite-9.0+dfsg/Copyright/copyrights_proj_sel_dlg.h --- codelite-8.0.1+dfsg2/Copyright/copyrights_proj_sel_dlg.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Copyright/copyrights_proj_sel_dlg.h 2015-10-11 13:56:07.000000000 +0000 @@ -31,7 +31,7 @@ */ #include "copyrights_proj_sel_base_dlg.h" -class Workspace; +class clCxxWorkspace; /** Implementing CopyrightsProjectSelBaseDlg */ class CopyrightsProjectSelDlg : public CopyrightsProjectSelBaseDlg { @@ -41,7 +41,7 @@ public: /** Constructor */ - CopyrightsProjectSelDlg( wxWindow* parent, Workspace *wsp ); + CopyrightsProjectSelDlg( wxWindow* parent, clCxxWorkspace *wsp ); void GetProjects(wxArrayString &projects); }; diff -Nru codelite-8.0.1+dfsg2/cppchecker/CMakeLists.txt codelite-9.0+dfsg/cppchecker/CMakeLists.txt --- codelite-8.0.1+dfsg2/cppchecker/CMakeLists.txt 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/cppchecker/CMakeLists.txt 2015-10-11 13:56:07.000000000 +0000 @@ -21,11 +21,6 @@ add_definitions(-DWXUSINGDLL_CL) add_definitions(-DWXUSINGDLL_SDK) -# Add RPATH -if (UNIX) -set (LINKER_OPTIONS -Wl,-rpath,"${PLUGINS_DIR}") -endif (UNIX) - FILE(GLOB SRCS "*.cpp") if (UNIX AND NOT APPLE) @@ -48,8 +43,6 @@ ${wxWidgets_LIBRARIES} libcodelite plugin - wxsqlite3 - sqlite3lib ) CL_INSTALL_PLUGIN(${PLUGIN_NAME}) diff -Nru codelite-8.0.1+dfsg2/cppchecker/cppchecker.cpp codelite-9.0+dfsg/cppchecker/cppchecker.cpp --- codelite-8.0.1+dfsg2/cppchecker/cppchecker.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/cppchecker/cppchecker.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -35,7 +35,7 @@ #include "cppchecksettingsdlg.h" #include #include -#include "notebook_ex.h" +#include "Notebook.h" #include "workspace.h" #include "project.h" #include "fileextmanager.h" @@ -74,15 +74,7 @@ return info; } -extern "C" EXPORT int GetPluginInterfaceVersion() -{ - return PLUGIN_INTERFACE_VERSION; -} - -BEGIN_EVENT_TABLE(CppCheckPlugin, wxEvtHandler) -EVT_COMMAND(wxID_ANY, wxEVT_PROC_DATA_READ, CppCheckPlugin::OnCppCheckReadData) -EVT_COMMAND(wxID_ANY, wxEVT_PROC_TERMINATED, CppCheckPlugin::OnCppCheckTerminated) -END_EVENT_TABLE() +extern "C" EXPORT int GetPluginInterfaceVersion() { return PLUGIN_INTERFACE_VERSION; } CppCheckPlugin::CppCheckPlugin(IManager* manager) : IPlugin(manager) @@ -98,6 +90,9 @@ { FileExtManager::Init(); + Bind(wxEVT_ASYNC_PROCESS_OUTPUT, &CppCheckPlugin::OnCppCheckReadData, this); + Bind(wxEVT_ASYNC_PROCESS_TERMINATED, &CppCheckPlugin::OnCppCheckTerminated, this); + m_longName = _("CppCheck integration for CodeLite IDE"); m_shortName = wxT("CppCheck"); @@ -147,12 +142,10 @@ m_view = new CppCheckReportPage(m_mgr->GetOutputPaneNotebook(), m_mgr, this); // wxBookCtrlBase *book = m_mgr->GetOutputPaneNotebook(); - m_mgr->GetOutputPaneNotebook()->AddPage(m_view, wxT("CppCheck"), false, LoadBitmapFile(wxT("cppcheck.png"))); + m_mgr->GetOutputPaneNotebook()->AddPage(m_view, _("CppCheck"), false, LoadBitmapFile(wxT("cppcheck.png"))); } -CppCheckPlugin::~CppCheckPlugin() -{ -} +CppCheckPlugin::~CppCheckPlugin() {} clToolBar* CppCheckPlugin::CreateToolBar(wxWindow* parent) { @@ -194,6 +187,9 @@ void CppCheckPlugin::UnPlug() { + Unbind(wxEVT_ASYNC_PROCESS_OUTPUT, &CppCheckPlugin::OnCppCheckReadData, this); + Unbind(wxEVT_ASYNC_PROCESS_TERMINATED, &CppCheckPlugin::OnCppCheckTerminated, this); + m_mgr->GetTheApp()->Disconnect(XRCID("cppcheck_settings_item"), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(CppCheckPlugin::OnSettingsItem), @@ -318,7 +314,7 @@ if(editor) { wxString projectName = editor->GetProjectName(); if(!projectName.IsEmpty()) { - proj = WorkspaceST::Get()->GetProject(projectName); + proj = clCxxWorkspaceST::Get()->GetProject(projectName); } m_filelist.Add(editor->GetFileName().GetFullPath()); } @@ -429,25 +425,18 @@ DoStartTest(proj); } -void CppCheckPlugin::OnCppCheckTerminated(wxCommandEvent& e) +void CppCheckPlugin::OnCppCheckTerminated(clProcessEvent& e) { m_filelist.Clear(); - ProcessEventData* ped = (ProcessEventData*)e.GetClientData(); - delete ped; - - if(m_cppcheckProcess) - delete m_cppcheckProcess; + if(m_cppcheckProcess) delete m_cppcheckProcess; m_cppcheckProcess = NULL; m_view->PrintStatusMessage(); m_view->GotoFirstError(); } -void CppCheckPlugin::OnSettingsItem(wxCommandEvent& WXUNUSED(e)) -{ - DoSettingsItem(); -} +void CppCheckPlugin::OnSettingsItem(wxCommandEvent& WXUNUSED(e)) { DoSettingsItem(); } void CppCheckPlugin::OnSettingsItemProject(wxCommandEvent& WXUNUSED(e)) { @@ -510,7 +499,7 @@ { wxString command = DoGetCommand(proj); m_view->AppendLine(wxString::Format(_("Starting cppcheck: %s\n"), command.c_str())); - + #ifdef __WXMSW__ // Under Windows, we set the working directory to the binary folder // so the configurtion files can be found @@ -625,8 +614,7 @@ ::WrapWithQuotes(path); wxString fileList = DoGenerateFileList(); - if(fileList.IsEmpty()) - return wxT(""); + if(fileList.IsEmpty()) return wxT(""); // build the command cmd << path << " "; @@ -649,7 +637,8 @@ } cmd << wxT(" --file-list="); - cmd << wxT("\"") << fileList << wxT("\""); + ::WrapWithQuotes(fileList); + cmd << fileList << " "; CL_DEBUG("cppcheck command: %s", cmd); ::WrapInShell(cmd); return cmd; @@ -658,7 +647,7 @@ wxString CppCheckPlugin::DoGenerateFileList() { // create temporary file and save the file there - wxFileName fnFileList(WorkspaceST::Get()->GetPrivateFolder(), "cppcheck.list"); + wxFileName fnFileList(clCxxWorkspaceST::Get()->GetPrivateFolder(), "cppcheck.list"); // create temporary file and save the file there wxFFile file(fnFileList.GetFullPath(), wxT("w+b")); @@ -680,13 +669,10 @@ return fnFileList.GetFullPath(); } -void CppCheckPlugin::OnCppCheckReadData(wxCommandEvent& e) +void CppCheckPlugin::OnCppCheckReadData(clProcessEvent& e) { e.Skip(); - ProcessEventData* ped = (ProcessEventData*)e.GetClientData(); - m_view->AppendLine(ped->GetData()); - - delete ped; + m_view->AppendLine(e.GetOutput()); } void CppCheckPlugin::OnEditorContextMenu(clContextMenuEvent& event) diff -Nru codelite-8.0.1+dfsg2/cppchecker/cppchecker.h codelite-9.0+dfsg/cppchecker/cppchecker.h --- codelite-8.0.1+dfsg2/cppchecker/cppchecker.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/cppchecker/cppchecker.h 2015-10-11 13:56:07.000000000 +0000 @@ -96,13 +96,13 @@ * @brief handles the cppcheck process termination * @param e */ - void OnCppCheckTerminated(wxCommandEvent& e); + void OnCppCheckTerminated(clProcessEvent& e); /** * @brief there is data to read from the process * @param e */ - void OnCppCheckReadData(wxCommandEvent& e); + void OnCppCheckReadData(clProcessEvent& e); /** * @brief handle the workspace closed event and clear the view @@ -152,8 +152,6 @@ * @return value between 0-100 */ size_t GetProgress(); - - DECLARE_EVENT_TABLE() }; #endif // CppChecker diff -Nru codelite-8.0.1+dfsg2/cppchecker/cppcheckreportbasepage.cpp codelite-9.0+dfsg/cppchecker/cppcheckreportbasepage.cpp --- codelite-8.0.1+dfsg2/cppchecker/cppcheckreportbasepage.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/cppchecker/cppcheckreportbasepage.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -101,11 +101,12 @@ bSizer4->Add(m_buttonDown, 0, wxALL|wxEXPAND, 5); + SetName(wxT("CppCheckReportBasePage")); SetSizeHints(482,238); if ( GetSizer() ) { GetSizer()->Fit(this); } - Centre(wxBOTH); + CentreOnParent(wxBOTH); // Connect events m_stc->Connect(wxEVT_STC_STYLENEEDED, wxStyledTextEventHandler(CppCheckReportBasePage::OnStyleNeeded), NULL, this); m_stc->Connect(wxEVT_STC_DOUBLECLICK, wxStyledTextEventHandler(CppCheckReportBasePage::OnOpenFile), NULL, this); diff -Nru codelite-8.0.1+dfsg2/cppchecker/cppcheckreportbasepage_cppchecker_bitmaps.cpp codelite-9.0+dfsg/cppchecker/cppcheckreportbasepage_cppchecker_bitmaps.cpp --- codelite-8.0.1+dfsg2/cppchecker/cppcheckreportbasepage_cppchecker_bitmaps.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/cppchecker/cppcheckreportbasepage_cppchecker_bitmaps.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,48 +1,47 @@ -// -// This file was automatically generated by wxrc, do not edit by hand. -// - -#include - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#include -#include -#include -#include - -#if wxCHECK_VERSION(2,8,5) && wxABI_VERSION >= 20805 - #define XRC_ADD_FILE(name, data, size, mime) \ - wxMemoryFSHandler::AddFileWithMimeType(name, data, size, mime) -#else - #define XRC_ADD_FILE(name, data, size, mime) \ - wxMemoryFSHandler::AddFile(name, data, size) -#endif - -static size_t xml_res_size_0 = 108; -static unsigned char xml_res_file_0[] = { -60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, -110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, -115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, -47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, -47,119,120,120,114,99,34,32,118,101,114,115,105,111,110,61,34,50,46,51, -46,48,46,49,34,47,62,10}; - -void wxCBCB5InitBitmapResources() -{ - - // Check for memory FS. If not present, load the handler: - { - wxMemoryFSHandler::AddFile(wxT("XRC_resource/dummy_file"), wxT("dummy one")); - wxFileSystem fsys; - wxFSFile *f = fsys.OpenFile(wxT("memory:XRC_resource/dummy_file")); - wxMemoryFSHandler::RemoveFile(wxT("XRC_resource/dummy_file")); - if (f) delete f; - else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase); - } - - XRC_ADD_FILE(wxT("XRC_resource/cppcheckreportbasepage_cppchecker_bitmaps.cpp$_home_eran_devl_codelite_cppchecker_cppcheckreportbasepage_cppchecker_bitmaps.xrc"), xml_res_file_0, xml_res_size_0, wxT("text/xml")); - wxXmlResource::Get()->Load(wxT("memory:XRC_resource/cppcheckreportbasepage_cppchecker_bitmaps.cpp$_home_eran_devl_codelite_cppchecker_cppcheckreportbasepage_cppchecker_bitmaps.xrc")); -} +// +// This file was automatically generated by wxrc, do not edit by hand. +// + +#include + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +#include +#include +#include +#include + +#if wxCHECK_VERSION(2,8,5) && wxABI_VERSION >= 20805 + #define XRC_ADD_FILE(name, data, size, mime) \ + wxMemoryFSHandler::AddFileWithMimeType(name, data, size, mime) +#else + #define XRC_ADD_FILE(name, data, size, mime) \ + wxMemoryFSHandler::AddFile(name, data, size) +#endif + +static size_t xml_res_size_0 = 90; +static unsigned char xml_res_file_0[] = { +60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, +110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, +115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, +47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, +47,119,120,120,114,99,34,47,62,10}; + +void wxCBCB5InitBitmapResources() +{ + + // Check for memory FS. If not present, load the handler: + { + wxMemoryFSHandler::AddFile(wxT("XRC_resource/dummy_file"), wxT("dummy one")); + wxFileSystem fsys; + wxFSFile *f = fsys.OpenFile(wxT("memory:XRC_resource/dummy_file")); + wxMemoryFSHandler::RemoveFile(wxT("XRC_resource/dummy_file")); + if (f) delete f; + else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase); + } + + XRC_ADD_FILE(wxT("XRC_resource/cppcheckreportbasepage_cppchecker_bitmaps.cpp$C__src_codelite_cppchecker_cppcheckreportbasepage_cppchecker_bitmaps.xrc"), xml_res_file_0, xml_res_size_0, wxT("text/xml")); + wxXmlResource::Get()->Load(wxT("memory:XRC_resource/cppcheckreportbasepage_cppchecker_bitmaps.cpp$C__src_codelite_cppchecker_cppcheckreportbasepage_cppchecker_bitmaps.xrc")); +} diff -Nru codelite-8.0.1+dfsg2/cppchecker/cppcheckreportbasepage.h codelite-9.0+dfsg/cppchecker/cppcheckreportbasepage.h --- codelite-8.0.1+dfsg2/cppchecker/cppcheckreportbasepage.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/cppchecker/cppcheckreportbasepage.h 2015-10-11 13:56:07.000000000 +0000 @@ -4,8 +4,8 @@ // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// -#ifndef CPPCHECKREPORTBASEPAGE_BASE_CLASSES_H -#define CPPCHECKREPORTBASEPAGE_BASE_CLASSES_H +#ifndef CODELITE_CPPCHECKER_CPPCHECKREPORTBASEPAGE_BASE_CLASSES_H +#define CODELITE_CPPCHECKER_CPPCHECKREPORTBASEPAGE_BASE_CLASSES_H #include #include @@ -16,6 +16,12 @@ #include #include #include +#if wxVERSION_NUMBER >= 2900 +#include +#include +#include +#include +#endif class CppCheckReportBasePage : public wxPanel { @@ -40,6 +46,12 @@ virtual void OnDownUI(wxUpdateUIEvent& event) { event.Skip(); } public: + wxStyledTextCtrl* GetStc() { return m_stc; } + wxButton* GetButtonClear() { return m_buttonClear; } + wxButton* GetButtonStop() { return m_buttonStop; } + wxStaticLine* GetStaticLine10() { return m_staticLine10; } + wxButton* GetButtonUp() { return m_buttonUp; } + wxButton* GetButtonDown() { return m_buttonDown; } CppCheckReportBasePage(wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(482,238), long style = wxTAB_TRAVERSAL); virtual ~CppCheckReportBasePage(); }; diff -Nru codelite-8.0.1+dfsg2/cppchecker/cppcheckreportbasepage.wxcp codelite-9.0+dfsg/cppchecker/cppcheckreportbasepage.wxcp --- codelite-8.0.1+dfsg2/cppchecker/cppcheckreportbasepage.wxcp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/cppchecker/cppcheckreportbasepage.wxcp 2015-10-11 13:56:07.000000000 +0000 @@ -108,6 +108,10 @@ "m_sizerFlags": [], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer5" }, { @@ -131,6 +135,10 @@ "m_sizerFlags": ["wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "mainSizer" }, { @@ -154,6 +162,10 @@ "m_sizerFlags": ["wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer41" }, { @@ -311,6 +323,10 @@ "m_sizerFlags": ["wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer4" }, { diff -Nru codelite-8.0.1+dfsg2/cppchecker/cppchecksettingsdlgbase.cpp codelite-9.0+dfsg/cppchecker/cppchecksettingsdlgbase.cpp --- codelite-8.0.1+dfsg2/cppchecker/cppchecksettingsdlgbase.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/cppchecker/cppchecksettingsdlgbase.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -342,6 +342,8 @@ #if wxVERSION_NUMBER >= 2900 if(!wxPersistenceManager::Get().Find(m_notebook1)){ wxPersistenceManager::Get().RegisterAndRestore(m_notebook1); + } else { + wxPersistenceManager::Get().Restore(m_notebook1); } #endif @@ -354,6 +356,8 @@ #if wxVERSION_NUMBER >= 2900 if(!wxPersistenceManager::Get().Find(this)) { wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); } #endif // Connect events @@ -492,6 +496,8 @@ #if wxVERSION_NUMBER >= 2900 if(!wxPersistenceManager::Get().Find(this)) { wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); } #endif // Connect events diff -Nru codelite-8.0.1+dfsg2/cppchecker/cppchecksettingsdlgbase.h codelite-9.0+dfsg/cppchecker/cppchecksettingsdlgbase.h --- codelite-8.0.1+dfsg2/cppchecker/cppchecksettingsdlgbase.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/cppchecker/cppchecksettingsdlgbase.h 2015-10-11 13:56:07.000000000 +0000 @@ -4,8 +4,8 @@ // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// -#ifndef CPPCHECKSETTINGSDLG_BASE_CLASSES_H -#define CPPCHECKSETTINGSDLG_BASE_CLASSES_H +#ifndef CODELITE_CPPCHECKER_CPPCHECKSETTINGSDLG_BASE_CLASSES_H +#define CODELITE_CPPCHECKER_CPPCHECKSETTINGSDLG_BASE_CLASSES_H #include #include diff -Nru codelite-8.0.1+dfsg2/cscope/CMakeLists.txt codelite-9.0+dfsg/cscope/CMakeLists.txt --- codelite-8.0.1+dfsg2/cscope/CMakeLists.txt 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/cscope/CMakeLists.txt 2015-10-11 13:56:07.000000000 +0000 @@ -35,12 +35,6 @@ add_definitions(-fPIC) endif() - -# Add RPATH -if (UNIX) -set (LINKER_OPTIONS -Wl,-rpath,"${PLUGINS_DIR}") -endif (UNIX) - FILE(GLOB SRCS "*.cpp") # Define the output @@ -53,7 +47,5 @@ ${wxWidgets_LIBRARIES} libcodelite plugin - wxsqlite3 - sqlite3lib ) CL_INSTALL_PLUGIN(${PLUGIN_NAME}) diff -Nru codelite-8.0.1+dfsg2/cscope/cscope.cpp codelite-9.0+dfsg/cscope/cscope.cpp --- codelite-8.0.1+dfsg2/cscope/cscope.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/cscope/cscope.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -48,7 +48,7 @@ static Cscope* thePlugin = NULL; -static const wxString CSCOPE_NAME = wxT("CScope"); +static const wxString CSCOPE_NAME = _("CScope"); // Define the plugin entry point extern "C" EXPORT IPlugin* CreatePlugin(IManager* manager) @@ -453,7 +453,7 @@ m_mgr->GetConfigTool()->ReadObject(wxT("CscopeSettings"), &settings); // create temporary file and save the file there - wxString privateFolder = WorkspaceST::Get()->GetPrivateFolder(); + wxString privateFolder = clCxxWorkspaceST::Get()->GetPrivateFolder(); wxFileName list_file(privateFolder, "cscope_file.list"); if(force || settings.GetRebuildOption() || !list_file.FileExists()) { wxArrayString projects; @@ -555,7 +555,7 @@ req->SetCmd(command); req->SetEndMsg(endMsg); req->SetFindWhat(findWhat); - req->SetWorkingDir(WorkspaceST::Get()->GetPrivateFolder()); + req->SetWorkingDir(clCxxWorkspaceST::Get()->GetPrivateFolder()); CScopeThreadST::Get()->Add(req); } diff -Nru codelite-8.0.1+dfsg2/cscope/CscopeTabBase.cpp codelite-9.0+dfsg/cscope/CscopeTabBase.cpp --- codelite-8.0.1+dfsg2/cscope/CscopeTabBase.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/cscope/CscopeTabBase.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -151,8 +151,9 @@ flexGridSizer18->Add(m_staticText20, 0, wxALL|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5); - m_filePickerCScopeExe = new wxFilePickerCtrl(this, wxID_ANY, wxEmptyString, _("Select a file"), wxT("*"), wxDefaultPosition, wxSize(-1,-1), wxFLP_DEFAULT_STYLE); + m_filePickerCScopeExe = new wxFilePickerCtrl(this, wxID_ANY, wxEmptyString, _("Select a file"), wxT("*"), wxDefaultPosition, wxSize(-1,-1), wxFLP_USE_TEXTCTRL|wxFLP_SMALL); m_filePickerCScopeExe->SetToolTip(_("Set the path to cscope executable")); + m_filePickerCScopeExe->SetFocus(); flexGridSizer18->Add(m_filePickerCScopeExe, 0, wxALL|wxEXPAND, 5); @@ -175,7 +176,11 @@ } CentreOnParent(wxBOTH); #if wxVERSION_NUMBER >= 2900 - wxPersistenceManager::Get().RegisterAndRestore(this); + if(!wxPersistenceManager::Get().Find(this)) { + wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); + } #endif } diff -Nru codelite-8.0.1+dfsg2/cscope/CscopeTabBase_cscope_bitmaps.cpp codelite-9.0+dfsg/cscope/CscopeTabBase_cscope_bitmaps.cpp --- codelite-8.0.1+dfsg2/cscope/CscopeTabBase_cscope_bitmaps.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/cscope/CscopeTabBase_cscope_bitmaps.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,47 +1,47 @@ -// -// This file was automatically generated by wxrc, do not edit by hand. -// - -#include - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#include -#include -#include -#include - -#if wxCHECK_VERSION(2,8,5) && wxABI_VERSION >= 20805 - #define XRC_ADD_FILE(name, data, size, mime) \ - wxMemoryFSHandler::AddFileWithMimeType(name, data, size, mime) -#else - #define XRC_ADD_FILE(name, data, size, mime) \ - wxMemoryFSHandler::AddFile(name, data, size) -#endif - -static size_t xml_res_size_0 = 90; -static unsigned char xml_res_file_0[] = { -60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, -110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, -115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, -47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, -47,119,120,120,114,99,34,47,62,10}; - -void wxC59CAInitBitmapResources() -{ - - // Check for memory FS. If not present, load the handler: - { - wxMemoryFSHandler::AddFile(wxT("XRC_resource/dummy_file"), wxT("dummy one")); - wxFileSystem fsys; - wxFSFile *f = fsys.OpenFile(wxT("memory:XRC_resource/dummy_file")); - wxMemoryFSHandler::RemoveFile(wxT("XRC_resource/dummy_file")); - if (f) delete f; - else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase); - } - - XRC_ADD_FILE(wxT("XRC_resource/CscopeTabBase_cscope_bitmaps.cpp$_home_david_devel_git_CL_cscope_CscopeTabBase_cscope_bitmaps.xrc"), xml_res_file_0, xml_res_size_0, wxT("text/xml")); - wxXmlResource::Get()->Load(wxT("memory:XRC_resource/CscopeTabBase_cscope_bitmaps.cpp$_home_david_devel_git_CL_cscope_CscopeTabBase_cscope_bitmaps.xrc")); -} +// +// This file was automatically generated by wxrc, do not edit by hand. +// + +#include + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +#include +#include +#include +#include + +#if wxCHECK_VERSION(2,8,5) && wxABI_VERSION >= 20805 + #define XRC_ADD_FILE(name, data, size, mime) \ + wxMemoryFSHandler::AddFileWithMimeType(name, data, size, mime) +#else + #define XRC_ADD_FILE(name, data, size, mime) \ + wxMemoryFSHandler::AddFile(name, data, size) +#endif + +static size_t xml_res_size_0 = 90; +static unsigned char xml_res_file_0[] = { +60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, +110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, +115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, +47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, +47,119,120,120,114,99,34,47,62,10}; + +void wxC59CAInitBitmapResources() +{ + + // Check for memory FS. If not present, load the handler: + { + wxMemoryFSHandler::AddFile(wxT("XRC_resource/dummy_file"), wxT("dummy one")); + wxFileSystem fsys; + wxFSFile *f = fsys.OpenFile(wxT("memory:XRC_resource/dummy_file")); + wxMemoryFSHandler::RemoveFile(wxT("XRC_resource/dummy_file")); + if (f) delete f; + else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase); + } + + XRC_ADD_FILE(wxT("XRC_resource/CscopeTabBase_cscope_bitmaps.cpp$C__src_codelite_cscope_CscopeTabBase_cscope_bitmaps.xrc"), xml_res_file_0, xml_res_size_0, wxT("text/xml")); + wxXmlResource::Get()->Load(wxT("memory:XRC_resource/CscopeTabBase_cscope_bitmaps.cpp$C__src_codelite_cscope_CscopeTabBase_cscope_bitmaps.xrc")); +} diff -Nru codelite-8.0.1+dfsg2/cscope/CscopeTabBase.h codelite-9.0+dfsg/cscope/CscopeTabBase.h --- codelite-8.0.1+dfsg2/cscope/CscopeTabBase.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/cscope/CscopeTabBase.h 2015-10-11 13:56:07.000000000 +0000 @@ -4,8 +4,8 @@ // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// -#ifndef CSCOPETABBASE_BASE_CLASSES_H -#define CSCOPETABBASE_BASE_CLASSES_H +#ifndef CODELITE_CSCOPE_CSCOPETABBASE_BASE_CLASSES_H +#define CODELITE_CSCOPE_CSCOPETABBASE_BASE_CLASSES_H #include #include diff -Nru codelite-8.0.1+dfsg2/cscope/CscopeTabBase.wxcp codelite-9.0+dfsg/cscope/CscopeTabBase.wxcp --- codelite-8.0.1+dfsg2/cscope/CscopeTabBase.wxcp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/cscope/CscopeTabBase.wxcp 2015-10-11 13:56:07.000000000 +0000 @@ -1387,7 +1387,7 @@ "border": 5, "gbSpan": "1,1", "gbPosition": "0,0", - "m_styles": ["wxFLP_DEFAULT_STYLE"], + "m_styles": ["wxFLP_USE_TEXTCTRL", "wxFLP_SMALL"], "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "winid", @@ -1432,7 +1432,7 @@ }, { "type": "bool", "m_label": "Focused", - "m_value": false + "m_value": true }, { "type": "string", "m_label": "Class Name:", diff -Nru codelite-8.0.1+dfsg2/cscope/cscopetab.cpp codelite-9.0+dfsg/cscope/cscopetab.cpp --- codelite-8.0.1+dfsg2/cscope/cscopetab.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/cscope/cscopetab.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -147,7 +147,7 @@ { CscopeTabClientData *data = dynamic_cast(m_dataviewModel->GetClientObject(item)); if (data) { - wxString wsp_path = WorkspaceST::Get()->GetPrivateFolder(); + wxString wsp_path = clCxxWorkspaceST::Get()->GetPrivateFolder(); //a single entry was activated, open the file //convert the file path to absolut path. We do it here, to improve performance wxFileName fn(data->GetEntry().GetFile()); @@ -199,9 +199,12 @@ void CscopeTab::OnChangeSearchScope(wxCommandEvent& e) { CScopeConfData data; + m_mgr->GetConfigTool()->ReadObject(wxT("CscopeSettings"), &data); + // update the settings data.SetScanScope(m_stringManager.GetStringSelection()); data.SetRebuildDbOption(m_checkBoxUpdateDb->IsChecked()); data.SetBuildRevertedIndexOption(m_checkBoxRevertedIndex->IsChecked()); + // store the object m_mgr->GetConfigTool()->WriteObject(wxT("CscopeSettings"), &data); } diff -Nru codelite-8.0.1+dfsg2/DatabaseExplorer/CMakeLists.txt codelite-9.0+dfsg/DatabaseExplorer/CMakeLists.txt --- codelite-8.0.1+dfsg2/DatabaseExplorer/CMakeLists.txt 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/DatabaseExplorer/CMakeLists.txt 2015-10-11 13:56:07.000000000 +0000 @@ -75,10 +75,6 @@ add_definitions(-DWXUSINGDLL_CL) add_definitions(-DWXUSINGDLL_SDK) add_definitions(-DDBL_USE_SQLITE) -# Add RPATH -if (UNIX) -set (LINKER_OPTIONS -Wl,-rpath,"${PLUGINS_DIR}") -endif (UNIX) FILE(GLOB SRCS "*.cpp") @@ -100,8 +96,6 @@ ${GTK_LIBS} libcodelite plugin - wxsqlite3 - sqlite3lib wxshapeframework databaselayersqlite ) diff -Nru codelite-8.0.1+dfsg2/DatabaseExplorer/databaseexplorer.cpp codelite-9.0+dfsg/DatabaseExplorer/databaseexplorer.cpp --- codelite-8.0.1+dfsg2/DatabaseExplorer/databaseexplorer.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/DatabaseExplorer/databaseexplorer.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -44,7 +44,7 @@ #include "PostgreSqlDbAdapter.h" #endif -#define DBE_VERSION _("0.5.2 Beta") +#define DBE_VERSION "0.5.2 Beta" static DatabaseExplorer* thePlugin = NULL; @@ -108,10 +108,11 @@ EventNotifier::Get()->Connect( wxEVT_TREE_ITEM_FILE_ACTIVATED, clCommandEventHandler(DatabaseExplorer::OnOpenWithDBE), NULL, this); + EventNotifier::Get()->Bind(wxEVT_SHOW_WORKSPACE_TAB, &DatabaseExplorer::OnToggleTab, this); if(IsDbViewDetached()) { DockablePane* cp = - new DockablePane(book->GetParent()->GetParent(), book, wxT("DbExplorer"), wxNullBitmap, wxSize(200, 200)); + new DockablePane(book->GetParent()->GetParent(), book, _("DbExplorer"), wxNullBitmap, wxSize(200, 200)); m_dbViewerPanel = new DbViewerPanel(cp, editorBook, m_mgr); cp->SetChildNoReparent(m_dbViewerPanel); @@ -120,10 +121,11 @@ m_dbViewerPanel = new DbViewerPanel(book, editorBook, m_mgr); // size_t index = GetSettings().GetSvnTabIndex(); // if(index == Notebook::npos) - book->AddPage(m_dbViewerPanel, wxT("DbExplorer"), false); + book->AddPage(m_dbViewerPanel, _("DbExplorer"), false); // else // book->InsertPage(index, m_dbViewerPanel, svnCONSOLE_TEXT, false); } + m_mgr->AddWorkspaceTab(_("DbExplorer")); // configure autolayout algorithns wxSFAutoLayout layout; @@ -146,43 +148,6 @@ { // Create the toolbar to be used by the plugin clToolBar* tb(NULL); - - /* - // You can use the below code a snippet: - // First, check that CodeLite allows plugin to register plugins - if (m_mgr->AllowToolbar()) { - // Support both toolbars icon size - int size = m_mgr->GetToolbarIconSize(); - - // Allocate new toolbar, which will be freed later by CodeLite - tb = new clToolBar(parent, wxID_ANY, wxDefaultPosition, wxDefaultSize, clTB_DEFAULT_STYLE); - - // Set the toolbar size - tb->SetToolBitmapSize(wxSize(size, size)); - - // Add tools to the plugins toolbar. You must provide 2 sets of icons: 24x24 and 16x16 - if (size == 24) { - tb->AddTool(XRCID("new_plugin"), wxT("New CodeLite Plugin Project"), - wxXmlResource::Get()->LoadBitmap(wxT("plugin24")), wxT("New Plugin Wizard...")); - tb->AddTool(XRCID("new_class"), wxT("Create New Class"), - wxXmlResource::Get()->LoadBitmap(wxT("class24")), wxT("New Class...")); - tb->AddTool(XRCID("new_wx_project"), wxT("New wxWidget Project"), - wxXmlResource::Get()->LoadBitmap(wxT("new_wx_project24")), wxT("New wxWidget Project")); - } else { - tb->AddTool(XRCID("new_plugin"), wxT("New CodeLite Plugin Project"), - wxXmlResource::Get()->LoadBitmap(wxT("plugin16")), wxT("New Plugin Wizard...")); - tb->AddTool(XRCID("new_class"), wxT("Create New Class"), - wxXmlResource::Get()->LoadBitmap(wxT("class16")), wxT("New Class...")); - tb->AddTool(XRCID("new_wx_project"), wxT("New wxWidget Project"), - wxXmlResource::Get()->LoadBitmap(wxT("new_wx_project16")), wxT("New wxWidget Project")); - } - // And finally, we must call 'Realize()' - tb->Realize(); - } - - // return the toolbar, it can be NULL if CodeLite does not allow plugins to register toolbars - // or in case the plugin simply does not require toolbar - */ return tb; } @@ -194,11 +159,6 @@ wxMenuItem* item(NULL); item = new wxMenuItem(menu, XRCID("dbe_about"), _("About..."), wxEmptyString, wxITEM_NORMAL); menu->Append(item); - // item = new wxMenuItem(menu, XRCID("new_class"), _("New Class Wizard..."), wxEmptyString, wxITEM_NORMAL); - // menu->Append(item); - // item = new wxMenuItem(menu, XRCID("new_wx_project"), _("New wxWidgets Project Wizard..."), wxEmptyString, - // wxITEM_NORMAL); - // menu->Append(item); pluginsMenu->Append(wxID_ANY, _("Database Explorer"), menu); m_mgr->GetTheApp()->Connect( XRCID("dbe_about"), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(DatabaseExplorer::OnAbout), NULL, this); @@ -212,9 +172,12 @@ void DatabaseExplorer::UnPlug() { - size_t index = m_mgr->GetWorkspacePaneNotebook()->GetPageIndex(m_dbViewerPanel); - if(index != Notebook::npos) { - m_mgr->GetWorkspacePaneNotebook()->RemovePage(index, false); + EventNotifier::Get()->Disconnect( + wxEVT_TREE_ITEM_FILE_ACTIVATED, clCommandEventHandler(DatabaseExplorer::OnOpenWithDBE), NULL, this); + EventNotifier::Get()->Unbind(wxEVT_SHOW_WORKSPACE_TAB, &DatabaseExplorer::OnToggleTab, this); + int index = m_mgr->GetWorkspacePaneNotebook()->GetPageIndex(m_dbViewerPanel); + if(index != wxNOT_FOUND) { + m_mgr->GetWorkspacePaneNotebook()->RemovePage(index); } wxDELETE(m_dbViewerPanel); } @@ -225,7 +188,7 @@ m_mgr->GetConfigTool()->ReadObject(wxT("DetachedPanesList"), &dpi); wxArrayString detachedPanes = dpi.GetPanes(); - return detachedPanes.Index(wxT("DbExplorer")) != wxNOT_FOUND; + return detachedPanes.Index(_("DbExplorer")) != wxNOT_FOUND; } void DatabaseExplorer::OnAbout(wxCommandEvent& e) @@ -306,3 +269,21 @@ } } } + +void DatabaseExplorer::OnToggleTab(clCommandEvent& event) +{ + if(event.GetString() != _("DbExplorer")) { + event.Skip(); + return; + } + + if(event.IsSelected()) { + // show it + m_mgr->GetWorkspacePaneNotebook()->InsertPage(0, m_dbViewerPanel, _("DbExplorer"), true); + } else { + int where = m_mgr->GetWorkspacePaneNotebook()->GetPageIndex(_("DbExplorer")); + if(where != wxNOT_FOUND) { + m_mgr->GetWorkspacePaneNotebook()->RemovePage(where); + } + } +} diff -Nru codelite-8.0.1+dfsg2/DatabaseExplorer/databaseexplorer.h codelite-9.0+dfsg/DatabaseExplorer/databaseexplorer.h --- codelite-8.0.1+dfsg2/DatabaseExplorer/databaseexplorer.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/DatabaseExplorer/databaseexplorer.h 2015-10-11 13:56:07.000000000 +0000 @@ -54,7 +54,7 @@ void OnOpenWithDBE(clCommandEvent& e); void DoOpenFile(const wxFileName& filename); void OnUpdateOpenWithDBE(wxUpdateUIEvent& e); - + void OnToggleTab(clCommandEvent& event); static DbViewerPanel* m_dbViewerPanel; }; diff -Nru codelite-8.0.1+dfsg2/DatabaseExplorer/DbViewerPanel.cpp codelite-9.0+dfsg/DatabaseExplorer/DbViewerPanel.cpp --- codelite-8.0.1+dfsg2/DatabaseExplorer/DbViewerPanel.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/DatabaseExplorer/DbViewerPanel.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -66,50 +66,48 @@ BitmapLoader* bmpLoader = pManager->GetStdIcons(); m_auibar->AddTool(XRCID("IDT_DBE_CONNECT"), - _("Open connection"), - bmpLoader->LoadBitmap(wxT("db-explorer/16/connect")), - wxNullBitmap, - wxITEM_NORMAL, - _("Open new connection"), - _("Open new connection"), - NULL); + _("Open connection"), + bmpLoader->LoadBitmap(wxT("db-explorer/16/connect")), + wxNullBitmap, + wxITEM_NORMAL, + _("Open new connection"), + _("Open new connection"), + NULL); m_auibar->AddTool(XRCID("IDT_DBE_CLOSE_CONNECTION"), - _("tool"), - bmpLoader->LoadBitmap(wxT("db-explorer/16/disconnect")), - wxNullBitmap, - wxITEM_NORMAL, - _("Close selected connection"), - _("Close selected connection"), - NULL); + _("tool"), + bmpLoader->LoadBitmap(wxT("db-explorer/16/disconnect")), + wxNullBitmap, + wxITEM_NORMAL, + _("Close selected connection"), + _("Close selected connection"), + NULL); m_auibar->AddTool(XRCID("IDT_DBE_REFRESH"), - _("tool"), - bmpLoader->LoadBitmap(wxT("db-explorer/16/database_refresh")), - wxNullBitmap, - wxITEM_NORMAL, - _("Refresh View"), - wxEmptyString, - NULL); + _("tool"), + bmpLoader->LoadBitmap(wxT("db-explorer/16/database_refresh")), + wxNullBitmap, + wxITEM_NORMAL, + _("Refresh View"), + wxEmptyString, + NULL); m_auibar->AddTool(XRCID("IDT_DBE_ERD"), - _("ERD"), - bmpLoader->LoadBitmap(wxT("db-explorer/16/table")), - wxNullBitmap, - wxITEM_NORMAL, - _("Open ERD View"), - wxEmptyString, - NULL); + _("ERD"), + bmpLoader->LoadBitmap(wxT("db-explorer/16/table")), + wxNullBitmap, + wxITEM_NORMAL, + _("Open ERD View"), + wxEmptyString, + NULL); m_auibar->AddTool(XRCID("IDT_DBE_PREVIEW"), - _("Show ERD Thumbnail"), - bmpLoader->LoadBitmap(wxT("db-explorer/16/thumbnail")), - _("Show ERD Thumbnail"), - wxITEM_CHECK); + _("Show ERD Thumbnail"), + bmpLoader->LoadBitmap(wxT("db-explorer/16/thumbnail")), + _("Show ERD Thumbnail"), + wxITEM_CHECK); m_auibar->Realize(); Layout(); - m_mgr->GetEditorPaneNotebook()->Connect( - wxEVT_COMMAND_BOOK_PAGE_CHANGED, NotebookEventHandler(DbViewerPanel::OnPageChanged), NULL, this); - m_mgr->GetEditorPaneNotebook()->Connect( - wxEVT_COMMAND_BOOK_PAGE_CLOSING, NotebookEventHandler(DbViewerPanel::OnPageClosing), NULL, this); + m_mgr->GetEditorPaneNotebook()->Bind(wxEVT_BOOK_PAGE_CHANGED, &DbViewerPanel::OnPageChanged, this); + m_mgr->GetEditorPaneNotebook()->Bind(wxEVT_BOOK_PAGE_CLOSING, &DbViewerPanel::OnPageClosing, this); this->Connect( XRCID("IDT_DBE_CONNECT"), wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler(DbViewerPanel::OnConnectClick)); @@ -132,10 +130,8 @@ DbViewerPanel::~DbViewerPanel() { wxDELETE(m_themeHelper); - m_mgr->GetEditorPaneNotebook()->Disconnect( - wxEVT_COMMAND_BOOK_PAGE_CHANGED, NotebookEventHandler(DbViewerPanel::OnPageChanged), NULL, this); - m_mgr->GetEditorPaneNotebook()->Disconnect( - wxEVT_COMMAND_BOOK_PAGE_CLOSING, NotebookEventHandler(DbViewerPanel::OnPageClosing), NULL, this); + m_mgr->GetEditorPaneNotebook()->Unbind(wxEVT_BOOK_PAGE_CHANGED, &DbViewerPanel::OnPageChanged, this); + m_mgr->GetEditorPaneNotebook()->Unbind(wxEVT_BOOK_PAGE_CLOSING, &DbViewerPanel::OnPageClosing, this); this->Disconnect( XRCID("IDT_DBE_CONNECT"), wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler(DbViewerPanel::OnConnectClick)); @@ -869,7 +865,7 @@ return false; } -void DbViewerPanel::OnPageChanged(NotebookEvent& event) +void DbViewerPanel::OnPageChanged(wxBookCtrlEvent& event) { if(!m_SuppressUpdate) { ErdPanel* pPanel = wxDynamicCast(m_mgr->GetPage(event.GetSelection()), ErdPanel); @@ -883,7 +879,7 @@ event.Skip(); } -void DbViewerPanel::OnPageClosing(NotebookEvent& event) +void DbViewerPanel::OnPageClosing(wxBookCtrlEvent& event) { m_SuppressUpdate = true; m_pThumbnail->SetCanvas(NULL); diff -Nru codelite-8.0.1+dfsg2/DatabaseExplorer/DbViewerPanel.h codelite-9.0+dfsg/DatabaseExplorer/DbViewerPanel.h --- codelite-8.0.1+dfsg2/DatabaseExplorer/DbViewerPanel.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/DatabaseExplorer/DbViewerPanel.h 2015-10-11 13:56:07.000000000 +0000 @@ -116,8 +116,8 @@ virtual void OnToolCloseUI(wxUpdateUIEvent& event); virtual void OnShowThumbnail(wxCommandEvent &e); - void OnPageClosing(NotebookEvent& event); - void OnPageChanged(NotebookEvent& event); + void OnPageClosing(wxBookCtrlEvent& event); + void OnPageChanged(wxBookCtrlEvent& event); void OnPopupClick(wxCommandEvent &evt); void RefreshDbView(); diff -Nru codelite-8.0.1+dfsg2/DatabaseExplorer/ErdPanel.cpp codelite-9.0+dfsg/DatabaseExplorer/ErdPanel.cpp --- codelite-8.0.1+dfsg2/DatabaseExplorer/ErdPanel.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/DatabaseExplorer/ErdPanel.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -34,382 +34,444 @@ ErdInfo::ErdInfo() { - m_adapterType = IDbAdapter::atUNKNOWN; - - XS_SERIALIZE_INT( m_adapterType, wxT("adapter_type") ); + m_adapterType = IDbAdapter::atUNKNOWN; + + XS_SERIALIZE_INT(m_adapterType, wxT("adapter_type")); } ErdInfo::ErdInfo(const ErdInfo& obj) { - m_adapterType = obj.m_adapterType; - - XS_SERIALIZE_INT( m_adapterType, wxT("adapter_type") ); + m_adapterType = obj.m_adapterType; + + XS_SERIALIZE_INT(m_adapterType, wxT("adapter_type")); } //////////////////////////////////////////////////////////////////////////////// -IMPLEMENT_DYNAMIC_CLASS(ErdPanel,_ErdPanel) +IMPLEMENT_DYNAMIC_CLASS(ErdPanel, _ErdPanel) BEGIN_EVENT_TABLE(ErdPanel, _ErdPanel) - EVT_TOOL(XRCID("IDT_OPEN"), ErdPanel::OnLoad) - EVT_TOOL(XRCID("IDT_SAVE"), ErdPanel::OnSave) - EVT_TOOL(XRCID("IDT_ERD_COMMIT"), ErdPanel::OnCommit) - EVT_TOOL(XRCID("IDT_ERD_SAVE_SQL"), ErdPanel::OnSaveSql) - EVT_TOOL(XRCID("IDT_ERD_SAVE_IMG"), ErdPanel::OnSaveImg) - EVT_TOOL(XRCID("IDT_ERD_ZOOM100"), ErdPanel::OnZoom100) - EVT_TOOL(XRCID("IDT_ERD_ZOOMALL"), ErdPanel::OnZoomAll) - EVT_TOOL(XRCID("IDT_PRINT"), ErdPanel::OnPrint) - EVT_TOOL(XRCID("IDT_PREVIEW"), ErdPanel::OnPreview) - EVT_TOOL(XRCID("IDT_COPY"), ErdPanel::OnCopy) - EVT_TOOL(XRCID("IDT_CUT"), ErdPanel::OnCut) - EVT_TOOL(XRCID("IDT_PASTE"), ErdPanel::OnPaste) - EVT_TOOL(XRCID("IDT_UNDO"), ErdPanel::OnUndo) - EVT_TOOL(XRCID("IDT_REDO"), ErdPanel::OnRedo) - EVT_TOOL(XRCID("IDT_SELECTALL"), ErdPanel::OnSelectAll) - EVT_TOOL(XRCID("IDT_ERD_ALIGN_CIRCLE"), ErdPanel::OnAlignCircle) - EVT_TOOL(XRCID("IDT_ERD_ALIGN_MESH"), ErdPanel::OnAlignMesh) - EVT_TOOL(XRCID("IDT_ERD_ALIGN_VTREE"), ErdPanel::OnAlignVTree) - EVT_TOOL(XRCID("IDT_ERD_ALIGN_HTREE"), ErdPanel::OnAlignHTree) - - EVT_UPDATE_UI(XRCID("IDT_COPY"), ErdPanel::OnUpdateCopy) - EVT_UPDATE_UI(XRCID("IDT_CUT"), ErdPanel::OnUpdateCut) - EVT_UPDATE_UI(XRCID("IDT_PASTE"), ErdPanel::OnUpdatePaste) - EVT_UPDATE_UI(XRCID("IDT_UNDO"), ErdPanel::OnUpdateUndo) - EVT_UPDATE_UI(XRCID("IDT_REDO"), ErdPanel::OnUpdateRedo) - // The following were originally EVT_*_RANGEs, but these won't work with XRCIDs in wx2.9 - // and only worked by chance in earlier versions: see http://trac.wxwidgets.org/ticket/11431 - EVT_TOOL(XRCID("IDT_ERD_TOOL"), ErdPanel::OnTool) - EVT_TOOL(XRCID("IDT_ERD_TABLE"), ErdPanel::OnTool) - EVT_TOOL(XRCID("IDT_ERD_LINE"), ErdPanel::OnTool) - EVT_TOOL(XRCID("IDT_ERD_VIEW"), ErdPanel::OnTool) - - EVT_UPDATE_UI(XRCID("IDT_ERD_TOOL"), ErdPanel::OnToolUpdate) - EVT_UPDATE_UI(XRCID("IDT_ERD_TABLE"), ErdPanel::OnToolUpdate) - EVT_UPDATE_UI(XRCID("IDT_ERD_LINE"), ErdPanel::OnToolUpdate) - EVT_UPDATE_UI(XRCID("IDT_ERD_VIEW"), ErdPanel::OnToolUpdate) - +EVT_TOOL(XRCID("IDT_OPEN"), ErdPanel::OnLoad) +EVT_TOOL(XRCID("IDT_SAVE"), ErdPanel::OnSave) +EVT_TOOL(XRCID("IDT_ERD_COMMIT"), ErdPanel::OnCommit) +EVT_TOOL(XRCID("IDT_ERD_SAVE_SQL"), ErdPanel::OnSaveSql) +EVT_TOOL(XRCID("IDT_ERD_SAVE_IMG"), ErdPanel::OnSaveImg) +EVT_TOOL(XRCID("IDT_ERD_ZOOM100"), ErdPanel::OnZoom100) +EVT_TOOL(XRCID("IDT_ERD_ZOOMALL"), ErdPanel::OnZoomAll) +EVT_TOOL(XRCID("IDT_PRINT"), ErdPanel::OnPrint) +EVT_TOOL(XRCID("IDT_PREVIEW"), ErdPanel::OnPreview) +EVT_TOOL(XRCID("IDT_COPY"), ErdPanel::OnCopy) +EVT_TOOL(XRCID("IDT_CUT"), ErdPanel::OnCut) +EVT_TOOL(XRCID("IDT_PASTE"), ErdPanel::OnPaste) +EVT_TOOL(XRCID("IDT_UNDO"), ErdPanel::OnUndo) +EVT_TOOL(XRCID("IDT_REDO"), ErdPanel::OnRedo) +EVT_TOOL(XRCID("IDT_SELECTALL"), ErdPanel::OnSelectAll) +EVT_TOOL(XRCID("IDT_ERD_ALIGN_CIRCLE"), ErdPanel::OnAlignCircle) +EVT_TOOL(XRCID("IDT_ERD_ALIGN_MESH"), ErdPanel::OnAlignMesh) +EVT_TOOL(XRCID("IDT_ERD_ALIGN_VTREE"), ErdPanel::OnAlignVTree) +EVT_TOOL(XRCID("IDT_ERD_ALIGN_HTREE"), ErdPanel::OnAlignHTree) + +EVT_UPDATE_UI(XRCID("IDT_COPY"), ErdPanel::OnUpdateCopy) +EVT_UPDATE_UI(XRCID("IDT_CUT"), ErdPanel::OnUpdateCut) +EVT_UPDATE_UI(XRCID("IDT_PASTE"), ErdPanel::OnUpdatePaste) +EVT_UPDATE_UI(XRCID("IDT_UNDO"), ErdPanel::OnUpdateUndo) +EVT_UPDATE_UI(XRCID("IDT_REDO"), ErdPanel::OnUpdateRedo) +// The following were originally EVT_*_RANGEs, but these won't work with XRCIDs in wx2.9 +// and only worked by chance in earlier versions: see http://trac.wxwidgets.org/ticket/11431 +EVT_TOOL(XRCID("IDT_ERD_TOOL"), ErdPanel::OnTool) +EVT_TOOL(XRCID("IDT_ERD_TABLE"), ErdPanel::OnTool) +EVT_TOOL(XRCID("IDT_ERD_LINE"), ErdPanel::OnTool) +EVT_TOOL(XRCID("IDT_ERD_VIEW"), ErdPanel::OnTool) + +EVT_UPDATE_UI(XRCID("IDT_ERD_TOOL"), ErdPanel::OnToolUpdate) +EVT_UPDATE_UI(XRCID("IDT_ERD_TABLE"), ErdPanel::OnToolUpdate) +EVT_UPDATE_UI(XRCID("IDT_ERD_LINE"), ErdPanel::OnToolUpdate) +EVT_UPDATE_UI(XRCID("IDT_ERD_VIEW"), ErdPanel::OnToolUpdate) + END_EVENT_TABLE() -ErdPanel::ErdPanel():_ErdPanel(NULL) { +ErdPanel::ErdPanel() + : _ErdPanel(NULL) +{ +} + +ErdPanel::ErdPanel(wxWindow* parent, IDbAdapter* dbAdapter, xsSerializable* pConnections) + : _ErdPanel(parent) +{ + m_pErdTable = NULL; + m_pDbAdapter = dbAdapter; + m_pConnections = pConnections; + Init(parent, dbAdapter); +} + +ErdPanel::ErdPanel(wxWindow* parent, IDbAdapter* dbAdapter, xsSerializable* pConnections, Table* pTable) + : _ErdPanel(parent) +{ + m_pErdTable = NULL; + m_pDbAdapter = dbAdapter; + m_pConnections = pConnections; + Init(parent, dbAdapter); + if(pTable) { + ErdTable* pErdTab = new ErdTable(pTable); + m_diagramManager.AddShape(pErdTab, NULL, wxPoint(10, 10), sfINITIALIZE, sfDONT_SAVE_STATE); + pErdTab->UpdateColumns(); + } +} + +ErdPanel::ErdPanel(wxWindow* parent, IDbAdapter* dbAdapter, xsSerializable* pConnections, xsSerializable* pItems) + : _ErdPanel(parent) +{ + m_pErdTable = NULL; + m_pDbAdapter = dbAdapter; + m_pConnections = pConnections; + Init(parent, dbAdapter); + int i = 10; + SerializableList::compatibility_iterator node = pItems->GetFirstChildNode(); + while(node) { + Table* pTable = wxDynamicCast(node->GetData(), Table); + if(pTable) { + ErdTable* pErdTab = new ErdTable(pTable); + m_diagramManager.AddShape(pErdTab, NULL, wxPoint(i, 10), sfINITIALIZE, sfDONT_SAVE_STATE); + i += 200; + pErdTab->UpdateColumns(); + } + View* pView = wxDynamicCast(node->GetData(), View); + if(pView) { + ErdView* pErdView = new ErdView(pView); + m_diagramManager.AddShape(pErdView, NULL, wxPoint(i, 10), sfINITIALIZE, sfDONT_SAVE_STATE); + i += 200; + pErdView->UpdateView(); + } + node = node->GetNext(); + } + m_pFrameCanvas->UpdateERD(); + m_pFrameCanvas->UpdateVirtualSize(); +} + +ErdPanel::~ErdPanel() { delete m_pDbAdapter; } + +void ErdPanel::Init(wxWindow* parent, IDbAdapter* dbAdapter) +{ + + SetExtraStyle(wxWS_EX_BLOCK_EVENTS); + + ErdInfo* pInfo = new ErdInfo(); + pInfo->SetAdapterType(m_pDbAdapter->GetAdapterType()); + m_diagramManager.SetRootItem(pInfo); + + m_pFrameCanvas = new FrameCanvas(&m_diagramManager, dbAdapter, m_wxsfPanel, this, wxID_ANY); + m_wxsfPanel->GetSizer()->Add(m_pFrameCanvas, 1, wxEXPAND, 2); + m_wxsfPanel->Layout(); + + m_nToolMode = modeDESIGN; + + BitmapLoader* bmpLoader = DatabaseExplorer::GetManager()->GetStdIcons(); + + // m_toolBarErd->SetToolBitmapSize(wxSize(16, 16)); + m_toolBarErd->AddTool( + XRCID("IDT_OPEN"), _("Open"), bmpLoader->LoadBitmap(wxT("toolbars/16/standard/file_open")), _("Open diagram")); + m_toolBarErd->AddTool( + XRCID("IDT_SAVE"), _("Save"), bmpLoader->LoadBitmap(wxT("toolbars/16/standard/file_save")), _("Save diagram")); + m_toolBarErd->AddTool(XRCID("IDT_ERD_SAVE_SQL"), _("Save SQL"), wxBitmap(export_sql_xpm), _("Save SQL")); + m_toolBarErd->AddTool(XRCID("IDT_ERD_COMMIT"), _("Commit ERD"), wxBitmap(export_db_xpm), _("Commit ERD")); + m_toolBarErd->AddTool( + XRCID("IDT_ERD_SAVE_IMG"), _("Export canvas to image"), wxBitmap(export_img_xpm), _("Export canvas to image")); + m_toolBarErd->AddSeparator(); + m_toolBarErd->AddTool(XRCID("IDT_PRINT"), _("Print"), wxBitmap(fileprint_xpm), _("Print diagram")); + m_toolBarErd->AddTool(XRCID("IDT_PREVIEW"), _("Preview"), wxBitmap(filepreview_xpm), _("Print preview")); + m_toolBarErd->AddSeparator(); + m_toolBarErd->AddTool( + XRCID("IDT_COPY"), _("Copy"), bmpLoader->LoadBitmap(wxT("toolbars/16/standard/copy")), _("Copy item")); + m_toolBarErd->AddTool( + XRCID("IDT_CUT"), _("Cut"), bmpLoader->LoadBitmap(wxT("toolbars/16/standard/cut")), _("Cut item")); + m_toolBarErd->AddTool( + XRCID("IDT_PASTE"), _("Paste"), bmpLoader->LoadBitmap(wxT("toolbars/16/standard/paste")), _("Paste item")); + m_toolBarErd->AddSeparator(); + m_toolBarErd->AddTool( + XRCID("IDT_UNDO"), _("Undo"), bmpLoader->LoadBitmap(wxT("toolbars/16/standard/undo")), _("Undo")); + m_toolBarErd->AddTool( + XRCID("IDT_REDO"), _("Redo"), bmpLoader->LoadBitmap(wxT("toolbars/16/standard/redo")), _("Redo")); + m_toolBarErd->AddSeparator(); + m_toolBarErd->AddTool(XRCID("IDT_ERD_TOOL"), + _("Tool"), + wxBitmap(Tool_xpm), + wxNullBitmap, + wxITEM_RADIO, + _("Design tool"), + _("Design tool"), + NULL); + m_toolBarErd->AddTool(XRCID("IDT_ERD_TABLE"), + _("DBETable"), + bmpLoader->LoadBitmap(wxT("db-explorer/16/table")), + wxNullBitmap, + wxITEM_RADIO, + _("Database table"), + _("Database table"), + NULL); + m_toolBarErd->AddTool(XRCID("IDT_ERD_VIEW"), + _("View"), + bmpLoader->LoadBitmap(wxT("toolbars/16/search/find")), + wxNullBitmap, + wxITEM_RADIO, + _("Database view"), + _("Database view"), + NULL); + m_toolBarErd->AddTool(XRCID("IDT_ERD_LINE"), + _("Constraint 1:N"), + wxXmlResource::Get()->LoadBitmap(wxT("link_editor")), + wxNullBitmap, + wxITEM_RADIO, + _("Foreign key connection"), + _("Foreign key connection"), + NULL); + m_toolBarErd->AddSeparator(); + m_toolBarErd->AddTool( + XRCID("IDT_ERD_ALIGN_CIRCLE"), _("Align into circle"), wxBitmap(AlignCircle_xpm), _("Align into circle")); + m_toolBarErd->AddTool( + XRCID("IDT_ERD_ALIGN_MESH"), _("Align into mesh"), wxBitmap(AlignMesh_xpm), _("Align into mesh")); + m_toolBarErd->AddTool(XRCID("IDT_ERD_ALIGN_VTREE"), + _("Align into vertical tree"), + wxBitmap(AlignVTree_xpm), + _("Align into vertical tree")); + m_toolBarErd->AddTool(XRCID("IDT_ERD_ALIGN_HTREE"), + _("Align into horizontal tree"), + wxBitmap(AlignHTree_xpm), + _("Align into horizontal tree")); + m_toolBarErd->AddSeparator(); + m_toolBarErd->AddTool(XRCID("IDT_ERD_ZOOM100"), _("Zoom 100%"), wxBitmap(Zoom100_xpm), _("Zoom 100%")); + m_toolBarErd->AddTool(XRCID("IDT_ERD_ZOOMALL"), _("Zoom to all"), wxBitmap(ZoomAll_xpm), _("Zoom to all")); + m_toolBarErd->Realize(); + + wxAcceleratorEntry entries[4]; + entries[0].Set(wxACCEL_CTRL, (int)'C', XRCID("IDT_COPY")); + entries[1].Set(wxACCEL_CTRL, (int)'X', XRCID("IDT_CUT")); + entries[2].Set(wxACCEL_CTRL, (int)'V', XRCID("IDT_PASTE")); + entries[3].Set(wxACCEL_CTRL, (int)'A', XRCID("IDT_SELECTALL")); + wxAcceleratorTable accel(4, entries); + SetAcceleratorTable(accel); +} + +void ErdPanel::OnTool(wxCommandEvent& event) +{ + if(event.GetId() == XRCID("IDT_ERD_TOOL")) + m_nToolMode = modeDESIGN; + else if(event.GetId() == XRCID("IDT_ERD_TABLE")) + m_nToolMode = modeTABLE; + else if(event.GetId() == XRCID("IDT_ERD_LINE")) + m_nToolMode = modeLine; + else if(event.GetId() == XRCID("IDT_ERD_VIEW")) + m_nToolMode = modeVIEW; +} + +void ErdPanel::OnToolUpdate(wxUpdateUIEvent& event) +{ + if(event.GetId() == XRCID("IDT_ERD_TOOL")) + event.Check(m_nToolMode == modeDESIGN); + else if(event.GetId() == XRCID("IDT_ERD_TABLE")) + event.Check(m_nToolMode == modeTABLE); + else if(event.GetId() == XRCID("IDT_ERD_LINE")) + event.Check(m_nToolMode == modeLine); + else if(event.GetId() == XRCID("IDT_ERD_VIEW")) + event.Check(m_nToolMode == modeVIEW); + else + event.Skip(); } -ErdPanel::ErdPanel(wxWindow *parent, IDbAdapter* dbAdapter, xsSerializable* pConnections):_ErdPanel(parent) { - m_pErdTable = NULL; - m_pDbAdapter = dbAdapter; - m_pConnections = pConnections; - Init(parent, dbAdapter); -} - -ErdPanel::ErdPanel(wxWindow* parent, IDbAdapter* dbAdapter, xsSerializable* pConnections, Table* pTable):_ErdPanel(parent) { - m_pErdTable = NULL; - m_pDbAdapter = dbAdapter; - m_pConnections = pConnections; - Init(parent, dbAdapter); - if (pTable) { - ErdTable* pErdTab = new ErdTable(pTable); - m_diagramManager.AddShape(pErdTab, NULL, wxPoint( 10,10), sfINITIALIZE, sfDONT_SAVE_STATE); - pErdTab->UpdateColumns(); - } -} - -ErdPanel::ErdPanel(wxWindow* parent, IDbAdapter* dbAdapter, xsSerializable* pConnections, xsSerializable* pItems):_ErdPanel(parent) { - m_pErdTable = NULL; - m_pDbAdapter = dbAdapter; - m_pConnections = pConnections; - Init(parent, dbAdapter); - int i = 10; - SerializableList::compatibility_iterator node = pItems->GetFirstChildNode(); - while( node ) { - Table* pTable = wxDynamicCast(node->GetData(), Table); - if( pTable ) { - ErdTable* pErdTab = new ErdTable(pTable); - m_diagramManager.AddShape(pErdTab, NULL, wxPoint( i ,10), sfINITIALIZE, sfDONT_SAVE_STATE); - i+= 200; - pErdTab->UpdateColumns(); - } - View* pView = wxDynamicCast(node->GetData(),View); - if (pView) { - ErdView* pErdView = new ErdView(pView); - m_diagramManager.AddShape(pErdView, NULL, wxPoint( i ,10), sfINITIALIZE, sfDONT_SAVE_STATE); - i+= 200; - pErdView->UpdateView(); - } - node = node->GetNext(); - } - m_pFrameCanvas->UpdateERD(); - m_pFrameCanvas->UpdateVirtualSize(); -} - -ErdPanel::~ErdPanel() { - delete m_pDbAdapter; -} - -void ErdPanel::Init(wxWindow* parent, IDbAdapter* dbAdapter) { - - SetExtraStyle( wxWS_EX_BLOCK_EVENTS ); - - ErdInfo *pInfo = new ErdInfo(); - pInfo->SetAdapterType( m_pDbAdapter->GetAdapterType() ); - m_diagramManager.SetRootItem( pInfo ); - - m_pFrameCanvas = new FrameCanvas(&m_diagramManager,dbAdapter,m_wxsfPanel,this, wxID_ANY); - m_wxsfPanel->GetSizer()->Add(m_pFrameCanvas, 1, wxEXPAND, 2); - m_wxsfPanel->Layout(); - - m_nToolMode = modeDESIGN; - - BitmapLoader *bmpLoader = DatabaseExplorer::GetManager()->GetStdIcons(); - -// m_toolBarErd->SetToolBitmapSize(wxSize(16, 16)); - m_toolBarErd->AddTool(XRCID("IDT_OPEN"), _("Open"), bmpLoader->LoadBitmap(wxT("toolbars/16/standard/file_open")), _("Open diagram")); - m_toolBarErd->AddTool(XRCID("IDT_SAVE"), _("Save"), bmpLoader->LoadBitmap(wxT("toolbars/16/standard/file_save")), _("Save diagram")); - m_toolBarErd->AddTool(XRCID("IDT_ERD_SAVE_SQL"), _("Save SQL"), wxBitmap(export_sql_xpm),_("Save SQL")); - m_toolBarErd->AddTool(XRCID("IDT_ERD_COMMIT"), _("Commit ERD"), wxBitmap(export_db_xpm),_("Commit ERD")); - m_toolBarErd->AddTool(XRCID("IDT_ERD_SAVE_IMG"), _("Export canvas to image"), wxBitmap(export_img_xpm),_("Export canvas to image")); - m_toolBarErd->AddSeparator(); - m_toolBarErd->AddTool(XRCID("IDT_PRINT"), _("Print"), wxBitmap(fileprint_xpm), _("Print diagram")); - m_toolBarErd->AddTool(XRCID("IDT_PREVIEW"), _("Preview"), wxBitmap(filepreview_xpm), _("Print preview")); - m_toolBarErd->AddSeparator(); - m_toolBarErd->AddTool(XRCID("IDT_COPY"), _("Copy"), bmpLoader->LoadBitmap(wxT("toolbars/16/standard/copy")), _("Copy item")); - m_toolBarErd->AddTool(XRCID("IDT_CUT"), _("Cut"), bmpLoader->LoadBitmap(wxT("toolbars/16/standard/cut")), _("Cut item")); - m_toolBarErd->AddTool(XRCID("IDT_PASTE"), _("Paste"), bmpLoader->LoadBitmap(wxT("toolbars/16/standard/paste")), _("Paste item")); - m_toolBarErd->AddSeparator(); - m_toolBarErd->AddTool(XRCID("IDT_UNDO"), _("Undo"), bmpLoader->LoadBitmap(wxT("toolbars/16/standard/undo")), _("Undo")); - m_toolBarErd->AddTool(XRCID("IDT_REDO"), _("Redo"), bmpLoader->LoadBitmap(wxT("toolbars/16/standard/redo")), _("Redo")); - m_toolBarErd->AddSeparator(); - m_toolBarErd->AddTool(XRCID("IDT_ERD_TOOL"), _("Tool"), wxBitmap(Tool_xpm), wxNullBitmap, wxITEM_RADIO, _("Design tool"), _("Design tool"), NULL); - m_toolBarErd->AddTool(XRCID("IDT_ERD_TABLE"), _("DBETable"), bmpLoader->LoadBitmap(wxT("db-explorer/16/table")), wxNullBitmap, wxITEM_RADIO, _("Database table"), _("Database table"), NULL); - m_toolBarErd->AddTool(XRCID("IDT_ERD_VIEW"), _("View"), bmpLoader->LoadBitmap(wxT("toolbars/16/search/find")), wxNullBitmap, wxITEM_RADIO, _("Database view"), _("Database view"), NULL); - m_toolBarErd->AddTool(XRCID("IDT_ERD_LINE"), _("Constraint 1:N"), wxXmlResource::Get()->LoadBitmap(wxT("link_editor")), wxNullBitmap, wxITEM_RADIO, _("Foreign key connection"), _("Foreign key connection"), NULL); - m_toolBarErd->AddSeparator(); - m_toolBarErd->AddTool(XRCID("IDT_ERD_ALIGN_CIRCLE"), _("Align into circle"), wxBitmap(AlignCircle_xpm), _("Align into circle")); - m_toolBarErd->AddTool(XRCID("IDT_ERD_ALIGN_MESH"), _("Align into mesh"), wxBitmap(AlignMesh_xpm), _("Align into mesh")); - m_toolBarErd->AddTool(XRCID("IDT_ERD_ALIGN_VTREE"), _("Align into vertical tree"), wxBitmap(AlignVTree_xpm), _("Align into vertical tree")); - m_toolBarErd->AddTool(XRCID("IDT_ERD_ALIGN_HTREE"), _("Align into horizontal tree"), wxBitmap(AlignHTree_xpm), _("Align into horizontal tree")); - m_toolBarErd->AddSeparator(); - m_toolBarErd->AddTool(XRCID("IDT_ERD_ZOOM100"), _("Zoom 100%"), wxBitmap(Zoom100_xpm), _("Zoom 100%")); - m_toolBarErd->AddTool(XRCID("IDT_ERD_ZOOMALL"), _("Zoom to all"), wxBitmap(ZoomAll_xpm), _("Zoom to all")); - m_toolBarErd->Realize(); - - wxAcceleratorEntry entries[4]; - entries[0].Set(wxACCEL_CTRL, (int) 'C', XRCID("IDT_COPY")); - entries[1].Set(wxACCEL_CTRL, (int) 'X', XRCID("IDT_CUT")); - entries[2].Set(wxACCEL_CTRL, (int) 'V', XRCID("IDT_PASTE")); - entries[3].Set(wxACCEL_CTRL, (int) 'A', XRCID("IDT_SELECTALL")); - wxAcceleratorTable accel(4, entries); - SetAcceleratorTable(accel); -} - -void ErdPanel::OnTool(wxCommandEvent& event) { - if (event.GetId() == XRCID("IDT_ERD_TOOL")) m_nToolMode = modeDESIGN; - else if (event.GetId() == XRCID("IDT_ERD_TABLE")) m_nToolMode = modeTABLE; - else if (event.GetId() == XRCID("IDT_ERD_LINE")) m_nToolMode = modeLine; - else if (event.GetId() == XRCID("IDT_ERD_VIEW")) m_nToolMode = modeVIEW; -} - -void ErdPanel::OnToolUpdate(wxUpdateUIEvent& event) { - if (event.GetId() == XRCID("IDT_ERD_TOOL")) event.Check(m_nToolMode == modeDESIGN); - else if (event.GetId() == XRCID("IDT_ERD_TABLE")) event.Check(m_nToolMode == modeTABLE); - else if (event.GetId() == XRCID("IDT_ERD_LINE")) event.Check(m_nToolMode == modeLine); - else if (event.GetId() == XRCID("IDT_ERD_VIEW")) event.Check(m_nToolMode == modeVIEW); - else event.Skip(); -} - -void ErdPanel::OnLoad(wxCommandEvent& WXUNUSED(event)) { - wxFileDialog dlg(this, _("Load canvas from file..."), wxGetCwd(), wxT(""), wxT("ERD Files (*.erd)|*.erd"), wxFD_OPEN | wxFD_FILE_MUST_EXIST); - - if(dlg.ShowModal() == wxID_OK) { - - LoadERD( dlg.GetPath() ); - } -} - -void ErdPanel::OnSave(wxCommandEvent& WXUNUSED(event)) { - wxFileDialog dlg(this, _("Save canvas to file..."), wxGetCwd(), wxT(""), wxT("ERD Files (*.erd)|*.erd"), wxFD_SAVE | wxFD_OVERWRITE_PROMPT); - - if(dlg.ShowModal() == wxID_OK) { - - SaveERD( dlg.GetPath() ); - } -} - -void ErdPanel::OnSaveSql(wxCommandEvent& event) { - wxFileDialog dlg(this, _("Save SQL create query..."), wxGetCwd(), wxT(""), wxT("SQL Files (*.sql)|*.sql"), wxFD_SAVE | wxFD_OVERWRITE_PROMPT); - - if(dlg.ShowModal() == wxID_OK) { - wxTextFile file(dlg.GetPath()); - if (!file.Exists()) file.Create(); - file.Open(); - if (file.IsOpened()) { - file.Clear(); - file.AddLine(wxT("-- SQL script created by DatabaseExplorer ")); - file.AddLine(wxT("")); - file.AddLine(m_pFrameCanvas->GetSqlScript()); - file.Write(wxTextFileType_None, wxConvUTF8); - file.Close(); - } - wxMessageBox(wxString::Format(_("The SQL script has been saved to '%s'."), dlg.GetPath().GetData()), _("DatabaseExplorer")); - } -} - -void ErdPanel::OnZoom100(wxCommandEvent& event) { - m_pFrameCanvas->SetScale( 1 ); - m_pFrameCanvas->Refresh( false ); -} - -void ErdPanel::OnZoomAll(wxCommandEvent& event) { - m_pFrameCanvas->SetScaleToViewAll(); - m_pFrameCanvas->Refresh( false ); -} - -void ErdPanel::OnPreview(wxCommandEvent& event) { - m_pFrameCanvas->PrintPreview(); -} - -void ErdPanel::OnPrint(wxCommandEvent& event) { - m_pFrameCanvas->Print(); -} - -void ErdPanel::OnCopy(wxCommandEvent& event) { - m_pFrameCanvas->Copy(); -} - -void ErdPanel::OnCut(wxCommandEvent& event) { - m_pFrameCanvas->Cut(); -} - -void ErdPanel::OnPaste(wxCommandEvent& event) { - m_pFrameCanvas->Paste(); - m_pFrameCanvas->UpdateERD(); -} - -void ErdPanel::OnUpdateCopy(wxUpdateUIEvent& event) { - event.Enable( m_pFrameCanvas->CanCopy() ); -} - -void ErdPanel::OnUpdateCut(wxUpdateUIEvent& event) { - event.Enable( m_pFrameCanvas->CanCut() ); -} - -void ErdPanel::OnUpdatePaste(wxUpdateUIEvent& event) { - event.Enable( m_pFrameCanvas->CanPaste() ); -} - -void ErdPanel::OnRedo(wxCommandEvent& event) { - m_pFrameCanvas->Redo(); - m_pFrameCanvas->UpdateERD(); -} - -void ErdPanel::OnUndo(wxCommandEvent& event) { - m_pFrameCanvas->Undo(); - m_pFrameCanvas->UpdateERD(); -} - -void ErdPanel::OnUpdateRedo(wxUpdateUIEvent& event) { - event.Enable( m_pFrameCanvas->CanRedo() ); -} - -void ErdPanel::OnUpdateUndo(wxUpdateUIEvent& event) { - event.Enable( m_pFrameCanvas->CanUndo() ); -} - -void ErdPanel::OnSaveImg(wxCommandEvent& event) { - static wxString prevPath; - static wxBitmapType prevType; - - ImageExportDialog dlg(this); - dlg.SetPath( prevPath ); - dlg.SetBitmapType( prevType ); - - if( dlg.ShowModal() == wxID_OK ) - { - prevPath = dlg.GetPath(); - prevType = dlg.GetBitmapType(); - m_pFrameCanvas->SaveCanvasToImage( dlg.GetPath(), dlg.GetBitmapType(), dlg.GetExportCanvas(), dlg.GetScale() ); - } -} - -void ErdPanel::OnAlignCircle(wxCommandEvent& event) { - wxSFAutoLayout layout; - layout.Layout( m_pFrameCanvas, wxT("Circle") ); - m_pFrameCanvas->SaveCanvasState(); -} - -void ErdPanel::OnAlignHTree(wxCommandEvent& event) { - wxSFAutoLayout layout; - layout.Layout( m_pFrameCanvas, wxT("Horizontal Tree") ); - m_pFrameCanvas->SaveCanvasState(); -} - -void ErdPanel::OnAlignMesh(wxCommandEvent& event) { - wxSFAutoLayout layout; - layout.Layout( m_pFrameCanvas, wxT("Mesh") ); - m_pFrameCanvas->SaveCanvasState(); -} - -void ErdPanel::OnAlignVTree(wxCommandEvent& event) { - wxSFAutoLayout layout; - layout.Layout( m_pFrameCanvas, wxT("Vertical Tree") ); - m_pFrameCanvas->SaveCanvasState(); +void ErdPanel::OnLoad(wxCommandEvent& WXUNUSED(event)) +{ + wxFileDialog dlg(this, + _("Load canvas from file..."), + wxGetCwd(), + wxT(""), + wxT("ERD Files (*.erd)|*.erd"), + wxFD_OPEN | wxFD_FILE_MUST_EXIST); + + if(dlg.ShowModal() == wxID_OK) { + + LoadERD(dlg.GetPath()); + } +} + +void ErdPanel::OnSave(wxCommandEvent& WXUNUSED(event)) +{ + wxFileDialog dlg(this, + _("Save canvas to file..."), + wxGetCwd(), + wxT(""), + wxT("ERD Files (*.erd)|*.erd"), + wxFD_SAVE | wxFD_OVERWRITE_PROMPT); + + if(dlg.ShowModal() == wxID_OK) { + + SaveERD(dlg.GetPath()); + } +} + +void ErdPanel::OnSaveSql(wxCommandEvent& event) +{ + wxFileDialog dlg(this, + _("Save SQL create query..."), + wxGetCwd(), + wxT(""), + wxT("SQL Files (*.sql)|*.sql"), + wxFD_SAVE | wxFD_OVERWRITE_PROMPT); + + if(dlg.ShowModal() == wxID_OK) { + wxTextFile file(dlg.GetPath()); + if(!file.Exists()) file.Create(); + file.Open(); + if(file.IsOpened()) { + file.Clear(); + file.AddLine(wxT("-- SQL script created by DatabaseExplorer ")); + file.AddLine(wxT("")); + file.AddLine(m_pFrameCanvas->GetSqlScript()); + file.Write(wxTextFileType_None, wxConvUTF8); + file.Close(); + } + wxMessageBox(wxString::Format(_("The SQL script has been saved to '%s'."), dlg.GetPath().GetData()), + _("DatabaseExplorer")); + } +} + +void ErdPanel::OnZoom100(wxCommandEvent& event) +{ + m_pFrameCanvas->SetScale(1); + m_pFrameCanvas->Refresh(false); +} + +void ErdPanel::OnZoomAll(wxCommandEvent& event) +{ + m_pFrameCanvas->SetScaleToViewAll(); + m_pFrameCanvas->Refresh(false); +} + +void ErdPanel::OnPreview(wxCommandEvent& event) { m_pFrameCanvas->PrintPreview(); } + +void ErdPanel::OnPrint(wxCommandEvent& event) { m_pFrameCanvas->Print(); } + +void ErdPanel::OnCopy(wxCommandEvent& event) { m_pFrameCanvas->Copy(); } + +void ErdPanel::OnCut(wxCommandEvent& event) { m_pFrameCanvas->Cut(); } + +void ErdPanel::OnPaste(wxCommandEvent& event) +{ + m_pFrameCanvas->Paste(); + m_pFrameCanvas->UpdateERD(); +} + +void ErdPanel::OnUpdateCopy(wxUpdateUIEvent& event) { event.Enable(m_pFrameCanvas->CanCopy()); } + +void ErdPanel::OnUpdateCut(wxUpdateUIEvent& event) { event.Enable(m_pFrameCanvas->CanCut()); } + +void ErdPanel::OnUpdatePaste(wxUpdateUIEvent& event) { event.Enable(m_pFrameCanvas->CanPaste()); } + +void ErdPanel::OnRedo(wxCommandEvent& event) +{ + m_pFrameCanvas->Redo(); + m_pFrameCanvas->UpdateERD(); +} + +void ErdPanel::OnUndo(wxCommandEvent& event) +{ + m_pFrameCanvas->Undo(); + m_pFrameCanvas->UpdateERD(); +} + +void ErdPanel::OnUpdateRedo(wxUpdateUIEvent& event) { event.Enable(m_pFrameCanvas->CanRedo()); } + +void ErdPanel::OnUpdateUndo(wxUpdateUIEvent& event) { event.Enable(m_pFrameCanvas->CanUndo()); } + +void ErdPanel::OnSaveImg(wxCommandEvent& event) +{ + static wxString prevPath; + static wxBitmapType prevType; + + ImageExportDialog dlg(this); + dlg.SetPath(prevPath); + dlg.SetBitmapType(prevType); + + if(dlg.ShowModal() == wxID_OK) { + prevPath = dlg.GetPath(); + prevType = dlg.GetBitmapType(); + m_pFrameCanvas->SaveCanvasToImage(dlg.GetPath(), dlg.GetBitmapType(), dlg.GetExportCanvas(), dlg.GetScale()); + } +} + +void ErdPanel::OnAlignCircle(wxCommandEvent& event) +{ + wxSFAutoLayout layout; + layout.Layout(m_pFrameCanvas, wxT("Circle")); + m_pFrameCanvas->SaveCanvasState(); +} + +void ErdPanel::OnAlignHTree(wxCommandEvent& event) +{ + wxSFAutoLayout layout; + layout.Layout(m_pFrameCanvas, wxT("Horizontal Tree")); + m_pFrameCanvas->SaveCanvasState(); +} + +void ErdPanel::OnAlignMesh(wxCommandEvent& event) +{ + wxSFAutoLayout layout; + layout.Layout(m_pFrameCanvas, wxT("Mesh")); + m_pFrameCanvas->SaveCanvasState(); +} + +void ErdPanel::OnAlignVTree(wxCommandEvent& event) +{ + wxSFAutoLayout layout; + layout.Layout(m_pFrameCanvas, wxT("Vertical Tree")); + m_pFrameCanvas->SaveCanvasState(); } void ErdPanel::OnCommit(wxCommandEvent& event) { - if (m_pConnections){ - ErdCommitWizard wizard(this, m_pConnections, m_pFrameCanvas->GetSqlScript()); - wizard.RunWizard(wizard.GetFirstPage()); - DatabaseExplorer::GetViewerPanel()->RefreshDbView(); - } + if(m_pConnections) { + ErdCommitWizard wizard(this, m_pConnections, m_pFrameCanvas->GetSqlScript()); + wizard.RunWizard(wizard.GetFirstPage()); + DatabaseExplorer::GetViewerPanel()->RefreshDbView(); + } } -void ErdPanel::OnPageClosing(NotebookEvent& event) -{ - wxMessageBox(wxT("Event Veto")); - event.Veto(); - +void ErdPanel::OnPageClosing(wxBookCtrlEvent& event) +{ + wxMessageBox(wxT("Event Veto")); + event.Veto(); } + bool ErdPanel::LoadERD(const wxString& path) { - m_diagramManager.GetRootItem()->RemoveChildren(); - - if( m_diagramManager.DeserializeFromXml( path ) ) - { - ErdInfo *pInfo = wxDynamicCast( m_diagramManager.GetRootItem(), ErdInfo ); - if( pInfo && (pInfo->GetAdapterType() == m_pDbAdapter->GetAdapterType()) ) - { - m_pFrameCanvas->UpdateERD(); - m_pFrameCanvas->Refresh(); - - return true; - } - else - { - m_diagramManager.GetRootItem()->RemoveChildren(); - wxMessageBox( _("ERD type doesn't match current database adapter."), _("DB Error"), wxICON_ERROR | wxOK ); - - m_pFrameCanvas->Refresh(); - - return false; - } - } - - return false; + m_diagramManager.GetRootItem()->RemoveChildren(); + + if(m_diagramManager.DeserializeFromXml(path)) { + ErdInfo* pInfo = wxDynamicCast(m_diagramManager.GetRootItem(), ErdInfo); + if(pInfo && (pInfo->GetAdapterType() == m_pDbAdapter->GetAdapterType())) { + m_pFrameCanvas->UpdateERD(); + m_pFrameCanvas->Refresh(); + + return true; + } else { + m_diagramManager.GetRootItem()->RemoveChildren(); + wxMessageBox(_("ERD type doesn't match current database adapter."), _("DB Error"), wxICON_ERROR | wxOK); + + m_pFrameCanvas->Refresh(); + + return false; + } + } + + return false; } bool ErdPanel::SaveERD(const wxString& path) { - if( m_diagramManager.SerializeToXml( path, xsWITH_ROOT ) ) - { - wxMessageBox(wxString::Format(_("The chart has been saved to '%s'."), path.c_str()), _("DatabaseExplorer")); - - return true; - } - else - return false; -} + if(m_diagramManager.SerializeToXml(path, xsWITH_ROOT)) { + wxMessageBox(wxString::Format(_("The chart has been saved to '%s'."), path.c_str()), _("DatabaseExplorer")); -void ErdPanel::OnSelectAll(wxCommandEvent& evt) -{ - m_pFrameCanvas->SelectAll(); + return true; + } else + return false; } +void ErdPanel::OnSelectAll(wxCommandEvent& evt) { m_pFrameCanvas->SelectAll(); } diff -Nru codelite-8.0.1+dfsg2/DatabaseExplorer/ErdPanel.h codelite-9.0+dfsg/DatabaseExplorer/ErdPanel.h --- codelite-8.0.1+dfsg2/DatabaseExplorer/ErdPanel.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/DatabaseExplorer/ErdPanel.h 2015-10-11 13:56:07.000000000 +0000 @@ -43,93 +43,81 @@ class ErdInfo : public xsSerializable { public: - XS_DECLARE_CLONABLE_CLASS(ErdInfo); - - ErdInfo(); - ErdInfo(const ErdInfo& obj); - ~ErdInfo() {;} - - void SetAdapterType(const IDbAdapter::TYPE& type) {this->m_adapterType = type;} - const IDbAdapter::TYPE& GetAdapterType() const {return m_adapterType;} - + XS_DECLARE_CLONABLE_CLASS(ErdInfo); + + ErdInfo(); + ErdInfo(const ErdInfo& obj); + ~ErdInfo() { ; } + + void SetAdapterType(const IDbAdapter::TYPE& type) { this->m_adapterType = type; } + const IDbAdapter::TYPE& GetAdapterType() const { return m_adapterType; } + protected: - - IDbAdapter::TYPE m_adapterType; + IDbAdapter::TYPE m_adapterType; }; /*! \brief Editor for ERD creating. */ -class ErdPanel : public _ErdPanel { - public: - DECLARE_DYNAMIC_CLASS(ErdPanel) - enum MODE { - modeDESIGN, - modeTABLE, - modeVIEW, - modeLine - }; - // public data accessors - MODE GetToolMode() { - return m_nToolMode; - } - - void SetToolMode(MODE m) { - m_nToolMode = m; - } - - ErdPanel(); - ErdPanel(wxWindow *parent, IDbAdapter* dbAdapter, xsSerializable* pConnections); - ErdPanel(wxWindow *parent, IDbAdapter* dbAdapter, xsSerializable* pConnections, Table* pTable); - ErdPanel(wxWindow *parent, IDbAdapter* dbAdapter, xsSerializable* pConnections, xsSerializable* pItems); - virtual ~ErdPanel(); - void Init(wxWindow *parent, IDbAdapter* dbAdapter); - bool LoadERD(const wxString& path); - bool SaveERD(const wxString& path); - - wxSFShapeCanvas* GetCanvas() { - return (wxSFShapeCanvas*)m_pFrameCanvas; - } - - protected: - wxSFDiagramManager m_diagramManager; - FrameCanvas* m_pFrameCanvas; - ErdTable* m_pErdTable; - - IDbAdapter* m_pDbAdapter; - xsSerializable* m_pConnections; - - MODE m_nToolMode; - - // event handlers - void OnTool(wxCommandEvent& event); - void OnToolUpdate(wxUpdateUIEvent& event); - void OnLoad(wxCommandEvent& WXUNUSED(event)); - void OnSave(wxCommandEvent& WXUNUSED(event)); - void OnCommit(wxCommandEvent& WXUNUSED(event)); - void OnSaveSql(wxCommandEvent& WXUNUSED(event)); - void OnSaveImg(wxCommandEvent& WXUNUSED(event)); - void OnZoom100(wxCommandEvent& WXUNUSED(event)); - void OnZoomAll(wxCommandEvent& WXUNUSED(event)); - void OnPrint(wxCommandEvent& WXUNUSED(event)); - void OnPreview(wxCommandEvent& WXUNUSED(event)); - void OnCopy(wxCommandEvent& WXUNUSED(event)); - void OnCut(wxCommandEvent& WXUNUSED(event)); - void OnPaste(wxCommandEvent& WXUNUSED(event)); - void OnUpdateCopy(wxUpdateUIEvent& event); - void OnUpdateCut(wxUpdateUIEvent& event); - void OnUpdatePaste(wxUpdateUIEvent& event); - void OnUndo(wxCommandEvent& WXUNUSED(event)); - void OnRedo(wxCommandEvent& WXUNUSED(event)); - void OnUpdateUndo(wxUpdateUIEvent& event); - void OnUpdateRedo(wxUpdateUIEvent& event); - void OnAlignCircle(wxCommandEvent& WXUNUSED(event)); - void OnAlignMesh(wxCommandEvent& WXUNUSED(event)); - void OnAlignVTree(wxCommandEvent& WXUNUSED(event)); - void OnAlignHTree(wxCommandEvent& WXUNUSED(event)); - void OnPageClosing(NotebookEvent& event); - void OnSelectAll(wxCommandEvent &evt); +class ErdPanel : public _ErdPanel +{ +public: + DECLARE_DYNAMIC_CLASS(ErdPanel) + enum MODE { modeDESIGN, modeTABLE, modeVIEW, modeLine }; + // public data accessors + MODE GetToolMode() { return m_nToolMode; } + + void SetToolMode(MODE m) { m_nToolMode = m; } + + ErdPanel(); + ErdPanel(wxWindow* parent, IDbAdapter* dbAdapter, xsSerializable* pConnections); + ErdPanel(wxWindow* parent, IDbAdapter* dbAdapter, xsSerializable* pConnections, Table* pTable); + ErdPanel(wxWindow* parent, IDbAdapter* dbAdapter, xsSerializable* pConnections, xsSerializable* pItems); + virtual ~ErdPanel(); + void Init(wxWindow* parent, IDbAdapter* dbAdapter); + bool LoadERD(const wxString& path); + bool SaveERD(const wxString& path); + + wxSFShapeCanvas* GetCanvas() { return (wxSFShapeCanvas*)m_pFrameCanvas; } - DECLARE_EVENT_TABLE(); +protected: + wxSFDiagramManager m_diagramManager; + FrameCanvas* m_pFrameCanvas; + ErdTable* m_pErdTable; + + IDbAdapter* m_pDbAdapter; + xsSerializable* m_pConnections; + + MODE m_nToolMode; + + // event handlers + void OnTool(wxCommandEvent& event); + void OnToolUpdate(wxUpdateUIEvent& event); + void OnLoad(wxCommandEvent& WXUNUSED(event)); + void OnSave(wxCommandEvent& WXUNUSED(event)); + void OnCommit(wxCommandEvent& WXUNUSED(event)); + void OnSaveSql(wxCommandEvent& WXUNUSED(event)); + void OnSaveImg(wxCommandEvent& WXUNUSED(event)); + void OnZoom100(wxCommandEvent& WXUNUSED(event)); + void OnZoomAll(wxCommandEvent& WXUNUSED(event)); + void OnPrint(wxCommandEvent& WXUNUSED(event)); + void OnPreview(wxCommandEvent& WXUNUSED(event)); + void OnCopy(wxCommandEvent& WXUNUSED(event)); + void OnCut(wxCommandEvent& WXUNUSED(event)); + void OnPaste(wxCommandEvent& WXUNUSED(event)); + void OnUpdateCopy(wxUpdateUIEvent& event); + void OnUpdateCut(wxUpdateUIEvent& event); + void OnUpdatePaste(wxUpdateUIEvent& event); + void OnUndo(wxCommandEvent& WXUNUSED(event)); + void OnRedo(wxCommandEvent& WXUNUSED(event)); + void OnUpdateUndo(wxUpdateUIEvent& event); + void OnUpdateRedo(wxUpdateUIEvent& event); + void OnAlignCircle(wxCommandEvent& WXUNUSED(event)); + void OnAlignMesh(wxCommandEvent& WXUNUSED(event)); + void OnAlignVTree(wxCommandEvent& WXUNUSED(event)); + void OnAlignHTree(wxCommandEvent& WXUNUSED(event)); + void OnPageClosing(wxBookCtrlEvent& event); + void OnSelectAll(wxCommandEvent& evt); + DECLARE_EVENT_TABLE(); }; #endif // ERDPANEL_H diff -Nru codelite-8.0.1+dfsg2/DatabaseExplorer/GUI.cpp codelite-9.0+dfsg/DatabaseExplorer/GUI.cpp --- codelite-8.0.1+dfsg2/DatabaseExplorer/GUI.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/DatabaseExplorer/GUI.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -90,11 +90,19 @@ m_sdbSizer2->AddButton(m_button127); m_sdbSizer2->Realize(); + SetName(wxT("_ImageExportDialog")); SetSizeHints(-1,-1); if ( GetSizer() ) { GetSizer()->Fit(this); } - Centre(wxBOTH); + CentreOnParent(wxBOTH); +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(this)) { + wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); + } +#endif // Connect events this->Connect(wxEVT_INIT_DIALOG, wxInitDialogEventHandler(_ImageExportDialog::OnInit), NULL, this); m_button29->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(_ImageExportDialog::OnBowseClick), NULL, this); @@ -123,11 +131,12 @@ wxBoxSizer* mainSizer = new wxBoxSizer(wxVERTICAL); this->SetSizer(mainSizer); + SetName(wxT("_ThumbPane")); SetSizeHints(500,300); if ( GetSizer() ) { GetSizer()->Fit(this); } - Centre(wxBOTH); + CentreOnParent(wxBOTH); } _ThumbPane::~_ThumbPane() @@ -151,7 +160,7 @@ fgSizer3->AddGrowableRow(1); this->SetSizer(fgSizer3); - m_auibar167 = new wxAuiToolBar(this, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxAUI_TB_DEFAULT_STYLE); + m_auibar167 = new wxAuiToolBar(this, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxAUI_TB_PLAIN_BACKGROUND|wxAUI_TB_DEFAULT_STYLE); m_auibar167->SetToolBitmapSize(wxSize(16,16)); fgSizer3->Add(m_auibar167, 0, wxEXPAND, 5); @@ -228,7 +237,7 @@ m_scintillaSQL->SetKeyWords(3, wxT("")); m_scintillaSQL->SetKeyWords(4, wxT("")); - bSizer25->Add(m_scintillaSQL, 1, wxALL|wxEXPAND, 5); + bSizer25->Add(m_scintillaSQL, 1, wxALL|wxEXPAND, 2); m_panel14 = new wxPanel(m_splitter1, wxID_ANY, wxDefaultPosition, wxSize(-1, -1), wxTAB_TRAVERSAL); m_splitter1->SplitHorizontally(m_panel13, m_panel14, 163); @@ -245,17 +254,18 @@ #endif m_gridTable->EnableEditing(true); - bSizer24->Add(m_gridTable, 1, wxALL|wxEXPAND, 5); + bSizer24->Add(m_gridTable, 1, wxALL|wxEXPAND, 2); m_labelStatus = new wxStaticText(m_panel14, wxID_ANY, _("Result:"), wxDefaultPosition, wxSize(-1, -1), 0); bSizer24->Add(m_labelStatus, 0, wxALL|wxEXPAND|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5); + SetName(wxT("_SqlCommandPanel")); SetSizeHints(-1,-1); if ( GetSizer() ) { GetSizer()->Fit(this); } - Centre(wxBOTH); + CentreOnParent(wxBOTH); // Connect events this->Connect(wxID_ANY, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler(_SqlCommandPanel::OnLoadClick), NULL, this); this->Connect(XRCID("IDC_DBE_SQL_SAVE"), wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler(_SqlCommandPanel::OnSaveClick), NULL, this); @@ -332,11 +342,19 @@ bSizer9->Add(m_button24, 0, wxALL|wxEXPAND, 5); + SetName(wxT("_AdapterSelectDlg")); SetSizeHints(-1,-1); if ( GetSizer() ) { GetSizer()->Fit(this); } - Centre(wxBOTH); + CentreOnParent(wxBOTH); +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(this)) { + wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); + } +#endif // Connect events m_btnMySql->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(_AdapterSelectDlg::OnMysqlClick), NULL, this); m_btnSqlite->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(_AdapterSelectDlg::OnSqliteClick), NULL, this); @@ -374,11 +392,12 @@ bSizer28->Add(m_treeDatabases, 1, wxEXPAND, 5); + SetName(wxT("_DbViewerPanel")); SetSizeHints(200,100); if ( GetSizer() ) { GetSizer()->Fit(this); } - Centre(wxBOTH); + CentreOnParent(wxBOTH); // Connect events m_treeDatabases->Connect(wxEVT_COMMAND_TREE_BEGIN_DRAG, wxTreeEventHandler(_DbViewerPanel::OnDnDStart), NULL, this); m_treeDatabases->Connect(wxEVT_COMMAND_TREE_ITEM_ACTIVATED, wxTreeEventHandler(_DbViewerPanel::OnItemActivate), NULL, this); @@ -410,11 +429,12 @@ this->SetSizer(bSizer4); m_notebook2 = new wxNotebook(this, wxID_ANY, wxDefaultPosition, wxSize(-1, -1), 0); + m_notebook2->SetName(wxT("m_notebook2")); bSizer4->Add(m_notebook2, 1, wxALL|wxEXPAND, 5); m_Sqlite = new wxPanel(m_notebook2, wxID_ANY, wxDefaultPosition, wxSize(-1, -1), wxTAB_TRAVERSAL); - m_notebook2->AddPage(m_Sqlite, _("Sqlite"), false); + m_notebook2->AddPage(m_Sqlite, _("Sqlite"), true); wxBoxSizer* bSizer27 = new wxBoxSizer(wxVERTICAL); m_Sqlite->SetSizer(bSizer27); @@ -431,9 +451,10 @@ fgSizer41->Add(m_staticText11, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5); - m_filePickerSqlite = new wxFilePickerCtrl(m_Sqlite, wxID_ANY, wxEmptyString, wxT("Select a file"), wxT("All Files (*)|*|Database file (*.sqlite;*.tags;*.db)|*.sqlite;*.tags;*.db"), wxDefaultPosition, wxSize(-1,-1), wxFLP_USE_TEXTCTRL|wxFLP_OPEN); + m_filePickerSqlite = new wxFilePickerCtrl(m_Sqlite, wxID_ANY, wxEmptyString, _("Select a file"), wxT("All Files (*)|*|Database file (*.sqlite;*.tags;*.db)|*.sqlite;*.tags;*.db"), wxDefaultPosition, wxSize(-1,-1), wxFLP_USE_TEXTCTRL|wxFLP_OPEN); + m_filePickerSqlite->SetFocus(); - fgSizer41->Add(m_filePickerSqlite, 0, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); + fgSizer41->Add(m_filePickerSqlite, 0, wxALL|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5); m_listCtrlRecentFiles = new wxListCtrl(m_Sqlite, wxID_ANY, wxDefaultPosition, wxSize(-1, -1), wxLC_HRULES|wxLC_SINGLE_SEL|wxLC_REPORT); @@ -442,19 +463,15 @@ m_MySqlPanel = new wxPanel(m_notebook2, wxID_ANY, wxDefaultPosition, wxSize(-1, -1), wxTAB_TRAVERSAL); m_notebook2->AddPage(m_MySqlPanel, _("MySql"), false); - wxFlexGridSizer* fgSizer3 = new wxFlexGridSizer(0, 1, 0, 0); - fgSizer3->SetFlexibleDirection( wxBOTH ); - fgSizer3->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); - fgSizer3->AddGrowableCol(0); - fgSizer3->AddGrowableRow(1); - m_MySqlPanel->SetSizer(fgSizer3); + wxBoxSizer* boxSizer182 = new wxBoxSizer(wxVERTICAL); + m_MySqlPanel->SetSizer(boxSizer182); wxFlexGridSizer* fgSizer4 = new wxFlexGridSizer(0, 2, 0, 0); fgSizer4->SetFlexibleDirection( wxBOTH ); fgSizer4->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); fgSizer4->AddGrowableCol(1); - fgSizer3->Add(fgSizer4, 1, wxEXPAND, 5); + boxSizer182->Add(fgSizer4, 1, wxEXPAND, 5); m_staticText10 = new wxStaticText(m_MySqlPanel, wxID_ANY, _("Connection name:"), wxDefaultPosition, wxSize(-1, -1), 0); @@ -506,14 +523,10 @@ fgSizer4->Add(m_txPassword, 0, wxALL|wxEXPAND, 5); - wxBoxSizer* bSizer8 = new wxBoxSizer(wxVERTICAL); - - fgSizer3->Add(bSizer8, 0, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL, 5); - wxArrayString m_listBox2Arr; m_listBox2 = new wxListBox(m_MySqlPanel, wxID_ANY, wxDefaultPosition, wxSize(-1,100), m_listBox2Arr, 0); - bSizer8->Add(m_listBox2, 1, wxTOP|wxEXPAND, 5); + boxSizer182->Add(m_listBox2, 1, wxALL|wxEXPAND, 5); m_PostgrePanel = new wxPanel(m_notebook2, wxID_ANY, wxDefaultPosition, wxSize(-1, -1), wxTAB_TRAVERSAL); m_notebook2->AddPage(m_PostgrePanel, _("PostgreSQL"), false); @@ -613,11 +626,28 @@ bSizer28->Add(m_button35, 0, wxALL, 5); + + #if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(m_notebook2)){ + wxPersistenceManager::Get().RegisterAndRestore(m_notebook2); + } else { + wxPersistenceManager::Get().Restore(m_notebook2); + } + #endif + + SetName(wxT("_DBSettingsDialog")); SetSizeHints(-1,-1); if ( GetSizer() ) { GetSizer()->Fit(this); } - Centre(wxBOTH); + CentreOnParent(wxBOTH); +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(this)) { + wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); + } +#endif // Connect events m_listCtrlRecentFiles->Connect(wxEVT_COMMAND_LIST_ITEM_ACTIVATED, wxListEventHandler(_DBSettingsDialog::OnItemActivated), NULL, this); m_listCtrlRecentFiles->Connect(wxEVT_COMMAND_LIST_ITEM_SELECTED, wxListEventHandler(_DBSettingsDialog::OnItemSelected), NULL, this); @@ -680,11 +710,12 @@ wxBoxSizer* m_wxsfSizer = new wxBoxSizer(wxVERTICAL); m_wxsfPanel->SetSizer(m_wxsfSizer); + SetName(wxT("_ErdPanel")); SetSizeHints(640,480); if ( GetSizer() ) { GetSizer()->Fit(this); } - Centre(wxBOTH); + CentreOnParent(wxBOTH); // Connect events this->Connect(wxEVT_MOUSEWHEEL, wxMouseEventHandler(_ErdPanel::OnMouseWheel), NULL, this); @@ -743,28 +774,28 @@ fgSizer12->Add(gbSizer1, 1, wxEXPAND, 5); wxArrayString m_radioRelationArr; - m_radioRelationArr.Add(wxT("N :1")); - m_radioRelationArr.Add(wxT("N : M")); + m_radioRelationArr.Add(_("N :1")); + m_radioRelationArr.Add(_("N : M")); m_radioRelation = new wxRadioBox(this, wxID_ANY, _("Relation"), wxDefaultPosition, wxSize(-1, -1), m_radioRelationArr, 1, wxRA_SPECIFY_ROWS); m_radioRelation->SetSelection(0); gbSizer1->Add(m_radioRelation, wxGBPosition(0,0), wxGBSpan(1,2), wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL, 5); wxArrayString m_radioOnDeleteArr; - m_radioOnDeleteArr.Add(wxT("restrict")); - m_radioOnDeleteArr.Add(wxT("cascade")); - m_radioOnDeleteArr.Add(wxT("set null")); - m_radioOnDeleteArr.Add(wxT("no action")); + m_radioOnDeleteArr.Add(_("restrict")); + m_radioOnDeleteArr.Add(_("cascade")); + m_radioOnDeleteArr.Add(_("set null")); + m_radioOnDeleteArr.Add(_("no action")); m_radioOnDelete = new wxRadioBox(this, wxID_ANY, _("OnDelete"), wxDefaultPosition, wxSize(-1, -1), m_radioOnDeleteArr, 1, wxRA_SPECIFY_COLS); m_radioOnDelete->SetSelection(0); gbSizer1->Add(m_radioOnDelete, wxGBPosition(1,0), wxGBSpan(1,1), wxALL, 5); wxArrayString m_radioOnUpdateArr; - m_radioOnUpdateArr.Add(wxT("restrict")); - m_radioOnUpdateArr.Add(wxT("cascade")); - m_radioOnUpdateArr.Add(wxT("set null")); - m_radioOnUpdateArr.Add(wxT("no action")); + m_radioOnUpdateArr.Add(_("restrict")); + m_radioOnUpdateArr.Add(_("cascade")); + m_radioOnUpdateArr.Add(_("set null")); + m_radioOnUpdateArr.Add(_("no action")); m_radioOnUpdate = new wxRadioBox(this, wxID_ANY, _("OnUpdate"), wxDefaultPosition, wxSize(-1, -1), m_radioOnUpdateArr, 1, wxRA_SPECIFY_COLS); m_radioOnUpdate->SetSelection(0); @@ -811,11 +842,19 @@ bSizer12->Add(m_btnOK, 1, wxALL|wxEXPAND, 5); + SetName(wxT("_CreateForeignKey")); SetSizeHints(-1,-1); if ( GetSizer() ) { GetSizer()->Fit(this); } - Centre(wxBOTH); + CentreOnParent(wxBOTH); +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(this)) { + wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); + } +#endif // Connect events m_btnCancel->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(_CreateForeignKey::OnCancelClick), NULL, this); m_btnOK->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(_CreateForeignKey::OnOKClick), NULL, this); @@ -865,12 +904,20 @@ bSizer13->Add(m_button18, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_RIGHT, 5); + SetName(wxT("_LogDialog")); SetMinSize( wxSize(640,460) ); SetSizeHints(640,460); if ( GetSizer() ) { GetSizer()->Fit(this); } - Centre(wxBOTH); + CentreOnParent(wxBOTH); +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(this)) { + wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); + } +#endif // Connect events m_button18->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(_LogDialog::OnCloseClick), NULL, this); m_button18->Connect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(_LogDialog::OnCloseUI), NULL, this); @@ -971,12 +1018,20 @@ fgSizer14->Add(m_btnOK, 0, wxALL|wxALIGN_RIGHT, 5); + SetName(wxT("_ViewSettings")); SetMinSize( wxSize(650,450) ); SetSizeHints(650,450); if ( GetSizer() ) { GetSizer()->Fit(this); } - Centre(wxBOTH); + CentreOnParent(wxBOTH); +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(this)) { + wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); + } +#endif // Connect events m_btnOK->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(_ViewSettings::OnOKClick), NULL, this); @@ -1033,7 +1088,7 @@ fgSizer19->Add(m_staticText28, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5); - m_dirPicker = new wxDirPickerCtrl(this, wxID_ANY, wxEmptyString, wxT("Select a folder"), wxDefaultPosition, wxSize(-1, -1), wxDIRP_DEFAULT_STYLE); + m_dirPicker = new wxDirPickerCtrl(this, wxID_ANY, wxEmptyString, _("Select a folder"), wxDefaultPosition, wxSize(-1, -1), wxDIRP_DEFAULT_STYLE); fgSizer19->Add(m_dirPicker, 0, wxALL|wxEXPAND, 5); @@ -1095,11 +1150,19 @@ bSizer20->Add(m_button25, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5); + SetName(wxT("_ClassGenerateDialog")); SetSizeHints(-1,-1); if ( GetSizer() ) { GetSizer()->Fit(this); } - Centre(wxBOTH); + CentreOnParent(wxBOTH); +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(this)) { + wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); + } +#endif // Connect events m_btnBrowseVirtualDir->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(_ClassGenerateDialog::OnBtnBrowseClick), NULL, this); m_button26->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(_ClassGenerateDialog::OnCancelClick), NULL, this); @@ -1179,12 +1242,20 @@ boxSizer10->Add(m_button14, 0, wxALL|wxALIGN_RIGHT, 5); + SetName(wxT("_CodePreviewDialog")); SetMinSize( wxSize(500,470) ); SetSizeHints(500,470); if ( GetSizer() ) { GetSizer()->Fit(this); } - Centre(wxBOTH); + CentreOnParent(wxBOTH); +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(this)) { + wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); + } +#endif // Connect events m_button14->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(_CodePreviewDialog::OnOKClick), NULL, this); @@ -1342,20 +1413,20 @@ flexGridSizer147->Add(m_choiceRefCol, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5); wxArrayString m_radioOnUpdateArr; - m_radioOnUpdateArr.Add(wxT("restrict")); - m_radioOnUpdateArr.Add(wxT("cascade")); - m_radioOnUpdateArr.Add(wxT("set null")); - m_radioOnUpdateArr.Add(wxT("no action")); + m_radioOnUpdateArr.Add(_("restrict")); + m_radioOnUpdateArr.Add(_("cascade")); + m_radioOnUpdateArr.Add(_("set null")); + m_radioOnUpdateArr.Add(_("no action")); m_radioOnUpdate = new wxRadioBox(m_splitterPage35, wxID_ANY, _("On update"), wxDefaultPosition, wxSize(-1,-1), m_radioOnUpdateArr, 1, wxRA_SPECIFY_ROWS); m_radioOnUpdate->SetSelection(0); boxSizer163->Add(m_radioOnUpdate, 0, wxLEFT|wxRIGHT|wxTOP|wxEXPAND, 5); wxArrayString m_radioOnDeleteArr; - m_radioOnDeleteArr.Add(wxT("restrict")); - m_radioOnDeleteArr.Add(wxT("cascade")); - m_radioOnDeleteArr.Add(wxT("set null")); - m_radioOnDeleteArr.Add(wxT("no action")); + m_radioOnDeleteArr.Add(_("restrict")); + m_radioOnDeleteArr.Add(_("cascade")); + m_radioOnDeleteArr.Add(_("set null")); + m_radioOnDeleteArr.Add(_("no action")); m_radioOnDelete = new wxRadioBox(m_splitterPage35, wxID_ANY, _("On delete"), wxDefaultPosition, wxSize(-1,-1), m_radioOnDeleteArr, 1, wxRA_SPECIFY_ROWS); m_radioOnDelete->SetSelection(0); @@ -1377,12 +1448,20 @@ boxSizer49->Add(m_button53, 0, wxALL, 5); + SetName(wxT("_TableSettings")); SetMinSize( wxSize(600,-1) ); SetSizeHints(600,700); if ( GetSizer() ) { GetSizer()->Fit(this); } - Centre(wxBOTH); + CentreOnParent(wxBOTH); +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(this)) { + wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); + } +#endif // Connect events this->Connect(wxEVT_INIT_DIALOG, wxInitDialogEventHandler(_TableSettings::OnInit), NULL, this); this->Connect(XRCID("IDT_DBE_TS_ADD_COLUMN"), wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler(_TableSettings::OnAddColumnClick), NULL, this); diff -Nru codelite-8.0.1+dfsg2/DatabaseExplorer/GUI_databaseexplorer_bitmaps.cpp codelite-9.0+dfsg/DatabaseExplorer/GUI_databaseexplorer_bitmaps.cpp --- codelite-8.0.1+dfsg2/DatabaseExplorer/GUI_databaseexplorer_bitmaps.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/DatabaseExplorer/GUI_databaseexplorer_bitmaps.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,318 +1,317 @@ -// -// This file was automatically generated by wxrc, do not edit by hand. -// - -#include - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#include -#include -#include -#include - -#if wxCHECK_VERSION(2,8,5) && wxABI_VERSION >= 20805 - #define XRC_ADD_FILE(name, data, size, mime) \ - wxMemoryFSHandler::AddFileWithMimeType(name, data, size, mime) -#else - #define XRC_ADD_FILE(name, data, size, mime) \ - wxMemoryFSHandler::AddFile(name, data, size) -#endif - -static size_t xml_res_size_0 = 601; -static unsigned char xml_res_file_0[] = { -137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, -0,31,243,255,97,0,0,2,32,73,68,65,84,120,94,165,147,79,72,84,81,24,197, -127,119,254,104,190,133,229,42,93,20,36,180,41,8,98,104,25,20,77,86,58, -98,155,160,69,182,9,162,32,168,69,244,7,90,4,65,78,57,213,152,202,20,9, -145,139,164,17,215,33,70,133,5,233,48,165,32,4,69,218,166,154,26,103,140, -153,50,53,103,222,215,251,144,121,200,219,184,232,192,119,223,185,231,187, -231,112,239,123,239,26,17,225,191,224,13,104,142,17,106,186,193,72,184, -3,217,231,148,62,157,185,28,234,100,36,114,139,144,215,235,99,21,14,222, -164,119,189,85,155,62,23,57,31,238,59,243,144,196,169,187,92,63,126,153, -179,173,237,236,222,182,35,92,21,240,167,35,49,146,120,82,42,230,228,137, -190,6,89,144,103,50,254,165,93,18,175,144,248,11,164,235,37,114,239,53, -210,159,106,148,196,232,78,57,210,237,23,103,39,189,174,87,135,150,24,161, -163,61,150,252,88,28,146,129,201,122,233,113,12,241,81,164,130,46,39,236, -254,27,228,193,88,80,58,158,214,203,225,56,210,122,155,144,123,132,229, -18,157,145,93,109,76,125,235,35,191,240,29,252,96,27,92,148,181,12,136, -127,153,26,107,142,250,58,176,203,196,0,2,40,96,239,150,141,155,152,202, -14,80,178,193,22,88,178,113,161,156,18,4,5,39,224,47,181,22,96,216,227, -190,131,253,81,228,249,244,73,233,159,220,32,107,33,241,22,185,52,132,52, -119,34,238,17,140,129,194,252,44,38,224,99,77,248,188,83,29,12,228,139, -25,230,203,115,116,191,51,220,73,27,162,99,134,10,148,171,214,51,97,240, -27,176,109,48,102,85,64,121,137,212,167,204,12,178,88,199,186,106,168,113, -170,186,10,23,202,85,211,94,177,0,191,254,24,74,139,164,220,128,220,123, -162,31,190,102,201,205,218,136,237,35,16,128,96,0,23,202,85,43,151,32,155, -53,100,126,10,89,199,227,6,76,12,48,92,204,49,56,49,93,96,230,35,20,242, -80,21,132,39,159,27,180,148,171,230,244,12,211,25,225,183,174,125,204,176, -247,46,108,110,186,202,136,254,36,167,31,25,185,144,68,46,14,174,148,114, -213,180,23,190,66,82,215,186,94,207,101,106,220,222,198,177,3,215,24,111, -137,233,167,90,41,229,170,105,175,98,246,6,172,134,5,108,5,66,158,82,205, -242,222,163,127,183,15,63,49,58,119,32,9,0,0,0,0,73,69,78,68,174,66,96, -130}; - -static size_t xml_res_size_1 = 473; -static unsigned char xml_res_file_1[] = { -137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, -0,31,243,255,97,0,0,0,25,116,69,88,116,83,111,102,116,119,97,114,101,0, -65,100,111,98,101,32,73,109,97,103,101,82,101,97,100,121,113,201,101,60, -0,0,1,123,73,68,65,84,120,218,98,248,255,255,63,3,12,28,113,48,248,15,194, -12,56,0,186,60,88,47,204,0,144,196,183,195,187,192,24,155,33,216,228,225, -6,128,4,190,238,222,240,255,169,167,46,24,131,216,200,134,224,146,7,233, -101,129,91,241,227,59,3,19,11,43,152,249,105,82,19,131,97,113,57,195,17, -134,78,176,33,32,54,72,12,38,15,82,11,3,140,32,83,24,25,25,141,129,38,158, -49,200,206,99,248,182,108,38,92,146,43,42,29,76,163,139,93,152,58,137,193, -230,192,5,19,160,222,179,48,3,64,114,96,67,12,147,211,25,190,111,90,138, -53,16,57,253,162,25,206,207,157,9,214,12,228,158,5,235,69,50,0,97,72,108, -60,195,207,61,155,80,52,179,187,248,49,156,95,188,16,174,25,22,136,44,104, -150,128,37,24,127,254,68,248,23,230,87,160,24,178,26,244,48,128,135,182, -81,96,16,195,223,11,39,177,122,129,217,192,156,225,220,250,117,32,87,48, -194,92,0,55,0,164,217,216,199,155,225,223,205,43,112,13,76,234,58,96,26, -93,236,236,150,173,96,67,224,94,0,105,54,113,119,99,248,127,247,38,220, -233,140,114,74,12,103,128,10,65,0,44,247,232,30,196,4,160,26,16,255,8,208, -1,32,101,240,48,96,250,253,155,225,63,43,84,179,136,4,195,169,157,187,96, -1,6,82,124,198,204,201,145,225,255,155,23,16,121,160,90,172,233,192,194, -206,6,44,120,226,208,17,148,208,134,197,14,186,60,40,29,48,32,101,38,99, -164,204,98,140,37,12,49,228,81,50,19,76,17,14,205,88,229,225,177,64,9,0, -8,48,0,172,11,9,216,246,43,15,212,0,0,0,0,73,69,78,68,174,66,96,130}; - -static size_t xml_res_size_2 = 528; -static unsigned char xml_res_file_2[] = { -137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, -0,31,243,255,97,0,0,0,6,98,75,71,68,0,255,0,255,0,255,160,189,167,147,0, -0,1,197,73,68,65,84,56,141,141,146,193,138,19,65,16,134,191,158,108,88, -36,89,5,3,129,125,2,47,190,192,128,18,18,124,135,89,188,248,18,190,134, -55,89,240,228,77,38,16,68,246,148,107,192,187,224,197,37,176,34,234,34, -30,18,150,37,187,59,153,238,170,242,48,153,153,36,163,224,15,221,93,93, -93,245,255,213,93,237,216,96,54,155,25,123,200,178,140,78,167,179,242,222, -191,28,14,135,111,246,207,1,92,154,166,6,208,235,245,136,227,120,231,240, -236,236,3,163,209,51,230,243,185,169,234,199,193,96,48,112,206,237,8,69, -0,73,146,224,125,142,136,236,140,229,114,73,191,223,39,142,99,39,18,158, -78,167,83,77,211,212,74,81,128,131,210,240,222,35,34,141,18,79,79,95,3, -208,237,118,57,58,186,79,146,36,76,38,147,245,95,8,114,84,117,39,249,228, -228,121,101,175,86,43,230,243,243,134,64,69,144,255,163,130,18,34,130,15, -161,225,119,105,154,90,146,36,156,191,122,65,235,222,3,76,13,172,24,166, -96,162,133,45,96,170,56,28,226,5,39,186,14,215,87,135,85,5,180,187,28,63, -25,225,112,27,234,109,153,93,195,48,80,61,188,120,251,206,87,4,38,138,121, -79,118,249,185,206,112,155,85,3,102,10,42,152,6,48,193,84,200,126,255,106, -215,21,248,128,121,143,222,221,98,18,54,193,82,4,75,192,196,99,97,93,172, -82,144,220,253,248,46,117,23,150,11,236,106,129,92,126,133,144,99,193,99, -234,81,9,128,194,246,247,113,197,100,121,94,95,225,230,226,11,250,248,17, -246,243,91,21,228,112,180,182,222,194,10,103,5,93,75,221,70,212,112,153, -39,186,201,26,74,141,125,233,18,171,9,204,43,209,58,39,90,101,205,46,108, -39,237,145,30,0,140,199,99,142,111,51,62,77,222,99,98,32,134,169,21,157, -41,247,82,191,131,107,181,112,81,4,88,86,82,245,128,135,64,155,255,131, -7,150,192,226,15,31,67,27,228,150,149,150,252,0,0,0,0,73,69,78,68,174,66, -96,130}; - -static size_t xml_res_size_3 = 472; -static unsigned char xml_res_file_3[] = { -137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, -0,31,243,255,97,0,0,1,159,73,68,65,84,120,94,149,147,49,171,19,65,16,199, -127,179,119,121,247,48,42,168,33,240,34,68,2,15,108,4,65,132,7,162,149, -226,7,176,11,216,61,68,63,131,98,103,165,157,40,126,1,209,66,76,97,237, -19,11,21,17,139,215,170,69,32,22,54,38,221,29,73,110,103,71,178,132,35, -9,10,231,15,134,255,176,59,243,103,102,97,101,239,206,203,215,170,122,131, -8,6,176,153,255,235,206,57,247,66,46,222,122,94,222,223,191,154,238,189, -127,12,33,96,33,16,213,162,174,156,105,149,99,198,219,235,247,120,242,234, -19,41,128,6,227,247,179,135,152,42,117,9,215,238,70,77,1,81,85,118,30,60, -141,206,117,41,189,86,6,120,53,78,222,188,205,255,160,111,190,173,26,4, -84,149,209,104,68,29,122,189,222,218,4,162,26,72,146,36,94,212,69,125,168, -12,80,85,0,134,195,33,117,232,118,187,107,19,80,46,221,234,79,192,198,10, -62,176,255,232,3,219,147,47,36,197,79,254,138,0,8,243,237,51,228,205,115, -236,158,62,190,250,136,10,243,34,54,95,185,124,137,44,203,104,52,26,85, -56,231,152,205,102,228,121,206,193,193,59,242,173,93,188,111,174,174,160, -132,16,112,46,161,213,106,49,24,12,0,232,247,251,76,167,83,138,162,88,104, -12,196,197,90,191,92,193,1,18,212,226,161,8,52,155,77,150,48,30,143,153, -76,38,11,173,114,51,195,130,82,150,149,1,204,75,79,234,192,32,22,45,217, -108,142,106,16,39,40,189,7,192,57,145,207,135,63,126,77,119,78,29,1,179, -88,212,233,116,104,183,219,155,205,49,48,227,196,177,173,106,130,197,111, -60,42,194,199,204,249,179,231,211,175,153,72,138,97,96,68,5,214,254,136, -96,28,250,11,185,74,38,170,246,253,15,74,156,9,1,76,118,27,84,0,0,0,0,73, -69,78,68,174,66,96,130}; - -static size_t xml_res_size_4 = 894; -static unsigned char xml_res_file_4[] = { -137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, -0,31,243,255,97,0,0,0,1,115,82,71,66,0,174,206,28,233,0,0,0,6,98,75,71, -68,0,255,0,255,0,255,160,189,167,147,0,0,0,9,112,72,89,115,0,0,11,19,0, -0,11,19,1,0,154,156,24,0,0,0,7,116,73,77,69,7,218,8,6,7,19,37,69,206,2, -164,0,0,2,254,73,68,65,84,56,203,117,147,59,108,35,101,20,133,191,223,243, -136,71,30,103,69,6,19,66,3,238,162,20,100,109,89,132,149,88,154,221,77, -19,65,19,20,16,66,74,177,197,150,233,144,104,41,32,130,38,29,77,132,18, -68,21,32,5,171,164,176,65,72,65,187,128,180,107,51,91,197,196,202,171,25, -37,118,214,107,199,143,241,204,252,243,83,16,27,10,246,86,247,234,222,83, -156,115,207,17,60,167,182,183,183,31,135,97,152,7,208,117,189,178,184,184, -152,255,191,59,49,108,182,182,182,174,1,159,43,165,138,66,136,93,41,229, -96,97,97,1,128,157,157,29,52,77,27,147,82,46,104,154,118,7,248,100,105, -105,169,5,144,248,15,120,207,113,156,187,82,202,237,48,12,7,233,116,186, -47,165,68,74,137,109,219,126,24,134,3,165,212,15,142,227,220,5,246,174, -48,232,0,82,202,47,29,199,153,158,157,157,53,7,131,1,82,74,130,32,176,106, -181,26,0,51,51,51,73,195,48,16,66,8,203,178,204,74,165,50,221,104,52,190, -0,238,37,0,130,32,248,209,243,60,179,221,110,35,132,224,240,240,144,106, -181,138,239,251,248,190,79,181,90,229,224,224,0,77,211,232,118,187,120, -158,103,4,65,112,127,68,193,178,172,98,28,199,196,113,204,209,209,17,134, -97,144,205,102,17,66,32,132,32,155,205,98,89,22,39,39,39,116,187,93,164, -148,194,178,172,34,128,216,216,216,120,44,165,204,219,182,237,231,114,185, -164,231,121,100,50,25,202,229,114,71,74,89,82,74,9,93,215,111,231,243,121, -187,94,175,51,53,53,133,235,186,253,118,187,109,233,186,94,209,163,40,202, -207,207,207,3,36,155,205,38,169,84,138,179,179,51,164,148,187,203,203,203, -239,3,108,110,110,126,119,126,126,254,158,205,63,148,230,230,230,44,128, -98,177,152,75,196,113,204,80,237,68,34,129,166,105,92,209,25,189,120,184, -231,193,55,132,63,127,53,154,227,56,70,172,175,175,151,163,40,202,165,211, -105,191,80,40,36,135,95,112,93,183,35,158,121,15,95,56,254,227,85,53,102, -103,39,167,94,49,35,183,196,244,71,75,148,139,143,226,195,215,110,37,116, -195,172,136,43,31,152,141,70,99,80,40,20,176,109,27,165,20,189,94,143,230, -159,191,114,99,46,131,54,102,64,28,162,148,68,246,218,196,253,62,251,95, -127,251,155,223,14,110,234,0,23,23,23,243,74,41,101,24,134,0,48,12,131, -137,137,9,204,151,94,38,186,108,225,215,30,65,66,31,217,87,9,141,236,187, -119,110,156,222,255,101,127,104,164,119,50,153,76,104,154,166,217,239,247, -137,227,152,84,42,5,10,194,230,83,252,211,83,132,166,255,235,126,205,64, -104,105,162,110,160,116,128,78,167,243,49,240,166,235,186,211,245,122,221, -80,74,9,219,182,253,217,180,158,76,92,94,98,79,22,80,209,0,21,14,136,186, -45,100,167,207,95,63,61,248,61,78,116,223,26,41,189,186,186,122,45,149, -74,125,22,69,81,169,213,106,237,142,143,143,15,222,126,125,134,254,222, -14,199,71,199,188,248,100,239,211,88,104,247,174,223,122,99,114,255,225, -147,239,205,250,179,15,110,214,122,82,60,47,206,107,107,107,101,41,101, -110,24,231,149,149,149,124,233,186,83,18,74,213,111,187,79,63,28,222,253, -13,157,224,151,211,212,24,144,61,0,0,0,0,73,69,78,68,174,66,96,130}; - -static size_t xml_res_size_5 = 217; -static unsigned char xml_res_file_5[] = { -137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, -0,31,243,255,97,0,0,0,160,73,68,65,84,120,94,165,147,209,9,3,33,16,68,61, -43,72,41,41,193,18,44,97,59,72,41,146,10,66,42,184,116,112,233,32,37,92, -58,176,4,51,31,243,177,24,118,89,112,224,113,56,204,14,162,94,90,213,102, -248,5,220,64,157,252,23,184,131,183,87,250,0,3,28,64,64,33,66,111,128,102, -13,55,6,36,217,18,171,164,24,195,195,41,41,218,220,185,197,228,22,16,102, -247,172,140,10,158,41,40,102,107,158,204,111,120,156,217,12,62,106,155, -7,215,179,134,226,79,23,208,25,232,92,71,36,186,240,10,78,126,99,226,33, -134,146,222,53,174,12,183,96,222,127,202,91,160,96,56,63,211,186,126,62, -197,47,165,53,174,215,196,0,0,0,0,73,69,78,68,174,66,96,130}; - -static size_t xml_res_size_6 = 381; -static unsigned char xml_res_file_6[] = { -137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, -0,31,243,255,97,0,0,0,25,116,69,88,116,83,111,102,116,119,97,114,101,0, -65,100,111,98,101,32,73,109,97,103,101,82,101,97,100,121,113,201,101,60, -0,0,1,31,73,68,65,84,120,218,196,147,193,74,195,64,16,134,191,109,173,207, -161,143,80,162,40,241,222,10,42,22,250,16,162,87,47,62,66,81,122,215,183, -80,240,160,15,208,130,104,110,30,133,122,209,131,7,49,224,193,164,100,199, -217,52,74,176,110,148,122,240,135,97,254,204,204,254,252,179,97,141,136, -80,134,49,38,207,155,125,78,199,25,219,142,55,234,156,157,239,211,113,252, -235,124,94,40,199,7,90,135,200,227,211,177,220,222,237,72,91,185,111,190, -134,7,214,194,107,250,76,52,58,65,240,163,86,209,35,201,94,144,57,42,81, -41,144,74,140,249,147,64,54,17,48,50,131,128,41,28,80,255,175,21,156,131, -4,189,68,231,96,150,21,220,111,124,179,113,46,144,89,191,192,148,193,173, -62,131,100,76,184,218,132,56,125,200,157,132,129,94,69,15,153,111,48,212, -207,181,74,7,86,8,247,58,93,90,205,46,162,93,171,225,248,174,214,92,111, -106,213,111,222,66,208,238,113,179,178,12,139,11,147,218,232,30,174,174, -225,242,128,37,157,143,126,18,112,41,88,87,145,176,48,59,28,192,133,30, -86,26,253,250,49,57,145,141,35,196,133,227,190,121,159,131,79,145,34,71, -101,129,50,222,5,24,0,185,32,163,186,0,158,3,95,0,0,0,0,73,69,78,68,174, -66,96,130}; - -static size_t xml_res_size_7 = 391; -static unsigned char xml_res_file_7[] = { -137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, -0,31,243,255,97,0,0,0,25,116,69,88,116,83,111,102,116,119,97,114,101,0, -65,100,111,98,101,32,73,109,97,103,101,82,101,97,100,121,113,201,101,60, -0,0,1,41,73,68,65,84,120,218,98,252,255,255,63,3,50,96,100,100,132,179, -221,187,24,192,146,59,203,24,224,130,232,234,193,2,200,24,6,156,218,25, -254,95,126,48,11,140,65,108,156,234,177,25,224,210,193,240,255,244,237, -190,255,115,119,50,128,49,136,13,18,195,102,0,11,3,26,240,234,97,248,223, -16,208,196,112,245,105,17,195,63,86,136,216,213,103,69,12,109,33,205,12, -108,44,181,32,67,24,81,188,140,238,39,143,86,198,179,255,89,25,140,44,85, -25,24,228,69,33,98,143,94,51,48,28,187,13,84,252,155,225,220,142,234,255, -198,132,194,64,13,136,141,65,254,62,243,40,235,255,194,147,12,255,93,32, -97,0,210,168,70,208,11,64,112,11,68,48,1,29,250,231,255,123,6,70,38,32, -155,9,44,126,22,139,90,6,38,6,28,0,228,209,159,255,63,49,252,103,65,243, -52,177,6,128,192,159,255,159,25,24,152,25,240,2,188,46,248,197,240,137, -129,17,100,192,127,114,92,0,212,244,155,17,232,2,22,138,92,64,129,23,64, -38,252,98,250,68,208,5,56,165,65,209,200,200,250,131,129,21,202,38,217, -128,191,223,25,246,46,94,204,224,12,99,227,116,40,158,236,172,4,196,130, -80,246,123,32,190,135,45,59,3,4,24,0,58,206,177,253,3,180,249,115,0,0,0, -0,73,69,78,68,174,66,96,130}; - -static size_t xml_res_size_8 = 1039; -static unsigned char xml_res_file_8[] = { -60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, -110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, -115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, -47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, -47,119,120,120,114,99,34,32,118,101,114,115,105,111,110,61,34,50,46,51, -46,48,46,49,34,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, -61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,97,100,100, -34,62,71,85,73,95,100,97,116,97,98,97,115,101,101,120,112,108,111,114,101, -114,95,98,105,116,109,97,112,115,46,99,112,112,36,114,101,115,95,97,100, -100,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106, -101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34, -32,110,97,109,101,61,34,100,101,108,101,116,101,34,62,71,85,73,95,100,97, -116,97,98,97,115,101,101,120,112,108,111,114,101,114,95,98,105,116,109, -97,112,115,46,99,112,112,36,114,101,115,95,100,101,108,101,116,101,46,112, -110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116, -32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109, -101,61,34,100,111,99,117,109,101,110,116,45,111,112,101,110,34,62,71,85, -73,95,100,97,116,97,98,97,115,101,101,120,112,108,111,114,101,114,95,98, -105,116,109,97,112,115,46,99,112,112,36,46,46,95,99,111,100,101,108,105, -116,101,45,105,99,111,110,115,95,116,111,111,108,98,97,114,115,95,49,54, -95,115,116,97,110,100,97,114,100,95,100,111,99,117,109,101,110,116,45,111, -112,101,110,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111, -98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97, -112,34,32,110,97,109,101,61,34,100,111,99,117,109,101,110,116,45,115,97, -118,101,34,62,71,85,73,95,100,97,116,97,98,97,115,101,101,120,112,108,111, -114,101,114,95,98,105,116,109,97,112,115,46,99,112,112,36,46,46,95,99,111, -100,101,108,105,116,101,45,105,99,111,110,115,95,116,111,111,108,98,97, -114,115,95,49,54,95,115,116,97,110,100,97,114,100,95,100,111,99,117,109, -101,110,116,45,115,97,118,101,46,112,110,103,60,47,111,98,106,101,99,116, -62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120, -66,105,116,109,97,112,34,32,110,97,109,101,61,34,101,120,101,99,117,116, -101,34,62,71,85,73,95,100,97,116,97,98,97,115,101,101,120,112,108,111,114, -101,114,95,98,105,116,109,97,112,115,46,99,112,112,36,46,46,95,99,111,100, -101,108,105,116,101,45,105,99,111,110,115,95,116,111,111,108,98,97,114, -115,95,49,54,95,98,117,105,108,100,95,101,120,101,99,117,116,101,46,112, -110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116, -32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109, -101,61,34,104,105,115,116,111,114,121,34,62,71,85,73,95,100,97,116,97,98, -97,115,101,101,120,112,108,111,114,101,114,95,98,105,116,109,97,112,115, -46,99,112,112,36,114,101,115,95,104,105,115,116,111,114,121,46,112,110, -103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32, -99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109, -101,61,34,109,111,118,101,45,100,111,119,110,34,62,71,85,73,95,100,97,116, -97,98,97,115,101,101,120,112,108,111,114,101,114,95,98,105,116,109,97,112, -115,46,99,112,112,36,114,101,115,95,109,111,118,101,45,100,111,119,110, -46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101, -99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110, -97,109,101,61,34,109,111,118,101,45,117,112,34,62,71,85,73,95,100,97,116, -97,98,97,115,101,101,120,112,108,111,114,101,114,95,98,105,116,109,97,112, -115,46,99,112,112,36,114,101,115,95,109,111,118,101,45,117,112,46,112,110, -103,60,47,111,98,106,101,99,116,62,10,60,47,114,101,115,111,117,114,99, -101,62,10}; - -void wxCrafterwyt5ghInitBitmapResources() -{ - - // Check for memory FS. If not present, load the handler: - { - wxMemoryFSHandler::AddFile(wxT("XRC_resource/dummy_file"), wxT("dummy one")); - wxFileSystem fsys; - wxFSFile *f = fsys.OpenFile(wxT("memory:XRC_resource/dummy_file")); - wxMemoryFSHandler::RemoveFile(wxT("XRC_resource/dummy_file")); - if (f) delete f; - else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase); - } - - XRC_ADD_FILE(wxT("XRC_resource/GUI_databaseexplorer_bitmaps.cpp$res_add.png"), xml_res_file_0, xml_res_size_0, wxT("image/x-apple-ios-png")); - XRC_ADD_FILE(wxT("XRC_resource/GUI_databaseexplorer_bitmaps.cpp$res_delete.png"), xml_res_file_1, xml_res_size_1, wxT("image/x-apple-ios-png")); - XRC_ADD_FILE(wxT("XRC_resource/GUI_databaseexplorer_bitmaps.cpp$.._codelite-icons_toolbars_16_standard_document-open.png"), xml_res_file_2, xml_res_size_2, wxT("image/x-apple-ios-png")); - XRC_ADD_FILE(wxT("XRC_resource/GUI_databaseexplorer_bitmaps.cpp$.._codelite-icons_toolbars_16_standard_document-save.png"), xml_res_file_3, xml_res_size_3, wxT("image/x-apple-ios-png")); - XRC_ADD_FILE(wxT("XRC_resource/GUI_databaseexplorer_bitmaps.cpp$.._codelite-icons_toolbars_16_build_execute.png"), xml_res_file_4, xml_res_size_4, wxT("image/x-apple-ios-png")); - XRC_ADD_FILE(wxT("XRC_resource/GUI_databaseexplorer_bitmaps.cpp$res_history.png"), xml_res_file_5, xml_res_size_5, wxT("image/x-apple-ios-png")); - XRC_ADD_FILE(wxT("XRC_resource/GUI_databaseexplorer_bitmaps.cpp$res_move-down.png"), xml_res_file_6, xml_res_size_6, wxT("image/x-apple-ios-png")); - XRC_ADD_FILE(wxT("XRC_resource/GUI_databaseexplorer_bitmaps.cpp$res_move-up.png"), xml_res_file_7, xml_res_size_7, wxT("image/x-apple-ios-png")); - XRC_ADD_FILE(wxT("XRC_resource/GUI_databaseexplorer_bitmaps.cpp$_home_eran_devl_codelite_DatabaseExplorer_GUI_databaseexplorer_bitmaps.xrc"), xml_res_file_8, xml_res_size_8, wxT("text/xml")); - wxXmlResource::Get()->Load(wxT("memory:XRC_resource/GUI_databaseexplorer_bitmaps.cpp$_home_eran_devl_codelite_DatabaseExplorer_GUI_databaseexplorer_bitmaps.xrc")); -} +// +// This file was automatically generated by wxrc, do not edit by hand. +// + +#include + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +#include +#include +#include +#include + +#if wxCHECK_VERSION(2,8,5) && wxABI_VERSION >= 20805 + #define XRC_ADD_FILE(name, data, size, mime) \ + wxMemoryFSHandler::AddFileWithMimeType(name, data, size, mime) +#else + #define XRC_ADD_FILE(name, data, size, mime) \ + wxMemoryFSHandler::AddFile(name, data, size) +#endif + +static size_t xml_res_size_0 = 601; +static unsigned char xml_res_file_0[] = { +137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, +0,31,243,255,97,0,0,2,32,73,68,65,84,120,94,165,147,79,72,84,81,24,197, +127,119,254,104,190,133,229,42,93,20,36,180,41,8,98,104,25,20,77,86,58, +98,155,160,69,182,9,162,32,168,69,244,7,90,4,65,78,57,213,152,202,20,9, +145,139,164,17,215,33,70,133,5,233,48,165,32,4,69,218,166,154,26,103,140, +153,50,53,103,222,215,251,144,121,200,219,184,232,192,119,223,185,231,187, +231,112,239,123,239,26,17,225,191,224,13,104,142,17,106,186,193,72,184, +3,217,231,148,62,157,185,28,234,100,36,114,139,144,215,235,99,21,14,222, +164,119,189,85,155,62,23,57,31,238,59,243,144,196,169,187,92,63,126,153, +179,173,237,236,222,182,35,92,21,240,167,35,49,146,120,82,42,230,228,137, +190,6,89,144,103,50,254,165,93,18,175,144,248,11,164,235,37,114,239,53, +210,159,106,148,196,232,78,57,210,237,23,103,39,189,174,87,135,150,24,161, +163,61,150,252,88,28,146,129,201,122,233,113,12,241,81,164,130,46,39,236, +254,27,228,193,88,80,58,158,214,203,225,56,210,122,155,144,123,132,229, +18,157,145,93,109,76,125,235,35,191,240,29,252,96,27,92,148,181,12,136, +127,153,26,107,142,250,58,176,203,196,0,2,40,96,239,150,141,155,152,202, +14,80,178,193,22,88,178,113,161,156,18,4,5,39,224,47,181,22,96,216,227, +190,131,253,81,228,249,244,73,233,159,220,32,107,33,241,22,185,52,132,52, +119,34,238,17,140,129,194,252,44,38,224,99,77,248,188,83,29,12,228,139, +25,230,203,115,116,191,51,220,73,27,162,99,134,10,148,171,214,51,97,240, +27,176,109,48,102,85,64,121,137,212,167,204,12,178,88,199,186,106,168,113, +170,186,10,23,202,85,211,94,177,0,191,254,24,74,139,164,220,128,220,123, +162,31,190,102,201,205,218,136,237,35,16,128,96,0,23,202,85,43,151,32,155, +53,100,126,10,89,199,227,6,76,12,48,92,204,49,56,49,93,96,230,35,20,242, +80,21,132,39,159,27,180,148,171,230,244,12,211,25,225,183,174,125,204,176, +247,46,108,110,186,202,136,254,36,167,31,25,185,144,68,46,14,174,148,114, +213,180,23,190,66,82,215,186,94,207,101,106,220,222,198,177,3,215,24,111, +137,233,167,90,41,229,170,105,175,98,246,6,172,134,5,108,5,66,158,82,205, +242,222,163,127,183,15,63,49,58,119,32,9,0,0,0,0,73,69,78,68,174,66,96, +130}; + +static size_t xml_res_size_1 = 473; +static unsigned char xml_res_file_1[] = { +137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, +0,31,243,255,97,0,0,0,25,116,69,88,116,83,111,102,116,119,97,114,101,0, +65,100,111,98,101,32,73,109,97,103,101,82,101,97,100,121,113,201,101,60, +0,0,1,123,73,68,65,84,120,218,98,248,255,255,63,3,12,28,113,48,248,15,194, +12,56,0,186,60,88,47,204,0,144,196,183,195,187,192,24,155,33,216,228,225, +6,128,4,190,238,222,240,255,169,167,46,24,131,216,200,134,224,146,7,233, +101,129,91,241,227,59,3,19,11,43,152,249,105,82,19,131,97,113,57,195,17, +134,78,176,33,32,54,72,12,38,15,82,11,3,140,32,83,24,25,25,141,129,38,158, +49,200,206,99,248,182,108,38,92,146,43,42,29,76,163,139,93,152,58,137,193, +230,192,5,19,160,222,179,48,3,64,114,96,67,12,147,211,25,190,111,90,138, +53,16,57,253,162,25,206,207,157,9,214,12,228,158,5,235,69,50,0,97,72,108, +60,195,207,61,155,80,52,179,187,248,49,156,95,188,16,174,25,22,136,44,104, +150,128,37,24,127,254,68,248,23,230,87,160,24,178,26,244,48,128,135,182, +81,96,16,195,223,11,39,177,122,129,217,192,156,225,220,250,117,32,87,48, +194,92,0,55,0,164,217,216,199,155,225,223,205,43,112,13,76,234,58,96,26, +93,236,236,150,173,96,67,224,94,0,105,54,113,119,99,248,127,247,38,220, +233,140,114,74,12,103,128,10,65,0,44,247,232,30,196,4,160,26,16,255,8,208, +1,32,101,240,48,96,250,253,155,225,63,43,84,179,136,4,195,169,157,187,96, +1,6,82,124,198,204,201,145,225,255,155,23,16,121,160,90,172,233,192,194, +206,6,44,120,226,208,17,148,208,134,197,14,186,60,40,29,48,32,101,38,99, +164,204,98,140,37,12,49,228,81,50,19,76,17,14,205,88,229,225,177,64,9,0, +8,48,0,172,11,9,216,246,43,15,212,0,0,0,0,73,69,78,68,174,66,96,130}; + +static size_t xml_res_size_2 = 528; +static unsigned char xml_res_file_2[] = { +137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, +0,31,243,255,97,0,0,0,6,98,75,71,68,0,255,0,255,0,255,160,189,167,147,0, +0,1,197,73,68,65,84,56,141,141,146,193,138,19,65,16,134,191,158,108,88, +36,89,5,3,129,125,2,47,190,192,128,18,18,124,135,89,188,248,18,190,134, +55,89,240,228,77,38,16,68,246,148,107,192,187,224,197,37,176,34,234,34, +30,18,150,37,187,59,153,238,170,242,48,153,153,36,163,224,15,221,93,93, +93,245,255,213,93,237,216,96,54,155,25,123,200,178,140,78,167,179,242,222, +191,28,14,135,111,246,207,1,92,154,166,6,208,235,245,136,227,120,231,240, +236,236,3,163,209,51,230,243,185,169,234,199,193,96,48,112,206,237,8,69, +0,73,146,224,125,142,136,236,140,229,114,73,191,223,39,142,99,39,18,158, +78,167,83,77,211,212,74,81,128,131,210,240,222,35,34,141,18,79,79,95,3, +208,237,118,57,58,186,79,146,36,76,38,147,245,95,8,114,84,117,39,249,228, +228,121,101,175,86,43,230,243,243,134,64,69,144,255,163,130,18,34,130,15, +161,225,119,105,154,90,146,36,156,191,122,65,235,222,3,76,13,172,24,166, +96,162,133,45,96,170,56,28,226,5,39,186,14,215,87,135,85,5,180,187,28,63, +25,225,112,27,234,109,153,93,195,48,80,61,188,120,251,206,87,4,38,138,121, +79,118,249,185,206,112,155,85,3,102,10,42,152,6,48,193,84,200,126,255,106, +215,21,248,128,121,143,222,221,98,18,54,193,82,4,75,192,196,99,97,93,172, +82,144,220,253,248,46,117,23,150,11,236,106,129,92,126,133,144,99,193,99, +234,81,9,128,194,246,247,113,197,100,121,94,95,225,230,226,11,250,248,17, +246,243,91,21,228,112,180,182,222,194,10,103,5,93,75,221,70,212,112,153, +39,186,201,26,74,141,125,233,18,171,9,204,43,209,58,39,90,101,205,46,108, +39,237,145,30,0,140,199,99,142,111,51,62,77,222,99,98,32,134,169,21,157, +41,247,82,191,131,107,181,112,81,4,88,86,82,245,128,135,64,155,255,131, +7,150,192,226,15,31,67,27,228,150,149,150,252,0,0,0,0,73,69,78,68,174,66, +96,130}; + +static size_t xml_res_size_3 = 472; +static unsigned char xml_res_file_3[] = { +137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, +0,31,243,255,97,0,0,1,159,73,68,65,84,120,94,149,147,49,171,19,65,16,199, +127,179,119,121,247,48,42,168,33,240,34,68,2,15,108,4,65,132,7,162,149, +226,7,176,11,216,61,68,63,131,98,103,165,157,40,126,1,209,66,76,97,237, +19,11,21,17,139,215,170,69,32,22,54,38,221,29,73,110,103,71,178,132,35, +9,10,231,15,134,255,176,59,243,103,102,97,101,239,206,203,215,170,122,131, +8,6,176,153,255,235,206,57,247,66,46,222,122,94,222,223,191,154,238,189, +127,12,33,96,33,16,213,162,174,156,105,149,99,198,219,235,247,120,242,234, +19,41,128,6,227,247,179,135,152,42,117,9,215,238,70,77,1,81,85,118,30,60, +141,206,117,41,189,86,6,120,53,78,222,188,205,255,160,111,190,173,26,4, +84,149,209,104,68,29,122,189,222,218,4,162,26,72,146,36,94,212,69,125,168, +12,80,85,0,134,195,33,117,232,118,187,107,19,80,46,221,234,79,192,198,10, +62,176,255,232,3,219,147,47,36,197,79,254,138,0,8,243,237,51,228,205,115, +236,158,62,190,250,136,10,243,34,54,95,185,124,137,44,203,104,52,26,85, +56,231,152,205,102,228,121,206,193,193,59,242,173,93,188,111,174,174,160, +132,16,112,46,161,213,106,49,24,12,0,232,247,251,76,167,83,138,162,88,104, +12,196,197,90,191,92,193,1,18,212,226,161,8,52,155,77,150,48,30,143,153, +76,38,11,173,114,51,195,130,82,150,149,1,204,75,79,234,192,32,22,45,217, +108,142,106,16,39,40,189,7,192,57,145,207,135,63,126,77,119,78,29,1,179, +88,212,233,116,104,183,219,155,205,49,48,227,196,177,173,106,130,197,111, +60,42,194,199,204,249,179,231,211,175,153,72,138,97,96,68,5,214,254,136, +96,28,250,11,185,74,38,170,246,253,15,74,156,9,1,76,118,27,84,0,0,0,0,73, +69,78,68,174,66,96,130}; + +static size_t xml_res_size_4 = 894; +static unsigned char xml_res_file_4[] = { +137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, +0,31,243,255,97,0,0,0,1,115,82,71,66,0,174,206,28,233,0,0,0,6,98,75,71, +68,0,255,0,255,0,255,160,189,167,147,0,0,0,9,112,72,89,115,0,0,11,19,0, +0,11,19,1,0,154,156,24,0,0,0,7,116,73,77,69,7,218,8,6,7,19,37,69,206,2, +164,0,0,2,254,73,68,65,84,56,203,117,147,59,108,35,101,20,133,191,223,243, +136,71,30,103,69,6,19,66,3,238,162,20,100,109,89,132,149,88,154,221,77, +19,65,19,20,16,66,74,177,197,150,233,144,104,41,32,130,38,29,77,132,18, +68,21,32,5,171,164,176,65,72,65,187,128,180,107,51,91,197,196,202,171,25, +37,118,214,107,199,143,241,204,252,243,83,16,27,10,246,86,247,234,222,83, +156,115,207,17,60,167,182,183,183,31,135,97,152,7,208,117,189,178,184,184, +152,255,191,59,49,108,182,182,182,174,1,159,43,165,138,66,136,93,41,229, +96,97,97,1,128,157,157,29,52,77,27,147,82,46,104,154,118,7,248,100,105, +105,169,5,144,248,15,120,207,113,156,187,82,202,237,48,12,7,233,116,186, +47,165,68,74,137,109,219,126,24,134,3,165,212,15,142,227,220,5,246,174, +48,232,0,82,202,47,29,199,153,158,157,157,53,7,131,1,82,74,130,32,176,106, +181,26,0,51,51,51,73,195,48,16,66,8,203,178,204,74,165,50,221,104,52,190, +0,238,37,0,130,32,248,209,243,60,179,221,110,35,132,224,240,240,144,106, +181,138,239,251,248,190,79,181,90,229,224,224,0,77,211,232,118,187,120, +158,103,4,65,112,127,68,193,178,172,98,28,199,196,113,204,209,209,17,134, +97,144,205,102,17,66,32,132,32,155,205,98,89,22,39,39,39,116,187,93,164, +148,194,178,172,34,128,216,216,216,120,44,165,204,219,182,237,231,114,185, +164,231,121,100,50,25,202,229,114,71,74,89,82,74,9,93,215,111,231,243,121, +187,94,175,51,53,53,133,235,186,253,118,187,109,233,186,94,209,163,40,202, +207,207,207,3,36,155,205,38,169,84,138,179,179,51,164,148,187,203,203,203, +239,3,108,110,110,126,119,126,126,254,158,205,63,148,230,230,230,44,128, +98,177,152,75,196,113,204,80,237,68,34,129,166,105,92,209,25,189,120,184, +231,193,55,132,63,127,53,154,227,56,70,172,175,175,151,163,40,202,165,211, +105,191,80,40,36,135,95,112,93,183,35,158,121,15,95,56,254,227,85,53,102, +103,39,167,94,49,35,183,196,244,71,75,148,139,143,226,195,215,110,37,116, +195,172,136,43,31,152,141,70,99,80,40,20,176,109,27,165,20,189,94,143,230, +159,191,114,99,46,131,54,102,64,28,162,148,68,246,218,196,253,62,251,95, +127,251,155,223,14,110,234,0,23,23,23,243,74,41,101,24,134,0,48,12,131, +137,137,9,204,151,94,38,186,108,225,215,30,65,66,31,217,87,9,141,236,187, +119,110,156,222,255,101,127,104,164,119,50,153,76,104,154,166,217,239,247, +137,227,152,84,42,5,10,194,230,83,252,211,83,132,166,255,235,126,205,64, +104,105,162,110,160,116,128,78,167,243,49,240,166,235,186,211,245,122,221, +80,74,9,219,182,253,217,180,158,76,92,94,98,79,22,80,209,0,21,14,136,186, +45,100,167,207,95,63,61,248,61,78,116,223,26,41,189,186,186,122,45,149, +74,125,22,69,81,169,213,106,237,142,143,143,15,222,126,125,134,254,222, +14,199,71,199,188,248,100,239,211,88,104,247,174,223,122,99,114,255,225, +147,239,205,250,179,15,110,214,122,82,60,47,206,107,107,107,101,41,101, +110,24,231,149,149,149,124,233,186,83,18,74,213,111,187,79,63,28,222,253, +13,157,224,151,211,212,24,144,61,0,0,0,0,73,69,78,68,174,66,96,130}; + +static size_t xml_res_size_5 = 217; +static unsigned char xml_res_file_5[] = { +137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, +0,31,243,255,97,0,0,0,160,73,68,65,84,120,94,165,147,209,9,3,33,16,68,61, +43,72,41,41,193,18,44,97,59,72,41,146,10,66,42,184,116,112,233,32,37,92, +58,176,4,51,31,243,177,24,118,89,112,224,113,56,204,14,162,94,90,213,102, +248,5,220,64,157,252,23,184,131,183,87,250,0,3,28,64,64,33,66,111,128,102, +13,55,6,36,217,18,171,164,24,195,195,41,41,218,220,185,197,228,22,16,102, +247,172,140,10,158,41,40,102,107,158,204,111,120,156,217,12,62,106,155, +7,215,179,134,226,79,23,208,25,232,92,71,36,186,240,10,78,126,99,226,33, +134,146,222,53,174,12,183,96,222,127,202,91,160,96,56,63,211,186,126,62, +197,47,165,53,174,215,196,0,0,0,0,73,69,78,68,174,66,96,130}; + +static size_t xml_res_size_6 = 381; +static unsigned char xml_res_file_6[] = { +137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, +0,31,243,255,97,0,0,0,25,116,69,88,116,83,111,102,116,119,97,114,101,0, +65,100,111,98,101,32,73,109,97,103,101,82,101,97,100,121,113,201,101,60, +0,0,1,31,73,68,65,84,120,218,196,147,193,74,195,64,16,134,191,109,173,207, +161,143,80,162,40,241,222,10,42,22,250,16,162,87,47,62,66,81,122,215,183, +80,240,160,15,208,130,104,110,30,133,122,209,131,7,49,224,193,164,100,199, +217,52,74,176,110,148,122,240,135,97,254,204,204,254,252,179,97,141,136, +80,134,49,38,207,155,125,78,199,25,219,142,55,234,156,157,239,211,113,252, +235,124,94,40,199,7,90,135,200,227,211,177,220,222,237,72,91,185,111,190, +134,7,214,194,107,250,76,52,58,65,240,163,86,209,35,201,94,144,57,42,81, +41,144,74,140,249,147,64,54,17,48,50,131,128,41,28,80,255,175,21,156,131, +4,189,68,231,96,150,21,220,111,124,179,113,46,144,89,191,192,148,193,173, +62,131,100,76,184,218,132,56,125,200,157,132,129,94,69,15,153,111,48,212, +207,181,74,7,86,8,247,58,93,90,205,46,162,93,171,225,248,174,214,92,111, +106,213,111,222,66,208,238,113,179,178,12,139,11,147,218,232,30,174,174, +225,242,128,37,157,143,126,18,112,41,88,87,145,176,48,59,28,192,133,30, +86,26,253,250,49,57,145,141,35,196,133,227,190,121,159,131,79,145,34,71, +101,129,50,222,5,24,0,185,32,163,186,0,158,3,95,0,0,0,0,73,69,78,68,174, +66,96,130}; + +static size_t xml_res_size_7 = 391; +static unsigned char xml_res_file_7[] = { +137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, +0,31,243,255,97,0,0,0,25,116,69,88,116,83,111,102,116,119,97,114,101,0, +65,100,111,98,101,32,73,109,97,103,101,82,101,97,100,121,113,201,101,60, +0,0,1,41,73,68,65,84,120,218,98,252,255,255,63,3,50,96,100,100,132,179, +221,187,24,192,146,59,203,24,224,130,232,234,193,2,200,24,6,156,218,25, +254,95,126,48,11,140,65,108,156,234,177,25,224,210,193,240,255,244,237, +190,255,115,119,50,128,49,136,13,18,195,102,0,11,3,26,240,234,97,248,223, +16,208,196,112,245,105,17,195,63,86,136,216,213,103,69,12,109,33,205,12, +108,44,181,32,67,24,81,188,140,238,39,143,86,198,179,255,89,25,140,44,85, +25,24,228,69,33,98,143,94,51,48,28,187,13,84,252,155,225,220,142,234,255, +198,132,194,64,13,136,141,65,254,62,243,40,235,255,194,147,12,255,93,32, +97,0,210,168,70,208,11,64,112,11,68,48,1,29,250,231,255,123,6,70,38,32, +155,9,44,126,22,139,90,6,38,6,28,0,228,209,159,255,63,49,252,103,65,243, +52,177,6,128,192,159,255,159,25,24,152,25,240,2,188,46,248,197,240,137, +129,17,100,192,127,114,92,0,212,244,155,17,232,2,22,138,92,64,129,23,64, +38,252,98,250,68,208,5,56,165,65,209,200,200,250,131,129,21,202,38,217, +128,191,223,25,246,46,94,204,224,12,99,227,116,40,158,236,172,4,196,130, +80,246,123,32,190,135,45,59,3,4,24,0,58,206,177,253,3,180,249,115,0,0,0, +0,73,69,78,68,174,66,96,130}; + +static size_t xml_res_size_8 = 1021; +static unsigned char xml_res_file_8[] = { +60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, +110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, +115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, +47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, +47,119,120,120,114,99,34,62,10,32,32,60,111,98,106,101,99,116,32,99,108, +97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61, +34,97,100,100,34,62,71,85,73,95,100,97,116,97,98,97,115,101,101,120,112, +108,111,114,101,114,95,98,105,116,109,97,112,115,46,99,112,112,36,114,101, +115,95,97,100,100,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32, +60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116, +109,97,112,34,32,110,97,109,101,61,34,100,101,108,101,116,101,34,62,71, +85,73,95,100,97,116,97,98,97,115,101,101,120,112,108,111,114,101,114,95, +98,105,116,109,97,112,115,46,99,112,112,36,114,101,115,95,100,101,108,101, +116,101,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98, +106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112, +34,32,110,97,109,101,61,34,100,111,99,117,109,101,110,116,45,111,112,101, +110,34,62,71,85,73,95,100,97,116,97,98,97,115,101,101,120,112,108,111,114, +101,114,95,98,105,116,109,97,112,115,46,99,112,112,36,46,46,95,99,111,100, +101,108,105,116,101,45,105,99,111,110,115,95,116,111,111,108,98,97,114, +115,95,49,54,95,115,116,97,110,100,97,114,100,95,100,111,99,117,109,101, +110,116,45,111,112,101,110,46,112,110,103,60,47,111,98,106,101,99,116,62, +10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66, +105,116,109,97,112,34,32,110,97,109,101,61,34,100,111,99,117,109,101,110, +116,45,115,97,118,101,34,62,71,85,73,95,100,97,116,97,98,97,115,101,101, +120,112,108,111,114,101,114,95,98,105,116,109,97,112,115,46,99,112,112, +36,46,46,95,99,111,100,101,108,105,116,101,45,105,99,111,110,115,95,116, +111,111,108,98,97,114,115,95,49,54,95,115,116,97,110,100,97,114,100,95, +100,111,99,117,109,101,110,116,45,115,97,118,101,46,112,110,103,60,47,111, +98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115, +115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,101, +120,101,99,117,116,101,34,62,71,85,73,95,100,97,116,97,98,97,115,101,101, +120,112,108,111,114,101,114,95,98,105,116,109,97,112,115,46,99,112,112, +36,46,46,95,99,111,100,101,108,105,116,101,45,105,99,111,110,115,95,116, +111,111,108,98,97,114,115,95,49,54,95,98,117,105,108,100,95,101,120,101, +99,117,116,101,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60, +111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109, +97,112,34,32,110,97,109,101,61,34,104,105,115,116,111,114,121,34,62,71, +85,73,95,100,97,116,97,98,97,115,101,101,120,112,108,111,114,101,114,95, +98,105,116,109,97,112,115,46,99,112,112,36,114,101,115,95,104,105,115,116, +111,114,121,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111, +98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97, +112,34,32,110,97,109,101,61,34,109,111,118,101,45,100,111,119,110,34,62, +71,85,73,95,100,97,116,97,98,97,115,101,101,120,112,108,111,114,101,114, +95,98,105,116,109,97,112,115,46,99,112,112,36,114,101,115,95,109,111,118, +101,45,100,111,119,110,46,112,110,103,60,47,111,98,106,101,99,116,62,10, +32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105, +116,109,97,112,34,32,110,97,109,101,61,34,109,111,118,101,45,117,112,34, +62,71,85,73,95,100,97,116,97,98,97,115,101,101,120,112,108,111,114,101, +114,95,98,105,116,109,97,112,115,46,99,112,112,36,114,101,115,95,109,111, +118,101,45,117,112,46,112,110,103,60,47,111,98,106,101,99,116,62,10,60, +47,114,101,115,111,117,114,99,101,62,10}; + +void wxCrafterwyt5ghInitBitmapResources() +{ + + // Check for memory FS. If not present, load the handler: + { + wxMemoryFSHandler::AddFile(wxT("XRC_resource/dummy_file"), wxT("dummy one")); + wxFileSystem fsys; + wxFSFile *f = fsys.OpenFile(wxT("memory:XRC_resource/dummy_file")); + wxMemoryFSHandler::RemoveFile(wxT("XRC_resource/dummy_file")); + if (f) delete f; + else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase); + } + + XRC_ADD_FILE(wxT("XRC_resource/GUI_databaseexplorer_bitmaps.cpp$res_add.png"), xml_res_file_0, xml_res_size_0, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/GUI_databaseexplorer_bitmaps.cpp$res_delete.png"), xml_res_file_1, xml_res_size_1, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/GUI_databaseexplorer_bitmaps.cpp$.._codelite-icons_toolbars_16_standard_document-open.png"), xml_res_file_2, xml_res_size_2, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/GUI_databaseexplorer_bitmaps.cpp$.._codelite-icons_toolbars_16_standard_document-save.png"), xml_res_file_3, xml_res_size_3, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/GUI_databaseexplorer_bitmaps.cpp$.._codelite-icons_toolbars_16_build_execute.png"), xml_res_file_4, xml_res_size_4, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/GUI_databaseexplorer_bitmaps.cpp$res_history.png"), xml_res_file_5, xml_res_size_5, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/GUI_databaseexplorer_bitmaps.cpp$res_move-down.png"), xml_res_file_6, xml_res_size_6, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/GUI_databaseexplorer_bitmaps.cpp$res_move-up.png"), xml_res_file_7, xml_res_size_7, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/GUI_databaseexplorer_bitmaps.cpp$C__src_codelite_DatabaseExplorer_GUI_databaseexplorer_bitmaps.xrc"), xml_res_file_8, xml_res_size_8, wxT("text/xml")); + wxXmlResource::Get()->Load(wxT("memory:XRC_resource/GUI_databaseexplorer_bitmaps.cpp$C__src_codelite_DatabaseExplorer_GUI_databaseexplorer_bitmaps.xrc")); +} diff -Nru codelite-8.0.1+dfsg2/DatabaseExplorer/GUI.h codelite-9.0+dfsg/DatabaseExplorer/GUI.h --- codelite-8.0.1+dfsg2/DatabaseExplorer/GUI.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/DatabaseExplorer/GUI.h 2015-10-11 13:56:07.000000000 +0000 @@ -4,8 +4,8 @@ // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// -#ifndef GUI_BASE_CLASSES_H -#define GUI_BASE_CLASSES_H +#ifndef CODELITE_DATABASEEXPLORER_GUI_BASE_CLASSES_H +#define CODELITE_DATABASEEXPLORER_GUI_BASE_CLASSES_H #include #include @@ -42,6 +42,12 @@ #include #include #include +#if wxVERSION_NUMBER >= 2900 +#include +#include +#include +#include +#endif class _ImageExportDialog : public wxDialog { diff -Nru codelite-8.0.1+dfsg2/DatabaseExplorer/GUI.wxcp codelite-9.0+dfsg/DatabaseExplorer/GUI.wxcp --- codelite-8.0.1+dfsg2/DatabaseExplorer/GUI.wxcp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/DatabaseExplorer/GUI.wxcp 2015-10-11 13:56:07.000000000 +0000 @@ -1,7 +1,7 @@ { "metadata": { "m_generatedFilesDir": ".", - "m_objCounter": 181, + "m_objCounter": 182, "m_includeFiles": [], "m_bitmapFunction": "wxCrafterwyt5ghInitBitmapResources", "m_bitmapsFile": "GUI_databaseexplorer_bitmaps.cpp", @@ -72,6 +72,10 @@ "m_label": "Style:", "m_value": "" }, { + "type": "bool", + "m_label": "Enable Window Persistency:", + "m_value": true + }, { "type": "string", "m_label": "Title:", "m_value": "Export image" @@ -135,6 +139,10 @@ "m_sizerFlags": [], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "mainSizer" }, { @@ -233,6 +241,10 @@ "m_sizerFlags": ["wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "fpSizer" }, { @@ -439,6 +451,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "scaleSizer" }, { @@ -541,6 +557,10 @@ "m_sizerFlags": ["wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "customScaleSizer" }, { @@ -1041,6 +1061,10 @@ "m_sizerFlags": [], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "mainSizer" }, { @@ -1153,6 +1177,10 @@ "m_sizerFlags": [], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "fgSizer3" }, { @@ -1191,7 +1219,7 @@ "border": 5, "gbSpan": "1,1", "gbPosition": "0,0", - "m_styles": ["wxAUI_TB_DEFAULT_STYLE"], + "m_styles": ["wxAUI_TB_PLAIN_BACKGROUND", "wxAUI_TB_DEFAULT_STYLE"], "m_sizerFlags": ["wxEXPAND"], "m_properties": [{ "type": "winid", @@ -1674,6 +1702,10 @@ "m_sizerFlags": [], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer23" }, { @@ -1697,6 +1729,10 @@ "m_sizerFlags": ["wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer25" }, { @@ -1713,7 +1749,7 @@ "m_children": [{ "m_type": 4466, "proportion": 1, - "border": 5, + "border": 2, "gbSpan": "1,1", "gbPosition": "0,0", "m_styles": [], @@ -1908,6 +1944,10 @@ "m_sizerFlags": [], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer24" }, { @@ -1924,7 +1964,7 @@ "m_children": [{ "m_type": 4426, "proportion": 1, - "border": 5, + "border": 2, "gbSpan": ",", "gbPosition": ",", "m_styles": ["wxBORDER_THEME"], @@ -2176,6 +2216,10 @@ "m_label": "Style:", "m_value": "" }, { + "type": "bool", + "m_label": "Enable Window Persistency:", + "m_value": true + }, { "type": "string", "m_label": "Title:", "m_value": "Select dbAdapter" @@ -2232,6 +2276,10 @@ "m_sizerFlags": [], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer9" }, { @@ -2629,6 +2677,10 @@ "m_sizerFlags": [], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer28" }, { @@ -2835,6 +2887,10 @@ "m_label": "Style:", "m_value": "" }, { + "type": "bool", + "m_label": "Enable Window Persistency:", + "m_value": true + }, { "type": "string", "m_label": "Title:", "m_value": "Connection settings" @@ -2891,6 +2947,10 @@ "m_sizerFlags": [], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer4" }, { @@ -3045,7 +3105,7 @@ }, { "type": "bool", "m_label": "Selected", - "m_value": false + "m_value": true }, { "type": "bool", "m_label": "Null Page", @@ -3062,6 +3122,10 @@ "m_sizerFlags": [], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer27" }, { @@ -3085,6 +3149,10 @@ "m_sizerFlags": ["wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "fgSizer41" }, { @@ -3199,7 +3267,7 @@ "gbSpan": ",", "gbPosition": ",", "m_styles": ["wxFLP_USE_TEXTCTRL", "wxFLP_OPEN"], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND", "wxALIGN_CENTER_HORIZONTAL", "wxALIGN_CENTER_VERTICAL"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND", "wxALIGN_CENTER_VERTICAL"], "m_properties": [{ "type": "winid", "m_label": "ID:", @@ -3243,7 +3311,7 @@ }, { "type": "bool", "m_label": "Focused", - "m_value": false + "m_value": true }, { "type": "string", "m_label": "Class Name:", @@ -3445,7 +3513,7 @@ }], "m_events": [], "m_children": [{ - "m_type": 4403, + "m_type": 4401, "proportion": 0, "border": 0, "gbSpan": ",", @@ -3454,36 +3522,21 @@ "m_sizerFlags": [], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", - "m_value": "fgSizer3" + "m_value": "boxSizer182" }, { "type": "string", "m_label": "Style:", "m_value": "" }, { - "type": "string", - "m_label": "# Columns:", - "m_value": "1" - }, { - "type": "string", - "m_label": "# Rows:", - "m_value": "0" - }, { - "type": "string", - "m_label": "Growable columns:", - "m_value": "0" - }, { - "type": "string", - "m_label": "Growable rows:", - "m_value": "1" - }, { - "type": "string", - "m_label": "Horizontal gap:", - "m_value": "0" - }, { - "type": "string", - "m_label": "Vertical gap:", - "m_value": "0" + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] }], "m_events": [], "m_children": [{ @@ -3496,6 +3549,10 @@ "m_sizerFlags": ["wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "fgSizer4" }, { @@ -4185,125 +4242,101 @@ "m_children": [] }] }, { - "m_type": 4401, - "proportion": 0, + "m_type": 4412, + "proportion": 1, "border": 5, "gbSpan": ",", "gbPosition": ",", "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND", "wxALIGN_CENTER_HORIZONTAL"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,100" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { "type": "string", "m_label": "Name:", - "m_value": "bSizer8" + "m_value": "m_listBox2" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" }, { "type": "string", "m_label": "Style:", "m_value": "" }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + "type": "multi-string", + "m_label": "Choices:", + "m_value": "" + }, { + "type": "string", + "m_label": "Selection:", + "m_value": "-1" }], - "m_events": [], - "m_children": [{ - "m_type": 4412, - "proportion": 1, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxTOP", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,100" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_listBox2" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Choices:", - "m_value": "" - }, { - "type": "string", - "m_label": "Selection:", - "m_value": "-1" - }], - "m_events": [{ - "m_eventName": "wxEVT_COMMAND_LISTBOX_SELECTED", - "m_eventClass": "wxCommandEvent", - "m_eventHandler": "wxCommandEventHandler", - "m_functionNameAndSignature": "OnHistoryClick(wxCommandEvent& event)", - "m_description": "Process a wxEVT_COMMAND_LISTBOX_SELECTED event, when an item on the list is selected or the selection changes.", - "m_noBody": false - }, { - "m_eventName": "wxEVT_COMMAND_LISTBOX_DOUBLECLICKED", - "m_eventClass": "wxCommandEvent", - "m_eventHandler": "wxCommandEventHandler", - "m_functionNameAndSignature": "OnHistoryDClick(wxCommandEvent& event)", - "m_description": "Process a wxEVT_COMMAND_LISTBOX_DOUBLECLICKED event, when the listbox is double-clicked.", - "m_noBody": false - }, { - "m_eventName": "wxEVT_UPDATE_UI", - "m_eventClass": "wxUpdateUIEvent", - "m_eventHandler": "wxUpdateUIEventHandler", - "m_functionNameAndSignature": "OnHistoruUI(wxUpdateUIEvent& event)", - "m_description": "Process a wxEVT_UPDATE_UI event", - "m_noBody": false - }], - "m_children": [] - }] + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_LISTBOX_SELECTED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnHistoryClick(wxCommandEvent& event)", + "m_description": "Process a wxEVT_COMMAND_LISTBOX_SELECTED event, when an item on the list is selected or the selection changes.", + "m_noBody": false + }, { + "m_eventName": "wxEVT_COMMAND_LISTBOX_DOUBLECLICKED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnHistoryDClick(wxCommandEvent& event)", + "m_description": "Process a wxEVT_COMMAND_LISTBOX_DOUBLECLICKED event, when the listbox is double-clicked.", + "m_noBody": false + }, { + "m_eventName": "wxEVT_UPDATE_UI", + "m_eventClass": "wxUpdateUIEvent", + "m_eventHandler": "wxUpdateUIEventHandler", + "m_functionNameAndSignature": "OnHistoruUI(wxUpdateUIEvent& event)", + "m_description": "Process a wxEVT_UPDATE_UI event", + "m_noBody": false + }], + "m_children": [] }] }] }, { @@ -4398,6 +4431,10 @@ "m_sizerFlags": [], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer_1" }, { @@ -4421,6 +4458,10 @@ "m_sizerFlags": ["wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "fgSizer42" }, { @@ -5542,6 +5583,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_HORIZONTAL"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer28" }, { @@ -5845,6 +5890,10 @@ "m_sizerFlags": [], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "fgSizer7" }, { @@ -5988,6 +6037,10 @@ "m_sizerFlags": [], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "m_wxsfSizer" }, { @@ -6066,6 +6119,10 @@ "m_label": "Style:", "m_value": "" }, { + "type": "bool", + "m_label": "Enable Window Persistency:", + "m_value": true + }, { "type": "string", "m_label": "Title:", "m_value": "Create foreign key" @@ -6122,6 +6179,10 @@ "m_sizerFlags": [], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "fgSizer12" }, { @@ -6164,6 +6225,10 @@ "m_sizerFlags": ["wxLEFT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "sbSizer7" }, { @@ -6504,6 +6569,10 @@ "m_sizerFlags": ["wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "gbSizer1" }, { @@ -6788,6 +6857,10 @@ "m_sizerFlags": ["wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "sbSizer8" }, { @@ -7166,6 +7239,10 @@ "m_sizerFlags": ["wxEXPAND", "wxALIGN_RIGHT"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer12" }, { @@ -7440,6 +7517,10 @@ "m_label": "Style:", "m_value": "" }, { + "type": "bool", + "m_label": "Enable Window Persistency:", + "m_value": true + }, { "type": "string", "m_label": "Title:", "m_value": "Database log" @@ -7496,6 +7577,10 @@ "m_sizerFlags": [], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "fgSizer13" }, { @@ -7538,6 +7623,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "sbSizer9" }, { @@ -7653,6 +7742,10 @@ "m_sizerFlags": ["wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer13" }, { @@ -7832,6 +7925,10 @@ "m_label": "Style:", "m_value": "" }, { + "type": "bool", + "m_label": "Enable Window Persistency:", + "m_value": true + }, { "type": "string", "m_label": "Title:", "m_value": "View settings" @@ -7888,6 +7985,10 @@ "m_sizerFlags": [], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer15" }, { @@ -7911,6 +8012,10 @@ "m_sizerFlags": ["wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "fgSizer14" }, { @@ -7953,6 +8058,10 @@ "m_sizerFlags": ["wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer14" }, { @@ -8407,6 +8516,10 @@ "m_label": "Style:", "m_value": "" }, { + "type": "bool", + "m_label": "Enable Window Persistency:", + "m_value": true + }, { "type": "string", "m_label": "Title:", "m_value": "Class generator dialog" @@ -8463,6 +8576,10 @@ "m_sizerFlags": [], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer22" }, { @@ -8486,6 +8603,10 @@ "m_sizerFlags": ["wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "fgSizer19" }, { @@ -9077,6 +9198,10 @@ "m_sizerFlags": ["wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "fgSizer26" }, { @@ -9634,6 +9759,10 @@ "m_sizerFlags": ["wxALIGN_RIGHT"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer20" }, { @@ -9901,6 +10030,10 @@ "m_label": "Style:", "m_value": "" }, { + "type": "bool", + "m_label": "Enable Window Persistency:", + "m_value": true + }, { "type": "string", "m_label": "Title:", "m_value": "SQL Preview" @@ -9957,6 +10090,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "boxSizer10" }, { @@ -10247,6 +10384,10 @@ "m_label": "Style:", "m_value": "" }, { + "type": "bool", + "m_label": "Enable Window Persistency:", + "m_value": true + }, { "type": "string", "m_label": "Title:", "m_value": "Table settings" @@ -10310,6 +10451,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "boxSizer19" }, { @@ -10400,6 +10545,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "boxSizer21" }, { @@ -10735,6 +10884,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "boxSizer37" }, { @@ -11499,6 +11652,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "boxSizer43" }, { @@ -11749,6 +11906,10 @@ "m_sizerFlags": ["wxLEFT", "wxRIGHT", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "flexGridSizer143" }, { @@ -11910,6 +12071,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "boxSizer163" }, { @@ -11933,6 +12098,10 @@ "m_sizerFlags": ["wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "flexGridSizer147" }, { @@ -12734,6 +12903,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_HORIZONTAL"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "boxSizer49" }, { diff -Nru codelite-8.0.1+dfsg2/debian/changelog codelite-9.0+dfsg/debian/changelog --- codelite-8.0.1+dfsg2/debian/changelog 2015-08-10 10:19:56.000000000 +0000 +++ codelite-9.0+dfsg/debian/changelog 2015-10-13 13:22:49.000000000 +0000 @@ -1,8 +1,36 @@ -codelite (8.0.1+dfsg2-2build1) wily; urgency=medium +codelite (9.0+dfsg-1) unstable; urgency=medium - * No-change rebuild against libwx*-0v5 + * New upstream release. - -- Martin Pitt Mon, 10 Aug 2015 12:19:56 +0200 + * debian/codelite.menu: + - Remove menu file and xpm icon. + * debian/codelite.install: + - Do not install clgcc and clg++ executables. + * debian/codelite-plugins.links: + - Drop /usr/lib/codelite/resources symlink. + * debian/control: + - Adjust description to note other supported programming languages. + * debian/patches: + - Refresh patches. + - Modify 02_remove-bundled-sqlite.patch to only remove wxsqlite since + upstream now does not bundle sqlite. + - Modify stripping patch to also remove duplicate Debian build flags. + + -- James Cowgill Tue, 13 Oct 2015 14:20:28 +0100 + +codelite (8.1+dfsg-1) unstable; urgency=medium + + * New upstream release. + + * Build against LLVM 3.6. + * Opt-in to LLVM so that more arches can build codelite. + * Remove codelitephp/.../Mage.php exclusion from d/copyright now that file + has been removed upstream. + * Drop patches applied upstream. + * Override all hardening-no-fortify-functions warnings. + - Lots of false positives generated. + + -- James Cowgill Mon, 14 Sep 2015 23:58:21 +0100 codelite (8.0.1+dfsg2-2) unstable; urgency=medium diff -Nru codelite-8.0.1+dfsg2/debian/clean codelite-9.0+dfsg/debian/clean --- codelite-8.0.1+dfsg2/debian/clean 2015-05-15 19:12:37.000000000 +0000 +++ codelite-9.0+dfsg/debian/clean 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -Runtime/codelite.desktop diff -Nru codelite-8.0.1+dfsg2/debian/codelite.install codelite-9.0+dfsg/debian/codelite.install --- codelite-8.0.1+dfsg2/debian/codelite.install 2015-05-16 18:24:54.000000000 +0000 +++ codelite-9.0+dfsg/debian/codelite.install 2015-10-12 22:41:04.000000000 +0000 @@ -1,8 +1,6 @@ -debian/codelite.xpm usr/share/pixmaps usr/bin/codelite usr/bin/codelite-make usr/bin/codelite_fix_files -usr/bin/cl* usr/lib/codelite usr/bin/codelite-cc usr/lib/codelite usr/bin/codelite-echo usr/lib/codelite usr/bin/codelite-terminal usr/lib/codelite diff -Nru codelite-8.0.1+dfsg2/debian/codelite.menu codelite-9.0+dfsg/debian/codelite.menu --- codelite-8.0.1+dfsg2/debian/codelite.menu 2015-02-16 21:25:58.000000000 +0000 +++ codelite-9.0+dfsg/debian/codelite.menu 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ -?package(codelite):needs="X11" \ - section="Applications/Programming" \ - title="CodeLite" \ - command="/usr/bin/codelite" \ - icon="/usr/share/pixmaps/codelite.xpm" diff -Nru codelite-8.0.1+dfsg2/debian/codelite-plugins.install codelite-9.0+dfsg/debian/codelite-plugins.install --- codelite-8.0.1+dfsg2/debian/codelite-plugins.install 2015-05-16 18:24:54.000000000 +0000 +++ codelite-9.0+dfsg/debian/codelite-plugins.install 2015-10-12 22:41:04.000000000 +0000 @@ -28,10 +28,10 @@ usr/lib/codelite/cscope.so usr/lib/codelite/git.so usr/lib/codelite/wxFormBuilder.so -usr/lib/codelite/resources usr/share/codelite usr/share/codelite/PHP.zip usr/share/codelite/dics usr/share/codelite/javascript.zip +usr/share/codelite/resources usr/share/codelite/templates/codedesigner usr/share/codelite/templates/formbuilder usr/share/codelite/templates/databaselayer diff -Nru codelite-8.0.1+dfsg2/debian/codelite-plugins.links codelite-9.0+dfsg/debian/codelite-plugins.links --- codelite-8.0.1+dfsg2/debian/codelite-plugins.links 2015-02-16 21:25:58.000000000 +0000 +++ codelite-9.0+dfsg/debian/codelite-plugins.links 2015-10-12 22:41:04.000000000 +0000 @@ -1,2 +1 @@ usr/bin/cppcheck usr/lib/codelite/codelite_cppcheck -usr/share/codelite/resources usr/lib/codelite/resources diff -Nru codelite-8.0.1+dfsg2/debian/codelite-plugins.lintian-overrides codelite-9.0+dfsg/debian/codelite-plugins.lintian-overrides --- codelite-8.0.1+dfsg2/debian/codelite-plugins.lintian-overrides 2015-05-16 10:46:11.000000000 +0000 +++ codelite-9.0+dfsg/debian/codelite-plugins.lintian-overrides 2015-10-12 22:41:04.000000000 +0000 @@ -1,11 +1,3 @@ -# Although built with the correct flags, the CodeFormatter plugin contains no -# fortifiable function calls -codelite-plugins binary: hardening-no-fortify-functions usr/lib/codelite/CodeFormatter.so - -# Although built with the correct flags, the LLDBDebugger plugin contains no -# fortifiable function calls -codelite-plugins binary: hardening-no-fortify-functions usr/lib/codelite/LLDBDebugger.so - -# Although built with the correct flags, the codelitephp plugin contains no -# fortifiable function calls -codelite-plugins binary: hardening-no-fortify-functions usr/lib/codelite/codelitephp.so +# Although built with the correct flags, most CodeLite plugins do not contain +# any fortifiable function calls. +codelite-plugins binary: hardening-no-fortify-functions diff -Nru codelite-8.0.1+dfsg2/debian/codelite.xpm codelite-9.0+dfsg/debian/codelite.xpm --- codelite-8.0.1+dfsg2/debian/codelite.xpm 2015-02-16 21:25:58.000000000 +0000 +++ codelite-9.0+dfsg/debian/codelite.xpm 1970-01-01 00:00:00.000000000 +0000 @@ -1,290 +0,0 @@ -/* XPM */ -static char *codelite[] = { -/* columns rows colors chars-per-pixel */ -"32 32 252 2", -" c #006C00", -". c #007300", -"X c #007C00", -"o c #007313", -"O c #387500", -"+ c #417F0B", -"@ c #66563A", -"# c #004D5D", -"$ c #1A4C7B", -"% c #1B6B73", -"& c #6F6F47", -"* c #757E58", -"= c #9C6600", -"- c #9C6A00", -"; c #937000", -": c #A76200", -"> c #AA6400", -", c #A16D00", -"< c #AC6B00", -"1 c #B06E00", -"2 c #A57200", -"3 c #AA7500", -"4 c #AD7A00", -"5 c #B47100", -"6 c #B27E00", -"7 c #008300", -"8 c #0F8300", -"9 c #008C00", -"0 c #098F06", -"q c #0F8C0A", -"w c #178900", -"e c #009500", -"r c #019A01", -"t c #099D04", -"y c #12920B", -"u c #1E9B14", -"i c #228903", -"p c #2F8907", -"a c #3B850B", -"s c #0EA107", -"d c #11A007", -"f c #16A30A", -"g c #1CA60D", -"h c #1BA011", -"j c #1FAF13", -"k c #22A912", -"l c #2BAE15", -"z c #2CAA1E", -"x c #38A619", -"c c #2EB41D", -"v c #2FBA1B", -"b c #34B219", -"n c #3CB61D", -"m c #33B81B", -"M c #35BC22", -"N c #3CB728", -"B c #4B820D", -"V c #609407", -"C c #44BA21", -"Z c #4ABD24", -"A c #4FBD2A", -"S c #3BC327", -"D c #42C426", -"F c #4FC027", -"G c #47C52F", -"H c #42C92D", -"J c #54C32A", -"K c #59C52C", -"L c #53C92D", -"P c #4CC633", -"I c #4BCD32", -"U c #51CE32", -"Y c #56D436", -"T c #53D239", -"R c #5AD53C", -"E c #5EDB3F", -"W c #63CB32", -"Q c #6BD037", -"! c #6DD33A", -"~ c #63DA3E", -"^ c #74DA3A", -"/ c #61E333", -"( c #63E03D", -") c #2E836F", -"_ c #50A778", -"` c #61D340", -"' c #61DA41", -"] c #6BDE43", -"[ c #76DC42", -"{ c #67C356", -"} c #6FE34A", -"| c #76E246", -" . c #7DE349", -".. c #78EB4F", -"X. c #7EEE54", -"o. c #B48000", -"O. c #B88400", -"+. c #BE8A01", -"@. c #C28F00", -"#. c #C49200", -"$. c #CC9500", -"%. c #CD9900", -"&. c #D19E00", -"*. c #C19414", -"=. c #D5A300", -"-. c #D8A400", -";. c #DEAA00", -":. c #D3AF18", -">. c #E2AE00", -",. c #E6B401", -"<. c #E9B500", -"1. c #ECBB00", -"2. c #F2BE00", -"3. c #D2AC23", -"4. c #F4C100", -"5. c #FAC600", -"6. c #FECB00", -"7. c #FFD100", -"8. c #FFDB00", -"9. c #FFE202", -"0. c #FFEC00", -"q. c #FFFB00", -"w. c #FFFF0A", -"e. c #FFF61F", -"r. c #FFFF1B", -"t. c #E1C035", -"y. c #FFEC2C", -"u. c #82E84F", -"i. c #86F94D", -"p. c #84E950", -"a. c #8BEE54", -"s. c #8EFF50", -"d. c #86F259", -"f. c #8BF45B", -"g. c #98FF55", -"h. c #9FFF5E", -"j. c #8FF960", -"k. c #96FD64", -"l. c #9AFE65", -"z. c #A3FF6C", -"x. c #EDD145", -"c. c #FFEF4A", -"v. c #FFFF42", -"b. c #F7E056", -"n. c #FFFB5D", -"m. c #FEED64", -"M. c #FFFF6C", -"N. c #ECE279", -"B. c #FFF770", -"V. c #FFFF7D", -"C. c #00369C", -"Z. c #00389E", -"A. c #0027A6", -"S. c #002DA2", -"D. c #002DA9", -"F. c #0030A4", -"G. c #003CA3", -"H. c #0034AB", -"J. c #003AAB", -"K. c #0029B0", -"L. c #0039BE", -"P. c #174E96", -"I. c #0040A6", -"U. c #0044AB", -"Y. c #0049AF", -"T. c #0849AF", -"R. c #0A53AE", -"E. c #0046B0", -"W. c #004CB3", -"Q. c #0044BC", -"!. c #004CB9", -"~. c #0050B7", -"^. c #0B53B6", -"/. c #0153BA", -"(. c #0058BE", -"). c #085ABC", -"_. c #004CC6", -"`. c #0042CC", -"'. c #0055C3", -"]. c #005AC2", -"[. c #005FD3", -"{. c #0056DA", -"}. c #0064CB", -"|. c #0068CF", -" X c #1965C3", -".X c #006DD3", -"XX c #0064D9", -"oX c #006ADD", -"OX c #0070D7", -"+X c #0C73D4", -"@X c #0074DB", -"#X c #0078DF", -"$X c #1D76D3", -"%X c #1379D9", -"&X c #2B6FC7", -"*X c #2674CE", -"=X c #2C79CE", -"-X c #0058E3", -";X c #006AE1", -":X c #007CE2", -">X c #2B80D7", -",X c #3080D6", -"X]././.~.~.W.J.KXKXKXKXKXKXKX", -"KXKXKXKXKXKXKX.X9X9X9X0XqXwXeXrXFX].].(./.~.W.Y.H.KXKXKXKXKXKXKX", -"KXKXKXKXKXKXKX.X8X7X8X8X8X8X8X8XZX/.(./.~.W.E.U.H.KXKXKXKXKXKXKX", -"KXKXKXKXKXKXKXoX7X6X6X6X6X6X7X6XmX!./.~.W.W.Y.I.J.KXKXKXKXKXKXKX", -"KXKXKXKXKXKXKXXX4X3X3X3X4X4X4X5XcXW.~.W.W.Y.U.G.J.KXKXKXKXKXKXKX", -"KXKXKXKXKXKXKXXX2X:X:X2X2X2X2X2XhXE.W.W.Y.U.U.G.KXKXKXKXKXKXKXKX", -"KXKXKXKXKXKXKX[.:X#X#X:X:X:X:X:XsXE.W.Y.U.I.G.Z.KXKXKXKXKXKXKXKX", -"KXKXKXKXKXKXKX{.@XOXOX@X@X@X@X#XuXU.Y.U.I.G.G.C.KXKXKXKXKXKXKXKX", -"KXKXKXKXKXKXKX& ;X.X.X.X.X.X.XOX.,.<.<.m.6 6 3 < a m n n C Z F J K .z X X X X . KX", -"KX4 &.=.=.-.;.;.>.b.4 4 2 < p j l l b n n C C | u X X X . . KXKX", -"KX4 #.%.%.&.&.=.-.x.4 4 2 > i s f g k l l b b ] q X X . . KXKX", -"KX4 6 O.+.#.$.%.%.t.4 3 , > w r r t s f g k k ~ X X . . KXKX", -"KXKX3 3 4 o.O.+.@.3.3 2 - > 8 9 9 e e r t s d U . . . . KXKX", -"KXKXKXKX, , 2 4 6 *.3 2 - : O X 7 7 9 9 e e r M . . . X KXKX", -"KXKXKXKXKXKX; = , 2 4 - - KXKX7 X X X 7 7 9 9 k . KXKXKXKX", -"KXKXKXKXKXKXKXKX2 = , < KXKXKXKXKX7 X . X X 7 y . KXKXKXKXKX", -"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX7 . . . . . KXKXKXKXKXKX", -"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX KXKXKXKXKXKXKXKX", -"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX" -}; diff -Nru codelite-8.0.1+dfsg2/debian/control codelite-9.0+dfsg/debian/control --- codelite-8.0.1+dfsg2/debian/control 2015-06-29 17:36:18.000000000 +0000 +++ codelite-9.0+dfsg/debian/control 2015-10-12 22:41:04.000000000 +0000 @@ -6,14 +6,14 @@ debhelper (>= 9), cmake, dpkg-dev (>= 1.16.1.1), - libclang-3.5-dev [!hurd-i386 !sparc], + libclang-3.6-dev [amd64 arm64 armel armhf i386 mips mipsel powerpc ppc64el s390x hurd-i386 kfreebsd-amd64 kfreebsd-i386], libgtk2.0-dev, libhunspell-dev, - liblldb-3.5-dev [!arm64 !hurd-i386 !mips64el !ppc64el !sparc], + liblldb-3.6-dev [amd64 armel armhf i386 mips mipsel powerpc s390x kfreebsd-amd64 kfreebsd-i386], libssh-gcrypt-dev, libwxgtk3.0-dev, libwxsqlite3-3.0-dev, - llvm-3.5 [!hurd-i386 !sparc], + llvm-3.6 [amd64 arm64 armel armhf i386 mips mipsel powerpc ppc64el s390x hurd-i386 kfreebsd-amd64 kfreebsd-i386], pkg-config Standards-Version: 3.9.6 Homepage: http://www.codelite.org @@ -31,9 +31,9 @@ g++, xterm | x-terminal-emulator Suggests: codelite-plugins -Description: Powerful and lightweight C/C++ IDE - CodeLite is a powerful and lightweight C/C++ IDE which comes with but is not - limited to the following features: +Description: Powerful and lightweight IDE + CodeLite is a powerful and lightweight IDE specializing in C, C++, PHP and + Javascript. Its features include: * Generic support for compilers * Built-in GDB support * Database-based Code Completion mechanism @@ -58,9 +58,9 @@ nodejs, qt4-qmake, valgrind -Description: Powerful and lightweight C/C++ IDE - plugins - CodeLite is a powerful and lightweight C/C++ IDE which comes with but is not - limited to the following features: +Description: Powerful and lightweight IDE - plugins + CodeLite is a powerful and lightweight IDE specializing in C, C++, PHP and + Javascript. Its features include: * Generic support for compilers * Built-in GDB support * Database-based Code Completion mechanism diff -Nru codelite-8.0.1+dfsg2/debian/copyright codelite-9.0+dfsg/debian/copyright --- codelite-8.0.1+dfsg2/debian/copyright 2015-06-13 23:42:17.000000000 +0000 +++ codelite-9.0+dfsg/debian/copyright 2015-10-12 22:41:04.000000000 +0000 @@ -6,7 +6,6 @@ *.exe *.dll codelitephp/bin - codelitephp/PHPParserUnitTests/Tests/Mage.php patches sdk/astyle sdk/clang diff -Nru codelite-8.0.1+dfsg2/debian/patches/01_remove-bundled-cppcheck.patch codelite-9.0+dfsg/debian/patches/01_remove-bundled-cppcheck.patch --- codelite-8.0.1+dfsg2/debian/patches/01_remove-bundled-cppcheck.patch 2015-05-15 17:55:49.000000000 +0000 +++ codelite-9.0+dfsg/debian/patches/01_remove-bundled-cppcheck.patch 2015-10-12 22:41:04.000000000 +0000 @@ -5,7 +5,7 @@ This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -523,7 +523,6 @@ add_subdirectory(codelitegcc) +@@ -553,7 +553,6 @@ add_subdirectory(codelitegcc) add_subdirectory(codelite_make) add_subdirectory(codelite_terminal) add_subdirectory(sdk/codelite_indexer) diff -Nru codelite-8.0.1+dfsg2/debian/patches/02_remove-bundled-sqlite.patch codelite-9.0+dfsg/debian/patches/02_remove-bundled-sqlite.patch --- codelite-8.0.1+dfsg2/debian/patches/02_remove-bundled-sqlite.patch 2015-05-15 17:55:49.000000000 +0000 +++ codelite-9.0+dfsg/debian/patches/02_remove-bundled-sqlite.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,56 +0,0 @@ -Description: Remove bundled sqlite3 and wxsqlite3 from CMakeLists.txt files -Author: James Cowgill -Forwarded: not-needed ---- -This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -459,8 +459,6 @@ if ( APPLE ) - add_definitions( -mmacosx-version-min=10.8 ) - endif() - --add_subdirectory(sqlite3) --add_subdirectory(sdk/wxsqlite3) - add_subdirectory(sdk/wxshapeframework) - add_subdirectory(sdk/databaselayer) - add_subdirectory(CodeLite) -@@ -529,14 +527,7 @@ add_subdirectory(WebTools) - ## - ## Setup the proper dependencies - ## --if ( USE_PCH ) -- add_dependencies(sqlite3lib ${CL_PCH_TARGET}) --endif ( USE_PCH ) -- --add_dependencies(wxsqlite3 sqlite3lib) --add_dependencies(databaselayersqlite wxsqlite3) --add_dependencies(wxshapeframework wxsqlite3) --add_dependencies(libcodelite wxshapeframework databaselayersqlite wxsqlite3) -+add_dependencies(libcodelite wxshapeframework databaselayersqlite) - add_dependencies(plugin libcodelite) - add_dependencies(codelite plugin) - ---- a/CodeLite/CMakeLists.txt -+++ b/CodeLite/CMakeLists.txt -@@ -105,8 +105,8 @@ if (UNIX AND NOT APPLE ) - ${LINKER_OPTIONS} - ${wxWidgets_LIBRARIES} - -L"${CL_LIBPATH}" -- sqlite3lib -- wxsqlite3 -+ -lsqlite3 -+ -lwxsqlite3-3.0 - ${LIBSSH_LIB} - ${ADDITIONAL_LIBRARIES}) - else (UNIX AND NOT APPLE) -@@ -114,8 +114,8 @@ else (UNIX AND NOT APPLE) - ${LINKER_OPTIONS} - ${wxWidgets_LIBRARIES} - -L"${CL_LIBPATH}" -- sqlite3lib -- wxsqlite3 -+ -lsqlite3 -+ -lwxsqlite3-3.0 - ${LIBSSH_LIB} - ${ADDITIONAL_LIBRARIES} - -lz -lcrypto) diff -Nru codelite-8.0.1+dfsg2/debian/patches/02_remove-bundled-wxsqlite.patch codelite-9.0+dfsg/debian/patches/02_remove-bundled-wxsqlite.patch --- codelite-8.0.1+dfsg2/debian/patches/02_remove-bundled-wxsqlite.patch 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/debian/patches/02_remove-bundled-wxsqlite.patch 2015-10-12 22:41:04.000000000 +0000 @@ -0,0 +1,37 @@ +Description: Remove bundled wxsqlite3 from CMakeLists.txt files +Author: James Cowgill +Forwarded: not-needed +--- +This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -490,7 +490,6 @@ if(APPLE) + add_subdirectory(sqlite3) + endif() + +-add_subdirectory(sdk/wxsqlite3) + add_subdirectory(sdk/wxshapeframework) + add_subdirectory(sdk/databaselayer) + add_subdirectory(CodeLite) +@@ -566,9 +565,7 @@ if(APPLE) + add_dependencies(wxsqlite3 sqlite3lib) + endif() + +-add_dependencies(databaselayersqlite wxsqlite3) +-add_dependencies(wxshapeframework wxsqlite3) +-add_dependencies(libcodelite wxshapeframework databaselayersqlite wxsqlite3) ++add_dependencies(libcodelite wxshapeframework databaselayersqlite) + add_dependencies(plugin libcodelite) + add_dependencies(codelite plugin) + +--- a/CodeLite/CMakeLists.txt ++++ b/CodeLite/CMakeLists.txt +@@ -106,7 +106,7 @@ if (UNIX AND NOT APPLE ) + ${wxWidgets_LIBRARIES} + -L"${CL_LIBPATH}" + ${SQLITE3_LIBRARY} +- wxsqlite3 ++ -lwxsqlite3-3.0 + ${LIBSSH_LIB} + ${ADDITIONAL_LIBRARIES}) + else (UNIX AND NOT APPLE) diff -Nru codelite-8.0.1+dfsg2/debian/patches/04_remove-bundled-unittest++.patch codelite-9.0+dfsg/debian/patches/04_remove-bundled-unittest++.patch --- codelite-8.0.1+dfsg2/debian/patches/04_remove-bundled-unittest++.patch 2015-05-15 18:31:14.000000000 +0000 +++ codelite-9.0+dfsg/debian/patches/04_remove-bundled-unittest++.patch 2015-10-12 22:41:04.000000000 +0000 @@ -5,7 +5,7 @@ This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ --- a/LiteEditor/CMakeLists.txt +++ b/LiteEditor/CMakeLists.txt -@@ -157,7 +157,6 @@ if(NOT APPLE) +@@ -139,7 +139,6 @@ if(NOT APPLE) install( DIRECTORY ${CL_SRC_ROOT}/Runtime/images ${CL_SRC_ROOT}/Runtime/gdb_printers diff -Nru codelite-8.0.1+dfsg2/debian/patches/05_build-flags.patch codelite-9.0+dfsg/debian/patches/05_build-flags.patch --- codelite-8.0.1+dfsg2/debian/patches/05_build-flags.patch 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/debian/patches/05_build-flags.patch 2015-10-12 22:41:04.000000000 +0000 @@ -0,0 +1,40 @@ +Description: Remove build options not nessesary for Debian + Do not duplicate all the Debian build flags. + Stripping is done by dh_strip separately. +Author: James Cowgill +Forwarded: not-needed +--- +This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -290,20 +290,6 @@ else () + set ( DEBUG_BUILD 0 ) + set(CMAKE_INSTALL_DO_STRIP TRUE) + message("-- CMAKE_INSTALL_DO_STRIP is " ${CMAKE_INSTALL_DO_STRIP}) +- if(UNIX AND NOT APPLE) +- ## Avoid hardening-no-relro wrarning messages from lintian +- if(EXISTS "/usr/bin/dpkg-buildflags") +- execute_process(COMMAND /usr/bin/dpkg-buildflags --get CFLAGS OUTPUT_VARIABLE EXTRA_CFLAGS OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_QUIET) +- execute_process(COMMAND /usr/bin/dpkg-buildflags --get CPPFLAGS OUTPUT_VARIABLE EXTRA_CPPFLAGS OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_QUIET) +- execute_process(COMMAND /usr/bin/dpkg-buildflags --get CXXFLAGS OUTPUT_VARIABLE EXTRA_CXXFLAGS OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_QUIET) +- execute_process(COMMAND /usr/bin/dpkg-buildflags --get LDFLAGS OUTPUT_VARIABLE EXTRA_LDFLAGS OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_QUIET) +- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CXXFLAGS}") +- add_definitions(${EXTRA_CPPFLAGS}) +- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}") +- set(LINKER_OPTIONS "${EXTRA_LDFLAGS}") +- list(APPEND LINKER_OPTIONS "-s") ## strip binaries +- endif() +- endif() + + set( CL_PCH_FILE "${CL_SRC_ROOT}/PCH/precompiled_header_release.h") + set( CL_PCH_TARGET "precompiled_header_release.h.gch") +@@ -322,9 +308,6 @@ else () + message("-- Shared Objects will be written into ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}") + + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O2") ## Optimize +- if(CMAKE_COMPILER_IS_GNUCXX) +- set(CMAKE_EXE_LINKER_FLAGS "-s") ## Strip binary +- endif(CMAKE_COMPILER_IS_GNUCXX) + + ## In release, add NDEBUG unless explicitly told not to + if (NOT PREVENT_WX_ASSERTS MATCHES 0) diff -Nru codelite-8.0.1+dfsg2/debian/patches/05_disable-stripping.patch codelite-9.0+dfsg/debian/patches/05_disable-stripping.patch --- codelite-8.0.1+dfsg2/debian/patches/05_disable-stripping.patch 2015-05-15 17:55:49.000000000 +0000 +++ codelite-9.0+dfsg/debian/patches/05_disable-stripping.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,18 +0,0 @@ -Description: Disable binary stripping at build time - Stripping is now done by dh_strip separately. -Author: James Cowgill -Forwarded: not-needed ---- -This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -298,9 +298,6 @@ else () - message("-- Shared Objects will be written into ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}") - - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O2") ## Optimize -- if(CMAKE_COMPILER_IS_GNUCXX) -- set(CMAKE_EXE_LINKER_FLAGS "-s") ## Strip binary -- endif(CMAKE_COMPILER_IS_GNUCXX) - - ## In release, add NDEBUG unless explicitly told not to - if (NOT PREVENT_WX_ASSERTS MATCHES 0) diff -Nru codelite-8.0.1+dfsg2/debian/patches/09_use-x-terminal-editor.patch codelite-9.0+dfsg/debian/patches/09_use-x-terminal-editor.patch --- codelite-8.0.1+dfsg2/debian/patches/09_use-x-terminal-editor.patch 2015-05-15 17:55:49.000000000 +0000 +++ codelite-9.0+dfsg/debian/patches/09_use-x-terminal-editor.patch 2015-10-12 22:41:04.000000000 +0000 @@ -28,7 +28,7 @@ if ( !tokens.IsEmpty() ) { --- a/LiteEditor/manager.cpp +++ b/LiteEditor/manager.cpp -@@ -1948,7 +1948,7 @@ void Manager::DbgStart(long attachPid) +@@ -1932,7 +1932,7 @@ void Manager::DbgStart(long attachPid) wxString terminal; wxArrayString tokens; wxArrayString configuredTerminal; diff -Nru codelite-8.0.1+dfsg2/debian/patches/10_move-helper-binaries.patch codelite-9.0+dfsg/debian/patches/10_move-helper-binaries.patch --- codelite-8.0.1+dfsg2/debian/patches/10_move-helper-binaries.patch 2015-05-15 17:55:49.000000000 +0000 +++ codelite-9.0+dfsg/debian/patches/10_move-helper-binaries.patch 2015-10-12 22:41:04.000000000 +0000 @@ -4,21 +4,21 @@ This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ --- a/LiteEditor/manager.cpp +++ b/LiteEditor/manager.cpp -@@ -1479,8 +1479,7 @@ wxString Manager::GetProjectExecutionCom +@@ -1480,8 +1480,7 @@ wxString Manager::GetProjectExecutionCom wd = bldConf->GetWorkingDirectory(); wd = ExpandVariables(wd, GetProject(projectName), clMainFrame::Get()->GetMainBook()->GetActiveEditor()); -- wxFileName fnCodeliteTerminal(wxStandardPaths::Get().GetExecutablePath()); +- wxFileName fnCodeliteTerminal(clStandardPaths::Get().GetExecutablePath()); - fnCodeliteTerminal.SetFullName("codelite-terminal"); + wxFileName fnCodeliteTerminal(clStandardPaths::Get().GetBinaryFullPath("codelite-terminal")); wxString title; title << cmd << " " << cmdArgs; -@@ -1532,8 +1531,7 @@ wxString Manager::GetProjectExecutionCom +@@ -1533,8 +1532,7 @@ wxString Manager::GetProjectExecutionCom wxString command; if(bldConf->GetPauseWhenExecEnds()) { wxString ld_lib_path; -- wxFileName exePath(wxStandardPaths::Get().GetExecutablePath()); +- wxFileName exePath(clStandardPaths::Get().GetExecutablePath()); - wxFileName exeWrapper(exePath.GetPath(), wxT("codelite_exec")); + wxFileName exeWrapper(clStandardPaths::Get().GetBinaryFullPath("codelite_exec")); @@ -26,30 +26,30 @@ command << wxT("/bin/sh -f ") << exeWrapper.GetFullPath() << wxT(" LD_LIBRARY_PATH=") << ld_lib_path --- a/Plugin/globals.cpp +++ b/Plugin/globals.cpp -@@ -1785,7 +1785,7 @@ IProcess* LaunchTerminal(const wxString& +@@ -1744,7 +1744,7 @@ IProcess* LaunchTerminal(const wxString& #else wxString command; -- wxFileName fnCodeliteTerminal(wxStandardPaths::Get().GetExecutablePath()); +- wxFileName fnCodeliteTerminal(clStandardPaths::Get().GetExecutablePath()); + wxFileName fnCodeliteTerminal(clStandardPaths::Get().GetBinFolder()); #if defined(__WXMAC__) command << "/usr/bin/open \"" << fnCodeliteTerminal.GetPath(true) << "codelite-terminal.app\" --args "; -@@ -1814,8 +1814,7 @@ wxString MakeExecInShellCommand(const wx +@@ -1773,8 +1773,7 @@ wxString MakeExecInShellCommand(const wx wxString title(cmd); OptionsConfigPtr opts = EditorConfigST::Get()->GetOptions(); -- wxFileName fnCodeliteTerminal(wxStandardPaths::Get().GetExecutablePath()); +- wxFileName fnCodeliteTerminal(clStandardPaths::Get().GetExecutablePath()); - fnCodeliteTerminal.SetFullName("codelite-terminal"); + wxFileName fnCodeliteTerminal(clStandardPaths::Get().GetBinaryFullPath("codelite-terminal")); // change directory to the working directory #if defined(__WXMAC__) -@@ -1847,8 +1846,7 @@ wxString MakeExecInShellCommand(const wx +@@ -1806,8 +1805,7 @@ wxString MakeExecInShellCommand(const wx // build the command wxString command; wxString ld_lib_path; -- wxFileName exePath(wxStandardPaths::Get().GetExecutablePath()); +- wxFileName exePath(clStandardPaths::Get().GetExecutablePath()); - wxFileName exeWrapper(exePath.GetPath(), wxT("codelite_exec")); + wxFileName exeWrapper(clStandardPaths::Get().GetBinaryFullPath("codelite_exec")); @@ -57,7 +57,7 @@ command << wxT("/bin/sh -f ") << exeWrapper.GetFullPath() << wxT(" LD_LIBRARY_PATH=") << ld_lib_path --- a/Plugin/pipedprocess.cpp +++ b/Plugin/pipedprocess.cpp -@@ -28,6 +28,7 @@ +@@ -29,6 +29,7 @@ #include #include "wx/msgdlg.h" #include @@ -65,19 +65,19 @@ PipedProcess::PipedProcess(int id, const wxString &cmdLine) : wxProcess(NULL, id) -@@ -54,8 +55,7 @@ void PipedProcess::Terminate() +@@ -55,8 +56,7 @@ void PipedProcess::Terminate() { #ifdef __WXGTK__ wxString cmd; -- wxFileName exePath(wxStandardPaths::Get().GetExecutablePath()); +- wxFileName exePath(clStandardPaths::Get().GetExecutablePath()); - wxFileName script(exePath.GetPath(), wxT("codelite_kill_children")); + wxFileName script(clStandardPaths::Get().GetBinaryFullPath("codelite_kill_children")); cmd << wxT("/bin/sh -f ") << script.GetFullPath() << wxT(" ") << GetPid(); wxExecute(cmd, wxEXEC_ASYNC); #else ---- a/Plugin/macros.h -+++ b/Plugin/macros.h -@@ -30,6 +30,8 @@ +--- a/CodeLite/macros.h ++++ b/CodeLite/macros.h +@@ -31,6 +31,8 @@ #include #include @@ -86,44 +86,27 @@ //------------------------------------------------------- // wxWidgets Connect macros //------------------------------------------------------- -@@ -104,7 +106,7 @@ const wxString USE_GLOBAL_SETTINGS - - // terminal macro +@@ -107,7 +109,7 @@ const wxString CLEAN_PROJECT_PREFIX = _( #ifdef __WXGTK__ --#define TERMINAL_CMD wxString::Format(wxT("%s/codelite_xterm '$(TITLE)' '$(CMD)'"), wxFileName(wxStandardPaths::Get().GetExecutablePath()).GetPath().c_str()) -+#define TERMINAL_CMD wxString::Format(wxT("%s/codelite_xterm '$(TITLE)' '$(CMD)'"), clStandardPaths::Get().GetBinFolder().c_str()) + #define TERMINAL_CMD \ + wxString::Format(wxT("%s/codelite_xterm '$(TITLE)' '$(CMD)'"), \ +- wxFileName(clStandardPaths::Get().GetExecutablePath()).GetPath().c_str()) ++ clStandardPaths::Get().GetBinFolder().c_str()) #elif defined(__WXMAC__) - #define TERMINAL_CMD wxString::Format(wxT("%s/OpenTerm '$(CMD)'"), wxStandardPaths::Get().GetDataDir().c_str()) + #define TERMINAL_CMD wxString::Format(wxT("%s/OpenTerm '$(CMD)'"), clStandardPaths::Get().GetDataDir().c_str()) #else --- a/LiteEditor/app.cpp +++ b/LiteEditor/app.cpp -@@ -675,8 +675,7 @@ bool CodeLiteApp::OnInit() +@@ -677,8 +677,7 @@ bool CodeLiteApp::OnInit() #endif wxString oldpath; wxGetEnv(wxT("PATH"), &oldpath); -- wxFileName execfpath(wxStandardPaths::Get().GetExecutablePath()); +- wxFileName execfpath(clStandardPaths::Get().GetExecutablePath()); - wxSetEnv(wxT("PATH"), oldpath + pathsep + execfpath.GetPath()); + wxSetEnv(wxT("PATH"), oldpath + pathsep + clStandardPaths::Get().GetBinFolder()); wxString newpath; wxGetEnv(wxT("PATH"), &newpath); ---- a/Runtime/clg++ -+++ b/Runtime/clg++ -@@ -1,4 +1,2 @@ --#!/bin/bash --codelite-cc g++ $@ -- -- -+#!/bin/sh -+exec /usr/lib/codelite/codelite-cc g++ "$@" ---- a/Runtime/clgcc -+++ b/Runtime/clgcc -@@ -1,3 +1,2 @@ --#!/bin/bash --codelite-cc gcc $@ -- -+#!/bin/sh -+exec /usr/lib/codelite/codelite-cc gcc "$@" --- a/CodeLite/procutils.cpp +++ b/CodeLite/procutils.cpp @@ -434,22 +434,11 @@ bool ProcUtils::Shell(const wxString& pr @@ -180,11 +163,11 @@ } --- a/CodeLite/cl_standard_paths.cpp +++ b/CodeLite/cl_standard_paths.cpp -@@ -98,8 +98,7 @@ wxString clStandardPaths::GetDataDir() c +@@ -90,8 +90,7 @@ wxString clStandardPaths::GetDataDir() c wxString clStandardPaths::GetBinFolder() const { -- wxFileName fnExe( wxStandardPaths::Get().GetExecutablePath() ); +- wxFileName fnExe(wxStandardPaths::Get().GetExecutablePath()); - return fnExe.GetPath(); + return wxStandardPaths::Get().GetPluginsDir(); } diff -Nru codelite-8.0.1+dfsg2/debian/patches/15_fix_about_box_license.patch codelite-9.0+dfsg/debian/patches/15_fix_about_box_license.patch --- codelite-8.0.1+dfsg2/debian/patches/15_fix_about_box_license.patch 2015-05-15 17:55:49.000000000 +0000 +++ codelite-9.0+dfsg/debian/patches/15_fix_about_box_license.patch 2015-10-12 22:41:04.000000000 +0000 @@ -82,12 +82,6 @@ - } - } + - CentreOnScreen(); + CentreOnParent(); + GetSizer()->Fit(this); } - -@@ -78,4 +112,4 @@ wxString AboutDlg::GetInfo() const - void AboutDlg::OnOK(wxCommandEvent& event) - { - EndModal(wxID_OK); --} -+} diff -Nru codelite-8.0.1+dfsg2/debian/patches/24_default_no_check_for_updates.patch codelite-9.0+dfsg/debian/patches/24_default_no_check_for_updates.patch --- codelite-8.0.1+dfsg2/debian/patches/24_default_no_check_for_updates.patch 2015-05-15 21:06:32.000000000 +0000 +++ codelite-9.0+dfsg/debian/patches/24_default_no_check_for_updates.patch 2015-10-12 22:41:04.000000000 +0000 @@ -20,7 +20,7 @@ m_choice4->SetStringSelection( --- a/LiteEditor/frame.cpp +++ b/LiteEditor/frame.cpp -@@ -3202,7 +3202,7 @@ void clMainFrame::OnTimer(wxTimerEvent& +@@ -3250,7 +3250,7 @@ void clMainFrame::OnTimer(wxTimerEvent& wxLogMessage("Running under Cygwin environment"); } diff -Nru codelite-8.0.1+dfsg2/debian/patches/25_shlibs-adjustments.patch codelite-9.0+dfsg/debian/patches/25_shlibs-adjustments.patch --- codelite-8.0.1+dfsg2/debian/patches/25_shlibs-adjustments.patch 2015-05-16 10:46:10.000000000 +0000 +++ codelite-9.0+dfsg/debian/patches/25_shlibs-adjustments.patch 2015-10-12 22:41:04.000000000 +0000 @@ -31,7 +31,7 @@ elseif (GTK3_FOUND) --- a/sdk/databaselayer/CMakeLists.txt +++ b/sdk/databaselayer/CMakeLists.txt -@@ -56,7 +56,7 @@ if ( WITH_MYSQL ) +@@ -59,7 +59,7 @@ if ( WITH_MYSQL ) endif ( WITH_MYSQL ) # Define the output diff -Nru codelite-8.0.1+dfsg2/debian/patches/series codelite-9.0+dfsg/debian/patches/series --- codelite-8.0.1+dfsg2/debian/patches/series 2015-05-16 15:20:47.000000000 +0000 +++ codelite-9.0+dfsg/debian/patches/series 2015-10-12 22:41:04.000000000 +0000 @@ -1,13 +1,7 @@ -u01_Remove-direct-dependencies-to-wxsqlite3-and-sqlite3l.patch -u02_Remove-RPATH-settings-from-plugin-CMakeLists.patch -u03_Remove-uses-of-__DATE__-and-__TIME__-from-libctags.patch -u04_Fix-LLDBDebugger-undefined-symbol-error-when-using-L.patch -u05_Fixed-https-github.com-eranif-codelite-issues-763.patch - 01_remove-bundled-cppcheck.patch -02_remove-bundled-sqlite.patch +02_remove-bundled-wxsqlite.patch 04_remove-bundled-unittest++.patch -05_disable-stripping.patch +05_build-flags.patch 09_use-x-terminal-editor.patch 10_move-helper-binaries.patch 15_fix_about_box_license.patch diff -Nru codelite-8.0.1+dfsg2/debian/patches/u01_Remove-direct-dependencies-to-wxsqlite3-and-sqlite3l.patch codelite-9.0+dfsg/debian/patches/u01_Remove-direct-dependencies-to-wxsqlite3-and-sqlite3l.patch --- codelite-8.0.1+dfsg2/debian/patches/u01_Remove-direct-dependencies-to-wxsqlite3-and-sqlite3l.patch 2015-05-15 17:55:49.000000000 +0000 +++ codelite-9.0+dfsg/debian/patches/u01_Remove-direct-dependencies-to-wxsqlite3-and-sqlite3l.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,550 +0,0 @@ -From 3b2839790ac0469de4190ff89966914af6b8bfae Mon Sep 17 00:00:00 2001 -From: James Cowgill -Date: Tue, 12 May 2015 22:17:19 +0100 -Subject: [PATCH 1/5] Remove direct dependencies to wxsqlite3 and sqlite3lib - from all plugins - -In CMake if you have a dependency chain which looks like: - A -> B -> C -then CMake will automatically add the dependency A -> C for you. - -This means that we can remove all the direct dependencies on wxsqlite3 and -sqlite3lib from all plugins if they're already linking against libcodelite. ---- - CMakePlugin/CMakeLists.txt | 2 -- - CallGraph/CMakeLists.txt | 2 +- - CodeDesigner/CMakeLists.txt | 2 +- - CodeFormatter/CMakeLists.txt | 2 -- - CodeLiteDiff/CMakeLists.txt | 2 -- - ContinuousBuild/CMakeLists.txt | 2 -- - Copyright/CMakeLists.txt | 2 -- - DatabaseExplorer/CMakeLists.txt | 2 -- - Debugger/CMakeLists.txt | 2 -- - ExternalTools/CMakeLists.txt | 2 -- - Gizmos/CMakeLists.txt | 2 -- - HelpPlugin/CMakeLists.txt | 2 -- - LLDBDebugger/CMakeLists.txt | 2 -- - LLDBDebugger/codelite-lldb/CMakeLists.txt | 2 -- - LiteEditor/CMakeLists.txt | 6 +++--- - MacBundler/CMakeLists.txt | 2 -- - MemCheck/CMakeLists.txt | 2 +- - Outline/CMakeLists.txt | 2 -- - Plugin/CMakeLists.txt | 6 +++--- - QmakePlugin/CMakeLists.txt | 2 -- - Runtime/templates/gizmos/CMakeLists.txt.plugin.wizard | 2 -- - SFTP/CMakeLists.txt | 2 -- - SnipWiz/CMakeLists.txt | 2 -- - SpellChecker/CMakeLists.txt | 2 -- - Subversion2/CMakeLists.txt | 2 -- - Tweaks/CMakeLists.txt | 2 -- - UnitTestCPP/CMakeLists.txt | 2 -- - WebTools/CMakeLists.txt | 2 -- - WordCompletion/CMakeLists.txt | 2 -- - ZoomNavigator/CMakeLists.txt | 2 -- - abbreviation/CMakeLists.txt | 2 -- - codelite_make/CMakeLists.txt | 2 +- - codelitephp/CMakeLists.txt | 4 ---- - cppchecker/CMakeLists.txt | 2 -- - cscope/CMakeLists.txt | 2 -- - git/CMakeLists.txt | 2 -- - wxformbuilder/CMakeLists.txt | 2 -- - 37 files changed, 10 insertions(+), 74 deletions(-) - -diff --git a/CMakePlugin/CMakeLists.txt b/CMakePlugin/CMakeLists.txt -index bcba22e..eddb29d 100644 ---- a/CMakePlugin/CMakeLists.txt -+++ b/CMakePlugin/CMakeLists.txt -@@ -65,8 +65,6 @@ target_link_libraries(${PLUGIN_NAME} - ${wxWidgets_LIBRARIES} - libcodelite - plugin -- wxsqlite3 -- sqlite3lib - ) - - CL_INSTALL_PLUGIN(${PLUGIN_NAME}) -diff --git a/CallGraph/CMakeLists.txt b/CallGraph/CMakeLists.txt -index b058ff5..3dba7fd 100644 ---- a/CallGraph/CMakeLists.txt -+++ b/CallGraph/CMakeLists.txt -@@ -48,7 +48,7 @@ add_library(${PLUGIN_NAME} SHARED ${SRCS}) - - # Remove the "lib" prefix from the plugin name - set_target_properties(${PLUGIN_NAME} PROPERTIES PREFIX "") --target_link_libraries(${PLUGIN_NAME} ${LINKER_OPTIONS} ${wxWidgets_LIBRARIES} -L"${CL_LIBPATH}" -lwxsqlite3 -lsqlite3lib -llibcodelite -lplugin) -+target_link_libraries(${PLUGIN_NAME} ${LINKER_OPTIONS} ${wxWidgets_LIBRARIES} -L"${CL_LIBPATH}" libcodelite plugin) - # Make sure that the plugin will not start build before 'plugin.so' is ready - add_dependencies(${PLUGIN_NAME} plugin) - -diff --git a/CodeDesigner/CMakeLists.txt b/CodeDesigner/CMakeLists.txt -index 26377b0..40679c7 100644 ---- a/CodeDesigner/CMakeLists.txt -+++ b/CodeDesigner/CMakeLists.txt -@@ -33,4 +33,4 @@ add_library(${PLUGIN_NAME} SHARED ${SRCS}) - - # Remove the "lib" prefix from the plugin name - set_target_properties(${PLUGIN_NAME} PROPERTIES PREFIX "") --target_link_libraries(${PLUGIN_NAME} ${LINKER_OPTIONS} ${wxWidgets_LIBRARIES} -L"${CL_LIBPATH}" -lwxsqlite3 -lsqlite3lib -llibcodelite -lplugin) -+target_link_libraries(${PLUGIN_NAME} ${LINKER_OPTIONS} ${wxWidgets_LIBRARIES} -L"${CL_LIBPATH}" libcodelite plugin) -diff --git a/CodeFormatter/CMakeLists.txt b/CodeFormatter/CMakeLists.txt -index 4aa6ad0..e447950 100644 ---- a/CodeFormatter/CMakeLists.txt -+++ b/CodeFormatter/CMakeLists.txt -@@ -53,8 +53,6 @@ target_link_libraries(${PLUGIN_NAME} - ${wxWidgets_LIBRARIES} - libcodelite - plugin -- wxsqlite3 -- sqlite3lib - ) - - -diff --git a/CodeLiteDiff/CMakeLists.txt b/CodeLiteDiff/CMakeLists.txt -index bdc1104..121d2a1 100644 ---- a/CodeLiteDiff/CMakeLists.txt -+++ b/CodeLiteDiff/CMakeLists.txt -@@ -61,8 +61,6 @@ target_link_libraries(${PLUGIN_NAME} - ${wxWidgets_LIBRARIES} - libcodelite - plugin -- wxsqlite3 -- sqlite3lib - ) - # Installation destination - CL_INSTALL_PLUGIN(${PLUGIN_NAME}) -diff --git a/ContinuousBuild/CMakeLists.txt b/ContinuousBuild/CMakeLists.txt -index 3af6e63..d37c37a 100644 ---- a/ContinuousBuild/CMakeLists.txt -+++ b/ContinuousBuild/CMakeLists.txt -@@ -53,7 +53,5 @@ target_link_libraries(${PLUGIN_NAME} - ${wxWidgets_LIBRARIES} - libcodelite - plugin -- wxsqlite3 -- sqlite3lib - ) - CL_INSTALL_PLUGIN(${PLUGIN_NAME}) -diff --git a/Copyright/CMakeLists.txt b/Copyright/CMakeLists.txt -index 72ca60d..09e1722 100644 ---- a/Copyright/CMakeLists.txt -+++ b/Copyright/CMakeLists.txt -@@ -53,7 +53,5 @@ target_link_libraries(${PLUGIN_NAME} - ${wxWidgets_LIBRARIES} - libcodelite - plugin -- wxsqlite3 -- sqlite3lib - ) - CL_INSTALL_PLUGIN(${PLUGIN_NAME}) -diff --git a/DatabaseExplorer/CMakeLists.txt b/DatabaseExplorer/CMakeLists.txt -index 8500b67..b6c8e16 100644 ---- a/DatabaseExplorer/CMakeLists.txt -+++ b/DatabaseExplorer/CMakeLists.txt -@@ -100,8 +100,6 @@ target_link_libraries(${PLUGIN_NAME} - ${GTK_LIBS} - libcodelite - plugin -- wxsqlite3 -- sqlite3lib - wxshapeframework - databaselayersqlite - ) -diff --git a/Debugger/CMakeLists.txt b/Debugger/CMakeLists.txt -index 0a6a15a..413ed2e 100644 ---- a/Debugger/CMakeLists.txt -+++ b/Debugger/CMakeLists.txt -@@ -53,8 +53,6 @@ target_link_libraries(${PLUGIN_NAME} - ${wxWidgets_LIBRARIES} - libcodelite - plugin -- wxsqlite3 -- sqlite3lib - ) - - CL_INSTALL_DEBUGGER(${PLUGIN_NAME}) -diff --git a/ExternalTools/CMakeLists.txt b/ExternalTools/CMakeLists.txt -index 74375ee..1071308 100644 ---- a/ExternalTools/CMakeLists.txt -+++ b/ExternalTools/CMakeLists.txt -@@ -54,8 +54,6 @@ target_link_libraries(${PLUGIN_NAME} - ${wxWidgets_LIBRARIES} - libcodelite - plugin -- wxsqlite3 -- sqlite3lib - ) - # Installation destination - CL_INSTALL_PLUGIN(${PLUGIN_NAME}) -\ No newline at end of file -diff --git a/Gizmos/CMakeLists.txt b/Gizmos/CMakeLists.txt -index 113b80d..603054e 100644 ---- a/Gizmos/CMakeLists.txt -+++ b/Gizmos/CMakeLists.txt -@@ -52,8 +52,6 @@ target_link_libraries(${PLUGIN_NAME} - ${wxWidgets_LIBRARIES} - libcodelite - plugin -- wxsqlite3 -- sqlite3lib - ) - # Installation destination - CL_INSTALL_PLUGIN(${PLUGIN_NAME}) -\ No newline at end of file -diff --git a/HelpPlugin/CMakeLists.txt b/HelpPlugin/CMakeLists.txt -index 5e2b577..4788085 100644 ---- a/HelpPlugin/CMakeLists.txt -+++ b/HelpPlugin/CMakeLists.txt -@@ -57,8 +57,6 @@ target_link_libraries(${PLUGIN_NAME} - ${wxWidgets_LIBRARIES} - libcodelite - plugin -- wxsqlite3 -- sqlite3lib - ) - - # Use CodeLite's macro: CL_INSTALL_PLUGIN which handles both OSX and Linux installation -diff --git a/LLDBDebugger/CMakeLists.txt b/LLDBDebugger/CMakeLists.txt -index 935874b..25cfb47 100644 ---- a/LLDBDebugger/CMakeLists.txt -+++ b/LLDBDebugger/CMakeLists.txt -@@ -94,8 +94,6 @@ endif() - ${wxWidgets_LIBRARIES} - libcodelite - plugin -- wxsqlite3 -- sqlite3lib - ) - # Installation destination - CL_INSTALL_PLUGIN(${PLUGIN_NAME}) -diff --git a/LLDBDebugger/codelite-lldb/CMakeLists.txt b/LLDBDebugger/codelite-lldb/CMakeLists.txt -index 163af51..5c5c906 100644 ---- a/LLDBDebugger/codelite-lldb/CMakeLists.txt -+++ b/LLDBDebugger/codelite-lldb/CMakeLists.txt -@@ -26,8 +26,6 @@ target_link_libraries( codelite-lldb - LLDBProtocol - libcodelite - plugin -- wxsqlite3 -- sqlite3lib - ) - - CL_INSTALL_EXECUTABLE(codelite-lldb) -diff --git a/LiteEditor/CMakeLists.txt b/LiteEditor/CMakeLists.txt -index fd23f83..92f7f57 100644 ---- a/LiteEditor/CMakeLists.txt -+++ b/LiteEditor/CMakeLists.txt -@@ -91,11 +91,11 @@ else (UNIX) - endif (UNIX) - - if(GTK2_FOUND) -- target_link_libraries(codelite ${LINKER_OPTIONS} ${GTK2_LIBRARIES} ${wxWidgets_LIBRARIES} ${CLANG_LIBRARY} -L"${CL_LIBPATH}" -lwxsqlite3 -lsqlite3lib -llibcodelite -lplugin ${ADDITIONAL_LIBRARIES}) -+ target_link_libraries(codelite ${LINKER_OPTIONS} ${GTK2_LIBRARIES} ${wxWidgets_LIBRARIES} ${CLANG_LIBRARY} -L"${CL_LIBPATH}" libcodelite plugin ${ADDITIONAL_LIBRARIES}) - elseif (GTK3_FOUND) -- target_link_libraries(codelite ${LINKER_OPTIONS} ${GTK3_LIBRARIES} ${wxWidgets_LIBRARIES} ${CLANG_LIBRARY} -L"${CL_LIBPATH}" -lwxsqlite3 -lsqlite3lib -llibcodelite -lplugin ${ADDITIONAL_LIBRARIES}) -+ target_link_libraries(codelite ${LINKER_OPTIONS} ${GTK3_LIBRARIES} ${wxWidgets_LIBRARIES} ${CLANG_LIBRARY} -L"${CL_LIBPATH}" libcodelite plugin ${ADDITIONAL_LIBRARIES}) - else() -- target_link_libraries(codelite ${LINKER_OPTIONS} ${wxWidgets_LIBRARIES} ${CLANG_LIBRARY} -L"${CL_LIBPATH}" -lwxsqlite3 -lsqlite3lib -llibcodelite -lplugin ${ADDITIONAL_LIBRARIES}) -+ target_link_libraries(codelite ${LINKER_OPTIONS} ${wxWidgets_LIBRARIES} ${CLANG_LIBRARY} -L"${CL_LIBPATH}" libcodelite plugin ${ADDITIONAL_LIBRARIES}) - endif() - - ################################################################## -diff --git a/MacBundler/CMakeLists.txt b/MacBundler/CMakeLists.txt -index 98cd991..17fcd41 100644 ---- a/MacBundler/CMakeLists.txt -+++ b/MacBundler/CMakeLists.txt -@@ -45,8 +45,6 @@ set_target_properties(${PLUGIN_NAME} PROPERTIES PREFIX "") - target_link_libraries(${PLUGIN_NAME} - ${LINKER_OPTIONS} - ${wxWidgets_LIBRARIES} -- wxsqlite3 -- sqlite3lib - libcodelite - plugin) - -diff --git a/MemCheck/CMakeLists.txt b/MemCheck/CMakeLists.txt -index 6c89bcd..e5723ee 100644 ---- a/MemCheck/CMakeLists.txt -+++ b/MemCheck/CMakeLists.txt -@@ -55,7 +55,7 @@ if(UNIX AND NOT APPLE) - - # Remove the "lib" prefix from the plugin name - set_target_properties(${PLUGIN_NAME} PROPERTIES PREFIX "") -- target_link_libraries(${PLUGIN_NAME} ${LINKER_OPTIONS} ${wxWidgets_LIBRARIES} -L"${CL_LIBPATH}" -lwxsqlite3 -lsqlite3lib -llibcodelite -lplugin) -+ target_link_libraries(${PLUGIN_NAME} ${LINKER_OPTIONS} ${wxWidgets_LIBRARIES} -L"${CL_LIBPATH}" libcodelite plugin) - - # Make sure that the plugin will not start build before 'plugin.so' is ready - add_dependencies(${PLUGIN_NAME} plugin) -diff --git a/Outline/CMakeLists.txt b/Outline/CMakeLists.txt -index 2c5f1e4..2483bb5 100644 ---- a/Outline/CMakeLists.txt -+++ b/Outline/CMakeLists.txt -@@ -55,8 +55,6 @@ target_link_libraries(${PLUGIN_NAME} - ${wxWidgets_LIBRARIES} - libcodelite - plugin -- wxsqlite3 -- sqlite3lib - ) - # Installation destination - CL_INSTALL_PLUGIN(${PLUGIN_NAME}) -\ No newline at end of file -diff --git a/Plugin/CMakeLists.txt b/Plugin/CMakeLists.txt -index cf8caaf..ade4992 100644 ---- a/Plugin/CMakeLists.txt -+++ b/Plugin/CMakeLists.txt -@@ -93,11 +93,11 @@ FILE(GLOB SRCS "*.cpp") - # Define the output - add_library(plugin SHARED ${SRCS}) - if(GTK2_FOUND) -- target_link_libraries(plugin ${LINKER_OPTIONS} ${ADDITIONAL_LIBRARIES} ${GTK2_LIBRARIES} ${wxWidgets_LIBRARIES} -L"${CL_LIBPATH}" -lwxsqlite3 -lsqlite3lib -llibcodelite) -+ target_link_libraries(plugin ${LINKER_OPTIONS} ${ADDITIONAL_LIBRARIES} ${GTK2_LIBRARIES} ${wxWidgets_LIBRARIES} -L"${CL_LIBPATH}" libcodelite) - elseif (GTK3_FOUND) -- target_link_libraries(plugin ${LINKER_OPTIONS} ${ADDITIONAL_LIBRARIES} ${GTK3_LIBRARIES} ${wxWidgets_LIBRARIES} -L"${CL_LIBPATH}" -lwxsqlite3 -lsqlite3lib -llibcodelite) -+ target_link_libraries(plugin ${LINKER_OPTIONS} ${ADDITIONAL_LIBRARIES} ${GTK3_LIBRARIES} ${wxWidgets_LIBRARIES} -L"${CL_LIBPATH}" libcodelite) - else() -- target_link_libraries(plugin ${LINKER_OPTIONS} ${ADDITIONAL_LIBRARIES} ${wxWidgets_LIBRARIES} -L"${CL_LIBPATH}" -lwxsqlite3 -lsqlite3lib -llibcodelite) -+ target_link_libraries(plugin ${LINKER_OPTIONS} ${ADDITIONAL_LIBRARIES} ${wxWidgets_LIBRARIES} -L"${CL_LIBPATH}" libcodelite) - endif() - - if (NOT MINGW) -diff --git a/QmakePlugin/CMakeLists.txt b/QmakePlugin/CMakeLists.txt -index ee49d39..2187bfc 100644 ---- a/QmakePlugin/CMakeLists.txt -+++ b/QmakePlugin/CMakeLists.txt -@@ -53,8 +53,6 @@ target_link_libraries(${PLUGIN_NAME} - ${wxWidgets_LIBRARIES} - libcodelite - plugin -- wxsqlite3 -- sqlite3lib - ) - # Installation destination - CL_INSTALL_PLUGIN(${PLUGIN_NAME}) -diff --git a/Runtime/templates/gizmos/CMakeLists.txt.plugin.wizard b/Runtime/templates/gizmos/CMakeLists.txt.plugin.wizard -index a11d69b..15b7447 100644 ---- a/Runtime/templates/gizmos/CMakeLists.txt.plugin.wizard -+++ b/Runtime/templates/gizmos/CMakeLists.txt.plugin.wizard -@@ -57,8 +57,6 @@ target_link_libraries(${PLUGIN_NAME} - ${wxWidgets_LIBRARIES} - libcodelite - plugin -- wxsqlite3 -- sqlite3lib - ) - - # Use CodeLite's macro: CL_INSTALL_PLUGIN which handles both OSX and Linux installation -diff --git a/SFTP/CMakeLists.txt b/SFTP/CMakeLists.txt -index 55e3e9e..79d5f9e 100644 ---- a/SFTP/CMakeLists.txt -+++ b/SFTP/CMakeLists.txt -@@ -54,8 +54,6 @@ target_link_libraries(${PLUGIN_NAME} - ${wxWidgets_LIBRARIES} - libcodelite - plugin -- wxsqlite3 -- sqlite3lib - ) - # Installation destination - CL_INSTALL_PLUGIN(${PLUGIN_NAME}) -diff --git a/SnipWiz/CMakeLists.txt b/SnipWiz/CMakeLists.txt -index b808dce..2d82f0c 100644 ---- a/SnipWiz/CMakeLists.txt -+++ b/SnipWiz/CMakeLists.txt -@@ -54,7 +54,5 @@ target_link_libraries(${PLUGIN_NAME} - ${wxWidgets_LIBRARIES} - libcodelite - plugin -- wxsqlite3 -- sqlite3lib - ) - CL_INSTALL_PLUGIN(${PLUGIN_NAME}) -diff --git a/SpellChecker/CMakeLists.txt b/SpellChecker/CMakeLists.txt -index 26a71dd..abc9dbf 100644 ---- a/SpellChecker/CMakeLists.txt -+++ b/SpellChecker/CMakeLists.txt -@@ -83,8 +83,6 @@ else () - ${LIBHUNSPELL} - libcodelite - plugin -- wxsqlite3 -- sqlite3lib - ) - - # Installation destination -diff --git a/Subversion2/CMakeLists.txt b/Subversion2/CMakeLists.txt -index b7db282..b8c461f 100644 ---- a/Subversion2/CMakeLists.txt -+++ b/Subversion2/CMakeLists.txt -@@ -54,8 +54,6 @@ target_link_libraries(${PLUGIN_NAME} - ${wxWidgets_LIBRARIES} - libcodelite - plugin -- wxsqlite3 -- sqlite3lib - ) - - # Installation destination -diff --git a/Tweaks/CMakeLists.txt b/Tweaks/CMakeLists.txt -index b0ead78..8ceb94c 100644 ---- a/Tweaks/CMakeLists.txt -+++ b/Tweaks/CMakeLists.txt -@@ -55,7 +55,5 @@ target_link_libraries(${PLUGIN_NAME} - ${wxWidgets_LIBRARIES} - libcodelite - plugin -- wxsqlite3 -- sqlite3lib - ) - CL_INSTALL_PLUGIN(${PLUGIN_NAME}) -diff --git a/UnitTestCPP/CMakeLists.txt b/UnitTestCPP/CMakeLists.txt -index 0f90690..cc004d7 100644 ---- a/UnitTestCPP/CMakeLists.txt -+++ b/UnitTestCPP/CMakeLists.txt -@@ -55,8 +55,6 @@ target_link_libraries(${PLUGIN_NAME} - ${wxWidgets_LIBRARIES} - libcodelite - plugin -- wxsqlite3 -- sqlite3lib - ) - - -diff --git a/WebTools/CMakeLists.txt b/WebTools/CMakeLists.txt -index 4b4ed3e..6510750 100644 ---- a/WebTools/CMakeLists.txt -+++ b/WebTools/CMakeLists.txt -@@ -57,8 +57,6 @@ target_link_libraries(${PLUGIN_NAME} - ${wxWidgets_LIBRARIES} - libcodelite - plugin -- wxsqlite3 -- sqlite3lib - ) - - CL_INSTALL_PLUGIN(${PLUGIN_NAME}) -diff --git a/WordCompletion/CMakeLists.txt b/WordCompletion/CMakeLists.txt -index 1f90843..a397c81 100644 ---- a/WordCompletion/CMakeLists.txt -+++ b/WordCompletion/CMakeLists.txt -@@ -53,7 +53,5 @@ target_link_libraries(${PLUGIN_NAME} - ${wxWidgets_LIBRARIES} - libcodelite - plugin -- wxsqlite3 -- sqlite3lib - ) - CL_INSTALL_PLUGIN(${PLUGIN_NAME}) -\ No newline at end of file -diff --git a/ZoomNavigator/CMakeLists.txt b/ZoomNavigator/CMakeLists.txt -index f39f153..5779819 100644 ---- a/ZoomNavigator/CMakeLists.txt -+++ b/ZoomNavigator/CMakeLists.txt -@@ -54,7 +54,5 @@ target_link_libraries(${PLUGIN_NAME} - ${wxWidgets_LIBRARIES} - libcodelite - plugin -- wxsqlite3 -- sqlite3lib - ) - CL_INSTALL_PLUGIN(${PLUGIN_NAME}) -\ No newline at end of file -diff --git a/abbreviation/CMakeLists.txt b/abbreviation/CMakeLists.txt -index 37645a8..d472cf0 100644 ---- a/abbreviation/CMakeLists.txt -+++ b/abbreviation/CMakeLists.txt -@@ -52,8 +52,6 @@ target_link_libraries(${PLUGIN_NAME} - ${wxWidgets_LIBRARIES} - libcodelite - plugin -- wxsqlite3 -- sqlite3lib - ) - # Installation destination - CL_INSTALL_PLUGIN(${PLUGIN_NAME}) -diff --git a/codelite_make/CMakeLists.txt b/codelite_make/CMakeLists.txt -index ff96fa1..f75a6e1 100644 ---- a/codelite_make/CMakeLists.txt -+++ b/codelite_make/CMakeLists.txt -@@ -42,6 +42,6 @@ if ( UNIX ) - endif ( UNIX ) - - target_link_libraries(codelite-make ${LINKER_OPTIONS} ${wxWidgets_LIBRARIES} -L"${CL_LIBPATH}" -- wxsqlite3 sqlite3lib libcodelite plugin ${UTIL_LIB} ) -+ libcodelite plugin ${UTIL_LIB} ) - - CL_INSTALL_EXECUTABLE(codelite-make) -diff --git a/codelitephp/CMakeLists.txt b/codelitephp/CMakeLists.txt -index b1e94df..ed4e416 100644 ---- a/codelitephp/CMakeLists.txt -+++ b/codelitephp/CMakeLists.txt -@@ -94,8 +94,6 @@ target_link_libraries(${PLUGIN_NAME} - PHPParser - libcodelite - plugin -- wxsqlite3 -- sqlite3lib - ) - # Installation destination - CL_INSTALL_PLUGIN(${PLUGIN_NAME}) -@@ -106,8 +104,6 @@ target_link_libraries(PHPUnitTests - -L"${CMAKE_LIBRARY_OUTPUT_DIRECTORY}" - -L"${CL_LIBPATH}" - PHPParser -- wxsqlite3 -- sqlite3lib - libcodelite - plugin - ${ADDITIONAL_LIBRARIES} -diff --git a/cppchecker/CMakeLists.txt b/cppchecker/CMakeLists.txt -index 97bb57f..2d6e265 100644 ---- a/cppchecker/CMakeLists.txt -+++ b/cppchecker/CMakeLists.txt -@@ -48,8 +48,6 @@ target_link_libraries(${PLUGIN_NAME} - ${wxWidgets_LIBRARIES} - libcodelite - plugin -- wxsqlite3 -- sqlite3lib - ) - CL_INSTALL_PLUGIN(${PLUGIN_NAME}) - -diff --git a/cscope/CMakeLists.txt b/cscope/CMakeLists.txt -index d1ba3b9..847b0c1 100644 ---- a/cscope/CMakeLists.txt -+++ b/cscope/CMakeLists.txt -@@ -53,7 +53,5 @@ target_link_libraries(${PLUGIN_NAME} - ${wxWidgets_LIBRARIES} - libcodelite - plugin -- wxsqlite3 -- sqlite3lib - ) - CL_INSTALL_PLUGIN(${PLUGIN_NAME}) -diff --git a/git/CMakeLists.txt b/git/CMakeLists.txt -index 55222b4..660f7b6 100644 ---- a/git/CMakeLists.txt -+++ b/git/CMakeLists.txt -@@ -48,8 +48,6 @@ target_link_libraries(${PLUGIN_NAME} - ${wxWidgets_LIBRARIES} - libcodelite - plugin -- wxsqlite3 -- sqlite3lib - ) - - CL_INSTALL_PLUGIN(${PLUGIN_NAME}) -diff --git a/wxformbuilder/CMakeLists.txt b/wxformbuilder/CMakeLists.txt -index c1c4f76..4036482 100644 ---- a/wxformbuilder/CMakeLists.txt -+++ b/wxformbuilder/CMakeLists.txt -@@ -53,7 +53,5 @@ target_link_libraries(${PLUGIN_NAME} - ${wxWidgets_LIBRARIES} - libcodelite - plugin -- wxsqlite3 -- sqlite3lib - ) - CL_INSTALL_PLUGIN(${PLUGIN_NAME}) --- -2.1.4 - diff -Nru codelite-8.0.1+dfsg2/debian/patches/u02_Remove-RPATH-settings-from-plugin-CMakeLists.patch codelite-9.0+dfsg/debian/patches/u02_Remove-RPATH-settings-from-plugin-CMakeLists.patch --- codelite-8.0.1+dfsg2/debian/patches/u02_Remove-RPATH-settings-from-plugin-CMakeLists.patch 2015-05-15 17:55:49.000000000 +0000 +++ codelite-9.0+dfsg/debian/patches/u02_Remove-RPATH-settings-from-plugin-CMakeLists.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,837 +0,0 @@ -From d1dbe0a075400c0505e93ebbcdd9dc07cef225bc Mon Sep 17 00:00:00 2001 -From: James Cowgill -Date: Thu, 14 May 2015 20:58:38 +0100 -Subject: [PATCH 2/5] Remove RPATH settings from plugin CMakeLists - -If CMAKE_INSTALL_RPATH is set (like it is in the toplevel CMakeLists.txt), -CMake will automatically handle all this RPATH stuff for you so none of these -extra -Wl,-rpath additions are needed. - -[modified to not patch files which don't exist in the debian version] ---- - CMakePlugin/CMakeLists.txt | 5 ----- - CallGraph/CMakeLists.txt | 6 ------ - CodeDesigner/CMakeLists.txt | 5 ----- - CodeFormatter/CMakeLists.txt | 5 ----- - CodeLite/CMakeLists.txt | 13 ++++--------- - CodeLiteDiff/CMakeLists.txt | 5 ----- - ContinuousBuild/CMakeLists.txt | 5 ----- - Copyright/CMakeLists.txt | 5 ----- - DatabaseExplorer/CMakeLists.txt | 4 ---- - Debugger/CMakeLists.txt | 6 ------ - ExternalTools/CMakeLists.txt | 8 +------- - Gizmos/CMakeLists.txt | 7 +------ - HelpPlugin/CMakeLists.txt | 5 ----- - LLDBDebugger/CMakeLists.txt | 5 ----- - LLDBDebugger/codelite-lldb/CMakeLists.txt | 5 ----- - LiteEditor/CMakeLists.txt | 5 ----- - MacBundler/CMakeLists.txt | 5 ----- - MemCheck/CMakeLists.txt | 7 +------ - Outline/CMakeLists.txt | 9 +-------- - Plugin/CMakeLists.txt | 11 +++-------- - QmakePlugin/CMakeLists.txt | 5 ----- - Runtime/templates/gizmos/CMakeLists.txt.plugin.wizard | 5 ----- - SFTP/CMakeLists.txt | 6 ------ - SnipWiz/CMakeLists.txt | 6 ------ - SpellChecker/CMakeLists.txt | 3 --- - Subversion2/CMakeLists.txt | 8 +------- - Tweaks/CMakeLists.txt | 6 ------ - UnitTestCPP/CMakeLists.txt | 6 ------ - WebTools/CMakeLists.txt | 5 ----- - WordCompletion/CMakeLists.txt | 8 +------- - ZoomNavigator/CMakeLists.txt | 8 +------- - abbreviation/CMakeLists.txt | 5 ----- - cmake/Modules/plugin.cmake | 3 --- - codelite_make/CMakeLists.txt | 5 ----- - codelite_terminal/CMakeLists.txt | 5 ----- - codelitegcc/CMakeLists.txt | 5 ----- - codelitephp/CMakeLists.txt | 5 ----- - cppchecker/CMakeLists.txt | 5 ----- - cscope/CMakeLists.txt | 6 ------ - git/CMakeLists.txt | 5 ----- - sdk/codelite_indexer/CMakeLists.txt | 5 ----- - sdk/databaselayer/CMakeLists.txt | 5 ----- - sdk/wxshapeframework/CMakeLists.txt | 5 ----- - wxformbuilder/CMakeLists.txt | 5 ----- - 46 files changed, 15 insertions(+), 253 deletions(-) - -diff --git a/CMakePlugin/CMakeLists.txt b/CMakePlugin/CMakeLists.txt -index eddb29d..5bc6424 100644 ---- a/CMakePlugin/CMakeLists.txt -+++ b/CMakePlugin/CMakeLists.txt -@@ -38,11 +38,6 @@ if (USE_PCH) - add_definitions(-Winvalid-pch) - endif (USE_PCH) - --# Add RPATH --if (UNIX) --set (LINKER_OPTIONS -Wl,-rpath,"${PLUGINS_DIR}") --endif (UNIX) -- - if (UNIX AND NOT APPLE) - set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC" ) - set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC" ) -diff --git a/CallGraph/CMakeLists.txt b/CallGraph/CMakeLists.txt -index 3dba7fd..8f201b4 100644 ---- a/CallGraph/CMakeLists.txt -+++ b/CallGraph/CMakeLists.txt -@@ -26,12 +26,6 @@ if ( USE_PCH ) - add_definitions(-Winvalid-pch) - endif ( USE_PCH ) - -- --# Add RPATH --if (UNIX) --set (LINKER_OPTIONS -Wl,-rpath,"${PLUGINS_DIR}") --endif (UNIX) -- - FILE(GLOB SRCS "*.cpp") - - if (UNIX AND NOT APPLE) -diff --git a/CodeDesigner/CMakeLists.txt b/CodeDesigner/CMakeLists.txt -index 40679c7..d8f2d85 100644 ---- a/CodeDesigner/CMakeLists.txt -+++ b/CodeDesigner/CMakeLists.txt -@@ -21,11 +21,6 @@ add_definitions(-DWXUSINGDLL_WXSQLITE3) - add_definitions(-DWXUSINGDLL_CL) - add_definitions(-DWXUSINGDLL_SDK) - --# Add RPATH --if (UNIX) --set (LINKER_OPTIONS -Wl,-rpath,"${PLUGINS_DIR}") --endif (UNIX) -- - FILE(GLOB SRCS "*.cpp") - - # Define the output -diff --git a/CodeFormatter/CMakeLists.txt b/CodeFormatter/CMakeLists.txt -index e447950..483bc60 100644 ---- a/CodeFormatter/CMakeLists.txt -+++ b/CodeFormatter/CMakeLists.txt -@@ -36,11 +36,6 @@ if ( APPLE ) - add_definitions(-fPIC) - endif() - --# Add RPATH --if (UNIX) --set (LINKER_OPTIONS -Wl,-rpath,"${PLUGINS_DIR}") --endif (UNIX) -- - FILE(GLOB SRCS "*.cpp") - - # Define the output -diff --git a/CodeLite/CMakeLists.txt b/CodeLite/CMakeLists.txt -index 57c743d..20b2cbb 100644 ---- a/CodeLite/CMakeLists.txt -+++ b/CodeLite/CMakeLists.txt -@@ -91,16 +91,11 @@ endif() - add_definitions(-DWXUSINGDLL_WXSQLITE3) - - # Add RPATH --if (NOT MINGW) --if ( WXC_APP ) -+if (NOT MINGW AND WXC_APP) - string( REPLACE "codelite" "wxcrafter" WXC_LIBS_DIR ${PLUGINS_DIR}) -- set (LINKER_OPTIONS -Wl,-rpath,"${WXC_LIBS_DIR}:${PLUGINS_DIR}") -- message( "-- libcodelite.so is using RPATH set to ${WXC_LIBS_DIR}:${PLUGINS_DIR}") --else ( WXC_APP ) -- set (LINKER_OPTIONS -Wl,-rpath,"${PLUGINS_DIR}") -- message( "-- libcodelite.so is using RPATH set to ${PLUGINS_DIR}") --endif ( WXC_APP ) --endif (NOT MINGW) -+ set (LINKER_OPTIONS -Wl,-rpath,"${WXC_LIBS_DIR}") -+ message( "-- libcodelite.so is using RPATH set to ${WXC_LIBS_DIR}") -+endif () - FILE(GLOB SRCS "*.cpp" "../sdk/codelite_indexer/network/*.cpp" "SocketAPI/*.cpp") - - # Define the output -diff --git a/CodeLiteDiff/CMakeLists.txt b/CodeLiteDiff/CMakeLists.txt -index 121d2a1..851b550 100644 ---- a/CodeLiteDiff/CMakeLists.txt -+++ b/CodeLiteDiff/CMakeLists.txt -@@ -34,11 +34,6 @@ if (USE_PCH) - add_definitions(-Winvalid-pch) - endif (USE_PCH) - --# Add RPATH --if (UNIX) --set (LINKER_OPTIONS -Wl,-rpath,"${PLUGINS_DIR}") --endif (UNIX) -- - if (UNIX AND NOT APPLE) - set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC" ) - set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC" ) -diff --git a/ContinuousBuild/CMakeLists.txt b/ContinuousBuild/CMakeLists.txt -index d37c37a..c4602b8 100644 ---- a/ContinuousBuild/CMakeLists.txt -+++ b/ContinuousBuild/CMakeLists.txt -@@ -26,11 +26,6 @@ if ( USE_PCH ) - add_definitions(-Winvalid-pch) - endif ( USE_PCH ) - --# Add RPATH --if (UNIX) --set (LINKER_OPTIONS -Wl,-rpath,"${PLUGINS_DIR}") --endif (UNIX) -- - FILE(GLOB SRCS "*.cpp") - - if (UNIX AND NOT APPLE) -diff --git a/Copyright/CMakeLists.txt b/Copyright/CMakeLists.txt -index 09e1722..a4040b0 100644 ---- a/Copyright/CMakeLists.txt -+++ b/Copyright/CMakeLists.txt -@@ -26,11 +26,6 @@ if ( USE_PCH ) - add_definitions(-Winvalid-pch) - endif ( USE_PCH ) - --# Add RPATH --if (UNIX) --set (LINKER_OPTIONS -Wl,-rpath,"${PLUGINS_DIR}") --endif (UNIX) -- - FILE(GLOB SRCS "*.cpp") - - if (UNIX AND NOT APPLE) -diff --git a/DatabaseExplorer/CMakeLists.txt b/DatabaseExplorer/CMakeLists.txt -index b6c8e16..d6955e3 100644 ---- a/DatabaseExplorer/CMakeLists.txt -+++ b/DatabaseExplorer/CMakeLists.txt -@@ -75,10 +75,6 @@ add_definitions(-DWXUSINGDLL_WXSQLITE3) - add_definitions(-DWXUSINGDLL_CL) - add_definitions(-DWXUSINGDLL_SDK) - add_definitions(-DDBL_USE_SQLITE) --# Add RPATH --if (UNIX) --set (LINKER_OPTIONS -Wl,-rpath,"${PLUGINS_DIR}") --endif (UNIX) - - FILE(GLOB SRCS "*.cpp") - -diff --git a/Debugger/CMakeLists.txt b/Debugger/CMakeLists.txt -index 413ed2e..534df55 100644 ---- a/Debugger/CMakeLists.txt -+++ b/Debugger/CMakeLists.txt -@@ -35,12 +35,6 @@ if ( APPLE ) - add_definitions(-fPIC) - endif() - -- --# Add RPATH --if (UNIX) -- set (LINKER_OPTIONS -Wl,-rpath,"${PLUGINS_DIR}") --endif (UNIX) -- - FILE(GLOB SRCS "*.cpp") - - # Define the output -diff --git a/ExternalTools/CMakeLists.txt b/ExternalTools/CMakeLists.txt -index 1071308..f4d5bfc 100644 ---- a/ExternalTools/CMakeLists.txt -+++ b/ExternalTools/CMakeLists.txt -@@ -35,12 +35,6 @@ if ( APPLE ) - add_definitions(-fPIC) - endif() - -- --# Add RPATH --if (UNIX) --set (LINKER_OPTIONS -Wl,-rpath,"${PLUGINS_DIR}") --endif (UNIX) -- - FILE(GLOB SRCS "*.cpp") - - # Define the output -@@ -56,4 +50,4 @@ target_link_libraries(${PLUGIN_NAME} - plugin - ) - # Installation destination --CL_INSTALL_PLUGIN(${PLUGIN_NAME}) -\ No newline at end of file -+CL_INSTALL_PLUGIN(${PLUGIN_NAME}) -diff --git a/Gizmos/CMakeLists.txt b/Gizmos/CMakeLists.txt -index 603054e..29f3f18 100644 ---- a/Gizmos/CMakeLists.txt -+++ b/Gizmos/CMakeLists.txt -@@ -26,11 +26,6 @@ if ( USE_PCH ) - add_definitions(-Winvalid-pch) - endif ( USE_PCH ) - --# Add RPATH --if (UNIX) --set (LINKER_OPTIONS -Wl,-rpath,"${PLUGINS_DIR}") --endif (UNIX) -- - if (UNIX AND NOT APPLE) - set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC" ) - set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC" ) -@@ -54,4 +49,4 @@ target_link_libraries(${PLUGIN_NAME} - plugin - ) - # Installation destination --CL_INSTALL_PLUGIN(${PLUGIN_NAME}) -\ No newline at end of file -+CL_INSTALL_PLUGIN(${PLUGIN_NAME}) -diff --git a/HelpPlugin/CMakeLists.txt b/HelpPlugin/CMakeLists.txt -index 4788085..0ca9f48 100644 ---- a/HelpPlugin/CMakeLists.txt -+++ b/HelpPlugin/CMakeLists.txt -@@ -40,11 +40,6 @@ if ( APPLE ) - add_definitions(-fPIC) - endif() - --# Add RPATH --if (UNIX) -- set (LINKER_OPTIONS -Wl,-rpath,"${PLUGINS_DIR}") --endif (UNIX) -- - FILE(GLOB SRCS "*.cpp") - - # Define the output -diff --git a/LLDBDebugger/CMakeLists.txt b/LLDBDebugger/CMakeLists.txt -index 25cfb47..4f283e9 100644 ---- a/LLDBDebugger/CMakeLists.txt -+++ b/LLDBDebugger/CMakeLists.txt -@@ -71,11 +71,6 @@ if (WITH_LLDB MATCHES 1) - add_definitions(-DWXUSINGDLL_CL) - add_definitions(-DWXUSINGDLL_SDK) - -- # Add RPATH -- if (UNIX) -- set (LINKER_OPTIONS -Wl,-rpath,"${PLUGINS_DIR}") -- endif (UNIX) -- - ## By default, use the sources under the current folder - FILE(GLOB PLUGIN_SRCS "*.cpp") - -diff --git a/LLDBDebugger/codelite-lldb/CMakeLists.txt b/LLDBDebugger/codelite-lldb/CMakeLists.txt -index 5c5c906..10cab9b 100644 ---- a/LLDBDebugger/codelite-lldb/CMakeLists.txt -+++ b/LLDBDebugger/codelite-lldb/CMakeLists.txt -@@ -8,11 +8,6 @@ else ( APPLE ) - find_package(wxWidgets COMPONENTS std aui propgrid stc richtext ribbon REQUIRED) - endif ( APPLE ) - --# Add RPATH --if (UNIX) --set (LINKER_OPTIONS -Wl,-rpath,"${PLUGINS_DIR}") --endif (UNIX) -- - FILE(GLOB SRC "*.cpp") - include_directories(${CL_SRC_ROOT}/LLDBDebugger) - -diff --git a/LiteEditor/CMakeLists.txt b/LiteEditor/CMakeLists.txt -index 92f7f57..b1e401e 100644 ---- a/LiteEditor/CMakeLists.txt -+++ b/LiteEditor/CMakeLists.txt -@@ -62,11 +62,6 @@ if ( USE_CLANG ) - include_directories(${CLANG_INCLUDE}) - endif( USE_CLANG ) - --# Add RPATH --if (UNIX) --set (LINKER_OPTIONS -Wl,-rpath,"${PLUGINS_DIR}") --endif (UNIX) -- - FILE(GLOB SRCS "*.cpp") - - set (RES_FILE "") -diff --git a/MacBundler/CMakeLists.txt b/MacBundler/CMakeLists.txt -index 17fcd41..55c0bc9 100644 ---- a/MacBundler/CMakeLists.txt -+++ b/MacBundler/CMakeLists.txt -@@ -30,11 +30,6 @@ if ( USE_PCH ) - add_definitions(-Winvalid-pch) - endif ( USE_PCH ) - --# Add RPATH --if (UNIX) --set (LINKER_OPTIONS -Wl,-rpath,"${PLUGINS_DIR}") --endif (UNIX) -- - FILE(GLOB SRCS "*.cpp") - - # Define the output -diff --git a/MemCheck/CMakeLists.txt b/MemCheck/CMakeLists.txt -index e5723ee..3d2f53c 100644 ---- a/MemCheck/CMakeLists.txt -+++ b/MemCheck/CMakeLists.txt -@@ -43,11 +43,6 @@ if(UNIX AND NOT APPLE) - add_definitions(-fPIC) - endif() - -- -- -- # Add RPATH -- set (LINKER_OPTIONS -Wl,-rpath,"${PLUGINS_DIR}") -- - FILE(GLOB SRCS "*.cpp") - - # Define the output -@@ -61,4 +56,4 @@ if(UNIX AND NOT APPLE) - add_dependencies(${PLUGIN_NAME} plugin) - install(TARGETS ${PLUGIN_NAME} DESTINATION ${PLUGINS_DIR}) - --endif() -\ No newline at end of file -+endif() -diff --git a/Outline/CMakeLists.txt b/Outline/CMakeLists.txt -index 2483bb5..71145d6 100644 ---- a/Outline/CMakeLists.txt -+++ b/Outline/CMakeLists.txt -@@ -36,13 +36,6 @@ if ( APPLE ) - add_definitions(-fPIC) - endif() - -- -- --# Add RPATH --if (UNIX) --set (LINKER_OPTIONS -Wl,-rpath,"${PLUGINS_DIR}") --endif (UNIX) -- - FILE(GLOB SRCS "*.cpp") - - # Define the output -@@ -57,4 +50,4 @@ target_link_libraries(${PLUGIN_NAME} - plugin - ) - # Installation destination --CL_INSTALL_PLUGIN(${PLUGIN_NAME}) -\ No newline at end of file -+CL_INSTALL_PLUGIN(${PLUGIN_NAME}) -diff --git a/Plugin/CMakeLists.txt b/Plugin/CMakeLists.txt -index ade4992..928c480 100644 ---- a/Plugin/CMakeLists.txt -+++ b/Plugin/CMakeLists.txt -@@ -77,15 +77,10 @@ add_definitions(-DWXUSINGDLL_WXSQLITE3) - add_definitions(-DWXUSINGDLL_CL) - - # Add RPATH --if(NOT MINGW) --if ( WXC_APP ) -+if(NOT MINGW AND WXC_APP) - string( REPLACE "codelite" "wxcrafter" WXC_LIBS_DIR ${PLUGINS_DIR}) -- set (LINKER_OPTIONS -Wl,-rpath,"${WXC_LIBS_DIR}:${PLUGINS_DIR}") -- message( "-- libplugin.so is using RPATH set to ${WXC_LIBS_DIR}:${PLUGINS_DIR}") --else ( WXC_APP ) -- set (LINKER_OPTIONS -Wl,-rpath,"${PLUGINS_DIR}") -- message( "-- libplugin.so is using RPATH set to ${PLUGINS_DIR}") --endif ( WXC_APP ) -+ set (LINKER_OPTIONS -Wl,-rpath,"${WXC_LIBS_DIR}") -+ message( "-- libplugin.so is using RPATH set to ${WXC_LIBS_DIR}") - endif() - - FILE(GLOB SRCS "*.cpp") -diff --git a/QmakePlugin/CMakeLists.txt b/QmakePlugin/CMakeLists.txt -index 2187bfc..e6ecddd 100644 ---- a/QmakePlugin/CMakeLists.txt -+++ b/QmakePlugin/CMakeLists.txt -@@ -26,11 +26,6 @@ if ( USE_PCH ) - add_definitions(-Winvalid-pch) - endif ( USE_PCH ) - --# Add RPATH --if (UNIX) --set (LINKER_OPTIONS -Wl,-rpath,"${PLUGINS_DIR}") --endif (UNIX) -- - if (UNIX AND NOT APPLE) - set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC" ) - set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC" ) -diff --git a/Runtime/templates/gizmos/CMakeLists.txt.plugin.wizard b/Runtime/templates/gizmos/CMakeLists.txt.plugin.wizard -index 15b7447..bbc49e8 100644 ---- a/Runtime/templates/gizmos/CMakeLists.txt.plugin.wizard -+++ b/Runtime/templates/gizmos/CMakeLists.txt.plugin.wizard -@@ -40,11 +40,6 @@ if ( APPLE ) - add_definitions(-fPIC) - endif() - --# Add RPATH --if (UNIX) -- set (LINKER_OPTIONS -Wl,-rpath,"${PLUGINS_DIR}") --endif (UNIX) -- - FILE(GLOB SRCS "*.cpp") - - # Define the output -diff --git a/SFTP/CMakeLists.txt b/SFTP/CMakeLists.txt -index 79d5f9e..51b80e5 100644 ---- a/SFTP/CMakeLists.txt -+++ b/SFTP/CMakeLists.txt -@@ -26,12 +26,6 @@ if ( USE_PCH ) - add_definitions(-Winvalid-pch) - endif ( USE_PCH ) - --# Add RPATH --if (UNIX) --set (LINKER_OPTIONS -Wl,-rpath,"${PLUGINS_DIR}") --endif (UNIX) -- -- - if (UNIX AND NOT APPLE) - set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC" ) - set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC" ) -diff --git a/SnipWiz/CMakeLists.txt b/SnipWiz/CMakeLists.txt -index 2d82f0c..18d8db4 100644 ---- a/SnipWiz/CMakeLists.txt -+++ b/SnipWiz/CMakeLists.txt -@@ -26,12 +26,6 @@ if ( USE_PCH ) - add_definitions(-Winvalid-pch) - endif ( USE_PCH ) - --# Add RPATH --if (UNIX) --set (LINKER_OPTIONS -Wl,-rpath,"${PLUGINS_DIR}") --endif (UNIX) -- -- - if (UNIX AND NOT APPLE) - set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC" ) - set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC" ) -diff --git a/SpellChecker/CMakeLists.txt b/SpellChecker/CMakeLists.txt -index abc9dbf..aa8978d 100644 ---- a/SpellChecker/CMakeLists.txt -+++ b/SpellChecker/CMakeLists.txt -@@ -67,9 +67,6 @@ else () - add_definitions(-Winvalid-pch) - endif ( USE_PCH ) - -- # Add RPATH -- set (LINKER_OPTIONS -Wl,-rpath,"${PLUGINS_DIR}") -- - FILE(GLOB SRCS "*.cpp") - - # Define the output -diff --git a/Subversion2/CMakeLists.txt b/Subversion2/CMakeLists.txt -index b8c461f..c8ee97d 100644 ---- a/Subversion2/CMakeLists.txt -+++ b/Subversion2/CMakeLists.txt -@@ -36,12 +36,6 @@ if ( APPLE ) - add_definitions(-fPIC) - endif() - -- --# Add RPATH --if (UNIX) --set (LINKER_OPTIONS -Wl,-rpath,"${PLUGINS_DIR}") --endif (UNIX) -- - FILE(GLOB SRCS "*.cpp") - - # Define the output -@@ -57,4 +51,4 @@ target_link_libraries(${PLUGIN_NAME} - ) - - # Installation destination --CL_INSTALL_PLUGIN(${PLUGIN_NAME}) -\ No newline at end of file -+CL_INSTALL_PLUGIN(${PLUGIN_NAME}) -diff --git a/Tweaks/CMakeLists.txt b/Tweaks/CMakeLists.txt -index 8ceb94c..3f1922b 100644 ---- a/Tweaks/CMakeLists.txt -+++ b/Tweaks/CMakeLists.txt -@@ -26,12 +26,6 @@ if ( USE_PCH ) - add_definitions(-Winvalid-pch) - endif ( USE_PCH ) - --# Add RPATH --if (UNIX) --set (LINKER_OPTIONS -Wl,-rpath,"${PLUGINS_DIR}") --endif (UNIX) -- -- - if (UNIX AND NOT APPLE) - set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC" ) - set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC" ) -diff --git a/UnitTestCPP/CMakeLists.txt b/UnitTestCPP/CMakeLists.txt -index cc004d7..fc7786c 100644 ---- a/UnitTestCPP/CMakeLists.txt -+++ b/UnitTestCPP/CMakeLists.txt -@@ -26,12 +26,6 @@ if ( USE_PCH ) - add_definitions(-Winvalid-pch) - endif ( USE_PCH ) - --# Add RPATH --if (UNIX) --set (LINKER_OPTIONS -Wl,-rpath,"${PLUGINS_DIR}") --endif (UNIX) -- -- - if (UNIX AND NOT APPLE) - set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC" ) - set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC" ) -diff --git a/WebTools/CMakeLists.txt b/WebTools/CMakeLists.txt -index 6510750..51bc546 100644 ---- a/WebTools/CMakeLists.txt -+++ b/WebTools/CMakeLists.txt -@@ -30,11 +30,6 @@ if ( USE_PCH ) - add_definitions(-Winvalid-pch) - endif ( USE_PCH ) - --# Add RPATH --if (UNIX) -- set (LINKER_OPTIONS -Wl,-rpath,"${PLUGINS_DIR}") --endif (UNIX) -- - if (UNIX AND NOT APPLE) - set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC" ) - set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC" ) -diff --git a/WordCompletion/CMakeLists.txt b/WordCompletion/CMakeLists.txt -index a397c81..6129e30 100644 ---- a/WordCompletion/CMakeLists.txt -+++ b/WordCompletion/CMakeLists.txt -@@ -26,12 +26,6 @@ if ( USE_PCH ) - add_definitions(-Winvalid-pch) - endif ( USE_PCH ) - --# Add RPATH --if (UNIX) --set (LINKER_OPTIONS -Wl,-rpath,"${PLUGINS_DIR}") --endif (UNIX) -- -- - if (UNIX AND NOT APPLE) - set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC" ) - set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC" ) -@@ -54,4 +48,4 @@ target_link_libraries(${PLUGIN_NAME} - libcodelite - plugin - ) --CL_INSTALL_PLUGIN(${PLUGIN_NAME}) -\ No newline at end of file -+CL_INSTALL_PLUGIN(${PLUGIN_NAME}) -diff --git a/ZoomNavigator/CMakeLists.txt b/ZoomNavigator/CMakeLists.txt -index 5779819..cc54d61 100644 ---- a/ZoomNavigator/CMakeLists.txt -+++ b/ZoomNavigator/CMakeLists.txt -@@ -26,12 +26,6 @@ if ( USE_PCH ) - add_definitions(-Winvalid-pch) - endif ( USE_PCH ) - --# Add RPATH --if (UNIX) --set (LINKER_OPTIONS -Wl,-rpath,"${PLUGINS_DIR}") --endif (UNIX) -- -- - if (UNIX AND NOT APPLE) - set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC" ) - set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC" ) -@@ -55,4 +49,4 @@ target_link_libraries(${PLUGIN_NAME} - libcodelite - plugin - ) --CL_INSTALL_PLUGIN(${PLUGIN_NAME}) -\ No newline at end of file -+CL_INSTALL_PLUGIN(${PLUGIN_NAME}) -diff --git a/abbreviation/CMakeLists.txt b/abbreviation/CMakeLists.txt -index d472cf0..e4991fc 100644 ---- a/abbreviation/CMakeLists.txt -+++ b/abbreviation/CMakeLists.txt -@@ -26,11 +26,6 @@ if ( USE_PCH ) - add_definitions(-Winvalid-pch) - endif ( USE_PCH ) - --# Add RPATH --if (UNIX) --set (LINKER_OPTIONS -Wl,-rpath,"${PLUGINS_DIR}") --endif (UNIX) -- - if (UNIX AND NOT APPLE) - set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC" ) - set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC" ) -diff --git a/cmake/Modules/plugin.cmake b/cmake/Modules/plugin.cmake -index f2788ba..5b75878 100644 ---- a/cmake/Modules/plugin.cmake -+++ b/cmake/Modules/plugin.cmake -@@ -50,9 +50,6 @@ function( CL_PLUGIN PLUGIN_NAME ) - add_definitions(-include "${CL_PCH_FILE}") - add_definitions(-Winvalid-pch) - endif ( USE_PCH ) -- -- # Add RPATH -- set (LINKER_OPTIONS -Wl,-rpath,"${PLUGINS_DIR}") - - ## By default, use the sources under the current folder - FILE(GLOB_RECURSE PLUGIN_SRCS "${CMAKE_CURRENT_LIST_DIR}/*.cpp" "${CMAKE_CURRENT_LIST_DIR}/*.c") -diff --git a/codelite_make/CMakeLists.txt b/codelite_make/CMakeLists.txt -index f75a6e1..20174cf 100644 ---- a/codelite_make/CMakeLists.txt -+++ b/codelite_make/CMakeLists.txt -@@ -14,11 +14,6 @@ find_package(wxWidgets COMPONENTS core base REQUIRED) - # Include paths - #include_directories("${CL_SRC_ROOT}/Plugin" "${CL_SRC_ROOT}/sdk/wxsqlite3/include" "${CL_SRC_ROOT}/CodeLite" "${CL_SRC_ROOT}/PCH" "${CL_SRC_ROOT}/Interfaces") - --# Add RPATH --if ( UNIX ) --set (LINKER_OPTIONS -Wl,-rpath,"${PLUGINS_DIR}") --endif ( UNIX ) -- - # we need wxWidgets flags to be set only for the c++ files, so we do it like this - # by setting the CMAKE_CXX_FLAGS - if ( NOT MINGW ) -diff --git a/codelite_terminal/CMakeLists.txt b/codelite_terminal/CMakeLists.txt -index 9053477..e0aa46e 100644 ---- a/codelite_terminal/CMakeLists.txt -+++ b/codelite_terminal/CMakeLists.txt -@@ -11,11 +11,6 @@ else ( UNIX AND NOT APPLE ) - find_package(wxWidgets REQUIRED) - endif ( UNIX OR MINGW AND NOT APPLE ) - --# Add RPATH --if ( UNIX ) --set (LINKER_OPTIONS -Wl,-rpath,"${PLUGINS_DIR}") --endif ( UNIX ) -- - # we need wxWidgets flags to be set only for the c++ files, so we do it like this - # by setting the CMAKE_CXX_FLAGS - if ( NOT MINGW ) -diff --git a/codelitegcc/CMakeLists.txt b/codelitegcc/CMakeLists.txt -index 298cec1..f55faac 100644 ---- a/codelitegcc/CMakeLists.txt -+++ b/codelitegcc/CMakeLists.txt -@@ -5,11 +5,6 @@ cmake_minimum_required(VERSION 2.6.2) - # visual studio, and in our makefiles. - project(codelite-cc) - --# Add RPATH --if (UNIX) --set (LINKER_OPTIONS -Wl,-rpath,"${PLUGINS_DIR}") --endif (UNIX) -- - FILE(GLOB SRCS "*.cpp") - - # Define the output -diff --git a/codelitephp/CMakeLists.txt b/codelitephp/CMakeLists.txt -index ed4e416..d6ccf82 100644 ---- a/codelitephp/CMakeLists.txt -+++ b/codelitephp/CMakeLists.txt -@@ -45,11 +45,6 @@ add_definitions(-DWXUSINGDLL_WXSQLITE3) - add_definitions(-DWXUSINGDLL_CL) - add_definitions(-DWXUSINGDLL_SDK) - --if (UNIX) --# Add RPATH --set (LINKER_OPTIONS -Wl,-rpath,"${PLUGINS_DIR}") --endif() -- - if(CMAKE_BUILD_TYPE MATCHES Debug OR CMAKE_BUILD_TYPE MATCHES DebugFull) - ## Debug build of codelite - set( CL_LIB_DIR lib) -diff --git a/cppchecker/CMakeLists.txt b/cppchecker/CMakeLists.txt -index 2d6e265..10d9048 100644 ---- a/cppchecker/CMakeLists.txt -+++ b/cppchecker/CMakeLists.txt -@@ -21,11 +21,6 @@ add_definitions(-DWXUSINGDLL_WXSQLITE3) - add_definitions(-DWXUSINGDLL_CL) - add_definitions(-DWXUSINGDLL_SDK) - --# Add RPATH --if (UNIX) --set (LINKER_OPTIONS -Wl,-rpath,"${PLUGINS_DIR}") --endif (UNIX) -- - FILE(GLOB SRCS "*.cpp") - - if (UNIX AND NOT APPLE) -diff --git a/cscope/CMakeLists.txt b/cscope/CMakeLists.txt -index 847b0c1..94a7c71 100644 ---- a/cscope/CMakeLists.txt -+++ b/cscope/CMakeLists.txt -@@ -35,12 +35,6 @@ if ( APPLE ) - add_definitions(-fPIC) - endif() - -- --# Add RPATH --if (UNIX) --set (LINKER_OPTIONS -Wl,-rpath,"${PLUGINS_DIR}") --endif (UNIX) -- - FILE(GLOB SRCS "*.cpp") - - # Define the output -diff --git a/git/CMakeLists.txt b/git/CMakeLists.txt -index 660f7b6..4bb6079 100644 ---- a/git/CMakeLists.txt -+++ b/git/CMakeLists.txt -@@ -21,11 +21,6 @@ add_definitions(-DWXUSINGDLL_WXSQLITE3) - add_definitions(-DWXUSINGDLL_CL) - add_definitions(-DWXUSINGDLL_SDK) - --# Add RPATH --if (UNIX) --set (LINKER_OPTIONS -Wl,-rpath,"${PLUGINS_DIR}") --endif (UNIX) -- - if (UNIX AND NOT APPLE) - set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC" ) - set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC" ) -diff --git a/sdk/codelite_indexer/CMakeLists.txt b/sdk/codelite_indexer/CMakeLists.txt -index 55bcaed..b6d5e3c 100644 ---- a/sdk/codelite_indexer/CMakeLists.txt -+++ b/sdk/codelite_indexer/CMakeLists.txt -@@ -14,11 +14,6 @@ find_package(wxWidgets COMPONENTS core base REQUIRED) - # Include paths - #include_directories("${CL_SRC_ROOT}/Plugin" "${CL_SRC_ROOT}/sdk/wxsqlite3/include" "${CL_SRC_ROOT}/CodeLite" "${CL_SRC_ROOT}/PCH" "${CL_SRC_ROOT}/Interfaces") - --# Add RPATH --if (UNIX) --set (LINKER_OPTIONS -Wl,-rpath,"${PLUGINS_DIR}") --endif (UNIX) -- - # we need wxWidgets flags to be set only for the c++ files, so we do it like this - # by setting the CMAKE_CXX_FLAGS - if ( NOT MINGW ) -diff --git a/sdk/databaselayer/CMakeLists.txt b/sdk/databaselayer/CMakeLists.txt -index ea8556b..407d035 100644 ---- a/sdk/databaselayer/CMakeLists.txt -+++ b/sdk/databaselayer/CMakeLists.txt -@@ -23,11 +23,6 @@ if(WIN32) - add_definitions(-DWXMAKINGDLL_DATABASELAYER) - endif(WIN32) - --# Add RPATH --if (UNIX) -- set (LINKER_OPTIONS -Wl,-rpath,"${PLUGINS_DIR}") --endif (UNIX) -- - if (UNIX AND NOT APPLE) - set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC" ) - set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC" ) -diff --git a/sdk/wxshapeframework/CMakeLists.txt b/sdk/wxshapeframework/CMakeLists.txt -index 90c4059..308cec4 100644 ---- a/sdk/wxshapeframework/CMakeLists.txt -+++ b/sdk/wxshapeframework/CMakeLists.txt -@@ -24,11 +24,6 @@ endif ( USE_PCH ) - - include_directories("${CL_SRC_ROOT}/sdk/wxshapeframework/include" "${CL_SRC_ROOT}/sdk/wxshapeframework/src") - --# Add RPATH --if (UNIX) -- set (LINKER_OPTIONS -Wl,-rpath,"${PLUGINS_DIR}") --endif (UNIX) -- - if (UNIX AND NOT APPLE) - set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC" ) - set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC" ) -diff --git a/wxformbuilder/CMakeLists.txt b/wxformbuilder/CMakeLists.txt -index 4036482..a61edc1 100644 ---- a/wxformbuilder/CMakeLists.txt -+++ b/wxformbuilder/CMakeLists.txt -@@ -26,11 +26,6 @@ if ( USE_PCH ) - add_definitions(-Winvalid-pch) - endif ( USE_PCH ) - --# Add RPATH --if (UNIX) --set (LINKER_OPTIONS -Wl,-rpath,"${PLUGINS_DIR}") --endif (UNIX) -- - if (UNIX AND NOT APPLE) - set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC" ) - set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC" ) --- -2.1.4 - diff -Nru codelite-8.0.1+dfsg2/debian/patches/u03_Remove-uses-of-__DATE__-and-__TIME__-from-libctags.patch codelite-9.0+dfsg/debian/patches/u03_Remove-uses-of-__DATE__-and-__TIME__-from-libctags.patch --- codelite-8.0.1+dfsg2/debian/patches/u03_Remove-uses-of-__DATE__-and-__TIME__-from-libctags.patch 2015-05-15 17:55:49.000000000 +0000 +++ codelite-9.0+dfsg/debian/patches/u03_Remove-uses-of-__DATE__-and-__TIME__-from-libctags.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,35 +0,0 @@ -From 7e26dc1d647ff17fedd41fc01863ad9b65999994 Mon Sep 17 00:00:00 2001 -From: James Cowgill -Date: Tue, 12 May 2015 13:55:48 +0100 -Subject: [PATCH 3/5] Remove uses of __DATE__ and __TIME__ from libctags - -There is an effort in Debian (and other distros) to be able to create -reproducible binaries. Including a timestamp embedded in the executable will -clearly make it slightly different each time it's built. After removing these -two instances from libctags, codelite can be built reproducibly (with an -experimental toolchain). - -More info: -https://wiki.debian.org/ReproducibleBuilds/About - -The 7.0+dfsg-2 upload to Debian had this patch applied and this is the log: -https://reproducible.debian.net/rb-pkg/unstable/amd64/codelite.html ---- - sdk/codelite_indexer/libctags/options.c | 1 - - 1 file changed, 1 deletion(-) - -diff --git a/sdk/codelite_indexer/libctags/options.c b/sdk/codelite_indexer/libctags/options.c -index f5642de..986c7d7 100644 ---- a/sdk/codelite_indexer/libctags/options.c -+++ b/sdk/codelite_indexer/libctags/options.c -@@ -928,7 +928,6 @@ static void printProgramIdentification (void) - { - printf ("%s %s, Copyright (C) 1996-2004 %s\n", - PROGRAM_NAME, PROGRAM_VERSION, AUTHOR_NAME); -- printf (" Compiled: %s, %s\n", __DATE__, __TIME__); - printf (" Addresses: <%s>, %s\n", AUTHOR_EMAIL, PROGRAM_URL); - printFeatureList (); - } --- -2.1.4 - diff -Nru codelite-8.0.1+dfsg2/debian/patches/u04_Fix-LLDBDebugger-undefined-symbol-error-when-using-L.patch codelite-9.0+dfsg/debian/patches/u04_Fix-LLDBDebugger-undefined-symbol-error-when-using-L.patch --- codelite-8.0.1+dfsg2/debian/patches/u04_Fix-LLDBDebugger-undefined-symbol-error-when-using-L.patch 2015-05-15 17:55:49.000000000 +0000 +++ codelite-9.0+dfsg/debian/patches/u04_Fix-LLDBDebugger-undefined-symbol-error-when-using-L.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,44 +0,0 @@ -From 5f2362f21d070b337a2c75d20b40e32c3b8dc233 Mon Sep 17 00:00:00 2001 -From: James Cowgill -Date: Thu, 14 May 2015 23:51:43 +0100 -Subject: [PATCH 4/5] Fix LLDBDebugger undefined symbol error when using - LD_BIND_NOW - -LLDBDebugger uses symbols from liblldb.so so it should link against it. If -codelite is compiled with -Wl,as-needed and is then run with LD_BIND_NOW set, -then I get errors like this: - -> Failed to load plugin's dll: /usr/lib/codelite/LLDBDebugger.so -> /usr/lib/codelite/LLDBDebugger.so: undefined symbol: _ZN4lldb7SBValueD1Ev - -The link_directories line is removed as it's duplicated from above. -${LIBLLDB} is moved to be with the rest of the libraries to make things neater. ---- - LLDBDebugger/CMakeLists.txt | 6 ++---- - 1 file changed, 2 insertions(+), 4 deletions(-) - -diff --git a/LLDBDebugger/CMakeLists.txt b/LLDBDebugger/CMakeLists.txt -index 4f283e9..063a450 100644 ---- a/LLDBDebugger/CMakeLists.txt -+++ b/LLDBDebugger/CMakeLists.txt -@@ -78,15 +78,13 @@ if (WITH_LLDB MATCHES 1) - add_library(${PLUGIN_NAME} SHARED ${PLUGIN_SRCS}) - - target_link_libraries(LLDBDebugger LLDBProtocol) --if (APPLE) -- link_directories(${LLDB_LIB_PATH}) -- target_link_libraries(${PLUGIN_NAME} ${LIBLLDB}) --endif() -+ - # Codelite plugins doesn't use the "lib" prefix. - set_target_properties(${PLUGIN_NAME} PROPERTIES PREFIX "") - target_link_libraries(${PLUGIN_NAME} - ${LINKER_OPTIONS} - ${wxWidgets_LIBRARIES} -+ ${LIBLLDB} - libcodelite - plugin - ) --- -2.1.4 - diff -Nru codelite-8.0.1+dfsg2/debian/patches/u05_Fixed-https-github.com-eranif-codelite-issues-763.patch codelite-9.0+dfsg/debian/patches/u05_Fixed-https-github.com-eranif-codelite-issues-763.patch --- codelite-8.0.1+dfsg2/debian/patches/u05_Fixed-https-github.com-eranif-codelite-issues-763.patch 2015-05-16 15:31:56.000000000 +0000 +++ codelite-9.0+dfsg/debian/patches/u05_Fixed-https-github.com-eranif-codelite-issues-763.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,28 +0,0 @@ -From 150569a3b308c143b9b324365e280949c70ada88 Mon Sep 17 00:00:00 2001 -From: eran -Date: Tue, 12 May 2015 16:44:51 +0300 -Subject: [PATCH] Fixed: https://github.com/eranif/codelite/issues/763 : - codelite 8.0 abbreviation plugin does not work in Ubuntu 14.04 - -[jcowgill: remove changes to LiteEditor.workspace] ---- - LiteEditor.workspace | 4 ++-- - abbreviation/abbreviation.cpp | 2 +- - 2 files changed, 3 insertions(+), 3 deletions(-) - -diff --git a/abbreviation/abbreviation.cpp b/abbreviation/abbreviation.cpp -index feae401..364af44 100644 ---- a/abbreviation/abbreviation.cpp -+++ b/abbreviation/abbreviation.cpp -@@ -229,7 +229,7 @@ bool AbbreviationPlugin::InsertExpansion(const wxString& abbreviation) - { - // get the active editor - IEditor* editor = m_mgr->GetActiveEditor(); -- if(!editor || !abbreviation.IsEmpty()) return false; -+ if(!editor || abbreviation.IsEmpty()) return false; - - // search for abbreviation that matches str - // prepate list of abbreviations --- -2.1.4 - diff -Nru codelite-8.0.1+dfsg2/debian/rules codelite-9.0+dfsg/debian/rules --- codelite-8.0.1+dfsg2/debian/rules 2015-06-29 17:36:18.000000000 +0000 +++ codelite-9.0+dfsg/debian/rules 2015-10-12 22:41:04.000000000 +0000 @@ -7,7 +7,7 @@ export DEB_BUILD_MAINT_OPTIONS = hardening=+all export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed -LLVM_VERSION := 3.5 +LLVM_VERSION := 3.6 CONFIG_EXTRA := \ -DCMAKE_INSTALL_LIBDIR=lib \ @@ -19,14 +19,14 @@ # Disable clang / lldb on arches where they're not available (yet) # Remember to update debian/control when changing these -ARCH_NO_CLANG := hurd-i386 sparc -ARCH_NO_LLDB := arm64 hurd-i386 mips64el ppc64el sparc +ARCH_LLDB := amd64 armel armhf i386 mips mipsel powerpc s390x kfreebsd-amd64 kfreebsd-i386 +ARCH_CLANG := amd64 arm64 armel armhf i386 mips mipsel powerpc ppc64el s390x hurd-i386 kfreebsd-amd64 kfreebsd-i386 -ifneq (,$(filter $(DEB_HOST_ARCH),$(ARCH_NO_CLANG))) +ifeq (,$(filter $(DEB_HOST_ARCH),$(ARCH_CLANG))) CONFIG_EXTRA += -DENABLE_CLANG=0 endif -ifneq (,$(filter $(DEB_HOST_ARCH),$(ARCH_NO_LLDB))) +ifeq (,$(filter $(DEB_HOST_ARCH),$(ARCH_LLDB))) CONFIG_EXTRA += -DENABLE_LLDB=0 INSTALL_EXTRA += -Xcodelite-lldb -XLLDBDebugger.so endif diff -Nru codelite-8.0.1+dfsg2/Debugger/CMakeLists.txt codelite-9.0+dfsg/Debugger/CMakeLists.txt --- codelite-8.0.1+dfsg2/Debugger/CMakeLists.txt 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Debugger/CMakeLists.txt 2015-10-11 13:56:07.000000000 +0000 @@ -35,12 +35,6 @@ add_definitions(-fPIC) endif() - -# Add RPATH -if (UNIX) - set (LINKER_OPTIONS -Wl,-rpath,"${PLUGINS_DIR}") -endif (UNIX) - FILE(GLOB SRCS "*.cpp") # Define the output @@ -53,8 +47,6 @@ ${wxWidgets_LIBRARIES} libcodelite plugin - wxsqlite3 - sqlite3lib ) CL_INSTALL_DEBUGGER(${PLUGIN_NAME}) diff -Nru codelite-8.0.1+dfsg2/Debugger/dbgcmd.cpp codelite-9.0+dfsg/Debugger/dbgcmd.cpp --- codelite-8.0.1+dfsg2/Debugger/dbgcmd.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Debugger/dbgcmd.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -978,6 +978,7 @@ bool DbgCmdBreakList::ProcessOutput(const wxString& line) { wxString dbg_output(line); + dbg_output.Replace("bkpt=", ""); std::vector li; GdbChildrenInfo info; gdbParseListChildren(dbg_output.mb_str(wxConvUTF8).data(), info); @@ -1052,7 +1053,7 @@ if(iter->second.empty() == false) { wxString bpId(iter->second.c_str(), wxConvUTF8); wxRemoveQuotes(bpId); - breakpoint.debugger_id = wxAtoi(bpId); + bpId.ToCDouble(&breakpoint.debugger_id); } } li.push_back(breakpoint); diff -Nru codelite-8.0.1+dfsg2/Debugger/debuggergdb.cpp codelite-9.0+dfsg/Debugger/debuggergdb.cpp --- codelite-8.0.1+dfsg2/Debugger/debuggergdb.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Debugger/debuggergdb.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -45,14 +45,14 @@ // On Windows lower than XP, the function DebugBreakProcess does not exist // so we need to bind it dynamically -typedef BOOL WINAPI ( *DBG_BREAK_PROC_FUNC_PTR )( HANDLE ); +typedef BOOL WINAPI (*DBG_BREAK_PROC_FUNC_PTR)(HANDLE); DBG_BREAK_PROC_FUNC_PTR DebugBreakProcessFunc = NULL; HINSTANCE Kernel32Dll = NULL; // define a dummy control handler -BOOL CtrlHandler( DWORD fdwCtrlType ) +BOOL CtrlHandler(DWORD fdwCtrlType) { - wxUnusedVar( fdwCtrlType ); + wxUnusedVar(fdwCtrlType); // return FALSE so other process in our group are allowed to process this event return FALSE; @@ -63,59 +63,55 @@ #include #if 0 -# define DBG_LOG 1 +#define DBG_LOG 1 static wxFFile gfp(wxT("debugger.log"), wxT("w+")); #else -# define DBG_LOG 0 +#define DBG_LOG 0 #endif -const wxEventType wxEVT_GDB_STOP_DEBUGGER = wxNewEventType(); +const wxEventType wxEVT_GDB_STOP_DEBUGGER = wxNewEventType(); -//Using the running image of child Thread 46912568064384 (LWP 7051). -static wxRegEx reInfoProgram1( wxT( "\\(LWP[ \t]([0-9]+)\\)" ) ); -//Using the running image of child process 10011. -static wxRegEx reInfoProgram2( wxT( "child process ([0-9]+)" ) ); -//Using the running image of child thread 4124.0x117c -static wxRegEx reInfoProgram3( wxT( "Using the running image of child thread ([0-9]+)" ) ); +// Using the running image of child Thread 46912568064384 (LWP 7051). +static wxRegEx reInfoProgram1(wxT("\\(LWP[ \t]([0-9]+)\\)")); +// Using the running image of child process 10011. +static wxRegEx reInfoProgram2(wxT("child process ([0-9]+)")); +// Using the running image of child thread 4124.0x117c +static wxRegEx reInfoProgram3(wxT("Using the running image of child thread ([0-9]+)")); #ifdef __WXMSW__ -static wxRegEx reConnectionRefused( wxT( "[0-9a-zA-Z/\\\\-\\_]*:[0-9]+: No connection could be made because the target machine actively refused it." ) ); +static wxRegEx reConnectionRefused( + wxT("[0-9a-zA-Z/\\\\-\\_]*:[0-9]+: No connection could be made because the target machine actively refused it.")); #else -static wxRegEx reConnectionRefused( wxT( "[0-9a-zA-Z/\\\\-\\_]*:[0-9]+: Connection refused." ) ); +static wxRegEx reConnectionRefused(wxT("[0-9a-zA-Z/\\\\-\\_]*:[0-9]+: Connection refused.")); #endif DebuggerInfo GetDebuggerInfo() { - DebuggerInfo info = { - wxT( "GNU gdb debugger" ), - wxT( "CreateDebuggerGDB" ), - wxT( "v2.0" ), - wxT( "Eran Ifrah" ) - }; + DebuggerInfo info = { wxT("GNU gdb debugger"), wxT("CreateDebuggerGDB"), wxT("v2.0"), wxT("Eran Ifrah") }; return info; } -IDebugger *CreateDebuggerGDB() +IDebugger* CreateDebuggerGDB() { static DbgGdb theGdbDebugger; - theGdbDebugger.SetName( wxT( "GNU gdb debugger" ) ); + theGdbDebugger.SetName(wxT("GNU gdb debugger")); DebuggerInformation info; info.name = theGdbDebugger.GetName(); - theGdbDebugger.SetDebuggerInformation( info ); + theGdbDebugger.SetDebuggerInformation(info); return &theGdbDebugger; } // Removes MI additional characters from string -static void StripString( wxString &string ) +static void StripString(wxString& string) { - string.Replace( wxT( "\\n\"" ), wxT( "\"" ) ); - string = string.AfterFirst( wxT( '"' ) ); - string = string.BeforeLast( wxT( '"' ) ); - string.Replace( wxT( "\\\"" ), wxT( "\"" ) ); - string.Replace( wxT( "\\\\" ), wxT( "\\" ) ); - string.Replace( wxT( "\\\\r\\\\n" ), wxT( "\r\n" ) ); - string.Replace( wxT( "\\\\n" ), wxT( "\n" ) ); - string.Replace( wxT( "\\\\r" ), wxT( "\r" ) ); + string.Replace(wxT("\\n\""), wxT("\"")); + string = string.AfterFirst(wxT('"')); + string = string.BeforeLast(wxT('"')); + string.Replace(wxT("\\\""), wxT("\"")); + string.Replace(wxT("\\\\"), wxT("\\")); + string.Replace(wxT("\\\\r\\\\n"), wxT("\r\n")); + string.Replace(wxT("\\\\n"), wxT("\n")); + string.Replace(wxT("\\\\r"), wxT("\r")); #ifdef __WXMSW__ string.Replace("\\r\\n", "\r\n"); #endif @@ -124,107 +120,115 @@ static wxString MakeId() { - static unsigned int counter( 0 ); + static unsigned int counter(0); wxString newId; - newId.Printf( wxT( "%08u" ), ++counter ); + newId.Printf(wxT("%08u"), ++counter); return newId; } -BEGIN_EVENT_TABLE( DbgGdb, wxEvtHandler ) - EVT_COMMAND( wxID_ANY, wxEVT_PROC_DATA_READ, DbgGdb::OnDataRead ) - EVT_COMMAND( wxID_ANY, wxEVT_PROC_TERMINATED, DbgGdb::OnProcessEnd ) -END_EVENT_TABLE() - DbgGdb::DbgGdb() - : m_debuggeePid( wxNOT_FOUND ) - , m_cliHandler ( NULL ) - , m_break_at_main( false ) + : m_debuggeePid(wxNOT_FOUND) + , m_cliHandler(NULL) + , m_break_at_main(false) , m_attachedMode(false) , m_goingDown(false) - , m_internalBpId( wxNOT_FOUND ) + , m_internalBpId(wxNOT_FOUND) { #ifdef __WXMSW__ - Kernel32Dll = LoadLibrary( wxT( "kernel32.dll" ) ); - if ( Kernel32Dll ) { - DebugBreakProcessFunc = ( DBG_BREAK_PROC_FUNC_PTR )GetProcAddress( Kernel32Dll, "DebugBreakProcess" ); + Kernel32Dll = LoadLibrary(wxT("kernel32.dll")); + if(Kernel32Dll) { + DebugBreakProcessFunc = (DBG_BREAK_PROC_FUNC_PTR)GetProcAddress(Kernel32Dll, "DebugBreakProcess"); } else { // we dont have DebugBreakProcess, try to work with Control handlers - if ( SetConsoleCtrlHandler( ( PHANDLER_ROUTINE ) CtrlHandler, TRUE ) == FALSE ) { - wxLogMessage( wxString::Format( wxT( "failed to install ConsoleCtrlHandler: %d" ), GetLastError() ) ); + if(SetConsoleCtrlHandler((PHANDLER_ROUTINE)CtrlHandler, TRUE) == FALSE) { + wxLogMessage(wxString::Format(wxT("failed to install ConsoleCtrlHandler: %d"), GetLastError())); } } - if ( SetConsoleCtrlHandler( ( PHANDLER_ROUTINE ) CtrlHandler, TRUE ) == FALSE ) { - wxLogMessage( wxString::Format( wxT( "failed to install ConsoleCtrlHandler: %d" ), GetLastError() ) ); + if(SetConsoleCtrlHandler((PHANDLER_ROUTINE)CtrlHandler, TRUE) == FALSE) { + wxLogMessage(wxString::Format(wxT("failed to install ConsoleCtrlHandler: %d"), GetLastError())); } #endif + Bind(wxEVT_ASYNC_PROCESS_OUTPUT, &DbgGdb::OnDataRead, this); + Bind(wxEVT_ASYNC_PROCESS_TERMINATED, &DbgGdb::OnProcessEnd, this); EventNotifier::Get()->Connect(wxEVT_GDB_STOP_DEBUGGER, wxCommandEventHandler(DbgGdb::OnKillGDB), NULL, this); } DbgGdb::~DbgGdb() { #ifdef __WXMSW__ - if ( Kernel32Dll ) { - FreeLibrary( Kernel32Dll ); + if(Kernel32Dll) { + FreeLibrary(Kernel32Dll); Kernel32Dll = NULL; } #endif EventNotifier::Get()->Disconnect(wxEVT_GDB_STOP_DEBUGGER, wxCommandEventHandler(DbgGdb::OnKillGDB), NULL, this); } -void DbgGdb::RegisterHandler( const wxString &id, DbgCmdHandler *cmd ) -{ - m_handlers[id] = cmd; -} +void DbgGdb::RegisterHandler(const wxString& id, DbgCmdHandler* cmd) { m_handlers[id] = cmd; } -DbgCmdHandler *DbgGdb::PopHandler( const wxString &id ) +DbgCmdHandler* DbgGdb::PopHandler(const wxString& id) { - HandlersMap::iterator it = m_handlers.find( id ); - if ( it == m_handlers.end() ) { + // Check if we got some gaps in the protocol + // long nId; + // id.ToCLong(&nId); + // --nId; + // wxString oldId = wxString::Format(wxT("%08d"), (int)nId); + + HandlersMap_t::iterator it = m_handlers.find(id); + if(it == m_handlers.end()) { return NULL; } - DbgCmdHandler *cmd = it->second; - m_handlers.erase( it ); + + DbgCmdHandler* cmd = it->second; + // if(it != m_handlers.begin()) { + // --it; + // if(it->first != oldId) { + // CL_WARNING("Request to process handler %s while handler %s is still in the queue!!", id, it->first); + // } + // ++it; + // } + m_handlers.erase(id); return cmd; } void DbgGdb::EmptyQueue() { - HandlersMap::iterator iter = m_handlers.begin(); - while ( iter != m_handlers.end() ) { + HandlersMap_t::iterator iter = m_handlers.begin(); + while(iter != m_handlers.end()) { delete iter->second; iter++; } m_handlers.clear(); } -bool DbgGdb::Start( const DebugSessionInfo& si) +bool DbgGdb::Start(const DebugSessionInfo& si) { - //set the environment variables - EnvSetter env( m_env, NULL, m_debuggeeProjectName ); + // set the environment variables + EnvSetter env(m_env, NULL, m_debuggeeProjectName); wxString dbgExeName; - if ( ! DoLocateGdbExecutable( si.debuggerPath, dbgExeName ) ) { + if(!DoLocateGdbExecutable(si.debuggerPath, dbgExeName)) { return false; } wxString cmd; -#if defined (__WXGTK__) || defined (__WXMAC__) +#if defined(__WXGTK__) || defined(__WXMAC__) cmd << dbgExeName; - if ( !si.ttyName.IsEmpty() ) { - cmd << wxT( " --tty=" ) << si.ttyName; + if(!si.ttyName.IsEmpty()) { + cmd << wxT(" --tty=") << si.ttyName; } - cmd << wxT( " --interpreter=mi " ) << si.exeName; + cmd << wxT(" --interpreter=mi ") << si.exeName; #else - cmd << dbgExeName << wxT( " --interpreter=mi " ) << si.exeName; + cmd << dbgExeName << wxT(" --interpreter=mi ") << si.exeName; #endif m_debuggeePid = wxNOT_FOUND; m_attachedMode = false; - m_observer->UpdateAddLine( wxString::Format( wxT( "Current working dir: %s" ), wxGetCwd().c_str() ) ); - m_observer->UpdateAddLine( wxString::Format( wxT( "Launching gdb from : %s" ), si.cwd.c_str() ) ); - m_observer->UpdateAddLine( wxString::Format( wxT( "Starting debugger : %s" ), cmd.c_str() ) ); + m_observer->UpdateAddLine(wxString::Format(wxT("Current working dir: %s"), wxGetCwd().c_str())); + m_observer->UpdateAddLine(wxString::Format(wxT("Launching gdb from : %s"), si.cwd.c_str())); + m_observer->UpdateAddLine(wxString::Format(wxT("Starting debugger : %s"), cmd.c_str())); #ifdef __WXMSW__ // When using remote debugging on Windows we need a console window, as this is the only // mechanism to send a Ctrl-C event and signal a SIGINT to interrupt the target. @@ -232,77 +236,77 @@ #else bool needs_console = m_info.showTerminal; #endif - m_gdbProcess = CreateAsyncProcess( this, - cmd, - // show console? - needs_console ? IProcessCreateConsole : IProcessCreateDefault, - si.cwd ); - if ( !m_gdbProcess ) { + m_gdbProcess = CreateAsyncProcess(this, + cmd, + // show console? + needs_console ? + IProcessCreateConsole : + IProcessCreateDefault, + si.cwd); + if(!m_gdbProcess) { return false; } #ifdef __WXMSW__ - if ( GetIsRemoteDebugging() ) { + if(GetIsRemoteDebugging()) { // This doesn't really make sense, but AttachConsole fails without it... AllocConsole(); FreeConsole(); // Disconnect any existing console window. - if ( !AttachConsole( m_gdbProcess->GetPid() ) ) - m_observer->UpdateAddLine( wxString::Format(wxT("AttachConsole returned error %d"), GetLastError())); + if(!AttachConsole(m_gdbProcess->GetPid())) + m_observer->UpdateAddLine(wxString::Format(wxT("AttachConsole returned error %d"), GetLastError())); // We can at least make the window invisible if the user doesn't want to see it. - if ( !m_info.showTerminal ) - SetWindowPos(GetConsoleWindow(), HWND_BOTTOM, 0, 0, 0, 0, SWP_HIDEWINDOW); + if(!m_info.showTerminal) SetWindowPos(GetConsoleWindow(), HWND_BOTTOM, 0, 0, 0, 0, SWP_HIDEWINDOW); // Finally we ignore SIGINT so we don't get killed by our own signal signal(SIGINT, SIG_IGN); } #endif - m_gdbProcess->SetHardKill( true ); - DoInitializeGdb( si ); + m_gdbProcess->SetHardKill(true); + DoInitializeGdb(si); return true; } -bool DbgGdb::WriteCommand( const wxString &command, DbgCmdHandler *handler ) +bool DbgGdb::WriteCommand(const wxString& command, DbgCmdHandler* handler) { wxString cmd; - wxString id = MakeId( ); + wxString id = MakeId(); cmd << id << command; - if ( !ExecuteCmd( cmd ) ) { + if(!ExecuteCmd(cmd)) { + CL_WARNING("Failed to send command: %s", cmd); return false; } - RegisterHandler( id, handler ); + RegisterHandler(id, handler); return true; } -bool DbgGdb::Run( const wxString &args, const wxString &comm ) +bool DbgGdb::Run(const wxString& args, const wxString& comm) { - if ( !GetIsRemoteDebugging() ) { + if(!GetIsRemoteDebugging()) { // add handler for this command wxString setArgsCommands; setArgsCommands << wxT("-exec-arguments ") << args; - if(!WriteCommand(setArgsCommands, NULL)) - return false; + if(!WriteCommand(setArgsCommands, NULL)) return false; - return WriteCommand( wxT( "-exec-run " ), new DbgCmdHandlerExecRun( m_observer, this ) ); + return WriteCommand(wxT("-exec-run "), new DbgCmdHandlerExecRun(m_observer, this)); } else { // attach to the remote gdb server wxString cmd; - //cmd << wxT("-target-select remote ") << comm << wxT(" ") << args; - if ( GetIsRemoteExtended() ) - cmd << wxT( "target extended-remote " ) << comm << wxT( " " ) << args; - else - cmd << wxT( "target remote " ) << comm << wxT( " " ) << args; - return WriteCommand( cmd, new DbgCmdHandlerRemoteDebugging( m_observer, this ) ); - + // cmd << wxT("-target-select remote ") << comm << wxT(" ") << args; + if(GetIsRemoteExtended()) + cmd << wxT("target extended-remote ") << comm << wxT(" ") << args; + else + cmd << wxT("target remote ") << comm << wxT(" ") << args; + return WriteCommand(cmd, new DbgCmdHandlerRemoteDebugging(m_observer, this)); } } void DbgGdb::DoCleanup() { - if ( m_gdbProcess ) { + if(m_gdbProcess) { delete m_gdbProcess; m_gdbProcess = NULL; } @@ -310,8 +314,8 @@ m_goingDown = false; m_attachedMode = false; - SetIsRemoteDebugging( false ); - SetIsRemoteExtended( false ); + SetIsRemoteDebugging(false); + SetIsRemoteExtended(false); EmptyQueue(); m_gdbOutputArr.Clear(); m_bpList.clear(); @@ -328,10 +332,9 @@ { m_goingDown = true; - if ( !m_attachedMode ) { + if(!m_attachedMode) { wxKill(m_debuggeePid, wxSIGKILL, NULL, wxKILL_CHILDREN); - } wxCommandEvent event(wxEVT_GDB_STOP_DEBUGGER); @@ -339,61 +342,60 @@ return true; } -bool DbgGdb::Next() -{ - return WriteCommand( wxT( "-exec-next" ), new DbgCmdHandlerAsyncCmd( m_observer, this ) ); -} +bool DbgGdb::Next() { return WriteCommand(wxT("-exec-next"), new DbgCmdHandlerAsyncCmd(m_observer, this)); } bool DbgGdb::NextInstruction() { - return WriteCommand( wxT( "-exec-next-instruction" ), new DbgCmdHandlerAsyncCmd( m_observer, this ) ); + return WriteCommand(wxT("-exec-next-instruction"), new DbgCmdHandlerAsyncCmd(m_observer, this)); } void DbgGdb::SetBreakpoints() { - for ( size_t i=0; i< m_bpList.size(); i++ ) { - // Without the 'unnecessary' cast in the next line, bpinfo.bp_type is seen as (e.g.) 4 instead of BP_type_tempbreak, ruining switch statments :/ - BreakpointInfo bpinfo = ( BreakpointInfo )m_bpList.at( i ); - Break( bpinfo ); + for(size_t i = 0; i < m_bpList.size(); i++) { + // Without the 'unnecessary' cast in the next line, bpinfo.bp_type is seen as (e.g.) 4 instead of + // BP_type_tempbreak, ruining switch statments :/ + BreakpointInfo bpinfo = (BreakpointInfo)m_bpList.at(i); + Break(bpinfo); } } -bool DbgGdb::Break( const BreakpointInfo& bp ) +bool DbgGdb::Break(const BreakpointInfo& bp) { wxString breakinsertcmd(wxT("-break-insert ")); - if ( m_info.enablePendingBreakpoints ) { + if(m_info.enablePendingBreakpoints) { breakinsertcmd << wxT("-f "); } - wxFileName fn( bp.file ); + wxFileName fn(bp.file); // by default, use full paths for the file name when setting breakpoints - wxString tmpfileName( fn.GetFullPath() );; - if ( m_info.useRelativeFilePaths ) { + wxString tmpfileName(fn.GetFullPath()); + ; + if(m_info.useRelativeFilePaths) { // user set the option to use relative paths (file name w/o the full path) tmpfileName = fn.GetFullName(); } - tmpfileName.Replace( wxT( "\\" ), wxT( "/" ) ); + tmpfileName.Replace(wxT("\\"), wxT("/")); wxString command; - switch ( bp.bp_type ) { + switch(bp.bp_type) { case BP_type_watchpt: //---------------------------------- // Watchpoints //---------------------------------- - command = wxT( "-break-watch " ); - switch ( bp.watchpoint_type ) { + command = wxT("-break-watch "); + switch(bp.watchpoint_type) { case WP_watch: // nothing to add, simple watchpoint - trigrred when BP is write break; case WP_rwatch: // read watchpoint - command << wxT( "-r " ); + command << wxT("-r "); break; case WP_awatch: // access watchpoint - command << wxT( "-a " ); + command << wxT("-a "); break; } command << bp.watchpt_data; @@ -412,10 +414,10 @@ // Should be standard breakpts. But if someone tries to make an ignored temp bp // it won't have the BP_type_tempbreak type, so check again here command << breakinsertcmd; - if ( bp.is_temp ) { + if(bp.is_temp) { command << " -t "; } - if ( !bp.is_enabled ) { + if(!bp.is_enabled) { command << " -d "; } break; @@ -425,17 +427,17 @@ // prepare the 'break where' string (address, file:line or regex) //------------------------------------------------------------------------ wxString breakWhere, ignoreCounnt, condition, gdbCommand; - if ( bp.memory_address.IsEmpty() == false ) { + if(bp.memory_address.IsEmpty() == false) { // Memory is easy: just prepend *. gdb copes happily with (at least) hex or decimal - breakWhere << wxT( '*' ) << bp.memory_address; + breakWhere << wxT('*') << bp.memory_address; - } else if ( bp.bp_type != BP_type_watchpt ) { + } else if(bp.bp_type != BP_type_watchpt) { // Function and Lineno locations can/should be prepended by a filename (but see later) - if ( ! tmpfileName.IsEmpty() && bp.lineno > 0 ) { - breakWhere << wxT( "\"\\\"" ) << tmpfileName << wxT( ":" ) << bp.lineno << wxT( "\\\"\"" ); - } else if ( ! bp.function_name.IsEmpty() ) { - if ( bp.regex ) { + if(!tmpfileName.IsEmpty() && bp.lineno > 0) { + breakWhere << wxT("\"\\\"") << tmpfileName << wxT(":") << bp.lineno << wxT("\\\"\""); + } else if(!bp.function_name.IsEmpty()) { + if(bp.regex) { // update the command command = breakinsertcmd + wxT("-r "); } @@ -446,125 +448,113 @@ //------------------------------------------------------------------------ // prepare the conditions //------------------------------------------------------------------------ - if ( bp.conditions.IsEmpty() == false ) { - condition << wxT( "-c " ) << wxT( "\"" ) << bp.conditions << wxT( "\" " ); + if(bp.conditions.IsEmpty() == false) { + condition << wxT("-c ") << wxT("\"") << bp.conditions << wxT("\" "); } //------------------------------------------------------------------------ // prepare the ignore count //------------------------------------------------------------------------ - if ( bp.ignore_number > 0 ) { - ignoreCounnt << wxT( "-i " ) << bp.ignore_number << wxT( " " ); + if(bp.ignore_number > 0) { + ignoreCounnt << wxT("-i ") << bp.ignore_number << wxT(" "); } // concatenate all the string into one command to pass to gdb gdbCommand << command << condition << ignoreCounnt << breakWhere; // execute it - DbgCmdHandlerBp* dbgCommandHandler = new DbgCmdHandlerBp( m_observer, this, bp, &m_bpList, bp.bp_type ); - return WriteCommand( gdbCommand, dbgCommandHandler); + DbgCmdHandlerBp* dbgCommandHandler = new DbgCmdHandlerBp(m_observer, this, bp, &m_bpList, bp.bp_type); + return WriteCommand(gdbCommand, dbgCommandHandler); } -bool DbgGdb::SetIgnoreLevel( const int bid, const int ignorecount ) +bool DbgGdb::SetIgnoreLevel(double bid, const int ignorecount) { - if ( bid == -1 ) { // Sanity check + if(bid == -1) { // Sanity check return false; } - wxString command( wxT( "-break-after " ) ); - command << bid << wxT( " " ) << ignorecount; - return WriteCommand( command, NULL ); + wxString command(wxT("-break-after ")); + command << bid << wxT(" ") << ignorecount; + return WriteCommand(command, NULL); } -bool DbgGdb::SetEnabledState( const int bid, const bool enable ) +bool DbgGdb::SetEnabledState(double bid, const bool enable) { - if ( bid == -1 ) { // Sanity check + if(bid == -1) { // Sanity check return false; } - wxString command( wxT( "-break-disable " ) ); - if ( enable ) { - command = wxT( "-break-enable " ); + wxString command(wxT("-break-disable ")); + if(enable) { + command = wxT("-break-enable "); } command << bid; - return WriteCommand( command, NULL ); + return WriteCommand(command, NULL); } -bool DbgGdb::SetCondition( const BreakpointInfo& bp ) +bool DbgGdb::SetCondition(const BreakpointInfo& bp) { - if ( bp.debugger_id == -1 ) { // Sanity check + if(bp.debugger_id == -1) { // Sanity check return false; } - wxString command( wxT( "-break-condition " ) ); - command << bp.debugger_id << wxT( " " ) << bp.conditions; - return WriteCommand( command, new DbgCmdSetConditionHandler( m_observer, bp ) ); + wxString command(wxT("-break-condition ")); + command << bp.debugger_id << wxT(" ") << bp.conditions; + return WriteCommand(command, new DbgCmdSetConditionHandler(m_observer, bp)); } -bool DbgGdb::SetCommands( const BreakpointInfo& bp ) +bool DbgGdb::SetCommands(const BreakpointInfo& bp) { - if ( bp.debugger_id == -1 ) { // Sanity check + if(bp.debugger_id == -1) { // Sanity check return false; } // There isn't (currentl) a MI command-list command, so use the CLI one // This doesn't actually work either, but at least the commands are visible in -break-list - wxString command( wxT( "commands " ) ); - command << bp.debugger_id << wxT( '\n' ) << bp.commandlist << wxT( "\nend" ); + wxString command(wxT("commands ")); + command << bp.debugger_id << wxT('\n') << bp.commandlist << wxT("\nend"); - if ( m_info.enableDebugLog ) { - m_observer->UpdateAddLine( command ); + if(m_info.enableDebugLog) { + m_observer->UpdateAddLine(command); } // If we really wanted, we could get the output (for bp 3) of "commands 3" // but as that's not very informative, and we're only faking the command-list anyway, don't bother - return WriteCommand( command, NULL ); + return WriteCommand(command, NULL); } -bool DbgGdb::Continue() -{ - return WriteCommand( wxT( "-exec-continue" ), new DbgCmdHandlerAsyncCmd( m_observer, this ) ); -} +bool DbgGdb::Continue() { return WriteCommand(wxT("-exec-continue"), new DbgCmdHandlerAsyncCmd(m_observer, this)); } -bool DbgGdb::StepIn() -{ - return WriteCommand( wxT( "-exec-step" ), new DbgCmdHandlerAsyncCmd( m_observer, this ) ); -} +bool DbgGdb::StepIn() { return WriteCommand(wxT("-exec-step"), new DbgCmdHandlerAsyncCmd(m_observer, this)); } -bool DbgGdb::StepOut() -{ - return WriteCommand( wxT( "-exec-finish" ), new DbgCmdHandlerAsyncCmd( m_observer, this ) ); -} +bool DbgGdb::StepOut() { return WriteCommand(wxT("-exec-finish"), new DbgCmdHandlerAsyncCmd(m_observer, this)); } -bool DbgGdb::IsRunning() -{ - return m_gdbProcess != NULL; -} +bool DbgGdb::IsRunning() { return m_gdbProcess != NULL; } bool DbgGdb::Interrupt() { - if ( m_debuggeePid > 0 ) { - m_observer->UpdateAddLine( wxString::Format( wxT( "Interrupting debugee process: %ld" ), m_debuggeePid ) ); + if(m_debuggeePid > 0) { + m_observer->UpdateAddLine(wxString::Format(wxT("Interrupting debugee process: %ld"), m_debuggeePid)); #ifdef __WXMSW__ - if ( !GetIsRemoteDebugging() && DebugBreakProcessFunc ) { + if(!GetIsRemoteDebugging() && DebugBreakProcessFunc) { // we have DebugBreakProcess - HANDLE process = OpenProcess( PROCESS_ALL_ACCESS, FALSE, ( DWORD )m_debuggeePid ); - BOOL res = DebugBreakProcessFunc( process ); + HANDLE process = OpenProcess(PROCESS_ALL_ACCESS, FALSE, (DWORD)m_debuggeePid); + BOOL res = DebugBreakProcessFunc(process); CloseHandle(process); return res == TRUE; } - if ( GetIsRemoteDebugging() ) { + if(GetIsRemoteDebugging()) { // We need to send GDB a Ctrl-C event. Using DebugBreakProcess just leaves - // it unresponsive. - return GenerateConsoleCtrlEvent( CTRL_C_EVENT, 0 ); + // it unresponsive. + return GenerateConsoleCtrlEvent(CTRL_C_EVENT, 0); } - + // on Windows version < XP we need to find a solution for interrupting the // debuggee process return false; #else - kill( m_debuggeePid, SIGINT ); + kill(m_debuggeePid, SIGINT); return true; #endif } else { @@ -575,78 +565,75 @@ bool DbgGdb::QueryFileLine() { -#if defined (__WXGTK__) || defined(__WXMAC__) - if(!WriteCommand( wxT( "-stack-info-frame" ), new DbgCmdHandlerGetLine( m_observer, this ) )) - return false; -#elif defined (__WXMSW__) - if(!WriteCommand( wxT( "-file-list-exec-source-file" ), new DbgCmdHandlerGetLine( m_observer, this ) )) - return false; +#if defined(__WXGTK__) || defined(__WXMAC__) + if(!WriteCommand(wxT("-stack-info-frame"), new DbgCmdHandlerGetLine(m_observer, this))) return false; +#elif defined(__WXMSW__) + if(!WriteCommand(wxT("-file-list-exec-source-file"), new DbgCmdHandlerGetLine(m_observer, this))) return false; #endif return true; } -bool DbgGdb::QueryLocals() -{ - return WriteCommand( wxT( "-stack-list-variables 2" ), new DbgCmdHandlerLocals( m_observer ) ); -} +bool DbgGdb::QueryLocals() { return WriteCommand(wxT("-stack-list-variables 2"), new DbgCmdHandlerLocals(m_observer)); } -bool DbgGdb::ExecuteCmd( const wxString &cmd ) +bool DbgGdb::ExecuteCmd(const wxString& cmd) { - if( m_gdbProcess ) { - if ( m_info.enableDebugLog ) { -#if DBG_LOG - if(gfp.IsOpened()) { - gfp.Write(wxString::Format( wxT( "DEBUG>>%s\n" ), cmd.c_str() )); - gfp.Flush(); - } -#else - m_observer->UpdateAddLine( wxString::Format( wxT( "DEBUG>>%s" ), cmd.c_str() ) ); -#endif + static wxLongLong commandsCounter = 0; + if(m_gdbProcess) { + if(m_info.enableDebugLog) { + CL_DEBUG("DEBUG>>%s", cmd); + m_observer->UpdateAddLine(wxString::Format(wxT("DEBUG>>%s"), cmd)); + } +#ifdef __WXMSW__ + // Ugly hack to fix bug https://github.com/eranif/codelite/issues/906 + if(commandsCounter >= 10) { + ::wxMilliSleep(2); + commandsCounter = 0; } - return m_gdbProcess->Write( cmd ); +#endif + ++commandsCounter; + return m_gdbProcess->Write(cmd); } return false; } -bool DbgGdb::RemoveAllBreaks() -{ - return ExecuteCmd( wxT( "delete" ) ); -} +bool DbgGdb::RemoveAllBreaks() { return ExecuteCmd(wxT("delete")); } -bool DbgGdb::RemoveBreak( int bid ) +bool DbgGdb::RemoveBreak(double bid) { wxString command; - command << wxT( "-break-delete " ) << bid; - return WriteCommand( command, NULL ); + command << wxT("-break-delete ") << bid; + return WriteCommand(command, NULL); } -bool DbgGdb::FilterMessage( const wxString &msg ) +bool DbgGdb::FilterMessage(const wxString& msg) { - wxString tmpmsg ( msg ); - StripString( tmpmsg ); - tmpmsg.Trim().Trim( false ); + wxString tmpmsg(msg); + StripString(tmpmsg); + tmpmsg.Trim().Trim(false); - if ( tmpmsg.Contains( wxT( "Variable object not found" ) ) || msg.Contains( wxT( "Variable object not found" ) ) ) { + if(tmpmsg.Contains(wxT("Variable object not found")) || msg.Contains(wxT("Variable object not found"))) { return true; } - if ( tmpmsg.Contains( wxT( "mi_cmd_var_create: unable to create variable object" ) )||msg.Contains( wxT( "mi_cmd_var_create: unable to create variable object" ) ) ) { + if(tmpmsg.Contains(wxT("mi_cmd_var_create: unable to create variable object")) || + msg.Contains(wxT("mi_cmd_var_create: unable to create variable object"))) { return true; } - if ( tmpmsg.Contains( wxT( "Variable object not found" ) )|| msg.Contains( wxT( "Variable object not found" ) ) ) { + if(tmpmsg.Contains(wxT("Variable object not found")) || msg.Contains(wxT("Variable object not found"))) { return true; } - if ( tmpmsg.Contains( wxT( "No symbol \"this\" in current context" ) )||msg.Contains( wxT( "No symbol \"this\" in current context" ) ) ) { + if(tmpmsg.Contains(wxT("No symbol \"this\" in current context")) || + msg.Contains(wxT("No symbol \"this\" in current context"))) { return true; } - if ( tmpmsg.Contains( wxT( "*running,thread-id" ) ) ) { + if(tmpmsg.Contains(wxT("*running,thread-id"))) { return true; } - if ( tmpmsg.StartsWith( wxT( ">" ) )||msg.StartsWith( wxT( ">" ) ) ) { + if(tmpmsg.StartsWith(wxT(">")) || msg.StartsWith(wxT(">"))) { // shell line return true; } @@ -655,241 +642,230 @@ void DbgGdb::Poke() { - static wxRegEx reCommand( wxT( "^([0-9]{8})" ) ); - - + static wxRegEx reCommand(wxT("^([0-9]{8})")); - //poll the debugger output + // poll the debugger output wxString curline; - if ( !m_gdbProcess || m_gdbOutputArr.IsEmpty() ) { + if(!m_gdbProcess || m_gdbOutputArr.IsEmpty()) { return; } - while ( DoGetNextLine( curline ) ) { + while(DoGetNextLine(curline)) { GetDebugeePID(curline); // For string manipulations without damaging the original line read - wxString tmpline ( curline ); - StripString( tmpline ); - tmpline.Trim().Trim( false ); - if ( m_info.enableDebugLog ) { - //Is logging enabled? + wxString tmpline(curline); + StripString(tmpline); + tmpline.Trim().Trim(false); + if(m_info.enableDebugLog) { + // Is logging enabled? - if ( curline.IsEmpty() == false && !tmpline.StartsWith( wxT( ">" ) ) ) { - wxString strdebug( wxT( "DEBUG>>" ) ); + if(curline.IsEmpty() == false && !tmpline.StartsWith(wxT(">"))) { + wxString strdebug(wxT("DEBUG>>")); strdebug << curline; -#if DBG_LOG - if(gfp.IsOpened()) { - gfp.Write(strdebug); - gfp.Flush(); - } -#else - m_observer->UpdateAddLine( strdebug ); -#endif + CL_DEBUG(strdebug); + m_observer->UpdateAddLine(strdebug); } } - if ( reConnectionRefused.Matches( curline ) ) { - StripString( curline ); + if(reConnectionRefused.Matches(curline)) { + StripString(curline); #ifdef __WXGTK__ m_consoleFinder.FreeConsole(); #endif - m_observer->UpdateAddLine( curline ); - m_observer->UpdateGotControl( DBG_EXITED_NORMALLY ); + m_observer->UpdateAddLine(curline); + m_observer->UpdateGotControl(DBG_EXITED_NORMALLY); return; } // Check for "Operation not permitted" usually means // that the process does not have enough permission to // attach to the process - if( curline.Contains(wxT("Operation not permitted")) ) { + if(curline.Contains(wxT("Operation not permitted"))) { #ifdef __WXGTK__ m_consoleFinder.FreeConsole(); #endif - m_observer->UpdateAddLine( _("Failed to start debugger: permission denied") ); - m_observer->UpdateGotControl( DBG_EXITED_NORMALLY ); + m_observer->UpdateAddLine(_("Failed to start debugger: permission denied")); + m_observer->UpdateGotControl(DBG_EXITED_NORMALLY); return; - } - if( tmpline.StartsWith( wxT( ">" ) ) ) { + if(tmpline.StartsWith(wxT(">"))) { // Shell line, probably user command line continue; } - if ( curline.StartsWith( wxT( "~" ) ) || curline.StartsWith( wxT( "&" ) ) || curline.StartsWith("@") ) { + if(curline.StartsWith(wxT("~")) || curline.StartsWith(wxT("&")) || curline.StartsWith("@")) { // lines starting with ~ are considered "console stream" message // and are important to the CLI handler - bool consoleStream( false ); + bool consoleStream(false); bool targetConsoleStream(false); - if ( curline.StartsWith( wxT( "~" ) ) ) { + if(curline.StartsWith(wxT("~"))) { consoleStream = true; } - if ( curline.StartsWith( wxT( "@" ) ) ) { + if(curline.StartsWith(wxT("@"))) { targetConsoleStream = true; } // Filter out some gdb error lines... - if ( FilterMessage( curline ) ) { + if(FilterMessage(curline)) { continue; } - StripString( curline ); + StripString(curline); // If we got a valid "CLI Handler" instead of writing the output to // the output view, concatenate it into the handler buffer - if ( targetConsoleStream ) { - m_observer->UpdateAddLine( curline ); + if(targetConsoleStream) { + m_observer->UpdateAddLine(curline); - } else if ( consoleStream && GetCliHandler()) { - GetCliHandler()->Append( curline ); + } else if(consoleStream && GetCliHandler()) { + GetCliHandler()->Append(curline); - } else if ( consoleStream ) { + } else if(consoleStream) { // log message - m_observer->UpdateAddLine( curline ); - + m_observer->UpdateAddLine(curline); } - } else if ( reCommand.Matches( curline ) ) { + } else if(reCommand.Matches(curline)) { - //not a gdb message, get the command associated with the message - wxString id = reCommand.GetMatch( curline, 1 ); + // not a gdb message, get the command associated with the message + wxString id = reCommand.GetMatch(curline, 1); - if ( GetCliHandler() && GetCliHandler()->GetCommandId() == id ) { + if(GetCliHandler() && GetCliHandler()->GetCommandId() == id) { // probably the "^done" message of the CLI command - GetCliHandler()->ProcessOutput( curline ); - SetCliHandler( NULL ); // we are done processing the CLI + GetCliHandler()->ProcessOutput(curline); + SetCliHandler(NULL); // we are done processing the CLI } else { - //strip the id from the line - curline = curline.Mid( 8 ); - DoProcessAsyncCommand( curline, id ); - + // strip the id from the line + curline = curline.Mid(8); + DoProcessAsyncCommand(curline, id); } - } else if ( curline.StartsWith( wxT( "^done" ) ) || curline.StartsWith( wxT( "*stopped" ) ) ) { - //Unregistered command, use the default AsyncCommand handler to process the line - DbgCmdHandlerAsyncCmd cmd( m_observer, this ); - cmd.ProcessOutput( curline ); + } else if(curline.StartsWith(wxT("^done")) || curline.StartsWith(wxT("*stopped"))) { + // Unregistered command, use the default AsyncCommand handler to process the line + DbgCmdHandlerAsyncCmd cmd(m_observer, this); + cmd.ProcessOutput(curline); } else { - //Unknow format, just log it - if( m_info.enableDebugLog && !FilterMessage( curline ) ) { - m_observer->UpdateAddLine( curline ); + // Unknow format, just log it + if(m_info.enableDebugLog && !FilterMessage(curline)) { + m_observer->UpdateAddLine(curline); } } } } -void DbgGdb::DoProcessAsyncCommand( wxString &line, wxString &id ) +void DbgGdb::DoProcessAsyncCommand(wxString& line, wxString& id) { - if ( line.StartsWith( wxT( "^error" ) ) ) { + if(line.StartsWith(wxT("^error"))) { // the command was error, for example: // finish in the outer most frame // print the error message and remove the command from the queue - DbgCmdHandler *handler = PopHandler( id ); - bool errorProcessed (false); + DbgCmdHandler* handler = PopHandler(id); + bool errorProcessed(false); - if ( handler && handler->WantsErrors() ) { - errorProcessed = handler->ProcessOutput( line ); + if(handler && handler->WantsErrors()) { + errorProcessed = handler->ProcessOutput(line); } - if ( handler ) { + if(handler) { delete handler; } - StripString( line ); + StripString(line); - //We also need to pass the control back to the program - if (!errorProcessed) { - m_observer->UpdateGotControl( DBG_CMD_ERROR ); + // We also need to pass the control back to the program + if(!errorProcessed) { + m_observer->UpdateGotControl(DBG_CMD_ERROR); } - if ( !FilterMessage( line ) && m_info.enableDebugLog ) { - m_observer->UpdateAddLine( line ); + if(!FilterMessage(line) && m_info.enableDebugLog) { + m_observer->UpdateAddLine(line); } - } else if ( line.StartsWith( wxT( "^done" ) ) || line.StartsWith( wxT( "^connected" ) ) ) { - //The synchronous operation was successful, results are the return values. - DbgCmdHandler *handler = PopHandler( id ); - if ( handler ) { - handler->ProcessOutput( line ); + } else if(line.StartsWith(wxT("^done")) || line.StartsWith(wxT("^connected"))) { + // The synchronous operation was successful, results are the return values. + DbgCmdHandler* handler = PopHandler(id); + if(handler) { + handler->ProcessOutput(line); delete handler; } - } else if ( line.StartsWith( wxT( "^running" ) ) ) { - //asynchronous command was executed - //send event that we dont have the control anymore + } else if(line.StartsWith(wxT("^running"))) { + // asynchronous command was executed + // send event that we dont have the control anymore m_observer->UpdateLostControl(); - } else if ( line.StartsWith( wxT( "*stopped" ) ) ) { - //get the stop reason, - if ( line == wxT( "*stopped" ) ) { - if ( m_bpList.empty() ) { + } else if(line.StartsWith(wxT("*stopped"))) { + // get the stop reason, + if(line == wxT("*stopped")) { + if(m_bpList.empty()) { - ExecuteCmd( wxT( "set auto-solib-add off" ) ); - ExecuteCmd( wxT( "set stop-on-solib-events 0" ) ); + ExecuteCmd(wxT("set auto-solib-add off")); + ExecuteCmd(wxT("set stop-on-solib-events 0")); } else { - //no reason for the failure, this means that we stopped due to - //hitting a loading of shared library - //try to place all breakpoints which previously failed + // no reason for the failure, this means that we stopped due to + // hitting a loading of shared library + // try to place all breakpoints which previously failed SetBreakpoints(); } Continue(); } else { - //GDB/MI Out-of-band Records - //caused by async command, this line indicates that we have the control back - DbgCmdHandler *handler = PopHandler( id ); - if ( handler ) { - handler->ProcessOutput( line ); + // GDB/MI Out-of-band Records + // caused by async command, this line indicates that we have the control back + DbgCmdHandler* handler = PopHandler(id); + if(handler) { + handler->ProcessOutput(line); delete handler; } } } } -bool DbgGdb::EvaluateExpressionToString( const wxString &expression, const wxString &format ) +bool DbgGdb::EvaluateExpressionToString(const wxString& expression, const wxString& format) { - static int counter( 0 ); - wxString watchName( wxT( "watch_num_" ) ); + static int counter(0); + wxString watchName(wxT("watch_num_")); watchName << ++counter; wxString command; - command << wxT( "-var-create " ) << watchName << wxT( " * " ) << expression; - //first create the expression - bool res = WriteCommand( command, new DbgCmdHandlerVarCreator( m_observer ) ); - if ( !res ) { - //probably gdb is down + command << wxT("-var-create ") << watchName << wxT(" * ") << expression; + // first create the expression + bool res = WriteCommand(command, new DbgCmdHandlerVarCreator(m_observer)); + if(!res) { + // probably gdb is down return false; } command.clear(); - command << wxT( "-var-set-format " ) << watchName << wxT( " " ) << format; - //first create the expression - res = WriteCommand( command, NULL ); - if ( !res ) { - //probably gdb is down + command << wxT("-var-set-format ") << watchName << wxT(" ") << format; + // first create the expression + res = WriteCommand(command, NULL); + if(!res) { + // probably gdb is down return false; } - //execute the watch command + // execute the watch command command.clear(); - command << wxT( "-var-evaluate-expression " ) << watchName; - res = WriteCommand( command, new DbgCmdHandlerEvalExpr( m_observer, expression ) ); - if ( !res ) { - //probably gdb is down + command << wxT("-var-evaluate-expression ") << watchName; + res = WriteCommand(command, new DbgCmdHandlerEvalExpr(m_observer, expression)); + if(!res) { + // probably gdb is down return false; } - //and make sure we delete this variable - return DeleteVariableObject( watchName ); + // and make sure we delete this variable + return DeleteVariableObject(watchName); } bool DbgGdb::ListFrames() @@ -905,135 +881,126 @@ #endif - return WriteCommand(command, new DbgCmdStackList( m_observer )); + return WriteCommand(command, new DbgCmdStackList(m_observer)); } -bool DbgGdb::SetFrame( int frame ) +bool DbgGdb::SetFrame(int frame) { wxString command; - command << wxT( "frame " ) << frame; - return WriteCommand( command, new DbgCmdSelectFrame( m_observer ) ); + command << wxT("frame ") << frame; + return WriteCommand(command, new DbgCmdSelectFrame(m_observer)); } -bool DbgGdb::ListThreads() -{ - return WriteCommand( wxT( "-thread-info" ), new DbgCmdListThreads( m_observer ) ); -} +bool DbgGdb::ListThreads() { return WriteCommand(wxT("-thread-info"), new DbgCmdListThreads(m_observer)); } -bool DbgGdb::SelectThread( long threadId ) +bool DbgGdb::SelectThread(long threadId) { wxString command; - command << wxT( "-thread-select " ) << threadId; - return WriteCommand( command, NULL ); + command << wxT("-thread-select ") << threadId; + return WriteCommand(command, NULL); } -void DbgGdb::OnProcessEnd( wxCommandEvent &e ) +void DbgGdb::OnProcessEnd(clProcessEvent& e) { - ProcessEventData *ped = ( ProcessEventData * )e.GetClientData(); - delete ped; - DoCleanup(); - m_observer->UpdateGotControl( DBG_EXITED_NORMALLY ); + m_observer->UpdateGotControl(DBG_EXITED_NORMALLY); } -bool DbgGdb::GetAsciiViewerContent( const wxString &dbgCommand, const wxString& expression ) +bool DbgGdb::GetAsciiViewerContent(const wxString& dbgCommand, const wxString& expression) { wxString cmd; - cmd << dbgCommand << wxT( " " ) << expression; + cmd << dbgCommand << wxT(" ") << expression; - return ExecCLICommand( cmd, new DbgCmdGetTipHandler( m_observer, expression ) ); + return ExecCLICommand(cmd, new DbgCmdGetTipHandler(m_observer, expression)); } -bool DbgGdb::ResolveType( const wxString& expression, int userReason ) +bool DbgGdb::ResolveType(const wxString& expression, int userReason) { wxString cmd; - cmd << wxT( "-var-create - * \"" ) << expression << wxT( "\"" ); - return WriteCommand( cmd, new DbgCmdResolveTypeHandler( expression, this, userReason ) ); + cmd << wxT("-var-create - * \"") << expression << wxT("\""); + return WriteCommand(cmd, new DbgCmdResolveTypeHandler(expression, this, userReason)); } -bool DbgGdb::WatchMemory( const wxString& address, size_t count, size_t columns ) +bool DbgGdb::WatchMemory(const wxString& address, size_t count, size_t columns) { // make the line per WORD size - int divider ( columns ); - int factor( ( int )( count/divider ) ); - if ( count % divider != 0 ) { - factor = ( int )( count / divider ) + 1; + int divider(columns); + int factor((int)(count / divider)); + if(count % divider != 0) { + factor = (int)(count / divider) + 1; } // at this point, 'factor' contains the number rows // and the 'divider' is the columns wxString cmd; - cmd << wxT( "-data-read-memory \"" ) << address << wxT( "\" x 1 " ) << factor << wxT( " " ) << divider << wxT( " ?" ); - return WriteCommand( cmd, new DbgCmdWatchMemory( m_observer, address, count, columns ) ); + cmd << wxT("-data-read-memory \"") << address << wxT("\" x 1 ") << factor << wxT(" ") << divider << wxT(" ?"); + return WriteCommand(cmd, new DbgCmdWatchMemory(m_observer, address, count, columns)); } -bool DbgGdb::SetMemory( const wxString& address, size_t count, const wxString& hex_value ) +bool DbgGdb::SetMemory(const wxString& address, size_t count, const wxString& hex_value) { wxString cmd; wxString hexCommaDlimArr; - wxArrayString hexArr = wxStringTokenize( hex_value, wxT( " " ), wxTOKEN_STRTOK ); + wxArrayString hexArr = wxStringTokenize(hex_value, wxT(" "), wxTOKEN_STRTOK); - for ( size_t i=0; iUpdateAddLine( wxString::Format( wxT( "Failed to generate gdbinit file at %s" ), codelite_gdbinit_file.c_str() ) ); + if(!file.Open(codelite_gdbinit_file, wxT("w+b"))) { + m_observer->UpdateAddLine( + wxString::Format(wxT("Failed to generate gdbinit file at %s"), codelite_gdbinit_file.c_str())); } else { - m_observer->UpdateAddLine( wxString::Format( wxT( "Using gdbinit file: %s" ), codelite_gdbinit_file.c_str() ) ); - file.Write( startupInfo ); + m_observer->UpdateAddLine(wxString::Format(wxT("Using gdbinit file: %s"), codelite_gdbinit_file.c_str())); + file.Write(startupInfo); file.Close(); - dbgExeName << wxT( " --command=\"" ) << codelite_gdbinit_file << wxT( "\"" ); + dbgExeName << wxT(" --command=\"") << codelite_gdbinit_file << wxT("\""); } return true; @@ -1045,61 +1012,64 @@ m_goingDown = false; m_internalBpId = wxNOT_FOUND; #ifdef __WXMSW__ - ExecuteCmd( wxT( "set new-console on" ) ); + ExecuteCmd(wxT("set new-console on")); #endif - ExecuteCmd( wxT( "set unwindonsignal on" ) ); + ExecuteCmd(wxT("set unwindonsignal on")); wxString breakinsertcmd(wxT("-break-insert ")); - if ( m_info.enablePendingBreakpoints ) { - ExecuteCmd( wxT( "set breakpoint pending on" ) ); + if(m_info.enablePendingBreakpoints) { + ExecuteCmd(wxT("set breakpoint pending on")); breakinsertcmd << wxT("-f "); } - if ( m_info.catchThrow ) { - ExecuteCmd( wxT( "catch throw" ) ); + if(m_info.catchThrow) { +#ifdef __WXMSW__ + WriteCommand("-break-insert -f __cxa_throw", NULL); +#else + ExecuteCmd(wxT("catch throw")); +#endif } #ifdef __WXMSW__ - if ( m_info.debugAsserts ) { - ExecuteCmd( wxT( "break assert" ) ); + if(m_info.debugAsserts) { + ExecuteCmd(wxT("break assert")); } #endif - ExecuteCmd( wxT( "set width 0" ) ); - ExecuteCmd( wxT( "set height 0" ) ); + ExecuteCmd(wxT("set width 0")); + ExecuteCmd(wxT("set height 0")); // Number of elements to show for arrays (including strings) wxString sizeCommand; - sizeCommand << wxT( "set print elements " ) << m_info.maxDisplayStringSize; - ExecuteCmd( sizeCommand ); + sizeCommand << wxT("set print elements ") << m_info.maxDisplayStringSize; + ExecuteCmd(sizeCommand); // set the project startup commands - for ( size_t i=0; iSetCommandId( id ); - SetCliHandler( handler ); + if(handler) { + handler->SetCommandId(id); + SetCliHandler(handler); } return true; } - -void DbgGdb::SetCliHandler( DbgCmdCLIHandler* handler ) +void DbgGdb::SetCliHandler(DbgCmdCLIHandler* handler) { - if( m_cliHandler ) { + if(m_cliHandler) { delete m_cliHandler; } m_cliHandler = handler; } -DbgCmdCLIHandler* DbgGdb::GetCliHandler() -{ - return m_cliHandler; -} +DbgCmdCLIHandler* DbgGdb::GetCliHandler() { return m_cliHandler; } -bool DbgGdb::ListChildren( const wxString& name, int userReason ) +bool DbgGdb::ListChildren(const wxString& name, int userReason) { wxString cmd; // use -var-list-children 2 ("--simple-values") - cmd << wxT( "-var-list-children \"" ) << name << wxT( "\"" ); - return WriteCommand( cmd, new DbgCmdListChildren( m_observer, name, userReason ) ); + cmd << wxT("-var-list-children \"") << name << wxT("\""); + return WriteCommand(cmd, new DbgCmdListChildren(m_observer, name, userReason)); } -bool DbgGdb::CreateVariableObject(const wxString &expression, bool persistent, int userReason) +bool DbgGdb::CreateVariableObject(const wxString& expression, bool persistent, int userReason) { wxString cmd; - cmd << wxT( "-var-create - "); + cmd << wxT("-var-create - "); if(persistent) { cmd << wxT("* "); } else { cmd << wxT("@ "); } - cmd << wxT("\"") << expression << wxT( "\"" ); - return WriteCommand( cmd, new DbgCmdCreateVarObj( m_observer, this, expression, userReason ) ); + cmd << wxT("\"") << expression << wxT("\""); + return WriteCommand(cmd, new DbgCmdCreateVarObj(m_observer, this, expression, userReason)); } -bool DbgGdb::DeleteVariableObject( const wxString& name ) +bool DbgGdb::DeleteVariableObject(const wxString& name) { wxString cmd; - cmd << wxT( "-var-delete \"" ) << name << wxT( "\"" ); - return WriteCommand( cmd, NULL ); + cmd << wxT("-var-delete \"") << name << wxT("\""); + return WriteCommand(cmd, NULL); } -bool DbgGdb::EvaluateVariableObject( const wxString& name, int userReason ) +bool DbgGdb::EvaluateVariableObject(const wxString& name, int userReason) { wxString cmd; - cmd << wxT( "-var-evaluate-expression \"" ) << name << wxT( "\"" ); - return WriteCommand( cmd, new DbgCmdEvalVarObj( m_observer, name, userReason ) ); + cmd << wxT("-var-evaluate-expression \"") << name << wxT("\""); + // CL_DEBUG("GDB>> %s", cmd); + return WriteCommand(cmd, new DbgCmdEvalVarObj(m_observer, name, userReason)); } -void DbgGdb::OnDataRead( wxCommandEvent& e ) +void DbgGdb::OnDataRead(clProcessEvent& e) { // Data arrived from the debugger - ProcessEventData *ped = ( ProcessEventData * )e.GetClientData(); - wxString bufferRead; - bufferRead << ped->GetData(); - delete ped; + bufferRead << e.GetOutput(); - if( !m_gdbProcess || !m_gdbProcess->IsAlive() ) - return; + if(!m_gdbProcess || !m_gdbProcess->IsAlive()) return; CL_DEBUG("GDB>> %s", bufferRead); - wxArrayString lines = wxStringTokenize( bufferRead, wxT( "\n" ), wxTOKEN_STRTOK ); - if(lines.IsEmpty()) - return; + wxArrayString lines = wxStringTokenize(bufferRead, wxT("\n"), wxTOKEN_STRTOK); + if(lines.IsEmpty()) return; // Prepend the partially saved line from previous iteration to the first line // of this iteration @@ -1218,82 +1180,87 @@ // If the last line is in-complete, remove it from the array and keep it for next iteration if(!bufferRead.EndsWith(wxT("\n"))) { m_gdbOutputIncompleteLine = lines.Last(); - lines.RemoveAt(lines.GetCount()-1); + lines.RemoveAt(lines.GetCount() - 1); } - for( size_t i=0; iGetPid(); } else { @@ -1339,10 +1306,11 @@ if(debuggeePidStr.ToLong(&iPid)) { m_debuggeePid = iPid; wxString msg; - msg << wxT( ">> Debuggee process ID: " ) << m_debuggeePid; - m_observer->UpdateAddLine( msg ); + msg << wxT(">> Debuggee process ID: ") << m_debuggeePid; + m_observer->UpdateAddLine(msg); - // Now there's a known pid, the debugger can be interrupted to let any to-be-disabled bps be disabled. So... + // Now there's a known pid, the debugger can be interrupted to let any to-be-disabled bps be + // disabled. So... m_observer->DebuggerPidValid(); } } @@ -1359,34 +1327,35 @@ Break(bp); // by default, use full paths for the file name - wxFileName fn( filename ); - wxString tmpfileName( fn.GetFullPath() ); - if ( m_info.useRelativeFilePaths ) { + wxFileName fn(filename); + wxString tmpfileName(fn.GetFullPath()); + if(m_info.useRelativeFilePaths) { // user set the option to use relative paths (file name w/o the full path) tmpfileName = fn.GetFullName(); } - tmpfileName.Replace( wxT( "\\" ), wxT( "/" ) ); + tmpfileName.Replace(wxT("\\"), wxT("/")); wxString command; - command << wxT( "-exec-jump " ) << wxT( "\"\\\"" ) << tmpfileName << wxT( ":" ) << line << wxT( "\\\"\"" ); - //return WriteCommand( command, new DbgCmdHandlerAsyncCmd( m_observer, this ) ); - return ExecCLICommand( command, new DbgCmdJumpHandler( m_observer ) ); + command << wxT("-exec-jump ") << wxT("\"\\\"") << tmpfileName << wxT(":") << line << wxT("\\\"\""); + // return WriteCommand( command, new DbgCmdHandlerAsyncCmd( m_observer, this ) ); + return ExecCLICommand(command, new DbgCmdJumpHandler(m_observer)); } void DbgGdb::OnKillGDB(wxCommandEvent& e) { wxUnusedVar(e); DoCleanup(); - m_observer->UpdateGotControl( DBG_DBGR_KILLED ); + m_observer->UpdateGotControl(DBG_DBGR_KILLED); } bool DbgGdb::Disassemble(const wxString& filename, int lineNumber) { // Trigger a "disasseble" call - if ( /*filename.IsEmpty() || lineNumber == wxNOT_FOUND*/ true ) { + if(/*filename.IsEmpty() || lineNumber == wxNOT_FOUND*/ true) { // Use the $pc - if ( !WriteCommand("-data-disassemble -s \"$pc -100\" -e \"$pc + 100\" -- 0", new DbgCmdHandlerDisasseble(m_observer, this)) ) + if(!WriteCommand("-data-disassemble -s \"$pc -100\" -e \"$pc + 100\" -- 0", + new DbgCmdHandlerDisasseble(m_observer, this))) return false; } else { @@ -1394,13 +1363,14 @@ wxString tmpfile = filename; tmpfile.Replace("\\", "/"); // gdb does not like backslashes... - if ( !WriteCommand(wxString() << "-data-disassemble -f \"" << tmpfile << "\" -l " << lineNumber << " -n -1 -- 0", - new DbgCmdHandlerDisasseble(m_observer, this)) ) + if(!WriteCommand(wxString() << "-data-disassemble -f \"" << tmpfile << "\" -l " << lineNumber << " -n -1 -- 0", + new DbgCmdHandlerDisasseble(m_observer, this))) return false; } // get the current instruction - if ( !WriteCommand("-data-disassemble -s \"$pc\" -e \"$pc + 1\" -- 0", new DbgCmdHandlerDisassebleCurLine(m_observer, this)) ) + if(!WriteCommand("-data-disassemble -s \"$pc\" -e \"$pc + 1\" -- 0", + new DbgCmdHandlerDisassebleCurLine(m_observer, this))) return false; return true; @@ -1408,51 +1378,51 @@ bool DbgGdb::Attach(const DebugSessionInfo& si) { - //set the environment variables - EnvSetter env( m_env, NULL, m_debuggeeProjectName ); + // set the environment variables + EnvSetter env(m_env, NULL, m_debuggeeProjectName); wxString dbgExeName; - if ( ! DoLocateGdbExecutable( si.debuggerPath, dbgExeName ) ) { + if(!DoLocateGdbExecutable(si.debuggerPath, dbgExeName)) { return false; } wxString cmd; -#if defined (__WXGTK__) || defined (__WXMAC__) +#if defined(__WXGTK__) || defined(__WXMAC__) cmd << dbgExeName; - if ( !si.ttyName.IsEmpty() ) { - cmd << wxT( " --tty=" ) << si.ttyName; + if(!si.ttyName.IsEmpty()) { + cmd << wxT(" --tty=") << si.ttyName; } - cmd << wxT( " --interpreter=mi " ); + cmd << wxT(" --interpreter=mi "); #else - cmd << dbgExeName << wxT( " --interpreter=mi " ); - cmd << ProcUtils::GetProcessNameByPid( si.PID ) << wxT( " " ); + cmd << dbgExeName << wxT(" --interpreter=mi "); + cmd << ProcUtils::GetProcessNameByPid(si.PID) << wxT(" "); #endif - //if(sudoCmd.IsEmpty() == false) { + // if(sudoCmd.IsEmpty() == false) { // cmd.Prepend(sudoCmd + wxT(" ")); //} m_attachedMode = true; m_debuggeePid = si.PID; - cmd << wxT( " --pid=" ) << m_debuggeePid; - wxLogMessage( cmd ); + cmd << wxT(" --pid=") << m_debuggeePid; + wxLogMessage(cmd); - m_observer->UpdateAddLine( wxString::Format( wxT( "Current working dir: %s" ), wxGetCwd().c_str() ) ); - m_observer->UpdateAddLine( wxString::Format( wxT( "Launching gdb from : %s" ), wxGetCwd().c_str() ) ); - m_observer->UpdateAddLine( wxString::Format( wxT( "Starting debugger : %s" ), cmd.c_str() ) ); + m_observer->UpdateAddLine(wxString::Format(wxT("Current working dir: %s"), wxGetCwd().c_str())); + m_observer->UpdateAddLine(wxString::Format(wxT("Launching gdb from : %s"), wxGetCwd().c_str())); + m_observer->UpdateAddLine(wxString::Format(wxT("Starting debugger : %s"), cmd.c_str())); - m_gdbProcess = CreateAsyncProcess( this, cmd ); - if ( !m_gdbProcess ) { + m_gdbProcess = CreateAsyncProcess(this, cmd); + if(!m_gdbProcess) { return false; } - m_gdbProcess->SetHardKill( true ); + m_gdbProcess->SetHardKill(true); - DoInitializeGdb( si ); - m_observer->UpdateGotControl( DBG_END_STEPPING ); + DoInitializeGdb(si); + m_observer->UpdateGotControl(DBG_END_STEPPING); return true; } bool DbgGdb::ListRegisters() { return WriteCommand("-data-list-register-names", new DbgCmdHandlerRegisterNames(m_observer, this)); -} +} diff -Nru codelite-8.0.1+dfsg2/Debugger/debuggergdb.h codelite-9.0+dfsg/Debugger/debuggergdb.h --- codelite-8.0.1+dfsg2/Debugger/debuggergdb.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Debugger/debuggergdb.h 2015-10-11 13:56:07.000000000 +0000 @@ -31,18 +31,19 @@ #include "debugger.h" #include #include "consolefinder.h" +#include "cl_command_event.h" #ifdef MSVC_VER -//declare the debugger function creation -extern "C++" IDebugger *CreateDebuggerGDB(); -//declare the function that will be called by host application -//to retrieve the debugger initialization function +// declare the debugger function creation +extern "C++" IDebugger* CreateDebuggerGDB(); +// declare the function that will be called by host application +// to retrieve the debugger initialization function extern "C++" DebuggerInfo GetDebuggerInfo(); #else -//declare the debugger function creation -extern "C" IDebugger *CreateDebuggerGDB(); -//declare the function that will be called by host application -//to retrieve the debugger initialization function +// declare the debugger function creation +extern "C" IDebugger* CreateDebuggerGDB(); +// declare the function that will be called by host application +// to retrieve the debugger initialization function extern "C" DebuggerInfo GetDebuggerInfo(); #endif @@ -50,67 +51,59 @@ class DbgCmdCLIHandler; class IProcess; -WX_DECLARE_STRING_HASH_MAP(DbgCmdHandler*, HandlersMap); + +typedef std::map HandlersMap_t; extern const wxEventType wxEVT_GDB_STOP_DEBUGGER; class DbgGdb : public wxEvtHandler, public IDebugger { - HandlersMap m_handlers; - long m_debuggeePid; - ConsoleFinder m_consoleFinder; + HandlersMap_t m_handlers; + long m_debuggeePid; + ConsoleFinder m_consoleFinder; std::vector m_bpList; - DbgCmdCLIHandler* m_cliHandler; - IProcess* m_gdbProcess; - wxArrayString m_gdbOutputArr; - wxString m_gdbOutputIncompleteLine; - bool m_break_at_main; - bool m_attachedMode; - bool m_goingDown; + DbgCmdCLIHandler* m_cliHandler; + IProcess* m_gdbProcess; + wxArrayString m_gdbOutputArr; + wxString m_gdbOutputIncompleteLine; + bool m_break_at_main; + bool m_attachedMode; + bool m_goingDown; public: - int m_internalBpId; + int m_internalBpId; protected: - void RegisterHandler(const wxString &id, DbgCmdHandler *cmd); - DbgCmdHandler *PopHandler(const wxString &id); - void EmptyQueue(); - bool FilterMessage(const wxString &msg); - bool DoGetNextLine(wxString &line); - void DoCleanup(); + void RegisterHandler(const wxString& id, DbgCmdHandler* cmd); + DbgCmdHandler* PopHandler(const wxString& id); + void EmptyQueue(); + bool FilterMessage(const wxString& msg); + bool DoGetNextLine(wxString& line); + void DoCleanup(); - //wrapper for convinience - void DoProcessAsyncCommand(wxString &line, wxString &id); + // wrapper for convinience + void DoProcessAsyncCommand(wxString& line, wxString& id); protected: - bool DoLocateGdbExecutable(const wxString &debuggerPath, wxString &dbgExeName); - bool DoInitializeGdb ( const DebugSessionInfo& sessionInfo ); - void SetCliHandler (DbgCmdCLIHandler *handler); - DbgCmdCLIHandler * GetCliHandler (); + bool DoLocateGdbExecutable(const wxString& debuggerPath, wxString& dbgExeName); + bool DoInitializeGdb(const DebugSessionInfo& sessionInfo); + void SetCliHandler(DbgCmdCLIHandler* handler); + DbgCmdCLIHandler* GetCliHandler(); public: - bool WriteCommand (const wxString &command, DbgCmdHandler * cmd); - bool ExecCLICommand(const wxString &command, DbgCmdCLIHandler* cmd); + bool WriteCommand(const wxString& command, DbgCmdHandler* cmd); + bool ExecCLICommand(const wxString& command, DbgCmdCLIHandler* cmd); void SetBreakpoints(); void SetInternalMainBpID(int bpId); - void SetShouldBreakAtMain(bool break_at_main) { - m_break_at_main = break_at_main; - } - bool GetShouldBreakAtMain() const { - return m_break_at_main; - } + void SetShouldBreakAtMain(bool break_at_main) { m_break_at_main = break_at_main; } + bool GetShouldBreakAtMain() const { return m_break_at_main; } void GetDebugeePID(const wxString& line); - void SetGoingDown(bool goingDown) { - this->m_goingDown = goingDown; - } - bool IsGoingDown() const { - return m_goingDown; - } - - const std::vector& GetBpList() const { - return m_bpList; - } + void SetGoingDown(bool goingDown) { this->m_goingDown = goingDown; } + bool IsGoingDown() const { return m_goingDown; } + + const std::vector& GetBpList() const { return m_bpList; } + public: DbgGdb(); virtual ~DbgGdb(); @@ -118,14 +111,14 @@ //------ IDebugger --------- virtual bool Start(const DebugSessionInfo& si); virtual bool Attach(const DebugSessionInfo& si); - virtual bool Run(const wxString &args, const wxString &comm); + virtual bool Run(const wxString& args, const wxString& comm); virtual bool Stop(); virtual bool Break(const BreakpointInfo& bp); - virtual bool SetEnabledState(const int bid, const bool enable); - virtual bool SetIgnoreLevel(const int bid, const int ignorecount); + virtual bool SetEnabledState(double bid, const bool enable); + virtual bool SetIgnoreLevel(double bid, const int ignorecount); virtual bool SetCondition(const BreakpointInfo& bp); virtual bool SetCommands(const BreakpointInfo& bp); - virtual bool RemoveBreak(int bid); + virtual bool RemoveBreak(double bid); virtual bool RemoveAllBreaks(); virtual bool StepIn(); virtual bool StepOut(); @@ -133,33 +126,33 @@ virtual bool NextInstruction(); virtual bool Continue(); virtual bool QueryFileLine(); - virtual bool Disassemble(const wxString &filename, int lineNumber); + virtual bool Disassemble(const wxString& filename, int lineNumber); virtual bool Interrupt(); virtual bool IsRunning(); - virtual bool ExecuteCmd(const wxString &cmd); - virtual bool EvaluateExpressionToString(const wxString &expression, const wxString &format); + virtual bool ExecuteCmd(const wxString& cmd); + virtual bool EvaluateExpressionToString(const wxString& expression, const wxString& format); virtual bool QueryLocals(); virtual bool ListFrames(); virtual bool ListThreads(); virtual bool SelectThread(long threadId); virtual bool SetFrame(int frame); virtual void Poke(); - virtual bool GetAsciiViewerContent(const wxString &dbgCommand, const wxString &expression); - virtual bool ResolveType(const wxString &expression, int userReason); - virtual bool WatchMemory(const wxString &address, size_t count, size_t columns); - virtual bool SetMemory(const wxString &address, size_t count, const wxString &hex_value); - virtual void SetDebuggerInformation(const DebuggerInformation &info); + virtual bool GetAsciiViewerContent(const wxString& dbgCommand, const wxString& expression); + virtual bool ResolveType(const wxString& expression, int userReason); + virtual bool WatchMemory(const wxString& address, size_t count, size_t columns); + virtual bool SetMemory(const wxString& address, size_t count, const wxString& hex_value); + virtual void SetDebuggerInformation(const DebuggerInformation& info); virtual void BreakList(); - virtual bool ListChildren(const wxString &name, int userReason); - virtual bool CreateVariableObject(const wxString &expression, bool persistent, int userReason); - virtual bool DeleteVariableObject(const wxString &name); - virtual bool EvaluateVariableObject(const wxString &name, int userReason); + virtual bool ListChildren(const wxString& name, int userReason); + virtual bool CreateVariableObject(const wxString& expression, bool persistent, int userReason); + virtual bool DeleteVariableObject(const wxString& name); + virtual bool EvaluateVariableObject(const wxString& name, int userReason); virtual bool SetVariableObbjectDisplayFormat(const wxString& name, DisplayFormat displayFormat); virtual bool UpdateVariableObject(const wxString& name, int userReason); virtual void AssignValue(const wxString& expression, const wxString& newValue); virtual bool Jump(wxString filename, int line); virtual bool ListRegisters(); - + virtual bool UpdateWatch(const wxString& name); /** * @brief restart the debugger (execute 'run') * @return true on success, false otherwise @@ -167,10 +160,8 @@ virtual bool Restart(); // Event handlers - DECLARE_EVENT_TABLE() - void OnProcessEnd(wxCommandEvent &e); - void OnDataRead (wxCommandEvent &e); - void OnKillGDB(wxCommandEvent &e); - + void OnProcessEnd(clProcessEvent& e); + void OnDataRead(clProcessEvent& e); + void OnKillGDB(wxCommandEvent& e); }; -#endif //DBGINTERFACE_H +#endif // DBGINTERFACE_H diff -Nru codelite-8.0.1+dfsg2/Debugger/gdb_result.cpp codelite-9.0+dfsg/Debugger/gdb_result.cpp --- codelite-8.0.1+dfsg2/Debugger/gdb_result.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Debugger/gdb_result.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,8 +1,12 @@ + +#line 3 "lex.gdb_result_.c" + +#define YY_INT_ALIGNED short int + +/* A lexical scanner generated by flex */ + #define yy_create_buffer gdb_result__create_buffer #define yy_delete_buffer gdb_result__delete_buffer -#define yy_scan_buffer gdb_result__scan_buffer -#define yy_scan_string gdb_result__scan_string -#define yy_scan_bytes gdb_result__scan_bytes #define yy_flex_debug gdb_result__flex_debug #define yy_init_buffer gdb_result__init_buffer #define yy_flush_buffer gdb_result__flush_buffer @@ -11,76 +15,118 @@ #define yyin gdb_result_in #define yyleng gdb_result_leng #define yylex gdb_result_lex +#define yylineno gdb_result_lineno #define yyout gdb_result_out #define yyrestart gdb_result_restart #define yytext gdb_result_text -#define yylineno gdb_result_lineno #define yywrap gdb_result_wrap - -/* A lexical scanner generated by flex */ - -/* Scanner skeleton version: - * $Header: /home/daffy/u0/vern/flex/RCS/flex.skl,v 2.91 96/09/10 16:58:48 vern Exp $ - */ +#define yyalloc gdb_result_alloc +#define yyrealloc gdb_result_realloc +#define yyfree gdb_result_free #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 #define YY_FLEX_MINOR_VERSION 5 +#define YY_FLEX_SUBMINOR_VERSION 37 +#if YY_FLEX_SUBMINOR_VERSION > 0 +#define FLEX_BETA +#endif + +/* First, we deal with platform-specific or compiler-specific issues. */ +/* begin standard C headers. */ #include +#include +#include +#include +/* end standard C headers. */ -/* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */ -#ifdef c_plusplus -#ifndef __cplusplus -#define __cplusplus -#endif +/* flex integer type definitions */ + +#ifndef FLEXINT_H +#define FLEXINT_H + +/* C99 systems have . Non-C99 systems may or may not. */ + +#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L + +/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h, + * if you want the limit (max/min) macros for int types. + */ +#ifndef __STDC_LIMIT_MACROS +#define __STDC_LIMIT_MACROS 1 #endif +#include +typedef int8_t flex_int8_t; +typedef uint8_t flex_uint8_t; +typedef int16_t flex_int16_t; +typedef uint16_t flex_uint16_t; +typedef int32_t flex_int32_t; +typedef uint32_t flex_uint32_t; +#else +typedef signed char flex_int8_t; +typedef short int flex_int16_t; +typedef int flex_int32_t; +typedef unsigned char flex_uint8_t; +typedef unsigned short int flex_uint16_t; +typedef unsigned int flex_uint32_t; -#ifdef __cplusplus +/* Limits of integral types. */ +#ifndef INT8_MIN +#define INT8_MIN (-128) +#endif +#ifndef INT16_MIN +#define INT16_MIN (-32767-1) +#endif +#ifndef INT32_MIN +#define INT32_MIN (-2147483647-1) +#endif +#ifndef INT8_MAX +#define INT8_MAX (127) +#endif +#ifndef INT16_MAX +#define INT16_MAX (32767) +#endif +#ifndef INT32_MAX +#define INT32_MAX (2147483647) +#endif +#ifndef UINT8_MAX +#define UINT8_MAX (255U) +#endif +#ifndef UINT16_MAX +#define UINT16_MAX (65535U) +#endif +#ifndef UINT32_MAX +#define UINT32_MAX (4294967295U) +#endif -#include -#include +#endif /* ! C99 */ + +#endif /* ! FLEXINT_H */ -/* Use prototypes in function declarations. */ -#define YY_USE_PROTOS +#ifdef __cplusplus /* The "const" storage-class-modifier is valid. */ #define YY_USE_CONST #else /* ! __cplusplus */ -#if __STDC__ +/* C99 requires __STDC__ to be defined as 1. */ +#if defined (__STDC__) -#define YY_USE_PROTOS #define YY_USE_CONST -#endif /* __STDC__ */ +#endif /* defined (__STDC__) */ #endif /* ! __cplusplus */ -#ifdef __TURBOC__ - #pragma warn -rch - #pragma warn -use -#include -#include -#define YY_USE_CONST -#define YY_USE_PROTOS -#endif - #ifdef YY_USE_CONST #define yyconst const #else #define yyconst #endif - -#ifdef YY_USE_PROTOS -#define YY_PROTO(proto) proto -#else -#define YY_PROTO(proto) () -#endif - /* Returned upon end-of-file. */ #define YY_NULL 0 @@ -95,71 +141,83 @@ * but we do it the disgusting crufty way forced on us by the ()-less * definition of BEGIN. */ -#define BEGIN yy_start = 1 + 2 * +#define BEGIN (yy_start) = 1 + 2 * /* Translate the current start state into a value that can be later handed * to BEGIN to return to the state. The YYSTATE alias is for lex * compatibility. */ -#define YY_START ((yy_start - 1) / 2) +#define YY_START (((yy_start) - 1) / 2) #define YYSTATE YY_START /* Action number for EOF rule of a given start state. */ #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) /* Special action meaning "start processing a new file". */ -#define YY_NEW_FILE yyrestart( yyin ) +#define YY_NEW_FILE gdb_result_restart(gdb_result_in ) #define YY_END_OF_BUFFER_CHAR 0 /* Size of default input buffer. */ +#ifndef YY_BUF_SIZE #define YY_BUF_SIZE 16384 +#endif +/* The state buf must be large enough to hold one state per character in the main buffer. + */ +#define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type)) + +#ifndef YY_TYPEDEF_YY_BUFFER_STATE +#define YY_TYPEDEF_YY_BUFFER_STATE typedef struct yy_buffer_state *YY_BUFFER_STATE; +#endif -extern int yyleng; -extern FILE *yyin, *yyout; +#ifndef YY_TYPEDEF_YY_SIZE_T +#define YY_TYPEDEF_YY_SIZE_T +typedef size_t yy_size_t; +#endif + +extern yy_size_t gdb_result_leng; + +extern FILE *gdb_result_in, *gdb_result_out; #define EOB_ACT_CONTINUE_SCAN 0 #define EOB_ACT_END_OF_FILE 1 #define EOB_ACT_LAST_MATCH 2 -/* The funky do-while in the following #define is used to turn the definition - * int a single C statement (which needs a semi-colon terminator). This - * avoids problems with code like: - * - * if ( condition_holds ) - * yyless( 5 ); - * else - * do_something_else(); - * - * Prior to using the do-while the compiler would get upset at the - * "else" because it interpreted the "if" statement as being all - * done when it reached the ';' after the yyless() call. - */ - -/* Return all but the first 'n' matched characters back to the input stream. */ - + /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires + * access to the local variable yy_act. Since yyless() is a macro, it would break + * existing scanners that call yyless() from OUTSIDE gdb_result_lex. + * One obvious solution it to make yy_act a global. I tried that, and saw + * a 5% performance hit in a non-gdb_result_lineno scanner, because yy_act is + * normally declared as a register variable-- so it is not worth it. + */ + #define YY_LESS_LINENO(n) \ + do { \ + int yyl;\ + for ( yyl = n; yyl < gdb_result_leng; ++yyl )\ + if ( gdb_result_text[yyl] == '\n' )\ + --gdb_result_lineno;\ + }while(0) + +/* Return all but the first "n" matched characters back to the input stream. */ #define yyless(n) \ do \ { \ - /* Undo effects of setting up yytext. */ \ - *yy_cp = yy_hold_char; \ + /* Undo effects of setting up gdb_result_text. */ \ + int yyless_macro_arg = (n); \ + YY_LESS_LINENO(yyless_macro_arg);\ + *yy_cp = (yy_hold_char); \ YY_RESTORE_YY_MORE_OFFSET \ - yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \ - YY_DO_BEFORE_ACTION; /* set up yytext again */ \ + (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \ + YY_DO_BEFORE_ACTION; /* set up gdb_result_text again */ \ } \ while ( 0 ) -#define unput(c) yyunput( c, yytext_ptr ) - -/* The following is because we cannot portably get our hands on size_t - * (without autoconf's help, which isn't available because we want - * flex-generated scanners to compile on their own). - */ -typedef unsigned int yy_size_t; - +#define unput(c) yyunput( c, (yytext_ptr) ) +#ifndef YY_STRUCT_YY_BUFFER_STATE +#define YY_STRUCT_YY_BUFFER_STATE struct yy_buffer_state { FILE *yy_input_file; @@ -175,7 +233,7 @@ /* Number of characters read into yy_ch_buf, not including EOB * characters. */ - int yy_n_chars; + yy_size_t yy_n_chars; /* Whether we "own" the buffer - i.e., we know we created it, * and can realloc() it to grow it, and should free() it to @@ -196,12 +254,16 @@ */ int yy_at_bol; + int yy_bs_lineno; /**< The line count. */ + int yy_bs_column; /**< The column count. */ + /* Whether to try to fill the input buffer when we reach the * end of it. */ int yy_fill_buffer; int yy_buffer_status; + #define YY_BUFFER_NEW 0 #define YY_BUFFER_NORMAL 1 /* When an EOF's been seen but there's still some text to process @@ -211,197 +273,177 @@ * possible backing-up. * * When we actually see the EOF, we change the status to "new" - * (via yyrestart()), so that the user can continue scanning by - * just pointing yyin at a new input file. + * (via gdb_result_restart()), so that the user can continue scanning by + * just pointing gdb_result_in at a new input file. */ #define YY_BUFFER_EOF_PENDING 2 + }; +#endif /* !YY_STRUCT_YY_BUFFER_STATE */ -static YY_BUFFER_STATE yy_current_buffer = 0; +/* Stack of input buffers. */ +static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */ +static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */ +static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */ /* We provide macros for accessing buffer states in case in the * future we want to put the buffer states in a more general * "scanner state". + * + * Returns the top of the stack, or NULL. */ -#define YY_CURRENT_BUFFER yy_current_buffer +#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \ + ? (yy_buffer_stack)[(yy_buffer_stack_top)] \ + : NULL) +/* Same as previous macro, but useful when we know that the buffer stack is not + * NULL or when we need an lvalue. For internal use only. + */ +#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)] -/* yy_hold_char holds the character lost when yytext is formed. */ +/* yy_hold_char holds the character lost when gdb_result_text is formed. */ static char yy_hold_char; - -static int yy_n_chars; /* number of characters read into yy_ch_buf */ - - -int yyleng; +static yy_size_t yy_n_chars; /* number of characters read into yy_ch_buf */ +yy_size_t gdb_result_leng; /* Points to current character in buffer. */ static char *yy_c_buf_p = (char *) 0; -static int yy_init = 1; /* whether we need to initialize */ +static int yy_init = 0; /* whether we need to initialize */ static int yy_start = 0; /* start state number */ -/* Flag which is used to allow yywrap()'s to do buffer switches - * instead of setting up a fresh yyin. A bit of a hack ... +/* Flag which is used to allow gdb_result_wrap()'s to do buffer switches + * instead of setting up a fresh gdb_result_in. A bit of a hack ... */ static int yy_did_buffer_switch_on_eof; -void yyrestart YY_PROTO(( FILE *input_file )); +void gdb_result_restart (FILE *input_file ); +void gdb_result__switch_to_buffer (YY_BUFFER_STATE new_buffer ); +YY_BUFFER_STATE gdb_result__create_buffer (FILE *file,int size ); +void gdb_result__delete_buffer (YY_BUFFER_STATE b ); +void gdb_result__flush_buffer (YY_BUFFER_STATE b ); +void gdb_result_push_buffer_state (YY_BUFFER_STATE new_buffer ); +void gdb_result_pop_buffer_state (void ); + +static void gdb_result_ensure_buffer_stack (void ); +static void gdb_result__load_buffer_state (void ); +static void gdb_result__init_buffer (YY_BUFFER_STATE b,FILE *file ); + +#define YY_FLUSH_BUFFER gdb_result__flush_buffer(YY_CURRENT_BUFFER ) + +YY_BUFFER_STATE gdb_result__scan_buffer (char *base,yy_size_t size ); +YY_BUFFER_STATE gdb_result__scan_string (yyconst char *yy_str ); +YY_BUFFER_STATE gdb_result__scan_bytes (yyconst char *bytes,yy_size_t len ); + +void *gdb_result_alloc (yy_size_t ); +void *gdb_result_realloc (void *,yy_size_t ); +void gdb_result_free (void * ); -void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer )); -void yy_load_buffer_state YY_PROTO(( void )); -YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size )); -void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b )); -void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file )); -void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b )); -#define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer ) - -YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size )); -YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str )); -YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len )); - -static void *yy_flex_alloc YY_PROTO(( yy_size_t )); -static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t )); -static void yy_flex_free YY_PROTO(( void * )); - -#define yy_new_buffer yy_create_buffer +#define yy_new_buffer gdb_result__create_buffer #define yy_set_interactive(is_interactive) \ { \ - if ( ! yy_current_buffer ) \ - yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \ - yy_current_buffer->yy_is_interactive = is_interactive; \ + if ( ! YY_CURRENT_BUFFER ){ \ + gdb_result_ensure_buffer_stack (); \ + YY_CURRENT_BUFFER_LVALUE = \ + gdb_result__create_buffer(gdb_result_in,YY_BUF_SIZE ); \ + } \ + YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ } #define yy_set_bol(at_bol) \ { \ - if ( ! yy_current_buffer ) \ - yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \ - yy_current_buffer->yy_at_bol = at_bol; \ + if ( ! YY_CURRENT_BUFFER ){\ + gdb_result_ensure_buffer_stack (); \ + YY_CURRENT_BUFFER_LVALUE = \ + gdb_result__create_buffer(gdb_result_in,YY_BUF_SIZE ); \ + } \ + YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ } -#define YY_AT_BOL() (yy_current_buffer->yy_at_bol) +#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) +/* Begin user sect3 */ -#define YY_USES_REJECT typedef unsigned char YY_CHAR; -FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0; + +FILE *gdb_result_in = (FILE *) 0, *gdb_result_out = (FILE *) 0; + typedef int yy_state_type; -extern int yylineno; -int yylineno = 1; -extern char *yytext; -#define yytext_ptr yytext - -static yy_state_type yy_get_previous_state YY_PROTO(( void )); -static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state )); -static int yy_get_next_buffer YY_PROTO(( void )); -static void yy_fatal_error YY_PROTO(( yyconst char msg[] )); + +extern int gdb_result_lineno; + +int gdb_result_lineno = 1; + +extern char *gdb_result_text; +#define yytext_ptr gdb_result_text + +static yy_state_type yy_get_previous_state (void ); +static yy_state_type yy_try_NUL_trans (yy_state_type current_state ); +static int yy_get_next_buffer (void ); +static void yy_fatal_error (yyconst char msg[] ); /* Done after the current pattern has been matched and before the - * corresponding action - sets up yytext. + * corresponding action - sets up gdb_result_text. */ #define YY_DO_BEFORE_ACTION \ - yytext_ptr = yy_bp; \ - yyleng = (int) (yy_cp - yy_bp); \ - yy_hold_char = *yy_cp; \ + (yytext_ptr) = yy_bp; \ + gdb_result_leng = (size_t) (yy_cp - yy_bp); \ + (yy_hold_char) = *yy_cp; \ *yy_cp = '\0'; \ - yy_c_buf_p = yy_cp; + (yy_c_buf_p) = yy_cp; #define YY_NUM_RULES 81 #define YY_END_OF_BUFFER 82 -static yyconst short int yy_acclist[432] = +/* This struct is not used in this scanner, + but its presence is necessary. */ +struct yy_trans_info + { + flex_int32_t yy_verify; + flex_int32_t yy_nxt; + }; +static yyconst flex_int16_t yy_accept[348] = { 0, - 82, 60, 81, 1, 60, 81, 3, 81, 2, 60, - 81, 58, 60, 81, 57, 60, 81, 60, 81, 5, - 60, 81, 4, 60, 81, 54, 60, 81, 52, 60, - 81, 52, 60, 81, 52, 60, 81, 60, 81, 53, - 60, 81, 52, 60, 81, 52, 60, 81, 52, 60, - 81, 52, 60, 81, 52, 60, 81, 52, 60, 81, - 52, 60, 81, 52, 60, 81, 52, 60, 81, 52, - 60, 81, 52, 60, 81, 52, 60, 81, 52, 60, - 81, 52, 60, 81, 52, 60, 81, 55, 60, 81, - 56, 60, 81, 71, 81, 81, 70, 71, 81, 71, - - 81, 80, 81, 80, 81, 1, 3, 2, 7, 7, - 5, 5, 5, 4, 4, 4, 52, 52, 58, 59, + 0, 0, 0, 0, 0, 0, 82, 60, 1, 3, + 2, 58, 57, 60, 5, 4, 54, 52, 52, 52, + 60, 53, 52, 52, 52, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 55, 56, 71, + 81, 70, 71, 80, 80, 1, 3, 0, 2, 7, + 7, 5, 0, 0, 5, 5, 0, 4, 4, 4, + 52, 52, 58, 0, 59, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, - 52, 52, 68, 69, 79, 7, 7, 5, 6, 4, + 52, 52, 52, 52, 52, 52, 52, 0, 68, 0, + + 69, 79, 0, 0, 7, 0, 7, 5, 6, 4, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 34, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 52, 52, 52, 52, 62, - - 64, 65, 63, 73, 75, 76, 74, 7, 6, 6, - 52, 25, 52, 18, 52, 52, 52, 36, 52, 35, - 52, 52, 52, 52, 24, 52, 52, 8, 52, 52, - 52, 12, 52, 52, 52, 52, 49, 52, 52, 52, - 17, 52, 52, 52, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 38, 52, 23, 52, 52, 52, 52, - 61, 66, 67, 77, 78, 6, 52, 52, 26, 52, - 52, 52, 28, 52, 52, 52, 52, 11, 52, 20, - 52, 52, 52, 19, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 52, 52, 52, 16, 52, - + 52, 52, 52, 52, 52, 52, 52, 52, 0, 0, + 0, 62, 64, 65, 63, 0, 0, 73, 75, 76, + 74, 0, 7, 6, 6, 52, 25, 18, 52, 52, + 36, 35, 52, 52, 52, 24, 52, 8, 52, 52, + 12, 52, 52, 52, 49, 52, 52, 17, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 38, + + 23, 52, 52, 52, 0, 61, 66, 67, 0, 77, + 78, 6, 52, 52, 26, 52, 52, 28, 52, 52, + 52, 11, 20, 52, 52, 19, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 16, 52, 52, 30, 72, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 21, 52, 52, 52, 52, 52, - 52, 48, 52, 39, 52, 52, 52, 52, 52, 52, - 52, 29, 52, 52, 50, 52, 52, 52, 52, 52, - 52, 42, 52, 52, 52, 52, 52, 33, 52, 32, - 52, 52, 52, 9, 52, 52, 37, 52, 52, 52, - 52, 52, 52, 27, 52, 52, 52, 52, 41, 52, - 52, 52, 22, 52, 52, 52, 52, 52, 52, 51, - 52, 52, 10, 52, 52, 47, 52, 52, 52, 52, - 52, 52, 14, 52, 52, 40, 52, 52, 52, 52, - - 52, 13, 52, 52, 52, 46, 52, 52, 52, 52, - 52, 52, 43, 52, 52, 52, 52, 52, 52, 52, - 44, 52, 52, 52, 15, 52, 31, 52, 52, 45, - 52 - } ; - -static yyconst short int yy_accept[349] = - { 0, - 1, 1, 1, 1, 1, 1, 1, 2, 4, 7, - 9, 12, 15, 18, 20, 23, 26, 29, 32, 35, - 38, 40, 43, 46, 49, 52, 55, 58, 61, 64, - 67, 70, 73, 76, 79, 82, 85, 88, 91, 94, - 96, 97, 100, 102, 104, 106, 107, 108, 108, 109, - 110, 111, 112, 112, 112, 113, 114, 114, 115, 116, - 117, 118, 119, 120, 120, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, - 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, - 146, 147, 148, 149, 150, 151, 152, 153, 153, 154, - - 154, 155, 156, 156, 156, 157, 157, 158, 159, 160, - 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, - 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, - 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, - 192, 193, 194, 195, 196, 197, 198, 199, 200, 200, - 200, 200, 201, 202, 203, 204, 204, 204, 205, 206, - 207, 208, 208, 209, 210, 211, 212, 214, 216, 217, - 218, 220, 222, 223, 224, 225, 227, 228, 230, 231, - 232, 234, 235, 236, 237, 239, 240, 241, 243, 244, - 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, - - 256, 258, 259, 260, 261, 261, 262, 263, 264, 264, - 265, 266, 267, 268, 269, 271, 272, 273, 275, 276, - 277, 278, 280, 282, 283, 284, 286, 287, 288, 289, - 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, - 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, - 311, 312, 313, 314, 315, 317, 318, 319, 320, 321, - 322, 324, 326, 327, 328, 329, 330, 331, 332, 334, - 335, 337, 338, 339, 340, 341, 342, 344, 345, 346, - 347, 348, 350, 352, 353, 354, 356, 357, 359, 360, - 361, 362, 363, 364, 366, 367, 368, 369, 371, 372, - - 373, 375, 376, 377, 378, 379, 380, 382, 383, 385, - 386, 388, 389, 390, 391, 392, 393, 395, 396, 398, - 399, 400, 401, 402, 404, 405, 406, 408, 409, 410, - 411, 412, 413, 415, 416, 417, 418, 419, 420, 421, - 423, 424, 425, 427, 429, 430, 432, 432 + 48, 39, 52, 52, 52, 52, 52, 52, 29, 52, + 50, 52, 52, 52, 52, 52, 42, 52, 52, 52, + 52, 33, 32, 52, 52, 9, 52, 37, 52, 52, + 52, 52, 52, 27, 52, 52, 52, 41, 52, 52, + + 22, 52, 52, 52, 52, 52, 51, 52, 10, 52, + 47, 52, 52, 52, 52, 52, 14, 52, 40, 52, + 52, 52, 52, 13, 52, 52, 46, 52, 52, 52, + 52, 52, 43, 52, 52, 52, 52, 52, 52, 44, + 52, 52, 15, 31, 52, 45, 0 } ; -static yyconst int yy_ec[256] = +static yyconst flex_int32_t yy_ec[256] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 4, 5, 6, 1, 1, 1, 1, 1, 1, 1, @@ -433,7 +475,7 @@ 1, 1, 1, 1, 1 } ; -static yyconst int yy_meta[55] = +static yyconst flex_int32_t yy_meta[55] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 3, 3, 3, 1, 3, 3, 3, 3, @@ -443,7 +485,7 @@ 2, 2, 1, 1 } ; -static yyconst short int yy_base[352] = +static yyconst flex_int16_t yy_base[352] = { 0, 0, 0, 52, 53, 54, 55, 474, 475, 60, 475, 66, 475, 475, 61, 70, 110, 475, 0, 428, 51, @@ -486,7 +528,7 @@ 90 } ; -static yyconst short int yy_def[352] = +static yyconst flex_int16_t yy_def[352] = { 0, 347, 1, 348, 348, 349, 349, 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, 350, 350, 350, @@ -529,7 +571,7 @@ 347 } ; -static yyconst short int yy_nxt[530] = +static yyconst flex_int16_t yy_nxt[530] = { 0, 8, 9, 10, 11, 11, 11, 9, 12, 8, 13, 8, 14, 15, 16, 16, 17, 18, 19, 18, 18, @@ -591,7 +633,7 @@ 347, 347, 347, 347, 347, 347, 347, 347, 347 } ; -static yyconst short int yy_chk[530] = +static yyconst flex_int16_t yy_chk[530] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -653,21 +695,29 @@ 347, 347, 347, 347, 347, 347, 347, 347, 347 } ; -static yy_state_type yy_state_buf[YY_BUF_SIZE + 2], *yy_state_ptr; -static char *yy_full_match; -static int yy_lp; -#define REJECT \ -{ \ -*yy_cp = yy_hold_char; /* undo effects of setting up yytext */ \ -yy_cp = yy_full_match; /* restore poss. backed-over text */ \ -++yy_lp; \ -goto find_rule; \ -} +/* Table of booleans, true if rule could match eol. */ +static yyconst flex_int32_t yy_rule_can_match_eol[82] = + { 0, +0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, }; + +static yy_state_type yy_last_accepting_state; +static char *yy_last_accepting_cpos; + +extern int gdb_result__flex_debug; +int gdb_result__flex_debug = 0; + +/* The intent behind this definition is that it'll catch + * any uses of REJECT which flex missed. + */ +#define REJECT reject_used_but_not_detected #define yymore() yymore_used_but_not_detected #define YY_MORE_ADJ 0 #define YY_RESTORE_YY_MORE_OFFSET -char *yytext; -#define INITIAL 0 +char *gdb_result_text; /* Included code before lex code */ #include "string" #include "gdb_result_parser.h" @@ -690,12 +740,12 @@ extern std::string gdb_result_lval; #define RETURN_VAL(x) {\ - gdb_result_string = yytext;\ - gdb_result_lval = yytext;\ + gdb_result_string = gdb_result_text;\ + gdb_result_lval = gdb_result_text;\ return(x);} #define RETURN_ESCAPED_STRING(x) {\ - gdb_result_string = yytext;\ + gdb_result_string = gdb_result_text;\ std::string str;\ str = gdb_result_string.substr(1);\ gdb_result_string = str;\ @@ -704,10 +754,53 @@ /** * Some basic regexes */ -#define string_state 1 +#define INITIAL 0 +#define string_state 1 #define esc_string_state 2 +#ifndef YY_NO_UNISTD_H +/* Special case for "unistd.h", since it is non-ANSI. We include it way + * down here because we want the user's section 1 to have been scanned first. + * The user has a chance to override it with an option. + */ +#include +#endif + +#ifndef YY_EXTRA_TYPE +#define YY_EXTRA_TYPE void * +#endif + +static int yy_init_globals (void ); + +/* Accessor methods to globals. + These are made visible to non-reentrant scanners for convenience. */ + +int gdb_result_lex_destroy (void ); + +int gdb_result_get_debug (void ); + +void gdb_result_set_debug (int debug_flag ); + +YY_EXTRA_TYPE gdb_result_get_extra (void ); + +void gdb_result_set_extra (YY_EXTRA_TYPE user_defined ); + +FILE *gdb_result_get_in (void ); + +void gdb_result_set_in (FILE * in_str ); + +FILE *gdb_result_get_out (void ); + +void gdb_result_set_out (FILE * out_str ); + +yy_size_t gdb_result_get_leng (void ); + +char *gdb_result_get_text (void ); + +int gdb_result_get_lineno (void ); + +void gdb_result_set_lineno (int line_number ); /* Macros after this point can all be overridden by user definitions in * section 1. @@ -715,65 +808,30 @@ #ifndef YY_SKIP_YYWRAP #ifdef __cplusplus -extern "C" int yywrap YY_PROTO(( void )); +extern "C" int gdb_result_wrap (void ); #else -extern int yywrap YY_PROTO(( void )); +extern int gdb_result_wrap (void ); #endif #endif -#ifndef YY_NO_UNPUT -static void yyunput YY_PROTO(( int c, char *buf_ptr )); -#endif - + static void yyunput (int c,char *buf_ptr ); + #ifndef yytext_ptr -static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int )); +static void yy_flex_strncpy (char *,yyconst char *,int ); #endif #ifdef YY_NEED_STRLEN -static int yy_flex_strlen YY_PROTO(( yyconst char * )); +static int yy_flex_strlen (yyconst char * ); #endif #ifndef YY_NO_INPUT + #ifdef __cplusplus -static int yyinput YY_PROTO(( void )); +static int yyinput (void ); #else -static int input YY_PROTO(( void )); -#endif +static int input (void ); #endif -#if YY_STACK_USED -static int yy_start_stack_ptr = 0; -static int yy_start_stack_depth = 0; -static int *yy_start_stack = 0; -#ifndef YY_NO_PUSH_STATE -static void yy_push_state YY_PROTO(( int new_state )); -#endif -#ifndef YY_NO_POP_STATE -static void yy_pop_state YY_PROTO(( void )); -#endif -#ifndef YY_NO_TOP_STATE -static int yy_top_state YY_PROTO(( void )); -#endif - -#else -#define YY_NO_PUSH_STATE 1 -#define YY_NO_POP_STATE 1 -#define YY_NO_TOP_STATE 1 -#endif - -#ifdef YY_MALLOC_DECL -YY_MALLOC_DECL -#else -#if __STDC__ -#ifndef __cplusplus -#include -#endif -#else -/* Just try to get by without declaring the routines. This will fail - * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int) - * or sizeof(void*) != sizeof(int). - */ -#endif #endif /* Amount of stuff to slurp up with each read. */ @@ -782,12 +840,11 @@ #endif /* Copy whatever the last rule matched to the standard output. */ - #ifndef ECHO /* This used to be an fputs(), but since the string might contain NUL's, * we now use fwrite(). */ -#define ECHO (void) fwrite( yytext, yyleng, 1, yyout ) +#define ECHO do { if (fwrite( gdb_result_text, gdb_result_leng, 1, gdb_result_out )) {} } while (0) #endif /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, @@ -795,21 +852,35 @@ */ #ifndef YY_INPUT #define YY_INPUT(buf,result,max_size) \ - if ( yy_current_buffer->yy_is_interactive ) \ + if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ { \ - int c = '*', n; \ + int c = '*'; \ + size_t n; \ for ( n = 0; n < max_size && \ - (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ + (c = getc( gdb_result_in )) != EOF && c != '\n'; ++n ) \ buf[n] = (char) c; \ if ( c == '\n' ) \ buf[n++] = (char) c; \ - if ( c == EOF && ferror( yyin ) ) \ + if ( c == EOF && ferror( gdb_result_in ) ) \ YY_FATAL_ERROR( "input in flex scanner failed" ); \ result = n; \ } \ - else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \ - && ferror( yyin ) ) \ - YY_FATAL_ERROR( "input in flex scanner failed" ); + else \ + { \ + errno=0; \ + while ( (result = fread(buf, 1, max_size, gdb_result_in))==0 && ferror(gdb_result_in)) \ + { \ + if( errno != EINTR) \ + { \ + YY_FATAL_ERROR( "input in flex scanner failed" ); \ + break; \ + } \ + errno=0; \ + clearerr(gdb_result_in); \ + } \ + }\ +\ + #endif /* No semi-colon after return; correct usage is to write "yyterminate();" - @@ -830,14 +901,20 @@ #define YY_FATAL_ERROR(msg) yy_fatal_error( msg ) #endif +/* end tables serialization structures and prototypes */ + /* Default declaration of generated scanner - a define so the user can * easily add parameters. */ #ifndef YY_DECL -#define YY_DECL int yylex YY_PROTO(( void )) -#endif +#define YY_DECL_IS_OURS 1 + +extern int gdb_result_lex (void); + +#define YY_DECL int gdb_result_lex (void) +#endif /* !YY_DECL */ -/* Code executed at the beginning of each rule, after yytext and yyleng +/* Code executed at the beginning of each rule, after gdb_result_text and gdb_result_leng * have been set up. */ #ifndef YY_USER_ACTION @@ -852,58 +929,62 @@ #define YY_RULE_SETUP \ YY_USER_ACTION +/** The main scanner function which does all the work. + */ YY_DECL - { +{ register yy_state_type yy_current_state; register char *yy_cp, *yy_bp; register int yy_act; - - - - - if ( yy_init ) + + if ( !(yy_init) ) { - yy_init = 0; + (yy_init) = 1; #ifdef YY_USER_INIT YY_USER_INIT; #endif - if ( ! yy_start ) - yy_start = 1; /* first start state */ + if ( ! (yy_start) ) + (yy_start) = 1; /* first start state */ - if ( ! yyin ) - yyin = stdin; + if ( ! gdb_result_in ) + gdb_result_in = stdin; - if ( ! yyout ) - yyout = stdout; + if ( ! gdb_result_out ) + gdb_result_out = stdout; - if ( ! yy_current_buffer ) - yy_current_buffer = - yy_create_buffer( yyin, YY_BUF_SIZE ); + if ( ! YY_CURRENT_BUFFER ) { + gdb_result_ensure_buffer_stack (); + YY_CURRENT_BUFFER_LVALUE = + gdb_result__create_buffer(gdb_result_in,YY_BUF_SIZE ); + } - yy_load_buffer_state(); + gdb_result__load_buffer_state( ); } while ( 1 ) /* loops until end-of-file is reached */ { - yy_cp = yy_c_buf_p; + yy_cp = (yy_c_buf_p); - /* Support of yytext. */ - *yy_cp = yy_hold_char; + /* Support of gdb_result_text. */ + *yy_cp = (yy_hold_char); /* yy_bp points to the position in yy_ch_buf of the start of * the current run. */ yy_bp = yy_cp; - yy_current_state = yy_start; - yy_state_ptr = yy_state_buf; - *yy_state_ptr++ = yy_current_state; + yy_current_state = (yy_start); yy_match: do { register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)]; + if ( yy_accept[yy_current_state] ) + { + (yy_last_accepting_state) = yy_current_state; + (yy_last_accepting_cpos) = yy_cp; + } while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; @@ -911,45 +992,42 @@ yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - *yy_state_ptr++ = yy_current_state; ++yy_cp; } while ( yy_base[yy_current_state] != 475 ); yy_find_action: - yy_current_state = *--yy_state_ptr; - yy_lp = yy_accept[yy_current_state]; -find_rule: /* we branch to this label when backing up */ - for ( ; ; ) /* until we find what rule we matched */ - { - if ( yy_lp && yy_lp < yy_accept[yy_current_state + 1] ) - { - yy_act = yy_acclist[yy_lp]; - { - yy_full_match = yy_cp; - break; - } - } - --yy_cp; - yy_current_state = *--yy_state_ptr; - yy_lp = yy_accept[yy_current_state]; + yy_act = yy_accept[yy_current_state]; + if ( yy_act == 0 ) + { /* have to back up */ + yy_cp = (yy_last_accepting_cpos); + yy_current_state = (yy_last_accepting_state); + yy_act = yy_accept[yy_current_state]; } YY_DO_BEFORE_ACTION; - if ( yy_act != YY_END_OF_BUFFER ) + if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] ) { - int yyl; - for ( yyl = 0; yyl < yyleng; ++yyl ) - if ( yytext[yyl] == '\n' ) - ++yylineno; + yy_size_t yyl; + for ( yyl = 0; yyl < gdb_result_leng; ++yyl ) + if ( gdb_result_text[yyl] == '\n' ) + + gdb_result_lineno++; +; } do_action: /* This label is used only to access EOF actions. */ - switch ( yy_act ) { /* beginning of action switch */ + case 0: /* must back up */ + /* undo the effects of YY_DO_BEFORE_ACTION */ + *yy_cp = (yy_hold_char); + yy_cp = (yy_last_accepting_cpos); + yy_current_state = (yy_last_accepting_state); + goto yy_find_action; + case 1: YY_RULE_SETUP {if(gs_want_whitespace) RETURN_VAL((int)' '); } @@ -959,6 +1037,7 @@ {if(gs_want_whitespace) RETURN_VAL((int)' '); } YY_BREAK case 3: +/* rule 3 can match eol */ YY_RULE_SETUP {if(gs_want_whitespace) RETURN_VAL((int)'\n'); } YY_BREAK @@ -1160,23 +1239,23 @@ YY_BREAK case 53: YY_RULE_SETUP -{RETURN_VAL((int)*yytext);} +{RETURN_VAL((int)*gdb_result_text);} YY_BREAK case 54: YY_RULE_SETUP -{RETURN_VAL((int)*yytext);} +{RETURN_VAL((int)*gdb_result_text);} YY_BREAK case 55: YY_RULE_SETUP -{RETURN_VAL((int)*yytext);} +{RETURN_VAL((int)*gdb_result_text);} YY_BREAK case 56: YY_RULE_SETUP -{RETURN_VAL((int)*yytext);} +{RETURN_VAL((int)*gdb_result_text);} YY_BREAK case 57: YY_RULE_SETUP -{RETURN_VAL((int)*yytext);} +{RETURN_VAL((int)*gdb_result_text);} YY_BREAK case 58: YY_RULE_SETUP @@ -1188,7 +1267,7 @@ YY_BREAK case 60: YY_RULE_SETUP -{RETURN_VAL((int)*yytext);} +{RETURN_VAL((int)*gdb_result_text);} YY_BREAK case 61: YY_RULE_SETUP @@ -1196,14 +1275,14 @@ if(gs_ascii) { unsigned int number(0); std::stringstream s; - s << std::oct << yytext+2; + s << std::oct << gdb_result_text+2; s >> number; if(number) { gs_string += (unsigned char)number; } } else { - gs_string += yytext; + gs_string += gdb_result_text; } } YY_BREAK @@ -1252,7 +1331,7 @@ YY_BREAK case 71: YY_RULE_SETUP -{ gs_string += yytext; } +{ gs_string += gdb_result_text; } YY_BREAK case 72: YY_RULE_SETUP @@ -1260,14 +1339,14 @@ if(gs_ascii) { unsigned int number(0); std::stringstream s; - s << std::oct << yytext+2; + s << std::oct << gdb_result_text+2; s >> number; if(number) { gs_string += (unsigned char)number; } } else { - gs_string += yytext; + gs_string += gdb_result_text; } } YY_BREAK @@ -1308,40 +1387,40 @@ YY_BREAK case 80: YY_RULE_SETUP -{ gs_string += yytext; } +{ gs_string += gdb_result_text; } YY_BREAK case 81: YY_RULE_SETUP ECHO; YY_BREAK - case YY_STATE_EOF(INITIAL): - case YY_STATE_EOF(string_state): - case YY_STATE_EOF(esc_string_state): - yyterminate(); +case YY_STATE_EOF(INITIAL): +case YY_STATE_EOF(string_state): +case YY_STATE_EOF(esc_string_state): + yyterminate(); case YY_END_OF_BUFFER: { /* Amount of text matched not including the EOB char. */ - int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1; + int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1; /* Undo the effects of YY_DO_BEFORE_ACTION. */ - *yy_cp = yy_hold_char; + *yy_cp = (yy_hold_char); YY_RESTORE_YY_MORE_OFFSET - if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW ) + if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW ) { /* We're scanning a new file or input source. It's * possible that this happened because the user - * just pointed yyin at a new source and called - * yylex(). If so, then we have to assure - * consistency between yy_current_buffer and our + * just pointed gdb_result_in at a new source and called + * gdb_result_lex(). If so, then we have to assure + * consistency between YY_CURRENT_BUFFER and our * globals. Here is the right place to do so, because * this is the first action (other than possibly a * back-up) that will match for the new input source. */ - yy_n_chars = yy_current_buffer->yy_n_chars; - yy_current_buffer->yy_input_file = yyin; - yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL; + (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; + YY_CURRENT_BUFFER_LVALUE->yy_input_file = gdb_result_in; + YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; } /* Note that here we test for yy_c_buf_p "<=" to the position @@ -1351,13 +1430,13 @@ * end-of-buffer state). Contrast this with the test * in input(). */ - if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] ) + if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) { /* This was really a NUL. */ yy_state_type yy_next_state; - yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text; + (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text; - yy_current_state = yy_get_previous_state(); + yy_current_state = yy_get_previous_state( ); /* Okay, we're now positioned to make the NUL * transition. We couldn't have @@ -1370,41 +1449,41 @@ yy_next_state = yy_try_NUL_trans( yy_current_state ); - yy_bp = yytext_ptr + YY_MORE_ADJ; + yy_bp = (yytext_ptr) + YY_MORE_ADJ; if ( yy_next_state ) { /* Consume the NUL. */ - yy_cp = ++yy_c_buf_p; + yy_cp = ++(yy_c_buf_p); yy_current_state = yy_next_state; goto yy_match; } else { - yy_cp = yy_c_buf_p; + yy_cp = (yy_c_buf_p); goto yy_find_action; } } - else switch ( yy_get_next_buffer() ) + else switch ( yy_get_next_buffer( ) ) { case EOB_ACT_END_OF_FILE: { - yy_did_buffer_switch_on_eof = 0; + (yy_did_buffer_switch_on_eof) = 0; - if ( yywrap() ) + if ( gdb_result_wrap( ) ) { /* Note: because we've taken care in * yy_get_next_buffer() to have set up - * yytext, we can now set up + * gdb_result_text, we can now set up * yy_c_buf_p so that if some total * hoser (like flex itself) wants to * call the scanner after we return the * YY_NULL, it'll still work - another * YY_NULL will get returned. */ - yy_c_buf_p = yytext_ptr + YY_MORE_ADJ; + (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ; yy_act = YY_STATE_EOF(YY_START); goto do_action; @@ -1412,30 +1491,30 @@ else { - if ( ! yy_did_buffer_switch_on_eof ) + if ( ! (yy_did_buffer_switch_on_eof) ) YY_NEW_FILE; } break; } case EOB_ACT_CONTINUE_SCAN: - yy_c_buf_p = - yytext_ptr + yy_amount_of_matched_text; + (yy_c_buf_p) = + (yytext_ptr) + yy_amount_of_matched_text; - yy_current_state = yy_get_previous_state(); + yy_current_state = yy_get_previous_state( ); - yy_cp = yy_c_buf_p; - yy_bp = yytext_ptr + YY_MORE_ADJ; + yy_cp = (yy_c_buf_p); + yy_bp = (yytext_ptr) + YY_MORE_ADJ; goto yy_match; case EOB_ACT_LAST_MATCH: - yy_c_buf_p = - &yy_current_buffer->yy_ch_buf[yy_n_chars]; + (yy_c_buf_p) = + &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)]; - yy_current_state = yy_get_previous_state(); + yy_current_state = yy_get_previous_state( ); - yy_cp = yy_c_buf_p; - yy_bp = yytext_ptr + YY_MORE_ADJ; + yy_cp = (yy_c_buf_p); + yy_bp = (yytext_ptr) + YY_MORE_ADJ; goto yy_find_action; } break; @@ -1446,8 +1525,7 @@ "fatal flex scanner internal error--no action found" ); } /* end of action switch */ } /* end of scanning one token */ - } /* end of yylex */ - +} /* end of gdb_result_lex */ /* yy_get_next_buffer - try to read in a new buffer * @@ -1456,21 +1534,20 @@ * EOB_ACT_CONTINUE_SCAN - continue scanning from current position * EOB_ACT_END_OF_FILE - end of file */ - -static int yy_get_next_buffer() - { - register char *dest = yy_current_buffer->yy_ch_buf; - register char *source = yytext_ptr; +static int yy_get_next_buffer (void) +{ + register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; + register char *source = (yytext_ptr); register int number_to_move, i; int ret_val; - if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] ) + if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] ) YY_FATAL_ERROR( "fatal flex scanner internal error--end of buffer missed" ); - if ( yy_current_buffer->yy_fill_buffer == 0 ) + if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 ) { /* Don't try to fill the buffer, so this is an EOF. */ - if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 ) + if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 ) { /* We matched a single character, the EOB, so * treat this as a final EOF. @@ -1490,38 +1567,34 @@ /* Try to read more data. */ /* First move last chars to start of buffer. */ - number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1; + number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1; for ( i = 0; i < number_to_move; ++i ) *(dest++) = *(source++); - if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING ) + if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING ) /* don't do the read, it's not guaranteed to return an EOF, * just force an EOF */ - yy_current_buffer->yy_n_chars = yy_n_chars = 0; + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0; else { - int num_to_read = - yy_current_buffer->yy_buf_size - number_to_move - 1; + yy_size_t num_to_read = + YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; while ( num_to_read <= 0 ) { /* Not enough room in the buffer - grow it. */ -#ifdef YY_USES_REJECT - YY_FATAL_ERROR( -"input buffer overflow, can't enlarge buffer because scanner uses REJECT" ); -#else /* just a shorter name for the current buffer */ - YY_BUFFER_STATE b = yy_current_buffer; + YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE; int yy_c_buf_p_offset = - (int) (yy_c_buf_p - b->yy_ch_buf); + (int) ((yy_c_buf_p) - b->yy_ch_buf); if ( b->yy_is_our_buffer ) { - int new_size = b->yy_buf_size * 2; + yy_size_t new_size = b->yy_buf_size * 2; if ( new_size <= 0 ) b->yy_buf_size += b->yy_buf_size / 8; @@ -1530,8 +1603,7 @@ b->yy_ch_buf = (char *) /* Include room in for 2 EOB chars. */ - yy_flex_realloc( (void *) b->yy_ch_buf, - b->yy_buf_size + 2 ); + gdb_result_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ); } else /* Can't grow it, we don't own it. */ @@ -1541,35 +1613,35 @@ YY_FATAL_ERROR( "fatal error - scanner input buffer overflow" ); - yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset]; + (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset]; - num_to_read = yy_current_buffer->yy_buf_size - + num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; -#endif + } if ( num_to_read > YY_READ_BUF_SIZE ) num_to_read = YY_READ_BUF_SIZE; /* Read in more data. */ - YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]), - yy_n_chars, num_to_read ); + YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), + (yy_n_chars), num_to_read ); - yy_current_buffer->yy_n_chars = yy_n_chars; + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); } - if ( yy_n_chars == 0 ) + if ( (yy_n_chars) == 0 ) { if ( number_to_move == YY_MORE_ADJ ) { ret_val = EOB_ACT_END_OF_FILE; - yyrestart( yyin ); + gdb_result_restart(gdb_result_in ); } else { ret_val = EOB_ACT_LAST_MATCH; - yy_current_buffer->yy_buffer_status = + YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_EOF_PENDING; } } @@ -1577,30 +1649,40 @@ else ret_val = EOB_ACT_CONTINUE_SCAN; - yy_n_chars += number_to_move; - yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR; - yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR; + if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { + /* Extend the array by 50%, plus the number we really need. */ + yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) gdb_result_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ); + if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) + YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); + } - yytext_ptr = &yy_current_buffer->yy_ch_buf[0]; + (yy_n_chars) += number_to_move; + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR; + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR; - return ret_val; - } + (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0]; + return ret_val; +} /* yy_get_previous_state - get the state just before the EOB char was reached */ -static yy_state_type yy_get_previous_state() - { + static yy_state_type yy_get_previous_state (void) +{ register yy_state_type yy_current_state; register char *yy_cp; + + yy_current_state = (yy_start); - yy_current_state = yy_start; - yy_state_ptr = yy_state_buf; - *yy_state_ptr++ = yy_current_state; - - for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp ) + for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp ) { register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); + if ( yy_accept[yy_current_state] ) + { + (yy_last_accepting_state) = yy_current_state; + (yy_last_accepting_cpos) = yy_cp; + } while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; @@ -1608,29 +1690,27 @@ yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - *yy_state_ptr++ = yy_current_state; } return yy_current_state; - } - +} /* yy_try_NUL_trans - try to make a transition on the NUL character * * synopsis * next_state = yy_try_NUL_trans( current_state ); */ - -#ifdef YY_USE_PROTOS -static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state ) -#else -static yy_state_type yy_try_NUL_trans( yy_current_state ) -yy_state_type yy_current_state; -#endif - { + static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state ) +{ register int yy_is_jam; + register char *yy_cp = (yy_c_buf_p); register YY_CHAR yy_c = 1; + if ( yy_accept[yy_current_state] ) + { + (yy_last_accepting_state) = yy_current_state; + (yy_last_accepting_cpos) = yy_cp; + } while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; @@ -1639,86 +1719,79 @@ } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; yy_is_jam = (yy_current_state == 347); - if ( ! yy_is_jam ) - *yy_state_ptr++ = yy_current_state; - - return yy_is_jam ? 0 : yy_current_state; - } + return yy_is_jam ? 0 : yy_current_state; +} -#ifndef YY_NO_UNPUT -#ifdef YY_USE_PROTOS -static void yyunput( int c, register char *yy_bp ) -#else -static void yyunput( c, yy_bp ) -int c; -register char *yy_bp; -#endif - { - register char *yy_cp = yy_c_buf_p; + static void yyunput (int c, register char * yy_bp ) +{ + register char *yy_cp; + + yy_cp = (yy_c_buf_p); - /* undo effects of setting up yytext */ - *yy_cp = yy_hold_char; + /* undo effects of setting up gdb_result_text */ + *yy_cp = (yy_hold_char); - if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 ) + if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) { /* need to shift things up to make room */ /* +2 for EOB chars. */ - register int number_to_move = yy_n_chars + 2; - register char *dest = &yy_current_buffer->yy_ch_buf[ - yy_current_buffer->yy_buf_size + 2]; + register yy_size_t number_to_move = (yy_n_chars) + 2; + register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ + YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2]; register char *source = - &yy_current_buffer->yy_ch_buf[number_to_move]; + &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]; - while ( source > yy_current_buffer->yy_ch_buf ) + while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) *--dest = *--source; yy_cp += (int) (dest - source); yy_bp += (int) (dest - source); - yy_current_buffer->yy_n_chars = - yy_n_chars = yy_current_buffer->yy_buf_size; + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = + (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size; - if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 ) + if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) YY_FATAL_ERROR( "flex scanner push-back overflow" ); } *--yy_cp = (char) c; - if ( c == '\n' ) - --yylineno; - - yytext_ptr = yy_bp; - yy_hold_char = *yy_cp; - yy_c_buf_p = yy_cp; - } -#endif /* ifndef YY_NO_UNPUT */ - + if ( c == '\n' ){ + --gdb_result_lineno; + } + + (yytext_ptr) = yy_bp; + (yy_hold_char) = *yy_cp; + (yy_c_buf_p) = yy_cp; +} +#ifndef YY_NO_INPUT #ifdef __cplusplus -static int yyinput() + static int yyinput (void) #else -static int input() + static int input (void) #endif - { - int c; - *yy_c_buf_p = yy_hold_char; +{ + int c; + + *(yy_c_buf_p) = (yy_hold_char); - if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR ) + if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR ) { /* yy_c_buf_p now points to the character we want to return. * If this occurs *before* the EOB characters, then it's a * valid NUL; if not, then we've hit the end of the buffer. */ - if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] ) + if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) /* This was really a NUL. */ - *yy_c_buf_p = '\0'; + *(yy_c_buf_p) = '\0'; else { /* need more input */ - int offset = yy_c_buf_p - yytext_ptr; - ++yy_c_buf_p; + yy_size_t offset = (yy_c_buf_p) - (yytext_ptr); + ++(yy_c_buf_p); - switch ( yy_get_next_buffer() ) + switch ( yy_get_next_buffer( ) ) { case EOB_ACT_LAST_MATCH: /* This happens because yy_g_n_b() @@ -1732,16 +1805,16 @@ */ /* Reset buffer status. */ - yyrestart( yyin ); + gdb_result_restart(gdb_result_in ); - /* fall through */ + /*FALLTHROUGH*/ case EOB_ACT_END_OF_FILE: { - if ( yywrap() ) + if ( gdb_result_wrap( ) ) return EOF; - if ( ! yy_did_buffer_switch_on_eof ) + if ( ! (yy_did_buffer_switch_on_eof) ) YY_NEW_FILE; #ifdef __cplusplus return yyinput(); @@ -1751,174 +1824,170 @@ } case EOB_ACT_CONTINUE_SCAN: - yy_c_buf_p = yytext_ptr + offset; + (yy_c_buf_p) = (yytext_ptr) + offset; break; } } } - c = *(unsigned char *) yy_c_buf_p; /* cast for 8-bit char's */ - *yy_c_buf_p = '\0'; /* preserve yytext */ - yy_hold_char = *++yy_c_buf_p; + c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */ + *(yy_c_buf_p) = '\0'; /* preserve gdb_result_text */ + (yy_hold_char) = *++(yy_c_buf_p); if ( c == '\n' ) - ++yylineno; + + gdb_result_lineno++; +; return c; - } - - -#ifdef YY_USE_PROTOS -void yyrestart( FILE *input_file ) -#else -void yyrestart( input_file ) -FILE *input_file; -#endif - { - if ( ! yy_current_buffer ) - yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); +} +#endif /* ifndef YY_NO_INPUT */ - yy_init_buffer( yy_current_buffer, input_file ); - yy_load_buffer_state(); +/** Immediately switch to a different input stream. + * @param input_file A readable stream. + * + * @note This function does not reset the start condition to @c INITIAL . + */ + void gdb_result_restart (FILE * input_file ) +{ + + if ( ! YY_CURRENT_BUFFER ){ + gdb_result_ensure_buffer_stack (); + YY_CURRENT_BUFFER_LVALUE = + gdb_result__create_buffer(gdb_result_in,YY_BUF_SIZE ); } + gdb_result__init_buffer(YY_CURRENT_BUFFER,input_file ); + gdb_result__load_buffer_state( ); +} -#ifdef YY_USE_PROTOS -void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer ) -#else -void yy_switch_to_buffer( new_buffer ) -YY_BUFFER_STATE new_buffer; -#endif - { - if ( yy_current_buffer == new_buffer ) +/** Switch to a different input buffer. + * @param new_buffer The new input buffer. + * + */ + void gdb_result__switch_to_buffer (YY_BUFFER_STATE new_buffer ) +{ + + /* TODO. We should be able to replace this entire function body + * with + * gdb_result_pop_buffer_state(); + * gdb_result_push_buffer_state(new_buffer); + */ + gdb_result_ensure_buffer_stack (); + if ( YY_CURRENT_BUFFER == new_buffer ) return; - if ( yy_current_buffer ) + if ( YY_CURRENT_BUFFER ) { /* Flush out information for old buffer. */ - *yy_c_buf_p = yy_hold_char; - yy_current_buffer->yy_buf_pos = yy_c_buf_p; - yy_current_buffer->yy_n_chars = yy_n_chars; + *(yy_c_buf_p) = (yy_hold_char); + YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); } - yy_current_buffer = new_buffer; - yy_load_buffer_state(); + YY_CURRENT_BUFFER_LVALUE = new_buffer; + gdb_result__load_buffer_state( ); /* We don't actually know whether we did this switch during - * EOF (yywrap()) processing, but the only time this flag - * is looked at is after yywrap() is called, so it's safe + * EOF (gdb_result_wrap()) processing, but the only time this flag + * is looked at is after gdb_result_wrap() is called, so it's safe * to go ahead and always set it. */ - yy_did_buffer_switch_on_eof = 1; - } - - -#ifdef YY_USE_PROTOS -void yy_load_buffer_state( void ) -#else -void yy_load_buffer_state() -#endif - { - yy_n_chars = yy_current_buffer->yy_n_chars; - yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos; - yyin = yy_current_buffer->yy_input_file; - yy_hold_char = *yy_c_buf_p; - } + (yy_did_buffer_switch_on_eof) = 1; +} +static void gdb_result__load_buffer_state (void) +{ + (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; + (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; + gdb_result_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file; + (yy_hold_char) = *(yy_c_buf_p); +} -#ifdef YY_USE_PROTOS -YY_BUFFER_STATE yy_create_buffer( FILE *file, int size ) -#else -YY_BUFFER_STATE yy_create_buffer( file, size ) -FILE *file; -int size; -#endif - { +/** Allocate and initialize an input buffer state. + * @param file A readable stream. + * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE. + * + * @return the allocated buffer state. + */ + YY_BUFFER_STATE gdb_result__create_buffer (FILE * file, int size ) +{ YY_BUFFER_STATE b; - - b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) ); + + b = (YY_BUFFER_STATE) gdb_result_alloc(sizeof( struct yy_buffer_state ) ); if ( ! b ) - YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); + YY_FATAL_ERROR( "out of dynamic memory in gdb_result__create_buffer()" ); b->yy_buf_size = size; /* yy_ch_buf has to be 2 characters longer than the size given because * we need to put in 2 end-of-buffer characters. */ - b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 ); + b->yy_ch_buf = (char *) gdb_result_alloc(b->yy_buf_size + 2 ); if ( ! b->yy_ch_buf ) - YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); + YY_FATAL_ERROR( "out of dynamic memory in gdb_result__create_buffer()" ); b->yy_is_our_buffer = 1; - yy_init_buffer( b, file ); + gdb_result__init_buffer(b,file ); return b; - } - +} -#ifdef YY_USE_PROTOS -void yy_delete_buffer( YY_BUFFER_STATE b ) -#else -void yy_delete_buffer( b ) -YY_BUFFER_STATE b; -#endif - { +/** Destroy the buffer. + * @param b a buffer created with gdb_result__create_buffer() + * + */ + void gdb_result__delete_buffer (YY_BUFFER_STATE b ) +{ + if ( ! b ) return; - if ( b == yy_current_buffer ) - yy_current_buffer = (YY_BUFFER_STATE) 0; + if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */ + YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; if ( b->yy_is_our_buffer ) - yy_flex_free( (void *) b->yy_ch_buf ); - - yy_flex_free( (void *) b ); - } - - -#ifndef YY_ALWAYS_INTERACTIVE -#ifndef YY_NEVER_INTERACTIVE -extern int isatty YY_PROTO(( int )); -#endif -#endif + gdb_result_free((void *) b->yy_ch_buf ); -#ifdef YY_USE_PROTOS -void yy_init_buffer( YY_BUFFER_STATE b, FILE *file ) -#else -void yy_init_buffer( b, file ) -YY_BUFFER_STATE b; -FILE *file; -#endif + gdb_result_free((void *) b ); +} +/* Initializes or reinitializes a buffer. + * This function is sometimes called more than once on the same buffer, + * such as during a gdb_result_restart() or at EOF. + */ + static void gdb_result__init_buffer (YY_BUFFER_STATE b, FILE * file ) - { - yy_flush_buffer( b ); +{ + int oerrno = errno; + + gdb_result__flush_buffer(b ); b->yy_input_file = file; b->yy_fill_buffer = 1; -#if YY_ALWAYS_INTERACTIVE - b->yy_is_interactive = 1; -#else -#if YY_NEVER_INTERACTIVE - b->yy_is_interactive = 0; -#else - b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0; -#endif -#endif - } - - -#ifdef YY_USE_PROTOS -void yy_flush_buffer( YY_BUFFER_STATE b ) -#else -void yy_flush_buffer( b ) -YY_BUFFER_STATE b; -#endif + /* If b is the current buffer, then gdb_result__init_buffer was _probably_ + * called from gdb_result_restart() or through yy_get_next_buffer. + * In that case, we don't want to reset the lineno or column. + */ + if (b != YY_CURRENT_BUFFER){ + b->yy_bs_lineno = 1; + b->yy_bs_column = 0; + } + + b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0; + + errno = oerrno; +} - { - if ( ! b ) +/** Discard all buffered characters. On the next scan, YY_INPUT will be called. + * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER. + * + */ + void gdb_result__flush_buffer (YY_BUFFER_STATE b ) +{ + if ( ! b ) return; b->yy_n_chars = 0; @@ -1935,31 +2004,127 @@ b->yy_at_bol = 1; b->yy_buffer_status = YY_BUFFER_NEW; - if ( b == yy_current_buffer ) - yy_load_buffer_state(); + if ( b == YY_CURRENT_BUFFER ) + gdb_result__load_buffer_state( ); +} + +/** Pushes the new state onto the stack. The new state becomes + * the current state. This function will allocate the stack + * if necessary. + * @param new_buffer The new state. + * + */ +void gdb_result_push_buffer_state (YY_BUFFER_STATE new_buffer ) +{ + if (new_buffer == NULL) + return; + + gdb_result_ensure_buffer_stack(); + + /* This block is copied from gdb_result__switch_to_buffer. */ + if ( YY_CURRENT_BUFFER ) + { + /* Flush out information for old buffer. */ + *(yy_c_buf_p) = (yy_hold_char); + YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); + } + + /* Only push if top exists. Otherwise, replace top. */ + if (YY_CURRENT_BUFFER) + (yy_buffer_stack_top)++; + YY_CURRENT_BUFFER_LVALUE = new_buffer; + + /* copied from gdb_result__switch_to_buffer. */ + gdb_result__load_buffer_state( ); + (yy_did_buffer_switch_on_eof) = 1; +} + +/** Removes and deletes the top of the stack, if present. + * The next element becomes the new top. + * + */ +void gdb_result_pop_buffer_state (void) +{ + if (!YY_CURRENT_BUFFER) + return; + + gdb_result__delete_buffer(YY_CURRENT_BUFFER ); + YY_CURRENT_BUFFER_LVALUE = NULL; + if ((yy_buffer_stack_top) > 0) + --(yy_buffer_stack_top); + + if (YY_CURRENT_BUFFER) { + gdb_result__load_buffer_state( ); + (yy_did_buffer_switch_on_eof) = 1; } +} +/* Allocates the stack if it does not exist. + * Guarantees space for at least one push. + */ +static void gdb_result_ensure_buffer_stack (void) +{ + yy_size_t num_to_alloc; + + if (!(yy_buffer_stack)) { + + /* First allocation is just for 2 elements, since we don't know if this + * scanner will even need a stack. We use 2 instead of 1 to avoid an + * immediate realloc on the next call. + */ + num_to_alloc = 1; + (yy_buffer_stack) = (struct yy_buffer_state**)gdb_result_alloc + (num_to_alloc * sizeof(struct yy_buffer_state*) + ); + if ( ! (yy_buffer_stack) ) + YY_FATAL_ERROR( "out of dynamic memory in gdb_result_ensure_buffer_stack()" ); + + memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); + + (yy_buffer_stack_max) = num_to_alloc; + (yy_buffer_stack_top) = 0; + return; + } -#ifndef YY_NO_SCAN_BUFFER -#ifdef YY_USE_PROTOS -YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size ) -#else -YY_BUFFER_STATE yy_scan_buffer( base, size ) -char *base; -yy_size_t size; -#endif - { - YY_BUFFER_STATE b; + if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){ + /* Increase the buffer to prepare for a possible push. */ + int grow_size = 8 /* arbitrary grow size */; + + num_to_alloc = (yy_buffer_stack_max) + grow_size; + (yy_buffer_stack) = (struct yy_buffer_state**)gdb_result_realloc + ((yy_buffer_stack), + num_to_alloc * sizeof(struct yy_buffer_state*) + ); + if ( ! (yy_buffer_stack) ) + YY_FATAL_ERROR( "out of dynamic memory in gdb_result_ensure_buffer_stack()" ); + + /* zero only the new slots.*/ + memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*)); + (yy_buffer_stack_max) = num_to_alloc; + } +} + +/** Setup the input buffer state to scan directly from a user-specified character buffer. + * @param base the character buffer + * @param size the size in bytes of the character buffer + * + * @return the newly allocated buffer state object. + */ +YY_BUFFER_STATE gdb_result__scan_buffer (char * base, yy_size_t size ) +{ + YY_BUFFER_STATE b; + if ( size < 2 || base[size-2] != YY_END_OF_BUFFER_CHAR || base[size-1] != YY_END_OF_BUFFER_CHAR ) /* They forgot to leave room for the EOB's. */ return 0; - b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) ); + b = (YY_BUFFER_STATE) gdb_result_alloc(sizeof( struct yy_buffer_state ) ); if ( ! b ) - YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" ); + YY_FATAL_ERROR( "out of dynamic memory in gdb_result__scan_buffer()" ); b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ b->yy_buf_pos = b->yy_ch_buf = base; @@ -1971,58 +2136,53 @@ b->yy_fill_buffer = 0; b->yy_buffer_status = YY_BUFFER_NEW; - yy_switch_to_buffer( b ); + gdb_result__switch_to_buffer(b ); return b; - } -#endif - - -#ifndef YY_NO_SCAN_STRING -#ifdef YY_USE_PROTOS -YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str ) -#else -YY_BUFFER_STATE yy_scan_string( yy_str ) -yyconst char *yy_str; -#endif - { - int len; - for ( len = 0; yy_str[len]; ++len ) - ; - - return yy_scan_bytes( yy_str, len ); - } -#endif +} +/** Setup the input buffer state to scan a string. The next call to gdb_result_lex() will + * scan from a @e copy of @a str. + * @param yystr a NUL-terminated string to scan + * + * @return the newly allocated buffer state object. + * @note If you want to scan bytes that may contain NUL values, then use + * gdb_result__scan_bytes() instead. + */ +YY_BUFFER_STATE gdb_result__scan_string (yyconst char * yystr ) +{ + + return gdb_result__scan_bytes(yystr,strlen(yystr) ); +} -#ifndef YY_NO_SCAN_BYTES -#ifdef YY_USE_PROTOS -YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len ) -#else -YY_BUFFER_STATE yy_scan_bytes( bytes, len ) -yyconst char *bytes; -int len; -#endif - { +/** Setup the input buffer state to scan the given bytes. The next call to gdb_result_lex() will + * scan from a @e copy of @a bytes. + * @param yybytes the byte buffer to scan + * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes. + * + * @return the newly allocated buffer state object. + */ +YY_BUFFER_STATE gdb_result__scan_bytes (yyconst char * yybytes, yy_size_t _yybytes_len ) +{ YY_BUFFER_STATE b; char *buf; yy_size_t n; - int i; - + yy_size_t i; + /* Get memory for full buffer, including space for trailing EOB's. */ - n = len + 2; - buf = (char *) yy_flex_alloc( n ); + n = _yybytes_len + 2; + buf = (char *) gdb_result_alloc(n ); if ( ! buf ) - YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" ); + YY_FATAL_ERROR( "out of dynamic memory in gdb_result__scan_bytes()" ); - for ( i = 0; i < len; ++i ) - buf[i] = bytes[i]; + for ( i = 0; i < _yybytes_len; ++i ) + buf[i] = yybytes[i]; - buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR; + buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR; - b = yy_scan_buffer( buf, n ); + b = gdb_result__scan_buffer(buf,n ); if ( ! b ) - YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" ); + YY_FATAL_ERROR( "bad buffer in gdb_result__scan_bytes()" ); /* It's okay to grow etc. this buffer, and we should throw it * away when we're done. @@ -2030,148 +2190,199 @@ b->yy_is_our_buffer = 1; return b; - } -#endif - +} -#ifndef YY_NO_PUSH_STATE -#ifdef YY_USE_PROTOS -static void yy_push_state( int new_state ) -#else -static void yy_push_state( new_state ) -int new_state; +#ifndef YY_EXIT_FAILURE +#define YY_EXIT_FAILURE 2 #endif - { - if ( yy_start_stack_ptr >= yy_start_stack_depth ) - { - yy_size_t new_size; - yy_start_stack_depth += YY_START_STACK_INCR; - new_size = yy_start_stack_depth * sizeof( int ); +static void yy_fatal_error (yyconst char* msg ) +{ + (void) fprintf( stderr, "%s\n", msg ); + exit( YY_EXIT_FAILURE ); +} - if ( ! yy_start_stack ) - yy_start_stack = (int *) yy_flex_alloc( new_size ); +/* Redefine yyless() so it works in section 3 code. */ - else - yy_start_stack = (int *) yy_flex_realloc( - (void *) yy_start_stack, new_size ); +#undef yyless +#define yyless(n) \ + do \ + { \ + /* Undo effects of setting up gdb_result_text. */ \ + int yyless_macro_arg = (n); \ + YY_LESS_LINENO(yyless_macro_arg);\ + gdb_result_text[gdb_result_leng] = (yy_hold_char); \ + (yy_c_buf_p) = gdb_result_text + yyless_macro_arg; \ + (yy_hold_char) = *(yy_c_buf_p); \ + *(yy_c_buf_p) = '\0'; \ + gdb_result_leng = yyless_macro_arg; \ + } \ + while ( 0 ) - if ( ! yy_start_stack ) - YY_FATAL_ERROR( - "out of memory expanding start-condition stack" ); - } +/* Accessor methods (get/set functions) to struct members. */ - yy_start_stack[yy_start_stack_ptr++] = YY_START; +/** Get the current line number. + * + */ +int gdb_result_get_lineno (void) +{ + + return gdb_result_lineno; +} - BEGIN(new_state); - } -#endif +/** Get the input stream. + * + */ +FILE *gdb_result_get_in (void) +{ + return gdb_result_in; +} +/** Get the output stream. + * + */ +FILE *gdb_result_get_out (void) +{ + return gdb_result_out; +} -#ifndef YY_NO_POP_STATE -static void yy_pop_state() - { - if ( --yy_start_stack_ptr < 0 ) - YY_FATAL_ERROR( "start-condition stack underflow" ); +/** Get the length of the current token. + * + */ +yy_size_t gdb_result_get_leng (void) +{ + return gdb_result_leng; +} - BEGIN(yy_start_stack[yy_start_stack_ptr]); - } -#endif +/** Get the current token. + * + */ +char *gdb_result_get_text (void) +{ + return gdb_result_text; +} -#ifndef YY_NO_TOP_STATE -static int yy_top_state() - { - return yy_start_stack[yy_start_stack_ptr - 1]; - } -#endif +/** Set the current line number. + * @param line_number + * + */ +void gdb_result_set_lineno (int line_number ) +{ + + gdb_result_lineno = line_number; +} -#ifndef YY_EXIT_FAILURE -#define YY_EXIT_FAILURE 2 -#endif +/** Set the input stream. This does not discard the current + * input buffer. + * @param in_str A readable stream. + * + * @see gdb_result__switch_to_buffer + */ +void gdb_result_set_in (FILE * in_str ) +{ + gdb_result_in = in_str ; +} -#ifdef YY_USE_PROTOS -static void yy_fatal_error( yyconst char msg[] ) -#else -static void yy_fatal_error( msg ) -char msg[]; -#endif - { - (void) fprintf( stderr, "%s\n", msg ); - exit( YY_EXIT_FAILURE ); - } +void gdb_result_set_out (FILE * out_str ) +{ + gdb_result_out = out_str ; +} +int gdb_result_get_debug (void) +{ + return gdb_result__flex_debug; +} +void gdb_result_set_debug (int bdebug ) +{ + gdb_result__flex_debug = bdebug ; +} -/* Redefine yyless() so it works in section 3 code. */ +static int yy_init_globals (void) +{ + /* Initialization is the same as for the non-reentrant scanner. + * This function is called from gdb_result_lex_destroy(), so don't allocate here. + */ + + /* We do not touch gdb_result_lineno unless the option is enabled. */ + gdb_result_lineno = 1; + + (yy_buffer_stack) = 0; + (yy_buffer_stack_top) = 0; + (yy_buffer_stack_max) = 0; + (yy_c_buf_p) = (char *) 0; + (yy_init) = 0; + (yy_start) = 0; + +/* Defined in main.c */ +#ifdef YY_STDINIT + gdb_result_in = stdin; + gdb_result_out = stdout; +#else + gdb_result_in = (FILE *) 0; + gdb_result_out = (FILE *) 0; +#endif + + /* For future reference: Set errno on error, since we are called by + * gdb_result_lex_init() + */ + return 0; +} -#undef yyless -#define yyless(n) \ - do \ - { \ - /* Undo effects of setting up yytext. */ \ - yytext[yyleng] = yy_hold_char; \ - yy_c_buf_p = yytext + n; \ - yy_hold_char = *yy_c_buf_p; \ - *yy_c_buf_p = '\0'; \ - yyleng = n; \ - } \ - while ( 0 ) +/* gdb_result_lex_destroy is for both reentrant and non-reentrant scanners. */ +int gdb_result_lex_destroy (void) +{ + + /* Pop the buffer stack, destroying each element. */ + while(YY_CURRENT_BUFFER){ + gdb_result__delete_buffer(YY_CURRENT_BUFFER ); + YY_CURRENT_BUFFER_LVALUE = NULL; + gdb_result_pop_buffer_state(); + } + + /* Destroy the stack itself. */ + gdb_result_free((yy_buffer_stack) ); + (yy_buffer_stack) = NULL; + + /* Reset the globals. This is important in a non-reentrant scanner so the next time + * gdb_result_lex() is called, initialization will occur. */ + yy_init_globals( ); + return 0; +} -/* Internal utility routines. */ +/* + * Internal utility routines. + */ #ifndef yytext_ptr -#ifdef YY_USE_PROTOS -static void yy_flex_strncpy( char *s1, yyconst char *s2, int n ) -#else -static void yy_flex_strncpy( s1, s2, n ) -char *s1; -yyconst char *s2; -int n; -#endif - { +static void yy_flex_strncpy (char* s1, yyconst char * s2, int n ) +{ register int i; for ( i = 0; i < n; ++i ) s1[i] = s2[i]; - } +} #endif #ifdef YY_NEED_STRLEN -#ifdef YY_USE_PROTOS -static int yy_flex_strlen( yyconst char *s ) -#else -static int yy_flex_strlen( s ) -yyconst char *s; -#endif - { +static int yy_flex_strlen (yyconst char * s ) +{ register int n; for ( n = 0; s[n]; ++n ) ; return n; - } +} #endif - -#ifdef YY_USE_PROTOS -static void *yy_flex_alloc( yy_size_t size ) -#else -static void *yy_flex_alloc( size ) -yy_size_t size; -#endif - { +void *gdb_result_alloc (yy_size_t size ) +{ return (void *) malloc( size ); - } +} -#ifdef YY_USE_PROTOS -static void *yy_flex_realloc( void *ptr, yy_size_t size ) -#else -static void *yy_flex_realloc( ptr, size ) -void *ptr; -yy_size_t size; -#endif - { +void *gdb_result_realloc (void * ptr, yy_size_t size ) +{ /* The cast to (char *) in the following accommodates both * implementations that use char* generic pointers, and those * that use void* generic pointers. It works with the latter @@ -2180,32 +2391,20 @@ * as though doing an assignment. */ return (void *) realloc( (char *) ptr, size ); - } - -#ifdef YY_USE_PROTOS -static void yy_flex_free( void *ptr ) -#else -static void yy_flex_free( ptr ) -void *ptr; -#endif - { - free( ptr ); - } +} -#if YY_MAIN -int main() - { - yylex(); - return 0; - } -#endif +void gdb_result_free (void * ptr ) +{ + free( (char *) ptr ); /* see gdb_result_realloc() for (char *) cast */ +} +#define YYTABLES_NAME "yytables" /*******************************************************************/ void gdb_result_lex_clean() { - yy_flush_buffer(YY_CURRENT_BUFFER); - yy_delete_buffer(YY_CURRENT_BUFFER); + gdb_result__flush_buffer(YY_CURRENT_BUFFER); + gdb_result__delete_buffer(YY_CURRENT_BUFFER); gdb_result_lineno = 1; gs_ascii = false; gs_want_whitespace = false; @@ -2215,11 +2414,11 @@ BEGIN INITIAL; gs_ascii = ascii; gs_want_whitespace = wantWhitespace; - yy_scan_string(in.c_str()); + gdb_result__scan_string(in.c_str()); return true; } -int yywrap(){ +int gdb_result_wrap(){ return 1; } @@ -2232,18 +2431,19 @@ gs_bufferStack.push_back(YY_CURRENT_BUFFER); // create new buffer and use it - yy_switch_to_buffer( yy_scan_string(new_input.c_str()) ); + gdb_result__switch_to_buffer(gdb_result__scan_string(new_input.c_str()) ); } void gdb_result_pop_buffer(){ // clean current buffer - yy_delete_buffer(YY_CURRENT_BUFFER); + gdb_result__delete_buffer(YY_CURRENT_BUFFER); // create new buffer and use it - yy_switch_to_buffer( gs_bufferStack.back() ); + gdb_result__switch_to_buffer(gs_bufferStack.back() ); gs_bufferStack.pop_back(); } void gdb_result_error(const char* msg) { } + diff -Nru codelite-8.0.1+dfsg2/Debugger/gdb_result_parser.cpp codelite-9.0+dfsg/Debugger/gdb_result_parser.cpp --- codelite-8.0.1+dfsg2/Debugger/gdb_result_parser.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Debugger/gdb_result_parser.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -118,176 +118,184 @@ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 16, 2, 2, 2, 14, 19, 14, 17, 20, 17, 12, 12, 15, 15, 21, 21, 22, 22, 13, - 13, 23, 24, 23, 11, 11, 10, 10, 5, 5, - 7, 7, 6, 6, 8, 26, 8, 8, 27, 8, - 8, 18, 18, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, + 13, 24, 23, 23, 11, 11, 10, 10, 5, 5, + 7, 7, 6, 6, 25, 25, 8, 27, 8, 8, + 28, 8, 8, 8, 8, 18, 18, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, }; short gdb_result_len[] = { 2, 1, 2, 0, 2, 1, 0, 4, 13, 17, 0, 9, 8, 6, 8, 8, 8, 20, 20, 9, 8, 8, 0, 9, 8, 1, 3, 0, 6, 3, 0, 6, 13, 5, 1, 3, 3, 5, 3, 5, 6, - 2, 5, 0, 8, 5, 7, 3, 5, 1, 1, - 1, 1, 5, 7, 3, 0, 6, 3, 0, 6, - 5, 11, 5, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, + 2, 3, 1, 3, 5, 7, 3, 5, 1, 1, + 1, 1, 5, 7, 1, 3, 3, 0, 6, 3, + 0, 6, 5, 7, 5, 11, 5, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, }; short gdb_result_defred[] = { 0, 5, 0, 1, 0, 2, 0, 0, 4, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 67, 64, 70, 69, 65, 66, 68, 0, 71, 72, - 73, 0, 76, 77, 75, 74, 0, 78, 0, 0, - 50, 49, 0, 0, 0, 0, 0, 0, 0, 0, + 71, 68, 74, 73, 69, 70, 72, 0, 75, 76, + 77, 0, 80, 81, 79, 78, 0, 82, 0, 0, + 49, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 58, 59, 0, - 0, 0, 12, 52, 51, 20, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 12, 51, 52, 20, 0, 0, 0, 0, 14, 0, 16, 15, 0, 0, 0, 0, 0, 0, 0, 24, 0, 21, 0, 0, 0, 0, 0, 0, - 0, 11, 0, 47, 0, 0, 0, 0, 0, 0, - 0, 0, 41, 19, 0, 0, 0, 23, 61, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 35, 60, 62, 57, 0, 45, - 48, 0, 0, 0, 0, 0, 33, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 31, 28, 0, 46, 0, 0, 0, 8, 0, 0, - 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 53, 0, 0, 0, 0, 0, 0, 0, 7, 0, - 0, 44, 0, 0, 54, 9, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 32, 17, 18, 0, 0, - 0, 0, 0, 37, 39, + 0, 0, 0, 11, 0, 47, 0, 0, 0, 0, + 0, 0, 0, 0, 41, 0, 19, 0, 0, 0, + 23, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 35, 62, 56, 0, 66, 59, 0, 45, 48, 0, + 0, 0, 0, 0, 33, 0, 42, 44, 0, 0, + 64, 0, 0, 0, 0, 0, 0, 0, 0, 31, + 28, 0, 46, 0, 0, 0, 8, 0, 0, 40, + 0, 0, 0, 0, 0, 0, 0, 53, 0, 0, + 0, 0, 0, 0, 7, 0, 0, 0, 0, 54, + 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 32, 17, 18, 0, 0, 0, 0, 0, 37, 39, }; short gdb_result_dgoto[] = { 2, - 3, 8, 4, 198, 92, 174, 106, 59, 107, 85, - 86, 91, 120, 95, 126, 96, 93, 9, 164, 163, - 231, 235, 143, 209, 60, 130, 128, + 3, 8, 4, 207, 92, 182, 106, 59, 107, 85, + 86, 91, 120, 95, 126, 96, 93, 9, 170, 169, + 236, 240, 145, 146, 130, 60, 132, 128, }; -short gdb_result_sindex[] = { -229, - 0, -229, 0, -94, 0, -6, -210, 0, 0, -253, - 4, -9, -1, -84, -74, -212, 6, 9, 11, 17, - 18, 19, 21, 22, 24, 25, 26, -72, 0, -69, - -203, -69, -179, -69, -69, -178, -69, -69, -69, -69, - 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, - 0, 37, 0, 0, 0, 0, 38, 0, -24, 41, - 0, 0, -162, 62, -72, 64, -116, -8, 70, -250, - -69, -69, 0, -7, 27, 30, 73, -145, 63, -72, - -63, 0, 67, -72, -34, -25, -34, -261, 69, 71, - 79, -72, -63, -72, -63, -142, -72, 0, 0, -163, - 0, -69, 0, 0, 0, 0, -72, 10, 12, 15, - 0, -151, 0, 0, 78, 80, -127, -69, -247, -63, - -63, 0, -63, 0, 98, -63, 20, 99, 85, 103, - -120, 0, -72, 0, -72, 89, -69, -115, 107, -142, - 96, 105, 0, 0, 0, 0, -142, 0, 0, -72, - -107, -72, 109, 39, 43, 48, -109, 131, -112, -63, - -69, -69, 133, 136, 0, 0, 0, 0, -82, 0, - 0, -72, 122, -20, -92, 127, 0, -99, -72, -69, - -69, 153, 74, 77, -76, 165, 149, -55, -63, -63, - 0, 0, -51, 0, -72, 154, -83, 0, -69, 173, - 0, 0, 157, 94, 100, 171, -109, -53, 190, -69, - 0, -72, -30, -20, 177, -99, -116, 114, 0, 165, - -69, 0, -34, -25, 0, 0, -69, -63, -63, -36, - -63, -63, -63, 180, -63, 0, 0, 0, -22, 198, - 199, -69, -36, 0, 0, +short gdb_result_sindex[] = { -241, + 0, -241, 0, -94, 0, -15, -216, 0, 0, -243, + 4, -17, -8, 17, -69, -212, -4, -3, 11, 15, + 16, 18, 19, 20, 21, 22, 23, -29, 0, -74, + -203, -74, -202, -74, -74, -201, -74, -74, -74, -74, + 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, + 0, 26, 0, 0, 0, 0, 27, 0, -47, 28, + 0, 0, -162, 60, -29, 64, -115, -13, 67, -251, + -74, -74, 0, -10, 29, 30, 70, -152, 55, -29, + -73, 0, 57, -29, -34, -33, -34, -269, 63, 66, + 81, -29, -73, -29, -73, -136, -29, 0, -134, -160, + 0, -74, 0, 0, 0, 0, -29, 12, 13, 14, + 0, -149, 0, 0, 78, 79, -126, -74, -119, -73, + -73, 0, -73, 0, 98, -73, 31, 99, 100, 52, + 85, 103, -120, 0, -29, 0, -29, 88, -74, -117, + 107, -136, 91, -29, 0, 109, 0, 0, 0, -136, + 0, 0, -29, -134, 110, -112, -29, 96, 33, 34, + 38, -118, 119, -122, -73, 76, 47, 50, 133, 135, + 0, 0, 0, -29, 0, 0, -81, 0, 0, -29, + 127, -32, -93, 129, 0, 50, 0, 0, -74, -74, + 0, 147, 68, 71, -88, 152, 136, -65, 111, 0, + 0, -61, 0, -29, 145, -90, 0, -74, 164, 0, + 148, 87, 90, 149, -118, -75, -74, 0, -29, -52, + -32, 156, -115, 93, 0, 152, -74, -34, -33, 0, + 0, -74, -73, -73, -57, -73, -73, -73, 159, -73, + 0, 0, 0, -46, 178, 179, -74, -57, 0, 0, }; -short gdb_result_rindex[] = { -89, - 0, -89, 0, 0, 0, 0, 0, 0, 0, 0, +short gdb_result_rindex[] = { -92, + 0, -92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, + 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, -63, 0, 0, 0, 131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, -62, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, -62, 0, -19, -18, 0, + 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, -18, -16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -12, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, + 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, -60, - -59, 0, 0, 0, 0, + 0, 0, 0, 0, -56, -54, 0, 0, 0, 0, }; short gdb_result_gindex[] = { 0, - 242, 0, 0, 28, -26, 40, -70, -23, 0, -50, - 29, 0, 0, 68, -111, 0, 72, 0, 0, 0, - 8, 13, -158, 0, 0, 0, 0, + 223, 0, 0, 2, -16, 35, -53, 25, 0, -59, + 9, 0, 0, 36, -107, 0, 41, 0, 0, 0, + -20, -12, -140, 0, 84, 0, 0, 0, }; -#define YYTABLESIZE 295 +#define YYTABLESIZE 323 short gdb_result_table[] = { 7, - 55, 13, 6, 63, 3, 65, 84, 67, 68, 110, - 70, 71, 72, 73, 111, 113, 114, 87, 112, 189, - 115, 62, 122, 185, 124, 30, 1, 27, 160, 105, - 34, 43, 36, 38, 116, 165, 89, 10, 90, 12, - 13, 81, 141, 142, 56, 94, 11, 14, 28, 144, - 145, 15, 146, 61, 29, 148, 103, 222, 105, 16, - 109, 104, 34, 64, 36, 38, 30, 105, 121, 31, - 123, 32, 105, 127, 29, 131, 26, 33, 34, 35, - 42, 36, 37, 132, 38, 39, 40, 66, 69, 177, - 104, 140, 74, 55, 55, 13, 6, 75, 76, 104, - 77, 78, 79, 186, 104, 80, 29, 82, 26, 154, - 157, 155, 42, 88, 84, 97, 100, 98, 201, 202, - 99, 101, 119, 102, 125, 55, 166, 108, 168, 117, - 129, 118, 133, 136, 178, 179, 134, 135, 137, 139, - 138, 147, 150, 220, 149, 151, 152, 153, 183, 156, - 159, 158, 228, 229, 94, 190, 161, 232, 233, 167, - 236, 237, 238, 170, 240, 162, 223, 171, 83, 169, - 172, 204, 207, 173, 175, 176, 180, 17, 18, 181, - 19, 20, 184, 217, 182, 21, 22, 188, 218, 187, - 41, 142, 23, 42, 227, 43, 193, 6, 194, 195, - 230, 24, 3, 44, 45, 46, 196, 47, 197, 199, - 25, 200, 203, 206, 205, 230, 208, 210, 211, 26, - 48, 27, 212, 49, 50, 51, 52, 53, 54, 55, - 56, 213, 57, 216, 58, 215, 219, 221, 225, 234, - 239, 242, 243, 5, 241, 224, 214, 226, 192, 244, - 0, 191, 0, 0, 0, 245, 55, 13, 6, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 55, 13, 6, + 60, 3, 57, 144, 63, 13, 6, 84, 87, 110, + 112, 195, 115, 63, 1, 65, 61, 67, 68, 104, + 70, 71, 72, 73, 30, 27, 116, 188, 10, 34, + 43, 111, 113, 114, 165, 89, 36, 90, 38, 122, + 11, 124, 171, 15, 61, 199, 58, 14, 62, 12, + 13, 105, 16, 28, 29, 94, 30, 31, 104, 104, + 104, 34, 43, 64, 66, 69, 147, 148, 36, 149, + 38, 32, 151, 29, 26, 33, 34, 77, 35, 36, + 37, 38, 39, 40, 74, 133, 75, 76, 78, 81, + 105, 105, 105, 60, 60, 57, 57, 63, 63, 13, + 6, 142, 79, 80, 103, 29, 26, 82, 109, 84, + 88, 185, 97, 100, 101, 102, 121, 108, 123, 98, + 99, 127, 162, 117, 119, 60, 118, 57, 196, 63, + 125, 134, 129, 131, 135, 138, 137, 136, 139, 140, + 141, 150, 153, 154, 155, 156, 157, 158, 161, 163, + 164, 166, 168, 174, 175, 152, 177, 178, 179, 159, + 180, 160, 183, 228, 181, 184, 186, 226, 167, 83, + 143, 187, 144, 94, 233, 234, 189, 172, 190, 237, + 238, 176, 241, 242, 243, 192, 245, 194, 197, 198, + 202, 215, 203, 204, 205, 206, 208, 6, 191, 3, + 223, 209, 211, 210, 193, 213, 214, 216, 217, 220, + 232, 218, 219, 222, 225, 235, 227, 230, 239, 244, + 246, 247, 248, 55, 5, 201, 249, 231, 212, 200, + 235, 229, 0, 41, 0, 250, 42, 173, 43, 0, + 0, 0, 0, 224, 0, 0, 44, 45, 46, 221, + 47, 0, 0, 0, 0, 0, 60, 0, 57, 0, + 63, 13, 6, 48, 0, 0, 49, 50, 51, 52, + 53, 54, 55, 56, 0, 57, 0, 58, 17, 18, + 0, 19, 20, 0, 0, 0, 21, 22, 0, 0, + 0, 0, 60, 23, 57, 0, 63, 13, 6, 0, + 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, + 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, + 26, 0, 27, }; short gdb_result_check[] = { 94, - 0, 0, 0, 30, 94, 32, 123, 34, 35, 44, - 37, 38, 39, 40, 85, 86, 87, 68, 44, 178, - 282, 91, 93, 44, 95, 44, 256, 44, 140, 93, - 93, 44, 93, 93, 296, 147, 287, 44, 289, 293, - 294, 65, 290, 291, 44, 72, 257, 44, 123, 120, - 121, 61, 123, 123, 267, 126, 80, 216, 93, 61, - 84, 125, 125, 267, 125, 125, 61, 93, 92, 61, - 94, 61, 93, 97, 93, 102, 93, 61, 61, 61, - 93, 61, 61, 107, 61, 61, 61, 267, 267, 160, - 125, 118, 61, 93, 94, 94, 94, 61, 61, 125, - 125, 61, 265, 174, 125, 44, 125, 44, 125, 133, - 137, 135, 125, 44, 123, 123, 44, 91, 189, 190, - 91, 267, 44, 61, 267, 125, 150, 61, 152, 61, - 294, 61, 123, 285, 161, 162, 125, 123, 61, 267, - 61, 44, 44, 214, 125, 61, 44, 268, 172, 61, - 44, 267, 223, 224, 181, 179, 61, 228, 229, 267, - 231, 232, 233, 125, 235, 61, 217, 125, 285, 61, - 123, 195, 199, 283, 44, 288, 44, 262, 263, 44, - 265, 266, 61, 210, 267, 270, 271, 61, 212, 282, - 263, 291, 277, 266, 221, 268, 44, 292, 125, 123, - 227, 286, 292, 276, 277, 278, 283, 280, 44, 61, - 295, 267, 264, 297, 61, 242, 44, 61, 125, 304, - 293, 306, 123, 296, 297, 298, 299, 300, 301, 302, - 303, 61, 305, 44, 307, 289, 267, 61, 125, 276, - 61, 44, 44, 2, 267, 217, 207, 220, 181, 242, - -1, 180, -1, -1, -1, 243, 256, 256, 256, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 292, 292, 292, + 0, 94, 0, 123, 0, 0, 0, 123, 68, 44, + 44, 44, 282, 30, 256, 32, 91, 34, 35, 93, + 37, 38, 39, 40, 44, 44, 296, 168, 44, 93, + 93, 85, 86, 87, 142, 287, 93, 289, 93, 93, + 257, 95, 150, 61, 44, 186, 44, 44, 123, 293, + 294, 125, 61, 123, 267, 72, 61, 61, 93, 93, + 93, 125, 125, 267, 267, 267, 120, 121, 125, 123, + 125, 61, 126, 93, 93, 61, 61, 125, 61, 61, + 61, 61, 61, 61, 61, 102, 61, 61, 61, 65, + 125, 125, 125, 93, 94, 93, 94, 93, 94, 94, + 94, 118, 265, 44, 80, 125, 125, 44, 84, 123, + 44, 165, 123, 44, 267, 61, 92, 61, 94, 91, + 91, 97, 139, 61, 44, 125, 61, 125, 182, 125, + 267, 107, 267, 294, 123, 285, 123, 125, 61, 61, + 267, 44, 44, 44, 93, 61, 44, 268, 61, 267, + 44, 61, 44, 44, 267, 125, 61, 125, 125, 135, + 123, 137, 44, 223, 283, 288, 91, 221, 144, 285, + 290, 125, 123, 190, 228, 229, 44, 153, 44, 233, + 234, 157, 236, 237, 238, 267, 240, 61, 282, 61, + 44, 208, 125, 123, 283, 44, 61, 292, 174, 292, + 217, 267, 264, 93, 180, 61, 297, 44, 61, 61, + 227, 125, 123, 289, 267, 232, 61, 125, 276, 61, + 267, 44, 44, 93, 2, 190, 247, 226, 204, 189, + 247, 223, -1, 263, -1, 248, 266, 154, 268, -1, + -1, -1, -1, 219, -1, -1, 276, 277, 278, 215, + 280, -1, -1, -1, -1, -1, 256, -1, 256, -1, + 256, 256, 256, 293, -1, -1, 296, 297, 298, 299, + 300, 301, 302, 303, -1, 305, -1, 307, 262, 263, + -1, 265, 266, -1, -1, -1, 270, 271, -1, -1, + -1, -1, 292, 277, 292, -1, 292, 292, 292, -1, + -1, -1, 286, -1, -1, -1, -1, -1, -1, -1, + -1, 295, -1, -1, -1, -1, -1, -1, -1, -1, + 304, -1, 306, }; #define YYFINAL 2 #ifndef YYDEBUG @@ -355,11 +363,11 @@ "bpt_hdr_table_description : list_open bpt_table_description_attr list_close ',' bpt_hdr_table_description", "bpt_table_description_attr : GDB_IDENTIFIER '=' GDB_STRING", "bpt_table_description_attr : GDB_IDENTIFIER '=' GDB_STRING ',' bpt_table_description_attr", -"bpt_table_body : ',' GDB_BODY '=' list_open breakpoints list_close", +"bpt_table_body : ',' GDB_BODY '=' '[' breakpoints ']'", "bpt_table_body : ',' breakpoints", -"breakpoints : GDB_BKPT '=' list_open child_attributes list_close", -"$$6 :", -"breakpoints : GDB_BKPT '=' list_open child_attributes list_close $$6 ',' breakpoints", +"bp_internal : '{' child_attributes '}'", +"breakpoints : bp_internal", +"breakpoints : bp_internal ',' breakpoints", "mac_locals : GDB_VAROBJ '=' '{' child_attributes '}'", "mac_locals : mac_locals ',' GDB_VAROBJ '=' '{' child_attributes '}'", "locals : '{' child_attributes '}'", @@ -370,12 +378,16 @@ "list_close : '}'", "children : GDB_CHILD '=' '{' child_attributes '}'", "children : children ',' GDB_CHILD '=' '{' child_attributes '}'", +"string_list : GDB_STRING", +"string_list : GDB_STRING ',' string_list", "child_attributes : child_key '=' GDB_STRING", -"$$7 :", -"child_attributes : child_key '=' GDB_STRING $$7 ',' child_attributes", +"$$6 :", +"child_attributes : child_key '=' GDB_STRING $$6 ',' child_attributes", "child_attributes : GDB_NEW_CHILDREN '=' '['", -"$$8 :", -"child_attributes : GDB_THREAD_GROUPS '=' '[' $$8 ',' child_attributes", +"$$7 :", +"child_attributes : GDB_NEW_CHILDREN '=' '[' $$7 ',' child_attributes", +"child_attributes : GDB_THREAD_GROUPS '=' '[' string_list ']'", +"child_attributes : GDB_THREAD_GROUPS '=' '[' string_list ']' ',' child_attributes", "child_attributes : GDB_TIME '=' '{' child_attributes '}'", "stop_statement : GDB_STOPPED ',' GDB_TIME '=' '{' child_attributes '}' ',' GDB_REASON '=' GDB_STRING", "stop_statement : GDB_STOPPED ',' GDB_REASON '=' GDB_STRING", @@ -432,6 +444,7 @@ void gdbConsumeList() { + printf("Consume List is called\n"); int depth = 1; while(depth > 0) { int ch = gdb_result_lex(); @@ -440,9 +453,8 @@ } if(ch == ']') { depth--; - continue; - } else if(ch == ']') { - depth ++ ; + } else if(ch == '[') { + depth++; continue; } } @@ -614,7 +626,7 @@ break; case 5: { - /*printf("CodeLite: syntax error, unexpected token '%s' found\n", gdb_result_lval.c_str());*/ + printf("CodeLite: syntax error, unexpected token '%s' found\n", gdb_result_lval.c_str()); } break; case 7: @@ -692,9 +704,6 @@ case 42: { sg_children.push_back( sg_attributes ); sg_attributes.clear();} break; -case 43: -{ sg_children.push_back( sg_attributes ); sg_attributes.clear();} -break; case 45: { sg_children.push_back( sg_attributes ); @@ -722,7 +731,7 @@ case 54: {sg_children.push_back( sg_attributes ); sg_attributes.clear(); } break; -case 55: +case 57: { if ( yyvsp[-2] == "has_more" || yyvsp[-2] == "dynamic" ) { sg_children.has_more = (yyvsp[0] == "\"1\""); @@ -733,39 +742,27 @@ } } break; -case 56: +case 58: { sg_attributes[yyvsp[-2]] = yyvsp[0];} break; -case 58: +case 60: { gdbConsumeList(); } break; -case 59: +case 61: { gdbConsumeList(); } break; -case 62: +case 66: { sg_attributes["reason"] = yyvsp[0]; sg_children.push_back( sg_attributes ); } break; -case 63: +case 67: { sg_attributes["reason"] = yyvsp[0]; sg_children.push_back( sg_attributes ); } break; -case 64: -{yyval = yyvsp[0];} -break; -case 65: -{yyval = yyvsp[0];} -break; -case 66: -{yyval = yyvsp[0];} -break; -case 67: -{yyval = yyvsp[0];} -break; case 68: {yyval = yyvsp[0];} break; @@ -799,6 +796,18 @@ case 78: {yyval = yyvsp[0];} break; +case 79: +{yyval = yyvsp[0];} +break; +case 80: +{yyval = yyvsp[0];} +break; +case 81: +{yyval = yyvsp[0];} +break; +case 82: +{yyval = yyvsp[0];} +break; } yyssp -= yym; yystate = *yyssp; diff -Nru codelite-8.0.1+dfsg2/DESC codelite-9.0+dfsg/DESC --- codelite-8.0.1+dfsg2/DESC 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/DESC 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,2 @@ +CodeLite is an open source, free, cross platform IDE specialized in C, C++, PHP and JavaScript +(mainly for backend developers using Node.js) programming languages \ No newline at end of file diff -Nru codelite-8.0.1+dfsg2/ExternalTools/CMakeLists.txt codelite-9.0+dfsg/ExternalTools/CMakeLists.txt --- codelite-8.0.1+dfsg2/ExternalTools/CMakeLists.txt 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/ExternalTools/CMakeLists.txt 2015-10-11 13:56:07.000000000 +0000 @@ -35,12 +35,6 @@ add_definitions(-fPIC) endif() - -# Add RPATH -if (UNIX) -set (LINKER_OPTIONS -Wl,-rpath,"${PLUGINS_DIR}") -endif (UNIX) - FILE(GLOB SRCS "*.cpp") # Define the output @@ -54,8 +48,6 @@ ${wxWidgets_LIBRARIES} libcodelite plugin - wxsqlite3 - sqlite3lib ) # Installation destination -CL_INSTALL_PLUGIN(${PLUGIN_NAME}) \ No newline at end of file +CL_INSTALL_PLUGIN(${PLUGIN_NAME}) diff -Nru codelite-8.0.1+dfsg2/ExternalTools/externaltooldlg.cpp codelite-9.0+dfsg/ExternalTools/externaltooldlg.cpp --- codelite-8.0.1+dfsg2/ExternalTools/externaltooldlg.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/ExternalTools/externaltooldlg.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -67,7 +67,7 @@ dlg.GetArguments(), dlg.GetIcon16(), dlg.GetIcon24(), - dlg.GetCaptureProcessOutput(), + true, dlg.GetSaveAllFiles()); } } @@ -156,7 +156,7 @@ dlg.GetArguments(), dlg.GetIcon16(), dlg.GetIcon24(), - dlg.GetCaptureProcessOutput(), + true, dlg.GetSaveAllFiles()); } } diff -Nru codelite-8.0.1+dfsg2/ExternalTools/external_tools.cpp codelite-9.0+dfsg/ExternalTools/external_tools.cpp --- codelite-8.0.1+dfsg2/ExternalTools/external_tools.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/ExternalTools/external_tools.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -63,11 +63,19 @@ bSizer7->Add(m_buttonCancel, 0, wxALL, 5); + SetName(wxT("ExternalToolBaseDlg")); SetSizeHints(-1,-1); if ( GetSizer() ) { GetSizer()->Fit(this); } - Centre(wxBOTH); + CentreOnParent(wxBOTH); +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(this)) { + wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); + } +#endif // Connect events m_listCtrlTools->Connect(wxEVT_COMMAND_LIST_ITEM_ACTIVATED, wxListEventHandler(ExternalToolBaseDlg::OnItemActivated), NULL, this); m_listCtrlTools->Connect(wxEVT_COMMAND_LIST_ITEM_DESELECTED, wxListEventHandler(ExternalToolBaseDlg::OnItemDeSelected), NULL, this); diff -Nru codelite-8.0.1+dfsg2/ExternalTools/externaltools.cpp codelite-9.0+dfsg/ExternalTools/externaltools.cpp --- codelite-8.0.1+dfsg2/ExternalTools/externaltools.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/ExternalTools/externaltools.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -43,6 +43,8 @@ #include "clKeyboardManager.h" #include "event_notifier.h" #include "workspace.h" +#include "processreaderthread.h" +#include static ExternalToolsPlugin* thePlugin = NULL; @@ -74,7 +76,7 @@ ExternalToolsPlugin::ExternalToolsPlugin(IManager* manager) : IPlugin(manager) , topWin(NULL) - , m_pipedProcess(NULL) + , m_process(NULL) , m_parentMenu(NULL) { m_longName = _("A plugin that allows user to launch external tools from within CodeLite"); @@ -118,6 +120,9 @@ wxString::Format("Ctrl-Shift-%d", i), wxString::Format("Plugins::External Tools::External Tool %d", i)); } + + Bind(wxEVT_ASYNC_PROCESS_OUTPUT, &ExternalToolsPlugin::OnProcessOutput, this); + Bind(wxEVT_ASYNC_PROCESS_TERMINATED, &ExternalToolsPlugin::OnProcessEnd, this); } ExternalToolsPlugin::~ExternalToolsPlugin() @@ -316,67 +321,31 @@ void ExternalToolsPlugin::DoLaunchTool(const ToolInfo& ti) { + if(m_process) { + ::wxMessageBox(_("Another tool is currently running"), "CodeLite", wxOK | wxICON_ERROR | wxCENTER); + return; + } + wxString command, working_dir; + command << ti.GetPath(); + ::WrapWithQuotes(command); - command << wxT("\"") << ti.GetPath() << wxT("\" ") << ti.GetArguments(); + command << " " << ti.GetArguments(); working_dir = ti.GetWd(); - if(m_mgr->IsWorkspaceOpen()) { - command = MacroManager::Instance()->Expand(command, m_mgr, m_mgr->GetWorkspace()->GetActiveProjectName()); - working_dir = - MacroManager::Instance()->Expand(working_dir, m_mgr, m_mgr->GetWorkspace()->GetActiveProjectName()); + command = MacroManager::Instance()->Expand( + command, m_mgr, (m_mgr->GetWorkspace() ? m_mgr->GetWorkspace()->GetActiveProjectName() : "")); + working_dir = MacroManager::Instance()->Expand( + working_dir, m_mgr, (m_mgr->GetWorkspace() ? m_mgr->GetWorkspace()->GetActiveProjectName() : "")); + + wxString projectName; + if(clCxxWorkspaceST::Get()->IsOpen()) { + projectName = clCxxWorkspaceST::Get()->GetActiveProjectName(); } - // check to see if we require to save all files before continuing - if(ti.GetSaveAllFiles() && !m_mgr->SaveAll()) return; - - if(ti.GetCaptureOutput() == false) { - DirSaver ds; - wxString projectName; - if(WorkspaceST::Get()->IsOpen()) { - projectName = WorkspaceST::Get()->GetActiveProjectName(); - } - - EnvSetter envGuard(m_mgr->GetEnv(), NULL, projectName); - wxSetWorkingDirectory(working_dir); - - wxExecute(command); - - } else { - // create a piped process - if(m_pipedProcess && m_pipedProcess->IsBusy()) { - // a process is already running - return; - } - - m_pipedProcess = new AsyncExeCmd(m_mgr->GetOutputWindow()); - - DirSaver ds; - wxString projectName; - if(WorkspaceST::Get()->IsOpen()) { - projectName = WorkspaceST::Get()->GetActiveProjectName(); - } - - EnvSetter envGuard(m_mgr->GetEnv(), NULL, projectName); - wxSetWorkingDirectory(working_dir); - - // hide console if any, - // redirect output - m_pipedProcess->Execute(command, true, true); - if(m_pipedProcess->GetProcess()) { - m_pipedProcess->GetProcess()->Connect( - wxEVT_END_PROCESS, wxProcessEventHandler(ExternalToolsPlugin::OnProcessEnd), NULL, this); - } - } -} - -void ExternalToolsPlugin::OnProcessEnd(wxProcessEvent& event) -{ - m_pipedProcess->ProcessEnd(event); - m_pipedProcess->GetProcess()->Disconnect( - wxEVT_END_PROCESS, wxProcessEventHandler(ExternalToolsPlugin::OnProcessEnd), NULL, this); - delete m_pipedProcess; - m_pipedProcess = NULL; + EnvSetter envGuard(m_mgr->GetEnv(), NULL, projectName); + m_process = ::CreateAsyncProcess(this, command, IProcessCreateDefault, working_dir); + m_mgr->AppendOutputTabText(kOutputTab_Output, command + "\n"); } void ExternalToolsPlugin::DoRecreateToolbar() @@ -417,14 +386,14 @@ } } -bool ExternalToolsPlugin::IsRedirectedToolRunning() { return (m_pipedProcess && m_pipedProcess->IsBusy()); } +bool ExternalToolsPlugin::IsRedirectedToolRunning() { return (m_process != NULL); } void ExternalToolsPlugin::OnLaunchExternalToolUI(wxUpdateUIEvent& e) { e.Enable(!IsRedirectedToolRunning()); } void ExternalToolsPlugin::OnStopExternalTool(wxCommandEvent& e) { - if(m_pipedProcess) { - m_pipedProcess->Stop(); + if(m_process) { + m_process->Terminate(); } } @@ -521,3 +490,18 @@ } toolbar->Realize(); } + +void ExternalToolsPlugin::OnProcessEnd(clProcessEvent& event) +{ + m_mgr->AppendOutputTabText(kOutputTab_Output, event.GetOutput()); + m_mgr->AppendOutputTabText(kOutputTab_Output, "\n"); + wxDELETE(m_process); + + // Notify codelite to test for any modified bufferes + EventNotifier::Get()->PostReloadExternallyModifiedEvent(); +} + +void ExternalToolsPlugin::OnProcessOutput(clProcessEvent& event) +{ + m_mgr->AppendOutputTabText(kOutputTab_Output, event.GetOutput()); +} diff -Nru codelite-8.0.1+dfsg2/ExternalTools/external_tools_formbuilder_bitmaps.cpp codelite-9.0+dfsg/ExternalTools/external_tools_formbuilder_bitmaps.cpp --- codelite-8.0.1+dfsg2/ExternalTools/external_tools_formbuilder_bitmaps.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/ExternalTools/external_tools_formbuilder_bitmaps.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -21,14 +21,13 @@ wxMemoryFSHandler::AddFile(name, data, size) #endif -static size_t xml_res_size_0 = 108; +static size_t xml_res_size_0 = 90; static unsigned char xml_res_file_0[] = { 60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, 110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, 115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, 47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, -47,119,120,120,114,99,34,32,118,101,114,115,105,111,110,61,34,50,46,51, -46,48,46,49,34,47,62,10}; +47,119,120,120,114,99,34,47,62,10}; void wxC403FInitBitmapResources() { diff -Nru codelite-8.0.1+dfsg2/ExternalTools/external_tools.h codelite-9.0+dfsg/ExternalTools/external_tools.h --- codelite-8.0.1+dfsg2/ExternalTools/external_tools.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/ExternalTools/external_tools.h 2015-10-11 13:56:07.000000000 +0000 @@ -4,8 +4,8 @@ // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// -#ifndef EXTERNAL_TOOLS_BASE_CLASSES_H -#define EXTERNAL_TOOLS_BASE_CLASSES_H +#ifndef CODELITE_FORMBUILDER_EXTERNAL_TOOLS_BASE_CLASSES_H +#define CODELITE_FORMBUILDER_EXTERNAL_TOOLS_BASE_CLASSES_H #include #include @@ -16,6 +16,12 @@ #include #include #include +#if wxVERSION_NUMBER >= 2900 +#include +#include +#include +#include +#endif class ExternalToolBaseDlg : public wxDialog { @@ -39,6 +45,12 @@ virtual void OnButtonDeleteUI(wxUpdateUIEvent& event) { event.Skip(); } public: + wxListCtrl* GetListCtrlTools() { return m_listCtrlTools; } + wxButton* GetButtonNewTool() { return m_buttonNewTool; } + wxButton* GetButtonEdit() { return m_buttonEdit; } + wxButton* GetButtonDelete() { return m_buttonDelete; } + wxButton* GetButtonOk() { return m_buttonOk; } + wxButton* GetButtonCancel() { return m_buttonCancel; } ExternalToolBaseDlg(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("External Tools"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxDEFAULT_DIALOG_STYLE); virtual ~ExternalToolBaseDlg(); }; diff -Nru codelite-8.0.1+dfsg2/ExternalTools/externaltools.h codelite-9.0+dfsg/ExternalTools/externaltools.h --- codelite-8.0.1+dfsg2/ExternalTools/externaltools.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/ExternalTools/externaltools.h 2015-10-11 13:56:07.000000000 +0000 @@ -28,6 +28,7 @@ #include "plugin.h" #include "externaltoolsdata.h" +#include "asyncprocess.h" class wxToolBar; class AsyncExeCmd; @@ -36,7 +37,7 @@ { clToolBar* m_tb; wxEvtHandler* topWin; - AsyncExeCmd* m_pipedProcess; + IProcess* m_process; wxMenu* m_parentMenu; protected: @@ -48,12 +49,13 @@ void DoLaunchTool(const ToolInfo& ti); void DoRecreateToolbar(); bool IsRedirectedToolRunning(); - void OnProcessEnd(wxProcessEvent& event); + void OnProcessEnd(clProcessEvent& event); + void OnProcessOutput(clProcessEvent& event); void DoCreatePluginMenu(); void OnRecreateTB(wxCommandEvent& e); void DoClearNativeToolbarItems(wxToolBar* toolbar); void DoAppendToolsToNativeToolbar(wxToolBar* toolbar); - + public: ExternalToolsPlugin(IManager* manager); ~ExternalToolsPlugin(); diff -Nru codelite-8.0.1+dfsg2/ExternalTools/newtoolbase.cpp codelite-9.0+dfsg/ExternalTools/newtoolbase.cpp --- codelite-8.0.1+dfsg2/ExternalTools/newtoolbase.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/ExternalTools/newtoolbase.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -4,7 +4,7 @@ // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// -#include "newtoolbase.h" +#include "NewToolBase.h" // Declare the bitmap loading function @@ -39,6 +39,7 @@ wxArrayString m_choiceIdArr; m_choiceId = new wxChoice(this, wxID_ANY, wxDefaultPosition, wxSize(-1, -1), m_choiceIdArr, 0); + m_choiceId->SetToolTip(_("Identify this tool with an ID from the given list")); fgSizer1->Add(m_choiceId, 0, wxALL|wxEXPAND, 5); @@ -49,7 +50,7 @@ fgSizer1->Add(m_staticText6, 0, wxALL|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5); m_textCtrlName = new wxTextCtrl(this, wxID_ANY, wxT(""), wxDefaultPosition, wxSize(-1, -1), 0); - m_textCtrlName->SetToolTip(_("The name is used to identify this tool in the 'External Tools' toobar")); + m_textCtrlName->SetToolTip(_("The name is used to identify this tool in the 'External Tools' toolbar")); #if wxVERSION_NUMBER >= 3000 m_textCtrlName->SetHint(wxT("")); #endif @@ -63,9 +64,11 @@ fgSizer1->Add(m_staticText1, 0, wxALL|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5); m_textCtrlPath = new wxTextCtrl(this, wxID_ANY, wxT(""), wxDefaultPosition, wxSize(-1, -1), 0); + m_textCtrlPath->SetToolTip(_("Path to the executable to run")); #if wxVERSION_NUMBER >= 3000 m_textCtrlPath->SetHint(wxT("")); #endif + m_textCtrlPath->AutoCompleteFileNames(); fgSizer1->Add(m_textCtrlPath, 0, wxALL|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5); @@ -78,9 +81,11 @@ fgSizer1->Add(m_staticText2, 0, wxALL|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5); m_textCtrlWd = new wxTextCtrl(this, wxID_ANY, wxT(""), wxDefaultPosition, wxSize(-1, -1), 0); + m_textCtrlWd->SetToolTip(_("Set the working directory for this tool")); #if wxVERSION_NUMBER >= 3000 m_textCtrlWd->SetHint(wxT("")); #endif + m_textCtrlWd->AutoCompleteDirectories(); fgSizer1->Add(m_textCtrlWd, 1, wxALL|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5); @@ -93,6 +98,7 @@ fgSizer1->Add(m_staticText3, 0, wxALL|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5); m_textCtrlArguments = new wxTextCtrl(this, wxID_ANY, wxT(""), wxDefaultPosition, wxSize(-1, -1), 0); + m_textCtrlArguments->SetToolTip(_("Set a list of arguments to pass to the tool")); #if wxVERSION_NUMBER >= 3000 m_textCtrlArguments->SetHint(wxT("")); #endif @@ -148,14 +154,10 @@ m_checkBoxSaveAllFilesBefore = new wxCheckBox(this, wxID_ANY, _("Save all files before executing this tool"), wxDefaultPosition, wxSize(-1, -1), 0); m_checkBoxSaveAllFilesBefore->SetValue(false); + m_checkBoxSaveAllFilesBefore->SetToolTip(_("Before executing this tool, save all files")); sbSizer2->Add(m_checkBoxSaveAllFilesBefore, 0, wxALL, 5); - m_checkBoxCaptureProcessOutput = new wxCheckBox(this, wxID_ANY, _("Capture process output"), wxDefaultPosition, wxSize(-1, -1), 0); - m_checkBoxCaptureProcessOutput->SetValue(false); - - sbSizer2->Add(m_checkBoxCaptureProcessOutput, 0, wxALL, 5); - bSizer1->Add(0, 0, 1, wxALL, 5); m_stdBtnSizer2 = new wxStdDialogButtonSizer(); @@ -175,11 +177,19 @@ m_stdBtnSizer2->AddButton(m_button8); m_stdBtnSizer2->Realize(); + SetName(wxT("NewToolBase")); SetSizeHints(-1,-1); if ( GetSizer() ) { GetSizer()->Fit(this); } - Centre(wxBOTH); + CentreOnParent(wxBOTH); +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(this)) { + wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); + } +#endif // Connect events m_choiceId->Connect(wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler(NewToolBase::OnIdSelected), NULL, this); m_buttonBrowsePath->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(NewToolBase::OnButtonBrowsePath), NULL, this); diff -Nru codelite-8.0.1+dfsg2/ExternalTools/NewToolBase_formbuilder_bitmaps.cpp codelite-9.0+dfsg/ExternalTools/NewToolBase_formbuilder_bitmaps.cpp --- codelite-8.0.1+dfsg2/ExternalTools/NewToolBase_formbuilder_bitmaps.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/ExternalTools/NewToolBase_formbuilder_bitmaps.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -21,14 +21,13 @@ wxMemoryFSHandler::AddFile(name, data, size) #endif -static size_t xml_res_size_0 = 108; +static size_t xml_res_size_0 = 90; static unsigned char xml_res_file_0[] = { 60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, 110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, 115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, 47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, -47,119,120,120,114,99,34,32,118,101,114,115,105,111,110,61,34,50,46,51, -46,48,46,49,34,47,62,10}; +47,119,120,120,114,99,34,47,62,10}; void wxC3E45InitBitmapResources() { diff -Nru codelite-8.0.1+dfsg2/ExternalTools/newtoolbase.h codelite-9.0+dfsg/ExternalTools/newtoolbase.h --- codelite-8.0.1+dfsg2/ExternalTools/newtoolbase.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/ExternalTools/newtoolbase.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,68 +0,0 @@ -////////////////////////////////////////////////////////////////////// -// This file was auto-generated by codelite's wxCrafter Plugin -// wxCrafter project file: NewToolBase.wxcp -// Do not modify this file by hand! -////////////////////////////////////////////////////////////////////// - -#ifndef NEWTOOLBASE_BASE_CLASSES_H -#define NEWTOOLBASE_BASE_CLASSES_H - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -class NewToolBase : public wxDialog -{ -protected: - wxStaticText* m_staticText5; - wxChoice* m_choiceId; - wxStaticText* m_staticText6; - wxTextCtrl* m_textCtrlName; - wxStaticText* m_staticText1; - wxTextCtrl* m_textCtrlPath; - wxButton* m_buttonBrowsePath; - wxStaticText* m_staticText2; - wxTextCtrl* m_textCtrlWd; - wxButton* m_buttonBrowseWd; - wxStaticText* m_staticText3; - wxTextCtrl* m_textCtrlArguments; - wxStaticText* m_staticText8; - wxTextCtrl* m_textCtrlIcon24; - wxButton* m_buttonBrowseIcon24; - wxStaticText* m_staticText7; - wxTextCtrl* m_textCtrlIcon16; - wxButton* m_buttonBrowseIcon16; - wxCheckBox* m_checkBoxSaveAllFilesBefore; - wxCheckBox* m_checkBoxCaptureProcessOutput; - wxStdDialogButtonSizer* m_stdBtnSizer2; - wxButton* m_button4; - wxButton* m_button6; - wxButton* m_button8; - -protected: - virtual void OnIdSelected(wxCommandEvent& event) { event.Skip(); } - virtual void OnButtonBrowsePath(wxCommandEvent& event) { event.Skip(); } - virtual void OnButtonBrowseWD(wxCommandEvent& event) { event.Skip(); } - virtual void OnButtonBrowseIcon24(wxCommandEvent& event) { event.Skip(); } - virtual void OnButtonBrowseIcon16(wxCommandEvent& event) { event.Skip(); } - virtual void OnButtonOk(wxCommandEvent& event) { event.Skip(); } - virtual void OnButtonCancel(wxCommandEvent& event) { event.Skip(); } - virtual void OnButtonHelp(wxCommandEvent& event) { event.Skip(); } - -public: - NewToolBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("External Tool"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER); - virtual ~NewToolBase(); -}; - -#endif diff -Nru codelite-8.0.1+dfsg2/ExternalTools/NewToolBase.h codelite-9.0+dfsg/ExternalTools/NewToolBase.h --- codelite-8.0.1+dfsg2/ExternalTools/NewToolBase.h 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/ExternalTools/NewToolBase.h 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,92 @@ +////////////////////////////////////////////////////////////////////// +// This file was auto-generated by codelite's wxCrafter Plugin +// wxCrafter project file: NewToolBase.wxcp +// Do not modify this file by hand! +////////////////////////////////////////////////////////////////////// + +#ifndef CODELITE_FORMBUILDER_NEWTOOLBASE_BASE_CLASSES_H +#define CODELITE_FORMBUILDER_NEWTOOLBASE_BASE_CLASSES_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#if wxVERSION_NUMBER >= 2900 +#include +#include +#include +#include +#endif + +class NewToolBase : public wxDialog +{ +protected: + wxStaticText* m_staticText5; + wxChoice* m_choiceId; + wxStaticText* m_staticText6; + wxTextCtrl* m_textCtrlName; + wxStaticText* m_staticText1; + wxTextCtrl* m_textCtrlPath; + wxButton* m_buttonBrowsePath; + wxStaticText* m_staticText2; + wxTextCtrl* m_textCtrlWd; + wxButton* m_buttonBrowseWd; + wxStaticText* m_staticText3; + wxTextCtrl* m_textCtrlArguments; + wxStaticText* m_staticText8; + wxTextCtrl* m_textCtrlIcon24; + wxButton* m_buttonBrowseIcon24; + wxStaticText* m_staticText7; + wxTextCtrl* m_textCtrlIcon16; + wxButton* m_buttonBrowseIcon16; + wxCheckBox* m_checkBoxSaveAllFilesBefore; + wxStdDialogButtonSizer* m_stdBtnSizer2; + wxButton* m_button4; + wxButton* m_button6; + wxButton* m_button8; + +protected: + virtual void OnIdSelected(wxCommandEvent& event) { event.Skip(); } + virtual void OnButtonBrowsePath(wxCommandEvent& event) { event.Skip(); } + virtual void OnButtonBrowseWD(wxCommandEvent& event) { event.Skip(); } + virtual void OnButtonBrowseIcon24(wxCommandEvent& event) { event.Skip(); } + virtual void OnButtonBrowseIcon16(wxCommandEvent& event) { event.Skip(); } + virtual void OnButtonOk(wxCommandEvent& event) { event.Skip(); } + virtual void OnButtonCancel(wxCommandEvent& event) { event.Skip(); } + virtual void OnButtonHelp(wxCommandEvent& event) { event.Skip(); } + +public: + wxStaticText* GetStaticText5() { return m_staticText5; } + wxChoice* GetChoiceId() { return m_choiceId; } + wxStaticText* GetStaticText6() { return m_staticText6; } + wxTextCtrl* GetTextCtrlName() { return m_textCtrlName; } + wxStaticText* GetStaticText1() { return m_staticText1; } + wxTextCtrl* GetTextCtrlPath() { return m_textCtrlPath; } + wxButton* GetButtonBrowsePath() { return m_buttonBrowsePath; } + wxStaticText* GetStaticText2() { return m_staticText2; } + wxTextCtrl* GetTextCtrlWd() { return m_textCtrlWd; } + wxButton* GetButtonBrowseWd() { return m_buttonBrowseWd; } + wxStaticText* GetStaticText3() { return m_staticText3; } + wxTextCtrl* GetTextCtrlArguments() { return m_textCtrlArguments; } + wxStaticText* GetStaticText8() { return m_staticText8; } + wxTextCtrl* GetTextCtrlIcon24() { return m_textCtrlIcon24; } + wxButton* GetButtonBrowseIcon24() { return m_buttonBrowseIcon24; } + wxStaticText* GetStaticText7() { return m_staticText7; } + wxTextCtrl* GetTextCtrlIcon16() { return m_textCtrlIcon16; } + wxButton* GetButtonBrowseIcon16() { return m_buttonBrowseIcon16; } + wxCheckBox* GetCheckBoxSaveAllFilesBefore() { return m_checkBoxSaveAllFilesBefore; } + NewToolBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("External Tool"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER); + virtual ~NewToolBase(); +}; + +#endif diff -Nru codelite-8.0.1+dfsg2/ExternalTools/newtooldlg.cpp codelite-9.0+dfsg/ExternalTools/newtooldlg.cpp --- codelite-8.0.1+dfsg2/ExternalTools/newtooldlg.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/ExternalTools/newtooldlg.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -55,7 +55,6 @@ m_textCtrlIcon16->SetValue(data->m_icon16); m_textCtrlIcon24->SetValue(data->m_icon24); m_textCtrlName->SetValue(data->m_name); - m_checkBoxCaptureProcessOutput->SetValue(data->m_captureOutput); m_checkBoxSaveAllFilesBefore->SetValue(data->m_saveAllFiles); m_choiceId->Enable(false); } @@ -133,3 +132,6 @@ } NewToolDlg::~NewToolDlg() {} +void NewToolDlg::OnIdSelected(wxCommandEvent& event) +{ +} diff -Nru codelite-8.0.1+dfsg2/ExternalTools/newtooldlg.h codelite-9.0+dfsg/ExternalTools/newtooldlg.h --- codelite-8.0.1+dfsg2/ExternalTools/newtooldlg.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/ExternalTools/newtooldlg.h 2015-10-11 13:56:07.000000000 +0000 @@ -26,21 +26,16 @@ #ifndef __newtooldlg__ #define __newtooldlg__ -/** -@file -Subclass of NewToolBase, which is generated by wxFormBuilder. -*/ - -#include "newtoolbase.h" #include "externaltooldlg.h" #include "imanager.h" +#include "NewToolBase.h" -/** Implementing NewToolBase */ class NewToolDlg : public NewToolBase { IManager* m_mgr; protected: + virtual void OnIdSelected(wxCommandEvent& event); // Handlers for NewToolBase events. void OnButtonBrowsePath(wxCommandEvent& event); void OnButtonBrowseWD(wxCommandEvent& event); @@ -54,7 +49,7 @@ /** Constructor */ NewToolDlg(wxWindow* parent, IManager* mgr, ExternalToolData* data); virtual ~NewToolDlg(); - + wxString GetPath() const { return m_textCtrlPath->GetValue(); } wxString GetWorkingDirectory() const { return m_textCtrlWd->GetValue(); } wxString GetArguments() const { return m_textCtrlArguments->GetValue(); } @@ -62,7 +57,6 @@ wxString GetToolName() const { return m_textCtrlName->GetValue(); } wxString GetIcon16() const { return m_textCtrlIcon16->GetValue(); } wxString GetIcon24() const { return m_textCtrlIcon24->GetValue(); } - bool GetCaptureProcessOutput() const { return m_checkBoxCaptureProcessOutput->IsChecked(); } bool GetSaveAllFiles() const { return m_checkBoxSaveAllFilesBefore->IsChecked(); } }; diff -Nru codelite-8.0.1+dfsg2/formbuilder/external_tools.wxcp codelite-9.0+dfsg/formbuilder/external_tools.wxcp --- codelite-8.0.1+dfsg2/formbuilder/external_tools.wxcp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/formbuilder/external_tools.wxcp 2015-10-11 13:56:07.000000000 +0000 @@ -72,6 +72,10 @@ "m_label": "Style:", "m_value": "" }, { + "type": "bool", + "m_label": "Enable Window Persistency:", + "m_value": true + }, { "type": "string", "m_label": "Title:", "m_value": "External Tools" @@ -128,6 +132,10 @@ "m_sizerFlags": [], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer6" }, { @@ -151,6 +159,10 @@ "m_sizerFlags": ["wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer8" }, { @@ -262,6 +274,10 @@ "m_sizerFlags": [], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer9" }, { @@ -593,6 +609,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_HORIZONTAL"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer7" }, { diff -Nru codelite-8.0.1+dfsg2/formbuilder/findinfiles_dlg.wxcp codelite-9.0+dfsg/formbuilder/findinfiles_dlg.wxcp --- codelite-8.0.1+dfsg2/formbuilder/findinfiles_dlg.wxcp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/formbuilder/findinfiles_dlg.wxcp 2015-10-11 13:56:07.000000000 +0000 @@ -1,7 +1,7 @@ { "metadata": { "m_generatedFilesDir": "../LiteEditor/", - "m_objCounter": 94, + "m_objCounter": 105, "m_includeFiles": [], "m_bitmapFunction": "wxCABC4InitBitmapResources", "m_bitmapsFile": "findinfiles_dlg_formbuilder_bitmaps.cpp", @@ -9,13 +9,7 @@ "m_outputFileName": "findinfiles_dlg", "m_firstWindowId": 1000, "m_useEnum": false, - "m_templateClasses": [{ - "m_includeFile": "#include \"dirpicker.h\"", - "m_allocationLine": "m_dirPicker = new DirPicker($parent, wxID_ANY, wxT(\"...\"), wxEmptyString, _(\"Select a folder:\"), wxDefaultPosition, wxDefaultSize, wxDP_USE_COMBOBOX);", - "m_className": "DirPicker", - "m_xrcPreviewClass": "wxTextCtrl", - "m_events": [] - }] + "m_templateClasses": [] }, "windows": [{ "m_type": 4421, @@ -158,11 +152,11 @@ "m_children": [{ "m_type": 4408, "proportion": 1, - "border": 5, + "border": 10, "gbSpan": "1,1", "gbPosition": "0,0", "m_styles": ["wxTAB_TRAVERSAL"], - "m_sizerFlags": ["wxEXPAND"], + "m_sizerFlags": ["wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "winid", "m_label": "ID:", @@ -236,7 +230,7 @@ }, { "type": "string", "m_label": "Name:", - "m_value": "boxSizer50" + "m_value": "boxSizer95" }, { "type": "string", "m_label": "Style:", @@ -244,16 +238,16 @@ }, { "type": "choice", "m_label": "Orientation:", - "m_selection": 1, + "m_selection": 0, "m_options": ["wxVERTICAL", "wxHORIZONTAL"] }], "m_events": [], "m_children": [{ - "m_type": 4403, + "m_type": 4401, "proportion": 1, "border": 5, - "gbSpan": ",", - "gbPosition": ",", + "gbSpan": "1,1", + "gbPosition": "0,0", "m_styles": [], "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ @@ -263,305 +257,72 @@ }, { "type": "string", "m_label": "Name:", - "m_value": "fgSizer41" + "m_value": "boxSizer50" }, { "type": "string", "m_label": "Style:", "m_value": "" }, { - "type": "string", - "m_label": "# Columns:", - "m_value": "2" - }, { - "type": "string", - "m_label": "# Rows:", - "m_value": "0" - }, { - "type": "string", - "m_label": "Growable columns:", - "m_value": "1" - }, { - "type": "string", - "m_label": "Growable rows:", - "m_value": "2" - }, { - "type": "string", - "m_label": "Horizontal gap:", - "m_value": "0" - }, { - "type": "string", - "m_label": "Vertical gap:", - "m_value": "0" + "type": "choice", + "m_label": "Orientation:", + "m_selection": 1, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] }], "m_events": [], "m_children": [{ - "m_type": 4405, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT", "wxALIGN_CENTER_VERTICAL"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_staticText1" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Label:", - "m_value": "Find What :" - }, { - "type": "string", - "m_label": "Wrap:", - "m_value": "-1" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4410, - "proportion": 0, + "m_type": 4403, + "proportion": 1, "border": 5, "gbSpan": ",", "gbPosition": ",", "m_styles": [], "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { "type": "string", "m_label": "Minimum Size:", - "m_value": "" + "m_value": "-1,-1" }, { "type": "string", "m_label": "Name:", - "m_value": "m_findString" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "String to search" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": true - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" + "m_value": "fgSizer41" }, { "type": "string", "m_label": "Style:", "m_value": "" }, { - "type": "multi-string", - "m_label": "ComboBox Choices:", - "m_value": "" - }, { - "type": "string", - "m_label": "Text Hint", - "m_value": "Type a string to search..." - }, { - "type": "string", - "m_label": "Selection:", - "m_value": "-1" - }, { - "type": "string", - "m_label": "Value:", - "m_value": "" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4405, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT", "wxALIGN_CENTER_VERTICAL"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { "type": "string", - "m_label": "Name:", - "m_value": "m_staticText2" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" + "m_label": "# Columns:", + "m_value": "2" }, { "type": "string", - "m_label": "Include File:", - "m_value": "" + "m_label": "# Rows:", + "m_value": "0" }, { "type": "string", - "m_label": "Style:", - "m_value": "" + "m_label": "Growable columns:", + "m_value": "1" }, { - "type": "multi-string", - "m_label": "Label:", - "m_value": "Look in :" - }, { - "type": "string", - "m_label": "Wrap:", - "m_value": "-1" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4401, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxEXPAND", "wxALIGN_CENTER_VERTICAL"], - "m_properties": [{ "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" + "m_label": "Growable rows:", + "m_value": "2" }, { "type": "string", - "m_label": "Name:", - "m_value": "bSizer10" + "m_label": "Horizontal gap:", + "m_value": "0" }, { "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 1, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + "m_label": "Vertical gap:", + "m_value": "0" }], "m_events": [], "m_children": [{ - "m_type": 4465, - "proportion": 1, + "m_type": 4405, + "proportion": 0, "border": 5, "gbSpan": ",", "gbPosition": ",", "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT", "wxALIGN_CENTER_VERTICAL"], "m_properties": [{ "type": "winid", "m_label": "ID:", @@ -577,7 +338,7 @@ }, { "type": "string", "m_label": "Name:", - "m_value": "m_dirPicker" + "m_value": "m_staticText1" }, { "type": "multi-string", "m_label": "Tooltip:", @@ -618,18 +379,25 @@ "type": "string", "m_label": "Style:", "m_value": "" + }, { + "type": "multi-string", + "m_label": "Label:", + "m_value": "Find What :" + }, { + "type": "string", + "m_label": "Wrap:", + "m_value": "-1" }], "m_events": [], - "m_children": [], - "m_templInfoName": "DirPicker" + "m_children": [] }, { - "m_type": 4400, + "m_type": 4410, "proportion": 0, "border": 5, "gbSpan": ",", "gbPosition": ",", - "m_styles": ["wxBU_EXACTFIT"], - "m_sizerFlags": ["wxRIGHT", "wxALIGN_CENTER_VERTICAL"], + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "winid", "m_label": "ID:", @@ -645,11 +413,11 @@ }, { "type": "string", "m_label": "Name:", - "m_value": "m_btnAddPath" + "m_value": "m_findString" }, { "type": "multi-string", "m_label": "Tooltip:", - "m_value": "" + "m_value": "Find what" }, { "type": "colour", "m_label": "Bg Colour:", @@ -673,7 +441,7 @@ }, { "type": "bool", "m_label": "Focused", - "m_value": false + "m_value": true }, { "type": "string", "m_label": "Class Name:", @@ -687,91 +455,32 @@ "m_label": "Style:", "m_value": "" }, { - "type": "string", - "m_label": "Label:", - "m_value": "&Add" - }, { - "type": "bool", - "m_label": "Default Button", - "m_value": false + "type": "multi-string", + "m_label": "ComboBox Choices:", + "m_value": "" }, { - "type": "bitmapPicker", - "m_label": "Bitmap File:", - "m_path": "" + "type": "string", + "m_label": "Text Hint", + "m_value": "Find what" }, { - "type": "choice", - "m_label": "Direction", - "m_selection": 0, - "m_options": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"] + "type": "string", + "m_label": "Selection:", + "m_value": "-1" }, { "type": "string", - "m_label": "Margins:", - "m_value": "2,2" - }], - "m_events": [{ - "m_eventName": "wxEVT_COMMAND_BUTTON_CLICKED", - "m_eventClass": "wxCommandEvent", - "m_eventHandler": "wxCommandEventHandler", - "m_functionNameAndSignature": "OnAddPath(wxCommandEvent& event)", - "m_description": "Process a wxEVT_COMMAND_BUTTON_CLICKED event, when the button is clicked.", - "m_noBody": false + "m_label": "Value:", + "m_value": "" }], + "m_events": [], "m_children": [] - }] - }, { - "m_type": 4454, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxEXPAND"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "Spacer93" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "0,0" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4401, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxEXPAND"], - "m_properties": [{ - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "bSizer9" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 1, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4412, - "proportion": 1, + "m_type": 4405, + "proportion": 0, "border": 5, - "gbSpan": ",", - "gbPosition": ",", + "gbSpan": "1,1", + "gbPosition": "0,0", "m_styles": [], - "m_sizerFlags": ["wxLEFT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT", "wxALIGN_CENTER_VERTICAL"], "m_properties": [{ "type": "winid", "m_label": "ID:", @@ -779,15 +488,15 @@ }, { "type": "string", "m_label": "Size:", - "m_value": "" + "m_value": "-1,-1" }, { "type": "string", "m_label": "Minimum Size:", - "m_value": "" + "m_value": "-1,-1" }, { "type": "string", "m_label": "Name:", - "m_value": "m_listPaths" + "m_value": "m_staticText102" }, { "type": "multi-string", "m_label": "Tooltip:", @@ -830,54 +539,212 @@ "m_value": "" }, { "type": "multi-string", - "m_label": "Choices:", - "m_value": "" + "m_label": "Label:", + "m_value": "Replace With:" }, { "type": "string", - "m_label": "Selection:", + "m_label": "Wrap:", "m_value": "-1" }], "m_events": [], "m_children": [] }, { - "m_type": 4401, + "m_type": 4410, "proportion": 0, "border": 5, "gbSpan": "1,1", "gbPosition": "0,0", "m_styles": [], - "m_sizerFlags": ["wxLEFT", "wxRIGHT", "wxBOTTOM", "wxEXPAND"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { "type": "string", "m_label": "Minimum Size:", "m_value": "-1,-1" }, { "type": "string", "m_label": "Name:", - "m_value": "boxSizer1" + "m_value": "m_replaceString" }, { - "type": "string", - "m_label": "Style:", + "type": "multi-string", + "m_label": "Tooltip:", "m_value": "" }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4400, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": ["wxBU_EXACTFIT"], - "m_sizerFlags": ["wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "ComboBox Choices:", + "m_value": "" + }, { + "type": "string", + "m_label": "Text Hint", + "m_value": "Replace with" + }, { + "type": "string", + "m_label": "Selection:", + "m_value": "-1" + }, { + "type": "string", + "m_label": "Value:", + "m_value": "" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4405, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT", "wxALIGN_TOP"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_staticText2" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Label:", + "m_value": "Look in :" + }, { + "type": "string", + "m_label": "Wrap:", + "m_value": "-1" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4401, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "bSizer9" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 1, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4412, + "proportion": 1, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": ["wxLB_SORT", "wxLB_MULTIPLE"], + "m_sizerFlags": ["wxLEFT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" }, { "type": "string", "m_label": "Size:", @@ -889,11 +756,11 @@ }, { "type": "string", "m_label": "Name:", - "m_value": "m_btnRemovelPath" + "m_value": "m_listPaths" }, { "type": "multi-string", "m_label": "Tooltip:", - "m_value": "Remove the selected search path" + "m_value": "" }, { "type": "colour", "m_label": "Bg Colour:", @@ -931,604 +798,408 @@ "m_label": "Style:", "m_value": "" }, { - "type": "string", - "m_label": "Label:", + "type": "multi-string", + "m_label": "Choices:", "m_value": "" }, { - "type": "bool", - "m_label": "Default Button", - "m_value": false - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File:", - "m_path": "../icons/clear-all.png" - }, { - "type": "choice", - "m_label": "Direction", - "m_selection": 0, - "m_options": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"] - }, { "type": "string", - "m_label": "Margins:", - "m_value": "2,2" - }], - "m_events": [{ - "m_eventName": "wxEVT_COMMAND_BUTTON_CLICKED", - "m_eventClass": "wxCommandEvent", - "m_eventHandler": "wxCommandEventHandler", - "m_functionNameAndSignature": "OnRemovePath(wxCommandEvent& event)", - "m_description": "Process a wxEVT_COMMAND_BUTTON_CLICKED event, when the button is clicked.", - "m_noBody": false - }, { - "m_eventName": "wxEVT_UPDATE_UI", - "m_eventClass": "wxUpdateUIEvent", - "m_eventHandler": "wxUpdateUIEventHandler", - "m_functionNameAndSignature": "OnRemovePathUI(wxUpdateUIEvent& event)", - "m_description": "Process a wxEVT_UPDATE_UI event", - "m_noBody": false + "m_label": "Selection:", + "m_value": "-1" }], + "m_events": [], "m_children": [] }, { - "m_type": 4400, + "m_type": 4401, "proportion": 0, "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": ["wxBU_EXACTFIT"], - "m_sizerFlags": ["wxTOP", "wxEXPAND"], + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxLEFT", "wxRIGHT", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { "type": "string", "m_label": "Minimum Size:", - "m_value": "" + "m_value": "-1,-1" }, { "type": "string", "m_label": "Name:", - "m_value": "m_btnClearPaths" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "Clear the search path list" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" + "m_value": "boxSizer1" }, { "type": "string", "m_label": "Style:", "m_value": "" }, { - "type": "string", - "m_label": "Label:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Default Button", - "m_value": false - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File:", - "m_path": "../icons/delete-line.png" - }, { "type": "choice", - "m_label": "Direction", + "m_label": "Orientation:", "m_selection": 0, - "m_options": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"] - }, { - "type": "string", - "m_label": "Margins:", - "m_value": "2,2" - }], - "m_events": [{ - "m_eventName": "wxEVT_COMMAND_BUTTON_CLICKED", - "m_eventClass": "wxCommandEvent", - "m_eventHandler": "wxCommandEventHandler", - "m_functionNameAndSignature": "OnClearPaths(wxCommandEvent& event)", - "m_description": "Process a wxEVT_COMMAND_BUTTON_CLICKED event, when the button is clicked.", - "m_noBody": false - }, { - "m_eventName": "wxEVT_UPDATE_UI", - "m_eventClass": "wxUpdateUIEvent", - "m_eventHandler": "wxUpdateUIEventHandler", - "m_functionNameAndSignature": "OnClearPathsUI(wxUpdateUIEvent& event)", - "m_description": "Process a wxEVT_UPDATE_UI event", - "m_noBody": false + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] }], - "m_children": [] - }] - }] - }, { - "m_type": 4405, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT", "wxALIGN_CENTER_VERTICAL"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_staticText3" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Label:", - "m_value": "File Mask:" - }, { - "type": "string", - "m_label": "Wrap:", - "m_value": "-1" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4410, - "proportion": 1, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_fileTypes" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "Search these file types" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false + "m_events": [], + "m_children": [{ + "m_type": 4400, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": ["wxBU_EXACTFIT"], + "m_sizerFlags": ["wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_btnAddPath" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "Add search path" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Default Button", + "m_value": false + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "../icons/fif-menu.png" + }, { + "type": "choice", + "m_label": "Direction", + "m_selection": 0, + "m_options": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"] + }, { + "type": "string", + "m_label": "Margins:", + "m_value": "2,2" + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_BUTTON_CLICKED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnAddPath(wxCommandEvent& event)", + "m_description": "Process a wxEVT_COMMAND_BUTTON_CLICKED event, when the button is clicked.", + "m_noBody": false + }], + "m_children": [] + }, { + "m_type": 4400, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": ["wxBU_EXACTFIT"], + "m_sizerFlags": ["wxTOP", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_btnClearSelectedPath" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "Remove the selected path" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Default Button", + "m_value": false + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "../icons/fif-clear.png" + }, { + "type": "choice", + "m_label": "Direction", + "m_selection": 0, + "m_options": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"] + }, { + "type": "string", + "m_label": "Margins:", + "m_value": "5,5" + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_BUTTON_CLICKED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnClearSelectedPath(wxCommandEvent& event)", + "m_description": "Process a wxEVT_COMMAND_BUTTON_CLICKED event, when the button is clicked.", + "m_noBody": false + }, { + "m_eventName": "wxEVT_UPDATE_UI", + "m_eventClass": "wxUpdateUIEvent", + "m_eventHandler": "wxUpdateUIEventHandler", + "m_functionNameAndSignature": "OnClearSelectedPathUI(wxUpdateUIEvent& event)", + "m_description": "Process a wxEVT_UPDATE_UI event", + "m_noBody": false + }], + "m_children": [] + }] + }] }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" + "m_type": 4405, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT", "wxALIGN_CENTER_VERTICAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_staticText3" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Label:", + "m_value": "File Mask:" + }, { + "type": "string", + "m_label": "Wrap:", + "m_value": "-1" + }], + "m_events": [], + "m_children": [] }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" + "m_type": 4410, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_fileTypes" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "Search these file types" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "ComboBox Choices:", + "m_value": "*.c;*.cpp;*.cxx;*.cc;*.h;*.hpp;*.inc;*.mm;*.m;*.xrc" + }, { + "type": "string", + "m_label": "Text Hint", + "m_value": "" + }, { + "type": "string", + "m_label": "Selection:", + "m_value": "0" + }, { + "type": "string", + "m_label": "Value:", + "m_value": "*.c;*.cpp;*.cxx;*.cc;*.h;*.hpp;*.inc;*.mm;*.m;*.xrc" + }], + "m_events": [], + "m_children": [] }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "ComboBox Choices:", - "m_value": "*.c;*.cpp;*.cxx;*.cc;*.h;*.hpp;*.inc;*.mm;*.m;*.xrc" - }, { - "type": "string", - "m_label": "Text Hint", - "m_value": "" - }, { - "type": "string", - "m_label": "Selection:", - "m_value": "0" - }, { - "type": "string", - "m_label": "Value:", - "m_value": "*.c;*.cpp;*.cxx;*.cc;*.h;*.hpp;*.inc;*.mm;*.m;*.xrc" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4405, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT", "wxALIGN_CENTER_VERTICAL"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_staticText5" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Label:", - "m_value": "Files Encoding:" - }, { - "type": "string", - "m_label": "Wrap:", - "m_value": "-1" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4411, - "proportion": 1, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_choiceEncoding" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "Use this file encoding when scanning files for matches" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Choices:", - "m_value": "" - }, { - "type": "string", - "m_label": "Selection:", - "m_value": "0" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4405, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_staticText7" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Label:", - "m_value": "Options:" - }, { - "type": "string", - "m_label": "Wrap:", - "m_value": "-1" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4442, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_notebook1" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }], - "m_events": [], - "m_children": [{ - "m_type": 4441, + "m_type": 4405, "proportion": 0, - "border": 0, + "border": 5, "gbSpan": ",", "gbPosition": ",", - "m_styles": ["wxTAB_TRAVERSAL"], - "m_sizerFlags": [], + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT", "wxALIGN_CENTER_VERTICAL"], "m_properties": [{ "type": "winid", "m_label": "ID:", @@ -1544,7 +1215,7 @@ }, { "type": "string", "m_label": "Name:", - "m_value": "m_panel1" + "m_value": "m_staticText5" }, { "type": "multi-string", "m_label": "Tooltip:", @@ -1586,482 +1257,24 @@ "m_label": "Style:", "m_value": "" }, { - "type": "string", + "type": "multi-string", "m_label": "Label:", - "m_value": "General" - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File:", - "m_path": "" - }, { - "type": "bool", - "m_label": "Selected", - "m_value": false + "m_value": "Files Encoding:" }, { - "type": "bool", - "m_label": "Null Page", - "m_value": false + "type": "string", + "m_label": "Wrap:", + "m_value": "-1" }], "m_events": [], - "m_children": [{ - "m_type": 4401, - "proportion": 0, - "border": 0, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "bSizer6" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4403, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "fgSizer3" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "# Columns:", - "m_value": "1" - }, { - "type": "string", - "m_label": "# Rows:", - "m_value": "0" - }, { - "type": "string", - "m_label": "Growable columns:", - "m_value": "" - }, { - "type": "string", - "m_label": "Growable rows:", - "m_value": "" - }, { - "type": "string", - "m_label": "Horizontal gap:", - "m_value": "0" - }, { - "type": "string", - "m_label": "Vertical gap:", - "m_value": "0" - }], - "m_events": [], - "m_children": [{ - "m_type": 4415, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_matchCase" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "Toggle case sensitive search" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "&Match case" - }, { - "type": "bool", - "m_label": "Value:", - "m_value": false - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4415, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_matchWholeWord" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "Toggle whole word search" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "Match &whole word" - }, { - "type": "bool", - "m_label": "Value:", - "m_value": false - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4415, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_regualrExpression" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "The 'Find What' field is a regular expression" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "Regular &expression" - }, { - "type": "bool", - "m_label": "Value:", - "m_value": false - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4415, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_checkBoxSaveFilesBeforeSearching" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "Save any modified files before search starts" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "&Save modified files before searching" - }, { - "type": "bool", - "m_label": "Value:", - "m_value": false - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4415, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_checkBoxSeparateTab" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "Display search results in separate tab" - }, { - "type": "bool", - "m_label": "Value:", - "m_value": true - }], - "m_events": [], - "m_children": [] - }] - }] - }] + "m_children": [] }, { - "m_type": 4441, - "proportion": 0, - "border": 0, + "m_type": 4411, + "proportion": 1, + "border": 5, "gbSpan": ",", "gbPosition": ",", - "m_styles": ["wxTAB_TRAVERSAL"], - "m_sizerFlags": [], + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "winid", "m_label": "ID:", @@ -2077,11 +1290,11 @@ }, { "type": "string", "m_label": "Name:", - "m_value": "m_panel2" + "m_value": "m_choiceEncoding" }, { "type": "multi-string", "m_label": "Tooltip:", - "m_value": "" + "m_value": "Use this file encoding when scanning files for matches" }, { "type": "colour", "m_label": "Bg Colour:", @@ -2119,31 +1332,126 @@ "m_label": "Style:", "m_value": "" }, { - "type": "string", - "m_label": "Label:", - "m_value": "C++" - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File:", - "m_path": "" + "type": "multi-string", + "m_label": "Choices:", + "m_value": "" + }, { + "type": "string", + "m_label": "Selection:", + "m_value": "0" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4405, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_staticText97" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false }, { "type": "bool", - "m_label": "Selected", + "m_label": "Disabled", "m_value": false }, { "type": "bool", - "m_label": "Null Page", + "m_label": "Focused", "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Label:", + "m_value": "" + }, { + "type": "string", + "m_label": "Wrap:", + "m_value": "-1" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4401, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "boxSizer105" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] }], "m_events": [], "m_children": [{ - "m_type": 4401, + "m_type": 4403, "proportion": 0, - "border": 0, + "border": 5, "gbSpan": ",", "gbPosition": ",", "m_styles": [], - "m_sizerFlags": [], + "m_sizerFlags": ["wxEXPAND"], "m_properties": [{ "type": "string", "m_label": "Minimum Size:", @@ -2151,816 +1459,837 @@ }, { "type": "string", "m_label": "Name:", - "m_value": "bSizer7" + "m_value": "fgSizer3" }, { "type": "string", "m_label": "Style:", "m_value": "" }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + "type": "string", + "m_label": "# Columns:", + "m_value": "3" + }, { + "type": "string", + "m_label": "# Rows:", + "m_value": "0" + }, { + "type": "string", + "m_label": "Growable columns:", + "m_value": "" + }, { + "type": "string", + "m_label": "Growable rows:", + "m_value": "" + }, { + "type": "string", + "m_label": "Horizontal gap:", + "m_value": "0" + }, { + "type": "string", + "m_label": "Vertical gap:", + "m_value": "0" }], "m_events": [], "m_children": [{ - "m_type": 4403, + "m_type": 4415, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_matchCase" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "Toggle case sensitive search" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "&Match case" + }, { + "type": "bool", + "m_label": "Value:", + "m_value": false + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4415, "proportion": 0, "border": 5, "gbSpan": ",", "gbPosition": ",", "m_styles": [], - "m_sizerFlags": ["wxEXPAND"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_matchWholeWord" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "Toggle whole word search" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Match &whole word" + }, { + "type": "bool", + "m_label": "Value:", + "m_value": false + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4415, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { "type": "string", "m_label": "Minimum Size:", "m_value": "-1,-1" }, { "type": "string", "m_label": "Name:", - "m_value": "fgSizer4" + "m_value": "m_checkBoxPipeForGrep" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "Use the pipe character (\"|\") as a special separator for applying additional filters. This has the similar effect as using the \"grep\" command line tool" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" }, { "type": "string", "m_label": "Style:", "m_value": "" }, { "type": "string", - "m_label": "# Columns:", - "m_value": "1" + "m_label": "Label:", + "m_value": "Enable pipe filtering" + }, { + "type": "bool", + "m_label": "Value:", + "m_value": false + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4415, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" }, { "type": "string", - "m_label": "# Rows:", - "m_value": "0" + "m_label": "Name:", + "m_value": "m_regualrExpression" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "The 'Find What' field is a regular expression" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false }, { "type": "string", - "m_label": "Growable columns:", + "m_label": "Class Name:", "m_value": "" }, { "type": "string", - "m_label": "Growable rows:", + "m_label": "Include File:", "m_value": "" }, { "type": "string", - "m_label": "Horizontal gap:", - "m_value": "0" + "m_label": "Style:", + "m_value": "" }, { "type": "string", - "m_label": "Vertical gap:", - "m_value": "0" + "m_label": "Label:", + "m_value": "Regular &expression" + }, { + "type": "bool", + "m_label": "Value:", + "m_value": false }], "m_events": [], - "m_children": [{ - "m_type": 4415, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_printScope" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "Display the class + function name for the matches" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "Display the C++ scope of the match" - }, { - "type": "bool", - "m_label": "Value:", - "m_value": false - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4415, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_checkBoxSkipMatchesFoundInComments" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "Hide matches found in comments" - }, { - "type": "bool", - "m_label": "Value:", - "m_value": false - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4415, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_checkBoxSkipMatchesFoundInStrings" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "Hide matches found inside strings" - }, { - "type": "bool", - "m_label": "Value:", - "m_value": false - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4415, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_checkBoxHighlighStringComments" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "Use different colour for matches found in comments" - }, { - "type": "bool", - "m_label": "Value:", - "m_value": false - }], - "m_events": [{ - "m_eventName": "wxEVT_UPDATE_UI", - "m_eventClass": "wxUpdateUIEvent", - "m_eventHandler": "wxUpdateUIEventHandler", - "m_functionNameAndSignature": "OnUseDiffColourForCommentsUI(wxUpdateUIEvent& event)", - "m_description": "Process a wxEVT_UPDATE_UI event", - "m_noBody": false - }], - "m_children": [] - }] - }] - }] - }] - }, { - "m_type": 4454, - "proportion": 0, - "border": 10, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "Spacer121" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "0,0" - }], - "m_events": [], - "m_children": [] - }] - }, { - "m_type": 4401, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "bSizer2" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4400, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_FIND" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_find" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "Begin search" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "&Find" - }, { - "type": "bool", - "m_label": "Default Button", - "m_value": true - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File:", - "m_path": "" - }, { - "type": "choice", - "m_label": "Direction", - "m_selection": 0, - "m_options": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"] - }, { - "type": "string", - "m_label": "Margins:", - "m_value": "2,2" - }], - "m_events": [{ - "m_eventName": "wxEVT_COMMAND_BUTTON_CLICKED", - "m_eventClass": "wxCommandEvent", - "m_eventHandler": "wxCommandEventHandler", - "m_functionNameAndSignature": "OnFind(wxCommandEvent& event)", - "m_description": "Process a wxEVT_COMMAND_BUTTON_CLICKED event, when the button is clicked.", - "m_noBody": false - }, { - "m_eventName": "wxEVT_UPDATE_UI", - "m_eventClass": "wxUpdateUIEvent", - "m_eventHandler": "wxUpdateUIEventHandler", - "m_functionNameAndSignature": "OnFindWhatUI(wxUpdateUIEvent& event)", - "m_description": "Process a wxEVT_UPDATE_UI event", - "m_noBody": false - }], - "m_children": [] - }, { - "m_type": 4400, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_REPLACE" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_replaceAll" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "Search for matches and place them in the 'Replace' window as candidates for possible replace operation" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "&Replace" - }, { - "type": "bool", - "m_label": "Default Button", - "m_value": false - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File:", - "m_path": "" - }, { - "type": "choice", - "m_label": "Direction", - "m_selection": 0, - "m_options": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"] - }, { - "type": "string", - "m_label": "Margins:", - "m_value": "2,2" - }], - "m_events": [{ - "m_eventName": "wxEVT_COMMAND_BUTTON_CLICKED", - "m_eventClass": "wxCommandEvent", - "m_eventHandler": "wxCommandEventHandler", - "m_functionNameAndSignature": "OnReplace(wxCommandEvent& event)", - "m_description": "Process a wxEVT_COMMAND_BUTTON_CLICKED event, when the button is clicked.", - "m_noBody": false - }, { - "m_eventName": "wxEVT_UPDATE_UI", - "m_eventClass": "wxUpdateUIEvent", - "m_eventHandler": "wxUpdateUIEventHandler", - "m_functionNameAndSignature": "OnFindWhatUI(wxUpdateUIEvent& event)", - "m_description": "Process a wxEVT_UPDATE_UI event", - "m_noBody": false - }], - "m_children": [] + "m_children": [] + }, { + "m_type": 4415, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_checkBoxSaveFilesBeforeSearching" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "Save any modified files before search starts" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "&Save files before search" + }, { + "type": "bool", + "m_label": "Value:", + "m_value": false + }], + "m_events": [], + "m_children": [] + }] + }] + }] }, { - "m_type": 4400, + "m_type": 4401, "proportion": 0, "border": 5, "gbSpan": ",", "gbPosition": ",", "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_STOP" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { "type": "string", "m_label": "Minimum Size:", - "m_value": "" + "m_value": "-1,-1" }, { "type": "string", "m_label": "Name:", - "m_value": "m_stop" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "Stop the current search" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" + "m_value": "bSizer2" }, { "type": "string", "m_label": "Style:", "m_value": "" }, { - "type": "string", - "m_label": "Label:", - "m_value": "Sto&p" - }, { - "type": "bool", - "m_label": "Default Button", - "m_value": false - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File:", - "m_path": "" - }, { "type": "choice", - "m_label": "Direction", + "m_label": "Orientation:", "m_selection": 0, - "m_options": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"] - }, { - "type": "string", - "m_label": "Margins:", - "m_value": "2,2" - }], - "m_events": [{ - "m_eventName": "wxEVT_COMMAND_BUTTON_CLICKED", - "m_eventClass": "wxCommandEvent", - "m_eventHandler": "wxCommandEventHandler", - "m_functionNameAndSignature": "OnStop(wxCommandEvent& event)", - "m_description": "Process a wxEVT_COMMAND_BUTTON_CLICKED event, when the button is clicked.", - "m_noBody": false + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] }], - "m_children": [] - }, { - "m_type": 4400, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_CANCEL" + "m_events": [], + "m_children": [{ + "m_type": 4400, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_FIND" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_find" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "Begin search" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "&Find" + }, { + "type": "bool", + "m_label": "Default Button", + "m_value": true + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Direction", + "m_selection": 0, + "m_options": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"] + }, { + "type": "string", + "m_label": "Margins:", + "m_value": "2,2" + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_BUTTON_CLICKED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnFind(wxCommandEvent& event)", + "m_description": "Process a wxEVT_COMMAND_BUTTON_CLICKED event, when the button is clicked.", + "m_noBody": false + }, { + "m_eventName": "wxEVT_UPDATE_UI", + "m_eventClass": "wxUpdateUIEvent", + "m_eventHandler": "wxUpdateUIEventHandler", + "m_functionNameAndSignature": "OnFindWhatUI(wxUpdateUIEvent& event)", + "m_description": "Process a wxEVT_UPDATE_UI event", + "m_noBody": false + }], + "m_children": [] }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_cancel" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "Close this dialog" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "Close" - }, { - "type": "bool", - "m_label": "Default Button", - "m_value": false - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File:", - "m_path": "" + "m_type": 4400, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_REPLACE" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_replaceAll" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "Search for matches and place them in the 'Replace' window as candidates for possible replace operation" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "&Replace" + }, { + "type": "bool", + "m_label": "Default Button", + "m_value": false + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Direction", + "m_selection": 0, + "m_options": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"] + }, { + "type": "string", + "m_label": "Margins:", + "m_value": "2,2" + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_BUTTON_CLICKED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnReplace(wxCommandEvent& event)", + "m_description": "Process a wxEVT_COMMAND_BUTTON_CLICKED event, when the button is clicked.", + "m_noBody": false + }, { + "m_eventName": "wxEVT_UPDATE_UI", + "m_eventClass": "wxUpdateUIEvent", + "m_eventHandler": "wxUpdateUIEventHandler", + "m_functionNameAndSignature": "OnReplaceUI(wxUpdateUIEvent& event)", + "m_description": "Process a wxEVT_UPDATE_UI event", + "m_noBody": false + }], + "m_children": [] }, { - "type": "choice", - "m_label": "Direction", - "m_selection": 0, - "m_options": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"] + "m_type": 4400, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_STOP" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_stop" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "Stop the current search" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Sto&p" + }, { + "type": "bool", + "m_label": "Default Button", + "m_value": false + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Direction", + "m_selection": 0, + "m_options": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"] + }, { + "type": "string", + "m_label": "Margins:", + "m_value": "2,2" + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_BUTTON_CLICKED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnStop(wxCommandEvent& event)", + "m_description": "Process a wxEVT_COMMAND_BUTTON_CLICKED event, when the button is clicked.", + "m_noBody": false + }], + "m_children": [] }, { - "type": "string", - "m_label": "Margins:", - "m_value": "2,2" - }], - "m_events": [{ - "m_eventName": "wxEVT_COMMAND_BUTTON_CLICKED", - "m_eventClass": "wxCommandEvent", - "m_eventHandler": "wxCommandEventHandler", - "m_functionNameAndSignature": "OnButtonClose(wxCommandEvent& event)", - "m_description": "Process a wxEVT_COMMAND_BUTTON_CLICKED event, when the button is clicked.", - "m_noBody": false - }], - "m_children": [] + "m_type": 4400, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_CANCEL" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_cancel" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "Close this dialog" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Close" + }, { + "type": "bool", + "m_label": "Default Button", + "m_value": false + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Direction", + "m_selection": 0, + "m_options": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"] + }, { + "type": "string", + "m_label": "Margins:", + "m_value": "2,2" + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_BUTTON_CLICKED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnButtonClose(wxCommandEvent& event)", + "m_description": "Process a wxEVT_COMMAND_BUTTON_CLICKED event, when the button is clicked.", + "m_noBody": false + }], + "m_children": [] + }] }] }] }] diff -Nru codelite-8.0.1+dfsg2/formbuilder/listctrlpanel.wxcp codelite-9.0+dfsg/formbuilder/listctrlpanel.wxcp --- codelite-8.0.1+dfsg2/formbuilder/listctrlpanel.wxcp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/formbuilder/listctrlpanel.wxcp 2015-10-11 13:56:07.000000000 +0000 @@ -1,469 +1,475 @@ { - "metadata": { - "m_generatedFilesDir": "../LiteEditor/", - "m_objCounter": 6, - "m_includeFiles": [], - "m_bitmapFunction": "wxCF3AAInitBitmapResources", - "m_bitmapsFile": "listctrlpanel_formbuilder_bitmaps.cpp", - "m_GenerateCodeTypes": 5, - "m_outputFileName": "listctrlpanelbase", - "m_firstWindowId": 1000, - "m_useEnum": false, - "m_templateClasses": [] - }, - "windows": [{ - "m_type": 4407, - "proportion": 0, - "border": 0, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": ["wxTAB_TRAVERSAL"], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Size:", - "m_value": "500,300" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "ListCtrlPanelBase" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Title:", - "m_value": "" - }, { - "type": "virtualFolderPicker", - "m_label": "Virtual Folder:", - "m_path": "" - }, { - "type": "choice", - "m_label": "Centre:", - "m_selection": 1, - "m_options": ["", "wxBOTH", "wxVERTICAL", "wxHORIZONTAL"] - }, { - "type": "string", - "m_label": "File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Inherited Class", - "m_value": "" - }, { - "type": "string", - "m_label": "Class Decorator", - "m_value": "" - }], - "m_events": [], - "m_children": [{ - "m_type": 4401, - "proportion": 0, - "border": 0, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "mainSizer" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4469, - "proportion": 1, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": ["wxDV_SINGLE"], - "m_sizerFlags": ["wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_dvListCtrl" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }], - "m_events": [{ - "m_eventName": "wxEVT_COMMAND_DATAVIEW_ITEM_ACTIVATED", - "m_eventClass": "wxDataViewEvent", - "m_eventHandler": "wxDataViewEventHandler", - "m_functionNameAndSignature": "OnItemActivated(wxDataViewEvent& event)", - "m_description": "Process a wxEVT_COMMAND_DATAVIEW_ITEM_ACTIVATED event.\nThis event is triggered by double clicking an item or pressing some special key (usually \"Enter\") when it is focused" - }, { - "m_eventName": "wxEVT_COMMAND_DATAVIEW_ITEM_CONTEXT_MENU", - "m_eventClass": "wxDataViewEvent", - "m_eventHandler": "wxDataViewEventHandler", - "m_functionNameAndSignature": "OnMenu(wxDataViewEvent& event)", - "m_description": "Process a wxEVT_COMMAND_DATAVIEW_ITEM_CONTEXT_MENU event generated when the user right clicks inside the control.\nNotice that this menu is generated even if the click didn't occur on any valid item, in this case wxDataViewEvent::GetItem() simply returns an invalid item." - }], - "m_children": [{ - "m_type": 4472, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "Level" - }, { - "type": "string", - "m_label": "Width:", - "m_value": "-1" - }, { - "type": "choice", - "m_label": "Column Type", - "m_selection": 3, - "m_options": ["bitmap", "check", "text", "icontext", "progress", "choice"] - }, { - "type": "multi-string", - "m_label": "Choices:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Alignment", - "m_selection": 0, - "m_options": ["wxALIGN_LEFT", "wxALIGN_RIGHT", "wxALIGN_CENTER"] - }, { - "type": "choice", - "m_label": "Cell Mode", - "m_selection": 0, - "m_options": ["wxDATAVIEW_CELL_INERT", "wxDATAVIEW_CELL_ACTIVATABLE", "wxDATAVIEW_CELL_EDITABLE"] - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4472, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "Address" - }, { - "type": "string", - "m_label": "Width:", - "m_value": "-1" - }, { - "type": "choice", - "m_label": "Column Type", - "m_selection": 2, - "m_options": ["bitmap", "check", "text", "icontext", "progress", "choice"] - }, { - "type": "multi-string", - "m_label": "Choices:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Alignment", - "m_selection": 0, - "m_options": ["wxALIGN_LEFT", "wxALIGN_RIGHT", "wxALIGN_CENTER"] - }, { - "type": "choice", - "m_label": "Cell Mode", - "m_selection": 0, - "m_options": ["wxDATAVIEW_CELL_INERT", "wxDATAVIEW_CELL_ACTIVATABLE", "wxDATAVIEW_CELL_EDITABLE"] - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4472, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "Function" - }, { - "type": "string", - "m_label": "Width:", - "m_value": "200" - }, { - "type": "choice", - "m_label": "Column Type", - "m_selection": 2, - "m_options": ["bitmap", "check", "text", "icontext", "progress", "choice"] - }, { - "type": "multi-string", - "m_label": "Choices:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Alignment", - "m_selection": 0, - "m_options": ["wxALIGN_LEFT", "wxALIGN_RIGHT", "wxALIGN_CENTER"] - }, { - "type": "choice", - "m_label": "Cell Mode", - "m_selection": 0, - "m_options": ["wxDATAVIEW_CELL_INERT", "wxDATAVIEW_CELL_ACTIVATABLE", "wxDATAVIEW_CELL_EDITABLE"] - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4472, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "File" - }, { - "type": "string", - "m_label": "Width:", - "m_value": "400" - }, { - "type": "choice", - "m_label": "Column Type", - "m_selection": 2, - "m_options": ["bitmap", "check", "text", "icontext", "progress", "choice"] - }, { - "type": "multi-string", - "m_label": "Choices:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Alignment", - "m_selection": 0, - "m_options": ["wxALIGN_LEFT", "wxALIGN_RIGHT", "wxALIGN_CENTER"] - }, { - "type": "choice", - "m_label": "Cell Mode", - "m_selection": 0, - "m_options": ["wxDATAVIEW_CELL_INERT", "wxDATAVIEW_CELL_ACTIVATABLE", "wxDATAVIEW_CELL_EDITABLE"] - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4472, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "Line" - }, { - "type": "string", - "m_label": "Width:", - "m_value": "-1" - }, { - "type": "choice", - "m_label": "Column Type", - "m_selection": 2, - "m_options": ["bitmap", "check", "text", "icontext", "progress", "choice"] - }, { - "type": "multi-string", - "m_label": "Choices:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Alignment", - "m_selection": 0, - "m_options": ["wxALIGN_LEFT", "wxALIGN_RIGHT", "wxALIGN_CENTER"] - }, { - "type": "choice", - "m_label": "Cell Mode", - "m_selection": 0, - "m_options": ["wxDATAVIEW_CELL_INERT", "wxDATAVIEW_CELL_ACTIVATABLE", "wxDATAVIEW_CELL_EDITABLE"] - }], - "m_events": [], - "m_children": [] - }] - }] - }] - }, { - "m_type": 4481, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "DebuggerBtImgList" - }, { - "type": "string", - "m_label": "File:", - "m_value": "" - }, { - "type": "virtualFolderPicker", - "m_label": "Virtual Folder:", - "m_path": "CodeLiteIDE:Debugger" - }, { - "type": "string", - "m_label": "Class Decorator", - "m_value": "" - }, { - "type": "integer", - "m_label": "Bitmap Size:", - "m_value": 16 - }, { - "type": "bool", - "m_label": "Bitmap Mask", - "m_value": true - }], - "m_events": [], - "m_children": [{ - "m_type": 4482, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "arrowActive" - }, { - "type": "filePicker", - "m_label": "Bitmap File:", - "m_path": "../codelite-icons/toolbars/16/standard/forward.png" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4482, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "arrowInactive" - }, { - "type": "filePicker", - "m_label": "Bitmap File:", - "m_path": "../codelite-icons/toolbars/16/standard/forward-disabled.png" - }], - "m_events": [], - "m_children": [] - }] - }] + "metadata": { + "m_generatedFilesDir": "../LiteEditor/", + "m_objCounter": 6, + "m_includeFiles": [], + "m_bitmapFunction": "wxCF3AAInitBitmapResources", + "m_bitmapsFile": "listctrlpanel_formbuilder_bitmaps.cpp", + "m_GenerateCodeTypes": 5, + "m_outputFileName": "listctrlpanelbase", + "m_firstWindowId": 1000, + "m_useEnum": false, + "m_templateClasses": [] + }, + "windows": [{ + "m_type": 4407, + "proportion": 0, + "border": 0, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": ["wxTAB_TRAVERSAL"], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Size:", + "m_value": "500,300" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "ListCtrlPanelBase" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Title:", + "m_value": "" + }, { + "type": "virtualFolderPicker", + "m_label": "Virtual Folder:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Centre:", + "m_selection": 1, + "m_options": ["", "wxBOTH", "wxVERTICAL", "wxHORIZONTAL"] + }, { + "type": "string", + "m_label": "Inherited Class", + "m_value": "" + }, { + "type": "string", + "m_label": "File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Class Decorator", + "m_value": "" + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 0, + "border": 0, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "mainSizer" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4469, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxDV_SINGLE"], + "m_sizerFlags": ["wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_dvListCtrl" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_DATAVIEW_ITEM_ACTIVATED", + "m_eventClass": "wxDataViewEvent", + "m_eventHandler": "wxDataViewEventHandler", + "m_functionNameAndSignature": "OnItemActivated(wxDataViewEvent& event)", + "m_description": "Process a wxEVT_COMMAND_DATAVIEW_ITEM_ACTIVATED event.\nThis event is triggered by double clicking an item or pressing some special key (usually \"Enter\") when it is focused", + "m_noBody": false + }, { + "m_eventName": "wxEVT_COMMAND_DATAVIEW_ITEM_CONTEXT_MENU", + "m_eventClass": "wxDataViewEvent", + "m_eventHandler": "wxDataViewEventHandler", + "m_functionNameAndSignature": "OnMenu(wxDataViewEvent& event)", + "m_description": "Process a wxEVT_COMMAND_DATAVIEW_ITEM_CONTEXT_MENU event generated when the user right clicks inside the control.\nNotice that this menu is generated even if the click didn't occur on any valid item, in this case wxDataViewEvent::GetItem() simply returns an invalid item.", + "m_noBody": false + }], + "m_children": [{ + "m_type": 4472, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "Level" + }, { + "type": "string", + "m_label": "Width:", + "m_value": "-1" + }, { + "type": "choice", + "m_label": "Column Type", + "m_selection": 3, + "m_options": ["bitmap", "check", "text", "icontext", "progress", "choice"] + }, { + "type": "multi-string", + "m_label": "Choices:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Alignment", + "m_selection": 0, + "m_options": ["wxALIGN_LEFT", "wxALIGN_RIGHT", "wxALIGN_CENTER"] + }, { + "type": "choice", + "m_label": "Cell Mode", + "m_selection": 0, + "m_options": ["wxDATAVIEW_CELL_INERT", "wxDATAVIEW_CELL_ACTIVATABLE", "wxDATAVIEW_CELL_EDITABLE"] + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4472, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "Address" + }, { + "type": "string", + "m_label": "Width:", + "m_value": "-1" + }, { + "type": "choice", + "m_label": "Column Type", + "m_selection": 2, + "m_options": ["bitmap", "check", "text", "icontext", "progress", "choice"] + }, { + "type": "multi-string", + "m_label": "Choices:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Alignment", + "m_selection": 0, + "m_options": ["wxALIGN_LEFT", "wxALIGN_RIGHT", "wxALIGN_CENTER"] + }, { + "type": "choice", + "m_label": "Cell Mode", + "m_selection": 0, + "m_options": ["wxDATAVIEW_CELL_INERT", "wxDATAVIEW_CELL_ACTIVATABLE", "wxDATAVIEW_CELL_EDITABLE"] + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4472, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "Function" + }, { + "type": "string", + "m_label": "Width:", + "m_value": "200" + }, { + "type": "choice", + "m_label": "Column Type", + "m_selection": 2, + "m_options": ["bitmap", "check", "text", "icontext", "progress", "choice"] + }, { + "type": "multi-string", + "m_label": "Choices:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Alignment", + "m_selection": 0, + "m_options": ["wxALIGN_LEFT", "wxALIGN_RIGHT", "wxALIGN_CENTER"] + }, { + "type": "choice", + "m_label": "Cell Mode", + "m_selection": 0, + "m_options": ["wxDATAVIEW_CELL_INERT", "wxDATAVIEW_CELL_ACTIVATABLE", "wxDATAVIEW_CELL_EDITABLE"] + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4472, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "File" + }, { + "type": "string", + "m_label": "Width:", + "m_value": "400" + }, { + "type": "choice", + "m_label": "Column Type", + "m_selection": 2, + "m_options": ["bitmap", "check", "text", "icontext", "progress", "choice"] + }, { + "type": "multi-string", + "m_label": "Choices:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Alignment", + "m_selection": 0, + "m_options": ["wxALIGN_LEFT", "wxALIGN_RIGHT", "wxALIGN_CENTER"] + }, { + "type": "choice", + "m_label": "Cell Mode", + "m_selection": 0, + "m_options": ["wxDATAVIEW_CELL_INERT", "wxDATAVIEW_CELL_ACTIVATABLE", "wxDATAVIEW_CELL_EDITABLE"] + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4472, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "Line" + }, { + "type": "string", + "m_label": "Width:", + "m_value": "-1" + }, { + "type": "choice", + "m_label": "Column Type", + "m_selection": 2, + "m_options": ["bitmap", "check", "text", "icontext", "progress", "choice"] + }, { + "type": "multi-string", + "m_label": "Choices:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Alignment", + "m_selection": 0, + "m_options": ["wxALIGN_LEFT", "wxALIGN_RIGHT", "wxALIGN_CENTER"] + }, { + "type": "choice", + "m_label": "Cell Mode", + "m_selection": 0, + "m_options": ["wxDATAVIEW_CELL_INERT", "wxDATAVIEW_CELL_ACTIVATABLE", "wxDATAVIEW_CELL_EDITABLE"] + }], + "m_events": [], + "m_children": [] + }] + }] + }] + }, { + "m_type": 4481, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "DebuggerBtImgList" + }, { + "type": "string", + "m_label": "File:", + "m_value": "" + }, { + "type": "virtualFolderPicker", + "m_label": "Virtual Folder:", + "m_path": "CodeLiteIDE:Debugger" + }, { + "type": "string", + "m_label": "Class Decorator", + "m_value": "" + }, { + "type": "integer", + "m_label": "Bitmap Size:", + "m_value": 16 + }, { + "type": "bool", + "m_label": "Bitmap Mask", + "m_value": true + }], + "m_events": [], + "m_children": [{ + "m_type": 4482, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "arrowActive" + }, { + "type": "filePicker", + "m_label": "Bitmap File:", + "m_path": "../codelite-icons/toolbars/16/standard/forward.png" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4482, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "arrowInactive" + }, { + "type": "filePicker", + "m_label": "Bitmap File:", + "m_path": "../codelite-icons/toolbars/16/standard/forward-disabled.png" + }], + "m_events": [], + "m_children": [] + }] + }] } \ No newline at end of file diff -Nru codelite-8.0.1+dfsg2/formbuilder/nameanddescdlg.fbp codelite-9.0+dfsg/formbuilder/nameanddescdlg.fbp --- codelite-8.0.1+dfsg2/formbuilder/nameanddescdlg.fbp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/formbuilder/nameanddescdlg.fbp 1970-01-01 00:00:00.000000000 +0000 @@ -1,635 +0,0 @@ - - - - - - C++ - 1 - source_name - 0 - UTF-8 - connect - nameanddescbasedlg - 1000 - none - 1 - NameAndDescDlg - - ../Plugin - - 1 - 1 - 0 - 0 - - - wxBOTH - - 1 - impl_virtual - - - - 0 - wxID_ANY - - - NameAndDescBaseDlg - - 594,220 - wxDEFAULT_DIALOG_STYLE - - Save Project As Template - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - bSizer1 - wxVERTICAL - none - - 5 - wxEXPAND - 0 - - 2 - wxBOTH - 1 - - 0 - - fgSizer1 - wxFLEX_GROWMODE_SPECIFIED - none - 2 - 0 - - 5 - wxALL|wxALIGN_CENTER_VERTICAL - 0 - - - - 1 - - - 0 - wxID_ANY - Project name: - - - m_staticText3 - protected - - - - - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL|wxEXPAND - 0 - - - - 1 - - - 0 - wxID_ANY - - 0 - - m_textCtrlName - protected - - - - - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL|wxALIGN_CENTER_VERTICAL - 0 - - - - 1 - - - 0 - wxID_ANY - Project category: - - - m_staticText4 - protected - - - - - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL|wxEXPAND - 0 - - - - - 1 - - - 0 - wxID_ANY - - - m_choiceType - protected - - - - - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND - 1 - - - bSizer3 - wxVERTICAL - none - - 5 - wxTOP|wxRIGHT|wxLEFT - 0 - - - - 1 - - - 0 - wxID_ANY - Description: - - - m_staticText2 - protected - - - - - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL|wxEXPAND - 1 - - - - 1 - - - 0 - wxID_ANY - - 0 - - m_textCtrlDescription - protected - - - wxTE_MULTILINE - - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND | wxALL - 0 - - - - 1 - - - 0 - wxID_ANY - - - m_staticline1 - protected - - - wxLI_HORIZONTAL - - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALIGN_CENTER_HORIZONTAL - 0 - - - bSizer2 - wxHORIZONTAL - none - - 5 - wxALL - 0 - - - - 1 - 1 - - - 0 - wxID_OK - &OK - - - m_buttonOk - protected - - - - - - - wxFILTER_NONE - wxDefaultValidator - - - - - OnButtonOK - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL - 0 - - - - 0 - 1 - - - 0 - wxID_CANCEL - &Cancel - - - m_buttonCancel - protected - - - - - - - wxFILTER_NONE - wxDefaultValidator - - - - - OnButtonCancel - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff -Nru codelite-8.0.1+dfsg2/formbuilder/NewToolBase.wxcp codelite-9.0+dfsg/formbuilder/NewToolBase.wxcp --- codelite-8.0.1+dfsg2/formbuilder/NewToolBase.wxcp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/formbuilder/NewToolBase.wxcp 2015-10-11 13:56:07.000000000 +0000 @@ -72,6 +72,10 @@ "m_label": "Style:", "m_value": "" }, { + "type": "bool", + "m_label": "Enable Window Persistency:", + "m_value": true + }, { "type": "string", "m_label": "Title:", "m_value": "External Tool" @@ -128,6 +132,10 @@ "m_sizerFlags": [], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer1" }, { @@ -151,6 +159,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "fgSizer1" }, { @@ -285,7 +297,7 @@ }, { "type": "multi-string", "m_label": "Tooltip:", - "m_value": "" + "m_value": "Identify this tool with an ID from the given list" }, { "type": "colour", "m_label": "Bg Colour:", @@ -461,7 +473,7 @@ }, { "type": "multi-string", "m_label": "Tooltip:", - "m_value": "The name is used to identify this tool in the 'External Tools' toobar" + "m_value": "The name is used to identify this tool in the 'External Tools' toolbar" }, { "type": "colour", "m_label": "Bg Colour:", @@ -642,7 +654,7 @@ }, { "type": "multi-string", "m_label": "Tooltip:", - "m_value": "" + "m_value": "Path to the executable to run" }, { "type": "colour", "m_label": "Bg Colour:", @@ -698,7 +710,7 @@ }, { "type": "bool", "m_label": "Auto Complete Files:", - "m_value": false + "m_value": true }], "m_events": [], "m_children": [] @@ -899,7 +911,7 @@ }, { "type": "multi-string", "m_label": "Tooltip:", - "m_value": "" + "m_value": "Set the working directory for this tool" }, { "type": "colour", "m_label": "Bg Colour:", @@ -951,7 +963,7 @@ }, { "type": "bool", "m_label": "Auto Complete Directories:", - "m_value": false + "m_value": true }, { "type": "bool", "m_label": "Auto Complete Files:", @@ -1156,7 +1168,7 @@ }, { "type": "multi-string", "m_label": "Tooltip:", - "m_value": "" + "m_value": "Set a list of arguments to pass to the tool" }, { "type": "colour", "m_label": "Bg Colour:", @@ -1246,6 +1258,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "sbSizer1" }, { @@ -1273,6 +1289,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "fgSizer2" }, { @@ -1831,6 +1851,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "sbSizer2" }, { @@ -1875,7 +1899,7 @@ }, { "type": "multi-string", "m_label": "Tooltip:", - "m_value": "" + "m_value": "Before executing this tool, save all files" }, { "type": "colour", "m_label": "Bg Colour:", @@ -1919,81 +1943,6 @@ }, { "type": "bool", "m_label": "Value:", - "m_value": false - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4415, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_checkBoxCaptureProcessOutput" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "Capture process output" - }, { - "type": "bool", - "m_label": "Value:", "m_value": false }], "m_events": [], diff -Nru codelite-8.0.1+dfsg2/formbuilder/quickdebug.wxcp codelite-9.0+dfsg/formbuilder/quickdebug.wxcp --- codelite-8.0.1+dfsg2/formbuilder/quickdebug.wxcp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/formbuilder/quickdebug.wxcp 2015-10-11 13:56:07.000000000 +0000 @@ -72,6 +72,10 @@ "m_label": "Style:", "m_value": "" }, { + "type": "bool", + "m_label": "Enable Window Persistency:", + "m_value": true + }, { "type": "string", "m_label": "Title:", "m_value": "Quick Debug" @@ -128,6 +132,10 @@ "m_sizerFlags": [], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer1" }, { @@ -151,6 +159,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer3" }, { @@ -174,6 +186,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "fgSizer1" }, { diff -Nru codelite-8.0.1+dfsg2/formbuilder/rename_symbool_dlg.wxcp codelite-9.0+dfsg/formbuilder/rename_symbool_dlg.wxcp --- codelite-8.0.1+dfsg2/formbuilder/rename_symbool_dlg.wxcp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/formbuilder/rename_symbool_dlg.wxcp 2015-10-11 13:56:07.000000000 +0000 @@ -1,2083 +1,2175 @@ { - "metadata": { - "m_generatedFilesDir": "../LiteEditor/", - "m_objCounter": 55, - "m_includeFiles": [], - "m_bitmapFunction": "wxCF5E0InitBitmapResources", - "m_bitmapsFile": "rename_symbool_dlg_formbuilder_bitmaps.cpp", - "m_GenerateCodeTypes": 1997052121, - "m_outputFileName": "rename_symbool_dlg", - "m_firstWindowId": 1000, - "m_useEnum": true, - "m_templateClasses": [] - }, - "windows": [{ - "m_type": 4421, - "proportion": 0, - "border": 0, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": ["wxDEFAULT_DIALOG_STYLE", "wxRESIZE_BORDER"], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "RenameSymbolBase" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Title:", - "m_value": "Rename Symbol" - }, { - "type": "virtualFolderPicker", - "m_label": "Virtual Folder:", - "m_path": "" - }, { - "type": "choice", - "m_label": "Centre:", - "m_selection": 0, - "m_options": ["", "wxBOTH", "wxVERTICAL", "wxHORIZONTAL"] - }, { - "type": "string", - "m_label": "Inherited Class", - "m_value": "RenameSymbol" - }, { - "type": "string", - "m_label": "File:", - "m_value": "renamesymboldlg" - }, { - "type": "string", - "m_label": "Class Decorator", - "m_value": "" - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File (16x16) :", - "m_path": "" - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File (32x32) :", - "m_path": "" - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File (64x64) :", - "m_path": "" - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File (128x128):", - "m_path": "" - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File (256x256):", - "m_path": "" - }], - "m_events": [], - "m_children": [{ - "m_type": 4401, - "proportion": 0, - "border": 0, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "bSizer1" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4401, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "bSizer4" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 1, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4405, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT", "wxALIGN_CENTER_VERTICAL"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_staticText31" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Label:", - "m_value": "New Symbol Name:" - }, { - "type": "string", - "m_label": "Wrap:", - "m_value": "-1" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4406, - "proportion": 1, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_textCtrlNewName" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": true - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Value:", - "m_value": "" - }, { - "type": "string", - "m_label": "Max Length:", - "m_value": "0" - }, { - "type": "bool", - "m_label": "Auto Complete Directories:", - "m_value": false - }, { - "type": "bool", - "m_label": "Auto Complete Files:", - "m_value": false - }], - "m_events": [], - "m_children": [] - }] - }, { - "m_type": 4447, - "proportion": 1, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": ["wxSP_LIVE_UPDATE", "wxSP_NO_XP_THEME", "wxSP_3DSASH"], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_splitter7" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Split Mode:", - "m_selection": 1, - "m_options": ["wxSPLIT_HORIZONTAL", "wxSPLIT_VERTICAL"] - }, { - "type": "string", - "m_label": "Sash Gravity:", - "m_value": "0.5" - }, { - "type": "string", - "m_label": "Minimum Pane Size:", - "m_value": "10" - }, { - "type": "string", - "m_label": "Sash Position:", - "m_value": "0" - }], - "m_events": [], - "m_children": [{ - "m_type": 4448, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": ["wxTAB_TRAVERSAL"], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_splitterPage11" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }], - "m_events": [], - "m_children": [{ - "m_type": 4401, - "proportion": 1, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "bSizer2" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4469, - "proportion": 1, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": ["wxDV_ROW_LINES", "wxDV_SINGLE"], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_dvListCtrl" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }], - "m_events": [{ - "m_eventName": "wxEVT_COMMAND_DATAVIEW_SELECTION_CHANGED", - "m_eventClass": "wxDataViewEvent", - "m_eventHandler": "wxDataViewEventHandler", - "m_functionNameAndSignature": "OnSelection(wxDataViewEvent& event)", - "m_description": "Process a wxEVT_COMMAND_DATAVIEW_SELECTION_CHANGED event", - "m_noBody": false - }], - "m_children": [{ - "m_type": 4472, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "?" - }, { - "type": "string", - "m_label": "Width:", - "m_value": "-2" - }, { - "type": "choice", - "m_label": "Column Type", - "m_selection": 1, - "m_options": ["bitmap", "check", "text", "icontext", "progress", "choice"] - }, { - "type": "multi-string", - "m_label": "Choices:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Alignment", - "m_selection": 0, - "m_options": ["wxALIGN_LEFT", "wxALIGN_RIGHT", "wxALIGN_CENTER"] - }, { - "type": "choice", - "m_label": "Cell Mode", - "m_selection": 1, - "m_options": ["wxDATAVIEW_CELL_INERT", "wxDATAVIEW_CELL_ACTIVATABLE", "wxDATAVIEW_CELL_EDITABLE"] - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4472, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "Location" - }, { - "type": "string", - "m_label": "Width:", - "m_value": "-2" - }, { - "type": "choice", - "m_label": "Column Type", - "m_selection": 2, - "m_options": ["bitmap", "check", "text", "icontext", "progress", "choice"] - }, { - "type": "multi-string", - "m_label": "Choices:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Alignment", - "m_selection": 0, - "m_options": ["wxALIGN_LEFT", "wxALIGN_RIGHT", "wxALIGN_CENTER"] - }, { - "type": "choice", - "m_label": "Cell Mode", - "m_selection": 0, - "m_options": ["wxDATAVIEW_CELL_INERT", "wxDATAVIEW_CELL_ACTIVATABLE", "wxDATAVIEW_CELL_EDITABLE"] - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4472, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "Position" - }, { - "type": "string", - "m_label": "Width:", - "m_value": "-2" - }, { - "type": "choice", - "m_label": "Column Type", - "m_selection": 2, - "m_options": ["bitmap", "check", "text", "icontext", "progress", "choice"] - }, { - "type": "multi-string", - "m_label": "Choices:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Alignment", - "m_selection": 0, - "m_options": ["wxALIGN_LEFT", "wxALIGN_RIGHT", "wxALIGN_CENTER"] - }, { - "type": "choice", - "m_label": "Cell Mode", - "m_selection": 0, - "m_options": ["wxDATAVIEW_CELL_INERT", "wxDATAVIEW_CELL_ACTIVATABLE", "wxDATAVIEW_CELL_EDITABLE"] - }], - "m_events": [], - "m_children": [] - }] - }, { - "m_type": 4401, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALIGN_CENTER_HORIZONTAL"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "boxSizer53" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 1, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4400, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND", "wxALIGN_LEFT"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "ID_CHECK_ALL" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_buttonCheckAll" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "&Check All" - }, { - "type": "bool", - "m_label": "Default Button", - "m_value": false - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File:", - "m_path": "" - }, { - "type": "string", - "m_label": "Margins:", - "m_value": "2,2" - }], - "m_events": [{ - "m_eventName": "wxEVT_COMMAND_BUTTON_CLICKED", - "m_eventClass": "wxCommandEvent", - "m_eventHandler": "wxCommandEventHandler", - "m_functionNameAndSignature": "OnCheckAll(wxCommandEvent& event)", - "m_description": "Process a wxEVT_COMMAND_BUTTON_CLICKED event, when the button is clicked.", - "m_noBody": false - }], - "m_children": [] - }, { - "m_type": 4400, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND", "wxALIGN_LEFT"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "ID_UNCHECK_ALL" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_buttonUncheckAll" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "&Uncheck All" - }, { - "type": "bool", - "m_label": "Default Button", - "m_value": false - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File:", - "m_path": "" - }, { - "type": "string", - "m_label": "Margins:", - "m_value": "2,2" - }], - "m_events": [{ - "m_eventName": "wxEVT_COMMAND_BUTTON_CLICKED", - "m_eventClass": "wxCommandEvent", - "m_eventHandler": "wxCommandEventHandler", - "m_functionNameAndSignature": "OnUncheckAll(wxCommandEvent& event)", - "m_description": "Process a wxEVT_COMMAND_BUTTON_CLICKED event, when the button is clicked.", - "m_noBody": false - }], - "m_children": [] - }] - }] - }] - }, { - "m_type": 4448, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": ["wxTAB_TRAVERSAL"], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_splitterPage15" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }], - "m_events": [], - "m_children": [{ - "m_type": 4401, - "proportion": 1, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "boxSizer3" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4466, - "proportion": 1, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_preview" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Fold Margin", - "m_value": false - }, { - "type": "bool", - "m_label": "Line Number Margin", - "m_value": true - }, { - "type": "bool", - "m_label": "Separator Margin", - "m_value": false - }, { - "type": "bool", - "m_label": "Symbol Margin", - "m_value": false - }, { - "type": "choice", - "m_label": "Wrap Text", - "m_selection": 0, - "m_options": ["None", "Word", "Char"] - }, { - "type": "choice", - "m_label": "Indentation Guides", - "m_selection": 0, - "m_options": ["None", "Real", "Look Forward", "Look Both"] - }, { - "type": "choice", - "m_label": "EOL Mode", - "m_selection": 3, - "m_options": ["CRLF", "CR", "LF", "Default"] - }, { - "type": "bool", - "m_label": "Display EOL Markers", - "m_value": false - }, { - "type": "choice", - "m_label": "Lexer", - "m_selection": 20, - "m_options": ["wxSTC_LEX_ABAQUS", "wxSTC_LEX_ADA", "wxSTC_LEX_APDL", "wxSTC_LEX_ASM", "wxSTC_LEX_ASN1", "wxSTC_LEX_ASYMPTOTE", "wxSTC_LEX_AUTOMATIC", "wxSTC_LEX_AVE", "wxSTC_LEX_BAAN", "wxSTC_LEX_BASH", "wxSTC_LEX_BATCH", "wxSTC_LEX_BLITZBASIC", "wxSTC_LEX_BULLANT", "wxSTC_LEX_CAML", "wxSTC_LEX_CLW", "wxSTC_LEX_CLWNOCASE", "wxSTC_LEX_CMAKE", "wxSTC_LEX_COBOL", "wxSTC_LEX_CONF", "wxSTC_LEX_CONTAINER", "wxSTC_LEX_CPP", "wxSTC_LEX_CPPNOCASE", "wxSTC_LEX_CSOUND", "wxSTC_LEX_CSS", "wxSTC_LEX_D", "wxSTC_LEX_DIFF", "wxSTC_LEX_EIFFEL", "wxSTC_LEX_EIFFELKW", "wxSTC_LEX_ERLANG", "wxSTC_LEX_ERRORLIST", "wxSTC_LEX_ESCRIPT", "wxSTC_LEX_F77", "wxSTC_LEX_FLAGSHIP", "wxSTC_LEX_FORTH", "wxSTC_LEX_FORTRAN", "wxSTC_LEX_FREEBASIC", "wxSTC_LEX_GAP", "wxSTC_LEX_GUI4CLI", "wxSTC_LEX_HASKELL", "wxSTC_LEX_HTML", "wxSTC_LEX_INNOSETUP", "wxSTC_LEX_KIX", "wxSTC_LEX_LATEX", "wxSTC_LEX_LISP", "wxSTC_LEX_LOT", "wxSTC_LEX_LOUT", "wxSTC_LEX_LUA", "wxSTC_LEX_MAGIK", "wxSTC_LEX_MAKEFILE", "wxSTC_LEX_MARKDOWN", "wxSTC_LEX_MATLAB", "wxSTC_LEX_METAPOST", "wxSTC_LEX_MMIXAL", "wxSTC_LEX_MSSQL", "wxSTC_LEX_MYSQL", "wxSTC_LEX_NIMROD", "wxSTC_LEX_NNCRONTAB", "wxSTC_LEX_NSIS", "wxSTC_LEX_NULL", "wxSTC_LEX_OCTAVE", "wxSTC_LEX_OPAL", "wxSTC_LEX_PASCAL", "wxSTC_LEX_PERL", "wxSTC_LEX_PHPSCRIPT", "wxSTC_LEX_PLM", "wxSTC_LEX_PO", "wxSTC_LEX_POV", "wxSTC_LEX_POWERBASIC", "wxSTC_LEX_POWERPRO", "wxSTC_LEX_POWERSHELL", "wxSTC_LEX_PROGRESS", "wxSTC_LEX_PROPERTIES", "wxSTC_LEX_PS", "wxSTC_LEX_PUREBASIC", "wxSTC_LEX_PYTHON", "wxSTC_LEX_R", "wxSTC_LEX_REBOL", "wxSTC_LEX_RUBY", "wxSTC_LEX_SCRIPTOL", "wxSTC_LEX_SMALLTALK", "wxSTC_LEX_SML", "wxSTC_LEX_SORCUS", "wxSTC_LEX_SPECMAN", "wxSTC_LEX_SPICE", "wxSTC_LEX_SQL", "wxSTC_LEX_TACL", "wxSTC_LEX_TADS3", "wxSTC_LEX_TAL", "wxSTC_LEX_TCL", "wxSTC_LEX_TEX", "wxSTC_LEX_VB", "wxSTC_LEX_VBSCRIPT", "wxSTC_LEX_VERILOG", "wxSTC_LEX_VHDL", "wxSTC_LEX_XCODE", "wxSTC_LEX_XML", "wxSTC_LEX_YAML"] - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Keywords Set 1", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Keywords Set 2", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Keywords Set 3", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Keywords Set 4", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Keywords Set 5", - "m_value": "" - }], - "m_events": [], - "m_children": [] - }] - }] - }] - }, { - "m_type": 4418, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": ["wxLI_HORIZONTAL"], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_staticLine55" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4401, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_HORIZONTAL"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "bSizer3" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 1, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4400, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_OK" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_buttonOk" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "&Rename" - }, { - "type": "bool", - "m_label": "Default Button", - "m_value": true - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File:", - "m_path": "" - }, { - "type": "string", - "m_label": "Margins:", - "m_value": "2,2" - }], - "m_events": [{ - "m_eventName": "wxEVT_COMMAND_BUTTON_CLICKED", - "m_eventClass": "wxCommandEvent", - "m_eventHandler": "wxCommandEventHandler", - "m_functionNameAndSignature": "OnButtonOK(wxCommandEvent& event)", - "m_description": "Process a wxEVT_COMMAND_BUTTON_CLICKED event, when the button is clicked.", - "m_noBody": false - }], - "m_children": [] - }, { - "m_type": 4400, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_CANCEL" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_buttonCancel" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "&Cancel" - }, { - "type": "bool", - "m_label": "Default Button", - "m_value": false - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File:", - "m_path": "" - }, { - "type": "string", - "m_label": "Margins:", - "m_value": "2,2" - }], - "m_events": [], - "m_children": [] - }] - }] - }] - }, { - "m_type": 4421, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": ["wxDEFAULT_DIALOG_STYLE", "wxCAPTION", "wxRESIZE_BORDER"], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "SelectProjectsDlgBase" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Title:", - "m_value": "Rename Symbol Scope" - }, { - "type": "virtualFolderPicker", - "m_label": "Virtual Folder:", - "m_path": "CodeLiteIDE:Dialogs:CodeCompletion" - }, { - "type": "choice", - "m_label": "Centre:", - "m_selection": 1, - "m_options": ["", "wxBOTH", "wxVERTICAL", "wxHORIZONTAL"] - }, { - "type": "string", - "m_label": "Inherited Class", - "m_value": "SelectProjectsDlg" - }, { - "type": "string", - "m_label": "File:", - "m_value": "SelectProjectsDlg" - }, { - "type": "string", - "m_label": "Class Decorator", - "m_value": "" - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File (16x16) :", - "m_path": "" - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File (32x32) :", - "m_path": "" - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File (64x64) :", - "m_path": "" - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File (128x128):", - "m_path": "" - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File (256x256):", - "m_path": "" - }], - "m_events": [], - "m_children": [{ - "m_type": 4401, - "proportion": 1, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "boxSizer25" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4471, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": ["wxBORDER_THEME"], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_banner45" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "CaptionText" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Title:", - "m_value": "Select Projects" - }, { - "type": "multi-string", - "m_label": "Message:", - "m_value": "Select the 'rename symbol' project scope" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["wxTOP", "wxBOTTOM", "wxLEFT", "wxRIGHT"] - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File:", - "m_path": "" - }, { - "type": "colour", - "m_label": "Gradient Start", - "colour": "ActiveCaption" - }, { - "type": "colour", - "m_label": "Gradient End", - "colour": "ActiveCaption" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4401, - "proportion": 1, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "boxSizer33" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 1, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4425, - "proportion": 1, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": ["wxLB_SINGLE"], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_checkListBoxProjects" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Choices:", - "m_value": "" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4401, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "boxSizer35" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4400, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "ID_CHECK_ALL" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_button37" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "&Check All" - }, { - "type": "bool", - "m_label": "Default Button", - "m_value": false - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File:", - "m_path": "" - }, { - "type": "string", - "m_label": "Margins:", - "m_value": "2,2" - }], - "m_events": [{ - "m_eventName": "wxEVT_COMMAND_BUTTON_CLICKED", - "m_eventClass": "wxCommandEvent", - "m_eventHandler": "wxCommandEventHandler", - "m_functionNameAndSignature": "OnSelectAll(wxCommandEvent& event)", - "m_description": "Process a wxEVT_COMMAND_BUTTON_CLICKED event, when the button is clicked.", - "m_noBody": false - }], - "m_children": [] - }, { - "m_type": 4400, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "ID_UNCHECK_ALL" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_button39" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "&Uncheck All" - }, { - "type": "bool", - "m_label": "Default Button", - "m_value": false - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File:", - "m_path": "" - }, { - "type": "string", - "m_label": "Margins:", - "m_value": "2,2" - }], - "m_events": [{ - "m_eventName": "wxEVT_COMMAND_BUTTON_CLICKED", - "m_eventClass": "wxCommandEvent", - "m_eventHandler": "wxCommandEventHandler", - "m_functionNameAndSignature": "OnUnSelectAll(wxCommandEvent& event)", - "m_description": "Process a wxEVT_COMMAND_BUTTON_CLICKED event, when the button is clicked.", - "m_noBody": false - }], - "m_children": [] - }] - }] - }, { - "m_type": 4401, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_HORIZONTAL"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "boxSizer27" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 1, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4400, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_OK" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_button29" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "&OK" - }, { - "type": "bool", - "m_label": "Default Button", - "m_value": true - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File:", - "m_path": "" - }, { - "type": "string", - "m_label": "Margins:", - "m_value": "2,2" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4400, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_CANCEL" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_button31" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "&Cancel" - }, { - "type": "bool", - "m_label": "Default Button", - "m_value": false - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File:", - "m_path": "" - }, { - "type": "string", - "m_label": "Margins:", - "m_value": "2,2" - }], - "m_events": [], - "m_children": [] - }] - }] - }] - }] + "metadata": { + "m_generatedFilesDir": "../LiteEditor/", + "m_objCounter": 55, + "m_includeFiles": [], + "m_bitmapFunction": "wxCF5E0InitBitmapResources", + "m_bitmapsFile": "rename_symbool_dlg_formbuilder_bitmaps.cpp", + "m_GenerateCodeTypes": 1997052121, + "m_outputFileName": "rename_symbool_dlg", + "m_firstWindowId": 1000, + "m_useEnum": true, + "m_templateClasses": [] + }, + "windows": [{ + "m_type": 4421, + "proportion": 0, + "border": 0, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": ["wxDEFAULT_DIALOG_STYLE", "wxRESIZE_BORDER"], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "RenameSymbolBase" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Enable Window Persistency:", + "m_value": true + }, { + "type": "string", + "m_label": "Title:", + "m_value": "Rename Symbol" + }, { + "type": "virtualFolderPicker", + "m_label": "Virtual Folder:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Centre:", + "m_selection": 0, + "m_options": ["", "wxBOTH", "wxVERTICAL", "wxHORIZONTAL"] + }, { + "type": "string", + "m_label": "Inherited Class", + "m_value": "RenameSymbol" + }, { + "type": "string", + "m_label": "File:", + "m_value": "renamesymboldlg" + }, { + "type": "string", + "m_label": "Class Decorator", + "m_value": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (16x16) :", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (32x32) :", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (64x64) :", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (128x128):", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (256x256):", + "m_path": "" + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 0, + "border": 0, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "bSizer1" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "bSizer4" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 1, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4405, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT", "wxALIGN_CENTER_VERTICAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_staticText31" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Label:", + "m_value": "New Symbol Name:" + }, { + "type": "string", + "m_label": "Wrap:", + "m_value": "-1" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4406, + "proportion": 1, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_textCtrlNewName" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": true + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Value:", + "m_value": "" + }, { + "type": "string", + "m_label": "Text Hint", + "m_value": "" + }, { + "type": "string", + "m_label": "Max Length:", + "m_value": "0" + }, { + "type": "bool", + "m_label": "Auto Complete Directories:", + "m_value": false + }, { + "type": "bool", + "m_label": "Auto Complete Files:", + "m_value": false + }], + "m_events": [], + "m_children": [] + }] + }, { + "m_type": 4447, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxSP_LIVE_UPDATE", "wxSP_NO_XP_THEME", "wxSP_3DSASH"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_splitter7" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Split Mode:", + "m_selection": 1, + "m_options": ["wxSPLIT_HORIZONTAL", "wxSPLIT_VERTICAL"] + }, { + "type": "string", + "m_label": "Sash Gravity:", + "m_value": "0.5" + }, { + "type": "string", + "m_label": "Minimum Pane Size:", + "m_value": "10" + }, { + "type": "string", + "m_label": "Sash Position:", + "m_value": "0" + }], + "m_events": [], + "m_children": [{ + "m_type": 4448, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxTAB_TRAVERSAL"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_splitterPage11" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 1, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "bSizer2" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4469, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxDV_ROW_LINES", "wxDV_SINGLE"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_dvListCtrl" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_DATAVIEW_SELECTION_CHANGED", + "m_eventClass": "wxDataViewEvent", + "m_eventHandler": "wxDataViewEventHandler", + "m_functionNameAndSignature": "OnSelection(wxDataViewEvent& event)", + "m_description": "Process a wxEVT_COMMAND_DATAVIEW_SELECTION_CHANGED event", + "m_noBody": false + }], + "m_children": [{ + "m_type": 4472, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "?" + }, { + "type": "string", + "m_label": "Width:", + "m_value": "-2" + }, { + "type": "choice", + "m_label": "Column Type", + "m_selection": 1, + "m_options": ["bitmap", "check", "text", "icontext", "progress", "choice"] + }, { + "type": "multi-string", + "m_label": "Choices:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Alignment", + "m_selection": 0, + "m_options": ["wxALIGN_LEFT", "wxALIGN_RIGHT", "wxALIGN_CENTER"] + }, { + "type": "choice", + "m_label": "Cell Mode", + "m_selection": 1, + "m_options": ["wxDATAVIEW_CELL_INERT", "wxDATAVIEW_CELL_ACTIVATABLE", "wxDATAVIEW_CELL_EDITABLE"] + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4472, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "Location" + }, { + "type": "string", + "m_label": "Width:", + "m_value": "-2" + }, { + "type": "choice", + "m_label": "Column Type", + "m_selection": 2, + "m_options": ["bitmap", "check", "text", "icontext", "progress", "choice"] + }, { + "type": "multi-string", + "m_label": "Choices:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Alignment", + "m_selection": 0, + "m_options": ["wxALIGN_LEFT", "wxALIGN_RIGHT", "wxALIGN_CENTER"] + }, { + "type": "choice", + "m_label": "Cell Mode", + "m_selection": 0, + "m_options": ["wxDATAVIEW_CELL_INERT", "wxDATAVIEW_CELL_ACTIVATABLE", "wxDATAVIEW_CELL_EDITABLE"] + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4472, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "Position" + }, { + "type": "string", + "m_label": "Width:", + "m_value": "-2" + }, { + "type": "choice", + "m_label": "Column Type", + "m_selection": 2, + "m_options": ["bitmap", "check", "text", "icontext", "progress", "choice"] + }, { + "type": "multi-string", + "m_label": "Choices:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Alignment", + "m_selection": 0, + "m_options": ["wxALIGN_LEFT", "wxALIGN_RIGHT", "wxALIGN_CENTER"] + }, { + "type": "choice", + "m_label": "Cell Mode", + "m_selection": 0, + "m_options": ["wxDATAVIEW_CELL_INERT", "wxDATAVIEW_CELL_ACTIVATABLE", "wxDATAVIEW_CELL_EDITABLE"] + }], + "m_events": [], + "m_children": [] + }] + }, { + "m_type": 4401, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALIGN_CENTER_HORIZONTAL"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "boxSizer53" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 1, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4400, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND", "wxALIGN_LEFT"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "ID_CHECK_ALL" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_buttonCheckAll" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "&Check All" + }, { + "type": "bool", + "m_label": "Default Button", + "m_value": false + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Direction", + "m_selection": 0, + "m_options": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"] + }, { + "type": "string", + "m_label": "Margins:", + "m_value": "2,2" + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_BUTTON_CLICKED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnCheckAll(wxCommandEvent& event)", + "m_description": "Process a wxEVT_COMMAND_BUTTON_CLICKED event, when the button is clicked.", + "m_noBody": false + }], + "m_children": [] + }, { + "m_type": 4400, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND", "wxALIGN_LEFT"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "ID_UNCHECK_ALL" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_buttonUncheckAll" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "&Uncheck All" + }, { + "type": "bool", + "m_label": "Default Button", + "m_value": false + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Direction", + "m_selection": 0, + "m_options": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"] + }, { + "type": "string", + "m_label": "Margins:", + "m_value": "2,2" + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_BUTTON_CLICKED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnUncheckAll(wxCommandEvent& event)", + "m_description": "Process a wxEVT_COMMAND_BUTTON_CLICKED event, when the button is clicked.", + "m_noBody": false + }], + "m_children": [] + }] + }] + }] + }, { + "m_type": 4448, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxTAB_TRAVERSAL"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_splitterPage15" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 1, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "boxSizer3" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4466, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_preview" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Fold Margin", + "m_value": false + }, { + "type": "bool", + "m_label": "Line Number Margin", + "m_value": true + }, { + "type": "bool", + "m_label": "Separator Margin", + "m_value": false + }, { + "type": "bool", + "m_label": "Symbol Margin", + "m_value": false + }, { + "type": "choice", + "m_label": "Wrap Text", + "m_selection": 0, + "m_options": ["None", "Word", "Char"] + }, { + "type": "choice", + "m_label": "Indentation Guides", + "m_selection": 0, + "m_options": ["None", "Real", "Look Forward", "Look Both"] + }, { + "type": "choice", + "m_label": "EOL Mode", + "m_selection": 3, + "m_options": ["CRLF", "CR", "LF", "Default"] + }, { + "type": "bool", + "m_label": "Display EOL Markers", + "m_value": false + }, { + "type": "choice", + "m_label": "Lexer", + "m_selection": 20, + "m_options": ["wxSTC_LEX_ABAQUS", "wxSTC_LEX_ADA", "wxSTC_LEX_APDL", "wxSTC_LEX_ASM", "wxSTC_LEX_ASN1", "wxSTC_LEX_ASYMPTOTE", "wxSTC_LEX_AUTOMATIC", "wxSTC_LEX_AVE", "wxSTC_LEX_BAAN", "wxSTC_LEX_BASH", "wxSTC_LEX_BATCH", "wxSTC_LEX_BLITZBASIC", "wxSTC_LEX_BULLANT", "wxSTC_LEX_CAML", "wxSTC_LEX_CLW", "wxSTC_LEX_CLWNOCASE", "wxSTC_LEX_CMAKE", "wxSTC_LEX_COBOL", "wxSTC_LEX_CONF", "wxSTC_LEX_CONTAINER", "wxSTC_LEX_CPP", "wxSTC_LEX_CPPNOCASE", "wxSTC_LEX_CSOUND", "wxSTC_LEX_CSS", "wxSTC_LEX_D", "wxSTC_LEX_DIFF", "wxSTC_LEX_EIFFEL", "wxSTC_LEX_EIFFELKW", "wxSTC_LEX_ERLANG", "wxSTC_LEX_ERRORLIST", "wxSTC_LEX_ESCRIPT", "wxSTC_LEX_F77", "wxSTC_LEX_FLAGSHIP", "wxSTC_LEX_FORTH", "wxSTC_LEX_FORTRAN", "wxSTC_LEX_FREEBASIC", "wxSTC_LEX_GAP", "wxSTC_LEX_GUI4CLI", "wxSTC_LEX_HASKELL", "wxSTC_LEX_HTML", "wxSTC_LEX_INNOSETUP", "wxSTC_LEX_KIX", "wxSTC_LEX_LATEX", "wxSTC_LEX_LISP", "wxSTC_LEX_LOT", "wxSTC_LEX_LOUT", "wxSTC_LEX_LUA", "wxSTC_LEX_MAGIK", "wxSTC_LEX_MAKEFILE", "wxSTC_LEX_MARKDOWN", "wxSTC_LEX_MATLAB", "wxSTC_LEX_METAPOST", "wxSTC_LEX_MMIXAL", "wxSTC_LEX_MSSQL", "wxSTC_LEX_MYSQL", "wxSTC_LEX_NIMROD", "wxSTC_LEX_NNCRONTAB", "wxSTC_LEX_NSIS", "wxSTC_LEX_NULL", "wxSTC_LEX_OCTAVE", "wxSTC_LEX_OPAL", "wxSTC_LEX_PASCAL", "wxSTC_LEX_PERL", "wxSTC_LEX_PHPSCRIPT", "wxSTC_LEX_PLM", "wxSTC_LEX_PO", "wxSTC_LEX_POV", "wxSTC_LEX_POWERBASIC", "wxSTC_LEX_POWERPRO", "wxSTC_LEX_POWERSHELL", "wxSTC_LEX_PROGRESS", "wxSTC_LEX_PROPERTIES", "wxSTC_LEX_PS", "wxSTC_LEX_PUREBASIC", "wxSTC_LEX_PYTHON", "wxSTC_LEX_R", "wxSTC_LEX_REBOL", "wxSTC_LEX_RUBY", "wxSTC_LEX_SCRIPTOL", "wxSTC_LEX_SMALLTALK", "wxSTC_LEX_SML", "wxSTC_LEX_SORCUS", "wxSTC_LEX_SPECMAN", "wxSTC_LEX_SPICE", "wxSTC_LEX_SQL", "wxSTC_LEX_TACL", "wxSTC_LEX_TADS3", "wxSTC_LEX_TAL", "wxSTC_LEX_TCL", "wxSTC_LEX_TEX", "wxSTC_LEX_VB", "wxSTC_LEX_VBSCRIPT", "wxSTC_LEX_VERILOG", "wxSTC_LEX_VHDL", "wxSTC_LEX_XCODE", "wxSTC_LEX_XML", "wxSTC_LEX_YAML"] + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Keywords Set 1", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Keywords Set 2", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Keywords Set 3", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Keywords Set 4", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Keywords Set 5", + "m_value": "" + }], + "m_events": [], + "m_children": [] + }] + }] + }] + }, { + "m_type": 4418, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxLI_HORIZONTAL"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_staticLine55" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4401, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_HORIZONTAL"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "bSizer3" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 1, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4400, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_OK" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_buttonOk" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "&Rename" + }, { + "type": "bool", + "m_label": "Default Button", + "m_value": true + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Direction", + "m_selection": 0, + "m_options": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"] + }, { + "type": "string", + "m_label": "Margins:", + "m_value": "2,2" + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_BUTTON_CLICKED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnButtonOK(wxCommandEvent& event)", + "m_description": "Process a wxEVT_COMMAND_BUTTON_CLICKED event, when the button is clicked.", + "m_noBody": false + }], + "m_children": [] + }, { + "m_type": 4400, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_CANCEL" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_buttonCancel" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "&Cancel" + }, { + "type": "bool", + "m_label": "Default Button", + "m_value": false + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Direction", + "m_selection": 0, + "m_options": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"] + }, { + "type": "string", + "m_label": "Margins:", + "m_value": "2,2" + }], + "m_events": [], + "m_children": [] + }] + }] + }] + }, { + "m_type": 4421, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxDEFAULT_DIALOG_STYLE", "wxCAPTION", "wxRESIZE_BORDER"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "SelectProjectsDlgBase" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Enable Window Persistency:", + "m_value": true + }, { + "type": "string", + "m_label": "Title:", + "m_value": "Rename Symbol Scope" + }, { + "type": "virtualFolderPicker", + "m_label": "Virtual Folder:", + "m_path": "CodeLiteIDE:Dialogs:CodeCompletion" + }, { + "type": "choice", + "m_label": "Centre:", + "m_selection": 1, + "m_options": ["", "wxBOTH", "wxVERTICAL", "wxHORIZONTAL"] + }, { + "type": "string", + "m_label": "Inherited Class", + "m_value": "SelectProjectsDlg" + }, { + "type": "string", + "m_label": "File:", + "m_value": "SelectProjectsDlg" + }, { + "type": "string", + "m_label": "Class Decorator", + "m_value": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (16x16) :", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (32x32) :", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (64x64) :", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (128x128):", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (256x256):", + "m_path": "" + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "boxSizer25" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4471, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxBORDER_THEME"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_banner45" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "CaptionText" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Title:", + "m_value": "Select Projects" + }, { + "type": "multi-string", + "m_label": "Message:", + "m_value": "Select the 'rename symbol' project scope" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxTOP", "wxBOTTOM", "wxLEFT", "wxRIGHT"] + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "colour", + "m_label": "Gradient Start", + "colour": "ActiveCaption" + }, { + "type": "colour", + "m_label": "Gradient End", + "colour": "ActiveCaption" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4401, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "boxSizer33" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 1, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4425, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxLB_SINGLE"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_checkListBoxProjects" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Choices:", + "m_value": "" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4401, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "boxSizer35" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4400, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "ID_CHECK_ALL" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_button37" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "&Check All" + }, { + "type": "bool", + "m_label": "Default Button", + "m_value": false + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Direction", + "m_selection": 0, + "m_options": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"] + }, { + "type": "string", + "m_label": "Margins:", + "m_value": "2,2" + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_BUTTON_CLICKED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnSelectAll(wxCommandEvent& event)", + "m_description": "Process a wxEVT_COMMAND_BUTTON_CLICKED event, when the button is clicked.", + "m_noBody": false + }], + "m_children": [] + }, { + "m_type": 4400, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "ID_UNCHECK_ALL" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_button39" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "&Uncheck All" + }, { + "type": "bool", + "m_label": "Default Button", + "m_value": false + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Direction", + "m_selection": 0, + "m_options": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"] + }, { + "type": "string", + "m_label": "Margins:", + "m_value": "2,2" + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_BUTTON_CLICKED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnUnSelectAll(wxCommandEvent& event)", + "m_description": "Process a wxEVT_COMMAND_BUTTON_CLICKED event, when the button is clicked.", + "m_noBody": false + }], + "m_children": [] + }] + }] + }, { + "m_type": 4401, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_HORIZONTAL"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "boxSizer27" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 1, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4400, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_OK" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_button29" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "&OK" + }, { + "type": "bool", + "m_label": "Default Button", + "m_value": true + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Direction", + "m_selection": 0, + "m_options": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"] + }, { + "type": "string", + "m_label": "Margins:", + "m_value": "2,2" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4400, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_CANCEL" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_button31" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "&Cancel" + }, { + "type": "bool", + "m_label": "Default Button", + "m_value": false + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Direction", + "m_selection": 0, + "m_options": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"] + }, { + "type": "string", + "m_label": "Margins:", + "m_value": "2,2" + }], + "m_events": [], + "m_children": [] + }] + }] + }] + }] } \ No newline at end of file diff -Nru codelite-8.0.1+dfsg2/formbuilder/setters_getters.wxcp codelite-9.0+dfsg/formbuilder/setters_getters.wxcp --- codelite-8.0.1+dfsg2/formbuilder/setters_getters.wxcp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/formbuilder/setters_getters.wxcp 2015-10-11 13:56:07.000000000 +0000 @@ -1,972 +1,1166 @@ { - "metadata": { - "m_generatedFilesDir": "../LiteEditor/", - "m_objCounter": 8, - "m_includeFiles": [], - "m_bitmapFunction": "wxC8861InitBitmapResources", - "m_bitmapsFile": "setters_getters_formbuilder_bitmaps.cpp", - "m_GenerateCodeTypes": 1986042073, - "m_outputFileName": "setters_getters", - "m_firstWindowId": 1000, - "m_useEnum": true, - "m_templateClasses": [] - }, - "windows": [{ - "m_type": 4421, - "proportion": 0, - "border": 0, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": ["wxDEFAULT_DIALOG_STYLE", "wxRESIZE_BORDER"], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "SettersGettersBaseDlg" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Title:", - "m_value": "Generate Setters/Getters for class" - }, { - "type": "virtualFolderPicker", - "m_label": "Virtual Folder:", - "m_path": "" - }, { - "type": "choice", - "m_label": "Centre:", - "m_selection": 0, - "m_options": ["", "wxBOTH", "wxVERTICAL", "wxHORIZONTAL"] - }, { - "type": "string", - "m_label": "File:", - "m_value": "setters_getters_dlg" - }, { - "type": "string", - "m_label": "Inherited Class", - "m_value": "SettersGettersDlg" - }, { - "type": "string", - "m_label": "Class Decorator", - "m_value": "" - }], - "m_events": [], - "m_children": [{ - "m_type": 4401, - "proportion": 0, - "border": 0, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "bSizer1" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4401, - "proportion": 1, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "bSizer3" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4471, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": ["wxBORDER_THEME"], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_banner6" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "CaptionText" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Title:", - "m_value": "Generate Setters / Getters" - }, { - "type": "multi-string", - "m_label": "Message:", - "m_value": "Select the functions to generate from the list below" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["wxTOP", "wxBOTTOM", "wxLEFT", "wxRIGHT"] - }, { - "type": "filePicker", - "m_label": "Bitmap File:", - "m_path": "" - }, { - "type": "colour", - "m_label": "Gradient Start", - "colour": "ActiveCaption" - }, { - "type": "colour", - "m_label": "Gradient End", - "colour": "ActiveCaption" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4401, - "proportion": 1, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxEXPAND"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "bSizer4" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 1, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4473, - "proportion": 1, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": ["wxDV_VERT_RULES", "wxDV_ROW_LINES", "wxDV_SINGLE"], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "450,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_dataview" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Generated Model Class Name", - "m_value": "SettersGettersModel" - }, { - "type": "bool", - "m_label": "Container Item Has Columns", - "m_value": false - }], - "m_events": [{ - "m_eventName": "wxEVT_COMMAND_DATAVIEW_ITEM_VALUE_CHANGED", - "m_eventClass": "wxDataViewEvent", - "m_eventHandler": "wxDataViewEventHandler", - "m_functionNameAndSignature": "OnValueChanged(wxDataViewEvent& event)", - "m_description": "Process a wxEVT_COMMAND_DATAVIEW_ITEM_VALUE_CHANGED event" - }], - "m_children": [{ - "m_type": 4472, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "Name" - }, { - "type": "string", - "m_label": "Width:", - "m_value": "400" - }, { - "type": "choice", - "m_label": "Column Type", - "m_selection": 3, - "m_options": ["bitmap", "check", "text", "icontext", "progress", "choice"] - }, { - "type": "multi-string", - "m_label": "Choices:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Alignment", - "m_selection": 0, - "m_options": ["wxALIGN_LEFT", "wxALIGN_RIGHT", "wxALIGN_CENTER"] - }, { - "type": "choice", - "m_label": "Cell Mode", - "m_selection": 0, - "m_options": ["wxDATAVIEW_CELL_INERT", "wxDATAVIEW_CELL_ACTIVATABLE", "wxDATAVIEW_CELL_EDITABLE"] - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4472, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "?" - }, { - "type": "string", - "m_label": "Width:", - "m_value": "-2" - }, { - "type": "choice", - "m_label": "Column Type", - "m_selection": 1, - "m_options": ["bitmap", "check", "text", "icontext", "progress", "choice"] - }, { - "type": "multi-string", - "m_label": "Choices:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Alignment", - "m_selection": 0, - "m_options": ["wxALIGN_LEFT", "wxALIGN_RIGHT", "wxALIGN_CENTER"] - }, { - "type": "choice", - "m_label": "Cell Mode", - "m_selection": 1, - "m_options": ["wxDATAVIEW_CELL_INERT", "wxDATAVIEW_CELL_ACTIVATABLE", "wxDATAVIEW_CELL_EDITABLE"] - }], - "m_events": [], - "m_children": [] - }] - }, { - "m_type": 4401, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxEXPAND"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "bSizer5" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4400, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_buttonCheckAll" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "Check &All" - }, { - "type": "bool", - "m_label": "Default Button", - "m_value": true - }, { - "type": "filePicker", - "m_label": "Bitmap File:", - "m_path": "" - }, { - "type": "string", - "m_label": "Margins:", - "m_value": "2,2" - }], - "m_events": [{ - "m_eventName": "wxEVT_COMMAND_BUTTON_CLICKED", - "m_eventClass": "wxCommandEvent", - "m_eventHandler": "wxCommandEventHandler", - "m_functionNameAndSignature": "OnCheckAll(wxCommandEvent& event)", - "m_description": "Process a wxEVT_COMMAND_BUTTON_CLICKED event, when the button is clicked." - }], - "m_children": [] - }, { - "m_type": 4400, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_buttonUncheckAll" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "Clear" - }, { - "type": "bool", - "m_label": "Default Button", - "m_value": false - }, { - "type": "filePicker", - "m_label": "Bitmap File:", - "m_path": "" - }, { - "type": "string", - "m_label": "Margins:", - "m_value": "2,2" - }], - "m_events": [{ - "m_eventName": "wxEVT_COMMAND_BUTTON_CLICKED", - "m_eventClass": "wxCommandEvent", - "m_eventHandler": "wxCommandEventHandler", - "m_functionNameAndSignature": "OnUncheckAll(wxCommandEvent& event)", - "m_description": "Process a wxEVT_COMMAND_BUTTON_CLICKED event, when the button is clicked." - }], - "m_children": [] - }] - }] - }, { - "m_type": 4415, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_checkStartWithUppercase" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "Function name starts with an upper case letter" - }, { - "type": "bool", - "m_label": "Value:", - "m_value": false - }], - "m_events": [{ - "m_eventName": "wxEVT_COMMAND_CHECKBOX_CLICKED", - "m_eventClass": "wxCommandEvent", - "m_eventHandler": "wxCommandEventHandler", - "m_functionNameAndSignature": "OnCheckStartWithUpperCase(wxCommandEvent& event)", - "m_description": "Process a wxEVT_COMMAND_CHECKBOX_CLICKED event, when the checkbox is clicked." - }], - "m_children": [] - }, { - "m_type": 4415, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_checkBoxForamtFileWhenDone" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "Format the file when done" - }, { - "type": "bool", - "m_label": "Value:", - "m_value": false - }], - "m_events": [], - "m_children": [] - }] - }, { - "m_type": 4401, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_HORIZONTAL"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "bSizer2" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 1, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4400, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_OK" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_buttonOK" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "&OK" - }, { - "type": "bool", - "m_label": "Default Button", - "m_value": true - }, { - "type": "filePicker", - "m_label": "Bitmap File:", - "m_path": "" - }, { - "type": "string", - "m_label": "Margins:", - "m_value": "2,2" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4400, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_CANCEL" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_buttonCancel" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "Cancel" - }, { - "type": "bool", - "m_label": "Default Button", - "m_value": false - }, { - "type": "filePicker", - "m_label": "Bitmap File:", - "m_path": "" - }, { - "type": "string", - "m_label": "Margins:", - "m_value": "2,2" - }], - "m_events": [], - "m_children": [] - }] - }] - }] - }] + "metadata": { + "m_generatedFilesDir": "../LiteEditor/", + "m_objCounter": 20, + "m_includeFiles": [], + "m_bitmapFunction": "wxC8861InitBitmapResources", + "m_bitmapsFile": "setters_getters_formbuilder_bitmaps.cpp", + "m_GenerateCodeTypes": 1986042073, + "m_outputFileName": "setters_getters", + "m_firstWindowId": 1000, + "m_useEnum": true, + "m_templateClasses": [] + }, + "windows": [{ + "m_type": 4421, + "proportion": 0, + "border": 0, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": ["wxDEFAULT_DIALOG_STYLE", "wxRESIZE_BORDER"], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "SettersGettersBaseDlg" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Enable Window Persistency:", + "m_value": true + }, { + "type": "string", + "m_label": "Title:", + "m_value": "Generate Setters/Getters for class" + }, { + "type": "virtualFolderPicker", + "m_label": "Virtual Folder:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Centre:", + "m_selection": 0, + "m_options": ["", "wxBOTH", "wxVERTICAL", "wxHORIZONTAL"] + }, { + "type": "string", + "m_label": "Inherited Class", + "m_value": "SettersGettersDlg" + }, { + "type": "string", + "m_label": "File:", + "m_value": "setters_getters_dlg" + }, { + "type": "string", + "m_label": "Class Decorator", + "m_value": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (16x16) :", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (32x32) :", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (64x64) :", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (128x128):", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (256x256):", + "m_path": "" + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 0, + "border": 0, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "bSizer1" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 1, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "bSizer3" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4471, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxBORDER_THEME"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_banner6" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "CaptionText" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Title:", + "m_value": "Generate Setters / Getters" + }, { + "type": "multi-string", + "m_label": "Message:", + "m_value": "Select the functions to generate from the list below" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxTOP", "wxBOTTOM", "wxLEFT", "wxRIGHT"] + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "colour", + "m_label": "Gradient Start", + "colour": "ActiveCaption" + }, { + "type": "colour", + "m_label": "Gradient End", + "colour": "ActiveCaption" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4428, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxTE_PROCESS_ENTER"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_searchCtrl" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "Type to filter the options" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": true + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Value:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Show Cancel Button", + "m_value": false + }, { + "type": "bool", + "m_label": "Show Search Button", + "m_value": true + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_TEXT_UPDATED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnFilter(wxCommandEvent& event)", + "m_description": "Respond to a wxEVT_COMMAND_TEXT_UPDATED event, generated when the text changes.\nNotice that this event will be sent when the text controls contents changes\n - whether this is due to user input or comes from the program itself\n(for example, if SetValue() is called); see ChangeValue() for a function which does not send this event.", + "m_noBody": false + }], + "m_children": [] + }, { + "m_type": 4401, + "proportion": 1, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "bSizer4" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 1, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4473, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxDV_VERT_RULES", "wxDV_ROW_LINES", "wxDV_SINGLE"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "450,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_dataview" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Generated Model Class Name", + "m_value": "SettersGettersModel" + }, { + "type": "bool", + "m_label": "Container Item Has Columns", + "m_value": false + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_DATAVIEW_ITEM_VALUE_CHANGED", + "m_eventClass": "wxDataViewEvent", + "m_eventHandler": "wxDataViewEventHandler", + "m_functionNameAndSignature": "OnValueChanged(wxDataViewEvent& event)", + "m_description": "Process a wxEVT_COMMAND_DATAVIEW_ITEM_VALUE_CHANGED event", + "m_noBody": false + }], + "m_children": [{ + "m_type": 4472, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "X" + }, { + "type": "string", + "m_label": "Width:", + "m_value": "50" + }, { + "type": "choice", + "m_label": "Column Type", + "m_selection": 1, + "m_options": ["bitmap", "check", "text", "icontext", "progress", "choice"] + }, { + "type": "multi-string", + "m_label": "Choices:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Alignment", + "m_selection": 0, + "m_options": ["wxALIGN_LEFT", "wxALIGN_RIGHT", "wxALIGN_CENTER"] + }, { + "type": "choice", + "m_label": "Cell Mode", + "m_selection": 1, + "m_options": ["wxDATAVIEW_CELL_INERT", "wxDATAVIEW_CELL_ACTIVATABLE", "wxDATAVIEW_CELL_EDITABLE"] + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4472, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "Function" + }, { + "type": "string", + "m_label": "Width:", + "m_value": "400" + }, { + "type": "choice", + "m_label": "Column Type", + "m_selection": 3, + "m_options": ["bitmap", "check", "text", "icontext", "progress", "choice"] + }, { + "type": "multi-string", + "m_label": "Choices:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Alignment", + "m_selection": 0, + "m_options": ["wxALIGN_LEFT", "wxALIGN_RIGHT", "wxALIGN_CENTER"] + }, { + "type": "choice", + "m_label": "Cell Mode", + "m_selection": 0, + "m_options": ["wxDATAVIEW_CELL_INERT", "wxDATAVIEW_CELL_ACTIVATABLE", "wxDATAVIEW_CELL_EDITABLE"] + }], + "m_events": [], + "m_children": [] + }] + }, { + "m_type": 4401, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "bSizer5" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4400, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_buttonCheckAll" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Check &All" + }, { + "type": "bool", + "m_label": "Default Button", + "m_value": true + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Direction", + "m_selection": 0, + "m_options": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"] + }, { + "type": "string", + "m_label": "Margins:", + "m_value": "2,2" + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_BUTTON_CLICKED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnCheckAll(wxCommandEvent& event)", + "m_description": "Process a wxEVT_COMMAND_BUTTON_CLICKED event, when the button is clicked.", + "m_noBody": false + }], + "m_children": [] + }, { + "m_type": 4400, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_buttonUncheckAll" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Clear" + }, { + "type": "bool", + "m_label": "Default Button", + "m_value": false + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Direction", + "m_selection": 0, + "m_options": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"] + }, { + "type": "string", + "m_label": "Margins:", + "m_value": "2,2" + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_BUTTON_CLICKED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnUncheckAll(wxCommandEvent& event)", + "m_description": "Process a wxEVT_COMMAND_BUTTON_CLICKED event, when the button is clicked.", + "m_noBody": false + }], + "m_children": [] + }] + }] + }, { + "m_type": 4452, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "gridSizer12" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "# Columns:", + "m_value": "2" + }, { + "type": "string", + "m_label": "# Rows:", + "m_value": "0" + }, { + "type": "string", + "m_label": "Horizontal gap:", + "m_value": "0" + }, { + "type": "string", + "m_label": "Vertical gap:", + "m_value": "0" + }], + "m_events": [], + "m_children": [{ + "m_type": 4415, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_checkStartWithUppercase" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Function name starts with an upper case letter" + }, { + "type": "bool", + "m_label": "Value:", + "m_value": false + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_CHECKBOX_CLICKED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnCheckStartWithUpperCase(wxCommandEvent& event)", + "m_description": "Process a wxEVT_COMMAND_CHECKBOX_CLICKED event, when the checkbox is clicked.", + "m_noBody": false + }], + "m_children": [] + }, { + "m_type": 4415, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_checkBoxForamtFileWhenDone" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Format the file when done" + }, { + "type": "bool", + "m_label": "Value:", + "m_value": false + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4415, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_checkBoxReturnSelf" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "A setter function will return a reference to the object, for example:\\nFoo& SetFoo(const Obj& foo) {this->m_foo = foo; return *this;}" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Setter returns a reference to the object" + }, { + "type": "bool", + "m_label": "Value:", + "m_value": false + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_CHECKBOX_CLICKED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnSettersReturnReference(wxCommandEvent& event)", + "m_description": "Process a wxEVT_COMMAND_CHECKBOX_CLICKED event, when the checkbox is clicked.", + "m_noBody": false + }], + "m_children": [] + }] + }] + }, { + "m_type": 4467, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_HORIZONTAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_stdBtnSizer16" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }], + "m_events": [], + "m_children": [{ + "m_type": 4468, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "choice", + "m_label": "ID:", + "m_selection": 0, + "m_options": ["wxID_OK", "wxID_YES", "wxID_SAVE", "wxID_APPLY", "wxID_CLOSE", "wxID_NO", "wxID_CANCEL", "wxID_HELP", "wxID_CONTEXT_HELP"] + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_button18" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Default Button", + "m_value": true + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4468, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "choice", + "m_label": "ID:", + "m_selection": 6, + "m_options": ["wxID_OK", "wxID_YES", "wxID_SAVE", "wxID_APPLY", "wxID_CLOSE", "wxID_NO", "wxID_CANCEL", "wxID_HELP", "wxID_CONTEXT_HELP"] + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_button20" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Default Button", + "m_value": false + }], + "m_events": [], + "m_children": [] + }] + }] + }] + }] } \ No newline at end of file diff -Nru codelite-8.0.1+dfsg2/formbuilder/ThreadListBasePanel.fbp codelite-9.0+dfsg/formbuilder/ThreadListBasePanel.fbp --- codelite-8.0.1+dfsg2/formbuilder/ThreadListBasePanel.fbp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/formbuilder/ThreadListBasePanel.fbp 1970-01-01 00:00:00.000000000 +0000 @@ -1,141 +0,0 @@ - - - - - - - C++ - UTF-8 - connect - threadlistbasepanel - 1000 - none - - 1 - ThreadListBasePanel - - ../LiteEditor - - 1 - 0 - 0 - - - - 1 - - - 0 - wxID_ANY - - - ThreadListBasePanel - - 500,300 - - - - - wxTAB_TRAVERSAL - - - - - - - - - - - - - - - - - - - - - - - - - - - mainSizer - wxVERTICAL - none - - 5 - wxALL|wxEXPAND - 1 - - - - 1 - - - 0 - wxID_ANY - - - m_list - protected - - - wxLC_HRULES|wxLC_REPORT|wxLC_VRULES - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OnItemActivated - - - - - - - - - - - - - - - - - - - - - - - - - diff -Nru codelite-8.0.1+dfsg2/gdbparser/gdb_result.cpp codelite-9.0+dfsg/gdbparser/gdb_result.cpp --- codelite-8.0.1+dfsg2/gdbparser/gdb_result.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/gdbparser/gdb_result.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,8 +1,12 @@ + +#line 3 "lex.gdb_result_.c" + +#define YY_INT_ALIGNED short int + +/* A lexical scanner generated by flex */ + #define yy_create_buffer gdb_result__create_buffer #define yy_delete_buffer gdb_result__delete_buffer -#define yy_scan_buffer gdb_result__scan_buffer -#define yy_scan_string gdb_result__scan_string -#define yy_scan_bytes gdb_result__scan_bytes #define yy_flex_debug gdb_result__flex_debug #define yy_init_buffer gdb_result__init_buffer #define yy_flush_buffer gdb_result__flush_buffer @@ -11,76 +15,118 @@ #define yyin gdb_result_in #define yyleng gdb_result_leng #define yylex gdb_result_lex +#define yylineno gdb_result_lineno #define yyout gdb_result_out #define yyrestart gdb_result_restart #define yytext gdb_result_text -#define yylineno gdb_result_lineno #define yywrap gdb_result_wrap - -/* A lexical scanner generated by flex */ - -/* Scanner skeleton version: - * $Header: /home/daffy/u0/vern/flex/RCS/flex.skl,v 2.91 96/09/10 16:58:48 vern Exp $ - */ +#define yyalloc gdb_result_alloc +#define yyrealloc gdb_result_realloc +#define yyfree gdb_result_free #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 #define YY_FLEX_MINOR_VERSION 5 +#define YY_FLEX_SUBMINOR_VERSION 37 +#if YY_FLEX_SUBMINOR_VERSION > 0 +#define FLEX_BETA +#endif + +/* First, we deal with platform-specific or compiler-specific issues. */ +/* begin standard C headers. */ #include +#include +#include +#include +/* end standard C headers. */ -/* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */ -#ifdef c_plusplus -#ifndef __cplusplus -#define __cplusplus -#endif +/* flex integer type definitions */ + +#ifndef FLEXINT_H +#define FLEXINT_H + +/* C99 systems have . Non-C99 systems may or may not. */ + +#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L + +/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h, + * if you want the limit (max/min) macros for int types. + */ +#ifndef __STDC_LIMIT_MACROS +#define __STDC_LIMIT_MACROS 1 #endif +#include +typedef int8_t flex_int8_t; +typedef uint8_t flex_uint8_t; +typedef int16_t flex_int16_t; +typedef uint16_t flex_uint16_t; +typedef int32_t flex_int32_t; +typedef uint32_t flex_uint32_t; +#else +typedef signed char flex_int8_t; +typedef short int flex_int16_t; +typedef int flex_int32_t; +typedef unsigned char flex_uint8_t; +typedef unsigned short int flex_uint16_t; +typedef unsigned int flex_uint32_t; -#ifdef __cplusplus +/* Limits of integral types. */ +#ifndef INT8_MIN +#define INT8_MIN (-128) +#endif +#ifndef INT16_MIN +#define INT16_MIN (-32767-1) +#endif +#ifndef INT32_MIN +#define INT32_MIN (-2147483647-1) +#endif +#ifndef INT8_MAX +#define INT8_MAX (127) +#endif +#ifndef INT16_MAX +#define INT16_MAX (32767) +#endif +#ifndef INT32_MAX +#define INT32_MAX (2147483647) +#endif +#ifndef UINT8_MAX +#define UINT8_MAX (255U) +#endif +#ifndef UINT16_MAX +#define UINT16_MAX (65535U) +#endif +#ifndef UINT32_MAX +#define UINT32_MAX (4294967295U) +#endif -#include -#include +#endif /* ! C99 */ + +#endif /* ! FLEXINT_H */ -/* Use prototypes in function declarations. */ -#define YY_USE_PROTOS +#ifdef __cplusplus /* The "const" storage-class-modifier is valid. */ #define YY_USE_CONST #else /* ! __cplusplus */ -#if __STDC__ +/* C99 requires __STDC__ to be defined as 1. */ +#if defined (__STDC__) -#define YY_USE_PROTOS #define YY_USE_CONST -#endif /* __STDC__ */ +#endif /* defined (__STDC__) */ #endif /* ! __cplusplus */ -#ifdef __TURBOC__ - #pragma warn -rch - #pragma warn -use -#include -#include -#define YY_USE_CONST -#define YY_USE_PROTOS -#endif - #ifdef YY_USE_CONST #define yyconst const #else #define yyconst #endif - -#ifdef YY_USE_PROTOS -#define YY_PROTO(proto) proto -#else -#define YY_PROTO(proto) () -#endif - /* Returned upon end-of-file. */ #define YY_NULL 0 @@ -95,71 +141,83 @@ * but we do it the disgusting crufty way forced on us by the ()-less * definition of BEGIN. */ -#define BEGIN yy_start = 1 + 2 * +#define BEGIN (yy_start) = 1 + 2 * /* Translate the current start state into a value that can be later handed * to BEGIN to return to the state. The YYSTATE alias is for lex * compatibility. */ -#define YY_START ((yy_start - 1) / 2) +#define YY_START (((yy_start) - 1) / 2) #define YYSTATE YY_START /* Action number for EOF rule of a given start state. */ #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) /* Special action meaning "start processing a new file". */ -#define YY_NEW_FILE yyrestart( yyin ) +#define YY_NEW_FILE gdb_result_restart(gdb_result_in ) #define YY_END_OF_BUFFER_CHAR 0 /* Size of default input buffer. */ +#ifndef YY_BUF_SIZE #define YY_BUF_SIZE 16384 +#endif +/* The state buf must be large enough to hold one state per character in the main buffer. + */ +#define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type)) + +#ifndef YY_TYPEDEF_YY_BUFFER_STATE +#define YY_TYPEDEF_YY_BUFFER_STATE typedef struct yy_buffer_state *YY_BUFFER_STATE; +#endif -extern int yyleng; -extern FILE *yyin, *yyout; +#ifndef YY_TYPEDEF_YY_SIZE_T +#define YY_TYPEDEF_YY_SIZE_T +typedef size_t yy_size_t; +#endif + +extern yy_size_t gdb_result_leng; + +extern FILE *gdb_result_in, *gdb_result_out; #define EOB_ACT_CONTINUE_SCAN 0 #define EOB_ACT_END_OF_FILE 1 #define EOB_ACT_LAST_MATCH 2 -/* The funky do-while in the following #define is used to turn the definition - * int a single C statement (which needs a semi-colon terminator). This - * avoids problems with code like: - * - * if ( condition_holds ) - * yyless( 5 ); - * else - * do_something_else(); - * - * Prior to using the do-while the compiler would get upset at the - * "else" because it interpreted the "if" statement as being all - * done when it reached the ';' after the yyless() call. - */ - -/* Return all but the first 'n' matched characters back to the input stream. */ - + /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires + * access to the local variable yy_act. Since yyless() is a macro, it would break + * existing scanners that call yyless() from OUTSIDE gdb_result_lex. + * One obvious solution it to make yy_act a global. I tried that, and saw + * a 5% performance hit in a non-gdb_result_lineno scanner, because yy_act is + * normally declared as a register variable-- so it is not worth it. + */ + #define YY_LESS_LINENO(n) \ + do { \ + int yyl;\ + for ( yyl = n; yyl < gdb_result_leng; ++yyl )\ + if ( gdb_result_text[yyl] == '\n' )\ + --gdb_result_lineno;\ + }while(0) + +/* Return all but the first "n" matched characters back to the input stream. */ #define yyless(n) \ do \ { \ - /* Undo effects of setting up yytext. */ \ - *yy_cp = yy_hold_char; \ + /* Undo effects of setting up gdb_result_text. */ \ + int yyless_macro_arg = (n); \ + YY_LESS_LINENO(yyless_macro_arg);\ + *yy_cp = (yy_hold_char); \ YY_RESTORE_YY_MORE_OFFSET \ - yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \ - YY_DO_BEFORE_ACTION; /* set up yytext again */ \ + (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \ + YY_DO_BEFORE_ACTION; /* set up gdb_result_text again */ \ } \ while ( 0 ) -#define unput(c) yyunput( c, yytext_ptr ) - -/* The following is because we cannot portably get our hands on size_t - * (without autoconf's help, which isn't available because we want - * flex-generated scanners to compile on their own). - */ -typedef unsigned int yy_size_t; - +#define unput(c) yyunput( c, (yytext_ptr) ) +#ifndef YY_STRUCT_YY_BUFFER_STATE +#define YY_STRUCT_YY_BUFFER_STATE struct yy_buffer_state { FILE *yy_input_file; @@ -175,7 +233,7 @@ /* Number of characters read into yy_ch_buf, not including EOB * characters. */ - int yy_n_chars; + yy_size_t yy_n_chars; /* Whether we "own" the buffer - i.e., we know we created it, * and can realloc() it to grow it, and should free() it to @@ -196,12 +254,16 @@ */ int yy_at_bol; + int yy_bs_lineno; /**< The line count. */ + int yy_bs_column; /**< The column count. */ + /* Whether to try to fill the input buffer when we reach the * end of it. */ int yy_fill_buffer; int yy_buffer_status; + #define YY_BUFFER_NEW 0 #define YY_BUFFER_NORMAL 1 /* When an EOF's been seen but there's still some text to process @@ -211,197 +273,177 @@ * possible backing-up. * * When we actually see the EOF, we change the status to "new" - * (via yyrestart()), so that the user can continue scanning by - * just pointing yyin at a new input file. + * (via gdb_result_restart()), so that the user can continue scanning by + * just pointing gdb_result_in at a new input file. */ #define YY_BUFFER_EOF_PENDING 2 + }; +#endif /* !YY_STRUCT_YY_BUFFER_STATE */ -static YY_BUFFER_STATE yy_current_buffer = 0; +/* Stack of input buffers. */ +static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */ +static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */ +static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */ /* We provide macros for accessing buffer states in case in the * future we want to put the buffer states in a more general * "scanner state". + * + * Returns the top of the stack, or NULL. */ -#define YY_CURRENT_BUFFER yy_current_buffer +#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \ + ? (yy_buffer_stack)[(yy_buffer_stack_top)] \ + : NULL) +/* Same as previous macro, but useful when we know that the buffer stack is not + * NULL or when we need an lvalue. For internal use only. + */ +#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)] -/* yy_hold_char holds the character lost when yytext is formed. */ +/* yy_hold_char holds the character lost when gdb_result_text is formed. */ static char yy_hold_char; - -static int yy_n_chars; /* number of characters read into yy_ch_buf */ - - -int yyleng; +static yy_size_t yy_n_chars; /* number of characters read into yy_ch_buf */ +yy_size_t gdb_result_leng; /* Points to current character in buffer. */ static char *yy_c_buf_p = (char *) 0; -static int yy_init = 1; /* whether we need to initialize */ +static int yy_init = 0; /* whether we need to initialize */ static int yy_start = 0; /* start state number */ -/* Flag which is used to allow yywrap()'s to do buffer switches - * instead of setting up a fresh yyin. A bit of a hack ... +/* Flag which is used to allow gdb_result_wrap()'s to do buffer switches + * instead of setting up a fresh gdb_result_in. A bit of a hack ... */ static int yy_did_buffer_switch_on_eof; -void yyrestart YY_PROTO(( FILE *input_file )); +void gdb_result_restart (FILE *input_file ); +void gdb_result__switch_to_buffer (YY_BUFFER_STATE new_buffer ); +YY_BUFFER_STATE gdb_result__create_buffer (FILE *file,int size ); +void gdb_result__delete_buffer (YY_BUFFER_STATE b ); +void gdb_result__flush_buffer (YY_BUFFER_STATE b ); +void gdb_result_push_buffer_state (YY_BUFFER_STATE new_buffer ); +void gdb_result_pop_buffer_state (void ); + +static void gdb_result_ensure_buffer_stack (void ); +static void gdb_result__load_buffer_state (void ); +static void gdb_result__init_buffer (YY_BUFFER_STATE b,FILE *file ); + +#define YY_FLUSH_BUFFER gdb_result__flush_buffer(YY_CURRENT_BUFFER ) + +YY_BUFFER_STATE gdb_result__scan_buffer (char *base,yy_size_t size ); +YY_BUFFER_STATE gdb_result__scan_string (yyconst char *yy_str ); +YY_BUFFER_STATE gdb_result__scan_bytes (yyconst char *bytes,yy_size_t len ); + +void *gdb_result_alloc (yy_size_t ); +void *gdb_result_realloc (void *,yy_size_t ); +void gdb_result_free (void * ); -void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer )); -void yy_load_buffer_state YY_PROTO(( void )); -YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size )); -void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b )); -void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file )); -void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b )); -#define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer ) - -YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size )); -YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str )); -YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len )); - -static void *yy_flex_alloc YY_PROTO(( yy_size_t )); -static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t )); -static void yy_flex_free YY_PROTO(( void * )); - -#define yy_new_buffer yy_create_buffer +#define yy_new_buffer gdb_result__create_buffer #define yy_set_interactive(is_interactive) \ { \ - if ( ! yy_current_buffer ) \ - yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \ - yy_current_buffer->yy_is_interactive = is_interactive; \ + if ( ! YY_CURRENT_BUFFER ){ \ + gdb_result_ensure_buffer_stack (); \ + YY_CURRENT_BUFFER_LVALUE = \ + gdb_result__create_buffer(gdb_result_in,YY_BUF_SIZE ); \ + } \ + YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ } #define yy_set_bol(at_bol) \ { \ - if ( ! yy_current_buffer ) \ - yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \ - yy_current_buffer->yy_at_bol = at_bol; \ + if ( ! YY_CURRENT_BUFFER ){\ + gdb_result_ensure_buffer_stack (); \ + YY_CURRENT_BUFFER_LVALUE = \ + gdb_result__create_buffer(gdb_result_in,YY_BUF_SIZE ); \ + } \ + YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ } -#define YY_AT_BOL() (yy_current_buffer->yy_at_bol) +#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) +/* Begin user sect3 */ -#define YY_USES_REJECT typedef unsigned char YY_CHAR; -FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0; + +FILE *gdb_result_in = (FILE *) 0, *gdb_result_out = (FILE *) 0; + typedef int yy_state_type; -extern int yylineno; -int yylineno = 1; -extern char *yytext; -#define yytext_ptr yytext - -static yy_state_type yy_get_previous_state YY_PROTO(( void )); -static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state )); -static int yy_get_next_buffer YY_PROTO(( void )); -static void yy_fatal_error YY_PROTO(( yyconst char msg[] )); + +extern int gdb_result_lineno; + +int gdb_result_lineno = 1; + +extern char *gdb_result_text; +#define yytext_ptr gdb_result_text + +static yy_state_type yy_get_previous_state (void ); +static yy_state_type yy_try_NUL_trans (yy_state_type current_state ); +static int yy_get_next_buffer (void ); +static void yy_fatal_error (yyconst char msg[] ); /* Done after the current pattern has been matched and before the - * corresponding action - sets up yytext. + * corresponding action - sets up gdb_result_text. */ #define YY_DO_BEFORE_ACTION \ - yytext_ptr = yy_bp; \ - yyleng = (int) (yy_cp - yy_bp); \ - yy_hold_char = *yy_cp; \ + (yytext_ptr) = yy_bp; \ + gdb_result_leng = (size_t) (yy_cp - yy_bp); \ + (yy_hold_char) = *yy_cp; \ *yy_cp = '\0'; \ - yy_c_buf_p = yy_cp; + (yy_c_buf_p) = yy_cp; #define YY_NUM_RULES 81 #define YY_END_OF_BUFFER 82 -static yyconst short int yy_acclist[432] = +/* This struct is not used in this scanner, + but its presence is necessary. */ +struct yy_trans_info + { + flex_int32_t yy_verify; + flex_int32_t yy_nxt; + }; +static yyconst flex_int16_t yy_accept[348] = { 0, - 82, 60, 81, 1, 60, 81, 3, 81, 2, 60, - 81, 58, 60, 81, 57, 60, 81, 60, 81, 5, - 60, 81, 4, 60, 81, 54, 60, 81, 52, 60, - 81, 52, 60, 81, 52, 60, 81, 60, 81, 53, - 60, 81, 52, 60, 81, 52, 60, 81, 52, 60, - 81, 52, 60, 81, 52, 60, 81, 52, 60, 81, - 52, 60, 81, 52, 60, 81, 52, 60, 81, 52, - 60, 81, 52, 60, 81, 52, 60, 81, 52, 60, - 81, 52, 60, 81, 52, 60, 81, 55, 60, 81, - 56, 60, 81, 71, 81, 81, 70, 71, 81, 71, - - 81, 80, 81, 80, 81, 1, 3, 2, 7, 7, - 5, 5, 5, 4, 4, 4, 52, 52, 58, 59, + 0, 0, 0, 0, 0, 0, 82, 60, 1, 3, + 2, 58, 57, 60, 5, 4, 54, 52, 52, 52, + 60, 53, 52, 52, 52, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 55, 56, 71, + 81, 70, 71, 80, 80, 1, 3, 0, 2, 7, + 7, 5, 0, 0, 5, 5, 0, 4, 4, 4, + 52, 52, 58, 0, 59, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, - 52, 52, 68, 69, 79, 7, 7, 5, 6, 4, + 52, 52, 52, 52, 52, 52, 52, 0, 68, 0, + + 69, 79, 0, 0, 7, 0, 7, 5, 6, 4, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 34, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 52, 52, 52, 52, 62, - - 64, 65, 63, 73, 75, 76, 74, 7, 6, 6, - 52, 25, 52, 18, 52, 52, 52, 36, 52, 35, - 52, 52, 52, 52, 24, 52, 52, 8, 52, 52, - 52, 12, 52, 52, 52, 52, 49, 52, 52, 52, - 17, 52, 52, 52, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 38, 52, 23, 52, 52, 52, 52, - 61, 66, 67, 77, 78, 6, 52, 52, 26, 52, - 52, 52, 28, 52, 52, 52, 52, 11, 52, 20, - 52, 52, 52, 19, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 52, 52, 52, 16, 52, - + 52, 52, 52, 52, 52, 52, 52, 52, 0, 0, + 0, 62, 64, 65, 63, 0, 0, 73, 75, 76, + 74, 0, 7, 6, 6, 52, 25, 18, 52, 52, + 36, 35, 52, 52, 52, 24, 52, 8, 52, 52, + 12, 52, 52, 52, 49, 52, 52, 17, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 38, + + 23, 52, 52, 52, 0, 61, 66, 67, 0, 77, + 78, 6, 52, 52, 26, 52, 52, 28, 52, 52, + 52, 11, 20, 52, 52, 19, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 16, 52, 52, 30, 72, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 21, 52, 52, 52, 52, 52, - 52, 48, 52, 39, 52, 52, 52, 52, 52, 52, - 52, 29, 52, 52, 50, 52, 52, 52, 52, 52, - 52, 42, 52, 52, 52, 52, 52, 33, 52, 32, - 52, 52, 52, 9, 52, 52, 37, 52, 52, 52, - 52, 52, 52, 27, 52, 52, 52, 52, 41, 52, - 52, 52, 22, 52, 52, 52, 52, 52, 52, 51, - 52, 52, 10, 52, 52, 47, 52, 52, 52, 52, - 52, 52, 14, 52, 52, 40, 52, 52, 52, 52, - - 52, 13, 52, 52, 52, 46, 52, 52, 52, 52, - 52, 52, 43, 52, 52, 52, 52, 52, 52, 52, - 44, 52, 52, 52, 15, 52, 31, 52, 52, 45, - 52 - } ; - -static yyconst short int yy_accept[349] = - { 0, - 1, 1, 1, 1, 1, 1, 1, 2, 4, 7, - 9, 12, 15, 18, 20, 23, 26, 29, 32, 35, - 38, 40, 43, 46, 49, 52, 55, 58, 61, 64, - 67, 70, 73, 76, 79, 82, 85, 88, 91, 94, - 96, 97, 100, 102, 104, 106, 107, 108, 108, 109, - 110, 111, 112, 112, 112, 113, 114, 114, 115, 116, - 117, 118, 119, 120, 120, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, - 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, - 146, 147, 148, 149, 150, 151, 152, 153, 153, 154, - - 154, 155, 156, 156, 156, 157, 157, 158, 159, 160, - 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, - 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, - 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, - 192, 193, 194, 195, 196, 197, 198, 199, 200, 200, - 200, 200, 201, 202, 203, 204, 204, 204, 205, 206, - 207, 208, 208, 209, 210, 211, 212, 214, 216, 217, - 218, 220, 222, 223, 224, 225, 227, 228, 230, 231, - 232, 234, 235, 236, 237, 239, 240, 241, 243, 244, - 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, - - 256, 258, 259, 260, 261, 261, 262, 263, 264, 264, - 265, 266, 267, 268, 269, 271, 272, 273, 275, 276, - 277, 278, 280, 282, 283, 284, 286, 287, 288, 289, - 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, - 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, - 311, 312, 313, 314, 315, 317, 318, 319, 320, 321, - 322, 324, 326, 327, 328, 329, 330, 331, 332, 334, - 335, 337, 338, 339, 340, 341, 342, 344, 345, 346, - 347, 348, 350, 352, 353, 354, 356, 357, 359, 360, - 361, 362, 363, 364, 366, 367, 368, 369, 371, 372, - - 373, 375, 376, 377, 378, 379, 380, 382, 383, 385, - 386, 388, 389, 390, 391, 392, 393, 395, 396, 398, - 399, 400, 401, 402, 404, 405, 406, 408, 409, 410, - 411, 412, 413, 415, 416, 417, 418, 419, 420, 421, - 423, 424, 425, 427, 429, 430, 432, 432 + 48, 39, 52, 52, 52, 52, 52, 52, 29, 52, + 50, 52, 52, 52, 52, 52, 42, 52, 52, 52, + 52, 33, 32, 52, 52, 9, 52, 37, 52, 52, + 52, 52, 52, 27, 52, 52, 52, 41, 52, 52, + + 22, 52, 52, 52, 52, 52, 51, 52, 10, 52, + 47, 52, 52, 52, 52, 52, 14, 52, 40, 52, + 52, 52, 52, 13, 52, 52, 46, 52, 52, 52, + 52, 52, 43, 52, 52, 52, 52, 52, 52, 44, + 52, 52, 15, 31, 52, 45, 0 } ; -static yyconst int yy_ec[256] = +static yyconst flex_int32_t yy_ec[256] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 4, 5, 6, 1, 1, 1, 1, 1, 1, 1, @@ -433,7 +475,7 @@ 1, 1, 1, 1, 1 } ; -static yyconst int yy_meta[55] = +static yyconst flex_int32_t yy_meta[55] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 3, 3, 3, 1, 3, 3, 3, 3, @@ -443,7 +485,7 @@ 2, 2, 1, 1 } ; -static yyconst short int yy_base[352] = +static yyconst flex_int16_t yy_base[352] = { 0, 0, 0, 52, 53, 54, 55, 474, 475, 60, 475, 66, 475, 475, 61, 70, 110, 475, 0, 428, 51, @@ -486,7 +528,7 @@ 90 } ; -static yyconst short int yy_def[352] = +static yyconst flex_int16_t yy_def[352] = { 0, 347, 1, 348, 348, 349, 349, 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, 350, 350, 350, @@ -529,7 +571,7 @@ 347 } ; -static yyconst short int yy_nxt[530] = +static yyconst flex_int16_t yy_nxt[530] = { 0, 8, 9, 10, 11, 11, 11, 9, 12, 8, 13, 8, 14, 15, 16, 16, 17, 18, 19, 18, 18, @@ -591,7 +633,7 @@ 347, 347, 347, 347, 347, 347, 347, 347, 347 } ; -static yyconst short int yy_chk[530] = +static yyconst flex_int16_t yy_chk[530] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -653,21 +695,29 @@ 347, 347, 347, 347, 347, 347, 347, 347, 347 } ; -static yy_state_type yy_state_buf[YY_BUF_SIZE + 2], *yy_state_ptr; -static char *yy_full_match; -static int yy_lp; -#define REJECT \ -{ \ -*yy_cp = yy_hold_char; /* undo effects of setting up yytext */ \ -yy_cp = yy_full_match; /* restore poss. backed-over text */ \ -++yy_lp; \ -goto find_rule; \ -} +/* Table of booleans, true if rule could match eol. */ +static yyconst flex_int32_t yy_rule_can_match_eol[82] = + { 0, +0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, }; + +static yy_state_type yy_last_accepting_state; +static char *yy_last_accepting_cpos; + +extern int gdb_result__flex_debug; +int gdb_result__flex_debug = 0; + +/* The intent behind this definition is that it'll catch + * any uses of REJECT which flex missed. + */ +#define REJECT reject_used_but_not_detected #define yymore() yymore_used_but_not_detected #define YY_MORE_ADJ 0 #define YY_RESTORE_YY_MORE_OFFSET -char *yytext; -#define INITIAL 0 +char *gdb_result_text; /* Included code before lex code */ #include "string" #include "gdb_result_parser.h" @@ -690,12 +740,12 @@ extern std::string gdb_result_lval; #define RETURN_VAL(x) {\ - gdb_result_string = yytext;\ - gdb_result_lval = yytext;\ + gdb_result_string = gdb_result_text;\ + gdb_result_lval = gdb_result_text;\ return(x);} #define RETURN_ESCAPED_STRING(x) {\ - gdb_result_string = yytext;\ + gdb_result_string = gdb_result_text;\ std::string str;\ str = gdb_result_string.substr(1);\ gdb_result_string = str;\ @@ -704,10 +754,53 @@ /** * Some basic regexes */ -#define string_state 1 +#define INITIAL 0 +#define string_state 1 #define esc_string_state 2 +#ifndef YY_NO_UNISTD_H +/* Special case for "unistd.h", since it is non-ANSI. We include it way + * down here because we want the user's section 1 to have been scanned first. + * The user has a chance to override it with an option. + */ +#include +#endif + +#ifndef YY_EXTRA_TYPE +#define YY_EXTRA_TYPE void * +#endif + +static int yy_init_globals (void ); + +/* Accessor methods to globals. + These are made visible to non-reentrant scanners for convenience. */ + +int gdb_result_lex_destroy (void ); + +int gdb_result_get_debug (void ); + +void gdb_result_set_debug (int debug_flag ); + +YY_EXTRA_TYPE gdb_result_get_extra (void ); + +void gdb_result_set_extra (YY_EXTRA_TYPE user_defined ); + +FILE *gdb_result_get_in (void ); + +void gdb_result_set_in (FILE * in_str ); + +FILE *gdb_result_get_out (void ); + +void gdb_result_set_out (FILE * out_str ); + +yy_size_t gdb_result_get_leng (void ); + +char *gdb_result_get_text (void ); + +int gdb_result_get_lineno (void ); + +void gdb_result_set_lineno (int line_number ); /* Macros after this point can all be overridden by user definitions in * section 1. @@ -715,65 +808,30 @@ #ifndef YY_SKIP_YYWRAP #ifdef __cplusplus -extern "C" int yywrap YY_PROTO(( void )); +extern "C" int gdb_result_wrap (void ); #else -extern int yywrap YY_PROTO(( void )); +extern int gdb_result_wrap (void ); #endif #endif -#ifndef YY_NO_UNPUT -static void yyunput YY_PROTO(( int c, char *buf_ptr )); -#endif - + static void yyunput (int c,char *buf_ptr ); + #ifndef yytext_ptr -static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int )); +static void yy_flex_strncpy (char *,yyconst char *,int ); #endif #ifdef YY_NEED_STRLEN -static int yy_flex_strlen YY_PROTO(( yyconst char * )); +static int yy_flex_strlen (yyconst char * ); #endif #ifndef YY_NO_INPUT + #ifdef __cplusplus -static int yyinput YY_PROTO(( void )); +static int yyinput (void ); #else -static int input YY_PROTO(( void )); -#endif +static int input (void ); #endif -#if YY_STACK_USED -static int yy_start_stack_ptr = 0; -static int yy_start_stack_depth = 0; -static int *yy_start_stack = 0; -#ifndef YY_NO_PUSH_STATE -static void yy_push_state YY_PROTO(( int new_state )); -#endif -#ifndef YY_NO_POP_STATE -static void yy_pop_state YY_PROTO(( void )); -#endif -#ifndef YY_NO_TOP_STATE -static int yy_top_state YY_PROTO(( void )); -#endif - -#else -#define YY_NO_PUSH_STATE 1 -#define YY_NO_POP_STATE 1 -#define YY_NO_TOP_STATE 1 -#endif - -#ifdef YY_MALLOC_DECL -YY_MALLOC_DECL -#else -#if __STDC__ -#ifndef __cplusplus -#include -#endif -#else -/* Just try to get by without declaring the routines. This will fail - * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int) - * or sizeof(void*) != sizeof(int). - */ -#endif #endif /* Amount of stuff to slurp up with each read. */ @@ -782,12 +840,11 @@ #endif /* Copy whatever the last rule matched to the standard output. */ - #ifndef ECHO /* This used to be an fputs(), but since the string might contain NUL's, * we now use fwrite(). */ -#define ECHO (void) fwrite( yytext, yyleng, 1, yyout ) +#define ECHO do { if (fwrite( gdb_result_text, gdb_result_leng, 1, gdb_result_out )) {} } while (0) #endif /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, @@ -795,21 +852,35 @@ */ #ifndef YY_INPUT #define YY_INPUT(buf,result,max_size) \ - if ( yy_current_buffer->yy_is_interactive ) \ + if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ { \ - int c = '*', n; \ + int c = '*'; \ + size_t n; \ for ( n = 0; n < max_size && \ - (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ + (c = getc( gdb_result_in )) != EOF && c != '\n'; ++n ) \ buf[n] = (char) c; \ if ( c == '\n' ) \ buf[n++] = (char) c; \ - if ( c == EOF && ferror( yyin ) ) \ + if ( c == EOF && ferror( gdb_result_in ) ) \ YY_FATAL_ERROR( "input in flex scanner failed" ); \ result = n; \ } \ - else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \ - && ferror( yyin ) ) \ - YY_FATAL_ERROR( "input in flex scanner failed" ); + else \ + { \ + errno=0; \ + while ( (result = fread(buf, 1, max_size, gdb_result_in))==0 && ferror(gdb_result_in)) \ + { \ + if( errno != EINTR) \ + { \ + YY_FATAL_ERROR( "input in flex scanner failed" ); \ + break; \ + } \ + errno=0; \ + clearerr(gdb_result_in); \ + } \ + }\ +\ + #endif /* No semi-colon after return; correct usage is to write "yyterminate();" - @@ -830,14 +901,20 @@ #define YY_FATAL_ERROR(msg) yy_fatal_error( msg ) #endif +/* end tables serialization structures and prototypes */ + /* Default declaration of generated scanner - a define so the user can * easily add parameters. */ #ifndef YY_DECL -#define YY_DECL int yylex YY_PROTO(( void )) -#endif +#define YY_DECL_IS_OURS 1 + +extern int gdb_result_lex (void); + +#define YY_DECL int gdb_result_lex (void) +#endif /* !YY_DECL */ -/* Code executed at the beginning of each rule, after yytext and yyleng +/* Code executed at the beginning of each rule, after gdb_result_text and gdb_result_leng * have been set up. */ #ifndef YY_USER_ACTION @@ -852,58 +929,62 @@ #define YY_RULE_SETUP \ YY_USER_ACTION +/** The main scanner function which does all the work. + */ YY_DECL - { +{ register yy_state_type yy_current_state; register char *yy_cp, *yy_bp; register int yy_act; - - - - - if ( yy_init ) + + if ( !(yy_init) ) { - yy_init = 0; + (yy_init) = 1; #ifdef YY_USER_INIT YY_USER_INIT; #endif - if ( ! yy_start ) - yy_start = 1; /* first start state */ + if ( ! (yy_start) ) + (yy_start) = 1; /* first start state */ - if ( ! yyin ) - yyin = stdin; + if ( ! gdb_result_in ) + gdb_result_in = stdin; - if ( ! yyout ) - yyout = stdout; + if ( ! gdb_result_out ) + gdb_result_out = stdout; - if ( ! yy_current_buffer ) - yy_current_buffer = - yy_create_buffer( yyin, YY_BUF_SIZE ); + if ( ! YY_CURRENT_BUFFER ) { + gdb_result_ensure_buffer_stack (); + YY_CURRENT_BUFFER_LVALUE = + gdb_result__create_buffer(gdb_result_in,YY_BUF_SIZE ); + } - yy_load_buffer_state(); + gdb_result__load_buffer_state( ); } while ( 1 ) /* loops until end-of-file is reached */ { - yy_cp = yy_c_buf_p; + yy_cp = (yy_c_buf_p); - /* Support of yytext. */ - *yy_cp = yy_hold_char; + /* Support of gdb_result_text. */ + *yy_cp = (yy_hold_char); /* yy_bp points to the position in yy_ch_buf of the start of * the current run. */ yy_bp = yy_cp; - yy_current_state = yy_start; - yy_state_ptr = yy_state_buf; - *yy_state_ptr++ = yy_current_state; + yy_current_state = (yy_start); yy_match: do { register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)]; + if ( yy_accept[yy_current_state] ) + { + (yy_last_accepting_state) = yy_current_state; + (yy_last_accepting_cpos) = yy_cp; + } while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; @@ -911,45 +992,42 @@ yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - *yy_state_ptr++ = yy_current_state; ++yy_cp; } while ( yy_base[yy_current_state] != 475 ); yy_find_action: - yy_current_state = *--yy_state_ptr; - yy_lp = yy_accept[yy_current_state]; -find_rule: /* we branch to this label when backing up */ - for ( ; ; ) /* until we find what rule we matched */ - { - if ( yy_lp && yy_lp < yy_accept[yy_current_state + 1] ) - { - yy_act = yy_acclist[yy_lp]; - { - yy_full_match = yy_cp; - break; - } - } - --yy_cp; - yy_current_state = *--yy_state_ptr; - yy_lp = yy_accept[yy_current_state]; + yy_act = yy_accept[yy_current_state]; + if ( yy_act == 0 ) + { /* have to back up */ + yy_cp = (yy_last_accepting_cpos); + yy_current_state = (yy_last_accepting_state); + yy_act = yy_accept[yy_current_state]; } YY_DO_BEFORE_ACTION; - if ( yy_act != YY_END_OF_BUFFER ) + if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] ) { - int yyl; - for ( yyl = 0; yyl < yyleng; ++yyl ) - if ( yytext[yyl] == '\n' ) - ++yylineno; + yy_size_t yyl; + for ( yyl = 0; yyl < gdb_result_leng; ++yyl ) + if ( gdb_result_text[yyl] == '\n' ) + + gdb_result_lineno++; +; } do_action: /* This label is used only to access EOF actions. */ - switch ( yy_act ) { /* beginning of action switch */ + case 0: /* must back up */ + /* undo the effects of YY_DO_BEFORE_ACTION */ + *yy_cp = (yy_hold_char); + yy_cp = (yy_last_accepting_cpos); + yy_current_state = (yy_last_accepting_state); + goto yy_find_action; + case 1: YY_RULE_SETUP {if(gs_want_whitespace) RETURN_VAL((int)' '); } @@ -959,6 +1037,7 @@ {if(gs_want_whitespace) RETURN_VAL((int)' '); } YY_BREAK case 3: +/* rule 3 can match eol */ YY_RULE_SETUP {if(gs_want_whitespace) RETURN_VAL((int)'\n'); } YY_BREAK @@ -1160,23 +1239,23 @@ YY_BREAK case 53: YY_RULE_SETUP -{RETURN_VAL((int)*yytext);} +{RETURN_VAL((int)*gdb_result_text);} YY_BREAK case 54: YY_RULE_SETUP -{RETURN_VAL((int)*yytext);} +{RETURN_VAL((int)*gdb_result_text);} YY_BREAK case 55: YY_RULE_SETUP -{RETURN_VAL((int)*yytext);} +{RETURN_VAL((int)*gdb_result_text);} YY_BREAK case 56: YY_RULE_SETUP -{RETURN_VAL((int)*yytext);} +{RETURN_VAL((int)*gdb_result_text);} YY_BREAK case 57: YY_RULE_SETUP -{RETURN_VAL((int)*yytext);} +{RETURN_VAL((int)*gdb_result_text);} YY_BREAK case 58: YY_RULE_SETUP @@ -1188,7 +1267,7 @@ YY_BREAK case 60: YY_RULE_SETUP -{RETURN_VAL((int)*yytext);} +{RETURN_VAL((int)*gdb_result_text);} YY_BREAK case 61: YY_RULE_SETUP @@ -1196,14 +1275,14 @@ if(gs_ascii) { unsigned int number(0); std::stringstream s; - s << std::oct << yytext+2; + s << std::oct << gdb_result_text+2; s >> number; if(number) { gs_string += (unsigned char)number; } } else { - gs_string += yytext; + gs_string += gdb_result_text; } } YY_BREAK @@ -1252,7 +1331,7 @@ YY_BREAK case 71: YY_RULE_SETUP -{ gs_string += yytext; } +{ gs_string += gdb_result_text; } YY_BREAK case 72: YY_RULE_SETUP @@ -1260,14 +1339,14 @@ if(gs_ascii) { unsigned int number(0); std::stringstream s; - s << std::oct << yytext+2; + s << std::oct << gdb_result_text+2; s >> number; if(number) { gs_string += (unsigned char)number; } } else { - gs_string += yytext; + gs_string += gdb_result_text; } } YY_BREAK @@ -1308,40 +1387,40 @@ YY_BREAK case 80: YY_RULE_SETUP -{ gs_string += yytext; } +{ gs_string += gdb_result_text; } YY_BREAK case 81: YY_RULE_SETUP ECHO; YY_BREAK - case YY_STATE_EOF(INITIAL): - case YY_STATE_EOF(string_state): - case YY_STATE_EOF(esc_string_state): - yyterminate(); +case YY_STATE_EOF(INITIAL): +case YY_STATE_EOF(string_state): +case YY_STATE_EOF(esc_string_state): + yyterminate(); case YY_END_OF_BUFFER: { /* Amount of text matched not including the EOB char. */ - int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1; + int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1; /* Undo the effects of YY_DO_BEFORE_ACTION. */ - *yy_cp = yy_hold_char; + *yy_cp = (yy_hold_char); YY_RESTORE_YY_MORE_OFFSET - if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW ) + if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW ) { /* We're scanning a new file or input source. It's * possible that this happened because the user - * just pointed yyin at a new source and called - * yylex(). If so, then we have to assure - * consistency between yy_current_buffer and our + * just pointed gdb_result_in at a new source and called + * gdb_result_lex(). If so, then we have to assure + * consistency between YY_CURRENT_BUFFER and our * globals. Here is the right place to do so, because * this is the first action (other than possibly a * back-up) that will match for the new input source. */ - yy_n_chars = yy_current_buffer->yy_n_chars; - yy_current_buffer->yy_input_file = yyin; - yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL; + (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; + YY_CURRENT_BUFFER_LVALUE->yy_input_file = gdb_result_in; + YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; } /* Note that here we test for yy_c_buf_p "<=" to the position @@ -1351,13 +1430,13 @@ * end-of-buffer state). Contrast this with the test * in input(). */ - if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] ) + if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) { /* This was really a NUL. */ yy_state_type yy_next_state; - yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text; + (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text; - yy_current_state = yy_get_previous_state(); + yy_current_state = yy_get_previous_state( ); /* Okay, we're now positioned to make the NUL * transition. We couldn't have @@ -1370,41 +1449,41 @@ yy_next_state = yy_try_NUL_trans( yy_current_state ); - yy_bp = yytext_ptr + YY_MORE_ADJ; + yy_bp = (yytext_ptr) + YY_MORE_ADJ; if ( yy_next_state ) { /* Consume the NUL. */ - yy_cp = ++yy_c_buf_p; + yy_cp = ++(yy_c_buf_p); yy_current_state = yy_next_state; goto yy_match; } else { - yy_cp = yy_c_buf_p; + yy_cp = (yy_c_buf_p); goto yy_find_action; } } - else switch ( yy_get_next_buffer() ) + else switch ( yy_get_next_buffer( ) ) { case EOB_ACT_END_OF_FILE: { - yy_did_buffer_switch_on_eof = 0; + (yy_did_buffer_switch_on_eof) = 0; - if ( yywrap() ) + if ( gdb_result_wrap( ) ) { /* Note: because we've taken care in * yy_get_next_buffer() to have set up - * yytext, we can now set up + * gdb_result_text, we can now set up * yy_c_buf_p so that if some total * hoser (like flex itself) wants to * call the scanner after we return the * YY_NULL, it'll still work - another * YY_NULL will get returned. */ - yy_c_buf_p = yytext_ptr + YY_MORE_ADJ; + (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ; yy_act = YY_STATE_EOF(YY_START); goto do_action; @@ -1412,30 +1491,30 @@ else { - if ( ! yy_did_buffer_switch_on_eof ) + if ( ! (yy_did_buffer_switch_on_eof) ) YY_NEW_FILE; } break; } case EOB_ACT_CONTINUE_SCAN: - yy_c_buf_p = - yytext_ptr + yy_amount_of_matched_text; + (yy_c_buf_p) = + (yytext_ptr) + yy_amount_of_matched_text; - yy_current_state = yy_get_previous_state(); + yy_current_state = yy_get_previous_state( ); - yy_cp = yy_c_buf_p; - yy_bp = yytext_ptr + YY_MORE_ADJ; + yy_cp = (yy_c_buf_p); + yy_bp = (yytext_ptr) + YY_MORE_ADJ; goto yy_match; case EOB_ACT_LAST_MATCH: - yy_c_buf_p = - &yy_current_buffer->yy_ch_buf[yy_n_chars]; + (yy_c_buf_p) = + &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)]; - yy_current_state = yy_get_previous_state(); + yy_current_state = yy_get_previous_state( ); - yy_cp = yy_c_buf_p; - yy_bp = yytext_ptr + YY_MORE_ADJ; + yy_cp = (yy_c_buf_p); + yy_bp = (yytext_ptr) + YY_MORE_ADJ; goto yy_find_action; } break; @@ -1446,8 +1525,7 @@ "fatal flex scanner internal error--no action found" ); } /* end of action switch */ } /* end of scanning one token */ - } /* end of yylex */ - +} /* end of gdb_result_lex */ /* yy_get_next_buffer - try to read in a new buffer * @@ -1456,21 +1534,20 @@ * EOB_ACT_CONTINUE_SCAN - continue scanning from current position * EOB_ACT_END_OF_FILE - end of file */ - -static int yy_get_next_buffer() - { - register char *dest = yy_current_buffer->yy_ch_buf; - register char *source = yytext_ptr; +static int yy_get_next_buffer (void) +{ + register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; + register char *source = (yytext_ptr); register int number_to_move, i; int ret_val; - if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] ) + if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] ) YY_FATAL_ERROR( "fatal flex scanner internal error--end of buffer missed" ); - if ( yy_current_buffer->yy_fill_buffer == 0 ) + if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 ) { /* Don't try to fill the buffer, so this is an EOF. */ - if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 ) + if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 ) { /* We matched a single character, the EOB, so * treat this as a final EOF. @@ -1490,38 +1567,34 @@ /* Try to read more data. */ /* First move last chars to start of buffer. */ - number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1; + number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1; for ( i = 0; i < number_to_move; ++i ) *(dest++) = *(source++); - if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING ) + if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING ) /* don't do the read, it's not guaranteed to return an EOF, * just force an EOF */ - yy_current_buffer->yy_n_chars = yy_n_chars = 0; + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0; else { - int num_to_read = - yy_current_buffer->yy_buf_size - number_to_move - 1; + yy_size_t num_to_read = + YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; while ( num_to_read <= 0 ) { /* Not enough room in the buffer - grow it. */ -#ifdef YY_USES_REJECT - YY_FATAL_ERROR( -"input buffer overflow, can't enlarge buffer because scanner uses REJECT" ); -#else /* just a shorter name for the current buffer */ - YY_BUFFER_STATE b = yy_current_buffer; + YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE; int yy_c_buf_p_offset = - (int) (yy_c_buf_p - b->yy_ch_buf); + (int) ((yy_c_buf_p) - b->yy_ch_buf); if ( b->yy_is_our_buffer ) { - int new_size = b->yy_buf_size * 2; + yy_size_t new_size = b->yy_buf_size * 2; if ( new_size <= 0 ) b->yy_buf_size += b->yy_buf_size / 8; @@ -1530,8 +1603,7 @@ b->yy_ch_buf = (char *) /* Include room in for 2 EOB chars. */ - yy_flex_realloc( (void *) b->yy_ch_buf, - b->yy_buf_size + 2 ); + gdb_result_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ); } else /* Can't grow it, we don't own it. */ @@ -1541,35 +1613,35 @@ YY_FATAL_ERROR( "fatal error - scanner input buffer overflow" ); - yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset]; + (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset]; - num_to_read = yy_current_buffer->yy_buf_size - + num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; -#endif + } if ( num_to_read > YY_READ_BUF_SIZE ) num_to_read = YY_READ_BUF_SIZE; /* Read in more data. */ - YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]), - yy_n_chars, num_to_read ); + YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), + (yy_n_chars), num_to_read ); - yy_current_buffer->yy_n_chars = yy_n_chars; + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); } - if ( yy_n_chars == 0 ) + if ( (yy_n_chars) == 0 ) { if ( number_to_move == YY_MORE_ADJ ) { ret_val = EOB_ACT_END_OF_FILE; - yyrestart( yyin ); + gdb_result_restart(gdb_result_in ); } else { ret_val = EOB_ACT_LAST_MATCH; - yy_current_buffer->yy_buffer_status = + YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_EOF_PENDING; } } @@ -1577,30 +1649,40 @@ else ret_val = EOB_ACT_CONTINUE_SCAN; - yy_n_chars += number_to_move; - yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR; - yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR; + if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { + /* Extend the array by 50%, plus the number we really need. */ + yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) gdb_result_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ); + if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) + YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); + } - yytext_ptr = &yy_current_buffer->yy_ch_buf[0]; + (yy_n_chars) += number_to_move; + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR; + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR; - return ret_val; - } + (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0]; + return ret_val; +} /* yy_get_previous_state - get the state just before the EOB char was reached */ -static yy_state_type yy_get_previous_state() - { + static yy_state_type yy_get_previous_state (void) +{ register yy_state_type yy_current_state; register char *yy_cp; + + yy_current_state = (yy_start); - yy_current_state = yy_start; - yy_state_ptr = yy_state_buf; - *yy_state_ptr++ = yy_current_state; - - for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp ) + for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp ) { register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); + if ( yy_accept[yy_current_state] ) + { + (yy_last_accepting_state) = yy_current_state; + (yy_last_accepting_cpos) = yy_cp; + } while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; @@ -1608,29 +1690,27 @@ yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - *yy_state_ptr++ = yy_current_state; } return yy_current_state; - } - +} /* yy_try_NUL_trans - try to make a transition on the NUL character * * synopsis * next_state = yy_try_NUL_trans( current_state ); */ - -#ifdef YY_USE_PROTOS -static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state ) -#else -static yy_state_type yy_try_NUL_trans( yy_current_state ) -yy_state_type yy_current_state; -#endif - { + static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state ) +{ register int yy_is_jam; + register char *yy_cp = (yy_c_buf_p); register YY_CHAR yy_c = 1; + if ( yy_accept[yy_current_state] ) + { + (yy_last_accepting_state) = yy_current_state; + (yy_last_accepting_cpos) = yy_cp; + } while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; @@ -1639,86 +1719,79 @@ } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; yy_is_jam = (yy_current_state == 347); - if ( ! yy_is_jam ) - *yy_state_ptr++ = yy_current_state; - - return yy_is_jam ? 0 : yy_current_state; - } + return yy_is_jam ? 0 : yy_current_state; +} -#ifndef YY_NO_UNPUT -#ifdef YY_USE_PROTOS -static void yyunput( int c, register char *yy_bp ) -#else -static void yyunput( c, yy_bp ) -int c; -register char *yy_bp; -#endif - { - register char *yy_cp = yy_c_buf_p; + static void yyunput (int c, register char * yy_bp ) +{ + register char *yy_cp; + + yy_cp = (yy_c_buf_p); - /* undo effects of setting up yytext */ - *yy_cp = yy_hold_char; + /* undo effects of setting up gdb_result_text */ + *yy_cp = (yy_hold_char); - if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 ) + if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) { /* need to shift things up to make room */ /* +2 for EOB chars. */ - register int number_to_move = yy_n_chars + 2; - register char *dest = &yy_current_buffer->yy_ch_buf[ - yy_current_buffer->yy_buf_size + 2]; + register yy_size_t number_to_move = (yy_n_chars) + 2; + register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ + YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2]; register char *source = - &yy_current_buffer->yy_ch_buf[number_to_move]; + &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]; - while ( source > yy_current_buffer->yy_ch_buf ) + while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) *--dest = *--source; yy_cp += (int) (dest - source); yy_bp += (int) (dest - source); - yy_current_buffer->yy_n_chars = - yy_n_chars = yy_current_buffer->yy_buf_size; + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = + (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size; - if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 ) + if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) YY_FATAL_ERROR( "flex scanner push-back overflow" ); } *--yy_cp = (char) c; - if ( c == '\n' ) - --yylineno; - - yytext_ptr = yy_bp; - yy_hold_char = *yy_cp; - yy_c_buf_p = yy_cp; - } -#endif /* ifndef YY_NO_UNPUT */ - + if ( c == '\n' ){ + --gdb_result_lineno; + } + + (yytext_ptr) = yy_bp; + (yy_hold_char) = *yy_cp; + (yy_c_buf_p) = yy_cp; +} +#ifndef YY_NO_INPUT #ifdef __cplusplus -static int yyinput() + static int yyinput (void) #else -static int input() + static int input (void) #endif - { - int c; - *yy_c_buf_p = yy_hold_char; +{ + int c; + + *(yy_c_buf_p) = (yy_hold_char); - if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR ) + if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR ) { /* yy_c_buf_p now points to the character we want to return. * If this occurs *before* the EOB characters, then it's a * valid NUL; if not, then we've hit the end of the buffer. */ - if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] ) + if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) /* This was really a NUL. */ - *yy_c_buf_p = '\0'; + *(yy_c_buf_p) = '\0'; else { /* need more input */ - int offset = yy_c_buf_p - yytext_ptr; - ++yy_c_buf_p; + yy_size_t offset = (yy_c_buf_p) - (yytext_ptr); + ++(yy_c_buf_p); - switch ( yy_get_next_buffer() ) + switch ( yy_get_next_buffer( ) ) { case EOB_ACT_LAST_MATCH: /* This happens because yy_g_n_b() @@ -1732,16 +1805,16 @@ */ /* Reset buffer status. */ - yyrestart( yyin ); + gdb_result_restart(gdb_result_in ); - /* fall through */ + /*FALLTHROUGH*/ case EOB_ACT_END_OF_FILE: { - if ( yywrap() ) + if ( gdb_result_wrap( ) ) return EOF; - if ( ! yy_did_buffer_switch_on_eof ) + if ( ! (yy_did_buffer_switch_on_eof) ) YY_NEW_FILE; #ifdef __cplusplus return yyinput(); @@ -1751,174 +1824,170 @@ } case EOB_ACT_CONTINUE_SCAN: - yy_c_buf_p = yytext_ptr + offset; + (yy_c_buf_p) = (yytext_ptr) + offset; break; } } } - c = *(unsigned char *) yy_c_buf_p; /* cast for 8-bit char's */ - *yy_c_buf_p = '\0'; /* preserve yytext */ - yy_hold_char = *++yy_c_buf_p; + c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */ + *(yy_c_buf_p) = '\0'; /* preserve gdb_result_text */ + (yy_hold_char) = *++(yy_c_buf_p); if ( c == '\n' ) - ++yylineno; + + gdb_result_lineno++; +; return c; - } - - -#ifdef YY_USE_PROTOS -void yyrestart( FILE *input_file ) -#else -void yyrestart( input_file ) -FILE *input_file; -#endif - { - if ( ! yy_current_buffer ) - yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); +} +#endif /* ifndef YY_NO_INPUT */ - yy_init_buffer( yy_current_buffer, input_file ); - yy_load_buffer_state(); +/** Immediately switch to a different input stream. + * @param input_file A readable stream. + * + * @note This function does not reset the start condition to @c INITIAL . + */ + void gdb_result_restart (FILE * input_file ) +{ + + if ( ! YY_CURRENT_BUFFER ){ + gdb_result_ensure_buffer_stack (); + YY_CURRENT_BUFFER_LVALUE = + gdb_result__create_buffer(gdb_result_in,YY_BUF_SIZE ); } + gdb_result__init_buffer(YY_CURRENT_BUFFER,input_file ); + gdb_result__load_buffer_state( ); +} -#ifdef YY_USE_PROTOS -void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer ) -#else -void yy_switch_to_buffer( new_buffer ) -YY_BUFFER_STATE new_buffer; -#endif - { - if ( yy_current_buffer == new_buffer ) +/** Switch to a different input buffer. + * @param new_buffer The new input buffer. + * + */ + void gdb_result__switch_to_buffer (YY_BUFFER_STATE new_buffer ) +{ + + /* TODO. We should be able to replace this entire function body + * with + * gdb_result_pop_buffer_state(); + * gdb_result_push_buffer_state(new_buffer); + */ + gdb_result_ensure_buffer_stack (); + if ( YY_CURRENT_BUFFER == new_buffer ) return; - if ( yy_current_buffer ) + if ( YY_CURRENT_BUFFER ) { /* Flush out information for old buffer. */ - *yy_c_buf_p = yy_hold_char; - yy_current_buffer->yy_buf_pos = yy_c_buf_p; - yy_current_buffer->yy_n_chars = yy_n_chars; + *(yy_c_buf_p) = (yy_hold_char); + YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); } - yy_current_buffer = new_buffer; - yy_load_buffer_state(); + YY_CURRENT_BUFFER_LVALUE = new_buffer; + gdb_result__load_buffer_state( ); /* We don't actually know whether we did this switch during - * EOF (yywrap()) processing, but the only time this flag - * is looked at is after yywrap() is called, so it's safe + * EOF (gdb_result_wrap()) processing, but the only time this flag + * is looked at is after gdb_result_wrap() is called, so it's safe * to go ahead and always set it. */ - yy_did_buffer_switch_on_eof = 1; - } - - -#ifdef YY_USE_PROTOS -void yy_load_buffer_state( void ) -#else -void yy_load_buffer_state() -#endif - { - yy_n_chars = yy_current_buffer->yy_n_chars; - yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos; - yyin = yy_current_buffer->yy_input_file; - yy_hold_char = *yy_c_buf_p; - } + (yy_did_buffer_switch_on_eof) = 1; +} +static void gdb_result__load_buffer_state (void) +{ + (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; + (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; + gdb_result_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file; + (yy_hold_char) = *(yy_c_buf_p); +} -#ifdef YY_USE_PROTOS -YY_BUFFER_STATE yy_create_buffer( FILE *file, int size ) -#else -YY_BUFFER_STATE yy_create_buffer( file, size ) -FILE *file; -int size; -#endif - { +/** Allocate and initialize an input buffer state. + * @param file A readable stream. + * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE. + * + * @return the allocated buffer state. + */ + YY_BUFFER_STATE gdb_result__create_buffer (FILE * file, int size ) +{ YY_BUFFER_STATE b; - - b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) ); + + b = (YY_BUFFER_STATE) gdb_result_alloc(sizeof( struct yy_buffer_state ) ); if ( ! b ) - YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); + YY_FATAL_ERROR( "out of dynamic memory in gdb_result__create_buffer()" ); b->yy_buf_size = size; /* yy_ch_buf has to be 2 characters longer than the size given because * we need to put in 2 end-of-buffer characters. */ - b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 ); + b->yy_ch_buf = (char *) gdb_result_alloc(b->yy_buf_size + 2 ); if ( ! b->yy_ch_buf ) - YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); + YY_FATAL_ERROR( "out of dynamic memory in gdb_result__create_buffer()" ); b->yy_is_our_buffer = 1; - yy_init_buffer( b, file ); + gdb_result__init_buffer(b,file ); return b; - } - +} -#ifdef YY_USE_PROTOS -void yy_delete_buffer( YY_BUFFER_STATE b ) -#else -void yy_delete_buffer( b ) -YY_BUFFER_STATE b; -#endif - { +/** Destroy the buffer. + * @param b a buffer created with gdb_result__create_buffer() + * + */ + void gdb_result__delete_buffer (YY_BUFFER_STATE b ) +{ + if ( ! b ) return; - if ( b == yy_current_buffer ) - yy_current_buffer = (YY_BUFFER_STATE) 0; + if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */ + YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; if ( b->yy_is_our_buffer ) - yy_flex_free( (void *) b->yy_ch_buf ); - - yy_flex_free( (void *) b ); - } - - -#ifndef YY_ALWAYS_INTERACTIVE -#ifndef YY_NEVER_INTERACTIVE -extern int isatty YY_PROTO(( int )); -#endif -#endif + gdb_result_free((void *) b->yy_ch_buf ); -#ifdef YY_USE_PROTOS -void yy_init_buffer( YY_BUFFER_STATE b, FILE *file ) -#else -void yy_init_buffer( b, file ) -YY_BUFFER_STATE b; -FILE *file; -#endif + gdb_result_free((void *) b ); +} +/* Initializes or reinitializes a buffer. + * This function is sometimes called more than once on the same buffer, + * such as during a gdb_result_restart() or at EOF. + */ + static void gdb_result__init_buffer (YY_BUFFER_STATE b, FILE * file ) - { - yy_flush_buffer( b ); +{ + int oerrno = errno; + + gdb_result__flush_buffer(b ); b->yy_input_file = file; b->yy_fill_buffer = 1; -#if YY_ALWAYS_INTERACTIVE - b->yy_is_interactive = 1; -#else -#if YY_NEVER_INTERACTIVE - b->yy_is_interactive = 0; -#else - b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0; -#endif -#endif - } - - -#ifdef YY_USE_PROTOS -void yy_flush_buffer( YY_BUFFER_STATE b ) -#else -void yy_flush_buffer( b ) -YY_BUFFER_STATE b; -#endif + /* If b is the current buffer, then gdb_result__init_buffer was _probably_ + * called from gdb_result_restart() or through yy_get_next_buffer. + * In that case, we don't want to reset the lineno or column. + */ + if (b != YY_CURRENT_BUFFER){ + b->yy_bs_lineno = 1; + b->yy_bs_column = 0; + } + + b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0; + + errno = oerrno; +} - { - if ( ! b ) +/** Discard all buffered characters. On the next scan, YY_INPUT will be called. + * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER. + * + */ + void gdb_result__flush_buffer (YY_BUFFER_STATE b ) +{ + if ( ! b ) return; b->yy_n_chars = 0; @@ -1935,31 +2004,127 @@ b->yy_at_bol = 1; b->yy_buffer_status = YY_BUFFER_NEW; - if ( b == yy_current_buffer ) - yy_load_buffer_state(); + if ( b == YY_CURRENT_BUFFER ) + gdb_result__load_buffer_state( ); +} + +/** Pushes the new state onto the stack. The new state becomes + * the current state. This function will allocate the stack + * if necessary. + * @param new_buffer The new state. + * + */ +void gdb_result_push_buffer_state (YY_BUFFER_STATE new_buffer ) +{ + if (new_buffer == NULL) + return; + + gdb_result_ensure_buffer_stack(); + + /* This block is copied from gdb_result__switch_to_buffer. */ + if ( YY_CURRENT_BUFFER ) + { + /* Flush out information for old buffer. */ + *(yy_c_buf_p) = (yy_hold_char); + YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); + } + + /* Only push if top exists. Otherwise, replace top. */ + if (YY_CURRENT_BUFFER) + (yy_buffer_stack_top)++; + YY_CURRENT_BUFFER_LVALUE = new_buffer; + + /* copied from gdb_result__switch_to_buffer. */ + gdb_result__load_buffer_state( ); + (yy_did_buffer_switch_on_eof) = 1; +} + +/** Removes and deletes the top of the stack, if present. + * The next element becomes the new top. + * + */ +void gdb_result_pop_buffer_state (void) +{ + if (!YY_CURRENT_BUFFER) + return; + + gdb_result__delete_buffer(YY_CURRENT_BUFFER ); + YY_CURRENT_BUFFER_LVALUE = NULL; + if ((yy_buffer_stack_top) > 0) + --(yy_buffer_stack_top); + + if (YY_CURRENT_BUFFER) { + gdb_result__load_buffer_state( ); + (yy_did_buffer_switch_on_eof) = 1; } +} +/* Allocates the stack if it does not exist. + * Guarantees space for at least one push. + */ +static void gdb_result_ensure_buffer_stack (void) +{ + yy_size_t num_to_alloc; + + if (!(yy_buffer_stack)) { + + /* First allocation is just for 2 elements, since we don't know if this + * scanner will even need a stack. We use 2 instead of 1 to avoid an + * immediate realloc on the next call. + */ + num_to_alloc = 1; + (yy_buffer_stack) = (struct yy_buffer_state**)gdb_result_alloc + (num_to_alloc * sizeof(struct yy_buffer_state*) + ); + if ( ! (yy_buffer_stack) ) + YY_FATAL_ERROR( "out of dynamic memory in gdb_result_ensure_buffer_stack()" ); + + memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); + + (yy_buffer_stack_max) = num_to_alloc; + (yy_buffer_stack_top) = 0; + return; + } -#ifndef YY_NO_SCAN_BUFFER -#ifdef YY_USE_PROTOS -YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size ) -#else -YY_BUFFER_STATE yy_scan_buffer( base, size ) -char *base; -yy_size_t size; -#endif - { - YY_BUFFER_STATE b; + if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){ + /* Increase the buffer to prepare for a possible push. */ + int grow_size = 8 /* arbitrary grow size */; + + num_to_alloc = (yy_buffer_stack_max) + grow_size; + (yy_buffer_stack) = (struct yy_buffer_state**)gdb_result_realloc + ((yy_buffer_stack), + num_to_alloc * sizeof(struct yy_buffer_state*) + ); + if ( ! (yy_buffer_stack) ) + YY_FATAL_ERROR( "out of dynamic memory in gdb_result_ensure_buffer_stack()" ); + + /* zero only the new slots.*/ + memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*)); + (yy_buffer_stack_max) = num_to_alloc; + } +} + +/** Setup the input buffer state to scan directly from a user-specified character buffer. + * @param base the character buffer + * @param size the size in bytes of the character buffer + * + * @return the newly allocated buffer state object. + */ +YY_BUFFER_STATE gdb_result__scan_buffer (char * base, yy_size_t size ) +{ + YY_BUFFER_STATE b; + if ( size < 2 || base[size-2] != YY_END_OF_BUFFER_CHAR || base[size-1] != YY_END_OF_BUFFER_CHAR ) /* They forgot to leave room for the EOB's. */ return 0; - b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) ); + b = (YY_BUFFER_STATE) gdb_result_alloc(sizeof( struct yy_buffer_state ) ); if ( ! b ) - YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" ); + YY_FATAL_ERROR( "out of dynamic memory in gdb_result__scan_buffer()" ); b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ b->yy_buf_pos = b->yy_ch_buf = base; @@ -1971,58 +2136,53 @@ b->yy_fill_buffer = 0; b->yy_buffer_status = YY_BUFFER_NEW; - yy_switch_to_buffer( b ); + gdb_result__switch_to_buffer(b ); return b; - } -#endif - - -#ifndef YY_NO_SCAN_STRING -#ifdef YY_USE_PROTOS -YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str ) -#else -YY_BUFFER_STATE yy_scan_string( yy_str ) -yyconst char *yy_str; -#endif - { - int len; - for ( len = 0; yy_str[len]; ++len ) - ; - - return yy_scan_bytes( yy_str, len ); - } -#endif +} +/** Setup the input buffer state to scan a string. The next call to gdb_result_lex() will + * scan from a @e copy of @a str. + * @param yystr a NUL-terminated string to scan + * + * @return the newly allocated buffer state object. + * @note If you want to scan bytes that may contain NUL values, then use + * gdb_result__scan_bytes() instead. + */ +YY_BUFFER_STATE gdb_result__scan_string (yyconst char * yystr ) +{ + + return gdb_result__scan_bytes(yystr,strlen(yystr) ); +} -#ifndef YY_NO_SCAN_BYTES -#ifdef YY_USE_PROTOS -YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len ) -#else -YY_BUFFER_STATE yy_scan_bytes( bytes, len ) -yyconst char *bytes; -int len; -#endif - { +/** Setup the input buffer state to scan the given bytes. The next call to gdb_result_lex() will + * scan from a @e copy of @a bytes. + * @param yybytes the byte buffer to scan + * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes. + * + * @return the newly allocated buffer state object. + */ +YY_BUFFER_STATE gdb_result__scan_bytes (yyconst char * yybytes, yy_size_t _yybytes_len ) +{ YY_BUFFER_STATE b; char *buf; yy_size_t n; - int i; - + yy_size_t i; + /* Get memory for full buffer, including space for trailing EOB's. */ - n = len + 2; - buf = (char *) yy_flex_alloc( n ); + n = _yybytes_len + 2; + buf = (char *) gdb_result_alloc(n ); if ( ! buf ) - YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" ); + YY_FATAL_ERROR( "out of dynamic memory in gdb_result__scan_bytes()" ); - for ( i = 0; i < len; ++i ) - buf[i] = bytes[i]; + for ( i = 0; i < _yybytes_len; ++i ) + buf[i] = yybytes[i]; - buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR; + buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR; - b = yy_scan_buffer( buf, n ); + b = gdb_result__scan_buffer(buf,n ); if ( ! b ) - YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" ); + YY_FATAL_ERROR( "bad buffer in gdb_result__scan_bytes()" ); /* It's okay to grow etc. this buffer, and we should throw it * away when we're done. @@ -2030,148 +2190,199 @@ b->yy_is_our_buffer = 1; return b; - } -#endif - +} -#ifndef YY_NO_PUSH_STATE -#ifdef YY_USE_PROTOS -static void yy_push_state( int new_state ) -#else -static void yy_push_state( new_state ) -int new_state; +#ifndef YY_EXIT_FAILURE +#define YY_EXIT_FAILURE 2 #endif - { - if ( yy_start_stack_ptr >= yy_start_stack_depth ) - { - yy_size_t new_size; - yy_start_stack_depth += YY_START_STACK_INCR; - new_size = yy_start_stack_depth * sizeof( int ); +static void yy_fatal_error (yyconst char* msg ) +{ + (void) fprintf( stderr, "%s\n", msg ); + exit( YY_EXIT_FAILURE ); +} - if ( ! yy_start_stack ) - yy_start_stack = (int *) yy_flex_alloc( new_size ); +/* Redefine yyless() so it works in section 3 code. */ - else - yy_start_stack = (int *) yy_flex_realloc( - (void *) yy_start_stack, new_size ); +#undef yyless +#define yyless(n) \ + do \ + { \ + /* Undo effects of setting up gdb_result_text. */ \ + int yyless_macro_arg = (n); \ + YY_LESS_LINENO(yyless_macro_arg);\ + gdb_result_text[gdb_result_leng] = (yy_hold_char); \ + (yy_c_buf_p) = gdb_result_text + yyless_macro_arg; \ + (yy_hold_char) = *(yy_c_buf_p); \ + *(yy_c_buf_p) = '\0'; \ + gdb_result_leng = yyless_macro_arg; \ + } \ + while ( 0 ) - if ( ! yy_start_stack ) - YY_FATAL_ERROR( - "out of memory expanding start-condition stack" ); - } +/* Accessor methods (get/set functions) to struct members. */ - yy_start_stack[yy_start_stack_ptr++] = YY_START; +/** Get the current line number. + * + */ +int gdb_result_get_lineno (void) +{ + + return gdb_result_lineno; +} - BEGIN(new_state); - } -#endif +/** Get the input stream. + * + */ +FILE *gdb_result_get_in (void) +{ + return gdb_result_in; +} +/** Get the output stream. + * + */ +FILE *gdb_result_get_out (void) +{ + return gdb_result_out; +} -#ifndef YY_NO_POP_STATE -static void yy_pop_state() - { - if ( --yy_start_stack_ptr < 0 ) - YY_FATAL_ERROR( "start-condition stack underflow" ); +/** Get the length of the current token. + * + */ +yy_size_t gdb_result_get_leng (void) +{ + return gdb_result_leng; +} - BEGIN(yy_start_stack[yy_start_stack_ptr]); - } -#endif +/** Get the current token. + * + */ +char *gdb_result_get_text (void) +{ + return gdb_result_text; +} -#ifndef YY_NO_TOP_STATE -static int yy_top_state() - { - return yy_start_stack[yy_start_stack_ptr - 1]; - } -#endif +/** Set the current line number. + * @param line_number + * + */ +void gdb_result_set_lineno (int line_number ) +{ + + gdb_result_lineno = line_number; +} -#ifndef YY_EXIT_FAILURE -#define YY_EXIT_FAILURE 2 -#endif +/** Set the input stream. This does not discard the current + * input buffer. + * @param in_str A readable stream. + * + * @see gdb_result__switch_to_buffer + */ +void gdb_result_set_in (FILE * in_str ) +{ + gdb_result_in = in_str ; +} -#ifdef YY_USE_PROTOS -static void yy_fatal_error( yyconst char msg[] ) -#else -static void yy_fatal_error( msg ) -char msg[]; -#endif - { - (void) fprintf( stderr, "%s\n", msg ); - exit( YY_EXIT_FAILURE ); - } +void gdb_result_set_out (FILE * out_str ) +{ + gdb_result_out = out_str ; +} +int gdb_result_get_debug (void) +{ + return gdb_result__flex_debug; +} +void gdb_result_set_debug (int bdebug ) +{ + gdb_result__flex_debug = bdebug ; +} -/* Redefine yyless() so it works in section 3 code. */ +static int yy_init_globals (void) +{ + /* Initialization is the same as for the non-reentrant scanner. + * This function is called from gdb_result_lex_destroy(), so don't allocate here. + */ + + /* We do not touch gdb_result_lineno unless the option is enabled. */ + gdb_result_lineno = 1; + + (yy_buffer_stack) = 0; + (yy_buffer_stack_top) = 0; + (yy_buffer_stack_max) = 0; + (yy_c_buf_p) = (char *) 0; + (yy_init) = 0; + (yy_start) = 0; + +/* Defined in main.c */ +#ifdef YY_STDINIT + gdb_result_in = stdin; + gdb_result_out = stdout; +#else + gdb_result_in = (FILE *) 0; + gdb_result_out = (FILE *) 0; +#endif + + /* For future reference: Set errno on error, since we are called by + * gdb_result_lex_init() + */ + return 0; +} -#undef yyless -#define yyless(n) \ - do \ - { \ - /* Undo effects of setting up yytext. */ \ - yytext[yyleng] = yy_hold_char; \ - yy_c_buf_p = yytext + n; \ - yy_hold_char = *yy_c_buf_p; \ - *yy_c_buf_p = '\0'; \ - yyleng = n; \ - } \ - while ( 0 ) +/* gdb_result_lex_destroy is for both reentrant and non-reentrant scanners. */ +int gdb_result_lex_destroy (void) +{ + + /* Pop the buffer stack, destroying each element. */ + while(YY_CURRENT_BUFFER){ + gdb_result__delete_buffer(YY_CURRENT_BUFFER ); + YY_CURRENT_BUFFER_LVALUE = NULL; + gdb_result_pop_buffer_state(); + } + + /* Destroy the stack itself. */ + gdb_result_free((yy_buffer_stack) ); + (yy_buffer_stack) = NULL; + + /* Reset the globals. This is important in a non-reentrant scanner so the next time + * gdb_result_lex() is called, initialization will occur. */ + yy_init_globals( ); + return 0; +} -/* Internal utility routines. */ +/* + * Internal utility routines. + */ #ifndef yytext_ptr -#ifdef YY_USE_PROTOS -static void yy_flex_strncpy( char *s1, yyconst char *s2, int n ) -#else -static void yy_flex_strncpy( s1, s2, n ) -char *s1; -yyconst char *s2; -int n; -#endif - { +static void yy_flex_strncpy (char* s1, yyconst char * s2, int n ) +{ register int i; for ( i = 0; i < n; ++i ) s1[i] = s2[i]; - } +} #endif #ifdef YY_NEED_STRLEN -#ifdef YY_USE_PROTOS -static int yy_flex_strlen( yyconst char *s ) -#else -static int yy_flex_strlen( s ) -yyconst char *s; -#endif - { +static int yy_flex_strlen (yyconst char * s ) +{ register int n; for ( n = 0; s[n]; ++n ) ; return n; - } +} #endif - -#ifdef YY_USE_PROTOS -static void *yy_flex_alloc( yy_size_t size ) -#else -static void *yy_flex_alloc( size ) -yy_size_t size; -#endif - { +void *gdb_result_alloc (yy_size_t size ) +{ return (void *) malloc( size ); - } +} -#ifdef YY_USE_PROTOS -static void *yy_flex_realloc( void *ptr, yy_size_t size ) -#else -static void *yy_flex_realloc( ptr, size ) -void *ptr; -yy_size_t size; -#endif - { +void *gdb_result_realloc (void * ptr, yy_size_t size ) +{ /* The cast to (char *) in the following accommodates both * implementations that use char* generic pointers, and those * that use void* generic pointers. It works with the latter @@ -2180,32 +2391,20 @@ * as though doing an assignment. */ return (void *) realloc( (char *) ptr, size ); - } - -#ifdef YY_USE_PROTOS -static void yy_flex_free( void *ptr ) -#else -static void yy_flex_free( ptr ) -void *ptr; -#endif - { - free( ptr ); - } +} -#if YY_MAIN -int main() - { - yylex(); - return 0; - } -#endif +void gdb_result_free (void * ptr ) +{ + free( (char *) ptr ); /* see gdb_result_realloc() for (char *) cast */ +} +#define YYTABLES_NAME "yytables" /*******************************************************************/ void gdb_result_lex_clean() { - yy_flush_buffer(YY_CURRENT_BUFFER); - yy_delete_buffer(YY_CURRENT_BUFFER); + gdb_result__flush_buffer(YY_CURRENT_BUFFER); + gdb_result__delete_buffer(YY_CURRENT_BUFFER); gdb_result_lineno = 1; gs_ascii = false; gs_want_whitespace = false; @@ -2215,11 +2414,11 @@ BEGIN INITIAL; gs_ascii = ascii; gs_want_whitespace = wantWhitespace; - yy_scan_string(in.c_str()); + gdb_result__scan_string(in.c_str()); return true; } -int yywrap(){ +int gdb_result_wrap(){ return 1; } @@ -2232,18 +2431,19 @@ gs_bufferStack.push_back(YY_CURRENT_BUFFER); // create new buffer and use it - yy_switch_to_buffer( yy_scan_string(new_input.c_str()) ); + gdb_result__switch_to_buffer(gdb_result__scan_string(new_input.c_str()) ); } void gdb_result_pop_buffer(){ // clean current buffer - yy_delete_buffer(YY_CURRENT_BUFFER); + gdb_result__delete_buffer(YY_CURRENT_BUFFER); // create new buffer and use it - yy_switch_to_buffer( gs_bufferStack.back() ); + gdb_result__switch_to_buffer(gs_bufferStack.back() ); gs_bufferStack.pop_back(); } void gdb_result_error(const char* msg) { } + diff -Nru codelite-8.0.1+dfsg2/gdbparser/gdb_result_parser.cpp codelite-9.0+dfsg/gdbparser/gdb_result_parser.cpp --- codelite-8.0.1+dfsg2/gdbparser/gdb_result_parser.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/gdbparser/gdb_result_parser.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -118,176 +118,184 @@ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 16, 2, 2, 2, 14, 19, 14, 17, 20, 17, 12, 12, 15, 15, 21, 21, 22, 22, 13, - 13, 23, 24, 23, 11, 11, 10, 10, 5, 5, - 7, 7, 6, 6, 8, 26, 8, 8, 27, 8, - 8, 18, 18, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, + 13, 24, 23, 23, 11, 11, 10, 10, 5, 5, + 7, 7, 6, 6, 25, 25, 8, 27, 8, 8, + 28, 8, 8, 8, 8, 18, 18, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, }; short gdb_result_len[] = { 2, 1, 2, 0, 2, 1, 0, 4, 13, 17, 0, 9, 8, 6, 8, 8, 8, 20, 20, 9, 8, 8, 0, 9, 8, 1, 3, 0, 6, 3, 0, 6, 13, 5, 1, 3, 3, 5, 3, 5, 6, - 2, 5, 0, 8, 5, 7, 3, 5, 1, 1, - 1, 1, 5, 7, 3, 0, 6, 3, 0, 6, - 5, 11, 5, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, + 2, 3, 1, 3, 5, 7, 3, 5, 1, 1, + 1, 1, 5, 7, 1, 3, 3, 0, 6, 3, + 0, 6, 5, 7, 5, 11, 5, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, }; short gdb_result_defred[] = { 0, 5, 0, 1, 0, 2, 0, 0, 4, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 67, 64, 70, 69, 65, 66, 68, 0, 71, 72, - 73, 0, 76, 77, 75, 74, 0, 78, 0, 0, - 50, 49, 0, 0, 0, 0, 0, 0, 0, 0, + 71, 68, 74, 73, 69, 70, 72, 0, 75, 76, + 77, 0, 80, 81, 79, 78, 0, 82, 0, 0, + 49, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 58, 59, 0, - 0, 0, 12, 52, 51, 20, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 12, 51, 52, 20, 0, 0, 0, 0, 14, 0, 16, 15, 0, 0, 0, 0, 0, 0, 0, 24, 0, 21, 0, 0, 0, 0, 0, 0, - 0, 11, 0, 47, 0, 0, 0, 0, 0, 0, - 0, 0, 41, 19, 0, 0, 0, 23, 61, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 35, 60, 62, 57, 0, 45, - 48, 0, 0, 0, 0, 0, 33, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 31, 28, 0, 46, 0, 0, 0, 8, 0, 0, - 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 53, 0, 0, 0, 0, 0, 0, 0, 7, 0, - 0, 44, 0, 0, 54, 9, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 32, 17, 18, 0, 0, - 0, 0, 0, 37, 39, + 0, 0, 0, 11, 0, 47, 0, 0, 0, 0, + 0, 0, 0, 0, 41, 0, 19, 0, 0, 0, + 23, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 35, 62, 56, 0, 66, 59, 0, 45, 48, 0, + 0, 0, 0, 0, 33, 0, 42, 44, 0, 0, + 64, 0, 0, 0, 0, 0, 0, 0, 0, 31, + 28, 0, 46, 0, 0, 0, 8, 0, 0, 40, + 0, 0, 0, 0, 0, 0, 0, 53, 0, 0, + 0, 0, 0, 0, 7, 0, 0, 0, 0, 54, + 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 32, 17, 18, 0, 0, 0, 0, 0, 37, 39, }; short gdb_result_dgoto[] = { 2, - 3, 8, 4, 198, 92, 174, 106, 59, 107, 85, - 86, 91, 120, 95, 126, 96, 93, 9, 164, 163, - 231, 235, 143, 209, 60, 130, 128, + 3, 8, 4, 207, 92, 182, 106, 59, 107, 85, + 86, 91, 120, 95, 126, 96, 93, 9, 170, 169, + 236, 240, 145, 146, 130, 60, 132, 128, }; -short gdb_result_sindex[] = { -229, - 0, -229, 0, -94, 0, -6, -210, 0, 0, -253, - 4, -9, -1, -84, -74, -212, 6, 9, 11, 17, - 18, 19, 21, 22, 24, 25, 26, -72, 0, -69, - -203, -69, -179, -69, -69, -178, -69, -69, -69, -69, - 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, - 0, 37, 0, 0, 0, 0, 38, 0, -24, 41, - 0, 0, -162, 62, -72, 64, -116, -8, 70, -250, - -69, -69, 0, -7, 27, 30, 73, -145, 63, -72, - -63, 0, 67, -72, -34, -25, -34, -261, 69, 71, - 79, -72, -63, -72, -63, -142, -72, 0, 0, -163, - 0, -69, 0, 0, 0, 0, -72, 10, 12, 15, - 0, -151, 0, 0, 78, 80, -127, -69, -247, -63, - -63, 0, -63, 0, 98, -63, 20, 99, 85, 103, - -120, 0, -72, 0, -72, 89, -69, -115, 107, -142, - 96, 105, 0, 0, 0, 0, -142, 0, 0, -72, - -107, -72, 109, 39, 43, 48, -109, 131, -112, -63, - -69, -69, 133, 136, 0, 0, 0, 0, -82, 0, - 0, -72, 122, -20, -92, 127, 0, -99, -72, -69, - -69, 153, 74, 77, -76, 165, 149, -55, -63, -63, - 0, 0, -51, 0, -72, 154, -83, 0, -69, 173, - 0, 0, 157, 94, 100, 171, -109, -53, 190, -69, - 0, -72, -30, -20, 177, -99, -116, 114, 0, 165, - -69, 0, -34, -25, 0, 0, -69, -63, -63, -36, - -63, -63, -63, 180, -63, 0, 0, 0, -22, 198, - 199, -69, -36, 0, 0, +short gdb_result_sindex[] = { -241, + 0, -241, 0, -94, 0, -15, -216, 0, 0, -243, + 4, -17, -8, 17, -69, -212, -4, -3, 11, 15, + 16, 18, 19, 20, 21, 22, 23, -29, 0, -74, + -203, -74, -202, -74, -74, -201, -74, -74, -74, -74, + 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, + 0, 26, 0, 0, 0, 0, 27, 0, -47, 28, + 0, 0, -162, 60, -29, 64, -115, -13, 67, -251, + -74, -74, 0, -10, 29, 30, 70, -152, 55, -29, + -73, 0, 57, -29, -34, -33, -34, -269, 63, 66, + 81, -29, -73, -29, -73, -136, -29, 0, -134, -160, + 0, -74, 0, 0, 0, 0, -29, 12, 13, 14, + 0, -149, 0, 0, 78, 79, -126, -74, -119, -73, + -73, 0, -73, 0, 98, -73, 31, 99, 100, 52, + 85, 103, -120, 0, -29, 0, -29, 88, -74, -117, + 107, -136, 91, -29, 0, 109, 0, 0, 0, -136, + 0, 0, -29, -134, 110, -112, -29, 96, 33, 34, + 38, -118, 119, -122, -73, 76, 47, 50, 133, 135, + 0, 0, 0, -29, 0, 0, -81, 0, 0, -29, + 127, -32, -93, 129, 0, 50, 0, 0, -74, -74, + 0, 147, 68, 71, -88, 152, 136, -65, 111, 0, + 0, -61, 0, -29, 145, -90, 0, -74, 164, 0, + 148, 87, 90, 149, -118, -75, -74, 0, -29, -52, + -32, 156, -115, 93, 0, 152, -74, -34, -33, 0, + 0, -74, -73, -73, -57, -73, -73, -73, 159, -73, + 0, 0, 0, -46, 178, 179, -74, -57, 0, 0, }; -short gdb_result_rindex[] = { -89, - 0, -89, 0, 0, 0, 0, 0, 0, 0, 0, +short gdb_result_rindex[] = { -92, + 0, -92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, + 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, -63, 0, 0, 0, 131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, -62, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, -62, 0, -19, -18, 0, + 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, -18, -16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -12, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, + 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, -60, - -59, 0, 0, 0, 0, + 0, 0, 0, 0, -56, -54, 0, 0, 0, 0, }; short gdb_result_gindex[] = { 0, - 242, 0, 0, 28, -26, 40, -70, -23, 0, -50, - 29, 0, 0, 68, -111, 0, 72, 0, 0, 0, - 8, 13, -158, 0, 0, 0, 0, + 223, 0, 0, 2, -16, 35, -53, 25, 0, -59, + 9, 0, 0, 36, -107, 0, 41, 0, 0, 0, + -20, -12, -140, 0, 84, 0, 0, 0, }; -#define YYTABLESIZE 295 +#define YYTABLESIZE 323 short gdb_result_table[] = { 7, - 55, 13, 6, 63, 3, 65, 84, 67, 68, 110, - 70, 71, 72, 73, 111, 113, 114, 87, 112, 189, - 115, 62, 122, 185, 124, 30, 1, 27, 160, 105, - 34, 43, 36, 38, 116, 165, 89, 10, 90, 12, - 13, 81, 141, 142, 56, 94, 11, 14, 28, 144, - 145, 15, 146, 61, 29, 148, 103, 222, 105, 16, - 109, 104, 34, 64, 36, 38, 30, 105, 121, 31, - 123, 32, 105, 127, 29, 131, 26, 33, 34, 35, - 42, 36, 37, 132, 38, 39, 40, 66, 69, 177, - 104, 140, 74, 55, 55, 13, 6, 75, 76, 104, - 77, 78, 79, 186, 104, 80, 29, 82, 26, 154, - 157, 155, 42, 88, 84, 97, 100, 98, 201, 202, - 99, 101, 119, 102, 125, 55, 166, 108, 168, 117, - 129, 118, 133, 136, 178, 179, 134, 135, 137, 139, - 138, 147, 150, 220, 149, 151, 152, 153, 183, 156, - 159, 158, 228, 229, 94, 190, 161, 232, 233, 167, - 236, 237, 238, 170, 240, 162, 223, 171, 83, 169, - 172, 204, 207, 173, 175, 176, 180, 17, 18, 181, - 19, 20, 184, 217, 182, 21, 22, 188, 218, 187, - 41, 142, 23, 42, 227, 43, 193, 6, 194, 195, - 230, 24, 3, 44, 45, 46, 196, 47, 197, 199, - 25, 200, 203, 206, 205, 230, 208, 210, 211, 26, - 48, 27, 212, 49, 50, 51, 52, 53, 54, 55, - 56, 213, 57, 216, 58, 215, 219, 221, 225, 234, - 239, 242, 243, 5, 241, 224, 214, 226, 192, 244, - 0, 191, 0, 0, 0, 245, 55, 13, 6, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 55, 13, 6, + 60, 3, 57, 144, 63, 13, 6, 84, 87, 110, + 112, 195, 115, 63, 1, 65, 61, 67, 68, 104, + 70, 71, 72, 73, 30, 27, 116, 188, 10, 34, + 43, 111, 113, 114, 165, 89, 36, 90, 38, 122, + 11, 124, 171, 15, 61, 199, 58, 14, 62, 12, + 13, 105, 16, 28, 29, 94, 30, 31, 104, 104, + 104, 34, 43, 64, 66, 69, 147, 148, 36, 149, + 38, 32, 151, 29, 26, 33, 34, 77, 35, 36, + 37, 38, 39, 40, 74, 133, 75, 76, 78, 81, + 105, 105, 105, 60, 60, 57, 57, 63, 63, 13, + 6, 142, 79, 80, 103, 29, 26, 82, 109, 84, + 88, 185, 97, 100, 101, 102, 121, 108, 123, 98, + 99, 127, 162, 117, 119, 60, 118, 57, 196, 63, + 125, 134, 129, 131, 135, 138, 137, 136, 139, 140, + 141, 150, 153, 154, 155, 156, 157, 158, 161, 163, + 164, 166, 168, 174, 175, 152, 177, 178, 179, 159, + 180, 160, 183, 228, 181, 184, 186, 226, 167, 83, + 143, 187, 144, 94, 233, 234, 189, 172, 190, 237, + 238, 176, 241, 242, 243, 192, 245, 194, 197, 198, + 202, 215, 203, 204, 205, 206, 208, 6, 191, 3, + 223, 209, 211, 210, 193, 213, 214, 216, 217, 220, + 232, 218, 219, 222, 225, 235, 227, 230, 239, 244, + 246, 247, 248, 55, 5, 201, 249, 231, 212, 200, + 235, 229, 0, 41, 0, 250, 42, 173, 43, 0, + 0, 0, 0, 224, 0, 0, 44, 45, 46, 221, + 47, 0, 0, 0, 0, 0, 60, 0, 57, 0, + 63, 13, 6, 48, 0, 0, 49, 50, 51, 52, + 53, 54, 55, 56, 0, 57, 0, 58, 17, 18, + 0, 19, 20, 0, 0, 0, 21, 22, 0, 0, + 0, 0, 60, 23, 57, 0, 63, 13, 6, 0, + 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, + 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, + 26, 0, 27, }; short gdb_result_check[] = { 94, - 0, 0, 0, 30, 94, 32, 123, 34, 35, 44, - 37, 38, 39, 40, 85, 86, 87, 68, 44, 178, - 282, 91, 93, 44, 95, 44, 256, 44, 140, 93, - 93, 44, 93, 93, 296, 147, 287, 44, 289, 293, - 294, 65, 290, 291, 44, 72, 257, 44, 123, 120, - 121, 61, 123, 123, 267, 126, 80, 216, 93, 61, - 84, 125, 125, 267, 125, 125, 61, 93, 92, 61, - 94, 61, 93, 97, 93, 102, 93, 61, 61, 61, - 93, 61, 61, 107, 61, 61, 61, 267, 267, 160, - 125, 118, 61, 93, 94, 94, 94, 61, 61, 125, - 125, 61, 265, 174, 125, 44, 125, 44, 125, 133, - 137, 135, 125, 44, 123, 123, 44, 91, 189, 190, - 91, 267, 44, 61, 267, 125, 150, 61, 152, 61, - 294, 61, 123, 285, 161, 162, 125, 123, 61, 267, - 61, 44, 44, 214, 125, 61, 44, 268, 172, 61, - 44, 267, 223, 224, 181, 179, 61, 228, 229, 267, - 231, 232, 233, 125, 235, 61, 217, 125, 285, 61, - 123, 195, 199, 283, 44, 288, 44, 262, 263, 44, - 265, 266, 61, 210, 267, 270, 271, 61, 212, 282, - 263, 291, 277, 266, 221, 268, 44, 292, 125, 123, - 227, 286, 292, 276, 277, 278, 283, 280, 44, 61, - 295, 267, 264, 297, 61, 242, 44, 61, 125, 304, - 293, 306, 123, 296, 297, 298, 299, 300, 301, 302, - 303, 61, 305, 44, 307, 289, 267, 61, 125, 276, - 61, 44, 44, 2, 267, 217, 207, 220, 181, 242, - -1, 180, -1, -1, -1, 243, 256, 256, 256, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 292, 292, 292, + 0, 94, 0, 123, 0, 0, 0, 123, 68, 44, + 44, 44, 282, 30, 256, 32, 91, 34, 35, 93, + 37, 38, 39, 40, 44, 44, 296, 168, 44, 93, + 93, 85, 86, 87, 142, 287, 93, 289, 93, 93, + 257, 95, 150, 61, 44, 186, 44, 44, 123, 293, + 294, 125, 61, 123, 267, 72, 61, 61, 93, 93, + 93, 125, 125, 267, 267, 267, 120, 121, 125, 123, + 125, 61, 126, 93, 93, 61, 61, 125, 61, 61, + 61, 61, 61, 61, 61, 102, 61, 61, 61, 65, + 125, 125, 125, 93, 94, 93, 94, 93, 94, 94, + 94, 118, 265, 44, 80, 125, 125, 44, 84, 123, + 44, 165, 123, 44, 267, 61, 92, 61, 94, 91, + 91, 97, 139, 61, 44, 125, 61, 125, 182, 125, + 267, 107, 267, 294, 123, 285, 123, 125, 61, 61, + 267, 44, 44, 44, 93, 61, 44, 268, 61, 267, + 44, 61, 44, 44, 267, 125, 61, 125, 125, 135, + 123, 137, 44, 223, 283, 288, 91, 221, 144, 285, + 290, 125, 123, 190, 228, 229, 44, 153, 44, 233, + 234, 157, 236, 237, 238, 267, 240, 61, 282, 61, + 44, 208, 125, 123, 283, 44, 61, 292, 174, 292, + 217, 267, 264, 93, 180, 61, 297, 44, 61, 61, + 227, 125, 123, 289, 267, 232, 61, 125, 276, 61, + 267, 44, 44, 93, 2, 190, 247, 226, 204, 189, + 247, 223, -1, 263, -1, 248, 266, 154, 268, -1, + -1, -1, -1, 219, -1, -1, 276, 277, 278, 215, + 280, -1, -1, -1, -1, -1, 256, -1, 256, -1, + 256, 256, 256, 293, -1, -1, 296, 297, 298, 299, + 300, 301, 302, 303, -1, 305, -1, 307, 262, 263, + -1, 265, 266, -1, -1, -1, 270, 271, -1, -1, + -1, -1, 292, 277, 292, -1, 292, 292, 292, -1, + -1, -1, 286, -1, -1, -1, -1, -1, -1, -1, + -1, 295, -1, -1, -1, -1, -1, -1, -1, -1, + 304, -1, 306, }; #define YYFINAL 2 #ifndef YYDEBUG @@ -355,11 +363,11 @@ "bpt_hdr_table_description : list_open bpt_table_description_attr list_close ',' bpt_hdr_table_description", "bpt_table_description_attr : GDB_IDENTIFIER '=' GDB_STRING", "bpt_table_description_attr : GDB_IDENTIFIER '=' GDB_STRING ',' bpt_table_description_attr", -"bpt_table_body : ',' GDB_BODY '=' list_open breakpoints list_close", +"bpt_table_body : ',' GDB_BODY '=' '[' breakpoints ']'", "bpt_table_body : ',' breakpoints", -"breakpoints : GDB_BKPT '=' list_open child_attributes list_close", -"$$6 :", -"breakpoints : GDB_BKPT '=' list_open child_attributes list_close $$6 ',' breakpoints", +"bp_internal : '{' child_attributes '}'", +"breakpoints : bp_internal", +"breakpoints : bp_internal ',' breakpoints", "mac_locals : GDB_VAROBJ '=' '{' child_attributes '}'", "mac_locals : mac_locals ',' GDB_VAROBJ '=' '{' child_attributes '}'", "locals : '{' child_attributes '}'", @@ -370,12 +378,16 @@ "list_close : '}'", "children : GDB_CHILD '=' '{' child_attributes '}'", "children : children ',' GDB_CHILD '=' '{' child_attributes '}'", +"string_list : GDB_STRING", +"string_list : GDB_STRING ',' string_list", "child_attributes : child_key '=' GDB_STRING", -"$$7 :", -"child_attributes : child_key '=' GDB_STRING $$7 ',' child_attributes", +"$$6 :", +"child_attributes : child_key '=' GDB_STRING $$6 ',' child_attributes", "child_attributes : GDB_NEW_CHILDREN '=' '['", -"$$8 :", -"child_attributes : GDB_THREAD_GROUPS '=' '[' $$8 ',' child_attributes", +"$$7 :", +"child_attributes : GDB_NEW_CHILDREN '=' '[' $$7 ',' child_attributes", +"child_attributes : GDB_THREAD_GROUPS '=' '[' string_list ']'", +"child_attributes : GDB_THREAD_GROUPS '=' '[' string_list ']' ',' child_attributes", "child_attributes : GDB_TIME '=' '{' child_attributes '}'", "stop_statement : GDB_STOPPED ',' GDB_TIME '=' '{' child_attributes '}' ',' GDB_REASON '=' GDB_STRING", "stop_statement : GDB_STOPPED ',' GDB_REASON '=' GDB_STRING", @@ -432,6 +444,7 @@ void gdbConsumeList() { + printf("Consume List is called\n"); int depth = 1; while(depth > 0) { int ch = gdb_result_lex(); @@ -440,9 +453,8 @@ } if(ch == ']') { depth--; - continue; - } else if(ch == ']') { - depth ++ ; + } else if(ch == '[') { + depth++; continue; } } @@ -614,7 +626,7 @@ break; case 5: { - /*printf("CodeLite: syntax error, unexpected token '%s' found\n", gdb_result_lval.c_str());*/ + printf("CodeLite: syntax error, unexpected token '%s' found\n", gdb_result_lval.c_str()); } break; case 7: @@ -692,9 +704,6 @@ case 42: { sg_children.push_back( sg_attributes ); sg_attributes.clear();} break; -case 43: -{ sg_children.push_back( sg_attributes ); sg_attributes.clear();} -break; case 45: { sg_children.push_back( sg_attributes ); @@ -722,7 +731,7 @@ case 54: {sg_children.push_back( sg_attributes ); sg_attributes.clear(); } break; -case 55: +case 57: { if ( yyvsp[-2] == "has_more" || yyvsp[-2] == "dynamic" ) { sg_children.has_more = (yyvsp[0] == "\"1\""); @@ -733,39 +742,27 @@ } } break; -case 56: +case 58: { sg_attributes[yyvsp[-2]] = yyvsp[0];} break; -case 58: +case 60: { gdbConsumeList(); } break; -case 59: +case 61: { gdbConsumeList(); } break; -case 62: +case 66: { sg_attributes["reason"] = yyvsp[0]; sg_children.push_back( sg_attributes ); } break; -case 63: +case 67: { sg_attributes["reason"] = yyvsp[0]; sg_children.push_back( sg_attributes ); } break; -case 64: -{yyval = yyvsp[0];} -break; -case 65: -{yyval = yyvsp[0];} -break; -case 66: -{yyval = yyvsp[0];} -break; -case 67: -{yyval = yyvsp[0];} -break; case 68: {yyval = yyvsp[0];} break; @@ -799,6 +796,18 @@ case 78: {yyval = yyvsp[0];} break; +case 79: +{yyval = yyvsp[0];} +break; +case 80: +{yyval = yyvsp[0];} +break; +case 81: +{yyval = yyvsp[0];} +break; +case 82: +{yyval = yyvsp[0];} +break; } yyssp -= yym; yystate = *yyssp; diff -Nru codelite-8.0.1+dfsg2/gdbparser/GdbResultParser.project codelite-9.0+dfsg/gdbparser/GdbResultParser.project --- codelite-8.0.1+dfsg2/gdbparser/GdbResultParser.project 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/gdbparser/GdbResultParser.project 2015-10-11 13:56:07.000000000 +0000 @@ -1,6 +1,18 @@ + + + @@ -32,8 +44,8 @@ - - + + @@ -43,7 +55,7 @@ - + @@ -78,7 +90,7 @@ mv lex.gdb_result_.c gdb_result.cpp - + @@ -86,7 +98,7 @@ - + @@ -96,7 +108,7 @@ - + @@ -130,7 +142,7 @@ flex -L -Pgdb_result_ gdb_result.l mv lex.gdb_result_.c gdb_result.cpp - + @@ -138,7 +150,7 @@ - + @@ -148,7 +160,7 @@ - + @@ -169,7 +181,7 @@ - + diff -Nru codelite-8.0.1+dfsg2/gdbparser/gdb_result.y codelite-9.0+dfsg/gdbparser/gdb_result.y --- codelite-8.0.1+dfsg2/gdbparser/gdb_result.y 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/gdbparser/gdb_result.y 2015-10-11 13:56:07.000000000 +0000 @@ -90,7 +90,7 @@ children_list: { cleanup(); } child_pattern | error { - //printf("CodeLite: syntax error, unexpected token '%s' found\n", gdb_result_lval.c_str()); + printf("CodeLite: syntax error, unexpected token '%s' found\n", gdb_result_lval.c_str()); } ; has_more_attr : /* empty */ @@ -201,13 +201,16 @@ ; /* body=[bkpt={number="1",type="breakpoint",disp="keep",enabled="y",addr="0x77c35571",at="",times="0",original-location="assert"},bkpt={number="2",type="breakpoint",disp="keep",enabled="y",addr="0x004014d4",func="main",file="C:/TestArea/WxConsole/consoleproj.cpp",fullname="C:/TestArea/WxConsole/consoleproj.cpp",line="63",times="0",original-location="main"},bkpt={number="3",type="breakpoint",disp="keep",enabled="y",addr="0x004014bb",func="main",file="C:/TestArea/WxConsole/consoleproj.cpp",fullname="C:/TestArea/WxConsole/consoleproj.cpp",line="61",times="1",original-location="*4199611"}]*/ -bpt_table_body : ',' GDB_BODY '=' list_open breakpoints list_close +bpt_table_body : ',' GDB_BODY '=' '[' breakpoints ']' | ',' breakpoints ; -breakpoints : GDB_BKPT '=' list_open child_attributes list_close { sg_children.push_back( sg_attributes ); sg_attributes.clear();} - | GDB_BKPT '=' list_open child_attributes list_close { sg_children.push_back( sg_attributes ); sg_attributes.clear();} ',' breakpoints - ; +bp_internal: '{' child_attributes '}' { sg_children.push_back( sg_attributes ); sg_attributes.clear();} +; + +breakpoints : bp_internal + | bp_internal ',' breakpoints + ; /** * Locals parsing */ @@ -242,6 +245,10 @@ | children ',' GDB_CHILD '=' '{' child_attributes '}' {sg_children.push_back( sg_attributes ); sg_attributes.clear(); } ; +string_list: GDB_STRING + | GDB_STRING ',' string_list + ; + child_attributes : child_key '=' GDB_STRING { if ( $1 == "has_more" || $1 == "dynamic" ) { sg_children.has_more = ($3 == "\"1\""); @@ -253,7 +260,9 @@ } | child_key '=' GDB_STRING { sg_attributes[$1] = $3;} ',' child_attributes | GDB_NEW_CHILDREN '=' '[' { gdbConsumeList(); } - | GDB_THREAD_GROUPS '=' '[' { gdbConsumeList(); } ',' child_attributes + | GDB_NEW_CHILDREN '=' '[' { gdbConsumeList(); } ',' child_attributes + | GDB_THREAD_GROUPS '=' '[' string_list ']' + | GDB_THREAD_GROUPS '=' '[' string_list ']' ',' child_attributes | GDB_TIME '=' '{' child_attributes '}' ; @@ -295,6 +304,7 @@ void gdbConsumeList() { + printf("Consume List is called\n"); int depth = 1; while(depth > 0) { int ch = gdb_result_lex(); @@ -303,9 +313,8 @@ } if(ch == ']') { depth--; - continue; - } else if(ch == ']') { - depth ++ ; + } else if(ch == '[') { + depth++; continue; } } diff -Nru codelite-8.0.1+dfsg2/gdbparser/main.cpp codelite-9.0+dfsg/gdbparser/main.cpp --- codelite-8.0.1+dfsg2/gdbparser/main.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/gdbparser/main.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -65,8 +65,8 @@ int main(int argc, char **argv) { //testTokens(); -// testChildrenParser(); - testRegisterNames(); + testChildrenParser(); +// testRegisterNames(); return 0; } diff -Nru codelite-8.0.1+dfsg2/gdbparser/test.txt codelite-9.0+dfsg/gdbparser/test.txt --- codelite-8.0.1+dfsg2/gdbparser/test.txt 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/gdbparser/test.txt 2015-10-11 13:56:07.000000000 +0000 @@ -1 +1 @@ -^done,register-names=["eax","ecx","edx","ebx","esp","ebp","esi","edi","eip","eflags","cs","ss","ds","es","fs","gs","st0","st1","st2","st3","st4","st5","st6","st7","fctrl","fstat","ftag","fiseg","fioff","foseg","fooff","fop","xmm0","xmm1","xmm2","xmm3","xmm4","xmm5","xmm6","xmm7","mxcsr","","","","","","","","","al","cl","dl","bl","ah","ch","dh","bh","ax","cx","dx","bx","","bp","si","di","mm0","mm1","mm2","mm3","mm4","mm5","mm6","mm7"] +^done,BreakpointTable={nr_rows="2",nr_cols="6",hdr=[{width="7",alignment="-1",col_name="number",colhdr="Num"},{width="14",alignment="-1",col_name="type",colhdr="Type"},{width="4",alignment="-1",col_name="disp",colhdr="Disp"},{width="3",alignment="-1",col_name="enabled",colhdr="Enb"},{width="18",alignment="-1",col_name="addr",colhdr="Address"},{width="40",alignment="2",col_name="what",colhdr="What"}],body=[{number="1",type="breakpoint",disp="keep",enabled="y",addr="",times="0",original-location="__cxa_throw"},{number="1.1",enabled="y",addr="0x000000000047efe7",at="<__cxa_throw+7>",thread-groups=["i1"]},{number="1.2",enabled="y",addr="0x000000006577ed87",at="<__cxa_throw+7>",thread-groups=["i1"]},{number="2",type="breakpoint",disp="keep",enabled="y",addr="0x000000000042c9c9",func="MainApp::OnInit()",file="D:/src/TestArea/wxcHelloWorld/wxcHelloWorld/main.cpp",fullname="D:\\src\\TestArea\\wxcHelloWorld\\wxcHelloWorld\\main.cpp",line="19",thread-groups=["i1"],times="1",original-location="D:/src/TestArea/wxcHelloWorld/wxcHelloWorld/main.cpp:19"}]} diff -Nru codelite-8.0.1+dfsg2/git/CMakeLists.txt codelite-9.0+dfsg/git/CMakeLists.txt --- codelite-8.0.1+dfsg2/git/CMakeLists.txt 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/git/CMakeLists.txt 2015-10-11 13:56:07.000000000 +0000 @@ -21,11 +21,6 @@ add_definitions(-DWXUSINGDLL_CL) add_definitions(-DWXUSINGDLL_SDK) -# Add RPATH -if (UNIX) -set (LINKER_OPTIONS -Wl,-rpath,"${PLUGINS_DIR}") -endif (UNIX) - if (UNIX AND NOT APPLE) set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC" ) set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC" ) @@ -48,8 +43,6 @@ ${wxWidgets_LIBRARIES} libcodelite plugin - wxsqlite3 - sqlite3lib ) CL_INSTALL_PLUGIN(${PLUGIN_NAME}) diff -Nru codelite-8.0.1+dfsg2/git/gitCommitListDlg.cpp codelite-9.0+dfsg/git/gitCommitListDlg.cpp --- codelite-8.0.1+dfsg2/git/gitCommitListDlg.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/git/gitCommitListDlg.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -42,16 +42,14 @@ static int ID_COPY_COMMIT_HASH = wxNewId(); static int ID_REVERT_COMMIT = wxNewId(); -BEGIN_EVENT_TABLE(GitCommitListDlg, wxDialog) -EVT_COMMAND(wxID_ANY, wxEVT_PROC_DATA_READ, GitCommitListDlg::OnProcessOutput) -EVT_COMMAND(wxID_ANY, wxEVT_PROC_TERMINATED, GitCommitListDlg::OnProcessTerminated) -END_EVENT_TABLE() - GitCommitListDlg::GitCommitListDlg(wxWindow* parent, const wxString& workingDir, GitPlugin* git) : GitCommitListDlgBase(parent) , m_git(git) , m_workingDir(workingDir) { + Bind(wxEVT_ASYNC_PROCESS_OUTPUT, &GitCommitListDlg::OnProcessOutput, this); + Bind(wxEVT_ASYNC_PROCESS_TERMINATED, &GitCommitListDlg::OnProcessTerminated, this); + LexerConf::Ptr_t lex = EditorConfigST::Get()->GetLexer("diff"); if(lex) { lex->Apply(m_stcDiff, true); @@ -111,10 +109,9 @@ } /*******************************************************************************/ -void GitCommitListDlg::OnProcessTerminated(wxCommandEvent& event) +void GitCommitListDlg::OnProcessTerminated(clProcessEvent& event) { - ProcessEventData* ped = (ProcessEventData*)event.GetClientData(); - wxDELETE(ped); + wxUnusedVar(event); wxDELETE(m_process); m_stcCommitMessage->ClearAll(); @@ -161,14 +158,11 @@ m_commandOutput.Clear(); } /*******************************************************************************/ -void GitCommitListDlg::OnProcessOutput(wxCommandEvent& event) +void GitCommitListDlg::OnProcessOutput(clProcessEvent& event) { - ProcessEventData* ped = (ProcessEventData*)event.GetClientData(); - if(ped) { - m_commandOutput.Append(ped->GetData()); - delete ped; - } + m_commandOutput.Append(event.GetOutput()); } + void GitCommitListDlg::OnSelectionChanged(wxDataViewEvent& event) { wxVariant v; diff -Nru codelite-8.0.1+dfsg2/git/gitCommitListDlg.h codelite-9.0+dfsg/git/gitCommitListDlg.h --- codelite-8.0.1+dfsg2/git/gitCommitListDlg.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/git/gitCommitListDlg.h 2015-10-11 13:56:07.000000000 +0000 @@ -36,6 +36,7 @@ #include #include "gitui.h" #include "macros.h" +#include "cl_command_event.h" class IProcess; class GitPlugin; @@ -61,11 +62,10 @@ private: void OnChangeFile(wxCommandEvent& e); - DECLARE_EVENT_TABLE() // Event handlers - void OnProcessTerminated(wxCommandEvent& event); - void OnProcessOutput(wxCommandEvent& event); + void OnProcessTerminated(clProcessEvent& event); + void OnProcessOutput(clProcessEvent& event); protected: virtual void OnOK(wxCommandEvent& event); diff -Nru codelite-8.0.1+dfsg2/git/GitConsole.cpp codelite-9.0+dfsg/git/GitConsole.cpp --- codelite-8.0.1+dfsg2/git/GitConsole.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/git/GitConsole.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -41,6 +41,7 @@ #include "macros.h" #include "globals.h" #include "clCommandProcessor.h" +#include #define GIT_MESSAGE(...) AddText(wxString::Format(__VA_ARGS__)); #define GIT_MESSAGE1(...) \ @@ -177,15 +178,10 @@ , m_git(git) { // set the font to fit the C++ lexer default font - LexerConf::Ptr_t lexCpp = EditorConfigST::Get()->GetLexer("c++"); + LexerConf::Ptr_t lexCpp = EditorConfigST::Get()->GetLexer("text"); if(lexCpp) { - wxFont font = lexCpp->GetFontForSyle(wxSTC_C_DEFAULT); - for(int i = 0; i < wxSTC_STYLE_MAX; ++i) { - m_stcLog->StyleSetFont(i, font); - } + lexCpp->Apply(m_stcLog); } - m_stcLog->SetReadOnly(true); - m_bitmapLoader = new BitmapLoader(); GitImages m_images; m_bitmaps = m_bitmapLoader->MakeStandardMimeMap(); @@ -275,9 +271,7 @@ void GitConsole::OnClearGitLog(wxCommandEvent& event) { - m_stcLog->SetReadOnly(false); m_stcLog->ClearAll(); - m_stcLog->SetReadOnly(true); } void GitConsole::OnStopGitProcess(wxCommandEvent& event) @@ -300,28 +294,15 @@ void GitConsole::AddText(const wxString& text) { + wxWindowUpdateLocker locker(m_stcLog); wxString tmp = text; tmp.Replace("\r\n", "\n"); - - m_stcLog->SetReadOnly(false); - - int lineNumber = m_stcLog->GetLineCount(); // there is always at least 1 line in the document - --lineNumber; // wxSTC count lines from 0 - - wxArrayString lines = ::wxStringTokenize(tmp, "\n", wxTOKEN_STRTOK); - for(size_t i = 0; i < lines.GetCount(); ++i) { - wxString& curline = lines.Item(i); - if(curline.StartsWith("\r") && lineNumber) { - m_stcLog->LineDelete(); // Deletes the "\n" we append to each line - m_stcLog->LineDelete(); // The the last line we added - } - m_stcLog->AppendText(curline + "\n"); - - // update the lineNumber - lineNumber = m_stcLog->GetLineCount(); // there is always at least 1 line in the document - --lineNumber; // wxSTC count lines from 0 + if(!tmp.EndsWith("\n")) { + tmp.Append("\n"); } - m_stcLog->SetReadOnly(false); + wxString curtext = m_stcLog->GetText(); + curtext << tmp; + m_stcLog->SetText(curtext); m_stcLog->ScrollToEnd(); } @@ -519,7 +500,9 @@ { e.Skip(); m_dvFilesModel->Clear(); + OnClearGitLog(e); } + void GitConsole::OnItemSelectedUI(wxUpdateUIEvent& event) { event.Enable(m_dvFiles->GetSelectedItemsCount()); } void GitConsole::OnFileActivated(wxDataViewEvent& event) diff -Nru codelite-8.0.1+dfsg2/git/git.cpp codelite-9.0+dfsg/git/git.cpp --- codelite-8.0.1+dfsg2/git/git.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/git/git.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -86,7 +86,7 @@ PluginInfo info; info.SetAuthor(wxT("René Kraus")); info.SetName(wxT("Git")); - info.SetDescription(wxT("Simple GIT plugin")); + info.SetDescription(_("Simple GIT plugin")); info.SetVersion(wxT("v1.1.0")); return info; } @@ -107,8 +107,6 @@ BEGIN_EVENT_TABLE(GitPlugin, wxEvtHandler) EVT_TIMER(wxID_ANY, GitPlugin::OnProgressTimer) -EVT_COMMAND(wxID_ANY, wxEVT_PROC_DATA_READ, GitPlugin::OnProcessOutput) -EVT_COMMAND(wxID_ANY, wxEVT_PROC_TERMINATED, GitPlugin::OnProcessTerminated) END_EVENT_TABLE() GitPlugin::GitPlugin(IManager* manager) @@ -131,10 +129,13 @@ , m_commitListDlg(NULL) , m_commandProcessor(NULL) { - m_longName = wxT("GIT plugin"); + m_longName = _("GIT plugin"); m_shortName = wxT("Git"); m_eventHandler = m_mgr->GetTheApp(); + Bind(wxEVT_ASYNC_PROCESS_OUTPUT, &GitPlugin::OnProcessOutput, this); + Bind(wxEVT_ASYNC_PROCESS_TERMINATED, &GitPlugin::OnProcessTerminated, this); + EventNotifier::Get()->Connect(wxEVT_INIT_DONE, wxCommandEventHandler(GitPlugin::OnInitDone), NULL, this); EventNotifier::Get()->Connect( wxEVT_WORKSPACE_LOADED, wxCommandEventHandler(GitPlugin::OnWorkspaceLoaded), NULL, this); @@ -150,9 +151,9 @@ EventNotifier::Get()->Connect(wxEVT_CL_FRAME_TITLE, clCommandEventHandler(GitPlugin::OnMainFrameTitle), NULL, this); EventNotifier::Get()->Bind(wxEVT_CONTEXT_MENU_FILE, &GitPlugin::OnFileMenu, this); EventNotifier::Get()->Bind(wxEVT_CONTEXT_MENU_FOLDER, &GitPlugin::OnFolderMenu, this); - + EventNotifier::Get()->Bind(wxEVT_ACTIVE_PROJECT_CHANGED, &GitPlugin::OnActiveProjectChanged, this); - + wxTheApp->Bind(wxEVT_MENU, &GitPlugin::OnFolderPullRebase, this, XRCID("git_pull_rebase_folder")); wxTheApp->Bind(wxEVT_MENU, &GitPlugin::OnFolderCommit, this, XRCID("git_commit_folder")); wxTheApp->Bind(wxEVT_MENU, &GitPlugin::OnFolderPush, this, XRCID("git_push_folder")); @@ -179,7 +180,7 @@ // Add the console m_console = new GitConsole(m_mgr->GetOutputPaneNotebook(), this); - m_mgr->GetOutputPaneNotebook()->AddPage(m_console, wxT("git"), false, m_images.Bitmap("git")); + m_mgr->GetOutputPaneNotebook()->AddPage(m_console, _("git"), false, m_images.Bitmap("git")); m_progressTimer.SetOwner(this); } @@ -522,7 +523,7 @@ EventNotifier::Get()->Disconnect( wxEVT_WORKSPACE_CONFIG_CHANGED, wxCommandEventHandler(GitPlugin::OnWorkspaceConfigurationChanged), NULL, this); EventNotifier::Get()->Unbind(wxEVT_ACTIVE_PROJECT_CHANGED, &GitPlugin::OnActiveProjectChanged, this); - + /*Context Menu*/ m_eventHandler->Disconnect(XRCID("git_add_file"), wxEVT_COMMAND_MENU_SELECTED, @@ -548,7 +549,8 @@ wxTheApp->Unbind(wxEVT_MENU, &GitPlugin::OnFolderPush, this, XRCID("git_push_folder")); wxTheApp->Bind(wxEVT_MENU, &GitPlugin::OnFolderStash, this, XRCID("git_stash_folder")); wxTheApp->Bind(wxEVT_MENU, &GitPlugin::OnFolderStashPop, this, XRCID("git_stash_pop_folder")); - + Unbind(wxEVT_ASYNC_PROCESS_OUTPUT, &GitPlugin::OnProcessOutput, this); + Unbind(wxEVT_ASYNC_PROCESS_TERMINATED, &GitPlugin::OnProcessTerminated, this); } /*******************************************************************************/ @@ -561,12 +563,12 @@ void GitPlugin::DoSetRepoPath(const wxString& repoPath, bool promptUser) { wxString dir = repoPath; - + // Sanity if(dir.IsEmpty() && !promptUser) { return; } - + if(dir.IsEmpty() && promptUser) { // use the current repository as the starting path // if current repository is empty, use the current workspace path @@ -580,7 +582,7 @@ return; // The user probably pressed Cancel } } - + if(!dir.IsEmpty()) { // we were given a path, scan the folder and its parent // searching for .git folder, when we find one - its our git root @@ -597,12 +599,12 @@ } fnDir.RemoveLastDir(); } - + if(!fnDir.GetDirCount()) { // scanned the entire folders, no match... return; } - + m_repositoryDirectory = dir; GIT_MESSAGE("Git repo path is now set to '%s'", m_repositoryDirectory); AddDefaultActions(); @@ -638,10 +640,26 @@ wxArrayString files; files.swap(m_filesSelected); + if(files.IsEmpty()) return; - if(!files.IsEmpty()) { - DoAddFiles(files); + wxString workingDir; + workingDir = wxFileName(files.Item(0)).GetPath(); + + // Pepare the command: + // git add --no-pager + wxString cmd = "add"; + for(size_t i = 0; i < files.size(); ++i) { + wxFileName fn(files.Item(i)); + fn.MakeRelativeTo(workingDir); + wxString filename = fn.GetFullPath(wxPATH_UNIX); + ::WrapWithQuotes(filename); + cmd << " " << filename; } + + wxString commandOutput; + DoExecuteCommandSync(cmd, workingDir, commandOutput); + GetConsole()->AddRawText(commandOutput); + RefreshFileListView(); } /*******************************************************************************/ @@ -652,32 +670,67 @@ { wxUnusedVar(e); - // fetch the list of files wxArrayString files; files.swap(m_filesSelected); - DoShowDiffsForFiles(files); + if(files.IsEmpty()) return; + + wxString workingDir; + workingDir = wxFileName(files.Item(0)).GetPath(); + + for(size_t i = 0; i < files.size(); ++i) { + // Pepare the command: + // git add --no-pager + wxString cmd = "show HEAD:"; + wxFileName fn(files.Item(i)); + fn.MakeRelativeTo(workingDir); + wxString filename = fn.GetFullPath(wxPATH_UNIX); + if(!filename.StartsWith(".")) { + filename.Prepend("./"); + } + ::WrapWithQuotes(filename); + cmd << filename; + + // We need to run this command per file + wxString commandOutput; + DoExecuteCommandSync(cmd, workingDir, commandOutput); + if(!commandOutput.IsEmpty()) { + DoShowDiffViewer(commandOutput, files.Item(i)); + } + } } /*******************************************************************************/ void GitPlugin::OnFileResetSelected(wxCommandEvent& e) { wxUnusedVar(e); - // fetch the list of files + wxArrayString files; - DoGetFileViewSelectedFiles(files, true); + files.swap(m_filesSelected); + if(files.IsEmpty()) return; - // prepare a space delimited list - wxString filelist; - for(size_t i = 0; i < files.GetCount(); ++i) { - filelist << files.Item(i) << " "; + wxString workingDir; + workingDir = wxFileName(files.Item(0)).GetPath(); + + // Pepare the command: + // git add --no-pager + wxString cmd = "checkout"; + for(size_t i = 0; i < files.size(); ++i) { + wxFileName fn(files.Item(i)); + fn.MakeRelativeTo(workingDir); + wxString filename = fn.GetFullPath(wxPATH_UNIX); + ::WrapWithQuotes(filename); + cmd << " " << filename; } - gitAction ga(gitResetFile, filelist); - m_gitActionQueue.push_back(ga); + wxString commandOutput; + DoExecuteCommandSync(cmd, workingDir, commandOutput); + GetConsole()->AddRawText(commandOutput); - ProcessGitActionQueue(); + // Reload externally modified files + EventNotifier::Get()->PostReloadExternallyModifiedEvent(); RefreshFileListView(); } + /*******************************************************************************/ void GitPlugin::OnSwitchLocalBranch(wxCommandEvent& e) { @@ -1013,7 +1066,7 @@ DoCleanup(); InitDefaults(); RefreshFileListView(); - + // Try to set the repo to the workspace path DoSetRepoPath(GetWorkspaceFileName().GetPath(), false); } @@ -1520,17 +1573,11 @@ m_mgr->ReloadWorkspace(); } /*******************************************************************************/ -void GitPlugin::OnProcessTerminated(wxCommandEvent& event) +void GitPlugin::OnProcessTerminated(clProcessEvent& event) { HideProgress(); - - ProcessEventData* ped = (ProcessEventData*)event.GetClientData(); - m_console->AddRawText(ped->GetData()); - m_commandOutput.append(ped->GetData()); - - wxDELETE(ped); if(m_gitActionQueue.empty()) return; - + gitAction ga = m_gitActionQueue.front(); if(ga.action != gitDiffFile) { // Dont manipulate the output if its a diff... @@ -1605,7 +1652,7 @@ wxString log = m_commandOutput.Mid(m_commandOutput.Find(wxT("From"))); // Write the pull log to the console m_console->AddText(wxString() << "\n===============\nPull Log\n===============\n" << log << "\n"); - + if(m_commandOutput.Contains(wxT("Merge made by"))) { if(wxMessageBox(_("Merged after pull. Rebase?"), _("Rebase"), wxYES_NO, m_topWindow) == wxYES) { wxString selection; @@ -1634,7 +1681,7 @@ m_topWindow); } if(m_commandOutput.Contains(wxT("Updating"))) m_bActionRequiresTreUpdate = true; - + if(m_bActionRequiresTreUpdate) { // Post event about file system updated clFileSystemEvent fsEvent(wxEVT_FILE_SYSTEM_UPDATED); @@ -1642,7 +1689,7 @@ EventNotifier::Get()->AddPendingEvent(fsEvent); } } - + } else if(ga.action == gitBranchSwitch || ga.action == gitBranchSwitchRemote) { // update the tree gitAction ga(gitListAll, wxT("")); @@ -1650,6 +1697,10 @@ ga.action = gitListModified; m_gitActionQueue.push_back(ga); } + + // Reload files if needed + EventNotifier::Get()->PostReloadExternallyModifiedEvent(true); + } else if(ga.action == gitCommitList) { GitCommitListDlg* dlg = new GitCommitListDlg(m_topWindow, m_repositoryDirectory, this); dlg->SetCommitList(m_commandOutput); @@ -1672,86 +1723,81 @@ } /*******************************************************************************/ -void GitPlugin::OnProcessOutput(wxCommandEvent& event) +void GitPlugin::OnProcessOutput(clProcessEvent& event) { - ProcessEventData* ped = (ProcessEventData*)event.GetClientData(); - if(ped) { - wxString output = ped->GetData(); - wxDELETE(ped); - - gitAction ga; - if(!m_gitActionQueue.empty()) { - ga = m_gitActionQueue.front(); - } - - if(m_console->IsVerbose() || ga.action == gitPush || ga.action == gitPull) m_console->AddRawText(output); - m_commandOutput.Append(output); - - // Handle password required - wxString tmpOutput = output; - tmpOutput.Trim().Trim(false); - tmpOutput.MakeLower(); + wxString output = event.GetOutput(); + gitAction ga; + if(!m_gitActionQueue.empty()) { + ga = m_gitActionQueue.front(); + } - if(ga.action != gitDiffRepoCommit && ga.action != gitDiffFile && ga.action != gitCommitList && - ga.action != gitDiffRepoShow) + if(m_console->IsVerbose() || ga.action == gitPush || ga.action == gitPull) m_console->AddRawText(output); + m_commandOutput.Append(output); - { - if(tmpOutput.Contains("username for")) { - // username is required - wxString username = ::wxGetTextFromUser(output); - if(username.IsEmpty()) { - m_process->Terminate(); - } else { - m_process->WriteToConsole(username); - } - - } else if(tmpOutput.Contains("commit-msg hook failure") || tmpOutput.Contains("pre-commit hook failure")) { + // Handle password required + wxString tmpOutput = output; + tmpOutput.Trim().Trim(false); + tmpOutput.MakeLower(); + + if(ga.action != gitDiffRepoCommit && ga.action != gitDiffFile && ga.action != gitCommitList && + ga.action != gitDiffRepoShow) + + { + if(tmpOutput.Contains("username for")) { + // username is required + wxString username = ::wxGetTextFromUser(output); + if(username.IsEmpty()) { m_process->Terminate(); - ::wxMessageBox(output, "git", wxICON_ERROR | wxCENTER | wxOK, EventNotifier::Get()->TopFrame()); + } else { + m_process->WriteToConsole(username); + } - } else if(tmpOutput.Contains("*** please tell me who you are")) { - m_process->Terminate(); - ::wxMessageBox(output, "git", wxICON_ERROR | wxCENTER | wxOK, EventNotifier::Get()->TopFrame()); + } else if(tmpOutput.Contains("commit-msg hook failure") || tmpOutput.Contains("pre-commit hook failure")) { + m_process->Terminate(); + ::wxMessageBox(output, "git", wxICON_ERROR | wxCENTER | wxOK, EventNotifier::Get()->TopFrame()); - } else if(tmpOutput.EndsWith("password:") || tmpOutput.Contains("password for")) { + } else if(tmpOutput.Contains("*** please tell me who you are")) { + m_process->Terminate(); + ::wxMessageBox(output, "git", wxICON_ERROR | wxCENTER | wxOK, EventNotifier::Get()->TopFrame()); - // Password is required - wxString pass = ::wxGetPasswordFromUser(output); - if(pass.IsEmpty()) { + } else if(tmpOutput.EndsWith("password:") || tmpOutput.Contains("password for")) { - // No point on continuing - m_process->Terminate(); + // Password is required + wxString pass = ::wxGetPasswordFromUser(output); + if(pass.IsEmpty()) { - } else { + // No point on continuing + m_process->Terminate(); - // write the password - m_process->WriteToConsole(pass); - } - } else if((tmpOutput.Contains("the authenticity of host") && tmpOutput.Contains("can't be established")) || - tmpOutput.Contains("key fingerprint")) { - if(::wxMessageBox(tmpOutput, - _("Are you sure you want to continue connecting"), - wxYES_NO | wxCENTER | wxICON_QUESTION) == wxYES) { - m_process->WriteToConsole("yes"); + } else { - } else { - m_process->Terminate(); - } + // write the password + m_process->WriteToConsole(pass); + } + } else if((tmpOutput.Contains("the authenticity of host") && tmpOutput.Contains("can't be established")) || + tmpOutput.Contains("key fingerprint")) { + if(::wxMessageBox(tmpOutput, + _("Are you sure you want to continue connecting"), + wxYES_NO | wxCENTER | wxICON_QUESTION) == wxYES) { + m_process->WriteToConsole("yes"); + + } else { + m_process->Terminate(); } } + } - if(m_console->IsProgressShown()) { - wxString message = output.Left(output.Find(':')); - int percent = output.Find('%', true); - if(percent != wxNOT_FOUND) { - - wxString number = output.Mid(percent - 3, 3); - number.Trim(false); - unsigned long current; - if(number.ToULong(¤t)) { - message.Prepend(m_progressMessage + " Status: "); - m_console->UpdateProgress(current, message); - } + if(m_console->IsProgressShown()) { + wxString message = output.Left(output.Find(':')); + int percent = output.Find('%', true); + if(percent != wxNOT_FOUND) { + + wxString number = output.Mid(percent - 3, 3); + number.Trim(false); + unsigned long current; + if(number.ToULong(¤t)) { + message.Prepend(m_progressMessage + " Status: "); + m_console->UpdateProgress(current, message); } } } @@ -2139,7 +2185,7 @@ } } -void GitPlugin::DoShowDiffsForFiles(const wxArrayString& files) +void GitPlugin::DoShowDiffsForFiles(const wxArrayString& files, bool useFileAsBase) { for(size_t i = 0; i < files.GetCount(); ++i) { @@ -2374,13 +2420,13 @@ item = new wxMenuItem(menu, XRCID("git_push_folder"), _("Push")); item->SetBitmap(m_images.Bitmap("gitPush")); menu->Append(item); - + menu->AppendSeparator(); - + item = new wxMenuItem(menu, XRCID("git_stash_folder"), _("Stash")); item->SetBitmap(m_images.Bitmap("gitStash")); menu->Append(item); - + item = new wxMenuItem(menu, XRCID("git_stash_pop_folder"), _("Stash pop")); item->SetBitmap(m_images.Bitmap("gitStashPop")); menu->Append(item); @@ -2400,10 +2446,10 @@ void GitPlugin::OnFolderPullRebase(wxCommandEvent& event) { - // Just perform a 'pull --rebase' + // Just perform a 'pull --rebase' // if an error occurs, let the user handle it first - GitCommand::Vec_t commands; - commands.push_back(GitCommand("pull --rebase", IProcessCreateConsole)); + GitCmd::Vec_t commands; + commands.push_back(GitCmd("pull --rebase", IProcessCreateConsole)); DoExecuteCommands(commands, m_selectedFolder); m_selectedFolder.Clear(); } @@ -2424,15 +2470,24 @@ m_console->AddText(event.GetString()); wxString processOutput = event.GetString(); processOutput.MakeLower(); + if(processOutput.Contains("username for")) { + wxString user = ::wxGetTextFromUser(event.GetString(), "Git"); + if(!user.IsEmpty()) { + event.SetString(user); + } + } if(processOutput.Contains("password for")) { wxString pass = ::wxGetPasswordFromUser(event.GetString(), "Git"); if(!pass.IsEmpty()) { event.SetString(pass); } + } else if(processOutput.Contains("fatal:") || processOutput.Contains("not a git repository")) { + // prompt the user for the error + ::wxMessageBox(processOutput, "Git", wxICON_WARNING | wxCENTER | wxOK); } } -void GitPlugin::DoExecuteCommands(const GitCommand::Vec_t& commands, const wxString& workingDir) +void GitPlugin::DoExecuteCommands(const GitCmd::Vec_t& commands, const wxString& workingDir) { if(commands.empty()) return; @@ -2466,7 +2521,7 @@ GitCommitDlg dlg(m_topWindow); dlg.AppendDiff(diff); if(dlg.ShowModal() == wxID_OK) { - if(dlg.GetSelectedFiles().IsEmpty()) return; + if(dlg.GetSelectedFiles().IsEmpty() && !dlg.IsAmending()) return; wxString message = dlg.GetCommitMessage(); if(!message.IsEmpty() || dlg.IsAmending()) { @@ -2487,8 +2542,7 @@ commitArgs << " --no-edit "; } wxArrayString selectedFiles = dlg.GetSelectedFiles(); - for(unsigned i = 0; i < selectedFiles.GetCount(); ++i) - commitArgs << selectedFiles.Item(i) << wxT(" "); + for(unsigned i = 0; i < selectedFiles.GetCount(); ++i) commitArgs << selectedFiles.Item(i) << wxT(" "); } else { wxMessageBox(_("No commit message given, aborting."), wxT("CodeLite"), wxICON_ERROR | wxOK, m_topWindow); @@ -2498,22 +2552,24 @@ void GitPlugin::OnFolderCommit(wxCommandEvent& event) { - GitCommand::Vec_t commands; + GitCmd::Vec_t commands; // 1. Get diff output wxString diff; - DoExecuteCommandSync("diff --no-color HEAD", m_selectedFolder, diff); + bool res = DoExecuteCommandSync("diff --no-color HEAD", m_selectedFolder, diff); if(!diff.IsEmpty()) { wxString commitArgs; DoShowCommitDialog(diff, commitArgs); if(!commitArgs.IsEmpty()) { - GitCommand::Vec_t commands; - commands.push_back(GitCommand("commit " + commitArgs, IProcessCreateDefault)); + GitCmd::Vec_t commands; + commands.push_back(GitCmd("commit " + commitArgs, IProcessCreateDefault)); DoExecuteCommands(commands, m_selectedFolder); } + } else if(res) { + ::wxMessageBox(_("All files are up-to-date!"), "CodeLite"); } } -void GitPlugin::DoExecuteCommandSync(const wxString& command, const wxString& workingDir, wxString& commandOutput) +bool GitPlugin::DoExecuteCommandSync(const wxString& command, const wxString& workingDir, wxString& commandOutput) { commandOutput.Clear(); wxString git = m_pathGITExecutable; @@ -2523,34 +2579,46 @@ git << " --no-pager "; git << command; + GetConsole()->AddRawText("[" + workingDir + "] " + git + "\n"); IProcess::Ptr_t gitProc(::CreateSyncProcess(git, IProcessCreateSync, workingDir)); if(gitProc) { gitProc->WaitForTerminate(commandOutput); + } else { + return false; } + + const wxString lcOutput = commandOutput.Lower(); + if(lcOutput.Contains("fatal:") || lcOutput.Contains("not a git repository")) { + // prompt the user for the error + ::wxMessageBox(commandOutput, "Git", wxICON_WARNING | wxCENTER | wxOK); + commandOutput.clear(); + return false; + } + return true; } void GitPlugin::OnFolderPush(wxCommandEvent& event) { - GitCommand::Vec_t commands; - commands.push_back(GitCommand("push", IProcessCreateConsole)); + GitCmd::Vec_t commands; + commands.push_back(GitCmd("push", IProcessCreateConsole)); DoExecuteCommands(commands, m_selectedFolder); } - -void GitPlugin::OnFolderStash(wxCommandEvent& event) + +void GitPlugin::OnFolderStash(wxCommandEvent& event) { - GitCommand::Vec_t commands; - commands.push_back(GitCommand("stash", IProcessCreateDefault)); - DoExecuteCommands(commands, m_selectedFolder); -} - -void GitPlugin::OnFolderStashPop(wxCommandEvent& event) -{ - GitCommand::Vec_t commands; - commands.push_back(GitCommand("stash pop", IProcessCreateDefault)); - DoExecuteCommands(commands, m_selectedFolder); -} - -void GitPlugin::OnFolderGitBash(wxCommandEvent& event) + GitCmd::Vec_t commands; + commands.push_back(GitCmd("stash", IProcessCreateDefault)); + DoExecuteCommands(commands, m_selectedFolder); +} + +void GitPlugin::OnFolderStashPop(wxCommandEvent& event) +{ + GitCmd::Vec_t commands; + commands.push_back(GitCmd("stash pop", IProcessCreateDefault)); + DoExecuteCommands(commands, m_selectedFolder); +} + +void GitPlugin::OnFolderGitBash(wxCommandEvent& event) { GitLocator locator; wxString bashcommand; @@ -2561,12 +2629,12 @@ ::wxExecute(bashcommand); } else { ::wxMessageBox(_("Don't know how to start MSYSGit..."), "Git", wxICON_WARNING | wxOK | wxCENTER); - } -} - -void GitPlugin::OnActiveProjectChanged(clProjectSettingsEvent& event) + } +} + +void GitPlugin::OnActiveProjectChanged(clProjectSettingsEvent& event) { event.Skip(); wxFileName projectFile(event.GetFileName()); - DoSetRepoPath(projectFile.GetPath(), false); -} + DoSetRepoPath(projectFile.GetPath(), false); +} diff -Nru codelite-8.0.1+dfsg2/git/git.h codelite-9.0+dfsg/git/git.h --- codelite-8.0.1+dfsg2/git/git.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/git/git.h 2015-10-11 13:56:07.000000000 +0000 @@ -76,20 +76,20 @@ class GitConsole; class GitCommitListDlg; -struct GitCommand { +struct GitCmd { wxString baseCommand; size_t processFlags; - GitCommand(const wxString& cmd, size_t console) + GitCmd(const wxString& cmd, size_t console) : baseCommand(cmd) , processFlags(console) { } - GitCommand() + GitCmd() : processFlags(IProcessCreateDefault) { } - typedef std::vector Vec_t; + typedef std::vector Vec_t; }; class GitPlugin : public IPlugin @@ -165,8 +165,8 @@ private: void DoCreateTreeImages(); void DoShowDiffViewer(const wxString& headFile, const wxString& fileName); - void DoExecuteCommands(const GitCommand::Vec_t& commands, const wxString& workingDir); - void DoExecuteCommandSync(const wxString& command, const wxString& workingDir, wxString& commandOutput); + void DoExecuteCommands(const GitCmd::Vec_t& commands, const wxString& workingDir); + bool DoExecuteCommandSync(const wxString& command, const wxString& workingDir, wxString& commandOutput); void DoSetTreeItemImage(wxTreeCtrl* ctrl, const wxTreeItemId& item, OverlayTool::BmpType bmpType) const; void InitDefaults(); @@ -193,7 +193,7 @@ void DoAddFiles(const wxArrayString& files); void DoResetFiles(const wxArrayString& files); void DoGetFileViewSelectedFiles(wxArrayString& files, bool relativeToRepo); - void DoShowDiffsForFiles(const wxArrayString& files); + void DoShowDiffsForFiles(const wxArrayString& files, bool useFileAsBase = false); void DoSetRepoPath(const wxString& repoPath = "", bool promptUser = true); void DoRecoverFromGitCommandError(); @@ -202,8 +202,8 @@ // Event handlers void OnInitDone(wxCommandEvent& e); void OnProgressTimer(wxTimerEvent& Event); - void OnProcessTerminated(wxCommandEvent& event); - void OnProcessOutput(wxCommandEvent& event); + void OnProcessTerminated(clProcessEvent& event); + void OnProcessOutput(clProcessEvent& event); void OnFileMenu(clContextMenuEvent& event); void OnFolderMenu(clContextMenuEvent& event); diff -Nru codelite-8.0.1+dfsg2/git/gitui.cpp codelite-9.0+dfsg/git/gitui.cpp --- codelite-8.0.1+dfsg2/git/gitui.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/git/gitui.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -362,7 +362,7 @@ m_stcCommitMessage->SetLexer(wxSTC_LEX_NULL); // Set default font / styles m_stcCommitMessage->StyleClearAll(); - m_stcCommitMessage->SetWrapMode(0); + m_stcCommitMessage->SetWrapMode(1); m_stcCommitMessage->SetIndentationGuides(0); m_stcCommitMessage->SetKeyWords(0, wxT("")); m_stcCommitMessage->SetKeyWords(1, wxT("")); @@ -508,7 +508,7 @@ wxArrayString m_fileListBoxArr; m_fileListBox = new wxListBox(m_splitterPage200, wxID_ANY, wxDefaultPosition, wxSize(-1, -1), m_fileListBoxArr, 0); - boxSizer208->Add(m_fileListBox, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL, 2); + boxSizer208->Add(m_fileListBox, 1, wxALL|wxEXPAND, 2); m_splitterPage204 = new wxPanel(m_splitter196, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxTAB_TRAVERSAL); m_splitter196->SplitVertically(m_splitterPage200, m_splitterPage204, 0); @@ -687,7 +687,7 @@ m_staticText68 = new wxStaticText(m_splitterPageFiles, wxID_ANY, _("Modified files:"), wxDefaultPosition, wxSize(-1,-1), 0); - boxSizer62->Add(m_staticText68, 0, wxALL|wxALIGN_BOTTOM, 5); + boxSizer62->Add(m_staticText68, 0, wxALL, 5); wxArrayString m_fileListBoxArr; m_fileListBox = new wxListBox(m_splitterPageFiles, wxID_ANY, wxDefaultPosition, wxSize(-1, -1), m_fileListBoxArr, 0); @@ -702,7 +702,7 @@ m_staticText66 = new wxStaticText(m_splitterPageDiff, wxID_ANY, _("Diff:"), wxDefaultPosition, wxSize(-1,-1), 0); - boxSizer64->Add(m_staticText66, 0, wxALL|wxALIGN_BOTTOM, 5); + boxSizer64->Add(m_staticText66, 0, wxALL, 5); m_editor = new GitCommitEditor( m_splitterPageDiff ); boxSizer64->Add(m_editor, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND, 5); @@ -1314,15 +1314,6 @@ m_splitterPage96->SetSizer(boxSizer92); m_stcLog = new wxStyledTextCtrl(m_splitterPage96, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxBORDER_THEME); - #ifdef __WXMSW__ - // To get the newer version of the font on MSW, we use font wxSYS_DEFAULT_GUI_FONT with family set to wxFONTFAMILY_TELETYPE - wxFont m_stcLogFont = wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT); - m_stcLogFont.SetFamily(wxFONTFAMILY_TELETYPE); - #else - wxFont m_stcLogFont = wxSystemSettings::GetFont(wxSYS_ANSI_FIXED_FONT); - m_stcLogFont.SetFamily(wxFONTFAMILY_TELETYPE); - #endif - m_stcLog->SetFont(m_stcLogFont); // Configure the fold margin m_stcLog->SetMarginType (4, wxSTC_MARGIN_SYMBOL); m_stcLog->SetMarginMask (4, wxSTC_MASK_FOLDERS); @@ -1350,11 +1341,9 @@ m_stcLog->SetLexer(wxSTC_LEX_NULL); // Set default font / styles m_stcLog->StyleClearAll(); - for(int i=0; iStyleSetFont(i, m_stcLogFont); - } m_stcLog->SetWrapMode(0); m_stcLog->SetIndentationGuides(0); + m_stcLog->SetEOLMode(2); m_stcLog->SetKeyWords(0, wxT("")); m_stcLog->SetKeyWords(1, wxT("")); m_stcLog->SetKeyWords(2, wxT("")); diff -Nru codelite-8.0.1+dfsg2/git/gitui_git_bitmaps.cpp codelite-9.0+dfsg/git/gitui_git_bitmaps.cpp --- codelite-8.0.1+dfsg2/git/gitui_git_bitmaps.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/git/gitui_git_bitmaps.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1068,7 +1068,7 @@ 60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, 110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, 115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, -47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, +47,47,119,119,119,46,119,120,119,105,100,103,101,116,115,46,111,114,103, 47,119,120,120,114,99,34,62,10,32,32,60,111,98,106,101,99,116,32,99,108, 97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61, 34,99,108,101,97,114,34,62,103,105,116,117,105,95,103,105,116,95,98,105, @@ -1242,34 +1242,34 @@ else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase); } - XRC_ADD_FILE(wxT("XRC_resource/gitui_git_bitmaps.cpp$.._codelite-icons-fresh-farm_output-pane_16_clear.png"), xml_res_file_0, xml_res_size_0, wxT("image/x-apple-ios-png")); - XRC_ADD_FILE(wxT("XRC_resource/gitui_git_bitmaps.cpp$icons_png_git.png"), xml_res_file_1, xml_res_size_1, wxT("image/x-apple-ios-png")); - XRC_ADD_FILE(wxT("XRC_resource/gitui_git_bitmaps.cpp$icons_png_git-add-file.png"), xml_res_file_2, xml_res_size_2, wxT("image/x-apple-ios-png")); - XRC_ADD_FILE(wxT("XRC_resource/gitui_git_bitmaps.cpp$icons_png_git-reset.png"), xml_res_file_3, xml_res_size_3, wxT("image/x-apple-ios-png")); - XRC_ADD_FILE(wxT("XRC_resource/gitui_git_bitmaps.cpp$icons_png_apply-patch.png"), xml_res_file_4, xml_res_size_4, wxT("image/x-apple-ios-png")); - XRC_ADD_FILE(wxT("XRC_resource/gitui_git_bitmaps.cpp$icons_png_arrow-up.png"), xml_res_file_5, xml_res_size_5, wxT("image/x-apple-ios-png")); - XRC_ADD_FILE(wxT("XRC_resource/gitui_git_bitmaps.cpp$icons_png_git-clone.png"), xml_res_file_6, xml_res_size_6, wxT("image/x-apple-ios-png")); - XRC_ADD_FILE(wxT("XRC_resource/gitui_git_bitmaps.cpp$icons_png_git-arrow-down.png"), xml_res_file_7, xml_res_size_7, wxT("image/x-apple-ios-png")); - XRC_ADD_FILE(wxT("XRC_resource/gitui_git_bitmaps.cpp$icons_png_git-list-commits.png"), xml_res_file_8, xml_res_size_8, wxT("image/x-apple-ios-png")); - XRC_ADD_FILE(wxT("XRC_resource/gitui_git_bitmaps.cpp$icons_png_git-diffs.png"), xml_res_file_9, xml_res_size_9, wxT("image/x-apple-ios-png")); - XRC_ADD_FILE(wxT("XRC_resource/gitui_git_bitmaps.cpp$icons_png_git-list-modified.png"), xml_res_file_10, xml_res_size_10, wxT("image/x-apple-ios-png")); - XRC_ADD_FILE(wxT("XRC_resource/gitui_git_bitmaps.cpp$icons_png_git-branch-new.png"), xml_res_file_11, xml_res_size_11, wxT("image/x-apple-ios-png")); - XRC_ADD_FILE(wxT("XRC_resource/gitui_git_bitmaps.cpp$.._codelite-icons-fresh-farm_toolbars_16_standard_document-open.png"), xml_res_file_12, xml_res_size_12, wxT("image/x-apple-ios-png")); - XRC_ADD_FILE(wxT("XRC_resource/gitui_git_bitmaps.cpp$icons_png_git-pull.png"), xml_res_file_13, xml_res_size_13, wxT("image/x-apple-ios-png")); - XRC_ADD_FILE(wxT("XRC_resource/gitui_git_bitmaps.cpp$icons_png_git-push.png"), xml_res_file_14, xml_res_size_14, wxT("image/x-apple-ios-png")); - XRC_ADD_FILE(wxT("XRC_resource/gitui_git_bitmaps.cpp$icons_png_git-rebase.png"), xml_res_file_15, xml_res_size_15, wxT("image/x-apple-ios-png")); - XRC_ADD_FILE(wxT("XRC_resource/gitui_git_bitmaps.cpp$icons_png_git-refresh.png"), xml_res_file_16, xml_res_size_16, wxT("image/x-apple-ios-png")); - XRC_ADD_FILE(wxT("XRC_resource/gitui_git_bitmaps.cpp$icons_png_git-reset-repo.png"), xml_res_file_17, xml_res_size_17, wxT("image/x-apple-ios-png")); - XRC_ADD_FILE(wxT("XRC_resource/gitui_git_bitmaps.cpp$icons_png_git-settings.png"), xml_res_file_18, xml_res_size_18, wxT("image/x-apple-ios-png")); - XRC_ADD_FILE(wxT("XRC_resource/gitui_git_bitmaps.cpp$icons_png_git-start.png"), xml_res_file_19, xml_res_size_19, wxT("image/x-apple-ios-png")); - XRC_ADD_FILE(wxT("XRC_resource/gitui_git_bitmaps.cpp$icons_png_gitStash.png"), xml_res_file_20, xml_res_size_20, wxT("image/x-apple-ios-png")); - XRC_ADD_FILE(wxT("XRC_resource/gitui_git_bitmaps.cpp$icons_png_gitStashPop.png"), xml_res_file_21, xml_res_size_21, wxT("image/x-apple-ios-png")); - XRC_ADD_FILE(wxT("XRC_resource/gitui_git_bitmaps.cpp$icons_png_git-branch.png"), xml_res_file_22, xml_res_size_22, wxT("image/x-apple-ios-png")); - XRC_ADD_FILE(wxT("XRC_resource/gitui_git_bitmaps.cpp$icons_png_git-branch-remote.png"), xml_res_file_23, xml_res_size_23, wxT("image/x-apple-ios-png")); - XRC_ADD_FILE(wxT("XRC_resource/gitui_git_bitmaps.cpp$icons_png_git-trash.png"), xml_res_file_24, xml_res_size_24, wxT("image/x-apple-ios-png")); - XRC_ADD_FILE(wxT("XRC_resource/gitui_git_bitmaps.cpp$icons_png_msysgit.png"), xml_res_file_25, xml_res_size_25, wxT("image/x-apple-ios-png")); - XRC_ADD_FILE(wxT("XRC_resource/gitui_git_bitmaps.cpp$.._LiteEditor_res_16_select-all.png"), xml_res_file_26, xml_res_size_26, wxT("image/x-apple-ios-png")); - XRC_ADD_FILE(wxT("XRC_resource/gitui_git_bitmaps.cpp$.._codelite-icons-fresh-farm_subversion_16_stop.png"), xml_res_file_27, xml_res_size_27, wxT("image/x-apple-ios-png")); - XRC_ADD_FILE(wxT("XRC_resource/gitui_git_bitmaps.cpp$_home_eran_devl_codelite_git_gitui_git_bitmaps.xrc"), xml_res_file_28, xml_res_size_28, wxT("text/xml")); - wxXmlResource::Get()->Load(wxT("memory:XRC_resource/gitui_git_bitmaps.cpp$_home_eran_devl_codelite_git_gitui_git_bitmaps.xrc")); + XRC_ADD_FILE(wxT("XRC_resource/gitui_git_bitmaps.cpp$.._codelite-icons-fresh-farm_output-pane_16_clear.png"), xml_res_file_0, xml_res_size_0, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/gitui_git_bitmaps.cpp$icons_png_git.png"), xml_res_file_1, xml_res_size_1, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/gitui_git_bitmaps.cpp$icons_png_git-add-file.png"), xml_res_file_2, xml_res_size_2, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/gitui_git_bitmaps.cpp$icons_png_git-reset.png"), xml_res_file_3, xml_res_size_3, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/gitui_git_bitmaps.cpp$icons_png_apply-patch.png"), xml_res_file_4, xml_res_size_4, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/gitui_git_bitmaps.cpp$icons_png_arrow-up.png"), xml_res_file_5, xml_res_size_5, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/gitui_git_bitmaps.cpp$icons_png_git-clone.png"), xml_res_file_6, xml_res_size_6, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/gitui_git_bitmaps.cpp$icons_png_git-arrow-down.png"), xml_res_file_7, xml_res_size_7, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/gitui_git_bitmaps.cpp$icons_png_git-list-commits.png"), xml_res_file_8, xml_res_size_8, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/gitui_git_bitmaps.cpp$icons_png_git-diffs.png"), xml_res_file_9, xml_res_size_9, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/gitui_git_bitmaps.cpp$icons_png_git-list-modified.png"), xml_res_file_10, xml_res_size_10, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/gitui_git_bitmaps.cpp$icons_png_git-branch-new.png"), xml_res_file_11, xml_res_size_11, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/gitui_git_bitmaps.cpp$.._codelite-icons-fresh-farm_toolbars_16_standard_document-open.png"), xml_res_file_12, xml_res_size_12, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/gitui_git_bitmaps.cpp$icons_png_git-pull.png"), xml_res_file_13, xml_res_size_13, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/gitui_git_bitmaps.cpp$icons_png_git-push.png"), xml_res_file_14, xml_res_size_14, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/gitui_git_bitmaps.cpp$icons_png_git-rebase.png"), xml_res_file_15, xml_res_size_15, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/gitui_git_bitmaps.cpp$icons_png_git-refresh.png"), xml_res_file_16, xml_res_size_16, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/gitui_git_bitmaps.cpp$icons_png_git-reset-repo.png"), xml_res_file_17, xml_res_size_17, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/gitui_git_bitmaps.cpp$icons_png_git-settings.png"), xml_res_file_18, xml_res_size_18, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/gitui_git_bitmaps.cpp$icons_png_git-start.png"), xml_res_file_19, xml_res_size_19, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/gitui_git_bitmaps.cpp$icons_png_gitStash.png"), xml_res_file_20, xml_res_size_20, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/gitui_git_bitmaps.cpp$icons_png_gitStashPop.png"), xml_res_file_21, xml_res_size_21, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/gitui_git_bitmaps.cpp$icons_png_git-branch.png"), xml_res_file_22, xml_res_size_22, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/gitui_git_bitmaps.cpp$icons_png_git-branch-remote.png"), xml_res_file_23, xml_res_size_23, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/gitui_git_bitmaps.cpp$icons_png_git-trash.png"), xml_res_file_24, xml_res_size_24, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/gitui_git_bitmaps.cpp$icons_png_msysgit.png"), xml_res_file_25, xml_res_size_25, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/gitui_git_bitmaps.cpp$.._LiteEditor_res_16_select-all.png"), xml_res_file_26, xml_res_size_26, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/gitui_git_bitmaps.cpp$.._codelite-icons-fresh-farm_subversion_16_stop.png"), xml_res_file_27, xml_res_size_27, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/gitui_git_bitmaps.cpp$_mnt_SanDisk128-common_david_devel_git_CL_git_gitui_git_bitmaps.xrc"), xml_res_file_28, xml_res_size_28, wxT("text/xml")); + wxXmlResource::Get()->Load(wxT("memory:XRC_resource/gitui_git_bitmaps.cpp$_mnt_SanDisk128-common_david_devel_git_CL_git_gitui_git_bitmaps.xrc")); } diff -Nru codelite-8.0.1+dfsg2/git/gitui.h codelite-9.0+dfsg/git/gitui.h --- codelite-8.0.1+dfsg2/git/gitui.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/git/gitui.h 2015-10-11 13:56:07.000000000 +0000 @@ -4,8 +4,8 @@ // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// -#ifndef GITUI_BASE_CLASSES_H -#define GITUI_BASE_CLASSES_H +#ifndef CL_GIT_GITUI_BASE_CLASSES_H +#define CL_GIT_GITUI_BASE_CLASSES_H #include #include diff -Nru codelite-8.0.1+dfsg2/git/gitui.wxcp codelite-9.0+dfsg/git/gitui.wxcp --- codelite-8.0.1+dfsg2/git/gitui.wxcp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/git/gitui.wxcp 2015-10-11 13:56:07.000000000 +0000 @@ -3281,7 +3281,7 @@ }, { "type": "choice", "m_label": "Wrap Text", - "m_selection": 0, + "m_selection": 1, "m_options": ["None", "Word", "Char"] }, { "type": "choice", @@ -4715,7 +4715,7 @@ "gbSpan": ",", "gbPosition": ",", "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND", "wxALIGN_CENTER_HORIZONTAL"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "winid", "m_label": "ID:", @@ -5802,7 +5802,7 @@ "gbSpan": "1,1", "gbPosition": "0,0", "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_BOTTOM"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], "m_properties": [{ "type": "winid", "m_label": "ID:", @@ -6054,7 +6054,7 @@ "gbSpan": "1,1", "gbPosition": "0,0", "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_BOTTOM"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], "m_properties": [{ "type": "winid", "m_label": "ID:", @@ -9469,7 +9469,7 @@ }, { "type": "choice", "m_label": "EOL Mode", - "m_selection": 3, + "m_selection": 2, "m_options": ["CRLF", "CR", "LF", "Default"] }, { "type": "bool", @@ -9483,7 +9483,7 @@ }, { "type": "font", "m_label": "Font:", - "m_value": "wxSYS_ANSI_FIXED_FONT,normal,normal,normal" + "m_value": "" }, { "type": "multi-string", "m_label": "Keywords Set 1", diff -Nru codelite-8.0.1+dfsg2/Gizmos/CMakeLists.txt codelite-9.0+dfsg/Gizmos/CMakeLists.txt --- codelite-8.0.1+dfsg2/Gizmos/CMakeLists.txt 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Gizmos/CMakeLists.txt 2015-10-11 13:56:07.000000000 +0000 @@ -26,11 +26,6 @@ add_definitions(-Winvalid-pch) endif ( USE_PCH ) -# Add RPATH -if (UNIX) -set (LINKER_OPTIONS -Wl,-rpath,"${PLUGINS_DIR}") -endif (UNIX) - if (UNIX AND NOT APPLE) set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC" ) set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC" ) @@ -52,8 +47,6 @@ ${wxWidgets_LIBRARIES} libcodelite plugin - wxsqlite3 - sqlite3lib ) # Installation destination -CL_INSTALL_PLUGIN(${PLUGIN_NAME}) \ No newline at end of file +CL_INSTALL_PLUGIN(${PLUGIN_NAME}) diff -Nru codelite-8.0.1+dfsg2/Gizmos/gizmos_base.cpp codelite-9.0+dfsg/Gizmos/gizmos_base.cpp --- codelite-8.0.1+dfsg2/Gizmos/gizmos_base.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Gizmos/gizmos_base.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,28 +1,3 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2014 The CodeLite Team -// file name : gizmos_base.cpp -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - ////////////////////////////////////////////////////////////////////// // This file was auto-generated by codelite's wxCrafter Plugin // wxCrafter project file: gizmos.wxcp @@ -68,6 +43,9 @@ m_textCtrlName = new wxTextCtrl(m_wizardPage1, wxID_ANY, wxT(""), wxDefaultPosition, wxSize(-1,-1), 0); m_textCtrlName->SetToolTip(_("Set the plugin name.\nThe name should be a valid C++ variable name")); m_textCtrlName->SetFocus(); + #if wxVERSION_NUMBER >= 3000 + m_textCtrlName->SetHint(wxT("")); + #endif flexGridSizer12->Add(m_textCtrlName, 0, wxALL|wxEXPAND, 5); @@ -77,6 +55,9 @@ m_textCtrlDescription = new wxTextCtrl(m_wizardPage1, wxID_ANY, wxT(""), wxDefaultPosition, wxSize(-1,-1), 0); m_textCtrlDescription->SetToolTip(_("Provide the plugin a short description")); + #if wxVERSION_NUMBER >= 3000 + m_textCtrlDescription->SetHint(wxT("")); + #endif flexGridSizer12->Add(m_textCtrlDescription, 0, wxALL|wxEXPAND, 5); @@ -103,7 +84,7 @@ flexGridSizer24->Add(m_staticText42, 0, wxALL|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5); - m_dirPickerCodeliteDir = new wxDirPickerCtrl(m_wizardPage2, wxID_ANY, wxEmptyString, wxT("Select a folder"), wxDefaultPosition, wxSize(-1,-1), wxDIRP_DEFAULT_STYLE|wxDIRP_USE_TEXTCTRL|wxDIRP_DIR_MUST_EXIST); + m_dirPickerCodeliteDir = new wxDirPickerCtrl(m_wizardPage2, wxID_ANY, wxEmptyString, _("Select a folder"), wxDefaultPosition, wxSize(-1,-1), wxDIRP_DEFAULT_STYLE|wxDIRP_USE_TEXTCTRL|wxDIRP_DIR_MUST_EXIST); m_dirPickerCodeliteDir->SetToolTip(_("Select the location of codelite's source tree")); flexGridSizer24->Add(m_dirPickerCodeliteDir, 0, wxALL|wxEXPAND, 5); @@ -112,7 +93,7 @@ flexGridSizer24->Add(m_staticText26, 0, wxALL|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5); - m_dirPickerPluginPath = new wxDirPickerCtrl(m_wizardPage2, wxID_ANY, wxEmptyString, wxT("Select a folder"), wxDefaultPosition, wxSize(350,-1), wxDIRP_DEFAULT_STYLE|wxDIRP_USE_TEXTCTRL|wxDIRP_DIR_MUST_EXIST); + m_dirPickerPluginPath = new wxDirPickerCtrl(m_wizardPage2, wxID_ANY, wxEmptyString, _("Select a folder"), wxDefaultPosition, wxSize(350,-1), wxDIRP_DEFAULT_STYLE|wxDIRP_USE_TEXTCTRL|wxDIRP_DIR_MUST_EXIST); m_dirPickerPluginPath->SetToolTip(_("Select the plugin project path")); flexGridSizer24->Add(m_dirPickerPluginPath, 0, wxALL|wxEXPAND, 5); @@ -120,14 +101,25 @@ flexGridSizer24->Add(0, 0, 1, wxALL, 5); m_textCtrlPreview = new wxTextCtrl(m_wizardPage2, wxID_ANY, wxT(""), wxDefaultPosition, wxSize(-1,-1), wxTE_READONLY); + #if wxVERSION_NUMBER >= 3000 + m_textCtrlPreview->SetHint(wxT("")); + #endif flexGridSizer24->Add(m_textCtrlPreview, 0, wxALL|wxEXPAND, 5); + SetName(wxT("PluginWizardBase")); SetSizeHints(-1,-1); if ( GetSizer() ) { GetSizer()->Fit(this); } - Centre(wxBOTH); + CentreOnParent(wxBOTH); +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(this)) { + wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); + } +#endif // Connect events this->Connect(wxEVT_WIZARD_PAGE_CHANGING, wxWizardEventHandler(PluginWizardBase::OnPageChanging), NULL, this); this->Connect(wxEVT_WIZARD_FINISHED, wxWizardEventHandler(PluginWizardBase::OnFinish), NULL, this); diff -Nru codelite-8.0.1+dfsg2/Gizmos/gizmos_base.h codelite-9.0+dfsg/Gizmos/gizmos_base.h --- codelite-8.0.1+dfsg2/Gizmos/gizmos_base.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Gizmos/gizmos_base.h 2015-10-11 13:56:07.000000000 +0000 @@ -1,36 +1,11 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2014 The CodeLite Team -// file name : gizmos_base.h -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - ////////////////////////////////////////////////////////////////////// // This file was auto-generated by codelite's wxCrafter Plugin // wxCrafter project file: gizmos.wxcp // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// -#ifndef GIZMOS_BASE_CLASSES_H -#define GIZMOS_BASE_CLASSES_H +#ifndef CODELITE_GIZMOS_GIZMOS_BASE_CLASSES_H +#define CODELITE_GIZMOS_GIZMOS_BASE_CLASSES_H #include #include @@ -43,6 +18,12 @@ #include #include #include +#if wxVERSION_NUMBER >= 2900 +#include +#include +#include +#include +#endif class PluginWizardBase : public wxWizard { @@ -67,6 +48,17 @@ virtual void OnProjectPathChanged(wxFileDirPickerEvent& event) { event.Skip(); } public: + wxStaticText* GetStaticText14() { return m_staticText14; } + wxTextCtrl* GetTextCtrlName() { return m_textCtrlName; } + wxStaticText* GetStaticText18() { return m_staticText18; } + wxTextCtrl* GetTextCtrlDescription() { return m_textCtrlDescription; } + wxWizardPageSimple* GetWizardPage1() { return m_wizardPage1; } + wxStaticText* GetStaticText42() { return m_staticText42; } + wxDirPickerCtrl* GetDirPickerCodeliteDir() { return m_dirPickerCodeliteDir; } + wxStaticText* GetStaticText26() { return m_staticText26; } + wxDirPickerCtrl* GetDirPickerPluginPath() { return m_dirPickerPluginPath; } + wxTextCtrl* GetTextCtrlPreview() { return m_textCtrlPreview; } + wxWizardPageSimple* GetWizardPage2() { return m_wizardPage2; } PluginWizardBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("New Plugin Wizard"), const wxBitmap& bmp = wxNullBitmap, const wxPoint& pos = wxDefaultPosition, long style = wxDEFAULT_DIALOG_STYLE); wxWizardPageSimple* GetFirstPage() const { if(!m_pages.empty()) return m_pages.at(0); return NULL; } virtual ~PluginWizardBase(); diff -Nru codelite-8.0.1+dfsg2/Gizmos/gizmos_gizmos_bitmaps.cpp codelite-9.0+dfsg/Gizmos/gizmos_gizmos_bitmaps.cpp --- codelite-8.0.1+dfsg2/Gizmos/gizmos_gizmos_bitmaps.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Gizmos/gizmos_gizmos_bitmaps.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,916 +1,890 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2014 The CodeLite Team -// file name : gizmos_gizmos_bitmaps.cpp -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - -// -// This file was automatically generated by wxrc, do not edit by hand. -// - -#include - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#include -#include -#include -#include - -#if wxCHECK_VERSION(2,8,5) && wxABI_VERSION >= 20805 - #define XRC_ADD_FILE(name, data, size, mime) \ - wxMemoryFSHandler::AddFileWithMimeType(name, data, size, mime) -#else - #define XRC_ADD_FILE(name, data, size, mime) \ - wxMemoryFSHandler::AddFile(name, data, size) -#endif - -static size_t xml_res_size_0 = 17062; -static unsigned char xml_res_file_0[] = { -137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,128,0,0,0,128,8,6,0, -0,0,195,62,97,203,0,0,32,0,73,68,65,84,120,1,237,125,7,144,29,199,121,230, -255,226,190,77,216,136,180,139,64,16,16,50,51,40,128,164,44,81,18,41,145, -146,44,89,89,231,168,147,101,157,125,87,58,235,234,92,118,157,202,87,58, -223,85,157,125,182,236,114,58,185,164,179,101,75,62,251,36,40,216,178,149, -40,138,4,9,144,32,65,130,32,34,65,196,221,5,54,231,248,242,204,220,247, -253,61,61,59,187,216,244,54,72,148,200,222,157,215,61,157,231,255,190,254, -187,167,167,167,39,226,121,158,188,102,94,189,18,136,175,196,165,223,246, -217,211,149,233,178,194,186,68,62,90,44,36,243,67,151,62,185,127,116,37, -202,121,45,207,165,75,32,178,28,26,160,249,11,47,84,212,229,202,111,242, -196,185,3,10,229,158,136,184,175,151,72,108,147,120,174,35,142,219,7,191, -14,113,157,86,41,58,215,34,110,164,197,117,188,235,110,34,218,83,145,139, -15,158,148,111,141,122,159,249,140,187,244,75,121,45,135,197,72,96,81,4, -136,136,68,118,124,241,194,118,201,59,251,162,5,231,30,100,114,55,188,182, -69,162,209,122,137,65,169,176,91,1,246,226,194,246,16,155,134,110,23,56, -23,10,226,57,197,108,196,149,17,207,117,251,34,174,219,5,146,180,185,158, -215,26,41,186,173,158,227,94,151,104,188,203,139,23,6,215,149,197,70,14, -125,230,254,162,201,224,181,223,149,144,64,201,4,120,243,19,18,239,238, -110,253,239,145,104,236,215,0,92,35,90,180,160,101,43,176,106,19,100,18, -192,129,77,183,99,221,36,131,39,40,16,254,160,11,175,6,78,97,122,245,243, -196,43,22,16,223,201,35,221,8,210,13,192,238,6,113,90,97,95,67,156,22,201, -123,215,160,93,186,162,241,252,128,51,80,28,62,123,240,131,249,149,16,202, -171,41,207,146,9,176,227,171,87,239,142,69,162,71,34,209,68,153,87,64,227, -180,45,29,45,220,128,75,128,93,65,203,150,8,192,215,3,113,34,32,4,90,55, -200,226,138,139,195,227,97,73,162,154,130,233,152,135,17,63,52,4,76,4,249, -24,127,113,138,226,21,10,14,226,140,120,158,59,8,18,117,131,100,232,82, -220,86,215,65,215,226,68,90,29,207,237,140,56,185,254,204,96,113,168,229, -208,71,179,175,38,32,23,123,173,37,19,96,247,87,218,222,43,241,248,55,9, -136,182,110,207,111,229,65,235,38,248,158,68,129,27,9,193,131,35,205,56, -144,141,71,34,146,64,179,215,48,196,241,28,12,17,10,174,56,249,162,20,114, -56,242,142,20,225,118,136,51,8,66,34,41,41,148,24,150,28,32,5,73,66,130, -248,154,3,90,3,60,44,184,32,219,40,72,53,28,245,60,106,142,235,112,183, -69,60,167,213,203,123,109,110,76,58,242,153,124,223,229,243,195,67,94,247, -111,77,44,86,96,63,109,233,22,73,128,24,8,0,181,79,245,62,141,0,209,0,44, -3,126,248,60,10,233,1,28,137,65,235,39,120,68,35,82,22,199,1,59,9,79,56, -65,30,96,139,46,133,68,200,101,139,146,73,23,36,51,145,151,108,166,32,121, -28,5,248,187,32,13,198,15,134,28,74,50,159,108,204,95,137,1,7,9,136,186, -64,59,128,96,121,106,155,177,84,60,58,92,187,170,172,175,44,30,187,216, -59,48,254,185,23,190,255,209,35,1,160,95,252,98,181,72,191,200,199,126, -123,44,240,123,21,56,74,39,192,215,174,127,88,34,209,175,76,215,0,108,233, -81,72,157,66,87,55,129,81,183,1,61,18,10,99,56,91,113,4,228,161,59,6,65, -147,40,113,16,33,1,150,164,240,147,74,196,164,34,25,147,242,100,20,36,137, -34,142,25,43,80,83,228,64,132,241,209,172,140,143,229,100,108,36,43,19, -176,51,233,188,20,64,24,7,221,146,199,174,7,249,186,232,98,152,215,250, -198,74,217,180,190,90,106,170,83,146,201,186,210,219,151,145,190,206,190, -206,119,55,101,62,254,169,59,10,245,18,77,188,69,162,145,59,49,96,101,194, -14,84,181,13,85,106,3,203,112,231,82,104,151,76,161,7,231,131,242,169,79, -141,192,166,254,249,169,49,144,83,105,215,179,235,96,235,175,68,99,201, -191,51,3,54,164,101,95,239,3,202,214,205,131,253,191,33,131,105,153,244, -163,216,162,62,224,4,95,227,49,46,2,108,151,48,73,18,200,87,243,98,62,2, -141,65,98,64,83,64,109,84,150,37,164,34,21,147,234,242,56,236,56,8,18,87, -2,17,236,92,182,160,100,24,232,159,144,254,206,17,217,217,92,45,123,182, -53,72,101,101,82,134,65,146,225,158,97,241,6,134,100,77,113,68,182,165, -114,178,115,85,49,91,149,138,164,244,206,133,26,133,6,101,233,193,58,83, -203,229,114,25,41,32,65,62,223,143,59,152,78,16,162,21,238,107,146,47,94, -69,88,187,56,233,110,153,168,24,144,209,246,17,57,120,16,9,126,178,204, -146,9,192,86,108,251,251,0,124,2,27,128,108,91,186,177,109,92,37,13,193, -135,220,9,114,56,31,64,224,147,202,132,147,24,134,16,198,86,55,210,197, -224,31,83,98,68,65,132,152,84,85,36,165,170,50,33,181,213,101,114,243,166, -90,217,187,166,92,156,137,156,244,93,235,149,134,150,243,210,152,25,148, -154,72,94,18,113,86,14,165,70,168,123,124,67,224,105,8,188,53,116,23,49, -214,225,96,151,54,239,82,232,46,224,230,35,151,195,129,190,165,80,24,193, -209,15,119,183,146,163,144,111,67,120,155,228,138,109,146,205,118,33,171, -65,25,0,235,142,31,71,226,87,158,89,244,76,160,130,196,198,194,63,2,14, -183,130,11,7,195,84,3,248,97,192,72,253,52,46,64,51,225,76,135,120,170, -117,25,31,113,252,120,38,31,156,99,14,33,130,19,61,103,94,8,55,100,137, -0,63,146,140,57,242,14,148,99,6,71,198,208,202,57,104,228,209,218,58,36, -177,55,109,145,196,224,152,236,110,57,35,27,199,59,84,11,105,120,38,220, -218,89,89,228,26,195,65,91,15,86,4,110,18,64,199,26,28,239,248,68,192,60, -134,146,192,104,140,36,42,176,26,21,91,45,241,216,46,29,15,185,16,41,239, -110,162,72,16,143,143,130,20,131,82,93,213,37,111,120,195,53,84,180,13, -218,3,221,74,182,13,221,74,39,52,76,63,226,12,201,165,75,168,248,143,199, -44,138,0,4,130,146,143,192,161,64,211,13,89,25,128,8,10,65,70,24,137,1, -57,26,160,0,36,147,105,60,19,39,170,177,224,175,233,25,31,225,76,139,243, -40,230,7,8,190,198,215,120,240,243,211,43,105,152,191,86,131,241,109,90, -164,71,102,72,46,67,67,105,57,115,161,95,50,151,218,229,206,88,183,72,85, -2,45,24,64,114,148,201,2,8,32,91,181,85,253,40,87,141,37,65,64,8,230,6, -19,131,182,72,48,14,14,166,33,33,72,16,118,19,170,37,72,12,255,160,159, -231,197,81,78,189,30,209,232,54,115,145,188,48,28,30,244,94,44,54,138,65, -202,16,180,68,143,172,91,103,201,1,237,81,104,129,118,233,68,65,125,56, -6,145,79,6,246,138,153,210,9,0,57,80,36,20,115,196,182,94,120,208,143,128, -146,16,156,253,83,98,0,33,170,120,19,151,54,9,129,48,14,14,1,2,38,117,52, -13,65,86,48,225,80,82,224,156,24,25,205,194,188,120,110,200,96,64,55,249, -27,55,243,229,31,194,249,135,116,134,120,17,25,30,206,202,42,12,32,227, -4,19,97,62,27,153,153,57,8,118,208,202,81,81,2,203,131,126,60,16,205,100, -136,120,74,0,92,124,89,153,96,240,97,242,227,28,8,65,207,160,1,103,128, -83,58,45,50,129,131,54,253,217,101,228,208,93,104,215,193,115,144,70,201, -193,75,242,106,145,57,14,217,130,227,0,14,107,32,132,232,24,234,49,12,143, -94,148,127,29,118,27,142,86,223,110,199,61,236,245,74,207,227,192,116,201, -166,100,2,196,80,247,168,10,144,130,54,242,49,0,2,20,31,164,64,190,4,31, -39,17,180,58,54,60,166,11,64,133,128,13,9,124,13,192,112,149,185,159,15, -1,213,248,240,167,219,150,5,63,5,88,193,166,63,97,247,137,3,113,88,183, -167,45,13,115,13,10,164,5,156,136,250,160,35,31,20,128,83,156,79,55,76, -99,201,160,19,93,62,41,232,71,195,116,36,21,73,145,132,102,41,7,33,106, -170,197,131,219,139,67,164,72,207,73,178,8,200,224,141,141,73,100,8,88, -14,14,193,30,18,25,25,145,8,252,84,27,113,28,161,68,1,49,38,181,17,43,185, -202,63,54,193,222,135,67,141,91,95,47,197,245,235,39,48,17,214,213,91,95, -255,199,107,134,134,190,128,178,252,74,217,88,165,217,139,32,128,185,126, -214,82,101,8,91,129,213,22,24,114,43,96,166,165,42,120,144,151,106,3,36, -50,173,21,233,153,22,191,134,72,0,147,110,205,135,46,134,209,111,50,30, -156,6,124,228,97,200,70,27,225,74,28,27,223,207,159,149,131,225,221,65, -36,201,72,37,28,76,200,248,150,28,116,91,240,73,14,30,121,180,104,15,173, -123,28,237,145,231,52,140,15,18,184,101,41,241,42,203,197,171,170,18,111, -205,90,137,164,64,144,50,95,212,72,23,153,64,26,144,33,210,3,45,223,213, -37,209,158,94,40,252,62,156,247,136,7,63,157,69,69,118,68,214,77,149,137, -187,19,195,139,189,123,197,169,89,37,197,129,193,74,247,250,181,109,185, -209,225,63,59,155,142,181,239,21,249,54,139,94,172,41,153,0,104,112,41, -78,228,16,25,182,157,40,60,136,192,36,144,230,214,141,48,76,2,109,65,102, -50,3,170,170,122,166,199,57,243,9,199,215,115,8,157,192,6,132,192,137,2, -13,127,106,0,155,158,26,69,9,168,225,8,243,9,164,213,66,190,46,129,35,128, -225,195,2,139,112,5,143,97,211,253,24,198,180,244,183,0,219,248,60,103, -26,107,219,184,244,227,32,52,155,227,180,181,120,35,227,226,70,7,49,13, -26,19,23,154,193,67,247,225,145,12,32,71,100,243,22,137,236,222,35,145, -202,74,92,151,43,197,158,110,145,206,235,226,181,181,170,198,112,175,92, -147,212,205,219,68,222,244,38,241,106,106,165,8,130,228,175,225,198,2,118, -122,124,84,156,76,58,153,137,198,126,17,245,248,14,234,225,51,144,21,41, -205,148,76,0,204,233,167,162,156,178,131,81,16,124,193,171,234,133,55,67, -2,48,9,96,224,199,248,147,225,22,168,73,66,48,71,2,200,120,147,45,63,200, -75,253,121,198,48,254,49,182,79,60,27,159,101,177,75,80,155,32,1,35,206, -86,170,7,61,103,57,8,178,37,202,76,110,148,21,16,132,178,182,113,173,220, -105,51,29,243,167,29,69,215,160,131,72,76,95,225,220,99,87,193,48,170,121, -116,11,46,9,50,58,129,155,6,71,114,215,218,101,226,197,147,146,235,234, -132,214,168,144,72,67,157,36,54,173,151,198,223,252,132,196,14,188,65,220, -209,188,20,91,91,37,51,54,42,163,231,95,146,209,147,47,74,182,191,95,73, -147,139,69,55,125,1,244,250,4,58,18,86,113,49,166,100,2,36,112,255,69,144, -120,65,10,128,213,0,148,45,101,141,243,96,44,64,153,96,52,207,248,42,123, -2,102,241,64,106,59,8,212,112,198,81,64,105,155,188,131,188,52,204,180, -110,134,146,84,102,28,192,124,17,151,121,106,28,248,251,249,48,18,253,61, -182,72,22,206,68,90,87,216,90,25,223,38,96,4,208,130,104,193,165,127,88, -3,132,221,76,207,115,154,112,122,45,7,233,88,54,110,127,116,28,194,112, -28,1,17,18,9,200,196,147,66,203,85,153,56,126,66,114,87,174,226,174,18, -211,219,208,16,206,216,132,56,221,253,50,122,246,130,140,157,186,32,219, -62,131,174,36,86,37,253,223,252,166,12,61,113,72,178,32,9,40,132,124,49, -176,197,177,104,212,181,226,230,167,100,2,224,114,84,232,148,248,36,152, -198,77,25,171,108,33,79,94,55,193,215,209,59,211,224,208,248,136,164,182, -182,90,130,132,22,205,188,252,56,240,49,110,197,205,104,130,64,221,51,127, -198,183,249,193,165,249,170,191,113,179,60,237,150,88,8,12,199,0,58,250, -103,229,44,25,180,146,56,103,37,75,5,159,241,195,100,176,233,105,135,243, -101,222,254,65,192,36,137,41,3,168,250,194,213,171,146,121,238,184,228, -96,23,57,109,77,66,112,224,136,56,36,73,4,147,83,49,244,177,153,174,94, -233,253,193,17,104,128,65,233,248,242,87,56,63,174,154,4,35,26,229,49,175, -142,100,88,170,41,153,0,68,135,178,164,97,235,155,162,174,181,245,195,159, -224,194,109,192,247,227,80,62,4,31,32,168,156,152,30,126,236,191,145,165, -166,49,64,79,2,204,120,4,147,197,169,118,80,25,227,28,194,214,116,8,152, -74,8,198,227,97,126,225,4,86,76,68,79,70,246,15,2,66,67,32,181,16,156,91, -32,25,22,6,120,186,155,233,24,199,198,15,219,54,47,134,219,131,0,195,191, -216,134,201,193,231,158,147,220,197,203,0,30,109,215,2,207,52,51,152,40, -186,141,76,91,187,68,49,127,81,196,44,39,38,140,204,3,80,196,117,145,134, -250,167,192,178,151,104,22,71,0,74,20,149,80,160,81,1,163,9,44,25,76,191, -108,194,76,28,136,195,200,94,27,163,37,129,129,137,4,210,112,228,70,81, -4,121,170,219,143,3,166,144,44,74,56,92,116,160,246,125,119,144,63,207, -241,167,4,165,246,65,30,65,23,192,51,130,66,67,80,105,40,124,250,241,156, -194,180,110,107,51,14,221,12,99,28,198,231,97,221,244,15,31,54,63,166,1, -96,17,128,232,118,119,75,254,216,49,201,191,116,94,28,222,246,205,3,60, -139,84,131,98,60,76,92,185,152,79,42,248,229,178,214,40,81,215,208,80,19, -252,88,186,128,152,139,118,10,218,176,117,211,80,164,6,16,2,131,115,109, -177,22,8,216,136,102,128,51,178,11,84,190,239,111,1,87,224,108,183,96,243, -213,115,164,67,92,115,171,9,119,40,76,253,0,192,244,180,154,39,35,194,232, -186,2,173,24,37,138,195,23,102,64,6,14,208,44,192,4,214,30,156,176,177, -110,102,68,80,167,155,233,68,96,222,84,231,0,217,27,28,148,34,84,125,225, -212,41,41,226,182,207,75,36,77,24,227,148,96,28,200,192,16,128,224,155, -150,15,110,171,6,200,151,150,213,140,165,150,172,1,40,135,160,11,64,150, -166,197,161,106,168,140,185,207,135,173,190,6,124,198,101,61,195,135,9, -167,159,209,22,74,34,31,108,227,246,243,213,42,27,117,175,36,32,216,40, -200,144,198,216,65,89,240,157,204,7,97,90,46,38,100,166,247,251,12,32,72, -28,145,15,244,235,192,42,55,48,32,30,90,103,28,100,72,86,87,73,178,190, -81,164,1,7,250,237,96,130,134,36,161,161,109,181,130,37,133,13,99,190,156, -9,60,250,140,20,159,127,78,156,65,60,125,4,25,72,8,173,144,201,97,129,191, -168,39,234,206,46,204,106,0,214,128,90,32,232,2,84,170,11,204,110,150,104, -37,19,0,203,193,82,108,121,44,27,255,193,97,186,1,3,254,148,113,1,98,48, -222,20,112,244,156,124,158,158,222,130,107,227,51,28,127,170,1,124,240, -33,108,75,18,5,31,129,58,232,99,94,112,235,157,3,220,26,9,150,25,4,178, -178,56,8,24,172,124,203,85,233,122,225,164,92,29,72,75,87,245,58,73,175, -90,11,160,202,36,230,20,164,178,189,87,26,95,122,81,54,73,70,54,220,180, -81,202,119,238,198,115,132,42,67,4,230,75,176,195,7,253,168,69,242,80,239, -39,79,138,251,212,211,226,96,180,174,143,152,19,16,175,37,9,227,149,104, -88,140,131,159,130,10,138,180,39,248,134,4,30,174,167,72,143,37,154,146, -9,128,103,250,32,0,100,128,10,176,94,10,54,42,162,242,133,79,24,252,201, -214,169,114,55,221,3,65,66,58,147,150,54,210,32,189,209,42,70,35,152,240, -144,91,129,101,89,166,28,3,178,37,2,114,64,2,29,24,106,110,204,147,100, -161,13,97,89,13,0,144,188,44,0,127,252,144,156,110,237,151,139,123,223, -44,163,111,188,75,220,106,172,7,33,128,204,27,71,212,115,164,37,147,150, -211,93,87,100,221,233,67,114,203,191,124,71,118,220,190,71,18,36,2,51,165, -218,183,4,224,57,13,6,120,242,248,227,226,93,184,96,194,180,197,179,182, -75,52,40,71,9,224,171,81,74,142,189,24,113,103,209,172,198,82,77,201,4, -144,184,103,166,217,253,74,0,27,173,12,91,161,130,143,138,89,109,96,194, -8,176,15,58,100,194,167,124,108,210,20,143,37,136,2,203,252,244,96,62,38, -79,3,42,78,96,76,92,218,140,23,34,7,221,90,7,159,144,36,11,255,124,225, -176,11,224,109,150,51,62,46,151,191,246,77,121,62,217,44,45,239,255,29, -113,107,26,208,226,139,18,195,173,89,20,131,45,45,155,85,99,89,152,173, -115,182,221,42,29,91,111,149,222,150,179,210,122,232,31,228,222,142,78, -169,127,227,155,140,58,39,9,72,26,244,243,242,204,51,34,24,221,227,89,52, -171,137,196,134,76,230,100,137,191,62,1,138,152,83,96,215,183,18,166,100, -2,24,112,140,164,40,100,37,39,193,39,168,168,164,46,3,99,48,253,16,217, -156,19,84,0,1,63,163,166,153,142,48,49,30,252,225,48,192,210,143,0,226, -156,160,242,207,2,74,63,5,158,98,160,63,227,48,46,255,76,24,109,115,110, -252,25,19,171,7,117,90,246,234,183,254,69,158,173,220,38,173,15,253,91, -189,223,142,97,245,185,185,22,164,101,102,48,166,14,36,23,210,131,28,42, -116,144,224,82,211,22,25,254,238,95,203,91,190,255,61,105,122,248,97,163, -222,49,184,147,195,135,49,125,11,117,143,122,232,197,82,219,44,167,65,190, -36,48,115,53,53,92,206,204,77,94,37,19,128,98,162,192,128,165,47,120,136, -220,130,20,128,73,24,76,203,100,164,48,184,70,232,8,167,204,24,31,12,50, -96,51,63,10,223,164,229,47,243,157,50,15,160,130,96,8,243,52,32,155,252, -224,38,185,52,125,152,4,198,221,127,244,168,156,41,84,75,219,207,254,50, -26,40,234,207,101,234,184,6,230,99,14,147,151,230,139,31,214,141,156,208, -115,183,32,177,242,74,25,254,192,127,148,199,190,243,55,242,192,183,191, -45,235,25,120,238,37,244,251,120,24,100,7,148,70,158,203,251,75,2,224,208, -138,44,111,206,65,110,148,95,73,198,128,105,64,245,187,38,37,4,253,121, -174,45,123,138,77,97,82,67,152,112,117,251,113,41,71,3,224,100,90,205,51, -136,79,18,216,176,25,242,9,197,163,182,49,101,51,13,181,79,68,87,31,247, -13,100,228,115,151,107,228,236,91,63,38,145,178,36,8,133,59,104,132,43, -241,108,157,16,151,229,242,33,151,77,203,188,52,63,4,36,98,0,2,35,174,199, -215,63,36,127,217,146,148,145,211,104,253,8,215,110,160,36,233,149,22,89, -193,71,125,87,210,148,172,1,140,160,161,245,40,188,80,75,193,169,105,49, -74,88,130,192,214,76,3,65,130,197,42,76,182,80,21,44,86,21,48,144,234,13, -215,231,98,92,192,54,24,195,0,12,107,190,67,173,219,182,76,99,219,86,63, -217,210,153,59,255,252,178,81,166,186,253,58,176,140,222,49,87,38,182,223, -43,119,175,93,171,171,120,20,120,45,13,105,88,23,63,45,241,180,249,168, -141,31,18,130,107,14,59,59,199,228,216,241,118,105,239,28,151,248,186,119, -201,150,182,110,249,152,211,129,180,140,185,130,134,26,128,227,141,21,52, -165,19,0,149,33,16,20,53,91,13,141,1,198,18,130,66,69,168,146,3,224,40, -248,70,184,49,168,75,15,203,186,7,91,58,100,232,114,7,238,147,251,100,125, -217,128,220,181,105,88,106,214,213,72,119,229,45,50,88,177,67,138,177,10, -172,190,2,17,148,253,36,18,65,14,145,128,192,105,254,8,243,85,63,171,194, -88,134,116,182,78,17,169,105,46,151,45,219,26,225,143,209,0,34,49,220,228, -103,234,20,16,0,249,107,90,63,14,87,17,229,80,215,23,206,246,200,201,211, -221,250,142,2,9,81,76,84,203,87,86,191,93,238,236,248,146,220,25,1,97,87, -208,80,251,235,60,198,10,150,81,58,1,162,156,7,0,196,16,6,254,131,254,114, -82,176,126,43,68,152,130,4,150,48,44,134,230,216,127,238,154,92,255,225, -51,178,206,105,151,55,223,82,148,123,223,86,144,93,235,210,82,155,204,225, -73,216,57,25,238,253,158,180,14,212,202,233,234,119,72,75,221,91,241,44, -29,247,230,46,6,99,10,78,136,4,62,248,244,209,150,139,243,73,80,81,62,235, -134,10,198,0,226,190,55,110,199,139,33,0,63,208,66,126,189,89,191,224,26, -152,134,185,25,63,214,181,167,119,92,142,62,223,46,29,29,163,74,98,62,160, -161,198,138,121,69,204,29,236,144,131,21,123,101,215,248,243,82,110,104, -131,148,43,97,112,97,203,61,176,156,86,205,146,9,16,243,60,46,209,215,217, -40,2,76,6,208,182,42,158,98,52,26,193,23,40,162,48,254,149,239,61,39,177, -211,135,229,191,124,36,47,239,120,123,82,106,106,81,116,4,51,100,110,13, -104,158,196,35,206,74,169,115,43,100,67,223,160,236,57,253,61,57,211,249, -132,60,221,248,9,25,76,109,135,208,243,33,18,16,64,171,21,144,183,175,25, -140,134,224,185,41,151,36,160,250,244,138,168,143,15,174,29,84,106,26,132, -227,95,225,179,224,243,197,20,7,79,15,79,189,212,43,199,79,118,73,26,111, -36,177,11,224,114,182,201,155,110,18,60,42,71,235,239,149,23,199,206,200, -189,130,129,224,74,24,86,14,224,171,86,90,137,252,253,60,75,38,0,211,81, -184,4,53,16,32,133,206,22,70,27,170,86,109,191,63,230,96,236,242,191,30, -147,245,215,127,40,127,244,39,158,220,188,13,169,114,89,113,115,184,52, -174,44,128,170,23,44,124,245,132,247,209,113,73,52,214,203,218,135,62,44, -117,173,87,165,233,153,63,146,71,10,191,36,215,87,189,17,154,192,144,64, -203,36,160,218,234,9,6,254,72,66,218,240,51,117,162,63,221,252,101,93,77, -28,158,155,122,155,16,10,215,228,135,146,17,48,50,154,147,103,78,116,200, -229,171,88,187,199,214,142,5,165,186,196,91,115,153,252,225,88,101,176, -124,163,60,158,186,73,94,63,113,14,181,54,229,76,198,88,14,23,243,68,87, -203,126,96,37,178,247,171,88,50,1,162,80,143,20,54,231,115,172,0,89,63, -250,77,109,141,120,215,15,2,236,60,118,65,26,90,31,151,191,248,195,130, -52,53,227,233,88,214,196,198,48,28,169,224,38,9,244,5,13,186,209,142,179, -67,56,198,36,185,121,171,236,92,253,139,82,241,216,215,229,219,99,142,180, -174,122,179,36,44,9,84,227,152,50,77,203,39,160,150,128,62,41,152,59,178, -52,165,24,63,186,253,82,89,178,166,225,91,71,92,188,211,214,62,42,79,65, -229,15,14,102,244,77,36,141,72,225,207,104,0,76,52,33,39,170,247,72,231, -248,89,76,27,51,183,21,48,32,225,92,131,64,92,243,68,23,40,186,148,146, -41,143,146,12,47,85,71,242,176,167,187,85,224,240,100,56,251,209,220,200, -132,140,28,126,82,62,243,169,172,52,109,4,248,121,43,126,218,254,65,34, -48,161,15,137,125,91,199,29,189,130,219,182,180,220,244,240,175,200,59, -19,223,150,166,244,41,21,186,150,141,214,138,236,53,153,142,228,145,222, -248,195,143,97,122,206,122,216,195,250,81,19,240,48,254,36,40,91,216,241, -51,189,242,200,145,54,25,28,201,97,220,192,186,204,111,56,101,220,85,113, -147,92,136,150,131,184,179,17,101,254,124,230,138,193,92,177,15,3,127,103, -140,134,233,248,226,103,168,38,150,96,136,66,73,134,130,167,96,173,16,89, -53,3,2,252,125,55,195,168,62,59,159,121,89,30,190,173,93,246,237,199,232, -159,207,46,25,96,91,126,152,0,134,74,83,195,240,204,217,195,219,60,94,116, -72,110,122,224,35,242,86,247,160,84,21,241,246,46,4,162,217,224,199,0,77, -155,117,50,224,170,173,117,52,225,193,253,62,252,88,180,169,63,238,237, -81,191,12,94,38,253,225,179,237,242,236,169,110,44,203,114,180,191,95,168, -48,168,113,210,201,58,185,20,175,131,107,73,141,112,246,34,87,136,88,225, -2,137,89,73,134,9,180,207,245,241,84,16,212,143,254,4,194,220,59,23,51, -121,113,174,156,149,15,191,23,35,40,170,118,93,73,168,169,17,123,6,59,76, -12,117,35,78,20,36,24,187,46,145,138,168,236,222,127,143,220,149,249,38, -168,226,3,27,148,207,114,77,171,182,229,27,18,32,30,179,96,60,252,132,53, -69,2,111,12,247,66,213,127,247,112,155,92,106,25,54,113,152,184,4,67,2, -240,46,165,61,81,135,141,75,150,212,8,103,45,149,218,105,174,46,96,214, -132,37,4,16,137,146,13,19,153,62,31,66,166,27,178,51,7,207,205,237,215, -104,251,128,188,174,182,75,94,183,29,32,22,17,75,5,204,216,80,105,22,96, -250,89,119,88,11,76,33,3,150,66,13,93,144,228,166,61,178,175,105,76,214, -230,206,161,176,56,202,35,192,33,224,225,86,224,233,175,7,139,156,10,60, -227,243,254,254,42,94,228,253,46,84,126,55,222,34,94,168,202,159,73,72, -120,191,75,134,99,213,146,94,33,2,104,215,178,194,19,65,68,164,36,131,81, -99,57,228,234,3,110,112,37,248,182,27,80,237,128,166,55,126,189,71,238, -216,153,145,120,57,135,134,74,19,19,89,129,214,4,40,55,228,63,133,8,150, -24,190,13,1,187,99,87,164,113,239,189,114,155,247,36,82,33,71,31,100,130, -170,192,171,102,48,245,98,253,88,31,222,194,197,177,38,159,113,232,198, -191,156,186,216,47,143,62,211,46,227,216,120,130,243,4,139,54,218,65,71, -36,135,1,44,182,159,88,116,54,115,38,164,6,88,225,169,224,146,37,128,167, -126,220,195,1,226,54,127,234,38,24,244,83,80,232,143,5,139,88,101,179,125, -43,28,30,7,49,8,181,0,91,59,240,99,108,166,102,28,34,231,187,153,139,117, -115,32,148,29,192,2,201,26,217,177,174,40,245,133,86,132,241,221,75,219, -194,145,90,139,48,100,80,114,224,156,234,115,168,23,111,224,0,32,66,244, -12,6,123,79,157,196,91,220,152,215,39,41,150,195,48,223,21,155,172,165, -102,89,225,137,32,74,187,36,3,161,99,240,105,90,19,101,72,204,20,50,250, -33,39,21,43,234,29,205,142,203,218,70,156,113,202,80,125,195,54,98,42,184, -244,163,219,15,155,226,231,199,65,24,203,99,30,94,182,95,26,54,110,149, -45,238,139,138,56,203,55,117,152,4,158,89,240,224,93,8,183,153,121,228, -31,30,149,142,107,253,114,248,100,143,156,56,143,65,36,115,98,118,75,53, -200,131,203,188,83,110,86,247,64,90,106,118,51,165,39,254,58,6,88,142,250, -206,84,0,252,32,170,210,12,235,194,68,20,162,1,128,0,89,32,140,205,190, -43,142,233,179,178,20,99,226,80,96,125,119,24,240,112,216,20,240,131,82, -0,187,205,3,43,122,114,35,18,175,93,35,155,83,29,216,108,42,139,114,205, -163,105,182,102,214,193,212,99,146,156,84,241,19,35,99,242,253,127,61,46, -47,181,98,176,231,199,43,237,138,103,143,205,105,225,218,194,144,148,25, -218,207,30,113,177,33,236,2,84,3,80,30,43,99,40,221,146,140,29,89,51,161, -5,222,244,193,10,53,252,12,0,58,45,167,173,95,99,34,54,236,48,17,232,102, -6,42,60,198,241,15,159,8,204,71,193,183,105,104,243,105,33,42,176,26,239, -206,86,226,213,122,67,0,91,15,150,107,201,104,6,162,105,108,26,209,24,115, -228,151,251,159,148,202,60,222,211,211,242,80,212,50,24,78,45,37,138,24, -148,230,7,48,40,98,55,183,188,134,146,209,89,192,87,218,32,80,231,1,33, -72,109,253,168,164,2,133,218,90,109,64,155,35,109,47,206,13,153,52,2,34, -133,1,70,4,5,51,4,56,207,9,142,198,35,136,54,12,126,36,136,13,7,73,60,172, -228,169,194,203,149,171,176,193,40,223,162,49,132,243,235,131,168,36,1, -203,159,200,20,229,241,23,48,79,134,56,239,110,42,202,129,222,19,82,92, -70,160,92,228,85,155,105,151,45,216,62,40,161,245,69,85,151,203,112,96, -193,75,15,52,192,114,101,124,99,62,148,116,73,134,215,170,240,64,208,42, -124,164,230,185,66,69,0,224,162,150,136,87,215,72,111,63,35,227,208,233, -94,141,225,199,134,95,0,56,220,154,154,182,185,185,52,57,154,115,227,102, -90,166,193,129,245,2,9,188,50,93,237,14,192,139,93,128,159,149,95,31,5, -31,143,113,31,61,222,41,109,61,227,154,117,227,230,77,242,62,204,36,174, -155,192,222,146,124,169,97,25,12,159,121,108,25,57,37,175,227,16,144,215, -178,34,230,21,56,15,160,176,80,232,184,96,43,252,112,235,55,183,129,120, -135,124,117,163,180,180,67,53,106,235,13,129,169,194,210,212,204,193,28, -4,207,255,11,226,51,158,166,245,109,75,18,12,188,162,152,7,72,201,184,41, -31,133,179,111,87,210,97,26,55,11,181,255,248,137,110,128,63,161,47,80, -82,141,114,73,215,190,45,13,242,129,246,31,72,28,26,132,43,154,151,98,216, -250,107,210,237,114,251,216,89,185,41,142,39,154,43,98,80,71,246,255,175, -188,46,64,42,40,63,5,29,23,30,16,130,56,33,64,251,97,8,189,102,195,106, -57,223,90,142,135,63,36,11,5,142,152,4,52,0,157,110,77,4,219,191,85,180, -97,129,63,195,103,72,131,155,186,152,155,83,208,89,158,214,5,12,40,226, -85,240,39,79,245,200,213,174,49,116,3,44,211,24,23,164,169,108,106,150, -159,171,29,145,135,175,63,138,137,91,222,24,78,134,219,120,11,177,245,145, -19,242,187,165,231,81,185,15,79,49,203,65,198,149,50,16,227,43,111,38,16, -242,54,243,0,62,216,20,62,1,86,32,32,9,158,147,181,117,77,117,210,58,182, -22,11,42,176,6,15,147,49,1,240,74,4,70,226,49,13,92,219,226,111,8,99,33, -136,139,50,121,184,197,28,20,111,194,144,13,94,44,155,230,232,185,62,185, -112,125,84,31,237,170,135,253,97,159,10,200,55,108,127,157,124,52,114,65, -222,214,254,152,206,11,184,74,46,27,105,97,54,91,255,246,190,195,242,150, -177,83,178,187,108,229,30,4,105,109,94,145,99,0,108,221,69,121,251,237, -215,111,245,4,193,28,70,149,123,146,170,192,91,177,77,219,229,200,179,24, -185,199,17,232,131,103,82,250,192,91,63,5,208,7,152,224,219,86,175,254, -56,159,70,20,39,51,142,25,56,236,236,138,112,78,230,113,150,239,196,165, -65,57,133,231,248,102,106,151,105,110,52,124,63,96,251,238,215,201,111, -184,39,229,125,45,255,44,169,66,90,10,124,222,160,132,187,49,126,216,199, -67,157,28,128,191,173,255,168,251,80,247,191,230,223,138,125,129,146,139, -32,80,56,207,249,220,175,204,187,0,140,211,84,205,67,198,230,93,0,226,0, -13,128,171,177,36,224,80,142,251,8,55,221,177,67,126,112,172,74,50,163, -16,49,59,105,11,174,5,56,12,172,130,160,185,48,39,67,2,198,211,184,200, -207,146,1,183,150,217,209,97,73,39,214,224,185,61,230,27,192,128,139,29, -99,242,220,133,1,173,199,156,66,69,139,138,162,207,222,190,123,135,124, -162,226,154,252,135,75,127,43,59,7,207,161,100,108,209,130,231,251,108, -221,36,67,248,32,232,5,132,165,10,19,114,79,251,183,228,35,29,7,139,239, -175,44,203,213,199,241,222,224,74,27,116,53,220,80,123,102,58,47,79,225, -37,119,96,216,34,102,36,198,157,158,97,84,245,82,168,234,38,188,252,243, -219,19,42,223,176,161,78,78,85,221,34,143,60,250,156,252,220,251,107,48, -147,199,84,76,75,64,153,10,198,206,20,18,96,186,45,57,130,57,4,146,128, -97,62,25,160,254,199,134,39,36,83,179,65,202,176,92,187,11,203,190,15,159, -237,69,255,143,193,33,162,161,248,121,77,4,31,181,216,176,117,171,124,160, -186,71,246,180,125,67,142,246,172,149,227,53,123,177,247,218,102,25,199, -142,28,14,231,246,112,93,113,148,85,157,29,148,205,195,231,229,142,254, -231,100,159,211,43,183,215,174,74,86,122,146,212,221,189,230,45,105,9,17, -120,201,92,16,194,11,226,117,173,144,41,157,0,110,244,187,110,161,240,107, -113,62,101,225,102,137,168,157,5,221,172,212,53,62,124,96,67,255,155,223, -116,151,252,195,215,207,203,125,247,20,100,245,154,20,250,111,36,177,183, -133,97,144,245,42,73,10,94,45,14,18,193,146,67,53,2,202,65,75,44,14,92, -149,222,124,157,56,169,181,184,215,207,203,161,211,189,50,142,123,126,118, -3,11,158,55,7,184,28,167,84,55,52,200,221,21,149,178,189,191,79,30,232, -125,84,174,247,224,35,4,94,185,140,96,251,96,23,47,143,84,21,198,177,175, -240,176,52,71,243,178,25,115,15,171,227,13,120,99,8,93,26,95,8,249,81,24, -146,25,13,201,200,100,101,10,44,153,0,47,121,103,191,183,199,221,243,251, -145,68,217,111,160,115,95,133,181,128,208,7,168,41,102,233,34,16,154,190, -120,65,240,89,121,8,185,161,185,86,122,118,223,39,127,254,133,31,200,127, -251,116,10,173,20,106,118,10,176,4,221,2,239,219,186,118,192,39,193,148, -48,188,130,215,122,86,58,43,223,137,205,17,98,114,4,131,190,238,33,172, -226,33,248,4,181,84,131,22,198,238,171,22,175,130,215,174,90,37,187,48, -115,149,75,99,124,129,151,72,61,188,62,158,64,61,83,209,6,44,69,67,222, -4,158,27,60,252,40,13,187,0,37,192,202,21,90,50,1,14,221,175,223,240,249, -175,127,255,79,127,126,46,217,215,246,91,185,232,170,187,134,170,182,202, -68,213,102,201,150,175,197,186,249,85,120,0,200,254,17,45,22,149,231,126, -253,187,238,191,93,142,125,169,83,190,244,229,151,228,99,31,107,192,163, -66,80,70,95,18,37,112,4,154,54,192,183,173,222,218,166,115,49,121,33,207, -124,231,69,233,232,197,19,190,173,63,35,167,174,244,201,203,237,99,58,8, -228,92,204,146,12,239,181,129,49,223,91,168,168,168,194,54,245,216,202, -141,219,184,216,77,28,49,119,176,40,130,45,169,82,126,145,36,223,10,154, -146,9,32,195,255,169,214,137,56,127,252,11,7,198,223,149,235,232,107,200, -245,12,73,122,224,159,101,162,213,149,209,108,165,12,197,155,100,168,252, -38,25,197,139,152,99,85,91,64,138,38,41,166,234,229,206,143,60,36,255,248, -183,104,183,101,215,229,23,62,84,7,224,56,203,197,43,11,107,0,146,1,231, -74,10,218,36,133,81,253,238,196,176,12,188,120,72,90,214,124,82,46,13,196, -228,216,69,14,250,144,92,181,201,50,9,137,90,100,250,177,130,194,159,55, -107,212,229,21,247,98,136,19,115,62,24,43,79,124,76,202,234,165,188,118, -181,164,118,71,165,6,35,126,15,143,94,157,177,180,238,138,145,239,63,43, -185,254,167,101,162,43,39,227,217,132,140,96,67,237,81,44,160,220,242,134, -38,57,246,131,22,185,163,250,130,236,121,224,14,204,15,224,62,154,253,125, -24,240,160,255,39,248,188,229,72,96,203,247,97,25,122,234,235,114,33,249, -128,92,78,221,35,79,158,192,118,253,248,106,8,87,244,254,56,90,230,188, -192,45,91,4,18,96,169,234,109,238,202,148,172,1,112,15,184,157,15,10,181, -235,81,0,0,32,0,73,68,65,84,88,92,108,209,142,78,30,0,192,98,75,141,151, -73,188,190,2,199,90,41,219,22,149,106,128,218,72,82,96,19,101,103,24,91, -234,247,99,179,164,161,151,229,157,239,30,198,166,136,125,50,113,165,90, -170,119,227,35,29,252,54,16,65,167,38,208,38,13,27,105,35,49,236,179,3, -245,151,235,184,32,131,199,31,149,11,101,111,145,203,27,126,85,14,159,232, -149,126,172,223,231,58,254,5,15,250,144,251,79,164,161,108,95,105,4,64, -79,9,90,66,248,86,85,107,139,37,24,232,215,85,19,227,71,43,13,32,1,98,180, -10,31,228,168,110,196,154,190,237,82,201,126,31,183,107,14,119,215,230, -4,140,238,225,7,63,59,208,11,6,127,220,34,237,101,25,127,233,168,244,247, -103,228,242,166,95,151,222,230,247,202,115,88,206,117,30,47,104,114,177, -135,223,127,252,68,226,186,176,74,83,158,16,53,133,74,17,173,144,41,89, -3,76,246,217,172,17,128,8,90,175,105,185,122,174,170,25,181,38,81,96,76, -63,6,141,161,0,227,9,30,30,206,168,91,9,19,206,131,105,112,30,77,162,11, -233,146,137,14,168,122,105,144,85,61,71,165,216,127,77,138,173,53,178,222, -91,35,163,82,143,229,32,184,85,211,242,57,15,81,196,97,102,248,181,64,22, -139,188,41,187,98,129,66,52,245,208,176,159,164,31,202,199,180,170,21,171, -245,34,8,0,97,178,245,171,238,15,129,167,154,0,231,216,70,238,6,82,40,33, -224,111,137,161,164,97,62,56,8,184,181,9,168,186,241,48,105,223,195,82, -125,219,131,210,52,134,207,245,244,92,150,108,219,183,100,95,243,152,12, -141,226,117,237,241,106,185,150,91,35,173,238,38,185,238,110,198,189,123, -147,12,123,117,216,214,169,28,27,39,97,220,192,150,131,90,184,227,253,82, -29,197,26,64,221,150,127,165,158,218,173,24,54,190,140,87,50,127,244,220, -165,103,111,1,230,3,30,11,34,108,109,141,4,16,199,20,80,25,102,15,166,181, -233,173,159,111,135,201,65,214,243,245,112,220,150,197,26,214,73,50,222, -34,149,181,155,144,180,74,154,221,132,236,198,87,195,138,88,234,149,27, -60,47,19,3,207,202,192,96,94,186,199,202,228,90,102,181,180,68,54,74,59, -72,145,194,74,160,3,27,15,203,93,183,95,198,116,241,46,145,225,219,144, -167,45,19,213,120,205,168,4,22,73,0,130,200,193,155,5,51,12,108,216,15, -2,87,109,49,205,79,9,2,191,128,40,4,6,231,86,19,104,26,166,197,164,17,94, -27,119,251,158,212,177,131,41,15,227,138,120,133,148,53,214,72,89,243,110, -169,73,176,91,72,202,110,124,153,163,56,60,36,249,193,94,201,12,188,132, -46,163,13,192,163,136,100,153,228,99,248,34,11,182,106,79,12,172,193,86, -235,248,192,20,248,197,215,199,95,35,196,98,52,0,177,84,224,41,69,31,68, -171,254,41,212,160,37,51,34,206,53,110,216,77,63,223,63,0,220,63,215,244, -204,19,119,1,120,117,220,195,130,75,119,240,73,156,99,254,152,43,121,84, -175,99,131,229,220,40,94,40,198,39,252,240,73,97,67,156,20,222,52,175,150, -100,101,61,136,177,67,86,53,188,71,242,216,230,109,236,249,111,32,28,73, -241,192,232,105,204,63,60,34,61,242,178,155,194,203,37,9,217,138,153,196, -155,115,49,217,10,18,110,196,103,69,235,112,199,193,205,38,148,20,44,231, -85,98,22,161,1,144,68,91,40,37,20,6,54,228,182,45,216,130,63,157,24,74, -28,130,142,3,110,182,70,243,8,137,121,224,92,195,49,139,56,116,4,179,113, -88,250,101,193,103,145,106,152,206,63,8,150,195,15,52,224,24,199,23,56, -220,151,37,210,113,82,18,187,223,47,85,219,247,203,196,133,163,242,37,119, -149,252,117,164,70,38,26,48,237,187,46,37,163,9,76,88,37,43,229,18,186, -147,212,4,62,236,128,239,9,38,58,7,101,237,96,78,182,78,184,178,61,29,1, -41,60,225,7,125,116,111,0,42,187,21,158,145,211,203,250,49,252,44,130,0, -6,36,83,87,31,116,11,56,85,58,143,128,24,62,200,150,8,129,63,226,0,64,254, -105,139,11,52,1,192,167,31,134,38,238,248,73,108,187,138,157,184,208,13, -104,203,159,83,56,62,25,88,52,210,83,67,184,173,71,36,217,248,58,185,124, -238,89,57,152,196,35,105,148,157,192,236,227,184,131,47,141,98,106,183, -207,25,151,134,138,85,178,105,211,90,89,189,171,89,242,217,188,156,198, -119,125,30,195,28,197,120,119,159,164,250,198,101,195,184,35,175,155,240, -176,19,136,200,54,108,95,176,19,159,254,73,45,199,246,156,115,94,203,194, -3,125,233,205,47,158,57,178,92,4,1,144,155,246,221,180,9,150,61,8,42,14, -13,99,213,136,6,195,172,63,220,4,218,143,31,177,225,154,134,42,159,105, -25,7,170,31,31,233,244,134,209,250,245,210,152,79,137,6,111,18,121,19,248, -246,78,245,38,25,195,93,73,6,101,218,218,48,75,62,96,25,199,4,213,40,246, -245,189,212,131,213,197,200,62,137,57,139,36,214,10,36,42,226,82,220,84, -35,99,141,113,57,155,43,200,119,249,45,66,188,67,184,14,90,225,243,231, -162,114,31,20,210,92,134,229,80,97,172,180,65,179,224,118,241,45,152,39, -88,82,135,181,8,2,176,104,31,200,27,90,62,1,100,24,197,128,195,182,108, -141,239,251,193,173,112,4,97,244,247,211,48,63,60,47,118,135,159,196,13, -60,250,248,27,84,63,162,46,200,48,63,220,10,22,243,200,14,243,3,20,17,189, -66,134,79,1,249,20,81,171,139,240,34,30,90,21,248,1,7,196,81,145,34,32, -130,199,204,171,123,51,242,94,172,46,127,79,143,200,109,99,8,213,4,161, -140,66,78,238,236,221,15,114,85,128,200,73,100,146,68,183,225,98,222,140, -239,14,146,239,204,123,169,134,210,167,196,114,174,119,54,225,202,95,45, -53,191,69,16,0,197,43,240,44,154,85,129,100,195,68,176,126,22,212,41,118, -168,165,135,227,49,189,106,14,170,126,108,187,154,126,25,121,226,82,151, -34,49,162,200,197,7,11,204,67,249,97,193,69,218,66,215,136,220,215,154, -149,223,197,202,230,59,193,69,48,4,121,33,179,105,68,162,20,212,48,205, -250,117,114,100,116,20,95,59,79,75,164,185,70,250,214,149,67,115,20,101, -235,80,65,214,100,61,188,204,2,77,131,120,36,10,183,75,224,196,232,66,12, -163,197,64,38,94,74,58,38,151,171,51,133,63,111,240,114,7,223,61,190,244, -111,7,46,129,0,172,14,171,70,18,248,68,160,77,33,42,152,22,84,19,135,237, -62,232,22,2,192,67,126,156,26,206,225,179,105,163,79,33,191,101,50,216, -253,123,193,12,176,69,162,254,133,30,172,30,190,146,147,63,234,40,151,198, -28,20,58,190,55,172,151,104,227,204,100,3,216,242,134,90,121,235,27,94, -47,79,31,126,86,14,221,210,40,39,223,115,171,196,241,129,168,178,193,113, -169,236,29,145,198,238,17,217,0,141,178,25,132,216,56,238,226,37,87,79, -202,0,44,54,222,210,207,191,112,87,240,48,41,40,51,238,99,204,13,175,91, -235,146,114,102,247,106,233,184,101,115,172,53,149,216,208,139,151,101, -23,200,237,153,106,27,248,45,142,0,10,52,138,215,126,60,4,190,74,201,158, -19,120,30,118,96,71,114,144,20,198,47,144,168,37,12,110,245,84,245,59,163, -136,135,89,187,240,213,33,9,163,49,165,242,136,69,211,61,167,65,12,93,126, -52,103,164,169,129,232,18,10,195,25,185,227,90,86,254,87,79,149,52,234, -179,138,5,246,232,120,62,225,157,187,32,245,120,50,250,182,119,63,44,101, -79,63,43,215,190,118,76,142,191,125,151,212,97,206,162,14,95,2,203,224, -155,130,88,206,32,47,242,91,131,125,195,82,214,53,40,117,93,163,178,190, -63,39,155,70,28,89,135,37,115,213,14,150,93,99,220,194,213,137,195,88,246, -242,84,93,81,142,31,216,40,206,190,93,178,106,195,58,169,207,23,182,228, -134,135,126,219,27,75,221,30,249,119,251,62,228,125,254,56,245,211,162, -205,226,9,160,16,16,84,192,18,16,193,130,239,219,0,124,178,229,135,195, -252,116,138,38,220,92,144,57,246,60,94,1,167,234,71,149,124,116,185,179, -135,186,115,232,199,241,248,119,212,193,172,63,186,134,154,68,204,172,77, -199,101,115,161,206,140,100,160,103,41,4,96,81,0,188,170,107,92,62,221, -87,41,107,28,246,182,200,188,20,131,50,157,243,23,180,213,223,255,222,119, -138,243,232,33,233,121,236,156,60,183,111,3,214,23,122,216,150,38,46,85, -248,168,100,125,101,149,172,217,184,78,26,118,109,147,9,144,162,5,223,26, -184,52,132,41,239,174,1,137,183,227,11,231,120,175,161,136,217,206,243, -77,149,146,60,112,135,220,186,123,23,214,63,198,164,7,119,41,93,25,204, -141,224,41,107,222,117,223,134,111,55,252,44,170,247,127,75,169,226,244, -184,139,32,0,179,32,152,148,48,219,36,221,254,65,50,168,91,149,23,162,208, -127,210,79,195,52,14,165,237,135,17,240,66,31,84,255,97,196,53,134,3,52, -62,7,207,118,226,91,121,29,227,210,58,30,145,167,242,149,114,164,80,46, -227,80,135,235,18,57,121,125,125,68,30,218,144,148,157,220,111,16,89,177, -139,158,106,80,63,188,70,182,96,131,50,11,163,105,121,79,111,68,238,203, -98,69,80,164,132,180,225,66,112,7,82,108,105,149,232,119,126,32,247,127, -248,125,210,119,240,107,210,179,102,88,174,111,170,215,125,136,6,243,99, -104,252,163,88,205,212,129,245,12,152,149,196,12,101,67,117,181,52,213, -213,73,211,158,237,82,127,160,10,223,185,142,73,255,120,90,222,125,211, -77,178,161,182,86,250,71,70,165,19,91,211,59,96,123,15,62,67,219,134,219, -212,52,186,55,172,184,186,29,69,255,168,9,64,224,120,144,0,180,125,128, -9,172,175,9,180,213,107,216,180,112,219,226,25,102,227,163,255,115,71,158, -0,130,184,201,198,253,63,91,125,97,32,43,3,103,6,176,195,119,149,156,88, -183,71,90,182,172,151,66,69,173,108,66,235,41,231,139,225,216,192,241,135, -248,224,226,87,79,95,149,159,41,79,203,111,236,72,201,150,106,124,19,96, -202,152,143,205,145,43,80,23,102,120,55,85,54,152,149,247,143,85,160,118, -188,166,197,155,8,62,24,81,184,112,89,18,135,143,202,67,31,120,191,156, -251,198,223,203,231,215,84,75,1,192,234,146,122,92,35,165,199,167,164,19, -217,172,140,166,51,114,165,179,91,11,76,224,118,116,3,190,17,252,239,31, -122,80,238,223,177,83,218,250,122,49,6,112,229,90,111,159,60,121,246,188, -116,96,227,13,23,117,213,151,109,34,186,251,198,226,43,138,148,139,208, -0,246,70,132,131,163,73,208,237,156,192,20,240,109,184,181,41,216,240,56, -0,170,223,27,199,102,15,25,236,251,131,94,143,224,231,187,210,114,229,228, -176,124,99,205,205,114,172,105,35,30,253,98,253,64,17,227,2,60,21,140,192, -42,143,149,201,122,124,229,227,192,129,91,100,213,189,7,228,232,233,51, -242,209,19,47,202,111,110,44,202,251,54,225,67,15,200,137,194,213,159,133, -106,0,84,203,193,2,151,173,120,127,225,182,2,215,51,106,14,204,101,209, -134,36,200,61,117,76,234,111,223,43,239,189,253,62,121,246,244,11,114,236, -238,141,18,199,194,217,176,177,183,163,252,40,55,73,232,0,236,150,174,110, -249,253,111,124,75,54,53,212,203,240,196,152,252,227,19,71,228,196,229, -22,201,98,141,162,222,186,50,3,196,245,159,179,135,179,43,217,93,58,1,248, -54,136,109,245,218,202,9,42,14,109,55,176,169,5,194,32,219,184,97,63,141, -143,162,139,216,20,114,244,9,94,8,238,250,208,130,7,139,114,249,204,152, -252,197,198,29,114,2,42,209,203,141,99,42,22,43,99,145,7,175,151,241,210, -232,47,123,177,68,236,84,87,139,108,92,213,40,247,237,217,43,219,240,246, -239,31,252,240,49,105,3,73,62,185,171,82,223,15,96,42,142,1,144,179,153, -95,154,71,52,69,188,81,188,59,29,149,58,109,84,11,215,28,179,102,171,215, -136,97,205,55,191,45,183,252,230,175,203,59,191,252,162,156,25,207,74,182, -2,31,144,68,203,159,205,168,36,49,86,24,196,42,170,199,207,190,36,151,219, -175,203,211,103,206,97,109,77,2,93,6,82,169,32,40,10,220,22,206,158,205, -108,217,223,224,79,29,93,154,113,162,248,44,22,147,241,176,192,83,105,90, -191,73,127,13,39,240,26,207,196,181,105,88,168,59,250,164,246,255,74,24, -12,240,250,206,143,202,223,54,52,203,243,117,53,184,253,225,194,111,196, -134,32,153,210,28,40,5,231,113,244,179,236,63,175,141,244,202,87,207,60, -41,237,185,62,121,199,59,222,38,95,117,214,200,159,190,52,225,199,133,116, -208,79,242,139,91,220,110,122,78,67,176,240,86,241,205,121,182,135,121, -226,206,153,209,180,64,60,132,114,58,123,36,113,226,180,188,121,207,157, -178,243,42,250,113,14,108,23,98,80,167,78,12,250,178,152,156,210,58,225, -114,168,33,236,97,208,95,58,3,136,78,169,134,186,31,105,120,132,129,55, -231,214,223,106,133,224,156,4,161,160,213,134,234,207,94,196,172,6,212, -63,128,228,7,22,11,61,69,57,148,47,151,167,215,172,198,109,16,87,247,204, -111,98,32,2,196,34,199,174,191,44,47,116,95,148,251,126,230,110,57,152, -175,151,127,188,138,237,94,89,156,222,5,204,35,36,4,147,98,49,220,190,53, -234,200,31,89,46,164,240,249,171,103,98,224,218,178,71,158,145,173,205, -205,114,111,47,238,249,209,213,232,157,240,2,210,115,118,210,44,10,229, -53,224,240,45,99,227,100,129,119,168,115,21,85,58,1,248,58,52,103,233,8, -28,91,183,130,10,137,209,77,201,169,77,119,232,176,97,10,62,210,186,120, -241,98,244,113,92,16,71,218,72,131,231,249,125,29,89,121,100,245,26,180, -16,238,65,178,112,67,240,168,17,46,15,116,202,185,190,86,217,125,247,94, -249,203,190,132,156,236,231,90,254,133,169,114,94,2,53,74,233,253,225,2, -234,9,2,20,251,6,36,213,219,47,251,203,241,2,202,8,54,202,86,153,205,159, -150,19,64,28,0,106,107,167,190,159,126,204,159,197,188,49,74,145,181,159, -25,147,80,236,33,128,213,13,41,6,126,190,219,182,120,130,76,18,232,193, -7,53,248,210,86,254,26,206,57,240,131,127,58,46,231,177,123,248,85,124, -180,145,95,241,90,140,33,9,174,13,247,73,111,118,88,170,118,110,147,63, -185,148,195,102,17,216,97,156,85,153,199,176,91,225,183,132,240,96,120, -158,152,139,12,6,136,238,229,171,178,173,126,181,108,192,35,103,93,53,183, -128,172,184,175,129,126,246,142,99,6,30,211,9,80,202,60,199,44,229,17,197, -69,24,38,227,97,65,183,182,239,111,193,14,8,65,85,141,48,125,210,215,129, -145,255,211,134,12,44,153,239,251,141,123,114,14,239,218,103,49,16,92,0, -94,76,53,163,225,120,225,218,80,47,182,167,137,201,233,202,90,249,78,219, -4,54,112,152,49,234,13,158,209,178,132,12,196,124,242,45,55,15,168,5,58, -186,164,49,145,146,155,48,5,188,32,3,65,56,212,0,218,32,88,161,153,8,176, -160,156,230,140,180,64,241,132,243,240,65,14,192,37,176,22,96,212,58,220, -234,21,116,66,202,3,113,160,146,189,241,199,192,102,60,96,103,24,25,141, -219,186,92,6,247,185,41,190,36,178,52,195,82,40,176,158,177,65,73,173,175, -149,47,119,23,229,153,49,188,195,128,178,24,54,155,97,43,227,190,67,173, -101,4,103,185,209,71,150,144,137,51,54,142,87,204,139,210,196,29,211,217, -154,231,53,120,105,93,53,0,234,196,232,148,213,116,18,204,155,199,252,17, -22,209,237,249,4,224,82,25,127,226,71,1,102,171,15,230,249,41,110,198,243, -109,213,8,120,216,51,113,28,247,69,92,228,129,98,85,6,124,57,179,12,35, -221,180,12,224,54,135,31,151,90,170,161,22,200,230,49,75,150,140,202,203, -88,126,142,207,253,8,182,18,152,221,160,138,236,103,147,229,101,114,25, -239,125,143,225,186,170,103,143,189,232,16,15,224,71,211,105,44,61,195, -24,71,175,115,46,74,154,98,56,39,160,159,190,101,124,43,27,43,34,218,30, -246,168,89,162,33,74,139,48,22,224,16,200,1,248,240,35,224,74,0,107,163, -245,59,35,32,192,33,248,79,157,8,1,82,122,175,158,227,88,96,185,12,170, -151,193,90,128,72,93,25,166,186,230,110,253,44,146,183,86,220,84,178,187, -177,12,219,191,47,114,10,120,206,186,43,203,112,253,105,124,120,117,254, -250,216,172,116,16,104,193,167,214,224,97,207,105,187,11,157,233,178,57, -222,104,47,66,234,84,26,76,70,18,88,34,192,14,250,125,235,135,56,234,103, -206,189,9,244,251,5,124,101,83,239,238,97,89,131,56,220,181,67,123,14,235, -183,68,155,37,114,162,36,82,133,21,62,91,106,81,15,250,204,109,242,120, -29,220,89,187,74,158,172,196,10,32,200,118,69,12,23,156,64,44,156,216,90, -136,113,130,46,96,26,240,150,4,11,201,100,158,56,139,32,0,147,132,14,10, -55,104,241,188,48,63,76,133,206,115,168,254,194,53,241,210,24,249,107,24, -172,192,224,194,208,29,36,240,173,222,74,168,187,101,151,59,38,93,162,213, -208,2,243,200,219,116,27,121,41,175,169,148,71,214,120,50,20,165,150,154, -39,81,112,13,11,113,0,114,104,56,7,79,172,70,146,232,219,23,40,245,169, -183,129,40,135,2,178,224,27,13,176,144,194,231,140,179,192,170,76,207,195, -130,236,219,129,70,192,185,146,129,194,243,15,14,252,210,135,80,113,172, -170,212,176,169,121,113,125,94,57,222,201,111,196,6,19,203,78,0,22,69,65, -45,192,20,49,249,84,64,29,58,111,170,149,239,86,225,193,252,194,146,45, -32,103,63,10,8,144,195,196,78,71,37,230,252,23,160,145,40,62,29,3,168,218, -71,30,1,240,116,251,135,159,245,82,172,69,16,128,73,8,110,24,124,235,14, -1,207,90,225,238,192,203,227,65,79,246,44,78,102,26,111,34,190,155,145, -100,77,157,220,180,192,73,27,102,187,18,134,61,243,24,62,27,159,90,91,43, -95,218,20,145,158,152,63,5,187,76,133,113,135,178,97,140,118,184,178,135, -91,203,234,83,65,18,97,14,162,177,11,240,248,240,40,0,31,145,225,103,14, -184,161,53,151,106,22,73,128,48,224,116,227,66,166,116,3,172,22,252,57, -227,199,129,159,206,248,205,80,85,164,241,138,120,224,83,181,74,176,205, -0,150,71,173,144,22,152,161,232,153,188,10,24,7,100,177,100,188,119,231, -106,249,220,90,142,5,230,64,103,166,12,102,241,211,119,21,241,134,210,21, -76,74,92,111,72,73,25,26,70,28,51,170,250,76,3,154,97,230,97,33,186,10, -180,126,30,83,9,128,66,88,173,101,170,27,209,43,209,48,9,15,182,118,216, -55,0,111,179,67,235,207,190,128,129,95,43,162,205,212,250,253,120,69,60, -91,194,46,67,219,241,49,136,38,60,233,91,216,83,0,91,198,242,218,28,11, -140,164,177,197,236,170,114,249,214,222,26,249,122,29,238,8,166,221,180, -44,170,68,140,69,210,137,50,121,162,169,76,50,21,120,69,141,4,192,228,144, -57,240,254,35,220,252,28,31,203,15,27,157,8,210,86,62,157,4,254,249,210, -21,128,34,25,46,115,129,238,233,45,126,106,197,149,20,216,204,217,75,31, -158,63,63,142,116,11,61,178,102,253,86,57,144,25,91,22,121,207,95,232,236, -49,216,176,6,198,177,213,236,198,6,249,236,173,41,121,178,6,36,8,175,212, -156,61,233,140,33,220,39,201,193,12,224,75,117,229,114,120,27,94,95,67, -131,81,224,49,117,77,13,16,28,32,1,247,61,208,174,193,207,233,134,137,160, -41,93,1,213,192,210,25,192,166,92,154,65,37,205,173,28,109,2,63,13,124, -205,13,170,61,131,81,191,131,197,244,58,75,168,158,51,255,176,27,152,104, -149,216,186,205,242,32,222,230,108,40,224,107,99,51,230,57,115,242,149, -240,45,96,37,209,8,118,10,43,236,104,146,79,223,81,33,143,212,67,13,224, -105,225,92,253,245,76,245,208,175,166,227,182,183,191,170,202,57,120,91, -131,55,80,91,30,82,255,166,11,136,67,158,1,9,72,8,95,27,48,63,163,1,252, -214,62,29,124,158,47,131,41,157,0,129,250,159,13,124,76,250,20,187,160, -254,143,205,15,190,94,0,242,41,96,120,228,246,201,174,173,119,202,91,71, -6,116,137,244,242,92,30,10,152,166,86,23,34,51,62,25,44,96,196,158,198, -100,82,102,247,6,249,244,189,181,242,185,77,152,92,226,140,247,2,136,192, -37,51,101,136,87,0,160,143,222,84,39,127,112,127,83,230,232,142,122,175, -28,147,0,9,248,241,176,90,32,225,143,5,44,9,248,136,155,110,118,9,92,250, -197,253,10,167,142,1,66,132,88,134,65,224,28,157,243,108,162,178,45,127, -182,112,84,58,251,20,180,211,16,34,96,121,247,66,12,64,242,134,142,75,242, -230,127,35,31,184,114,74,158,195,94,125,109,229,85,152,53,91,26,13,60,128, -224,166,49,35,136,85,56,11,53,252,50,186,30,32,58,159,199,231,64,199,212, -182,102,249,223,213,41,121,250,124,175,124,252,194,132,220,135,233,229, -100,30,117,11,110,209,144,59,234,10,93,38,81,248,241,179,200,71,154,202, -229,239,246,54,200,241,189,27,164,184,118,109,85,28,221,8,183,125,117,144, -63,183,166,229,192,144,154,46,130,169,103,51,49,132,134,160,151,107,108, -146,128,77,140,36,96,222,156,173,156,98,88,252,20,143,197,157,44,130,0, -115,20,132,73,29,175,112,29,239,45,157,48,173,127,90,157,103,79,9,209,229, -176,248,17,107,3,183,221,253,115,242,177,199,190,40,191,143,126,51,71,117, -184,224,60,166,229,14,16,156,161,140,228,174,141,73,249,45,120,24,192,149, -56,115,229,133,96,62,226,102,235,215,63,223,166,220,57,75,152,90,211,40, -167,86,85,203,39,55,247,203,222,214,33,185,255,218,132,220,217,147,145, -245,120,93,172,28,47,143,20,147,113,25,192,243,135,51,141,41,121,100,203, -42,57,182,181,81,220,245,77,82,129,193,45,95,17,243,160,22,28,172,233,226, -18,55,46,83,35,81,248,80,93,73,160,46,156,249,245,99,153,49,188,82,198, -26,113,70,83,235,61,3,1,160,30,166,93,116,233,167,203,75,0,222,183,102, -143,128,154,124,218,183,192,214,111,235,12,85,232,246,61,37,177,205,191, -34,15,238,121,163,180,227,83,243,127,179,126,139,46,158,96,107,41,217,176, -245,99,73,249,90,180,58,214,102,174,193,60,224,81,8,168,118,49,20,3,1,0, -144,106,2,18,208,12,204,120,59,150,74,85,72,100,243,102,57,187,110,173, -188,184,107,76,18,35,227,82,53,158,145,20,214,19,22,65,176,113,60,80,202, -96,54,49,81,93,43,213,149,171,176,198,0,13,66,1,55,4,32,232,4,31,251,169, -226,160,139,148,195,146,53,62,71,209,206,152,53,129,193,185,11,230,83,3, -104,203,231,245,235,179,22,6,210,248,164,48,39,75,250,93,70,2,224,98,139, -45,104,46,167,75,108,253,182,254,184,92,60,219,112,218,191,41,169,93,63, -47,63,63,214,39,217,43,47,201,255,91,183,89,242,80,135,124,125,106,161, -134,43,110,70,241,221,128,119,196,241,248,21,87,120,80,211,82,156,51,27, -5,2,128,79,182,126,44,17,11,107,2,235,38,96,32,73,13,102,46,35,120,181, -220,91,135,42,3,224,12,128,37,144,85,32,113,13,226,50,63,18,70,215,239, -177,47,199,31,171,64,219,192,14,112,81,71,186,217,202,13,234,4,27,135,175, -169,88,190,178,130,141,92,3,194,215,207,136,240,127,101,105,0,92,100,238, -40,42,134,215,158,74,109,253,72,161,134,23,157,31,196,226,137,127,194,38, -81,239,146,95,133,16,27,46,158,145,47,173,221,36,189,88,47,16,199,155,59, -80,138,54,246,13,54,239,214,176,179,144,196,240,186,213,253,163,35,242, -59,123,171,229,171,231,39,32,232,153,141,205,41,220,239,179,253,219,115, -213,6,22,124,107,107,184,105,187,140,199,42,179,29,243,87,41,70,108,112, -160,247,210,9,59,246,225,252,214,128,78,234,32,6,201,201,107,224,166,24, -142,109,213,76,67,95,181,253,244,81,83,107,93,16,114,3,1,80,28,226,206, -122,97,51,95,238,140,190,203,163,1,56,229,139,7,62,82,56,131,66,56,84,94, -130,225,109,99,166,19,36,248,103,169,190,227,1,249,48,212,233,182,23,159, -146,175,148,85,203,115,181,141,50,166,171,134,216,130,76,25,148,33,213, -59,251,210,74,140,218,247,247,246,202,123,178,35,242,192,62,108,23,147, -192,187,254,179,161,239,87,145,237,149,64,178,197,89,240,3,27,126,225,241, -0,55,186,182,241,233,111,104,192,138,24,183,37,0,213,53,241,161,66,167, -22,208,209,60,220,252,66,137,131,81,189,18,0,108,213,125,138,52,158,31, -159,100,33,9,144,145,11,173,103,180,3,61,252,3,62,129,97,1,203,192,128, -69,16,192,210,54,168,138,58,188,60,110,251,60,246,182,11,31,113,79,205, -33,116,198,139,207,246,138,211,241,45,73,108,220,47,7,26,223,39,219,79, -61,43,39,59,175,202,211,156,84,41,95,37,125,9,108,217,207,214,4,128,107, -240,194,196,238,244,152,220,159,25,149,59,43,19,210,184,109,13,182,26,196, -27,68,233,185,122,126,21,111,208,218,3,160,195,160,35,127,235,31,83,240, -113,22,14,87,10,88,26,208,6,114,10,140,143,25,79,73,0,246,253,168,40,109, -198,97,255,111,74,183,192,35,30,148,136,197,89,211,160,235,160,97,154,32, -64,125,252,31,150,51,15,185,195,209,103,115,151,76,0,76,91,76,91,106,11, -176,138,184,47,202,159,66,25,100,237,50,25,106,2,39,35,110,231,147,18,169, -220,32,245,251,238,144,55,143,238,148,3,215,219,100,184,183,91,6,134,250, -177,148,223,65,203,141,72,13,132,85,95,153,146,138,13,235,241,133,48,104, -35,14,188,40,205,121,140,66,70,144,21,104,99,51,63,171,17,168,19,116,44, -0,208,141,86,48,26,192,250,25,122,48,23,171,1,166,17,64,177,35,248,36,129, -25,11,104,153,74,3,19,215,227,166,217,22,99,186,1,184,222,49,240,250,125, -255,32,66,248,122,150,1,124,102,87,50,1,192,222,115,81,44,108,224,32,198, -200,24,118,1,115,254,30,223,82,46,113,228,31,190,160,25,221,104,5,44,103, -188,29,79,147,59,177,120,168,78,42,54,243,104,192,115,3,60,102,198,210, -47,209,173,220,57,93,139,135,55,208,4,188,215,54,6,2,158,199,240,26,180, -69,195,86,16,217,186,213,207,64,107,194,166,147,192,116,23,86,51,152,148, -33,2,104,153,6,92,182,222,41,93,0,74,49,198,183,3,224,217,200,77,92,18, -130,228,141,97,12,192,188,41,100,189,11,50,194,158,188,34,164,93,14,21, -80,50,1,98,201,186,199,188,220,208,163,82,86,254,32,62,31,163,47,117,186, -133,147,168,140,81,89,147,53,92,70,23,128,209,126,21,159,111,241,210,131, -126,89,104,33,92,89,193,199,163,196,156,61,147,246,78,86,200,115,149,79, -85,140,26,171,58,183,96,147,12,16,185,146,192,16,65,91,61,59,1,248,177, -11,224,57,91,63,227,76,118,9,38,61,253,108,159,110,250,110,86,199,128,201, -59,5,78,247,152,81,63,235,133,58,19,64,84,95,7,137,36,2,129,7,97,248,230, -29,191,133,196,9,35,70,209,15,70,16,252,153,8,176,12,90,96,17,168,221,63, -158,243,138,31,119,178,153,207,227,41,239,5,55,123,46,19,139,245,73,44, -5,1,225,235,96,126,215,197,171,92,126,3,161,4,43,144,85,40,190,32,21,206, -133,0,111,171,68,160,167,30,166,181,27,176,217,158,77,11,231,245,224,176, -90,1,23,199,207,213,42,25,72,2,222,158,218,3,254,58,157,139,225,191,157, -214,181,182,78,253,250,241,38,31,3,131,78,54,47,228,171,36,243,109,67,56, -146,27,255,4,89,153,64,219,39,66,96,47,225,41,149,47,138,146,53,0,211,165, -82,31,188,6,235,215,5,143,73,178,35,103,182,151,57,238,62,76,110,220,135, -39,95,119,70,221,232,166,88,18,31,221,33,40,208,204,88,100,131,149,173, -126,105,175,32,139,234,149,148,9,136,160,231,198,87,91,51,91,52,14,3,190, -79,12,130,238,31,6,60,165,137,250,105,92,230,1,45,100,135,201,4,79,159, -232,105,73,68,209,144,84,27,51,241,133,131,26,128,159,217,97,190,28,40, -114,12,194,91,69,18,143,41,204,155,65,150,232,33,1,42,41,204,103,184,66, -190,37,59,23,69,128,201,82,222,62,88,190,246,237,207,226,252,89,92,207, -95,142,117,237,104,140,59,206,142,120,54,126,55,168,123,15,196,113,59,4, -178,25,132,40,211,171,41,226,162,176,83,198,143,147,16,148,27,141,66,13, -161,27,200,73,4,67,134,160,181,219,86,63,197,158,36,132,37,2,109,115,123, -104,194,152,159,2,141,130,204,224,47,116,239,175,97,236,235,73,12,163,234, -245,238,64,243,224,87,207,72,58,116,20,40,147,135,118,15,170,6,144,165, -173,56,43,79,99,50,193,218,181,165,153,37,18,96,106,225,213,235,47,244, -195,135,7,150,0,203,159,202,197,29,141,89,241,118,161,75,123,189,231,70, -239,193,21,129,16,178,65,9,65,237,5,205,192,197,66,188,211,249,81,27,21, -50,10,53,68,48,52,80,232,84,248,10,161,31,70,80,66,221,128,130,101,90,168, -142,17,168,218,117,156,64,149,78,141,64,131,156,124,144,217,239,59,184, -199,227,186,0,26,15,175,159,83,67,144,28,30,6,122,208,152,72,199,121,13, -3,190,230,1,18,224,204,16,128,194,33,216,60,2,22,152,252,53,195,37,254, -44,43,1,110,168,203,246,11,253,232,11,142,192,159,135,200,233,109,107,138, -241,178,29,110,198,57,128,201,214,123,113,61,183,65,244,205,32,68,82,165, -130,27,76,190,238,182,210,132,32,220,1,196,112,90,248,13,41,252,51,191, -21,242,140,176,26,128,44,17,232,67,224,194,93,2,207,73,5,198,183,234,27, -218,142,45,26,131,64,110,48,202,233,108,206,241,71,113,174,3,78,198,245, -201,165,36,195,121,80,7,37,68,8,124,37,128,74,17,63,244,135,101,56,101, -61,23,101,175,44,1,166,87,233,214,203,189,40,176,23,222,134,16,207,239, -93,87,76,200,78,60,113,221,15,117,119,0,221,197,109,248,184,195,198,120, -18,143,21,121,113,232,50,72,134,229,38,4,100,14,65,155,195,18,1,178,167, -248,253,26,251,36,192,153,2,226,135,89,95,181,45,65,20,64,159,8,28,196, -41,49,64,0,52,115,142,253,129,181,22,49,57,202,167,138,39,161,56,226,71, -78,246,208,10,240,124,178,76,173,17,129,14,52,128,95,61,90,244,55,63,116, -44,218,252,104,9,48,189,154,119,159,237,70,5,186,225,253,4,85,103,250,133, -125,235,147,94,97,119,49,235,236,199,197,31,64,183,113,43,72,209,28,79, -242,81,33,34,64,59,224,33,159,209,134,211,243,90,224,185,133,216,70,231, -185,109,117,244,179,32,27,60,120,102,125,25,230,199,133,131,173,60,0,79, -65,164,6,48,15,145,56,46,48,4,224,172,159,33,48,117,66,148,218,64,211,49, -31,205,204,228,105,243,133,109,74,81,135,137,67,231,12,4,80,133,176,12, -131,235,31,47,1,204,117,6,191,21,119,29,239,194,9,143,199,232,153,126,250, -206,166,100,212,219,149,207,57,247,98,43,247,123,32,212,189,176,155,64, -8,188,241,9,38,64,67,56,96,132,54,6,38,152,193,24,0,167,7,88,152,17,106, -35,132,156,129,31,147,33,115,5,75,179,48,145,9,188,137,51,153,143,241,34, -9,120,96,49,7,60,12,248,190,186,215,164,126,124,132,153,63,100,202,132, -106,56,14,8,178,245,253,88,60,7,141,51,176,94,47,122,174,43,15,178,152, -211,241,138,34,192,244,154,86,220,119,130,239,146,241,0,33,34,145,204,19, -251,155,19,110,113,119,209,117,15,64,42,24,71,68,111,129,124,72,8,222,67, -169,122,8,107,8,109,145,122,31,111,230,138,166,231,191,60,231,83,65,48, -116,244,127,253,32,115,198,210,166,198,157,44,223,146,96,210,199,184,224, -207,36,51,17,128,26,145,199,18,205,43,154,0,83,175,205,243,202,239,151, -118,248,241,248,1,9,145,253,225,93,27,19,110,100,79,177,16,57,128,230,6, -66,68,118,99,48,105,8,1,37,221,213,151,25,158,24,205,127,31,138,247,205, -56,93,59,41,48,66,98,254,84,192,232,143,105,235,253,187,98,97,128,210,95, -139,129,86,6,105,24,15,63,54,134,158,115,68,15,7,7,124,81,16,177,8,155, -70,231,0,48,250,215,248,126,26,45,85,221,147,121,104,225,136,175,121,49, -161,201,220,56,232,214,128,192,147,49,124,51,147,159,13,91,152,253,19,68, -128,233,23,228,121,169,7,228,26,124,121,124,79,126,47,18,205,222,117,215, -134,136,91,118,11,54,84,188,23,183,86,241,116,177,248,245,255,249,87,23, -159,255,250,255,121,240,127,96,33,199,239,122,216,0,194,165,138,32,62,97, -96,225,197,105,91,26,11,174,158,249,192,154,48,133,14,216,224,143,0,50, -204,255,227,253,58,135,124,17,5,31,89,243,150,143,197,192,159,19,57,250, -146,39,211,240,220,166,247,207,97,153,252,232,80,195,92,53,185,218,234, -210,72,126,176,239,171,103,175,46,13,96,5,48,139,253,25,15,31,131,9,8,241, -29,198,218,238,71,45,79,69,255,32,157,45,84,96,232,246,17,200,111,93,36, -129,46,67,135,113,136,64,32,40,84,254,7,160,242,20,127,12,35,81,252,56, -234,7,127,222,195,19,100,189,91,7,192,58,24,228,40,22,145,13,89,12,187, -2,2,32,142,139,41,81,106,4,251,164,82,243,68,190,26,199,148,166,110,250, -107,157,88,38,221,28,235,248,126,230,114,112,30,152,165,51,224,39,88,3, -4,82,152,215,113,234,151,30,225,50,165,255,188,245,11,15,254,25,238,201, -247,120,121,231,0,150,94,237,199,74,157,61,128,4,243,16,92,135,133,127, -95,45,232,3,24,184,45,224,106,171,54,0,22,252,35,56,248,35,5,152,138,233, -216,232,241,120,42,240,161,31,31,238,104,55,64,45,160,7,86,5,147,56,193, -97,194,45,25,52,79,228,77,45,161,255,126,57,116,43,9,88,212,50,155,87,5, -1,172,204,174,124,226,209,160,203,136,160,203,216,179,254,129,13,145,104, -108,175,91,44,98,80,25,59,128,81,248,110,12,226,155,98,73,60,213,130,134, -224,173,156,1,154,64,113,148,78,192,241,167,141,48,68,24,56,173,246,176, -132,32,104,218,186,9,168,37,0,128,215,55,126,105,211,31,54,193,15,226,193, -109,201,64,18,240,79,129,135,191,218,122,33,90,184,185,164,165,43,128,210, -215,3,88,97,254,164,219,30,186,12,92,131,37,196,119,35,31,250,80,236,174, -7,164,25,176,239,117,169,33,34,222,129,120,36,182,27,19,54,33,66,24,80, -217,223,83,221,155,219,65,3,26,187,5,243,0,151,109,31,196,81,204,252,48, -75,0,216,236,10,204,107,223,166,75,160,70,184,81,43,216,116,198,14,72,16, -22,186,97,90,216,103,81,238,87,149,6,152,75,66,222,193,131,188,109,159, -36,196,215,62,20,10,97,194,206,0,0,2,85,73,68,65,84,123,67,182,188,57,226, -120,123,157,92,254,128,27,137,239,143,67,105,160,219,104,138,38,147,28, -5,104,203,213,22,140,150,202,215,192,84,117,35,19,106,8,182,83,174,238, -9,90,119,136,4,218,29,16,120,223,79,215,11,48,174,18,100,178,139,176,218, -96,70,2,144,190,193,170,82,184,23,105,94,35,192,44,130,243,62,56,149,16, -31,130,134,24,250,217,186,102,44,126,223,27,1,33,162,209,216,126,60,205, -217,131,89,191,245,241,100,130,75,254,137,56,30,127,91,244,113,74,82,216, -195,7,152,139,66,49,143,49,9,62,210,176,43,176,119,10,26,31,113,245,189, -64,213,52,204,120,54,19,193,171,213,75,51,88,109,52,87,1,75,203,252,167, -57,245,135,160,33,178,217,166,102,116,5,123,48,45,249,122,108,1,179,31, -95,66,219,139,107,110,194,39,111,117,166,82,65,196,18,53,238,244,53,9,44, -186,0,156,27,18,128,12,8,47,242,92,109,115,206,247,18,249,130,42,53,196, -208,133,151,37,221,217,142,229,231,188,205,240,13,156,232,73,176,225,98, -241,65,239,153,220,121,235,189,24,251,53,2,44,70,106,51,164,225,160,242, -125,205,159,108,114,98,209,61,8,222,15,13,141,129,165,236,69,235,110,226, -178,33,206,63,240,131,15,4,154,123,5,89,245,175,192,3,104,245,87,224,9, -62,227,225,109,35,104,130,145,139,47,99,149,124,135,33,0,251,125,51,44, -120,4,140,250,61,239,217,52,215,98,44,201,188,70,128,37,137,111,246,196, -28,34,62,252,215,159,108,246,138,5,140,27,34,251,1,230,1,244,241,123,161, -234,155,16,20,163,6,40,130,8,69,188,119,24,110,253,147,218,128,4,192,103, -114,46,93,148,108,55,22,196,98,27,59,244,20,103,240,243,89,41,203,30,244, -14,45,125,53,16,107,255,26,1,102,199,112,89,67,72,136,251,255,226,227,205, -57,215,217,131,209,158,18,194,113,139,123,65,140,38,76,32,198,72,2,110, -81,163,132,32,49,216,45,64,207,143,95,188,32,185,238,158,94,172,17,251, -28,110,77,255,202,123,122,140,143,211,151,205,188,70,128,101,19,101,105, -25,145,16,183,254,225,251,154,157,98,100,15,122,135,253,0,252,0,52,2,8, -225,54,97,167,36,213,16,185,209,241,236,196,133,151,15,58,67,35,159,245, -142,231,248,218,213,178,155,215,8,176,236,34,93,92,134,36,196,134,223,125, -87,147,83,44,238,197,39,97,95,143,238,162,54,55,58,248,200,196,23,94,120, -20,3,245,21,27,169,191,70,128,197,225,245,83,147,234,255,3,213,255,144, -162,166,47,238,11,0,0,0,0,73,69,78,68,174,66,96,130}; - -static size_t xml_res_size_1 = 206; -static unsigned char xml_res_file_1[] = { -60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, -110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, -115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, -47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, -47,119,120,120,114,99,34,32,118,101,114,115,105,111,110,61,34,50,46,51, -46,48,46,49,34,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, -61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,112,108, -117,103,105,110,34,62,103,105,122,109,111,115,95,103,105,122,109,111,115, -95,98,105,116,109,97,112,115,46,99,112,112,36,112,108,117,103,105,110,46, -112,110,103,60,47,111,98,106,101,99,116,62,10,60,47,114,101,115,111,117, -114,99,101,62,10}; - -void wxC8028InitBitmapResources() -{ - - // Check for memory FS. If not present, load the handler: - { - wxMemoryFSHandler::AddFile(wxT("XRC_resource/dummy_file"), wxT("dummy one")); - wxFileSystem fsys; - wxFSFile *f = fsys.OpenFile(wxT("memory:XRC_resource/dummy_file")); - wxMemoryFSHandler::RemoveFile(wxT("XRC_resource/dummy_file")); - if (f) delete f; - else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase); - } - - XRC_ADD_FILE(wxT("XRC_resource/gizmos_gizmos_bitmaps.cpp$plugin.png"), xml_res_file_0, xml_res_size_0, wxT("image/x-apple-ios-png")); - XRC_ADD_FILE(wxT("XRC_resource/gizmos_gizmos_bitmaps.cpp$_home_eran_devl_codelite_Gizmos_gizmos_gizmos_bitmaps.xrc"), xml_res_file_1, xml_res_size_1, wxT("text/xml")); - wxXmlResource::Get()->Load(wxT("memory:XRC_resource/gizmos_gizmos_bitmaps.cpp$_home_eran_devl_codelite_Gizmos_gizmos_gizmos_bitmaps.xrc")); -} +// +// This file was automatically generated by wxrc, do not edit by hand. +// + +#include + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +#include +#include +#include +#include + +#if wxCHECK_VERSION(2,8,5) && wxABI_VERSION >= 20805 + #define XRC_ADD_FILE(name, data, size, mime) \ + wxMemoryFSHandler::AddFileWithMimeType(name, data, size, mime) +#else + #define XRC_ADD_FILE(name, data, size, mime) \ + wxMemoryFSHandler::AddFile(name, data, size) +#endif + +static size_t xml_res_size_0 = 17062; +static unsigned char xml_res_file_0[] = { +137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,128,0,0,0,128,8,6,0, +0,0,195,62,97,203,0,0,32,0,73,68,65,84,120,1,237,125,7,144,29,199,121,230, +255,226,190,77,216,136,180,139,64,16,16,50,51,40,128,164,44,81,18,41,145, +146,44,89,89,231,168,147,101,157,125,87,58,235,234,92,118,157,202,87,58, +223,85,157,125,182,236,114,58,185,164,179,101,75,62,251,36,40,216,178,149, +40,138,4,9,144,32,65,130,32,34,65,196,221,5,54,231,248,242,204,220,247, +253,61,61,59,187,216,244,54,72,148,200,222,157,215,61,157,231,255,190,254, +187,167,167,167,39,226,121,158,188,102,94,189,18,136,175,196,165,223,246, +217,211,149,233,178,194,186,68,62,90,44,36,243,67,151,62,185,127,116,37, +202,121,45,207,165,75,32,178,28,26,160,249,11,47,84,212,229,202,111,242, +196,185,3,10,229,158,136,184,175,151,72,108,147,120,174,35,142,219,7,191, +14,113,157,86,41,58,215,34,110,164,197,117,188,235,110,34,218,83,145,139, +15,158,148,111,141,122,159,249,140,187,244,75,121,45,135,197,72,96,81,4, +136,136,68,118,124,241,194,118,201,59,251,162,5,231,30,100,114,55,188,182, +69,162,209,122,137,65,169,176,91,1,246,226,194,246,16,155,134,110,23,56, +23,10,226,57,197,108,196,149,17,207,117,251,34,174,219,5,146,180,185,158, +215,26,41,186,173,158,227,94,151,104,188,203,139,23,6,215,149,197,70,14, +125,230,254,162,201,224,181,223,149,144,64,201,4,120,243,19,18,239,238, +110,253,239,145,104,236,215,0,92,35,90,180,160,101,43,176,106,19,100,18, +192,129,77,183,99,221,36,131,39,40,16,254,160,11,175,6,78,97,122,245,243, +196,43,22,16,223,201,35,221,8,210,13,192,238,6,113,90,97,95,67,156,22,201, +123,215,160,93,186,162,241,252,128,51,80,28,62,123,240,131,249,149,16,202, +171,41,207,146,9,176,227,171,87,239,142,69,162,71,34,209,68,153,87,64,227, +180,45,29,45,220,128,75,128,93,65,203,150,8,192,215,3,113,34,32,4,90,55, +200,226,138,139,195,227,97,73,162,154,130,233,152,135,17,63,52,4,76,4,249, +24,127,113,138,226,21,10,14,226,140,120,158,59,8,18,117,131,100,232,82, +220,86,215,65,215,226,68,90,29,207,237,140,56,185,254,204,96,113,168,229, +208,71,179,175,38,32,23,123,173,37,19,96,247,87,218,222,43,241,248,55,9, +136,182,110,207,111,229,65,235,38,248,158,68,129,27,9,193,131,35,205,56, +144,141,71,34,146,64,179,215,48,196,241,28,12,17,10,174,56,249,162,20,114, +56,242,142,20,225,118,136,51,8,66,34,41,41,148,24,150,28,32,5,73,66,130, +248,154,3,90,3,60,44,184,32,219,40,72,53,28,245,60,106,142,235,112,183, +69,60,167,213,203,123,109,110,76,58,242,153,124,223,229,243,195,67,94,247, +111,77,44,86,96,63,109,233,22,73,128,24,8,0,181,79,245,62,141,0,209,0,44, +3,126,248,60,10,233,1,28,137,65,235,39,120,68,35,82,22,199,1,59,9,79,56, +65,30,96,139,46,133,68,200,101,139,146,73,23,36,51,145,151,108,166,32,121, +28,5,248,187,32,13,198,15,134,28,74,50,159,108,204,95,137,1,7,9,136,186, +64,59,128,96,121,106,155,177,84,60,58,92,187,170,172,175,44,30,187,216, +59,48,254,185,23,190,255,209,35,1,160,95,252,98,181,72,191,200,199,126, +123,44,240,123,21,56,74,39,192,215,174,127,88,34,209,175,76,215,0,108,233, +81,72,157,66,87,55,129,81,183,1,61,18,10,99,56,91,113,4,228,161,59,6,65, +147,40,113,16,33,1,150,164,240,147,74,196,164,34,25,147,242,100,20,36,137, +34,142,25,43,80,83,228,64,132,241,209,172,140,143,229,100,108,36,43,19, +176,51,233,188,20,64,24,7,221,146,199,174,7,249,186,232,98,152,215,250, +198,74,217,180,190,90,106,170,83,146,201,186,210,219,151,145,190,206,190, +206,119,55,101,62,254,169,59,10,245,18,77,188,69,162,145,59,49,96,101,194, +14,84,181,13,85,106,3,203,112,231,82,104,151,76,161,7,231,131,242,169,79, +141,192,166,254,249,169,49,144,83,105,215,179,235,96,235,175,68,99,201, +191,51,3,54,164,101,95,239,3,202,214,205,131,253,191,33,131,105,153,244, +163,216,162,62,224,4,95,227,49,46,2,108,151,48,73,18,200,87,243,98,62,2, +141,65,98,64,83,64,109,84,150,37,164,34,21,147,234,242,56,236,56,8,18,87, +2,17,236,92,182,160,100,24,232,159,144,254,206,17,217,217,92,45,123,182, +53,72,101,101,82,134,65,146,225,158,97,241,6,134,100,77,113,68,182,165, +114,178,115,85,49,91,149,138,164,244,206,133,26,133,6,101,233,193,58,83, +203,229,114,25,41,32,65,62,223,143,59,152,78,16,162,21,238,107,146,47,94, +69,88,187,56,233,110,153,168,24,144,209,246,17,57,120,16,9,126,178,204, +146,9,192,86,108,251,251,0,124,2,27,128,108,91,186,177,109,92,37,13,193, +135,220,9,114,56,31,64,224,147,202,132,147,24,134,16,198,86,55,210,197, +224,31,83,98,68,65,132,152,84,85,36,165,170,50,33,181,213,101,114,243,166, +90,217,187,166,92,156,137,156,244,93,235,149,134,150,243,210,152,25,148, +154,72,94,18,113,86,14,165,70,168,123,124,67,224,105,8,188,53,116,23,49, +214,225,96,151,54,239,82,232,46,224,230,35,151,195,129,190,165,80,24,193, +209,15,119,183,146,163,144,111,67,120,155,228,138,109,146,205,118,33,171, +65,25,0,235,142,31,71,226,87,158,89,244,76,160,130,196,198,194,63,2,14, +183,130,11,7,195,84,3,248,97,192,72,253,52,46,64,51,225,76,135,120,170, +117,25,31,113,252,120,38,31,156,99,14,33,130,19,61,103,94,8,55,100,137, +0,63,146,140,57,242,14,148,99,6,71,198,208,202,57,104,228,209,218,58,36, +177,55,109,145,196,224,152,236,110,57,35,27,199,59,84,11,105,120,38,220, +218,89,89,228,26,195,65,91,15,86,4,110,18,64,199,26,28,239,248,68,192,60, +134,146,192,104,140,36,42,176,26,21,91,45,241,216,46,29,15,185,16,41,239, +110,162,72,16,143,143,130,20,131,82,93,213,37,111,120,195,53,84,180,13, +218,3,221,74,182,13,221,74,39,52,76,63,226,12,201,165,75,168,248,143,199, +44,138,0,4,130,146,143,192,161,64,211,13,89,25,128,8,10,65,70,24,137,1, +57,26,160,0,36,147,105,60,19,39,170,177,224,175,233,25,31,225,76,139,243, +40,230,7,8,190,198,215,120,240,243,211,43,105,152,191,86,131,241,109,90, +164,71,102,72,46,67,67,105,57,115,161,95,50,151,218,229,206,88,183,72,85, +2,45,24,64,114,148,201,2,8,32,91,181,85,253,40,87,141,37,65,64,8,230,6, +19,131,182,72,48,14,14,166,33,33,72,16,118,19,170,37,72,12,255,160,159, +231,197,81,78,189,30,209,232,54,115,145,188,48,28,30,244,94,44,54,138,65, +202,16,180,68,143,172,91,103,201,1,237,81,104,129,118,233,68,65,125,56, +6,145,79,6,246,138,153,210,9,0,57,80,36,20,115,196,182,94,120,208,143,128, +146,16,156,253,83,98,0,33,170,120,19,151,54,9,129,48,14,14,1,2,38,117,52, +13,65,86,48,225,80,82,224,156,24,25,205,194,188,120,110,200,96,64,55,249, +27,55,243,229,31,194,249,135,116,134,120,17,25,30,206,202,42,12,32,227, +4,19,97,62,27,153,153,57,8,118,208,202,81,81,2,203,131,126,60,16,205,100, +136,120,74,0,92,124,89,153,96,240,97,242,227,28,8,65,207,160,1,103,128, +83,58,45,50,129,131,54,253,217,101,228,208,93,104,215,193,115,144,70,201, +193,75,242,106,145,57,14,217,130,227,0,14,107,32,132,232,24,234,49,12,143, +94,148,127,29,118,27,142,86,223,110,199,61,236,245,74,207,227,192,116,201, +166,100,2,196,80,247,168,10,144,130,54,242,49,0,2,20,31,164,64,190,4,31, +39,17,180,58,54,60,166,11,64,133,128,13,9,124,13,192,112,149,185,159,15, +1,213,248,240,167,219,150,5,63,5,88,193,166,63,97,247,137,3,113,88,183, +167,45,13,115,13,10,164,5,156,136,250,160,35,31,20,128,83,156,79,55,76, +99,201,160,19,93,62,41,232,71,195,116,36,21,73,145,132,102,41,7,33,106, +170,197,131,219,139,67,164,72,207,73,178,8,200,224,141,141,73,100,8,88, +14,14,193,30,18,25,25,145,8,252,84,27,113,28,161,68,1,49,38,181,17,43,185, +202,63,54,193,222,135,67,141,91,95,47,197,245,235,39,48,17,214,213,91,95, +255,199,107,134,134,190,128,178,252,74,217,88,165,217,139,32,128,185,126, +214,82,101,8,91,129,213,22,24,114,43,96,166,165,42,120,144,151,106,3,36, +50,173,21,233,153,22,191,134,72,0,147,110,205,135,46,134,209,111,50,30, +156,6,124,228,97,200,70,27,225,74,28,27,223,207,159,149,131,225,221,65, +36,201,72,37,28,76,200,248,150,28,116,91,240,73,14,30,121,180,104,15,173, +123,28,237,145,231,52,140,15,18,184,101,41,241,42,203,197,171,170,18,111, +205,90,137,164,64,144,50,95,212,72,23,153,64,26,144,33,210,3,45,223,213, +37,209,158,94,40,252,62,156,247,136,7,63,157,69,69,118,68,214,77,149,137, +187,19,195,139,189,123,197,169,89,37,197,129,193,74,247,250,181,109,185, +209,225,63,59,155,142,181,239,21,249,54,139,94,172,41,153,0,104,112,41, +78,228,16,25,182,157,40,60,136,192,36,144,230,214,141,48,76,2,109,65,102, +50,3,170,170,122,166,199,57,243,9,199,215,115,8,157,192,6,132,192,137,2, +13,127,106,0,155,158,26,69,9,168,225,8,243,9,164,213,66,190,46,129,35,128, +225,195,2,139,112,5,143,97,211,253,24,198,180,244,183,0,219,248,60,103, +26,107,219,184,244,227,32,52,155,227,180,181,120,35,227,226,70,7,49,13, +26,19,23,154,193,67,247,225,145,12,32,71,100,243,22,137,236,222,35,145, +202,74,92,151,43,197,158,110,145,206,235,226,181,181,170,198,112,175,92, +147,212,205,219,68,222,244,38,241,106,106,165,8,130,228,175,225,198,2,118, +122,124,84,156,76,58,153,137,198,126,17,245,248,14,234,225,51,144,21,41, +205,148,76,0,204,233,167,162,156,178,131,81,16,124,193,171,234,133,55,67, +2,48,9,96,224,199,248,147,225,22,168,73,66,48,71,2,200,120,147,45,63,200, +75,253,121,198,48,254,49,182,79,60,27,159,101,177,75,80,155,32,1,35,206, +86,170,7,61,103,57,8,178,37,202,76,110,148,21,16,132,178,182,113,173,220, +105,51,29,243,167,29,69,215,160,131,72,76,95,225,220,99,87,193,48,170,121, +116,11,46,9,50,58,129,155,6,71,114,215,218,101,226,197,147,146,235,234, +132,214,168,144,72,67,157,36,54,173,151,198,223,252,132,196,14,188,65,220, +209,188,20,91,91,37,51,54,42,163,231,95,146,209,147,47,74,182,191,95,73, +147,139,69,55,125,1,244,250,4,58,18,86,113,49,166,100,2,36,112,255,69,144, +120,65,10,128,213,0,148,45,101,141,243,96,44,64,153,96,52,207,248,42,123, +2,102,241,64,106,59,8,212,112,198,81,64,105,155,188,131,188,52,204,180, +110,134,146,84,102,28,192,124,17,151,121,106,28,248,251,249,48,18,253,61, +182,72,22,206,68,90,87,216,90,25,223,38,96,4,208,130,104,193,165,127,88, +3,132,221,76,207,115,154,112,122,45,7,233,88,54,110,127,116,28,194,112, +28,1,17,18,9,200,196,147,66,203,85,153,56,126,66,114,87,174,226,174,18, +211,219,208,16,206,216,132,56,221,253,50,122,246,130,140,157,186,32,219, +62,131,174,36,86,37,253,223,252,166,12,61,113,72,178,32,9,40,132,124,49, +176,197,177,104,212,181,226,230,167,100,2,224,114,84,232,148,248,36,152, +198,77,25,171,108,33,79,94,55,193,215,209,59,211,224,208,248,136,164,182, +182,90,130,132,22,205,188,252,56,240,49,110,197,205,104,130,64,221,51,127, +198,183,249,193,165,249,170,191,113,179,60,237,150,88,8,12,199,0,58,250, +103,229,44,25,180,146,56,103,37,75,5,159,241,195,100,176,233,105,135,243, +101,222,254,65,192,36,137,41,3,168,250,194,213,171,146,121,238,184,228, +96,23,57,109,77,66,112,224,136,56,36,73,4,147,83,49,244,177,153,174,94, +233,253,193,17,104,128,65,233,248,242,87,56,63,174,154,4,35,26,229,49,175, +142,100,88,170,41,153,0,68,135,178,164,97,235,155,162,174,181,245,195,159, +224,194,109,192,247,227,80,62,4,31,32,168,156,152,30,126,236,191,145,165, +166,49,64,79,2,204,120,4,147,197,169,118,80,25,227,28,194,214,116,8,152, +74,8,198,227,97,126,225,4,86,76,68,79,70,246,15,2,66,67,32,181,16,156,91, +32,25,22,6,120,186,155,233,24,199,198,15,219,54,47,134,219,131,0,195,191, +216,134,201,193,231,158,147,220,197,203,0,30,109,215,2,207,52,51,152,40, +186,141,76,91,187,68,49,127,81,196,44,39,38,140,204,3,80,196,117,145,134, +250,167,192,178,151,104,22,71,0,74,20,149,80,160,81,1,163,9,44,25,76,191, +108,194,76,28,136,195,200,94,27,163,37,129,129,137,4,210,112,228,70,81, +4,121,170,219,143,3,166,144,44,74,56,92,116,160,246,125,119,144,63,207, +241,167,4,165,246,65,30,65,23,192,51,130,66,67,80,105,40,124,250,241,156, +194,180,110,107,51,14,221,12,99,28,198,231,97,221,244,15,31,54,63,166,1, +96,17,128,232,118,119,75,254,216,49,201,191,116,94,28,222,246,205,3,60, +139,84,131,98,60,76,92,185,152,79,42,248,229,178,214,40,81,215,208,80,19, +252,88,186,128,152,139,118,10,218,176,117,211,80,164,6,16,2,131,115,109, +177,22,8,216,136,102,128,51,178,11,84,190,239,111,1,87,224,108,183,96,243, +213,115,164,67,92,115,171,9,119,40,76,253,0,192,244,180,154,39,35,194,232, +186,2,173,24,37,138,195,23,102,64,6,14,208,44,192,4,214,30,156,176,177, +110,102,68,80,167,155,233,68,96,222,84,231,0,217,27,28,148,34,84,125,225, +212,41,41,226,182,207,75,36,77,24,227,148,96,28,200,192,16,128,224,155, +150,15,110,171,6,200,151,150,213,140,165,150,172,1,40,135,160,11,64,150, +166,197,161,106,168,140,185,207,135,173,190,6,124,198,101,61,195,135,9, +167,159,209,22,74,34,31,108,227,246,243,213,42,27,117,175,36,32,216,40, +200,144,198,216,65,89,240,157,204,7,97,90,46,38,100,166,247,251,12,32,72, +28,145,15,244,235,192,42,55,48,32,30,90,103,28,100,72,86,87,73,178,190, +81,164,1,7,250,237,96,130,134,36,161,161,109,181,130,37,133,13,99,190,156, +9,60,250,140,20,159,127,78,156,65,60,125,4,25,72,8,173,144,201,97,129,191, +168,39,234,206,46,204,106,0,214,128,90,32,232,2,84,170,11,204,110,150,104, +37,19,0,203,193,82,108,121,44,27,255,193,97,186,1,3,254,148,113,1,98,48, +222,20,112,244,156,124,158,158,222,130,107,227,51,28,127,170,1,124,240, +33,108,75,18,5,31,129,58,232,99,94,112,235,157,3,220,26,9,150,25,4,178, +178,56,8,24,172,124,203,85,233,122,225,164,92,29,72,75,87,245,58,73,175, +90,11,160,202,36,230,20,164,178,189,87,26,95,122,81,54,73,70,54,220,180, +81,202,119,238,198,115,132,42,67,4,230,75,176,195,7,253,168,69,242,80,239, +39,79,138,251,212,211,226,96,180,174,143,152,19,16,175,37,9,227,149,104, +88,140,131,159,130,10,138,180,39,248,134,4,30,174,167,72,143,37,154,146, +9,128,103,250,32,0,100,128,10,176,94,10,54,42,162,242,133,79,24,252,201, +214,169,114,55,221,3,65,66,58,147,150,54,210,32,189,209,42,70,35,152,240, +144,91,129,101,89,166,28,3,178,37,2,114,64,2,29,24,106,110,204,147,100, +161,13,97,89,13,0,144,188,44,0,127,252,144,156,110,237,151,139,123,223, +44,163,111,188,75,220,106,172,7,33,128,204,27,71,212,115,164,37,147,150, +211,93,87,100,221,233,67,114,203,191,124,71,118,220,190,71,18,36,2,51,165, +218,183,4,224,57,13,6,120,242,248,227,226,93,184,96,194,180,197,179,182, +75,52,40,71,9,224,171,81,74,142,189,24,113,103,209,172,198,82,77,201,4, +144,184,103,166,217,253,74,0,27,173,12,91,161,130,143,138,89,109,96,194, +8,176,15,58,100,194,167,124,108,210,20,143,37,136,2,203,252,244,96,62,38, +79,3,42,78,96,76,92,218,140,23,34,7,221,90,7,159,144,36,11,255,124,225, +176,11,224,109,150,51,62,46,151,191,246,77,121,62,217,44,45,239,255,29, +113,107,26,208,226,139,18,195,173,89,20,131,45,45,155,85,99,89,152,173, +115,182,221,42,29,91,111,149,222,150,179,210,122,232,31,228,222,142,78, +169,127,227,155,140,58,39,9,72,26,244,243,242,204,51,34,24,221,227,89,52, +171,137,196,134,76,230,100,137,191,62,1,138,152,83,96,215,183,18,166,100, +2,24,112,140,164,40,100,37,39,193,39,168,168,164,46,3,99,48,253,16,217, +156,19,84,0,1,63,163,166,153,142,48,49,30,252,225,48,192,210,143,0,226, +156,160,242,207,2,74,63,5,158,98,160,63,227,48,46,255,76,24,109,115,110, +252,25,19,171,7,117,90,246,234,183,254,69,158,173,220,38,173,15,253,91, +189,223,142,97,245,185,185,22,164,101,102,48,166,14,36,23,210,131,28,42, +116,144,224,82,211,22,25,254,238,95,203,91,190,255,61,105,122,248,97,163, +222,49,184,147,195,135,49,125,11,117,143,122,232,197,82,219,44,167,65,190, +36,48,115,53,53,92,206,204,77,94,37,19,128,98,162,192,128,165,47,120,136, +220,130,20,128,73,24,76,203,100,164,48,184,70,232,8,167,204,24,31,12,50, +96,51,63,10,223,164,229,47,243,157,50,15,160,130,96,8,243,52,32,155,252, +224,38,185,52,125,152,4,198,221,127,244,168,156,41,84,75,219,207,254,50, +26,40,234,207,101,234,184,6,230,99,14,147,151,230,139,31,214,141,156,208, +115,183,32,177,242,74,25,254,192,127,148,199,190,243,55,242,192,183,191, +45,235,25,120,238,37,244,251,120,24,100,7,148,70,158,203,251,75,2,224,208, +138,44,111,206,65,110,148,95,73,198,128,105,64,245,187,38,37,4,253,121, +174,45,123,138,77,97,82,67,152,112,117,251,113,41,71,3,224,100,90,205,51, +136,79,18,216,176,25,242,9,197,163,182,49,101,51,13,181,79,68,87,31,247, +13,100,228,115,151,107,228,236,91,63,38,145,178,36,8,133,59,104,132,43, +241,108,157,16,151,229,242,33,151,77,203,188,52,63,4,36,98,0,2,35,174,199, +215,63,36,127,217,146,148,145,211,104,253,8,215,110,160,36,233,149,22,89, +193,71,125,87,210,148,172,1,140,160,161,245,40,188,80,75,193,169,105,49, +74,88,130,192,214,76,3,65,130,197,42,76,182,80,21,44,86,21,48,144,234,13, +215,231,98,92,192,54,24,195,0,12,107,190,67,173,219,182,76,99,219,86,63, +217,210,153,59,255,252,178,81,166,186,253,58,176,140,222,49,87,38,182,223, +43,119,175,93,171,171,120,20,120,45,13,105,88,23,63,45,241,180,249,168, +141,31,18,130,107,14,59,59,199,228,216,241,118,105,239,28,151,248,186,119, +201,150,182,110,249,152,211,129,180,140,185,130,134,26,128,227,141,21,52, +165,19,0,149,33,16,20,53,91,13,141,1,198,18,130,66,69,168,146,3,224,40, +248,70,184,49,168,75,15,203,186,7,91,58,100,232,114,7,238,147,251,100,125, +217,128,220,181,105,88,106,214,213,72,119,229,45,50,88,177,67,138,177,10, +172,190,2,17,148,253,36,18,65,14,145,128,192,105,254,8,243,85,63,171,194, +88,134,116,182,78,17,169,105,46,151,45,219,26,225,143,209,0,34,49,220,228, +103,234,20,16,0,249,107,90,63,14,87,17,229,80,215,23,206,246,200,201,211, +221,250,142,2,9,81,76,84,203,87,86,191,93,238,236,248,146,220,25,1,97,87, +208,80,251,235,60,198,10,150,81,58,1,162,156,7,0,196,16,6,254,131,254,114, +82,176,126,43,68,152,130,4,150,48,44,134,230,216,127,238,154,92,255,225, +51,178,206,105,151,55,223,82,148,123,223,86,144,93,235,210,82,155,204,225, +73,216,57,25,238,253,158,180,14,212,202,233,234,119,72,75,221,91,241,44, +29,247,230,46,6,99,10,78,136,4,62,248,244,209,150,139,243,73,80,81,62,235, +134,10,198,0,226,190,55,110,199,139,33,0,63,208,66,126,189,89,191,224,26, +152,134,185,25,63,214,181,167,119,92,142,62,223,46,29,29,163,74,98,62,160, +161,198,138,121,69,204,29,236,144,131,21,123,101,215,248,243,82,110,104, +131,148,43,97,112,97,203,61,176,156,86,205,146,9,16,243,60,46,209,215,217, +40,2,76,6,208,182,42,158,98,52,26,193,23,40,162,48,254,149,239,61,39,177, +211,135,229,191,124,36,47,239,120,123,82,106,106,81,116,4,51,100,110,13, +104,158,196,35,206,74,169,115,43,100,67,223,160,236,57,253,61,57,211,249, +132,60,221,248,9,25,76,109,135,208,243,33,18,16,64,171,21,144,183,175,25, +140,134,224,185,41,151,36,160,250,244,138,168,143,15,174,29,84,106,26,132, +227,95,225,179,224,243,197,20,7,79,15,79,189,212,43,199,79,118,73,26,111, +36,177,11,224,114,182,201,155,110,18,60,42,71,235,239,149,23,199,206,200, +189,130,129,224,74,24,86,14,224,171,86,90,137,252,253,60,75,38,0,211,81, +184,4,53,16,32,133,206,22,70,27,170,86,109,191,63,230,96,236,242,191,30, +147,245,215,127,40,127,244,39,158,220,188,13,169,114,89,113,115,184,52, +174,44,128,170,23,44,124,245,132,247,209,113,73,52,214,203,218,135,62,44, +117,173,87,165,233,153,63,146,71,10,191,36,215,87,189,17,154,192,144,64, +203,36,160,218,234,9,6,254,72,66,218,240,51,117,162,63,221,252,101,93,77, +28,158,155,122,155,16,10,215,228,135,146,17,48,50,154,147,103,78,116,200, +229,171,88,187,199,214,142,5,165,186,196,91,115,153,252,225,88,101,176, +124,163,60,158,186,73,94,63,113,14,181,54,229,76,198,88,14,23,243,68,87, +203,126,96,37,178,247,171,88,50,1,162,80,143,20,54,231,115,172,0,89,63, +250,77,109,141,120,215,15,2,236,60,118,65,26,90,31,151,191,248,195,130, +52,53,227,233,88,214,196,198,48,28,169,224,38,9,244,5,13,186,209,142,179, +67,56,198,36,185,121,171,236,92,253,139,82,241,216,215,229,219,99,142,180, +174,122,179,36,44,9,84,227,152,50,77,203,39,160,150,128,62,41,152,59,178, +52,165,24,63,186,253,82,89,178,166,225,91,71,92,188,211,214,62,42,79,65, +229,15,14,102,244,77,36,141,72,225,207,104,0,76,52,33,39,170,247,72,231, +248,89,76,27,51,183,21,48,32,225,92,131,64,92,243,68,23,40,186,148,146, +41,143,146,12,47,85,71,242,176,167,187,85,224,240,100,56,251,209,220,200, +132,140,28,126,82,62,243,169,172,52,109,4,248,121,43,126,218,254,65,34, +48,161,15,137,125,91,199,29,189,130,219,182,180,220,244,240,175,200,59, +19,223,150,166,244,41,21,186,150,141,214,138,236,53,153,142,228,145,222, +248,195,143,97,122,206,122,216,195,250,81,19,240,48,254,36,40,91,216,241, +51,189,242,200,145,54,25,28,201,97,220,192,186,204,111,56,101,220,85,113, +147,92,136,150,131,184,179,17,101,254,124,230,138,193,92,177,15,3,127,103, +140,134,233,248,226,103,168,38,150,96,136,66,73,134,130,167,96,173,16,89, +53,3,2,252,125,55,195,168,62,59,159,121,89,30,190,173,93,246,237,199,232, +159,207,46,25,96,91,126,152,0,134,74,83,195,240,204,217,195,219,60,94,116, +72,110,122,224,35,242,86,247,160,84,21,241,246,46,4,162,217,224,199,0,77, +155,117,50,224,170,173,117,52,225,193,253,62,252,88,180,169,63,238,237, +81,191,12,94,38,253,225,179,237,242,236,169,110,44,203,114,180,191,95,168, +48,168,113,210,201,58,185,20,175,131,107,73,141,112,246,34,87,136,88,225, +2,137,89,73,134,9,180,207,245,241,84,16,212,143,254,4,194,220,59,23,51, +121,113,174,156,149,15,191,23,35,40,170,118,93,73,168,169,17,123,6,59,76, +12,117,35,78,20,36,24,187,46,145,138,168,236,222,127,143,220,149,249,38, +168,226,3,27,148,207,114,77,171,182,229,27,18,32,30,179,96,60,252,132,53, +69,2,111,12,247,66,213,127,247,112,155,92,106,25,54,113,152,184,4,67,2, +240,46,165,61,81,135,141,75,150,212,8,103,45,149,218,105,174,46,96,214, +132,37,4,16,137,146,13,19,153,62,31,66,166,27,178,51,7,207,205,237,215, +104,251,128,188,174,182,75,94,183,29,32,22,17,75,5,204,216,80,105,22,96, +250,89,119,88,11,76,33,3,150,66,13,93,144,228,166,61,178,175,105,76,214, +230,206,161,176,56,202,35,192,33,224,225,86,224,233,175,7,139,156,10,60, +227,243,254,254,42,94,228,253,46,84,126,55,222,34,94,168,202,159,73,72, +120,191,75,134,99,213,146,94,33,2,104,215,178,194,19,65,68,164,36,131,81, +99,57,228,234,3,110,112,37,248,182,27,80,237,128,166,55,126,189,71,238, +216,153,145,120,57,135,134,74,19,19,89,129,214,4,40,55,228,63,133,8,150, +24,190,13,1,187,99,87,164,113,239,189,114,155,247,36,82,33,71,31,100,130, +170,192,171,102,48,245,98,253,88,31,222,194,197,177,38,159,113,232,198, +191,156,186,216,47,143,62,211,46,227,216,120,130,243,4,139,54,218,65,71, +36,135,1,44,182,159,88,116,54,115,38,164,6,88,225,169,224,146,37,128,167, +126,220,195,1,226,54,127,234,38,24,244,83,80,232,143,5,139,88,101,179,125, +43,28,30,7,49,8,181,0,91,59,240,99,108,166,102,28,34,231,187,153,139,117, +115,32,148,29,192,2,201,26,217,177,174,40,245,133,86,132,241,221,75,219, +194,145,90,139,48,100,80,114,224,156,234,115,168,23,111,224,0,32,66,244, +12,6,123,79,157,196,91,220,152,215,39,41,150,195,48,223,21,155,172,165, +102,89,225,137,32,74,187,36,3,161,99,240,105,90,19,101,72,204,20,50,250, +33,39,21,43,234,29,205,142,203,218,70,156,113,202,80,125,195,54,98,42,184, +244,163,219,15,155,226,231,199,65,24,203,99,30,94,182,95,26,54,110,149, +45,238,139,138,56,203,55,117,152,4,158,89,240,224,93,8,183,153,121,228, +31,30,149,142,107,253,114,248,100,143,156,56,143,65,36,115,98,118,75,53, +200,131,203,188,83,110,86,247,64,90,106,118,51,165,39,254,58,6,88,142,250, +206,84,0,252,32,170,210,12,235,194,68,20,162,1,128,0,89,32,140,205,190, +43,142,233,179,178,20,99,226,80,96,125,119,24,240,112,216,20,240,131,82, +0,187,205,3,43,122,114,35,18,175,93,35,155,83,29,216,108,42,139,114,205, +163,105,182,102,214,193,212,99,146,156,84,241,19,35,99,242,253,127,61,46, +47,181,98,176,231,199,43,237,138,103,143,205,105,225,218,194,144,148,25, +218,207,30,113,177,33,236,2,84,3,80,30,43,99,40,221,146,140,29,89,51,161, +5,222,244,193,10,53,252,12,0,58,45,167,173,95,99,34,54,236,48,17,232,102, +6,42,60,198,241,15,159,8,204,71,193,183,105,104,243,105,33,42,176,26,239, +206,86,226,213,122,67,0,91,15,150,107,201,104,6,162,105,108,26,209,24,115, +228,151,251,159,148,202,60,222,211,211,242,80,212,50,24,78,45,37,138,24, +148,230,7,48,40,98,55,183,188,134,146,209,89,192,87,218,32,80,231,1,33, +72,109,253,168,164,2,133,218,90,109,64,155,35,109,47,206,13,153,52,2,34, +133,1,70,4,5,51,4,56,207,9,142,198,35,136,54,12,126,36,136,13,7,73,60,172, +228,169,194,203,149,171,176,193,40,223,162,49,132,243,235,131,168,36,1, +203,159,200,20,229,241,23,48,79,134,56,239,110,42,202,129,222,19,82,92, +70,160,92,228,85,155,105,151,45,216,62,40,161,245,69,85,151,203,112,96, +193,75,15,52,192,114,101,124,99,62,148,116,73,134,215,170,240,64,208,42, +124,164,230,185,66,69,0,224,162,150,136,87,215,72,111,63,35,227,208,233, +94,141,225,199,134,95,0,56,220,154,154,182,185,185,52,57,154,115,227,102, +90,166,193,129,245,2,9,188,50,93,237,14,192,139,93,128,159,149,95,31,5, +31,143,113,31,61,222,41,109,61,227,154,117,227,230,77,242,62,204,36,174, +155,192,222,146,124,169,97,25,12,159,121,108,25,57,37,175,227,16,144,215, +178,34,230,21,56,15,160,176,80,232,184,96,43,252,112,235,55,183,129,120, +135,124,117,163,180,180,67,53,106,235,13,129,169,194,210,212,204,193,28, +4,207,255,11,226,51,158,166,245,109,75,18,12,188,162,152,7,72,201,184,41, +31,133,179,111,87,210,97,26,55,11,181,255,248,137,110,128,63,161,47,80, +82,141,114,73,215,190,45,13,242,129,246,31,72,28,26,132,43,154,151,98,216, +250,107,210,237,114,251,216,89,185,41,142,39,154,43,98,80,71,246,255,175, +188,46,64,42,40,63,5,29,23,30,16,130,56,33,64,251,97,8,189,102,195,106, +57,223,90,142,135,63,36,11,5,142,152,4,52,0,157,110,77,4,219,191,85,180, +97,129,63,195,103,72,131,155,186,152,155,83,208,89,158,214,5,12,40,226, +85,240,39,79,245,200,213,174,49,116,3,44,211,24,23,164,169,108,106,150, +159,171,29,145,135,175,63,138,137,91,222,24,78,134,219,120,11,177,245,145, +19,242,187,165,231,81,185,15,79,49,203,65,198,149,50,16,227,43,111,38,16, +242,54,243,0,62,216,20,62,1,86,32,32,9,158,147,181,117,77,117,210,58,182, +22,11,42,176,6,15,147,49,1,240,74,4,70,226,49,13,92,219,226,111,8,99,33, +136,139,50,121,184,197,28,20,111,194,144,13,94,44,155,230,232,185,62,185, +112,125,84,31,237,170,135,253,97,159,10,200,55,108,127,157,124,52,114,65, +222,214,254,152,206,11,184,74,46,27,105,97,54,91,255,246,190,195,242,150, +177,83,178,187,108,229,30,4,105,109,94,145,99,0,108,221,69,121,251,237, +215,111,245,4,193,28,70,149,123,146,170,192,91,177,77,219,229,200,179,24, +185,199,17,232,131,103,82,250,192,91,63,5,208,7,152,224,219,86,175,254, +56,159,70,20,39,51,142,25,56,236,236,138,112,78,230,113,150,239,196,165, +65,57,133,231,248,102,106,151,105,110,52,124,63,96,251,238,215,201,111, +184,39,229,125,45,255,44,169,66,90,10,124,222,160,132,187,49,126,216,199, +67,157,28,128,191,173,255,168,251,80,247,191,230,223,138,125,129,146,139, +32,80,56,207,249,220,175,204,187,0,140,211,84,205,67,198,230,93,0,226,0, +13,128,171,177,36,224,80,142,251,8,55,221,177,67,126,112,172,74,50,163, +16,49,59,105,11,174,5,56,12,172,130,160,185,48,39,67,2,198,211,184,200, +207,146,1,183,150,217,209,97,73,39,214,224,185,61,230,27,192,128,139,29, +99,242,220,133,1,173,199,156,66,69,139,138,162,207,222,190,123,135,124, +162,226,154,252,135,75,127,43,59,7,207,161,100,108,209,130,231,251,108, +221,36,67,248,32,232,5,132,165,10,19,114,79,251,183,228,35,29,7,139,239, +175,44,203,213,199,241,222,224,74,27,116,53,220,80,123,102,58,47,79,225, +37,119,96,216,34,102,36,198,157,158,97,84,245,82,168,234,38,188,252,243, +219,19,42,223,176,161,78,78,85,221,34,143,60,250,156,252,220,251,107,48, +147,199,84,76,75,64,153,10,198,206,20,18,96,186,45,57,130,57,4,146,128, +97,62,25,160,254,199,134,39,36,83,179,65,202,176,92,187,11,203,190,15,159, +237,69,255,143,193,33,162,161,248,121,77,4,31,181,216,176,117,171,124,160, +186,71,246,180,125,67,142,246,172,149,227,53,123,177,247,218,102,25,199, +142,28,14,231,246,112,93,113,148,85,157,29,148,205,195,231,229,142,254, +231,100,159,211,43,183,215,174,74,86,122,146,212,221,189,230,45,105,9,17, +120,201,92,16,194,11,226,117,173,144,41,157,0,110,244,187,110,161,240,107, +113,62,101,225,102,137,168,157,5,221,172,212,53,62,124,96,67,255,155,223, +116,151,252,195,215,207,203,125,247,20,100,245,154,20,250,111,36,177,183, +133,97,144,245,42,73,10,94,45,14,18,193,146,67,53,2,202,65,75,44,14,92, +149,222,124,157,56,169,181,184,215,207,203,161,211,189,50,142,123,126,118, +3,11,158,55,7,184,28,167,84,55,52,200,221,21,149,178,189,191,79,30,232, +125,84,174,247,224,35,4,94,185,140,96,251,96,23,47,143,84,21,198,177,175, +240,176,52,71,243,178,25,115,15,171,227,13,120,99,8,93,26,95,8,249,81,24, +146,25,13,201,200,100,101,10,44,153,0,47,121,103,191,183,199,221,243,251, +145,68,217,111,160,115,95,133,181,128,208,7,168,41,102,233,34,16,154,190, +120,65,240,89,121,8,185,161,185,86,122,118,223,39,127,254,133,31,200,127, +251,116,10,173,20,106,118,10,176,4,221,2,239,219,186,118,192,39,193,148, +48,188,130,215,122,86,58,43,223,137,205,17,98,114,4,131,190,238,33,172, +226,33,248,4,181,84,131,22,198,238,171,22,175,130,215,174,90,37,187,48, +115,149,75,99,124,129,151,72,61,188,62,158,64,61,83,209,6,44,69,67,222, +4,158,27,60,252,40,13,187,0,37,192,202,21,90,50,1,14,221,175,223,240,249, +175,127,255,79,127,126,46,217,215,246,91,185,232,170,187,134,170,182,202, +68,213,102,201,150,175,197,186,249,85,120,0,200,254,17,45,22,149,231,126, +253,187,238,191,93,142,125,169,83,190,244,229,151,228,99,31,107,192,163, +66,80,70,95,18,37,112,4,154,54,192,183,173,222,218,166,115,49,121,33,207, +124,231,69,233,232,197,19,190,173,63,35,167,174,244,201,203,237,99,58,8, +228,92,204,146,12,239,181,129,49,223,91,168,168,168,194,54,245,216,202, +141,219,184,216,77,28,49,119,176,40,130,45,169,82,126,145,36,223,10,154, +146,9,32,195,255,169,214,137,56,127,252,11,7,198,223,149,235,232,107,200, +245,12,73,122,224,159,101,162,213,149,209,108,165,12,197,155,100,168,252, +38,25,197,139,152,99,85,91,64,138,38,41,166,234,229,206,143,60,36,255,248, +183,104,183,101,215,229,23,62,84,7,224,56,203,197,43,11,107,0,146,1,231, +74,10,218,36,133,81,253,238,196,176,12,188,120,72,90,214,124,82,46,13,196, +228,216,69,14,250,144,92,181,201,50,9,137,90,100,250,177,130,194,159,55, +107,212,229,21,247,98,136,19,115,62,24,43,79,124,76,202,234,165,188,118, +181,164,118,71,165,6,35,126,15,143,94,157,177,180,238,138,145,239,63,43, +185,254,167,101,162,43,39,227,217,132,140,96,67,237,81,44,160,220,242,134, +38,57,246,131,22,185,163,250,130,236,121,224,14,204,15,224,62,154,253,125, +24,240,160,255,39,248,188,229,72,96,203,247,97,25,122,234,235,114,33,249, +128,92,78,221,35,79,158,192,118,253,248,106,8,87,244,254,56,90,230,188, +192,45,91,4,18,96,169,234,109,238,202,148,172,1,112,15,184,157,15,10,181, +235,81,0,0,32,0,73,68,65,84,88,92,108,209,142,78,30,0,192,98,75,141,151, +73,188,190,2,199,90,41,219,22,149,106,128,218,72,82,96,19,101,103,24,91, +234,247,99,179,164,161,151,229,157,239,30,198,166,136,125,50,113,165,90, +170,119,227,35,29,252,54,16,65,167,38,208,38,13,27,105,35,49,236,179,3, +245,151,235,184,32,131,199,31,149,11,101,111,145,203,27,126,85,14,159,232, +149,126,172,223,231,58,254,5,15,250,144,251,79,164,161,108,95,105,4,64, +79,9,90,66,248,86,85,107,139,37,24,232,215,85,19,227,71,43,13,32,1,98,180, +10,31,228,168,110,196,154,190,237,82,201,126,31,183,107,14,119,215,230, +4,140,238,225,7,63,59,208,11,6,127,220,34,237,101,25,127,233,168,244,247, +103,228,242,166,95,151,222,230,247,202,115,88,206,117,30,47,104,114,177, +135,223,127,252,68,226,186,176,74,83,158,16,53,133,74,17,173,144,41,89, +3,76,246,217,172,17,128,8,90,175,105,185,122,174,170,25,181,38,81,96,76, +63,6,141,161,0,227,9,30,30,206,168,91,9,19,206,131,105,112,30,77,162,11, +233,146,137,14,168,122,105,144,85,61,71,165,216,127,77,138,173,53,178,222, +91,35,163,82,143,229,32,184,85,211,242,57,15,81,196,97,102,248,181,64,22, +139,188,41,187,98,129,66,52,245,208,176,159,164,31,202,199,180,170,21,171, +245,34,8,0,97,178,245,171,238,15,129,167,154,0,231,216,70,238,6,82,40,33, +224,111,137,161,164,97,62,56,8,184,181,9,168,186,241,48,105,223,195,82, +125,219,131,210,52,134,207,245,244,92,150,108,219,183,100,95,243,152,12, +141,226,117,237,241,106,185,150,91,35,173,238,38,185,238,110,198,189,123, +147,12,123,117,216,214,169,28,27,39,97,220,192,150,131,90,184,227,253,82, +29,197,26,64,221,150,127,165,158,218,173,24,54,190,140,87,50,127,244,220, +165,103,111,1,230,3,30,11,34,108,109,141,4,16,199,20,80,25,102,15,166,181, +233,173,159,111,135,201,65,214,243,245,112,220,150,197,26,214,73,50,222, +34,149,181,155,144,180,74,154,221,132,236,198,87,195,138,88,234,149,27, +60,47,19,3,207,202,192,96,94,186,199,202,228,90,102,181,180,68,54,74,59, +72,145,194,74,160,3,27,15,203,93,183,95,198,116,241,46,145,225,219,144, +167,45,19,213,120,205,168,4,22,73,0,130,200,193,155,5,51,12,108,216,15, +2,87,109,49,205,79,9,2,191,128,40,4,6,231,86,19,104,26,166,197,164,17,94, +27,119,251,158,212,177,131,41,15,227,138,120,133,148,53,214,72,89,243,110, +169,73,176,91,72,202,110,124,153,163,56,60,36,249,193,94,201,12,188,132, +46,163,13,192,163,136,100,153,228,99,248,34,11,182,106,79,12,172,193,86, +235,248,192,20,248,197,215,199,95,35,196,98,52,0,177,84,224,41,69,31,68, +171,254,41,212,160,37,51,34,206,53,110,216,77,63,223,63,0,220,63,215,244, +204,19,119,1,120,117,220,195,130,75,119,240,73,156,99,254,152,43,121,84, +175,99,131,229,220,40,94,40,198,39,252,240,73,97,67,156,20,222,52,175,150, +100,101,61,136,177,67,86,53,188,71,242,216,230,109,236,249,111,32,28,73, +241,192,232,105,204,63,60,34,61,242,178,155,194,203,37,9,217,138,153,196, +155,115,49,217,10,18,110,196,103,69,235,112,199,193,205,38,148,20,44,231, +85,98,22,161,1,144,68,91,40,37,20,6,54,228,182,45,216,130,63,157,24,74, +28,130,142,3,110,182,70,243,8,137,121,224,92,195,49,139,56,116,4,179,113, +88,250,101,193,103,145,106,152,206,63,8,150,195,15,52,224,24,199,23,56, +220,151,37,210,113,82,18,187,223,47,85,219,247,203,196,133,163,242,37,119, +149,252,117,164,70,38,26,48,237,187,46,37,163,9,76,88,37,43,229,18,186, +147,212,4,62,236,128,239,9,38,58,7,101,237,96,78,182,78,184,178,61,29,1, +41,60,225,7,125,116,111,0,42,187,21,158,145,211,203,250,49,252,44,130,0, +6,36,83,87,31,116,11,56,85,58,143,128,24,62,200,150,8,129,63,226,0,64,254, +105,139,11,52,1,192,167,31,134,38,238,248,73,108,187,138,157,184,208,13, +104,203,159,83,56,62,25,88,52,210,83,67,184,173,71,36,217,248,58,185,124, +238,89,57,152,196,35,105,148,157,192,236,227,184,131,47,141,98,106,183, +207,25,151,134,138,85,178,105,211,90,89,189,171,89,242,217,188,156,198, +119,125,30,195,28,197,120,119,159,164,250,198,101,195,184,35,175,155,240, +176,19,136,200,54,108,95,176,19,159,254,73,45,199,246,156,115,94,203,194, +3,125,233,205,47,158,57,178,92,4,1,144,155,246,221,180,9,150,61,8,42,14, +13,99,213,136,6,195,172,63,220,4,218,143,31,177,225,154,134,42,159,105, +25,7,170,31,31,233,244,134,209,250,245,210,152,79,137,6,111,18,121,19,248, +246,78,245,38,25,195,93,73,6,101,218,218,48,75,62,96,25,199,4,213,40,246, +245,189,212,131,213,197,200,62,137,57,139,36,214,10,36,42,226,82,220,84, +35,99,141,113,57,155,43,200,119,249,45,66,188,67,184,14,90,225,243,231, +162,114,31,20,210,92,134,229,80,97,172,180,65,179,224,118,241,45,152,39, +88,82,135,181,8,2,176,104,31,200,27,90,62,1,100,24,197,128,195,182,108, +141,239,251,193,173,112,4,97,244,247,211,48,63,60,47,118,135,159,196,13, +60,250,248,27,84,63,162,46,200,48,63,220,10,22,243,200,14,243,3,20,17,189, +66,134,79,1,249,20,81,171,139,240,34,30,90,21,248,1,7,196,81,145,34,32, +130,199,204,171,123,51,242,94,172,46,127,79,143,200,109,99,8,213,4,161, +140,66,78,238,236,221,15,114,85,128,200,73,100,146,68,183,225,98,222,140, +239,14,146,239,204,123,169,134,210,167,196,114,174,119,54,225,202,95,45, +53,191,69,16,0,197,43,240,44,154,85,129,100,195,68,176,126,22,212,41,118, +168,165,135,227,49,189,106,14,170,126,108,187,154,126,25,121,226,82,151, +34,49,162,200,197,7,11,204,67,249,97,193,69,218,66,215,136,220,215,154, +149,223,197,202,230,59,193,69,48,4,121,33,179,105,68,162,20,212,48,205, +250,117,114,100,116,20,95,59,79,75,164,185,70,250,214,149,67,115,20,101, +235,80,65,214,100,61,188,204,2,77,131,120,36,10,183,75,224,196,232,66,12, +163,197,64,38,94,74,58,38,151,171,51,133,63,111,240,114,7,223,61,190,244, +111,7,46,129,0,172,14,171,70,18,248,68,160,77,33,42,152,22,84,19,135,237, +62,232,22,2,192,67,126,156,26,206,225,179,105,163,79,33,191,101,50,216, +253,123,193,12,176,69,162,254,133,30,172,30,190,146,147,63,234,40,151,198, +28,20,58,190,55,172,151,104,227,204,100,3,216,242,134,90,121,235,27,94, +47,79,31,126,86,14,221,210,40,39,223,115,171,196,241,129,168,178,193,113, +169,236,29,145,198,238,17,217,0,141,178,25,132,216,56,238,226,37,87,79, +202,0,44,54,222,210,207,191,112,87,240,48,41,40,51,238,99,204,13,175,91, +235,146,114,102,247,106,233,184,101,115,172,53,149,216,208,139,151,101, +23,200,237,153,106,27,248,45,142,0,10,52,138,215,126,60,4,190,74,201,158, +19,120,30,118,96,71,114,144,20,198,47,144,168,37,12,110,245,84,245,59,163, +136,135,89,187,240,213,33,9,163,49,165,242,136,69,211,61,167,65,12,93,126, +52,103,164,169,129,232,18,10,195,25,185,227,90,86,254,87,79,149,52,234, +179,138,5,246,232,120,62,225,157,187,32,245,120,50,250,182,119,63,44,101, +79,63,43,215,190,118,76,142,191,125,151,212,97,206,162,14,95,2,203,224, +155,130,88,206,32,47,242,91,131,125,195,82,214,53,40,117,93,163,178,190, +63,39,155,70,28,89,135,37,115,213,14,150,93,99,220,194,213,137,195,88,246, +242,84,93,81,142,31,216,40,206,190,93,178,106,195,58,169,207,23,182,228, +134,135,126,219,27,75,221,30,249,119,251,62,228,125,254,56,245,211,162, +205,226,9,160,16,16,84,192,18,16,193,130,239,219,0,124,178,229,135,195, +252,116,138,38,220,92,144,57,246,60,94,1,167,234,71,149,124,116,185,179, +135,186,115,232,199,241,248,119,212,193,172,63,186,134,154,68,204,172,77, +199,101,115,161,206,140,100,160,103,41,4,96,81,0,188,170,107,92,62,221, +87,41,107,28,246,182,200,188,20,131,50,157,243,23,180,213,223,255,222,119, +138,243,232,33,233,121,236,156,60,183,111,3,214,23,122,216,150,38,46,85, +248,168,100,125,101,149,172,217,184,78,26,118,109,147,9,144,162,5,223,26, +184,52,132,41,239,174,1,137,183,227,11,231,120,175,161,136,217,206,243, +77,149,146,60,112,135,220,186,123,23,214,63,198,164,7,119,41,93,25,204, +141,224,41,107,222,117,223,134,111,55,252,44,170,247,127,75,169,226,244, +184,139,32,0,179,32,152,148,48,219,36,221,254,65,50,168,91,149,23,162,208, +127,210,79,195,52,14,165,237,135,17,240,66,31,84,255,97,196,53,134,3,52, +62,7,207,118,226,91,121,29,227,210,58,30,145,167,242,149,114,164,80,46, +227,80,135,235,18,57,121,125,125,68,30,218,144,148,157,220,111,16,89,177, +139,158,106,80,63,188,70,182,96,131,50,11,163,105,121,79,111,68,238,203, +98,69,80,164,132,180,225,66,112,7,82,108,105,149,232,119,126,32,247,127, +248,125,210,119,240,107,210,179,102,88,174,111,170,215,125,136,6,243,99, +104,252,163,88,205,212,129,245,12,152,149,196,12,101,67,117,181,52,213, +213,73,211,158,237,82,127,160,10,223,185,142,73,255,120,90,222,125,211, +77,178,161,182,86,250,71,70,165,19,91,211,59,96,123,15,62,67,219,134,219, +212,52,186,55,172,184,186,29,69,255,168,9,64,224,120,144,0,180,125,128, +9,172,175,9,180,213,107,216,180,112,219,226,25,102,227,163,255,115,71,158, +0,130,184,201,198,253,63,91,125,97,32,43,3,103,6,176,195,119,149,156,88, +183,71,90,182,172,151,66,69,173,108,66,235,41,231,139,225,216,192,241,135, +248,224,226,87,79,95,149,159,41,79,203,111,236,72,201,150,106,124,19,96, +202,152,143,205,145,43,80,23,102,120,55,85,54,152,149,247,143,85,160,118, +188,166,197,155,8,62,24,81,184,112,89,18,135,143,202,67,31,120,191,156, +251,198,223,203,231,215,84,75,1,192,234,146,122,92,35,165,199,167,164,19, +217,172,140,166,51,114,165,179,91,11,76,224,118,116,3,190,17,252,239,31, +122,80,238,223,177,83,218,250,122,49,6,112,229,90,111,159,60,121,246,188, +116,96,227,13,23,117,213,151,109,34,186,251,198,226,43,138,148,139,208, +0,246,70,132,131,163,73,208,237,156,192,20,240,109,184,181,41,216,240,56, +0,170,223,27,199,102,15,25,236,251,131,94,143,224,231,187,210,114,229,228, +176,124,99,205,205,114,172,105,35,30,253,98,253,64,17,227,2,60,21,140,192, +42,143,149,201,122,124,229,227,192,129,91,100,213,189,7,228,232,233,51, +242,209,19,47,202,111,110,44,202,251,54,225,67,15,200,137,194,213,159,133, +106,0,84,203,193,2,151,173,120,127,225,182,2,215,51,106,14,204,101,209, +134,36,200,61,117,76,234,111,223,43,239,189,253,62,121,246,244,11,114,236, +238,141,18,199,194,217,176,177,183,163,252,40,55,73,232,0,236,150,174,110, +249,253,111,124,75,54,53,212,203,240,196,152,252,227,19,71,228,196,229, +22,201,98,141,162,222,186,50,3,196,245,159,179,135,179,43,217,93,58,1,248, +54,136,109,245,218,202,9,42,14,109,55,176,169,5,194,32,219,184,97,63,141, +143,162,139,216,20,114,244,9,94,8,238,250,208,130,7,139,114,249,204,152, +252,197,198,29,114,2,42,209,203,141,99,42,22,43,99,145,7,175,151,241,210, +232,47,123,177,68,236,84,87,139,108,92,213,40,247,237,217,43,219,240,246, +239,31,252,240,49,105,3,73,62,185,171,82,223,15,96,42,142,1,144,179,153, +95,154,71,52,69,188,81,188,59,29,149,58,109,84,11,215,28,179,102,171,215, +136,97,205,55,191,45,183,252,230,175,203,59,191,252,162,156,25,207,74,182, +2,31,144,68,203,159,205,168,36,49,86,24,196,42,170,199,207,190,36,151,219, +175,203,211,103,206,97,109,77,2,93,6,82,169,32,40,10,220,22,206,158,205, +108,217,223,224,79,29,93,154,113,162,248,44,22,147,241,176,192,83,105,90, +191,73,127,13,39,240,26,207,196,181,105,88,168,59,250,164,246,255,74,24, +12,240,250,206,143,202,223,54,52,203,243,117,53,184,253,225,194,111,196, +134,32,153,210,28,40,5,231,113,244,179,236,63,175,141,244,202,87,207,60, +41,237,185,62,121,199,59,222,38,95,117,214,200,159,190,52,225,199,133,116, +208,79,242,139,91,220,110,122,78,67,176,240,86,241,205,121,182,135,121, +226,206,153,209,180,64,60,132,114,58,123,36,113,226,180,188,121,207,157, +178,243,42,250,113,14,108,23,98,80,167,78,12,250,178,152,156,210,58,225, +114,168,33,236,97,208,95,58,3,136,78,169,134,186,31,105,120,132,129,55, +231,214,223,106,133,224,156,4,161,160,213,134,234,207,94,196,172,6,212, +63,128,228,7,22,11,61,69,57,148,47,151,167,215,172,198,109,16,87,247,204, +111,98,32,2,196,34,199,174,191,44,47,116,95,148,251,126,230,110,57,152, +175,151,127,188,138,237,94,89,156,222,5,204,35,36,4,147,98,49,220,190,53, +234,200,31,89,46,164,240,249,171,103,98,224,218,178,71,158,145,173,205, +205,114,111,47,238,249,209,213,232,157,240,2,210,115,118,210,44,10,229, +53,224,240,45,99,227,100,129,119,168,115,21,85,58,1,248,58,52,103,233,8, +28,91,183,130,10,137,209,77,201,169,77,119,232,176,97,10,62,210,186,120, +241,98,244,113,92,16,71,218,72,131,231,249,125,29,89,121,100,245,26,180, +16,238,65,178,112,67,240,168,17,46,15,116,202,185,190,86,217,125,247,94, +249,203,190,132,156,236,231,90,254,133,169,114,94,2,53,74,233,253,225,2, +234,9,2,20,251,6,36,213,219,47,251,203,241,2,202,8,54,202,86,153,205,159, +150,19,64,28,0,106,107,167,190,159,126,204,159,197,188,49,74,145,181,159, +25,147,80,236,33,128,213,13,41,6,126,190,219,182,120,130,76,18,232,193, +7,53,248,210,86,254,26,206,57,240,131,127,58,46,231,177,123,248,85,124, +180,145,95,241,90,140,33,9,174,13,247,73,111,118,88,170,118,110,147,63, +185,148,195,102,17,216,97,156,85,153,199,176,91,225,183,132,240,96,120, +158,152,139,12,6,136,238,229,171,178,173,126,181,108,192,35,103,93,53,183, +128,172,184,175,129,126,246,142,99,6,30,211,9,80,202,60,199,44,229,17,197, +69,24,38,227,97,65,183,182,239,111,193,14,8,65,85,141,48,125,210,215,129, +145,255,211,134,12,44,153,239,251,141,123,114,14,239,218,103,49,16,92,0, +94,76,53,163,225,120,225,218,80,47,182,167,137,201,233,202,90,249,78,219, +4,54,112,152,49,234,13,158,209,178,132,12,196,124,242,45,55,15,168,5,58, +186,164,49,145,146,155,48,5,188,32,3,65,56,212,0,218,32,88,161,153,8,176, +160,156,230,140,180,64,241,132,243,240,65,14,192,37,176,22,96,212,58,220, +234,21,116,66,202,3,113,160,146,189,241,199,192,102,60,96,103,24,25,141, +219,186,92,6,247,185,41,190,36,178,52,195,82,40,176,158,177,65,73,173,175, +149,47,119,23,229,153,49,188,195,128,178,24,54,155,97,43,227,190,67,173, +101,4,103,185,209,71,150,144,137,51,54,142,87,204,139,210,196,29,211,217, +154,231,53,120,105,93,53,0,234,196,232,148,213,116,18,204,155,199,252,17, +22,209,237,249,4,224,82,25,127,226,71,1,102,171,15,230,249,41,110,198,243, +109,213,8,120,216,51,113,28,247,69,92,228,129,98,85,6,124,57,179,12,35, +221,180,12,224,54,135,31,151,90,170,161,22,200,230,49,75,150,140,202,203, +88,126,142,207,253,8,182,18,152,221,160,138,236,103,147,229,101,114,25, +239,125,143,225,186,170,103,143,189,232,16,15,224,71,211,105,44,61,195, +24,71,175,115,46,74,154,98,56,39,160,159,190,101,124,43,27,43,34,218,30, +246,168,89,162,33,74,139,48,22,224,16,200,1,248,240,35,224,74,0,107,163, +245,59,35,32,192,33,248,79,157,8,1,82,122,175,158,227,88,96,185,12,170, +151,193,90,128,72,93,25,166,186,230,110,253,44,146,183,86,220,84,178,187, +177,12,219,191,47,114,10,120,206,186,43,203,112,253,105,124,120,117,254, +250,216,172,116,16,104,193,167,214,224,97,207,105,187,11,157,233,178,57, +222,104,47,66,234,84,26,76,70,18,88,34,192,14,250,125,235,135,56,234,103, +206,189,9,244,251,5,124,101,83,239,238,97,89,131,56,220,181,67,123,14,235, +183,68,155,37,114,162,36,82,133,21,62,91,106,81,15,250,204,109,242,120, +29,220,89,187,74,158,172,196,10,32,200,118,69,12,23,156,64,44,156,216,90, +136,113,130,46,96,26,240,150,4,11,201,100,158,56,139,32,0,147,132,14,10, +55,104,241,188,48,63,76,133,206,115,168,254,194,53,241,210,24,249,107,24, +172,192,224,194,208,29,36,240,173,222,74,168,187,101,151,59,38,93,162,213, +208,2,243,200,219,116,27,121,41,175,169,148,71,214,120,50,20,165,150,154, +39,81,112,13,11,113,0,114,104,56,7,79,172,70,146,232,219,23,40,245,169, +183,129,40,135,2,178,224,27,13,176,144,194,231,140,179,192,170,76,207,195, +130,236,219,129,70,192,185,146,129,194,243,15,14,252,210,135,80,113,172, +170,212,176,169,121,113,125,94,57,222,201,111,196,6,19,203,78,0,22,69,65, +45,192,20,49,249,84,64,29,58,111,170,149,239,86,225,193,252,194,146,45, +32,103,63,10,8,144,195,196,78,71,37,230,252,23,160,145,40,62,29,3,168,218, +71,30,1,240,116,251,135,159,245,82,172,69,16,128,73,8,110,24,124,235,14, +1,207,90,225,238,192,203,227,65,79,246,44,78,102,26,111,34,190,155,145, +100,77,157,220,180,192,73,27,102,187,18,134,61,243,24,62,27,159,90,91,43, +95,218,20,145,158,152,63,5,187,76,133,113,135,178,97,140,118,184,178,135, +91,203,234,83,65,18,97,14,162,177,11,240,248,240,40,0,31,145,225,103,14, +184,161,53,151,106,22,73,128,48,224,116,227,66,166,116,3,172,22,252,57, +227,199,129,159,206,248,205,80,85,164,241,138,120,224,83,181,74,176,205, +0,150,71,173,144,22,152,161,232,153,188,10,24,7,100,177,100,188,119,231, +106,249,220,90,142,5,230,64,103,166,12,102,241,211,119,21,241,134,210,21, +76,74,92,111,72,73,25,26,70,28,51,170,250,76,3,154,97,230,97,33,186,10, +180,126,30,83,9,128,66,88,173,101,170,27,209,43,209,48,9,15,182,118,216, +55,0,111,179,67,235,207,190,128,129,95,43,162,205,212,250,253,120,69,60, +91,194,46,67,219,241,49,136,38,60,233,91,216,83,0,91,198,242,218,28,11, +140,164,177,197,236,170,114,249,214,222,26,249,122,29,238,8,166,221,180, +44,170,68,140,69,210,137,50,121,162,169,76,50,21,120,69,141,4,192,228,144, +57,240,254,35,220,252,28,31,203,15,27,157,8,210,86,62,157,4,254,249,210, +21,128,34,25,46,115,129,238,233,45,126,106,197,149,20,216,204,217,75,31, +158,63,63,142,116,11,61,178,102,253,86,57,144,25,91,22,121,207,95,232,236, +49,216,176,6,198,177,213,236,198,6,249,236,173,41,121,178,6,36,8,175,212, +156,61,233,140,33,220,39,201,193,12,224,75,117,229,114,120,27,94,95,67, +131,81,224,49,117,77,13,16,28,32,1,247,61,208,174,193,207,233,134,137,160, +41,93,1,213,192,210,25,192,166,92,154,65,37,205,173,28,109,2,63,13,124, +205,13,170,61,131,81,191,131,197,244,58,75,168,158,51,255,176,27,152,104, +149,216,186,205,242,32,222,230,108,40,224,107,99,51,230,57,115,242,149, +240,45,96,37,209,8,118,10,43,236,104,146,79,223,81,33,143,212,67,13,224, +105,225,92,253,245,76,245,208,175,166,227,182,183,191,170,202,57,120,91, +131,55,80,91,30,82,255,166,11,136,67,158,1,9,72,8,95,27,48,63,163,1,252, +214,62,29,124,158,47,131,41,157,0,129,250,159,13,124,76,250,20,187,160, +254,143,205,15,190,94,0,242,41,96,120,228,246,201,174,173,119,202,91,71, +6,116,137,244,242,92,30,10,152,166,86,23,34,51,62,25,44,96,196,158,198, +100,82,102,247,6,249,244,189,181,242,185,77,152,92,226,140,247,2,136,192, +37,51,101,136,87,0,160,143,222,84,39,127,112,127,83,230,232,142,122,175, +28,147,0,9,248,241,176,90,32,225,143,5,44,9,248,136,155,110,118,9,92,250, +197,253,10,167,142,1,66,132,88,134,65,224,28,157,243,108,162,178,45,127, +182,112,84,58,251,20,180,211,16,34,96,121,247,66,12,64,242,134,142,75,242, +230,127,35,31,184,114,74,158,195,94,125,109,229,85,152,53,91,26,13,60,128, +224,166,49,35,136,85,56,11,53,252,50,186,30,32,58,159,199,231,64,199,212, +182,102,249,223,213,41,121,250,124,175,124,252,194,132,220,135,233,229, +100,30,117,11,110,209,144,59,234,10,93,38,81,248,241,179,200,71,154,202, +229,239,246,54,200,241,189,27,164,184,118,109,85,28,221,8,183,125,117,144, +63,183,166,229,192,144,154,46,130,169,103,51,49,132,134,160,151,107,108, +146,128,77,140,36,96,222,156,173,156,98,88,252,20,143,197,157,44,130,0, +115,20,132,73,29,175,112,29,239,45,157,48,173,127,90,157,103,79,9,209,229, +176,248,17,107,3,183,221,253,115,242,177,199,190,40,191,143,126,51,71,117, +184,224,60,166,229,14,16,156,161,140,228,174,141,73,249,45,120,24,192,149, +56,115,229,133,96,62,226,102,235,215,63,223,166,220,57,75,152,90,211,40, +167,86,85,203,39,55,247,203,222,214,33,185,255,218,132,220,217,147,145, +245,120,93,172,28,47,143,20,147,113,25,192,243,135,51,141,41,121,100,203, +42,57,182,181,81,220,245,77,82,129,193,45,95,17,243,160,22,28,172,233,226, +18,55,46,83,35,81,248,80,93,73,160,46,156,249,245,99,153,49,188,82,198, +26,113,70,83,235,61,3,1,160,30,166,93,116,233,167,203,75,0,222,183,102, +143,128,154,124,218,183,192,214,111,235,12,85,232,246,61,37,177,205,191, +34,15,238,121,163,180,227,83,243,127,179,126,139,46,158,96,107,41,217,176, +245,99,73,249,90,180,58,214,102,174,193,60,224,81,8,168,118,49,20,3,1,0, +144,106,2,18,208,12,204,120,59,150,74,85,72,100,243,102,57,187,110,173, +188,184,107,76,18,35,227,82,53,158,145,20,214,19,22,65,176,113,60,80,202, +96,54,49,81,93,43,213,149,171,176,198,0,13,66,1,55,4,32,232,4,31,251,169, +226,160,139,148,195,146,53,62,71,209,206,152,53,129,193,185,11,230,83,3, +104,203,231,245,235,179,22,6,210,248,164,48,39,75,250,93,70,2,224,98,139, +45,104,46,167,75,108,253,182,254,184,92,60,219,112,218,191,41,169,93,63, +47,63,63,214,39,217,43,47,201,255,91,183,89,242,80,135,124,125,106,161, +134,43,110,70,241,221,128,119,196,241,248,21,87,120,80,211,82,156,51,27, +5,2,128,79,182,126,44,17,11,107,2,235,38,96,32,73,13,102,46,35,120,181, +220,91,135,42,3,224,12,128,37,144,85,32,113,13,226,50,63,18,70,215,239, +177,47,199,31,171,64,219,192,14,112,81,71,186,217,202,13,234,4,27,135,175, +169,88,190,178,130,141,92,3,194,215,207,136,240,127,101,105,0,92,100,238, +40,42,134,215,158,74,109,253,72,161,134,23,157,31,196,226,137,127,194,38, +81,239,146,95,133,16,27,46,158,145,47,173,221,36,189,88,47,16,199,155,59, +80,138,54,246,13,54,239,214,176,179,144,196,240,186,213,253,163,35,242, +59,123,171,229,171,231,39,32,232,153,141,205,41,220,239,179,253,219,115, +213,6,22,124,107,107,184,105,187,140,199,42,179,29,243,87,41,70,108,112, +160,247,210,9,59,246,225,252,214,128,78,234,32,6,201,201,107,224,166,24, +142,109,213,76,67,95,181,253,244,81,83,107,93,16,114,3,1,80,28,226,206, +122,97,51,95,238,140,190,203,163,1,56,229,139,7,62,82,56,131,66,56,84,94, +130,225,109,99,166,19,36,248,103,169,190,227,1,249,48,212,233,182,23,159, +146,175,148,85,203,115,181,141,50,166,171,134,216,130,76,25,148,33,213, +59,251,210,74,140,218,247,247,246,202,123,178,35,242,192,62,108,23,147, +192,187,254,179,161,239,87,145,237,149,64,178,197,89,240,3,27,126,225,241, +0,55,186,182,241,233,111,104,192,138,24,183,37,0,213,53,241,161,66,167, +22,208,209,60,220,252,66,137,131,81,189,18,0,108,213,125,138,52,158,31, +159,100,33,9,144,145,11,173,103,180,3,61,252,3,62,129,97,1,203,192,128, +69,16,192,210,54,168,138,58,188,60,110,251,60,246,182,11,31,113,79,205, +33,116,198,139,207,246,138,211,241,45,73,108,220,47,7,26,223,39,219,79, +61,43,39,59,175,202,211,156,84,41,95,37,125,9,108,217,207,214,4,128,107, +240,194,196,238,244,152,220,159,25,149,59,43,19,210,184,109,13,182,26,196, +27,68,233,185,122,126,21,111,208,218,3,160,195,160,35,127,235,31,83,240, +113,22,14,87,10,88,26,208,6,114,10,140,143,25,79,73,0,246,253,168,40,109, +198,97,255,111,74,183,192,35,30,148,136,197,89,211,160,235,160,97,154,32, +64,125,252,31,150,51,15,185,195,209,103,115,151,76,0,76,91,76,91,106,11, +176,138,184,47,202,159,66,25,100,237,50,25,106,2,39,35,110,231,147,18,169, +220,32,245,251,238,144,55,143,238,148,3,215,219,100,184,183,91,6,134,250, +177,148,223,65,203,141,72,13,132,85,95,153,146,138,13,235,241,133,48,104, +35,14,188,40,205,121,140,66,70,144,21,104,99,51,63,171,17,168,19,116,44, +0,208,141,86,48,26,192,250,25,122,48,23,171,1,166,17,64,177,35,248,36,129, +25,11,104,153,74,3,19,215,227,166,217,22,99,186,1,184,222,49,240,250,125, +255,32,66,248,122,150,1,124,102,87,50,1,192,222,115,81,44,108,224,32,198, +200,24,118,1,115,254,30,223,82,46,113,228,31,190,160,25,221,104,5,44,103, +188,29,79,147,59,177,120,168,78,42,54,243,104,192,115,3,60,102,198,210, +47,209,173,220,57,93,139,135,55,208,4,188,215,54,6,2,158,199,240,26,180, +69,195,86,16,217,186,213,207,64,107,194,166,147,192,116,23,86,51,152,148, +33,2,104,153,6,92,182,222,41,93,0,74,49,198,183,3,224,217,200,77,92,18, +130,228,141,97,12,192,188,41,100,189,11,50,194,158,188,34,164,93,14,21, +80,50,1,98,201,186,199,188,220,208,163,82,86,254,32,62,31,163,47,117,186, +133,147,168,140,81,89,147,53,92,70,23,128,209,126,21,159,111,241,210,131, +126,89,104,33,92,89,193,199,163,196,156,61,147,246,78,86,200,115,149,79, +85,140,26,171,58,183,96,147,12,16,185,146,192,16,65,91,61,59,1,248,177, +11,224,57,91,63,227,76,118,9,38,61,253,108,159,110,250,110,86,199,128,201, +59,5,78,247,152,81,63,235,133,58,19,64,84,95,7,137,36,2,129,7,97,248,230, +29,191,133,196,9,35,70,209,15,70,16,252,153,8,176,12,90,96,17,168,221,63, +158,243,138,31,119,178,153,207,227,41,239,5,55,123,46,19,139,245,73,44, +5,1,225,235,96,126,215,197,171,92,126,3,161,4,43,144,85,40,190,32,21,206, +133,0,111,171,68,160,167,30,166,181,27,176,217,158,77,11,231,245,224,176, +90,1,23,199,207,213,42,25,72,2,222,158,218,3,254,58,157,139,225,191,157, +214,181,182,78,253,250,241,38,31,3,131,78,54,47,228,171,36,243,109,67,56, +146,27,255,4,89,153,64,219,39,66,96,47,225,41,149,47,138,146,53,0,211,165, +82,31,188,6,235,215,5,143,73,178,35,103,182,151,57,238,62,76,110,220,135, +39,95,119,70,221,232,166,88,18,31,221,33,40,208,204,88,100,131,149,173, +126,105,175,32,139,234,149,148,9,136,160,231,198,87,91,51,91,52,14,3,190, +79,12,130,238,31,6,60,165,137,250,105,92,230,1,45,100,135,201,4,79,159, +232,105,73,68,209,144,84,27,51,241,133,131,26,128,159,217,97,190,28,40, +114,12,194,91,69,18,143,41,204,155,65,150,232,33,1,42,41,204,103,184,66, +190,37,59,23,69,128,201,82,222,62,88,190,246,237,207,226,252,89,92,207, +95,142,117,237,104,140,59,206,142,120,54,126,55,168,123,15,196,113,59,4, +178,25,132,40,211,171,41,226,162,176,83,198,143,147,16,148,27,141,66,13, +161,27,200,73,4,67,134,160,181,219,86,63,197,158,36,132,37,2,109,115,123, +104,194,152,159,2,141,130,204,224,47,116,239,175,97,236,235,73,12,163,234, +245,238,64,243,224,87,207,72,58,116,20,40,147,135,118,15,170,6,144,165, +173,56,43,79,99,50,193,218,181,165,153,37,18,96,106,225,213,235,47,244, +195,135,7,150,0,203,159,202,197,29,141,89,241,118,161,75,123,189,231,70, +239,193,21,129,16,178,65,9,65,237,5,205,192,197,66,188,211,249,81,27,21, +50,10,53,68,48,52,80,232,84,248,10,161,31,70,80,66,221,128,130,101,90,168, +142,17,168,218,117,156,64,149,78,141,64,131,156,124,144,217,239,59,184, +199,227,186,0,26,15,175,159,83,67,144,28,30,6,122,208,152,72,199,121,13, +3,190,230,1,18,224,204,16,128,194,33,216,60,2,22,152,252,53,195,37,254, +44,43,1,110,168,203,246,11,253,232,11,142,192,159,135,200,233,109,107,138, +241,178,29,110,198,57,128,201,214,123,113,61,183,65,244,205,32,68,82,165, +130,27,76,190,238,182,210,132,32,220,1,196,112,90,248,13,41,252,51,191, +21,242,140,176,26,128,44,17,232,67,224,194,93,2,207,73,5,198,183,234,27, +218,142,45,26,131,64,110,48,202,233,108,206,241,71,113,174,3,78,198,245, +201,165,36,195,121,80,7,37,68,8,124,37,128,74,17,63,244,135,101,56,101, +61,23,101,175,44,1,166,87,233,214,203,189,40,176,23,222,134,16,207,239, +93,87,76,200,78,60,113,221,15,117,119,0,221,197,109,248,184,195,198,120, +18,143,21,121,113,232,50,72,134,229,38,4,100,14,65,155,195,18,1,178,167, +248,253,26,251,36,192,153,2,226,135,89,95,181,45,65,20,64,159,8,28,196, +41,49,64,0,52,115,142,253,129,181,22,49,57,202,167,138,39,161,56,226,71, +78,246,208,10,240,124,178,76,173,17,129,14,52,128,95,61,90,244,55,63,116, +44,218,252,104,9,48,189,154,119,159,237,70,5,186,225,253,4,85,103,250,133, +125,235,147,94,97,119,49,235,236,199,197,31,64,183,113,43,72,209,28,79, +242,81,33,34,64,59,224,33,159,209,134,211,243,90,224,185,133,216,70,231, +185,109,117,244,179,32,27,60,120,102,125,25,230,199,133,131,173,60,0,79, +65,164,6,48,15,145,56,46,48,4,224,172,159,33,48,117,66,148,218,64,211,49, +31,205,204,228,105,243,133,109,74,81,135,137,67,231,12,4,80,133,176,12, +131,235,31,47,1,204,117,6,191,21,119,29,239,194,9,143,199,232,153,126,250, +206,166,100,212,219,149,207,57,247,98,43,247,123,32,212,189,176,155,64, +8,188,241,9,38,64,67,56,96,132,54,6,38,152,193,24,0,167,7,88,152,17,106, +35,132,156,129,31,147,33,115,5,75,179,48,145,9,188,137,51,153,143,241,34, +9,120,96,49,7,60,12,248,190,186,215,164,126,124,132,153,63,100,202,132, +106,56,14,8,178,245,253,88,60,7,141,51,176,94,47,122,174,43,15,178,152, +211,241,138,34,192,244,154,86,220,119,130,239,146,241,0,33,34,145,204,19, +251,155,19,110,113,119,209,117,15,64,42,24,71,68,111,129,124,72,8,222,67, +169,122,8,107,8,109,145,122,31,111,230,138,166,231,191,60,231,83,65,48, +116,244,127,253,32,115,198,210,166,198,157,44,223,146,96,210,199,184,224, +207,36,51,17,128,26,145,199,18,205,43,154,0,83,175,205,243,202,239,151, +118,248,241,248,1,9,145,253,225,93,27,19,110,100,79,177,16,57,128,230,6, +66,68,118,99,48,105,8,1,37,221,213,151,25,158,24,205,127,31,138,247,205, +56,93,59,41,48,66,98,254,84,192,232,143,105,235,253,187,98,97,128,210,95, +139,129,86,6,105,24,15,63,54,134,158,115,68,15,7,7,124,81,16,177,8,155, +70,231,0,48,250,215,248,126,26,45,85,221,147,121,104,225,136,175,121,49, +161,201,220,56,232,214,128,192,147,49,124,51,147,159,13,91,152,253,19,68, +128,233,23,228,121,169,7,228,26,124,121,124,79,126,47,18,205,222,117,215, +134,136,91,118,11,54,84,188,23,183,86,241,116,177,248,245,255,249,87,23, +159,255,250,255,121,240,127,96,33,199,239,122,216,0,194,165,138,32,62,97, +96,225,197,105,91,26,11,174,158,249,192,154,48,133,14,216,224,143,0,50, +204,255,227,253,58,135,124,17,5,31,89,243,150,143,197,192,159,19,57,250, +146,39,211,240,220,166,247,207,97,153,252,232,80,195,92,53,185,218,234, +210,72,126,176,239,171,103,175,46,13,96,5,48,139,253,25,15,31,131,9,8,241, +29,198,218,238,71,45,79,69,255,32,157,45,84,96,232,246,17,200,111,93,36, +129,46,67,135,113,136,64,32,40,84,254,7,160,242,20,127,12,35,81,252,56, +234,7,127,222,195,19,100,189,91,7,192,58,24,228,40,22,145,13,89,12,187, +2,2,32,142,139,41,81,106,4,251,164,82,243,68,190,26,199,148,166,110,250, +107,157,88,38,221,28,235,248,126,230,114,112,30,152,165,51,224,39,88,3, +4,82,152,215,113,234,151,30,225,50,165,255,188,245,11,15,254,25,238,201, +247,120,121,231,0,150,94,237,199,74,157,61,128,4,243,16,92,135,133,127, +95,45,232,3,24,184,45,224,106,171,54,0,22,252,35,56,248,35,5,152,138,233, +216,232,241,120,42,240,161,31,31,238,104,55,64,45,160,7,86,5,147,56,193, +97,194,45,25,52,79,228,77,45,161,255,126,57,116,43,9,88,212,50,155,87,5, +1,172,204,174,124,226,209,160,203,136,160,203,216,179,254,129,13,145,104, +108,175,91,44,98,80,25,59,128,81,248,110,12,226,155,98,73,60,213,130,134, +224,173,156,1,154,64,113,148,78,192,241,167,141,48,68,24,56,173,246,176, +132,32,104,218,186,9,168,37,0,128,215,55,126,105,211,31,54,193,15,226,193, +109,201,64,18,240,79,129,135,191,218,122,33,90,184,185,164,165,43,128,210, +215,3,88,97,254,164,219,30,186,12,92,131,37,196,119,35,31,250,80,236,174, +7,164,25,176,239,117,169,33,34,222,129,120,36,182,27,19,54,33,66,24,80, +217,223,83,221,155,219,65,3,26,187,5,243,0,151,109,31,196,81,204,252,48, +75,0,216,236,10,204,107,223,166,75,160,70,184,81,43,216,116,198,14,72,16, +22,186,97,90,216,103,81,238,87,149,6,152,75,66,222,193,131,188,109,159, +36,196,215,62,20,10,97,194,206,0,0,2,85,73,68,65,84,123,67,182,188,57,226, +120,123,157,92,254,128,27,137,239,143,67,105,160,219,104,138,38,147,28, +5,104,203,213,22,140,150,202,215,192,84,117,35,19,106,8,182,83,174,238, +9,90,119,136,4,218,29,16,120,223,79,215,11,48,174,18,100,178,139,176,218, +96,70,2,144,190,193,170,82,184,23,105,94,35,192,44,130,243,62,56,149,16, +31,130,134,24,250,217,186,102,44,126,223,27,1,33,162,209,216,126,60,205, +217,131,89,191,245,241,100,130,75,254,137,56,30,127,91,244,113,74,82,216, +195,7,152,139,66,49,143,49,9,62,210,176,43,176,119,10,26,31,113,245,189, +64,213,52,204,120,54,19,193,171,213,75,51,88,109,52,87,1,75,203,252,167, +57,245,135,160,33,178,217,166,102,116,5,123,48,45,249,122,108,1,179,31, +95,66,219,139,107,110,194,39,111,117,166,82,65,196,18,53,238,244,53,9,44, +186,0,156,27,18,128,12,8,47,242,92,109,115,206,247,18,249,130,42,53,196, +208,133,151,37,221,217,142,229,231,188,205,240,13,156,232,73,176,225,98, +241,65,239,153,220,121,235,189,24,251,53,2,44,70,106,51,164,225,160,242, +125,205,159,108,114,98,209,61,8,222,15,13,141,129,165,236,69,235,110,226, +178,33,206,63,240,131,15,4,154,123,5,89,245,175,192,3,104,245,87,224,9, +62,227,225,109,35,104,130,145,139,47,99,149,124,135,33,0,251,125,51,44, +120,4,140,250,61,239,217,52,215,98,44,201,188,70,128,37,137,111,246,196, +28,34,62,252,215,159,108,246,138,5,140,27,34,251,1,230,1,244,241,123,161, +234,155,16,20,163,6,40,130,8,69,188,119,24,110,253,147,218,128,4,192,103, +114,46,93,148,108,55,22,196,98,27,59,244,20,103,240,243,89,41,203,30,244, +14,45,125,53,16,107,255,26,1,102,199,112,89,67,72,136,251,255,226,227,205, +57,215,217,131,209,158,18,194,113,139,123,65,140,38,76,32,198,72,2,110, +81,163,132,32,49,216,45,64,207,143,95,188,32,185,238,158,94,172,17,251, +28,110,77,255,202,123,122,140,143,211,151,205,188,70,128,101,19,101,105, +25,145,16,183,254,225,251,154,157,98,100,15,122,135,253,0,252,0,52,2,8, +225,54,97,167,36,213,16,185,209,241,236,196,133,151,15,58,67,35,159,245, +142,231,248,218,213,178,155,215,8,176,236,34,93,92,134,36,196,134,223,125, +87,147,83,44,238,197,39,97,95,143,238,162,54,55,58,248,200,196,23,94,120, +20,3,245,21,27,169,191,70,128,197,225,245,83,147,234,255,3,213,255,144, +162,166,47,238,11,0,0,0,0,73,69,78,68,174,66,96,130}; + +static size_t xml_res_size_1 = 188; +static unsigned char xml_res_file_1[] = { +60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, +110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, +115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, +47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, +47,119,120,120,114,99,34,62,10,32,32,60,111,98,106,101,99,116,32,99,108, +97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61, +34,112,108,117,103,105,110,34,62,103,105,122,109,111,115,95,103,105,122, +109,111,115,95,98,105,116,109,97,112,115,46,99,112,112,36,112,108,117,103, +105,110,46,112,110,103,60,47,111,98,106,101,99,116,62,10,60,47,114,101, +115,111,117,114,99,101,62,10}; + +void wxC8028InitBitmapResources() +{ + + // Check for memory FS. If not present, load the handler: + { + wxMemoryFSHandler::AddFile(wxT("XRC_resource/dummy_file"), wxT("dummy one")); + wxFileSystem fsys; + wxFSFile *f = fsys.OpenFile(wxT("memory:XRC_resource/dummy_file")); + wxMemoryFSHandler::RemoveFile(wxT("XRC_resource/dummy_file")); + if (f) delete f; + else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase); + } + + XRC_ADD_FILE(wxT("XRC_resource/gizmos_gizmos_bitmaps.cpp$plugin.png"), xml_res_file_0, xml_res_size_0, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/gizmos_gizmos_bitmaps.cpp$C__src_codelite_Gizmos_gizmos_gizmos_bitmaps.xrc"), xml_res_file_1, xml_res_size_1, wxT("text/xml")); + wxXmlResource::Get()->Load(wxT("memory:XRC_resource/gizmos_gizmos_bitmaps.cpp$C__src_codelite_Gizmos_gizmos_gizmos_bitmaps.xrc")); +} diff -Nru codelite-8.0.1+dfsg2/Gizmos/gizmos.wxcp codelite-9.0+dfsg/Gizmos/gizmos.wxcp --- codelite-8.0.1+dfsg2/Gizmos/gizmos.wxcp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Gizmos/gizmos.wxcp 2015-10-11 13:56:07.000000000 +0000 @@ -1,1142 +1,1174 @@ { - "metadata": { - "m_generatedFilesDir": ".", - "m_objCounter": 44, - "m_includeFiles": [], - "m_bitmapFunction": "wxC8028InitBitmapResources", - "m_bitmapsFile": "gizmos_gizmos_bitmaps.cpp", - "m_GenerateCodeTypes": 1, - "m_outputFileName": "gizmos_base", - "m_firstWindowId": 1000, - "m_useEnum": false, - "m_templateClasses": [] - }, - "windows": [{ - "m_type": 4450, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": ["wxDEFAULT_DIALOG_STYLE"], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "PluginWizardBase" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Title:", - "m_value": "New Plugin Wizard" - }, { - "type": "virtualFolderPicker", - "m_label": "Virtual Folder:", - "m_path": "Gizmos:Wizard" - }, { - "type": "choice", - "m_label": "Centre:", - "m_selection": 1, - "m_options": ["", "wxBOTH", "wxVERTICAL", "wxHORIZONTAL"] - }, { - "type": "string", - "m_label": "Inherited Class", - "m_value": "PluginWizard" - }, { - "type": "string", - "m_label": "File:", - "m_value": "PluginWizard" - }, { - "type": "string", - "m_label": "Class Decorator", - "m_value": "" - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File:", - "m_path": "plugin.png" - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File (16x16) :", - "m_path": "" - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File (32x32) :", - "m_path": "" - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File (64x64) :", - "m_path": "" - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File (128x128):", - "m_path": "" - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File (256x256):", - "m_path": "" - }], - "m_events": [{ - "m_eventName": "wxEVT_WIZARD_PAGE_CHANGING", - "m_eventClass": "wxWizardEvent", - "m_eventHandler": "wxWizardEventHandler", - "m_functionNameAndSignature": "OnPageChanging(wxWizardEvent& event)", - "m_description": "The page is being changed (this event can be vetoed).", - "m_noBody": false - }, { - "m_eventName": "wxEVT_WIZARD_FINISHED", - "m_eventClass": "wxWizardEvent", - "m_eventHandler": "wxWizardEventHandler", - "m_functionNameAndSignature": "OnFinish(wxWizardEvent& event)", - "m_description": "The wizard finished button was pressed.", - "m_noBody": false - }], - "m_children": [{ - "m_type": 4451, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": ["wxTAB_TRAVERSAL"], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "500,300" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_wizardPage1" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File:", - "m_path": "" - }], - "m_events": [], - "m_children": [{ - "m_type": 4401, - "proportion": 1, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "boxSizer10" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4403, - "proportion": 1, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "flexGridSizer12" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "# Columns:", - "m_value": "2" - }, { - "type": "string", - "m_label": "# Rows:", - "m_value": "0" - }, { - "type": "string", - "m_label": "Growable columns:", - "m_value": "1" - }, { - "type": "string", - "m_label": "Growable rows:", - "m_value": "" - }, { - "type": "string", - "m_label": "Horizontal gap:", - "m_value": "0" - }, { - "type": "string", - "m_label": "Vertical gap:", - "m_value": "0" - }], - "m_events": [], - "m_children": [{ - "m_type": 4405, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT", "wxALIGN_CENTER_VERTICAL"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_staticText14" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Label:", - "m_value": "Plugin name:" - }, { - "type": "string", - "m_label": "Wrap:", - "m_value": "-1" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4406, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_textCtrlName" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "Set the plugin name.\\nThe name should be a valid C++ variable name" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": true - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Value:", - "m_value": "" - }, { - "type": "string", - "m_label": "Max Length:", - "m_value": "0" - }, { - "type": "bool", - "m_label": "Auto Complete Directories:", - "m_value": false - }, { - "type": "bool", - "m_label": "Auto Complete Files:", - "m_value": false - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4405, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT", "wxALIGN_CENTER_VERTICAL"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_staticText18" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Label:", - "m_value": "Description:" - }, { - "type": "string", - "m_label": "Wrap:", - "m_value": "-1" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4406, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_textCtrlDescription" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "Provide the plugin a short description" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Value:", - "m_value": "" - }, { - "type": "string", - "m_label": "Max Length:", - "m_value": "0" - }, { - "type": "bool", - "m_label": "Auto Complete Directories:", - "m_value": false - }, { - "type": "bool", - "m_label": "Auto Complete Files:", - "m_value": false - }], - "m_events": [], - "m_children": [] - }] - }] - }] - }, { - "m_type": 4451, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": ["wxTAB_TRAVERSAL"], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "500,300" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_wizardPage2" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File:", - "m_path": "" - }], - "m_events": [], - "m_children": [{ - "m_type": 4401, - "proportion": 1, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "boxSizer22" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4403, - "proportion": 1, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "flexGridSizer24" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "# Columns:", - "m_value": "2" - }, { - "type": "string", - "m_label": "# Rows:", - "m_value": "0" - }, { - "type": "string", - "m_label": "Growable columns:", - "m_value": "1" - }, { - "type": "string", - "m_label": "Growable rows:", - "m_value": "" - }, { - "type": "string", - "m_label": "Horizontal gap:", - "m_value": "0" - }, { - "type": "string", - "m_label": "Vertical gap:", - "m_value": "0" - }], - "m_events": [], - "m_children": [{ - "m_type": 4405, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT", "wxALIGN_CENTER_VERTICAL"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_staticText42" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Label:", - "m_value": "codelite root dir:" - }, { - "type": "string", - "m_label": "Wrap:", - "m_value": "-1" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4432, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": ["wxDIRP_DEFAULT_STYLE", "wxDIRP_USE_TEXTCTRL", "wxDIRP_DIR_MUST_EXIST"], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_dirPickerCodeliteDir" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "Select the location of codelite's source tree" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Value:", - "m_value": "" - }, { - "type": "string", - "m_label": "Message:", - "m_value": "Select a folder" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4405, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT", "wxALIGN_CENTER_VERTICAL"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_staticText26" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Label:", - "m_value": "Project path:" - }, { - "type": "string", - "m_label": "Wrap:", - "m_value": "-1" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4432, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": ["wxDIRP_DEFAULT_STYLE", "wxDIRP_USE_TEXTCTRL", "wxDIRP_DIR_MUST_EXIST"], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "350,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_dirPickerPluginPath" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "Select the plugin project path" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Value:", - "m_value": "" - }, { - "type": "string", - "m_label": "Message:", - "m_value": "Select a folder" - }], - "m_events": [{ - "m_eventName": "wxEVT_COMMAND_DIRPICKER_CHANGED", - "m_eventClass": "wxFileDirPickerEvent", - "m_eventHandler": "wxFileDirPickerEventHandler", - "m_functionNameAndSignature": "OnProjectPathChanged(wxFileDirPickerEvent& event)", - "m_description": "The user changed the directory selected in the control either using the button or using text control\n(see wxDIRP_USE_TEXTCTRL; note that in this case the event is fired only if the user's input is valid, e.g. an existing directory path).", - "m_noBody": false - }], - "m_children": [] - }, { - "m_type": 4454, - "proportion": 1, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "Spacer40" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "0,0" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4406, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": ["wxTE_READONLY"], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_textCtrlPreview" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Value:", - "m_value": "" - }, { - "type": "string", - "m_label": "Max Length:", - "m_value": "0" - }, { - "type": "bool", - "m_label": "Auto Complete Directories:", - "m_value": false - }, { - "type": "bool", - "m_label": "Auto Complete Files:", - "m_value": false - }], - "m_events": [], - "m_children": [] - }] - }] - }] - }] - }] + "metadata": { + "m_generatedFilesDir": ".", + "m_objCounter": 44, + "m_includeFiles": [], + "m_bitmapFunction": "wxC8028InitBitmapResources", + "m_bitmapsFile": "gizmos_gizmos_bitmaps.cpp", + "m_GenerateCodeTypes": 1, + "m_outputFileName": "gizmos_base", + "m_firstWindowId": 1000, + "m_useEnum": false, + "m_templateClasses": [] + }, + "windows": [{ + "m_type": 4450, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxDEFAULT_DIALOG_STYLE"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "PluginWizardBase" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Enable Window Persistency:", + "m_value": true + }, { + "type": "string", + "m_label": "Title:", + "m_value": "New Plugin Wizard" + }, { + "type": "virtualFolderPicker", + "m_label": "Virtual Folder:", + "m_path": "Gizmos:Wizard" + }, { + "type": "choice", + "m_label": "Centre:", + "m_selection": 1, + "m_options": ["", "wxBOTH", "wxVERTICAL", "wxHORIZONTAL"] + }, { + "type": "string", + "m_label": "Inherited Class", + "m_value": "PluginWizard" + }, { + "type": "string", + "m_label": "File:", + "m_value": "PluginWizard" + }, { + "type": "string", + "m_label": "Class Decorator", + "m_value": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "plugin.png" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (16x16) :", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (32x32) :", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (64x64) :", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (128x128):", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (256x256):", + "m_path": "" + }], + "m_events": [{ + "m_eventName": "wxEVT_WIZARD_PAGE_CHANGING", + "m_eventClass": "wxWizardEvent", + "m_eventHandler": "wxWizardEventHandler", + "m_functionNameAndSignature": "OnPageChanging(wxWizardEvent& event)", + "m_description": "The page is being changed (this event can be vetoed).", + "m_noBody": false + }, { + "m_eventName": "wxEVT_WIZARD_FINISHED", + "m_eventClass": "wxWizardEvent", + "m_eventHandler": "wxWizardEventHandler", + "m_functionNameAndSignature": "OnFinish(wxWizardEvent& event)", + "m_description": "The wizard finished button was pressed.", + "m_noBody": false + }], + "m_children": [{ + "m_type": 4451, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxTAB_TRAVERSAL"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "500,300" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_wizardPage1" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "boxSizer10" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4403, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "flexGridSizer12" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "# Columns:", + "m_value": "2" + }, { + "type": "string", + "m_label": "# Rows:", + "m_value": "0" + }, { + "type": "string", + "m_label": "Growable columns:", + "m_value": "1" + }, { + "type": "string", + "m_label": "Growable rows:", + "m_value": "" + }, { + "type": "string", + "m_label": "Horizontal gap:", + "m_value": "0" + }, { + "type": "string", + "m_label": "Vertical gap:", + "m_value": "0" + }], + "m_events": [], + "m_children": [{ + "m_type": 4405, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT", "wxALIGN_CENTER_VERTICAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_staticText14" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Label:", + "m_value": "Plugin name:" + }, { + "type": "string", + "m_label": "Wrap:", + "m_value": "-1" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4406, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_textCtrlName" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "Set the plugin name.\\nThe name should be a valid C++ variable name" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": true + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Value:", + "m_value": "" + }, { + "type": "string", + "m_label": "Text Hint", + "m_value": "" + }, { + "type": "string", + "m_label": "Max Length:", + "m_value": "0" + }, { + "type": "bool", + "m_label": "Auto Complete Directories:", + "m_value": false + }, { + "type": "bool", + "m_label": "Auto Complete Files:", + "m_value": false + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4405, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT", "wxALIGN_CENTER_VERTICAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_staticText18" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Label:", + "m_value": "Description:" + }, { + "type": "string", + "m_label": "Wrap:", + "m_value": "-1" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4406, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_textCtrlDescription" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "Provide the plugin a short description" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Value:", + "m_value": "" + }, { + "type": "string", + "m_label": "Text Hint", + "m_value": "" + }, { + "type": "string", + "m_label": "Max Length:", + "m_value": "0" + }, { + "type": "bool", + "m_label": "Auto Complete Directories:", + "m_value": false + }, { + "type": "bool", + "m_label": "Auto Complete Files:", + "m_value": false + }], + "m_events": [], + "m_children": [] + }] + }] + }] + }, { + "m_type": 4451, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxTAB_TRAVERSAL"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "500,300" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_wizardPage2" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "boxSizer22" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4403, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "flexGridSizer24" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "# Columns:", + "m_value": "2" + }, { + "type": "string", + "m_label": "# Rows:", + "m_value": "0" + }, { + "type": "string", + "m_label": "Growable columns:", + "m_value": "1" + }, { + "type": "string", + "m_label": "Growable rows:", + "m_value": "" + }, { + "type": "string", + "m_label": "Horizontal gap:", + "m_value": "0" + }, { + "type": "string", + "m_label": "Vertical gap:", + "m_value": "0" + }], + "m_events": [], + "m_children": [{ + "m_type": 4405, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT", "wxALIGN_CENTER_VERTICAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_staticText42" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Label:", + "m_value": "codelite root dir:" + }, { + "type": "string", + "m_label": "Wrap:", + "m_value": "-1" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4432, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxDIRP_DEFAULT_STYLE", "wxDIRP_USE_TEXTCTRL", "wxDIRP_DIR_MUST_EXIST"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_dirPickerCodeliteDir" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "Select the location of codelite's source tree" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Value:", + "m_value": "" + }, { + "type": "string", + "m_label": "Message:", + "m_value": "Select a folder" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4405, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT", "wxALIGN_CENTER_VERTICAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_staticText26" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Label:", + "m_value": "Project path:" + }, { + "type": "string", + "m_label": "Wrap:", + "m_value": "-1" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4432, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxDIRP_DEFAULT_STYLE", "wxDIRP_USE_TEXTCTRL", "wxDIRP_DIR_MUST_EXIST"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "350,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_dirPickerPluginPath" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "Select the plugin project path" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Value:", + "m_value": "" + }, { + "type": "string", + "m_label": "Message:", + "m_value": "Select a folder" + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_DIRPICKER_CHANGED", + "m_eventClass": "wxFileDirPickerEvent", + "m_eventHandler": "wxFileDirPickerEventHandler", + "m_functionNameAndSignature": "OnProjectPathChanged(wxFileDirPickerEvent& event)", + "m_description": "The user changed the directory selected in the control either using the button or using text control\n(see wxDIRP_USE_TEXTCTRL; note that in this case the event is fired only if the user's input is valid, e.g. an existing directory path).", + "m_noBody": false + }], + "m_children": [] + }, { + "m_type": 4454, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "Spacer40" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "0,0" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4406, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxTE_READONLY"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_textCtrlPreview" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Value:", + "m_value": "" + }, { + "type": "string", + "m_label": "Text Hint", + "m_value": "" + }, { + "type": "string", + "m_label": "Max Length:", + "m_value": "0" + }, { + "type": "bool", + "m_label": "Auto Complete Directories:", + "m_value": false + }, { + "type": "bool", + "m_label": "Auto Complete Files:", + "m_value": false + }], + "m_events": [], + "m_children": [] + }] + }] + }] + }] + }] } \ No newline at end of file diff -Nru codelite-8.0.1+dfsg2/Gizmos/newclassbasedlg.cpp codelite-9.0+dfsg/Gizmos/newclassbasedlg.cpp --- codelite-8.0.1+dfsg2/Gizmos/newclassbasedlg.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Gizmos/newclassbasedlg.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -133,7 +133,7 @@ m_staticText8Font.SetWeight(wxFONTWEIGHT_BOLD); m_staticText8->SetFont(m_staticText8Font); - bSizer8->Add(m_staticText8, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5); + bSizer8->Add(m_staticText8, 0, wxALL, 5); m_checkBoxInline = new wxCheckBox(this, wxID_ANY, _("Inline class"), wxDefaultPosition, wxSize(-1, -1), 0); m_checkBoxInline->SetValue(false); @@ -164,7 +164,7 @@ m_staticText7 = new wxStaticText(m_collPane2->GetPane(), wxID_ANY, _("Inherits:"), wxDefaultPosition, wxSize(-1, -1), 0); - boxSizer6->Add(m_staticText7, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5); + boxSizer6->Add(m_staticText7, 0, wxALL, 5); wxBoxSizer* bSizer15 = new wxBoxSizer(wxHORIZONTAL); diff -Nru codelite-8.0.1+dfsg2/Gizmos/newclassbasedlg.h codelite-9.0+dfsg/Gizmos/newclassbasedlg.h --- codelite-8.0.1+dfsg2/Gizmos/newclassbasedlg.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Gizmos/newclassbasedlg.h 2015-10-11 13:56:07.000000000 +0000 @@ -4,8 +4,8 @@ // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// -#ifndef NEWCLASSWIZARD_BASE_CLASSES_H -#define NEWCLASSWIZARD_BASE_CLASSES_H +#ifndef CODELITE_GIZMOS_NEWCLASSWIZARD_BASE_CLASSES_H +#define CODELITE_GIZMOS_NEWCLASSWIZARD_BASE_CLASSES_H #include #include diff -Nru codelite-8.0.1+dfsg2/Gizmos/newclassdlg.cpp codelite-9.0+dfsg/Gizmos/newclassdlg.cpp --- codelite-8.0.1+dfsg2/Gizmos/newclassdlg.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Gizmos/newclassdlg.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -367,12 +367,12 @@ kinds.Add(wxT("namespace")); OpenResourceDialog dlg(this, m_mgr, ""); - if(dlg.ShowModal() == wxID_OK) { + if(dlg.ShowModal() == wxID_OK && dlg.GetSelection()) { wxString nameSpace; - if( dlg.GetSelection().m_scope.IsEmpty() == false && dlg.GetSelection().m_scope != wxT("")) { - nameSpace << dlg.GetSelection().m_scope << wxT("::"); + if( dlg.GetSelection()->m_scope.IsEmpty() == false && dlg.GetSelection()->m_scope != wxT("")) { + nameSpace << dlg.GetSelection()->m_scope << wxT("::"); } - nameSpace << dlg.GetSelection().m_name; + nameSpace << dlg.GetSelection()->m_name; m_textCtrlNamespace->ChangeValue(nameSpace); } } diff -Nru codelite-8.0.1+dfsg2/Gizmos/newclasswizard_gizmos_bitmaps.cpp codelite-9.0+dfsg/Gizmos/newclasswizard_gizmos_bitmaps.cpp --- codelite-8.0.1+dfsg2/Gizmos/newclasswizard_gizmos_bitmaps.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Gizmos/newclasswizard_gizmos_bitmaps.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,47 +1,47 @@ -// -// This file was automatically generated by wxrc, do not edit by hand. -// - -#include - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#include -#include -#include -#include - -#if wxCHECK_VERSION(2,8,5) && wxABI_VERSION >= 20805 - #define XRC_ADD_FILE(name, data, size, mime) \ - wxMemoryFSHandler::AddFileWithMimeType(name, data, size, mime) -#else - #define XRC_ADD_FILE(name, data, size, mime) \ - wxMemoryFSHandler::AddFile(name, data, size) -#endif - -static size_t xml_res_size_0 = 90; -static unsigned char xml_res_file_0[] = { -60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, -110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, -115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, -47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, -47,119,120,120,114,99,34,47,62,10}; - -void wxC3999InitBitmapResources() -{ - - // Check for memory FS. If not present, load the handler: - { - wxMemoryFSHandler::AddFile(wxT("XRC_resource/dummy_file"), wxT("dummy one")); - wxFileSystem fsys; - wxFSFile *f = fsys.OpenFile(wxT("memory:XRC_resource/dummy_file")); - wxMemoryFSHandler::RemoveFile(wxT("XRC_resource/dummy_file")); - if (f) delete f; - else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase); - } - - XRC_ADD_FILE(wxT("XRC_resource/newclasswizard_gizmos_bitmaps.cpp$C__src_codelite_Gizmos_newclasswizard_gizmos_bitmaps.xrc"), xml_res_file_0, xml_res_size_0, wxT("text/xml")); - wxXmlResource::Get()->Load(wxT("memory:XRC_resource/newclasswizard_gizmos_bitmaps.cpp$C__src_codelite_Gizmos_newclasswizard_gizmos_bitmaps.xrc")); -} +// +// This file was automatically generated by wxrc, do not edit by hand. +// + +#include + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +#include +#include +#include +#include + +#if wxCHECK_VERSION(2,8,5) && wxABI_VERSION >= 20805 + #define XRC_ADD_FILE(name, data, size, mime) \ + wxMemoryFSHandler::AddFileWithMimeType(name, data, size, mime) +#else + #define XRC_ADD_FILE(name, data, size, mime) \ + wxMemoryFSHandler::AddFile(name, data, size) +#endif + +static size_t xml_res_size_0 = 90; +static unsigned char xml_res_file_0[] = { +60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, +110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, +115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, +47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, +47,119,120,120,114,99,34,47,62,10}; + +void wxC3999InitBitmapResources() +{ + + // Check for memory FS. If not present, load the handler: + { + wxMemoryFSHandler::AddFile(wxT("XRC_resource/dummy_file"), wxT("dummy one")); + wxFileSystem fsys; + wxFSFile *f = fsys.OpenFile(wxT("memory:XRC_resource/dummy_file")); + wxMemoryFSHandler::RemoveFile(wxT("XRC_resource/dummy_file")); + if (f) delete f; + else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase); + } + + XRC_ADD_FILE(wxT("XRC_resource/newclasswizard_gizmos_bitmaps.cpp$_home_david_devel_git_CL_Gizmos_newclasswizard_gizmos_bitmaps.xrc"), xml_res_file_0, xml_res_size_0, wxT("text/xml")); + wxXmlResource::Get()->Load(wxT("memory:XRC_resource/newclasswizard_gizmos_bitmaps.cpp$_home_david_devel_git_CL_Gizmos_newclasswizard_gizmos_bitmaps.xrc")); +} diff -Nru codelite-8.0.1+dfsg2/Gizmos/newclasswizard.wxcp codelite-9.0+dfsg/Gizmos/newclasswizard.wxcp --- codelite-8.0.1+dfsg2/Gizmos/newclasswizard.wxcp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Gizmos/newclasswizard.wxcp 2015-10-11 13:56:07.000000000 +0000 @@ -1502,7 +1502,7 @@ "gbSpan": ",", "gbPosition": ",", "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_VERTICAL"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], "m_properties": [{ "type": "winid", "m_label": "ID:", @@ -1937,7 +1937,7 @@ "gbSpan": ",", "gbPosition": ",", "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_VERTICAL"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], "m_properties": [{ "type": "winid", "m_label": "ID:", diff -Nru codelite-8.0.1+dfsg2/Gizmos/newinheritancedlg.cpp codelite-9.0+dfsg/Gizmos/newinheritancedlg.cpp --- codelite-8.0.1+dfsg2/Gizmos/newinheritancedlg.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Gizmos/newinheritancedlg.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -59,14 +59,14 @@ dlg.GetFilters().Add(TagEntry::KIND_CLASS); dlg.GetFilters().Add(TagEntry::KIND_STRUCT); - if(dlg.ShowModal() == wxID_OK) { + if((dlg.ShowModal() == wxID_OK) && (dlg.GetSelection() != NULL)) { wxString parentName; - if(dlg.GetSelection().m_scope.IsEmpty() == false && dlg.GetSelection().m_scope != wxT("")) { - parentName << dlg.GetSelection().m_scope << wxT("::"); + if(dlg.GetSelection()->m_scope.IsEmpty() == false && dlg.GetSelection()->m_scope != wxT("")) { + parentName << dlg.GetSelection()->m_scope << wxT("::"); } - parentName << dlg.GetSelection().m_name; + parentName << dlg.GetSelection()->m_name; m_textCtrlInhertiance->SetValue(parentName); - m_fileName = dlg.GetSelection().m_file; + m_fileName = dlg.GetSelection()->m_file; } } diff -Nru codelite-8.0.1+dfsg2/HelpPlugin/CMakeLists.txt codelite-9.0+dfsg/HelpPlugin/CMakeLists.txt --- codelite-8.0.1+dfsg2/HelpPlugin/CMakeLists.txt 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/HelpPlugin/CMakeLists.txt 2015-10-11 13:56:07.000000000 +0000 @@ -40,11 +40,6 @@ add_definitions(-fPIC) endif() -# Add RPATH -if (UNIX) - set (LINKER_OPTIONS -Wl,-rpath,"${PLUGINS_DIR}") -endif (UNIX) - FILE(GLOB SRCS "*.cpp") # Define the output @@ -57,8 +52,6 @@ ${wxWidgets_LIBRARIES} libcodelite plugin - wxsqlite3 - sqlite3lib ) # Use CodeLite's macro: CL_INSTALL_PLUGIN which handles both OSX and Linux installation diff -Nru codelite-8.0.1+dfsg2/HelpPlugin/helpplugin.cpp codelite-9.0+dfsg/HelpPlugin/helpplugin.cpp --- codelite-8.0.1+dfsg2/HelpPlugin/helpplugin.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/HelpPlugin/helpplugin.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -56,7 +56,7 @@ return tb; } -void HelpPlugin::CreatePluginMenu(wxMenu* pluginsMenu) +void HelpPlugin::CreatePluginMenu(wxMenu* pluginsMenu) { wxMenu* menu = new wxMenu; menu->Append(XRCID("ID_ZEAL_SETTINGS"), _("Settings...")); @@ -83,7 +83,7 @@ wxString modSelection = selection.BeforeFirst('\n'); modSelection.Trim().Trim(false); if(modSelection.IsEmpty()) return; - + // Ensure we only use 15 chars of the selected text, otherwise the menu label // will overflow if(modSelection.length() > 15) { @@ -92,7 +92,7 @@ if(selection.Contains("\n")) { modSelection << "..."; } - + // Get the context menu wxMenu* menu = event.GetMenu(); wxBitmap helpBitmap = wxXmlResource::Get()->LoadBitmap("svn_info"); @@ -105,24 +105,8 @@ void HelpPlugin::OnHelp(wxCommandEvent& event) { - wxString query = DoBuildQueryString(); - if(query.IsEmpty()) return; -#ifdef __WXGTK__ - wxFileName fnZeal("/usr/bin", "zeal"); - if(!fnZeal.Exists()) { - HelpPluginMessageDlg dlg(EventNotifier::Get()->TopFrame()); - dlg.ShowModal(); - } - wxString command; - command << fnZeal.GetFullPath() << " " - << "\"" << query << "\""; - ::wxExecute(command); -#else - if(!::wxLaunchDefaultBrowser(query)) { - HelpPluginMessageDlg dlg(EventNotifier::Get()->TopFrame()); - dlg.ShowModal(); - } -#endif + wxUnusedVar(event); + CallAfter(&HelpPlugin::DoHelp); } wxString HelpPlugin::DoBuildQueryString() @@ -187,3 +171,25 @@ HelpPluginSettingsDlg dlg(EventNotifier::Get()->TopFrame()); dlg.ShowModal(); } + +void HelpPlugin::DoHelp() +{ + wxString query = DoBuildQueryString(); + if(query.IsEmpty()) return; +#ifdef __WXGTK__ + wxFileName fnZeal("/usr/bin", "zeal"); + if(!fnZeal.Exists()) { + HelpPluginMessageDlg dlg(EventNotifier::Get()->TopFrame()); + dlg.ShowModal(); + } + wxString command; + command << fnZeal.GetFullPath() << " " + << "\"" << query << "\""; + ::wxExecute(command); +#else + if(!::wxLaunchDefaultBrowser(query)) { + HelpPluginMessageDlg dlg(EventNotifier::Get()->TopFrame()); + dlg.ShowModal(); + } +#endif +} diff -Nru codelite-8.0.1+dfsg2/HelpPlugin/helpplugin.h codelite-9.0+dfsg/HelpPlugin/helpplugin.h --- codelite-8.0.1+dfsg2/HelpPlugin/helpplugin.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/HelpPlugin/helpplugin.h 2015-10-11 13:56:07.000000000 +0000 @@ -11,6 +11,7 @@ void OnHelp(wxCommandEvent& event); void OnHelpSettings(wxCommandEvent& event); + void DoHelp(); // A proxy method so we can call the help async wxString DoBuildQueryString(); public: diff -Nru codelite-8.0.1+dfsg2/HelpPlugin/HelpPluginUI.h codelite-9.0+dfsg/HelpPlugin/HelpPluginUI.h --- codelite-8.0.1+dfsg2/HelpPlugin/HelpPluginUI.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/HelpPlugin/HelpPluginUI.h 2015-10-11 13:56:07.000000000 +0000 @@ -4,8 +4,8 @@ // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// -#ifndef HELPPLUGINUI_BASE_CLASSES_H -#define HELPPLUGINUI_BASE_CLASSES_H +#ifndef CODELITE_HELPPLUGIN_HELPPLUGINUI_BASE_CLASSES_H +#define CODELITE_HELPPLUGIN_HELPPLUGINUI_BASE_CLASSES_H #include #include Binary files /tmp/0wlVVhsoFK/codelite-8.0.1+dfsg2/icons/fif-clear.png and /tmp/qKeBoHmecl/codelite-9.0+dfsg/icons/fif-clear.png differ Binary files /tmp/0wlVVhsoFK/codelite-8.0.1+dfsg2/icons/fif-menu.png and /tmp/qKeBoHmecl/codelite-9.0+dfsg/icons/fif-menu.png differ Binary files /tmp/0wlVVhsoFK/codelite-8.0.1+dfsg2/icons/resize.png and /tmp/qKeBoHmecl/codelite-9.0+dfsg/icons/resize.png differ diff -Nru codelite-8.0.1+dfsg2/InnoSetup/codelite64_mingw.iss codelite-9.0+dfsg/InnoSetup/codelite64_mingw.iss --- codelite-8.0.1+dfsg2/InnoSetup/codelite64_mingw.iss 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/InnoSetup/codelite64_mingw.iss 2015-10-11 13:56:07.000000000 +0000 @@ -5,7 +5,7 @@ AppName=CodeLite AppVerName=CodeLite AppPublisher=Eran Ifrah -AppVersion=8.0.0 +AppVersion=9.0.0 AppPublisherURL=http://codelite.org AppSupportURL=http://codelite.org AppUpdatesURL=http://codelite.org @@ -13,7 +13,7 @@ DefaultGroupName=CodeLite LicenseFile=license.txt OutputDir=output -OutputBaseFilename=codelite-amd64-8.0 +OutputBaseFilename=codelite-amd64-9.0.0 ChangesEnvironment=yes FlatComponentsList=yes SetupIconFile=box_software.ico @@ -26,7 +26,7 @@ ;; 64 bit setup ;;================================== #define CODELITE_ROOT "C:\src\codelite" -#define WXWIN "D:\src\wxWidgets_x64" +#define WXWIN "D:\src\wxWidgets" #define BINUTILS_DIR "D:\bin" @@ -149,8 +149,8 @@ [INI] [Registry] -Root: HKLM; Subkey: "Software\codelite\settings"; ValueType: string; ValueName: "InstallPath"; ValueData: "{app}" -Root: HKLM; Subkey: "Software\codelite\settings"; ValueType: string; ValueName: "PluginsDir"; ValueData: "{app}\plugins" +Root: HKLM; Subkey: "Software\codelite\settings"; ValueType: string; ValueName: "InstallPath"; ValueData: "{app}"; Flags: noerror +Root: HKLM; Subkey: "Software\codelite\settings"; ValueType: string; ValueName: "PluginsDir"; ValueData: "{app}\plugins"; Flags: noerror [UninstallDelete] Type: filesandordirs; Name: "{app}" diff -Nru codelite-8.0.1+dfsg2/InnoSetup/codelite_mingw.iss codelite-9.0+dfsg/InnoSetup/codelite_mingw.iss --- codelite-8.0.1+dfsg2/InnoSetup/codelite_mingw.iss 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/InnoSetup/codelite_mingw.iss 2015-10-11 13:56:07.000000000 +0000 @@ -5,7 +5,7 @@ AppName=CodeLite AppVerName=CodeLite AppPublisher=Eran Ifrah -AppVersion=8.0.0 +AppVersion=9.0.0 AppPublisherURL=http://codelite.org AppSupportURL=http://codelite.org AppUpdatesURL=http://codelite.org @@ -13,7 +13,7 @@ DefaultGroupName=CodeLite LicenseFile=license.txt OutputDir=output -OutputBaseFilename=codelite-x86-8.0 +OutputBaseFilename=codelite-x86-9.0.0 ChangesEnvironment=yes FlatComponentsList=yes SetupIconFile=box_software.ico @@ -154,8 +154,8 @@ Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\CodeLite"; WorkingDir: "{app}"; Filename: "{app}\codelite.exe"; Tasks: quicklaunchicon [Registry] -Root: HKLM; Subkey: "Software\codelite\settings"; ValueType: string; ValueName: "InstallPath"; ValueData: "{app}" -Root: HKLM; Subkey: "Software\codelite\settings"; ValueType: string; ValueName: "PluginsDir"; ValueData: "{app}\plugins" +Root: HKLM; Subkey: "Software\codelite\settings"; ValueType: string; ValueName: "InstallPath"; ValueData: "{app}"; Flags: noerror +Root: HKLM; Subkey: "Software\codelite\settings"; ValueType: string; ValueName: "PluginsDir"; ValueData: "{app}\plugins"; Flags: noerror [UninstallDelete] Type: filesandordirs; Name: "{app}" diff -Nru codelite-8.0.1+dfsg2/Interfaces/debugger.h codelite-9.0+dfsg/Interfaces/debugger.h --- codelite-8.0.1+dfsg2/Interfaces/debugger.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Interfaces/debugger.h 2015-10-11 13:56:07.000000000 +0000 @@ -63,27 +63,14 @@ }; // Watchpoint subtypes: write,read and both -enum WatchpointType { - WP_watch, - WP_rwatch, - WP_awatch -}; +enum WatchpointType { WP_watch, WP_rwatch, WP_awatch }; // The breakpoint origin: // Can be from the Editor (user clicked 'F9') // or from any other source (direct command to gdb, from the start up command etc) -enum BreakpointOrigin { - BO_Editor, - BO_Other -}; +enum BreakpointOrigin { BO_Editor, BO_Other }; -enum DisplayFormat { - DBG_DF_NATURAL = 0, - DBG_DF_HEXADECIMAL, - DBG_DF_BINARY, - DBG_DF_DECIMAL, - DBG_DF_OCTAL -}; +enum DisplayFormat { DBG_DF_NATURAL = 0, DBG_DF_HEXADECIMAL, DBG_DF_BINARY, DBG_DF_DECIMAL, DBG_DF_OCTAL }; //------------------------------------------------------- // Data structures used by the debugger @@ -101,44 +88,58 @@ wxString function; wxString file; wxString line; + bool active; }; struct ThreadEntry { - bool active; - long dbgid; + bool active; + long dbgid; wxString file; wxString line; wxString function; }; struct VariableObjChild { - int numChilds; // If this child has children (i.e. is this child a node or leaf) - wxString varName; // the name of the variable object node - wxString gdbId; // A unique name given by gdb which holds this node information for further queries + int numChilds; // If this child has children (i.e. is this child a node or leaf) + wxString varName; // the name of the variable object node + wxString gdbId; // A unique name given by gdb which holds this node information for further queries wxString value; - bool isAFake; // Sets to true of this variable object is a fake node + bool isAFake; // Sets to true of this variable object is a fake node wxString type; - VariableObjChild() : numChilds(0), isAFake(false) {} + VariableObjChild() + : numChilds(0) + , isAFake(false) + { + } }; struct VariableObject { - bool isPtr; // if this variable object is of type pointer - bool isPtrPtr; // if this variable object is of type pointer pointer - wxString gdbId; // GDB unique identifier for this variable object - wxString typeName; // the type of this variable object - int numChilds; // Number of children - bool has_more; // has_nore? - VariableObject() : isPtr(false), isPtrPtr(false), numChilds(0), has_more(false) {} + bool isPtr; // if this variable object is of type pointer + bool isPtrPtr; // if this variable object is of type pointer pointer + wxString gdbId; // GDB unique identifier for this variable object + wxString typeName; // the type of this variable object + int numChilds; // Number of children + bool has_more; // has_nore? + VariableObject() + : isPtr(false) + , isPtrPtr(false) + , numChilds(0) + , has_more(false) + { + } }; struct LocalVariable { wxString name; wxString value; wxString type; - bool updated; + bool updated; wxString gdbId; // Mac generates variable object for locals as well... - LocalVariable() : updated(false) {} + LocalVariable() + : updated(false) + { + } ~LocalVariable() {} }; @@ -161,66 +162,74 @@ }; typedef std::vector VariableObjChildren; -typedef std::vector StackEntryArray; -typedef std::vector ThreadEntryArray; -typedef std::vector LocalVariables; +typedef std::vector StackEntryArray; +typedef std::vector ThreadEntryArray; +typedef std::vector LocalVariables; typedef std::vector DisassembleEntryVec_t; -typedef std::vector DbgRegistersVec_t; +typedef std::vector DbgRegistersVec_t; -class BreakpointInfo: public SerializedObject +class BreakpointInfo : public SerializedObject { public: - class PredicateByFileAndLine { + class PredicateByFileAndLine + { wxString m_filename; - int m_line; + int m_line; + public: - PredicateByFileAndLine(const wxString &file, int line) : m_filename(file), m_line(line) {} - bool operator()(const BreakpointInfo& bp) const { - return m_filename == bp.file && m_line == bp.lineno; + PredicateByFileAndLine(const wxString& file, int line) + : m_filename(file) + , m_line(line) + { } + bool operator()(const BreakpointInfo& bp) const { return m_filename == bp.file && m_line == bp.lineno; } }; typedef std::vector Vec_t; + public: // Where the bp is: file/lineno, function name (e.g. main()) or the memory location - wxString file; - int lineno; - wxString watchpt_data; - wxString function_name; - bool regex; // Is the function_name a regex? - wxString memory_address; - // How to identify the bp. Because the debugger won't always be running, we need an internal id as well as the debugger's one - int internal_id; - int debugger_id; // -1 signifies not set - BreakpointType bp_type; // Is it a plain vanilla breakpoint, or a temporary one, or a watchpoint, or... - unsigned int ignore_number; // 0 means 'not ignored'. >0 is the number of times the bp must be hit before it becomes enabled - bool is_enabled; - bool is_temp; - WatchpointType watchpoint_type; // If this is a watchpoint, holds which sort it is - wxString commandlist; - wxString conditions; - wxString at; - wxString what; - BreakpointOrigin origin; - - BreakpointInfo(const BreakpointInfo& BI ): - file(BI.file), - lineno(BI.lineno), - watchpt_data(BI.watchpt_data), - function_name(BI.function_name), - regex(BI.regex), - memory_address(BI.memory_address), - internal_id(BI.internal_id), - debugger_id(BI.debugger_id), - bp_type(BI.bp_type), - ignore_number(BI.ignore_number), - is_enabled(BI.is_enabled), - is_temp (BI.is_temp), - watchpoint_type(BI.watchpoint_type), - commandlist(BI.commandlist), - conditions(BI.conditions), - at(BI.at), - what(BI.what), - origin(BI.origin) { + wxString file; + int lineno; + wxString watchpt_data; + wxString function_name; + bool regex; // Is the function_name a regex? + wxString memory_address; + // How to identify the bp. Because the debugger won't always be running, we need an internal id as well as the + // debugger's one + double internal_id; + double debugger_id; // -1 signifies not set + BreakpointType bp_type; // Is it a plain vanilla breakpoint, or a temporary one, or a watchpoint, or... + unsigned int + ignore_number; // 0 means 'not ignored'. >0 is the number of times the bp must be hit before it becomes enabled + bool is_enabled; + bool is_temp; + WatchpointType watchpoint_type; // If this is a watchpoint, holds which sort it is + wxString commandlist; + wxString conditions; + wxString at; + wxString what; + BreakpointOrigin origin; + + BreakpointInfo(const BreakpointInfo& BI) + : file(BI.file) + , lineno(BI.lineno) + , watchpt_data(BI.watchpt_data) + , function_name(BI.function_name) + , regex(BI.regex) + , memory_address(BI.memory_address) + , internal_id(BI.internal_id) + , debugger_id(BI.debugger_id) + , bp_type(BI.bp_type) + , ignore_number(BI.ignore_number) + , is_enabled(BI.is_enabled) + , is_temp(BI.is_temp) + , watchpoint_type(BI.watchpoint_type) + , commandlist(BI.commandlist) + , conditions(BI.conditions) + , at(BI.at) + , what(BI.what) + , origin(BI.origin) + { // Normalize the file name if(file.IsEmpty() == false) { wxFileName fn(file); @@ -229,19 +238,30 @@ } } - BreakpointInfo() : lineno(-1), regex(false), internal_id(wxNOT_FOUND), debugger_id(wxNOT_FOUND), bp_type(BP_type_break), - ignore_number(0), is_enabled(true), is_temp(false), watchpoint_type(WP_watch), origin(BO_Other) {} - - bool IsConditional() { - return ! conditions.IsEmpty(); - } - - int GetId() const { - int best_id = (this->debugger_id == -1 ? this->internal_id : this->debugger_id ); + BreakpointInfo() + : lineno(-1) + , regex(false) + , internal_id(wxNOT_FOUND) + , debugger_id(wxNOT_FOUND) + , bp_type(BP_type_break) + , ignore_number(0) + , is_enabled(true) + , is_temp(false) + , watchpoint_type(WP_watch) + , origin(BO_Other) + { + } + + bool IsConditional() { return !conditions.IsEmpty(); } + + double GetId() const + { + int best_id = (this->debugger_id == -1 ? this->internal_id : this->debugger_id); return best_id; } - - void Create(wxString filename, int line, int int_id, int ext_id = -1) { + + void Create(wxString filename, int line, int int_id, int ext_id = -1) + { wxFileName fn(filename); fn.Normalize(wxPATH_NORM_ALL & ~wxPATH_NORM_LONG); @@ -252,42 +272,46 @@ debugger_id = ext_id; } - BreakpointInfo& operator=(const BreakpointInfo& BI) { - file = BI.file; - lineno = BI.lineno; - watchpt_data = BI.watchpt_data; - function_name = BI.function_name; - regex = BI.regex; - memory_address = BI.memory_address; - internal_id = BI.internal_id; - debugger_id = BI.debugger_id; - bp_type = BI.bp_type; - ignore_number = BI.ignore_number; - is_enabled = BI.is_enabled; - is_temp = BI.is_temp; - watchpoint_type = BI.watchpoint_type; - commandlist = BI.commandlist; - conditions = BI.conditions; - at = BI.at; // Provided by the debugger, no need to serialize - what = BI.what; // Provided by the debugger, no need to serialize - origin = BI.origin; + BreakpointInfo& operator=(const BreakpointInfo& BI) + { + file = BI.file; + lineno = BI.lineno; + watchpt_data = BI.watchpt_data; + function_name = BI.function_name; + regex = BI.regex; + memory_address = BI.memory_address; + internal_id = BI.internal_id; + debugger_id = BI.debugger_id; + bp_type = BI.bp_type; + ignore_number = BI.ignore_number; + is_enabled = BI.is_enabled; + is_temp = BI.is_temp; + watchpoint_type = BI.watchpoint_type; + commandlist = BI.commandlist; + conditions = BI.conditions; + at = BI.at; // Provided by the debugger, no need to serialize + what = BI.what; // Provided by the debugger, no need to serialize + origin = BI.origin; return *this; } - bool operator==(const BreakpointInfo& BI) { - return ((origin == BI.origin) && (what == BI.what) && (at == BI.at) && (file == BI.file) && (lineno == BI.lineno) && (function_name == BI.function_name) && (memory_address == BI.memory_address) - && (bp_type == BI.bp_type) && (watchpt_data == BI.watchpt_data)&& (is_enabled == BI.is_enabled) - && (ignore_number == BI.ignore_number) && (conditions == BI.conditions) && (commandlist == BI.commandlist) && (is_temp == BI.is_temp) - && (bp_type==BP_type_watchpt ? (watchpoint_type == BI.watchpoint_type) : true) && (!function_name.IsEmpty() ? (regex == BI.regex) : true)); - } - - bool IsNull() const { - return internal_id == wxNOT_FOUND && debugger_id == wxNOT_FOUND; + bool operator==(const BreakpointInfo& BI) + { + return ((origin == BI.origin) && (what == BI.what) && (at == BI.at) && (file == BI.file) && + (lineno == BI.lineno) && (function_name == BI.function_name) && (memory_address == BI.memory_address) && + (bp_type == BI.bp_type) && (watchpt_data == BI.watchpt_data) && (is_enabled == BI.is_enabled) && + (ignore_number == BI.ignore_number) && (conditions == BI.conditions) && + (commandlist == BI.commandlist) && (is_temp == BI.is_temp) && + (bp_type == BP_type_watchpt ? (watchpoint_type == BI.watchpoint_type) : true) && + (!function_name.IsEmpty() ? (regex == BI.regex) : true)); } - + + bool IsNull() const { return internal_id == wxNOT_FOUND && debugger_id == wxNOT_FOUND; } + protected: // SerializedObject interface - virtual void Serialize(Archive& arch) { + virtual void Serialize(Archive& arch) + { arch.Write(wxT("file"), file); arch.Write(wxT("lineno"), lineno); arch.Write(wxT("function_name"), function_name); @@ -302,19 +326,20 @@ arch.Write(wxT("is_enabled"), is_enabled); arch.Write(wxT("ignore_number"), (int)ignore_number); arch.Write(wxT("conditions"), conditions); - arch.Write(wxT("origin"), (int)origin); + arch.Write(wxT("origin"), (int)origin); } - virtual void DeSerialize(Archive& arch) { + virtual void DeSerialize(Archive& arch) + { arch.Read(wxT("file"), file); arch.Read(wxT("lineno"), lineno); arch.Read(wxT("function_name"), function_name); arch.Read(wxT("memory_address"), memory_address); - + int tmpint; arch.Read(wxT("bp_type"), tmpint); bp_type = (BreakpointType)tmpint; - + arch.Read(wxT("watchpoint_type"), tmpint); watchpoint_type = (WatchpointType)tmpint; arch.Read(wxT("watchpt_data"), watchpt_data); @@ -323,11 +348,11 @@ arch.Read(wxT("regex"), regex); arch.Read(wxT("is_temp"), is_temp); arch.Read(wxT("is_enabled"), is_enabled); - + arch.Read(wxT("ignore_number"), tmpint); ignore_number = (unsigned int)tmpint; arch.Read(wxT("conditions"), conditions); - + arch.Read(wxT("origin"), tmpint); origin = (BreakpointOrigin)tmpint; } @@ -345,75 +370,73 @@ class BreakpointInfoArray : public SerializedObject { std::vector m_breakpoints; + public: - BreakpointInfoArray() { - } + BreakpointInfoArray() {} - virtual ~BreakpointInfoArray() { - } + virtual ~BreakpointInfoArray() {} - BreakpointInfoArray& operator=(const std::vector &breakpoints) { + BreakpointInfoArray& operator=(const std::vector& breakpoints) + { m_breakpoints = breakpoints; return *this; } - void SetBreakpoints(const std::vector& breakpoints) { - this->m_breakpoints = breakpoints; - } - const std::vector& GetBreakpoints() const { - return m_breakpoints; - } + void SetBreakpoints(const std::vector& breakpoints) { this->m_breakpoints = breakpoints; } + const std::vector& GetBreakpoints() const { return m_breakpoints; } public: - virtual void DeSerialize(Archive& arch) { + virtual void DeSerialize(Archive& arch) + { size_t bt_count(0); m_breakpoints.clear(); arch.Read(wxT("Count"), bt_count); - for (size_t i=0; i bpList; /// Breakpoint list wxArrayString cmds; /// Startup commands wxString ttyName; /// TTY to use wxArrayString searchPaths; /// Additional search paths to pass to the debugger bool enablePrettyPrinting; /// Should we enable pretty printing? - DebugSessionInfo() + DebugSessionInfo() : PID(wxNOT_FOUND) , enablePrettyPrinting(false) - {} + { + } }; class IDebuggerObserver; @@ -568,78 +602,52 @@ class IDebugger { protected: - IDebuggerObserver * m_observer; + IDebuggerObserver* m_observer; DebuggerInformation m_info; - EnvironmentConfig * m_env; - wxString m_name; - bool m_isRemoteDebugging; - bool m_isRemoteExtended; - wxString m_debuggeeProjectName; + EnvironmentConfig* m_env; + wxString m_name; + bool m_isRemoteDebugging; + bool m_isRemoteExtended; + wxString m_debuggeeProjectName; public: - IDebugger() : m_env(NULL), m_isRemoteDebugging(false) {}; - virtual ~IDebugger() {}; - void SetProjectName(const wxString &project) { - m_debuggeeProjectName = project; - } - void SetName(const wxString &name) { - m_name = name; - } - wxString GetName() const { - return m_name; - } + IDebugger() + : m_env(NULL) + , m_isRemoteDebugging(false){}; + virtual ~IDebugger(){}; + void SetProjectName(const wxString& project) { m_debuggeeProjectName = project; } + void SetName(const wxString& name) { m_name = name; } + wxString GetName() const { return m_name; } - void SetObserver(IDebuggerObserver *observer) { - m_observer = observer; - } + void SetObserver(IDebuggerObserver* observer) { m_observer = observer; } - IDebuggerObserver *GetObserver() { - return m_observer; - } + IDebuggerObserver* GetObserver() { return m_observer; } - void SetEnvironment(EnvironmentConfig *env) { - m_env = env; - } + void SetEnvironment(EnvironmentConfig* env) { m_env = env; } - virtual void SetDebuggerInformation(const DebuggerInformation& info) { - m_info = info; - } + virtual void SetDebuggerInformation(const DebuggerInformation& info) { m_info = info; } - DebuggerInformation GetDebuggerInformation() { - return m_info; - } + DebuggerInformation GetDebuggerInformation() { return m_info; } - void SetIsRemoteDebugging(bool isRemoteDebugging) { - this->m_isRemoteDebugging = isRemoteDebugging; - } + void SetIsRemoteDebugging(bool isRemoteDebugging) { this->m_isRemoteDebugging = isRemoteDebugging; } - bool GetIsRemoteDebugging() const { - return m_isRemoteDebugging; - } + bool GetIsRemoteDebugging() const { return m_isRemoteDebugging; } - void SetIsRemoteExtended(bool isRemoteExtended) { - this->m_isRemoteExtended = isRemoteExtended; - } + void SetIsRemoteExtended(bool isRemoteExtended) { this->m_isRemoteExtended = isRemoteExtended; } - bool GetIsRemoteExtended() const { - return m_isRemoteExtended; - } + bool GetIsRemoteExtended() const { return m_isRemoteExtended; } /** * \brief Sets the logging level 'on the fly' * \param level the new level */ - void EnableLogging(bool level) { - m_info.enableDebugLog = level; - } + void EnableLogging(bool level) { m_info.enableDebugLog = level; } /** * \brief Gets the current logging level * \return the current level */ - bool IsLoggingEnabled() const { - return m_info.enableDebugLog; - } + bool IsLoggingEnabled() const { return m_info.enableDebugLog; } //------------------------------------------------------------- // Debugger operations @@ -660,12 +668,13 @@ /** * \brief Run the program under the debugger. This method must be called *after* Start() has been called * \param args arguments to pass to the debuggee process - * \param comm the preferemd communication string, if this string is not empty, the debugger assumes remote debugging is on + * \param comm the preferemd communication string, if this string is not empty, the debugger assumes remote + * debugging is on * and will execute a different set of commands for connecting to the debuggee. * comm is in the format of HOST:PORT or tty for serial debugging - this feature is currently enabled in GDB only * \return true on success, false otherwise */ - virtual bool Run(const wxString &args, const wxString &comm) = 0; + virtual bool Run(const wxString& args, const wxString& comm) = 0; /** * \brief Stop the debugger @@ -687,7 +696,7 @@ * \return true on success, false otherwise */ virtual bool Next() = 0; - + /** * @brief perform "next instruction" command * @return true on success, false otherwise @@ -720,7 +729,7 @@ /** * \brief remove breakpoint by its ID */ - virtual bool RemoveBreak(int bid) = 0; + virtual bool RemoveBreak(double bid) = 0; /** * \brief clear all breakpoints set (gdb's 'clear' command) */ @@ -728,11 +737,11 @@ /** * \brief Enable or Disable a breakpoint */ - virtual bool SetEnabledState(const int bid, const bool enable) = 0; + virtual bool SetEnabledState(double bid, const bool enable) = 0; /** * \brief Set this breakpoint's Ignore count */ - virtual bool SetIgnoreLevel(const int bid, const int ignorecount) = 0; + virtual bool SetIgnoreLevel(double bid, const int ignorecount) = 0; /** * \brief Set this breakpoint's condition */ @@ -742,32 +751,35 @@ */ virtual bool SetCommands(const BreakpointInfo& bp) = 0; /** - * \brief ask the debugger to query about its file & line. Once the result arrives, the observer's UpdateFileLine() will be invoked + * \brief ask the debugger to query about its file & line. Once the result arrives, the observer's UpdateFileLine() + * will be invoked */ virtual bool QueryFileLine() = 0; - + /** * @brief disassemble the current file - * @param filename is the name of the file to disassemble - * @param lineNumber is the line number to disassemble around + * @param filename is the name of the file to disassemble + * @param lineNumber is the line number to disassemble around */ - virtual bool Disassemble(const wxString &filename, int lineNumber) = 0; + virtual bool Disassemble(const wxString& filename, int lineNumber) = 0; /** * \brief executes a command that does not yield any output from the debugger */ - virtual bool ExecuteCmd(const wxString &cmd) = 0; + virtual bool ExecuteCmd(const wxString& cmd) = 0; /** - * \brief ask the debugger to print the current stack local variable. When the results arrives, the observer->UpdateLocals() is called + * \brief ask the debugger to print the current stack local variable. When the results arrives, the + * observer->UpdateLocals() is called * \return true on success, false otherwise */ virtual bool QueryLocals() = 0; /** - * \brief list the current stack trace. once the results are received from the debugger, m_observer->UpdateStackList() is invoked + * \brief list the current stack trace. once the results are received from the debugger, + * m_observer->UpdateStackList() is invoked * \return true on success, false otherwise */ virtual bool ListFrames() = 0; - + /** * @brief execute the equivalent of gdb's 'info reg' command */ @@ -791,31 +803,34 @@ */ virtual bool SelectThread(long threadId) = 0; /** - * \brief the Poke() method is called at Idle() time by the application so the debugger can read the actual debugger process output and process it + * \brief the Poke() method is called at Idle() time by the application so the debugger can read the actual debugger + * process output and process it */ virtual void Poke() = 0; /** - * @brief return string to show the user as tip for expression. this is an async call. When this function is done, it will trigger a call to + * @brief return string to show the user as tip for expression. this is an async call. When this function is done, + * it will trigger a call to * IDebuggerObserver::UpdateTip() * @param dbgCommand debugger command to evaluate the tip (e.g. "print") * @param expression expression to evaluate * @return true if evaluation succeeded, false otherwise */ - virtual bool GetAsciiViewerContent(const wxString &dbgCommand, const wxString &expression) = 0; + virtual bool GetAsciiViewerContent(const wxString& dbgCommand, const wxString& expression) = 0; /** - * \brief resolve expression and return its actual type this is an async call. When this function is done, it will trigger a call to + * \brief resolve expression and return its actual type this is an async call. When this function is done, it will + * trigger a call to * IDebuggerObserver::UpdateTypeResolved() * \param expression expression to evaluate * \return true on success, false otherwise */ - virtual bool ResolveType(const wxString &expression, int userReason) = 0; + virtual bool ResolveType(const wxString& expression, int userReason) = 0; - //We provide two ways of evulating an expressions: - //The short one, which returns a string, and long one - //which returns a tree of the result - virtual bool EvaluateExpressionToString(const wxString &expression, const wxString &format) = 0; + // We provide two ways of evulating an expressions: + // The short one, which returns a string, and long one + // which returns a tree of the result + virtual bool EvaluateExpressionToString(const wxString& expression, const wxString& format) = 0; /** * \brief a request to display memory from address -> address + count. This is a synchronous call @@ -823,13 +838,13 @@ * \param count address range * \return true on success, false otherwise */ - virtual bool WatchMemory(const wxString &address, size_t count, size_t columns) = 0; + virtual bool WatchMemory(const wxString& address, size_t count, size_t columns) = 0; /** * \brief set memory at given address and of size count. the value to set must be a space delimited * hex values (e.g. '0x01 0x02 0x03') */ - virtual bool SetMemory(const wxString &address, size_t count, const wxString &hex_value) = 0; + virtual bool SetMemory(const wxString& address, size_t count, const wxString& hex_value) = 0; /** * \brief have the debugger list all breakpoints @@ -842,7 +857,7 @@ * @param newValue new value * this method does not produce any output */ - virtual void AssignValue(const wxString &expression, const wxString &newValue) = 0; + virtual void AssignValue(const wxString& expression, const wxString& newValue) = 0; // ---------------------------------------------------------------------------------------- // Variable object manipulation (GDB only) @@ -861,19 +876,19 @@ * @param expression the expression to create a variable object for * @param persistent make a presistent watch, else create a floating watch which is not bound to the creation frame */ - virtual bool CreateVariableObject(const wxString &expression, bool persistent, int userReason) = 0; + virtual bool CreateVariableObject(const wxString& expression, bool persistent, int userReason) = 0; /** * @brief delete variable object * @param name */ - virtual bool DeleteVariableObject(const wxString &name) = 0; + virtual bool DeleteVariableObject(const wxString& name) = 0; /** * @brief evaluate variable object * @param name variable object */ - virtual bool EvaluateVariableObject(const wxString &name, int userReason) = 0; + virtual bool EvaluateVariableObject(const wxString& name, int userReason) = 0; /** * @brief set the display format of a variable object @@ -881,7 +896,7 @@ * @param displayFormat * @return */ - virtual bool SetVariableObbjectDisplayFormat(const wxString &name, DisplayFormat displayFormat) = 0; + virtual bool SetVariableObbjectDisplayFormat(const wxString& name, DisplayFormat displayFormat) = 0; /** * @brief update the variable object content @@ -891,6 +906,11 @@ virtual bool UpdateVariableObject(const wxString& name, int userReason) = 0; /** + * @brief update watch + */ + virtual bool UpdateWatch(const wxString& name) = 0; + + /** * @brief set next statement to run at given file and line */ virtual bool Jump(wxString filename, int line) = 0; @@ -899,7 +919,7 @@ //----------------------------------------------------------- // Each debugger module must implement these two functions //----------------------------------------------------------- -typedef IDebugger* (*GET_DBG_CREATE_FUNC)(); -typedef DebuggerInfo (*GET_DBG_INFO_FUNC)(); +typedef IDebugger* (*GET_DBG_CREATE_FUNC)(); +typedef DebuggerInfo (*GET_DBG_INFO_FUNC)(); -#endif //DEBUGGER_H +#endif // DEBUGGER_H diff -Nru codelite-8.0.1+dfsg2/Interfaces/ieditor.h codelite-9.0+dfsg/Interfaces/ieditor.h --- codelite-8.0.1+dfsg2/Interfaces/ieditor.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Interfaces/ieditor.h 2015-10-11 13:56:07.000000000 +0000 @@ -165,7 +165,7 @@ * @brief return the word under the mouse pointer. * If a selection exists, return it instead */ - virtual wxString GetWordAtMousePointer() = 0; + virtual void GetWordAtMousePointer(wxString& word, wxRect& wordRect) = 0; /** * @brief return the EOL mode of the editor. @@ -321,7 +321,7 @@ * @brief Similar to the above but returns void, and is implemented asynchronously */ virtual void - FindAndSelectV(const wxString& pattern, const wxString& what, int from_pos = 0, NavMgr* navmgr = NULL) = 0; + FindAndSelectV(const wxString& pattern, const wxString& what, int pos = 0, NavMgr* navmgr = NULL) = 0; /** * @brief set a lexer to the editor @@ -383,7 +383,12 @@ * @brief center the editor around line and optionally a column */ virtual void CenterLine(int line, int col = wxNOT_FOUND) = 0; - + + /** + * @brief center the editor around line, keeping any selection + */ + virtual void CenterLinePreserveSelection(int line) = 0; + /** * @brief return a pointer to the underlying scintilla control */ diff -Nru codelite-8.0.1+dfsg2/Interfaces/imanager.h codelite-9.0+dfsg/Interfaces/imanager.h --- codelite-8.0.1+dfsg2/Interfaces/imanager.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Interfaces/imanager.h 2015-10-11 13:56:07.000000000 +0000 @@ -30,18 +30,18 @@ #include "iconfigtool.h" #include "wx/treectrl.h" #include "project.h" -#include "notebook_ex.h" +#include "Notebook.h" #include "optionsconfig.h" #include "queuecommand.h" #include #include "bitmap_loader.h" -#include "notebook_ex.h" #include #include "debugger.h" #include "clStatusBar.h" +class clWorkspaceView; class TagsManager; -class Workspace; +class clCxxWorkspace; class EnvironmentConfig; class JobQueue; class wxApp; @@ -73,6 +73,21 @@ enum eOutputPaneTab { kOutputTab_Build, kOutputTab_Output }; +// A struct representing a tab in the notebook control +struct clTab { + typedef std::vector Vec_t; + wxString text; + wxWindow* window; + wxBitmap bitmap; + bool isFile; + wxFileName filename; + clTab() + : window(NULL) + , isFile(false) + { + } +}; + //------------------------------------------------------------------ // Defines the interface of the manager //------------------------------------------------------------------ @@ -86,24 +101,64 @@ */ class IManager { + wxArrayString m_workspaceTabs; + wxArrayString m_outputTabs; + public: IManager() {} virtual ~IManager() {} + /** + * @brief return a list of all possible output tabs registered by the user + */ + const wxArrayString& GetOutputTabs() const { return m_outputTabs; } + + /** + * @brief return a list of all possible workspace tabs + */ + const wxArrayString& GetWorkspaceTabs() const { return m_workspaceTabs; } + + /** + * @brief register a workspace tab + */ + void AddWorkspaceTab(const wxString& tabLabel) { + if(m_workspaceTabs.Index(tabLabel) == wxNOT_FOUND) { + m_workspaceTabs.Add(tabLabel); + } + } + + /** + * @brief register output pane tab + */ + void AddOutputTab(const wxString& tabLabel) { + if(m_outputTabs.Index(tabLabel) == wxNOT_FOUND) { + m_outputTabs.Add(tabLabel); + } + } + /** * @brief show the output pane and if provided, select 'selectedWindow' * @param selectWindow tab within the 'Output Pane' to select, if empty don't change * the selection */ virtual void ShowOutputPane(const wxString& selectWindow = "") = 0; - - /** - * @brief toggle the output pane + + /** + * @brief show the toolbar. This only works when using the native toolbar + */ + virtual void ShowToolBar(bool show = true) = 0; + + /** + * @brief is the native toolbar visible? + */ + virtual bool IsToolBarShown() const = 0; + /** + * @brief toggle the output pane * @param selectWindow tab within the 'Output Pane' to select, if empty don't change - * the selection + * the selection */ virtual void ToggleOutputPane(const wxString& selectedWindow = "") = 0; - + // return the current editor /** * @brief return the active editor @@ -111,12 +166,12 @@ * editor open */ virtual IEditor* GetActiveEditor() = 0; - - /** - * @brief return the main frame's status bar + + /** + * @brief return the main frame's status bar */ virtual clStatusBar* GetStatusBar() = 0; - + /** * @brief open file and make it the active editor * @param fileName the file to open - use absolute path @@ -124,7 +179,7 @@ * @param lineno if lineno is not wxNOT_FOUD, the caret will placed on this line number * @return true if file opened */ - virtual bool + virtual IEditor* OpenFile(const wxString& fileName, const wxString& projectName = wxEmptyString, int lineno = wxNOT_FOUND) = 0; /** @@ -132,7 +187,7 @@ * @param rec browsing record * @return true on success false otherwise */ - virtual bool OpenFile(const BrowseRecord& rec) = 0; + virtual IEditor* OpenFile(const BrowseRecord& rec) = 0; /** * @brief return a pointer to the configuration tool @@ -213,10 +268,15 @@ */ virtual TagsManager* GetTagsManager() = 0; /** - * @brief return a pointer to the workspace manager - * @sa Workspace + * @brief return a pointer to the ** C++ ** workspace manager + */ + virtual clCxxWorkspace* GetWorkspace() = 0; + + /** + * @brief return the workspace view tab + * @return */ - virtual Workspace* GetWorkspace() = 0; + virtual clWorkspaceView* GetWorkspaceView() = 0; /** * @brief add files to a virtual folder in the project diff -Nru codelite-8.0.1+dfsg2/Interfaces/Interfaces.project codelite-9.0+dfsg/Interfaces/Interfaces.project --- codelite-8.0.1+dfsg2/Interfaces/Interfaces.project 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Interfaces/Interfaces.project 2015-10-11 13:56:07.000000000 +0000 @@ -34,6 +34,7 @@ + diff -Nru codelite-8.0.1+dfsg2/Interfaces/IWorkspace.h codelite-9.0+dfsg/Interfaces/IWorkspace.h --- codelite-8.0.1+dfsg2/Interfaces/IWorkspace.h 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/Interfaces/IWorkspace.h 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,74 @@ +#ifndef IWORKSPACE_H +#define IWORKSPACE_H + +#include +#include +#include +#include + +/** + * @class IWorkspace + * @brief an interface representing the workspace concept of CodeLite + * Each plugin that wants to implement a workspace must implement this interface + */ +class IWorkspace : public wxEvtHandler +{ +protected: + wxString m_workspaceType; + +public: + typedef std::list List_t; + +public: + IWorkspace() {} + virtual ~IWorkspace() {} + + /** + * @brief set the workspace type + * For example: "C++ Workspace", "PHP Workspace" etc + */ + void SetWorkspaceType(const wxString& type) { this->m_workspaceType = type; } + + /** + * @brief return the workspace name + */ + const wxString& GetWorkspaceType() const { return m_workspaceType; } + + /** + * @brief is this workspace support the build concept? + * e.g. for C++ workspace, the answer is 'true', for PHP workspace, this will be 'false' + */ + virtual bool IsBuildSupported() const = 0; + + /** + * @brief is this workspace support the project concept? + */ + virtual bool IsProjectSupported() const = 0; + + /** + * @brief return the file masking for this workspace + */ + virtual wxString GetFilesMask() const = 0; + + /** + * @brief return the project name of a file. + * If the workspace does not support projects, return an empty string + * If the we could not match a project for the given filename, return empty string + */ + virtual wxString GetProjectFromFile(const wxFileName& filename) const = 0; + + /** + * @brief return a list of files for this workspace + * @param files [output] list of files in absolute path + */ + virtual void GetWorkspaceFiles(wxArrayString& files) const = 0; + /** + * @brief return list of files belonged to the prokect. If the workspace does not support + * projects, do not modify 'files' + * @param projectName the project name + * @param files [output] list of files in absolute path + */ + virtual void GetProjectFiles(const wxString& projectName, wxArrayString& files) const = 0; +}; + +#endif // IWORKSPACE_H diff -Nru codelite-8.0.1+dfsg2/Interfaces/plugin.h codelite-9.0+dfsg/Interfaces/plugin.h --- codelite-8.0.1+dfsg2/Interfaces/plugin.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Interfaces/plugin.h 2015-10-11 13:56:07.000000000 +0000 @@ -49,7 +49,7 @@ #ifdef _WIN32 #define STDCALL __stdcall -#define EXPORT __declspec(dllexport) +#define EXPORT __declspec(dllexport) #else #define STDCALL #define EXPORT @@ -70,7 +70,7 @@ }; //------------------------------------------------------------------ -//each plugin must implement this interface +// each plugin must implement this interface //------------------------------------------------------------------ /** * @class IPlugin @@ -86,29 +86,28 @@ protected: wxString m_shortName; wxString m_longName; - IManager *m_mgr; + IManager* m_mgr; public: - IPlugin(IManager *manager) : m_mgr(manager) {} + IPlugin(IManager* manager) + : m_mgr(manager) + { + } virtual ~IPlugin() {} //----------------------------------------------- - //The interface + // The interface //----------------------------------------------- /** * @brief return the plugin's short name * @return */ - virtual const wxString &GetShortName() const { - return m_shortName; - } + virtual const wxString& GetShortName() const { return m_shortName; } /** * @brief return the plugin's long and more descriptive name * @return */ - virtual const wxString &GetLongName() const { - return m_longName; - } + virtual const wxString& GetLongName() const { return m_longName; } /** * When LiteEditor loads all the plugins, this function is called. If toolbar @@ -117,13 +116,13 @@ * \param parent toolbar parent, usually this is the main frame * \return toolbar or NULL */ - virtual clToolBar *CreateToolBar(wxWindow *parent) = 0; + virtual clToolBar* CreateToolBar(wxWindow* parent) = 0; /** * Every plugin can place a sub menu in the 'Plugins' Menu at the menu bar * \param pluginsMenu */ - virtual void CreatePluginMenu(wxMenu *pluginsMenu) = 0; + virtual void CreatePluginMenu(wxMenu* pluginsMenu) = 0; /** * \brief Call the plugin "shutdown" function @@ -137,7 +136,8 @@ * \param type menu type * \sa MenuType */ - virtual void HookPopupMenu(wxMenu *menu, MenuType type) { + virtual void HookPopupMenu(wxMenu* menu, MenuType type) + { wxUnusedVar(type); wxUnusedVar(menu); }; @@ -147,36 +147,39 @@ * @param name file name (name+extension) * @return Bitmap of wxNullBitmap if no match was found */ - virtual wxBitmap LoadBitmapFile(const wxString &name, wxBitmapType type = wxBITMAP_TYPE_PNG) { + virtual wxBitmap LoadBitmapFile(const wxString& name, wxBitmapType type = wxBITMAP_TYPE_PNG) + { wxBitmap bmp; #ifdef __WXGTK__ - wxString pluginsDir(PLUGINS_DIR, wxConvUTF8); + // /usr/share/codelite + wxString pluginsDir = clStandardPaths::Get().GetDataDir(); #else -# ifdef USE_POSIX_LAYOUT - wxString pluginsDir(wxStandardPaths::Get().GetDataDir() + wxT( PLUGINS_DIR )); -# else - wxString pluginsDir(m_mgr->GetInstallDirectory() + wxT( "/plugins" )); -# endif +#ifdef USE_POSIX_LAYOUT + wxString pluginsDir(clStandardPaths::Get().GetDataDir() + wxT(PLUGINS_DIR)); +#else + wxString pluginsDir(m_mgr->GetInstallDirectory() + wxT("/plugins")); +#endif #endif wxString basePath(pluginsDir + wxT("/resources/")); bmp.LoadFile(basePath + name, type); - if (bmp.IsOk()) { + if(bmp.IsOk()) { return bmp; } return wxNullBitmap; } - /** * @brief allow the plugins to hook a tab in the project settings * @param notebook the parent * @param configName the associated configuration name */ - virtual void HookProjectSettingsTab(wxBookCtrlBase *notebook, const wxString &projectName, const wxString &configName) { - wxUnusedVar( notebook ); - wxUnusedVar( projectName ); - wxUnusedVar( configName ); + virtual void + HookProjectSettingsTab(wxBookCtrlBase* notebook, const wxString& projectName, const wxString& configName) + { + wxUnusedVar(notebook); + wxUnusedVar(projectName); + wxUnusedVar(configName); } /** @@ -184,20 +187,22 @@ * @param notebook the parent * @param configName the associated configuration name */ - virtual void UnHookProjectSettingsTab(wxBookCtrlBase *notebook, const wxString &projectName, const wxString &configName) { - wxUnusedVar( notebook ); - wxUnusedVar( projectName ); - wxUnusedVar( configName ); + virtual void + UnHookProjectSettingsTab(wxBookCtrlBase* notebook, const wxString& projectName, const wxString& configName) + { + wxUnusedVar(notebook); + wxUnusedVar(projectName); + wxUnusedVar(configName); } }; -#define CHECK_CL_SHUTDOWN(){\ - if(m_mgr->IsShutdownInProgress())\ - return;\ +#define CHECK_CL_SHUTDOWN() \ + { \ + if(m_mgr->IsShutdownInProgress()) return; \ } -//Every dll must contain at least this function -typedef IPlugin* (*GET_PLUGIN_CREATE_FUNC) (IManager*); -typedef PluginInfo (*GET_PLUGIN_INFO_FUNC) (); -typedef int (*GET_PLUGIN_INTERFACE_VERSION_FUNC) (); -#endif //PLUGIN_H +// Every dll must contain at least this function +typedef IPlugin* (*GET_PLUGIN_CREATE_FUNC)(IManager*); +typedef PluginInfo (*GET_PLUGIN_INFO_FUNC)(); +typedef int (*GET_PLUGIN_INTERFACE_VERSION_FUNC)(); +#endif // PLUGIN_H diff -Nru codelite-8.0.1+dfsg2/Interfaces/plugin_version.h codelite-9.0+dfsg/Interfaces/plugin_version.h --- codelite-8.0.1+dfsg2/Interfaces/plugin_version.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Interfaces/plugin_version.h 2015-10-11 13:56:07.000000000 +0000 @@ -28,6 +28,6 @@ // Interface version is calcualted as follows: MAJOR * 1000 + MINOR * 100, e.g. codelite 4.1 => 4100, codelite 5.0 => // 5000 -#define PLUGIN_INTERFACE_VERSION 7100 +#define PLUGIN_INTERFACE_VERSION 8300 #endif // PLUGIN_VERSION_H diff -Nru codelite-8.0.1+dfsg2/LiteEditor/AboutDlg_bitmaps.cpp codelite-9.0+dfsg/LiteEditor/AboutDlg_bitmaps.cpp --- codelite-8.0.1+dfsg2/LiteEditor/AboutDlg_bitmaps.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/AboutDlg_bitmaps.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,8140 +1,7830 @@ -// -// This file was automatically generated by wxrc, do not edit by hand. -// - -#include - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#include -#include -#include -#include - -#if wxCHECK_VERSION(2,8,5) && wxABI_VERSION >= 20805 - #define XRC_ADD_FILE(name, data, size, mime) \ - wxMemoryFSHandler::AddFileWithMimeType(name, data, size, mime) -#else - #define XRC_ADD_FILE(name, data, size, mime) \ - wxMemoryFSHandler::AddFile(name, data, size) -#endif - -static size_t xml_res_size_0 = 1249; -static unsigned char xml_res_file_0[] = { -137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0, -0,115,122,122,244,0,0,0,25,116,69,88,116,83,111,102,116,119,97,114,101, -0,65,100,111,98,101,32,73,109,97,103,101,82,101,97,100,121,113,201,101, -60,0,0,4,131,73,68,65,84,120,218,236,87,125,76,85,101,24,255,189,231,156, -203,103,40,44,67,67,194,100,197,194,69,126,140,98,106,173,129,112,93,234, -40,205,12,212,25,149,75,27,70,46,219,218,136,40,103,171,230,63,45,8,114, -83,107,45,201,76,107,75,28,210,151,206,4,117,230,39,9,72,78,234,74,228, -7,31,147,128,43,220,123,238,121,123,222,247,220,115,239,61,246,225,218, -186,240,143,239,246,222,231,124,61,207,239,121,159,239,203,56,231,24,205, -165,96,148,215,77,5,70,93,1,230,167,218,242,181,85,187,124,156,61,42,131, -50,140,113,201,20,70,167,54,190,170,121,111,205,98,186,213,37,120,97,73, -101,237,145,227,109,220,92,70,152,55,231,231,93,23,121,97,73,69,173,192, -214,232,39,26,76,93,144,53,35,13,23,127,239,132,207,224,33,134,249,191, -23,135,66,22,72,77,153,72,16,218,2,129,45,20,136,226,18,148,131,51,69,70, -69,248,224,173,101,192,196,68,148,22,60,174,169,29,11,115,93,98,246,211, -49,205,150,18,76,37,43,216,45,32,109,115,131,106,201,72,234,141,120,20, -102,10,190,222,186,54,5,28,14,5,170,176,66,136,154,6,153,74,167,253,79, -74,8,193,154,202,228,209,44,46,241,169,238,51,96,248,121,132,76,77,83,205, -156,103,254,236,247,99,104,161,25,25,233,112,160,120,99,29,38,140,27,35, -159,252,236,186,130,69,217,233,88,60,103,10,249,204,239,67,18,26,170,138, -74,224,101,213,251,160,17,175,120,215,219,231,70,92,140,3,111,23,231,250, -3,154,64,84,5,51,159,221,138,133,115,50,240,241,238,99,56,179,179,36,224, -10,155,2,253,131,195,72,73,186,21,235,87,231,5,158,110,216,252,61,150,150, -125,1,135,162,162,171,111,0,15,76,73,150,39,20,167,154,156,148,128,115, -29,61,24,242,114,84,174,155,23,224,169,254,252,48,150,190,182,139,190,81, -209,115,117,16,75,242,50,176,48,39,3,165,207,100,227,114,87,31,89,58,210, -102,197,196,130,146,42,153,159,123,127,104,226,123,14,180,200,235,228,188, -13,146,214,55,158,229,161,107,237,198,221,146,62,84,84,197,139,202,119, -200,235,182,95,175,152,60,206,55,37,253,177,185,131,255,210,217,27,224, -169,220,222,192,235,27,76,57,143,191,244,161,164,133,47,86,11,243,36,42, -161,5,241,187,163,237,200,202,152,36,175,155,118,174,147,244,147,61,199, -81,83,119,18,239,110,59,40,239,19,198,70,75,186,100,238,84,84,190,242,24, -190,57,212,134,110,58,165,88,251,183,172,146,244,72,147,11,135,79,187,80, -94,253,181,188,31,19,27,5,231,236,52,156,187,208,141,220,172,187,3,113, -18,232,5,150,63,220,67,58,198,37,196,224,232,79,23,80,241,89,35,230,23, -111,65,81,126,38,150,205,155,78,241,208,37,191,57,214,220,129,19,173,157, -88,83,48,27,183,196,68,96,89,233,118,204,154,122,39,122,200,247,53,117, -167,48,107,197,251,210,61,133,143,76,67,87,175,169,88,239,31,110,136,16, -173,107,56,139,204,244,137,8,213,192,214,140,6,135,100,105,150,224,175, -175,202,193,203,79,61,72,129,100,190,251,224,213,69,146,158,104,253,13, -231,201,239,98,189,181,117,31,30,206,76,149,215,85,59,14,225,233,252,105, -216,84,154,143,248,184,24,147,167,204,228,25,184,230,149,148,92,131,204, -123,239,176,21,37,45,244,174,181,253,50,178,150,87,96,198,61,73,178,90, -101,223,127,23,86,174,255,18,141,39,219,81,79,166,142,141,142,192,128,219, -139,39,156,247,161,223,237,193,240,208,48,46,117,247,99,230,138,74,249, -174,252,185,108,164,76,136,199,182,186,211,104,105,191,132,189,116,98,85, -53,83,187,246,192,25,76,79,75,250,219,84,78,44,120,161,202,222,136,12,157, -123,134,135,229,54,116,47,61,243,153,65,122,176,153,231,172,220,196,223, -249,104,63,119,62,191,153,187,175,185,131,124,134,143,123,61,158,32,15, -201,176,154,79,240,27,157,235,94,143,188,123,146,48,5,182,22,106,14,159, -174,7,138,135,149,237,162,160,80,53,146,185,156,158,58,30,111,172,206,149, -69,169,208,153,129,232,72,7,116,221,27,168,13,86,43,215,125,62,226,17,129, -229,11,22,167,64,178,179,191,186,192,2,163,110,64,66,12,219,168,192,253, -63,58,201,76,30,31,143,73,183,39,4,43,164,206,97,214,26,22,228,97,65,30, -123,3,178,230,1,197,166,146,173,20,11,95,253,91,47,20,39,180,170,27,247, -119,109,133,253,183,222,105,98,92,215,11,44,33,66,59,77,25,153,41,205,194, -148,104,42,227,87,79,181,184,70,108,14,20,88,2,211,178,128,135,230,51,39, -89,244,91,131,179,177,134,17,222,129,64,204,28,10,227,125,159,18,166,192, -22,118,160,54,134,219,104,139,18,21,23,198,121,44,116,92,232,167,221,73, -187,203,2,19,74,196,210,142,24,33,47,120,68,225,165,237,29,237,191,5,52, -2,222,252,115,58,202,235,79,1,6,0,97,231,180,27,227,20,92,140,0,0,0,0,73, -69,78,68,174,66,96,130}; - -static size_t xml_res_size_1 = 162362; -static unsigned char xml_res_file_1[] = { -137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,1,248,0,0,1,44,8,6,0, -0,0,47,135,161,70,0,0,0,6,98,75,71,68,0,255,0,255,0,255,160,189,167,147, -0,0,0,9,112,72,89,115,0,0,11,19,0,0,11,19,1,0,154,156,24,0,0,0,7,116,73, -77,69,7,223,1,29,9,35,58,199,219,55,244,0,0,0,25,116,69,88,116,67,111,109, -109,101,110,116,0,67,114,101,97,116,101,100,32,119,105,116,104,32,71,73, -77,80,87,129,14,23,0,0,32,0,73,68,65,84,120,218,180,189,89,172,110,91,118, -223,245,27,115,206,213,124,205,222,231,220,170,186,142,33,78,172,72,8,176, -13,54,113,200,3,33,137,109,40,34,11,217,145,18,9,158,136,200,19,82,36,196, -3,1,75,142,29,90,219,81,72,247,194,11,136,135,68,121,0,241,64,66,112,40, -9,43,33,9,9,74,227,46,16,87,25,225,114,108,156,8,167,26,234,158,179,247, -215,172,102,206,193,195,92,223,90,115,206,181,190,125,206,189,229,236,135, -170,115,191,110,117,115,142,230,63,254,227,63,228,23,222,126,81,153,254, -100,250,127,157,255,91,64,116,121,225,246,9,137,31,18,64,69,17,100,249, -136,46,239,35,211,111,104,124,87,101,250,85,85,84,166,95,211,233,24,243, -209,211,31,73,143,42,56,177,172,255,100,57,99,145,233,159,197,73,108,254, -94,254,213,245,79,150,111,206,39,60,253,156,100,63,191,252,167,160,201, -247,230,75,155,175,243,118,137,146,95,242,198,41,172,238,198,244,59,65, -3,125,215,51,140,61,135,195,17,35,102,250,142,162,50,157,144,202,221,219, -35,90,92,167,232,114,189,243,237,154,158,219,237,192,243,243,84,20,153, -175,43,160,241,235,170,136,145,101,221,148,127,229,35,126,233,194,245,206, -243,16,150,115,74,239,171,130,18,16,145,233,216,197,193,36,121,108,16,207, -95,146,231,72,250,187,233,115,150,98,45,47,191,187,190,156,219,235,186, -92,255,124,45,154,172,226,228,51,197,134,155,31,139,228,203,44,61,61,72, -214,81,113,126,113,159,201,242,17,201,54,115,250,207,213,51,185,221,151, -244,129,201,242,180,55,31,223,214,146,201,109,69,186,240,116,94,27,217, -122,166,184,215,183,107,221,216,126,119,215,146,110,124,102,189,113,138, -215,151,27,119,123,38,100,103,120,251,134,108,219,197,236,160,235,127,171, -134,233,147,134,242,81,203,123,109,128,229,137,104,102,85,228,254,101,190, -247,95,92,32,82,238,137,119,109,218,210,54,148,191,42,160,42,197,45,95, -108,136,150,107,239,222,237,147,79,112,81,229,67,42,79,108,90,88,34,183, -243,208,236,92,227,254,82,178,135,117,103,173,221,252,162,82,216,139,204, -91,21,107,186,88,105,242,162,225,187,157,87,238,123,95,188,53,233,133,176, -248,94,183,189,119,36,123,65,211,67,100,15,57,57,240,244,63,243,66,153, -63,183,60,224,120,209,154,249,202,155,37,42,151,245,124,109,211,137,26, -145,119,110,134,101,209,109,57,152,128,6,192,8,98,18,199,32,64,80,84,3, -58,61,16,17,131,72,110,27,148,128,122,5,49,24,147,108,59,85,66,240,201, -198,17,140,152,229,126,207,191,163,153,83,138,183,111,217,86,186,177,181, -110,135,159,239,142,10,74,96,24,122,198,113,160,105,154,232,220,229,246, -94,114,59,68,17,149,244,121,39,78,162,52,174,235,197,52,59,139,228,247, -138,179,65,85,209,16,8,170,24,99,182,29,59,247,31,201,230,223,221,205,94, -24,232,233,141,160,158,16,2,70,44,198,220,46,71,50,199,88,174,127,145,196, -128,171,198,207,38,199,17,77,140,64,182,225,101,222,158,171,152,116,54, -191,241,223,33,120,130,8,86,150,251,146,198,15,222,143,40,6,99,12,166,216, -163,179,157,209,197,147,138,4,130,247,248,155,247,19,193,138,197,40,136, -8,33,140,120,192,136,193,106,124,95,11,123,37,43,131,149,56,164,13,139, -150,218,130,45,7,37,211,130,11,234,241,65,48,198,96,167,27,31,116,152,86, -183,197,206,247,81,179,88,68,210,103,89,196,3,119,29,251,189,181,36,219, -9,198,42,130,146,213,225,80,85,32,224,21,68,236,100,107,214,118,73,54,35, -80,45,204,140,167,15,29,253,216,33,246,64,235,106,92,177,199,245,29,241, -74,122,81,58,63,159,252,27,154,133,25,122,199,65,167,193,96,177,86,117, -9,31,150,160,50,38,8,139,41,72,158,253,28,240,75,230,180,87,183,87,52,11, -72,178,96,40,141,75,229,29,182,225,227,69,44,235,96,80,75,3,146,60,107, -137,134,121,29,143,202,98,51,86,121,231,178,231,181,76,250,202,132,15,93, -93,131,172,108,196,187,226,148,37,73,147,141,93,185,10,104,52,223,64,241, -25,42,78,54,214,131,78,15,80,210,13,151,102,80,36,206,81,19,71,118,139, -136,178,215,110,231,169,69,212,158,220,193,36,225,156,29,89,106,152,164, -116,30,179,139,217,8,1,11,115,165,129,224,71,250,235,149,193,27,234,93, -75,211,184,201,103,5,194,48,208,117,61,195,232,241,10,198,213,236,218,150, -186,178,241,54,7,8,126,160,191,118,12,94,168,118,59,218,218,33,34,128,199, -247,29,215,174,167,247,241,152,198,53,180,109,75,237,162,225,150,173,40, -75,146,56,238,182,169,102,151,178,117,37,58,91,212,177,31,25,134,17,231, -28,85,85,21,142,57,49,203,115,128,52,69,234,233,142,210,197,129,43,147, -131,35,121,88,233,202,206,2,4,157,127,71,146,133,45,198,36,145,241,39,201, -40,222,99,195,110,189,22,4,17,193,26,183,100,15,183,203,152,179,7,217,90, -110,139,141,90,69,250,138,202,250,89,104,146,213,174,119,105,146,233,106, -79,55,156,56,13,35,98,247,28,234,61,141,89,190,173,97,224,58,156,56,15, -3,216,3,135,122,71,99,164,64,150,100,14,68,84,3,26,70,122,127,229,212,159, -184,76,129,129,115,71,30,155,3,123,235,8,227,153,83,127,162,147,138,189, -59,178,115,211,250,150,85,114,156,88,86,45,28,221,86,230,120,239,81,76, -206,90,61,227,120,226,163,203,51,3,53,199,221,35,71,235,8,254,202,105,56, -51,208,114,104,14,180,8,102,122,62,36,65,211,10,52,41,79,227,30,194,182, -142,128,215,107,229,174,211,200,179,40,5,52,116,60,247,207,92,181,226,80, -31,217,89,131,153,214,243,218,117,234,54,212,164,202,48,158,57,141,103, -6,117,236,170,3,187,170,193,110,158,210,150,67,222,178,105,194,70,104,153, -125,87,238,92,236,188,130,245,126,154,155,229,212,74,17,52,172,207,121, -5,133,165,247,226,22,52,207,201,203,205,201,199,128,185,12,52,117,51,224, -252,122,13,71,9,213,109,109,0,205,1,78,45,163,214,244,53,41,35,209,201, -108,74,241,76,18,187,174,11,146,193,61,144,182,64,206,40,242,122,45,208, -179,249,110,38,62,54,75,214,82,72,125,58,201,219,19,118,186,229,132,52, -194,232,69,146,157,5,15,243,187,146,100,123,220,34,192,229,74,149,212,193, -36,33,28,107,152,27,201,179,47,166,140,196,172,150,134,222,137,127,211, -205,231,241,125,79,63,120,66,240,244,35,184,182,194,185,152,245,168,6,134, -254,202,168,6,211,238,57,104,12,2,250,160,211,233,5,252,208,209,13,35,193, -123,70,47,216,182,161,114,102,177,61,98,176,85,203,174,106,104,252,72,127, -190,224,137,198,33,243,167,51,122,33,37,62,158,24,209,20,140,99,179,156, -16,130,210,117,29,214,58,234,186,153,202,31,249,61,201,255,107,137,212, -37,11,200,150,172,125,13,64,110,67,211,113,93,47,49,100,80,37,248,17,193, -32,86,62,222,190,124,9,78,123,201,209,23,175,251,48,130,128,21,151,133, -66,178,5,81,151,17,181,20,16,174,234,234,217,72,145,22,190,43,129,12,225, -194,169,123,166,83,75,93,61,178,119,53,206,44,7,10,225,58,189,111,104,234, -7,118,182,193,25,89,57,183,57,232,10,35,93,255,150,103,63,160,102,199,190, -253,52,15,64,240,87,6,113,56,99,81,237,57,117,207,156,213,177,107,118,52, -206,230,215,54,47,57,153,202,105,154,59,141,180,14,176,225,88,54,161,121, -20,9,129,16,206,188,185,190,229,60,120,234,246,129,218,58,84,59,158,187, -19,163,109,216,85,45,141,8,98,34,210,37,211,9,105,97,143,94,12,10,239,189, -249,18,78,125,239,223,133,163,82,21,84,59,78,221,27,46,90,209,86,59,26, -107,23,112,50,113,131,235,67,38,201,137,246,156,251,183,92,66,192,216,61, -143,85,75,45,110,114,197,91,23,145,71,47,114,103,161,207,8,18,121,249,79, -54,92,111,126,148,45,43,178,36,9,17,161,90,103,218,89,242,41,247,209,158, -18,69,139,118,164,172,124,108,192,221,178,109,215,222,253,204,222,81,198, -219,42,169,38,153,122,246,149,196,95,221,146,217,24,152,23,168,2,235,50, -132,74,249,232,151,40,33,47,187,9,242,62,105,122,182,6,182,86,193,186,220, -123,115,33,249,169,78,247,95,147,224,124,250,128,203,159,213,188,5,89,3, -178,139,99,200,238,101,10,157,138,100,53,70,89,194,153,236,223,243,153, -166,175,21,75,52,254,134,97,1,48,55,113,152,59,222,194,51,246,35,227,40, -216,202,162,93,64,172,163,105,110,6,23,196,24,92,213,98,141,96,16,252,56, -18,66,64,172,197,89,197,15,35,227,32,184,202,49,6,69,140,163,105,170,8, -65,222,202,10,42,168,1,11,104,239,241,98,176,149,195,217,197,161,102,232, -239,70,97,52,102,105,58,71,189,91,43,252,182,95,250,174,71,81,154,166,158, -202,4,73,134,190,90,32,9,192,154,26,172,100,129,223,142,187,224,216,211, -249,204,245,252,141,29,165,203,130,50,198,70,167,47,31,51,236,214,143,81, -127,127,225,121,91,177,96,167,245,53,59,176,101,179,102,166,80,54,236,70, -18,241,110,89,141,18,170,75,205,102,30,151,6,252,120,226,169,63,211,211, -240,208,60,208,218,24,152,222,158,251,56,60,243,220,159,233,105,57,54,71, -90,107,243,181,145,250,100,81,66,232,56,117,207,92,130,208,84,31,176,175, -106,220,237,148,173,163,70,48,161,231,212,189,229,164,176,111,30,57,58, -135,157,172,180,138,68,244,74,3,33,164,222,212,98,101,202,80,213,227,53, -16,66,18,80,27,19,239,235,84,214,242,26,75,48,179,91,50,22,139,224,253, -133,55,221,19,231,209,99,92,67,83,237,168,24,184,116,103,58,181,28,235, -3,59,49,192,200,48,166,153,250,13,198,15,4,93,130,81,35,183,108,58,158, -131,209,91,9,38,126,238,182,62,45,83,41,230,125,32,93,133,128,71,125,82, -191,22,193,136,157,156,217,149,83,247,196,201,27,218,118,186,127,89,12, -28,203,15,122,11,132,48,136,24,236,45,40,211,128,31,207,49,251,151,154, -67,253,200,206,86,184,13,62,206,253,202,185,190,39,84,81,186,125,93,133, -15,243,10,77,249,37,154,126,86,23,84,118,197,180,32,103,92,168,20,124,157, -220,86,47,37,198,248,210,140,202,36,27,78,229,78,137,253,93,1,155,188,167, -253,144,34,208,88,125,110,57,103,85,153,131,27,38,116,38,53,210,162,37, -109,67,55,130,142,4,189,76,125,213,140,76,105,130,208,190,116,41,183,251, -168,201,61,202,3,192,162,26,63,39,211,178,89,194,148,9,117,44,194,3,157, -32,122,205,200,64,37,145,36,43,176,20,252,138,132,54,32,5,167,101,206,30, -211,64,78,201,217,103,105,34,95,194,67,177,126,249,201,188,133,197,214, -130,117,138,31,174,140,193,208,236,38,231,158,92,150,24,51,101,94,35,125, -119,197,75,77,219,86,209,192,57,131,181,183,239,11,85,91,225,196,96,100, -169,229,104,8,168,42,126,28,232,7,197,214,59,218,186,154,31,143,20,57,124, -6,193,105,74,99,144,85,4,94,174,253,113,28,233,134,142,93,211,98,18,11, -167,170,75,244,153,145,31,227,143,135,105,161,26,89,7,66,147,153,157,156, -74,94,127,82,150,69,27,179,47,51,111,10,85,197,123,63,215,221,53,232,228, -232,203,61,145,95,235,93,164,74,239,114,149,150,15,154,101,161,46,199,183, -209,17,232,58,186,78,9,53,183,186,155,108,208,221,208,91,153,162,32,38, -38,112,93,200,145,254,60,218,87,79,239,159,121,238,58,130,57,240,216,236, -105,205,18,38,171,6,250,241,153,83,127,37,200,145,135,102,79,107,138,216, -34,91,12,129,113,188,240,212,189,229,162,45,175,154,7,246,206,45,16,183, -196,103,33,97,164,31,159,120,26,161,105,95,177,159,157,251,109,77,244,116, -227,133,231,254,204,213,143,209,217,99,112,213,107,62,211,28,168,77,60, -175,183,221,133,62,248,120,139,77,203,177,125,197,209,25,140,14,244,227, -137,183,221,133,78,71,80,193,152,134,67,251,200,206,8,93,255,150,115,176, -212,198,227,109,77,35,158,97,56,241,28,132,125,115,160,193,211,13,79,156, -250,51,23,239,81,13,120,49,84,213,35,31,84,208,245,87,188,8,222,143,12, -94,104,107,195,232,61,94,90,62,104,31,217,25,165,31,79,60,117,23,186,137, -207,96,204,129,79,239,94,177,159,214,191,170,38,54,58,127,118,170,158,97, -236,185,14,79,156,199,142,65,5,17,75,83,189,230,85,221,82,139,167,235,159, -121,30,149,182,121,197,131,179,152,25,129,84,84,71,186,225,153,183,195, -149,206,143,40,130,53,13,135,246,21,71,105,112,226,25,198,103,222,246,23, -212,28,120,85,31,104,140,153,107,208,20,41,210,203,164,56,221,68,40,181, -200,217,11,10,215,70,113,82,179,236,90,116,9,5,18,195,144,149,71,110,182, -226,134,242,72,146,254,45,8,117,78,222,154,233,78,89,93,126,225,100,80, -16,125,165,64,127,191,254,250,221,134,35,95,179,253,54,81,135,197,230,108, -16,102,245,30,249,109,222,205,201,225,18,86,134,232,93,180,103,155,140, -171,5,68,47,5,142,187,148,197,51,123,165,172,175,69,183,43,40,183,51,118, -155,201,211,11,37,39,149,28,154,143,209,139,228,55,71,216,0,184,10,66,192, -108,217,211,74,195,2,81,91,94,34,109,201,221,204,46,37,134,135,113,160, -239,3,226,106,154,218,205,88,64,250,104,253,56,208,245,29,163,119,212,237, -142,186,90,10,2,126,28,232,6,191,124,95,150,186,254,216,93,233,250,142, -193,3,182,162,174,91,118,117,133,24,93,149,52,214,129,136,46,81,228,70, -221,107,85,108,240,158,190,239,113,198,82,213,85,230,220,125,8,32,44,29, -6,73,186,170,170,4,239,227,253,48,150,117,213,70,9,99,0,81,172,117,19,202, -178,60,222,160,241,216,136,68,84,34,9,93,172,181,8,194,232,227,247,69,236, -2,243,165,48,186,159,96,116,235,214,132,102,85,70,31,16,1,107,205,170,238, -207,124,124,166,172,114,49,152,214,198,186,187,31,199,152,217,89,155,111, -8,137,129,71,152,210,83,35,46,129,209,116,174,83,5,63,198,144,208,186,188, -72,47,201,249,77,153,235,146,97,79,161,79,24,184,12,207,156,189,226,220, -35,175,235,22,151,4,179,62,12,92,134,39,46,94,113,246,145,87,245,142,202, -76,208,176,16,207,207,251,72,69,115,22,209,192,232,79,188,237,78,116,90, -115,220,189,98,239,236,58,222,81,79,223,63,241,118,8,184,234,200,195,148, -221,163,74,96,100,24,206,60,15,29,222,52,28,218,79,243,160,61,231,254,68, -167,142,93,189,199,73,199,211,245,153,94,29,109,243,33,175,167,18,139,136, -96,69,8,225,196,83,119,162,211,138,166,253,12,175,110,25,171,8,162,35,93, -255,68,143,163,181,54,18,28,77,133,232,149,103,31,112,118,71,173,87,222, -92,226,241,247,237,103,56,106,207,165,63,113,85,67,109,148,174,63,241,60, -40,117,93,69,123,98,12,70,45,214,24,42,113,136,158,249,232,26,107,248,251, -221,167,121,8,87,78,195,137,97,118,64,203,82,25,131,7,157,238,159,196,172, -122,12,87,78,221,137,75,176,180,213,3,159,106,62,224,86,88,51,198,97,116, -164,27,158,120,26,71,172,123,228,161,170,231,0,88,84,25,245,194,233,250, -76,175,21,77,243,105,62,152,2,10,17,137,168,85,24,184,246,79,60,143,35, -198,62,240,88,239,169,76,153,244,72,225,120,229,126,242,180,249,223,101, -103,131,22,214,52,39,218,109,85,225,183,178,64,157,60,64,73,131,187,23, -88,139,108,36,81,11,203,118,225,228,232,58,82,95,85,127,120,103,164,243, -245,215,223,19,226,108,76,146,229,14,81,125,41,31,103,53,250,21,241,68, -147,170,165,228,80,61,27,101,236,242,89,175,58,57,182,66,178,117,128,80, -222,114,77,74,109,89,105,231,134,210,148,244,3,77,88,244,43,46,70,22,177, -45,112,194,178,224,36,135,44,116,38,165,35,27,190,108,97,146,39,23,89,192, -168,41,227,210,96,145,85,246,46,47,164,122,233,150,153,194,203,113,160, -235,7,130,113,180,187,42,203,192,226,26,24,233,187,142,190,247,96,42,218, -125,67,85,217,201,201,41,234,7,186,110,32,72,69,211,214,11,179,118,130, -120,92,221,98,92,69,53,116,92,251,120,204,32,33,50,102,165,32,52,101,237, -102,121,58,43,119,202,210,183,45,30,212,211,245,93,132,230,219,102,106, -187,209,217,224,88,76,22,22,75,129,154,88,107,103,114,198,138,221,162,96, -141,153,179,219,153,95,145,68,40,55,71,122,203,116,195,196,154,183,214, -76,142,123,234,56,208,141,157,122,115,188,34,235,214,172,233,54,56,103, -215,40,91,242,83,183,239,223,238,163,15,62,34,18,46,6,20,46,125,127,58, -247,153,108,103,18,56,86,150,205,63,163,81,104,252,253,140,96,152,213,84, -226,245,149,86,72,3,222,159,56,245,61,131,84,236,234,29,59,91,199,12,90, -34,147,122,244,39,78,195,192,64,116,170,59,91,197,247,83,180,60,70,54,209, -249,104,192,135,51,79,253,153,78,106,14,205,35,7,107,150,160,235,182,79, -212,211,117,111,121,30,71,164,58,242,88,237,112,147,185,14,161,231,220, -63,113,26,149,170,126,224,85,85,227,116,224,220,247,4,26,142,205,158,214, -142,92,251,39,78,30,234,170,161,182,150,106,34,73,66,64,67,207,101,56,241, -236,53,190,111,44,206,196,46,22,13,183,64,193,80,187,138,48,158,185,82, -225,180,231,60,40,198,86,216,112,225,169,7,87,61,240,80,213,88,70,206,93, -143,151,154,163,179,120,127,225,170,53,199,218,226,117,36,152,150,131,141, -237,150,142,10,43,3,167,126,4,57,112,172,107,42,29,184,250,17,100,199,177, -218,83,223,208,43,101,9,244,116,38,65,48,248,103,158,250,142,96,26,30,219, -61,59,235,102,116,42,114,14,110,206,125,64,170,7,30,93,139,189,161,59,26, -8,218,115,237,158,57,251,64,85,53,52,198,98,167,82,84,140,31,6,174,253, -91,78,222,99,170,71,30,92,77,101,182,43,226,235,198,187,117,101,181,100, -87,235,134,251,79,249,32,178,122,101,203,103,230,182,242,134,74,196,18, -236,134,227,223,234,146,93,57,154,156,132,187,10,62,68,146,196,34,150,250, -68,244,238,121,126,221,132,186,187,45,206,82,52,84,45,101,4,153,160,236, -25,149,200,168,205,178,93,53,73,169,73,76,72,229,124,195,18,167,34,235, -82,76,22,224,172,78,90,51,52,230,14,69,124,190,30,209,123,25,183,22,185, -255,66,168,86,85,220,138,247,181,85,147,188,221,180,13,6,160,234,250,184, -179,61,78,3,133,148,88,119,131,244,85,88,227,183,19,73,237,189,10,48,75, -0,146,1,207,193,211,119,3,131,26,234,166,198,77,173,72,55,184,54,12,61, -221,245,202,136,193,181,59,154,202,77,117,65,189,165,204,244,215,129,81, -133,186,169,163,1,204,170,10,83,155,146,241,12,65,39,178,221,210,34,148, -193,64,82,4,54,178,14,80,210,78,227,178,37,162,239,123,130,15,52,77,131, -179,110,69,112,17,99,146,123,172,179,227,138,14,89,138,40,114,93,83,146, -162,142,165,51,179,63,66,193,37,151,82,68,112,9,107,222,200,203,37,245, -187,216,124,9,80,233,29,54,75,193,196,50,198,174,234,232,186,10,117,55, -114,161,172,101,51,193,217,211,197,159,66,137,69,144,182,60,83,79,55,60, -115,30,71,112,123,30,92,67,109,204,178,77,131,167,27,78,92,124,15,38,102, -215,183,247,111,193,113,90,230,154,75,39,161,231,212,157,185,4,203,190, -57,114,184,65,238,42,137,225,189,101,142,195,148,57,238,168,141,76,49,75, -207,121,56,113,10,66,219,60,176,175,26,108,184,240,220,61,115,14,134,93, -115,96,239,42,140,246,244,10,33,116,60,95,7,250,113,224,131,221,145,214, -184,216,173,162,19,127,36,116,156,174,3,253,120,228,131,221,3,173,241,92, -134,19,151,32,180,245,30,23,206,60,133,129,49,4,130,90,218,122,135,9,3, -125,48,212,205,129,99,85,35,225,202,243,245,153,139,58,90,231,8,58,68,102, -125,37,140,161,7,179,227,32,129,209,247,32,53,134,158,115,119,161,11,1, -49,61,215,17,140,236,216,55,71,142,174,166,54,22,83,144,35,37,73,89,250, -241,41,58,119,123,224,177,222,209,24,51,47,174,200,205,240,92,251,183,60, -13,3,166,122,228,177,106,168,196,36,63,56,17,122,37,6,75,207,215,255,143, -126,60,242,106,247,192,222,88,16,79,55,196,224,202,184,199,248,236,87,204, -124,121,49,29,217,246,109,201,222,203,105,85,27,220,122,93,57,145,18,226, -93,215,98,147,220,98,85,241,213,185,156,183,106,180,216,240,39,37,101,106, -230,255,200,54,29,126,85,210,250,199,242,39,89,221,57,43,109,168,36,165, -197,37,176,214,210,158,235,61,46,167,228,132,242,219,83,150,156,160,167, -171,36,230,165,102,200,156,247,32,171,62,137,59,198,109,163,69,125,206, -232,82,125,144,164,167,223,101,109,146,186,161,11,161,235,46,147,204,103, -151,98,29,51,49,105,18,19,185,131,166,47,165,158,188,170,20,69,91,228,253, -153,89,101,93,65,3,126,232,185,142,138,219,181,49,43,191,157,87,24,25,250, -43,221,168,24,215,178,107,42,156,49,249,201,5,197,15,61,157,87,220,212, -46,119,171,207,106,150,121,123,198,190,167,87,75,219,214,212,214,206,194, -61,179,94,64,129,88,44,117,224,188,241,138,162,205,226,246,55,78,208,124, -211,52,56,87,229,23,60,247,185,231,45,47,89,255,170,20,232,76,161,48,34, -43,162,228,141,148,147,254,103,92,216,33,4,124,240,177,199,223,200,125, -194,218,215,141,178,165,150,36,193,101,2,83,221,93,144,27,156,175,105,253, -48,39,184,72,214,188,172,57,84,151,66,91,164,98,77,75,132,94,246,1,199, -4,177,143,14,214,27,154,250,200,193,213,184,132,63,17,194,192,165,127,226, -217,11,77,253,56,189,63,101,234,115,251,233,180,2,36,53,42,158,193,159, -57,141,3,166,126,197,206,85,49,32,213,64,80,193,26,131,234,200,232,207, -60,247,29,84,143,60,212,45,150,192,24,4,75,96,24,78,188,29,6,154,230,145, -125,229,192,159,120,211,189,225,52,58,30,118,209,65,198,26,125,77,219,124, -154,15,221,133,231,235,91,174,154,8,126,160,96,42,118,205,167,168,220,149, -167,235,27,174,16,219,244,198,19,79,163,208,214,7,90,3,221,112,225,50,198, -94,247,99,115,164,214,158,167,193,83,183,143,236,157,195,143,103,78,221, -27,206,193,177,111,28,226,207,116,236,216,85,21,58,60,49,72,195,222,26, -252,112,198,155,29,141,140,60,247,1,215,126,134,79,85,245,212,223,15,72, -36,253,25,238,49,18,163,225,14,225,204,169,59,49,152,7,94,215,7,106,147, -219,38,37,182,244,61,245,61,82,61,114,172,26,156,128,87,197,221,12,190, -128,82,179,171,63,141,115,23,158,175,79,116,243,210,10,120,127,225,220, -95,8,246,21,15,85,139,51,11,225,141,141,118,167,247,39,132,235,70,101,180, -132,244,215,104,128,174,122,113,54,168,233,183,254,118,77,37,134,114,220, -64,180,112,242,105,58,159,192,241,11,241,84,102,13,137,172,197,55,139,153, -11,254,205,187,110,196,251,139,3,172,57,138,73,34,160,5,34,45,9,196,156, -10,211,200,70,183,192,170,101,238,134,102,170,100,46,25,77,203,172,58,35, -68,105,11,104,214,200,152,156,99,246,59,43,36,39,183,187,178,18,108,200, -179,33,89,83,35,86,171,208,145,212,158,114,102,133,102,23,50,67,20,183, -250,205,74,221,135,237,122,82,214,211,190,44,176,194,38,71,18,207,173,37, -238,174,84,143,110,62,225,104,92,125,140,164,124,79,215,13,168,56,156,53, -152,201,218,135,254,202,249,114,101,148,138,166,109,169,38,104,84,117,202, -66,131,159,136,115,35,215,110,32,80,99,157,153,123,73,99,63,178,206,132, -21,223,93,233,70,193,53,45,77,237,150,158,83,217,242,168,154,160,26,220, -133,102,210,158,243,160,74,215,119,24,99,169,235,122,3,225,145,130,46,199, -186,126,163,165,208,210,82,110,73,123,60,133,117,223,248,28,93,202,210, -43,111,140,153,8,126,242,107,215,186,186,10,214,180,40,107,44,17,177,179, -118,122,88,5,105,40,227,52,44,27,227,6,21,50,59,241,244,243,121,231,130, -38,109,157,43,102,135,6,124,184,240,220,157,233,169,216,181,15,28,172,93, -250,59,52,48,134,11,207,221,133,30,203,190,125,156,222,95,72,126,114,131, -5,180,200,56,100,202,250,199,158,222,123,234,16,215,224,136,167,15,1,168, -57,184,169,21,171,59,51,168,229,48,213,188,207,163,7,105,56,216,129,243, -112,102,212,134,189,8,125,247,134,167,238,13,103,109,121,104,30,56,58,135, -134,129,97,118,17,35,195,216,49,82,179,111,30,216,25,193,235,64,240,183, -246,30,207,16,58,188,212,236,235,61,38,156,120,51,12,88,247,154,71,87,131, -127,166,243,61,61,142,199,250,145,199,202,114,238,46,140,210,112,16,230, -227,95,180,225,208,238,169,180,227,18,44,117,83,195,120,226,170,142,125, -211,160,195,153,65,107,118,174,38,244,207,12,56,26,169,176,55,55,102,236, -196,197,225,142,161,187,93,143,167,31,175,156,67,192,58,139,97,196,7,16, -227,102,45,138,216,202,118,166,87,199,209,58,76,232,120,246,35,34,13,71, -103,99,219,231,156,254,40,163,239,241,56,246,205,145,189,181,160,3,151, -254,68,71,205,177,62,210,88,110,180,211,34,239,146,77,247,174,47,166,45, -178,10,14,100,173,188,112,119,191,201,22,163,124,134,204,245,14,107,63, -237,148,145,172,25,42,39,166,149,1,105,169,246,162,11,225,49,105,115,158, -81,73,145,247,51,18,219,53,202,143,193,175,150,204,244,138,44,62,70,53, -11,103,54,234,241,101,131,142,44,45,196,170,73,201,82,230,32,93,55,20,230, -50,62,213,205,246,168,22,136,119,18,24,108,22,87,52,19,225,145,59,228,44, -89,1,237,146,145,28,111,95,115,121,215,127,217,251,39,107,89,208,162,142, -72,161,154,121,235,47,149,180,22,90,180,88,45,205,202,100,44,216,185,238, -190,73,59,45,161,249,229,230,249,97,160,187,92,232,189,39,160,168,23,196, -40,215,43,104,219,224,116,164,187,94,25,198,0,50,208,157,6,58,17,140,117, -212,77,75,101,2,195,245,66,55,42,74,32,120,16,211,211,93,20,154,26,43,129, -225,114,165,27,125,108,222,115,142,186,106,217,29,98,16,145,245,137,167, -234,29,9,62,166,171,250,155,108,2,37,177,18,10,227,48,16,70,79,187,219, -49,119,169,106,33,68,146,48,191,231,95,213,197,160,164,153,236,92,135,219, -192,183,75,36,230,70,164,188,49,112,67,8,224,21,113,102,85,79,252,216,155, -242,227,212,214,110,168,119,136,202,112,118,114,170,25,102,113,227,7,232, -186,36,176,40,214,37,103,45,27,1,133,200,98,192,36,133,89,227,113,7,31, -73,107,106,246,60,84,59,26,107,114,46,199,120,230,148,189,111,139,214,220, -27,36,120,71,66,87,4,107,107,26,51,210,247,95,227,203,99,69,109,119,28, -154,35,59,235,80,2,99,24,25,130,103,12,3,111,175,95,161,115,7,142,213,158, -214,89,188,31,8,128,232,133,83,167,52,166,162,114,7,30,205,145,99,101,232, -251,175,241,166,191,50,220,234,176,214,81,185,61,143,187,61,181,4,186,225, -13,111,186,43,189,70,66,162,152,154,218,237,57,238,90,156,246,92,250,17, -235,30,120,168,107,132,113,114,238,13,135,250,200,171,102,143,213,43,65, -5,244,202,83,7,181,169,168,220,17,231,90,90,81,198,81,168,221,142,74,123, -174,193,178,171,106,140,239,184,132,138,125,179,163,149,145,139,88,76,232, -120,186,252,42,39,17,172,217,177,159,24,253,238,29,13,243,183,150,90,7, -244,221,87,249,71,189,193,218,134,67,243,138,163,171,176,40,163,31,24,130, -39,132,129,183,23,79,239,118,28,234,61,173,4,174,233,253,65,16,227,168, -237,129,199,118,63,181,51,6,134,241,194,213,43,214,29,104,204,90,88,116, -189,203,115,89,94,185,67,10,222,36,224,110,48,229,229,14,247,94,86,101, -173,146,89,46,73,108,175,11,17,86,150,154,60,186,65,15,210,101,127,136, -108,148,204,82,231,157,25,154,156,5,254,177,117,117,229,227,218,137,91, -251,155,102,241,141,22,109,93,121,153,34,169,27,108,22,192,167,59,46,185, -213,22,77,18,219,13,167,157,85,180,69,87,4,187,76,122,122,195,108,74,86, -128,145,119,74,61,44,143,33,183,47,55,217,93,69,144,47,62,253,162,230,56, -238,6,25,139,13,39,207,90,74,154,85,11,210,86,152,89,214,241,167,182,159, -76,208,230,93,76,138,210,66,66,208,144,149,33,110,117,18,99,13,132,152, -125,223,212,161,231,62,118,153,90,229,130,78,223,47,42,99,102,145,172,13, -33,204,103,98,110,234,109,171,230,134,13,57,203,68,209,40,151,166,205,69, -109,82,3,208,15,29,125,63,224,156,165,109,90,238,9,180,47,45,138,137,120, -67,105,38,36,223,243,178,81,135,95,22,74,1,22,78,18,189,183,141,123,235, -189,255,186,253,249,75,45,113,37,140,126,19,30,210,165,21,47,93,216,153, -46,79,217,14,247,162,122,202,205,198,21,4,167,228,53,13,29,151,225,194, -197,67,229,118,28,170,118,114,54,83,131,97,232,185,14,103,206,1,42,155, -191,255,226,101,173,40,54,49,176,244,243,26,187,245,91,39,8,18,129,224, -195,84,146,143,45,164,198,152,185,121,60,224,99,191,248,188,143,66,236, -121,39,238,13,175,33,39,63,74,228,157,68,137,230,248,254,34,51,29,201,137, -70,110,45,119,1,196,77,146,3,138,146,74,211,198,117,53,247,139,99,98,123, -107,108,104,71,84,163,148,177,88,98,87,58,145,171,50,181,237,205,188,21, -157,100,120,111,217,147,152,249,28,222,217,123,52,33,108,229,53,46,223, -23,20,191,236,97,185,161,133,102,74,72,166,99,207,95,157,238,255,188,55, -70,174,221,71,124,52,120,170,230,3,94,215,245,140,50,232,138,28,119,111, -95,115,127,255,82,178,163,243,154,124,26,64,232,93,237,186,237,54,88,221, -140,106,37,23,105,43,77,65,130,124,173,42,209,197,140,11,89,105,162,200, -102,62,182,25,203,200,199,116,252,250,210,203,101,147,177,22,73,185,172, -58,248,86,221,78,9,33,109,225,14,220,244,66,18,214,125,105,83,147,22,99, -145,247,49,118,178,137,66,103,168,135,110,158,86,222,10,157,160,195,170, -27,242,202,2,46,203,216,179,34,253,29,61,220,173,64,113,166,234,167,13, -255,27,208,209,138,116,54,201,46,138,188,192,9,125,31,135,113,171,83,146, -8,246,36,117,37,19,251,215,205,93,116,224,166,47,47,133,180,110,34,170, -98,108,222,211,159,70,135,43,96,55,145,185,144,188,54,174,27,64,94,250, -231,253,72,215,247,56,235,168,170,122,123,245,167,202,81,186,212,162,51, -54,236,6,164,41,235,135,146,64,218,186,2,111,64,9,62,182,225,89,99,239, -70,145,155,66,97,239,171,221,161,107,6,108,58,176,35,248,48,179,225,51, -41,229,4,38,92,214,230,114,96,41,203,19,146,21,100,23,114,81,41,68,58,33, -78,163,191,114,238,79,244,212,180,117,148,132,93,50,25,143,247,81,222,116, -160,166,173,34,140,107,238,56,119,73,20,234,230,97,48,169,72,4,32,226,112, -86,239,48,178,4,81,19,75,20,20,178,211,76,235,91,227,26,95,144,235,165, -8,109,68,48,179,104,170,174,130,67,17,71,85,102,196,146,228,17,178,240, -84,98,140,229,88,186,46,163,51,176,184,9,61,186,105,98,184,121,29,202,220, -248,97,231,86,211,72,166,77,215,166,91,4,108,116,163,197,68,95,112,2,211, -252,136,40,83,179,222,47,209,89,153,164,21,51,15,234,140,184,149,226,109, -250,23,212,51,78,65,78,109,76,54,119,131,13,181,185,66,118,230,14,240,160, -119,216,211,5,143,166,40,134,221,239,175,78,244,232,100,65,82,75,198,207, -26,223,101,77,116,93,13,159,74,106,203,89,59,86,161,122,169,9,170,86,4, -16,239,140,120,222,87,220,230,158,60,101,42,243,150,32,210,169,210,236, -140,42,147,55,205,148,39,41,133,66,221,98,106,74,50,97,194,170,47,213,235, -138,110,165,149,2,44,101,119,133,172,76,179,148,20,169,100,243,207,136, -44,249,108,0,209,92,42,206,101,80,82,82,177,215,13,234,164,164,245,244, -140,124,188,168,158,101,80,169,148,53,213,117,13,216,136,101,43,119,127, -113,21,20,15,81,116,209,254,93,18,103,201,34,180,117,92,93,72,242,105,18, -245,169,44,16,205,212,22,39,165,152,91,81,36,145,141,148,81,87,210,61,57, -60,179,213,34,218,117,29,2,52,117,157,9,218,148,95,78,153,157,90,16,70, -52,221,132,101,112,85,170,92,100,124,136,220,241,43,26,17,16,145,59,32, -225,189,169,70,220,23,29,188,55,76,166,20,211,136,163,234,48,206,100,108, -126,157,35,214,101,48,70,238,239,53,233,217,214,59,69,75,101,17,252,210, -57,171,91,50,42,131,53,45,135,166,230,48,15,31,73,235,162,6,99,26,142,77, -133,136,155,102,191,44,236,190,148,180,166,105,32,114,251,76,97,60,51,9, -48,209,98,129,228,74,146,170,178,89,53,147,45,22,236,134,112,169,36,152, -65,234,232,243,204,80,214,195,215,74,195,122,203,136,146,251,71,86,46,217, -234,24,217,88,39,239,211,39,173,239,88,116,155,253,185,192,22,241,20,54, -251,199,95,82,73,141,72,134,197,154,134,202,218,21,3,126,77,112,122,73, -211,189,180,9,82,244,66,175,165,162,182,72,123,217,239,37,124,169,185,254, -155,148,3,231,64,238,86,83,126,7,40,42,41,41,76,147,243,83,201,40,36,90, -206,171,40,122,177,95,28,26,244,137,225,63,205,9,185,233,100,197,66,151, -175,108,194,89,13,53,186,167,131,175,185,210,232,237,53,77,38,21,229,114, -70,27,136,141,228,233,246,154,31,154,174,68,185,143,112,220,171,135,170, -38,234,168,100,210,242,179,79,80,210,242,150,174,28,223,109,176,1,9,115, -114,179,237,65,217,200,6,111,196,12,89,213,109,110,231,109,68,150,150,184, -23,31,250,90,5,110,177,213,186,94,104,155,165,123,205,235,47,200,122,124, -87,81,131,94,166,190,229,241,137,172,38,42,105,206,152,207,54,126,162,152, -182,226,119,228,23,61,12,3,163,31,217,237,118,139,115,207,88,172,169,76, -226,98,76,75,132,101,205,16,77,89,180,27,142,99,131,225,175,97,82,139,179, -81,154,116,107,148,231,123,177,99,97,123,106,201,189,73,38,183,8,53,4,188, -247,88,227,192,46,4,57,45,162,242,85,92,80,66,140,247,156,129,20,90,14, -69,45,45,66,180,102,211,30,221,178,90,43,54,105,199,89,127,114,54,244,229, -164,225,66,113,108,126,109,115,10,150,172,90,255,210,236,73,202,0,86,117, -107,73,147,135,63,90,0,196,82,80,133,242,248,66,182,158,209,156,17,109, -148,222,146,215,52,139,64,114,7,112,215,171,222,171,212,189,43,251,75,244, -13,216,8,173,243,233,107,108,6,173,155,197,21,169,217,183,31,112,188,9, -222,144,34,119,101,30,45,247,172,214,102,42,122,231,182,87,0,0,32,0,73, -68,65,84,171,197,232,152,210,9,232,139,0,70,49,26,122,163,88,152,38,236, -105,215,146,174,74,177,219,123,84,83,97,141,59,80,179,8,239,200,98,249, -228,99,96,239,57,58,149,188,100,64,217,172,152,144,205,52,207,134,181,148, -166,45,214,173,46,141,243,73,176,94,148,32,10,253,122,121,239,224,100,171, -77,58,9,18,228,221,115,61,82,161,190,116,127,221,2,179,84,157,208,228,24, -174,230,237,229,91,4,103,101,205,18,72,96,153,213,70,17,214,176,245,28, -133,154,69,32,69,222,133,213,200,134,82,144,38,91,121,146,27,157,123,236, -215,107,68,102,221,224,28,170,69,75,225,153,101,2,210,18,36,36,146,176, -247,134,46,172,160,52,205,35,199,36,119,42,185,183,222,123,186,174,75,160, -121,41,126,63,19,24,88,244,90,138,196,123,107,98,110,94,95,211,181,19,17, -102,146,138,36,15,214,58,27,3,141,114,72,203,199,129,214,62,54,221,126, -129,169,173,181,211,140,121,201,167,51,37,1,99,25,224,40,247,12,150,82, -74,68,230,142,79,87,4,24,229,253,186,117,86,151,38,11,225,71,19,62,104, -217,194,186,116,88,164,10,130,154,64,248,121,25,34,150,193,116,179,12,34, -197,49,183,21,20,203,153,246,114,215,186,75,130,236,100,175,38,6,111,229, -220,183,170,73,20,114,154,228,178,202,155,196,74,125,33,155,209,23,22,95, -65,14,45,219,28,19,37,130,228,127,203,67,109,119,173,219,73,127,193,100, -122,141,82,216,151,237,68,85,54,55,130,206,115,225,148,84,211,51,21,21, -211,226,188,55,18,58,201,215,246,140,164,166,210,170,183,98,168,230,231, -56,7,244,122,71,204,162,8,214,102,14,204,132,230,74,218,24,162,114,175, -201,233,221,72,205,123,38,237,235,187,171,9,98,183,4,218,50,145,138,85, -215,188,192,188,69,251,78,112,55,243,123,100,105,197,20,45,194,224,130, -144,8,27,200,72,209,53,86,176,54,202,66,240,188,87,50,227,147,183,72,74, -178,239,36,43,183,164,195,116,22,243,226,86,145,160,104,214,98,164,73,223, -96,68,23,181,108,197,223,72,31,203,97,234,146,109,190,184,216,236,66,18, -122,129,133,49,134,145,160,99,209,235,185,53,223,42,1,28,203,172,163,232, -250,184,41,26,197,57,243,150,202,184,100,50,91,14,91,203,234,105,22,162, -22,162,27,240,54,108,233,26,221,107,46,11,33,208,247,61,34,66,221,52,5, -107,54,71,5,74,50,5,37,28,63,11,255,36,188,8,213,205,239,44,228,140,69, -168,33,132,105,68,233,77,84,70,238,56,180,143,59,223,253,93,148,138,4,106, -243,33,106,159,91,155,110,184,133,4,39,146,215,207,181,40,41,10,197,148, -152,68,151,190,172,51,167,3,25,181,36,6,223,59,229,178,212,49,199,76,50, -203,128,166,37,133,50,47,44,8,192,27,245,69,89,147,162,147,236,89,146,210, -138,108,213,236,54,83,37,89,133,196,100,164,207,117,150,43,197,55,55,43, -57,247,98,169,50,91,215,53,21,226,197,49,175,239,85,15,210,23,163,201,188, -75,125,221,178,118,111,226,236,187,22,107,158,199,173,211,213,109,95,182, -102,175,232,70,24,144,6,217,37,159,90,223,117,11,116,9,28,82,244,40,117, -0,82,200,140,139,232,253,103,145,41,223,229,240,191,74,113,15,74,254,244, -215,227,208,223,153,1,231,233,120,206,112,95,38,23,106,102,2,110,109,111, -228,72,168,234,58,151,42,70,166,167,34,54,146,42,218,21,129,182,200,6,178, -114,167,116,180,30,6,92,178,232,215,168,137,22,163,193,115,193,161,178, -125,47,30,199,149,41,205,194,34,150,196,8,105,210,62,36,43,146,157,148, -5,151,66,151,87,36,119,120,130,36,211,208,54,30,163,194,243,248,150,55, -253,215,230,139,154,227,81,213,146,50,66,54,171,119,174,163,23,125,130, -73,58,162,148,233,21,188,106,95,243,233,253,55,76,37,131,251,154,192,217, -195,81,221,232,4,145,149,49,161,32,216,149,159,236,186,14,31,60,117,211, -68,34,213,230,240,4,86,35,16,23,157,228,100,122,93,49,191,120,17,174,145, -66,197,109,202,230,75,67,40,96,196,230,230,107,99,126,241,199,134,214,54, -17,190,100,35,204,207,46,96,172,65,212,100,216,89,58,242,86,138,155,158, -55,125,76,193,155,38,133,182,137,9,203,6,9,78,72,38,77,21,227,138,95,204, -222,51,0,68,19,118,177,22,124,144,162,181,116,67,56,106,197,156,219,194, -178,149,108,160,79,110,248,181,32,19,22,35,97,89,139,145,144,205,36,123, -65,215,64,138,158,231,162,205,114,78,2,182,208,212,123,246,237,61,108,247, -39,115,12,165,32,172,188,23,53,228,101,148,70,238,236,254,178,208,38,47, -94,206,214,171,235,110,138,188,97,106,141,64,190,43,8,209,133,245,77,169, -1,83,246,192,203,157,186,248,162,139,162,146,183,109,221,236,221,44,122, -179,17,184,202,187,158,235,215,85,127,151,53,21,171,220,62,146,115,202, -230,164,160,152,215,158,253,64,246,72,165,152,73,145,18,118,19,46,67,130, -26,200,11,60,1,217,192,208,36,193,88,202,90,188,220,123,190,105,32,166, -100,124,131,219,248,223,124,252,229,244,241,47,62,125,177,232,212,40,34, -164,84,64,64,214,194,96,130,228,58,189,165,144,241,202,24,43,6,55,107,59, -151,127,125,232,249,210,245,255,77,156,181,206,106,109,37,164,154,58,236, -204,200,38,195,76,178,32,32,228,119,93,211,102,241,233,131,223,240,240, -141,188,106,63,200,73,132,155,253,15,27,248,211,166,114,141,108,82,149, -36,169,187,95,187,142,166,174,169,170,42,66,210,90,126,71,147,197,153,31, -171,84,150,222,100,209,195,166,67,164,16,45,10,33,16,188,207,160,241,85, -91,200,175,89,80,94,136,95,179,12,207,49,198,44,18,174,165,131,73,251,120, -87,125,183,108,16,205,138,214,151,247,40,4,202,198,0,71,54,114,195,76,37, -40,147,255,203,185,79,119,187,14,178,89,190,41,76,47,89,132,94,72,80,172, -170,106,235,222,159,219,246,93,35,1,114,167,28,186,37,131,146,139,147,23, -61,195,154,211,86,41,218,142,74,190,73,169,16,124,119,90,170,220,77,120, -95,112,254,47,255,144,188,35,151,126,185,229,172,28,172,202,170,228,161, -47,178,219,95,90,63,229,153,203,29,240,150,247,8,30,182,156,184,174,138, -50,51,58,187,10,46,41,246,99,209,155,165,228,189,243,200,125,29,222,95, -171,63,217,42,201,20,42,34,183,206,173,140,143,178,254,126,42,45,155,64, -185,89,234,46,105,39,145,200,118,96,88,204,210,120,95,110,129,176,53,66, -120,155,240,249,210,117,231,62,186,156,228,183,254,184,91,53,245,109,17, -25,74,114,111,214,68,153,144,43,86,141,214,178,234,221,52,91,83,199,166, -191,203,120,230,43,221,151,162,179,209,192,206,237,216,219,227,210,162, -165,185,115,143,14,61,76,79,47,76,48,171,102,81,136,18,150,200,179,200, -242,85,227,188,231,110,232,184,92,207,136,8,255,232,205,175,18,188,231, -83,251,207,164,5,133,141,86,176,59,77,153,107,229,159,21,88,191,24,59,229, -218,117,113,138,86,93,205,28,129,116,30,113,182,28,54,229,5,228,197,160, -62,179,249,243,168,200,5,194,74,39,65,131,226,156,203,165,22,63,174,115, -191,59,4,162,124,93,55,70,24,106,148,14,54,82,136,42,229,160,177,166,129, -101,50,101,233,22,205,22,133,235,85,246,81,194,245,172,252,243,75,115,254, -200,235,104,101,80,201,18,20,207,159,22,41,102,25,20,81,214,44,100,116, -227,21,104,49,123,186,168,124,81,180,248,204,93,17,121,155,221,34,182,145, -231,12,91,149,19,217,96,183,72,42,124,117,199,185,175,186,49,117,189,21, -50,68,228,30,123,254,99,65,243,247,188,157,222,205,250,244,206,151,228, -5,36,160,148,145,213,85,159,181,188,80,120,123,23,206,176,5,215,167,75, -35,224,71,141,195,136,68,238,86,51,116,131,79,130,172,1,160,84,252,101, -213,66,203,134,184,89,250,192,38,238,135,42,120,31,166,206,150,117,82,41, -186,230,84,127,34,231,127,215,193,45,4,50,85,93,251,169,21,217,182,172, -166,201,123,173,29,153,109,36,137,244,236,237,80,154,35,136,82,112,182, -239,184,117,45,26,228,94,44,6,109,206,134,217,184,209,171,160,32,9,97,166, -55,220,146,124,220,9,69,36,87,240,185,177,141,37,117,166,178,89,144,95, -106,187,9,131,211,168,185,3,203,43,95,237,190,60,223,134,15,219,111,160, -177,45,33,138,200,207,215,28,5,105,38,168,196,128,98,163,115,159,196,53, -2,113,204,233,44,116,131,157,58,174,38,73,91,13,4,37,246,220,138,193,98, -168,108,77,91,183,124,244,244,17,104,224,203,111,127,149,125,125,164,114, -205,172,137,157,197,92,178,69,9,46,16,11,121,57,87,84,141,131,100,80,165, -110,26,74,253,248,185,115,33,101,118,147,10,219,20,117,163,45,227,90,110, -182,27,220,132,36,11,85,38,245,191,64,8,1,177,18,5,64,100,27,210,124,167, -167,215,247,125,61,223,197,33,132,168,86,231,220,54,106,32,178,9,227,74, -214,193,193,54,39,66,147,150,31,41,64,27,209,205,33,213,247,37,125,116, -131,44,53,61,167,160,132,144,4,7,70,16,179,209,103,175,197,62,73,122,170, -111,14,121,233,124,74,122,144,67,20,141,209,0,98,227,111,107,174,58,188, -10,154,84,238,193,131,242,206,108,62,239,149,78,2,151,164,147,65,179,18, -88,136,28,14,152,132,106,54,218,168,222,19,133,189,127,82,197,197,202,251, -52,163,173,51,229,57,97,208,16,47,194,8,168,159,94,75,210,147,27,215,99, -66,149,182,148,39,95,26,42,179,125,54,91,162,88,50,207,28,87,63,112,185, -92,232,123,161,62,30,216,213,110,243,202,180,116,202,170,171,85,188,4,189, -57,96,36,233,253,211,114,104,73,206,47,129,40,229,221,93,47,92,46,26,207, -169,113,43,32,110,179,247,80,223,27,126,216,142,56,183,138,177,41,176,164, -219,114,192,217,184,122,221,224,126,148,18,178,217,148,104,217,22,185,75, -20,88,203,42,22,47,14,253,102,197,165,88,190,171,185,234,158,110,228,144, -115,249,92,230,113,191,164,101,226,20,113,40,242,117,151,193,157,51,158, -79,38,178,168,165,60,173,20,213,35,213,66,38,52,163,159,79,25,140,36,202, -80,107,155,249,165,235,175,18,240,168,10,223,184,255,39,48,24,130,250,185, -230,172,193,227,253,64,223,15,120,21,92,83,83,91,51,141,255,11,248,48,48, -94,7,58,239,9,128,177,21,109,83,227,236,109,12,166,103,244,158,161,239, -25,85,168,154,154,202,154,185,125,206,136,240,250,225,21,95,249,234,151, -232,175,29,95,184,124,158,127,250,155,190,157,93,229,18,52,68,243,59,191, -53,3,248,198,182,212,69,234,112,43,24,29,198,56,201,171,174,107,156,181, -201,90,214,85,106,153,142,194,93,245,92,150,130,18,89,134,39,171,41,67, -37,147,123,190,28,35,88,227,242,33,40,122,135,90,33,31,35,115,191,107,200, -243,246,27,17,166,105,121,183,117,184,240,62,102,70,108,33,208,177,110, -21,191,87,151,88,244,232,179,188,92,116,27,246,190,107,139,74,149,176,105, -16,207,24,8,253,200,248,220,209,95,167,96,212,90,220,161,161,61,84,88,23, -207,59,120,157,157,254,186,209,60,225,83,204,34,77,58,59,123,84,9,221,64, -247,181,142,17,67,245,65,75,179,179,249,60,232,210,249,109,148,201,214, -98,170,119,16,240,249,167,146,241,122,73,134,112,203,232,210,62,105,29, -175,116,151,39,2,59,234,221,1,227,108,145,226,135,73,56,105,114,150,178, -158,239,126,151,75,187,53,111,120,147,110,15,91,237,127,171,106,185,122, -124,247,204,112,29,17,215,98,101,160,239,206,140,125,159,168,9,10,152,10, -215,30,105,119,123,196,217,21,236,175,239,229,183,18,109,137,48,233,105, -26,187,234,89,80,245,12,215,11,167,243,21,111,26,246,135,3,187,218,46,163, -108,67,84,39,52,70,86,211,230,217,232,104,200,90,237,210,214,223,13,228, -39,138,74,233,60,34,185,84,45,213,160,248,190,227,58,40,18,118,180,83,162, -35,91,200,13,159,16,141,185,235,228,11,7,164,90,148,218,114,82,161,100, -48,250,134,186,94,158,57,228,189,6,133,250,174,74,62,74,118,187,77,49,255, -241,178,20,40,27,58,22,105,11,236,86,249,106,93,133,74,235,237,105,171, -156,36,196,191,28,185,136,74,118,133,224,75,202,142,204,22,68,6,177,221, -200,11,186,100,64,42,69,59,71,210,45,170,76,70,109,91,107,62,16,232,194, -21,85,101,239,246,24,162,42,157,51,59,132,129,97,232,233,199,158,209,143, -140,65,49,117,133,157,38,57,5,63,226,135,145,17,176,117,205,78,71,186,126, -152,106,247,1,31,148,48,14,244,227,24,165,64,3,152,170,138,36,191,137,194, -172,34,104,8,140,67,135,177,150,193,43,214,24,188,14,81,200,36,77,173,95, -98,93,165,253,202,247,50,120,133,113,244,12,253,16,91,226,234,106,131,216, -84,112,33,52,53,178,247,241,213,213,94,208,50,205,207,85,153,116,50,28, -222,135,56,91,222,44,53,247,23,107,239,91,27,87,63,166,195,191,233,204, -107,52,122,113,112,152,41,144,111,217,32,152,203,125,169,201,82,169,107, -213,1,145,71,206,203,116,172,205,170,74,222,255,90,222,195,233,123,161, -235,25,159,6,134,96,168,118,13,135,87,118,222,93,98,76,20,129,243,158,241, -220,211,119,96,247,13,85,43,147,106,155,36,162,59,146,65,234,51,43,246, -118,201,67,96,184,12,248,0,246,88,81,213,134,252,14,149,169,212,6,228,154, -26,178,173,68,43,213,20,208,141,33,39,89,3,110,90,190,11,248,225,74,127, -121,38,132,10,187,223,97,157,201,253,118,24,240,253,137,190,243,72,179, -167,174,219,120,15,62,9,185,78,238,227,186,219,153,180,230,2,63,26,240, -253,137,225,58,130,107,169,118,59,68,26,90,231,24,236,51,67,112,84,205, -126,226,196,152,73,243,192,188,147,48,251,226,95,24,241,253,137,174,11, -152,102,79,211,68,185,220,219,211,8,99,207,229,124,226,50,40,182,62,240, -176,111,169,166,153,7,33,244,116,167,19,167,78,169,247,71,14,187,106,158, -97,207,170,154,79,142,156,102,200,174,108,219,141,48,208,95,46,156,7,165, -222,237,104,165,74,146,177,121,163,18,136,115,12,108,42,134,242,174,81, -176,159,152,180,179,49,40,71,203,176,77,86,141,104,179,154,30,139,13,17, -54,164,115,87,56,254,26,84,207,100,175,55,171,72,147,31,20,125,145,107, -81,246,170,104,97,91,102,117,189,123,73,83,57,80,75,180,80,178,72,26,65, -139,18,140,35,133,62,181,36,212,73,137,36,38,196,186,2,240,42,50,159,52, -152,180,50,193,190,119,254,188,250,168,181,77,224,232,30,80,213,73,62,82, -25,250,201,168,89,97,28,65,156,165,114,6,35,11,52,97,42,71,61,29,211,247, -211,84,56,43,96,2,126,24,241,10,206,25,124,23,192,89,92,109,49,70,167,222, -228,56,189,171,235,123,130,198,26,180,49,21,149,115,120,223,129,238,38, -152,78,183,213,188,86,20,243,181,122,88,94,239,85,174,221,5,17,67,93,215, -113,192,142,108,69,224,185,194,153,108,200,6,167,31,213,2,166,191,5,92, -169,240,199,34,113,151,227,171,214,218,25,194,94,237,47,217,96,199,202, -199,136,192,121,41,69,4,33,44,189,246,233,40,196,148,32,166,119,18,184, -210,152,23,77,170,247,132,160,230,223,29,3,97,10,108,150,245,43,16,60,33, -24,196,42,58,198,122,142,185,105,29,7,37,12,241,53,193,51,188,233,232,7, -67,253,170,166,218,217,201,113,223,2,224,128,31,20,189,14,116,207,35,161, -170,113,102,42,135,200,36,213,26,148,160,130,17,79,24,167,243,50,6,115, -107,34,8,17,246,14,10,118,215,224,30,76,44,163,76,40,128,142,74,48,130, -140,97,86,225,19,123,155,51,63,5,35,67,184,77,20,88,254,110,215,36,219, -244,172,28,97,136,228,203,60,192,50,83,38,41,168,63,211,159,78,120,83,83, -237,143,84,181,155,180,41,149,48,142,113,63,14,207,116,215,30,117,211,156, -118,13,16,108,204,144,130,198,235,188,45,75,19,117,248,227,249,4,116,140, -251,150,105,98,100,60,127,151,200,222,6,212,47,178,162,96,177,147,40,77, -220,187,1,245,126,106,13,83,116,56,209,93,7,164,58,208,236,118,49,99,213, -192,208,95,24,125,69,189,59,82,53,205,34,157,139,18,252,144,16,176,108, -108,225,84,65,117,68,67,68,108,230,53,23,198,169,140,98,227,28,12,245,132, -233,152,184,93,156,1,16,148,96,21,163,224,199,51,111,223,156,24,165,102, -55,65,242,241,51,35,131,15,248,238,153,167,231,43,190,218,211,154,73,62, -218,198,251,111,52,30,111,12,183,231,104,176,78,166,189,28,240,163,143, -1,138,51,83,64,27,103,30,196,57,5,1,175,74,232,47,156,187,1,181,77,68,86, -66,32,76,193,197,220,250,110,162,99,168,170,104,27,77,54,192,37,14,101, -82,36,145,3,254,122,103,192,111,49,60,150,250,120,78,6,92,178,219,45,209, -202,162,140,159,179,229,147,86,184,92,61,186,40,178,11,27,188,141,205,209, -91,9,207,101,77,171,147,13,97,128,181,48,219,90,192,104,206,212,19,25,97, -77,94,147,13,78,73,132,232,53,31,59,95,114,59,55,85,235,164,104,24,206, -172,240,154,53,110,196,188,16,134,43,125,232,162,179,85,197,153,10,175, -30,39,13,72,152,106,178,35,125,239,241,34,184,218,98,39,165,188,217,104, -77,198,204,251,129,126,24,240,166,162,173,38,24,176,178,152,16,24,250,17, -143,80,87,211,208,140,16,31,128,247,3,67,223,227,197,96,37,30,223,85,49, -130,189,118,23,100,255,154,173,17,166,25,124,89,50,26,97,37,180,113,251, -175,110,24,9,94,217,31,154,104,132,210,190,75,213,196,225,231,109,87,233, -83,74,91,185,82,194,222,100,249,10,10,69,66,76,76,89,248,68,130,161,15, -1,103,5,9,83,73,33,237,249,76,68,51,72,120,13,155,201,248,45,186,54,178, -137,156,106,89,135,85,157,234,238,49,192,16,149,172,223,93,139,30,91,13, -240,23,255,252,143,243,67,127,240,135,24,134,97,211,36,124,254,87,62,191, -98,22,222,106,106,37,104,233,47,61,221,219,1,118,45,205,113,202,74,0,237, -7,250,231,142,65,29,206,121,134,83,64,154,154,221,171,10,59,122,250,167, -158,174,87,220,161,161,50,35,195,37,160,206,34,182,216,224,163,167,127, -190,210,61,141,140,131,71,213,96,170,43,151,139,96,154,138,250,117,67,77, -160,63,117,140,163,197,154,192,120,29,240,24,220,113,71,123,180,24,245, -140,207,87,186,211,200,56,8,118,87,211,126,186,161,186,173,247,203,192, -183,254,83,255,124,118,15,254,206,223,254,105,234,15,118,212,187,56,232, -197,159,7,250,167,142,113,136,129,133,42,72,93,81,63,182,180,123,27,107, -249,220,134,200,20,160,189,42,33,116,248,235,137,254,122,101,244,209,89, -41,53,245,225,53,187,221,14,225,74,127,62,51,120,75,125,60,82,185,73,83, -66,2,190,191,208,159,62,162,191,14,211,48,26,139,49,61,254,122,198,54,71, -218,253,14,43,35,195,245,68,127,185,204,142,199,52,143,236,142,71,172,12, -140,151,103,174,221,136,117,21,58,94,24,7,15,182,165,121,248,128,186,178, -16,58,198,238,76,119,185,18,188,71,197,226,154,87,180,199,61,214,0,99,207, -208,157,227,239,123,191,12,185,105,63,224,176,219,197,61,168,35,227,245, -137,190,15,216,253,107,170,182,138,233,136,6,8,3,195,245,153,254,210,17, -194,136,226,176,205,35,187,135,3,38,116,12,231,143,232,71,135,59,188,166, -174,12,97,56,51,92,158,240,82,97,93,141,246,79,12,221,116,253,106,49,238, -202,120,173,112,205,3,237,97,143,250,43,207,207,79,92,67,203,227,7,71,118, -85,28,113,171,99,199,249,249,35,62,122,190,50,244,3,163,26,92,53,50,92, -78,84,77,203,241,213,43,246,85,96,236,175,156,158,159,184,244,35,94,13, -85,115,228,241,245,145,214,142,12,215,103,222,158,71,164,222,243,184,111, -177,76,153,186,23,170,170,194,134,158,110,24,24,199,24,208,154,208,113, -30,59,76,221,210,238,91,90,103,231,182,211,224,3,1,139,171,107,156,73,117, -77,98,96,116,122,234,161,110,57,28,91,42,195,186,237,227,147,56,251,162, -239,123,46,7,79,220,164,217,14,102,68,210,66,105,243,110,171,174,38,159, -41,28,105,209,145,146,202,80,147,77,169,211,59,57,123,81,14,154,39,222, -189,124,35,164,236,202,209,220,128,106,146,132,205,45,209,25,65,119,153, -41,34,147,243,119,154,120,172,156,93,44,171,178,230,12,71,100,125,129,69, -225,67,115,166,151,21,119,231,97,39,4,171,41,131,55,98,19,22,60,51,67,34, -140,61,221,168,152,202,225,196,16,36,204,145,89,172,120,6,252,56,208,117, -61,65,106,234,218,197,172,108,114,156,97,28,232,124,192,86,205,20,121,135, -56,97,203,15,12,131,71,141,163,178,202,208,7,176,21,174,50,72,136,191,190, -234,181,40,198,254,221,1,119,10,159,31,95,31,189,167,239,174,83,221,221, -205,211,137,2,74,24,125,148,71,117,154,44,136,69,81,218,143,35,98,36,214, -169,181,88,111,170,140,222,71,233,95,43,115,63,120,186,192,199,113,196, -136,137,44,245,27,75,84,132,202,58,20,24,66,124,223,26,91,148,111,227,130, -25,189,199,138,196,108,127,229,220,227,251,198,24,172,110,71,0,222,143, -241,250,172,201,180,217,221,196,163,184,157,159,113,38,149,214,158,184, -91,81,54,247,7,254,189,31,120,25,5,13,97,210,206,95,235,36,140,227,116, -127,156,65,125,116,142,94,13,77,101,144,16,8,106,48,4,252,165,103,240,150, -234,224,112,162,248,231,145,16,20,223,15,244,167,129,128,163,121,85,83, -53,160,189,71,28,132,174,227,242,53,69,31,91,154,253,36,14,100,13,110,223, -196,204,178,179,84,199,150,122,103,166,132,99,10,50,158,58,186,167,17,173, -4,247,88,209,212,134,238,237,56,5,74,17,243,114,135,22,161,227,252,28,112, -123,135,173,44,162,1,29,61,195,219,235,102,176,101,0,25,3,195,211,149,193, -11,238,184,163,177,202,240,230,202,128,163,126,213,80,55,38,153,14,168, -12,227,24,159,141,113,252,175,63,241,151,249,225,31,248,33,52,4,254,227, -255,236,7,249,29,159,253,44,245,227,35,77,184,50,60,191,197,219,29,85,221, -34,50,50,92,158,232,123,161,58,60,80,59,151,212,101,5,177,53,213,238,64, -240,207,4,251,154,230,112,136,101,160,27,153,172,123,195,169,235,193,29, -168,31,31,144,112,162,63,157,65,166,17,204,195,137,235,233,132,87,65,234, -61,245,190,197,92,190,70,175,6,33,16,174,79,92,175,87,112,71,154,135,35, -70,207,116,207,231,72,152,10,99,124,191,243,72,189,163,125,117,132,112, -101,120,126,98,180,7,154,253,17,227,34,177,46,12,39,250,203,136,105,31, -104,110,206,157,145,112,121,226,210,93,193,78,231,167,103,250,167,243,148, -49,70,155,22,84,193,56,132,145,241,252,204,48,10,182,121,205,174,174,17, -81,130,243,4,127,198,84,31,208,236,246,147,120,83,36,33,162,158,243,243, -19,87,109,56,190,122,96,95,37,51,57,108,69,115,120,197,163,15,188,49,45, -143,143,15,28,219,106,202,170,227,119,47,111,222,114,9,150,221,254,3,62, -253,168,116,207,111,57,141,3,33,196,209,206,198,57,172,140,113,218,159, -239,233,250,30,165,98,127,104,168,173,64,112,24,115,225,106,132,102,215, -82,185,40,189,44,217,180,76,141,247,200,123,112,53,117,101,177,41,47,40, -120,198,222,199,243,109,39,231,175,178,238,150,248,36,52,250,114,244,193, -76,238,78,102,42,20,83,52,179,234,220,10,69,44,122,220,19,109,21,145,117, -217,63,103,203,23,72,237,29,213,161,148,51,47,153,176,155,172,250,247,215, -101,217,178,177,191,96,82,168,36,46,86,50,212,86,165,24,79,180,180,201, -177,26,58,146,207,178,78,131,150,173,42,84,161,24,150,188,27,25,243,178, -173,106,180,49,118,47,186,58,157,157,124,28,145,57,210,15,1,53,150,166, -50,113,116,37,55,199,51,205,235,238,123,134,193,131,181,212,141,195,77, -173,78,42,33,58,247,113,68,141,141,142,91,3,94,71,198,97,100,244,1,92,69, -101,149,177,31,80,141,8,129,121,190,213,166,74,49,139,178,242,195,38,75, -146,164,189,226,246,239,219,121,34,134,186,169,146,136,110,146,191,180, -54,214,251,146,25,204,75,117,37,58,86,35,102,123,80,132,220,222,95,162, -216,191,253,191,255,77,62,247,23,62,199,207,254,212,207,242,15,127,229, -31,50,12,3,175,94,191,226,91,190,237,91,248,174,207,126,23,223,247,123, -191,159,221,110,199,47,125,241,239,243,7,254,237,63,0,192,31,254,177,63, -204,239,252,87,190,171,40,223,198,235,112,214,110,102,239,183,12,219,218, -56,98,115,51,230,49,113,154,153,73,126,192,251,248,28,173,149,8,43,218, -37,251,215,178,252,33,130,197,190,211,44,24,107,214,8,209,20,9,89,103,23, -248,177,27,24,71,48,173,67,134,158,235,115,192,180,21,22,207,56,40,118, -87,81,55,6,237,166,192,161,31,24,196,96,234,134,246,224,176,211,4,135,191, -248,63,255,47,252,161,63,248,135,24,134,241,189,204,86,85,85,252,145,63, -245,71,248,190,223,253,175,227,47,3,253,69,49,251,150,230,177,194,58,197, -63,13,152,202,226,90,187,16,33,189,103,232,21,211,214,84,7,135,153,58,30, -198,83,79,144,245,61,169,118,53,206,5,134,231,158,190,7,247,216,82,53,177, -76,16,140,197,237,106,170,201,185,167,235,203,57,59,33,109,158,31,251,79, -126,148,47,127,233,43,0,252,241,255,226,191,228,95,251,254,223,29,157,99, -223,163,110,79,189,127,196,153,192,120,125,166,239,3,102,247,138,166,174, -231,172,33,218,142,0,190,103,236,70,176,71,218,199,87,184,201,185,7,223, -227,175,207,244,215,1,170,3,77,219,96,66,31,29,133,219,83,237,26,100,124, -230,122,58,227,77,75,179,127,160,174,43,116,60,49,138,197,185,10,250,183, -92,251,17,170,35,117,219,98,180,139,223,175,246,84,141,33,92,223,210,15, -96,218,71,234,182,142,217,118,63,160,118,71,125,120,160,170,4,9,145,104, -215,119,29,184,3,205,110,31,239,111,24,24,46,111,25,186,17,170,7,234,182, -193,232,116,45,110,71,181,191,161,3,10,226,192,247,248,203,128,184,150, -230,176,159,131,176,48,92,25,251,128,184,35,205,241,1,103,205,188,37,130, -31,184,62,191,229,52,8,213,241,200,161,206,167,53,10,74,24,58,186,81,168, -118,71,30,246,59,42,115,43,123,92,57,61,159,233,122,165,122,220,81,87,6, -198,158,128,161,174,91,170,137,255,128,26,172,181,140,58,50,140,6,83,181, -52,55,254,17,145,180,23,212,80,181,13,77,229,166,206,135,5,17,140,54,40, -224,199,145,33,128,113,21,141,51,217,212,71,49,21,237,193,209,112,43,11, -201,215,7,205,103,153,171,100,93,71,41,56,151,139,41,105,38,101,45,27,76, -116,101,157,153,207,100,113,201,19,207,57,15,79,231,175,176,209,150,198, -54,203,89,19,78,90,78,201,44,91,249,114,167,189,154,246,153,201,13,44,100, -219,76,7,95,211,238,150,117,80,35,95,124,251,69,229,158,226,211,150,176, -77,169,42,82,168,231,164,174,206,138,123,143,0,78,120,59,124,196,87,46, -177,255,253,159,60,124,19,65,61,173,125,132,112,229,210,93,232,85,162,129, -182,147,140,234,84,55,247,67,100,162,7,12,182,174,113,198,96,140,78,181, -188,169,182,126,237,24,48,84,77,21,179,215,208,211,117,99,156,75,109,45, -198,10,97,232,25,198,128,184,138,186,113,60,127,245,9,13,240,234,248,154, -95,255,169,111,218,26,28,188,25,177,228,21,153,68,197,47,40,151,235,149, -16,2,109,211,224,42,87,48,93,95,102,166,137,164,17,167,228,206,87,115,117, -227,191,251,83,63,203,143,252,240,143,240,243,63,247,243,47,222,245,87, -175,95,241,67,63,242,195,252,119,127,230,191,229,167,255,206,79,3,240,27, -191,249,55,242,185,255,237,115,57,10,245,49,2,238,247,125,95,51,54,111, -57,44,83,146,77,156,183,4,254,248,159,251,113,126,248,93,16,189,228,234, -11,43,57,145,126,160,123,59,48,78,104,7,231,17,117,6,83,69,192,70,154,154, -122,87,97,24,25,78,61,221,155,1,53,142,250,83,13,85,107,151,218,54,240, -45,223,244,45,159,200,134,125,225,23,254,46,215,147,71,173,163,57,84,216, -90,144,16,219,223,130,128,49,183,12,118,164,251,168,99,192,82,63,214,241, -248,170,140,79,87,250,78,49,187,154,239,248,103,190,45,251,237,159,251, -197,207,99,198,129,203,219,1,117,21,245,161,66,198,129,177,139,165,134, -106,239,112,110,173,111,49,231,242,254,202,183,254,166,239,140,112,246, -180,71,126,238,139,63,73,127,62,227,113,84,187,35,206,41,254,252,150,97, -0,211,70,7,107,77,58,39,33,196,154,251,229,66,144,93,204,92,235,216,254, -168,225,202,112,122,203,245,114,193,123,69,110,99,118,109,75,189,123,192, -213,53,198,159,232,78,39,188,212,212,251,135,168,17,161,145,249,30,66,199, -112,126,162,191,118,68,66,190,196,249,237,174,165,222,29,113,46,48,94,206, -248,96,113,187,3,85,83,65,127,166,59,159,9,84,84,251,3,85,85,35,4,252,245, -45,93,215,129,221,83,239,247,56,107,192,95,233,207,79,92,207,151,152,9, -27,27,3,23,215,82,237,142,84,77,29,9,119,58,16,174,39,250,235,9,79,67,117, -120,164,174,171,41,72,10,104,247,204,245,114,33,152,150,122,127,136,220, -158,185,52,166,244,207,95,227,205,121,196,181,15,60,28,119,49,163,78,90, -191,66,255,204,71,111,206,12,174,229,225,120,100,215,216,249,254,61,191, -121,195,219,83,23,237,222,20,216,27,99,112,205,142,118,183,167,173,99,89, -115,236,123,250,174,39,152,138,166,109,169,42,19,185,80,26,80,63,208,15, -30,47,134,186,170,98,128,158,142,91,189,245,85,251,129,107,223,163,226, -168,235,42,30,239,125,90,101,127,45,133,111,36,151,225,78,235,220,57,135, -52,159,43,194,150,51,46,13,175,38,227,155,179,128,98,171,131,72,95,108, -33,202,2,129,108,252,246,162,19,163,47,234,47,228,73,155,20,157,67,90,250, -154,130,87,171,27,4,105,87,122,245,180,213,79,151,105,169,137,219,214,13, -118,119,62,136,220,48,109,186,247,37,83,40,153,124,106,116,89,158,113,24, -24,189,96,107,139,117,83,246,165,177,93,206,15,35,131,6,196,214,212,149, -139,164,59,209,169,223,93,80,245,244,67,79,175,196,239,139,65,195,192,216, -119,244,195,72,64,24,134,165,253,68,69,34,244,20,150,250,186,100,179,89, -183,198,167,109,211,201,51,78,164,70,181,58,63,142,52,77,131,117,182,104, -135,184,167,27,94,200,221,206,115,238,211,138,136,102,11,252,79,255,87, -127,154,63,249,163,127,34,23,129,184,243,247,230,163,55,252,192,191,251, -31,102,175,253,131,95,249,7,27,186,202,239,201,135,121,23,229,121,90,35, -33,248,88,119,191,9,218,20,56,156,38,245,166,52,50,85,148,239,251,189,223, -199,247,255,158,239,155,23,243,183,253,134,111,221,220,104,202,157,13,161, -1,223,121,124,31,48,123,183,224,217,128,14,96,246,145,40,199,216,211,95, -125,44,217,16,17,136,184,158,37,65,168,244,19,219,171,225,234,9,106,105, -246,21,182,146,133,228,99,227,26,84,5,124,96,56,245,17,98,127,172,169,154, -8,159,250,235,192,112,245,80,55,84,173,227,255,250,127,62,31,179,245,14, -170,135,26,209,64,127,26,24,251,17,250,192,165,27,177,109,69,115,108,113, -9,44,79,66,232,153,239,84,232,25,47,167,217,185,71,0,193,211,189,125,195, -72,77,115,60,82,85,50,213,171,61,166,125,69,221,54,17,46,247,83,251,159, -8,58,92,232,47,39,70,218,232,220,43,59,237,241,30,127,121,162,27,192,61, -124,200,190,170,34,25,111,238,58,176,232,112,98,184,198,204,189,222,31, -169,43,183,16,48,131,39,116,103,134,209,224,30,62,100,87,85,11,209,78,108, -132,201,175,207,140,131,226,14,59,156,51,104,247,150,238,57,58,225,230, -120,136,204,120,9,132,238,76,127,189,160,246,64,211,238,113,198,34,218, -209,95,159,233,123,165,122,248,12,85,93,97,231,82,101,68,216,204,141,129, -223,157,167,182,53,135,113,59,156,171,102,98,161,14,23,186,235,9,47,13, -237,238,16,121,68,201,74,247,253,153,211,165,71,221,129,253,190,157,90, -121,147,21,236,59,206,167,51,87,181,28,247,123,218,218,78,207,202,51,92, -46,92,58,104,31,63,205,113,215,68,180,242,38,164,100,76,124,6,126,96,24, -99,199,145,136,193,216,200,71,154,231,216,107,96,28,71,70,53,84,85,141, -179,228,51,166,111,253,6,193,51,14,35,42,85,172,217,219,100,82,223,109, -236,172,200,204,235,145,127,28,206,125,118,17,146,56,249,181,6,140,110, -137,115,189,168,32,147,104,17,232,210,150,42,105,1,95,239,177,139,101,213, -254,152,235,201,179,76,239,76,134,222,220,140,181,232,251,228,75,154,4, -224,139,154,105,108,147,147,124,172,47,233,232,102,201,104,244,38,85,221, -202,110,90,161,131,29,11,91,154,207,170,43,11,10,243,131,54,188,199,208, -187,4,236,143,76,226,168,21,50,50,250,145,48,244,17,130,155,24,197,145, -1,27,24,187,11,151,243,149,46,128,117,117,204,70,116,140,142,93,39,248, -210,15,244,67,71,215,143,177,231,214,76,158,91,12,182,106,217,31,142,236, -247,123,118,187,10,43,96,155,134,246,176,163,109,42,236,20,65,107,40,2, -194,162,7,27,45,65,249,28,166,191,221,194,16,2,215,238,26,217,167,85,181, -56,9,93,7,9,82,214,121,100,233,189,151,23,218,208,20,248,179,255,205,159, -229,79,252,200,31,127,47,231,254,82,13,59,45,201,124,188,190,246,123,175, -105,54,11,64,136,60,130,155,20,238,106,222,150,146,13,133,88,56,49,146, -199,145,119,207,65,10,245,149,228,33,250,192,112,26,35,179,162,178,84,85, -44,10,141,215,128,105,107,92,99,8,231,43,151,143,6,188,88,154,199,26,91, -203,92,26,51,26,240,131,199,143,158,48,40,127,244,79,253,209,168,252,247, -158,127,85,85,241,71,255,216,143,210,245,6,55,57,247,57,154,150,27,44,235, -241,195,212,86,119,10,80,59,92,53,93,202,24,24,78,29,193,86,84,123,135, -49,16,186,129,254,28,131,19,91,41,227,219,142,145,138,230,83,71,246,31, -30,56,124,170,165,125,172,113,59,155,57,247,178,110,136,70,72,184,191,94, -86,159,184,134,154,234,248,64,85,71,82,219,112,190,162,166,193,58,33,12, -103,250,75,36,224,197,184,220,199,118,184,65,176,174,137,144,183,198,86, -58,245,61,99,215,17,176,113,212,238,45,160,179,14,99,44,248,152,157,123, -217,81,239,31,23,231,126,67,170,252,192,216,95,9,56,236,196,162,23,4,99, -93,100,244,143,87,134,203,5,53,209,137,143,167,175,113,250,218,87,232,124, -69,117,152,144,0,64,253,133,238,244,134,96,246,83,214,111,64,2,193,15,248, -238,74,160,194,220,52,33,159,73,46,82,0,0,32,0,73,68,65,84,16,196,86,17, -61,28,59,250,211,87,185,94,206,224,14,84,135,195,220,149,178,240,93,2,190, -127,102,152,174,95,110,93,2,243,90,140,208,125,55,130,107,26,234,42,103, -81,43,129,48,118,156,175,17,57,50,104,92,111,83,15,125,63,145,133,157,49, -179,224,163,17,19,17,78,2,190,187,114,185,68,174,72,221,212,11,123,30,179, -164,121,234,25,167,214,88,35,177,255,93,37,201,134,167,32,96,232,35,250, -233,170,42,18,113,117,225,76,117,215,51,207,207,103,174,131,207,131,93, -121,159,160,255,99,24,145,13,159,154,137,123,81,216,24,201,157,126,106, -140,37,41,127,72,49,153,82,52,29,249,145,200,131,111,158,217,106,172,97, -66,128,38,35,215,169,22,105,199,150,29,79,218,208,178,233,124,55,52,115, -110,247,43,106,16,146,148,130,101,195,112,223,132,110,230,81,120,146,215, -5,210,90,187,176,49,88,69,100,221,228,175,107,245,174,119,183,65,104,172, -141,251,129,203,249,68,239,61,88,23,219,231,116,196,171,197,214,134,48, -94,233,186,158,49,196,12,63,182,177,129,177,46,66,123,33,58,246,193,135, -73,134,86,145,137,245,171,117,92,164,106,150,137,75,126,240,177,37,167, -182,56,153,169,63,179,65,15,154,244,92,103,163,191,164,32,114,229,147,160, -82,226,98,223,247,0,212,77,157,51,204,101,171,229,171,200,226,245,142,86, -196,44,208,16,201,27,95,248,123,63,199,31,251,207,255,216,234,14,127,251, -111,254,118,254,141,127,235,223,228,183,254,75,191,149,15,127,221,135,156, -159,79,252,242,223,255,101,126,234,111,254,36,127,238,191,255,243,252,210, -47,254,210,221,199,34,247,122,221,223,71,193,110,213,146,50,53,60,121,143, -215,48,247,247,230,130,110,57,252,38,105,167,66,58,186,55,93,216,220,233, -129,147,92,143,251,38,81,235,251,17,239,21,179,139,112,59,231,129,48,130, -219,215,84,173,48,62,95,166,94,245,150,246,104,97,28,24,84,17,3,18,60,253, -211,192,245,105,140,235,10,248,238,223,246,175,242,183,126,234,123,169, -31,35,49,19,129,111,249,245,255,108,118,70,127,235,111,254,109,236,174, -166,121,108,176,58,50,156,6,70,227,168,91,51,147,237,116,66,176,252,101, -160,123,211,49,140,209,105,120,15,70,59,174,170,52,175,12,166,31,81,53, -216,125,141,171,34,83,127,236,3,90,57,234,198,32,125,143,239,71,198,224, -241,215,91,161,194,96,15,45,187,215,85,44,73,172,250,112,23,161,12,189, -49,199,139,191,246,248,72,211,212,8,30,63,14,209,17,142,79,92,198,142,186, -61,80,237,118,73,125,121,68,131,71,125,207,112,254,42,99,183,167,62,60, -210,52,142,120,35,37,66,230,111,207,92,69,176,213,158,122,255,154,202,141, -140,221,9,175,81,88,166,174,76,209,27,25,57,30,34,6,29,158,185,190,57,197, -193,72,213,129,250,240,154,170,146,249,252,67,255,68,167,177,108,96,235, -29,182,62,210,212,85,52,148,161,103,188,94,8,210,82,237,31,168,42,147,181, -182,98,4,237,78,92,223,156,16,19,127,191,105,247,136,63,209,157,35,83,188, -62,62,224,156,16,174,207,177,133,111,62,215,41,217,8,129,48,246,244,167, -158,161,219,81,31,62,160,105,44,6,33,232,72,223,119,120,117,49,208,93,73, -167,76,114,213,234,25,175,111,249,90,119,162,222,29,121,120,245,192,206, -25,92,229,112,215,11,215,211,91,250,139,193,186,154,166,221,209,214,134, -48,244,116,94,176,85,77,93,155,200,49,208,36,81,16,51,101,230,55,226,105, -207,56,12,216,170,162,110,100,98,199,43,234,71,134,126,100,240,134,170, -173,168,221,141,56,167,51,105,121,24,6,130,169,167,114,146,108,247,112, -127,146,84,125,75,177,107,10,162,180,32,145,41,186,154,159,190,154,209, -158,6,6,73,151,78,110,211,242,162,94,100,233,11,114,183,213,111,173,1,185, -194,12,203,81,27,34,119,198,35,231,153,154,174,231,89,175,71,40,229,147, -190,55,181,173,230,159,249,226,211,47,42,5,203,47,21,26,145,108,214,44, -121,246,89,120,1,163,178,72,84,222,117,6,235,190,133,55,253,215,248,242, -233,203,40,129,95,119,248,70,66,240,28,170,215,209,185,79,29,242,177,127, -179,199,107,116,18,41,147,127,142,98,38,25,91,157,38,33,45,37,135,40,107, -235,189,103,12,35,26,226,231,252,84,244,188,213,130,69,192,56,225,242,213, -30,85,229,131,135,15,248,245,31,254,6,238,139,94,50,19,11,85,214,222,176, -31,6,186,107,71,219,180,145,88,151,137,165,228,67,84,36,37,102,164,181, -33,189,59,235,99,126,168,191,239,247,252,62,126,230,39,127,38,59,250,31, -252,161,255,128,223,255,239,252,254,41,168,72,231,208,11,6,240,33,240,39, -127,236,79,240,167,255,235,63,147,180,70,27,254,143,95,254,63,223,185,55, -207,231,51,159,251,11,159,227,175,252,196,95,225,11,63,247,5,190,252,165, -47,35,34,124,248,13,31,242,173,255,220,183,242,61,191,235,123,248,222,239, -255,94,218,182,93,171,232,37,59,47,27,142,51,245,117,190,249,232,13,63, -254,63,252,79,252,245,191,250,55,248,133,159,255,191,249,234,87,190,10, -192,55,124,227,55,240,29,223,249,29,124,246,123,63,203,247,252,174,239, -161,170,42,190,245,155,114,136,254,243,255,224,243,148,139,56,91,31,62, -48,12,35,127,249,39,254,50,127,227,175,253,13,126,230,39,127,134,175,124, -233,43,156,78,39,94,189,126,197,103,62,252,12,255,194,111,249,205,124,247, -103,191,155,127,249,187,126,91,236,48,152,148,76,197,8,4,69,67,30,149,137, -155,16,162,105,61,150,14,254,243,191,244,133,248,28,109,172,179,135,137, -84,137,101,174,121,206,82,149,222,19,180,236,194,17,196,10,63,254,63,254, -56,127,232,223,255,193,187,252,131,219,223,207,126,225,239,197,90,61,1, -127,233,184,62,69,34,95,251,202,77,16,107,186,136,226,117,252,213,191,244, -87,249,177,255,244,199,248,149,95,254,21,198,113,252,88,38,185,170,42,190, -249,55,125,51,63,248,31,253,32,191,243,123,126,199,180,255,66,214,182,105, -140,153,140,102,96,24,58,126,226,115,127,137,191,254,215,254,58,63,243, -83,63,203,87,190,252,21,78,207,241,254,127,248,225,103,248,206,127,241, -183,240,221,159,253,110,126,251,119,253,246,73,4,42,237,9,246,211,222,77, -13,231,130,76,200,173,220,6,136,216,133,200,42,255,63,109,111,30,103,203, -85,213,139,127,87,205,103,234,225,222,220,33,55,35,97,138,8,36,12,62,148, -41,146,135,240,100,144,65,80,34,32,32,4,49,145,16,248,133,48,136,128,128, -136,62,208,39,160,204,250,34,242,16,72,16,136,202,32,6,2,168,60,144,33, -34,4,8,132,204,19,201,29,186,207,80,195,222,123,253,254,216,187,170,246, -222,85,167,187,47,228,181,159,75,236,62,221,117,234,84,237,218,107,173, -239,250,174,239,215,64,215,53,28,171,148,249,89,0,127,222,191,222,27,218, -30,104,168,227,162,50,90,2,205,251,25,245,55,133,230,243,53,136,72,61,175, -207,186,135,143,38,8,50,100,181,192,198,225,131,152,139,20,43,235,235,24, -103,81,151,205,163,244,248,106,19,208,66,173,11,160,123,240,18,90,12,207, -36,37,245,177,3,54,163,191,90,35,161,77,218,106,46,80,96,237,229,170,25, -19,110,94,171,209,7,89,162,42,5,56,72,16,39,177,78,198,29,198,185,64,89, -228,40,4,35,140,13,234,249,255,68,232,166,203,67,178,165,105,217,211,31, -161,101,254,206,94,1,65,150,179,100,171,181,193,61,248,43,182,236,186,251, -80,5,117,218,118,219,20,185,75,181,148,9,125,250,211,62,128,76,125,218, -39,61,232,9,253,112,227,106,246,91,203,29,189,95,160,111,24,222,171,154, -128,8,97,39,163,218,201,39,60,92,28,194,237,179,219,128,0,216,59,214,1, -126,18,175,129,33,161,148,14,232,130,43,40,86,16,44,209,218,164,178,53, -163,205,110,255,182,145,25,212,35,86,165,44,181,64,68,221,175,96,235,247, -217,238,231,16,170,35,21,16,48,214,39,187,112,220,190,227,59,132,140,166, -50,108,178,191,238,186,18,102,108,47,8,66,12,178,212,218,0,208,51,166,224, -246,216,109,162,11,179,239,174,234,166,134,87,124,253,10,60,253,137,79, -119,222,251,252,151,159,143,179,207,61,219,25,67,212,106,117,1,130,176, -21,29,42,139,18,103,60,224,12,108,28,217,0,0,156,112,210,9,248,228,23,63, -181,180,255,46,132,192,251,223,247,126,188,251,109,239,110,254,102,217, -215,218,250,26,126,251,69,191,141,167,63,251,233,8,130,0,170,134,4,163, -160,235,39,106,146,178,247,188,253,61,120,223,59,222,135,233,230,116,203, -99,239,221,191,23,47,186,240,69,248,189,151,252,158,23,224,175,236,12,220, -183,226,16,192,71,63,244,81,252,197,159,254,5,110,190,233,230,109,87,231, -49,123,142,193,217,191,123,54,158,254,236,167,35,12,163,142,203,23,247, -84,8,0,225,212,227,239,233,28,231,187,55,124,183,163,76,72,142,217,157, -71,187,233,121,14,65,192,169,199,221,115,71,79,213,183,174,190,82,235,68, -84,2,229,76,104,130,224,74,138,40,38,4,75,242,238,7,159,254,96,220,254, -227,219,127,170,13,120,223,254,125,248,210,215,190,180,101,177,115,241, -223,93,140,183,190,229,173,184,249,198,157,93,255,23,188,240,5,120,198, -115,158,105,196,83,150,205,39,49,186,42,118,212,235,242,214,45,44,151,249, -186,45,71,156,119,246,91,125,18,40,250,252,68,149,99,122,248,16,102,50, -197,100,109,21,227,44,242,36,192,28,12,176,151,212,219,107,84,107,41,162, -177,61,78,221,107,176,71,45,178,85,183,63,148,64,85,148,40,149,66,16,165, -72,83,205,63,168,199,124,21,107,54,189,40,180,212,119,152,164,72,147,168, -99,132,211,11,208,238,196,161,170,103,118,204,150,77,231,62,167,188,101, -162,28,62,178,108,61,172,141,48,140,157,92,123,215,180,53,175,218,122,28, -218,79,12,28,11,106,184,156,0,95,78,156,183,232,197,215,5,99,195,153,64, -171,8,219,34,12,219,241,164,244,155,6,228,221,12,70,143,139,96,157,153, -178,221,211,100,11,81,97,99,80,114,180,193,221,133,74,88,26,231,183,198, -45,206,146,125,173,77,81,204,255,213,85,61,84,45,122,99,49,236,89,25,93, -123,133,82,148,200,203,28,44,205,99,172,76,31,204,4,21,101,219,198,170, -54,216,40,193,109,66,64,75,96,19,234,111,55,233,190,187,118,137,75,210, -216,13,238,232,115,131,179,253,133,219,145,15,230,78,94,161,127,199,194, -183,63,245,15,159,114,142,125,191,7,222,15,207,59,247,108,88,158,123,90, -77,48,140,52,217,134,131,230,28,146,52,193,5,175,186,0,171,107,171,216, -125,204,110,92,248,251,23,46,93,52,135,15,29,198,115,207,122,46,222,252, -134,55,111,27,220,235,223,255,227,215,254,49,158,243,235,207,193,161,131, -135,204,20,68,224,94,56,115,38,155,71,54,113,246,211,207,198,159,255,201, -159,111,27,220,1,224,182,91,110,235,4,119,27,226,107,101,33,245,247,179, -141,25,94,240,172,23,224,85,23,188,106,71,193,29,0,110,255,241,237,248, -163,215,252,17,158,241,228,103,98,243,200,134,99,203,219,81,17,108,90,102, -75,158,88,110,199,81,26,13,119,171,221,195,140,142,212,176,221,23,60,154, -2,104,113,235,38,102,183,205,144,207,25,209,120,128,193,122,170,71,194, -150,147,22,58,235,243,167,229,111,248,210,135,155,211,77,60,239,25,207, -195,43,94,242,138,29,5,247,250,250,191,225,213,111,192,89,79,122,26,54, -14,111,244,60,57,126,213,229,59,187,109,23,220,237,141,143,208,239,234, -222,181,11,223,17,175,180,15,86,181,174,117,24,37,200,210,216,140,13,162, -135,164,219,211,128,246,133,85,200,110,13,90,118,169,104,59,137,221,224, -238,74,12,55,129,158,5,202,188,68,197,1,226,108,128,65,205,69,170,91,30, -85,129,124,54,197,108,86,64,4,49,178,225,16,131,116,139,224,142,163,9,238, -232,9,60,54,103,167,142,217,220,240,84,58,60,116,251,249,233,235,145,91, -163,103,77,242,99,37,221,174,158,190,33,138,82,151,69,239,43,235,249,1, -187,47,61,3,122,0,91,219,112,202,233,3,144,183,191,176,229,130,199,14,193, -145,172,228,133,157,143,75,206,123,6,78,0,247,197,234,225,42,253,16,117, -7,253,235,199,34,64,176,45,59,176,63,189,243,171,104,118,89,17,102,172, -68,89,9,70,253,95,5,51,57,79,45,4,173,172,52,32,47,22,122,70,153,141,242, -145,50,218,231,245,69,81,109,96,87,74,67,119,74,41,13,159,198,129,153,49, -168,29,167,52,4,216,92,209,230,52,53,185,175,62,40,49,163,42,10,176,82, -72,226,24,17,5,205,239,113,207,22,192,22,17,204,177,246,100,55,17,101,155, -0,98,50,91,38,224,235,95,249,186,115,212,223,120,246,89,206,242,147,82, -154,68,197,227,97,152,175,95,125,218,175,226,223,190,245,111,248,194,55, -190,128,51,31,125,102,239,238,85,20,5,94,240,155,47,192,127,124,249,63, -142,122,227,255,218,255,253,26,158,255,140,231,99,49,95,120,196,18,125, -255,203,162,196,185,191,117,46,254,253,139,255,126,39,176,109,201,243,81, -5,54,55,54,241,220,167,63,23,95,184,236,11,63,209,33,191,249,181,111,224, -252,23,156,175,133,62,122,30,247,230,97,98,108,225,86,218,70,239,70,202, -221,179,97,108,182,133,174,11,38,192,192,155,223,254,102,196,113,188,237, -249,78,142,157,96,180,111,140,225,174,20,201,192,72,170,46,145,162,168, -223,236,13,127,242,6,156,124,202,201,71,69,24,172,191,162,40,194,93,239, -118,87,188,241,205,111,236,141,110,27,27,27,120,206,211,158,131,203,47, -187,252,39,186,254,223,248,143,111,224,188,23,156,103,116,19,200,218,236, -104,9,55,154,122,253,77,92,195,81,151,173,220,145,67,245,184,93,203,166, -64,217,59,114,223,95,248,98,171,97,148,98,180,178,134,213,149,137,102,199, -247,82,182,224,68,106,39,168,145,37,206,226,81,186,58,61,219,78,112,247, -193,134,26,133,140,144,164,41,6,195,12,169,81,34,36,147,89,50,17,16,37, -72,7,35,140,39,99,140,134,169,225,91,208,246,251,253,142,130,187,31,168, -189,251,74,150,0,27,147,243,243,38,184,193,237,24,247,11,198,113,107,155, -226,93,98,182,138,1,111,36,222,37,0,59,8,130,55,18,109,141,49,251,147,54, -236,211,11,124,53,61,39,163,103,167,191,222,180,20,76,198,65,100,197,97, -238,231,26,56,156,37,221,131,239,181,154,117,243,218,142,101,89,219,43, -8,41,68,192,180,51,40,166,135,105,112,56,63,136,31,79,111,3,8,56,102,178, -23,138,21,86,227,53,45,178,192,18,130,37,164,18,144,44,32,89,66,105,219, -3,83,177,163,145,231,99,163,124,199,172,180,106,147,178,147,135,54,40,187, -10,128,140,144,98,236,202,18,164,65,140,136,236,225,127,219,155,219,202, -220,154,11,200,157,132,69,42,137,60,215,106,117,137,217,48,217,238,179, -131,16,132,9,162,120,5,97,52,70,175,145,112,159,180,64,31,138,203,192,131, -239,243,96,167,162,190,236,171,159,195,222,253,123,155,86,5,43,163,76,69, -158,190,59,118,104,255,10,224,79,94,247,39,184,232,61,23,117,32,248,223, -124,222,111,226,17,143,122,4,78,56,233,4,40,165,112,195,117,55,224,178, -207,92,134,191,121,207,223,116,170,252,103,60,247,25,120,197,107,95,225, -112,16,136,25,127,244,218,55,225,253,239,123,191,243,187,171,107,171,120, -230,115,159,137,51,31,117,38,78,60,229,36,176,98,92,127,237,117,248,236, -39,63,139,15,252,245,7,112,228,240,145,222,243,188,242,134,43,59,27,229, -203,95,244,50,124,226,146,79,56,63,59,249,148,147,241,248,39,63,30,103, -156,121,6,246,29,187,15,43,171,43,216,56,178,137,219,110,185,21,95,252, -252,23,113,233,71,47,197,15,175,250,161,243,55,231,93,248,34,252,206,121, -191,211,185,120,126,239,239,212,227,221,30,252,119,111,252,174,55,9,104, -245,15,185,133,219,156,208,212,39,162,225,96,122,237,211,124,79,15,186, -255,222,141,223,63,138,2,202,26,183,177,44,107,239,113,224,30,206,111,125, -255,198,171,156,214,2,109,253,56,59,155,205,75,207,123,41,62,118,201,199, -58,215,255,137,191,250,68,156,113,230,25,216,127,96,63,86,86,86,176,177, -177,129,91,111,185,21,95,248,220,23,240,137,75,62,129,31,92,245,3,183,237, -116,225,139,113,238,249,231,160,223,171,171,223,159,158,142,34,184,116, -123,175,188,116,115,223,201,30,215,167,58,190,85,119,119,153,15,64,215, -35,0,29,25,231,182,189,232,182,112,151,5,249,230,211,145,93,111,90,66,103, -196,222,21,198,246,211,193,63,113,115,125,25,172,79,142,21,52,140,197,117, -83,117,47,241,188,95,126,252,238,12,188,235,242,77,253,132,181,109,200, -117,246,252,187,223,22,234,189,84,118,17,237,221,35,119,205,112,163,143, -111,91,194,216,127,216,59,150,232,157,30,253,112,227,106,246,236,223,157, -246,48,117,122,198,228,100,3,90,161,44,232,103,93,239,40,192,19,14,45,14, -226,246,233,45,0,3,187,215,246,130,89,98,53,217,101,188,219,53,43,88,176, -9,240,74,52,68,52,85,147,70,76,101,173,153,239,10,101,81,90,208,5,187,15, -128,185,8,202,84,225,171,217,0,235,113,218,248,197,183,189,251,126,32,142, -122,42,240,214,49,75,39,22,96,70,58,200,250,166,217,157,99,4,209,0,233, -96,31,26,253,120,191,121,230,139,24,248,11,155,128,251,156,120,31,103,52, -238,138,107,254,19,97,24,104,18,161,148,128,81,193,35,162,222,141,127,187, -86,217,13,215,223,128,199,62,252,177,14,249,234,244,7,156,142,183,190,247, -173,216,125,204,238,222,181,127,240,246,131,56,231,89,231,224,91,87,124, -171,121,57,12,67,252,227,23,254,9,39,156,120,66,131,76,92,251,163,107,240, -248,95,124,188,51,119,125,223,251,223,23,111,123,207,219,112,204,222,61, -126,219,16,196,26,158,63,247,185,231,226,219,255,249,237,206,185,106,161, -155,182,247,254,205,175,95,129,179,158,240,52,231,119,94,120,193,11,113, -246,185,103,55,213,48,247,16,107,132,168,240,87,239,252,107,252,175,63, -254,179,230,218,14,6,3,252,243,191,253,51,142,217,179,219,34,117,118,55, -151,237,2,124,187,11,187,247,179,239,230,56,97,130,93,198,101,29,32,238, -113,220,61,122,3,124,119,239,236,49,198,32,31,218,211,223,248,199,188,234, -198,171,218,30,111,237,100,213,183,185,122,155,236,55,191,241,77,60,245, -113,79,117,3,245,75,207,199,243,127,247,249,253,104,132,57,134,16,2,239, -125,199,123,241,167,111,250,83,231,250,127,238,203,151,97,247,158,61,240, -253,212,251,56,70,221,117,238,167,0,221,93,145,150,254,237,86,69,105,255, -166,239,159,17,109,73,216,218,162,39,221,67,230,242,218,202,221,94,59,60, -207,247,190,249,239,30,75,217,182,19,192,142,90,29,182,34,77,255,164,90, -243,61,22,207,125,76,134,214,231,158,176,37,143,142,186,197,169,213,139, -64,199,114,22,109,143,123,217,60,28,247,73,159,244,36,114,176,100,116,251, -2,123,47,144,194,221,246,129,203,175,34,75,10,30,222,156,126,191,83,121, -95,75,32,112,110,184,55,210,94,207,129,58,111,76,238,150,17,214,130,54, -71,21,220,221,159,41,169,160,170,182,103,172,234,192,92,35,223,212,118, -147,153,140,118,123,205,152,135,108,122,240,146,165,9,238,186,138,111,170, -247,250,190,26,40,94,25,213,176,99,70,99,172,69,73,51,110,17,69,9,6,163, -117,76,38,123,49,25,239,193,202,100,15,86,198,123,177,50,57,6,43,227,99, -176,50,57,6,147,201,110,76,38,187,204,127,119,55,63,27,143,215,145,14,38, -24,143,215,177,190,123,31,86,38,187,48,153,172,99,101,178,142,201,100,13, -147,201,58,198,227,53,164,53,179,28,0,139,57,242,233,181,206,3,103,163, -53,126,76,176,6,166,45,144,193,253,197,40,8,27,152,38,12,195,38,184,19, -250,93,232,192,91,63,159,151,124,240,18,39,184,31,56,254,0,222,113,209, -59,220,224,238,237,170,187,118,239,194,187,254,246,93,216,127,96,127,243, -178,148,18,31,253,187,75,26,180,5,204,248,248,135,63,238,4,247,99,15,28, -139,119,93,244,46,236,217,183,167,21,91,130,155,109,239,221,191,15,239, -249,219,247,96,223,254,125,61,75,140,156,103,230,99,23,255,189,243,242, -75,127,255,165,56,231,252,115,16,199,113,207,243,220,62,142,81,20,225,249, -191,123,54,94,246,234,151,181,189,237,197,2,31,250,219,15,185,61,46,180, -211,38,203,183,127,75,8,164,121,158,116,149,68,22,156,88,203,76,248,189, -219,14,109,150,90,255,235,101,5,75,159,245,100,183,138,160,158,43,64,189, -204,29,187,178,107,91,73,61,102,30,222,73,124,244,67,31,117,209,148,87, -191,28,231,190,248,220,109,91,13,81,20,225,5,47,124,1,94,241,154,87,56, -215,255,131,239,255,59,143,183,66,59,108,255,250,222,142,212,115,239,185, -227,145,212,7,188,111,253,78,180,116,191,115,10,129,165,113,210,171,204, -124,244,128,58,40,182,213,42,117,247,103,242,73,34,222,103,103,139,68,198, -100,159,37,44,143,116,29,88,58,239,217,183,224,126,146,118,154,119,53,184, -219,217,110,162,44,47,185,218,61,93,99,107,239,164,14,76,169,29,231,90, -50,34,219,158,43,214,220,65,175,174,25,168,255,188,185,155,62,19,117,89, -30,189,207,162,221,145,246,224,121,219,243,128,216,189,47,228,223,86,246, -72,125,102,177,68,14,44,224,27,67,59,174,113,110,22,167,199,225,130,254, -77,126,71,193,29,78,15,94,73,0,82,153,81,55,101,224,24,115,14,138,27,242, -93,29,184,245,208,138,14,216,4,29,180,235,202,189,233,45,41,143,177,92, -235,216,51,97,53,27,97,20,132,205,198,59,30,239,105,198,95,172,171,100, -4,114,66,109,91,9,95,6,181,190,59,1,100,89,1,138,145,36,49,162,56,90,122, -25,194,112,128,44,29,32,207,231,40,202,28,4,133,98,118,45,210,241,201,14, -84,3,175,114,69,77,52,241,87,80,231,138,234,54,129,182,220,13,81,123,199, -44,21,89,220,70,150,246,139,159,251,162,243,253,185,47,57,23,43,171,43, -91,50,139,148,82,24,141,199,56,231,252,115,240,234,11,95,221,188,252,175, -151,255,43,94,116,225,249,77,100,188,220,235,139,159,243,226,115,176,186, -190,218,66,174,212,199,60,101,172,237,90,199,239,156,255,59,120,237,203, -95,219,187,254,106,108,229,171,255,254,85,231,229,255,249,250,255,217,171, -23,176,211,175,47,124,238,11,56,231,197,231,58,207,74,219,195,195,210,251, -1,251,225,164,110,248,190,244,239,47,197,5,191,123,1,0,224,205,127,241, -22,60,254,9,143,115,123,187,212,157,135,113,67,146,247,126,158,98,86,235, -60,101,95,167,158,112,70,91,213,168,228,140,108,162,207,95,219,227,192, -125,229,223,191,226,28,231,77,175,123,19,222,244,186,55,253,196,215,255, -242,203,46,199,11,95,242,66,7,59,163,222,174,123,31,215,160,111,15,114, -189,37,184,151,224,182,211,186,155,123,222,129,28,249,82,70,95,160,181, -3,128,59,2,230,35,128,236,207,61,251,159,120,233,22,219,246,86,218,123, -200,77,64,109,181,80,208,241,35,161,159,166,74,95,26,10,150,196,131,186, -90,111,80,74,175,186,183,62,124,45,134,101,27,203,80,103,57,115,19,147, -201,42,121,27,226,90,71,162,182,171,74,224,86,90,93,234,186,235,25,103, -171,229,116,115,233,122,74,139,28,5,216,118,237,180,22,182,212,209,209, -239,107,151,144,173,209,210,166,38,78,150,23,216,208,6,91,2,42,108,247, -0,109,214,157,57,70,232,51,40,183,13,238,61,146,68,54,123,80,50,32,129, -185,156,65,65,54,139,160,158,11,86,77,79,92,25,6,61,55,78,114,66,10,148, -139,18,80,134,15,39,169,33,208,41,165,251,208,172,140,237,170,217,148,215, -18,51,127,26,4,152,76,246,90,193,189,209,197,180,8,15,12,159,20,199,104, -5,65,148,18,40,69,133,48,10,17,105,221,71,59,31,6,124,201,91,48,178,44, -67,150,166,198,48,167,2,139,121,231,33,106,179,81,234,37,161,0,64,228,85, -67,179,249,220,184,182,69,173,95,55,119,73,67,228,183,120,151,60,143,215, -252,240,26,231,251,135,61,226,97,91,19,105,136,26,243,146,51,30,121,134, -243,210,213,63,184,186,221,200,136,113,243,141,55,57,175,63,252,191,63, -188,135,216,2,75,53,176,221,113,206,56,243,23,151,180,148,185,217,244,111, -190,233,22,220,153,95,215,95,123,125,111,239,139,150,43,98,56,85,4,57,75, -161,53,27,122,197,139,219,74,245,21,231,191,220,4,229,46,98,214,214,174, -188,237,124,46,249,228,163,78,86,71,94,149,72,91,171,23,146,85,181,243, -146,146,196,43,85,118,58,177,176,211,175,235,174,189,206,217,196,124,136, -190,75,151,235,195,146,187,63,97,135,56,229,41,81,50,67,84,178,121,218, -121,201,17,224,87,112,94,77,234,126,191,221,224,184,85,77,178,246,116,151, -30,195,218,143,65,212,151,112,57,129,9,29,21,56,103,13,176,141,100,40,8, -105,212,243,122,8,59,204,26,117,101,240,209,43,214,245,46,50,130,203,142, -115,9,46,109,46,218,26,173,112,71,87,163,129,157,219,195,89,117,42,83,253, -119,228,22,226,61,227,169,221,135,188,31,161,33,171,220,110,238,52,219, -237,219,110,133,77,220,151,56,216,188,143,90,220,203,71,143,168,199,232, -198,74,3,109,57,92,180,200,77,64,236,36,14,237,130,180,143,70,118,53,97, -70,226,12,155,123,139,230,212,146,236,217,124,120,197,141,40,69,179,156, -9,144,44,48,47,167,16,178,132,80,170,21,205,48,61,247,26,158,151,74,66, -8,129,178,212,218,220,13,201,142,181,94,189,146,18,82,26,89,81,174,3,188, -134,230,179,56,49,227,33,10,195,193,170,197,100,143,1,132,186,115,129,208, -249,204,108,99,41,205,69,215,89,68,85,149,8,8,136,227,200,186,86,38,195, -32,213,197,98,204,184,84,154,101,8,2,141,130,20,249,205,46,168,225,40,185, -114,3,39,57,11,131,25,199,120,80,249,247,191,251,125,40,37,91,248,20,206, -253,238,60,91,190,175,188,255,229,11,171,140,39,227,254,219,107,22,141, -20,66,11,8,17,48,26,143,220,99,149,149,201,76,245,66,159,207,230,206,235, -43,107,171,221,249,80,71,13,175,125,10,215,119,175,45,173,86,106,216,205, -101,190,255,244,95,27,71,54,156,12,137,237,241,82,230,37,99,114,150,215, -130,19,243,91,200,213,190,198,85,85,185,99,52,6,121,82,194,40,164,41,109, -141,172,170,178,87,148,134,153,183,116,156,110,75,9,238,70,109,166,229, -79,48,3,75,89,99,206,253,210,207,154,18,194,105,191,220,89,215,159,182, -96,243,0,59,159,206,106,170,118,37,117,48,99,246,88,53,218,120,103,118, -228,48,142,108,206,81,10,246,132,214,150,55,66,200,155,84,111,118,56,165, -53,224,43,81,53,255,68,253,95,197,29,106,157,146,57,102,71,14,225,240,230, -28,149,108,103,121,89,233,243,85,150,48,143,179,92,182,234,207,176,0,11, -9,41,245,120,156,146,66,183,72,169,125,125,190,113,4,27,27,51,84,70,98, -151,29,162,187,68,62,221,196,230,116,129,202,225,43,29,77,9,239,111,64, -236,84,52,204,93,33,176,166,93,64,104,68,131,92,224,194,155,71,96,31,85, -175,229,105,219,32,74,61,185,223,214,137,33,251,172,5,139,3,193,157,73, -13,90,246,247,141,252,184,53,69,67,240,158,123,110,53,81,150,61,107,182, -243,94,147,219,176,3,241,71,158,219,171,55,119,205,29,8,136,140,153,140, -98,160,144,192,180,4,164,100,167,41,64,150,36,8,59,223,235,69,46,69,133, -170,168,32,41,66,58,72,193,178,50,211,104,218,82,181,88,148,152,169,25, -36,49,56,8,17,39,129,86,95,34,253,183,101,85,34,159,229,144,42,208,122, -203,181,114,147,20,40,139,18,165,16,141,204,108,16,4,8,34,205,104,15,204, -6,180,58,78,1,165,103,195,195,48,49,231,158,180,141,250,230,159,25,145, -163,86,41,171,81,200,51,255,21,162,130,146,2,73,154,106,53,41,103,124,5, -77,107,129,252,236,220,220,152,44,77,177,200,103,38,249,16,8,140,223,187, -3,175,194,130,232,217,194,134,9,184,247,105,247,198,45,55,183,149,234,165, -23,95,138,211,239,127,154,89,60,173,198,180,223,250,218,25,250,2,236,217, -183,199,153,93,254,230,215,190,137,7,61,248,65,232,101,197,48,16,80,168, -243,35,214,191,235,28,107,239,30,71,107,121,215,238,93,184,245,150,91,155, -215,111,184,246,122,156,114,183,187,90,48,33,245,144,4,244,247,215,95,119, -195,182,91,201,222,253,123,155,170,251,206,248,106,2,170,175,54,87,147, -222,250,80,71,110,245,162,109,78,17,111,213,185,106,177,33,48,27,75,211, -133,64,144,12,17,240,2,101,158,235,115,233,145,149,85,138,181,106,94,55, -148,121,12,90,171,250,168,17,18,66,239,49,29,125,37,94,18,215,154,214,152, -66,153,207,49,61,188,129,221,199,28,131,155,110,188,241,78,189,254,220, -105,79,44,119,231,226,45,26,14,204,128,18,11,204,54,55,145,35,195,202,202, -8,105,20,234,15,170,4,138,124,142,249,162,0,71,67,140,38,3,164,17,121,48, -62,247,38,12,253,188,119,109,91,61,159,30,193,230,172,64,37,36,36,51,136, -34,132,1,64,81,138,193,120,5,43,163,20,113,64,96,37,80,230,51,204,242,18, -28,14,49,158,100,72,66,104,153,221,217,12,66,6,8,210,12,33,4,36,19,194, -36,67,16,133,221,123,99,139,112,49,27,91,219,25,202,18,160,52,67,32,23, -16,21,16,14,39,136,179,68,11,135,9,45,71,92,10,70,92,41,36,105,132,192, -234,243,235,215,75,148,42,66,84,41,68,102,212,239,40,75,248,222,0,133,101, -197,61,147,53,26,232,193,233,125,130,47,190,152,139,17,182,97,107,60,23, -205,254,120,180,246,182,4,219,247,221,55,233,161,101,236,151,158,103,157, -61,98,117,141,4,50,187,43,138,9,189,201,136,191,240,153,125,56,7,136,250, -20,210,26,217,90,175,87,167,127,20,226,170,31,43,228,66,121,132,45,94,146, -14,213,21,187,94,228,101,37,180,163,24,180,63,123,42,42,100,161,214,175, -22,165,64,32,66,196,105,134,44,139,145,151,5,10,37,65,74,65,113,129,121, -177,137,197,172,128,16,220,122,183,7,164,139,100,150,168,74,1,161,8,113, -60,66,131,148,83,45,206,106,122,253,204,24,168,16,12,137,40,76,224,204, -220,179,242,74,21,110,148,198,116,130,97,153,49,0,16,82,160,170,74,132, -97,160,13,43,216,218,72,173,207,79,232,106,216,215,111,17,132,54,21,65, -128,57,116,152,224,228,140,116,120,155,51,19,30,245,216,71,225,179,159, -250,108,115,201,47,249,224,197,120,236,19,31,131,7,60,232,129,91,178,58, -235,91,123,211,141,55,225,252,223,62,31,55,221,112,19,222,248,103,111,196, -195,207,124,184,179,126,238,255,115,247,199,63,222,248,143,205,247,111, -126,195,155,241,129,143,125,0,73,146,56,183,90,49,67,41,209,248,190,151, -101,137,183,252,225,91,156,99,221,239,231,238,215,18,116,9,56,245,103,79, -117,2,252,135,222,255,33,188,242,15,94,137,14,211,200,201,76,244,207,62, -120,209,7,151,22,7,245,54,252,192,7,61,208,9,240,127,254,238,63,199,35, -31,249,16,148,139,169,182,248,28,174,104,205,115,59,39,87,149,113,75,99, -132,217,8,105,150,121,74,130,221,76,155,45,245,171,94,46,17,123,221,58, -47,153,94,30,223,117,112,175,114,9,138,135,136,7,67,4,72,17,68,11,84,243, -77,8,116,201,106,141,234,155,245,76,147,59,103,227,192,123,236,81,78,160, -186,82,184,138,21,2,10,58,246,2,228,181,169,181,26,90,142,233,116,129,92, -48,78,123,224,253,157,0,255,246,247,188,29,143,126,236,163,183,6,249,200, -159,33,119,199,206,200,3,213,121,139,38,224,150,164,56,89,98,49,155,98, -94,1,233,40,67,18,25,183,62,81,32,159,207,48,175,128,56,157,96,60,206,16, -210,242,99,182,18,36,188,69,151,63,0,69,49,134,147,117,196,105,142,233, -230,38,114,21,99,52,158,96,148,234,231,61,8,35,132,196,80,85,142,197,124, -134,185,48,239,63,210,54,216,96,9,89,46,140,71,253,16,196,26,33,161,120, -128,32,10,17,88,207,52,81,139,77,183,242,166,90,31,191,170,20,40,212,190, -8,82,48,144,12,17,101,49,130,122,139,172,209,74,34,35,100,227,103,13,202, -60,235,102,255,218,170,58,216,50,129,37,215,247,157,237,110,182,221,34, -182,37,117,45,141,144,78,123,168,15,179,183,8,228,196,157,245,238,24,168, -109,75,51,232,106,203,114,119,241,46,79,46,185,191,179,211,40,162,58,16, -127,141,56,144,35,96,212,185,118,132,94,94,141,253,196,52,142,14,76,236, -141,90,216,233,186,254,157,35,121,128,43,111,145,88,84,58,184,75,197,144, -76,102,206,186,53,131,208,166,18,90,131,25,20,154,96,200,144,8,180,117, -98,16,35,72,18,196,73,10,4,33,20,7,32,10,17,37,9,210,56,65,72,164,225,39, -144,182,124,132,68,85,9,72,174,123,255,132,48,138,16,133,161,177,119,101, -136,178,68,37,21,130,80,155,202,4,8,140,252,78,208,192,134,218,134,19,32, -50,194,53,129,33,209,65,245,220,17,229,104,55,219,246,177,12,134,146,2, -178,42,17,134,132,36,142,77,69,174,154,234,64,223,0,229,225,42,250,251, -70,48,199,25,200,108,241,14,178,55,127,242,34,5,185,178,142,143,252,229, -95,194,241,39,30,223,156,181,148,18,231,62,231,92,124,238,51,151,185,131, -15,236,18,104,8,192,245,215,93,143,103,61,245,89,248,246,127,126,27,135, -14,30,194,31,188,252,15,58,203,250,73,191,254,36,231,251,239,124,235,59, -120,225,115,95,216,194,213,150,11,82,24,104,181,186,35,135,142,224,133, -191,245,66,92,249,95,87,58,127,251,196,95,123,98,251,128,50,227,151,30, -243,40,231,245,15,252,245,7,240,145,255,243,145,229,204,108,243,245,193, -139,62,136,255,243,191,63,208,83,45,43,125,95,132,0,139,10,143,123,226, -99,157,215,95,118,222,133,248,196,37,151,66,82,166,125,198,141,211,22,25, -244,68,85,57,170,197,6,138,66,0,97,210,72,236,170,6,61,145,80,178,130,50, -246,191,82,73,211,170,50,18,75,61,144,52,179,229,92,197,186,58,146,6,245, -145,181,3,155,247,37,133,128,20,57,170,197,38,202,188,2,146,1,146,65,134, -48,0,160,4,100,185,128,10,82,196,195,213,238,251,137,10,170,121,15,163, -109,207,10,44,69,251,125,13,251,43,125,30,138,117,242,45,203,5,170,197, -180,163,108,119,235,45,183,57,54,210,118,107,71,41,133,75,63,246,9,60,238, -204,199,226,65,247,121,48,62,245,201,207,33,8,2,196,73,138,199,62,233,87, -156,227,92,240,194,11,112,233,71,63,1,81,9,136,74,64,214,64,25,88,183,212, -148,130,172,170,230,117,33,219,68,74,171,75,10,61,78,108,209,0,0,32,0,73, -68,65,84,84,85,133,170,146,168,132,102,193,52,40,153,20,250,239,133,208, -54,211,194,104,182,115,219,99,85,66,31,187,42,22,88,204,54,48,203,21,162, -193,8,227,65,4,98,133,170,152,98,227,200,38,22,42,194,112,178,138,149,73, -170,101,127,133,128,144,236,49,31,140,115,165,208,237,64,33,52,212,207, -118,114,38,68,163,41,79,198,76,86,150,5,74,68,24,142,39,24,15,83,237,50, -25,197,8,73,162,42,166,56,82,191,255,120,21,43,227,196,8,101,105,53,57, -89,40,80,50,68,148,134,32,197,160,40,69,104,184,68,45,129,204,192,246,14, -86,111,174,143,96,80,60,64,52,48,252,163,116,136,116,152,54,8,40,193,120, -45,80,136,56,141,17,6,228,202,115,179,153,64,98,66,148,232,215,217,241, -80,175,239,35,239,160,63,223,83,122,147,23,160,201,229,177,48,187,57,129, -131,134,217,116,23,114,89,110,245,181,96,127,67,132,149,12,249,91,78,47, -7,144,58,212,73,218,110,0,146,122,254,217,107,200,83,179,171,157,238,58, -50,122,14,127,130,59,28,130,174,234,158,9,242,87,215,115,240,236,179,38, -93,87,174,121,17,224,154,131,66,119,158,25,88,29,68,216,61,140,145,134, -100,137,186,49,172,9,183,38,203,97,86,122,99,81,18,121,94,66,32,68,146, -37,8,141,187,209,162,184,25,211,131,183,130,0,100,187,18,136,34,199,174, -108,31,56,140,17,196,128,66,133,82,22,40,170,41,102,71,114,72,14,145,36, -177,14,246,12,176,40,145,151,21,36,199,72,147,176,25,77,10,96,115,4,205, -156,188,2,238,177,111,13,146,129,44,29,34,205,140,229,35,6,86,5,47,205, -206,35,157,174,74,155,87,42,228,121,1,102,165,93,182,130,192,147,160,224, -78,207,166,65,50,88,182,158,195,38,32,207,166,51,13,215,15,79,2,5,153,129, -184,201,242,0,96,171,181,100,205,195,154,155,250,249,207,94,142,223,125, -206,185,157,181,245,115,191,240,115,120,194,83,159,136,211,31,112,58,246, -238,221,131,36,73,112,232,208,97,92,243,163,31,225,243,255,252,121,124, -232,111,62,132,60,207,29,72,251,178,175,92,230,142,155,1,120,238,89,207, -197,151,191,244,101,231,216,187,247,236,198,179,158,247,44,156,241,200, -51,112,236,113,199,2,12,220,116,195,77,184,252,178,203,241,55,239,253,27, -220,241,227,59,156,223,127,224,207,63,16,23,125,228,34,203,183,139,81,10, -129,39,254,247,39,116,92,237,30,114,198,67,240,148,179,158,130,251,222, -239,190,216,189,103,55,0,194,143,111,189,13,87,124,237,10,124,248,3,31, -238,176,179,235,175,43,190,251,69,148,139,28,146,21,88,74,112,56,196,133, -47,121,21,190,244,121,87,35,253,244,7,220,15,191,242,148,95,193,253,30, -112,58,14,28,119,44,6,145,194,98,122,4,135,14,30,198,237,183,31,194,77, -55,221,134,235,175,191,9,87,255,240,58,92,125,245,181,184,238,218,235,16, -199,49,94,241,170,243,113,230,153,15,213,220,17,138,16,13,215,49,28,102, -8,168,64,49,221,132,144,132,7,220,251,161,206,123,125,235,154,239,32,10, -53,60,90,46,102,168,242,2,146,37,192,49,226,241,58,178,65,134,123,157,232, -206,206,127,229,235,255,172,19,14,202,144,142,86,49,24,14,16,132,33,160, -74,148,179,195,40,43,66,52,88,67,154,197,56,245,120,119,102,253,107,223, -188,204,32,100,9,146,241,26,6,131,12,36,23,40,166,135,80,209,16,233,104, -5,81,0,168,114,138,42,159,66,133,26,237,146,249,20,85,89,66,129,240,152, -71,159,133,59,238,56,216,28,243,17,143,124,4,206,187,224,69,184,235,221, -79,65,28,199,216,56,188,129,31,252,224,7,248,242,151,190,140,143,95,242, -49,92,103,161,36,251,246,239,195,63,126,250,98,204,100,140,201,218,42,94, -124,246,11,112,249,191,184,42,118,63,123,223,159,197,47,61,230,49,248,111, -15,121,8,238,126,215,227,144,112,133,141,69,142,141,205,18,183,223,124, -19,174,191,225,6,220,112,211,143,113,195,245,55,224,71,223,255,62,174,249, -209,53,136,227,24,23,92,120,30,30,122,230,47,66,169,0,201,120,21,235,171, -35,36,33,80,108,30,198,172,168,32,17,66,21,5,42,33,64,217,4,107,235,171, -24,37,33,192,2,197,124,134,197,124,138,121,169,12,79,36,198,96,178,130, -245,245,9,210,48,128,202,143,224,240,230,2,50,28,98,101,50,66,26,235,138, -190,216,60,132,35,11,137,100,180,138,149,65,138,192,224,213,170,56,130, -67,155,37,16,69,136,185,196,198,92,33,27,175,98,109,146,129,170,57,166, -155,83,76,69,132,241,202,42,38,153,38,188,138,217,33,28,220,204,17,100, -43,88,157,12,145,88,46,45,50,223,48,239,63,192,202,202,8,89,20,182,147, -36,6,121,132,98,24,143,92,51,33,68,150,60,184,132,204,115,136,66,106,248, -62,75,96,243,134,185,86,227,172,251,189,172,189,226,217,180,102,106,106, -117,181,152,98,186,144,136,178,17,70,3,173,71,111,87,8,229,98,19,155,11, -129,120,48,198,104,144,32,108,54,10,137,124,54,197,124,174,16,13,135,24, -13,83,215,132,102,137,230,130,131,207,88,179,101,142,47,23,172,73,16,91, -162,151,123,44,82,122,120,220,182,150,59,89,62,31,182,97,217,242,218,157, -58,109,231,101,60,15,70,143,0,143,71,134,100,135,61,111,125,126,91,115, -30,174,59,121,71,155,192,67,206,90,201,4,234,120,164,208,15,55,126,196, -205,100,173,131,88,144,131,237,127,247,86,9,101,130,206,201,187,7,136,130, -150,171,163,208,29,185,100,54,131,101,13,199,72,66,20,5,22,2,136,178,20, -113,16,154,117,74,40,138,27,49,63,116,43,136,24,209,132,80,44,42,28,187, -251,20,36,73,8,69,21,74,85,65,200,5,102,211,77,76,167,2,81,146,180,46,71, -82,65,148,11,44,74,217,56,127,5,20,33,73,18,68,81,43,159,219,78,220,49, -238,190,127,29,204,140,180,14,240,12,29,224,201,14,234,210,9,240,246,77, -174,68,133,162,40,144,101,9,194,48,130,53,31,6,197,18,20,104,120,171,211, -79,85,12,197,210,113,159,82,74,96,115,58,3,129,144,164,39,128,41,49,112, -29,117,152,216,202,184,76,133,129,25,81,172,251,98,10,120,199,255,250,75, -188,227,207,222,241,83,245,56,95,245,134,87,225,41,79,127,10,194,48,116, -70,32,111,185,233,22,252,218,227,126,173,19,180,119,250,181,251,152,221, -248,224,165,31,196,129,227,14,64,74,165,145,23,243,249,190,249,245,43,240, -156,95,123,54,138,162,184,211,122,181,81,28,225,181,175,187,16,143,126, -194,147,48,155,205,241,140,39,255,6,110,184,254,167,239,5,175,174,173,226, -95,191,113,57,84,57,69,185,168,240,233,127,249,50,94,251,242,223,215,114, -200,119,226,215,127,93,245,127,81,206,103,224,100,21,159,253,204,101,120, -213,5,175,220,214,69,110,39,215,228,117,127,244,58,60,225,73,191,12,105, -108,89,227,108,136,48,137,17,112,5,81,76,81,206,74,96,176,130,63,124,205, -31,226,226,191,187,248,39,187,215,187,119,225,159,62,243,247,40,227,21, -236,90,27,224,142,155,111,192,211,158,252,12,220,116,227,45,119,206,245, -255,143,203,49,223,60,140,28,67,172,174,175,32,81,57,54,238,56,136,57,165, -24,79,86,145,5,21,230,27,71,144,211,8,235,235,43,136,81,96,190,57,67,25, -36,24,13,50,196,92,97,54,221,196,92,166,88,217,181,138,81,26,66,149,11, -204,54,142,32,15,38,88,155,12,145,196,58,97,87,85,174,157,223,104,132,93, -43,99,196,1,3,65,8,82,37,230,155,135,49,83,67,172,142,19,160,220,196,161, -141,18,225,112,5,163,88,34,159,229,80,241,16,163,241,16,131,88,183,172, -100,181,192,230,225,67,152,211,16,187,86,39,38,129,48,221,130,34,199,108, -243,48,242,96,140,149,201,16,105,84,219,65,217,193,152,122,229,171,27,167, -55,89,162,90,20,80,28,33,26,102,8,35,45,32,238,140,157,57,125,105,15,225, -213,164,4,44,22,51,228,42,193,120,148,33,14,201,82,237,132,110,107,204, -103,40,56,193,104,56,64,28,5,13,199,64,136,2,139,205,28,21,197,24,141,135, -136,155,207,128,46,169,142,151,81,34,45,151,55,216,142,126,46,137,179,55, -36,147,103,53,196,236,57,112,82,175,126,207,206,160,111,187,126,247,74, -54,167,235,202,221,138,218,87,36,242,16,48,119,138,137,204,40,52,109,153, -180,108,41,149,199,150,181,185,206,7,25,173,140,42,28,219,195,250,224,63, -158,233,158,139,146,10,7,86,51,68,166,18,142,2,32,10,129,208,18,233,96, -214,19,111,70,37,86,211,213,152,33,133,64,94,49,16,198,8,131,176,253,61, -6,160,66,40,150,40,230,11,44,230,37,56,76,144,165,58,3,213,69,181,130,168, -42,148,149,4,5,17,162,32,104,144,117,237,9,157,97,56,28,97,56,76,17,19, -65,86,218,198,177,65,106,12,212,87,179,232,157,121,37,139,176,214,222,100, -213,97,62,82,109,113,99,136,128,81,24,232,64,101,211,9,3,214,164,62,123, -72,218,210,57,70,8,235,245,6,159,108,73,59,129,110,61,4,1,57,240,183,57, -121,16,17,162,58,248,26,245,36,41,244,57,157,251,146,115,113,206,139,207, -249,137,55,207,115,94,124,14,158,246,172,167,33,10,227,142,190,193,254, -3,251,113,209,71,46,194,9,39,159,120,212,199,61,241,228,19,241,215,31,249, -223,56,238,248,227,64,100,174,153,165,70,113,250,253,79,195,219,254,234, -109,93,118,254,79,67,198,170,4,94,245,138,55,34,29,141,176,119,223,58,222, -243,87,127,138,187,221,253,148,159,250,184,7,142,63,0,112,9,89,73,80,58, -194,239,253,127,175,184,211,131,187,222,71,75,32,158,32,29,142,240,178, -23,189,244,167,14,238,245,53,121,229,5,175,68,181,152,131,163,49,178,201, -26,226,204,84,89,178,64,85,42,4,131,9,178,209,8,231,93,240,34,172,173,175, -253,68,73,196,171,94,115,1,114,69,26,226,133,196,100,152,225,207,223,253, -14,220,237,158,247,248,169,63,195,113,199,31,7,176,208,36,51,3,107,23,179, -25,68,50,198,218,174,99,176,58,74,16,67,66,6,9,178,65,134,24,57,54,15,79, -81,80,130,241,202,10,134,89,164,209,62,17,32,29,143,48,76,52,42,50,159, -110,96,38,19,100,195,33,210,216,216,178,178,132,40,230,200,57,70,150,37, -80,243,67,184,253,224,97,76,243,18,249,108,3,115,25,97,48,26,33,75,98,4, -70,47,188,156,111,98,154,87,8,71,107,216,181,62,193,208,184,173,41,37,144, -207,54,49,147,33,6,131,17,178,184,221,55,148,44,48,159,30,193,76,196,200, -6,67,100,81,104,192,124,106,136,188,29,103,56,182,116,211,235,125,43,140, -17,15,71,72,199,3,68,97,160,231,159,109,178,179,101,54,67,112,7,83,52,242, -170,32,170,28,165,208,22,192,81,232,142,165,234,61,184,68,41,3,68,113,130, -56,178,25,62,1,162,48,195,112,101,21,107,43,35,43,65,233,67,230,217,139, -51,22,247,156,90,159,141,118,60,206,135,207,9,29,61,166,14,111,131,45,94, -153,221,199,183,43,123,238,208,36,187,126,244,173,154,19,57,230,187,237, -184,180,45,167,91,143,178,145,67,232,39,143,253,78,142,96,77,59,218,71, -38,247,33,107,232,134,189,145,62,244,139,84,89,227,133,173,248,20,213,74, -118,232,17,184,104,21,211,2,4,184,109,83,47,180,241,32,198,40,209,16,125, -22,145,174,50,107,178,24,116,176,110,2,187,129,229,235,224,94,148,18,42, -140,16,197,161,38,187,145,249,125,37,17,45,34,20,243,5,42,73,136,146,1, -210,56,130,226,178,185,112,74,154,30,60,133,136,163,80,67,53,10,205,92, -35,177,94,208,164,24,80,164,157,203,2,130,118,150,53,163,117,70,189,14, -138,187,16,58,179,23,240,221,192,222,40,3,40,134,16,37,8,140,56,142,26, -123,27,106,254,171,251,250,108,19,237,12,251,31,172,16,112,253,186,178, -88,241,237,12,99,64,104,29,154,28,11,220,54,249,178,165,17,193,48,4,63, -109,16,113,206,139,207,197,69,23,95,132,211,238,127,218,142,55,205,147, -79,57,25,239,188,232,157,56,247,37,231,154,214,70,255,239,221,229,174,119, -193,37,159,188,24,207,126,254,179,145,164,201,182,199,77,211,20,207,249, -237,231,224,146,79,94,130,187,222,253,174,86,178,82,147,73,218,239,31,242, -240,135,226,146,79,127,20,15,253,197,135,237,56,208,190,237,221,127,186, -237,239,133,40,81,205,55,176,103,255,1,124,224,227,31,198,243,206,61,27, -195,225,240,232,43,199,213,21,60,249,41,143,195,155,223,242,7,200,23,21, -40,93,67,54,26,225,255,213,151,64,130,100,52,66,20,6,119,250,177,195,225, -26,178,209,80,123,195,179,130,44,166,200,231,11,32,24,32,30,14,17,18,233, -132,238,239,46,194,241,39,28,191,163,99,142,198,99,60,229,105,79,197,63, -124,250,18,60,248,97,15,3,226,1,6,49,80,44,102,200,101,128,187,220,227, -84,124,244,147,31,197,243,207,121,30,6,131,193,81,159,243,202,234,10,30, -255,164,95,193,235,222,244,7,184,253,224,20,50,204,48,26,198,144,249,28, -133,12,144,141,86,48,136,9,170,90,96,86,8,32,30,96,148,50,138,217,2,34, -72,48,158,140,145,5,140,42,95,96,154,87,8,210,33,38,131,4,164,42,20,179, -25,242,138,144,12,199,24,197,65,195,185,81,85,142,69,33,117,197,46,10,76, -231,149,118,180,172,244,239,167,195,85,189,23,42,129,74,232,189,33,140, -18,211,59,207,180,167,5,116,91,178,92,76,49,43,36,226,193,4,163,44,178, -38,30,4,138,217,12,139,10,72,134,19,140,146,214,233,145,77,37,235,88,150, -216,66,88,220,246,150,53,28,27,128,130,176,53,137,113,154,210,117,157,192, -78,96,107,107,57,134,172,74,20,165,2,69,41,178,36,210,149,187,53,127,46, -170,2,69,165,64,81,130,44,13,221,17,105,115,176,48,12,140,158,200,54,36, -116,123,196,212,243,71,102,43,230,117,166,17,184,7,234,239,180,48,219,174, -56,123,106,51,182,51,93,151,239,206,61,86,67,108,181,94,201,51,235,114, -247,74,238,107,130,123,56,186,67,193,179,130,191,45,169,238,138,246,80, -195,125,232,157,214,243,12,8,218,164,141,219,177,185,198,15,190,211,72, -208,111,82,201,0,223,187,85,143,177,237,95,29,96,144,232,236,108,16,233, -64,47,153,33,25,16,10,144,108,200,113,108,201,105,42,129,162,40,81,41,66, -24,39,136,163,192,8,206,104,66,84,85,85,40,132,66,113,248,187,136,163,16, -201,40,66,16,5,136,227,24,123,87,247,162,20,115,76,23,51,204,68,161,131, -121,169,108,107,181,230,164,101,85,162,42,5,42,38,36,113,210,84,215,108, -59,191,25,98,224,207,156,176,6,213,64,244,67,243,226,216,235,189,43,0,162, -9,220,12,70,89,150,80,82,32,138,35,68,81,220,6,104,244,105,206,219,51,143, -212,84,235,117,166,90,247,12,132,80,152,153,121,240,108,112,50,130,104, -216,129,140,152,200,85,34,35,141,166,176,82,32,67,108,243,177,156,239,92, -241,109,124,246,211,159,197,55,254,227,27,184,250,7,87,99,227,200,6,148, -84,24,79,198,56,238,132,227,112,250,3,78,199,35,126,233,17,248,249,135, -254,124,51,139,223,33,180,113,127,15,237,224,29,135,240,143,127,255,15, -248,210,229,95,194,85,223,189,10,7,77,191,118,247,49,187,113,143,159,185, -7,30,246,136,135,225,49,79,120,44,214,119,173,57,83,48,108,107,55,3,93, -197,44,0,223,187,242,123,248,244,165,159,198,87,191,252,85,92,123,205,181, -56,114,248,8,136,8,199,236,57,6,167,221,239,52,60,242,151,31,137,95,122, -244,195,161,138,57,78,191,215,25,75,43,201,55,190,229,245,248,31,143,122, -40,202,146,17,12,38,72,179,4,196,192,116,58,195,39,47,253,36,190,250,229, -175,226,59,255,249,95,184,227,246,131,152,78,103,136,162,8,163,241,8,43, -171,43,56,241,164,227,113,210,73,7,112,194,73,39,227,180,7,62,0,63,115, -239,83,141,36,51,1,65,0,10,2,168,98,3,31,187,248,19,120,205,171,222,4,113, -39,87,241,223,186,250,219,136,211,24,164,20,62,254,145,15,227,149,23,190, -174,119,230,253,104,171,235,215,191,233,245,120,194,83,159,172,19,7,102, -168,114,19,197,98,14,25,100,72,7,19,196,113,232,16,109,231,243,25,62,126, -201,199,241,47,159,185,12,223,187,242,123,56,120,240,32,88,49,246,236,61, -6,7,142,59,22,63,123,159,123,225,103,238,115,31,220,247,126,167,33,77,18, -176,170,32,195,12,43,171,235,24,134,37,242,69,9,74,199,24,141,6,136,57, -199,108,58,195,143,239,152,226,242,207,127,17,223,252,234,87,240,237,111, -125,7,135,14,29,198,116,115,138,40,138,48,28,13,49,153,76,112,194,201,39, -226,46,39,159,128,3,199,159,128,251,60,240,129,184,239,105,63,139,196,242, -132,167,128,32,23,155,152,46,42,4,217,24,195,209,0,169,90,96,99,99,142, -133,138,48,30,165,160,114,134,205,185,66,58,89,193,100,24,3,229,28,27,27, -115,148,20,99,180,178,130,81,18,64,44,54,177,177,49,135,74,39,152,140,71, -200,98,83,53,114,137,217,198,20,243,188,4,103,3,196,44,32,202,10,10,33, -194,40,66,146,13,48,24,36,160,114,129,121,81,162,40,75,84,185,254,172,171, -107,43,24,36,181,199,59,163,202,55,113,100,115,14,25,12,176,178,50,193, -32,110,245,53,170,197,6,14,111,204,193,201,10,86,38,67,100,145,37,69,205, -61,186,122,212,13,30,53,161,142,140,100,165,47,14,85,239,63,228,91,91,91, -236,122,174,10,44,138,10,2,17,178,44,67,210,64,239,166,5,88,21,88,20,37, -36,37,72,211,4,105,212,238,23,122,38,159,52,15,137,182,99,162,251,13,105, -75,23,212,99,185,111,171,103,64,254,68,17,172,177,64,251,51,247,251,3,108, -45,20,213,163,221,223,145,30,118,97,123,247,174,208,82,33,233,90,141,212, -70,41,218,246,56,181,29,140,30,135,224,237,13,68,44,197,187,250,58,254, -112,227,71,76,150,74,191,109,114,31,82,128,121,9,252,224,182,10,12,198, -113,107,67,36,81,128,56,0,210,144,32,21,32,193,38,184,235,32,207,134,16, -194,230,159,40,75,228,21,35,136,99,132,81,164,153,151,74,161,42,114,20, -130,129,48,66,20,133,40,14,126,27,96,137,32,12,145,12,67,40,165,144,101, -41,178,56,193,188,44,80,144,132,154,43,4,208,149,7,43,101,102,221,21,148, -212,240,61,35,210,22,173,97,160,93,212,44,168,163,86,157,85,204,56,245, -164,117,40,197,72,211,1,210,116,104,170,237,177,150,163,101,9,34,5,134, -4,32,154,234,188,18,18,85,89,32,142,35,93,49,7,232,147,42,114,146,14,125, -13,164,249,103,169,88,17,105,2,76,160,207,115,58,93,0,12,164,195,147,17, -70,195,126,115,18,219,103,136,185,17,52,161,160,133,181,234,254,205,114, -55,169,45,122,55,91,76,20,245,5,122,197,172,161,196,96,89,102,237,110,82, -110,207,137,155,121,79,234,83,7,198,146,62,29,1,224,10,42,223,192,124,150, -131,146,9,226,36,4,231,155,40,243,2,28,79,48,24,79,16,39,1,84,57,69,62, -157,3,241,16,73,150,234,123,160,52,188,24,134,33,88,149,168,102,135,80, -136,0,113,54,70,156,36,8,194,64,203,30,87,155,88,76,103,224,96,140,100, -56,208,190,221,20,128,194,8,4,5,85,46,80,44,166,224,112,132,120,48,212, -175,7,117,210,41,161,202,77,44,102,51,168,96,132,116,56,104,56,19,20,106, -194,151,202,55,48,159,47,64,201,24,113,20,130,139,41,138,162,0,71,99,12, -39,171,136,19,253,62,178,156,161,152,205,192,209,24,201,112,104,146,86, -161,143,63,157,131,195,33,210,193,80,143,198,145,78,60,136,21,100,149,67, -20,51,72,21,34,74,7,8,80,161,90,20,64,50,49,172,233,0,144,5,138,217,97, -148,34,64,60,48,159,159,66,51,89,66,32,22,40,230,83,28,62,52,69,25,36,152, -172,175,98,156,38,8,100,137,197,116,3,179,50,64,50,24,96,144,69,122,132, -174,90,96,58,221,68,206,41,70,195,24,106,49,69,69,67,12,70,3,36,36,81,228, -115,20,50,66,54,28,34,9,4,242,141,35,200,131,1,70,195,33,98,210,115,231, -165,140,144,13,71,200,66,129,233,145,35,88,200,24,195,149,145,233,99,7, -186,189,21,16,100,185,192,108,99,19,85,52,198,120,50,68,74,2,249,98,19, -27,115,194,96,50,68,70,21,102,71,54,176,64,134,241,40,67,196,57,54,55,230, -40,145,98,101,109,13,147,65,12,226,18,139,141,195,216,200,3,12,86,87,49, -25,196,6,61,83,40,139,57,166,7,167,16,97,136,116,52,68,32,114,108,206,10, -48,199,24,175,140,49,72,9,85,62,199,162,96,68,195,33,18,46,49,223,152,162, -140,198,88,95,155,96,144,104,9,108,174,114,76,55,14,99,166,18,76,38,43, -24,166,53,183,133,193,74,191,255,145,156,48,92,93,197,56,211,211,67,142, -156,172,37,240,2,248,8,178,102,214,87,179,5,20,34,68,195,17,162,196,172, -131,186,154,35,79,141,137,236,222,179,126,77,138,2,243,197,2,146,82,100, -131,20,169,51,79,207,144,85,129,98,145,163,10,82,12,178,212,233,187,203, -170,192,98,186,64,137,16,233,112,132,44,137,182,32,214,245,245,225,189, -113,182,218,103,193,66,46,108,238,129,95,229,187,253,109,184,68,53,219, -152,197,229,239,181,83,117,219,38,36,203,82,128,190,198,55,245,229,27,78, -162,213,182,31,208,233,197,195,78,76,236,159,216,136,46,245,217,16,219, -65,157,29,87,96,6,16,217,236,11,54,89,148,22,136,49,176,143,231,177,234, -88,161,91,44,117,197,117,112,87,144,101,133,188,172,32,76,64,173,25,160, -33,19,146,56,128,42,11,44,74,61,246,70,82,161,172,128,68,172,97,90,221, -140,52,78,160,170,28,42,80,152,110,78,27,18,31,49,33,140,83,36,113,4,146, -5,202,162,68,37,141,18,124,144,32,137,7,6,118,212,51,247,141,56,130,197, -2,84,0,88,217,99,17,245,40,27,217,252,13,79,181,78,7,211,170,44,16,132, -164,131,187,45,236,209,244,123,44,79,224,90,126,182,105,248,91,76,124,98, -189,121,51,129,140,202,158,82,82,7,0,184,118,133,141,102,178,141,98,53, -46,113,218,161,173,33,226,160,149,97,236,152,35,209,114,219,194,173,166, -88,58,9,130,193,14,133,16,250,51,135,161,59,122,97,19,104,184,35,112,102, -25,17,82,87,99,222,33,190,88,59,25,187,233,106,67,28,226,10,114,113,24, -204,171,136,130,8,97,26,107,193,142,36,214,65,176,170,160,68,1,37,4,68, -153,34,25,174,32,201,210,102,19,5,73,157,36,150,5,10,81,160,74,38,200,70, -19,196,81,61,92,201,40,139,35,200,203,13,157,144,165,171,200,134,99,132, -65,129,170,152,131,41,213,193,61,12,44,143,0,125,222,154,103,193,16,197, -6,242,106,83,143,123,102,171,72,7,99,51,246,169,64,92,65,44,54,161,146, -17,34,34,4,241,0,209,112,162,131,59,105,210,148,40,114,112,56,64,50,28, -34,14,67,171,26,211,239,41,138,77,44,202,77,48,2,68,217,10,210,44,134,202, -55,81,228,18,225,96,140,100,50,66,72,10,114,177,128,84,220,38,34,6,134, -102,37,161,202,28,101,149,163,74,87,144,141,198,136,2,61,130,165,100,137, -124,177,64,33,8,233,202,0,131,36,70,8,70,85,204,145,171,64,87,198,131,184, -129,126,149,34,48,71,136,146,16,170,152,97,54,47,32,33,80,44,166,160,120, -128,241,120,140,245,73,130,48,80,152,31,218,192,116,94,66,64,160,156,207, -64,113,134,201,120,140,181,73,138,40,36,176,34,196,81,136,60,159,97,227, -142,5,54,0,80,152,97,178,186,130,201,48,68,149,47,116,192,25,14,181,0,77, -81,32,207,25,81,54,192,48,77,16,40,169,201,107,249,12,71,164,192,56,9,64, -73,138,81,50,193,120,16,235,228,90,73,148,101,1,129,49,194,40,110,133,71, -89,65,230,5,74,5,196,227,17,134,89,136,226,136,0,203,16,131,149,49,134, -177,196,108,99,19,51,153,96,60,89,193,100,16,130,23,5,102,196,230,218,182, -145,72,20,11,228,42,64,54,28,153,224,110,69,60,37,80,22,5,4,143,16,69,113, -251,26,183,182,168,141,214,190,47,144,98,246,19,85,230,16,121,1,26,164, -160,176,29,249,180,193,101,178,204,137,96,143,21,66,65,138,28,243,89,1, -101,56,11,105,232,138,8,169,106,129,249,188,52,175,167,154,216,140,182, -121,47,202,2,121,81,64,101,43,24,134,161,158,165,231,109,42,5,175,8,114, -122,199,245,44,188,237,88,232,83,229,169,103,6,190,41,24,218,236,136,154, -177,65,242,140,95,218,209,52,90,90,185,47,171,119,186,195,236,118,75,192, -166,21,144,221,7,177,60,218,59,240,189,167,92,199,100,183,4,252,4,197,221, -91,201,74,2,218,48,238,178,252,233,234,205,171,217,145,204,49,255,111,20, -232,94,209,172,84,184,234,182,18,204,140,99,215,70,136,195,0,73,168,123, -240,66,181,240,188,254,199,77,223,93,25,39,183,118,108,174,221,152,26,71, -55,107,182,145,65,80,135,127,8,41,166,154,193,23,2,65,18,88,126,217,186, -63,205,68,128,84,77,21,219,42,245,194,35,51,176,235,253,94,39,32,138,113, -175,83,234,10,62,51,16,61,0,30,155,141,90,128,33,65,134,69,207,44,245,236, -173,40,145,165,89,83,229,161,215,123,10,144,170,210,9,134,173,120,229,179, -64,173,133,169,20,99,54,45,64,68,200,70,167,32,8,71,222,232,135,171,221, -90,75,242,6,1,28,119,49,127,49,248,45,174,59,205,194,185,201,78,201,74, -110,0,223,70,24,86,15,169,63,235,237,15,240,118,106,110,107,70,181,227, -31,122,115,52,158,67,160,48,50,45,149,176,241,189,215,133,180,48,27,153, -54,70,162,32,106,3,49,17,160,36,84,125,16,3,49,6,20,154,107,37,193,82,185, -159,55,136,116,43,131,37,148,82,230,120,86,47,142,173,81,30,214,179,192, -150,237,59,130,48,106,206,79,41,161,231,141,235,103,130,37,152,66,115,158, -230,25,84,10,82,41,32,12,218,228,175,169,62,164,158,161,183,31,100,243, -249,106,200,52,8,35,212,237,80,150,2,10,1,130,176,221,52,200,8,19,53,207, -102,80,235,88,212,87,91,65,84,18,160,64,171,164,213,225,70,25,168,186,174, -54,45,57,93,81,9,84,213,28,243,105,14,12,214,48,202,34,104,169,129,0,97, -24,128,32,81,206,167,216,220,92,0,131,53,140,51,173,228,6,10,205,235,220, -172,43,37,132,38,224,90,68,174,48,210,45,4,37,4,16,152,115,208,211,229, -16,18,8,235,169,25,82,144,70,171,131,73,35,142,130,117,66,92,7,204,170, -152,226,240,161,195,40,67,61,42,55,104,4,143,88,203,91,195,112,121,216, -124,79,134,0,203,122,222,29,20,33,10,235,62,187,185,87,129,254,188,205, -179,168,4,4,7,58,9,116,34,148,130,40,102,56,124,199,161,230,253,179,56, -192,18,253,65,215,88,196,60,95,92,230,168,166,155,168,100,136,104,178,138, -36,181,12,174,44,246,185,221,10,107,184,59,144,168,242,28,121,41,160,162, -12,163,44,53,194,96,245,27,73,84,121,129,188,20,64,148,98,56,72,245,125, -178,160,103,22,5,102,211,41,230,50,64,54,90,197,40,213,228,97,218,86,157, -177,103,150,204,226,24,57,218,106,142,225,131,127,92,147,8,88,117,69,115, -221,173,226,192,54,173,234,21,105,218,22,213,236,218,164,31,245,62,218, -235,209,77,109,11,217,111,165,176,103,56,67,61,67,123,220,58,208,55,247, -188,231,195,68,126,131,71,187,196,145,215,204,87,205,253,80,38,43,234,171, -224,91,129,87,114,222,176,121,104,107,232,158,116,37,193,142,208,11,64, -235,119,71,120,232,74,200,106,14,72,130,154,51,16,178,38,204,65,247,251, -237,25,145,214,187,133,93,174,165,173,31,194,236,198,124,201,232,138,207, -212,50,148,210,187,60,10,66,86,16,162,212,82,183,33,153,43,0,203,171,215, -220,12,83,245,192,17,12,98,175,10,85,157,113,9,219,34,170,227,74,230,25, -110,107,65,18,93,41,16,66,135,240,225,139,56,53,16,212,142,251,98,59,40, -232,89,59,213,5,181,168,145,195,62,117,75,246,70,26,210,238,75,113,127, -139,139,250,60,21,209,102,239,238,172,40,129,130,216,144,21,235,195,68, -29,51,80,29,248,251,32,137,26,206,11,117,64,111,156,235,216,74,144,66,80, -24,246,11,172,81,96,56,15,112,102,110,216,242,109,174,37,72,109,37,75,39, -84,5,145,67,54,234,92,75,0,28,16,130,32,234,209,203,98,48,133,38,232,250, -95,1,16,6,70,127,186,253,204,65,20,155,192,102,85,115,68,160,48,65,224, -77,7,177,117,172,56,14,58,88,34,5,113,147,56,184,200,18,0,84,40,22,5,56, -25,99,60,202,144,69,86,130,201,12,81,230,152,207,115,112,58,193,120,148, -33,141,250,200,189,250,15,194,40,110,250,216,190,23,120,80,207,136,55,43, -63,64,20,217,231,25,34,140,67,7,196,140,156,99,41,157,208,5,33,160,84,103, -84,41,140,34,61,223,93,147,199,226,24,205,48,44,133,122,252,214,234,229, -6,65,136,32,8,187,126,37,65,132,184,47,222,153,168,29,4,129,22,166,177, -42,237,26,162,101,135,145,221,72,5,130,165,132,172,10,136,249,2,138,99, -196,227,49,146,52,114,49,235,102,221,113,195,206,174,159,39,37,43,211,30, -37,68,201,16,163,204,204,186,27,116,145,69,133,50,207,81,8,32,202,134,26, -118,183,110,184,82,18,178,170,80,44,22,40,85,140,225,104,136,97,22,182, -172,121,222,174,167,109,51,233,13,234,232,61,239,221,89,178,254,164,161, -229,122,217,200,43,90,40,220,18,143,169,101,214,253,81,67,244,50,212,187, -237,193,90,150,150,209,231,249,183,77,96,183,217,244,212,142,60,54,14,126, -181,255,123,15,177,176,113,139,227,182,173,217,24,199,120,114,152,108,233, -62,90,235,158,154,139,219,250,134,247,11,150,235,0,77,14,191,205,82,109, -111,2,125,109,245,215,64,61,54,188,111,78,76,177,229,220,196,173,80,78, -184,118,42,130,35,55,160,42,111,7,179,2,73,210,90,247,118,239,196,84,12, -237,135,178,2,126,127,161,220,194,242,142,169,131,165,249,67,118,146,160, -255,73,41,33,171,82,67,243,70,248,194,169,216,235,241,11,165,32,101,229, -177,243,157,147,133,59,144,111,151,134,220,47,140,224,165,155,53,104,19, -134,38,57,178,18,157,14,129,198,131,178,24,63,253,87,189,112,194,32,108, -251,205,246,195,224,70,115,75,157,149,219,89,90,66,175,236,171,53,52,96, -136,139,126,162,226,26,131,242,22,201,241,78,8,52,182,184,70,163,31,200, -228,162,30,30,31,200,101,5,162,35,253,218,102,211,118,203,203,34,85,250, -39,87,35,47,22,239,128,216,246,151,103,87,170,155,92,107,74,238,225,197, -182,70,51,253,214,176,140,126,118,175,125,99,200,135,65,125,144,106,137, -179,139,82,2,101,94,130,195,20,131,209,16,73,232,237,233,66,160,200,75, -168,26,90,15,150,245,132,92,56,181,127,0,152,122,56,71,180,180,175,196, -222,160,83,45,16,19,135,9,40,138,97,56,135,222,53,246,73,89,93,66,74,23, -104,238,95,123,189,231,70,132,48,202,144,133,137,209,20,105,247,223,174, -217,152,46,62,184,152,163,152,206,33,100,136,120,48,66,58,72,17,68,161, -245,208,181,127,104,247,209,107,239,12,37,37,202,66,128,41,198,96,172,181, -68,236,160,171,84,133,170,16,144,65,140,108,148,34,137,173,172,219,112, -59,230,139,28,165,12,144,164,67,140,179,4,73,24,44,117,127,237,148,158, -150,101,109,195,21,106,252,16,150,84,255,157,135,219,183,102,36,167,175, -217,75,110,179,102,249,29,34,32,45,63,95,178,28,69,236,73,6,234,144,244, -44,62,17,186,31,215,71,198,93,69,58,234,8,237,248,210,180,228,199,12,71, -142,219,69,120,237,196,176,190,10,81,155,53,154,222,99,93,77,56,207,86, -27,160,149,39,102,195,53,20,223,218,182,183,131,101,86,76,107,186,222,138, -12,47,189,14,252,86,144,103,160,36,0,43,199,131,213,177,8,139,13,196,211, -131,168,132,130,10,55,58,187,46,43,106,23,135,125,190,202,37,111,177,178, -69,15,188,209,147,86,240,210,91,20,10,101,89,128,8,72,234,190,187,163,84, -103,46,182,210,211,0,110,117,206,254,44,72,119,119,180,174,41,200,115,62, -118,69,254,77,191,76,234,234,34,8,173,234,216,92,7,80,175,183,149,187,72, -118,88,198,247,153,34,160,117,102,211,48,117,183,26,177,99,5,236,202,155, -93,149,93,27,162,227,14,244,136,142,9,53,147,239,213,237,170,53,113,15, -31,144,186,128,86,27,214,169,53,174,232,19,172,232,28,135,177,36,204,144, -19,134,218,49,23,114,141,80,216,67,87,8,78,182,237,232,111,147,253,249, -168,149,143,94,86,11,121,247,138,188,233,139,102,125,88,215,212,54,251, -33,107,243,243,13,167,58,155,235,86,235,135,25,65,24,33,29,175,32,101,211, -10,240,167,168,162,8,131,241,42,6,117,59,192,59,184,205,84,105,19,47,234, -132,243,229,42,198,125,106,244,126,120,109,235,173,32,202,48,94,79,53,41, -205,170,114,105,9,51,181,155,42,244,63,46,91,248,241,57,231,24,70,25,38, -235,41,128,160,189,30,61,237,180,198,169,155,2,32,25,34,93,27,32,109,90, -42,228,242,94,106,123,85,114,6,187,154,132,45,8,67,164,131,208,84,245,62, -15,70,35,70,201,32,54,35,86,94,109,74,1,130,120,128,81,152,98,88,235,212, -83,215,154,184,195,39,167,174,139,165,115,95,169,27,146,157,174,228,54, -178,213,182,134,61,119,224,119,110,80,181,190,187,217,255,92,117,239,149, -91,23,123,235,140,92,250,17,121,219,162,221,74,168,145,26,98,56,130,61, -86,167,213,169,27,220,61,195,37,18,58,202,117,61,159,132,218,0,223,86,89, -77,112,247,139,51,171,159,173,156,209,109,155,142,198,109,53,207,109,176, -171,135,195,148,193,139,153,237,176,74,70,12,167,221,132,216,210,186,173, -146,9,196,238,213,86,154,17,10,170,152,131,203,25,136,129,251,221,115,159, -243,208,250,46,131,180,100,83,154,29,249,158,134,73,61,239,101,187,122, -23,162,132,100,169,133,44,194,160,133,127,172,138,27,82,64,42,97,30,64, -183,122,235,100,236,204,61,229,45,44,130,150,157,85,250,144,150,134,1,41, -176,54,32,166,45,225,247,165,164,186,237,2,125,215,64,16,80,208,107,35, -232,129,83,45,130,161,215,21,114,229,24,201,103,161,182,15,49,217,255,99, -61,217,54,121,141,157,236,148,92,55,73,108,101,48,226,218,128,48,251,126, -226,253,164,94,187,45,224,88,56,122,108,86,95,78,179,205,119,200,97,211, -214,40,1,108,241,146,142,252,38,59,144,163,45,122,76,91,220,202,46,174, -209,222,23,178,156,15,109,42,50,123,220,141,78,127,177,47,115,90,166,170, -101,252,40,194,176,191,35,82,195,163,20,210,82,6,119,97,233,187,0,0,32, -0,73,68,65,84,39,119,136,75,238,211,73,189,245,188,199,194,118,238,53,45, -29,30,209,124,158,0,8,183,118,156,115,207,143,150,254,6,109,241,40,209, -146,159,18,133,141,182,255,86,121,84,219,174,38,51,231,142,78,80,105,37, -74,201,73,20,59,146,175,134,99,193,125,40,149,9,226,91,57,171,233,123,24, -238,160,64,176,146,95,246,228,100,152,28,196,218,161,41,57,200,223,178, -9,32,238,121,240,107,50,157,94,215,110,226,222,163,134,103,91,202,146,103, -233,219,147,217,214,147,79,174,201,13,245,208,4,188,231,176,158,6,32,23, -9,180,33,249,182,167,14,71,215,172,59,61,101,159,31,117,240,72,167,126, -183,206,169,105,84,134,65,176,164,39,209,94,117,101,117,146,153,93,37,164, -38,240,55,228,58,3,207,215,65,157,59,104,57,100,179,8,8,74,74,109,27,171, -164,133,205,114,91,29,81,160,205,107,148,112,103,194,237,209,0,34,175,82, -220,34,142,169,10,140,164,183,92,101,150,40,42,221,119,15,155,25,115,182, -24,168,102,254,83,201,118,219,225,158,141,171,182,159,181,44,1,221,192, -192,46,84,15,159,28,167,197,121,132,148,8,2,130,233,174,58,2,20,29,6,167, -51,13,208,115,25,142,166,25,111,58,11,149,20,122,125,56,64,164,255,48,123, -181,24,187,139,218,207,153,137,188,156,217,191,54,240,30,118,11,74,36,79, -58,18,219,110,208,214,3,96,145,54,25,221,204,219,169,162,216,139,110,118, -122,93,59,181,153,81,64,38,114,30,204,142,57,139,89,211,246,199,33,127, -216,213,133,50,182,248,132,45,203,184,67,171,101,95,248,163,111,89,186, -61,202,38,95,244,73,89,203,42,249,237,48,233,101,25,73,79,149,225,54,76, -168,3,206,115,79,93,213,173,180,187,188,102,70,23,249,177,95,219,26,245, -90,134,11,113,111,251,128,119,242,177,187,77,149,37,239,90,143,137,117, -31,53,23,56,50,193,211,230,35,89,227,90,228,36,57,109,155,175,105,233,237, -172,167,181,179,215,253,242,187,183,85,82,175,127,51,46,86,143,177,113, -205,43,33,119,68,140,151,100,81,141,204,46,187,186,240,212,189,47,53,210, -73,180,164,141,71,203,161,75,135,251,208,236,181,86,112,238,219,104,123, -50,224,182,147,106,67,233,45,243,221,207,23,220,19,101,239,154,90,56,87, -47,204,209,102,126,108,115,79,2,14,53,65,167,47,221,109,54,52,237,52,164, -2,119,182,188,254,167,152,12,123,190,173,216,109,125,122,231,80,54,81,143, -21,184,204,189,44,220,194,245,235,149,174,244,140,58,84,5,72,1,166,0,29, -122,36,224,192,156,109,85,111,45,7,203,70,81,169,18,74,133,186,154,175, -3,42,43,148,85,137,0,64,28,235,121,228,70,253,168,206,200,148,132,50,149, -187,161,60,187,253,78,246,49,37,213,197,221,26,222,29,247,108,28,46,105, -36,12,195,70,33,138,109,235,195,30,19,89,143,183,120,167,52,223,163,186, -239,238,141,184,180,172,85,175,174,34,27,46,35,11,102,68,211,15,108,23, -45,123,253,48,247,169,246,199,83,186,112,219,118,48,132,191,253,179,67, -157,105,44,27,27,209,9,191,146,229,14,161,14,94,133,221,116,223,137,186, -27,143,7,27,186,159,213,107,40,144,11,81,99,73,247,153,61,190,117,79,41, -178,156,165,224,79,43,81,15,2,178,44,74,245,237,39,203,227,96,199,147,219, -163,72,195,245,229,90,202,18,216,18,161,93,214,160,233,130,149,14,254,179, -195,74,219,109,31,244,219,129,242,146,116,99,7,247,162,94,43,117,155,209, -234,163,59,9,92,239,229,233,142,108,53,207,138,35,150,194,221,68,223,207, -72,104,155,150,12,29,77,160,247,238,69,45,179,109,109,208,205,78,207,173, -35,91,103,252,167,47,176,91,92,166,122,31,228,158,181,100,235,7,208,18, -52,151,58,44,9,251,185,101,111,11,119,137,118,173,15,60,109,221,70,176, -124,221,107,20,198,30,172,107,77,118,90,178,161,211,146,107,222,134,123, -87,29,58,148,186,46,63,69,91,18,4,75,106,5,91,180,88,171,192,26,195,150, -86,38,182,9,214,166,114,87,118,191,157,27,145,87,125,99,25,80,86,198,169, -170,18,164,68,155,121,51,44,242,152,183,193,66,129,148,5,249,176,244,16, -27,238,184,68,219,199,34,120,23,202,148,110,172,180,237,103,24,178,145, -100,44,161,148,68,156,36,6,242,225,86,19,153,53,153,174,227,252,235,84, -82,182,218,1,247,176,46,224,144,98,152,60,120,180,121,192,1,37,217,140, -196,105,134,132,61,141,230,153,47,249,206,138,119,202,151,146,10,12,54, -226,28,30,36,192,236,142,168,123,213,17,124,107,81,118,23,110,111,246,105, -81,91,235,37,208,55,219,233,130,167,180,77,56,240,22,189,173,18,105,67, -204,30,249,175,227,172,104,111,64,86,133,196,102,51,246,99,236,18,139,243, -126,56,197,218,212,221,238,41,111,81,7,250,187,96,247,191,118,114,5,242, -122,148,62,210,197,232,199,139,151,181,121,182,66,133,58,223,115,239,207, -251,168,127,91,197,23,108,81,247,118,235,122,234,169,230,151,111,238,88, -178,225,99,219,208,189,149,151,120,191,42,90,167,111,229,207,174,219,132, -225,158,181,227,32,31,108,49,138,172,36,148,76,133,111,7,185,122,191,161, -163,70,93,142,2,253,243,45,199,217,82,177,244,133,94,26,52,205,122,230, -107,82,46,122,30,160,30,245,58,114,220,229,220,222,184,125,199,185,111, -95,180,170,34,246,50,88,242,80,73,178,142,219,65,88,184,103,189,91,170, -116,117,197,94,7,108,87,204,203,67,157,155,31,249,149,43,187,157,1,98,135, -132,215,10,226,120,21,188,30,21,162,229,200,148,253,40,214,44,121,235,98, -171,102,68,142,160,96,212,229,208,216,60,55,153,154,178,130,46,51,131,171, -92,207,187,147,133,16,192,130,70,217,99,153,160,213,112,111,75,66,123,39, -238,82,159,200,74,223,186,93,185,214,176,129,205,236,114,37,74,84,178,66, -20,133,136,34,2,67,24,135,56,165,145,6,182,204,99,28,252,204,101,196,55, -21,61,60,8,195,111,56,1,90,63,159,123,152,82,74,7,118,24,110,132,47,20, -99,47,96,178,86,239,81,207,187,47,137,137,122,34,76,19,47,219,242,179,94, -161,220,17,153,112,13,29,184,195,246,38,234,180,129,155,30,183,215,248, -54,220,52,171,253,192,45,217,174,27,222,252,90,119,89,175,1,109,32,182, -21,163,60,63,233,230,1,175,55,93,242,160,122,59,51,39,143,229,207,46,99, -222,31,231,101,94,182,201,248,61,228,190,30,51,245,212,126,91,228,52,176, -131,187,43,1,10,143,220,74,232,105,141,211,142,98,218,81,6,0,90,74,96,235, -110,166,71,83,13,51,208,211,149,180,135,153,0,223,248,115,107,128,157,151, -64,174,75,24,15,219,192,242,212,211,215,133,39,69,235,137,185,176,47,129, -65,22,105,12,142,75,92,171,0,135,70,193,206,30,57,227,101,68,21,222,41, -129,231,232,218,122,32,119,62,180,185,106,212,215,253,101,203,62,155,150, -119,50,188,241,22,34,235,137,105,70,199,224,225,42,212,143,122,83,119,160, -221,41,78,188,174,188,131,151,113,119,128,8,94,235,177,109,181,184,224, -3,59,9,25,181,43,137,122,102,237,169,118,211,99,7,168,230,30,238,138,205, -227,178,131,59,0,68,65,31,110,209,183,16,192,77,112,87,117,223,220,104, -33,43,101,2,60,183,236,121,6,235,10,180,14,246,20,32,128,158,57,101,145, -155,77,70,129,165,54,165,169,153,164,212,100,35,170,105,11,48,43,195,252, -12,154,15,220,210,179,187,44,78,234,233,47,81,183,75,220,154,200,16,65, -26,214,124,20,106,151,60,37,75,128,133,14,242,189,219,143,242,112,20,15, -130,228,110,48,119,147,1,251,24,110,54,207,172,171,103,144,158,249,181, -161,222,206,108,57,208,159,157,238,116,159,237,157,47,5,164,20,70,94,149, -122,144,10,95,143,17,29,67,7,55,160,216,172,82,171,227,74,220,95,226,214, -86,143,117,54,234,60,184,188,77,213,180,36,152,8,9,230,0,20,217,102,20, -46,177,145,236,217,60,191,246,247,97,105,171,151,214,16,105,152,92,66,24, -247,173,28,94,26,0,184,135,207,235,108,254,30,242,217,7,39,195,169,89,91, -126,67,187,129,1,182,81,134,51,109,82,255,175,82,154,10,211,51,75,68,68, -70,15,226,168,217,101,206,26,210,66,62,222,249,19,33,136,150,65,225,221, -94,245,242,14,186,187,181,111,63,12,224,63,16,12,174,218,231,74,213,148, -224,136,16,116,155,105,71,217,50,242,5,108,218,13,222,215,158,39,94,134, -254,161,133,117,123,208,18,114,8,21,125,253,230,254,81,85,119,125,91,172, -254,118,49,52,83,7,221,203,103,181,97,184,231,53,139,4,232,0,203,100,143, -135,233,181,199,181,100,114,3,214,234,247,39,227,153,81,59,197,57,115,228, -245,7,144,18,138,140,200,147,143,84,117,18,5,90,210,14,242,27,109,110,130, -78,203,106,137,222,66,210,221,185,154,132,198,143,21,118,123,162,54,143, -241,56,59,232,204,221,184,207,62,247,180,27,162,165,90,229,205,102,239, -206,125,178,70,170,161,148,132,40,43,204,23,21,74,138,65,113,210,244,224, -21,75,136,74,160,200,43,72,102,40,10,16,199,169,182,98,172,114,16,235,170, -88,138,18,101,33,128,48,70,154,26,15,116,54,67,118,82,66,202,10,85,81,66, -50,128,32,68,146,36,136,89,91,23,246,194,209,220,55,38,233,200,140,181, -99,25,220,138,217,48,8,210,88,114,70,73,12,52,65,221,163,248,16,44,43,89, -95,42,170,135,213,100,175,4,103,241,219,193,82,185,125,252,58,59,15,169, -117,143,179,87,150,55,39,233,140,104,208,14,76,26,118,130,56,50,218,121, -247,94,216,150,219,81,61,118,179,40,23,105,232,79,186,168,211,186,64,143, -236,36,186,210,189,246,82,85,220,232,42,4,193,242,82,150,64,80,121,137, -124,179,4,199,9,6,171,137,166,155,216,96,132,83,145,251,243,114,228,126, -94,151,62,211,66,131,228,34,93,254,248,29,113,31,38,238,194,144,132,182, -23,203,44,161,148,214,60,104,212,237,120,89,251,213,233,241,152,88,96,67, -183,237,103,4,117,128,49,107,95,103,168,82,160,218,44,144,207,181,148,45, -43,19,208,9,8,146,8,201,202,0,233,0,253,204,165,29,86,242,92,148,200,143, -20,40,139,118,177,16,5,8,39,41,6,147,216,162,3,45,15,199,58,255,55,137, -127,208,63,10,215,151,6,244,91,52,184,193,93,76,115,20,135,43,136,134,96, -68,8,134,9,178,93,41,226,168,229,242,176,50,162,83,180,93,122,93,39,129, -220,195,63,35,143,11,225,234,40,244,27,142,24,209,27,86,26,62,13,2,71,88, -172,169,248,218,45,175,159,53,191,5,44,175,253,225,43,136,98,142,178,40, -245,57,6,17,162,108,140,36,77,93,89,90,198,178,30,148,119,95,184,211,18, -107,1,54,1,145,207,32,42,66,152,77,16,7,4,64,64,44,166,40,23,2,65,54,65, -154,165,70,3,196,50,84,169,145,76,174,80,45,166,168,74,66,56,90,69,26,7, -59,32,15,74,115,15,131,118,124,214,97,205,179,131,18,80,103,124,206,187, -182,206,152,163,61,146,75,86,242,5,248,202,177,238,57,81,131,70,176,149, -129,179,29,224,124,29,126,15,101,176,191,11,150,82,73,109,136,92,20,141, -226,147,84,18,101,153,99,145,47,144,23,21,4,2,144,153,19,215,58,233,2,101, -81,65,112,136,120,144,33,203,34,132,80,80,82,66,149,115,64,149,168,202, -28,121,190,64,89,84,144,76,8,163,64,103,92,204,96,72,200,42,71,158,231, -16,146,180,190,244,64,107,76,199,97,59,3,221,75,54,244,120,63,78,127,133, -188,220,199,92,105,5,64,136,10,149,144,72,146,184,205,40,253,12,137,148, -103,43,107,118,25,178,152,240,29,33,28,235,247,237,215,201,74,209,173,126, -182,214,7,87,144,38,99,174,21,5,27,18,14,83,167,152,230,62,107,224,237, -170,247,45,226,190,146,250,30,114,135,53,142,30,97,26,238,244,193,201,26, -253,178,101,152,125,249,105,182,169,188,78,169,98,217,50,18,58,218,250, -96,2,151,2,229,145,5,22,135,10,72,161,250,89,52,0,246,14,246,98,207,96, -15,170,121,9,161,66,68,89,212,81,201,236,206,193,115,163,229,96,183,127, -24,192,183,255,243,59,120,228,131,31,137,3,147,3,56,105,215,73,205,40,73, -83,109,145,35,19,213,178,232,123,211,126,235,195,145,59,36,166,132,64,121, -36,199,226,112,9,81,49,120,139,187,202,110,95,195,26,233,67,195,19,111, -54,66,139,79,83,207,74,43,37,161,164,208,42,145,0,40,14,17,175,14,48,220, -157,34,201,66,68,163,20,131,61,99,140,247,79,48,220,61,68,50,112,171,195, -157,193,69,117,162,74,96,161,80,45,132,246,108,63,102,132,201,177,35,140, -247,143,49,218,55,196,112,18,235,88,213,33,78,121,73,188,16,40,143,204, -49,63,84,66,8,134,173,79,225,67,153,180,20,231,232,239,231,171,188,130, -152,75,208,40,195,112,239,8,163,99,6,72,82,6,87,2,44,12,34,41,244,250,155, -31,46,81,85,220,155,86,46,79,39,24,44,5,132,225,183,52,68,179,250,222,217, -227,175,254,104,162,53,130,203,170,130,88,28,194,98,115,19,85,37,80,20, -5,126,230,174,167,98,125,184,11,215,252,240,71,250,184,75,204,162,120,139, -132,159,89,65,137,2,98,118,8,249,108,6,21,12,144,77,118,99,56,89,69,154, -165,70,170,27,91,241,88,221,59,192,75,246,1,48,138,34,199,61,239,114,79, -172,13,215,240,131,43,175,68,89,48,40,201,16,197,212,158,71,94,1,65,140, -40,142,76,162,203,214,88,31,26,199,210,42,159,161,42,24,97,54,108,21,24, -253,105,28,59,160,202,18,213,252,48,230,155,155,40,43,1,213,160,90,212, -136,174,89,79,80,119,13,81,31,183,198,218,180,200,78,176,217,106,49,82, -119,73,208,18,216,166,153,176,118,247,197,118,20,178,222,179,168,219,1, -110,2,252,142,2,129,206,230,202,170,68,85,74,40,4,8,131,208,232,84,27,247, -54,163,78,7,10,27,83,152,144,24,44,36,88,73,4,50,7,41,9,81,73,48,155,224, -69,90,239,57,50,26,209,204,2,34,47,80,86,10,65,24,35,73,98,196,97,128,32, -64,67,4,244,101,207,185,15,114,66,151,59,219,198,92,118,22,168,146,2,66, -136,198,87,221,246,129,183,19,1,103,196,205,158,11,104,74,64,5,207,134, -167,101,212,19,119,95,107,13,237,189,221,70,75,161,134,20,88,74,127,173, -18,156,157,161,159,119,246,121,56,118,184,31,231,157,125,222,182,60,40, -127,133,126,238,179,159,195,179,127,253,217,184,215,9,247,194,113,147,227, -112,175,19,238,133,95,253,31,191,138,191,122,231,251,16,132,198,130,182, -79,26,143,187,224,22,91,94,199,141,208,145,215,90,39,144,131,211,215,60, -11,178,87,121,61,157,33,36,84,165,160,42,5,22,170,213,70,144,10,170,20, -216,183,122,0,199,31,56,25,119,57,225,68,28,183,186,31,7,38,7,240,11,247, -249,5,188,251,237,239,210,246,153,82,129,171,86,118,184,170,8,241,32,66, -156,214,78,94,18,82,8,72,161,156,81,57,16,176,119,176,7,123,7,123,32,69, -5,41,117,134,95,47,152,11,207,187,0,87,124,253,10,124,232,210,15,227,186, -131,215,181,252,18,161,180,104,147,169,212,149,212,194,68,162,100,72,193, -110,114,195,166,173,85,9,200,74,64,86,82,195,225,202,200,144,150,2,213, -180,68,181,80,64,64,218,217,80,24,21,73,0,74,105,109,116,89,41,200,74,130, -165,180,200,130,12,41,53,250,165,164,210,199,23,26,10,47,242,2,111,125, -203,91,113,198,127,59,3,199,173,29,192,129,213,3,120,248,207,61,28,127, -246,199,111,198,237,135,14,35,175,216,145,205,85,165,128,68,136,104,156, -34,30,132,8,147,0,161,177,83,101,115,111,148,208,210,201,108,207,29,42, -54,175,179,185,135,230,94,42,13,159,202,69,9,33,8,225,32,70,50,136,64,113, -136,48,14,16,198,129,70,211,164,254,188,82,232,247,248,194,231,190,136, -179,158,116,22,238,125,215,123,99,223,100,31,126,254,180,7,225,117,175, -124,61,62,241,241,127,210,215,7,12,150,220,142,231,74,67,10,146,245,57, -200,70,34,27,66,65,73,143,169,175,0,37,52,191,70,85,2,213,66,64,133,17, -162,113,140,56,13,16,144,190,190,65,93,196,20,2,98,90,160,90,24,157,126, -98,125,206,245,218,85,198,194,85,26,61,125,193,173,122,38,11,136,249,38, -14,222,113,7,14,79,231,218,125,211,19,122,249,236,63,127,22,103,61,229, -44,156,124,224,100,172,15,215,113,242,129,147,241,216,71,61,22,239,124, -251,59,53,170,35,43,200,106,1,177,216,64,81,8,112,20,35,36,194,251,222, -249,94,220,120,195,141,120,198,179,158,142,147,238,114,66,51,233,163,164, -192,103,62,245,105,60,237,41,79,195,73,7,78,194,218,96,13,39,31,123,18, -30,243,200,199,224,47,223,246,23,144,82,104,142,145,217,127,85,57,67,57, -159,162,66,130,104,184,138,36,203,244,103,143,51,196,233,16,113,28,155, -251,164,143,173,255,201,198,150,91,163,62,198,69,83,73,93,216,73,217,108, -92,250,121,151,96,37,240,222,119,190,27,55,222,112,35,158,254,140,95,195, -113,199,29,135,32,202,176,123,188,11,147,120,140,73,178,130,149,225,62, -236,63,112,119,60,228,33,191,136,119,189,227,93,128,50,251,178,82,24,37, -35,140,226,49,84,153,163,154,111,162,44,36,40,25,33,73,19,76,226,17,70, -241,8,74,84,80,162,194,56,30,233,223,79,134,24,197,35,172,14,86,113,218, -189,31,128,183,191,253,221,64,16,107,41,94,213,218,156,195,36,189,74,86, -24,198,67,243,111,132,97,172,255,126,24,15,193,66,27,90,53,175,71,67,12, -227,1,246,239,222,135,51,31,246,8,188,243,47,223,9,81,41,147,104,233,4, -119,24,13,48,136,189,127,81,251,207,6,123,109,244,152,188,177,64,135,255, -78,125,69,173,181,107,95,191,121,61,111,85,213,77,231,21,174,186,241,160, -174,84,134,107,64,24,99,61,5,50,146,40,16,130,194,24,146,9,133,4,74,9,99, -224,161,171,91,81,228,40,114,163,6,23,199,8,3,179,216,101,133,162,172,160, -40,66,90,107,29,179,130,44,115,104,127,11,29,244,131,70,81,137,155,49,53, -174,114,64,106,127,250,7,220,231,46,93,120,222,30,139,227,190,62,34,99, -190,241,29,48,3,81,28,0,16,8,40,68,154,158,136,48,80,80,168,0,174,192,92, -130,168,2,179,112,161,188,166,226,182,9,85,190,4,145,158,95,39,234,161, -36,83,43,153,75,164,205,122,230,51,125,205,226,193,41,136,194,21,163,117, -110,132,16,44,97,136,58,48,50,128,67,7,15,227,254,119,191,31,242,60,71, -150,101,248,198,15,191,137,245,245,181,22,62,182,96,95,135,25,175,20,206, -59,251,60,92,252,193,139,241,123,175,255,61,60,243,183,158,137,40,138,240, -197,207,127,9,175,121,217,171,113,221,53,215,225,230,217,205,166,221,70, -46,75,196,146,60,99,99,23,235,158,91,155,104,41,86,154,28,136,126,98,153, -51,137,92,103,92,149,66,181,40,81,205,43,200,74,247,183,195,65,130,116, -28,35,80,18,213,180,64,49,23,184,251,169,247,4,0,92,245,221,171,32,161, -240,131,107,175,198,27,94,247,58,124,249,95,255,29,111,248,163,215,227, -153,103,253,6,170,146,113,183,123,220,13,0,240,163,155,111,196,96,28,33, -136,8,172,10,204,14,111,96,115,193,72,39,43,88,25,105,151,172,154,76,183, -103,176,23,0,112,197,85,255,133,108,101,5,43,227,20,17,5,80,69,137,19,247, -159,130,162,40,112,221,193,27,49,24,36,224,170,66,181,89,65,168,16,225, -40,70,20,49,248,255,39,237,189,195,100,171,170,173,239,223,218,121,239, -170,234,238,211,39,3,18,5,69,178,152,241,85,209,107,206,138,168,160,160, -96,0,4,94,130,18,20,65,20,197,43,130,2,94,21,20,20,4,69,229,190,87,189, -94,3,162,40,65,240,162,228,32,57,9,28,78,238,238,170,218,121,173,239,143, -181,171,118,168,234,62,71,191,126,158,126,206,233,174,170,221,59,172,48, -231,152,99,142,17,165,164,253,148,52,213,26,233,102,203,197,159,176,49, -45,189,136,228,73,70,218,75,73,195,92,115,76,77,11,167,109,99,217,146,172, -151,146,244,83,242,20,109,50,99,8,132,101,96,6,14,110,219,209,70,39,253, -132,172,159,233,204,117,112,127,166,92,44,67,103,159,113,63,211,192,156, -202,201,18,137,20,38,134,111,112,224,254,239,229,198,27,110,228,180,47, -158,202,59,222,253,22,194,94,196,127,254,244,23,156,253,229,175,178,207, -43,94,206,79,126,241,19,92,215,65,229,146,172,23,17,247,37,166,239,226, -180,108,109,26,8,144,229,100,81,166,17,145,68,19,106,173,150,139,55,233, -96,154,2,178,140,164,151,146,247,83,178,172,216,120,13,129,233,123,184, -109,11,83,102,196,253,28,44,27,199,55,117,189,93,8,61,222,165,36,235,70, -164,73,193,245,73,114,46,254,254,247,57,237,11,167,113,224,193,31,228,179, -167,156,136,72,5,191,191,250,26,206,56,243,75,60,245,244,83,60,250,192, -99,8,67,159,131,211,182,16,105,74,18,202,161,127,70,150,234,122,172,55, -225,97,25,25,233,76,138,244,244,120,178,76,80,89,78,210,77,200,165,129, -229,153,144,166,100,185,190,223,182,103,64,154,16,207,36,228,202,192,116, -12,68,154,145,132,25,121,170,16,166,81,148,79,12,172,182,131,211,178,48, -178,148,184,95,212,235,85,78,154,232,122,178,59,233,225,248,166,54,219, -233,206,48,59,219,35,113,90,76,78,78,16,56,90,115,95,74,201,225,135,30, -198,21,63,188,130,211,207,56,157,131,15,61,24,203,177,184,238,15,215,113, -242,9,39,243,232,35,143,178,126,230,113,226,126,151,52,137,81,24,58,25, -48,76,162,36,231,165,47,217,151,217,153,89,110,186,233,106,86,110,185,130, -44,149,8,33,56,230,255,126,138,43,175,252,5,167,156,246,25,14,249,240,251, -144,74,114,253,181,55,114,234,169,95,228,241,199,158,224,137,127,220,143, -211,154,194,117,77,100,52,75,156,42,76,167,205,178,69,203,152,77,230,26, -162,113,57,50,141,200,146,144,52,78,144,82,234,117,204,14,216,114,197,182, -204,204,62,69,28,71,5,121,86,146,37,25,42,7,171,53,133,23,248,24,66,146, -103,49,89,28,50,179,97,134,23,191,248,213,204,206,206,114,195,141,127,100, -219,29,118,196,50,37,139,58,43,0,120,242,169,71,48,189,128,7,31,120,128, -147,62,117,18,215,95,123,61,103,159,123,22,31,61,244,96,210,164,207,226, -233,109,245,251,30,191,27,101,121,184,193,4,174,107,131,140,153,104,45, -7,224,169,127,220,139,82,146,45,159,181,11,0,27,103,254,65,56,59,195,29, -119,222,205,105,167,127,133,155,254,242,87,190,120,198,103,57,244,35,31, -193,246,181,166,191,202,35,178,40,34,141,99,29,180,11,7,167,53,201,226, -201,105,0,230,122,171,73,162,144,44,137,145,82,177,114,75,189,22,205,70, -115,228,50,231,153,39,31,231,146,139,47,229,204,51,191,202,91,222,254,118, -46,255,241,229,218,9,18,8,108,31,128,48,13,43,60,135,49,124,22,37,42,210, -233,205,66,199,56,193,220,249,107,17,198,130,68,153,113,165,205,60,161, -223,143,200,148,137,101,59,218,8,102,40,87,91,68,210,50,35,13,251,196,253, -30,24,2,199,41,178,121,5,66,101,164,73,138,84,2,219,54,49,69,225,142,149, -68,36,137,142,250,178,36,36,236,206,209,239,247,73,139,12,69,21,181,247, -113,228,160,106,137,92,84,193,189,17,213,166,42,109,73,147,234,80,96,217, -133,83,88,241,158,92,105,152,92,41,213,32,73,168,161,225,138,148,165,199, -123,61,147,135,60,151,72,149,87,140,1,234,80,189,204,115,125,124,170,89, -172,194,52,52,4,166,164,212,217,163,42,179,227,42,12,44,115,201,143,47, -187,130,40,138,152,94,60,77,20,69,252,228,178,159,148,133,131,92,127,190, -102,180,83,124,253,224,162,31,112,229,143,174,100,191,3,246,227,200,227, -142,100,106,209,20,237,78,155,55,188,229,13,188,100,159,151,224,56,14,74, -106,29,254,21,254,10,86,248,43,184,251,206,187,56,236,160,195,120,254,142, -123,177,69,107,11,100,150,147,231,25,87,255,246,247,188,245,53,111,97,219, -69,219,176,221,244,182,188,229,53,111,225,79,191,255,163,214,240,207,245, -228,239,206,118,249,236,9,167,178,247,78,123,179,245,212,214,188,121,223, -55,115,246,151,206,38,207,180,204,81,183,219,229,212,19,62,203,222,59,61, -159,173,151,110,195,219,222,244,46,190,249,157,11,9,86,116,104,47,111,19, -76,185,216,142,137,225,218,216,129,141,229,148,38,50,237,45,58,76,109,49, -201,11,246,121,62,103,159,243,239,250,250,46,185,28,123,42,160,181,200, -25,190,207,109,91,24,150,206,16,247,218,233,69,236,242,236,189,217,107, -167,221,121,209,78,187,114,240,123,62,200,227,143,61,129,80,12,55,119,128, -61,118,220,149,231,44,223,154,149,173,229,32,20,203,23,109,73,28,199,0, -108,61,189,37,75,253,165,36,179,41,73,102,112,221,77,215,242,206,55,188, -153,109,150,109,195,118,219,236,200,187,223,251,94,110,190,245,198,50,160, -69,176,196,91,194,146,96,25,127,189,241,14,142,56,242,255,178,207,43,95, -206,142,207,125,54,173,101,62,91,45,95,201,138,233,45,185,249,214,155,121, -199,126,239,98,151,231,239,194,123,14,220,143,85,115,79,243,247,71,239, -101,255,119,189,147,237,150,109,197,27,94,245,70,30,120,232,113,156,233, -128,246,18,23,219,212,221,162,10,80,105,78,58,27,19,119,115,114,97,96,117, -92,172,194,225,235,187,23,126,135,27,174,187,129,143,29,113,40,7,127,248, -0,108,183,205,244,22,219,112,236,73,199,243,241,79,124,156,235,254,120, -45,223,249,230,133,122,236,68,41,203,151,110,197,214,219,108,205,3,15,223, -199,113,71,29,195,214,75,182,230,249,207,221,139,159,95,249,115,148,105, -226,78,181,8,166,180,3,217,111,127,243,27,94,179,207,190,172,156,88,193, -174,59,238,206,73,39,157,66,226,40,29,212,56,38,219,239,180,29,219,60,107, -37,119,223,126,43,239,221,239,0,118,220,105,71,118,221,249,57,28,114,192, -135,120,228,158,199,137,122,185,118,151,12,19,146,89,157,221,91,45,15,111, -210,230,188,111,158,7,192,105,95,60,157,101,207,218,130,37,43,167,121,253, -235,94,199,86,207,122,150,126,254,43,218,180,151,183,241,39,28,174,185, -234,42,222,248,218,183,176,221,118,219,177,253,179,119,224,29,239,126,23, -55,252,249,58,76,4,194,4,149,100,172,220,102,43,182,92,190,76,175,89,105, -70,50,167,75,55,91,108,177,130,101,211,75,201,194,28,76,147,229,83,211, -76,123,83,220,242,231,91,57,236,19,71,242,162,151,188,144,45,87,110,129, -211,178,177,108,147,191,63,250,0,71,157,112,20,251,188,250,101,236,180, -203,179,217,255,61,239,230,235,255,126,150,190,255,189,140,95,255,230,183, -188,238,77,111,100,135,231,236,192,139,95,178,55,39,159,112,2,189,126,23, -33,52,143,200,177,4,121,146,16,39,178,112,21,84,124,239,187,223,227,138, -31,94,193,1,31,56,128,163,143,63,154,137,137,9,58,173,14,111,126,251,155, -121,217,62,47,195,113,28,76,199,195,178,45,76,187,133,59,177,130,206,146, -45,232,44,94,193,101,151,255,152,181,107,214,242,193,3,247,103,249,138, -21,67,11,236,203,47,251,49,87,94,249,11,246,223,127,63,142,57,254,8,218, -129,133,107,58,188,254,141,111,226,101,251,188,84,151,36,13,67,111,198, -225,6,226,56,195,112,39,112,61,127,20,165,203,250,36,115,235,9,195,24,236, -14,254,228,98,60,223,195,178,108,44,87,59,114,166,225,12,113,24,145,75, -11,203,239,224,184,38,134,105,99,88,54,228,33,73,119,61,81,24,129,211,225, -7,63,188,146,181,107,215,113,208,65,7,176,205,14,59,232,0,81,149,115,219, -48,45,92,223,99,207,231,239,197,55,190,117,62,0,23,125,251,187,132,81,4, -118,103,248,62,203,41,172,160,109,73,214,223,64,216,79,134,175,249,129, -143,101,187,229,123,61,31,55,240,217,99,175,189,57,247,155,223,4,224,242, -31,253,39,173,169,69,250,243,189,117,132,189,8,105,183,241,167,166,241, -60,187,8,226,74,245,190,168,23,130,213,193,159,90,78,123,241,138,242,216, -166,137,103,91,44,95,186,148,143,127,236,48,222,252,182,183,241,203,159, -255,156,75,191,255,253,49,44,112,234,5,164,49,34,82,85,149,74,161,198,41, -42,86,137,158,243,103,232,198,102,17,175,134,155,147,36,79,83,18,41,192, -178,144,74,144,228,144,74,200,148,246,176,150,209,44,209,204,122,226,126, -31,195,118,112,109,19,179,216,0,133,212,230,45,89,46,49,29,11,219,208,27, -173,204,18,146,40,65,34,176,108,23,223,247,241,28,163,32,82,73,93,41,47, -218,201,134,112,109,205,193,107,76,161,174,122,233,53,99,2,129,105,119, -200,165,36,10,99,29,100,24,160,72,134,53,19,3,10,251,74,74,56,189,178,209, -27,133,163,152,16,99,24,79,66,98,138,66,91,96,88,243,172,226,213,186,253, -205,42,72,116,89,97,125,155,231,185,118,73,19,186,45,78,91,91,138,58,91, -183,184,78,195,52,184,252,123,151,3,240,31,23,255,71,177,113,95,90,18,43, -12,3,211,180,24,167,246,246,195,75,126,8,192,71,143,248,232,144,244,37, -149,34,203,51,190,126,225,215,121,124,227,227,24,134,137,105,149,147,237, -181,47,125,45,63,187,242,103,60,245,228,83,72,41,49,76,131,63,93,125,45, -7,190,243,0,60,207,231,127,239,249,95,110,184,253,207,216,150,205,251,222, -246,62,174,253,195,117,88,133,61,234,177,135,31,195,133,231,95,192,105, -103,158,198,125,171,238,231,228,207,125,154,95,255,242,215,88,5,228,121, -204,97,199,112,193,249,23,112,202,103,79,230,150,191,221,202,241,39,158, -192,175,127,249,107,12,33,48,108,205,226,31,100,215,50,201,201,75,241,69, -76,219,192,176,4,36,9,211,237,37,58,91,127,248,97,76,75,32,43,16,189,105, -149,148,147,91,239,187,149,135,87,63,194,3,207,60,204,17,255,247,8,126, -247,235,171,56,246,240,99,0,88,19,174,30,126,102,85,127,53,171,195,181, -172,9,215,130,148,60,181,234,177,225,107,207,204,174,226,201,127,60,66, -38,13,110,248,203,117,124,224,61,7,224,218,46,215,221,112,35,215,253,245, -70,108,219,230,253,239,253,32,215,94,119,61,166,99,130,44,59,49,222,250, -230,55,241,139,255,42,239,165,105,151,79,168,59,211,229,135,63,250,9,95, -254,218,89,220,118,203,173,188,251,109,251,209,237,206,112,197,79,46,227, -140,47,124,137,91,110,185,133,211,78,253,12,150,103,14,187,27,12,199,196, -80,18,25,198,36,210,192,91,226,19,76,57,133,174,131,192,242,108,254,223, -79,127,170,159,227,155,94,79,95,122,76,44,90,204,162,78,128,235,88,28,248, -225,3,1,248,233,143,126,138,76,53,66,48,248,122,248,161,7,249,194,153,167, -115,195,223,110,96,155,109,183,230,99,31,57,140,251,238,255,251,208,213, -236,47,127,187,133,143,30,242,97,158,189,195,246,220,254,215,191,114,240, -135,14,229,146,239,125,143,47,125,254,12,61,101,156,50,200,186,255,158, -251,56,231,107,231,113,207,131,247,241,177,35,62,198,47,127,245,75,62,255, -165,207,225,119,44,132,204,73,251,25,162,29,224,47,246,113,61,61,208,179, -76,223,183,79,127,242,68,126,245,179,95,242,212,99,79,97,123,45,126,241, -187,95,177,33,222,80,148,13,12,174,254,237,85,236,255,174,247,227,186,30, -55,221,242,87,254,247,142,155,177,29,139,3,62,240,65,174,187,233,122,76, -1,42,173,204,211,44,37,222,24,147,97,226,180,237,178,148,19,231,164,179, -225,240,231,215,189,241,141,252,252,231,63,227,169,39,159,68,74,73,158, -228,220,124,203,237,188,227,157,111,229,254,251,239,227,39,63,251,9,15, -63,245,48,187,237,190,11,151,94,114,25,105,110,114,219,125,183,113,200, -33,7,243,236,29,119,224,174,91,111,227,144,143,124,132,139,191,243,93,62, -255,153,211,245,108,180,93,188,192,197,84,25,113,20,147,73,157,105,255, -224,123,151,2,112,216,145,135,233,249,107,153,67,132,240,219,23,125,155, -181,115,171,116,246,156,154,56,237,69,120,129,143,101,219,116,123,115,156, -251,181,243,241,125,143,163,63,121,28,142,99,34,51,19,219,15,248,225,143, -126,2,192,199,143,252,56,42,154,35,73,45,156,201,105,252,78,135,111,127, -231,107,60,241,216,157,88,142,143,33,67,146,88,98,248,147,120,174,139,81, -83,163,149,200,180,75,56,59,75,166,92,156,96,18,215,177,17,42,33,79,244, -103,28,71,111,35,169,180,113,39,150,210,154,236,96,138,12,153,40,12,47, -192,36,38,158,155,35,83,30,174,63,69,28,133,156,123,142,62,231,99,79,56, -1,215,111,97,59,94,129,168,234,47,167,213,214,107,8,146,21,203,39,0,120, -240,161,71,112,130,41,28,183,124,102,134,55,129,99,229,218,58,87,121,184, -173,201,50,23,77,21,166,63,85,94,73,18,147,101,250,254,109,187,131,70,127, -31,124,224,65,80,49,73,119,134,36,55,177,189,54,174,101,64,30,147,231,38, -150,223,193,118,202,243,146,194,213,54,194,166,137,105,218,245,182,84,12, -28,191,195,226,21,203,56,238,147,199,2,112,201,69,223,31,35,240,196,40, -105,182,209,49,81,83,191,23,13,158,83,189,191,103,228,16,213,115,50,230, -37,171,142,8,22,20,86,130,73,134,48,76,108,203,26,10,177,165,82,144,37, -49,105,56,75,212,239,147,11,3,199,247,240,108,3,115,168,83,46,81,121,66, -154,230,96,218,216,166,169,225,102,153,145,37,25,24,22,174,231,98,91,6, -70,65,254,17,133,169,129,161,74,229,123,81,108,182,170,226,90,215,36,20, -215,76,91,134,166,243,229,187,76,123,49,73,154,32,12,65,62,52,164,89,141, -82,97,1,141,235,192,67,137,172,242,20,202,26,187,24,214,156,43,4,175,154, -154,93,3,210,31,100,241,85,221,214,130,200,145,232,164,16,219,157,192,52, -236,33,123,99,224,35,81,53,57,24,212,90,255,124,237,159,121,240,254,7,121, -201,62,47,97,223,127,219,151,151,190,252,165,60,120,255,131,220,112,237, -13,195,214,147,242,243,245,175,251,239,189,31,128,157,118,222,169,6,238, -152,166,165,13,45,198,116,39,252,247,53,255,205,3,171,30,96,85,127,21,171, -194,103,0,193,215,254,253,156,34,187,58,149,101,43,151,179,197,86,91,112, -202,23,78,65,41,197,57,95,62,123,56,48,127,255,219,223,3,176,98,229,10, -60,215,227,229,175,124,57,87,223,120,245,144,144,54,120,125,229,150,43, -240,92,155,23,236,254,124,254,235,202,159,17,246,114,228,240,246,41,242, -40,33,142,20,166,87,183,129,213,153,88,198,189,15,62,0,192,94,123,239,137, -140,210,130,161,93,65,123,6,125,165,166,137,105,91,116,218,45,14,63,246, -8,0,110,190,233,230,17,226,137,105,148,205,116,42,151,235,74,163,128,0, -0,32,0,73,68,65,84,228,73,169,109,144,206,37,228,202,194,158,114,56,247, -108,125,31,62,117,204,167,88,212,158,100,218,158,224,184,163,143,71,41, -197,121,255,113,62,182,47,80,253,120,248,217,95,95,243,107,30,89,253,8, -107,163,117,172,141,214,213,136,63,175,124,249,190,116,22,47,226,221,239, -127,151,14,50,158,122,154,125,95,241,10,204,220,225,205,111,127,59,0,127, -251,223,191,66,46,201,6,181,98,223,66,36,41,73,98,96,182,61,220,150,141, -105,10,12,203,198,155,242,113,39,5,15,63,248,16,0,91,108,247,108,188,192, -215,243,178,232,35,218,126,251,237,245,66,119,255,131,228,253,152,36,45, -207,231,29,251,189,131,206,68,135,45,151,47,231,51,39,157,76,150,101,156, -253,133,179,152,91,213,165,187,81,242,245,115,191,166,199,192,103,63,67, -208,154,224,160,67,15,1,224,151,63,255,31,210,12,172,160,220,224,223,250, -214,119,176,100,203,21,76,46,238,240,209,79,124,20,128,107,255,248,39,132, -146,228,189,132,28,13,141,91,54,144,164,164,161,226,253,7,126,0,128,43, -175,248,41,31,120,223,65,236,182,231,222,188,234,53,175,224,191,174,252, -73,137,210,73,197,89,103,158,5,192,41,159,255,60,219,236,176,21,207,218, -122,43,78,255,226,233,250,25,156,119,14,134,33,201,203,120,143,100,46,35, -55,109,220,41,23,187,50,156,188,101,19,116,86,150,217,225,85,127,186,138, -199,215,60,206,76,180,145,117,235,159,33,141,36,95,57,231,223,137,227,152, -47,127,245,203,236,178,235,46,180,130,128,51,190,112,58,55,253,249,47,152, -109,143,175,157,253,85,0,190,248,149,47,178,108,219,45,248,216,209,31,211, -115,232,231,255,141,148,41,121,26,211,143,51,178,12,44,219,196,176,180, -198,197,223,239,253,59,0,207,121,238,115,202,238,153,129,158,188,202,201, -227,57,162,126,12,78,160,89,236,5,147,254,252,115,206,101,227,134,25,14, -249,232,33,108,181,213,18,114,5,166,215,198,54,115,238,191,239,65,125,204, -29,182,36,147,54,78,123,26,223,243,16,164,164,97,4,102,128,109,67,158,36, -8,187,133,227,123,8,179,65,58,204,66,146,190,126,175,211,233,224,88,2,153, -116,137,187,125,164,233,227,184,38,42,153,211,89,108,107,49,126,224,33, -100,68,210,79,80,150,143,227,128,140,35,148,233,227,180,59,216,150,224, -252,179,207,97,195,134,141,28,250,145,67,217,106,219,109,48,139,245,54, -143,187,229,6,239,218,26,166,78,251,220,118,243,237,0,60,255,5,123,107, -212,42,41,223,183,116,106,25,83,237,21,44,89,254,108,150,47,89,201,84,48, -81,110,240,166,143,227,251,195,159,227,48,2,59,192,241,92,238,185,243,46, -0,246,126,193,94,196,115,27,137,195,144,44,14,137,231,214,208,221,184,134, -40,6,35,88,132,239,251,152,70,185,193,231,209,70,250,27,215,18,133,241, -208,37,181,186,114,24,134,137,101,217,236,177,251,174,128,126,174,77,81, -228,97,221,189,81,143,175,138,133,40,37,106,6,71,53,136,94,53,212,61,199, -146,70,245,103,172,5,217,175,21,26,167,146,57,105,154,34,177,176,29,171, -148,244,147,74,103,224,113,76,150,130,233,248,154,24,39,138,58,243,32,3, -206,115,210,52,39,47,124,166,13,165,165,103,243,52,37,147,10,195,178,49, -5,144,103,100,105,130,82,6,150,171,127,167,42,162,14,85,22,166,168,185, -142,149,74,112,66,52,123,208,171,178,40,138,52,5,148,129,107,155,164,113, -94,16,249,4,74,109,168,180,112,140,83,193,22,99,92,17,24,109,121,27,233, -251,109,218,140,234,243,8,67,165,201,71,74,18,248,219,213,106,220,181,190, -88,81,26,172,0,92,250,93,29,237,191,239,131,239,3,1,239,255,208,1,220,120, -253,141,92,250,157,75,217,231,21,251,108,30,183,185,104,207,145,74,195, -132,26,177,104,20,211,139,175,189,95,184,55,77,143,226,187,110,211,19,100, -167,231,61,103,120,142,187,238,169,7,245,157,183,222,57,36,174,61,247,121, -207,229,150,155,111,225,173,175,121,43,19,147,19,252,159,125,255,15,167, -126,233,84,182,221,118,59,16,240,220,231,61,135,91,110,190,133,183,191, -121,63,38,38,39,120,249,203,95,198,167,62,121,18,219,118,118,212,8,142, -1,50,78,73,250,25,202,178,112,91,229,144,85,89,70,127,99,143,123,239,121, -132,211,63,119,26,182,109,243,217,211,62,67,210,203,208,59,197,160,1,66, -145,171,156,238,108,200,231,62,125,26,15,61,240,16,171,158,90,197,234,103, -116,198,30,134,33,185,204,180,59,97,83,80,33,47,72,98,170,50,201,133,137, -61,97,99,10,201,157,183,223,9,192,174,47,219,139,86,199,67,8,193,139,166, -95,4,192,221,119,221,133,136,83,226,176,28,23,123,191,120,239,198,20,44, -111,180,180,108,188,150,129,229,4,101,48,209,75,145,202,96,98,169,222,120, -230,230,186,164,221,152,52,6,171,229,96,170,148,52,150,40,199,198,243,117, -171,169,238,128,48,48,28,53,100,224,82,244,196,198,97,76,98,121,184,214, -32,8,44,175,57,141,36,194,179,43,247,87,103,244,113,79,178,221,78,207,5, -224,250,63,223,128,235,217,72,203,226,222,123,238,6,96,207,61,95,88,187, -109,171,86,173,194,153,242,177,170,171,139,237,224,250,154,34,191,104,122, -17,0,51,27,103,200,195,148,44,81,24,129,135,109,107,182,122,26,230,228, -134,197,231,191,252,5,118,222,109,71,46,190,224,98,238,184,253,78,148,82, -60,252,208,67,28,126,232,225,4,65,192,219,222,249,86,100,154,114,231,29, -122,44,238,190,215,46,195,206,147,221,246,220,93,115,41,110,189,29,149, -228,67,9,109,189,123,216,120,190,137,129,36,139,74,196,194,246,141,225, -231,1,94,248,162,23,234,12,54,78,201,250,154,208,118,235,45,127,43,231, -132,82,200,36,37,11,37,216,54,78,96,113,231,29,122,60,236,188,253,243,106, -247,228,233,167,158,102,110,102,3,97,46,176,221,41,86,76,58,216,182,137, -65,195,30,212,168,107,155,43,114,100,210,35,142,98,176,90,184,126,160,231, -150,204,88,247,204,147,252,199,249,23,210,238,180,57,246,216,35,200,211, -12,97,122,152,70,90,4,164,250,192,89,110,224,76,232,214,49,153,246,73,227, -136,92,217,88,174,141,74,187,100,210,98,203,21,91,142,172,17,29,103,162, -246,243,76,184,142,52,234,145,132,17,43,86,238,52,242,254,165,19,139,106, -63,175,159,93,133,140,250,100,202,198,110,5,152,42,101,245,211,255,224, -27,231,95,64,187,221,230,184,19,63,137,89,144,15,211,184,75,86,65,221,132, -148,36,81,151,187,111,191,141,147,78,62,29,219,182,57,227,204,211,73,195, -25,29,156,12,254,198,186,71,72,114,27,183,221,198,50,36,121,212,99,106, -74,151,112,188,86,128,81,89,147,149,213,194,180,77,238,190,243,46,142,63, -246,120,108,219,230,115,167,157,72,174,60,188,197,139,135,181,114,77,130, -183,134,237,151,181,205,185,29,144,198,217,176,77,119,184,38,200,180,232, -88,52,135,4,242,225,58,219,72,152,194,52,172,51,239,169,43,218,169,138, -48,87,211,233,157,10,219,127,33,225,137,193,187,141,249,33,124,93,79,151, -82,34,51,221,143,158,102,18,81,108,222,131,118,143,36,234,211,11,83,50, -101,96,217,54,86,133,132,6,186,22,45,179,140,52,142,137,179,188,96,136, -87,80,129,60,47,162,21,221,22,145,196,33,169,4,211,182,113,76,157,189,139, -162,255,92,145,151,187,252,64,249,174,170,47,163,170,10,249,213,182,133, -146,119,152,36,41,121,46,105,79,238,84,136,200,40,122,189,68,215,172,43, -96,71,29,126,175,100,241,138,81,7,15,33,235,45,115,162,249,93,33,223,105, -121,32,122,61,200,51,133,33,4,142,187,24,195,244,43,15,174,210,122,85,45, -53,40,88,179,122,13,191,250,197,175,0,13,111,175,8,86,112,244,71,142,2, -224,87,191,248,21,107,86,175,89,48,102,219,121,215,157,53,65,237,190,7, -180,133,164,16,186,139,65,44,160,171,92,4,30,227,186,163,178,52,29,158, -103,41,90,81,110,91,23,254,224,66,222,244,182,55,225,121,30,179,51,179, -252,207,207,254,135,143,30,248,81,125,200,92,113,193,247,46,224,141,111, -121,227,240,245,95,253,207,111,56,234,232,163,176,125,171,168,203,73,221, -186,20,171,162,142,94,158,193,242,206,22,108,183,205,78,188,247,189,239, -97,201,210,197,252,252,191,175,228,185,219,63,143,36,19,216,173,50,123, -140,251,179,172,123,122,13,71,126,236,104,46,251,222,101,236,182,231,238, -156,255,157,243,185,229,190,91,134,239,89,247,244,26,214,172,235,50,42, -250,160,89,214,195,118,60,192,233,56,56,174,222,252,7,147,60,203,75,24, -222,176,140,225,125,144,113,70,158,169,10,108,88,48,202,135,204,243,242, -184,194,42,178,166,10,211,59,141,181,16,84,117,135,74,19,129,213,241,112, -92,69,30,105,182,187,227,155,104,196,80,85,108,36,245,152,223,97,199,29, -52,33,233,225,135,72,227,168,108,209,42,50,119,128,237,183,219,142,220, -48,113,90,118,5,210,76,73,187,41,10,131,76,105,157,136,56,142,201,148,192, -110,89,244,122,61,0,238,186,231,30,86,173,127,134,103,54,60,195,51,27,215, -176,182,183,94,195,173,165,146,13,134,93,4,206,169,196,160,76,19,179,48, -71,57,14,182,175,75,13,89,63,35,205,13,236,192,198,118,4,7,29,252,65,174, -254,237,175,184,227,150,59,184,226,167,87,114,224,65,58,171,63,237,51,167, -65,170,161,253,225,249,170,164,130,228,149,99,81,22,93,7,195,122,105,96, -98,154,2,21,23,155,243,224,28,69,83,162,84,65,174,200,195,148,52,81,96, -25,67,94,142,97,154,168,76,255,253,92,24,216,190,133,101,65,175,171,239, -201,163,171,30,101,38,222,192,218,153,167,120,252,201,251,185,255,137,7, -200,237,22,147,139,166,89,52,161,203,35,70,69,59,98,151,93,119,41,50,190, -251,170,110,68,144,197,164,81,159,92,153,88,182,141,40,218,117,85,218,227, -236,179,206,163,219,237,114,196,17,31,99,162,221,6,203,195,52,20,121,42, -17,182,203,206,69,240,253,224,195,143,97,153,146,44,156,33,234,247,145, -194,199,105,117,176,204,156,52,74,81,10,214,204,174,97,166,191,150,13,221, -213,172,155,213,107,200,250,13,15,241,244,83,247,177,106,221,211,172,159, -91,69,50,187,134,222,108,151,220,8,88,223,93,205,250,13,143,178,234,153, -71,89,51,187,182,32,160,173,98,205,154,135,88,181,238,31,172,239,174,197, -144,125,146,36,5,211,198,80,9,241,236,26,206,250,202,185,116,187,61,62, -113,244,145,44,91,182,20,138,204,61,237,245,145,162,156,179,109,119,130, -233,201,45,120,243,91,222,203,146,165,75,249,237,213,255,195,158,207,221, -134,222,220,28,153,89,6,192,73,146,106,150,191,140,73,102,215,210,155,43, -231,176,101,153,144,151,232,217,178,233,229,44,238,76,243,186,125,95,199, -178,165,75,185,250,119,255,143,61,119,223,21,76,91,119,133,81,8,174,25, -54,134,161,64,102,200,44,37,207,210,114,140,229,18,225,4,216,158,175,215, -167,226,107,237,170,85,60,179,122,134,110,172,91,238,254,126,143,70,100, -118,217,109,151,209,5,85,48,198,239,89,141,182,48,170,81,241,35,53,166, -120,46,230,241,208,68,80,8,156,143,83,51,147,57,105,212,167,55,55,71,175, -23,18,38,105,209,162,17,147,166,153,238,119,79,82,226,52,35,147,69,239, -122,191,75,191,223,39,74,82,178,44,35,139,35,162,110,143,126,47,36,74,82, -221,146,22,199,186,239,176,10,155,231,49,113,20,18,198,186,231,209,117, -109,44,203,44,4,12,6,50,177,84,252,56,235,240,107,181,215,88,140,87,178, -208,228,185,60,35,77,19,108,219,198,113,91,248,193,214,195,253,183,223, -79,233,118,19,250,253,148,40,202,8,195,140,40,206,136,162,234,119,94,124, -203,198,119,78,20,41,162,80,17,197,197,239,66,89,252,110,240,51,132,161, -162,223,85,244,186,186,4,145,231,18,97,182,112,91,59,140,180,145,170,170, -231,123,229,90,126,116,233,143,72,211,148,119,188,231,29,172,234,173,210, -176,121,127,21,239,126,223,187,73,211,148,31,93,250,163,5,169,20,3,120, -244,162,111,93,68,150,103,122,179,41,238,209,73,199,156,196,54,83,219,108, -130,138,161,135,220,110,123,238,54,12,20,6,42,110,247,222,173,7,245,238, -207,223,125,120,219,183,218,230,89,92,252,227,239,241,208,234,135,185,242, -215,87,22,112,240,67,144,75,210,94,200,226,96,17,231,157,125,30,183,220, -114,43,63,184,76,243,3,30,126,248,33,108,167,180,170,29,252,39,157,11,233, -173,237,151,89,209,134,39,120,244,145,135,184,245,175,183,114,225,183,191, -203,46,187,236,129,233,58,120,147,46,150,91,14,250,168,31,147,97,113,205, -239,116,57,224,228,83,79,226,197,251,188,152,233,37,101,198,145,9,19,191, -229,210,238,180,245,207,89,174,61,142,148,172,101,67,122,225,40,162,115, -195,100,183,221,52,106,113,207,205,119,208,125,166,71,111,93,204,93,183, -222,163,137,122,123,237,142,49,12,136,245,87,111,93,76,26,13,194,60,10, -146,85,113,14,115,49,253,181,81,193,132,31,240,7,12,200,82,162,181,189, -18,74,94,228,226,184,130,55,188,234,77,108,177,242,89,236,255,158,253,48, -109,99,88,246,40,173,123,245,160,217,255,128,253,11,152,248,151,120,158, -57,60,31,1,92,240,141,111,3,240,206,119,191,27,167,229,212,234,160,42,213, -237,127,121,156,114,211,53,186,252,243,130,23,188,16,187,227,96,25,138, -231,237,172,131,197,191,220,112,19,225,186,62,253,53,125,250,235,34,238, -188,237,30,93,214,136,202,133,49,94,223,167,187,106,142,238,186,152,36, -170,108,202,182,141,211,50,49,133,34,79,50,242,92,96,7,22,182,103,176,200, -91,196,75,247,126,25,189,126,196,100,103,130,151,236,249,66,62,123,210, -169,250,120,81,162,219,0,149,201,238,123,232,108,125,0,73,11,224,222,187, -7,207,96,15,221,114,104,89,76,76,232,140,180,223,155,67,229,57,89,44,81, -150,181,160,6,212,240,57,41,73,62,27,178,251,110,250,111,221,246,215,91, -245,249,98,96,251,58,24,65,8,118,45,198,195,205,55,253,133,52,236,51,215, -139,145,78,155,167,159,94,205,100,219,199,51,205,138,4,70,73,178,61,252, -168,195,1,52,217,177,106,240,165,50,78,56,225,52,182,223,122,103,162,238, -122,194,94,159,52,238,243,228,19,79,115,241,69,63,96,106,209,20,31,63,236, -16,132,229,234,205,61,151,24,182,139,80,17,135,126,248,0,125,204,111,125, -155,254,198,13,36,210,198,9,22,225,181,90,156,112,236,167,88,190,120,7, -76,219,2,25,18,207,172,165,55,51,75,150,131,233,184,149,158,215,140,60, -154,35,142,82,164,225,224,4,19,120,129,135,145,199,154,16,233,183,112,93, -167,8,60,35,148,112,113,220,150,110,157,150,58,59,207,227,89,162,126,204, -51,171,55,242,253,239,95,206,212,162,41,142,62,246,232,97,155,114,158,196, -154,152,155,148,252,135,185,112,61,27,54,60,204,253,127,255,11,151,94,242, -45,118,222,121,103,20,22,150,215,193,11,130,154,88,77,22,117,137,163,12, -105,56,216,193,68,253,233,169,114,172,61,245,212,131,60,179,110,21,143, -173,250,7,87,254,252,167,236,181,247,94,186,147,41,218,72,111,195,42,122, -27,215,16,246,163,226,156,230,8,103,215,208,221,176,138,238,250,85,101, -16,232,78,226,183,58,56,86,189,195,60,76,50,176,93,28,211,68,8,197,119, -46,252,14,0,31,251,248,199,42,45,194,205,130,185,170,104,87,80,107,27,22, -106,80,42,166,81,113,87,11,228,237,163,235,245,188,66,55,194,48,177,93, -159,118,187,77,208,10,104,183,91,180,90,45,90,190,95,216,168,90,216,142, -71,208,234,232,215,130,22,173,32,160,21,120,248,182,133,101,10,44,203,198, -243,125,130,192,167,213,106,209,110,5,180,2,31,207,210,196,59,1,88,142, -131,95,28,183,229,249,69,100,171,97,85,165,84,45,99,215,138,98,178,238, -128,165,74,34,218,80,53,168,162,205,88,141,127,162,40,66,8,129,235,56,154, -200,102,77,226,183,119,68,152,246,48,67,150,185,34,77,117,139,77,154,72, -210,84,146,164,178,248,157,254,87,255,95,13,255,159,38,144,165,170,252, -78,20,105,166,72,83,69,154,21,175,101,178,236,137,46,84,145,252,214,54, -4,237,157,71,6,128,24,182,200,213,197,108,148,84,252,224,162,203,0,134, -228,168,193,231,14,248,144,158,204,151,93,116,217,136,7,115,245,235,157, -251,191,147,119,189,247,93,92,113,233,21,124,251,188,11,136,194,144,94, -175,199,31,174,250,3,215,93,115,93,193,20,31,47,79,54,32,123,40,5,199,157, -124,28,0,103,156,114,6,207,60,185,138,213,171,158,225,243,39,159,14,192, -113,39,29,55,188,198,183,189,250,173,92,127,205,117,36,105,76,158,105,148, -100,223,215,190,10,132,110,111,122,223,1,7,112,219,125,183,105,149,176, -142,142,162,95,253,218,87,151,136,130,105,98,77,248,180,150,119,152,88, -217,161,179,172,156,220,166,235,226,45,105,209,94,209,162,181,52,192,91, -228,227,47,246,113,90,165,251,30,64,107,122,154,101,43,22,15,219,230,254, -114,227,95,232,247,250,92,242,221,31,148,209,253,242,197,76,180,61,246, -218,123,47,0,126,124,249,21,200,92,97,154,22,206,148,79,123,121,80,11,42, -21,2,97,155,28,255,153,79,2,112,206,121,231,208,83,115,244,178,141,156, -241,185,207,3,112,252,201,159,196,236,248,4,203,219,101,102,178,196,195, -45,160,96,129,42,90,34,11,72,116,101,155,246,210,160,86,134,112,23,251, -180,87,118,104,175,108,215,54,253,217,185,57,110,189,245,54,0,78,56,229, -83,53,101,49,33,234,42,128,135,29,121,24,251,188,98,31,46,254,206,37,92, -126,209,37,204,172,91,203,234,85,207,112,222,217,231,113,249,165,63,228, -229,175,120,57,159,56,254,8,28,207,160,82,110,100,125,175,139,49,105,115, -239,99,119,243,133,47,125,1,219,182,249,204,231,63,141,235,42,210,217,136, -35,143,214,228,196,47,159,117,38,143,60,243,16,107,214,63,205,153,103,126, -145,55,253,219,107,17,166,192,12,220,250,181,173,232,208,90,226,226,248, -229,245,249,19,14,150,101,32,12,48,93,7,119,210,197,9,236,225,121,172,93, -187,142,223,94,115,53,137,155,162,90,146,111,124,251,92,0,78,252,244,9, -152,190,139,55,229,240,169,79,159,0,192,231,62,115,26,79,63,245,52,79,63, -189,138,83,139,64,224,216,35,143,66,42,19,119,210,231,21,175,126,37,0,223, -60,247,155,196,89,194,3,143,63,204,25,95,58,189,70,147,18,13,153,29,195, -52,177,59,190,102,236,111,209,225,212,51,78,197,182,109,78,254,212,201, -220,255,200,67,244,179,62,23,95,252,29,94,188,215,139,53,23,227,228,79, -105,98,224,137,167,112,247,189,15,48,215,237,114,246,153,95,230,13,175, -252,183,194,215,97,12,9,24,120,207,251,222,195,254,239,223,159,31,92,242, -3,190,126,246,215,233,118,187,244,250,61,126,255,135,155,184,254,134,155, -137,227,132,246,244,50,130,86,27,203,13,56,239,27,223,37,12,67,142,253, -228,49,44,89,185,37,110,208,194,114,91,120,173,14,22,49,105,146,243,238, -247,31,196,123,222,187,31,63,254,241,127,113,209,247,174,64,34,136,211, -132,223,95,245,59,254,116,205,159,136,227,24,119,98,9,237,197,91,208,94, -188,130,214,212,52,174,239,23,252,12,176,130,197,248,211,91,208,158,94, -74,171,51,137,223,153,198,111,79,224,184,46,166,219,193,235,76,225,250, -254,80,66,214,242,23,225,181,39,177,29,205,156,183,130,105,90,211,91,208, -153,94,74,107,114,138,111,124,251,98,194,48,226,184,79,29,207,228,212,68, -129,132,216,216,237,197,180,22,175,164,61,189,180,188,247,166,141,229,79, -211,90,180,146,206,162,165,180,39,39,241,166,150,16,116,38,107,36,187,96, -209,74,125,252,182,62,191,160,61,89,217,224,12,12,171,85,142,193,233,101, -4,237,54,182,101,32,132,137,229,78,16,76,173,160,179,120,37,157,233,229, -180,23,45,195,111,5,88,150,137,105,183,241,58,75,104,45,90,65,103,186,100, -203,187,190,171,203,185,77,51,49,183,141,231,217,172,95,179,138,31,255, -240,10,46,249,222,37,28,248,193,15,240,254,3,222,63,170,18,88,211,66,82, -21,41,110,85,211,22,169,185,123,168,138,252,180,218,76,187,0,1,226,137, -238,19,106,126,165,27,69,156,100,220,253,240,106,189,185,186,109,48,12, -44,203,97,249,84,139,40,87,132,153,34,202,208,253,233,89,172,117,139,135, -209,105,61,218,24,200,208,150,18,71,165,138,219,64,9,79,12,77,19,170,158, -214,170,52,133,41,60,227,109,219,98,247,157,183,27,21,158,31,185,114,81, -212,221,83,162,40,34,240,131,66,208,166,126,165,89,186,145,44,221,128,148, -9,85,109,160,166,83,219,104,227,61,13,125,121,26,242,73,53,153,52,132,176, -49,204,0,211,94,169,5,101,170,186,169,205,150,249,186,176,21,191,191,234, -15,28,248,142,3,216,102,187,109,184,233,174,155,234,198,38,74,241,146,93, -95,194,99,143,60,198,15,127,246,67,94,253,186,87,143,15,234,4,168,92,242, -231,235,254,204,37,23,94,194,159,175,251,51,235,215,173,103,114,106,146, -61,158,191,7,111,121,199,91,248,224,161,31,4,4,43,130,229,5,163,124,213, -176,246,83,26,90,192,31,126,243,123,206,249,247,115,134,245,248,93,247, -216,149,227,78,58,142,215,188,254,53,195,11,56,247,172,243,248,253,111, -174,230,182,191,221,198,212,244,20,111,120,243,27,248,204,231,79,97,114, -145,158,136,231,157,117,46,87,255,246,106,110,251,107,229,245,47,156,194, -228,212,36,243,73,101,47,43,218,217,86,135,107,70,235,80,162,28,59,131, -182,183,53,209,26,80,112,247,157,119,113,236,17,199,113,199,173,119,224, -56,14,7,29,122,16,23,124,227,130,130,65,191,6,132,224,161,7,30,226,164, -99,78,228,111,55,255,141,94,183,71,187,211,230,161,103,30,66,20,173,110, -0,107,163,181,53,219,222,171,127,123,53,103,159,121,54,119,222,118,103, -81,255,221,141,227,78,254,36,175,125,221,107,134,39,95,126,118,221,200, -216,91,236,45,214,101,130,120,221,240,254,14,126,183,54,94,55,12,244,6, -191,91,31,173,227,23,63,251,37,31,122,223,193,188,248,101,47,225,215,127, -248,85,9,241,169,138,6,125,101,204,38,113,194,183,206,255,22,87,94,113, -229,16,150,127,246,78,207,102,191,247,237,199,225,71,31,142,83,97,188,79, -187,186,231,247,157,251,189,147,63,93,243,39,186,115,93,246,218,123,47, -62,247,165,207,241,162,23,189,144,188,27,17,118,115,204,142,199,117,215, -94,195,121,231,124,157,219,111,191,3,37,21,175,121,221,235,216,247,223, -94,201,135,63,250,33,16,229,177,214,199,235,169,42,73,46,26,254,126,195, -188,11,213,31,126,247,7,174,191,246,122,126,241,95,191,224,137,199,158, -96,122,241,52,187,236,182,11,71,29,123,20,175,124,245,43,107,188,226,171, -127,115,21,103,157,249,85,238,184,237,14,253,12,118,223,141,99,142,62,138, -87,189,242,181,216,147,46,182,107,176,250,233,103,56,241,248,19,249,227, -31,254,72,28,197,188,248,165,47,230,196,83,78,228,141,175,126,163,238,147, -142,103,0,197,148,171,153,215,51,241,204,216,76,233,111,127,253,27,95,253, -242,87,185,243,246,59,89,253,204,106,246,124,254,158,236,251,154,125,57, -249,212,147,65,9,126,247,155,171,56,231,172,115,116,253,95,41,94,255,198, -215,243,170,87,191,146,15,125,244,195,67,53,202,186,44,106,121,236,235, -175,189,129,11,191,117,1,215,253,233,58,214,175,91,207,212,212,20,123,237, -189,23,111,127,215,219,249,240,161,31,6,1,255,120,226,73,246,220,121,15, -166,22,77,113,231,223,239,196,111,5,133,71,135,212,245,250,94,15,105,79, -224,5,1,166,1,55,92,123,3,23,126,235,66,174,251,211,117,172,91,183,174, -118,204,67,62,114,200,216,123,223,113,58,204,21,228,185,77,139,161,9,58, -118,91,191,191,150,100,138,97,77,249,31,79,60,201,30,207,221,157,169,69, -83,220,117,255,93,4,126,48,202,119,81,138,182,163,3,217,94,218,27,81,112, -20,21,178,85,203,110,21,239,235,142,24,20,149,175,245,198,252,92,55,149, -21,53,23,210,138,144,88,241,167,3,59,24,123,233,115,225,70,146,36,98,241, -228,138,218,239,39,39,39,121,222,46,207,227,224,15,29,204,65,31,62,168, -182,70,251,150,191,224,237,12,179,168,180,54,25,25,121,163,66,204,155,204, -226,135,27,252,38,194,129,91,254,254,148,102,175,155,14,194,209,39,185, -124,209,36,137,18,132,25,196,185,68,165,17,42,9,139,52,88,13,77,15,134, -221,122,170,178,177,87,88,225,67,49,152,66,77,169,180,83,87,21,59,225,10, -217,47,139,17,192,202,229,139,89,185,124,186,132,54,106,134,7,245,205,50, -203,83,162,40,198,50,76,252,192,31,245,66,24,222,186,121,77,125,203,87, -43,198,36,85,235,205,170,13,99,213,80,73,52,101,34,171,10,110,134,168,105, -201,15,229,116,171,146,195,13,179,132,138,163,234,230,125,141,177,190,146, -131,234,172,16,99,204,184,230,19,174,46,245,216,135,134,64,163,46,175,13, -253,255,198,113,69,233,226,166,170,26,65,98,254,138,192,152,179,105,92, -88,211,137,169,226,8,93,249,123,12,201,154,162,174,5,45,26,100,201,170, -176,255,136,54,111,189,195,64,53,120,151,163,65,224,232,177,132,106,152, -7,212,40,52,77,105,86,49,198,185,80,255,115,220,39,142,231,146,239,126, -159,43,127,249,159,236,251,218,125,107,158,0,3,81,40,81,53,91,217,28,223, -246,226,16,211,94,177,249,70,235,71,223,159,75,146,217,144,120,46,69,98, -232,249,107,24,88,45,183,208,41,16,117,119,176,198,191,155,229,149,48,239, -0,30,53,25,170,185,157,231,146,188,23,18,205,229,72,195,194,109,59,216, -129,89,154,227,204,51,154,70,213,31,71,125,229,231,53,171,105,154,12,86, -60,197,107,79,111,172,10,36,35,27,98,189,127,170,126,150,131,223,30,117, -248,81,92,114,209,247,249,202,217,95,225,240,35,15,47,184,61,10,149,69, -164,253,62,185,112,113,90,237,162,19,100,51,119,131,133,94,171,201,164, -141,179,214,173,147,69,69,51,51,81,112,228,225,71,242,253,139,190,207,87, -206,249,10,135,31,117,196,168,131,161,96,164,17,108,48,201,132,104,220, -209,166,86,63,155,120,56,243,60,23,170,65,22,117,231,203,134,247,85,25, -44,75,93,18,152,153,235,17,73,135,118,187,77,203,119,177,6,38,86,131,245, -167,97,88,87,254,44,26,114,180,170,98,46,35,42,235,74,211,252,124,116,47, -88,104,174,12,71,252,248,12,190,62,172,159,92,61,195,51,235,102,139,44, -190,5,134,133,64,225,120,1,202,116,53,235,61,238,86,50,112,85,33,225,87, -117,137,43,126,89,67,201,88,213,184,233,170,98,181,167,74,219,78,205,80, -2,153,35,132,193,238,207,219,78,147,40,106,62,169,106,100,232,101,121,62, -20,40,241,60,111,40,104,35,230,139,145,6,134,35,205,45,70,212,61,193,203, -49,175,134,15,174,54,64,154,247,82,13,212,86,179,162,253,175,238,152,132, -104,132,24,205,63,205,191,238,224,88,205,242,165,148,40,1,150,48,53,197, -82,205,183,240,141,46,204,195,75,17,227,76,15,198,5,30,98,116,243,28,187, -93,143,167,138,140,223,26,70,207,81,84,72,37,165,28,102,213,180,102,116, -163,171,77,235,161,98,96,101,81,46,174,177,230,254,196,104,32,183,0,71, -117,228,94,212,93,12,171,155,203,66,126,229,149,160,163,114,164,189,118, -222,139,165,75,151,242,219,107,175,26,169,32,139,70,68,168,26,107,10,243, -39,8,99,178,238,209,135,81,74,179,86,72,161,3,93,8,81,207,144,234,91,83, -243,137,137,5,92,222,68,99,163,173,251,179,143,134,62,58,57,208,4,198,226, -46,53,72,153,155,19,206,179,233,219,179,224,226,218,92,98,69,147,248,212, -64,194,70,186,150,212,60,30,242,197,4,124,244,225,71,216,107,151,189,88, -177,114,5,183,223,123,27,142,227,13,9,193,114,224,141,32,76,154,26,42,255, -132,245,221,130,54,246,52,130,207,177,207,179,58,237,133,226,209,135,30, -97,207,226,156,239,248,251,29,184,142,59,246,49,11,213,112,100,23,245,46, -38,85,51,218,82,67,127,123,24,115,173,162,25,120,136,90,231,74,221,174, -183,138,254,109,226,218,11,105,98,45,29,173,201,154,3,75,230,42,41,90,213, -35,150,210,79,164,102,100,85,77,40,168,101,117,101,210,39,198,154,30,111, -110,96,188,0,68,95,190,73,74,197,237,247,63,89,10,240,123,173,50,131,45, -136,112,67,251,66,6,114,170,106,8,149,14,179,190,193,107,162,240,110,25, -211,86,38,42,4,147,242,170,52,219,126,32,24,50,209,9,216,113,251,103,149, -8,128,106,182,246,149,95,253,126,136,82,10,215,115,177,76,115,204,70,82, -237,54,108,132,227,66,212,221,210,106,235,173,42,205,9,106,251,127,101, -41,106,172,10,74,149,171,173,24,236,174,67,135,184,122,182,168,230,113, -134,219,180,56,225,194,27,252,224,2,196,72,250,81,223,185,234,222,74,58, -99,175,161,13,181,122,244,88,91,144,177,57,200,64,87,191,84,106,84,99,105, -36,98,65,76,176,190,144,14,101,29,43,199,30,205,214,25,227,22,39,106,99, -108,176,131,143,75,88,74,135,71,181,73,239,77,133,154,207,3,173,122,71, -107,129,147,82,140,13,60,155,40,144,24,41,30,85,206,71,141,197,53,198,170, -97,46,20,144,140,221,224,255,153,140,175,17,212,52,67,152,241,96,227,120, -200,105,62,143,192,81,127,117,177,25,167,38,230,197,133,234,61,199,108, -198,88,28,179,201,137,186,73,9,163,28,217,49,27,251,88,24,96,12,26,86,110, -110,131,117,111,224,26,56,175,101,244,38,221,212,254,133,69,100,16,192, -13,150,10,213,180,19,86,165,62,73,115,13,91,8,229,27,19,207,40,49,58,103, -154,174,142,108,18,120,24,135,0,53,55,248,121,76,51,171,46,140,35,207,167, -1,221,14,229,101,69,13,205,84,243,220,131,166,204,76,61,131,98,196,57,84, -141,20,34,22,172,153,12,143,110,108,78,24,103,24,130,109,183,92,92,66,233, -225,28,42,139,65,101,5,180,94,110,246,218,126,85,142,102,225,106,144,141, -23,158,191,13,220,88,20,175,43,149,15,165,111,17,18,100,142,202,83,84,177, -185,219,150,197,142,219,109,53,244,203,173,181,29,52,102,85,154,166,100, -121,134,235,216,195,205,189,78,113,41,195,171,26,72,163,24,159,162,53,194, -121,165,196,104,134,173,84,221,5,170,120,159,148,90,153,75,223,27,81,223, -80,68,211,219,119,124,54,49,80,195,221,92,130,69,141,13,172,20,89,85,237, -99,220,12,87,37,79,66,213,54,247,198,202,36,234,155,172,168,242,31,84,149, -4,92,239,122,168,78,250,65,116,95,127,124,106,33,155,250,198,34,83,1,105, -107,78,123,149,44,86,213,143,39,20,181,205,93,85,188,5,74,235,58,85,35, -66,13,29,202,84,101,235,110,202,31,52,90,42,69,109,64,138,49,91,66,61,119, -87,245,61,186,62,228,148,24,243,217,114,97,47,117,148,170,22,147,245,219, -36,84,35,187,81,11,239,171,235,227,245,229,230,62,174,47,103,147,209,130, -104,204,53,69,245,142,138,77,108,238,141,149,97,228,138,69,35,104,20,155, -180,88,18,11,166,177,162,162,122,49,54,200,90,224,50,171,254,225,85,105, -107,85,140,239,129,171,155,80,165,115,92,45,232,31,89,119,42,165,186,138, -251,223,64,195,67,81,38,22,3,65,171,134,100,201,248,231,181,25,107,196, -66,53,246,26,164,220,116,53,169,118,48,41,49,234,212,88,141,62,135,1,167, -26,239,39,45,106,7,27,193,234,84,99,57,22,99,153,107,77,220,136,121,130, -58,53,98,230,198,184,99,143,4,242,205,249,94,217,15,26,181,212,10,151,174, -145,236,13,238,103,99,183,87,131,18,151,168,4,75,149,235,217,148,226,172, -168,226,100,98,211,102,51,213,219,187,110,166,203,227,79,173,27,214,145, -199,141,36,161,198,129,111,212,8,115,181,72,173,2,229,212,138,185,181,201, -160,127,54,77,139,61,118,217,190,150,45,143,199,83,4,82,73,250,189,62,134, -105,12,9,29,205,92,125,124,138,208,248,197,0,190,109,214,119,25,133,166, -71,34,213,74,150,58,216,156,135,66,22,98,92,198,170,134,136,0,99,230,208, -191,138,211,15,173,93,69,153,105,140,92,68,195,204,160,26,73,12,224,235, -177,89,89,61,86,169,59,247,81,17,29,26,34,23,98,108,9,120,161,178,240,194, -48,225,184,224,72,212,33,209,6,191,160,204,184,20,163,5,106,234,159,110, -154,253,140,169,191,215,203,236,141,12,84,13,50,145,81,139,136,249,16,153, -145,10,240,188,217,142,168,157,67,115,173,84,99,234,155,155,157,217,109, -94,10,59,79,240,194,72,237,179,14,84,139,249,179,216,121,118,32,49,246, -41,171,218,211,18,99,252,223,23,218,205,106,165,155,77,132,7,243,59,211, -171,121,112,135,193,62,173,134,196,199,177,207,187,198,79,41,161,92,106, -112,126,85,131,162,190,208,136,205,121,56,255,127,56,59,99,31,75,133,52, -36,84,13,238,26,231,78,174,6,112,185,154,231,52,170,113,181,168,108,126, -149,197,85,52,87,201,17,104,115,65,50,76,101,146,8,26,203,219,40,58,218, -204,220,199,159,193,40,252,47,84,185,201,23,28,180,17,26,14,243,64,115, -35,108,238,202,93,84,243,32,52,155,0,129,64,96,205,143,111,52,122,206,133, -98,241,100,139,137,150,207,35,255,88,75,183,23,142,29,3,74,52,54,141,234, -53,8,53,111,141,67,84,180,226,235,184,168,206,254,159,181,197,82,150,45, -93,52,186,47,213,138,141,250,65,228,72,146,88,179,225,93,199,45,85,247, -198,229,14,35,15,122,52,202,87,227,234,126,213,146,89,99,19,30,66,193,197, -16,208,66,39,82,203,193,86,242,227,70,133,169,132,100,196,60,203,210,191, -178,185,171,194,227,185,80,171,27,157,192,106,228,253,205,26,152,170,176, -125,171,182,240,205,225,47,70,74,138,170,238,239,11,243,102,232,85,59,68, -213,252,173,154,7,98,173,144,201,84,173,142,89,209,111,86,149,232,191,150, -205,170,154,178,96,117,167,172,65,128,85,162,94,245,173,181,250,90,3,42, -175,134,29,205,246,152,26,192,46,134,19,95,44,68,104,26,90,10,151,229,147, -218,169,143,34,168,243,186,248,213,30,220,66,255,110,58,250,24,179,143, -84,67,147,209,158,93,22,172,105,143,219,85,212,72,38,47,42,222,239,227, -84,185,197,102,68,45,98,44,144,49,174,112,48,202,176,30,123,76,33,198,24, -90,81,67,232,6,207,81,84,54,152,242,222,150,43,248,16,126,175,174,61,130, -49,149,238,49,133,32,181,9,34,193,230,108,248,99,105,46,141,26,146,170, -67,16,131,178,228,96,176,215,183,194,18,178,22,227,146,32,85,238,128,85, -23,204,50,33,45,230,112,21,101,85,162,30,231,140,172,99,245,1,233,202,205, -159,0,0,32,0,73,68,65,84,45,42,217,181,168,162,124,205,237,125,48,191,198, -102,32,101,151,74,245,126,212,58,153,168,35,48,37,116,63,14,157,25,148, -43,199,16,108,155,85,64,177,64,242,211,8,63,70,58,15,234,53,120,177,9,106, -201,128,33,168,136,227,156,40,78,136,227,148,108,160,88,85,61,195,209,202, -117,5,99,158,159,72,82,93,180,92,87,123,194,119,2,79,91,143,138,202,244, -156,151,196,164,136,227,152,52,77,113,28,183,214,254,179,217,123,228,200, -229,139,90,169,186,225,156,90,143,42,105,66,227,12,75,9,195,193,208,120, -176,243,173,23,11,147,206,54,191,238,174,37,11,199,133,128,77,233,221,249, -235,77,2,26,204,239,70,189,108,56,47,199,213,181,7,36,148,10,140,92,43, -77,44,252,108,84,13,216,22,35,40,80,109,59,17,213,133,102,62,100,121,132, -253,50,66,162,172,6,41,170,86,203,175,180,54,213,138,219,106,100,241,20, -243,4,136,155,53,14,107,211,98,124,7,71,149,111,80,66,122,117,134,113,109, -92,10,237,179,142,208,54,167,130,49,172,220,205,30,100,243,213,202,71,24, -6,99,81,11,152,143,84,199,88,68,110,244,121,214,91,157,234,36,197,249,40, -180,98,204,52,175,247,48,140,171,195,111,18,101,104,114,58,198,252,221, -145,164,173,137,162,137,42,234,35,138,242,85,131,10,88,33,135,54,145,221, -205,94,219,254,165,186,123,35,82,173,172,225,35,212,66,33,70,136,157,170, -121,137,98,30,46,195,224,152,98,60,198,50,246,227,243,94,207,248,241,179, -169,144,109,116,128,84,91,156,234,65,67,53,154,30,116,21,149,235,224,102, -220,232,145,248,80,212,249,67,243,92,230,188,76,145,26,23,64,191,98,13, -55,129,193,34,97,84,243,212,66,42,116,160,36,39,64,8,3,3,129,235,104,47, -119,49,81,124,190,176,197,20,166,208,62,225,74,13,93,224,154,70,111,122, -113,209,226,22,195,246,171,42,172,81,221,39,26,44,243,133,138,212,74,64, -154,106,243,26,219,113,176,109,187,220,34,198,233,172,50,206,101,183,90, -27,47,123,242,149,24,173,185,87,91,33,154,153,55,133,206,187,204,165,190, -39,3,41,196,97,45,165,82,233,110,176,180,213,124,229,149,133,200,82,99, -214,30,37,37,185,148,8,195,64,25,98,20,246,85,243,96,177,197,102,60,156, -10,170,68,63,212,152,30,253,145,101,190,17,178,10,33,135,231,50,188,233, -166,137,89,185,105,98,132,37,91,205,235,213,104,150,88,153,116,74,22,198, -52,134,89,207,144,106,213,40,181,0,107,81,52,74,76,149,216,71,148,240,27, -35,56,197,224,152,250,57,51,208,161,30,188,71,14,230,142,26,195,220,21, -24,134,129,16,70,41,156,83,253,227,213,235,107,114,67,196,104,3,144,170, -250,21,40,70,76,143,148,202,73,194,144,48,204,17,174,139,239,185,56,166, -241,207,215,101,231,73,4,154,79,104,108,135,177,146,228,82,13,175,125,116, -165,158,127,73,107,244,115,52,22,109,49,82,197,31,143,12,168,145,207,168, -6,94,32,230,249,228,248,218,69,227,191,74,141,97,5,212,51,51,197,56,178, -93,35,115,173,4,202,170,154,189,139,70,17,64,85,249,67,11,243,35,148,202, -244,26,61,68,9,235,98,80,11,242,93,212,136,212,90,177,86,55,247,194,1,23, -75,162,114,5,134,89,2,79,82,43,146,66,225,132,168,104,214,243,202,242,132, -202,181,194,163,97,85,200,173,140,180,168,138,5,81,37,53,182,148,51,46, -232,156,39,28,107,212,185,70,201,181,170,137,208,212,178,125,49,156,255, -185,84,181,154,204,208,141,180,17,68,12,3,116,49,202,155,23,99,166,232, -72,95,142,170,156,83,241,140,172,60,207,200,147,136,126,36,177,125,15,215, -117,176,138,85,66,230,9,73,156,146,38,25,185,146,72,97,225,249,62,190,107, -21,208,137,36,203,37,50,137,232,199,57,150,231,227,185,14,134,208,18,135, -73,20,17,199,133,44,237,160,149,67,42,44,183,141,239,57,56,162,36,83,104, -152,71,212,180,99,68,85,74,126,144,245,42,193,24,140,171,120,22,146,56, -142,49,45,3,199,177,49,132,168,169,255,140,235,138,172,245,37,170,6,95, -64,85,111,126,131,3,92,173,205,170,202,134,45,170,189,142,2,211,50,43,193, -201,160,133,80,140,175,159,137,5,203,205,155,21,13,86,127,84,66,96,153, -214,248,144,87,53,51,78,49,118,1,172,18,12,84,163,190,43,70,42,175,99,102, -154,204,200,178,62,105,24,145,198,113,113,207,108,236,214,148,86,133,170, -120,35,87,25,249,170,70,128,201,145,25,8,203,172,0,127,0,18,153,245,181, -179,149,21,224,248,45,108,171,161,10,40,234,215,172,40,145,132,145,186, -151,168,192,191,21,24,144,113,148,133,225,141,202,201,250,27,136,18,3,219, -111,107,23,172,226,6,169,60,36,233,207,17,199,90,230,25,204,194,138,211, -0,43,192,13,58,184,174,93,222,67,213,12,104,84,19,30,169,151,61,84,61,59, -106,46,10,3,146,171,202,98,122,115,93,34,105,224,248,45,90,158,173,29,178, -196,191,8,11,45,64,133,108,90,53,149,73,159,34,235,207,176,161,151,99,183, -218,180,125,183,88,103,54,141,16,140,91,148,135,175,230,153,246,193,176, -140,49,151,49,190,6,49,234,169,173,198,45,151,186,237,89,102,228,82,96, -217,102,13,9,25,6,131,213,250,184,42,209,154,122,29,183,94,62,25,105,199, -82,57,82,41,132,105,34,148,81,62,211,97,119,8,67,57,232,218,1,132,24,69, -105,154,79,74,166,200,44,34,141,66,146,56,209,99,194,112,112,219,83,184, -158,179,233,71,174,212,152,224,168,186,222,149,201,128,80,10,33,99,226, -238,44,185,240,176,125,173,26,135,140,137,231,54,144,196,2,167,61,137,235, -121,8,99,164,146,81,16,148,35,226,217,57,114,195,195,14,58,67,89,232,1, -127,103,24,212,212,78,60,71,230,32,76,179,236,252,29,195,206,105,142,130, -113,11,174,24,7,43,170,74,103,78,101,109,21,213,18,94,161,72,39,134,181, -8,69,22,206,176,126,182,71,156,85,248,76,134,71,123,178,67,187,165,199, -127,205,117,148,18,185,105,214,225,199,225,79,106,158,226,95,21,251,177, -250,253,190,238,29,53,108,44,167,112,116,19,18,153,106,107,88,101,186,248, -29,135,60,137,136,226,178,150,161,242,84,27,200,228,58,59,83,134,141,237, -88,197,231,65,96,226,184,1,182,51,88,92,83,146,36,38,201,76,92,71,27,201, -80,169,175,140,91,63,234,209,174,170,215,241,155,80,176,208,106,93,74,74, -156,192,67,8,163,97,181,215,16,252,24,78,66,53,214,92,165,222,41,39,70, -225,210,70,112,59,56,47,85,144,234,164,212,81,168,89,68,161,77,149,130, -106,253,126,94,106,144,154,23,109,218,228,242,171,164,68,74,137,48,173, -209,246,243,26,52,77,13,94,83,170,177,89,15,199,91,157,244,81,15,165,155, -0,180,110,157,148,105,72,26,206,146,74,11,211,157,32,240,77,4,49,121,154, -163,44,27,99,12,69,168,190,129,43,200,34,146,168,71,154,59,218,49,202,44, -249,246,42,139,73,251,61,82,101,227,121,62,150,41,234,153,209,72,13,113, -52,195,173,46,100,131,32,78,209,104,25,20,117,62,198,16,201,151,57,121, -210,37,137,82,132,59,133,237,216,67,6,172,198,199,60,156,150,141,105,247, -136,195,30,202,154,192,243,61,141,146,137,2,213,169,4,161,163,13,193,149, -243,30,180,20,138,58,27,68,212,54,148,198,98,160,36,121,28,209,237,119, -137,165,75,123,162,133,239,152,101,224,180,41,113,147,127,138,133,37,26, -219,64,189,98,167,146,144,110,47,34,37,160,237,58,5,122,195,2,244,54,53, -194,129,105,86,246,85,220,103,182,219,37,22,1,139,166,2,108,195,96,196, -192,99,204,66,185,80,77,162,26,180,230,73,72,119,174,75,108,4,76,78,6,56, -69,89,3,213,0,243,85,53,36,109,116,235,139,209,169,84,187,239,121,72,210, -239,145,42,7,167,221,194,50,74,183,48,53,15,225,183,57,13,71,115,157,130, -111,159,134,36,253,46,25,54,150,59,73,16,24,136,60,33,203,165,54,104,249, -167,216,118,148,99,79,53,74,128,131,33,43,19,178,176,79,154,89,56,19,45, -44,203,0,114,242,52,36,79,114,12,187,131,229,58,35,226,163,229,174,25,147, -244,251,164,185,137,221,106,97,154,181,63,204,216,154,146,140,72,250,93, -82,233,226,182,219,26,29,168,141,196,209,118,202,113,213,200,209,128,134, -81,2,174,168,104,184,140,0,78,162,198,7,200,147,144,94,152,32,237,9,150, -76,123,88,67,3,8,221,59,111,8,163,224,251,84,81,176,202,24,87,213,146,238, -56,129,155,241,122,34,131,17,168,80,200,56,196,114,44,131,56,1,219,115, -244,224,42,78,214,48,29,92,223,41,160,134,76,59,80,25,218,225,75,201,140, -52,78,81,166,133,43,50,162,68,224,186,46,214,112,2,232,44,197,48,244,221, -147,89,74,146,36,164,210,194,243,93,28,199,168,247,27,55,196,82,22,234, -219,21,212,55,150,1,78,156,101,218,252,198,113,93,44,97,85,90,161,24,138, -16,12,23,231,193,109,168,48,229,154,176,94,157,75,209,168,205,170,249,235, -245,26,45,144,122,1,31,136,127,32,70,112,37,85,131,55,197,8,177,78,209, -96,78,254,147,117,51,33,6,30,239,204,143,249,215,234,64,101,149,123,168, -164,52,232,103,85,106,172,122,0,35,178,138,197,191,121,74,22,205,17,199, -25,194,237,224,185,129,182,163,21,32,148,133,97,23,15,92,230,200,129,155, -154,16,5,108,104,232,140,38,207,139,13,116,150,56,21,88,142,165,161,63, -89,88,251,102,49,73,56,67,38,29,220,96,2,123,96,146,82,205,162,114,89,180, -113,22,89,179,97,96,86,233,240,82,234,64,108,56,45,12,157,69,21,11,179, -148,153,134,26,171,139,155,97,106,173,110,153,105,95,236,126,140,240,38, -241,252,82,68,169,150,103,170,148,52,14,81,86,27,55,104,99,219,162,94,90, -144,245,250,173,48,76,221,105,1,160,82,242,188,90,168,211,127,223,48,138, -5,92,102,200,170,35,177,48,116,249,75,104,72,54,233,119,153,237,166,24, -126,192,100,171,133,107,233,107,206,37,67,161,37,81,33,84,104,199,60,99, -232,226,151,231,141,210,156,89,40,215,13,4,147,48,48,200,10,211,56,129, -97,90,24,131,248,70,74,242,92,151,78,148,204,136,123,93,250,185,77,107, -34,192,45,178,237,133,39,147,24,27,116,235,114,72,78,158,101,196,189,57, -122,145,194,235,24,32,115,237,133,110,20,166,59,50,39,151,121,161,180,161, -131,41,179,16,236,87,50,35,147,96,24,22,86,161,43,174,242,156,76,137,66, -211,95,146,167,25,113,127,142,110,172,240,218,2,33,115,114,165,10,121,233, -102,49,64,213,215,152,113,188,154,74,30,161,84,174,197,130,100,70,30,119, -137,51,129,229,90,24,12,90,233,52,41,86,8,129,148,82,243,143,6,25,164,81, -100,169,74,82,213,41,209,193,107,1,127,203,140,60,238,105,162,177,221,194, -243,124,204,194,228,70,153,38,206,0,45,43,146,144,114,47,211,227,75,8,61, -54,203,113,170,106,99,96,72,131,146,5,242,0,218,235,62,238,145,164,6,118, -208,198,54,148,110,111,22,2,97,181,241,23,117,10,167,182,178,206,140,82, -40,41,139,114,166,254,124,154,9,236,214,4,182,45,16,82,63,235,129,66,28, -134,81,148,225,20,50,151,40,153,234,251,151,130,229,217,8,149,35,165,85, -148,30,228,48,201,209,15,64,127,214,16,117,244,71,151,208,138,231,101,24, -24,134,89,146,102,85,201,170,85,77,230,189,40,91,107,155,220,10,149,165, -68,97,143,80,57,180,58,45,124,215,172,36,104,58,249,203,178,28,195,176, -48,12,141,0,229,89,134,84,2,97,154,197,152,204,201,179,65,121,79,63,23, -107,104,233,173,138,231,158,23,235,131,62,255,129,83,235,112,126,244,103, -177,178,76,105,23,28,199,210,38,142,149,204,78,151,23,115,210,56,34,149, -2,219,118,113,44,19,67,24,56,174,65,46,83,226,68,33,108,7,199,49,245,226, -41,170,43,142,34,79,19,226,36,33,151,38,142,239,23,22,176,162,206,180,22, -162,190,209,55,148,252,16,99,38,127,165,22,36,243,156,36,137,49,77,3,199, -118,42,28,190,1,183,192,24,169,91,12,39,166,84,133,57,71,67,54,14,85,40, -238,170,209,138,64,241,62,89,45,170,13,200,37,200,194,122,86,232,96,168, -232,231,55,48,202,118,145,226,188,85,133,209,45,132,168,3,18,133,134,115, -77,24,102,222,24,174,146,161,20,139,175,30,175,197,231,141,49,82,178,85, -236,207,80,149,251,92,225,24,52,96,3,53,174,37,75,239,9,101,176,146,37, -164,225,28,105,6,134,219,198,113,28,237,201,156,75,84,145,177,162,180,251, -96,26,245,73,227,68,223,103,203,199,13,38,112,28,161,221,171,250,93,178, -172,176,99,53,76,100,26,147,197,62,142,223,193,182,21,89,56,71,158,91,152, -94,7,219,181,42,104,182,94,192,85,113,252,36,73,144,18,132,229,225,6,83, -24,158,133,16,10,153,100,228,105,151,36,236,147,229,122,1,48,157,22,174, -223,198,52,21,228,17,73,212,215,139,164,212,139,128,112,90,120,173,73,12, -7,173,249,29,38,96,5,56,190,87,24,116,84,104,102,42,71,102,33,105,216,67, -225,98,251,109,172,129,221,168,74,201,83,141,76,100,113,170,17,48,64,56, -109,220,160,131,99,11,212,0,185,72,82,189,25,32,16,78,27,47,232,96,219, -2,149,133,164,97,95,191,174,10,4,46,232,224,250,1,134,204,73,194,30,221, -48,69,184,45,38,218,1,150,1,42,77,232,245,230,136,50,19,175,213,161,229, -22,1,160,204,136,251,93,230,226,28,211,245,105,217,130,56,236,211,239,133, -164,82,161,132,133,215,234,48,57,217,194,38,39,9,187,244,250,25,202,48, -48,100,76,47,214,22,154,147,19,19,4,174,129,202,82,226,126,143,94,175,79, -146,229,228,57,40,211,166,53,177,136,182,111,97,140,108,227,98,76,157,92, -143,77,29,70,20,220,20,41,73,227,46,115,179,115,116,67,109,251,44,133,73, -46,83,194,174,141,215,234,208,110,121,88,42,35,9,123,244,186,33,113,38, -81,166,75,171,211,97,178,237,64,30,51,55,59,75,63,182,104,77,78,210,246, -32,139,122,244,250,49,41,14,174,45,144,113,143,94,148,146,102,57,24,22, -121,174,143,239,183,218,180,59,1,174,97,148,5,164,193,66,175,70,75,20,53, -14,221,160,240,148,103,58,248,237,117,201,242,188,128,185,45,100,26,145, -70,30,182,107,66,94,4,184,104,131,42,203,54,81,42,39,87,54,142,23,96,139, -148,52,73,138,115,200,180,63,185,112,113,91,19,56,54,100,113,151,52,19, -152,238,4,158,239,214,234,244,66,232,4,45,79,35,210,176,71,154,100,58,200, -85,2,195,105,227,6,1,38,17,73,20,163,48,16,232,100,78,8,237,212,230,6,158, -158,63,105,68,22,118,53,202,171,114,173,117,102,121,216,65,11,83,36,196, -115,218,225,13,219,199,11,38,113,92,171,80,238,84,72,149,235,241,221,47, -198,119,193,241,18,150,135,19,232,205,93,37,61,226,176,79,22,39,195,77, -88,56,45,60,223,199,144,81,229,254,233,172,88,101,9,153,229,226,248,109, -108,199,208,14,165,97,95,207,47,165,209,52,183,53,89,148,196,50,100,26, -145,132,122,253,81,128,48,108,44,191,83,92,127,61,213,26,174,197,3,59,225, -129,198,199,48,162,171,4,0,121,74,28,246,232,197,57,134,19,224,24,57,105, -170,3,51,83,128,76,67,61,254,82,139,160,51,65,199,19,100,113,159,110,55, -34,53,61,218,237,22,158,169,72,163,30,189,110,143,40,149,40,97,225,183, -39,152,152,104,225,152,197,24,74,34,122,189,30,253,72,7,6,134,237,210,106, -183,240,140,148,126,119,142,110,95,35,53,150,52,108,60,183,128,214,27,1, -181,202,51,226,40,34,83,2,211,9,112,93,27,211,24,16,1,50,146,40,69,25,22, -158,107,23,144,155,170,244,252,41,178,56,34,78,37,8,27,111,160,215,91,97, -249,142,111,49,169,183,64,12,227,149,138,136,68,53,92,82,10,162,56,70,32, -112,92,103,72,18,84,2,157,129,160,244,226,43,140,161,231,156,42,118,38, -153,13,94,183,106,36,185,193,223,148,197,231,45,195,108,180,45,138,97,244, -169,148,194,52,10,217,89,157,248,96,26,86,193,97,40,142,111,154,245,214, -171,2,214,210,19,11,221,190,214,72,225,21,218,250,17,69,145,57,141,18,60, -242,60,215,117,47,211,40,251,235,161,200,36,5,121,97,252,99,136,34,242, -107,136,193,232,227,171,202,235,165,188,43,8,242,60,43,28,181,244,223,175, -145,106,20,100,82,34,6,159,23,2,178,152,164,55,171,33,193,32,192,34,37, -237,174,38,142,19,148,25,224,181,39,113,140,132,36,10,201,148,165,221,156, -124,73,218,155,37,47,50,108,97,24,152,174,135,149,36,218,73,206,107,99, -217,182,142,188,133,161,23,180,222,12,89,110,97,250,29,28,215,214,158,199, -162,16,97,138,187,196,113,140,196,193,242,38,9,252,140,180,183,145,68,9, -132,161,97,196,36,236,146,166,10,211,246,113,39,218,120,162,96,148,27,2, -153,246,72,122,49,82,20,159,15,20,178,63,67,146,27,152,174,134,29,85,58, -75,220,79,80,118,128,235,249,152,194,172,117,219,105,31,241,144,164,175, -237,51,237,118,11,203,178,48,144,58,235,143,34,164,176,177,188,41,236,150, -34,239,205,146,230,2,203,247,49,137,136,187,250,117,219,155,194,246,37, -89,56,75,154,155,88,158,143,109,41,210,254,70,178,220,196,116,39,241,91, -86,225,188,86,140,113,1,105,127,150,185,80,98,249,29,90,190,167,203,26, -82,145,197,125,122,97,142,29,248,56,102,145,29,9,65,30,233,205,221,176, -44,68,18,50,19,42,76,219,99,98,73,27,35,11,153,217,216,35,207,53,73,210, -204,122,204,205,204,209,207,77,252,246,4,65,203,70,169,30,177,48,48,68, -78,220,157,165,159,72,76,219,103,98,113,128,138,123,204,116,19,12,175,77, -167,237,14,157,202,70,217,238,163,4,135,44,207,245,64,51,140,194,148,201, -192,118,91,116,90,218,51,30,183,69,187,229,225,22,153,141,48,5,105,119, -150,141,105,142,105,123,116,166,91,180,146,30,179,115,33,89,174,145,11, -203,16,24,195,249,23,211,155,75,72,98,133,233,79,176,200,119,177,12,69, -110,73,210,220,192,109,235,227,107,107,80,3,179,200,64,161,33,142,35,170, -68,212,18,214,85,185,68,162,215,135,97,146,98,154,152,174,139,153,196,40, -211,199,242,218,216,174,85,212,142,99,146,238,44,73,36,49,29,171,64,2,173, -33,31,218,178,61,76,145,144,68,125,178,76,96,186,109,108,207,67,200,89, -50,76,132,208,168,77,166,138,205,202,117,27,137,65,49,254,194,24,37,44, -44,111,138,32,128,180,63,67,150,27,152,94,128,69,68,220,155,37,73,77,44, -191,141,227,7,24,204,146,73,7,195,54,81,89,143,52,138,201,177,176,188,69, -4,129,230,86,100,185,192,244,2,76,19,148,178,177,28,143,60,139,81,182,131, -97,15,144,76,109,134,147,68,17,185,112,138,191,175,107,213,105,110,232, -123,97,164,196,221,185,98,254,77,17,4,146,172,175,231,135,233,181,176,29, -237,35,109,37,49,88,62,150,219,46,208,143,130,156,150,245,136,187,33,18, -11,211,153,196,247,115,178,222,28,57,69,57,76,37,100,189,25,210,220,194, -244,38,9,90,230,112,238,11,97,150,254,28,148,26,22,85,201,216,42,57,90, -35,94,170,64,71,52,202,32,227,62,115,115,93,162,36,71,197,9,113,87,32,76, -143,86,103,130,78,96,107,98,45,18,37,65,169,132,238,92,76,146,42,44,111, -130,105,223,193,80,49,113,44,193,10,152,152,14,104,69,179,108,156,75,11, -158,133,68,70,61,102,230,122,36,56,120,254,20,75,38,6,101,241,130,184,170, -44,140,60,37,205,12,92,47,192,178,92,123,36,245,7,73,150,36,196,81,130, -68,103,222,182,109,20,208,144,134,128,210,40,37,83,6,174,231,96,15,160, -104,85,214,254,210,36,38,137,115,112,92,60,199,194,20,198,168,42,42,21, -85,163,74,115,177,24,221,239,71,117,12,138,243,77,211,132,60,151,248,190, -143,105,90,181,90,154,102,234,234,56,116,164,63,80,13,152,188,163,18,20, -3,88,95,155,84,24,35,212,161,1,92,90,234,218,23,84,176,92,67,206,166,161, -161,102,163,96,146,140,246,74,10,140,2,142,29,36,212,98,4,220,21,122,97, -96,188,58,132,0,29,88,84,34,146,92,74,148,204,245,125,16,96,25,230,120, -42,126,177,209,155,3,22,181,40,41,135,84,80,5,211,168,15,248,90,103,29, -20,102,22,69,112,146,197,164,225,156,230,88,180,59,218,50,82,153,40,39, -33,207,65,184,1,166,138,137,123,61,77,160,241,2,44,83,161,146,24,169,108, -189,152,56,22,66,37,100,113,68,174,28,236,86,7,219,113,74,88,77,37,164, -253,46,105,10,102,208,198,118,237,194,175,71,32,164,206,140,116,61,188, -141,235,120,152,22,200,56,70,74,19,203,13,48,73,245,231,165,141,211,106, -105,206,9,69,251,165,202,72,195,46,73,24,161,236,22,158,31,96,154,138,60, -234,146,103,38,182,63,129,227,217,144,245,137,251,33,210,8,240,252,2,250, -20,85,178,155,66,101,125,226,176,71,38,29,156,86,11,219,178,128,84,251, -86,135,49,202,106,225,6,1,150,41,201,163,30,121,110,96,7,1,134,140,73,194, -4,236,0,199,15,176,140,156,44,234,147,231,38,86,48,129,227,152,200,100, -150,52,78,192,158,196,178,44,253,247,141,129,190,131,36,9,187,204,117,99, -164,59,73,224,185,216,3,68,53,139,8,227,88,7,37,166,164,55,179,129,220, -106,209,114,20,73,63,6,211,195,148,57,73,170,176,59,19,180,125,7,75,72, -226,180,139,18,6,182,235,97,201,148,126,183,79,34,60,38,23,79,210,242,77, -84,220,5,101,224,123,54,50,234,17,69,57,86,187,163,73,116,121,196,92,146, -162,76,143,86,43,192,29,97,237,55,117,201,234,140,247,1,211,88,84,249,51, -105,74,20,165,72,211,103,162,211,34,40,236,165,81,25,97,111,142,110,47, -134,194,163,220,20,146,52,79,145,194,198,115,29,61,47,115,125,60,153,37, -132,253,12,203,14,232,76,5,120,78,49,150,210,144,94,156,34,45,159,201,226, -248,77,210,94,217,170,41,134,18,220,85,66,234,160,126,58,212,231,175,182, -155,168,156,60,142,145,202,193,105,119,244,24,70,128,76,200,162,144,44, -23,88,126,7,67,133,100,210,41,160,231,132,28,31,199,130,60,238,147,43,23, -183,211,193,118,77,84,50,71,166,76,44,199,129,172,175,3,197,86,7,215,117, -168,147,228,51,178,168,75,210,255,255,104,123,179,53,201,113,36,107,236, -24,0,174,190,68,102,245,204,39,189,255,155,73,51,119,210,223,149,17,238, -206,13,139,233,2,32,9,128,160,71,212,72,202,155,238,202,200,112,231,2,192, -182,179,76,64,117,69,213,245,80,210,194,78,3,156,19,144,253,29,149,48,208, -175,23,44,122,180,191,110,168,27,1,55,63,225,28,65,182,29,164,29,125,101, -95,93,80,119,151,109,253,58,39,252,250,108,107,255,8,236,136,101,92,224, -68,131,182,13,238,157,171,175,252,224,127,191,105,253,250,55,243,11,206, -10,84,237,21,2,11,230,87,248,121,215,65,41,134,29,71,88,43,32,187,59,154, -182,129,224,5,122,158,96,81,163,186,222,81,87,213,158,60,204,79,239,164, -39,90,212,109,15,41,29,156,158,225,32,33,187,11,234,138,224,150,135,239, -202,53,61,164,84,16,34,98,19,36,12,97,138,196,215,144,200,239,174,255,102, -141,15,27,48,207,76,120,77,51,108,125,195,127,252,238,160,164,240,107,138, -4,164,148,144,128,7,3,50,193,89,191,254,100,213,225,126,191,160,105,20, -4,49,156,86,80,202,51,205,132,155,49,25,7,212,29,46,151,22,100,70,124,61, -7,44,212,225,126,187,161,173,101,246,142,9,78,27,76,179,134,149,45,62,110, -87,168,70,73,136,24,113,104,13,150,121,196,172,29,68,221,162,107,26,40, -129,132,206,228,204,130,73,51,100,215,160,90,13,95,54,176,133,133,158,38, -140,26,168,218,22,141,170,252,44,62,86,172,91,17,203,28,203,19,230,0,148, -52,162,151,24,172,206,49,166,105,66,211,180,193,120,38,157,21,11,162,148, -168,115,144,154,207,8,8,156,154,91,0,162,44,234,29,209,66,82,75,91,130, -90,189,229,177,86,156,17,176,35,163,152,249,234,122,55,167,61,208,33,146, -249,253,113,44,73,217,143,4,8,80,251,247,239,189,208,220,244,133,35,144, -246,234,47,156,114,41,253,220,39,149,46,160,76,27,96,27,43,176,133,157, -191,48,141,26,242,250,23,84,237,171,106,199,11,244,60,3,213,13,74,90,44, -207,47,24,231,192,48,176,203,11,130,8,178,249,64,125,243,149,49,177,133, -25,63,49,205,132,170,191,161,174,171,157,158,198,22,110,122,98,30,53,100, -255,225,55,251,150,21,57,216,249,129,233,181,64,244,119,84,93,11,69,128, -179,3,150,215,0,212,87,223,250,31,254,64,163,67,221,223,81,215,98,199,29, -176,219,90,238,162,189,161,109,123,8,178,112,211,39,166,193,248,195,175, -171,0,59,122,132,176,188,161,185,92,188,252,241,230,180,231,179,125,199, -6,122,252,194,98,43,212,253,5,117,229,147,78,214,3,230,65,131,186,59,154, -182,133,128,131,29,191,48,13,6,162,191,66,145,197,60,70,63,39,11,55,248, -251,21,253,7,234,16,176,108,88,144,102,250,27,175,165,65,115,253,133,182, -171,61,168,198,46,24,31,15,44,162,199,71,239,43,79,10,243,90,171,39,140, -179,68,125,115,152,7,3,61,91,168,187,195,60,12,176,178,71,43,52,30,79,131, -234,227,3,151,190,134,2,224,236,130,105,156,129,246,142,190,145,112,243, -39,158,182,193,253,215,13,151,206,3,10,185,190,226,227,63,46,96,61,226, -207,223,26,226,122,199,37,180,201,231,233,137,199,34,209,127,120,112,95, -81,135,1,57,74,123,135,175,9,74,135,68,236,44,230,233,129,167,22,232,239, -107,112,39,15,228,90,94,120,252,249,194,96,24,180,44,152,30,97,222,14,129, -238,254,27,93,171,32,5,195,26,134,177,12,178,22,178,185,227,215,253,138, -74,4,103,8,182,152,199,39,158,139,64,255,209,163,141,130,123,12,99,226, -92,153,136,34,32,228,122,6,177,63,127,18,220,41,91,216,241,15,166,25,168, -186,224,155,14,79,167,178,203,3,243,44,161,218,11,36,191,176,152,6,117, -215,2,250,11,6,173,79,238,198,47,88,225,61,223,171,90,248,68,114,240,9, -173,18,11,230,151,131,188,252,66,219,212,81,81,17,240,26,203,128,249,165, -33,186,15,52,157,95,127,110,122,96,30,13,68,119,67,93,49,204,227,1,179, -126,126,69,96,243,196,50,88,136,246,6,37,13,244,83,131,194,239,75,178,176, -97,127,136,254,134,186,109,194,51,52,208,211,23,22,87,163,185,92,81,213, -10,96,11,232,23,230,87,88,223,93,11,9,7,59,61,48,13,26,178,189,66,73,141, -249,185,128,186,27,218,214,255,220,76,95,97,255,93,67,112,47,156,15,235, -61,46,79,140,143,79,104,227,0,210,176,203,11,68,4,213,222,81,93,127,65, -41,9,130,133,128,143,19,102,248,55,236,212,160,190,253,70,219,213,7,81, -185,216,66,110,83,36,76,72,69,190,27,189,225,180,156,31,93,61,180,194,253, -126,65,215,85,7,53,5,134,243,88,15,199,32,103,32,235,127,225,247,71,143, -90,248,181,161,135,7,62,31,19,230,69,195,133,207,52,162,199,95,255,234, -81,11,131,241,243,11,139,184,226,227,118,69,91,139,163,166,135,243,159, -225,215,239,5,109,37,67,236,222,14,129,5,203,162,97,33,208,244,151,80,181, -103,242,18,70,99,154,13,156,168,208,85,97,110,191,174,98,103,48,207,19, -22,13,200,186,67,91,203,76,216,33,142,20,148,113,71,35,92,82,36,14,83,118, -33,243,192,143,121,158,65,68,65,204,230,104,24,65,249,228,158,11,96,61, -58,2,206,14,136,93,202,246,50,31,93,85,93,0,36,201,204,252,3,27,50,61,151, -94,220,217,3,84,0,173,255,19,154,28,133,238,129,31,23,168,66,129,116,98, -188,74,145,226,252,138,4,206,53,59,114,70,221,154,205,50,111,157,7,54,35, -244,60,195,137,22,77,221,64,48,195,57,143,14,118,168,161,106,1,55,191,192, -234,138,254,122,245,227,156,117,25,200,42,28,132,62,72,207,179,134,168, -127,251,246,226,246,28,45,236,252,220,64,67,77,215,238,35,21,231,192,38, -204,210,234,126,63,188,230,1,203,52,194,138,14,117,91,131,151,47,104,43, -32,175,183,0,200,219,63,27,203,128,121,28,193,162,65,213,53,128,91,176, -140,15,232,97,6,215,119,212,109,3,50,51,244,248,132,65,141,186,191,64,201, -0,116,90,91,255,180,162,136,191,160,53,65,117,119,212,117,181,5,247,101, -24,253,243,105,27,144,11,32,196,113,6,213,55,212,138,97,134,1,78,180,104, -219,26,228,38,79,175,27,53,68,187,30,168,0,32,33,235,27,186,143,22,102, -252,194,50,187,157,16,224,12,150,225,133,209,10,212,215,11,186,70,108,163, -50,54,11,198,113,9,168,110,1,199,12,89,19,172,54,16,168,80,215,18,246,249, -130,147,29,46,125,3,197,12,103,103,12,175,7,102,91,161,187,117,80,118,192, -99,102,200,182,71,223,238,72,104,18,2,194,204,120,190,70,44,80,248,232, -107,72,103,176,140,79,60,7,3,209,220,112,235,171,176,86,252,88,204,49,65, -40,1,241,173,13,95,172,32,232,194,136,65,3,245,7,250,174,10,109,109,7,54, -11,134,231,4,35,58,252,254,223,238,232,226,145,21,1,82,74,8,118,88,134, -1,175,105,198,236,8,50,180,221,105,203,131,125,53,234,63,255,134,75,87, -67,38,96,58,255,93,235,62,23,82,102,103,20,222,178,96,152,109,8,226,26, -84,255,70,221,212,254,250,157,131,157,191,160,23,11,81,223,161,196,12,179, -48,68,221,66,240,20,90,211,53,200,140,48,168,60,0,77,50,220,242,130,30, -195,154,170,9,246,229,255,127,93,215,161,176,113,219,168,141,205,136,101, -24,96,69,135,166,221,215,247,50,46,64,125,243,201,239,56,248,25,255,245, -142,74,146,95,179,211,2,86,13,42,5,232,225,5,35,59,116,109,13,225,22,44, -211,3,243,48,1,205,47,52,93,23,186,40,126,93,27,45,80,245,119,84,149,244, -99,51,61,98,126,249,239,239,218,6,194,134,239,159,102,80,125,247,201,69, -216,31,93,219,64,176,198,60,124,65,79,190,83,85,183,157,79,136,183,243, -225,175,48,126,8,96,58,61,96,25,6,176,184,160,255,215,13,146,34,150,137, -172,54,170,44,145,4,53,119,116,178,129,25,31,152,231,112,216,185,117,52, -185,190,95,15,38,20,72,207,241,68,47,62,1,221,91,63,71,95,28,84,123,195, -165,173,50,99,100,63,55,95,166,17,175,105,198,226,200,143,123,86,203,49, -167,241,250,250,194,115,100,84,253,47,252,231,47,130,91,6,60,94,11,92,117, -193,165,149,48,195,39,6,13,168,123,135,186,18,145,43,195,142,39,51,203, -19,207,201,0,245,221,175,95,34,40,132,138,124,158,38,44,150,32,235,26,77, -173,124,160,218,6,234,158,103,200,206,250,214,187,35,84,173,220,205,5,200, -5,218,156,198,226,4,170,206,131,241,40,87,68,201,209,226,17,5,141,138,182, -127,185,139,194,14,108,88,244,2,107,13,218,182,219,125,116,11,145,240,88, -25,103,220,216,28,116,150,169,129,197,26,201,123,192,143,200,22,97,238, -238,105,79,180,93,203,254,49,1,64,23,117,38,248,36,241,248,222,239,247, -24,217,57,0,1,73,10,72,126,151,5,112,42,139,185,253,254,158,120,48,82,247, -181,34,125,47,54,80,98,120,97,96,171,97,12,32,148,4,172,231,124,235,101, -134,69,131,250,82,129,236,128,217,48,168,169,119,21,56,225,193,154,155, -80,140,25,176,204,35,28,181,168,148,244,232,218,48,175,178,203,19,203,248, -130,165,30,117,219,0,214,128,73,128,133,0,185,5,118,26,176,104,134,236, -8,172,39,44,102,128,153,45,160,174,62,59,119,35,230,89,131,169,131,36,227, -197,135,132,244,29,22,167,97,150,1,218,48,68,163,224,230,17,250,245,137, -197,48,68,251,129,254,210,67,176,129,89,94,208,51,67,118,45,4,22,152,217, -192,185,64,45,21,30,184,100,166,39,244,108,32,218,59,154,182,10,183,22, -208,197,134,33,91,9,44,3,166,215,23,180,118,16,237,47,180,93,5,55,127,70, -63,127,97,122,126,97,49,128,236,62,208,244,13,200,25,216,237,21,90,176, -209,176,78,64,117,23,95,197,48,195,90,141,121,94,224,100,139,174,145,187, -162,24,91,44,211,136,113,100,168,174,130,18,2,92,57,124,13,14,149,35,180, -31,61,4,79,248,52,14,80,128,153,23,204,172,49,13,3,52,85,184,252,186,160, -17,51,158,207,9,70,246,184,247,117,152,249,243,214,61,209,203,136,105,182, -16,117,11,158,39,140,203,11,159,207,9,168,111,248,125,235,32,3,176,107, -30,30,248,243,249,130,147,61,62,126,223,209,55,42,9,229,156,212,243,153, -168,139,245,216,141,209,16,234,142,60,82,216,79,230,97,141,198,172,45,160, -106,72,236,52,51,41,37,4,57,152,101,196,115,152,48,91,66,219,245,104,212, -132,175,175,9,65,135,43,28,192,26,243,52,98,178,132,186,19,176,198,128, -164,12,99,42,108,215,255,245,103,128,86,61,62,254,186,225,18,132,180,104, -61,43,87,41,236,140,144,207,236,60,232,115,28,224,208,248,153,62,123,128, -152,157,159,208,203,2,82,61,4,102,152,217,128,154,11,132,155,97,52,67,54, -29,96,70,204,218,66,181,97,140,179,140,48,139,243,160,203,166,2,244,19, -102,97,47,91,102,53,12,140,103,168,56,233,199,76,243,43,172,39,225,103, -224,227,23,150,197,175,191,174,149,176,195,19,218,136,144,60,4,28,202,232, -3,114,221,84,126,12,96,0,217,73,176,126,97,124,61,48,47,14,178,251,64,223, -247,62,161,112,190,5,191,76,51,160,46,16,100,96,102,13,161,0,55,191,160, -173,95,223,110,121,65,191,30,152,181,245,235,187,243,159,175,13,67,180, -210,39,230,227,23,22,109,33,218,223,232,47,61,164,240,224,180,245,124,168, -21,133,243,129,124,247,80,79,208,134,129,166,222,13,152,132,2,9,1,255,146, -3,43,193,55,242,193,86,123,109,131,238,186,81,91,153,253,251,253,252,243, -130,85,235,250,172,54,188,6,241,238,170,25,15,92,137,1,179,76,24,134,1, -11,106,92,42,130,53,26,22,4,33,37,36,44,140,158,48,188,38,204,78,160,233, -46,104,170,1,207,175,9,142,61,14,202,45,47,188,94,51,92,117,69,83,1,118, -25,240,245,53,194,170,30,191,174,141,159,169,207,51,12,19,148,91,96,52, -193,5,150,150,12,152,51,107,52,230,113,194,108,8,85,43,252,153,204,18,202, -24,13,29,4,105,44,8,206,89,232,137,65,66,161,110,59,212,202,194,205,35, -166,197,211,80,86,247,56,204,65,145,167,242,139,106,158,22,88,40,52,93, -58,147,79,6,234,7,9,194,178,109,222,158,15,148,25,176,139,89,160,181,143, -127,38,29,0,0,32,0,73,68,65,84,65,85,85,80,149,58,149,183,40,170,25,82, -30,185,115,90,83,38,228,18,107,168,115,170,101,236,153,94,94,173,136,214, -121,52,159,72,44,82,206,183,142,198,9,63,144,148,62,235,106,178,11,168, -121,65,40,150,68,57,181,143,115,159,128,253,161,231,90,26,28,201,201,18, -31,213,223,104,19,157,144,16,2,208,203,3,163,126,130,132,130,108,46,104, -218,11,42,233,96,172,111,221,217,225,111,152,1,16,178,246,51,237,174,133, -36,225,131,150,51,112,198,120,186,136,89,96,215,86,158,155,96,134,23,150, -121,6,147,175,130,72,84,80,237,13,77,219,121,202,28,1,228,102,232,151,134, -149,21,84,115,69,125,105,33,171,10,66,56,216,57,160,119,205,3,227,223,79, -144,106,80,181,55,212,93,7,177,174,105,187,192,206,3,224,106,8,85,163,170, -26,143,8,86,2,206,46,176,90,195,218,25,102,176,176,186,71,221,95,80,181, -149,159,223,177,243,168,226,197,248,138,188,235,54,224,27,5,37,72,103,23, -240,52,0,117,13,146,85,248,252,30,18,6,58,124,191,153,159,224,5,112,44, -161,46,161,45,105,95,152,30,67,96,20,120,180,188,172,122,84,173,111,241, -74,225,159,159,213,19,230,197,130,90,21,104,110,129,97,162,53,166,105,129, -147,21,250,174,71,3,131,215,226,32,68,131,254,126,65,219,41,152,73,67,18, -48,207,15,252,249,95,3,170,186,69,223,223,241,171,107,80,193,96,28,103, -88,212,232,187,22,77,37,82,1,26,242,224,62,134,133,30,95,120,217,10,149, -4,100,123,67,223,251,54,33,1,112,122,193,248,120,98,90,128,246,163,13,45, -83,58,136,116,164,162,196,251,58,229,176,214,217,106,76,127,254,13,61,180, -30,133,220,213,129,186,8,184,233,137,191,231,231,14,198,187,245,80,110, -240,152,4,217,161,191,94,208,87,14,243,243,233,89,147,50,224,138,86,128, -148,243,221,128,241,243,223,88,134,22,151,219,205,119,52,182,235,127,97, -208,140,230,82,163,22,42,51,195,74,59,112,185,134,135,99,159,88,90,253, -194,228,12,76,123,65,85,1,206,88,8,217,65,72,130,93,24,162,110,32,201,193, -56,130,168,42,192,141,88,198,17,198,2,214,76,88,68,13,213,94,80,93,186, -32,190,227,153,4,66,10,216,229,133,233,115,130,80,94,36,198,227,96,180, -87,144,180,51,204,36,128,170,134,16,53,234,190,65,213,212,32,59,64,59,177, -5,59,216,9,102,158,124,32,109,47,80,194,64,59,11,103,103,184,137,224,7, -196,18,85,31,112,34,149,63,243,216,26,88,61,195,46,11,192,10,178,170,80, -53,190,26,183,28,10,192,233,5,86,21,32,4,84,215,31,63,127,150,64,85,131, -68,141,170,171,195,156,63,36,67,118,61,31,52,102,187,192,180,55,52,221, -5,106,195,231,104,184,225,15,134,145,65,178,65,221,221,81,53,10,164,95, -152,134,23,140,113,27,15,93,212,61,154,238,3,170,110,130,242,36,195,233, -25,227,227,137,209,0,109,223,122,129,176,200,160,43,209,153,136,169,197, -214,211,96,135,105,196,108,102,152,233,137,79,246,162,87,183,91,11,105, -71,60,94,51,156,108,113,189,92,208,87,140,241,233,224,4,5,47,121,127,79, -214,25,232,233,129,47,51,64,74,1,87,117,184,94,47,232,106,5,178,206,99, -109,220,132,225,235,127,97,248,148,168,154,139,31,5,52,10,130,194,57,227, -44,216,46,24,191,254,13,61,181,232,186,22,244,95,143,255,147,221,202,73, -140,57,157,171,29,33,86,106,3,7,208,65,224,220,9,223,238,139,127,78,97, -46,155,170,59,164,32,177,216,207,55,175,98,15,74,105,116,148,187,116,214, -98,24,7,40,169,80,55,77,0,72,148,52,172,56,155,145,103,135,70,110,131,22, -27,170,228,58,48,69,61,67,138,238,123,109,46,136,204,133,173,32,226,19, -155,50,188,211,98,255,169,148,113,104,47,109,84,184,83,61,146,130,253,237, -170,5,144,89,88,228,10,89,7,195,181,156,248,233,220,102,243,235,255,89, -0,126,137,181,138,116,193,34,56,252,154,88,249,218,209,156,48,48,18,176, -242,93,225,255,13,56,112,89,57,26,39,108,73,197,106,80,97,131,12,103,192, -61,8,225,55,238,102,25,27,104,122,219,45,236,223,79,176,225,187,61,24,38, -214,193,94,215,55,7,78,237,174,249,46,67,92,75,175,223,183,235,69,242,252, -192,209,239,102,159,15,182,88,95,28,59,27,42,39,63,134,168,187,139,87,241, -98,11,182,241,251,89,37,110,247,110,17,59,131,233,241,55,254,60,23,200, -203,111,252,254,232,54,77,139,149,107,207,240,250,1,4,246,220,89,177,126, -78,16,69,10,173,103,63,9,8,136,241,117,114,104,57,160,116,211,189,189,89, -66,7,57,78,94,231,206,20,95,167,31,221,77,95,127,227,207,99,6,245,31,184, -223,175,232,148,200,52,187,75,254,238,209,125,243,202,107,102,56,4,102, -136,16,190,59,0,191,70,118,155,233,245,103,187,12,55,109,210,172,28,40, -104,20,173,129,253,61,57,94,53,48,196,246,156,193,22,203,215,191,241,239, -199,2,234,239,184,223,46,232,194,248,146,15,178,200,56,114,166,193,129, -10,22,57,203,137,204,223,193,151,151,97,77,5,94,254,244,55,102,45,80,53, -61,228,58,175,15,107,159,4,109,246,199,188,173,177,117,108,34,67,245,138, -141,15,238,247,193,58,22,241,123,72,132,119,143,240,44,214,142,204,186, -86,61,72,216,109,108,31,172,108,19,15,129,4,73,138,38,156,206,211,57,153, -193,36,194,8,35,140,136,194,245,173,191,191,198,23,132,123,240,159,31,190, -115,197,103,133,189,178,97,50,216,121,62,254,182,143,196,254,172,92,208, -187,224,157,77,34,86,100,174,227,141,134,183,99,135,68,164,89,17,176,23, -95,127,227,239,199,12,234,110,126,125,214,98,59,27,99,85,179,131,27,103, -160,253,57,199,81,189,68,91,210,201,236,252,54,15,213,246,166,33,225,188, -242,30,249,7,16,36,156,163,103,19,246,219,58,190,116,225,223,236,248,42, -25,18,132,120,190,239,176,217,194,144,215,161,161,255,122,254,55,31,59, -215,39,202,79,145,59,206,161,157,156,185,229,196,124,241,213,176,35,21, -182,201,205,55,82,2,252,86,251,38,251,158,48,78,35,140,209,184,92,46,129, -114,80,54,33,224,130,144,25,225,204,94,54,211,187,202,60,35,232,68,248, -202,174,52,185,117,49,35,179,81,220,20,200,142,76,160,92,40,230,127,96, -20,183,207,221,165,58,114,221,15,62,162,116,34,206,147,93,239,201,189,30, -189,125,178,78,0,149,164,65,113,252,204,98,191,37,21,23,42,154,200,172, -114,149,177,117,47,101,246,145,49,47,25,5,155,181,196,185,43,168,81,197, -213,215,97,68,18,185,217,149,228,124,57,53,138,56,131,77,100,75,216,31, -106,243,3,243,228,5,112,234,186,10,56,130,1,142,46,104,175,215,72,24,40, -219,15,148,25,205,4,28,193,252,252,27,255,254,51,67,93,127,227,95,119,223, -65,32,58,1,104,190,251,239,111,219,71,231,2,53,199,202,213,193,90,131,105, -120,225,245,24,193,205,21,31,191,174,158,214,70,7,53,253,76,66,246,248, -247,116,106,53,155,239,226,163,205,72,218,33,56,55,177,73,93,252,28,172, -51,152,135,1,207,199,0,110,174,248,245,235,138,102,149,88,203,204,136,40, -159,250,49,29,177,62,185,12,38,237,133,207,14,66,118,48,195,39,230,105, -134,104,127,163,109,27,47,74,244,157,103,232,255,208,78,186,44,38,88,98, -12,164,96,219,228,108,253,206,177,142,115,23,78,138,84,127,57,210,177,63, -138,215,189,191,232,52,2,240,193,172,246,205,186,97,191,62,231,241,133, -103,178,62,35,73,236,188,86,165,147,149,152,109,114,66,198,18,75,246,236, -30,19,81,184,222,243,120,240,46,126,29,141,173,0,64,149,164,26,147,174, -110,172,218,201,148,105,243,22,220,189,147,161,55,69,114,124,177,244,103, -80,220,142,245,225,41,69,121,83,2,4,11,68,15,171,97,140,70,211,182,144, -129,98,118,80,126,203,43,206,196,91,254,196,111,58,112,151,41,225,129,103, -69,119,140,106,223,178,252,48,119,143,163,12,101,67,5,202,64,134,137,20, -97,234,86,250,211,63,177,114,153,16,20,4,36,10,243,14,62,25,88,196,89,69, -244,14,57,145,186,220,21,0,19,204,1,23,162,27,229,91,110,95,102,136,185, -225,225,222,143,226,166,180,203,112,114,108,82,195,137,230,125,140,246, -167,232,179,41,191,231,220,236,57,241,96,140,76,39,178,124,140,14,239,154, -83,141,165,252,29,16,14,186,230,5,113,195,12,10,177,86,20,218,183,52,167, -9,154,36,68,213,161,238,254,133,182,169,182,170,114,219,180,148,251,78, -231,159,231,199,30,109,3,207,85,22,84,54,226,40,217,197,30,233,231,56,211, -70,166,67,43,61,117,14,72,48,157,206,96,25,31,248,124,205,48,162,195,253, -175,255,68,23,104,141,37,99,16,62,61,202,8,37,230,124,218,208,79,245,135, -185,104,83,91,54,28,57,155,105,177,51,208,227,3,127,158,51,172,236,112, -255,235,63,130,222,135,72,163,21,142,58,240,148,124,103,198,192,201,108, -184,41,193,192,172,227,162,9,86,91,200,246,23,170,174,217,133,184,232,7, -129,250,39,129,252,96,249,202,5,228,113,24,141,196,62,14,84,24,175,150, -10,61,202,198,129,116,244,74,223,226,0,165,52,200,56,112,210,183,185,11, -101,2,173,121,222,196,59,83,42,87,36,101,131,229,245,192,159,215,12,43, -91,220,255,250,15,116,17,181,144,40,147,16,203,142,59,2,125,167,176,156, -137,23,115,89,164,140,83,91,210,183,68,147,44,226,209,150,20,113,209,170, -9,132,80,193,83,30,12,40,85,153,43,80,177,19,218,212,225,133,114,50,207, -62,92,92,225,159,29,142,148,172,4,183,214,96,154,38,16,17,186,190,207,182, -125,193,216,182,208,58,59,219,13,107,194,145,248,178,199,163,122,66,108, -67,12,118,236,69,100,136,124,165,21,89,28,156,85,20,59,63,54,195,27,32, -167,159,253,32,192,115,16,193,33,120,170,214,217,138,200,44,95,247,228, -10,145,101,109,180,60,178,204,147,78,192,117,111,244,111,145,155,157,16, -165,118,235,63,46,39,226,3,116,147,243,141,17,126,148,204,64,87,84,127, -158,212,236,86,171,145,47,52,241,121,229,137,212,6,248,76,43,61,30,53,157, -37,201,101,143,251,245,124,243,66,51,251,45,40,144,18,89,176,224,148,3, -142,204,74,146,119,69,68,176,167,128,137,74,226,91,147,176,51,47,226,211, -96,113,124,6,185,72,77,50,72,91,129,107,206,194,176,191,55,37,191,235,4, -208,1,30,203,56,49,101,122,179,118,142,76,26,78,188,232,74,137,202,161, -99,179,237,51,3,99,125,203,187,18,148,185,205,165,153,45,167,44,211,189, -189,123,144,147,143,172,96,99,43,226,164,200,241,163,8,33,85,201,83,235, -255,167,170,61,195,37,241,129,83,188,5,253,51,31,245,99,129,153,90,151, -174,45,244,221,239,158,147,174,64,110,35,77,63,190,248,200,241,145,75,137, -97,185,248,101,23,222,175,148,158,57,128,180,224,137,3,209,161,32,57,243, -63,62,180,235,82,0,23,21,192,224,244,46,91,35,78,100,142,139,71,124,148, -52,110,93,205,213,229,116,247,131,167,211,103,87,210,135,63,6,253,124,65, -31,127,33,150,99,77,186,165,239,90,183,12,56,182,152,198,9,32,242,2,22, -82,101,251,43,157,212,167,14,91,137,37,71,70,95,136,242,191,24,253,158, -119,162,131,63,243,102,248,145,91,216,190,105,81,31,70,8,156,182,160,74, -173,220,119,104,122,14,243,200,117,78,67,197,236,60,223,172,199,234,44, -193,66,100,249,216,183,135,10,50,128,66,86,205,31,183,67,250,65,37,35,208, -82,237,155,131,16,153,249,96,246,147,67,61,142,124,253,66,195,156,83,239, -228,221,141,16,135,10,57,121,183,185,19,96,98,180,243,190,211,189,127,12, -33,111,17,81,172,117,29,169,162,1,101,12,200,219,195,143,207,50,222,55, -255,255,167,21,224,33,101,253,254,235,191,251,216,99,15,176,212,178,124, -231,170,133,108,159,241,233,192,239,251,152,120,108,123,114,201,48,227, -144,14,148,0,179,148,86,198,28,31,198,5,3,153,172,3,153,188,251,36,185, -255,135,76,155,127,26,237,179,0,31,95,51,149,24,64,200,14,242,28,128,144, -196,74,58,220,227,62,118,59,73,228,78,10,138,211,148,51,238,20,20,176,88, -233,131,71,42,84,148,156,251,241,40,44,246,43,161,66,183,171,176,145,56, -159,217,100,174,244,111,36,200,191,219,43,7,191,188,24,31,144,21,71,98, -107,56,108,116,52,142,14,57,78,193,214,188,97,157,246,51,175,132,146,167, -56,82,248,230,29,101,162,15,49,107,43,157,163,198,93,163,224,18,183,104, -56,102,52,117,237,209,141,135,252,161,176,121,147,189,21,91,64,148,230, -54,239,55,63,211,62,135,117,198,109,179,239,213,108,224,16,60,176,235,83, -243,234,60,196,233,56,60,102,229,229,99,58,122,227,240,197,214,109,18,184, -101,180,124,102,95,181,247,200,82,25,98,138,22,73,228,123,31,175,207,163, -55,125,212,223,221,90,93,153,86,63,118,225,158,29,116,23,57,177,29,58,194, -171,211,60,178,49,10,37,246,135,201,153,72,156,52,101,55,79,230,232,32, -73,88,17,188,126,254,14,42,220,157,215,162,224,158,177,60,14,155,152,50, -147,70,162,195,6,127,135,7,57,100,17,148,54,168,15,163,177,172,99,182,222, -48,241,73,245,157,183,221,207,92,8,75,17,248,157,169,219,161,226,72,222, -204,219,175,47,119,206,168,60,14,60,100,36,156,40,217,189,75,22,184,104, -93,123,158,98,240,25,90,130,10,179,185,232,204,32,202,44,149,243,246,249, -118,140,242,97,237,196,123,103,3,35,51,237,35,152,221,14,60,121,120,255, -48,7,251,31,252,201,138,129,164,109,28,73,88,211,241,236,56,208,159,137, -179,81,4,82,83,22,100,247,184,158,175,249,152,23,165,170,232,236,13,175, -125,72,222,110,133,226,132,26,71,61,19,223,209,139,141,190,104,51,153,218, -106,149,204,216,113,219,179,7,160,18,31,23,242,22,107,163,129,3,83,50,41, -32,188,187,183,114,53,159,166,215,148,141,160,143,149,163,64,222,62,89, -219,184,81,59,229,72,227,34,28,158,26,225,24,240,56,189,177,28,108,70,133, -98,112,159,191,250,255,53,198,219,204,214,117,229,121,214,209,33,121,132, -203,228,13,68,42,142,156,226,202,49,246,118,78,90,216,113,192,141,213,234, -4,5,137,67,145,246,92,15,245,13,246,77,188,46,40,74,59,33,84,58,1,233,93, -107,30,97,44,160,130,126,60,202,11,142,10,99,147,164,207,75,219,187,246, -60,250,61,216,81,38,57,144,124,198,49,205,221,46,128,233,104,24,74,68,229, -17,111,33,23,143,67,197,33,56,114,250,121,28,205,62,233,128,55,64,49,108, -112,148,120,100,186,202,73,64,221,156,174,142,125,147,120,210,119,8,232, -197,30,68,118,182,115,124,194,112,14,94,224,228,62,54,132,244,187,74,157, -127,176,118,190,107,235,126,103,69,76,135,29,147,181,20,82,216,26,255,36, -152,100,212,184,242,223,167,137,247,207,134,206,241,160,141,223,134,5,58, -36,7,116,92,235,145,165,109,34,149,17,13,16,98,90,45,231,152,155,28,243, -130,40,248,243,122,135,209,72,52,224,128,24,121,91,255,77,230,248,255,186, -114,63,62,149,212,105,124,7,11,199,224,232,4,136,204,165,215,27,159,67, -156,116,71,19,217,111,196,72,240,239,17,199,49,232,52,237,214,164,177,135, -75,251,36,251,223,181,136,220,247,26,71,133,4,71,137,53,109,99,176,211, -163,166,228,173,66,177,43,232,190,34,57,26,177,241,143,82,54,206,38,40, -37,36,10,21,61,160,69,190,192,57,18,63,89,145,160,165,140,170,220,206,205, -74,244,216,71,61,252,85,92,157,238,51,110,42,30,88,236,28,230,121,134,148, -18,117,93,39,136,78,100,110,239,229,108,158,179,32,67,233,209,145,211,232, -226,185,239,33,71,97,88,99,61,101,139,142,126,189,96,74,81,217,135,202, -134,18,252,215,225,118,249,251,99,209,25,27,232,38,133,13,149,31,216,73, -25,24,186,40,217,98,95,23,94,146,147,165,56,183,13,185,203,135,139,12,65, -143,114,105,146,253,48,224,66,101,198,135,162,240,88,247,165,57,106,58, -58,202,205,5,83,171,221,83,245,3,47,6,20,5,245,196,35,62,223,168,84,46, -28,56,186,131,29,33,205,135,80,196,165,194,35,235,144,36,169,232,6,100, -76,243,50,94,71,8,204,105,65,133,147,25,122,233,176,45,253,47,189,249,111, -46,84,2,217,123,225,195,49,77,111,42,246,119,1,153,128,19,52,205,17,58, -247,79,90,205,20,93,19,3,223,166,31,84,108,131,112,244,110,87,22,14,35, -115,26,63,155,23,243,33,42,237,18,183,68,91,215,108,115,40,67,42,141,74, -244,131,196,142,254,63,136,237,169,36,219,214,146,167,184,138,15,193,47, -142,215,57,226,189,232,119,157,44,37,222,207,155,168,168,216,146,195,24, -159,92,236,36,173,133,68,90,68,165,197,34,231,233,90,250,243,184,178,90, -247,28,81,130,45,162,216,143,131,211,58,134,40,107,171,191,29,117,209,158, -180,31,18,254,184,168,224,31,108,151,188,231,153,164,94,137,180,73,86,197, -174,21,124,161,197,140,29,193,188,117,39,34,180,49,33,155,141,36,252,178, -72,209,41,32,37,207,202,56,166,125,225,115,180,80,152,29,22,189,128,153, -209,52,45,206,224,9,252,102,126,159,4,165,172,253,202,103,224,146,245,5, -36,29,170,176,40,165,55,13,72,42,199,188,152,221,90,80,105,203,169,212, -177,163,159,244,222,214,231,19,92,229,132,146,56,85,248,204,83,215,168, -191,196,235,66,142,158,71,222,229,200,139,255,61,35,201,16,14,28,63,227, -52,48,149,32,24,49,12,139,66,176,245,158,197,92,192,150,242,143,114,30, -14,217,47,81,166,70,200,132,216,184,104,237,160,48,237,98,62,91,70,30,173, -124,42,244,127,14,201,18,82,240,204,58,30,224,172,83,84,170,43,185,212, -66,219,144,201,40,2,241,118,118,8,197,133,223,81,70,152,78,122,226,116, -118,152,151,214,28,101,173,122,62,180,152,114,199,4,42,37,109,197,118,251, -73,59,28,199,3,57,175,195,232,164,189,127,182,66,182,195,207,217,96,39, -186,190,159,149,75,236,178,144,79,167,150,181,113,133,181,231,254,148,38, -116,81,209,146,167,43,201,62,99,58,142,210,214,202,142,9,201,33,201,71, -204,53,147,55,146,178,133,10,255,159,21,235,126,239,25,109,96,172,3,187, -132,146,177,83,184,50,252,9,209,14,14,76,216,37,113,48,203,254,125,17,25, -206,116,196,106,48,227,253,12,37,86,52,77,223,216,170,34,200,180,167,116, -244,166,233,152,62,188,40,0,175,154,25,155,247,69,170,113,16,23,71,135, -169,21,83,130,165,72,206,88,166,211,188,138,179,21,126,104,200,69,159,71, -97,174,145,112,65,104,47,94,206,22,132,218,51,85,159,87,184,32,156,34,99, -7,180,32,39,202,46,58,172,201,147,244,41,39,191,22,25,244,188,181,151,139, -179,230,13,209,189,191,122,173,53,244,162,81,213,53,148,82,169,42,220,155, -136,120,16,173,229,60,155,138,168,126,140,100,254,149,64,227,34,156,132, -11,106,113,36,87,65,136,104,254,188,38,39,137,19,1,101,70,5,41,64,134,178, -142,249,105,251,116,221,236,142,225,156,245,186,223,244,141,40,125,174, -84,23,243,194,163,160,200,49,133,37,222,99,57,155,34,2,139,176,101,88,231, -127,95,200,181,85,199,9,24,195,63,171,93,189,79,8,32,54,17,99,167,49,143, -35,166,201,66,180,23,244,125,3,69,239,120,201,229,213,79,20,69,60,32,177, -41,78,105,155,17,231,61,136,98,184,85,84,34,8,222,136,24,121,74,116,172, -2,98,67,25,196,192,188,221,35,58,161,137,173,2,31,193,103,219,11,170,120, -209,16,118,222,59,27,34,18,146,138,168,153,113,109,204,206,134,123,149, -59,160,178,164,77,80,66,241,242,55,221,216,131,40,18,103,109,198,104,124, -21,81,226,142,131,175,84,143,142,223,244,144,217,90,88,231,101,130,189, -136,76,74,179,59,75,212,143,8,153,210,122,9,45,80,167,49,79,19,198,209, -66,180,61,250,139,128,2,67,79,3,94,79,13,217,117,232,47,45,212,161,68,160, -244,62,55,61,144,104,112,20,81,146,168,180,54,143,224,159,173,59,185,117, -67,147,34,37,173,122,157,5,156,3,32,1,25,3,211,153,97,166,23,158,47,227, -175,191,111,130,222,250,63,8,238,129,186,56,79,35,158,143,39,38,43,80,95, -238,248,184,122,151,186,21,112,67,49,34,132,210,194,143,136,138,85,98,94, -68,37,207,12,145,23,7,197,5,11,109,207,135,169,220,132,161,100,48,150,174, -18,78,31,242,65,239,131,222,236,9,226,93,223,130,41,21,179,217,146,27,138, -18,240,173,147,150,119,131,25,49,157,119,143,97,200,112,11,148,150,150, -76,40,73,26,28,57,30,28,121,153,68,159,185,254,156,247,243,131,10,241,109, -11,240,96,134,113,6,122,154,176,24,160,234,218,160,71,191,202,248,45,152, -231,5,198,216,160,184,35,160,218,22,93,91,67,9,81,104,144,83,2,143,207, -29,19,51,115,117,228,86,62,198,106,44,243,2,85,85,94,62,177,240,166,232, -208,46,60,178,115,83,84,95,52,52,138,99,215,250,176,41,189,20,142,102,109, -32,68,202,76,133,93,29,103,174,49,223,63,251,113,89,111,255,253,144,154, -195,152,65,5,11,216,183,187,152,249,64,3,216,148,234,226,115,39,122,55, -156,97,34,56,30,40,70,159,101,23,194,215,191,25,47,13,180,119,194,253,10, -84,145,65,152,115,192,252,2,62,31,132,105,1,28,128,186,3,126,127,0,93,11, -8,48,204,50,225,245,26,96,160,208,116,23,116,109,5,185,29,242,94,49,11, -76,224,160,255,157,168,26,158,140,32,41,31,151,22,128,62,196,62,177,48, -65,15,220,44,218,7,102,217,161,185,222,189,77,45,165,218,105,20,145,236, -55,8,15,229,211,104,42,234,245,123,237,241,193,251,193,75,111,141,43,165, -5,27,239,70,103,172,66,117,245,14,113,132,152,78,183,134,27,235,181,183, -135,17,172,58,84,77,7,25,123,59,36,73,14,54,197,46,56,7,7,10,222,214,244, -207,168,85,148,157,132,7,132,48,21,38,221,145,169,71,218,251,56,252,113, -122,198,235,243,19,207,5,232,62,238,184,118,45,20,209,161,41,254,110,220, -76,40,103,51,235,111,153,217,107,130,107,86,104,250,11,186,166,242,103, -152,179,112,243,140,121,89,32,235,6,173,99,175,21,240,102,180,119,96,103, -36,149,19,71,149,39,29,166,161,241,51,229,232,243,138,52,76,102,56,6,204, -76,152,158,192,107,1,218,59,112,235,224,157,192,8,222,108,41,24,129,201, -186,70,235,216,203,17,159,20,4,165,241,141,51,11,198,231,23,6,35,208,92, -126,227,214,40,40,169,188,164,114,146,211,228,7,97,94,161,132,80,197,57, -157,52,233,127,38,207,145,168,48,95,163,2,253,30,71,49,25,100,195,160,124, -234,206,217,33,86,98,237,228,224,242,53,96,50,86,161,34,164,78,218,156, -81,196,179,150,192,102,134,182,22,13,68,199,118,44,29,11,206,109,167,211, -217,43,43,136,175,113,76,91,207,68,189,162,88,115,92,123,254,58,21,204, -140,113,214,176,206,194,24,134,168,90,84,149,15,238,12,7,51,14,24,13,65, -213,29,46,45,129,205,132,97,242,102,31,84,224,39,37,228,168,53,35,36,74, -4,93,152,114,212,31,39,192,167,121,158,65,130,130,167,113,58,247,58,54, -11,41,217,160,156,76,202,178,74,20,216,45,66,147,4,148,143,205,192,85,173, -206,248,42,202,171,213,137,180,33,25,209,40,120,163,186,80,54,215,162,3, -29,48,153,134,208,59,100,48,96,131,134,178,140,91,243,69,196,115,236,138, -195,89,27,25,145,18,213,113,241,83,246,184,136,142,51,252,101,4,166,137, -64,61,163,111,67,112,95,219,70,22,120,252,13,252,249,2,236,122,219,21,208, -182,64,219,120,69,51,61,60,240,53,104,176,106,113,187,93,80,75,138,164, -106,1,214,47,76,175,17,144,23,212,215,222,75,144,198,156,239,252,16,97, -126,35,237,75,251,198,133,131,153,191,188,155,150,236,209,92,254,66,125, -35,64,143,48,44,2,112,147,178,118,43,23,102,94,25,175,154,83,59,223,196, -156,211,142,152,95,35,28,213,168,187,62,200,190,106,152,101,132,94,28,68, -215,123,157,112,177,91,140,198,6,63,206,121,247,45,166,6,117,219,237,90, -7,116,146,7,50,0,251,196,240,28,193,242,130,230,210,99,187,45,198,57,144, -147,75,153,38,31,142,234,34,197,249,48,156,121,91,58,194,204,35,198,105, -1,117,119,180,109,19,186,58,156,76,202,83,200,213,119,163,230,184,229,20, -214,215,75,131,171,14,247,91,143,74,137,221,45,89,16,64,14,198,58,72,120, -9,219,83,231,138,140,110,186,179,78,163,74,113,173,232,50,37,69,138,198, -154,27,47,25,59,149,105,59,157,34,202,153,155,9,143,39,48,27,96,158,1,209, -51,186,142,160,100,20,216,130,105,138,182,222,238,84,9,42,143,103,79,31, -150,195,252,250,196,160,5,234,235,7,174,173,247,30,207,225,145,28,75,211, -113,174,34,153,3,177,51,128,4,83,210,9,162,72,228,140,215,191,163,84,220, -236,32,198,148,96,180,142,182,67,153,230,101,38,149,146,119,74,178,156, -53,238,160,100,227,211,184,240,139,25,17,28,179,191,98,22,75,54,214,93, -245,12,54,20,63,113,66,45,143,9,149,244,86,145,165,212,49,11,141,124,206, -43,178,117,244,186,59,178,34,198,121,133,219,80,211,226,32,148,23,180,183, -172,80,119,181,207,172,137,225,150,217,27,88,212,61,154,90,66,176,133,182, -14,16,53,154,85,80,131,78,4,74,169,132,88,204,128,121,216,109,71,215,63, -90,123,115,132,190,235,163,96,156,86,238,249,162,163,147,201,59,229,83, -15,226,8,33,93,242,151,227,4,225,232,192,190,133,43,104,87,89,75,229,140, -118,165,190,98,28,162,211,204,154,233,77,21,31,173,57,41,4,190,87,46,201, -82,224,40,227,142,57,254,91,91,170,112,105,137,154,219,122,168,57,192,90, -191,212,68,3,252,254,223,25,170,34,95,89,48,224,44,195,25,96,26,8,127,94, -12,209,3,191,175,64,173,8,66,249,36,0,78,99,122,62,240,28,29,212,229,134, -107,95,163,90,239,199,89,95,237,154,25,122,126,194,112,131,166,146,32,103, -193,188,106,180,135,99,113,213,220,167,157,75,180,234,168,251,100,211,121, -89,254,72,139,154,131,249,131,15,170,191,209,215,141,103,63,80,176,57,37, -225,55,135,51,190,51,181,97,111,132,215,46,167,0,170,68,218,5,17,66,134, -67,55,140,174,86,157,108,223,234,128,158,159,208,220,160,189,244,144,176, -112,65,148,72,52,191,112,105,40,213,233,14,186,227,219,212,192,44,48,243, -11,22,53,234,203,5,42,56,213,109,153,252,170,197,189,38,7,214,194,217,5, -102,246,118,159,77,37,65,236,157,196,182,202,201,186,125,221,7,45,238,77, -71,159,35,31,128,109,221,122,173,238,4,19,115,216,85,187,207,128,181,54, -114,89,244,247,231,151,136,7,133,90,102,64,117,248,248,143,11,84,163,32, -131,17,39,59,7,227,52,92,124,240,49,65,172,58,219,65,16,200,90,11,7,218, -158,189,140,246,3,187,5,211,235,137,215,224,32,175,55,220,58,223,85,76, -114,27,246,107,67,74,5,169,36,118,233,71,28,193,117,217,88,139,183,150, -46,37,227,187,100,12,199,124,200,177,143,17,108,255,193,26,232,204,12,140, -131,223,91,29,1,218,1,183,59,161,150,89,190,225,86,139,218,10,74,137,51, -90,254,9,110,208,65,79,47,239,246,215,125,224,210,72,8,226,29,91,148,117, -250,98,220,1,31,192,151,153,222,67,209,139,59,197,200,239,141,180,92,165, -50,58,255,15,46,61,101,61,145,173,90,230,52,57,164,236,115,78,244,167,82, -140,25,197,114,177,37,196,115,230,21,144,196,156,20,131,145,112,63,86,23, -199,164,193,194,223,106,226,196,248,31,206,37,149,183,196,168,208,249,96, -62,135,219,16,160,154,182,134,211,51,6,67,144,85,141,90,138,96,129,26,230, -149,97,110,104,45,99,153,151,208,94,109,209,40,17,209,6,210,47,78,112,68, -177,113,73,66,27,64,74,89,130,71,169,207,243,140,74,41,40,165,210,99,101, -155,63,164,227,174,224,8,28,178,74,42,150,41,59,102,40,157,155,108,115, -227,168,193,182,203,242,250,185,247,198,85,141,16,249,73,134,18,29,212, -187,113,5,101,2,62,28,137,38,208,49,201,65,150,249,134,85,99,173,5,17,65, -178,72,75,253,51,128,77,34,223,23,155,193,164,191,30,119,28,182,191,119, -192,42,200,199,32,192,0,195,23,227,207,195,87,23,82,17,174,191,25,247,198, -255,219,233,201,248,251,11,24,23,2,59,192,50,32,52,193,46,192,245,23,240, -209,132,224,254,250,194,99,116,168,250,59,238,151,6,91,103,209,105,152, -215,39,166,225,229,3,4,9,16,105,140,122,240,110,88,173,4,130,254,1,179, -133,89,24,85,167,224,172,129,229,214,7,79,30,177,140,26,36,37,216,205,208, -179,1,201,11,218,219,29,85,229,176,188,62,125,59,188,251,64,221,214,27, -39,116,51,150,113,6,86,143,208,195,11,139,214,155,83,34,213,31,232,46,61, -132,125,98,26,23,8,169,192,110,129,94,52,136,26,52,247,223,168,219,218, -39,6,102,132,30,6,232,197,255,190,101,128,234,43,186,190,133,116,35,198, -199,23,180,182,160,234,142,246,122,67,211,200,109,224,202,206,194,154,17, -203,240,130,214,102,55,228,169,174,104,47,23,40,114,176,203,11,243,16,198, -10,97,45,139,250,142,238,210,1,203,3,243,240,130,177,235,142,151,112,102, -4,169,14,109,127,69,85,17,172,30,176,140,131,183,183,5,131,170,43,186,235, -7,234,90,250,235,215,3,150,241,5,189,24,127,93,178,66,213,223,209,116,61, -68,86,205,39,244,36,6,172,94,48,12,15,12,175,17,75,80,124,107,174,31,184, -223,46,104,200,66,15,95,248,122,62,49,76,14,44,59,220,127,127,224,222,174, -6,35,6,243,243,11,95,79,111,165,203,236,224,88,64,181,87,124,124,220,112, -105,37,172,54,152,95,15,188,198,1,179,1,72,182,184,125,220,113,191,182, -16,236,29,196,230,199,3,95,19,163,238,174,248,184,180,16,135,222,11,195, -89,3,173,13,88,54,168,85,176,194,62,180,230,35,31,187,32,174,229,172,11, -103,67,188,245,4,148,10,54,198,198,29,241,97,68,144,66,97,115,66,222,246, -185,219,192,91,107,245,175,26,160,151,128,153,128,207,25,168,47,64,223, -0,50,171,93,57,92,63,100,131,90,85,30,31,197,121,56,202,100,88,194,133, -57,51,99,28,70,88,213,225,210,53,161,237,207,137,144,13,146,42,56,210,157, -143,104,195,28,5,229,178,212,241,158,28,81,204,237,143,203,50,138,29,2, -105,15,136,103,56,134,164,31,203,105,209,82,128,95,150,41,85,185,243,79, -218,209,141,65,195,140,51,169,178,212,203,100,7,85,70,42,153,177,110,8, -33,9,211,56,209,113,160,34,122,140,179,174,33,71,194,87,188,41,237,113, -2,58,229,114,157,200,128,98,107,176,44,22,144,21,218,70,237,109,45,222, -29,164,150,101,194,203,41,52,77,131,190,82,193,149,9,169,82,79,150,214, -157,113,55,115,109,94,10,129,205,90,139,69,47,32,18,104,154,102,95,182, -193,225,9,96,8,33,119,64,212,186,166,182,68,36,84,187,20,209,76,24,187, -13,36,0,137,224,144,68,188,139,14,172,78,84,1,204,68,161,165,228,77,207, -188,41,134,181,22,0,249,86,171,72,37,223,216,33,200,214,50,148,80,7,228, -28,59,134,229,208,230,103,117,80,35,99,14,178,183,32,143,103,136,86,170, -148,62,176,27,231,143,25,37,100,145,191,108,131,228,169,20,18,185,42,21, -51,195,178,55,190,150,235,239,175,27,120,197,95,88,95,31,9,10,38,32,142, -161,103,96,24,129,69,135,121,122,11,180,45,65,50,195,44,132,113,36,204, -51,195,122,19,53,72,73,16,194,207,221,187,14,16,78,99,122,61,49,44,140, -234,114,199,173,223,131,251,102,49,91,55,80,214,130,156,130,234,174,168, -43,17,158,217,4,61,60,49,79,22,178,174,252,187,87,50,180,70,43,84,149,2, -185,9,203,244,130,49,21,234,170,130,170,21,8,3,44,19,224,102,44,207,193, -251,33,247,31,168,155,42,45,166,156,129,91,6,44,203,12,71,21,212,229,55, -46,176,48,211,19,198,10,200,182,241,30,246,207,7,140,171,188,45,113,93, -67,208,0,199,222,15,221,205,207,96,171,89,67,245,191,81,247,6,102,122,65, -91,130,106,59,8,193,112,44,81,213,29,0,13,86,10,82,10,191,175,156,1,47, -3,230,217,127,127,213,255,70,13,11,59,61,161,157,132,108,123,8,140,88,158, -51,156,216,63,223,206,47,104,43,160,218,11,84,37,193,220,162,170,13,224, -42,84,253,21,74,170,0,124,119,128,30,49,63,38,88,170,160,218,95,168,59, -13,61,14,176,161,85,227,204,8,51,189,194,253,254,133,203,117,55,76,34,169, -14,2,51,9,154,220,57,232,241,137,175,97,1,100,131,251,191,238,80,193,217, -138,148,12,216,29,137,170,187,224,226,0,231,102,184,218,99,118,68,144,106, -21,36,80,247,119,252,110,47,176,122,198,52,206,48,80,104,175,23,116,10, -152,159,95,24,22,239,49,255,241,187,135,153,158,120,142,6,54,0,245,192, -22,243,240,8,246,173,222,54,86,162,32,96,227,44,204,60,99,97,137,186,239, -209,170,227,220,221,89,231,215,88,184,111,231,22,12,207,39,158,207,17,58, -184,16,250,7,34,209,116,87,92,250,6,88,94,254,231,206,237,170,100,36,80, -183,87,92,111,55,116,181,220,106,89,107,173,63,108,165,8,213,88,132,237, -48,140,97,36,112,3,220,47,128,202,171,57,103,160,151,25,51,43,52,125,143, -70,230,234,142,62,89,242,231,147,220,178,10,107,45,172,213,88,166,25,22, -13,186,235,21,173,202,77,124,114,218,85,132,236,95,125,40,56,13,106,105, -113,146,151,248,148,206,243,183,98,57,85,139,44,234,234,83,185,80,225,172, -107,180,119,136,227,51,252,68,15,135,178,214,113,6,49,57,112,178,182,28, -133,14,158,64,73,0,229,104,174,73,233,40,243,88,77,211,15,101,119,249,212, -42,41,101,44,70,109,252,44,119,161,66,1,168,230,101,129,38,129,182,169, -189,121,60,49,236,50,99,94,52,44,252,1,37,196,132,201,88,56,246,158,231, -196,41,5,107,123,216,185,30,110,70,110,65,36,197,137,88,215,156,217,171, -213,57,246,115,119,33,247,150,151,16,16,121,117,27,101,85,66,16,28,60,18, -154,10,45,30,111,8,19,218,178,33,125,225,140,123,43,105,15,124,62,33,240, -73,131,8,1,86,74,25,181,149,82,9,66,34,132,159,239,243,253,36,41,21,128, -228,194,12,53,90,5,82,168,237,115,25,222,18,119,165,197,65,16,20,201,50, -152,102,77,4,132,204,100,151,210,63,219,253,69,85,5,71,59,53,157,241,250, -247,89,181,192,237,6,88,75,88,36,227,118,3,90,229,59,211,212,48,110,31, -4,199,132,175,5,232,111,192,71,15,63,55,127,97,31,87,0,0,32,0,73,68,65, -84,148,128,132,195,252,122,224,49,26,200,246,138,126,173,28,226,249,184, -91,2,216,173,69,125,189,160,174,148,71,150,187,9,243,56,194,58,133,250, -210,130,237,2,70,11,165,66,107,76,181,80,164,97,166,17,142,122,180,191, -110,168,42,192,190,62,193,168,81,213,10,110,126,193,146,242,158,243,77, -149,181,211,52,244,248,9,189,56,80,117,65,211,117,144,194,64,191,6,56,174, -80,117,61,36,38,44,195,11,78,93,209,93,110,168,20,96,134,47,48,75,168,182, -1,235,23,230,197,66,212,23,212,109,11,41,44,204,107,246,35,174,254,138, -170,169,252,171,208,15,204,198,0,178,67,211,119,254,128,135,198,50,124, -66,107,6,213,23,180,109,11,73,214,127,63,106,84,93,3,232,17,139,177,16, -213,37,24,43,89,232,193,127,126,213,93,61,56,207,141,208,203,12,75,29,234, -107,143,170,14,70,25,206,251,178,47,227,4,174,58,212,77,7,33,44,236,172, -125,50,211,94,160,20,195,14,15,44,179,5,213,55,72,165,2,253,50,5,100,240, -1,58,21,218,143,102,194,244,122,98,210,18,221,189,242,45,121,37,2,243,38, -218,27,206,96,158,22,176,106,112,185,246,168,149,128,136,101,165,137,97, -230,1,179,118,16,237,13,31,109,13,37,45,198,175,47,188,70,11,217,93,208, -54,222,211,220,24,11,22,117,72,180,0,243,250,194,99,48,144,221,21,151,174, -130,148,84,216,34,12,214,35,158,175,9,78,118,184,181,85,104,239,167,195, -59,33,101,80,169,11,193,209,1,170,233,112,175,186,228,96,39,161,80,41,9, -192,193,82,31,126,30,137,46,75,5,165,42,72,41,32,121,119,18,147,129,121, -67,201,129,77,112,6,120,61,9,19,1,183,43,208,20,146,15,214,195,118,253, -215,182,194,209,122,98,77,76,54,52,41,230,225,137,175,199,0,77,53,46,247, -27,110,117,181,91,139,210,142,57,162,156,215,26,233,204,111,65,57,71,10, -159,81,91,34,52,61,115,201,209,45,43,246,223,56,208,109,250,245,76,155, -216,19,101,148,232,184,77,159,104,183,156,193,52,146,206,3,167,204,170, -173,24,220,187,188,113,55,152,50,173,128,245,247,185,8,198,76,1,190,252, -237,116,149,139,244,210,4,71,198,92,228,94,16,103,73,2,211,193,76,74,25, -11,212,93,131,170,242,129,212,46,51,166,73,3,170,69,91,43,40,225,176,56, -130,64,240,166,45,216,213,113,172,112,196,116,64,62,35,151,163,165,52,11, -210,218,187,196,181,1,45,156,91,152,138,92,5,44,201,218,104,71,37,114,1, -180,135,213,99,153,18,32,103,44,108,147,25,60,193,91,138,203,61,96,243, -201,240,156,232,208,106,39,206,113,9,101,74,68,252,42,51,229,150,160,146, -71,32,193,39,253,28,74,193,126,7,215,52,36,178,129,187,185,67,129,95,90, -194,58,2,96,3,204,3,65,131,209,223,128,190,101,40,177,91,29,154,5,24,12, -80,247,192,199,21,104,171,157,166,102,150,17,195,48,131,213,21,151,190, -69,45,210,107,118,118,134,30,30,208,70,162,190,94,80,169,80,121,154,217, -87,229,182,70,213,42,192,77,48,162,67,165,4,88,15,112,178,71,37,29,236, -52,131,171,43,218,238,2,37,125,53,173,23,64,54,45,132,155,48,59,9,117,189, -163,110,234,221,6,136,1,64,195,140,79,232,25,144,151,59,170,186,129,224, -5,102,120,96,94,128,234,114,131,132,134,30,39,176,186,163,235,123,72,201, -176,211,19,70,19,100,215,65,176,198,178,56,200,254,142,186,174,33,88,67, -15,15,204,161,83,81,5,71,42,103,70,44,211,0,75,29,154,254,2,165,36,192, -58,96,2,214,239,175,33,156,198,50,124,97,214,132,170,111,65,188,192,24, -134,236,239,168,170,26,18,6,122,248,196,60,3,213,229,142,186,173,65,102, -130,158,190,176,216,10,117,223,163,170,214,224,174,97,230,7,166,215,19, -198,50,200,104,184,233,11,144,53,84,115,71,115,105,33,149,0,88,135,78,149, -129,29,62,97,245,140,246,250,129,170,174,138,230,190,180,9,10,135,125,78, -210,39,4,243,130,231,191,255,23,166,186,195,253,215,29,215,182,218,3,131, -155,49,190,70,140,70,162,251,125,69,191,117,7,253,58,176,203,132,97,24, -49,179,68,215,95,209,53,10,196,22,203,240,192,231,231,19,139,5,132,158, -49,124,133,107,16,53,186,143,43,250,70,128,151,1,207,97,6,170,27,46,93, -11,37,202,166,65,48,11,134,97,192,130,26,215,75,143,182,18,25,169,47,58, -76,137,192,236,96,150,17,143,63,95,24,22,19,179,48,65,170,193,229,118,7, -243,130,233,235,129,97,49,190,179,24,62,78,84,13,250,219,47,220,20,37,158, -21,20,203,68,199,113,210,1,243,224,247,80,247,11,232,170,76,248,45,236, -135,97,24,177,112,133,235,165,71,163,100,249,252,72,230,162,18,117,219, -162,55,26,207,209,193,57,236,163,195,136,96,159,2,37,115,154,122,42,0,117, -212,158,47,245,131,115,189,106,222,186,161,200,176,120,40,1,236,146,174, -4,29,192,216,156,181,236,143,218,45,111,12,197,40,7,211,69,167,115,140, -192,167,242,44,254,180,255,29,181,253,115,166,216,182,87,50,200,247,41, -84,34,54,120,123,211,140,32,68,212,189,12,227,80,18,215,82,168,26,223,242, -100,14,28,229,25,86,52,232,154,10,149,96,56,99,96,52,67,86,13,234,42,180, -200,169,144,141,229,116,179,8,176,118,72,156,54,46,177,207,246,230,101, -134,82,42,80,226,184,48,151,40,203,128,174,8,100,250,1,216,44,6,183,128, -207,70,233,30,7,64,130,64,82,28,244,241,147,3,47,81,120,139,184,203,68, -111,221,56,241,6,32,179,182,243,136,66,215,224,76,5,165,228,250,20,227, -144,153,19,62,239,70,7,65,220,158,63,16,43,64,12,88,179,82,222,8,143,145, -129,14,104,107,130,92,147,4,102,184,133,240,249,0,172,4,126,95,25,109,29, -29,155,236,231,166,147,171,112,237,253,161,154,102,17,22,118,250,194,172, -129,170,191,161,174,84,184,14,11,51,125,98,49,10,85,219,67,232,47,204,44, -81,213,53,104,254,130,33,191,78,221,248,0,171,11,234,254,10,69,22,110,122, -98,158,52,208,116,80,202,97,126,248,224,188,5,61,182,96,23,146,196,229, -137,229,53,129,59,31,136,201,78,152,95,159,88,102,134,186,252,66,85,89, -44,95,3,88,246,168,47,87,40,193,224,217,87,186,162,233,160,132,198,252, -24,129,246,3,85,83,3,118,198,242,250,196,180,48,170,254,215,54,231,103, -167,161,135,47,88,116,168,251,155,167,52,49,124,91,254,53,129,219,240,253, -102,198,50,252,193,60,49,170,235,47,212,52,99,124,77,224,230,142,182,174, -65,118,198,60,252,9,193,253,23,234,182,1,177,103,5,76,11,161,238,47,104, -170,218,99,39,156,175,246,150,215,12,106,127,227,218,117,126,150,187,169, -84,197,212,67,5,217,253,133,75,61,99,121,252,193,226,120,235,80,121,251, -89,63,182,1,224,177,48,57,106,73,53,232,62,254,3,205,69,227,245,231,223, -248,50,46,1,78,129,29,220,60,224,57,104,200,203,29,125,91,5,228,186,159, -181,155,105,196,115,50,16,85,139,123,215,109,116,75,182,51,94,225,249,254, -231,199,37,36,134,216,218,223,190,18,182,24,162,245,213,168,84,27,98,191, -84,139,121,124,226,105,36,186,203,21,151,182,218,250,119,153,231,53,118, -61,111,1,89,119,184,255,85,227,122,96,170,175,224,72,135,74,53,184,21,142, -106,33,165,239,112,101,220,211,189,8,222,49,75,188,0,159,79,64,94,128,75, -231,231,238,169,79,141,197,50,190,240,212,10,221,229,134,107,163,126,110, -78,66,4,54,6,80,29,234,186,14,93,139,35,250,122,29,97,102,4,223,212,199, -30,199,145,117,66,171,45,217,147,83,170,254,83,104,58,3,239,100,105,41, -135,117,242,129,158,154,138,196,159,153,31,114,241,251,57,163,211,110,182, -214,185,223,125,110,230,149,209,99,19,7,210,66,197,158,90,205,150,61,233, -19,220,60,167,134,172,57,229,47,30,84,172,137,216,250,174,232,196,10,90, -85,149,88,37,110,96,181,198,226,24,66,250,57,165,54,6,122,94,96,169,66, -219,70,11,101,107,157,68,70,4,156,130,21,144,81,227,98,229,187,237,133, -57,198,178,44,96,7,52,125,147,101,165,92,36,17,100,242,198,5,44,60,163, -104,153,186,113,26,35,171,209,36,9,228,208,174,11,115,250,18,165,34,6,66, -80,106,139,202,84,112,94,79,27,17,71,244,105,14,244,9,8,98,18,116,218,9, -203,80,49,105,187,41,18,105,41,21,248,148,80,243,82,196,41,91,194,248,98, -252,249,155,49,91,192,25,246,192,57,38,124,17,32,126,19,186,138,193,154, -240,124,50,70,7,92,238,132,190,73,129,61,78,207,152,23,7,170,26,212,85, -102,151,200,12,187,12,88,230,5,16,55,40,65,112,142,65,48,190,10,215,12, -209,180,128,29,161,13,65,245,45,96,38,24,167,160,218,10,172,253,204,184, -234,106,144,29,176,232,17,70,3,162,185,163,110,5,120,250,132,181,12,146, -14,108,22,24,7,15,148,116,18,82,58,216,105,130,1,161,150,4,59,126,133,46, -2,65,246,191,80,43,134,121,189,96,92,133,230,118,129,18,14,118,30,176,140, -19,156,186,163,173,8,102,28,161,89,160,150,4,55,126,97,121,125,249,153, -123,255,23,154,174,221,130,187,153,190,160,23,11,234,124,144,182,134,32, -20,195,76,35,12,19,26,41,96,135,79,232,215,3,139,37,168,203,111,212,21, -160,135,9,214,249,235,51,211,122,125,216,62,159,216,193,233,23,244,172, -1,113,133,148,4,199,14,196,194,87,254,203,4,227,0,37,171,189,162,16,222, -206,152,200,5,60,203,250,46,252,126,119,144,168,186,59,170,74,250,192,108, -23,188,30,127,240,249,48,80,221,29,191,126,95,209,40,17,10,0,7,203,30,88, -198,204,176,90,195,144,68,123,185,160,173,4,156,181,112,214,130,205,130, -225,57,97,134,196,189,86,16,161,37,204,118,198,248,124,97,152,44,100,127, -69,93,87,32,182,176,86,64,10,127,22,44,214,123,218,139,149,45,0,10,123, -210,175,50,59,77,219,250,242,93,163,163,27,29,59,131,121,120,225,53,106, -200,238,55,174,93,117,176,162,77,165,120,57,162,28,73,72,37,247,128,123, -128,63,203,221,19,35,54,108,224,8,205,29,37,68,28,1,206,216,1,206,18,172, -1,134,7,160,1,220,26,15,153,216,165,67,216,3,16,135,151,79,144,186,95,184, -246,245,161,64,62,39,209,88,44,227,128,201,16,154,155,199,51,32,227,230, -231,108,242,181,189,159,83,206,98,154,24,229,156,57,112,10,146,230,35,170, -158,139,20,225,236,176,164,119,234,76,41,166,61,87,196,227,111,26,155,251, -191,203,120,120,57,181,59,118,9,205,103,172,121,226,18,221,219,238,21,17, -33,26,56,237,102,112,228,73,79,39,181,123,226,128,199,92,224,118,68,218, -46,73,245,30,129,197,9,69,57,73,53,143,51,168,109,80,43,175,182,37,9,48, -203,136,231,66,16,170,66,211,118,184,84,158,218,130,92,232,33,241,2,62, -122,228,50,197,237,131,163,12,169,54,62,137,240,115,119,177,7,226,130,165, -5,138,220,88,58,195,144,30,23,76,20,93,115,7,66,222,84,218,156,7,182,37, -158,173,92,232,97,211,222,130,90,81,163,7,47,240,132,73,243,134,207,235, -175,192,57,79,181,34,33,2,137,232,109,63,167,36,63,151,180,159,40,74,93, -249,184,158,14,25,169,209,140,241,5,104,19,50,87,197,80,0,84,205,104,47, -132,186,2,200,17,150,9,24,53,208,93,8,183,14,16,34,202,51,217,66,47,19, -22,203,144,173,244,216,128,68,12,196,128,157,129,179,14,118,249,196,96, -38,168,238,138,74,50,156,118,160,170,135,36,3,107,28,68,215,65,178,134, -113,2,178,150,96,243,133,101,88,96,25,176,95,35,72,214,80,205,13,205,173, -9,224,70,3,43,60,144,205,204,95,24,204,0,89,117,168,250,43,234,70,1,118, -134,3,3,110,193,242,122,66,213,53,72,181,168,155,22,85,83,129,151,23,12, -43,212,215,27,42,41,192,198,207,184,89,93,209,116,45,192,11,28,59,192,105, -44,47,192,169,10,80,53,170,186,69,221,181,30,120,202,14,108,53,204,52,195, -26,3,154,7,88,117,245,213,186,155,1,118,32,167,49,15,95,80,210,255,126, -93,183,168,219,22,2,75,224,30,46,88,134,135,191,62,217,160,110,122,212, -93,231,117,1,96,192,214,63,63,183,124,97,176,35,170,238,3,77,235,147,11, -63,72,155,161,31,255,23,52,17,72,213,168,187,15,84,181,0,47,79,76,195,0, -27,0,149,16,10,162,190,160,185,254,11,85,21,58,103,108,161,231,9,195,168, -193,178,65,119,105,80,5,143,122,107,22,140,143,79,60,134,9,218,121,144, -100,213,116,184,94,255,66,215,42,176,158,241,120,124,225,53,46,176,43,53, -14,2,207,47,2,238,119,116,146,177,60,63,241,245,28,48,91,130,92,102,60, -5,65,169,22,215,143,59,186,70,65,80,133,74,0,195,235,111,252,223,47,223, -117,168,187,43,238,183,43,218,218,119,127,180,158,49,187,160,11,65,50,75, -144,1,103,23,76,227,11,227,228,32,187,15,92,174,13,84,73,212,39,83,96,35, -78,207,253,45,192,101,157,201,195,102,140,18,109,142,2,79,98,136,197,128, -213,132,231,23,227,53,50,140,243,197,134,3,240,250,4,232,3,184,180,128, -2,195,217,5,227,48,96,152,12,100,255,129,235,37,194,175,124,235,189,195, -48,227,11,195,176,64,180,55,63,22,161,115,208,25,199,10,142,76,121,61,180, -129,205,142,210,16,251,248,97,67,203,103,110,121,251,4,148,226,28,40,161, -122,37,99,3,58,53,85,71,110,43,246,227,206,104,234,14,20,29,235,145,142, -70,108,41,30,205,218,55,214,64,73,111,62,186,222,196,246,154,56,19,129, -194,153,75,69,58,113,223,52,84,248,96,79,125,144,210,202,245,213,248,93, -139,2,160,255,227,235,191,120,69,197,19,51,92,200,208,87,33,126,18,180, -11,218,32,205,110,40,75,130,233,100,196,187,53,52,214,108,150,1,107,77, -48,146,241,232,124,162,115,165,6,122,27,233,178,191,219,22,84,12,230,57, -206,155,146,121,115,52,108,163,24,253,86,50,174,47,181,223,144,82,228,79, -45,95,223,40,139,197,47,183,168,7,150,187,195,33,111,15,196,22,142,148, -138,247,100,226,84,7,125,34,14,84,55,187,103,166,241,89,40,229,222,190, -117,142,96,29,64,146,195,193,19,233,6,216,5,195,215,31,124,141,14,237,253, -55,62,46,117,104,171,98,235,220,120,0,163,221,0,144,16,98,23,8,217,24,12, -4,41,2,131,194,44,48,203,211,87,244,141,159,215,123,176,160,4,201,160,197, -192,171,165,172,219,56,195,190,34,81,32,233,5,79,152,29,152,189,76,236, -38,55,12,231,43,178,240,115,207,47,23,91,37,228,137,245,225,239,216,211, -69,93,184,206,157,82,20,56,227,219,249,25,228,104,57,176,50,132,231,157, -51,28,216,218,176,46,69,192,141,48,152,124,199,200,175,193,192,135,39,242, -93,36,231,175,143,68,100,200,228,12,108,204,3,22,106,255,44,103,177,210, -246,55,243,12,225,37,165,215,107,74,150,84,192,153,196,124,110,231,172, -167,38,146,244,172,17,218,249,182,206,218,16,184,67,75,122,229,164,147, -191,111,103,156,167,226,81,4,184,21,50,248,55,56,95,225,39,70,61,254,190, -132,82,161,251,225,194,247,71,248,24,41,130,80,144,215,53,120,125,253,141, -175,145,209,126,252,198,71,95,135,249,123,24,241,204,179,159,185,179,66, -219,93,208,183,42,5,254,189,149,208,9,215,29,89,10,35,231,131,103,71,65, -10,181,222,231,174,28,185,1,238,232,113,134,181,84,160,213,1,66,2,2,126, -254,63,188,6,104,174,208,116,61,250,174,242,224,225,31,74,96,216,101,196, -235,241,192,130,6,253,253,142,174,162,131,149,122,34,252,26,7,241,80,69, -198,244,225,50,45,247,168,116,183,241,220,177,139,0,113,116,94,150,196, -170,190,111,70,28,85,221,74,162,43,39,98,122,167,1,111,55,208,74,229,94, -15,243,243,195,50,57,170,241,237,70,57,123,209,251,51,228,60,222,179,225, -19,163,54,78,101,170,81,192,124,29,58,187,209,12,126,21,141,96,120,197, -39,193,50,113,234,162,36,211,45,125,114,228,104,195,56,6,189,248,189,108, -160,3,135,105,154,33,133,244,109,58,138,249,130,101,219,14,206,152,237, -167,74,244,171,120,65,116,65,28,181,232,145,131,31,152,225,140,245,104, -118,41,163,14,77,118,29,148,106,231,49,101,155,253,173,220,236,187,214, -252,202,119,95,105,110,111,192,150,148,103,86,140,220,121,98,199,61,208, -1,76,147,219,162,198,46,76,36,35,105,204,136,171,207,148,102,112,36,189, -128,13,231,34,140,4,64,8,8,17,11,49,164,200,126,134,240,21,191,16,209,33, -67,200,1,187,98,139,157,14,118,122,64,59,9,213,222,60,104,174,32,229,187, -85,12,91,176,37,32,183,165,38,1,1,129,189,17,21,104,5,219,119,203,116,42, -70,2,144,81,149,65,2,144,4,9,42,180,5,35,14,53,9,144,20,135,197,64,16,16, -42,118,20,76,57,178,62,201,22,137,202,238,70,166,142,63,74,168,125,182, -158,45,46,18,202,163,172,15,91,200,255,172,156,68,71,51,69,162,141,42,118, -208,252,38,128,148,66,133,178,211,27,145,128,172,36,100,50,129,140,240, -51,36,32,34,117,185,226,232,85,8,72,177,126,6,151,127,46,119,99,147,253, -126,44,244,243,129,199,108,64,85,139,123,223,161,78,76,153,142,188,106, -74,218,204,41,53,42,158,209,82,108,74,148,59,91,101,237,105,142,170,209, -60,70,18,8,74,29,139,11,255,113,22,203,227,11,207,217,2,85,135,219,165, -11,74,124,63,23,184,242,35,147,17,227,98,33,59,185,171,245,113,44,173,187, -239,199,100,146,28,39,252,188,131,14,143,1,51,99,234,240,137,14,123,236, -215,144,107,216,100,16,185,131,2,37,50,153,28,202,124,105,215,132,36,103, -2,252,32,144,82,136,5,28,5,236,88,145,143,207,108,20,226,120,71,199,57, -64,220,165,254,137,190,227,1,75,197,124,114,158,164,170,122,249,185,76, -239,84,115,214,22,61,231,173,91,236,165,255,26,39,41,135,129,199,227,2, -162,83,185,87,196,173,174,232,251,61,37,206,161,235,90,8,146,200,33,21, -84,32,238,211,187,12,136,50,209,104,78,211,129,68,34,49,75,215,136,177, -85,130,71,209,5,46,91,246,81,6,6,137,145,248,57,37,240,187,151,29,212,234, -72,188,153,41,229,107,138,11,179,164,117,163,174,157,146,117,89,4,235,199, -60,51,229,200,77,46,205,132,247,131,153,169,144,108,197,242,188,25,90,66, -8,130,144,21,154,138,81,215,234,104,45,151,241,60,83,211,209,116,116,66, -176,176,203,8,107,133,71,167,215,213,30,220,57,21,28,162,8,195,0,74,207, -133,188,197,152,170,248,101,26,210,49,225,116,179,9,165,195,136,37,233, -6,113,129,135,147,210,52,118,96,83,114,131,123,149,19,123,189,208,119,30, -169,84,2,164,20,130,250,233,98,42,5,207,130,158,62,74,239,13,69,158,111, -170,52,89,82,233,231,3,80,246,221,55,159,217,213,67,16,72,86,168,107,132, -245,37,192,176,208,227,136,97,6,154,235,29,93,93,37,70,89,249,195,75,185, -223,107,231,2,155,64,11,50,224,112,233,66,169,200,195,74,253,212,55,62, -53,29,116,96,178,251,181,88,198,17,211,76,168,111,119,116,85,21,100,124, -233,167,165,110,88,239,30,95,225,140,129,30,7,72,85,163,234,107,8,193,73, -97,195,81,133,157,155,150,112,100,163,157,3,140,99,96,244,190,188,163,57, -124,52,146,77,172,168,57,39,31,81,193,200,137,10,111,63,22,182,161,8,188, -188,190,39,138,180,78,74,66,55,241,249,159,134,5,98,206,224,126,123,240, -199,137,152,15,157,13,137,35,186,24,103,84,164,31,189,58,166,195,201,72, -56,168,160,29,83,164,19,207,129,124,123,211,127,61,255,155,223,142,151, -162,67,48,241,52,143,157,160,98,29,250,92,146,53,162,178,1,94,219,125,24, -95,168,235,38,17,180,193,225,40,161,228,140,44,117,93,40,79,89,10,64,144, -162,97,115,164,86,103,141,129,16,222,6,54,246,248,198,153,207,120,214,122, -202,109,96,127,196,176,136,102,134,214,218,80,185,136,31,76,33,232,144, -188,28,54,9,103,255,20,233,166,203,217,3,224,252,31,159,183,143,74,154, -73,89,8,3,91,111,120,34,66,123,183,216,51,163,56,3,231,108,157,209,54,178, -96,231,85,116,40,8,14,37,179,47,78,233,37,73,53,26,183,240,168,44,186,196, -81,213,157,247,49,243,80,117,62,25,124,151,112,102,243,191,232,148,231, -216,230,49,202,12,57,155,10,189,13,236,223,36,141,167,90,152,167,139,235, -44,100,227,135,218,240,71,148,113,26,222,233,173,47,202,217,74,75,63,219, -227,84,28,211,182,95,136,56,24,96,5,97,170,211,235,202,246,114,178,151, -24,116,210,53,204,177,105,239,30,105,92,220,30,164,85,163,4,130,99,140, -12,188,238,5,83,160,33,231,174,129,255,224,15,179,133,51,123,39,70,36,163, -182,221,27,100,175,170,9,185,124,235,186,247,168,212,179,230,204,90,155, -115,140,85,26,192,249,164,99,94,94,212,199,119,69,7,131,153,159,157,143, -20,233,230,199,69,64,82,165,103,73,1,211,94,168,229,115,240,117,108,202, -111,83,96,0,153,204,108,57,165,45,10,187,239,29,238,216,138,59,73,146,232, -219,106,189,116,78,208,127,61,255,251,56,97,57,224,229,178,192,151,251, -149,228,127,157,253,247,250,191,214,90,204,203,2,118,14,125,127,57,204, -102,222,29,44,244,238,92,58,172,184,60,211,76,129,30,219,38,115,128,35, -134,36,145,72,17,230,187,181,120,224,211,249,89,250,179,51,152,83,140,14, -232,29,144,20,7,189,95,228,165,105,94,213,70,217,122,4,10,140,113,45,56, -29,29,164,25,26,209,81,206,185,188,76,143,173,235,116,196,129,12,144,200, -201,250,202,252,109,10,95,114,2,38,64,174,101,192,209,92,25,231,58,4,249, -225,149,168,81,229,205,194,55,179,208,82,197,158,252,95,202,218,190,132, -195,137,147,39,36,239,130,55,126,176,193,127,240,39,23,43,61,26,61,31,125, -25,191,195,195,208,65,242,243,124,212,134,31,5,247,210,25,193,89,227,245, -7,57,205,15,158,65,62,50,218,104,72,197,67,53,158,53,115,18,0,147,89,254, -201,161,192,239,64,98,252,207,223,37,126,244,94,120,31,71,68,52,227,24, -183,20,83,232,40,199,254,100,174,159,155,207,69,2,72,222,53,220,153,232, -187,105,115,241,77,228,123,142,11,35,163,211,38,213,1,27,193,137,255,86, -108,31,205,209,185,241,147,196,61,119,189,139,207,100,202,136,25,63,91, -139,148,246,219,57,61,39,183,84,240,232,153,118,60,183,203,58,187,16,177, -121,124,50,110,205,56,134,180,2,209,120,167,84,128,179,196,142,207,235, -130,149,239,206,142,209,52,109,18,108,114,188,100,92,140,31,90,203,81,2, -146,246,191,35,225,2,138,156,221,162,170,105,207,136,24,108,28,172,179, -187,226,224,246,79,115,84,74,104,15,109,124,98,28,101,27,113,210,249,124, -115,74,59,235,96,3,215,152,74,34,52,7,34,42,29,223,240,230,250,20,93,87, -48,197,217,45,132,87,233,222,212,115,220,89,27,76,66,114,202,80,166,97, -150,163,69,169,108,108,112,56,134,185,52,100,41,33,94,40,9,6,196,105,171, -137,243,145,73,44,141,92,124,84,188,153,158,188,13,132,9,120,34,79,232, -104,215,223,6,14,170,92,124,90,128,240,161,147,178,47,163,125,179,236,35, -197,227,232,235,116,61,113,225,97,115,177,103,94,78,8,190,201,111,240,77, -133,66,223,102,28,72,142,96,206,158,23,127,147,187,158,253,132,138,99,5, -74,141,70,78,122,128,223,127,11,101,64,220,200,15,156,35,235,212,220,222, -97,157,179,199,56,152,68,224,106,15,148,204,217,225,204,39,64,174,247,27, -234,231,65,157,114,185,204,52,52,238,107,60,133,99,175,115,105,46,209,173, -18,235,232,125,6,22,123,181,83,164,147,142,168,168,162,31,141,89,115,175, -3,202,214,96,182,248,223,177,146,114,35,150,117,196,12,138,12,117,162,22, -127,246,46,40,187,239,216,208,101,61,19,82,44,211,94,125,167,146,179,248, -217,42,228,99,165,184,119,122,86,22,70,58,239,63,168,245,157,55,227,60, -30,121,19,157,57,92,1,239,1,99,123,85,180,205,61,210,98,138,15,66,12,241, -246,92,150,5,214,56,212,117,5,21,164,33,79,166,26,201,212,110,207,157,40, -69,236,103,234,68,123,231,33,90,116,73,7,54,100,109,43,29,68,120,237,102, -33,100,116,224,114,154,25,197,162,61,72,93,129,78,70,30,63,139,241,188, -2,134,82,145,142,211,115,147,248,100,5,174,85,70,180,133,87,69,65,162,211, -107,162,32,131,171,132,244,242,189,217,13,240,137,52,197,207,51,152,19, -110,9,31,133,129,210,131,145,78,225,14,7,23,63,218,241,21,167,83,229,226, -226,167,66,75,40,162,75,101,179,234,82,163,141,74,206,141,72,15,191,253, -179,40,10,6,105,118,207,56,30,254,197,77,203,223,118,51,203,28,224,124, -228,114,248,121,170,75,129,195,8,134,78,154,6,199,20,143,14,73,28,31,98, -21,189,185,204,179,22,69,9,155,131,194,138,44,253,86,249,33,237,9,2,101, -44,230,132,108,75,89,170,144,143,122,98,128,13,69,5,82,192,188,16,243,126, -94,100,126,227,69,159,142,210,187,231,127,26,224,57,51,81,225,84,40,133, -162,245,152,167,57,25,150,152,18,113,243,179,182,120,44,21,155,218,39,167, -183,194,133,3,243,88,51,199,240,224,212,54,120,111,41,108,145,128,10,137, -16,239,73,77,162,251,18,221,239,202,26,97,20,50,80,122,211,53,61,204,119, -105,211,238,63,150,2,140,242,169,84,78,162,147,243,108,3,38,198,10,146, -180,99,8,126,58,174,11,63,19,49,193,127,119,123,11,23,159,75,0,134,23,191, -81,107,40,158,105,208,241,65,133,182,183,115,14,243,50,163,174,235,160, -140,69,233,112,61,217,248,92,64,16,68,7,70,50,15,162,132,219,190,27,216, -68,237,168,232,197,111,230,42,198,203,80,66,208,102,195,201,81,133,190, -125,118,2,64,139,44,36,249,216,17,137,81,233,196,111,7,101,208,214,0,142, -189,107,229,79,90,171,49,58,103,109,3,114,86,125,70,192,137,184,197,70, -148,210,250,189,74,153,241,246,166,162,144,186,82,86,175,50,138,109,106, -254,81,22,67,71,0,64,236,91,92,194,13,36,122,150,209,162,203,51,220,72, -24,130,233,120,133,148,37,252,124,152,99,49,178,155,75,87,26,167,225,162, -36,63,112,38,144,153,84,61,91,59,215,39,210,7,77,110,42,108,92,122,83,153, -83,161,44,230,159,84,126,241,251,160,164,217,205,73,160,231,168,62,206, -141,63,75,169,109,12,207,42,137,83,209,201,103,148,146,100,42,118,122,242, -113,73,222,241,163,183,157,237,82,3,54,31,13,69,17,56,15,6,200,147,57,58, -162,54,121,79,15,86,13,73,94,77,101,112,196,191,240,217,248,185,148,63, -253,227,32,95,122,190,188,117,81,215,174,94,202,253,163,164,237,188,106, -2,240,129,239,75,17,179,128,15,154,37,197,134,2,178,125,87,76,228,226,244, -234,44,105,219,187,130,204,132,147,198,206,238,147,18,119,112,177,179,133, -54,6,198,187,214,126,114,156,18,18,205,226,228,222,56,1,8,243,161,231,80, -162,191,69,167,84,76,55,139,140,125,152,11,51,112,58,49,212,97,156,51,184, -24,222,17,146,179,118,57,109,149,108,8,185,132,136,6,145,181,238,242,100, -153,210,27,98,118,152,231,5,4,66,93,215,169,136,127,22,48,118,7,43,58,2, -199,15,27,45,158,9,100,115,62,202,91,134,241,162,12,190,208,82,108,149, -46,33,66,208,70,71,94,154,121,70,45,221,236,160,206,207,89,62,227,186,99, -229,120,75,79,165,226,111,228,26,41,155,225,241,89,85,190,6,125,218,124, -142,243,78,249,134,8,103,111,174,33,18,41,220,108,195,112,185,102,227,188, -5,6,28,220,198,146,211,137,51,154,81,148,164,109,54,148,148,206,181,54, -241,140,132,10,152,38,32,76,57,114,53,190,110,46,46,156,55,192,234,237, -217,38,245,40,157,183,23,233,71,61,240,216,26,116,63,88,147,100,36,186, -182,131,45,53,253,160,154,63,171,98,14,151,71,197,242,48,23,134,226,236, -195,248,59,236,65,246,133,84,60,41,207,39,247,165,190,93,249,27,74,88,123, -58,252,102,49,225,58,177,181,76,27,194,129,121,146,123,89,159,161,168,15, -194,107,180,37,144,20,117,68,163,249,230,121,209,69,223,140,89,254,41,160, -32,255,79,42,157,218,241,115,217,123,209,219,26,164,72,36,51,139,134,126, -126,79,201,175,175,156,122,206,233,99,133,21,194,89,11,204,89,235,181,49, -178,149,200,153,225,75,124,254,123,189,4,46,53,163,34,157,246,76,213,115, -187,55,74,58,112,76,239,131,36,69,29,154,45,66,113,214,87,226,189,176,163, -20,34,126,178,23,57,197,11,37,213,127,58,131,219,168,142,121,11,172,148, -4,22,18,126,197,12,8,202,182,16,81,114,49,171,64,13,103,200,241,36,46,68, -188,203,72,52,18,203,106,36,211,182,145,56,72,218,250,220,116,220,227,70, -109,12,140,3,50,100,34,50,80,11,178,172,39,219,190,161,236,114,65,110,83, -144,216,3,80,210,55,220,111,44,214,114,167,200,64,231,108,211,209,73,66, -152,52,56,194,194,20,66,150,147,217,119,237,74,226,99,79,56,198,62,16,69, -78,125,5,36,46,121,217,86,118,110,87,13,204,14,150,53,184,38,90,212,113, -99,134,57,209,103,78,63,158,139,105,240,190,49,25,206,230,85,179,87,85, -115,66,64,8,218,172,120,15,6,60,7,176,7,237,9,11,34,17,152,240,29,236,98, -88,129,240,66,34,34,247,133,62,148,25,25,40,172,172,29,157,118,3,51,172, -65,204,54,137,171,165,21,247,225,220,118,109,59,173,72,64,200,29,72,67, -255,20,41,198,39,21,62,149,218,140,124,242,15,82,10,96,14,100,122,203,24, -64,193,229,49,155,236,51,232,52,192,17,190,81,234,56,192,224,202,144,189, -188,49,188,10,251,240,106,20,45,4,118,167,231,168,235,144,113,224,41,230, -90,35,245,1,47,162,201,25,128,211,190,72,34,181,159,125,206,36,98,71,201, -104,49,202,104,153,0,88,23,214,130,60,117,88,123,155,156,30,142,139,128, -37,40,137,220,36,152,192,72,131,29,49,69,53,59,118,144,118,216,98,142,118, -198,131,137,174,99,119,199,60,158,141,14,206,26,204,211,128,121,2,84,223, -163,235,42,40,4,193,45,183,243,213,165,8,14,150,240,44,1,61,13,24,94,6, -226,114,193,165,171,33,35,186,26,39,171,56,30,139,236,202,117,7,48,239, -187,9,17,29,207,132,164,55,197,72,116,247,83,76,37,125,47,217,70,72,93, -241,178,240,187,73,253,2,101,221,0,250,126,77,40,109,29,234,149,162,117, -208,221,165,29,137,152,232,204,167,58,187,201,145,30,181,139,141,54,48, -90,163,170,170,32,135,121,220,187,156,205,94,24,105,48,165,4,242,84,88, -117,81,251,117,163,94,197,73,70,98,251,183,26,70,208,9,236,246,40,97,153, -235,22,151,128,84,244,147,132,154,131,24,136,68,81,217,233,188,48,162,50, -191,147,112,0,208,35,2,8,29,58,44,14,65,232,133,146,3,39,54,11,224,3,61, -16,233,230,37,122,91,92,48,82,37,189,237,143,117,48,195,132,229,101,160, -103,7,56,47,170,228,61,80,4,100,223,160,189,85,222,11,91,100,106,128,121, -235,38,86,233,219,218,133,0,27,7,243,154,48,191,52,172,221,65,150,162,174, -208,222,107,168,70,238,227,37,112,118,56,237,223,99,93,56,8,4,37,121,46, -151,92,181,18,139,172,189,15,155,91,59,50,0,183,104,44,95,51,150,201,110, -65,159,132,66,253,171,69,125,145,65,212,132,193,38,36,48,34,174,28,254, -65,197,7,156,184,124,173,23,239,169,102,91,219,128,232,237,164,155,222, -15,97,227,227,180,16,148,41,59,18,87,197,61,23,212,252,232,164,179,18,35, -250,249,144,6,156,86,235,236,188,67,222,50,98,25,7,24,109,188,82,96,125, -65,211,95,81,213,106,159,116,1,81,219,154,82,141,140,120,155,37,163,150, -72,173,206,71,102,56,253,194,60,204,128,234,81,247,255,15,107,239,182,229, -54,174,108,109,126,56,241,36,41,109,87,173,253,254,47,183,123,140,30,99, -255,187,150,157,146,120,0,1,68,95,128,164,120,82,218,171,187,125,83,101, -103,74,162,72,0,17,49,99,198,156,6,173,19,226,159,244,143,7,73,10,138,219, -7,69,225,54,163,194,175,155,145,72,254,137,239,60,152,6,215,52,43,129,154, -119,45,151,89,9,242,196,179,98,127,124,44,42,109,171,201,34,57,15,20,199, -137,214,151,104,216,146,44,44,73,201,118,92,119,109,50,20,23,245,71,208, -135,41,229,236,129,48,14,29,109,219,49,226,178,147,96,149,253,10,70,47, -116,173,226,217,10,99,0,93,40,110,223,224,214,76,159,17,35,161,239,232, -134,68,89,215,249,217,233,85,205,112,112,15,219,54,118,100,117,94,204,163, -222,219,1,63,117,210,95,93,23,163,175,209,199,141,15,251,74,27,132,47,135, -227,118,141,172,253,204,158,172,248,98,59,159,250,183,156,141,51,40,121, -245,255,86,228,100,206,80,109,25,116,178,79,119,86,12,228,115,95,95,33, -78,208,188,49,154,162,40,54,48,222,154,12,38,39,249,142,108,232,63,178, -13,26,106,47,174,174,86,237,128,35,153,106,174,238,99,140,160,20,102,86, -7,83,103,119,143,19,203,67,182,130,36,235,133,175,254,160,216,146,153,181, -30,178,4,233,87,106,117,251,84,155,93,197,187,185,212,117,22,189,237,49, -175,53,112,80,217,212,39,165,148,219,19,179,183,252,153,173,236,202,195, -250,229,132,164,14,252,182,119,7,189,218,100,92,171,114,192,40,76,83,82, -150,5,230,222,227,61,216,75,137,43,115,245,138,86,89,107,125,170,166,214, -26,213,235,81,168,117,95,108,190,54,81,2,73,136,189,199,123,48,215,11,85, -165,95,144,154,81,25,29,56,97,79,110,100,114,68,136,109,79,223,130,189, -20,20,181,57,74,68,190,123,184,176,67,145,86,137,175,100,109,128,216,122, -146,182,84,127,213,104,35,164,118,96,120,68,82,76,136,76,70,47,221,64,255, -20,204,165,192,213,134,195,82,121,215,78,126,55,27,187,31,157,149,68,26, -238,116,125,64,23,13,69,85,99,118,196,212,147,161,88,222,204,180,236,122, -227,95,79,255,206,94,5,201,63,232,167,207,183,101,137,85,250,45,156,47, -103,77,197,211,137,250,92,49,199,254,19,239,71,176,53,246,242,55,149,18, -82,240,36,101,208,70,111,129,80,181,18,30,146,149,126,2,251,137,176,121, -228,109,15,182,37,82,104,25,218,1,177,21,69,93,102,129,154,52,226,251,142, -152,52,182,110,48,198,158,234,160,138,74,200,216,50,180,30,101,75,92,61, -105,206,203,23,92,10,73,68,255,192,119,1,85,214,184,178,194,104,245,150, -110,33,178,29,243,92,235,47,200,90,94,247,116,93,189,126,184,17,193,90, -37,200,155,21,145,34,198,73,188,160,0,0,32,0,73,68,65,84,190,253,228,87, -155,40,46,23,46,85,137,50,59,192,57,142,12,237,131,199,144,48,174,225,227, -82,225,172,134,40,180,119,197,211,131,171,132,239,63,192,183,112,247,249, -50,146,176,160,47,73,132,180,16,25,119,153,216,126,172,89,173,69,200,206, -241,185,163,232,206,246,68,59,168,121,206,134,101,167,38,35,234,43,53,242, -237,251,78,136,172,236,98,144,172,166,162,222,169,177,191,229,106,156,252, -220,106,163,208,178,101,52,175,101,151,148,156,108,61,117,98,19,184,163, -25,251,126,0,17,202,178,156,4,40,212,10,254,219,129,130,39,213,241,134, -17,190,234,43,200,153,184,156,28,59,128,123,185,69,61,245,220,213,70,198, -150,19,198,252,42,128,111,2,220,218,29,73,113,82,236,158,135,128,57,35, -123,199,152,63,123,56,59,249,217,61,52,168,22,22,231,186,184,125,205,131, -111,242,176,233,249,105,99,182,45,152,157,124,161,90,29,0,123,160,73,222, -246,157,191,154,89,222,170,67,41,163,209,195,64,28,5,83,149,84,23,139,182, -175,181,38,41,33,33,111,94,68,161,13,139,186,31,74,72,33,87,158,178,30, -111,153,228,99,241,158,177,79,136,43,40,174,54,67,222,107,245,174,144,72, -115,50,147,166,103,107,212,116,200,79,239,59,140,12,247,64,156,12,79,36, -230,42,83,171,201,68,102,57,99,101,153,130,80,122,10,224,233,245,126,243, -253,136,99,182,253,197,64,234,134,41,249,40,112,181,206,190,231,146,16, -99,208,86,163,98,34,142,1,127,31,137,202,97,53,168,148,16,38,29,249,121, -30,123,209,220,159,209,40,56,206,250,236,219,108,89,95,94,68,96,108,25, -250,14,81,57,240,168,20,73,74,239,16,165,29,3,121,199,176,216,213,226,135, -74,71,173,88,44,51,157,50,165,56,185,215,117,248,190,37,170,6,103,12,42, -77,4,201,73,64,127,241,80,207,143,9,38,193,36,200,42,109,249,255,166,86, -33,147,71,128,2,98,143,111,31,132,168,177,245,143,73,245,112,194,15,172, -203,242,194,42,143,134,174,52,89,179,15,129,214,36,34,164,249,218,215,94, -28,54,19,35,101,10,232,146,38,127,2,149,173,127,135,22,81,23,170,186,66, -137,16,227,136,18,75,209,252,133,187,104,180,209,175,196,103,246,249,136, -51,226,212,226,251,142,164,26,170,166,193,104,77,74,225,213,194,97,50,15, -210,42,39,70,2,50,62,115,242,160,106,138,73,223,95,196,44,210,218,146,210, -180,190,201,109,9,163,182,163,123,83,191,91,45,242,197,38,35,105,188,161, -78,172,202,202,148,230,177,90,80,162,209,54,91,227,146,2,49,9,113,120,242, -249,104,241,170,166,54,10,73,145,168,178,87,65,182,2,238,121,252,186,211, -5,67,117,251,224,90,217,105,111,41,158,119,161,243,80,222,224,82,42,244, -8,109,16,146,2,237,242,22,95,90,201,41,129,42,176,206,230,196,125,65,45, -167,68,154,156,208,235,3,250,249,146,99,70,94,40,234,86,247,101,43,232, -182,9,114,167,188,164,93,186,240,219,106,111,165,48,186,46,200,118,173, -207,53,57,103,197,25,252,179,214,221,46,232,219,217,172,97,83,125,237,103, -118,213,86,117,75,142,36,248,87,53,36,66,136,35,99,24,169,171,102,169,88, -23,97,23,145,201,194,242,232,186,182,220,212,77,229,180,243,2,94,235,33, -174,111,182,8,105,38,8,170,151,30,185,72,158,119,55,218,76,125,104,217, -144,154,182,35,81,50,153,145,168,13,188,41,7,48,242,8,45,202,10,202,87, -27,4,60,163,7,102,242,151,63,246,225,118,137,203,59,194,199,142,145,59, -31,60,75,191,124,90,12,146,100,210,246,159,72,93,147,201,135,50,122,18, -244,217,58,205,173,231,13,149,40,18,178,74,68,212,193,115,103,54,19,57, -149,176,88,91,76,174,232,230,74,20,50,70,124,59,18,181,203,193,125,246, -72,23,201,63,123,12,140,93,32,69,80,198,82,252,168,40,47,57,8,197,62,226, -239,3,177,143,196,52,25,211,56,139,189,84,84,141,34,181,35,99,210,148,197, -100,80,147,114,229,110,148,34,13,1,255,171,39,40,3,99,36,141,9,209,6,247, -189,162,172,53,210,246,12,247,64,24,2,41,41,148,75,244,255,227,81,206,226, -190,85,56,7,233,217,51,120,133,51,66,240,145,24,64,55,21,213,205,64,59, -48,116,130,253,94,81,212,38,175,195,193,51,252,138,80,58,138,66,8,109,68, -85,21,174,210,40,18,161,243,248,65,97,106,135,242,3,237,207,64,28,18,81, -192,216,68,239,61,131,115,20,223,74,156,131,248,204,9,130,53,16,124,200, -159,95,87,52,223,139,172,61,191,6,183,212,218,75,65,144,232,241,207,127, -227,251,158,24,34,162,45,70,121,58,255,68,23,13,213,229,138,117,118,163, -238,168,54,44,164,68,76,105,167,152,169,38,238,128,126,201,194,206,72,149, -74,232,197,121,93,32,14,248,199,207,252,249,49,78,38,54,35,173,127,96,108, -131,43,33,13,3,9,141,164,145,20,21,182,208,217,49,79,213,84,215,26,53,60, -24,70,193,152,108,104,20,38,231,193,250,246,13,195,192,240,188,19,169,169, -46,55,172,51,27,12,65,43,72,113,100,244,79,124,215,101,213,184,169,69,160, -235,31,212,181,69,252,157,97,200,54,217,18,71,226,152,192,84,148,223,126, -80,20,6,194,72,24,91,124,219,17,67,200,123,74,64,87,223,169,107,135,12, -159,116,109,71,136,130,46,111,92,110,55,236,100,10,32,36,82,24,137,99,139, -239,58,66,8,144,18,9,208,229,119,154,75,133,150,64,232,186,233,231,227, -148,80,26,76,245,157,170,50,164,254,147,97,200,207,15,109,209,202,211,143, -79,148,189,80,93,46,88,147,136,195,147,161,235,136,49,33,162,48,197,149, -250,118,203,231,142,4,194,240,96,104,187,236,187,1,217,73,241,242,45,163, -171,234,11,54,57,66,28,7,218,251,39,207,126,96,12,160,76,193,245,199,15, -110,149,98,124,254,226,231,189,163,31,134,140,90,184,200,63,190,197,218, -146,203,183,111,92,235,2,21,71,186,199,157,231,104,185,124,187,114,169, -92,110,73,37,97,120,8,247,78,81,127,19,154,66,17,7,225,243,83,241,236,21, -197,119,168,86,126,16,49,4,198,36,152,162,164,48,122,17,20,202,46,136,79, -126,253,243,192,235,134,239,63,110,52,133,217,4,112,37,108,60,42,94,218, -60,107,222,215,238,148,87,231,197,162,236,72,116,235,241,222,117,105,164, -55,146,94,123,241,14,181,1,163,55,8,165,168,211,238,241,25,203,255,132, -151,183,171,224,247,125,102,142,204,140,183,210,157,135,121,229,108,185, -58,12,30,163,45,206,217,215,237,16,201,86,149,10,204,166,55,151,191,76, -154,2,161,82,96,141,221,244,115,101,62,104,98,54,133,177,214,177,87,49, -75,179,247,55,96,141,222,212,20,217,196,69,19,67,152,94,111,143,242,140, -211,65,134,18,44,118,59,251,63,45,244,48,155,194,24,115,132,34,39,217,89, -148,202,238,89,171,71,63,51,246,83,72,136,18,172,177,167,201,87,12,243, -235,245,158,205,149,219,30,41,1,130,49,246,53,130,179,74,140,82,204,7,177, -53,102,33,220,201,204,59,64,229,235,3,204,236,42,179,242,200,148,201,225, -15,64,91,123,28,78,144,233,251,163,80,243,251,111,22,121,90,172,72,173, -93,95,159,32,49,18,158,158,49,40,220,213,81,56,157,95,63,85,206,97,10,152, -205,69,8,143,1,223,229,68,75,198,64,120,14,248,81,161,171,146,250,10,227, -99,96,12,26,247,81,81,148,138,212,245,248,231,72,8,138,52,140,57,249,40, -29,229,173,68,185,200,56,189,159,254,176,84,215,130,248,236,25,250,215, -115,145,186,196,133,236,240,102,155,146,234,98,50,114,164,50,204,159,158, -61,195,221,51,82,226,190,59,202,74,227,63,195,180,85,18,113,140,136,114, -83,37,46,164,126,96,232,18,84,142,178,214,132,71,246,120,215,78,67,136, -140,157,199,247,41,183,44,110,14,149,178,193,140,87,9,87,151,57,169,153, -44,120,149,86,164,71,135,255,244,140,202,97,191,59,202,82,229,207,71,86, -94,1,175,189,7,121,125,46,123,203,88,108,85,19,163,160,92,129,187,124,80, -152,121,134,55,175,141,249,72,139,49,130,168,108,197,138,144,146,167,189, -223,185,63,58,66,90,237,117,109,40,154,143,108,227,106,89,204,85,226,180, -62,180,150,87,210,174,29,182,170,73,49,161,139,18,215,124,96,237,148,144, -199,14,255,188,227,123,176,77,49,221,83,51,245,112,13,214,26,84,108,115, -213,47,21,182,108,40,10,139,146,39,73,153,92,185,247,15,162,148,20,215, -15,156,211,155,204,57,73,32,249,7,190,247,36,83,81,124,252,11,149,60,99, -251,32,226,176,101,129,10,119,186,231,131,32,53,85,121,197,85,137,240,124, -16,149,67,107,72,221,39,190,31,16,91,227,62,254,139,82,6,198,246,78,20, -139,173,203,169,42,44,41,235,4,93,0,227,80,122,118,7,12,57,240,14,3,98, -106,138,219,191,166,215,63,8,226,112,117,141,138,79,134,231,64,50,53,238, -246,55,165,248,252,254,201,226,170,6,91,64,98,186,127,174,194,93,110,216, -185,229,36,130,132,7,253,179,35,234,154,226,242,47,74,122,198,231,131,56, -147,203,66,135,111,63,9,82,224,46,255,133,93,115,128,204,202,128,72,118, -231,13,130,146,72,232,91,186,160,48,151,31,252,117,25,25,158,159,220,251, -9,69,209,150,162,186,114,139,145,164,12,69,245,193,237,86,98,152,205,133, -76,14,238,207,95,180,163,162,186,221,184,86,118,17,143,9,61,220,123,48, -133,80,42,197,227,39,248,108,184,72,121,133,166,129,41,78,35,41,50,250, -129,81,44,69,85,81,216,87,86,155,226,72,223,117,12,81,83,95,107,170,210, -110,139,195,141,123,33,219,214,196,70,3,99,71,245,89,221,143,183,238,40, -111,144,220,23,90,32,156,24,203,46,237,19,181,178,31,223,251,222,43,190, -104,201,241,62,168,175,127,215,110,53,185,247,125,197,28,228,68,214,44, -235,21,25,121,61,17,69,134,101,252,48,0,66,85,213,219,47,165,244,98,59, -122,42,221,175,84,206,122,247,125,237,185,10,156,2,39,154,109,43,97,101, -71,175,181,94,30,134,76,30,235,136,228,0,175,37,247,159,213,94,140,88,150, -113,52,51,65,98,251,192,61,11,37,216,236,235,120,206,173,214,106,122,255, -23,121,39,165,132,136,228,235,86,25,38,127,219,55,81,217,227,154,3,73,109, -250,130,90,97,208,91,86,135,108,123,246,243,247,71,129,74,16,82,204,6,100, -38,195,120,90,233,213,236,249,170,210,158,198,92,230,68,96,191,184,230, -62,209,252,115,165,142,0,190,66,229,231,187,134,161,50,1,128,216,123,6, -159,208,85,137,171,244,150,247,165,53,186,152,50,214,49,146,146,66,95,28, -206,9,177,245,57,56,95,203,92,109,15,3,73,105,204,197,225,74,149,43,43, -159,208,151,134,91,109,167,158,117,134,203,145,68,120,142,196,164,41,254, -170,50,52,30,34,35,10,211,20,184,74,103,120,126,12,196,32,168,186,160,186, -90,140,155,208,165,148,72,253,136,239,34,170,172,184,124,20,56,11,177,77, -40,107,176,165,6,31,137,81,161,43,131,22,33,62,7,198,65,208,85,129,43,53, -210,15,248,71,182,119,85,255,231,129,183,6,87,59,202,31,37,166,200,54,185, -105,72,196,8,186,46,41,111,211,231,79,200,70,234,61,190,141,80,86,92,62, -28,214,65,108,35,152,252,62,70,169,77,107,73,47,163,159,47,2,165,68,79, -24,2,152,11,101,211,76,73,247,188,141,182,206,131,70,155,141,54,129,36, -133,43,47,124,47,154,141,235,154,54,22,107,231,251,253,106,163,89,189,219, -95,34,16,6,162,15,96,47,20,245,229,149,244,135,142,232,123,18,37,197,197, -128,140,36,93,99,93,254,238,218,149,24,53,50,118,61,82,124,208,212,23,140, -73,132,174,3,93,97,173,34,246,79,2,37,197,245,70,225,214,62,117,9,73,57, -80,142,99,174,170,171,186,68,167,145,209,123,68,149,20,85,141,78,185,135, -174,203,239,92,235,6,99,133,216,61,16,93,226,74,71,234,63,167,215,127,80, -150,5,154,145,177,27,16,85,225,154,107,254,46,18,17,255,196,143,9,93,94, -40,234,42,223,130,52,224,159,15,66,16,212,244,122,197,72,232,60,162,42, -138,202,65,120,48,140,41,255,188,42,208,18,24,59,15,42,127,39,231,52,18, -59,130,15,200,234,254,229,158,247,200,216,223,241,195,8,246,154,175,79, -141,132,137,131,80,84,23,180,12,132,225,193,56,10,166,174,114,161,97,205, -235,8,85,71,169,228,61,189,68,140,195,105,141,86,66,10,35,33,26,138,166, -162,41,29,90,132,16,61,195,8,174,186,241,241,209,80,90,253,66,121,211,72, -255,184,243,236,19,166,249,190,10,238,16,61,60,90,240,163,194,8,220,59, -161,170,160,30,21,126,20,92,163,168,221,12,125,231,68,227,217,142,168,178, -225,82,154,13,130,168,117,193,229,250,55,245,109,18,47,91,171,10,237,133, -58,207,156,90,228,56,81,186,177,126,89,163,202,39,132,212,119,157,119,37, -114,152,240,87,39,76,147,119,125,247,131,100,240,187,10,254,29,250,162, -192,46,15,89,100,235,164,165,86,35,62,187,145,152,149,198,200,171,159,35, -194,224,61,49,70,202,42,47,166,189,98,216,186,239,113,74,10,156,89,181, -114,226,5,60,43,131,201,150,200,165,86,36,193,53,163,95,201,20,240,207, -104,57,235,44,101,153,107,207,61,85,121,9,21,109,58,137,122,205,240,126, -55,177,176,195,237,23,11,208,117,159,244,205,168,176,90,19,126,246,114, -180,74,29,249,17,39,150,142,235,103,147,148,44,62,218,139,46,251,142,80, -40,59,94,161,218,140,192,237,39,141,89,169,198,205,252,232,221,218,88,205, -252,206,112,88,26,2,254,25,16,83,80,93,44,198,78,202,87,99,32,180,35,254, -49,18,99,254,206,49,42,108,83,80,95,44,58,142,244,109,32,105,135,51,16, -59,79,232,18,20,142,162,113,152,52,50,180,129,168,29,229,165,192,150,107, -61,104,33,61,70,226,144,80,85,129,107,44,70,70,134,118,36,97,113,151,28, -72,241,35,254,25,136,88,202,139,203,85,246,252,253,199,192,216,5,196,58, -202,91,145,3,178,8,246,82,96,46,249,187,134,95,3,130,193,21,185,207,30, -188,194,92,28,69,109,73,237,192,216,39,236,71,67,221,76,190,245,83,242, -161,38,142,128,140,35,99,59,18,197,82,78,247,102,121,40,99,192,183,17,41, -10,170,107,129,41,38,2,226,165,196,54,83,18,179,99,91,111,140,42,149,228, -62,111,251,36,72,65,209,92,112,214,238,7,137,142,124,151,137,64,230,187, -7,247,207,7,221,152,54,237,39,93,84,92,63,190,113,157,18,145,87,191,112, -191,43,20,41,230,207,143,20,184,230,130,157,62,95,98,135,239,59,130,84, -184,10,36,6,146,106,40,85,34,198,17,108,133,33,16,253,136,114,223,168,235, -26,99,35,99,219,18,131,193,22,14,9,61,163,88,220,229,74,225,220,110,168, -47,87,233,33,104,108,115,165,40,11,136,45,227,243,137,79,134,162,185,160, -83,207,56,120,40,62,40,155,11,86,143,140,109,203,24,44,182,118,48,122,66, -4,211,220,178,126,71,236,241,207,59,33,89,108,115,205,125,126,129,52,78, -189,116,221,80,86,23,140,213,232,228,25,218,39,99,84,152,230,70,89,20,168, -216,49,180,15,66,178,184,233,253,99,0,211,124,80,20,37,42,118,248,246,193, -24,13,246,114,197,22,14,53,62,51,183,128,50,63,63,55,251,205,142,140,221, -47,250,231,147,24,65,5,79,236,65,153,10,91,223,50,225,207,168,169,21,32, -153,220,118,255,135,88,94,169,174,87,180,179,71,253,146,205,129,156,144, -48,208,182,45,143,71,143,143,153,67,17,146,166,108,174,124,111,106,74,167, -16,223,241,188,119,140,20,92,47,53,133,213,171,179,72,240,237,147,71,239, -161,184,113,169,11,230,31,147,160,123,42,62,31,96,107,184,125,19,74,7,195, -19,218,65,48,181,162,174,192,204,173,198,177,231,217,118,140,170,224,214, -212,57,153,91,249,141,160,53,90,229,198,208,28,63,94,96,244,203,19,64,246, -179,235,234,132,92,198,206,85,144,125,46,176,157,115,87,95,248,213,110, -143,248,55,22,231,162,142,82,236,171,90,91,189,35,216,202,23,85,252,234, -223,237,43,147,219,118,232,101,45,33,42,219,113,130,35,44,145,213,209,198, -113,164,44,203,23,4,125,226,244,177,103,218,30,140,22,69,222,136,4,236, -82,24,245,210,63,158,123,135,115,150,21,83,90,230,221,149,86,175,81,143, -213,200,221,137,46,239,235,61,150,49,44,245,150,200,168,222,205,38,2,73, -50,92,173,181,62,178,92,229,15,70,227,20,135,22,194,87,106,12,155,65,15, -217,246,253,213,198,160,93,246,52,219,87,63,104,165,34,46,162,54,18,176, -71,49,162,93,10,185,50,156,120,229,36,153,24,23,158,35,1,75,117,113,104, -155,217,163,169,31,25,254,237,137,198,82,124,111,48,58,255,158,31,21,197, -173,192,144,24,31,158,56,10,49,121,58,31,48,133,163,188,85,152,74,161,82, -98,236,71,198,100,40,111,22,235,212,198,162,82,134,41,56,187,130,162,114, -104,73,196,46,50,142,10,119,179,216,66,67,140,196,118,106,27,124,56,108, -177,10,111,49,18,251,220,215,47,110,14,83,232,41,64,207,30,241,185,154, -137,33,243,54,82,63,230,190,254,135,195,22,26,9,129,177,27,145,162,164, -184,56,140,83,11,11,120,17,211,74,145,240,28,25,131,194,222,28,214,233, -151,203,94,20,66,231,9,98,40,175,22,83,168,69,175,97,35,45,124,70,110,159, -213,190,162,39,116,119,198,84,80,54,23,156,51,27,86,52,7,147,150,245,218, -210,184,242,194,183,127,53,124,200,86,41,72,161,167,150,19,155,81,195,13, -176,40,32,105,32,180,119,124,42,168,86,201,133,196,12,113,7,26,156,51,200, -120,207,149,187,213,196,161,37,153,6,171,133,212,141,168,242,134,171,42, -12,35,161,125,224,7,176,85,133,150,158,222,143,168,250,251,212,174,203, -189,110,146,66,169,68,236,31,248,33,96,46,223,176,133,201,163,104,207,79, -66,178,20,151,6,205,192,216,247,168,226,70,81,85,24,21,137,195,3,31,20, -174,42,209,177,99,152,94,95,88,3,254,73,223,126,18,98,65,113,187,188,130, -123,108,25,187,14,49,55,138,186,202,196,190,20,24,135,7,190,15,152,203, -7,133,179,164,241,201,248,248,100,20,71,113,169,48,177,167,239,71,244,229, -99,186,7,143,220,170,72,150,226,122,161,116,5,68,207,208,223,241,50,221, -63,55,99,213,129,216,223,25,250,136,185,252,23,117,233,38,178,218,68,252, -84,19,49,83,1,166,192,214,127,211,216,54,127,127,181,35,49,199,215,88,155, -49,211,228,137,36,130,111,249,252,249,192,235,154,219,143,191,41,116,160, -123,182,60,70,205,245,118,165,44,12,196,145,161,107,105,163,166,249,118, -161,46,204,182,93,25,6,186,174,35,232,154,111,151,138,194,188,150,107,240, -138,174,23,108,163,248,241,29,42,171,240,29,180,157,224,46,138,166,1,55, -129,145,50,122,186,182,165,167,228,122,187,80,59,243,162,136,73,34,140, -49,95,255,188,190,22,64,86,182,102,50,187,74,88,189,179,150,101,30,159, -219,34,92,178,26,15,84,106,27,9,222,155,37,169,93,136,103,131,152,201,153, -223,195,238,88,125,235,71,241,39,85,60,96,215,227,32,172,117,136,133,29, -235,157,67,239,93,86,95,126,24,60,90,79,35,113,103,206,95,107,103,179,183, -220,92,217,244,251,183,137,213,110,74,87,88,9,85,188,152,237,162,50,82, -160,245,122,204,73,94,34,48,178,21,24,216,155,51,236,71,222,69,113,118, -132,189,157,59,158,31,217,151,58,243,167,83,102,106,135,21,201,81,55,124, -87,29,191,174,113,231,154,38,228,254,229,186,225,36,39,201,214,42,198,239, -51,90,249,221,120,53,219,113,194,125,6,74,34,143,130,13,130,185,21,20,165, -66,116,62,64,198,231,128,31,192,125,119,24,151,8,119,79,127,23,236,143, -10,215,64,248,103,96,12,6,247,163,166,54,211,155,26,139,153,170,244,52, -12,248,46,161,138,169,79,58,115,3,108,78,102,98,235,51,225,167,41,50,228, -235,3,67,27,81,101,153,199,207,38,113,145,177,141,36,229,80,70,229,249, -243,25,97,238,61,67,15,186,113,20,211,252,252,203,70,115,90,185,147,89, -80,28,4,83,58,220,37,19,226,68,18,241,49,16,147,201,200,129,155,20,129, -101,71,236,140,145,177,11,68,92,238,137,135,4,54,63,159,212,123,134,1,76, -237,40,74,253,102,82,229,188,250,152,23,109,26,31,12,62,162,138,114,34, -90,77,176,252,6,69,123,47,229,163,140,193,126,105,20,187,30,112,85,135, -81,219,228,159,12,62,160,203,91,70,109,36,129,78,132,238,147,49,58,108, -227,144,254,78,76,37,182,113,208,230,185,113,235,52,177,189,103,232,190, -176,168,248,164,239,158,132,88,224,154,111,148,101,100,188,127,18,199,136, -173,242,220,187,196,152,137,119,202,225,140,103,236,58,34,21,133,81,196, -246,23,254,241,147,81,213,84,183,15,10,227,233,238,45,98,107,202,166,70, -35,196,238,51,7,220,234,7,133,9,244,207,150,168,106,156,129,208,255,98, -184,255,98,164,162,186,221,178,197,181,0,202,19,218,95,248,81,227,42,7, -227,64,84,6,101,3,161,107,73,212,249,243,187,159,12,247,159,140,212,84, -31,55,74,27,232,63,231,247,215,196,238,23,195,227,23,129,154,242,246,65, -85,150,153,143,227,115,146,162,203,27,90,171,149,212,116,32,12,29,41,57, -172,153,200,106,100,98,106,94,167,129,76,181,153,79,162,68,26,61,66,73, -81,221,150,68,65,197,150,159,255,252,228,215,67,104,254,250,193,247,239, -13,78,20,74,69,250,199,131,103,159,168,191,151,20,78,232,239,15,126,221, -3,213,247,31,89,92,70,129,10,35,109,219,19,164,193,104,53,17,121,205,100, -121,11,140,61,189,79,232,75,73,89,152,85,75,72,144,8,33,40,116,41,104,5, -237,29,30,29,20,23,248,184,202,242,157,36,141,180,247,159,220,189,166,186, -93,185,212,118,101,24,227,121,254,252,135,127,255,12,20,223,255,226,175, -31,134,98,87,238,108,140,65,207,236,204,213,49,114,206,150,186,178,151, -82,87,43,113,171,221,38,124,175,108,185,158,85,85,139,145,218,126,66,108, -249,180,249,119,148,58,250,220,255,14,154,127,243,199,158,169,133,109,181, -215,119,83,2,155,44,40,111,220,113,28,73,41,82,215,205,251,201,124,117, -20,49,84,191,29,38,216,43,77,202,170,109,192,70,92,100,182,62,76,41,33, -49,29,4,109,20,39,98,208,138,157,31,250,74,67,88,173,4,13,78,2,245,217, -252,191,48,171,197,201,68,94,250,3,35,25,54,52,207,163,53,234,60,83,189, -210,187,94,170,180,189,115,153,64,148,140,94,204,83,3,219,91,190,147,21, -149,21,106,162,214,68,143,163,220,238,251,169,72,217,176,68,95,61,182,144, -251,151,117,73,85,79,18,186,41,143,172,229,113,135,196,248,217,18,219,76, -218,50,87,75,81,105,100,136,196,49,51,213,227,63,35,195,84,81,234,186,160, -254,230,48,90,8,93,32,248,8,190,227,241,152,130,81,93,80,222,44,42,230, -3,206,92,74,156,157,170,225,33,34,214,82,52,122,146,224,20,98,154,26,209, -222,211,255,79,96,44,29,197,183,2,171,132,56,10,170,112,148,149,89,45,101, -181,140,75,137,36,130,79,164,160,177,23,71,121,45,208,46,19,13,211,16,136, -41,247,249,173,83,188,115,40,151,56,137,237,140,158,254,127,34,186,178, -20,31,5,86,65,8,9,229,10,138,90,243,91,217,196,211,69,53,102,37,183,152, -136,221,63,60,199,26,87,127,80,84,37,70,157,123,108,171,63,203,66,183,173, -186,67,125,162,22,114,153,164,152,245,9,218,127,120,250,18,215,92,177,42, -16,163,201,85,120,244,19,92,93,128,31,24,41,50,123,190,255,201,48,140,40, -53,18,255,105,81,206,225,202,111,212,215,121,230,59,161,76,129,181,129, -216,254,155,182,183,152,226,66,209,92,176,214,144,198,33,175,221,208,211, -63,4,103,44,166,186,161,237,133,194,74,134,229,109,157,97,121,18,201,119, -140,99,156,250,236,14,137,33,239,247,177,101,184,199,44,235,92,54,148,230, -74,89,186,105,111,36,210,48,16,167,201,139,208,63,80,117,134,237,25,67, -222,9,177,165,191,71,204,244,250,194,94,41,230,247,7,136,79,134,71,194, -90,139,169,46,24,115,163,172,38,189,144,52,102,254,80,18,66,247,15,237, -88,225,234,111,20,101,70,14,50,221,127,96,248,252,191,241,74,161,109,133, -187,124,195,25,72,253,39,125,223,231,73,1,209,121,76,176,168,41,62,26,220, -196,241,145,52,50,76,130,49,182,106,168,235,2,155,155,230,68,31,242,103, -19,233,126,253,47,225,105,50,169,242,114,227,214,84,152,153,32,55,141,11, -170,241,201,191,255,167,167,168,26,174,31,55,234,194,162,146,103,24,61, -9,77,105,204,75,18,118,62,175,53,56,11,125,171,248,31,15,69,41,124,252, -80,212,197,124,150,36,36,120,186,231,147,231,168,169,110,31,220,106,187, -18,25,74,140,125,79,251,232,9,166,164,41,92,14,252,154,13,191,104,171,21, -182,69,47,212,91,191,222,87,203,89,118,37,245,59,145,201,227,24,185,90, -41,212,201,214,165,240,101,248,178,211,92,120,197,26,245,39,219,252,171, -139,88,163,0,255,253,252,239,163,168,239,102,52,106,171,220,179,137,147, -10,198,113,196,15,3,214,90,170,170,58,133,40,246,90,89,103,64,198,209,243, -253,40,100,115,152,209,84,187,72,187,210,39,94,178,222,141,54,143,218,194, -243,155,215,203,38,240,137,58,250,57,139,226,203,89,71,89,5,200,63,82,171, -227,139,62,216,65,229,232,229,63,173,214,114,178,235,150,252,116,221,172, -22,187,58,43,186,103,141,244,85,43,230,235,203,57,193,132,118,16,215,246, -247,243,61,78,73,16,173,39,49,149,151,245,162,68,33,109,20,242,152,250, -245,3,254,145,160,116,184,198,102,98,79,63,48,220,35,184,146,234,175,220, -199,147,152,118,215,173,166,185,240,9,74,75,243,156,186,44,159,135,90,245, -173,81,147,108,236,86,135,51,207,45,203,162,244,166,181,58,64,29,146,18, -177,243,248,199,148,52,124,148,56,183,50,250,145,52,33,14,230,32,249,185, -86,215,18,1,162,44,9,155,82,25,129,80,211,168,102,102,209,195,151,69,244, -150,165,202,218,95,119,158,239,159,33,57,189,74,248,222,9,113,156,31,96, -234,148,166,187,87,154,91,123,64,170,105,230,155,73,92,137,121,102,125, -46,75,116,230,51,136,168,105,142,45,33,161,99,236,115,143,218,86,87,138, -25,146,86,26,180,65,111,72,73,41,203,30,47,206,137,250,53,122,59,37,184, -121,11,232,215,30,215,6,197,52,39,62,205,128,43,166,235,148,185,143,155, -199,76,243,24,93,230,229,48,207,90,107,61,189,223,124,143,19,18,35,73,169, -252,239,179,67,230,52,205,178,180,17,23,20,205,46,237,65,73,241,165,231, -48,17,127,94,50,181,211,29,157,100,173,151,13,162,103,30,199,164,100,151, -214,150,217,10,165,45,26,33,73,156,158,251,74,33,116,122,246,235,241,71, -145,148,39,43,116,30,119,92,56,64,41,229,153,247,180,226,229,76,173,33, -109,94,110,33,146,132,56,201,1,231,229,103,48,54,63,131,20,6,30,63,255, -225,115,48,220,126,252,224,163,113,43,159,17,129,164,136,105,174,169,4, -173,103,41,233,44,134,52,244,29,221,179,35,168,130,250,114,165,169,204, -86,127,44,12,180,247,159,252,122,140,168,230,59,63,190,95,169,204,203,132, -75,118,2,85,7,165,230,47,90,164,139,109,240,210,170,220,143,198,169,55, -100,61,117,170,15,178,23,116,222,11,67,29,155,172,191,217,243,194,123,103, -165,147,77,172,254,251,249,127,109,244,77,183,186,204,235,88,120,236,55, -132,16,233,135,1,163,117,102,113,106,115,196,21,118,202,52,234,55,215,185, -86,23,99,35,137,184,241,21,93,5,187,41,56,32,175,49,29,163,115,229,52,17, -5,213,218,181,71,109,225,132,173,234,226,249,241,246,117,214,247,234,187, -167,152,242,120,136,86,255,89,128,223,39,53,138,205,24,224,129,203,32,199, -192,33,105,53,134,184,8,88,200,78,209,76,237,221,30,55,13,169,173,158,217, -159,160,64,234,221,64,192,86,41,74,189,196,140,212,217,226,146,68,234,61, -253,231,72,84,150,226,102,177,86,229,94,246,35,144,180,165,184,102,102, -186,218,73,244,42,190,128,178,118,233,135,172,71,128,54,195,157,59,37,197, -221,117,74,202,34,26,18,132,208,79,204,253,202,81,52,5,218,168,44,248,177, -232,95,239,15,133,55,107,231,189,62,208,217,134,56,103,118,190,173,180, -127,227,33,249,69,7,145,183,181,202,123,12,71,157,31,129,187,79,86,7,221, -249,69,88,38,14,153,76,150,52,182,154,72,109,234,248,138,175,215,228,193, -92,116,99,150,177,140,149,237,146,74,212,46,199,95,241,73,214,86,212,123, -121,210,125,46,254,22,6,254,125,6,245,255,237,207,170,2,60,136,131,169, -85,145,182,115,48,91,243,35,143,183,81,189,228,82,213,170,83,124,54,18, -118,144,28,135,20,122,30,191,126,241,240,122,153,133,55,106,255,220,87, -237,198,249,254,37,79,255,108,105,199,136,118,53,151,166,194,45,220,0,153, -70,229,60,125,219,210,121,193,53,13,215,75,110,117,168,181,114,221,122, -87,171,173,132,244,186,39,191,233,85,110,190,204,22,158,125,103,154,124, -68,113,223,5,249,189,83,158,98,47,34,118,154,191,255,46,144,255,193,223, -237,86,188,92,173,108,240,212,54,182,238,101,81,21,12,67,15,168,105,68, -67,159,55,9,246,55,74,142,30,247,156,192,190,155,15,58,10,207,175,2,145, -44,2,59,203,56,218,138,53,169,246,77,23,121,233,108,201,74,216,99,223,154, -103,231,114,170,126,3,207,47,243,199,74,253,103,251,247,128,135,159,24, -152,28,60,152,89,136,131,75,191,134,172,214,167,213,38,87,94,93,231,222, -245,91,109,121,7,75,95,95,190,252,14,114,66,254,88,120,10,155,141,180,119, -34,122,71,72,89,105,29,164,72,242,57,105,84,228,121,118,119,173,169,43, -189,200,205,202,250,26,229,100,50,65,29,47,116,89,35,74,118,27,75,14,14, -106,107,46,129,154,185,4,189,207,58,242,163,198,94,10,202,239,37,218,189, -56,22,107,145,167,47,203,227,175,146,59,245,155,192,254,54,25,144,223,98, -121,234,192,115,81,59,197,248,223,85,238,7,155,200,141,200,244,187,100, -239,107,254,198,124,249,137,208,119,164,100,112,77,38,165,157,21,19,242, -85,234,162,214,35,73,171,107,217,205,32,11,39,170,109,7,38,180,156,16,130, -229,232,23,172,212,41,160,248,54,144,255,255,96,253,122,90,118,172,248, -71,139,15,136,200,134,161,45,219,184,189,177,183,62,45,24,102,112,89,157, -88,58,239,151,231,49,30,162,140,193,104,75,225,44,206,218,21,23,105,189, -38,213,150,94,69,160,123,246,248,168,169,111,87,74,107,94,99,160,50,41, -225,125,126,242,217,65,81,93,248,246,119,69,97,231,158,255,234,123,174, -144,201,133,184,125,98,186,179,203,255,14,153,202,178,190,215,30,243,71, -202,214,73,187,242,104,126,43,95,33,97,235,36,244,43,2,157,252,174,205, -123,158,131,175,42,248,237,197,203,10,134,95,11,202,204,63,11,227,72,215, -245,52,77,157,25,140,162,14,214,140,239,172,41,246,160,239,209,76,229,253, -228,254,54,11,154,148,42,39,181,54,99,76,78,52,54,73,201,46,181,150,179, -59,9,47,119,32,245,199,103,243,252,179,148,178,90,158,53,118,219,239,255, -79,170,119,117,114,183,86,21,197,26,213,216,75,189,207,83,3,198,152,44, -223,186,95,49,167,8,197,234,57,188,1,10,254,168,118,82,175,158,215,218, -220,97,113,29,84,167,96,193,129,197,47,41,101,200,122,125,150,234,105,182, -95,111,73,106,107,137,0,245,54,90,126,29,30,212,111,67,226,171,53,146,251, -217,83,231,67,103,88,121,73,163,166,86,206,130,84,240,82,205,82,239,198, -88,212,23,149,250,111,43,246,175,22,229,89,144,218,134,171,45,88,248,6, -57,123,143,97,109,82,163,119,206,4,231,66,199,242,246,41,73,150,47,220, -180,182,228,180,230,127,135,95,158,163,124,123,181,205,117,111,81,56,12, -128,188,121,38,106,25,7,220,79,255,32,114,64,234,54,104,141,252,65,194, -246,167,109,59,206,32,131,29,1,119,174,228,215,237,197,51,82,177,124,125, -14,189,130,238,110,211,169,45,89,250,28,209,204,189,252,20,4,209,42,79, -50,169,61,81,122,191,228,167,96,26,82,110,223,152,221,123,79,154,14,49, -69,146,76,4,230,89,129,85,214,74,168,187,239,189,50,134,249,50,59,60,217, -128,106,133,248,109,31,229,31,60,200,195,168,247,75,38,87,237,205,147,78, -80,229,63,56,160,222,7,245,125,237,244,223,143,255,150,237,252,248,42,123, -86,231,103,74,76,145,182,237,176,198,188,136,117,27,2,206,153,51,149,28, -250,119,95,102,182,111,153,230,171,204,67,201,139,133,248,210,232,220,102, -86,135,157,252,197,206,17,89,141,140,109,141,6,222,237,215,185,159,186, -0,32,239,54,208,215,40,206,57,225,110,103,30,195,145,42,241,146,123,133, -101,209,31,60,171,149,58,133,29,54,196,147,29,252,118,24,191,127,23,60, -119,72,203,198,195,89,222,25,57,236,175,71,14,9,217,60,174,114,248,116, -57,203,135,142,46,80,139,157,236,111,229,255,119,149,238,187,12,250,237, -26,100,231,22,123,174,220,175,246,218,17,242,7,213,60,191,69,218,79,254, -126,110,213,42,255,225,71,28,125,219,228,221,14,254,226,216,83,191,61,129, -14,112,237,111,66,248,215,87,172,54,68,220,253,185,182,73,56,54,207,67, -109,73,54,114,44,113,151,87,238,42,249,131,47,197,87,92,137,255,47,208, -252,155,53,115,124,74,47,132,75,214,137,183,58,230,253,235,101,252,174, -111,186,70,166,228,205,25,121,174,167,250,14,233,225,176,158,222,238,23, -249,234,140,92,85,205,178,253,187,176,211,76,249,157,27,219,158,207,35, -175,96,188,119,227,248,26,160,57,219,107,114,222,244,61,3,252,190,98,203, -243,5,194,247,69,174,171,151,89,111,217,246,114,54,213,210,138,172,144, -82,194,15,30,165,160,44,74,182,46,243,179,9,202,58,11,223,94,219,86,15, -72,29,71,193,54,255,174,88,251,14,191,146,240,153,84,7,105,26,87,58,236, -171,131,200,239,126,211,170,41,144,108,237,100,215,159,63,175,155,119,232, -169,76,132,154,52,49,82,212,217,124,153,250,2,90,57,205,216,100,155,157, -204,61,48,181,240,105,94,227,22,9,66,204,142,100,7,34,163,218,69,22,181, -79,194,94,187,94,206,132,157,14,173,9,57,175,128,69,94,128,219,172,135, -47,171,98,97,47,206,32,108,61,88,101,23,220,55,56,161,90,145,198,100,249, -167,245,53,138,58,111,38,46,246,145,178,5,145,213,105,189,254,98,180,190, -15,234,91,183,197,109,133,36,171,61,242,6,1,218,137,69,158,46,44,254,48, -8,108,92,159,86,137,237,166,54,216,250,99,43,206,108,48,143,111,122,148, -65,146,183,34,90,47,197,66,121,163,183,33,156,239,238,215,146,185,33,102, -0,0,32,0,73,68,65,84,59,156,23,2,239,49,153,119,45,131,245,209,190,222, -195,107,141,141,53,20,191,237,110,236,123,114,47,136,127,153,60,148,221, -218,89,85,247,106,111,183,170,254,60,64,127,253,124,207,22,210,110,125, -169,21,17,116,254,236,157,161,202,126,201,236,137,195,135,160,169,212,74, -52,233,85,189,168,205,175,169,115,84,69,56,197,140,206,10,139,61,39,72, -206,107,134,211,125,168,144,233,249,168,117,145,255,122,95,249,29,215,233, -228,144,155,71,228,54,74,157,95,51,62,246,77,167,87,211,79,54,220,30,217, -217,170,175,213,225,229,93,46,252,142,26,243,85,224,223,37,254,122,139, -121,110,73,24,34,199,62,197,48,12,196,148,40,139,50,143,130,201,9,100,187, -99,7,238,236,108,78,204,91,248,186,193,176,54,189,217,61,35,173,245,4,77, -159,245,215,100,203,168,56,4,95,217,248,65,159,86,92,95,37,81,34,211,231, -107,212,87,56,254,87,171,99,233,51,169,99,66,50,103,200,178,87,167,85,203, -63,106,51,137,60,76,22,138,28,80,11,216,107,42,41,217,30,24,74,157,87,3, -219,222,253,254,96,217,230,232,178,98,187,169,29,149,98,187,63,207,173, -71,215,17,118,254,30,106,165,208,54,63,95,197,246,64,85,251,240,37,106, -27,184,213,10,2,132,3,76,189,246,12,80,111,14,81,181,191,94,121,67,86,92, -93,194,129,86,161,254,160,176,149,55,9,160,236,191,27,71,201,171,25,177, -56,60,61,14,59,240,172,10,151,67,227,235,12,151,219,134,195,179,247,81, -95,16,6,228,208,14,80,7,79,186,125,162,33,167,223,133,93,114,182,186,118, -145,67,32,150,221,125,60,86,226,235,12,108,103,34,162,214,237,201,87,230, -42,179,195,228,239,188,65,229,119,4,130,63,8,238,95,225,180,242,58,139, -242,145,32,7,9,141,181,228,233,169,130,221,172,100,42,43,28,96,29,101,69, -189,105,227,200,17,182,80,123,52,97,61,174,118,172,230,213,218,168,69,56, -109,45,109,254,111,149,33,47,21,179,122,215,160,122,23,36,55,242,161,59, -0,98,221,19,151,147,117,251,39,15,78,142,163,213,178,61,81,213,234,184, -87,255,9,82,247,213,239,236,47,84,129,62,166,15,178,40,219,237,161,196, -224,3,33,68,10,231,178,97,203,198,83,156,3,142,124,246,185,95,21,47,155, -167,184,209,217,150,29,209,67,166,190,119,200,238,102,171,96,176,104,177, -239,5,9,246,144,240,76,66,89,245,142,215,4,148,51,91,230,245,183,75,41, -155,123,200,162,108,244,31,164,230,155,221,39,156,179,64,86,0,143,90,169, -9,47,135,185,100,115,154,36,219,37,40,231,52,215,253,225,184,205,40,143, -26,201,106,87,193,237,202,239,221,127,100,37,29,44,235,61,114,88,128,114, -74,68,123,201,35,47,223,123,7,97,137,188,9,122,155,173,126,18,45,101,70, -106,228,109,0,217,87,117,219,19,82,237,224,70,57,36,255,139,76,242,188, -108,229,72,253,80,103,250,23,114,130,226,188,147,158,220,83,127,213,49, -252,162,100,149,204,236,235,228,247,73,245,123,59,96,216,227,18,106,135, -193,189,63,69,223,253,142,58,171,181,151,251,171,78,83,138,147,204,232, -48,207,255,18,79,94,67,254,219,86,163,156,161,239,231,215,189,186,223,27, -16,74,169,45,246,35,187,181,254,14,18,254,211,63,194,169,202,230,241,90, -133,109,216,93,17,86,145,67,235,252,244,48,219,19,13,231,201,5,81,155,42, -71,212,62,247,81,111,206,51,217,182,9,216,219,176,158,128,25,138,237,121, -193,174,56,81,219,81,105,181,14,210,179,98,223,250,121,137,172,90,101,156, -201,177,188,128,97,217,131,14,106,17,74,83,251,54,210,59,46,171,90,167, -186,243,123,108,123,158,7,202,168,82,7,224,251,116,221,156,17,112,255,100, -100,110,245,111,122,171,102,63,93,160,168,67,145,41,34,244,67,143,49,6, -231,220,42,128,202,70,143,90,109,242,60,57,128,103,234,77,33,178,129,200, -22,229,53,217,178,193,183,254,1,104,157,25,154,106,13,13,207,144,179,236, -22,224,89,73,190,90,199,106,215,235,62,149,253,221,5,53,103,236,100,78, -163,254,112,35,203,241,48,159,211,106,181,37,135,172,243,28,100,219,23, -156,91,133,198,152,60,195,170,86,200,162,90,195,222,28,205,19,100,237,251, -190,173,102,55,204,120,206,212,147,213,73,20,90,97,52,39,89,169,28,0,162, -117,100,148,87,68,220,53,25,94,251,64,54,48,183,240,5,209,100,97,215,171, -87,184,80,47,242,219,89,128,91,215,226,234,77,226,33,203,184,208,214,72, -101,73,102,212,171,114,60,35,0,30,146,157,119,183,85,222,252,222,187,52, -95,246,150,149,199,81,49,197,81,165,64,253,166,43,160,14,152,219,26,5,145, -147,93,43,95,66,243,103,248,221,90,26,73,54,235,232,43,125,61,217,65,193, -167,134,14,155,192,162,214,149,182,82,235,243,248,245,236,246,168,141,122, -17,184,102,229,52,217,164,18,239,59,38,191,173,196,255,95,49,233,213,46, -74,207,73,255,118,180,115,182,167,94,239,103,181,223,212,251,139,83,39, -121,179,154,159,130,188,76,139,222,78,107,124,157,139,108,198,49,79,164, -76,114,248,72,164,49,155,50,157,145,36,215,228,98,17,217,242,3,150,186, -78,54,26,244,106,125,16,237,151,13,107,219,243,125,138,191,47,103,142,124, -180,237,141,19,14,49,116,58,127,212,46,85,221,196,61,245,5,82,247,187,123, -172,248,122,66,99,35,85,171,78,186,229,106,203,162,151,36,140,222,3,80, -85,213,174,90,218,115,12,229,144,95,30,30,186,156,156,117,123,36,96,14, -102,107,133,185,233,162,230,202,217,104,179,25,113,99,215,86,80,178,203, -150,14,228,143,173,243,153,226,108,244,97,215,242,148,172,86,151,36,101, -182,39,234,63,220,184,138,243,149,190,189,15,178,231,11,172,72,61,41,38, -146,36,172,178,167,89,234,62,99,221,28,237,59,227,132,205,189,83,251,220, -252,77,173,39,147,167,246,42,154,41,165,97,114,179,59,37,14,111,250,213, -171,218,50,133,108,13,59,137,105,100,129,154,53,153,231,53,53,32,107,153, -189,53,209,114,119,194,138,202,42,26,105,37,196,49,87,57,74,207,34,39,71, -72,248,192,175,146,149,74,159,40,142,250,111,43,72,88,169,183,19,107,231, -68,195,105,167,164,56,9,190,228,239,253,213,60,255,54,89,149,115,38,210, -164,72,150,82,204,247,128,29,233,117,22,133,153,71,203,36,173,132,129,244, -38,152,201,14,210,103,5,170,171,73,80,38,193,70,32,36,11,178,168,147,126, -191,218,225,32,114,208,75,88,255,109,17,172,217,3,242,107,199,67,181,21, -151,58,174,243,227,51,217,25,81,174,174,253,213,3,123,25,145,173,154,16, -235,22,153,200,116,143,211,14,180,84,40,163,243,58,126,7,3,254,113,69,191, -30,109,145,3,215,99,29,141,183,19,0,234,229,27,182,57,204,143,77,220,165, -131,183,38,179,238,174,57,165,144,63,67,235,19,123,240,255,52,131,217,46, -108,153,220,14,251,174,163,31,20,213,199,53,107,205,3,167,115,121,176,40, -110,190,230,254,121,17,162,225,197,141,81,95,76,52,76,222,5,41,78,98,66, -76,106,154,90,47,137,194,62,14,200,219,198,149,90,72,222,235,86,96,138, -129,36,47,65,50,165,53,90,235,197,12,71,237,130,189,226,11,84,239,79,36, -41,222,144,239,172,172,23,53,187,100,100,250,197,16,2,62,100,35,25,53,57, -180,189,88,2,235,164,235,221,45,249,26,0,220,150,62,187,236,72,173,9,27, -249,34,181,86,32,122,81,171,123,101,221,43,171,219,253,251,173,134,240, -215,12,208,245,200,135,252,145,42,104,86,127,178,107,151,184,255,24,131, -219,207,186,115,240,38,222,237,225,149,52,112,30,31,115,216,77,66,163,222, -209,23,120,221,15,81,71,93,37,224,139,129,39,142,137,156,120,66,127,103, -120,118,89,174,114,66,76,116,249,141,230,122,195,90,117,94,17,175,25,202, -18,73,209,19,199,14,223,117,132,49,102,88,204,93,41,175,87,138,194,45,70, -63,106,53,170,163,214,189,60,73,147,164,166,153,2,227,171,138,147,56,18, -186,95,244,253,64,138,178,120,46,43,219,80,94,111,184,181,49,198,46,191, -220,184,250,45,143,73,189,153,107,93,29,168,251,55,75,211,245,41,147,21, -233,118,140,99,73,137,52,62,232,63,159,36,221,80,221,110,216,217,252,250, -139,220,106,107,146,112,2,71,73,32,14,119,250,182,37,140,227,116,213,147, -108,179,182,216,234,70,89,55,88,3,209,223,233,239,175,207,119,179,26,220, -90,71,225,108,191,38,207,216,254,162,235,253,162,154,6,26,109,235,233,254, -186,83,212,64,246,7,60,39,147,12,34,72,26,24,219,159,244,189,39,45,104, -162,70,187,154,242,114,195,21,197,50,198,52,107,66,136,240,58,100,87,135, -254,161,143,187,218,107,11,57,214,104,182,62,137,43,167,74,181,215,3,17, -136,3,190,251,201,208,249,213,189,209,104,215,80,94,110,216,66,255,97,162, -246,187,90,64,78,218,57,91,105,238,53,91,126,131,125,28,230,193,143,45, -30,145,119,117,90,78,96,226,240,160,191,63,137,166,161,190,222,176,206, -28,13,182,78,199,142,207,11,190,13,186,155,34,126,104,105,219,158,168,43, -154,91,243,10,238,179,82,96,16,68,233,151,162,228,250,217,172,170,246,13, -161,98,21,152,213,65,60,44,239,203,24,61,67,223,241,120,118,12,99,204,190, -246,205,7,31,183,11,181,85,47,114,181,200,198,187,225,245,236,50,177,155, -57,104,175,144,173,20,35,227,208,209,62,158,116,195,72,68,161,172,163,108, -110,124,187,52,20,78,45,57,155,218,115,15,206,96,249,175,24,245,95,101, -32,179,93,236,30,53,150,93,230,19,67,96,244,30,171,13,206,21,219,160,196, -86,192,132,195,99,229,64,195,57,157,225,23,54,85,208,166,206,94,109,82, -145,68,76,105,241,30,63,149,220,219,207,132,200,26,250,223,146,216,132, -237,193,171,126,115,255,100,81,171,203,149,196,159,22,234,219,68,227,56, -191,250,138,235,106,3,82,43,81,155,236,46,165,204,61,80,217,228,253,36, -193,219,40,85,44,179,151,27,67,154,213,23,85,187,249,120,117,24,240,88, -5,88,17,72,35,113,104,241,125,64,85,223,104,42,139,26,59,134,182,157,178, -213,244,114,162,59,12,192,75,230,11,68,79,240,15,188,31,65,215,184,235, -191,168,116,214,158,142,82,160,181,157,42,202,147,117,50,67,111,201,19, -250,39,222,71,84,121,161,172,202,44,43,170,178,140,229,216,221,25,35,184, -250,111,92,177,210,38,80,122,242,8,56,127,198,234,20,97,217,30,80,162,212, -41,98,178,113,95,76,35,97,120,50,246,17,85,54,20,85,57,37,165,171,195,43, -13,140,93,79,194,224,234,42,219,215,254,14,198,223,252,252,68,72,88,9,96, -48,229,149,90,89,124,255,36,36,141,171,110,88,103,179,226,158,202,166,36, -18,123,198,190,39,138,161,168,43,236,228,229,185,239,130,239,247,117,10, -3,161,127,48,6,69,209,252,157,253,201,245,252,112,102,201,216,221,60,241, -186,50,223,11,84,237,230,162,37,249,233,249,25,220,229,191,178,225,204, -28,176,151,247,151,85,204,83,27,241,171,69,133,237,43,40,69,2,161,127,224, -135,136,46,102,15,247,249,249,158,169,91,201,50,255,157,226,48,25,230,104, -220,245,95,184,194,102,244,106,74,188,179,123,227,31,84,237,127,36,130, -179,83,219,90,239,76,117,66,115,92,79,215,174,137,170,135,2,118,247,44, -102,206,213,58,135,11,158,177,239,73,98,112,101,245,114,16,124,251,61,228, -208,130,89,208,72,214,173,86,33,141,158,190,107,121,14,9,91,94,248,104, -178,49,207,114,208,69,79,24,158,248,49,97,92,147,29,254,246,186,220,115, -43,89,109,45,92,83,76,36,178,204,180,94,236,183,231,181,235,25,218,59,143, -62,32,174,166,254,246,47,190,147,136,33,59,91,230,71,183,146,169,57,17, -252,146,232,233,159,15,30,30,138,230,194,173,46,22,196,49,250,158,199,253, -65,159,12,101,243,141,191,191,155,73,7,32,199,11,179,42,100,223,34,191, -239,24,125,239,36,62,222,214,210,249,25,219,117,175,83,173,228,68,243,102, -19,250,190,71,27,67,81,22,39,178,124,199,242,66,14,13,11,117,2,104,236, -145,134,147,38,130,108,149,122,103,114,139,157,15,232,181,144,138,172,32, -213,189,156,148,236,18,98,181,239,215,158,137,187,188,255,51,171,229,169, -63,13,238,123,173,91,217,19,253,182,1,117,233,229,174,73,112,43,65,13,51, -193,224,7,112,98,61,88,41,171,108,119,55,11,123,16,122,91,29,228,234,48, -140,244,66,82,148,72,206,232,187,17,85,92,41,235,26,163,179,31,182,136, -193,56,55,41,233,9,49,134,213,162,51,24,163,115,197,237,31,244,93,135,152, -18,215,220,176,206,229,13,128,32,166,156,22,163,144,98,64,226,204,185,48, -88,61,107,88,135,220,158,241,79,6,63,130,105,112,90,33,81,16,35,40,9,140, -237,39,62,106,108,245,65,81,186,124,191,22,196,38,146,66,200,201,217,226, -95,144,253,216,181,81,144,178,121,72,118,168,75,203,93,88,140,139,230,72, -30,51,185,51,223,110,133,104,131,209,89,90,55,165,132,132,39,126,24,65, -87,88,163,33,206,4,184,44,0,146,131,179,163,184,253,77,33,19,52,190,228, -102,49,255,206,146,72,231,42,97,58,93,72,162,209,234,5,45,230,10,244,21, -4,231,247,73,190,35,138,197,213,55,92,89,76,176,121,204,222,235,0,202,81, -94,255,166,152,219,34,74,101,147,19,201,207,48,73,154,18,192,108,54,34, -42,43,13,134,246,147,33,106,108,253,129,43,139,172,54,182,129,130,35,41, -219,153,109,175,127,242,73,72,49,160,140,133,165,53,51,221,95,242,231,135, -246,87,246,68,175,178,143,187,86,26,65,208,76,250,243,18,179,199,193,180, -23,82,138,8,26,99,108,118,150,75,42,123,16,196,185,166,122,217,219,74,156, -158,207,248,100,24,70,176,53,198,40,36,70,196,106,36,5,146,154,160,90,153, -100,116,67,68,148,205,254,46,18,178,131,92,48,89,82,183,42,208,75,111,117, -186,182,152,43,194,165,208,73,33,75,242,27,135,34,144,146,70,235,148,255, -77,4,81,211,254,96,74,252,98,202,201,251,162,135,15,104,187,138,231,41, -123,57,204,149,143,54,249,59,44,136,126,34,133,236,3,207,180,62,149,181, -43,126,241,132,44,77,100,52,65,131,181,25,201,76,249,222,230,151,58,138, -203,95,20,87,243,210,233,95,174,49,174,206,55,51,121,56,144,247,143,104, -180,150,108,67,43,50,33,59,118,90,13,137,56,182,124,254,108,9,170,164,186, -93,169,11,59,245,137,37,27,241,164,148,157,8,135,0,182,202,254,18,73,178, -211,226,186,61,37,43,132,98,74,118,211,216,241,249,235,206,160,43,110,31, -55,106,187,242,235,136,61,247,159,159,12,82,80,93,110,217,96,199,40,84, -2,138,130,164,39,75,231,24,242,181,79,237,44,103,179,33,132,164,64,12,217, -86,248,243,57,32,174,193,232,92,0,99,45,164,142,251,207,127,243,12,37,151, -31,55,110,165,197,106,189,43,106,51,242,24,226,170,181,163,116,214,240, -159,143,163,56,173,151,105,63,27,107,208,146,201,127,18,35,162,13,196,200, -108,83,160,108,78,76,150,199,27,3,203,209,133,206,142,144,115,80,22,181, -237,9,12,131,39,165,68,93,215,217,157,108,21,112,50,235,89,31,203,152,201, -97,14,149,157,180,142,53,225,139,73,189,205,197,213,70,56,6,37,203,235, -133,108,71,152,82,66,27,187,88,191,230,207,103,161,67,46,252,188,180,50, -162,56,52,225,132,180,136,0,28,173,97,23,146,30,108,122,137,75,223,123, -26,13,60,39,94,76,223,36,45,247,247,164,95,34,175,209,20,117,210,111,219, -243,54,166,133,156,66,36,138,228,7,62,191,68,239,34,181,58,27,97,81,43, -100,79,118,157,16,181,19,184,153,63,63,173,250,152,249,223,162,127,226, -251,14,177,55,170,186,202,8,202,216,50,246,61,162,42,108,89,160,147,199, -247,79,124,215,17,99,68,196,98,155,111,212,151,10,124,203,208,61,73,230, -66,93,55,121,1,167,64,66,47,70,40,18,7,198,254,153,43,203,148,16,52,182, -250,78,125,169,33,118,248,199,47,6,239,33,73,126,157,25,8,189,195,150,55, -202,107,137,12,159,248,126,128,234,71,182,40,77,137,200,212,210,73,3,190, -125,78,149,215,21,167,13,201,63,24,186,22,220,141,210,9,99,247,32,68,141, -49,145,209,7,82,72,232,234,70,117,251,192,153,201,10,118,108,25,187,79, -198,113,218,164,166,162,108,62,16,61,18,158,191,240,99,32,197,136,40,131, -214,158,208,183,152,250,74,89,25,100,120,50,116,93,54,84,105,190,113,185, -214,175,190,187,164,140,110,12,79,134,174,207,235,29,131,173,191,209,92, -46,168,212,49,180,119,66,52,24,19,9,126,204,215,87,126,80,125,124,195,153, -121,181,199,220,66,241,9,211,124,207,193,93,11,18,6,98,255,73,215,118,36, -177,249,125,175,151,165,50,146,177,197,183,119,66,212,104,27,9,195,152, -147,157,242,131,250,118,197,234,68,24,126,49,12,30,85,253,200,112,126,74, -200,92,177,171,136,68,207,56,60,241,125,79,10,145,164,242,245,215,151,11, -70,141,140,143,79,252,24,81,174,64,249,150,113,12,185,109,114,251,78,225, -20,97,248,196,247,30,170,191,176,70,231,128,163,65,169,72,232,238,248,206, -35,6,226,48,130,118,88,39,140,99,194,184,43,85,173,9,253,115,185,63,227, -232,145,0,166,250,70,117,189,162,99,135,111,127,225,189,39,197,132,96,242, -250,233,28,182,190,226,108,98,236,59,112,31,212,77,133,210,137,216,221, -25,218,128,105,62,40,11,67,28,62,241,253,8,229,21,99,84,230,57,204,38,49, -177,199,63,126,77,158,238,223,113,70,145,198,142,177,187,147,84,137,45, -10,146,127,146,146,65,155,200,232,7,82,212,203,253,117,58,48,182,119,188, -79,104,231,144,177,37,248,0,182,166,186,253,133,115,10,21,61,99,255,164, -239,178,91,92,82,6,91,229,245,161,77,174,46,199,238,145,215,207,20,37,180, -109,40,174,223,112,78,103,228,171,123,224,251,97,90,163,42,187,236,221, -110,88,21,137,253,157,190,235,136,201,226,154,111,212,77,195,226,81,36, -41,191,126,120,50,180,3,41,141,36,108,222,159,215,11,38,181,12,207,7,99, -84,88,147,24,71,79,12,96,138,43,213,183,143,172,242,233,59,238,247,7,131, -84,124,124,187,82,185,217,68,72,72,190,101,104,127,226,7,63,153,5,25,180, -239,9,67,222,223,213,229,130,209,234,32,63,187,241,125,151,68,28,123,188, -8,67,85,83,152,34,23,7,99,203,227,243,78,27,13,151,31,55,174,133,91,92, -21,243,6,208,168,20,241,125,71,251,248,164,237,19,65,20,174,186,242,227, -199,141,146,145,246,241,139,95,143,30,63,142,68,52,118,12,140,221,29,87, -94,184,126,187,97,67,79,215,141,68,87,99,148,58,104,59,136,100,244,171, -107,159,124,62,250,236,250,137,163,106,174,124,251,214,96,85,194,119,45, -237,231,131,46,76,138,125,69,195,183,191,63,104,156,33,180,15,30,247,7, -163,118,48,120,198,24,16,91,113,249,248,139,111,23,135,38,49,246,109,190, -126,31,51,114,87,94,39,136,94,113,144,208,139,49,226,189,167,44,74,140, -177,75,112,20,178,169,201,66,24,216,40,194,76,80,69,76,185,114,210,106, -55,241,152,51,207,20,227,36,65,170,15,18,23,50,153,198,104,163,17,245,178, -68,83,138,156,165,3,49,6,244,82,217,200,65,213,45,164,252,254,102,134,203, -118,109,131,144,2,90,79,129,101,195,106,148,201,170,59,255,28,101,94,148, -35,165,176,58,143,6,134,56,78,4,63,125,68,87,68,24,99,196,104,141,22,125, -128,94,36,205,239,111,166,202,70,54,28,3,73,105,185,191,122,129,59,1,173, -113,83,159,45,132,152,33,40,244,162,3,191,206,177,98,152,190,223,92,185, -200,198,113,131,24,34,202,232,188,16,213,190,93,146,223,223,76,222,206, -25,246,234,241,221,131,160,47,148,205,37,163,24,18,242,97,46,5,174,169, -208,227,157,206,71,148,107,40,191,93,81,254,65,215,182,25,217,247,45,254, -217,162,202,15,170,170,204,150,160,221,147,16,65,87,63,168,47,21,122,124, -208,15,3,216,27,197,199,13,149,90,250,71,155,177,122,52,218,148,184,166, -33,69,65,234,15,138,9,65,152,73,70,18,238,244,143,7,33,10,116,255,144,122, -157,15,175,235,5,103,33,180,191,24,188,194,53,151,28,60,98,199,216,62,136, -186,161,116,134,52,252,195,208,245,136,110,48,213,149,170,28,241,247,7, -216,34,67,119,225,65,255,104,179,79,121,253,47,202,235,148,217,235,73,39, -63,25,184,4,226,231,19,93,253,160,108,154,233,250,4,136,217,160,198,54, -148,117,66,58,133,155,180,11,102,20,33,244,159,120,159,80,69,67,245,237, -10,99,254,60,152,2,93,255,137,239,122,68,215,216,234,70,85,122,252,253, -153,175,79,205,199,100,68,134,39,190,139,152,230,59,69,237,208,8,146,60, -193,71,180,189,80,215,66,215,131,41,86,85,97,28,137,195,175,92,213,234, -10,99,47,148,214,231,103,54,185,164,37,255,96,184,63,178,3,89,251,15,207, -78,231,239,115,187,98,13,164,238,206,48,68,84,113,161,250,152,174,255,217, -45,89,104,26,30,12,109,75,84,6,235,46,216,203,15,116,247,111,188,152,92, -61,142,79,134,251,147,49,37,84,247,191,60,59,133,50,21,197,245,138,85,61, -253,227,78,76,22,107,20,50,145,91,149,2,163,28,214,229,100,205,247,30,165, -43,116,117,165,114,61,254,209,78,213,175,70,187,188,126,98,16,76,245,65, -81,79,207,71,169,92,89,246,63,137,20,84,174,204,235,169,127,48,116,30,85, -221,176,133,69,194,157,225,241,36,164,4,221,255,18,123,61,93,95,70,138, -102,226,150,50,14,149,66,118,198,139,96,202,239,84,206,16,187,255,101,28, -2,232,18,91,94,168,157,101,120,180,96,44,154,188,71,134,103,75,84,26,87, -212,184,250,7,90,253,155,81,12,154,64,234,30,244,195,8,246,74,249,237,3, -21,159,12,143,110,233,189,167,177,101,120,220,137,230,70,241,241,129,53, -204,218,202,217,176,46,62,25,238,119,210,244,243,121,239,228,94,88,32,246, -121,125,84,165,208,15,96,108,70,181,50,242,49,146,134,59,189,143,104,215, -80,125,187,65,184,211,63,186,201,129,46,48,118,159,121,255,152,6,91,223, -168,42,207,248,249,32,217,18,173,12,18,60,237,227,78,79,205,117,69,166, -155,207,86,101,11,92,221,144,2,72,117,91,16,194,220,86,157,166,133,150, -2,101,50,145,217,141,239,41,83,80,55,21,195,99,160,107,123,170,194,97,36, -208,183,15,238,94,113,249,184,113,117,154,20,124,6,213,148,198,216,233, -218,62,127,209,138,163,185,252,205,191,110,137,238,254,111,30,222,51,198, -68,89,22,84,151,15,82,76,252,50,53,63,110,87,234,202,101,235,92,147,209, -141,40,6,107,13,195,240,139,127,254,45,240,237,202,165,174,208,74,16,137, -140,143,159,252,187,245,168,226,198,183,191,191,145,233,54,217,225,82,197, -129,251,207,59,189,114,92,190,253,205,205,8,195,243,147,123,235,241,94, -40,213,192,243,243,23,79,15,197,245,131,219,95,55,98,247,147,207,118,26, -21,76,158,231,175,95,180,88,154,235,223,252,75,37,186,199,79,30,222,231, -10,126,173,157,61,107,187,103,181,58,69,81,22,155,32,158,251,223,102,5, -133,239,105,241,106,9,14,91,24,94,150,170,88,45,144,231,113,56,56,223,116, -181,244,196,146,64,10,153,13,157,165,222,21,70,79,194,46,27,203,175,105, -36,70,41,172,50,155,234,126,153,237,156,146,1,107,12,106,150,0,56,105,227, -47,154,246,50,243,50,50,36,101,140,5,165,176,198,190,39,216,105,48,156, -49,137,167,7,170,5,131,61,218,23,46,49,88,99,76,238,33,205,35,102,113,130, -196,148,205,208,114,134,116,212,118,82,96,101,59,106,140,93,94,255,106, -193,188,160,84,99,204,148,185,238,228,1,38,38,187,181,51,203,51,145,66, -143,239,186,28,216,46,31,56,171,115,143,185,127,224,199,136,177,53,42,182, -248,160,209,213,119,202,210,162,196,231,131,26,135,38,16,186,30,49,147, -7,183,22,82,85,227,82,132,160,48,206,34,195,61,31,94,229,45,195,178,50, -18,124,64,219,6,87,87,83,5,234,9,67,4,119,163,186,222,176,102,238,183,134, -156,64,180,35,184,111,92,126,92,94,247,94,101,56,59,244,159,140,62,161, -203,239,249,48,14,125,174,214,197,226,202,10,53,62,25,250,128,174,254,162, -186,54,104,21,9,109,155,57,2,69,1,195,61,7,63,211,80,93,46,83,155,232,101, -88,68,138,72,28,136,67,204,68,193,219,7,86,191,108,125,33,225,92,34,133, -39,99,0,83,94,112,117,137,34,145,226,144,175,37,104,76,245,157,162,114, -72,242,153,196,99,42,172,115,136,191,51,244,49,39,14,151,6,163,34,161,243, -160,75,92,213,96,245,100,255,57,60,240,125,143,184,43,85,93,78,61,72,80, -218,97,75,77,242,45,99,16,76,121,165,156,91,110,41,16,134,79,134,46,160, -203,111,84,77,141,209,145,177,109,115,139,161,44,81,161,197,119,3,148,223, -184,52,205,148,248,205,235,110,100,124,62,136,81,231,164,162,152,158,255, -16,65,23,249,254,141,15,134,238,73,212,21,229,245,150,73,148,190,101,192, -98,202,26,45,3,67,55,162,234,31,220,234,50,247,218,151,140,120,192,63,123, -68,87,148,85,65,74,61,90,215,88,167,16,137,232,178,66,227,25,251,124,253, -229,165,193,232,64,104,35,216,42,39,130,234,181,126,84,113,163,188,230, -0,167,38,200,57,141,61,97,76,104,119,193,90,33,246,143,236,27,239,46,84, -85,129,132,12,233,171,250,7,215,186,92,237,253,87,145,145,145,48,135,140, -61,99,244,40,87,81,94,27,140,150,156,188,13,1,85,126,163,186,212,24,21, -25,219,39,98,234,124,190,134,7,67,251,200,247,231,242,65,81,56,100,124, -16,200,173,175,228,239,121,237,23,55,202,202,161,196,19,198,128,114,249, -251,105,6,124,119,103,12,228,182,137,157,138,135,25,181,139,61,99,123,103, -12,58,255,220,216,233,231,243,61,46,80,133,38,133,150,16,19,166,156,188, -233,37,115,69,124,59,33,91,213,119,202,210,129,12,140,67,2,83,96,157,157, -144,179,136,174,127,228,2,64,7,66,59,34,166,162,168,43,180,140,180,207, -59,173,87,148,183,11,151,210,188,64,71,153,171,158,121,127,95,169,63,110, -152,149,167,70,174,126,115,123,110,158,210,81,198,78,149,242,235,240,214, -198,226,202,18,215,141,116,227,136,247,35,138,142,103,27,48,197,7,77,9, -221,227,31,62,127,182,120,12,213,245,198,237,82,16,158,15,250,1,220,71, -77,57,185,88,198,164,208,174,192,57,147,219,147,227,192,16,20,69,125,225, -122,109,230,241,179,133,99,162,139,11,31,223,65,125,254,226,62,60,184,63, -20,88,203,197,36,124,251,224,209,5,76,253,141,239,151,6,55,183,27,36,17, -198,142,251,189,99,84,37,183,239,31,52,86,33,177,167,151,132,50,5,206,38, -124,155,247,206,199,223,223,104,106,135,73,3,207,86,99,157,163,116,145, -238,243,153,221,245,62,26,74,171,166,123,37,104,87,96,55,20,250,213,72, -92,146,148,71,226,214,79,66,142,83,173,91,210,199,139,44,183,213,26,122, -113,144,231,32,114,222,164,150,149,188,222,139,88,63,19,163,230,107,209, -74,109,93,223,118,162,254,91,138,232,154,124,170,22,67,139,141,156,234, -50,146,157,95,173,23,232,122,98,136,79,149,180,90,219,16,157,16,99,20,199, -17,136,109,250,48,5,97,205,150,69,191,159,125,159,41,67,107,151,56,182, -1,125,171,123,178,173,208,149,222,138,125,108,52,200,22,2,220,11,218,218, -194,24,242,178,103,140,45,190,109,9,201,225,154,43,206,42,36,245,140,237, -131,16,192,216,58,87,127,201,226,46,23,156,179,144,124,134,122,71,48,69, -129,132,142,168,74,138,230,130,209,185,39,25,251,62,7,132,162,68,133,39, -125,223,229,222,95,28,9,157,198,216,106,170,82,167,234,217,63,115,239,94, -85,20,77,51,245,44,39,38,189,111,115,2,98,74,170,250,130,177,110,241,205, -78,18,137,221,157,113,136,168,242,131,178,114,48,182,12,93,75,20,135,187, -84,232,208,49,250,136,110,254,206,100,56,60,99,219,18,83,65,113,169,80, -241,145,15,231,226,74,89,85,175,126,233,188,112,82,66,198,150,161,235,72, -170,164,184,92,166,224,190,101,151,200,248,96,244,30,177,13,101,85,231, -202,58,116,140,109,203,40,22,215,228,233,1,53,145,204,66,80,216,170,65, -167,39,222,7,116,253,131,162,170,208,202,51,182,29,33,22,184,235,5,231, -20,66,238,13,14,125,15,246,66,89,215,203,30,89,120,70,190,101,28,6,196, -94,40,155,58,39,192,105,69,54,171,255,162,168,106,180,26,25,251,142,16, -29,197,165,193,72,139,239,123,162,154,18,52,103,94,7,91,232,240,237,51, -39,74,205,53,63,127,241,140,237,131,49,104,108,125,197,72,135,239,91,146, -186,80,127,92,113,133,67,11,164,242,66,229,106,210,248,204,201,131,185, -76,236,126,189,224,109,50,182,25,78,214,53,69,157,251,247,152,134,210,38, -98,204,1,206,164,156,12,170,250,7,213,124,253,93,75,12,150,226,114,195, -89,50,58,208,118,36,157,159,207,18,220,85,134,181,99,239,17,74,156,129, -208,127,18,131,160,202,15,234,194,33,227,212,114,176,13,101,125,57,144, -205,50,55,36,18,71,79,26,71,208,197,196,79,112,104,98,38,12,250,215,253, -53,42,228,235,139,142,242,114,193,208,49,118,45,73,55,212,151,213,4,130, -186,80,26,187,64,238,17,65,133,145,212,43,148,173,112,245,141,170,40,114, -34,31,103,22,238,200,240,249,63,196,250,70,217,92,113,206,188,72,102,146, -201,169,195,231,255,33,214,87,170,203,21,107,230,66,97,226,141,244,3,226, -46,175,245,25,123,252,115,245,124,11,7,105,200,207,119,84,216,234,130,142, -45,126,204,235,179,172,115,178,229,187,150,152,92,70,95,140,48,60,31,180, -125,192,214,31,92,170,29,19,95,18,105,156,218,82,243,254,86,43,159,145, -20,241,253,157,207,207,150,33,68,4,133,45,27,174,215,15,46,181,101,121, -55,137,140,99,79,215,123,124,4,91,104,52,61,237,227,201,168,106,174,215, -18,99,12,85,125,37,141,137,46,24,170,66,51,62,63,121,60,58,198,164,48,255, -219,243,80,130,66,163,139,154,219,173,161,208,144,134,150,231,179,39,185, -154,143,75,149,201,114,74,182,228,101,109,41,155,75,222,23,191,30,4,20, -90,18,67,251,228,217,135,220,146,107,42,220,66,102,72,164,177,227,249,249, -164,23,199,229,227,66,237,52,196,128,239,58,124,114,84,183,6,237,59,6,47, -216,250,70,83,23,24,60,221,227,65,31,52,101,109,9,143,59,143,103,190,126, -253,127,6,30,115,145,93,212,92,111,205,10,162,159,62,215,143,158,16,2,69, -81,224,172,61,50,123,119,99,9,114,58,87,206,193,111,251,140,244,118,62, -66,249,82,2,74,139,82,220,138,104,4,167,149,235,70,228,123,165,116,244, -146,95,220,234,103,31,44,81,247,30,42,10,98,204,65,194,232,87,197,251,231, -130,21,103,98,48,114,144,169,221,88,191,175,216,111,106,66,14,162,8,70, -235,201,252,96,61,50,183,159,239,2,78,140,9,231,164,99,102,160,175,239, -157,250,66,158,66,226,116,120,71,135,109,174,20,86,145,134,7,190,111,51, -121,171,44,115,207,28,131,171,167,195,36,244,140,93,75,8,10,83,85,185,242, -139,96,46,13,214,89,20,35,227,112,199,143,130,46,74,116,242,153,237,126, -203,108,233,151,115,151,158,136,109,228,0,208,63,73,148,57,0,56,187,84, -94,209,63,114,112,215,77,134,92,173,89,80,29,145,64,236,159,19,83,250,138, -43,11,196,63,232,219,39,81,149,148,151,10,29,61,163,31,81,229,37,7,55,25, -24,187,46,251,146,215,53,58,118,12,221,128,42,174,249,231,230,101,89,59, -67,31,105,156,184,5,82,82,212,151,227,40,17,66,234,159,248,41,184,23,69, -141,49,211,168,217,208,51,38,131,109,174,153,237,31,59,134,174,205,149, -88,213,100,36,99,74,46,138,186,198,202,192,208,61,25,163,161,168,175,216, -194,101,82,99,159,131,48,166,161,172,154,37,9,89,152,239,195,3,63,12,224, -46,148,69,133,81,26,69,32,12,15,198,33,228,251,83,255,63,188,189,219,150, -228,56,174,36,106,160,36,191,70,100,86,237,61,251,255,63,107,94,230,241, -244,158,151,153,238,202,136,240,155,46,196,121,160,36,2,32,40,247,200,234, -53,177,86,175,206,138,139,187,92,34,9,192,96,48,219,163,137,247,148,112, -76,233,240,110,48,160,191,222,192,77,10,110,93,23,132,141,110,143,225,126, -77,108,247,245,250,231,191,31,9,205,241,13,93,24,48,220,175,152,232,128, -253,233,13,109,215,169,36,63,142,23,12,247,71,170,100,15,57,184,3,0,15, -87,12,247,11,34,29,208,54,132,56,222,193,97,159,184,86,195,0,116,71,52, -28,49,13,233,249,238,14,7,16,63,48,94,175,9,26,63,164,128,196,227,21,195, -237,130,9,123,236,14,111,51,122,183,92,67,196,56,60,48,140,137,75,16,135, -27,208,236,209,30,15,2,246,191,33,54,39,236,247,231,68,202,82,252,216,41, -245,217,239,183,84,93,54,13,154,246,152,38,22,40,98,186,95,48,244,243,243, -59,28,16,226,29,195,237,150,80,156,195,25,129,70,140,183,116,127,118,75, -130,180,30,13,19,226,227,138,113,12,232,222,255,11,167,125,151,231,246, -155,0,162,102,165,237,80,115,192,238,220,34,52,95,120,220,110,133,107,35, -53,7,236,222,91,132,238,43,61,207,85,91,122,214,76,152,219,27,104,83,112, -79,19,74,137,63,50,68,241,124,199,123,226,200,12,64,115,56,162,225,17,227, -48,33,236,126,36,166,59,39,14,206,56,147,36,219,93,131,120,191,224,118, -77,137,229,241,116,64,215,24,94,214,52,39,128,216,97,119,60,166,138,25, -217,157,17,77,131,221,225,29,127,238,206,89,132,44,52,9,101,157,199,237, -226,216,227,118,255,194,229,193,104,118,103,252,249,95,127,98,215,2,195, -237,23,190,134,8,58,238,177,159,207,134,161,127,160,31,67,66,118,226,3, -151,7,99,247,227,63,241,159,167,253,74,246,75,72,235,76,126,28,111,248, -186,92,113,231,22,239,167,19,246,157,152,101,215,213,99,106,85,60,122,140, -232,176,63,157,208,198,7,46,215,27,198,230,140,243,97,143,78,82,214,226, -136,219,245,138,75,15,236,127,30,113,220,181,160,56,224,126,251,194,229, -58,130,246,111,216,135,1,253,165,7,239,223,113,58,30,208,114,143,219,229, -11,215,7,208,157,142,104,209,227,218,51,246,243,245,55,226,76,95,174,191, -149,100,128,24,39,60,250,30,251,110,135,174,237,244,92,176,17,251,208,90, -103,228,168,158,89,97,137,114,244,72,142,209,177,144,145,91,189,157,41, -217,13,34,232,177,46,182,243,117,235,44,104,89,205,115,49,55,76,243,248, -153,227,101,68,154,12,184,246,221,233,251,138,147,133,106,29,59,13,1,214, -34,177,147,197,76,105,0,0,32,0,73,68,65,84,242,243,205,254,112,169,26,12, -179,40,196,178,244,169,20,166,1,172,170,153,72,46,140,89,143,231,113,175, -199,60,251,196,22,30,8,237,97,143,134,70,244,151,11,134,97,72,16,244,241, -128,48,93,113,191,166,138,49,208,132,233,158,8,119,19,150,42,118,64,255, -24,19,17,7,17,60,61,48,14,87,244,15,74,135,111,59,160,255,124,32,226,132, -46,100,241,18,52,29,66,152,209,135,56,166,113,179,145,18,137,111,246,14, -32,138,136,227,13,253,229,130,216,188,165,96,55,183,117,22,146,32,143,119, -12,215,11,98,51,195,164,215,127,98,184,93,48,132,55,156,223,78,104,226, -13,247,219,136,112,124,75,48,98,28,49,92,255,194,99,234,176,59,188,161, -107,24,195,253,129,137,9,187,208,128,227,128,200,4,52,93,86,85,140,35,226, -227,130,113,4,218,195,62,93,223,60,226,55,135,214,84,5,221,62,48,225,128, -54,164,126,95,68,3,154,238,24,30,119,112,243,134,192,17,113,38,8,70,236, -208,29,143,104,249,138,251,109,64,56,188,175,48,103,127,253,11,253,216, -166,68,98,215,206,252,136,68,142,227,230,125,78,114,130,144,41,229,57,81, -251,196,132,35,218,144,250,143,224,0,194,29,253,237,14,116,51,220,221,127, -225,118,79,61,254,221,57,29,30,247,175,47,112,243,134,221,233,60,183,68, -50,225,106,26,239,51,34,240,6,90,158,255,227,142,136,195,204,115,24,48, -92,46,136,52,183,53,218,70,173,85,158,174,232,47,31,24,145,198,160,104, -30,65,69,104,64,252,192,112,253,196,212,36,132,98,188,222,128,221,97,254, -247,61,177,223,105,194,112,187,131,186,3,218,46,128,135,79,60,30,119,68, -58,162,59,157,177,219,133,84,89,63,190,208,15,64,123,156,215,143,240,224, -230,56,32,62,46,152,152,0,116,104,186,51,186,221,62,77,135,76,87,244,151, -79,76,116,64,215,237,83,192,157,0,162,118,102,146,247,24,239,95,24,39,66, -179,63,97,223,68,12,95,23,196,121,90,96,234,191,240,184,220,193,187,227, -124,125,31,73,151,129,142,9,25,161,185,181,17,78,216,29,82,242,36,207,142, -56,245,24,134,7,56,156,64,109,147,206,134,128,196,208,167,89,108,106,138, -89,200,40,14,152,134,1,212,158,208,29,211,154,143,99,159,209,186,56,96, -26,198,148,228,205,235,4,196,224,241,62,127,206,35,218,166,65,28,30,64, -108,0,190,163,127,60,192,141,120,190,203,254,62,29,209,196,235,188,127, -206,41,184,99,194,112,253,133,126,106,209,29,207,41,97,143,17,211,240,192, -125,34,28,206,123,236,90,51,209,20,71,140,247,11,134,129,231,231,147,70, -129,211,220,123,214,44,161,166,77,109,186,149,79,156,98,69,156,82,239,249, -54,76,8,251,55,188,255,60,98,223,53,51,169,118,64,63,76,201,234,153,71, -12,195,0,238,31,184,124,62,192,251,55,28,246,13,134,175,1,3,3,167,25,33, -77,103,99,139,174,157,255,139,39,140,253,3,215,199,0,236,14,32,74,252,48, -160,1,97,194,48,102,89,119,142,19,30,215,15,92,6,194,241,199,15,188,29, -82,114,211,143,19,184,73,232,211,48,183,160,219,38,32,198,17,125,63,96, -138,13,154,152,70,236,110,215,11,110,3,163,59,189,227,180,39,60,126,93, -112,199,1,167,182,5,143,119,92,238,23,220,70,194,225,237,29,199,29,112, -251,248,194,24,129,99,72,201,206,130,213,182,93,88,207,207,86,82,248,251, -71,143,64,132,110,183,7,130,152,77,175,168,10,129,236,212,59,185,138,155, -133,226,142,171,181,204,144,124,128,56,77,201,204,101,30,19,144,35,144, -82,110,114,157,179,36,51,251,78,218,46,148,77,249,107,157,140,72,23,93, -152,230,190,123,219,54,248,157,240,94,173,246,115,63,0,168,216,139,18,3, -227,140,94,116,161,213,159,143,181,188,110,1,61,152,127,102,238,4,108,55, -166,50,86,153,24,173,253,253,142,137,9,241,50,160,111,246,216,29,78,56, -254,248,137,48,123,222,39,122,115,196,116,255,192,181,255,156,231,85,255, -3,167,110,30,57,99,70,104,90,208,253,142,254,235,129,129,0,52,123,116,199, -63,176,63,118,160,49,166,86,194,35,137,189,60,0,208,238,13,135,183,159, -137,60,24,48,143,117,77,136,67,143,126,236,49,244,39,236,207,63,177,107, -39,140,247,4,137,119,167,51,218,150,214,126,243,146,208,197,113,192,52, -14,152,198,79,196,120,66,219,54,8,135,51,246,109,130,13,251,219,152,8,129, -135,68,132,153,198,235,12,139,255,192,110,223,130,104,76,243,173,227,13, -253,215,3,125,32,132,238,13,251,243,31,235,1,16,57,77,118,196,161,199,48, -254,31,12,221,9,251,183,63,176,23,106,92,113,232,49,13,3,70,78,227,78,251, -243,27,66,219,0,120,164,67,241,241,129,219,227,35,221,191,227,159,216,239, -90,80,188,97,184,14,64,119,74,201,20,49,166,254,58,39,58,105,60,45,245, -207,31,152,110,247,20,132,78,103,180,109,208,188,20,164,222,243,52,12,24, -1,160,109,176,63,156,17,248,134,199,215,47,60,30,17,97,236,49,222,144,250, -207,115,143,53,208,128,241,122,3,99,143,118,121,93,181,237,19,193,147,192, -136,143,95,184,61,8,97,119,66,119,248,19,199,93,135,128,244,247,35,239, -176,59,189,173,226,71,43,146,23,135,89,199,96,0,211,23,166,95,23,16,1,97, -255,150,96,206,241,142,137,19,243,156,199,11,56,236,208,237,91,196,123, -106,197,236,218,136,225,250,43,245,129,199,30,195,61,221,191,246,240,7, -78,251,93,226,141,113,234,209,115,76,26,11,195,87,143,113,247,134,221,233, -7,246,187,54,41,98,14,183,185,215,254,3,187,211,27,246,221,60,62,25,251, -132,138,244,61,152,166,4,33,3,8,187,119,236,79,71,96,248,196,227,50,130, -246,71,236,222,222,208,181,1,211,253,87,34,32,118,4,12,23,60,46,191,240, -232,35,194,244,192,116,35,208,238,56,223,159,22,1,3,250,219,5,35,119,9, -253,106,61,227,209,196,83,154,30,95,224,225,11,15,38,132,221,91,90,255, -225,142,199,237,3,143,91,159,31,74,187,71,119,56,227,120,56,38,152,252, -242,11,247,123,143,121,38,18,104,118,232,142,103,28,15,167,180,63,231,2, -105,26,122,76,227,178,62,27,236,78,111,104,186,6,232,123,4,68,140,143,15, -220,122,164,231,187,255,51,33,9,211,21,143,251,178,62,19,199,97,188,39, -126,73,123,120,95,133,170,40,14,201,156,12,29,66,155,123,230,107,243,144, -38,48,167,10,188,191,140,24,30,71,236,79,63,177,219,7,225,173,32,84,45, -133,64,12,79,119,92,62,174,184,97,135,243,159,103,28,118,173,24,217,4,16, -58,236,14,7,236,110,15,92,174,127,225,159,183,20,15,218,253,27,126,190, -29,177,111,35,208,53,8,215,11,190,254,213,227,139,0,10,123,156,222,126, -224,231,143,195,76,64,158,17,43,30,49,92,127,225,159,183,47,236,79,111, -248,241,126,64,188,125,226,227,243,142,145,227,76,182,221,225,120,58,226, -199,127,158,113,104,83,75,119,106,58,116,129,113,185,125,224,159,183,15, -160,217,225,116,254,129,63,126,30,209,132,54,161,21,183,59,62,254,245,192, -71,179,199,241,116,194,251,127,156,176,111,24,143,207,191,112,185,220,112, -199,128,254,254,5,106,15,56,157,79,248,227,143,227,140,116,77,232,186,22, -225,114,193,215,95,255,7,95,72,231,235,233,237,29,63,127,156,208,17,131, -120,2,253,127,151,127,48,152,49,142,35,238,247,59,246,135,3,186,174,203, -176,187,171,152,37,77,234,89,217,48,62,23,217,49,9,3,11,136,127,209,27, -150,243,219,68,69,96,42,244,85,193,197,128,63,203,62,60,177,10,116,165, -215,185,157,85,76,125,169,197,68,228,247,190,74,141,245,66,117,73,209,235, -105,157,102,224,152,62,65,176,86,175,156,221,209,200,42,248,185,222,213, -156,161,125,192,151,244,116,194,61,199,8,142,147,232,87,164,89,233,32,36, -243,82,102,28,115,39,36,204,162,14,66,231,35,205,181,138,135,70,13,136, -18,84,70,96,76,179,148,44,173,73,79,43,166,51,230,74,124,74,236,228,244, -81,155,117,172,108,25,81,10,82,84,71,60,67,142,35,16,151,229,53,207,241, -114,130,174,128,41,93,215,204,128,7,243,252,121,40,207,132,99,158,59,21, -192,83,8,66,200,133,24,28,19,67,118,133,60,3,33,132,76,64,101,38,32,78, -136,179,167,66,18,153,89,164,69,35,34,79,217,247,65,124,54,240,44,3,76, -139,108,47,192,60,165,202,59,72,25,214,56,143,132,206,34,48,102,34,130, -230,191,227,152,145,46,76,143,185,114,62,38,72,180,93,152,50,205,58,143, -159,70,162,230,81,165,80,42,147,37,125,246,105,22,157,90,110,78,35,36,128, -147,204,44,144,229,111,37,119,135,145,94,63,178,209,182,155,239,193,58, -8,76,203,191,231,235,154,166,68,74,188,127,98,228,67,130,147,231,57,229, -244,183,65,43,25,207,215,193,75,128,152,239,19,226,136,105,188,37,161,161, -230,136,221,97,65,24,178,59,90,140,233,222,42,171,120,106,230,117,148,5, -157,86,47,138,121,63,36,210,228,39,70,28,112,56,156,209,180,84,232,25,164, -190,253,114,127,200,61,22,151,121,117,86,109,195,6,52,39,207,60,69,193, -179,153,101,158,23,242,115,140,243,53,138,251,78,148,214,95,96,209,185, -92,174,123,94,135,212,128,154,89,180,135,147,28,247,186,160,150,169,159, -249,111,34,120,222,203,88,247,35,131,102,97,151,121,18,171,79,179,225,95, -211,30,63,255,252,3,111,135,86,187,88,179,120,62,235,26,154,133,97,148, -138,156,96,20,173,250,40,179,46,194,124,46,145,163,61,194,49,173,209,116, -6,205,252,173,208,32,52,137,98,61,77,9,149,145,54,185,105,186,73,156,153, -243,107,8,6,54,26,194,90,128,202,22,105,88,200,217,171,6,66,26,173,150, -98,109,233,253,115,11,58,10,201,136,38,52,160,16,49,222,175,248,252,184, -32,238,18,19,63,65,251,179,158,67,144,40,88,196,52,233,216,23,86,130,59, -35,14,119,208,63,46,255,224,20,220,123,52,129,112,60,29,203,0,36,224,109, -41,115,103,165,252,124,129,157,98,208,28,133,43,135,8,208,145,57,205,247, -18,205,2,10,90,145,73,50,135,106,179,232,69,232,90,164,28,89,251,220,219, -106,118,101,108,78,73,45,46,141,102,252,205,234,93,6,122,117,1,86,23,120, -169,110,210,152,28,133,153,237,254,84,213,82,160,38,74,212,134,11,148,66, -114,35,184,144,172,221,146,71,210,140,11,150,173,13,35,252,86,216,60,82, -73,36,92,204,91,36,39,128,125,64,167,234,60,231,192,73,197,181,242,134, -155,51,187,77,37,103,21,171,181,203,218,44,7,78,238,70,79,36,37,189,239, -23,63,175,221,84,218,248,67,167,229,100,222,44,14,55,12,43,41,238,39,118, -93,112,124,71,108,211,71,138,140,110,173,69,223,66,173,92,81,172,156,238, -202,180,212,127,93,2,167,25,231,219,39,34,119,104,79,63,177,235,26,253, -62,82,181,202,184,100,50,82,162,19,167,71,66,127,98,64,115,56,163,155,137, -106,171,114,164,57,83,172,161,217,214,210,227,153,143,49,113,131,238,248, -7,186,221,134,250,27,111,220,59,35,136,165,158,203,10,228,233,3,140,170, -70,146,178,102,214,199,239,50,98,167,202,34,137,122,242,134,201,74,161, -90,74,133,16,241,52,220,241,241,175,127,225,50,237,241,243,207,159,107, -128,47,172,55,152,180,212,57,137,235,229,156,22,242,90,236,121,86,211,222, -98,91,132,204,88,173,36,250,134,90,176,251,104,42,59,66,77,45,57,110,172, -117,1,180,252,253,177,191,224,242,121,65,143,29,206,63,255,192,169,171, -29,113,180,65,4,163,117,191,183,83,140,120,60,30,104,154,38,65,43,176,126, -221,84,88,246,105,97,231,10,231,140,178,94,50,73,245,54,11,209,171,224, -55,187,164,181,141,214,87,183,100,61,81,144,84,245,31,57,67,60,90,202,83, -154,20,120,183,139,19,185,130,54,66,59,189,74,180,43,71,8,87,165,186,226, -88,165,213,142,114,241,183,103,233,32,55,87,228,210,68,35,27,187,155,252, -139,236,81,90,30,246,190,246,60,23,178,197,57,105,224,74,206,34,182,13, -177,31,160,84,95,5,171,194,22,115,153,11,48,213,34,67,137,28,249,134,58, -150,29,226,61,100,214,210,190,76,37,201,114,118,138,19,118,99,58,248,177, -233,60,109,153,70,211,147,211,100,235,196,113,12,101,140,3,186,213,29,116, -144,154,164,207,63,61,250,196,244,63,157,146,52,45,121,73,15,43,102,77, -85,9,243,73,96,223,186,25,254,0,41,87,52,57,145,123,200,253,35,137,42,157, -78,216,117,77,166,245,172,196,71,42,148,45,49,43,180,141,247,207,196,134, -15,123,116,251,55,236,119,187,60,29,3,172,200,33,17,21,157,52,87,66,216, -154,151,196,30,99,255,0,144,219,70,47,169,93,42,107,81,22,211,51,230,13, -151,145,203,245,156,36,181,215,203,224,163,9,185,82,119,126,69,245,86,67, -167,242,249,177,43,115,107,189,44,202,181,162,38,71,136,208,118,59,28,187, -110,229,112,228,233,31,193,118,90,199,73,197,217,197,44,90,177,246,10,8, -181,163,95,111,103,206,72,133,136,47,44,85,79,171,85,162,80,241,148,133, -136,176,74,90,56,94,100,237,114,23,71,63,174,104,160,87,22,70,156,6,12, -143,7,166,176,199,241,116,198,161,221,146,170,213,73,139,13,70,171,141, -245,255,250,63,255,139,167,105,194,241,112,68,211,54,229,149,112,89,74, -89,99,25,42,169,109,133,139,216,50,78,160,83,78,29,244,198,41,38,113,201, -25,38,97,174,220,143,205,115,164,140,220,171,49,69,49,155,175,191,198,113, -156,229,96,155,153,131,64,207,179,58,247,231,198,119,86,90,224,174,63,94, -250,80,89,110,49,73,24,50,218,144,160,74,183,181,33,161,124,7,246,39,5, -220,229,251,161,91,18,79,63,128,78,171,72,182,107,10,225,66,61,200,64,228, -24,100,67,159,50,196,198,9,43,95,160,242,158,118,131,27,101,71,175,165, -58,97,109,157,249,100,31,161,96,86,178,212,220,135,209,224,23,213,131,208, -26,112,11,233,154,69,250,86,112,223,42,141,213,66,45,237,164,200,152,111, -108,21,154,52,67,122,152,181,177,221,150,150,198,221,54,177,28,223,252, -220,187,13,244,2,222,178,149,53,103,71,181,165,29,129,16,102,37,75,210, -201,22,121,251,101,105,151,228,182,12,145,132,129,205,106,119,140,183,94, -145,178,94,96,119,94,94,251,183,144,62,77,198,37,130,33,54,3,214,78,87, -47,159,202,236,174,176,97,149,43,70,157,225,139,244,43,249,120,152,183, -15,55,11,232,121,143,199,121,205,133,134,138,142,37,86,103,53,118,194,19, -155,169,31,232,209,96,218,218,71,6,45,133,12,184,40,12,100,54,93,227,60, -206,152,60,191,212,11,137,125,100,59,219,219,183,51,151,151,113,154,213, -61,67,5,193,116,98,179,65,171,86,221,19,102,208,255,252,223,255,147,143, -135,83,26,131,176,88,163,99,147,165,93,187,233,105,129,194,110,214,197, -78,122,153,161,116,82,7,173,51,158,39,109,96,85,128,16,140,113,99,57,75, -68,27,117,198,188,184,99,92,251,254,244,10,100,243,236,251,170,242,149, -153,46,21,110,78,137,180,21,139,94,42,121,167,162,215,203,151,1,15,164, -140,39,54,142,206,124,69,214,4,199,57,180,85,174,111,179,123,89,61,20,46, -83,216,112,235,179,118,38,181,17,200,178,14,100,183,234,43,1,95,50,231, -189,119,16,146,112,133,99,91,246,144,243,46,207,49,235,122,112,231,23,178, -15,87,227,161,238,36,249,18,220,248,194,34,38,7,116,125,237,181,203,230, -207,179,115,205,107,46,216,230,17,219,118,203,194,90,54,15,197,179,228, -93,188,2,202,28,162,68,33,233,149,68,12,248,123,124,219,231,168,170,27, -244,73,4,15,53,142,76,149,235,150,163,193,170,144,18,237,213,133,176,75, -230,185,59,86,169,91,112,148,29,132,150,135,151,76,69,170,129,83,85,216, -84,122,103,40,4,208,105,153,192,114,177,242,107,172,159,103,221,82,44,120, -99,164,236,203,183,14,124,82,102,73,114,205,73,20,131,117,226,111,185,232, -175,22,3,53,114,182,139,246,233,54,14,171,241,231,116,93,161,105,26,116, -187,54,111,74,5,199,155,130,159,203,99,159,140,73,172,5,129,1,7,165,144, -171,114,238,165,143,227,76,218,89,136,118,148,125,153,101,24,94,103,229, -87,204,132,139,235,100,209,191,97,179,137,139,30,213,12,237,77,227,152, -196,86,158,101,235,213,7,67,101,165,229,57,224,206,89,50,11,200,8,12,140, -211,152,172,77,107,237,150,108,222,108,94,155,213,6,200,159,217,233,88, -72,232,70,60,7,34,9,234,44,12,125,41,143,67,50,53,81,113,71,201,15,88,223, -67,71,38,88,118,121,200,185,80,217,26,96,97,56,164,63,59,101,244,130,181, -39,25,201,170,81,32,239,204,198,119,217,105,179,175,166,75,107,48,33,221, -149,98,209,21,241,162,20,111,28,224,79,55,52,109,236,108,50,111,192,234, -183,182,146,235,87,163,21,193,90,183,74,103,248,87,35,87,25,220,169,232, -80,194,69,253,96,32,95,172,30,116,80,150,209,73,211,65,6,101,86,93,43,185, -94,22,178,227,250,254,12,131,72,10,4,136,75,240,79,189,224,214,13,230,23, -91,118,92,123,230,84,126,91,162,83,242,169,16,21,103,20,219,107,93,44,115, -55,108,50,25,122,207,47,207,129,108,165,92,65,81,173,196,248,250,93,214, -24,147,131,27,27,114,53,193,235,11,112,41,230,97,107,134,146,40,65,101, -209,70,243,125,96,241,110,68,122,165,50,61,197,102,116,156,99,18,220,178, -156,154,230,245,197,246,49,234,71,205,197,230,168,159,19,246,127,5,55,136, -205,249,174,207,218,176,63,28,54,86,44,9,39,103,54,21,69,237,10,181,228, -205,226,197,189,158,140,158,222,11,24,77,155,156,115,164,224,75,174,168, -68,88,154,77,113,214,96,66,36,136,24,246,210,88,77,232,179,221,183,203, -38,96,70,104,154,52,67,188,117,156,109,86,106,92,122,188,23,81,16,10,230, -205,45,94,70,19,146,150,49,132,195,33,185,129,131,77,202,73,197,134,211, -35,248,92,63,76,68,58,74,44,2,7,107,130,21,153,28,131,159,245,141,229,15, -68,154,92,116,179,231,68,135,237,33,181,38,120,34,43,182,98,5,203,125,216, -110,159,233,126,20,139,106,65,165,4,80,220,128,213,188,72,173,17,81,40, -212,74,80,114,130,3,189,216,214,177,58,9,21,124,143,28,2,27,85,114,11,242, -79,5,231,191,200,61,85,232,91,193,189,254,219,172,177,43,231,93,25,214, -168,214,91,204,108,237,150,23,241,38,81,188,17,83,129,130,240,170,5,97, -73,31,50,174,112,37,177,126,161,205,243,106,85,95,37,73,177,10,120,196, -94,84,32,161,197,174,247,47,121,1,128,141,242,40,139,83,180,128,162,202, -228,203,110,84,189,99,72,60,173,60,118,188,156,183,216,162,146,176,126, -239,20,15,197,10,153,253,78,50,87,41,43,241,17,87,66,149,169,218,72,197, -24,75,130,43,209,7,218,124,168,228,172,70,206,215,165,142,38,201,91,171, -108,80,174,228,242,252,226,26,98,231,217,35,39,69,172,158,18,16,146,174, -54,149,182,190,50,35,103,130,126,116,236,190,31,203,27,172,210,69,150,52, -245,117,129,164,81,169,136,105,76,99,8,65,52,128,200,246,71,97,8,101,202, -27,152,53,111,79,45,66,82,23,104,207,229,41,198,121,230,157,159,51,230, -249,73,239,191,146,134,145,114,143,203,189,54,158,251,162,227,60,114,193, -42,39,120,66,43,23,41,54,177,238,15,21,182,190,44,211,46,187,161,181,53, -111,102,55,178,77,27,50,185,177,254,240,81,72,237,17,231,140,87,212,34, -236,189,30,137,10,133,117,224,43,100,121,161,161,64,61,230,40,95,151,202, -4,75,161,10,172,54,237,2,235,173,7,10,167,160,65,181,184,203,79,250,233, -252,13,232,141,117,137,69,46,94,38,211,238,103,221,1,175,4,37,159,103,1, -79,42,137,220,42,205,175,232,32,118,28,139,125,201,110,172,244,72,130,172, -107,73,133,30,81,237,126,23,135,61,155,9,21,100,82,26,121,232,2,41,226, -42,243,198,217,251,236,153,18,94,63,63,42,73,186,20,230,202,157,73,214, -196,57,101,176,85,94,48,201,226,146,89,212,160,162,112,34,73,194,245,207, -116,187,48,121,93,129,92,236,67,94,215,103,217,199,231,162,143,77,69,217, -76,230,89,17,178,247,137,214,50,217,186,215,100,142,61,222,216,126,164, -210,202,173,135,69,238,190,113,210,81,38,173,74,90,171,202,249,133,239, -115,181,230,22,191,207,149,164,37,159,102,161,188,71,94,195,147,157,15, -108,243,75,3,23,193,129,188,204,96,69,164,164,251,158,88,227,193,135,124, -11,133,91,214,153,154,3,27,201,7,107,200,223,6,225,224,249,253,219,60,143, -250,221,47,54,184,51,180,78,253,10,96,144,65,86,150,69,78,132,46,180,171, -243,91,81,241,171,236,188,146,93,146,60,146,169,72,20,101,155,195,39,44, -178,96,19,75,2,28,187,220,69,213,255,132,110,131,40,214,133,106,126,115, -62,254,137,69,178,107,97,240,60,167,43,95,151,181,54,111,58,74,136,156, -90,180,60,130,216,227,109,65,64,251,180,192,190,164,17,17,50,219,129,159, -52,190,183,54,198,51,152,215,66,169,100,236,38,55,250,0,30,193,187,12,101, -242,112,214,32,56,153,106,157,94,88,240,92,236,57,113,192,139,181,72,149, -224,97,71,172,244,125,51,223,87,123,137,252,234,176,246,13,38,21,220,22, -216,155,68,90,163,28,156,169,220,210,47,157,12,47,31,31,100,138,19,83,91, -170,249,170,188,23,89,180,73,53,71,35,219,75,203,255,102,69,56,3,252,7, -76,94,15,81,180,206,202,100,111,13,138,84,66,245,238,253,114,88,230,106, -13,83,34,176,178,108,27,120,129,220,156,69,112,90,126,122,109,82,241,25, -236,232,172,15,208,120,252,2,210,114,235,98,141,22,97,158,43,200,43,61, -5,7,234,112,60,124,206,193,74,230,148,35,200,204,42,45,14,106,161,49,85, -84,230,100,103,179,146,136,144,3,239,192,114,193,244,98,153,134,228,16, -68,129,76,191,93,44,84,185,185,37,252,177,58,196,65,152,167,200,5,106,214, -45,233,216,187,244,253,227,36,189,227,191,241,85,237,157,176,186,33,233, -51,208,90,89,242,28,248,8,192,52,38,185,73,54,253,195,37,159,90,5,84,214, -238,6,107,210,30,179,9,96,108,38,213,183,218,127,180,102,210,164,224,29, -19,188,69,38,156,147,21,46,32,49,150,253,116,206,17,58,143,50,145,83,85, -195,244,236,100,34,156,160,74,57,82,163,157,15,54,148,8,77,239,183,32,90, -241,44,253,43,69,17,88,124,150,69,116,73,16,145,170,237,117,222,200,190, -159,38,135,4,191,52,37,21,38,237,174,103,167,23,240,10,80,192,21,144,158, -21,21,86,191,254,86,11,154,28,254,132,77,47,217,4,7,255,220,98,213,79,212, -99,64,25,93,88,125,83,214,231,84,249,96,204,226,16,52,137,50,244,4,1,139, -185,235,151,3,250,223,146,198,48,197,146,156,102,80,235,44,235,127,20,197, -28,155,170,184,54,65,228,105,54,44,173,10,222,40,130,201,118,117,201,61, -80,53,215,157,221,225,25,157,92,56,236,50,38,145,192,229,241,61,150,71, -9,139,224,192,254,130,214,186,240,180,182,28,151,36,179,134,36,61,107,60, -201,57,16,82,20,221,101,109,113,53,87,114,15,166,239,114,120,42,21,255, -106,8,38,12,195,150,196,75,162,233,161,160,67,147,222,188,228,84,17,108, -8,87,43,145,29,22,162,160,34,227,96,161,102,21,154,212,119,94,117,214,89, -251,166,168,128,192,57,59,241,32,20,69,10,35,242,71,86,101,32,100,70,104, -194,172,132,245,155,251,180,168,212,72,167,173,75,36,183,20,242,249,44, -11,33,36,217,82,178,73,140,77,150,132,84,175,146,41,208,208,49,137,254, -11,87,219,195,228,183,55,184,108,117,128,243,248,76,17,152,76,245,169,8, -77,75,127,141,150,141,170,113,171,220,75,20,253,50,210,213,245,146,29,176, -139,221,240,230,196,6,109,133,58,229,226,199,106,204,44,147,121,105,133, -230,229,163,132,151,255,214,152,177,94,176,103,231,186,42,61,184,146,74, -231,131,227,188,209,105,167,87,7,112,171,192,188,151,16,80,145,28,80,113, -200,235,115,227,25,253,192,75,26,72,50,190,137,21,44,173,122,172,100,180, -19,88,6,71,177,182,13,209,131,73,36,204,130,247,225,30,194,175,180,235, -94,46,12,72,100,202,203,184,44,173,228,173,85,185,19,102,228,74,4,18,165, -189,68,44,168,40,172,207,17,114,246,9,215,90,47,222,179,96,39,242,112,209, -2,146,133,129,151,144,100,120,164,220,32,203,179,181,200,91,38,190,114, -125,9,175,115,237,58,29,86,182,41,21,20,98,115,156,129,88,181,119,245,89, -202,14,58,68,27,73,77,45,129,66,157,112,199,245,165,147,143,13,49,186,171, -184,114,58,40,133,156,5,234,146,138,197,134,37,115,21,30,91,79,29,88,222, -56,138,236,203,113,234,187,51,243,218,111,209,204,106,17,135,68,106,77, -98,245,144,169,2,61,134,55,76,43,110,249,92,145,25,113,202,125,247,167, -213,187,123,78,146,147,109,105,233,167,117,196,131,37,17,38,85,143,83,28, -5,241,69,34,114,108,98,176,24,198,21,155,104,117,77,91,163,18,23,21,87, -49,229,232,208,177,168,128,83,33,32,76,113,88,202,2,75,142,222,24,158,69, -102,238,170,20,60,175,128,57,35,167,181,146,70,57,24,176,6,96,210,227,106, -108,251,129,91,143,133,54,118,150,220,204,162,138,101,135,80,195,134,127, -192,149,44,156,29,120,237,21,146,150,11,215,177,121,9,6,42,140,246,45,234, -154,43,67,92,33,233,121,176,63,187,192,60,187,7,95,54,135,166,2,42,229, -205,243,75,101,183,170,167,152,101,73,197,25,177,250,79,24,205,4,103,76, -67,129,173,130,228,169,196,86,72,16,119,95,237,171,191,210,111,167,87,10, -120,33,98,67,249,233,100,130,50,43,200,156,108,158,32,251,190,178,7,40, -199,228,88,16,15,5,163,156,233,185,18,134,6,171,173,108,119,137,122,202, -100,93,49,222,9,198,110,92,247,15,21,54,204,102,232,93,158,157,14,179,159, -73,244,40,148,163,38,173,40,156,59,119,194,27,15,136,245,155,145,28,79, -36,42,202,110,34,31,200,117,225,175,26,103,135,159,32,195,108,181,55,200, -111,73,27,149,132,96,35,34,25,217,4,192,147,190,0,182,24,185,164,241,92, -49,31,152,55,115,211,54,104,102,237,235,37,168,177,33,101,112,1,189,88, -88,145,11,171,84,185,139,11,248,87,236,129,208,132,89,10,247,27,125,118, -191,241,83,78,48,9,57,201,53,187,230,60,166,195,72,172,125,106,130,243, -250,84,4,223,178,87,151,17,15,90,239,157,175,220,198,30,78,36,202,229,197, -181,79,45,18,218,16,174,101,201,99,170,128,174,246,94,144,29,193,43,163, -50,91,8,139,89,139,33,153,222,57,12,128,205,98,2,192,101,99,203,89,56,131, -140,231,25,13,246,189,149,106,185,66,141,201,203,149,3,157,158,245,226, -201,99,154,168,253,199,5,80,79,78,114,84,199,247,164,114,69,113,128,131, -157,2,132,42,104,128,126,15,222,160,32,108,143,253,218,83,155,229,196,167, -96,86,235,164,159,108,96,183,84,114,231,12,89,248,1,36,201,120,114,90,135, -191,145,152,125,235,204,168,60,112,206,28,0,90,213,29,141,234,227,83,176, -128,5,75,94,200,84,175,137,116,86,91,147,137,130,43,11,204,222,170,209, -201,2,80,210,33,93,148,172,54,81,98,22,132,250,17,151,39,224,214,109,100, -69,42,180,47,46,83,67,152,86,31,125,163,15,35,200,120,69,146,82,146,234, -168,150,208,109,41,81,17,234,218,81,34,65,50,122,54,96,135,48,107,159,93, -208,119,75,143,96,25,80,213,205,194,185,216,210,92,52,140,152,243,107,76, -211,132,56,78,235,13,183,199,142,18,185,179,105,186,16,182,33,182,15,83, -28,79,114,90,129,52,179,48,25,12,100,228,224,111,181,210,188,222,30,233, -241,148,220,191,77,63,159,166,217,36,1,48,7,89,238,111,115,81,62,82,9,109, -128,203,190,121,53,142,212,204,130,76,239,19,134,68,47,174,141,224,180, -15,212,253,38,67,232,225,117,108,201,202,10,179,21,133,98,22,204,223,12, -95,82,118,13,113,145,8,126,229,236,21,210,179,202,129,208,156,40,44,186, -22,86,202,184,58,221,180,69,150,193,139,193,194,150,63,27,207,142,20,220, -253,202,0,155,132,239,180,102,29,85,156,10,120,147,100,64,186,103,238,164, -162,223,107,82,155,25,226,249,65,48,155,106,110,133,179,103,187,96,23,180, -200,1,115,29,171,154,137,61,139,47,131,68,199,23,182,55,153,220,175,154, -31,253,173,47,35,243,76,172,18,223,204,248,230,28,228,61,40,185,80,150, -150,163,106,200,201,1,147,0,191,196,89,110,53,222,217,236,104,170,133,55, -57,103,65,138,44,43,5,110,10,5,114,55,217,205,158,32,122,252,118,33,181, -230,215,101,22,129,205,33,163,102,208,217,32,123,36,211,126,161,208,199, -175,202,65,177,26,177,206,113,73,251,126,192,34,43,132,231,162,53,236,128, -169,188,113,182,160,210,151,95,226,160,210,160,200,237,173,229,87,130,93, -209,22,232,205,188,88,114,11,22,117,212,170,21,163,199,186,214,57,211,64, -169,239,28,200,95,8,5,140,195,142,20,153,40,209,41,207,141,86,173,54,150, -158,5,3,129,230,190,123,248,155,217,57,25,162,200,10,167,101,98,15,83,57, -151,23,66,64,211,54,171,83,156,242,198,96,210,31,151,12,68,109,79,53,214, -109,92,108,137,76,216,32,194,154,48,98,199,9,11,10,5,114,79,212,39,221, -200,3,150,85,81,186,108,8,134,207,69,43,42,58,147,248,228,206,12,59,205, -5,189,241,221,254,223,204,203,80,228,45,54,138,130,162,237,35,204,165,124, -225,19,194,246,76,43,158,244,226,75,136,5,254,62,148,187,80,86,243,188, -177,108,173,94,164,25,147,18,128,63,87,18,37,218,8,242,190,20,19,23,48, -254,243,215,36,39,132,177,129,135,117,187,203,109,167,145,3,123,147,237, -16,138,179,99,37,109,233,62,182,253,88,252,138,192,205,247,27,240,25,101, -18,24,57,51,85,154,179,228,179,77,212,25,75,170,154,33,197,123,200,129, -106,129,187,93,85,111,46,159,2,243,198,92,134,17,142,89,231,217,55,239, -13,101,67,32,213,191,22,231,4,179,2,100,136,132,126,133,51,126,86,76,230, -138,36,150,189,189,180,225,12,74,150,7,181,246,246,23,148,197,182,6,105, -141,41,32,184,22,46,79,219,117,132,23,102,226,169,68,61,87,254,130,109, -179,150,132,63,211,131,183,89,122,174,27,10,53,159,26,28,161,224,50,113, -88,199,196,90,95,72,76,86,48,79,63,4,42,75,61,115,152,178,128,125,87,102, -180,109,225,32,247,140,153,129,105,26,179,17,64,45,146,127,91,112,192,160, -30,164,180,208,148,138,222,52,141,201,130,209,235,149,147,94,62,69,207, -147,115,96,82,4,20,42,251,207,228,30,145,94,171,131,5,17,215,39,228,88, -216,140,165,232,145,170,130,197,103,93,178,93,201,33,35,67,255,224,60,246, -84,222,119,174,196,70,114,207,117,54,185,32,75,254,6,160,140,31,72,168, -162,44,247,146,136,235,176,34,158,84,235,188,17,108,24,117,17,28,143,32, -82,193,231,44,159,217,203,23,106,83,204,62,30,231,211,114,94,43,90,245, -135,243,157,250,168,58,238,235,146,38,86,213,49,42,187,136,228,144,63,183, -132,242,151,68,155,228,8,135,20,45,42,120,110,58,8,240,211,88,240,58,13, -187,10,203,11,2,28,113,193,15,88,46,64,86,98,37,79,69,106,215,179,70,48, -72,56,195,201,90,156,164,205,180,54,169,42,246,189,228,248,136,187,148, -246,110,78,152,244,144,20,187,1,140,4,207,32,211,107,244,243,145,163,121, -100,248,77,94,32,183,9,50,19,185,43,159,74,37,5,55,178,23,230,81,208,26, -248,172,198,129,57,163,66,120,161,77,71,149,226,160,118,182,80,61,32,145, -51,14,13,193,179,96,163,53,18,76,153,107,42,58,6,23,40,191,206,181,109, -24,201,112,137,102,174,166,190,51,37,207,91,54,146,152,146,227,183,176, -167,21,99,131,20,126,79,74,89,79,107,186,195,115,164,157,255,187,9,205, -218,119,255,45,112,222,203,198,36,153,108,25,59,147,218,248,66,228,39,132, -38,25,201,152,170,157,196,72,26,145,206,141,115,3,141,196,66,246,135,225, -184,32,93,84,134,167,172,128,53,231,247,87,34,26,226,18,86,171,70,152,70, -189,95,70,169,206,138,158,180,168,84,33,202,252,132,204,144,21,171,112, -199,181,30,239,250,158,148,197,105,160,201,75,76,37,1,108,133,58,5,202, -192,14,117,193,111,205,108,4,243,154,20,229,83,78,167,77,65,173,100,13, -185,181,21,187,229,1,129,77,137,193,176,50,180,236,0,238,207,134,117,203, -254,188,23,212,249,105,174,160,181,209,173,220,168,154,230,241,164,40,165, -214,40,73,221,113,227,86,73,102,199,72,33,33,222,48,49,249,221,51,130,183, -163,254,226,94,183,236,35,118,244,61,214,233,48,177,189,168,122,16,201, -91,202,90,83,203,58,204,169,106,188,100,219,229,105,167,114,130,131,149, -89,141,115,48,122,227,206,2,158,95,85,239,20,66,44,11,33,214,60,55,209, -58,33,225,16,42,137,112,178,109,196,108,207,16,50,211,87,240,27,249,208, -104,6,11,4,150,136,212,64,84,158,244,113,229,12,252,241,183,87,52,49,252, -163,180,80,175,40,48,21,98,225,156,170,11,169,160,149,101,74,79,111,170, -100,245,154,232,195,170,231,109,171,177,200,179,90,156,103,111,89,170,79, -170,212,33,103,29,2,98,155,73,89,196,172,71,65,169,76,206,86,181,186,105, -18,6,1,47,102,221,110,181,102,86,48,179,63,59,197,89,166,55,198,152,156, -234,148,251,143,157,158,99,71,161,207,75,223,69,63,177,224,157,155,172, -191,214,20,230,50,167,101,33,248,97,201,166,196,89,128,131,137,244,156, -18,155,107,39,42,124,8,190,219,154,93,143,16,182,240,147,37,127,114,209, -134,181,9,107,113,168,73,110,8,217,1,133,236,55,77,30,170,71,149,64,255, -253,182,179,147,162,200,79,207,128,177,93,33,7,91,99,19,140,235,248,6,23, -225,88,239,107,79,142,166,22,162,217,116,244,217,25,201,100,55,13,168,47, -10,49,179,35,196,44,86,95,10,19,156,184,64,143,114,169,165,15,127,233,85, -32,160,87,123,80,146,115,32,255,157,224,94,45,205,28,209,94,1,69,47,21, -34,11,226,31,213,122,175,172,163,139,76,188,23,118,189,238,34,81,133,58, -207,197,136,47,171,210,141,77,82,77,202,180,173,212,196,39,151,38,108,111, -46,73,174,197,234,246,169,173,111,235,82,208,44,16,16,13,155,103,228,193, -58,89,210,139,103,190,40,39,56,163,127,204,70,233,242,25,234,207,149,64, -191,133,20,243,83,250,70,57,105,84,164,95,230,36,248,199,229,31,188,213, -225,223,34,247,45,54,162,204,142,142,129,114,107,92,170,194,144,243,73, -42,73,210,249,186,29,59,78,211,139,213,90,106,20,80,173,0,0,32,0,73,68, -65,84,188,70,102,147,73,204,180,138,73,103,250,155,149,123,1,117,219,121, -13,59,186,129,181,50,164,5,130,164,173,178,139,52,206,76,214,33,13,133, -173,231,214,51,82,135,43,153,160,39,190,47,29,155,152,133,73,3,59,72,106, -145,145,45,107,128,20,163,223,202,93,203,63,45,178,64,38,119,37,211,12, -43,62,115,38,211,240,112,169,45,93,140,116,138,19,170,176,162,180,159,251, -119,224,89,224,137,251,152,103,176,236,241,216,95,91,138,228,174,0,253, -255,37,75,229,57,148,192,155,137,34,87,129,207,242,108,174,148,8,42,79, -180,242,61,228,22,197,100,29,172,43,246,122,138,83,197,139,119,55,149,9, -225,119,158,231,111,87,247,86,105,70,73,205,173,215,70,197,62,193,198,56, -139,202,175,103,66,33,11,119,184,194,130,178,116,132,116,78,140,117,157, -8,103,78,118,156,26,183,151,185,62,199,200,9,184,164,70,110,73,85,59,180, -185,168,140,151,175,85,220,19,126,247,155,110,118,168,153,224,106,181,59, -126,214,89,218,62,144,234,238,113,47,175,39,237,248,78,110,152,167,202, -190,179,16,189,25,151,161,74,190,157,213,3,57,179,85,77,74,179,44,214,56, -78,136,145,133,25,1,193,196,104,145,225,8,175,111,100,35,152,108,130,34, -123,88,179,32,65,1,143,232,234,122,156,38,112,140,27,230,188,223,248,178, -166,47,197,83,103,101,124,1,204,106,117,107,245,91,123,200,114,30,150,10, -8,155,4,165,157,152,171,28,141,122,93,200,10,214,36,133,158,112,153,177, -106,80,198,233,35,138,210,67,57,113,209,74,96,82,237,38,210,66,54,182,127, -103,73,41,4,131,135,57,180,65,126,82,80,203,158,44,23,227,83,180,250,129, -123,172,95,146,73,63,109,245,208,55,218,211,180,213,208,230,2,106,223,74, -176,183,64,130,82,47,14,21,144,156,156,100,104,187,128,160,202,251,216, -83,171,108,41,178,19,10,156,163,149,5,221,143,236,34,96,173,169,174,186, -98,229,81,77,202,22,204,96,21,138,18,148,171,95,38,252,63,248,178,169,85, -78,160,149,20,178,242,166,47,31,8,59,164,78,229,250,182,36,9,70,195,223, -158,10,204,207,200,222,164,90,143,43,240,75,236,71,37,242,28,217,88,73, -168,178,48,97,89,21,216,214,241,189,249,181,109,146,95,33,78,218,222,254, -74,63,229,69,149,144,148,226,37,170,45,44,111,146,81,120,1,136,127,75,108, -67,146,10,129,138,240,171,103,44,243,138,193,76,5,61,34,113,110,75,205, -9,205,161,183,53,114,250,110,176,253,144,154,144,133,126,136,250,112,96, -19,36,164,186,15,133,69,45,142,148,219,180,50,239,16,90,208,89,12,70,78, -146,144,25,45,129,49,112,49,44,72,65,88,107,66,248,126,223,157,94,233,167, -153,200,196,58,40,47,189,160,52,111,223,232,170,2,101,145,149,225,45,118, -238,48,173,61,242,172,210,87,102,222,84,187,62,1,65,211,58,94,135,34,16, -251,48,168,56,143,169,90,132,150,155,158,45,138,81,90,86,215,198,248,120, -221,176,117,250,67,73,178,19,149,70,225,141,157,199,18,9,26,29,90,105,18, -222,16,1,111,180,82,107,134,17,47,87,240,202,222,166,200,11,168,178,232, -248,41,104,224,53,217,60,224,159,55,47,191,196,64,188,154,129,140,38,61, -171,148,148,42,114,112,228,16,135,178,186,49,171,239,185,28,8,75,174,145, -12,107,34,229,23,79,236,224,93,228,44,147,103,144,41,125,55,168,163,26, -173,73,42,235,45,21,167,220,99,142,248,147,246,26,167,178,107,200,246,61, -180,164,196,122,42,211,179,21,197,38,140,200,94,29,244,249,97,187,36,170, -19,38,39,32,72,49,249,75,8,123,25,97,36,83,8,152,217,90,46,43,67,118,239, -53,41,244,182,214,48,80,94,26,14,238,151,29,237,114,251,128,73,35,199,100, -63,11,63,137,31,91,5,3,233,135,186,238,92,130,114,175,51,214,110,250,217, -146,176,85,6,33,48,179,18,157,68,101,58,86,175,31,45,73,90,84,139,52,247, -221,167,113,205,174,148,201,10,233,204,207,138,168,72,50,23,203,191,227, -124,34,51,213,91,173,12,128,35,99,154,6,49,206,241,141,29,90,155,89,36, -239,20,207,108,88,82,51,31,72,125,119,241,60,84,247,193,84,180,10,190,103, -157,8,176,205,30,1,55,13,208,79,199,35,59,86,224,251,21,61,216,80,89,84, -240,58,148,236,39,41,140,155,87,84,128,69,50,70,14,10,175,231,232,72,111, -42,42,161,64,54,35,88,26,236,48,135,145,109,204,19,207,232,66,70,135,152, -169,52,155,163,178,58,217,228,19,120,58,244,132,141,63,244,43,110,203,43, -240,73,78,53,80,128,10,60,192,163,36,146,234,183,211,102,174,226,227,3, -229,8,158,238,218,210,19,227,88,24,10,11,57,157,67,18,1,151,183,57,28,156, -101,93,73,25,160,64,115,131,132,13,48,251,231,164,15,11,255,118,133,207, -176,92,26,175,90,212,163,169,154,169,94,38,223,126,3,119,65,62,136,28,163, -164,117,74,68,142,190,85,146,38,88,185,20,103,165,178,156,179,22,234,153, -181,73,16,178,255,158,247,53,201,106,222,217,63,108,224,9,46,165,138,213, -26,102,35,112,197,70,50,185,134,186,22,138,167,90,139,154,42,173,31,55, -40,215,24,166,91,99,103,155,133,66,185,115,215,137,146,194,135,76,120,146, -228,145,172,244,179,127,92,254,155,159,117,141,182,215,187,25,191,128,102, -35,74,199,47,50,234,82,44,88,207,142,166,172,238,29,219,14,52,83,161,24, -75,176,76,72,70,160,176,237,46,248,93,228,158,0,59,148,73,66,52,99,21,201, -90,33,55,221,48,147,99,237,165,41,142,150,104,52,51,116,197,72,203,118, -119,218,255,86,230,8,144,65,21,76,239,157,156,190,154,56,116,51,170,70, -165,214,254,234,17,173,46,95,107,24,24,104,136,32,100,110,77,207,137,43, -221,96,175,157,175,127,129,84,70,155,151,21,171,207,95,237,157,115,133, -224,240,10,92,79,207,97,91,221,245,179,213,48,109,38,248,62,19,227,217, -187,109,95,222,118,207,221,103,57,252,198,144,128,233,197,234,195,152,5, -17,66,114,117,244,13,168,89,41,47,182,176,58,192,174,107,200,68,113,170, -41,139,253,30,10,95,255,161,37,27,137,13,182,222,79,15,225,226,10,82,166, -38,8,202,41,129,69,10,90,33,81,21,147,54,95,35,158,42,207,90,224,50,155, -162,64,178,151,237,195,250,155,137,149,59,66,77,69,95,194,178,2,184,104, -10,213,78,200,114,164,110,17,5,218,226,167,48,54,120,148,91,2,73,181,75, -122,178,254,60,118,132,226,152,192,227,84,100,164,129,24,8,91,173,105,46, -170,115,114,74,27,173,100,182,170,197,241,88,60,65,53,126,36,224,121,35, -126,94,254,2,107,235,138,117,1,59,146,170,96,198,24,103,151,58,71,169,251, -111,65,112,43,228,160,212,104,180,8,75,4,198,105,154,61,230,125,151,87, -149,107,75,69,43,111,240,156,172,87,180,175,132,202,91,17,71,66,90,130, -81,74,138,173,171,199,43,74,228,206,113,12,47,130,122,86,163,42,208,178, -245,92,182,152,169,210,209,20,163,45,178,127,73,47,60,67,41,93,40,238,48, -179,246,26,33,191,249,202,112,80,142,26,9,229,153,136,119,173,39,39,144, -149,82,17,178,100,88,191,50,97,67,206,74,240,112,15,122,193,77,235,185, -111,1,59,78,118,223,129,172,205,20,13,123,79,215,84,81,214,22,181,40,189, -217,140,45,241,90,97,46,237,61,54,73,185,67,239,248,123,227,113,92,41,2, -20,188,45,223,95,112,16,216,32,41,82,185,173,70,87,151,80,58,229,209,97, -181,122,88,23,209,84,230,66,34,201,144,40,80,61,156,177,125,125,139,166, -168,200,33,223,76,34,14,38,56,91,61,241,141,34,91,157,187,194,232,133,12, -106,162,119,194,22,254,193,153,185,47,198,227,228,53,115,173,227,178,21, -71,106,54,151,91,107,206,241,55,241,210,24,229,170,90,69,111,115,24,9,76, -79,96,38,231,16,82,25,31,105,104,132,64,104,2,33,132,22,33,144,201,54,179, -82,144,106,161,115,101,168,152,105,243,80,165,2,94,154,135,251,67,64,19, -66,182,31,252,221,175,90,121,162,161,130,44,254,48,47,192,166,9,201,227, -62,8,55,50,11,249,168,205,149,161,116,149,202,8,156,158,121,59,49,172,89, -136,104,93,107,97,234,99,124,218,88,228,46,235,159,177,177,234,178,240, -60,233,225,25,171,55,178,122,187,195,235,211,25,40,144,197,134,247,7,230, -1,115,251,73,201,243,24,92,204,170,250,41,115,11,63,59,42,52,159,184,14, -103,186,195,248,168,4,246,82,197,196,27,112,116,250,231,223,89,168,219, -29,116,126,201,73,11,155,25,13,187,252,0,126,30,230,23,109,7,102,77,9,49, -7,62,139,189,226,205,123,210,198,137,187,134,78,34,211,73,150,176,46,41, -52,128,159,57,198,253,173,47,214,23,205,210,133,37,183,20,24,172,247,36, -147,212,140,50,246,104,48,197,20,132,106,164,30,43,85,134,85,181,56,172, -36,78,53,76,229,81,245,92,159,11,131,89,103,46,148,144,155,46,228,84,89, -228,45,198,219,222,217,43,10,241,145,21,183,26,225,43,231,226,235,94,10, -172,97,109,203,69,103,209,110,18,179,195,252,12,185,161,202,65,197,79,138, -4,151,92,103,175,222,51,139,42,155,42,22,155,8,165,173,0,76,175,206,209, -34,87,61,98,82,74,114,211,56,102,203,77,201,214,150,7,51,179,51,229,192, -240,5,192,73,109,208,250,232,28,16,153,83,223,159,231,25,218,223,104,155, -109,102,230,203,117,74,223,97,202,26,254,100,225,71,152,22,248,50,251,233, -25,89,179,156,33,183,78,230,84,168,154,214,147,68,174,131,183,102,195,19, -149,203,191,62,15,173,161,65,5,209,45,48,171,82,175,19,80,17,106,80,184, -77,20,115,5,94,74,45,249,172,110,42,240,60,42,136,117,10,97,16,153,187, -29,207,36,11,84,60,159,63,244,49,244,90,220,53,8,6,185,181,186,37,15,242, -83,182,187,226,66,32,31,124,84,192,253,92,17,172,178,23,91,179,101,38,37, -144,67,79,237,101,101,84,97,99,171,41,147,120,46,176,129,69,202,149,61, -213,47,242,144,17,22,38,69,153,203,81,44,53,217,105,250,119,6,119,151,180, -98,96,107,102,141,68,112,105,106,77,21,136,142,84,31,88,8,104,173,214,198, -186,133,196,188,53,117,225,7,80,50,45,71,24,218,53,23,66,65,40,167,91,215, -179,95,8,214,192,186,102,82,205,238,210,214,142,176,164,137,76,192,101, -81,28,138,86,140,145,111,253,157,0,192,115,2,145,181,252,245,228,67,181, -93,135,74,47,141,54,43,50,125,54,56,174,174,84,57,33,216,20,103,222,5,5, -205,136,101,231,128,129,134,87,72,102,202,164,231,139,24,160,133,53,46, -3,17,155,106,95,220,60,133,92,18,235,249,36,42,237,240,10,149,181,117,97, -205,232,65,211,162,9,205,239,161,110,5,33,162,198,170,202,171,145,69,219, -192,134,84,86,153,106,230,36,168,135,33,5,43,216,4,45,178,66,21,101,135, -68,86,53,133,45,189,28,71,35,105,210,145,15,91,37,225,233,246,197,52,129, -110,201,202,89,140,42,42,194,36,105,157,119,170,61,56,47,157,88,253,231, -55,140,94,106,15,206,147,46,36,113,36,49,233,77,170,122,242,27,130,54,181, -224,206,27,193,159,43,23,43,131,17,161,232,156,249,225,150,54,194,51,161, -110,75,147,221,211,108,64,230,74,183,181,76,231,181,196,142,36,172,90,53, -69,126,26,241,164,190,186,109,219,228,228,125,85,16,163,74,143,150,115, -5,39,37,135,213,121,193,154,180,75,236,228,97,175,180,93,190,211,129,112, -76,96,172,81,189,156,128,201,159,81,111,234,138,53,129,224,16,216,201,152, -92,205,98,213,161,96,161,23,191,149,144,232,12,150,55,59,147,108,89,173, -197,47,73,164,87,187,58,230,177,174,197,108,103,33,236,202,9,22,123,254, -106,183,56,137,202,73,248,156,77,3,233,217,12,171,168,239,201,54,39,45, -241,81,187,198,125,107,141,240,111,196,28,118,32,233,28,194,11,175,119, -53,12,90,57,115,130,28,37,240,84,54,75,179,13,3,211,206,201,228,20,167, -164,22,71,228,207,153,178,34,94,107,99,159,60,35,3,207,179,87,153,69,185, -61,21,70,140,137,181,207,223,189,193,181,7,163,110,182,231,13,202,206,0, -176,109,41,56,134,40,204,197,196,65,65,146,41,94,95,48,245,225,115,17,203, -138,137,138,239,241,10,251,203,177,67,93,220,114,81,80,154,42,123,158,97, -205,141,237,108,81,153,181,45,204,134,96,18,189,54,118,35,247,58,107,75, -84,240,62,106,200,5,23,13,70,232,181,99,215,212,186,134,72,107,101,112, -137,168,190,228,125,250,34,89,70,87,116,236,44,55,18,129,115,171,189,183, -165,164,81,86,46,53,216,142,188,94,164,75,213,147,110,218,92,24,113,110, -111,33,145,154,26,157,217,220,90,38,51,242,228,84,95,21,53,66,233,161,144, -101,161,69,187,27,100,135,52,252,138,125,171,138,127,230,232,229,62,36, -103,70,95,84,167,171,185,205,42,234,162,73,110,84,83,211,20,218,173,90, -142,149,86,93,135,245,244,96,209,50,227,237,115,129,106,82,107,214,253, -149,169,228,45,88,196,197,172,245,172,32,204,202,108,83,198,16,170,146, -121,107,8,24,229,118,75,209,162,171,57,186,148,169,52,25,29,134,12,70,139, -137,166,210,69,254,117,127,138,45,52,184,40,22,182,124,81,180,112,53,151, -13,243,205,175,64,2,227,230,231,34,217,34,75,132,210,97,15,212,160,105, -2,2,130,159,50,87,4,17,202,12,213,203,178,73,137,160,20,74,235,243,2,111, -66,131,134,158,49,34,126,179,247,174,250,218,130,26,68,4,112,4,79,35,166, -62,145,251,216,200,189,179,90,187,214,242,140,10,98,221,154,87,90,199,3, -199,54,132,54,87,16,25,145,134,69,106,54,39,84,150,115,38,57,28,108,252, -220,1,164,68,106,24,49,76,17,81,90,110,49,105,75,88,150,90,218,188,97,148, -44,115,84,25,82,158,43,185,145,163,77,110,37,43,137,156,83,147,133,45,239, -179,204,118,91,181,213,15,244,188,145,97,82,1,134,186,45,125,63,254,16, -182,244,46,101,75,131,28,5,59,174,24,87,120,213,181,189,26,174,180,75,94, -65,31,153,45,23,91,40,98,88,178,44,249,162,46,74,30,84,92,155,106,44,82, -221,54,121,243,56,164,23,18,254,205,246,157,167,193,39,70,195,68,0,169, -142,133,193,105,71,120,154,251,76,198,246,85,90,205,98,29,253,44,146,127, -137,194,21,13,48,227,144,230,36,124,245,194,137,76,76,206,201,22,109,72, -131,179,29,122,85,230,93,22,93,34,227,143,146,229,99,201,105,41,23,143, -206,225,35,176,105,165,178,68,142,215,81,108,169,185,82,41,120,189,81,183, -103,35,151,5,171,190,44,122,114,88,47,157,69,72,53,77,54,150,34,128,86, -218,128,90,148,223,138,164,230,138,71,108,81,6,166,105,74,130,54,13,233, -153,206,197,163,216,216,20,174,112,48,147,57,144,52,244,189,84,155,188, -37,101,59,179,246,137,8,212,132,127,79,63,141,43,41,58,177,230,112,17,128, -105,196,120,255,194,175,207,43,238,35,112,120,255,3,63,223,143,171,104, -131,98,196,74,161,9,174,65,71,92,232,99,76,19,16,197,83,108,90,89,21,25, -233,88,181,208,217,48,73,75,66,151,231,143,144,101,128,37,185,103,194,216, -95,241,249,113,197,125,24,17,14,111,248,113,126,195,113,31,116,226,193, -122,67,233,17,29,130,213,176,165,194,62,102,94,95,228,207,106,251,211,219, -25,134,88,169,28,75,111,151,107,246,162,180,61,4,254,108,182,108,107,19, -83,237,5,184,212,255,55,255,181,125,54,120,194,154,58,136,17,60,86,13,94, -40,53,202,166,34,187,18,183,117,79,13,170,88,222,228,106,58,35,72,235,147, -103,195,69,170,25,251,176,49,151,50,135,28,145,64,137,60,225,37,143,10, -189,101,28,244,234,4,133,149,128,158,209,44,154,81,171,85,210,91,113,71, -229,249,136,85,115,223,19,130,82,20,71,209,136,231,117,140,144,171,186, -6,164,206,75,118,18,65,18,192,182,19,228,197,117,177,83,143,100,143,16, -121,158,176,16,144,201,42,115,112,246,240,154,144,108,117,180,156,33,56, -134,44,246,60,180,74,207,162,48,59,177,204,250,162,176,30,235,83,173,198, -90,103,163,182,54,158,138,65,108,159,35,75,203,185,52,80,99,135,45,81,79, -60,9,64,171,15,7,42,145,3,174,203,169,44,191,208,180,205,202,80,213,236, -248,12,169,184,196,22,50,98,123,76,197,88,93,161,47,13,51,82,178,244,253, -159,49,230,95,37,212,144,87,137,25,153,41,1,9,162,105,209,28,222,113,30, -39,12,95,119,48,2,26,169,116,196,149,10,76,5,26,118,242,179,244,68,134, -43,225,175,127,1,151,30,136,0,14,239,192,31,127,2,167,102,113,125,226,172, -35,32,15,102,34,133,134,43,81,8,107,118,225,234,36,235,50,163,191,126,226, -215,229,129,176,63,227,127,252,177,67,104,90,52,129,86,50,35,57,248,175, -162,105,200,67,154,236,248,138,213,234,166,162,95,74,252,172,193,69,62, -244,101,72,156,22,20,122,206,195,64,93,130,118,83,83,218,6,99,139,76,16, -182,148,218,75,62,253,118,3,144,139,62,36,169,195,156,93,158,62,80,155, -241,33,225,27,111,107,124,111,152,138,138,207,44,43,107,70,238,234,8,127, -51,22,98,39,21,221,112,182,105,43,139,181,77,30,188,95,30,196,213,24,66, -175,31,186,110,197,134,231,125,89,89,168,72,156,158,200,185,91,2,194,32, -135,115,204,208,3,237,76,78,184,178,22,22,210,71,217,172,6,237,40,72,230, -169,145,234,163,82,81,96,233,115,140,228,76,254,218,198,115,32,55,35,46, -69,53,145,28,182,150,36,34,45,97,105,63,205,102,28,250,153,42,4,171,226, -51,75,20,24,142,147,156,122,40,138,131,90,75,247,119,11,74,125,192,49,103, -89,119,249,140,139,2,160,26,211,114,177,24,114,104,167,82,120,103,115,222, -151,230,190,247,148,34,143,141,22,204,42,75,85,196,9,114,118,141,219,232, -224,181,135,67,176,198,52,12,158,18,107,158,248,5,214,228,43,147,65,202, -76,220,220,0,145,61,175,218,192,171,133,234,4,142,12,116,103,28,247,173, -17,118,177,173,215,26,109,148,12,231,128,16,7,224,126,3,30,3,48,142,0,2, -112,56,2,187,166,84,113,147,175,71,149,72,101,181,188,165,57,131,195,236, -152,255,59,98,184,95,113,189,220,64,135,55,188,191,157,177,219,237,208, -52,33,179,101,77,107,153,189,246,202,70,68,149,108,111,151,116,202,14,162, -73,222,174,99,161,166,167,17,151,98,41,112,165,199,142,39,149,57,127,39, -97,228,226,83,218,218,90,131,166,92,45,8,188,178,83,99,95,146,14,71,142, -227,28,94,56,254,236,104,44,111,196,54,126,94,164,136,153,110,86,109,131, -26,139,191,108,183,19,217,228,193,234,230,73,47,114,82,134,50,236,44,187, -170,53,192,119,72,81,192,19,231,201,146,188,198,98,95,179,117,178,85,68, -113,46,252,57,212,115,36,167,138,91,144,80,174,243,59,107,9,161,94,131, -108,68,165,202,145,59,54,206,158,214,3,68,213,44,32,149,108,144,74,232, -36,96,71,69,112,7,32,160,249,76,162,198,106,64,197,219,57,54,121,143,152, -20,73,157,196,34,147,104,139,74,98,182,218,250,252,4,28,123,22,252,61,126, -137,11,19,88,42,44,151,241,153,252,55,111,69,59,86,251,106,179,204,227, -77,201,178,100,63,33,121,172,175,51,157,139,241,60,101,119,36,77,194,224, -82,144,72,189,116,14,160,172,252,222,179,31,239,202,159,98,128,2,161,225, -6,20,194,54,193,225,149,138,158,77,182,107,7,50,213,168,134,128,213,226, -136,199,237,138,235,0,236,15,71,28,247,77,217,246,146,142,109,98,241,48, -3,113,20,7,0,1,161,97,132,89,44,38,180,140,211,27,97,154,0,190,1,221,15, -224,237,68,232,150,251,18,129,24,5,124,79,132,38,48,66,64,214,209,152,24, -211,98,153,25,128,208,232,150,56,169,232,204,166,113,197,152,134,7,238, -215,11,198,230,128,227,233,132,93,75,70,158,142,138,245,72,182,191,164, -176,122,191,98,172,37,197,207,133,198,28,105,185,165,37,180,28,166,156, -71,127,88,160,72,12,247,188,124,29,82,219,36,217,213,51,0,42,172,71,60, -59,146,58,73,206,134,92,54,221,119,89,203,147,209,142,247,172,97,172,170, -222,214,169,68,5,24,74,245,167,103,116,44,184,64,6,203,196,144,60,57,55, -217,159,93,222,155,178,76,237,98,97,188,40,72,130,140,32,139,69,149,176, -113,96,127,247,236,144,104,158,20,28,38,221,6,90,77,86,20,218,84,86,180, -26,178,50,78,108,204,194,243,94,60,247,197,100,198,84,239,53,253,71,18, -7,83,209,250,34,51,143,207,6,253,98,31,234,92,141,94,212,4,205,18,7,132, -82,35,219,243,33,107,33,172,248,14,149,45,76,162,26,9,147,116,187,210,129, -127,85,67,146,109,115,11,194,63,37,183,19,172,126,203,38,186,71,149,110, -215,179,245,69,53,24,128,61,122,182,66,118,55,23,166,120,255,150,151,153, -81,210,55,103,189,33,132,228,198,22,114,229,202,145,17,227,4,16,16,66,3, -230,40,178,171,37,200,11,171,88,38,48,197,217,193,75,244,196,86,162,83, -4,56,153,211,107,207,136,124,165,17,194,101,140,115,223,61,4,2,34,131,3, -148,30,117,81,173,61,115,106,50,19,127,234,68,138,210,98,12,107,239,16, -28,49,14,55,92,110,3,184,59,225,124,234,18,201,79,205,174,18,152,163,14, -132,145,49,77,192,237,147,240,245,5,220,198,148,44,237,79,132,31,127,2, -167,118,190,127,17,24,31,192,163,7,218,19,240,254,6,116,115,160,28,123, -224,242,9,124,94,128,97,74,215,214,30,129,159,127,0,231,29,1,19,112,253, -100,124,125,1,143,17,224,0,28,206,233,231,199,206,64,152,204,32,10,250, -196,229,136,56,142,184,95,46,120,112,139,253,249,140,99,35,70,76,108,188, -54,150,171,234,123,14,36,84,147,162,149,65,64,162,124,155,174,100,149,54, -10,51,28,240,78,83,42,94,10,234,91,57,69,109,211,10,213,45,59,203,238,109, -84,122,98,255,75,120,214,252,163,162,255,78,149,166,179,254,109,46,12,69, -225,206,206,179,3,227,250,137,64,161,213,199,210,119,34,247,59,217,246, -131,13,73,147,192,85,180,132,230,94,247,42,243,42,102,68,115,144,207,62, -9,68,47,4,242,87,109,60,109,15,90,162,26,235,158,95,174,51,59,76,202,162, -39,11,243,216,219,77,42,41,102,84,72,50,156,145,49,203,195,245,115,85,210, -1,20,21,14,140,36,171,178,32,83,91,158,108,145,184,203,250,128,87,77,139, -12,167,151,173,137,2,133,147,132,95,149,133,147,122,230,235,58,228,156, -232,184,170,165,235,75,228,68,72,9,3,169,183,178,103,144,86,198,163,87, -209,97,219,198,123,117,226,70,234,32,57,28,9,114,246,159,27,232,72,115, -220,219,56,37,59,211,166,105,148,242,219,242,255,211,56,129,193,104,208, -172,50,164,204,41,176,131,0,158,34,34,24,109,211,172,153,159,76,220,199, -41,38,150,125,219,136,160,146,87,117,156,146,48,78,19,130,26,33,89,238, -119,156,34,56,50,66,27,20,177,34,41,213,5,196,56,33,114,68,160,160,201, -52,243,215,242,249,66,19,0,10,5,68,180,216,185,54,109,3,77,245,79,23,48, -77,9,126,111,230,235,87,40,7,38,244,247,30,195,200,232,246,13,154,80,106, -231,78,113,2,115,68,211,52,43,12,63,220,24,191,254,2,174,125,170,174,227, -68,136,35,208,28,116,146,18,31,132,207,79,160,15,192,251,59,112,234,128, -64,132,254,139,241,215,191,128,175,158,86,52,129,90,198,225,72,56,118,132, -233,6,124,252,98,92,30,132,200,64,156,128,56,2,227,129,87,152,138,103,52, -123,90,158,127,155,81,150,56,78,136,152,208,95,239,120,140,13,246,231,55, -156,246,29,18,135,145,243,134,157,119,7,187,139,152,28,154,87,174,32,150, -215,144,82,165,108,40,0,140,186,42,182,151,9,40,103,117,22,196,53,122,162, -138,248,234,152,148,199,71,163,74,41,88,125,59,109,29,228,135,248,45,62, -223,150,182,182,13,221,62,93,128,10,126,121,77,79,147,94,238,112,185,141, -5,34,33,100,35,105,39,164,21,14,157,202,139,200,202,11,154,74,94,89,163, -102,142,65,150,191,213,28,140,26,79,228,41,15,17,79,42,126,115,166,177, -152,211,95,11,123,38,229,145,177,252,46,109,186,206,25,184,9,90,116,133, -201,103,31,212,125,238,61,247,64,114,4,146,253,98,144,44,183,133,25,182, -220,182,249,135,93,239,118,178,136,128,178,21,106,122,252,68,154,87,164, -152,150,68,10,101,46,63,178,192,199,8,134,147,100,93,35,197,185,104,224, -114,226,215,2,244,38,194,87,109,235,100,148,134,23,109,128,194,74,140,213, -231,116,237,3,108,199,123,222,55,109,8,65,176,30,181,69,29,113,146,125, -205,155,137,49,197,136,24,35,2,17,2,53,64,8,104,201,48,46,197,222,108,130, -8,188,156,201,33,203,231,11,33,136,236,125,177,51,229,220,179,9,1,20,242, -195,157,56,34,142,83,10,152,196,160,16,146,169,61,249,125,248,229,245,11, -215,176,249,223,77,211,136,140,210,28,208,204,104,40,0,141,70,13,151,5, -206,17,160,182,69,215,140,24,174,87,92,119,13,222,246,29,130,56,205,154, -16,144,94,128,129,8,244,55,198,255,253,39,48,48,112,254,19,216,5,224,241, -197,184,244,132,238,0,180,33,61,133,56,0,215,47,224,30,129,227,159,192, -121,15,4,2,166,129,113,253,34,92,122,70,115,100,252,124,3,246,29,16,90, -66,23,128,241,158,94,191,159,95,255,16,24,247,47,194,101,0,186,67,250,29, -89,185,102,43,221,212,111,31,251,27,62,255,250,196,99,10,216,157,207,120, -251,227,136,174,109,210,88,153,80,206,242,66,247,186,184,168,60,50,50,151, -74,30,186,4,61,71,81,153,226,80,102,70,78,219,68,4,115,205,93,33,141,72, -61,147,140,220,58,228,159,6,2,247,212,135,149,225,120,102,10,243,10,116, -160,57,207,26,230,183,196,35,255,245,217,175,236,92,154,14,185,223,219, -146,113,151,253,100,249,234,150,41,94,248,14,89,237,5,70,21,106,89,123, -178,170,138,213,9,142,80,134,45,43,229,223,65,110,138,15,104,122,61,108, -2,32,12,153,142,109,107,195,121,173,37,49,38,214,224,128,209,12,88,2,28, -51,61,111,47,56,142,61,164,20,13,168,132,134,217,151,194,80,56,187,96,78, -203,17,71,50,43,43,207,255,231,194,194,53,86,33,13,140,172,106,164,107, -82,192,107,11,248,149,7,169,26,204,108,29,15,164,78,100,137,130,209,86, -117,238,145,82,94,9,244,94,82,40,70,196,73,213,237,30,167,87,234,204,155, -123,64,54,184,167,127,183,122,246,156,11,238,215,42,160,176,84,73,243,188, -57,133,197,239,157,86,33,19,146,217,146,161,254,176,80,82,35,49,16,186, -18,213,88,120,237,202,0,77,150,104,129,85,231,157,12,172,231,115,1,159, -239,98,42,224,182,210,242,77,147,255,25,113,184,224,215,175,43,198,246, -136,243,31,255,137,119,10,104,186,148,108,48,123,14,88,64,236,9,31,127, -49,190,238,132,166,97,92,62,8,87,48,98,156,33,248,19,176,111,82,162,212, -95,128,143,43,64,103,224,237,132,181,239,30,0,32,164,123,28,239,192,191, -122,194,238,4,252,249,39,163,27,9,31,127,1,151,59,208,180,132,235,7,227, -6,66,140,64,179,190,190,109,133,75,234,83,64,211,29,240,246,62,98,250,117, -193,48,70,32,36,100,134,196,72,35,136,252,108,157,42,156,6,8,214,243,50, -58,137,210,46,203,6,173,165,221,67,204,5,45,122,85,215,98,82,19,161,153, -29,44,250,129,171,209,78,165,231,254,204,116,136,95,252,190,189,78,217, -87,124,193,153,173,142,18,147,3,177,107,221,46,13,224,189,38,137,83,133, -105,101,69,92,132,119,73,234,243,7,129,85,128,101,135,172,103,3,187,58, -19,96,216,204,11,7,135,215,209,165,117,102,121,222,179,89,150,154,180,44, -118,173,231,254,157,126,251,139,36,74,251,4,37,180,190,158,229,142,209, -17,75,136,88,88,57,46,74,119,164,50,21,125,151,25,92,156,111,154,199,96, -84,172,128,162,25,83,143,94,134,185,33,124,67,22,164,22,66,167,61,143,60, -147,66,238,37,155,176,216,30,100,136,118,139,202,166,37,99,136,226,111, -29,129,37,108,120,76,202,79,89,4,132,249,58,200,204,16,100,196,164,42,232, -243,138,93,244,51,77,5,79,200,131,101,65,194,42,61,225,85,206,199,175,48, -138,36,140,53,10,218,62,151,19,201,61,231,24,99,130,155,67,147,15,86,54, -112,207,124,131,100,194,153,133,46,140,79,176,56,232,153,25,118,68,76,170, -31,45,106,117,169,157,16,240,219,54,50,91,4,8,251,139,118,86,5,0,197,136, -105,120,224,114,185,99,8,7,188,189,29,113,236,26,51,155,15,241,185,102, -81,149,9,184,94,129,107,79,56,156,25,63,222,128,174,73,9,76,8,64,104,129, -0,70,223,19,198,7,240,245,5,196,134,113,62,210,10,32,196,9,152,24,56,188, -1,255,117,32,220,190,128,207,251,210,11,32,92,175,156,200,126,103,194,251, -123,74,22,64,64,19,24,77,71,104,168,204,78,201,50,88,230,182,12,168,195, -254,112,64,67,250,196,38,163,83,198,84,214,233,84,140,254,233,85,152,71, -235,108,221,89,140,201,67,178,244,201,122,187,219,100,90,15,201,58,89,187, -71,146,170,172,129,173,17,113,247,223,92,221,220,101,181,237,192,170,155, -80,56,187,152,192,86,63,30,149,179,200,95,244,158,99,156,77,25,60,20,64, -67,231,69,107,128,29,225,42,81,149,43,216,54,159,114,234,224,99,175,143, -42,17,10,210,156,124,50,60,158,23,251,30,191,119,136,20,172,100,82,69,11, -36,161,208,126,60,93,176,235,49,82,53,110,150,239,215,194,109,146,22,187, -108,157,226,200,39,98,150,149,107,29,233,241,12,85,137,205,153,38,87,34, -103,148,77,245,144,151,158,187,177,102,230,202,179,201,14,155,118,2,30, -186,151,111,10,12,251,31,5,231,133,132,4,54,147,74,113,116,210,69,90,164, -108,43,102,60,131,228,95,240,170,88,90,3,106,242,137,201,65,64,73,55,233, -197,195,166,141,88,198,52,207,193,151,215,96,168,198,171,90,221,12,215, -147,214,241,246,214,146,130,106,172,86,163,35,122,78,198,221,201,138,43, -240,210,46,152,171,250,223,78,196,249,9,220,38,175,147,237,65,199,64,28, -112,187,94,113,159,26,28,207,41,184,175,237,9,241,39,44,60,160,25,73,172, -166,191,51,198,30,152,70,194,112,79,111,190,63,17,126,254,1,116,119,224, -175,95,192,215,157,49,197,212,59,103,34,196,191,210,146,61,16,227,242,23, -225,242,224,52,149,56,223,224,221,17,248,249,158,160,254,143,123,34,223, -77,67,130,234,153,8,251,133,120,23,96,122,90,50,207,202,117,228,120,187, -224,118,159,64,135,51,142,135,29,154,96,5,113,200,159,114,100,193,134,181, -30,159,166,108,94,4,73,216,244,81,183,204,42,149,24,43,11,153,90,217,58, -145,76,98,199,148,232,105,143,29,78,220,219,234,187,23,202,77,30,75,221, -221,93,238,103,229,10,8,82,23,50,177,96,61,158,56,98,215,153,63,18,249, -40,161,92,122,105,63,113,129,5,90,11,96,121,40,17,156,30,3,76,115,94,237, -65,121,159,149,217,8,177,178,25,38,242,170,217,127,103,229,94,59,247,217, -140,96,218,0,74,245,249,234,66,236,129,203,209,92,18,149,30,163,50,243, -94,43,27,185,168,223,165,125,114,38,61,83,233,125,1,205,131,32,19,160,172, -179,45,84,43,207,242,150,196,53,59,207,134,201,231,145,20,174,130,213,141, -205,197,76,136,236,177,147,200,254,88,66,247,100,18,164,170,224,210,147, -133,80,219,192,30,27,103,17,251,98,146,158,109,69,17,5,209,234,208,135, -174,109,225,100,101,200,229,230,181,168,28,162,50,240,69,158,16,39,70,106, -185,135,138,208,131,232,57,213,220,62,85,118,174,171,249,44,181,136,66, -232,36,114,68,28,35,168,161,98,36,142,232,223,180,59,97,229,98,57,111,164, -229,254,77,35,250,251,21,215,129,208,157,78,105,230,221,28,84,86,91,122, -125,60,4,52,29,97,191,103,244,83,202,130,155,29,225,120,78,204,248,199, -141,112,27,230,7,29,210,131,161,22,216,159,128,93,195,120,124,1,183,129, -87,201,129,102,71,120,251,193,120,59,3,187,54,193,255,109,199,216,239,129, -126,162,69,131,7,199,51,112,216,201,145,23,211,2,90,52,4,40,98,122,220, -113,187,221,49,181,39,156,143,7,116,193,170,72,149,100,53,162,74,226,176, -28,230,178,143,182,86,204,158,50,26,61,183,230,158,23,151,43,155,201,166, -47,76,37,161,80,46,109,250,14,57,198,59,144,92,193,136,58,91,79,223,69, -159,127,78,155,136,32,155,217,101,54,198,47,218,89,221,63,243,61,241,29, -50,140,123,46,174,184,254,76,184,222,72,53,189,196,165,2,101,135,183,225, -29,226,121,127,139,106,86,64,196,234,140,144,85,143,72,182,191,53,37,241, -74,224,39,167,7,45,96,204,117,52,211,84,105,69,42,103,243,95,210,243,223, -153,125,46,56,41,68,102,76,174,20,100,220,66,104,168,104,194,206,207,199, -217,67,62,202,201,166,173,34,194,144,154,215,23,235,199,50,251,11,240,73, -87,132,75,75,142,173,32,14,180,170,226,107,134,202,121,84,81,197,22,9,13, -137,4,76,118,27,232,149,42,189,118,126,108,206,166,59,144,35,73,39,56,45, -67,235,207,122,138,27,202,78,123,144,245,238,163,255,190,252,111,174,25, -80,174,11,41,26,88,196,144,17,216,34,218,44,101,24,157,18,133,205,80,187, -201,198,72,142,149,46,154,195,210,95,152,254,78,32,247,179,82,215,120,154, -53,63,97,186,127,224,159,31,61,104,127,198,143,247,35,118,161,220,93,12, -45,32,67,226,102,196,137,16,153,87,200,42,16,82,210,196,192,60,108,80,48, -86,67,72,191,23,39,32,74,198,234,60,211,30,150,207,16,1,158,8,19,139,195, -63,164,215,111,200,25,5,180,187,46,78,184,125,252,19,31,15,194,233,199, -159,56,239,27,52,65,79,145,214,24,186,101,5,106,14,44,232,136,234,141,180, -212,167,73,72,107,36,168,30,126,110,223,84,97,254,26,188,70,27,69,206,111, -87,125,122,248,15,176,247,143,77,184,166,39,148,187,26,15,126,235,227,60, -155,1,171,149,29,254,223,189,188,213,148,162,149,56,33,86,9,217,252,236, -168,212,224,172,91,244,170,3,5,70,209,146,253,94,228,43,125,247,167,74, -132,175,63,111,42,176,10,152,54,67,233,67,79,69,43,80,22,65,249,208,206, -53,6,41,190,1,217,15,204,27,189,40,131,48,209,147,4,83,199,94,71,224,66, -73,2,231,15,148,33,103,95,203,204,191,255,180,38,227,190,207,225,107,91, -212,107,159,228,54,145,222,107,238,218,121,214,186,165,39,92,28,108,64, -245,38,131,37,147,174,176,115,102,144,173,98,139,252,128,54,79,206,229, -85,91,87,127,81,244,67,226,20,17,121,66,211,180,218,102,147,76,184,113, -166,105,0,0,32,0,73,68,65,84,27,206,4,119,176,153,204,173,109,40,98,65, -176,211,133,254,210,119,143,243,152,25,33,188,190,25,95,81,26,211,18,82, -166,196,91,190,157,212,250,166,225,129,235,229,142,169,59,225,63,206,7, -236,26,255,148,93,19,16,42,59,175,161,101,132,10,217,162,13,53,200,54,253, -43,180,64,3,219,195,144,178,142,4,106,83,50,192,76,219,69,169,177,95,4, -128,105,232,113,127,12,152,232,156,96,121,35,117,155,225,187,82,51,221, -87,70,166,2,174,175,179,191,203,94,32,85,116,33,87,89,201,25,234,151,132, -171,133,208,197,68,165,224,135,39,151,76,27,48,220,119,14,125,54,73,33, -89,39,119,82,117,148,119,183,80,133,209,107,147,236,58,81,176,212,41,218, -76,22,234,188,27,170,42,208,215,10,128,108,206,161,14,41,65,128,92,125, -186,89,143,102,193,6,101,214,30,161,235,12,185,37,95,174,49,141,234,26, -23,223,17,44,250,78,60,119,80,75,54,28,137,21,75,49,192,142,98,244,27,199, -72,117,188,115,230,23,72,213,50,38,59,34,102,90,29,197,193,167,91,102,217, -23,128,159,99,52,170,205,144,219,106,178,111,156,199,253,50,31,96,173,66, -205,184,180,59,82,102,244,82,86,233,109,7,236,120,85,105,92,57,71,42,55, -67,107,100,73,165,102,255,86,96,199,55,207,138,167,163,138,156,219,149, -4,231,124,240,208,244,178,209,103,153,62,114,4,149,64,11,68,239,31,13,60, -103,144,77,104,103,226,72,41,84,194,154,105,97,244,9,56,51,22,73,104,166, -175,122,210,84,66,38,18,182,96,0,129,208,160,93,181,238,171,125,142,231, -252,161,178,218,96,42,113,126,153,180,196,9,253,245,23,126,125,94,49,240, -14,199,247,119,252,199,249,136,46,80,41,212,69,50,115,39,209,54,100,33, -49,41,243,53,121,44,144,216,183,22,48,101,223,245,219,140,74,176,153,145, -80,218,202,54,249,42,184,7,19,24,201,5,111,122,124,225,179,107,209,80,139, -125,71,202,184,5,140,170,33,74,126,109,79,157,70,207,126,27,73,109,99,52, -132,210,141,141,203,199,150,209,241,25,102,86,194,66,250,243,86,91,148, -92,197,195,159,51,235,157,245,71,130,11,224,245,102,109,13,255,12,148,247, -11,4,86,217,187,30,89,171,133,100,15,9,176,134,53,229,124,62,87,170,40, -245,78,106,184,88,84,98,194,236,135,68,46,77,84,154,77,234,245,12,1,201, -11,210,26,178,174,59,155,17,51,218,170,208,241,132,4,245,221,68,206,60, -71,57,93,164,149,208,50,68,92,180,45,11,166,157,208,153,55,5,78,134,232, -5,231,192,67,44,180,162,148,51,23,97,42,87,165,29,161,207,46,219,97,100, -182,237,49,214,80,182,152,146,89,167,28,72,147,165,141,68,170,25,135,164, -213,221,113,77,100,156,140,141,94,173,231,84,144,211,90,68,100,138,4,45, -232,83,73,70,106,129,156,55,182,216,147,145,69,203,165,169,53,33,182,243, -85,93,148,51,203,216,59,79,182,253,247,229,191,185,36,12,33,171,213,33, -245,221,151,113,184,66,91,157,244,230,213,12,2,35,198,78,102,113,51,4,60, -35,22,245,188,152,166,249,253,155,208,192,85,125,250,219,125,247,74,38, -38,23,244,52,33,198,148,104,132,38,36,181,61,143,144,225,42,81,57,15,23, -122,44,70,141,142,152,67,251,105,233,65,108,124,152,197,192,153,49,129, -97,137,168,216,57,166,89,173,48,161,53,152,141,100,52,180,78,238,76,244, -198,42,172,192,82,228,126,194,237,161,29,20,214,167,172,3,170,116,47,220, -176,85,113,139,216,87,101,74,55,127,78,78,32,231,66,135,170,214,158,248, -254,2,246,239,29,189,176,232,203,143,111,187,156,158,39,60,61,185,77,122, -77,170,189,109,218,92,82,15,252,41,138,178,86,96,102,237,9,9,84,38,122, -249,17,254,253,175,74,91,195,152,147,212,186,96,85,189,122,209,227,180, -79,107,117,220,35,188,240,28,80,81,244,17,5,133,105,117,120,62,13,228,242, -42,74,191,212,204,175,17,69,133,76,214,138,194,137,156,104,106,125,189, -252,193,209,234,174,182,57,131,65,181,32,144,164,98,85,91,199,31,60,233, -175,191,210,234,217,106,71,20,252,18,59,4,64,224,239,186,157,91,83,51,225, -3,192,180,244,224,69,246,77,243,111,170,62,167,140,64,210,166,208,16,74, -228,162,81,245,65,17,216,89,193,253,138,52,179,254,74,204,149,236,119,152, -116,175,160,145,206,33,162,199,247,230,247,39,210,65,74,120,4,139,181,99, -184,7,84,246,168,156,213,66,47,8,134,212,2,157,223,241,206,153,57,25,230, -13,43,242,14,63,89,208,186,106,210,89,188,249,220,213,5,111,29,29,234,215, -235,239,29,42,43,249,226,121,106,157,239,117,140,142,232,181,158,216,43, -193,189,10,197,61,131,186,235,187,251,217,217,81,127,125,122,138,24,211, -11,217,108,73,163,131,219,155,228,167,239,92,243,150,47,153,229,16,208, -161,127,209,86,172,222,227,201,144,249,167,47,186,206,94,11,134,95,190, -241,223,15,248,5,241,142,170,57,79,89,252,148,1,116,77,98,5,220,70,210, -95,97,173,246,81,58,57,86,18,16,235,84,192,207,180,17,61,173,125,228,42, -59,75,206,102,41,96,47,250,174,147,53,76,149,237,96,87,163,224,10,1,142, -87,253,147,14,218,170,167,96,181,19,197,59,148,182,21,37,39,154,54,80,190, -87,198,229,108,113,237,154,172,249,38,216,223,113,221,80,105,160,52,100, -19,73,102,96,59,175,60,207,187,79,113,210,253,16,54,94,187,198,227,157, -72,155,119,145,37,143,144,189,36,202,132,106,211,107,137,113,194,52,77, -136,130,157,250,204,161,241,229,224,191,6,113,217,35,150,42,44,64,228,105, -149,112,197,34,180,34,131,187,132,66,216,109,70,75,241,109,229,242,181, -46,44,38,215,200,204,154,52,249,214,158,254,125,93,4,67,216,129,142,151, -4,165,132,231,203,69,187,192,141,108,250,86,22,129,103,246,15,60,93,64, -104,146,153,69,177,148,41,173,48,210,40,238,130,64,4,172,231,0,43,27,90, -103,157,212,180,162,183,32,123,251,96,200,57,156,77,143,140,196,83,38,135, -159,254,252,18,168,34,40,170,159,189,231,41,95,147,196,45,143,20,237,250, -141,181,111,252,202,225,79,149,27,36,70,174,172,203,155,88,253,108,156, -161,243,131,231,82,57,76,140,80,174,211,151,139,194,166,64,195,108,155, -146,158,65,239,132,239,241,120,170,175,161,137,164,82,10,129,80,106,3,232, -141,237,248,214,207,7,33,171,181,164,97,82,9,192,19,149,82,199,101,251, -14,10,237,210,138,230,27,186,138,122,134,54,63,191,89,144,44,161,10,185, -135,188,118,37,68,146,149,11,118,218,8,132,60,191,94,94,133,68,80,235,71, -78,157,224,89,82,204,218,203,158,196,164,201,106,126,204,178,183,204,219, -149,149,61,211,185,178,134,138,131,204,57,94,101,184,241,18,15,131,162, -201,239,120,120,76,30,173,20,77,95,150,39,68,74,194,2,49,217,218,126,118, -37,107,179,204,43,114,63,77,90,7,102,49,27,42,90,220,98,87,90,102,76,102, -66,83,217,86,142,115,15,186,109,218,85,38,23,216,200,21,158,29,210,110, -246,197,240,92,226,86,168,137,3,218,118,121,127,237,165,46,225,45,34,253, -176,245,33,149,231,210,60,118,124,46,52,185,114,100,218,232,237,167,151, -170,27,192,92,234,62,176,29,107,17,7,148,97,162,209,82,225,115,37,171,53, -113,180,204,76,237,39,162,98,127,120,70,43,92,240,11,200,40,126,233,234, -168,54,153,207,236,88,102,214,54,47,195,55,86,123,122,232,91,11,90,73,146, -225,117,147,178,18,3,173,163,123,92,192,252,229,42,208,247,113,219,10,150, -43,155,193,27,49,146,154,116,178,202,171,19,155,140,92,150,241,196,100, -38,101,95,99,21,14,37,135,134,204,90,204,162,131,214,88,100,78,252,72,91, -154,50,161,166,163,84,23,44,250,238,23,195,71,41,228,121,182,200,202,66, -36,198,82,16,202,33,185,151,217,30,103,249,81,165,211,79,69,123,207,93, -183,54,34,209,70,188,34,173,67,200,164,166,220,76,14,146,225,16,153,12, -234,135,74,43,201,90,21,44,30,127,217,229,254,177,227,117,110,9,199,214, -20,9,27,155,58,39,35,60,115,23,228,224,61,153,132,138,128,231,179,237,30, -100,198,79,74,108,239,232,94,12,120,188,118,129,218,125,246,211,160,8,48, -182,176,204,246,188,218,127,33,232,28,129,49,77,17,113,154,114,192,115, -237,203,89,31,248,44,130,152,132,231,217,148,151,240,37,23,114,146,199, -201,188,38,70,117,200,208,191,97,115,170,21,92,4,76,18,83,3,19,166,56,230, -143,175,44,28,53,180,83,13,24,10,245,151,132,19,27,214,228,242,125,229, -243,148,44,14,45,46,146,15,214,162,15,184,252,148,236,174,214,100,171,85, -88,200,129,180,216,169,138,233,73,182,101,235,136,130,15,36,158,0,121,9, -24,149,25,134,238,201,82,113,0,147,195,157,220,144,100,251,61,198,188,178, -20,182,213,6,171,186,131,170,137,63,57,235,1,69,57,80,18,122,185,130,8, -82,245,16,180,186,255,44,214,163,60,76,8,30,255,223,57,235,212,227,41,209, -5,50,7,120,29,202,20,61,36,233,4,72,114,239,232,27,175,238,219,179,12,234, -111,67,241,185,90,98,98,147,213,179,238,68,49,11,181,71,42,108,153,109, -15,124,214,175,157,63,58,107,24,121,189,111,226,192,39,214,135,98,69,143, -196,34,134,42,129,86,228,69,94,209,19,169,61,70,197,217,33,215,57,173,72, -38,113,102,118,101,19,77,46,142,42,38,191,26,102,89,116,176,92,77,92,244, -213,107,237,160,98,103,81,38,120,175,111,110,166,180,178,28,238,70,85,254, -204,144,106,235,28,49,200,12,155,39,193,43,114,65,246,4,84,28,157,82,170, -197,36,62,148,225,176,181,184,80,104,2,33,96,206,142,151,89,234,16,8,109, -211,36,27,86,225,91,92,140,64,21,22,133,153,60,147,23,59,219,114,117,30, -159,177,254,141,194,43,152,104,117,182,123,161,165,248,251,95,42,131,224, -57,230,37,243,154,182,233,230,33,117,46,8,117,179,245,180,127,192,168,212, -213,169,102,89,31,184,158,20,168,123,145,4,99,3,201,42,233,176,25,46,213, -216,157,197,245,58,138,102,2,107,204,249,29,203,164,87,64,243,228,62,19, -18,232,136,69,94,184,128,181,157,139,46,2,179,49,40,101,105,213,165,91, -37,252,44,35,231,111,192,181,47,143,89,210,154,131,215,187,237,94,29,108, -39,41,60,216,85,166,103,86,35,220,214,255,188,17,215,124,125,121,46,90, -68,12,207,8,150,200,62,97,173,112,68,98,122,128,214,0,197,107,50,201,6, -170,102,177,95,10,188,130,141,42,156,41,49,185,146,152,241,239,86,3,213, -100,143,244,2,99,82,31,66,186,155,177,188,251,236,32,23,36,206,69,181,47, -5,9,140,117,195,132,84,31,222,217,111,21,232,155,139,116,200,174,39,253, -83,174,190,30,105,47,1,217,74,93,158,47,145,106,189,168,213,101,148,201, -213,53,80,121,171,213,52,7,105,243,192,186,110,52,68,66,45,180,252,87,182, -58,235,246,36,28,111,123,114,138,179,87,218,53,126,62,94,152,96,169,226, -75,124,190,82,226,203,38,131,142,69,175,64,98,86,171,228,229,84,88,173, -223,243,89,222,46,11,50,114,170,156,137,66,114,24,99,42,100,7,61,31,74, -213,63,144,227,14,164,63,36,201,174,143,131,10,68,142,152,98,4,5,66,227, -9,233,124,71,181,142,42,37,135,55,219,200,89,73,105,154,34,66,8,88,197, -250,140,58,26,115,229,230,203,127,172,114,156,34,147,93,31,234,43,52,40, -185,4,147,6,0,71,204,174,121,154,176,148,245,249,129,64,97,30,177,51,57, -174,157,5,231,164,107,16,57,123,53,39,103,192,160,71,153,108,237,184,30, -82,140,136,136,41,38,15,249,64,65,83,231,56,98,154,239,65,131,70,171,113, -109,229,105,140,74,95,18,133,86,185,229,108,66,62,31,218,70,103,153,39, -68,48,8,205,236,66,248,130,27,151,187,209,173,145,199,60,249,193,19,128, -102,77,4,225,106,125,251,64,100,173,101,65,38,133,243,66,245,75,61,74,103, -48,7,174,254,64,173,122,176,24,171,144,29,6,129,41,89,43,51,66,114,97,36, -7,62,7,207,103,13,3,212,160,161,12,91,170,227,110,233,245,10,97,23,114, -15,189,10,76,191,57,170,132,231,50,197,246,63,20,95,116,70,64,22,33,26, -73,0,84,8,167,80,83,132,131,40,153,25,232,204,148,207,193,147,216,24,60, -21,26,238,214,79,208,238,51,205,142,149,142,144,170,120,219,64,4,20,187, -17,110,84,214,219,181,138,160,148,36,64,107,90,229,165,200,68,181,168,106, -213,52,120,13,114,75,240,99,65,44,102,233,117,79,149,151,242,252,220,183, -60,40,42,68,220,178,205,226,159,126,155,51,53,27,178,234,92,36,122,190, -109,112,43,55,110,19,230,202,153,201,64,79,40,198,225,140,86,129,208,53, -54,252,92,18,135,136,153,9,203,72,21,175,214,173,68,40,136,73,244,12,70, -173,45,206,210,214,202,73,249,151,140,47,121,218,35,208,218,203,21,0,134, -234,29,91,46,120,134,226,101,207,10,171,70,189,132,105,100,27,195,227,159, -228,65,170,9,227,248,133,143,254,129,72,7,156,119,111,56,52,148,161,108, -138,152,134,79,252,234,31,136,116,196,219,254,140,61,5,181,217,148,139, -37,69,140,227,128,199,120,193,109,184,226,62,205,223,15,7,188,31,222,241, -214,237,211,97,27,39,244,19,208,46,40,10,107,113,156,137,31,248,186,254, -133,207,145,240,118,248,3,111,187,29,218,212,233,1,243,132,123,255,79,124, -76,45,206,187,51,78,109,26,43,84,143,105,203,203,216,24,18,120,90,1,170, -186,160,242,32,40,218,96,44,19,208,136,123,255,79,252,154,26,156,119,111, -56,183,93,41,60,84,27,111,180,9,98,193,164,137,24,251,127,225,175,145,208, -237,206,120,111,119,243,103,47,43,98,114,43,124,15,84,183,160,3,131,56, -162,103,160,161,38,25,1,125,19,178,178,179,12,175,139,246,45,87,49,97,140, -64,8,13,154,85,86,20,0,79,184,63,254,47,62,230,123,123,106,187,148,66,25, -93,140,24,31,248,188,253,11,159,99,192,249,248,19,239,221,30,141,169,114, -153,244,33,166,137,216,92,211,103,253,141,36,237,89,182,77,107,127,124, -133,200,89,87,196,82,100,143,139,192,39,80,77,53,49,44,20,25,29,216,117, -77,240,107,26,190,174,16,160,63,253,160,154,38,92,130,101,44,220,60,171, -240,0,233,64,34,73,92,30,49,204,5,177,172,73,208,250,24,231,93,78,90,209, -163,152,144,112,228,230,60,77,145,66,177,83,152,153,144,152,25,102,57,118, -93,11,242,216,72,2,107,16,61,103,228,215,248,10,42,169,97,134,99,168,99, -210,119,213,181,82,35,36,122,29,50,52,191,77,122,160,180,201,227,61,101, -222,77,211,148,159,64,72,131,42,69,32,210,67,24,100,156,162,116,213,53, -103,186,138,64,147,3,230,52,37,151,186,182,105,245,253,124,86,181,215,188, -61,168,210,210,172,100,167,139,90,95,219,182,170,249,180,40,56,17,106,41, -184,92,76,134,244,69,165,9,249,186,24,137,170,26,28,137,161,58,226,49,92, -112,25,30,64,243,142,31,187,3,118,33,228,94,87,28,113,239,63,113,25,122, -80,243,134,31,187,35,118,77,208,35,138,202,20,98,192,237,241,129,95,253, -136,182,59,227,253,248,134,159,171,2,92,170,182,2,17,120,186,225,171,255, -194,149,247,248,121,120,195,126,174,206,243,181,70,140,195,13,183,113,68, -211,254,192,177,219,165,164,0,12,240,132,199,240,133,175,97,68,232,126, -224,212,238,214,0,100,109,36,173,102,242,250,27,204,101,134,198,102,247, -25,71,37,162,210,181,76,181,85,86,109,165,136,199,248,137,207,126,64,232, -222,113,106,58,237,35,176,9,215,114,57,199,171,198,39,35,134,241,130,175, -177,7,183,127,226,188,6,247,90,65,249,220,181,130,138,108,156,17,227,125, -126,62,59,252,60,190,139,174,29,94,120,45,168,14,190,77,50,216,120,178, -185,193,63,222,240,245,248,194,21,123,252,60,188,99,31,22,158,205,132,126, -248,192,101,24,65,221,15,156,154,244,249,11,80,134,39,12,227,13,183,113, -66,211,157,211,26,177,250,249,171,224,85,62,100,216,246,225,95,109,215, -125,183,7,95,8,178,228,241,52,125,166,145,113,131,99,9,123,149,222,67,130, -117,175,128,195,98,156,52,35,135,107,191,95,160,3,178,160,146,215,104,117, -13,109,120,247,244,39,202,214,160,39,151,150,133,201,10,131,85,47,72,82, -229,204,38,152,246,74,110,111,228,145,63,205,21,41,186,193,14,166,206,38, -204,175,83,22,172,83,128,149,79,111,44,178,159,122,185,123,222,76,207,230, -220,197,131,98,83,201,144,184,89,89,189,149,13,125,144,92,71,89,219,90, -144,80,127,22,21,204,194,82,171,104,218,63,46,255,205,140,8,66,88,3,83, -49,223,238,113,78,184,44,175,173,204,160,30,69,35,27,230,68,111,142,215, -30,62,189,98,58,130,223,217,180,21,152,136,19,180,19,164,57,130,106,160, -61,83,3,175,53,142,161,178,170,103,227,148,107,8,157,30,184,245,159,184, -112,131,67,119,194,185,221,171,74,45,78,125,250,121,12,56,236,79,56,55, -7,52,164,173,3,53,137,127,192,99,248,192,63,31,19,186,221,59,126,238,14, -179,18,223,98,253,152,4,110,38,12,120,244,159,248,140,1,199,246,13,111, -93,135,64,1,109,160,52,182,40,44,42,3,146,233,79,88,178,81,30,49,12,95, -248,235,241,64,179,123,199,251,238,132,29,217,57,220,10,199,138,35,226, -12,154,7,230,4,239,3,32,106,18,162,180,18,153,70,140,113,73,158,8,52,39, -38,164,213,77,75,127,100,48,24,19,134,225,19,127,61,122,52,221,59,222,119, -199,249,250,114,101,31,65,73,208,105,105,125,204,80,123,19,114,146,17,227, -132,184,190,87,72,191,15,198,56,221,240,245,248,192,16,78,56,182,71,28, -66,72,215,55,27,35,125,111,4,219,226,67,140,41,142,136,113,196,99,248,194, -71,12,56,182,103,156,187,14,13,53,104,231,182,203,180,106,48,164,107,92, -238,31,56,98,226,152,254,123,77,80,34,70,102,132,208,162,193,51,29,134, -52,50,27,227,132,199,248,129,207,137,112,236,222,241,214,118,32,34,180, -4,140,211,23,126,221,46,152,154,51,206,221,17,187,134,64,104,82,226,136, -212,182,136,66,216,41,204,207,47,168,53,59,98,228,124,246,164,251,219,32, -8,11,213,165,181,212,52,45,2,99,91,20,228,223,65,176,91,91,109,207,68,83, -74,207,141,162,77,105,116,219,101,180,214,251,163,246,34,27,199,155,176, -114,230,154,26,66,229,218,61,20,57,23,138,218,113,78,147,135,165,104,17, -151,36,0,245,186,37,108,71,134,53,66,85,143,247,39,7,187,25,229,41,36,166, -72,40,32,214,236,85,107,193,222,11,228,207,122,242,86,182,208,17,180,225, -138,22,74,209,233,253,102,136,83,99,176,243,51,107,167,105,74,153,92,40, -61,125,117,118,17,197,236,54,153,214,252,220,51,138,203,58,8,153,100,183, -176,24,151,191,15,16,125,69,78,140,125,2,40,52,171,93,32,57,35,255,185, -162,231,58,100,37,215,33,161,96,138,51,3,20,4,49,138,35,226,52,195,67,75, -53,18,80,8,240,113,21,30,51,254,184,176,132,176,172,175,188,176,133,41, -248,70,43,196,17,67,188,227,210,95,48,114,139,227,238,39,222,218,32,102, -129,39,244,241,134,107,127,195,192,13,142,251,31,120,107,91,44,33,132,35, -196,252,39,86,177,162,105,188,226,235,113,65,143,227,12,73,231,83,49,78, -35,238,253,7,62,251,47,220,98,76,199,57,53,136,227,3,183,225,128,243,238, -132,99,152,112,125,124,226,115,24,129,230,132,159,199,159,120,111,90,132, -229,243,199,17,195,120,193,103,223,131,155,51,222,118,39,116,222,40,8,71, -129,140,44,45,160,1,143,254,11,159,195,3,76,1,1,19,110,195,0,166,29,78, -251,31,248,121,56,160,137,19,134,233,142,235,112,197,117,236,49,49,131, -194,9,239,135,159,248,217,117,138,55,30,217,192,223,179,66,223,48,124,225, -99,232,193,205,9,111,251,28,220,121,174,40,175,195,0,52,7,156,119,7,4,30, -241,232,63,113,153,128,253,238,29,111,104,49,113,143,97,184,224,50,220, -240,136,17,140,6,93,247,150,18,25,190,227,171,255,196,109,98,16,223,241, -235,241,23,254,69,59,156,247,63,241,190,63,162,163,167,157,54,193,95,0, -130,104,105,113,28,112,31,62,241,113,255,194,61,198,180,135,208,33,142, -119,220,134,35,222,119,103,236,195,136,91,127,197,3,41,216,143,195,5,15, -110,112,216,253,192,143,93,135,113,248,194,101,10,56,237,222,241,214,54, -152,226,29,215,254,130,59,119,56,239,126,224,212,54,8,115,42,17,1,133,60, -48,15,184,247,31,248,120,92,112,143,211,204,7,107,48,77,61,174,225,128, -247,221,9,251,48,226,250,184,97,0,129,248,134,191,174,191,16,185,195,233, -240,3,63,118,59,96,186,225,242,248,194,231,56,130,218,19,126,236,127,226, -189,109,176,166,110,60,162,159,110,184,246,215,132,128,48,64,77,135,99, -247,142,247,253,25,59,2,16,39,60,198,95,248,245,184,97,106,222,241,243, -240,142,35,5,21,228,93,242,236,43,73,191,39,163,42,42,87,86,116,11,146, -20,56,141,224,89,39,236,226,90,252,54,33,137,10,94,91,222,62,11,120,162, -138,37,0,102,204,170,160,82,50,21,29,39,125,70,74,248,122,249,61,211,167, -132,54,17,242,122,241,76,78,87,129,216,189,110,18,193,157,77,187,129,94, -8,111,178,245,188,84,239,185,82,39,195,157,32,173,184,202,79,50,91,215, -55,101,131,2,80,246,4,13,125,137,224,207,254,136,103,36,122,61,180,149, -211,200,215,82,252,56,206,249,206,124,67,219,166,105,102,248,111,2,136, -17,40,29,222,44,72,21,12,78,210,181,28,83,159,90,220,32,34,36,135,180,24, -193,60,195,252,196,134,159,146,201,96,13,133,85,121,39,114,110,11,76,49, -53,133,67,19,10,17,7,102,198,52,7,160,16,26,4,203,158,101,96,73,84,214, -217,121,211,51,25,227,252,115,10,41,1,153,127,33,204,154,172,233,245,129, -6,33,37,33,130,73,71,243,235,51,48,127,62,115,154,48,99,154,166,84,221, -54,169,58,177,189,194,105,26,65,72,100,182,66,106,139,7,220,250,11,174, -211,8,10,103,188,239,14,25,114,159,15,218,229,231,33,156,240,190,63,96, -23,154,140,24,207,213,13,71,66,211,132,100,169,203,233,200,142,96,76,0, -120,188,227,235,254,133,176,127,199,137,210,61,12,20,176,235,14,216,79, -61,16,26,236,186,119,156,186,37,105,136,24,167,9,99,108,177,111,143,232, -227,3,220,118,104,41,172,73,26,226,132,97,252,156,131,231,17,63,119,39, -236,73,123,158,47,220,11,142,73,6,183,105,150,231,19,49,142,23,124,62,62, -112,141,1,135,221,15,28,218,6,13,62,113,231,14,187,38,96,26,47,248,234, -31,24,209,98,223,253,196,127,116,41,224,92,35,41,83,157,85,214,152,1,106, -154,85,102,151,227,132,105,250,194,199,248,0,55,167,116,125,11,236,139, -56,115,28,122,112,56,226,189,221,161,193,132,123,255,129,175,145,209,117, -111,216,99,194,215,227,3,183,9,232,218,3,222,143,111,248,115,254,240,68, -4,142,87,124,62,62,240,57,50,246,221,59,222,90,66,15,198,128,14,109,219, -162,169,200,20,21,80,253,188,126,8,132,24,40,201,66,131,65,212,162,107, -247,56,116,3,56,54,56,116,111,56,182,45,2,210,231,7,247,248,122,124,225, -115,24,208,180,103,28,186,3,246,148,172,149,155,208,2,177,199,61,50,218, -246,136,67,211,128,249,142,75,127,69,207,29,78,187,51,142,109,179,238,132, -56,197,121,138,36,79,176,16,181,216,181,243,250,136,39,236,119,103,28,155, -14,205,156,132,199,233,130,207,123,122,126,187,238,13,111,109,131,158,25, -119,238,208,54,1,227,52,2,220,98,223,29,49,240,3,49,116,232,66,147,247, -127,124,224,242,248,196,141,27,236,218,31,248,31,251,14,109,72,135,83,66, -71,102,132,39,222,112,27,31,152,104,135,83,119,76,173,35,114,14,194,87, -203,191,42,153,172,108,191,73,50,28,51,149,78,229,54,39,32,167,179,179, -180,29,200,211,69,167,85,148,197,55,126,117,20,251,138,8,237,1,242,80,29, -93,79,76,175,230,88,166,57,91,172,208,129,60,2,237,128,161,208,250,244, -69,37,171,218,103,165,185,25,191,148,157,249,200,196,2,135,47,109,62,201, -227,32,65,36,114,219,7,223,213,153,223,240,50,88,214,182,250,111,230,181, -120,214,103,191,102,214,211,147,182,19,173,168,43,86,151,70,98,141,222, -218,207,210,50,24,129,8,77,8,137,81,13,82,100,146,53,91,13,97,118,166,33, -201,91,0,205,144,27,83,64,226,212,4,77,166,155,31,94,179,136,230,204,119, -56,245,189,35,104,38,115,133,208,204,173,42,114,165,79,151,191,175,33,86, -237,250,250,206,110,14,64,2,35,115,89,30,167,20,252,154,208,128,66,74,60, -36,57,129,116,226,154,249,9,133,63,110,186,216,148,40,161,24,34,101,57, -250,135,204,67,88,25,209,115,245,114,137,1,199,221,59,78,237,30,173,120, -13,158,174,184,244,87,92,57,224,176,123,199,169,217,165,159,139,4,140,136, -16,16,128,150,148,104,8,161,69,215,158,241,190,139,136,211,39,110,227,21, -215,118,143,125,115,64,32,2,104,196,99,120,96,192,14,167,195,27,78,115, -59,96,153,95,110,3,207,125,249,30,220,28,240,182,59,227,216,52,235,178, -28,166,11,62,135,59,38,154,131,167,224,112,72,54,63,83,34,101,17,97,37, -158,141,211,21,159,247,47,244,225,132,159,135,119,156,219,128,113,248,194, -53,6,236,119,7,80,188,226,107,28,17,218,119,188,183,123,236,26,96,24,238, -24,57,160,235,142,56,52,93,70,115,196,235,147,208,44,29,199,11,62,251,43, -166,112,194,143,238,132,125,104,214,67,107,26,46,248,120,220,210,207,118, -39,236,67,196,253,241,129,175,97,68,187,251,137,83,152,112,31,174,169,210, -221,159,112,20,156,130,84,84,94,241,249,72,173,146,227,254,29,111,13,97, -28,111,24,169,195,97,247,142,183,102,183,38,162,245,66,33,159,168,57,177, -149,3,196,15,60,134,7,122,222,225,188,127,195,185,219,97,53,49,140,119, -124,246,191,240,57,50,186,221,31,248,99,119,66,203,15,92,56,162,105,206, -120,107,128,126,124,96,228,14,239,109,135,192,55,124,245,87,220,121,135, -247,253,25,135,166,157,95,107,118,58,108,66,209,253,103,30,240,24,31,24, -121,143,211,225,29,231,182,155,147,150,152,146,175,199,39,30,56,224,199, -241,7,78,109,192,56,124,98,4,97,223,205,107,137,25,28,175,184,244,61,98, -216,227,109,127,254,255,105,123,215,46,201,117,35,73,208,28,32,72,198,51, -171,238,29,245,204,254,255,255,214,58,167,181,163,91,25,17,124,226,225, -251,1,32,9,128,96,100,150,164,237,62,125,212,170,200,204,224,3,112,184, -155,155,155,161,21,139,249,140,197,108,94,232,204,12,146,31,104,164,10, -73,43,69,18,209,0,88,64,86,103,220,168,197,85,72,8,8,127,221,252,255,3, -36,159,160,63,92,132,16,227,25,240,68,113,150,247,211,218,73,37,202,27, -153,44,238,209,174,181,88,228,0,153,88,109,39,102,48,121,159,55,151,130, -222,83,129,227,152,200,177,114,220,238,249,113,198,193,136,57,84,217,227, -161,116,162,168,56,158,27,245,11,151,67,143,81,164,197,255,91,239,138,66, -139,149,86,145,37,142,254,189,48,71,255,142,152,121,228,201,244,213,52, -70,34,149,28,105,33,36,246,129,27,247,106,159,99,124,67,184,129,54,33,175, -85,232,102,173,248,57,85,63,136,208,148,74,44,57,252,146,21,35,61,220,55, -68,38,130,60,120,207,28,220,170,222,156,160,177,244,76,41,34,7,132,67,111, -217,208,239,12,40,40,178,165,124,183,37,223,45,154,120,246,107,89,0,130, -80,145,76,233,26,68,73,166,181,192,62,73,6,205,5,40,38,167,251,199,173, -4,74,149,228,40,218,80,214,141,120,77,79,88,113,198,173,61,227,36,68,98, -37,105,109,135,215,212,249,207,235,19,218,245,16,43,108,208,208,63,78,189, -216,25,36,42,52,234,138,155,155,161,103,159,8,9,16,216,105,76,211,39,30, -86,224,220,220,112,145,225,0,75,250,133,26,195,252,68,207,53,110,245,5, -103,41,215,234,222,134,3,206,200,27,62,234,11,26,33,119,147,169,185,180, -162,8,159,44,247,61,139,43,126,52,87,156,42,130,213,47,60,181,133,106,46, -104,121,194,167,54,168,235,59,174,170,133,10,207,226,57,14,64,21,122,232, -17,66,64,201,152,149,31,95,178,182,195,115,234,160,229,13,247,250,140,86, -138,245,93,59,59,225,53,119,208,34,192,220,228,48,79,159,248,212,22,117, -125,199,69,50,134,233,129,17,23,220,155,144,212,68,129,217,242,140,126, -122,226,229,8,146,53,198,233,47,152,250,7,62,212,15,252,41,229,58,178,248, -198,246,102,87,62,16,69,66,52,76,224,192,137,120,104,224,210,220,195,225, -26,206,118,54,152,230,7,158,134,112,110,127,224,166,78,80,0,64,45,174,162, -197,13,12,231,58,140,134,209,168,6,146,123,60,166,17,78,94,112,111,206, -104,227,145,203,35,149,60,54,24,231,95,120,104,129,115,115,199,165,10,41, -50,57,24,59,225,53,191,160,197,21,31,205,21,103,41,96,205,11,175,89,131, -212,29,215,186,129,34,255,55,6,253,68,207,13,110,245,13,23,41,35,173,112, -64,176,0,216,97,208,127,97,54,13,110,167,159,184,43,21,107,103,6,130,107, -224,99,208,155,224,74,255,238,161,158,19,57,203,126,10,177,219,25,189,237, -211,114,74,192,219,45,130,76,105,157,114,85,152,50,215,115,63,70,202,5, -50,101,214,211,103,74,218,162,196,116,72,6,218,170,247,232,128,94,214,114, -82,37,70,78,113,95,192,218,41,69,111,35,45,51,237,231,135,128,239,141,121, -114,238,94,152,24,111,109,253,246,164,253,79,153,188,120,217,145,186,204, -77,192,155,196,32,42,200,104,85,230,203,213,74,99,235,41,42,99,43,5,242, -241,17,252,199,171,196,115,230,0,25,45,97,98,160,202,38,66,214,151,198, -28,59,146,113,4,119,236,199,21,118,76,19,206,28,207,128,132,73,110,173, -245,149,191,148,216,73,236,127,215,49,238,157,240,127,145,68,177,193,52, -214,122,165,58,89,165,186,250,91,166,141,140,125,154,89,194,230,208,92, -174,1,189,88,225,238,244,210,183,89,113,173,95,120,234,25,78,156,241,209, -92,34,210,23,129,97,160,231,206,247,166,197,9,31,205,197,247,114,115,221, -141,124,143,71,243,98,107,46,207,14,206,142,152,44,163,82,87,92,170,6,2, -140,89,63,241,105,13,42,249,19,119,89,67,136,212,204,194,51,245,31,24,156, -192,169,185,227,180,180,12,8,112,118,196,107,122,97,66,131,91,125,69,45, -0,7,11,193,190,61,65,5,161,148,181,213,195,19,250,169,195,204,13,174,167, -59,206,2,112,166,195,51,192,252,103,201,232,38,3,22,103,220,84,131,138, -28,140,126,225,169,71,152,240,172,78,11,124,75,7,78,193,110,66,55,119,152, -200,87,171,141,240,109,36,255,172,38,244,243,19,218,213,184,158,175,104, -97,208,143,15,60,244,12,161,126,224,166,4,166,233,19,131,149,56,157,174, -225,112,143,60,166,121,68,63,61,124,95,91,157,193,250,159,120,112,139,179, -186,224,92,201,109,148,40,232,1,16,100,64,184,80,224,202,166,27,127,91, -111,22,243,252,194,67,27,40,245,19,55,213,68,136,146,195,172,159,120,90, -11,85,255,196,143,186,193,38,40,45,65,130,193,152,48,77,35,44,36,36,38, -244,218,64,170,15,220,170,6,74,80,34,13,90,150,7,117,152,244,19,15,109, -33,213,29,55,165,60,226,195,12,235,38,12,186,195,204,53,174,167,15,156, -5,123,52,67,207,96,121,197,143,250,4,37,150,4,225,129,193,73,156,234,59, -78,149,72,157,132,73,66,213,31,248,67,182,190,207,111,194,92,249,146,64, -134,158,63,132,128,36,249,158,212,246,29,2,212,219,248,193,169,209,66,118, -10,108,185,29,37,212,162,136,63,188,157,227,84,80,241,93,184,56,9,25,46, -233,104,175,135,234,150,180,190,51,105,217,207,59,112,38,16,125,100,33, -76,59,249,219,180,29,193,37,18,28,239,231,213,17,203,119,23,43,224,244, -65,228,213,52,83,218,132,120,239,136,88,168,216,120,19,118,89,223,75,100, -79,27,163,10,28,129,173,84,162,91,188,35,218,149,122,239,69,36,23,200,21, -29,25,41,223,44,159,102,216,53,78,248,157,148,94,154,132,239,196,113,50, -194,233,178,30,171,226,40,64,58,183,16,101,153,145,107,23,242,18,191,112, -145,217,224,51,7,181,188,5,110,23,68,249,124,254,78,172,228,203,17,24,254, -226,176,231,253,65,47,150,62,99,38,152,188,201,179,150,93,187,41,103,132, -174,202,65,180,217,220,98,27,133,203,6,9,125,232,180,19,122,51,96,48,12, -165,238,184,171,26,42,26,25,97,59,96,48,61,6,195,168,212,13,23,213,134, -207,57,97,175,230,207,129,152,131,88,16,71,138,88,11,65,109,134,19,87,252, -108,207,104,192,176,174,71,103,70,88,180,184,84,2,22,14,204,11,183,193, -143,233,205,230,137,215,60,3,213,21,21,52,38,3,40,89,67,146,197,168,7,223, -151,86,45,36,207,24,141,129,229,10,109,85,251,202,13,123,3,29,98,231,123, -174,115,32,125,181,87,156,4,252,120,153,238,161,233,140,155,146,48,250, -137,193,58,52,13,193,218,1,179,29,209,105,11,33,175,248,209,122,134,122, -134,60,102,34,42,26,227,220,161,55,128,170,91,72,30,49,26,11,227,36,90, -73,48,182,67,111,28,164,58,129,109,135,95,227,19,157,117,168,234,31,248, -81,55,96,51,96,52,6,44,78,168,96,60,55,131,132,103,160,179,198,48,191,208, -91,160,109,110,104,201,226,165,43,84,66,65,209,86,177,89,59,224,53,253, -194,203,73,156,219,159,184,85,245,218,222,218,86,213,222,12,100,17,79,177, -110,64,111,7,24,209,224,46,9,142,157,231,110,176,129,214,29,122,163,81, -169,159,94,187,32,83,131,100,182,48,102,196,104,103,88,156,224,156,215, -36,104,164,90,25,243,239,89,253,14,214,142,232,205,0,75,39,220,194,247, -3,2,112,19,186,249,137,206,74,92,154,27,90,1,24,211,227,57,119,33,249,242, -135,59,216,96,158,159,120,233,25,144,183,117,253,84,34,240,123,214,30,159, -131,177,26,26,2,173,186,226,34,149,215,90,48,3,186,233,23,158,92,225,82, -255,196,77,73,143,94,80,129,192,134,47,170,171,175,250,240,5,50,238,134, -98,114,26,23,98,11,92,230,20,213,196,110,42,54,61,143,144,107,100,44,228, -239,84,200,134,203,221,247,183,90,40,233,160,24,54,149,52,254,202,87,60, -98,161,243,86,129,198,127,55,25,164,204,88,255,187,190,111,54,47,79,20, -43,202,81,86,205,22,56,11,135,215,89,54,57,78,221,59,51,173,121,222,238, -45,183,212,126,75,148,203,239,135,191,32,104,230,222,137,203,180,200,238, -230,104,151,220,196,70,134,125,0,0,32,0,73,68,65,84,191,165,18,198,103, -39,39,248,36,86,209,180,69,102,184,144,228,46,71,70,181,252,80,44,228,144, -43,23,81,145,64,178,105,40,19,211,65,246,76,27,148,3,192,57,79,182,2,17, -164,164,226,8,1,253,78,246,205,7,125,148,3,218,251,50,18,70,66,68,108,126, -36,51,86,49,137,164,108,47,24,33,18,11,249,38,91,41,92,92,11,158,177,253, -154,7,88,106,112,110,206,43,97,106,153,35,55,182,71,55,15,48,212,224,212, -92,194,231,188,218,32,174,149,87,78,48,98,192,218,9,253,244,192,203,78, -48,188,180,77,42,180,245,21,151,246,138,70,44,99,82,94,107,223,56,139,217, -190,240,203,205,104,234,27,62,234,19,234,192,67,96,231,123,243,147,157, -1,26,81,85,53,46,85,141,74,8,56,171,161,237,4,109,103,76,206,66,219,51, -110,181,239,81,43,145,62,131,248,58,29,27,76,102,192,232,68,232,81,43,176, -27,49,134,68,227,90,95,112,34,131,129,1,184,25,221,240,127,49,138,26,109, -125,197,181,245,36,49,73,148,177,134,115,178,15,249,145,61,55,195,216,25, -243,104,161,213,25,55,117,193,89,41,16,143,24,204,12,109,102,76,12,88,169, -80,201,26,167,74,225,164,206,104,37,65,135,36,202,152,39,254,178,47,8,81, -227,84,127,224,166,42,56,179,36,54,94,24,136,237,11,12,1,65,50,84,184,0, -243,140,81,127,226,105,52,160,174,104,133,66,149,96,24,251,106,42,1,107, -137,97,217,192,88,11,109,59,252,229,52,6,117,199,135,106,0,55,160,55,26, -44,46,184,169,214,51,204,179,108,214,217,9,253,220,99,100,129,166,62,225, -174,78,80,36,14,164,108,203,161,212,177,134,177,22,179,125,226,151,155, -48,214,119,220,171,10,108,123,76,78,224,28,68,130,216,141,24,245,8,71,45, -174,245,21,117,24,27,180,206,96,178,97,253,240,0,85,121,120,158,109,135, -191,166,30,147,179,112,1,113,80,234,130,91,253,3,173,84,168,136,192,110, -134,182,61,6,199,168,212,5,167,74,121,94,8,222,160,115,191,243,217,187, -66,33,11,34,156,113,105,242,6,20,103,90,11,59,36,114,119,168,112,230,249, -192,145,245,106,177,177,245,22,158,140,244,219,50,50,86,202,71,71,129,204, -79,241,140,59,109,230,62,235,72,127,172,194,23,157,230,121,18,195,180,79, -184,104,27,26,90,213,249,152,227,217,119,172,42,115,137,215,59,103,50,224, -135,213,108,60,61,64,251,46,118,41,51,34,188,87,162,59,34,218,125,199,219, -61,198,254,41,170,224,169,52,215,64,95,126,69,130,6,23,248,32,219,127,165, -88,171,109,109,243,36,121,227,127,247,127,231,163,12,38,158,171,166,162, -169,61,237,61,68,195,91,167,40,147,36,38,56,138,4,19,104,7,22,125,223,163, -251,187,61,181,130,159,233,186,200,10,51,250,249,115,76,22,110,46,213,72, -92,238,163,30,169,58,177,246,194,53,134,33,101,131,147,90,132,107,34,50, -83,244,249,89,181,80,34,48,156,41,174,16,114,39,155,173,47,230,224,2,83, -61,186,54,225,199,145,136,98,217,225,133,209,238,124,144,165,112,64,69, -239,99,253,91,11,129,143,196,202,149,240,255,238,173,116,25,4,177,42,170, -137,108,165,110,188,134,48,243,21,102,220,61,255,65,128,188,108,172,151, -211,11,223,239,167,1,44,111,30,6,82,8,79,32,60,234,154,238,38,42,252,204, -181,151,66,13,243,214,88,184,13,225,190,57,181,220,4,173,42,16,94,136,55, -76,124,44,233,177,160,192,84,97,7,135,32,207,75,88,103,206,129,229,249, -24,204,243,3,127,233,1,76,87,220,154,107,24,67,251,170,239,27,29,28,236, -159,191,115,28,136,73,203,51,246,251,199,31,140,162,96,23,234,231,241,251, -185,199,236,36,234,218,11,201,84,84,134,62,247,129,37,18,78,9,179,243,171, -238,129,144,126,124,207,97,99,125,135,100,209,133,100,82,36,25,179,243, -226,85,224,72,47,128,192,206,192,33,50,19,33,175,23,80,197,26,167,20,153, -77,133,196,137,222,121,110,19,254,67,51,239,229,126,116,110,83,79,49,196, -204,69,173,154,253,31,35,218,137,228,108,110,121,17,33,140,232,91,213,107, -138,252,228,122,105,41,244,203,121,28,71,33,134,39,40,18,50,96,153,178, -145,115,78,137,208,156,87,156,251,211,115,155,213,47,29,115,188,67,43,246, -228,56,222,95,83,198,65,79,198,224,114,245,200,82,216,126,183,158,240,134, -132,247,69,18,153,104,7,32,87,155,219,27,229,236,150,48,165,65,159,24,200, -37,140,214,184,79,155,16,27,39,94,7,209,74,76,14,120,222,117,74,54,213, -181,252,176,47,102,191,156,100,21,43,156,69,128,177,218,15,222,175,99,102, -7,162,3,255,49,54,108,186,0,189,191,59,188,90,158,224,104,158,48,178,175, -141,213,250,50,20,134,51,79,230,195,21,194,145,88,16,49,136,53,186,241, -129,151,35,180,245,7,46,85,21,177,228,1,240,28,42,111,66,83,127,224,90, -85,169,4,105,204,141,192,206,166,249,192,238,48,159,213,217,24,65,171,112, -7,37,114,132,91,248,138,167,251,248,72,38,56,166,249,198,191,183,63,46, -14,17,176,76,150,54,233,1,21,22,5,17,229,83,55,25,219,248,32,217,255,87, -164,76,139,25,45,138,161,215,175,13,3,235,12,134,249,133,151,182,80,234, -138,123,115,130,18,162,24,244,83,77,176,114,111,137,50,68,168,184,61,152, -67,50,96,49,219,30,47,173,33,43,63,49,160,4,229,154,96,135,210,217,249, -96,86,218,186,138,137,128,209,62,201,144,135,253,65,16,224,94,222,67,142, -148,155,152,20,72,182,223,106,169,255,39,21,177,98,9,209,181,192,137,16, -200,130,162,88,86,211,236,107,111,70,33,75,136,21,215,246,46,103,235,187, -207,170,80,138,124,215,243,116,35,127,15,73,155,145,233,253,242,143,12, -74,18,25,125,218,190,183,8,171,114,198,163,230,108,117,101,163,98,233,179, -160,93,185,250,126,242,61,79,61,226,34,238,0,65,121,151,75,127,165,96,247, -238,103,222,156,87,229,136,65,59,92,247,253,178,165,131,228,45,155,55,140, -16,228,45,169,40,240,190,255,187,251,111,206,55,232,158,161,94,200,82,41, -158,241,140,22,231,170,72,20,153,0,240,150,249,165,163,76,255,230,193,158, -179,14,139,82,110,4,184,0,61,137,242,161,177,51,206,201,206,175,100,43, -101,47,156,146,113,184,148,156,184,208,95,252,140,253,86,249,229,128,190, -117,54,124,46,55,39,160,130,188,109,162,32,133,252,124,14,159,236,22,41, -237,43,107,142,93,232,232,139,68,181,100,144,112,188,72,15,81,173,164,90, -32,236,212,132,242,74,150,246,134,10,244,14,98,59,58,193,254,35,7,64,121, -203,122,147,38,141,105,254,196,195,24,144,188,226,170,90,180,82,174,202, -136,199,64,120,202,174,77,169,57,185,154,93,153,141,111,221,136,215,240, -11,61,19,164,188,226,86,55,104,150,239,206,254,198,239,41,68,150,244,71, -227,209,176,204,180,38,215,62,41,190,131,84,144,99,167,85,145,245,14,15, -159,221,127,178,0,40,221,111,146,100,22,6,223,74,241,43,159,30,138,4,71, -226,248,176,22,8,235,94,165,111,30,113,165,61,184,255,111,137,9,22,103, -199,202,27,51,245,220,202,118,71,96,92,133,194,182,228,129,153,246,181, -196,219,171,141,245,210,163,21,201,244,94,213,101,173,88,185,48,43,16,221, -57,165,82,216,59,37,184,239,28,242,239,198,229,190,129,20,37,9,91,162,104, -204,223,35,17,82,206,118,220,18,226,212,161,148,80,202,199,147,169,141, -229,227,191,119,255,237,223,21,231,153,122,122,192,1,7,114,140,145,22,125, -2,244,44,85,163,11,34,54,196,144,178,218,25,210,31,146,102,254,85,104,173, -84,189,27,175,150,39,101,149,100,64,9,227,48,123,250,137,244,31,115,230, -172,199,9,41,134,138,149,199,145,34,95,26,208,233,13,96,186,85,6,169,232, -16,17,237,18,174,228,16,77,156,159,178,20,19,169,198,62,71,139,130,14,78, -198,29,179,96,215,41,56,230,30,224,48,163,206,32,188,136,160,184,248,55, -19,127,113,104,127,23,1,250,138,76,243,182,130,127,83,113,47,237,17,54, -62,248,201,106,101,180,31,31,166,71,225,143,14,36,75,143,47,215,143,252, -25,47,179,43,165,23,105,74,92,222,81,236,254,237,133,61,75,173,38,68,235, -172,100,147,149,42,185,229,227,72,59,116,175,224,120,5,202,15,53,198,111, -105,153,253,187,109,188,168,92,45,191,97,90,167,74,104,213,200,40,140,153, -237,198,75,121,31,176,227,191,153,121,113,236,44,76,233,55,18,175,12,246, -61,102,3,229,123,47,110,243,241,174,78,98,218,199,169,205,47,130,14,146, -232,47,132,122,138,115,250,92,36,160,149,234,217,180,237,151,43,240,211, -58,121,240,219,203,226,119,160,250,3,33,213,252,40,47,217,56,29,223,243, -62,18,112,108,209,29,9,220,228,173,162,188,13,179,203,141,254,187,251,59, -83,70,225,79,44,245,178,218,101,47,201,154,88,19,173,217,217,50,79,194, -46,92,180,160,226,113,246,159,66,216,74,129,158,131,98,154,39,156,197,86, -174,209,171,56,48,75,96,62,104,69,228,158,39,124,84,90,190,11,240,239,113, -162,196,234,49,170,124,118,240,249,161,233,70,233,141,99,103,14,197,17, -201,167,188,20,11,33,47,18,3,42,85,153,71,47,101,147,86,204,51,169,204, -170,48,171,10,75,197,223,187,91,252,214,97,240,221,133,199,123,168,49,159, -94,253,118,82,83,0,240,202,129,0,133,62,227,119,242,219,163,233,218,244, -198,185,216,199,44,241,87,82,64,145,99,200,8,88,225,247,242,65,92,104,252, -114,38,237,26,19,165,22,198,250,78,43,2,239,229,90,255,19,7,124,210,215, -228,8,110,142,165,187,67,92,227,205,33,50,145,28,47,38,143,105,160,216, -92,226,98,55,185,148,75,83,34,172,125,7,170,46,17,244,190,164,125,228,253, -133,152,143,196,219,184,108,66,38,124,151,16,103,189,238,216,166,53,121, -137,140,183,186,51,239,46,158,34,136,154,179,22,43,120,159,140,28,230,88, -223,224,95,124,183,40,72,167,45,243,120,129,93,186,245,165,130,114,60,153, -197,169,237,19,237,210,55,222,113,46,242,139,18,49,52,200,5,216,45,33,7, -46,25,239,38,120,187,119,5,139,34,179,181,190,194,224,200,68,38,174,58, -233,77,139,227,95,202,188,50,200,158,173,13,18,178,28,249,190,111,112,212, -226,159,190,240,238,34,211,167,130,230,0,69,193,40,37,57,166,154,55,209, -72,77,241,190,142,148,21,104,11,174,132,172,71,190,57,129,31,201,30,111, -140,223,76,125,129,163,121,213,72,232,120,209,252,207,81,26,236,144,185, -84,205,138,41,38,124,240,219,81,209,66,103,48,26,250,229,116,204,146,163, -4,144,246,227,31,148,45,63,202,23,16,10,143,53,254,191,60,255,162,111,44, -44,202,125,218,243,247,192,135,203,176,116,104,239,255,133,118,159,209, -174,9,82,138,167,4,20,180,6,184,224,7,30,95,41,71,35,155,244,174,109,144, -169,154,165,43,52,21,27,41,122,57,229,85,126,252,174,22,182,54,54,31,120, -138,252,211,233,224,192,248,86,194,246,91,255,19,189,187,213,67,28,169, -1,214,34,210,149,217,145,38,19,63,57,149,132,41,83,48,203,32,237,228,187, -57,17,105,58,36,19,238,220,96,246,58,169,20,13,126,115,222,253,216,101, -240,180,197,22,94,164,82,120,63,153,196,177,8,207,126,159,113,228,121,77, -116,188,1,22,210,217,58,169,149,216,108,191,59,204,211,131,157,177,73,6, -35,238,109,243,50,150,76,197,179,229,237,54,167,55,181,215,187,192,86,250, -39,138,39,24,162,209,231,34,28,192,197,144,181,201,34,199,237,86,78,9,143, -121,107,36,232,108,236,204,55,253,1,207,137,1,8,50,180,41,153,117,228,180, -185,159,122,14,164,51,14,75,63,88,84,149,31,33,250,34,155,250,109,72,37, -167,81,231,22,127,158,127,140,74,40,95,189,211,230,97,188,86,31,28,205, -250,231,186,202,241,203,138,149,101,146,30,248,193,32,126,198,75,225,98, -24,167,61,84,152,28,76,169,0,2,243,22,96,242,215,129,133,37,191,76,42,100, -243,253,241,158,94,131,84,137,124,195,217,2,164,252,122,143,221,22,24,71, -204,246,131,221,193,153,66,15,109,91,33,49,145,248,110,16,231,227,138,2, -244,59,11,109,95,151,231,10,125,140,61,21,174,60,58,123,100,198,73,95,128, -79,92,60,192,203,193,143,10,135,127,234,14,94,26,83,62,78,64,162,164,35, -97,215,102,156,8,46,96,54,148,61,116,222,8,152,155,169,10,103,107,47,90, -91,37,118,54,227,88,104,228,93,96,254,86,69,128,8,109,220,250,229,20,89, -62,115,196,63,88,115,129,228,122,50,104,157,82,209,117,74,60,45,40,3,60, -195,220,116,20,115,138,132,89,100,131,96,113,127,61,242,152,95,16,197,228, -18,138,15,134,211,118,200,90,225,68,179,255,113,242,198,148,228,202,107, -139,147,54,244,50,150,174,79,170,77,78,25,112,20,143,181,209,209,43,203, -57,231,185,131,13,35,61,226,223,232,184,151,214,9,189,201,202,233,11,164, -239,80,179,158,214,61,67,5,68,22,187,198,197,30,65,91,165,170,51,255,178, -34,149,129,247,207,35,63,119,136,0,15,156,31,60,28,206,213,19,233,160,154, -96,138,222,126,176,184,180,126,212,135,40,149,95,204,219,84,124,152,14, -189,121,81,140,189,73,68,124,48,146,103,205,59,182,155,59,28,115,82,201, -196,55,201,5,104,150,162,83,143,51,125,121,80,244,55,40,38,66,112,242,243, -251,78,54,14,107,92,95,189,100,178,147,89,84,102,66,74,222,193,166,69,156, -238,89,138,218,100,180,39,34,102,11,156,138,239,151,50,33,163,210,152,7, -23,143,48,230,130,28,65,210,215,164,72,146,119,211,246,94,32,218,5,194, -140,98,89,26,223,185,16,167,74,194,20,252,38,25,56,170,10,163,231,79,201, -102,220,79,40,115,33,223,124,119,172,23,171,199,12,94,207,194,218,193,76, -48,239,2,33,118,250,139,113,165,206,95,220,126,164,38,22,7,108,78,69,88, -146,116,135,246,45,159,252,229,172,4,51,74,157,14,57,174,242,121,171,238, -14,97,210,119,231,212,119,171,4,250,34,192,240,246,12,86,191,136,184,44, -162,35,205,245,236,107,34,98,93,156,57,39,94,228,20,235,206,83,244,123, -249,225,146,162,71,121,32,94,53,106,40,69,88,249,40,183,46,114,149,98,143, -242,37,207,218,16,141,88,70,137,146,130,143,183,47,95,246,47,40,175,75, -162,201,26,74,194,213,247,242,109,222,42,119,222,8,219,84,0,193,145,39, -12,223,93,55,124,16,15,232,91,91,56,42,142,57,74,254,121,95,111,126,9,62, -47,34,57,188,79,4,34,151,60,6,246,231,41,151,103,253,153,253,192,88,210, -15,43,101,250,199,100,167,148,80,178,218,171,58,239,6,85,85,50,133,90,15, -18,166,111,189,237,111,60,232,21,200,113,240,179,195,193,41,47,190,192, -100,35,81,65,87,26,216,85,212,116,216,107,207,193,4,138,200,112,233,103, -92,56,28,151,170,133,227,74,140,22,88,135,215,115,117,45,12,118,242,151, -188,199,107,178,209,28,142,92,48,40,108,68,138,130,49,231,144,91,49,40, -150,32,97,66,84,235,36,155,45,110,119,80,1,118,225,2,112,21,31,85,68,101, -97,69,38,28,123,22,112,1,108,248,86,15,136,138,21,104,108,221,17,87,11, -251,253,193,135,189,196,163,161,202,253,236,242,155,124,227,176,250,63, -210,60,75,91,40,71,41,71,250,87,98,65,141,66,189,145,201,150,81,217,249, -116,119,141,156,100,104,177,92,231,246,125,203,72,221,138,60,189,241,164, -56,84,23,251,62,34,255,102,97,132,212,63,56,116,241,110,30,179,156,20,196, -89,206,58,174,196,57,190,19,237,195,44,209,224,35,40,152,242,141,153,194, -169,11,52,189,64,235,188,74,100,31,33,53,233,234,91,145,76,196,173,75,14, -72,64,106,59,93,182,76,165,168,149,200,43,244,190,117,225,182,90,61,183, -12,200,71,145,223,173,35,46,150,211,132,183,93,155,163,184,192,7,149,59, -189,169,204,191,36,113,111,207,124,55,115,193,120,175,70,72,217,94,41,28, -179,20,239,63,202,80,210,47,149,109,189,190,71,196,96,142,218,72,156,43, -235,210,46,51,95,97,188,133,140,66,94,106,211,57,27,156,111,168,80,115, -252,43,152,252,209,251,207,51,23,47,196,98,173,1,147,219,189,68,202,14, -52,100,47,166,56,29,147,180,0,246,205,165,84,99,56,18,247,201,222,163,11, -234,113,46,135,86,24,0,28,156,51,208,204,209,231,180,135,176,40,67,17,156, -131,89,255,238,65,159,45,105,204,240,246,110,41,133,120,99,133,188,99,104, -133,17,155,17,229,199,201,215,136,76,84,142,151,74,54,142,220,57,143,80, -69,246,90,237,134,13,172,99,240,87,141,177,35,152,237,176,95,196,187,3, -145,11,135,97,52,211,176,79,122,216,122,45,117,175,12,147,36,67,40,34,129, -49,70,192,197,102,1,10,73,20,146,29,25,99,83,105,235,132,193,153,26,53, -21,0,255,204,247,155,82,150,41,71,206,133,27,20,152,153,127,96,11,30,68, -105,187,120,157,137,143,156,175,18,109,250,66,11,200,177,129,182,94,248, -136,51,166,247,191,30,67,56,203,233,104,47,26,180,158,64,22,198,101,235, -172,228,152,22,96,137,196,11,157,211,213,178,249,93,240,110,29,236,207, -96,58,188,222,13,12,166,44,181,163,130,163,29,82,77,120,218,80,152,216, -51,156,120,17,152,242,14,155,37,175,116,230,50,159,34,71,79,151,66,132, -98,247,184,157,188,57,31,159,157,137,11,41,167,141,168,136,217,159,199, -157,156,116,203,46,188,59,206,98,4,191,67,131,11,167,107,113,189,81,138, -108,237,172,123,247,115,233,59,162,83,242,44,40,69,205,163,184,192,5,255, -33,58,114,186,227,120,15,250,245,89,197,130,38,113,31,37,149,92,207,57, -211,229,89,1,102,231,61,229,133,240,172,121,78,17,128,127,123,132,117,7, -193,238,201,31,139,75,156,23,86,167,228,5,114,18,80,41,37,18,34,101,198, -242,170,203,156,250,186,39,105,109,204,142,57,208,29,6,27,76,166,67,175, -103,176,56,227,162,78,104,86,203,85,130,131,246,122,236,243,12,22,23,92, -84,139,70,6,199,183,124,93,174,86,129,14,198,77,232,166,7,58,227,141,68, -238,234,130,86,10,175,56,198,219,188,46,39,162,29,133,248,177,38,61,89, -182,67,37,16,119,175,210,196,111,40,166,91,70,157,195,253,145,44,112,62, -184,202,228,117,235,193,176,236,61,235,69,52,66,231,220,132,126,126,161, -119,18,231,250,138,115,165,10,208,102,145,38,144,80,241,29,187,160,18,39, -10,236,254,61,86,28,211,235,40,152,201,184,224,167,16,247,221,156,155,208, -79,79,12,92,225,172,46,56,41,21,41,217,241,1,96,78,9,94,112,220,242,227, -131,100,157,147,176,71,187,225,36,250,82,246,116,247,113,65,153,45,134, -9,115,81,21,226,148,128,18,195,170,68,37,52,131,211,3,49,65,185,28,140, -27,240,24,30,193,174,247,134,91,93,255,135,230,225,83,206,11,115,90,33, -47,61,121,235,122,60,7,239,85,127,109,63,130,155,95,190,190,105,245,31, -207,7,100,99,238,66,210,138,38,218,121,96,237,16,171,252,160,64,174,89, -193,235,248,20,29,9,75,21,145,43,202,52,11,124,44,153,205,128,78,15,96, -113,198,89,157,208,8,218,135,186,221,54,143,124,226,41,154,154,42,89,77, -37,188,172,35,139,163,24,17,230,132,163,19,63,217,109,108,56,90,149,153, -104,150,179,19,122,253,66,111,37,206,205,21,103,81,29,180,33,143,91,57, -94,177,115,83,241,76,213,90,147,43,218,68,205,178,126,251,209,30,204,253, -77,98,185,119,142,20,236,182,163,133,98,99,214,99,126,65,129,14,38,114, -44,153,168,192,105,136,14,138,184,71,29,135,43,135,224,177,110,121,149, -53,77,218,184,64,89,154,246,119,97,182,34,185,38,234,187,91,151,218,61, -198,56,199,74,70,163,116,255,81,98,4,135,196,84,55,25,49,43,0,156,209,189, -198,88,135,47,204,103,116,211,39,158,179,133,168,188,109,169,63,220,23, -225,136,9,221,248,137,199,180,124,126,66,91,201,72,40,7,5,215,52,239,197, -253,156,7,244,102,134,131,66,35,26,212,130,86,229,64,62,152,147,47,232, -244,236,80,140,114,202,74,233,86,99,58,248,201,252,112,122,175,251,72,9, -54,180,69,65,103,95,248,107,248,39,62,245,8,29,17,198,152,45,134,249,129, -151,97,40,117,198,169,82,171,231,250,183,130,254,42,251,255,194,95,195, -95,248,53,15,208,156,137,250,23,104,246,20,213,151,196,254,250,254,25,126, -127,78,178,48,131,97,254,68,103,1,165,206,104,43,149,201,212,166,221,241, -84,51,146,222,115,120,10,16,68,25,15,216,87,239,116,8,111,108,94,100,41, -17,10,187,46,226,97,65,83,12,56,219,12,239,162,67,94,94,7,229,153,43,134, -197,52,247,24,29,67,169,19,206,170,78,166,83,254,45,4,144,114,181,184,148, -59,226,239,223,96,210,3,6,235,160,170,51,78,82,121,83,31,202,19,33,222, -245,53,57,233,133,115,166,215,146,50,245,19,128,144,115,190,204,62,157, -75,164,150,214,81,95,62,110,171,115,182,193,163,49,166,165,133,238,120, -192,107,234,97,209,160,173,125,113,65,187,241,149,24,61,139,226,57,115, -162,72,72,111,217,70,81,251,146,143,3,124,142,100,81,212,126,164,229,220, -9,163,139,28,98,57,71,4,71,134,65,31,199,8,89,65,8,194,219,205,149,115, -164,205,182,191,53,51,146,121,221,98,3,129,99,161,231,29,220,158,83,102, -41,1,205,40,97,27,236,144,26,194,154,68,82,145,136,148,215,9,20,33,10,139, -93,108,180,223,242,209,197,141,28,191,23,120,89,161,187,144,193,47,149, -251,2,93,83,6,61,80,209,39,248,155,21,251,87,189,55,7,175,91,29,60,213, -153,115,0,147,118,40,49,80,158,232,89,101,116,227,52,10,72,4,8,114,64,149, -163,249,112,130,119,20,235,230,14,19,43,159,69,202,106,117,107,3,0,103, -123,188,230,14,35,20,174,205,13,109,252,57,83,50,171,190,86,100,236,37, -73,251,121,6,139,10,149,144,144,210,27,127,72,17,42,83,103,97,225,162,249, -118,9,41,67,47,6,222,108,199,178,139,156,239,36,164,20,254,224,114,161, -170,93,236,88,217,122,39,49,10,2,42,97,39,57,102,255,172,1,184,240,222, -189,219,153,3,179,131,89,198,157,194,191,75,142,160,3,222,12,141,56,154, -76,112,236,245,239,173,27,209,235,14,131,107,240,81,75,8,231,192,50,88, -152,154,39,58,109,33,235,15,180,68,112,206,128,73,64,10,17,90,129,94,239, -222,147,59,151,140,95,64,210,118,127,139,221,233,196,13,238,178,242,104, -1,111,40,65,90,75,242,6,103,194,194,58,7,235,102,12,186,195,200,13,62,100, -5,1,255,251,18,22,147,121,162,159,45,68,125,69,43,8,206,217,240,12,66,146, -192,14,14,46,192,134,190,67,38,5,45,157,178,195,22,97,28,101,87,173,126, -142,124,4,136,192,193,31,192,177,127,30,130,1,38,47,99,203,36,131,139,155, -219,170,156,240,46,189,206,253,246,111,110,245,235,14,90,244,228,237,90, -61,87,213,173,54,184,225,5,135,255,221,116,252,25,14,214,110,155,93,172, -94,7,12,71,14,112,188,221,63,71,122,243,196,176,108,177,92,162,106,126, -224,111,53,65,46,104,23,47,237,37,11,27,157,155,146,170,117,220,213,45, -168,10,188,223,192,130,208,200,40,162,46,162,46,155,14,252,162,7,225,224, -216,183,186,8,64,173,62,240,95,74,132,181,29,63,127,23,188,26,252,179,17, -68,235,51,96,164,115,228,37,150,56,59,3,147,192,181,126,125,138,157,131, -20,178,56,19,12,187,216,249,125,25,125,42,68,181,2,246,142,45,140,91,126, -90,108,247,31,30,184,11,45,7,16,192,118,70,175,95,152,208,226,222,92,208, -18,129,157,246,134,75,4,128,195,239,11,138,228,197,57,159,192,141,36,125, -3,178,197,193,19,131,66,124,89,238,47,248,12,36,235,135,4,132,240,237,70, -206,8,207,62,98,97,189,7,223,246,34,80,120,191,171,79,4,137,144,156,105, -140,250,137,151,97,52,205,15,220,226,4,155,227,245,187,125,129,160,10,146, -131,207,132,115,176,118,194,96,162,248,0,7,231,68,72,18,124,252,116,209, -129,47,80,65,10,222,201,5,115,202,172,218,142,41,103,224,86,35,159,176, -190,24,193,215,194,123,93,84,66,110,207,50,236,95,185,238,89,132,189,18, -246,111,240,27,241,103,138,93,209,27,231,194,106,252,123,247,119,78,233, -247,97,241,137,136,30,17,201,230,197,90,212,241,16,181,177,198,47,243,74, -68,173,169,125,230,228,86,85,168,178,52,202,6,75,240,23,159,199,189,115, -47,7,43,200,31,78,8,178,180,156,206,122,32,151,169,221,233,41,47,11,97, -149,181,45,83,19,57,180,2,138,74,118,108,97,76,143,215,220,195,210,9,231, -230,134,147,140,194,52,91,104,219,227,53,245,112,116,194,169,185,225,44, -41,189,16,236,149,242,152,53,102,221,225,105,25,82,42,8,219,225,101,5,110, -237,79,220,43,233,45,94,109,143,231,216,99,180,214,127,159,168,113,106, -239,184,87,45,36,25,104,221,227,57,245,24,156,9,11,37,124,174,106,192,116, -120,76,22,85,125,198,85,53,32,167,209,207,191,208,115,133,147,20,48,122, -242,213,52,91,204,22,104,149,132,115,6,19,183,248,121,186,227,44,1,109, -123,116,211,128,193,234,224,37,114,197,143,211,29,215,74,69,99,51,156,50, -170,1,56,55,99,152,62,241,169,59,204,198,193,17,129,132,68,5,233,181,213, -235,51,26,140,248,156,122,88,255,98,161,205,12,71,45,110,167,31,184,215, -53,4,27,204,118,192,107,234,48,88,227,147,5,2,84,245,129,159,77,3,232,23, -30,115,135,209,57,184,112,232,75,146,144,242,140,123,125,195,165,174,66, -91,132,119,45,27,199,254,250,158,115,143,209,58,48,45,129,115,187,190,26, -35,62,199,30,86,72,16,28,102,61,129,151,235,83,13,4,107,76,102,64,55,247, -24,172,246,129,75,92,241,227,244,129,91,37,191,88,251,222,6,119,214,35, -94,186,199,104,102,56,16,72,92,240,163,253,192,181,2,102,253,137,95,211, -4,25,60,226,201,205,24,244,19,189,118,168,234,11,234,197,23,94,8,48,207, -24,140,1,196,25,31,167,31,184,87,2,214,116,248,53,14,112,85,141,138,45, -38,221,67,179,196,185,253,3,63,154,19,36,207,152,141,255,254,65,135,247, -43,195,251,149,18,128,197,108,58,191,190,140,241,222,67,84,227,82,127,224, -214,180,144,172,49,155,30,175,121,64,175,117,8,206,10,231,246,142,171,82, -97,253,189,208,25,7,170,174,248,227,116,199,69,86,171,63,60,59,131,201, -250,231,215,27,3,134,3,201,27,126,182,31,184,74,135,113,254,196,47,109, -81,9,1,102,141,193,104,128,90,220,218,31,184,215,139,173,110,42,190,179, -20,50,206,89,24,243,194,99,234,208,25,11,82,87,252,217,126,120,7,188,69, -54,217,25,104,219,225,57,251,251,243,201,131,194,185,253,129,107,221,66, -101,179,182,148,72,167,6,191,0,227,147,254,193,26,56,248,100,66,170,31, -248,179,189,226,36,229,42,34,133,36,1,199,106,3,108,157,193,168,159,232, -245,136,201,49,136,42,212,245,61,236,15,191,254,187,185,199,96,252,250, -130,188,226,103,251,129,123,37,97,157,246,251,115,238,209,91,179,30,194, -84,221,241,71,123,195,69,242,234,118,57,88,237,19,247,234,138,143,240,251, -123,73,122,74,91,27,193,250,119,212,79,244,102,192,108,125,177,165,148, -191,190,150,236,122,125,157,241,184,156,127,127,55,156,104,198,99,120,194, -144,240,235,220,2,109,165,124,251,210,181,248,209,94,80,241,11,143,217, -162,146,2,206,206,24,140,5,228,41,172,95,229,139,31,253,137,191,102,131, -42,184,99,170,56,49,118,26,218,245,120,78,131,143,15,204,126,253,182,31, -184,72,131,97,122,172,241,129,67,194,47,133,130,20,39,220,219,11,78,18, -48,118,192,43,139,111,63,79,119,92,171,42,169,28,121,23,191,253,247,207, -118,64,55,245,225,253,51,72,220,252,239,75,194,164,127,225,115,154,32,234, -31,248,168,125,252,29,103,111,157,45,171,51,106,204,232,141,241,142,158, -172,49,104,13,136,51,126,156,127,224,42,37,156,125,225,215,216,195,201, -6,85,112,238,52,144,168,18,121,112,23,42,41,102,72,146,123,232,140,17,156, -182,216,155,198,68,214,127,66,74,159,91,5,89,88,239,185,158,30,171,46,84, -81,0,67,10,185,231,172,241,162,219,142,237,243,172,114,95,191,95,132,62, -123,80,253,241,63,207,176,214,130,0,8,84,123,245,183,245,254,16,174,63, -165,173,48,51,92,72,239,164,143,80,25,132,23,70,255,66,245,132,68,135,222, -19,229,70,237,55,16,85,55,124,168,83,176,80,93,174,125,198,164,123,116, -214,120,72,94,157,189,127,246,34,137,233,0,235,12,192,128,172,4,150,25, -63,227,102,140,186,135,118,140,186,58,163,230,9,79,199,1,62,20,190,234, -157,59,76,78,64,213,127,224,22,57,152,85,66,130,157,63,248,38,39,160,154, -159,248,47,41,125,214,72,4,1,192,104,239,221,237,132,183,231,4,251,30,214, -96,24,162,34,159,176,104,139,74,5,87,115,33,131,163,89,141,147,84,16,220, -227,49,142,152,169,198,169,254,129,51,205,24,231,30,115,200,97,55,5,48, -183,190,63,41,101,120,134,12,33,42,212,85,139,19,91,8,89,225,164,110,222, -30,54,228,240,214,118,248,28,31,232,92,133,75,123,70,43,25,70,0,35,87,168, -4,193,234,39,30,122,132,161,26,231,250,39,46,100,49,233,23,70,39,208,212, -23,156,164,132,133,65,195,22,196,21,78,245,13,39,25,158,81,168,96,41,188, -95,107,157,191,106,41,86,65,36,9,133,186,58,161,117,14,144,21,206,245,13, -109,37,32,152,124,85,16,174,175,183,21,46,237,21,173,4,20,24,51,87,80,130, -96,236,19,253,212,99,166,26,109,243,3,127,178,198,168,59,204,32,95,217, -50,86,244,198,6,39,53,41,23,209,91,11,163,59,188,244,128,25,10,173,250, -192,165,214,24,230,240,251,34,92,183,115,160,224,75,63,207,191,48,90,11, -18,45,238,39,5,184,1,143,169,195,200,53,174,85,141,70,84,32,238,49,5,39, -64,19,18,163,206,26,52,178,70,37,79,168,192,232,172,71,66,172,254,196,83, -143,152,81,163,173,127,224,79,181,92,191,71,203,140,27,48,204,61,38,38, -212,245,79,220,78,21,22,219,7,41,36,216,246,120,234,30,179,19,80,234,39, -254,119,27,252,1,67,129,96,140,1,179,66,91,157,224,120,134,147,10,42,172, -13,102,11,163,123,116,122,130,17,53,154,230,39,206,245,132,110,122,97,10, -142,118,163,238,240,156,94,152,92,141,170,61,225,36,26,72,244,152,89,65, -201,165,138,243,133,136,101,27,76,175,132,151,250,117,158,200,231,88,225, -164,78,112,52,131,101,13,37,182,238,165,117,61,250,169,199,196,2,74,253, -129,255,106,101,64,13,4,4,85,91,159,115,65,55,194,250,246,136,158,198,172, -7,127,253,84,227,220,254,129,11,12,198,57,172,79,117,70,35,228,218,79,118, -214,199,63,33,150,36,193,87,149,62,49,240,63,255,227,252,17,80,155,128, -238,217,23,126,233,9,150,106,180,201,243,241,237,134,81,119,232,205,4,131, -26,109,243,39,254,6,141,113,126,97,112,2,117,125,129,194,136,95,67,15,141, -26,109,253,129,63,201,96,156,58,76,240,241,193,113,80,68,75,10,190,165, -66,183,208,214,199,159,248,250,100,132,69,179,237,240,169,39,24,82,104, -155,31,225,250,58,76,96,176,27,241,212,47,188,180,129,82,106,115,17,4,0, -86,104,164,2,177,63,88,71,167,112,171,26,180,74,129,176,172,95,9,118,22, -218,188,240,52,22,162,186,224,174,90,84,75,226,225,44,180,233,208,233,97, -93,191,103,210,107,124,242,200,130,66,93,181,104,173,5,137,10,167,102,139, -15,126,42,107,192,115,28,48,45,235,159,102,12,115,143,57,20,190,126,255, -210,118,126,49,32,165,12,249,158,255,254,215,250,253,63,215,223,215,219, -14,247,191,39,106,212,4,204,243,3,147,49,128,108,113,107,43,192,141,120, -78,29,70,87,251,251,23,10,196,29,102,120,100,206,218,1,175,249,133,222, -26,212,178,69,93,157,80,9,160,55,14,21,69,204,59,22,12,225,4,88,208,129, -126,56,67,8,153,252,119,207,152,135,135,73,69,124,48,211,158,96,71,254, -231,86,54,110,161,121,36,131,181,100,113,58,130,9,146,130,45,169,136,14, -124,199,16,82,122,66,68,248,251,1,163,76,123,94,68,144,144,219,76,121,222, -151,91,124,234,119,224,232,34,137,40,188,109,167,200,174,159,24,214,244, -120,234,9,51,75,156,234,59,206,178,94,93,225,24,128,51,29,94,122,132,102, -137,166,249,192,89,40,84,148,42,15,19,121,200,37,86,215,178,166,195,203, -204,176,33,0,53,52,225,57,78,176,104,112,173,106,72,50,24,167,23,158,218, -66,85,87,212,85,5,181,88,172,18,131,121,198,164,253,226,87,242,134,38,4, -79,146,4,114,14,179,121,224,161,103,64,156,112,171,91,40,210,232,198,39, -122,71,168,85,3,118,19,38,174,112,110,26,176,155,97,69,139,70,120,2,92, -37,21,42,214,232,102,13,22,39,92,170,22,53,89,76,218,192,162,193,169,62, -123,227,149,136,207,32,132,63,184,150,86,142,135,45,39,12,102,246,190,240, -141,183,57,149,1,142,212,250,137,231,52,192,200,11,254,56,221,112,170,128, -105,122,96,118,10,109,221,130,245,19,159,206,161,170,46,248,168,90,40,97, -208,79,19,236,210,26,169,20,200,13,232,245,28,124,203,47,56,87,106,131, -68,147,12,82,64,74,74,181,241,153,225,120,196,168,39,88,106,113,107,46, -56,203,208,251,103,134,214,47,143,44,136,43,126,158,111,56,11,198,56,61, -97,88,161,173,79,190,50,53,147,127,62,170,129,18,22,211,172,97,169,193, -89,93,162,214,140,135,58,133,20,81,202,105,48,206,15,60,167,25,92,181,56, -87,39,212,194,248,231,75,45,46,234,234,159,47,123,24,143,121,198,52,63, -97,170,22,231,230,134,70,72,88,243,192,231,220,195,137,11,126,54,55,156, -37,48,77,159,176,84,227,172,124,101,208,77,15,188,88,224,220,252,129,123, -221,66,184,17,47,75,168,171,26,202,245,120,90,13,23,191,95,227,175,223, -175,71,7,173,95,33,1,188,161,150,42,184,232,45,83,25,51,6,253,194,75,59, -40,117,69,45,43,168,117,141,251,221,33,72,194,153,23,30,206,0,213,25,247, -250,132,154,200,59,45,134,181,88,169,43,110,85,11,69,14,211,212,193,66, -161,173,90,72,215,225,53,15,48,213,13,63,235,43,206,2,152,230,39,44,42, -180,205,5,237,234,232,231,3,190,12,134,78,30,37,246,7,116,93,73,88,243, -194,99,54,32,121,198,173,62,5,55,190,96,229,60,191,240,50,22,85,117,67, -45,125,107,76,208,126,160,139,5,249,118,212,26,187,102,116,211,19,189,113, -144,213,5,31,170,69,45,12,186,113,130,129,194,185,241,107,81,174,126,30, -180,30,236,11,64,185,100,159,154,0,0,32,0,73,68,65,84,237,175,203,31,222, -183,214,243,58,228,2,6,179,231,248,140,22,168,212,21,215,170,129,18,140, -113,122,193,65,225,84,85,176,250,133,222,249,239,191,43,191,63,134,105, -130,38,133,75,123,134,176,157,95,95,212,226,82,159,182,247,43,26,92,42, -79,220,101,246,19,62,27,129,175,10,173,37,191,254,31,122,130,67,141,107, -227,121,49,75,203,135,217,39,26,189,133,119,88,172,26,255,254,230,14,150, -20,90,33,96,76,143,153,37,174,77,3,203,26,22,45,26,229,147,94,41,79,104, -48,99,156,122,88,113,198,31,237,21,39,9,76,243,3,142,20,46,234,130,70,0, -198,60,125,12,147,103,95,185,175,45,69,135,81,63,240,156,253,254,59,43, -191,127,102,163,97,81,227,92,159,209,10,1,240,224,227,15,181,184,182,33, -62,4,180,117,156,31,120,134,248,120,81,45,20,89,204,70,195,161,193,165, -185,6,98,243,6,114,203,112,62,46,118,210,195,252,137,167,158,0,113,246, -251,127,121,190,168,113,174,47,104,43,9,233,12,28,73,176,155,49,204,15, -84,178,197,185,253,64,35,42,88,253,192,175,101,255,182,97,255,206,159,112, -84,227,84,159,81,243,140,126,254,196,203,9,156,218,255,133,187,106,32,221, -136,167,5,84,213,160,138,181,124,137,41,216,122,231,154,243,188,116,116, -54,198,223,226,77,29,245,104,124,219,134,182,121,120,138,164,95,105,99, -113,190,243,76,218,19,89,222,177,196,194,166,168,68,74,4,140,230,121,99, -206,50,19,118,62,189,95,246,248,57,234,21,19,150,82,43,34,109,58,204,166, -195,160,71,56,121,193,173,106,209,202,200,38,148,29,180,233,208,235,17, -78,250,77,184,177,232,35,106,201,242,184,151,200,193,14,179,121,225,57, -121,168,255,164,106,84,208,232,231,30,61,19,78,205,5,167,170,130,128,9, -40,194,140,126,254,5,109,53,238,237,13,231,138,188,23,252,58,18,163,49, -204,127,65,219,25,31,167,27,206,36,97,108,143,151,30,193,226,138,123,8, -246,253,248,194,203,2,173,170,33,88,99,132,194,89,85,96,55,97,20,39,92, -36,193,218,17,142,106,84,172,209,207,29,70,199,32,210,152,245,3,66,212, -104,213,13,215,83,139,70,200,164,187,76,11,159,32,18,60,113,118,64,55,63, -49,56,133,75,115,241,136,0,124,255,216,234,14,157,158,224,228,21,31,237, -5,173,112,152,230,39,58,3,212,170,65,197,51,6,199,168,235,59,174,170,134, -224,25,195,244,192,203,16,78,109,72,178,220,184,254,253,107,115,137,136, -121,41,23,156,11,172,49,15,173,141,232,231,39,58,167,112,107,195,239,135, -183,230,167,31,38,176,188,225,163,89,174,175,71,111,29,148,186,160,226, -9,175,233,129,201,49,64,26,147,38,72,89,163,169,110,184,54,13,90,33,119, -214,220,27,115,90,99,154,159,248,53,190,48,57,7,114,51,230,249,5,17,126, -255,222,212,168,133,239,17,26,235,225,115,199,18,109,125,199,181,110,160, -8,161,85,52,130,229,13,63,234,11,26,201,208,186,199,96,25,181,186,227,34, -25,211,252,194,192,10,215,246,142,91,213,248,202,71,156,112,23,18,147,233, -241,24,59,12,206,65,8,141,113,126,64,74,255,126,111,117,139,90,72,8,158, -161,217,87,170,126,253,205,248,104,111,56,203,202,215,127,28,248,47,172, -209,141,191,160,205,140,143,246,142,83,37,33,56,240,101,236,128,78,247, -208,56,225,174,174,56,73,1,56,141,65,191,240,180,140,166,185,225,166,106, -84,176,152,116,135,151,49,144,234,138,86,88,12,243,12,39,111,248,81,159, -209,10,235,17,52,71,104,154,43,206,85,227,73,70,209,204,114,170,243,23, -254,211,142,232,231,1,26,45,62,212,101,125,47,155,14,133,135,232,187,233, -19,179,213,248,104,111,184,172,109,167,116,122,97,19,237,241,149,243,96, -28,234,230,142,75,85,163,226,25,221,248,192,211,18,78,245,13,103,213,68, -36,40,68,133,79,152,36,48,47,159,220,138,51,110,245,5,109,32,232,122,232, -223,39,15,47,3,180,237,13,23,89,67,45,251,67,27,136,234,236,91,45,142,253, -247,203,26,21,38,244,99,135,167,97,156,154,179,71,222,38,191,190,132,208, -152,204,11,82,40,52,234,134,91,211,160,22,2,214,118,120,12,79,12,206,132, -182,82,131,83,243,129,91,165,128,208,178,48,226,130,91,125,70,27,90,42, -190,43,49,123,251,100,195,104,151,251,39,139,121,246,213,186,148,45,36, -12,38,212,62,190,240,4,237,90,92,164,128,179,61,102,113,70,35,28,180,158, -193,242,30,246,23,99,214,47,140,22,80,234,134,139,146,112,230,137,231,52, -1,213,13,183,250,228,201,198,0,0,223,206,248,53,62,67,124,50,152,244,19, -66,214,104,171,27,110,109,139,90,10,144,29,125,18,198,33,62,44,136,15,27, -140,250,177,254,190,16,26,147,126,128,68,141,86,221,113,109,155,53,206, -151,103,221,245,250,253,147,99,144,48,152,52,32,68,141,166,190,225,30,190, -31,236,96,156,134,54,35,44,249,253,123,175,26,84,146,160,117,135,78,143, -128,184,121,142,132,116,208,115,143,97,185,127,193,152,230,39,122,167,112, -107,124,12,172,64,96,209,226,38,42,204,230,21,198,228,246,4,216,205,22, -49,177,94,229,149,214,207,12,88,107,252,130,20,114,27,195,42,141,85,208, -209,216,207,23,228,58,126,255,153,177,198,87,237,149,88,103,202,211,81, -158,194,88,18,83,62,242,187,141,189,38,90,54,28,29,238,148,90,28,174,227, -38,62,232,61,13,163,86,87,220,84,187,66,139,62,225,208,24,231,207,245,243, -187,106,81,17,37,100,140,152,41,191,10,198,177,133,214,159,248,43,244,203, -9,51,70,253,240,155,222,58,180,231,191,249,42,151,0,112,133,182,254,3,127, -171,70,116,195,47,188,22,197,169,245,117,42,156,154,63,160,212,132,215, -248,23,186,85,102,110,196,107,122,193,202,11,110,245,9,146,71,60,199,7, -30,22,184,52,55,84,174,67,207,53,206,234,4,50,191,208,115,131,179,82,112, -243,19,154,78,56,9,135,215,52,131,154,63,240,191,85,11,181,86,73,180,142, -182,45,142,228,188,26,252,44,227,36,203,92,181,197,52,63,240,48,2,183,80, -109,139,133,68,99,7,60,167,30,78,94,252,226,22,190,149,240,169,29,26,117, -193,89,76,248,107,152,32,234,15,156,149,242,80,223,248,11,79,67,184,52, -63,112,169,106,72,56,140,211,39,62,141,192,181,185,224,82,213,153,174,54, -103,67,102,132,120,106,214,113,232,237,26,233,175,47,184,197,49,24,108, -7,188,230,112,125,245,5,141,4,236,252,192,167,118,254,240,20,35,254,26, -70,80,253,191,240,95,181,223,120,94,13,76,130,132,88,137,49,188,147,10, -10,137,133,238,240,57,77,144,245,31,248,223,117,56,120,217,255,190,16,158, -150,231,71,242,30,232,141,111,121,73,89,67,85,53,20,8,204,3,158,83,183, -93,31,49,244,252,196,167,54,144,213,21,103,165,96,166,127,160,115,21,206, -245,29,183,181,146,92,2,244,132,215,60,129,234,63,240,255,52,173,63,136, -56,164,249,210,183,39,252,190,81,104,235,159,248,155,58,251,245,183,114, -116,194,93,137,106,91,127,195,63,209,97,3,216,60,41,108,70,55,63,48,225, -140,91,125,13,1,154,253,193,162,13,170,250,3,55,85,67,178,15,208,159,179, -133,84,87,92,43,160,31,183,231,223,10,64,235,7,30,198,161,169,174,184,84, -13,100,97,222,152,87,18,43,175,123,184,155,63,49,209,5,183,250,226,91,106, -241,248,43,41,180,205,31,248,91,53,225,53,252,133,23,187,84,106,37,146, -185,93,244,195,253,251,123,225,115,26,33,235,15,156,171,10,228,70,124,78, -191,240,50,2,151,246,3,215,122,57,220,99,114,209,202,74,1,243,136,215,248, -192,72,87,124,212,55,180,50,154,161,15,201,239,211,88,168,250,238,145,60, -182,152,231,7,62,103,3,161,174,184,144,222,190,95,214,32,30,241,24,127, -225,97,5,110,205,7,206,52,134,253,227,247,111,181,198,140,141,88,72,96, -144,60,225,126,105,112,91,115,153,64,172,164,9,159,227,19,19,157,241,17, -218,96,139,75,165,111,149,246,120,104,139,170,254,240,215,7,131,121,126, -226,215,108,32,171,11,42,238,49,173,241,229,129,30,10,231,90,1,243,3,154, -206,56,85,2,122,244,235,247,214,156,209,146,243,239,95,91,200,234,130,171, -106,32,185,195,231,216,195,133,9,164,134,60,178,40,137,225,76,135,207,113, -4,169,63,241,127,234,58,196,93,127,147,18,21,132,0,224,28,250,249,19,15, -39,112,173,47,184,72,181,22,187,206,188,240,57,78,16,245,159,248,63,117, -11,9,164,196,69,145,15,47,38,162,1,190,173,56,141,16,245,159,97,255,46, -103,141,88,137,173,214,142,232,245,19,131,97,84,66,64,82,3,37,26,84,50, -36,189,99,7,43,175,235,253,235,249,133,207,217,64,170,11,46,170,130,25, -255,47,94,182,194,37,28,238,130,54,69,65,225,6,60,167,105,109,85,32,85, -67,227,72,59,122,171,230,121,133,94,54,6,223,194,48,253,194,84,237,95,159, -117,223,205,56,109,255,191,20,21,72,230,135,49,167,98,153,139,192,13,167, -51,188,91,235,224,64,128,116,245,76,167,244,231,66,223,213,185,201,179, -189,45,161,173,63,112,85,42,200,2,122,70,174,117,19,122,221,99,180,64,91, -255,240,159,103,118,152,123,185,79,134,117,6,179,126,97,176,22,170,249, -27,126,84,129,17,141,25,195,252,68,167,129,83,213,64,56,13,19,144,20,38, -134,49,51,12,42,156,235,43,78,36,60,41,104,189,21,7,109,103,88,84,56,213, -190,242,233,167,23,6,7,156,106,5,103,158,248,107,124,162,99,160,173,63, -208,64,99,116,140,74,53,128,29,48,88,137,186,105,64,110,192,200,21,218, -186,6,204,47,104,6,90,161,214,126,43,65,132,53,193,137,144,73,34,7,188, -28,244,108,97,77,135,78,107,144,184,163,9,194,61,44,8,206,14,126,194,128, -20,62,26,127,56,205,186,195,107,26,1,233,73,101,227,56,96,38,129,123,69, -48,243,39,94,211,3,189,147,104,154,63,112,107,26,84,161,194,238,140,6,196, -29,141,32,88,182,33,56,149,23,91,140,237,48,59,24,211,163,55,26,36,78,158, -21,31,148,195,156,27,209,77,47,140,188,93,159,158,95,120,234,17,36,127, -224,86,17,230,121,130,102,194,73,86,33,17,243,196,65,73,9,223,186,228,5, -5,118,51,70,51,66,51,112,18,85,56,12,1,18,21,68,232,43,14,166,199,96,70, -223,118,104,107,56,243,130,54,225,250,120,68,63,189,48,57,129,115,83,131, -224,71,161,6,7,40,245,129,171,18,48,250,137,193,18,234,250,7,238,117,5, -193,145,186,30,27,140,198,247,24,61,199,34,103,164,123,130,214,194,196, -103,182,208,102,134,97,25,72,165,194,11,59,173,79,216,66,219,25,6,202,175, -191,42,212,173,172,49,78,15,223,43,108,106,16,207,152,172,63,36,70,61,96, -230,10,45,252,122,232,117,239,127,78,221,112,147,14,227,244,194,200,53, -62,234,51,106,193,152,244,43,160,21,31,184,229,164,186,88,110,57,145,138, -247,228,170,78,179,255,126,231,191,191,86,117,80,179,91,22,176,131,118, -97,127,53,55,156,130,237,53,83,32,224,173,49,49,244,100,221,128,206,12, -152,89,226,78,4,173,159,120,141,15,244,44,112,170,63,60,140,90,152,24,140, -48,5,76,102,196,232,24,168,36,36,52,180,11,19,15,2,96,59,161,95,158,15, -17,140,237,49,232,30,157,101,84,213,29,31,149,111,19,205,44,112,19,4,61, -127,162,155,62,209,135,246,224,85,9,76,243,136,25,192,73,40,72,98,80,152, -247,22,144,201,254,32,146,94,87,36,146,246,99,114,152,245,136,129,45,88, -86,144,176,48,206,129,194,193,197,110,10,61,111,233,33,116,219,163,55,189, -79,68,213,25,45,116,168,194,67,76,177,132,182,109,65,110,192,224,42,212, -77,5,167,59,140,32,92,148,130,112,35,158,198,199,82,85,127,224,174,20,132, -155,60,175,133,133,71,213,120,66,103,44,28,20,46,21,175,251,199,79,47,209, -122,47,62,57,246,107,204,216,14,157,153,1,241,17,226,131,243,241,129,117, -180,255,124,124,243,164,96,159,252,208,186,238,75,179,223,30,173,154,244, -8,237,200,63,95,108,140,127,9,192,178,14,235,121,2,168,197,229,84,131,245, -11,179,117,32,178,176,198,120,100,148,133,111,225,240,136,231,220,173,247, -127,83,126,77,245,46,156,45,193,239,101,29,140,101,141,209,12,208,44,66, -98,177,184,215,48,246,170,86,28,251,167,243,54,63,233,12,4,201,21,82,230, -178,214,203,127,78,212,38,218,172,142,45,156,115,97,156,75,38,126,198,84, -18,21,224,157,5,121,170,119,65,123,119,18,162,204,243,103,69,40,252,168, -90,167,71,56,58,225,214,70,194,53,1,178,159,76,143,94,15,112,116,194,245, -116,94,251,128,148,56,64,103,78,124,236,153,210,147,14,16,116,125,247,89, -42,5,85,38,235,96,89,160,81,39,84,230,137,191,76,143,201,46,215,174,80, -171,11,110,167,27,26,193,208,243,39,62,117,143,217,133,57,85,81,161,174, -46,184,55,127,162,173,36,172,237,49,91,3,235,52,94,211,47,79,172,82,45, -46,164,208,10,134,49,22,85,117,69,5,227,33,190,250,132,138,53,6,43,113, -106,206,56,73,198,100,37,4,70,244,253,255,96,36,130,16,13,206,205,15,92, -149,128,40,13,123,37,38,64,206,247,23,89,67,51,195,232,79,252,191,110,68, -211,220,113,151,2,198,140,152,156,194,173,190,225,68,128,117,35,6,61,193, -5,226,162,192,4,11,64,184,9,221,240,128,174,106,84,226,140,171,58,225,90, -159,60,76,5,227,153,179,235,223,31,208,214,31,248,80,109,8,96,84,212,53, -216,144,29,7,118,51,12,3,70,63,240,15,55,160,173,127,224,38,5,172,25,48, -177,194,173,185,250,235,179,19,6,51,129,197,13,247,186,133,20,58,84,58, -3,94,195,255,160,7,65,46,208,166,106,160,136,10,26,21,219,6,13,167,57,4, -70,188,250,127,160,23,4,65,13,206,205,5,13,25,244,99,239,123,168,205,135, -15,110,110,192,211,90,128,42,176,27,209,153,7,30,243,12,205,2,186,31,241, -20,53,78,234,138,123,123,66,77,14,218,244,232,141,133,80,75,98,202,59,55, -116,66,5,137,1,93,255,63,24,8,16,162,197,169,185,227,38,37,172,121,226, -115,238,49,89,7,8,1,34,9,85,93,112,63,253,137,134,0,51,255,194,175,121, -192,228,92,8,108,21,84,117,198,173,253,19,109,85,249,30,50,51,172,213,24, -205,236,149,24,117,7,213,92,61,242,194,179,255,61,55,226,115,152,208,203, -26,141,186,226,227,228,123,152,179,238,49,161,193,173,189,226,36,8,214, -13,24,205,20,90,17,39,200,157,128,80,110,118,226,99,157,177,19,70,61,193, -176,133,211,79,168,230,134,115,37,96,245,39,30,147,191,126,14,163,84,170, -186,248,235,87,213,106,111,145,160,63,107,188,112,112,28,146,193,208,162, -105,170,6,85,213,226,38,206,184,214,167,104,108,15,69,107,245,37,209,20, -4,76,243,95,248,135,38,144,244,19,9,87,213,172,51,249,194,13,120,244,19, -94,210,191,223,31,173,135,168,217,141,158,248,197,35,94,35,80,11,5,41,27, -156,197,25,215,186,133,100,3,98,9,137,17,175,209,175,79,33,155,240,247, -101,50,90,182,131,118,215,254,171,39,34,79,243,63,241,63,154,32,69,139, -83,243,225,97,226,80,132,9,55,226,209,79,232,69,141,182,190,225,227,228, -15,226,97,246,156,25,5,131,201,50,234,250,130,202,205,24,172,64,171,42, -56,253,137,79,61,193,178,128,238,39,72,170,208,54,55,220,212,201,207,233, -131,97,216,132,24,102,240,26,254,137,185,58,227,214,156,113,17,21,4,27, -63,130,10,141,215,240,15,116,4,84,209,254,243,247,103,225,88,195,56,134, -182,159,248,135,27,214,228,139,86,154,245,136,110,248,31,12,68,16,178,198, -185,254,192,181,106,81,9,138,152,242,123,12,142,17,237,223,241,31,232,1, -72,89,123,242,48,105,116,115,15,205,21,206,205,29,231,170,6,185,17,79,107, -64,80,32,59,163,55,15,60,230,17,134,8,122,24,241,34,181,193,250,194,39, -38,189,241,232,200,69,85,17,159,40,86,15,144,16,152,64,127,239,255,206, -187,113,48,78,93,36,226,89,113,142,196,18,104,153,37,227,66,111,251,95, -57,204,247,242,63,5,104,222,87,208,105,191,10,171,225,11,23,108,90,99,161, -35,122,179,118,19,173,214,72,216,152,214,25,210,9,163,30,49,88,134,20,45, -46,205,2,185,47,114,180,19,38,61,160,183,128,148,13,46,245,9,138,50,166, -254,65,88,95,167,24,96,193,44,252,108,122,132,90,48,44,172,243,132,36,130, -133,137,50,170,165,186,147,235,140,179,133,115,169,27,156,207,196,105,85, -28,116,214,194,45,179,202,66,130,120,153,183,116,176,236,103,52,9,126,102, -84,10,1,56,11,7,63,173,224,137,103,198,207,147,174,239,76,36,51,213,121, -47,155,163,23,177,50,134,217,193,46,51,187,68,97,166,219,79,90,56,18,168, -196,150,104,90,182,32,90,212,196,0,27,100,127,73,120,214,45,45,243,162, -34,146,188,69,120,14,139,130,24,249,153,213,120,161,81,34,75,129,68,167, -223,193,173,83,29,8,243,198,2,203,59,146,225,250,252,12,186,99,7,8,5,185, -40,122,57,7,179,140,59,45,138,124,161,183,75,95,106,56,5,246,184,195,170, -4,231,161,65,9,17,222,253,58,63,142,128,40,89,31,176,70,211,97,176,64,163, -174,30,26,94,194,149,240,8,18,133,177,48,203,158,240,40,34,130,215,6,218, -249,89,102,203,177,185,7,65,200,10,146,253,253,91,23,245,183,216,175,191, -138,22,226,171,159,213,223,154,16,190,242,169,72,108,230,50,225,63,253, -108,179,159,185,94,103,222,195,253,251,191,65,65,155,65,134,131,123,209, -17,16,97,250,129,3,27,222,1,84,173,196,214,47,164,202,66,80,115,235,212, -2,16,244,3,150,81,87,199,137,154,143,192,178,182,104,47,158,17,169,49,46, -125,120,235,140,79,66,33,252,94,98,11,71,219,51,58,190,186,5,37,117,176, -236,247,92,2,157,47,123,60,244,196,87,114,168,144,137,98,162,93,63,15,196, -86,231,252,196,136,16,1,229,49,176,46,229,1,85,114,75,94,104,23,23,179, -137,42,23,116,3,162,214,156,140,53,21,172,134,93,81,84,191,119,228,122, -95,65,51,133,183,248,226,199,236,38,207,91,112,64,163,110,56,87,126,116, -144,68,152,86,8,162,47,236,131,45,236,162,213,16,14,180,133,248,231,63, -15,49,114,213,114,33,31,35,19,221,50,11,99,121,21,63,163,48,85,226,239, -207,250,231,19,201,7,251,107,72,149,34,247,218,157,145,84,46,199,220,138, -101,255,47,123,39,172,55,208,250,174,173,211,152,244,203,115,72,212,117, -27,19,21,2,18,210,183,21,194,179,183,64,136,7,233,57,181,162,216,46,232, -145,252,119,247,247,88,69,113,131,41,153,119,114,85,236,60,107,222,143, -193,5,129,129,76,156,176,232,180,244,77,133,177,247,159,249,195,219,89, -179,177,21,69,97,38,51,46,24,57,86,155,227,157,12,232,190,128,203,60,112, -163,27,90,96,217,201,41,180,245,21,167,202,47,150,245,176,114,30,22,29, -89,161,85,254,243,138,202,138,61,113,247,117,215,131,167,130,40,80,194, -31,224,68,205,106,189,47,74,37,178,182,127,203,103,245,247,214,182,9,66, -147,17,145,104,215,163,206,254,196,145,160,116,98,92,194,169,25,71,46,66, -200,133,54,36,125,161,90,198,95,36,134,95,159,162,135,139,48,70,129,184, -168,242,119,116,243,165,207,82,206,197,215,91,98,127,83,148,116,144,75, -107,201,207,234,119,227,47,116,44,113,82,55,92,87,54,51,21,30,24,54,66, -216,170,124,181,25,132,196,34,144,95,37,222,75,114,182,244,159,57,82,137, -91,84,184,226,181,120,248,158,248,64,105,236,63,129,4,198,11,45,35,219, -81,161,132,142,215,228,94,235,59,59,212,87,217,212,200,251,61,183,160,253, -206,61,113,58,146,91,180,239,62,188,183,242,242,91,57,73,217,146,218,196, -179,98,17,173,210,137,85,48,63,94,199,253,41,89,32,20,5,173,131,203,57, -172,220,40,160,121,253,248,11,157,171,208,214,215,48,33,68,107,79,60,55, -210,121,187,37,81,150,109,61,124,94,95,220,247,190,32,203,61,31,114,51, -49,46,40,75,34,139,245,180,242,217,60,80,110,208,13,255,68,207,21,90,117, -197,37,230,104,16,118,202,164,201,75,229,204,136,38,186,30,47,116,131,99, -21,165,244,48,224,160,44,180,201,52,37,103,35,114,87,182,255,20,60,31,169, -197,45,213,70,118,48,164,27,111,211,94,79,42,247,195,3,227,104,119,111, -137,2,17,195,44,89,48,149,37,120,172,179,96,170,146,207,243,170,125,75, -166,120,53,168,0,167,54,186,20,59,54,197,175,140,14,130,204,98,230,64,251, -3,244,109,144,204,78,212,37,24,71,55,253,27,241,183,96,144,17,233,224,239, -16,149,210,65,241,157,51,179,116,49,229,116,122,255,142,223,70,8,36,91, -183,228,255,247,189,131,25,95,104,209,97,167,48,14,160,160,21,191,143,84, -121,202,177,253,45,23,122,208,6,170,185,7,221,244,82,109,200,59,163,218, -141,56,27,171,175,82,74,64,229,204,87,32,81,229,217,171,58,18,165,168,222, -145,88,213,239,191,195,127,245,112,207,96,188,248,222,99,142,81,60,190, -251,246,128,216,18,88,66,108,137,26,241,125,176,121,45,16,232,155,39,53, -190,92,5,133,188,188,120,96,17,211,174,237,130,130,67,220,225,187,40,168, -123,38,209,150,51,173,155,236,66,190,247,26,151,244,194,134,81,68,131,74, -221,3,95,41,75,194,142,156,211,222,161,189,244,69,178,15,124,35,99,72,61, -1,128,114,18,118,24,33,18,158,21,69,242,197,203,25,198,94,165,115,238,208, -27,13,89,127,132,158,58,239,136,235,113,17,154,168,181,198,245,20,103,233, -200,223,251,191,115,156,197,199,138,106,68,91,221,192,206,31,96,130,68, -16,181,73,252,65,82,53,183,223,221,163,223,168,224,125,207,206,122,162, -146,164,162,117,45,197,150,137,133,172,135,51,130,108,178,67,34,135,134, -237,103,50,227,140,253,185,186,203,228,178,244,25,135,46,67,137,17,85,148, -148,20,207,224,108,117,199,90,240,185,255,51,101,238,120,217,187,89,143, -177,20,178,121,123,184,113,58,8,244,198,129,49,78,68,168,24,145,226,138, -110,119,222,22,51,213,239,110,202,127,55,139,164,111,199,6,124,81,209,231, -38,60,223,63,199,168,24,64,242,234,61,199,163,22,89,203,196,60,167,240, -237,148,247,141,51,35,157,183,110,205,148,163,115,217,209,179,36,132,171, -214,57,237,145,30,100,158,15,248,38,202,242,219,8,96,25,114,160,130,209, -207,166,247,157,141,43,166,179,139,25,91,62,218,35,139,250,39,165,45,169, -146,165,41,189,89,191,251,53,19,241,138,136,34,64,149,247,246,181,165,202, -157,242,41,33,74,38,141,227,34,227,248,121,71,8,5,237,241,173,239,248,156, -31,35,96,49,218,234,5,196,22,243,38,58,226,82,125,133,238,241,65,5,255, -59,196,239,196,156,139,15,74,180,242,174,41,1,164,111,17,186,72,58,213, -133,118,88,162,19,195,156,38,75,5,164,153,98,99,177,12,49,4,3,130,163,25, -245,244,228,225,216,161,51,244,224,124,159,44,223,227,57,148,247,219,241, -151,191,241,25,17,164,172,194,3,160,220,136,61,176,59,35,87,35,62,40,216, -10,46,89,177,109,226,162,216,231,31,220,2,11,5,189,253,24,98,217,141,224, -96,245,118,79,173,1,163,138,107,249,27,204,105,247,131,41,201,162,153,178, -5,179,250,106,71,246,124,196,169,95,64,86,109,37,30,19,201,38,230,68,100, -100,179,101,204,67,12,191,9,62,7,14,138,37,119,163,204,20,121,157,129,207, -108,25,51,51,178,178,247,119,201,3,153,241,77,227,34,218,29,115,244,54, -32,241,23,235,152,138,89,7,189,61,123,248,139,196,97,111,202,146,90,54, -199,85,127,234,83,229,251,135,162,88,47,239,204,111,105,111,253,153,208, -209,168,220,113,73,221,8,211,53,78,20,87,117,251,22,23,115,182,78,241,166, -34,99,20,188,209,127,43,79,139,78,212,197,76,99,97,189,243,118,189,89,165, -185,51,82,204,137,198,188,28,230,113,1,193,235,56,232,182,173,54,134,46, -113,180,206,136,14,170,98,100,201,117,220,32,11,237,143,248,160,206,147, -153,236,25,113,52,222,188,238,255,204,134,116,61,188,40,179,180,225,108, -239,34,222,159,137,11,73,8,65,28,197,84,46,24,166,228,175,43,138,57,75, -191,152,125,98,90,173,206,142,84,190,189,82,44,200,205,252,248,139,115, -132,191,216,118,107,156,226,196,83,133,18,139,99,222,222,77,254,6,51,183, -221,248,100,166,44,219,35,94,80,32,207,175,169,86,142,14,37,80,216,174, -211,150,221,76,18,79,227,39,77,180,16,240,226,72,73,235,2,93,230,26,217, -122,29,100,98,74,55,64,188,14,178,195,233,95,46,170,10,191,239,93,234,28, -18,75,163,216,40,151,227,67,148,86,21,173,148,9,191,205,8,238,130,243,226, -74,20,121,87,175,57,42,97,7,107,150,220,180,182,67,53,234,143,82,236,149, -182,16,178,54,99,130,132,213,31,173,100,90,55,103,138,84,80,188,208,195, -44,239,230,189,204,209,207,101,158,215,84,210,3,216,31,34,241,81,79,133, -163,158,14,143,34,138,156,170,104,243,4,223,156,138,86,114,29,69,2,72,244, -157,138,238,200,163,62,54,36,163,175,18,70,42,46,52,126,83,105,127,33,199, -132,3,115,231,245,111,238,127,138,191,9,93,150,131,62,101,167,94,140,11, -149,219,227,180,75,19,56,235,24,114,22,24,242,119,192,132,162,13,37,39, -89,65,68,106,164,205,124,42,137,200,4,16,225,107,152,245,109,6,249,173, -252,42,245,27,103,42,62,201,165,34,230,236,111,36,65,249,104,65,230,237, -11,74,29,195,56,15,144,241,223,97,126,131,214,68,201,26,210,228,35,246, -220,72,147,106,74,239,53,65,206,162,52,117,141,15,75,114,178,197,22,74, -98,61,118,90,38,244,230,64,100,74,33,67,122,187,182,41,65,17,246,53,49, -37,252,47,198,190,157,240,173,195,186,84,189,231,177,226,155,135,61,83, -186,131,40,235,125,174,187,136,246,56,38,229,99,92,200,220,1,99,208,152, -2,228,78,17,138,186,58,245,209,190,144,217,109,191,172,80,141,240,62,177, -187,27,142,178,187,117,98,71,160,18,21,40,248,4,51,33,59,80,190,81,137, -127,175,168,74,119,217,194,208,149,65,194,118,151,202,112,118,234,109,128, -10,199,30,57,136,85,236,120,219,104,76,7,61,194,77,216,102,103,1,251,166, -155,180,3,237,57,243,13,142,178,114,100,135,247,254,76,138,12,4,151,233, -129,229,5,82,164,152,21,135,5,142,52,13,10,127,55,113,43,166,131,238,44, -111,110,72,252,6,21,167,82,26,77,145,159,115,100,79,184,161,11,28,107,38, -229,151,145,110,60,46,84,114,223,57,127,139,178,82,241,81,158,56,187,239, -222,30,222,128,2,124,152,238,228,70,153,156,60,157,239,33,132,251,159,162, -36,93,200,146,197,131,237,67,239,78,208,132,166,18,65,140,121,117,158,240, -199,10,42,85,204,105,101,75,20,172,60,163,246,30,163,112,170,191,89,80, -252,27,241,227,29,79,35,199,63,226,202,123,209,141,88,129,176,8,205,34, -78,168,26,249,161,190,133,153,52,88,19,82,123,206,245,205,81,33,71,56,48, -180,167,98,34,200,145,173,104,145,34,28,61,127,236,225,217,53,177,79,15, -255,119,45,231,124,219,112,156,100,112,4,202,83,116,159,156,237,176,183, -21,30,103,168,80,57,227,163,82,71,159,142,209,165,29,12,243,85,239,157, -14,123,140,187,135,64,133,232,79,121,6,122,20,44,214,12,176,44,203,190, -60,191,21,109,206,224,88,202,2,72,106,117,30,78,19,78,81,108,226,36,29, -9,218,44,7,15,142,131,17,132,99,6,139,108,129,48,37,85,108,162,149,195, -223,60,216,223,101,82,97,92,74,91,11,231,80,158,199,140,30,48,69,135,19, -237,109,154,115,99,222,55,107,47,101,45,83,198,174,254,94,191,97,235,135, -16,113,82,99,113,126,198,102,89,50,103,227,241,177,142,246,42,184,179,105, -242,238,103,251,233,184,30,220,17,0,118,224,98,12,217,31,65,213,116,208, -88,68,52,142,22,195,117,148,233,22,151,99,57,151,42,114,250,162,44,120, -219,4,164,93,41,202,107,21,17,193,140,89,117,252,174,112,164,34,244,77, -9,10,18,105,184,101,121,10,253,198,109,112,82,209,112,116,173,123,212,229, -77,94,131,114,31,165,136,126,103,185,239,150,59,115,10,133,81,25,203,97, -10,189,64,138,187,148,105,203,136,241,155,113,225,203,182,29,142,19,117, -218,35,81,73,245,67,30,237,227,117,12,117,171,24,227,100,52,78,116,120, -153,54,161,13,65,228,98,95,225,160,102,41,193,213,89,129,25,31,0,73,219, -170,212,243,166,61,26,183,58,130,174,60,170,13,110,78,192,132,12,124,139, -250,8,187,126,230,138,206,36,197,9,237,91,27,121,60,40,93,110,238,69,190, -142,208,166,252,77,36,249,33,229,128,197,251,68,143,191,200,157,143,126, -135,211,146,39,103,2,231,235,56,103,93,228,103,233,210,242,93,19,192,168, -167,77,28,135,55,90,215,99,82,177,163,128,48,69,226,115,188,34,164,28,84, -46,115,132,129,55,209,177,248,202,137,105,205,120,69,181,244,246,82,218, -122,190,88,136,191,81,93,253,102,165,79,228,93,159,54,63,226,104,131,50, -173,112,78,82,63,101,83,253,27,63,142,14,94,110,212,215,142,237,254,176, -84,204,101,194,204,225,46,163,180,74,220,170,110,222,93,95,214,93,8,135, -99,52,82,84,194,42,3,55,128,210,237,182,135,223,185,180,153,179,234,58, -44,2,42,164,54,132,24,238,137,247,0,31,86,33,40,192,110,136,164,125,119, -188,136,131,133,252,62,152,127,119,157,113,10,17,239,178,60,90,103,172, -83,140,134,211,3,234,45,132,94,174,155,57,65,108,202,212,129,253,173,241, -174,49,66,201,53,81,161,118,127,83,28,150,42,61,142,254,110,228,7,64,201, -25,201,251,130,35,18,187,66,212,11,142,33,250,165,101,148,122,237,102,137, -108,41,40,127,197,212,250,138,159,67,41,154,71,209,1,196,180,187,244,84, -230,130,177,77,228,228,121,66,102,38,133,200,139,155,151,160,77,155,166, -195,33,65,246,27,225,112,119,198,44,7,0,243,46,97,41,45,241,37,182,17,167, -61,82,70,36,96,22,199,186,184,61,199,249,153,204,7,107,106,67,231,104,131, -250,194,107,254,206,166,92,226,223,70,16,227,131,7,22,19,164,139,104,30, -29,20,108,165,66,135,223,116,212,184,80,209,199,240,59,209,46,33,139,57, -11,92,76,208,104,215,238,228,88,175,36,34,116,114,132,210,174,136,80,196, -141,218,221,83,118,173,20,29,32,219,100,82,20,191,153,80,149,86,191,131, -11,214,169,14,34,216,30,198,115,142,111,38,162,254,181,190,123,78,95,101, -130,181,22,236,92,32,245,81,118,90,71,47,32,202,162,243,91,33,202,216,191, -9,105,52,99,111,112,6,213,101,189,235,5,114,119,108,189,112,7,137,200,180, -100,11,132,206,89,56,120,191,113,65,20,237,139,116,198,56,121,49,140,148, -207,204,105,162,144,246,247,226,254,77,58,106,135,32,30,179,88,46,82,28, -196,138,41,44,229,3,4,153,170,1,80,102,151,199,72,14,167,72,2,115,70,95, -163,125,159,157,15,144,6,126,3,153,241,23,27,155,222,151,179,252,166,97, -151,14,161,81,6,132,191,203,78,211,11,162,8,181,216,158,162,245,194,30, -16,171,172,115,250,219,233,243,142,249,201,233,95,218,53,145,222,18,132, -99,58,148,91,108,142,35,33,152,149,53,206,233,20,12,229,12,237,184,106, -167,84,187,63,31,75,89,49,141,69,112,3,14,102,21,146,137,14,213,32,202, -68,209,33,195,129,73,189,241,87,130,44,238,87,4,187,236,213,112,66,60,162, -2,4,77,233,244,207,161,164,1,39,116,122,162,20,153,139,167,7,226,113,174, -36,6,127,17,20,249,232,72,101,32,155,210,79,19,149,221,100,194,38,213,29, -171,122,166,8,178,255,220,57,27,98,155,220,222,117,18,10,183,246,36,115, -206,229,217,164,177,17,205,215,83,225,176,230,67,78,11,39,176,54,197,60, -142,68,134,132,247,107,177,148,228,191,33,99,46,167,153,181,188,234,235, -239,30,245,186,55,100,65,129,147,11,174,33,25,77,151,114,13,129,180,242, -143,199,142,55,61,136,64,218,142,198,55,137,41,131,223,75,139,101,75,162, -23,95,143,4,229,13,197,31,214,81,77,14,115,240,249,24,150,139,197,46,104, -71,38,123,55,165,0,252,27,83,76,135,106,117,249,38,140,198,83,162,67,18, -5,61,124,166,114,119,115,71,219,230,2,68,148,36,187,218,59,89,105,13,146, -222,61,169,22,209,129,203,218,123,189,235,25,168,46,184,169,11,26,193,233, -1,147,12,128,83,218,101,224,2,66,22,7,204,4,217,200,180,144,25,32,178,94, -175,125,158,192,242,140,139,58,163,149,199,51,139,20,130,170,93,100,37, -23,244,0,123,58,24,103,12,105,74,20,47,178,16,181,222,34,37,129,114,25, -7,92,103,226,9,94,201,202,57,48,121,69,39,18,180,71,130,142,50,216,223, -200,40,211,206,228,126,126,230,247,166,178,242,177,199,189,244,204,106, -86,99,7,116,243,11,35,106,92,213,21,231,74,150,178,90,236,103,212,203,35, -56,95,3,23,132,116,166,201,123,81,127,142,79,204,212,226,222,222,113,149, -42,1,21,45,251,231,47,41,77,37,246,19,40,177,98,100,58,106,202,81,155,108, -137,89,206,121,103,191,231,252,194,192,94,114,80,178,240,146,169,77,100, -182,226,44,180,27,49,204,47,116,102,130,65,133,90,156,112,109,175,184,84, -21,222,170,99,230,36,213,29,227,36,153,69,77,198,225,169,212,46,45,38,138, -239,196,139,226,145,220,244,164,228,29,199,100,79,20,72,20,209,98,157,252, -156,248,73,239,145,172,210,129,195,9,239,197,27,59,205,166,67,55,133,248, -80,159,189,37,111,97,140,54,19,227,200,231,6,145,79,112,252,78,228,167, -194,192,45,71,184,245,146,100,44,98,60,69,88,189,188,133,178,215,196,176, -110,66,55,191,48,177,194,185,190,225,82,137,228,79,56,59,226,21,62,191, -212,94,166,120,171,149,40,167,174,124,51,74,196,163,178,190,205,204,20, -217,156,71,162,72,28,197,198,119,162,60,105,97,184,169,245,109,132,196, -52,1,95,174,192,153,1,85,46,242,194,240,50,160,94,94,144,86,51,133,248, -176,1,125,167,71,249,175,29,238,11,114,0,225,189,155,99,168,47,101,126, -167,61,221,156,205,14,228,44,208,120,214,63,202,6,54,138,253,6,165,240, -210,115,242,127,214,218,17,253,220,99,98,129,90,221,113,82,245,42,65,235, -175,55,253,252,172,234,68,146,50,107,145,37,168,215,110,196,33,239,115, -242,134,86,120,181,48,74,236,101,183,64,222,227,57,207,32,233,125,139,235, -221,225,30,17,160,192,222,0,196,188,240,152,45,68,117,194,85,181,80,68, -201,243,165,172,152,89,166,4,152,177,227,137,175,203,58,141,169,89,251, -132,70,255,77,89,0,0,32,0,73,68,65,84,162,133,106,48,233,14,79,109,32,195, -53,171,172,226,250,146,88,247,85,37,159,65,233,25,5,105,39,23,83,238,191, -31,167,176,156,32,44,148,64,109,206,141,232,230,23,6,39,209,214,39,52,149, -124,83,187,241,110,12,41,23,179,201,103,214,223,98,214,188,168,47,206,24, -130,41,73,83,123,251,222,21,106,132,13,94,222,22,178,58,225,82,183,137, -70,62,237,6,144,145,233,85,231,163,83,148,137,197,85,104,234,51,140,211, -112,44,208,42,239,22,40,99,185,84,55,7,211,30,66,83,221,240,71,243,7,42, -10,50,201,65,6,251,203,46,204,161,58,90,116,222,114,44,100,151,37,174,49, -104,71,5,153,238,29,11,37,54,157,226,221,81,151,142,18,30,65,223,217,52, -13,98,97,174,253,64,26,152,142,19,94,68,118,214,136,17,189,165,61,72,65, -146,181,199,115,158,64,242,132,179,106,81,83,170,83,176,221,58,103,210, -222,180,83,190,219,115,49,10,211,33,84,104,74,71,235,156,115,204,44,23, -241,98,74,236,198,15,19,59,46,47,12,231,102,244,211,19,35,75,180,245,25, -173,204,15,247,9,93,244,249,226,39,178,121,11,236,247,26,103,24,231,59, -92,134,217,66,219,23,158,147,143,175,231,186,69,67,98,117,98,37,138,218, -58,121,78,181,7,89,177,10,145,69,228,239,92,47,36,102,191,248,51,233,181, -168,225,197,110,75,12,41,133,215,222,93,97,26,42,48,44,255,13,49,155,163, -164,47,252,187,168,252,108,96,172,168,150,234,183,82,210,99,95,224,156, -162,24,66,116,16,167,124,163,189,10,76,170,35,224,35,130,209,15,60,230, -9,70,156,112,111,206,104,68,128,182,22,77,116,253,192,231,60,195,201,22, -183,250,140,70,84,240,142,177,219,24,197,2,67,113,156,196,176,133,75,24, -27,2,146,22,173,98,242,154,236,11,145,130,131,22,55,5,63,58,246,122,198, -110,201,222,92,135,199,52,194,202,11,126,212,103,212,235,60,233,190,195, -231,216,192,49,224,108,135,207,121,128,161,19,62,164,92,197,22,196,2,243, -147,247,42,94,158,155,16,222,212,192,107,208,251,140,84,134,228,207,114, -208,207,167,165,183,155,201,95,82,58,114,105,192,96,211,225,17,190,255, -20,190,127,53,112,112,14,54,56,150,121,23,182,224,114,149,83,19,56,59,132, -194,250,181,236,221,177,16,238,213,63,222,160,213,31,12,129,92,184,55,31, -83,2,207,100,93,0,65,231,58,202,142,133,144,65,87,124,249,220,174,123,131, -225,117,254,197,2,97,59,31,60,58,43,113,105,239,184,74,239,8,231,55,178, -129,101,17,125,95,104,235,44,94,1,193,11,220,58,11,7,23,86,144,128,90,244, -31,240,149,88,142,133,113,54,4,129,10,231,246,15,156,99,15,1,152,32,57, -253,194,175,121,132,165,51,206,66,2,142,193,130,211,195,113,37,175,198, -154,11,81,207,58,249,161,136,136,30,70,36,39,221,99,100,129,90,125,224, -94,55,65,218,121,209,188,31,240,154,58,76,92,225,28,89,241,190,239,187, -47,154,243,190,69,22,55,83,45,187,0,179,6,88,150,99,114,174,64,80,66,223, -91,51,231,132,152,181,250,179,27,244,29,107,209,195,193,89,14,250,232,180, -202,140,90,14,207,120,253,83,214,123,17,172,95,177,36,54,255,31,109,111, -182,37,59,114,44,139,153,199,0,32,19,153,89,123,119,55,191,65,47,210,215, -75,75,127,116,47,143,116,46,217,93,149,3,128,152,92,15,17,0,34,2,64,85, -109,146,106,174,38,217,93,181,115,0,2,62,152,155,155,205,68,90,15,207,33, -75,142,18,42,109,10,49,2,188,15,203,253,7,68,220,145,230,213,78,54,254, -124,157,67,106,146,217,51,145,190,255,60,62,243,15,220,205,4,47,122,252, -208,103,104,41,54,72,25,99,31,41,171,87,49,93,112,201,167,66,172,133,103, -122,158,176,248,35,4,120,31,117,244,227,43,204,58,255,84,52,92,133,24,54, -211,234,135,128,116,77,67,14,93,166,235,51,63,159,97,213,193,39,228,91, -86,0,194,136,199,116,199,16,36,78,109,148,109,22,249,247,10,35,30,211,7, -134,16,13,95,46,74,101,155,16,180,125,254,139,248,176,186,77,198,223,193, -50,242,144,20,157,21,153,103,187,227,1,142,206,184,41,149,252,59,50,154, -47,151,196,193,2,69,73,58,251,97,153,105,201,232,227,144,124,18,66,190, -194,62,199,39,18,171,72,78,152,240,152,222,49,4,53,39,248,248,202,33,100, -46,109,52,219,99,150,4,182,133,84,177,84,234,180,211,231,148,34,255,123, -115,19,174,59,90,2,216,199,7,75,74,57,199,57,44,119,166,146,206,43,24,133, -123,93,126,86,173,83,49,255,205,102,34,204,139,27,30,22,69,160,185,194, -142,182,173,143,201,128,213,21,111,77,135,86,172,211,81,102,7,227,30,120, -24,3,200,27,222,154,22,77,246,90,115,133,15,162,108,44,19,253,175,39,251, -194,221,12,152,130,139,51,32,150,104,154,159,248,173,145,240,246,142,123, -0,52,49,140,119,48,222,67,202,51,110,167,31,184,74,128,151,63,63,194,4, -23,231,171,32,72,245,3,127,107,207,104,150,32,194,37,33,42,85,117,247,241, -29,15,55,194,248,217,252,194,226,127,249,39,26,217,227,173,61,65,132,23, -222,141,129,144,26,228,39,140,222,130,169,65,223,253,68,47,29,94,227,29, -19,245,248,217,157,65,64,68,1,166,17,164,111,184,233,14,90,196,162,144, -211,60,72,44,45,123,128,15,35,30,67,124,127,235,61,60,41,104,97,241,15, -255,132,150,23,188,117,103,180,148,172,63,237,136,41,56,4,38,40,125,195, -111,237,21,39,37,114,246,80,69,158,100,32,121,78,191,91,11,42,62,191,70, -223,253,158,108,38,13,70,251,140,175,239,29,2,4,148,186,226,183,211,21, -221,98,245,248,192,135,29,49,121,31,67,175,236,112,105,223,208,43,29,45, -69,237,115,189,254,16,144,250,130,223,219,43,58,33,0,204,142,128,2,231, -238,186,38,46,154,33,193,119,12,124,198,207,246,18,157,161,194,43,249,222, -95,113,211,29,20,44,70,247,192,221,140,176,193,195,67,64,170,43,126,239, -174,232,68,185,219,94,152,228,16,131,131,197,100,238,120,55,67,178,251, -253,129,63,186,11,218,100,192,227,195,132,199,244,23,238,102,130,11,14, -65,72,40,88,252,183,123,160,81,23,252,232,46,177,128,221,67,131,121,134, -80,87,163,24,44,133,212,42,75,65,201,140,198,249,7,238,206,128,244,207, -152,220,151,160,24,187,171,209,126,224,225,4,206,77,11,157,58,87,166,156, -167,194,101,252,64,128,117,79,60,140,131,106,46,56,171,38,201,241,58,24, -251,196,135,241,104,154,11,206,18,112,169,120,180,222,71,211,34,117,193, -111,167,27,90,33,10,33,165,25,17,43,27,1,19,239,255,52,193,4,151,138,187, -14,151,211,27,122,16,188,123,224,238,40,250,81,200,228,222,55,125,96,18, -103,252,208,39,104,1,88,55,97,176,31,120,121,7,23,0,18,26,93,115,195,155, -142,223,213,248,17,131,185,99,240,22,54,48,132,104,208,54,111,120,107,26, -168,224,48,185,116,190,188,133,39,9,37,175,248,253,20,239,127,8,6,147,139, -241,195,120,151,126,126,193,239,167,107,116,214,227,236,124,122,7,134,135, -11,2,74,191,197,248,48,39,247,35,52,108,89,147,13,203,60,62,90,227,58,24, -55,224,49,25,168,230,134,94,37,142,17,59,152,228,211,222,54,87,156,5,96, -125,180,118,158,130,139,166,64,234,138,223,186,43,78,42,231,195,164,14, -84,136,165,80,140,36,220,0,235,39,12,230,29,47,111,215,235,167,223,240, -214,180,80,240,24,221,19,15,59,96,114,46,194,223,242,134,223,210,247,71, -176,24,237,3,15,47,112,62,221,208,75,93,54,6,193,98,52,15,60,189,192,249, -116,197,89,234,244,29,231,184,190,243,124,167,231,175,141,94,189,48,126, -194,203,124,96,112,54,90,34,147,70,167,111,184,40,96,154,222,241,112,6, -38,164,179,71,22,255,116,47,40,213,227,71,123,73,110,120,148,158,147,106, -4,157,158,141,229,254,6,7,15,1,45,111,248,189,187,162,33,131,215,244,142, -71,0,148,96,88,231,96,130,135,16,103,188,157,127,226,34,4,68,152,48,152, -59,94,62,198,31,53,103,159,217,219,120,38,181,5,231,193,196,80,105,102, -183,206,87,227,141,240,206,131,4,160,164,218,2,20,12,120,239,1,34,40,185, -85,197,102,70,20,206,1,173,202,120,233,128,73,21,43,85,231,60,104,54,149, -217,233,252,157,115,209,219,55,255,121,86,68,56,239,226,247,17,114,139, -137,7,142,63,23,89,95,152,201,108,250,96,49,154,15,60,61,163,105,162,197, -224,66,78,74,78,78,195,252,115,253,3,55,221,84,150,125,156,76,113,4,148, -148,201,221,200,37,72,116,130,23,39,92,207,127,224,45,24,60,167,15,140, -220,226,220,52,160,240,129,15,243,196,136,19,116,123,197,155,246,120,141, -31,176,201,5,201,218,119,124,88,3,150,39,92,206,127,64,5,131,199,244,129, -9,13,250,246,130,46,125,215,69,214,119,190,190,243,108,70,52,56,55,39,216, -224,33,228,13,151,54,61,20,243,247,15,47,252,57,61,48,120,70,39,59,92,218, -31,80,246,47,60,124,234,86,252,132,17,2,173,106,163,45,168,127,225,97,70, -120,209,225,77,159,160,197,250,160,206,247,95,40,181,4,82,73,13,206,109, -254,254,55,156,100,118,184,253,19,127,218,136,134,244,167,63,112,243,15, -124,76,15,152,132,112,228,236,87,55,159,47,37,83,23,21,16,194,11,31,230, -137,151,11,203,231,111,204,159,184,7,17,145,9,251,142,63,205,11,94,156, -113,105,127,199,13,35,238,227,35,249,150,19,56,12,184,79,31,152,184,197, -169,251,27,126,46,107,81,201,179,205,190,227,195,142,8,178,199,229,220, -67,133,39,222,135,7,12,19,152,68,132,189,205,29,127,217,144,124,215,155, -172,43,245,176,254,185,120,159,43,201,240,126,196,99,122,192,112,139,94, -53,128,127,199,63,76,172,250,47,221,31,80,169,203,117,217,247,159,97,68, -111,125,68,54,164,76,200,140,197,224,28,136,78,184,53,140,96,44,164,136, -142,119,115,141,39,133,198,185,57,195,249,0,163,175,232,155,27,206,34,39, -181,201,106,30,88,155,229,172,127,123,27,64,130,161,164,88,97,203,4,33, -6,247,194,125,28,192,212,227,214,116,208,0,24,19,158,227,7,62,204,11,150, -57,18,155,132,132,159,12,158,246,132,91,123,197,69,55,43,53,209,249,44, -30,197,121,234,203,88,64,104,52,66,128,131,7,139,200,115,120,88,3,136,22, -10,3,222,199,23,44,206,184,156,254,134,134,95,248,24,159,240,249,70,76, -226,145,56,31,227,143,82,114,41,16,67,24,112,31,63,48,161,195,169,251,3, -63,5,45,208,167,32,36,27,102,15,169,175,56,41,9,248,9,195,244,142,129,21, -206,170,131,196,136,247,225,129,87,80,232,155,31,248,163,91,99,163,32,1, -132,17,239,227,29,79,214,184,232,55,252,222,169,18,242,117,119,252,211, -188,226,253,63,253,129,91,24,112,159,30,240,34,222,115,99,227,245,155,207, -199,141,7,60,166,7,92,178,47,157,236,29,31,102,138,241,161,251,29,138,109, -140,15,178,65,223,93,34,82,246,141,191,56,187,254,74,40,128,2,124,48,24, -140,1,68,131,70,18,56,120,132,229,250,91,144,104,161,120,192,251,240,130, -19,231,248,252,242,11,247,233,9,151,206,215,50,250,12,49,62,196,49,176, -200,80,137,17,247,233,17,175,167,254,129,191,117,42,91,43,35,4,247,192, -63,237,24,57,4,93,140,15,239,230,9,155,156,77,25,30,147,251,192,187,243, -104,245,15,220,148,46,81,33,246,152,236,7,222,173,143,168,146,210,171,22, -2,60,140,125,196,243,41,206,184,116,49,62,60,166,24,31,152,34,234,121,159, -30,177,243,111,126,224,143,86,46,231,131,146,19,167,104,206,176,28,32,229, -21,125,119,67,183,108,143,196,92,48,55,158,46,196,248,76,98,110,102,29, -156,75,249,33,221,127,233,159,120,159,238,176,196,8,20,96,93,226,180,32, -62,47,183,83,192,48,126,192,146,142,58,53,236,48,218,7,62,108,128,86,183, -104,221,187,120,145,7,191,104,225,146,0,164,148,203,74,192,102,1,138,120, -125,48,246,144,248,36,43,123,184,19,73,128,20,170,152,243,249,224,35,60, -47,5,32,0,5,137,138,98,94,200,47,42,41,55,4,188,156,92,18,173,39,105,215, -197,132,136,98,33,177,4,205,149,201,235,220,128,151,157,96,160,208,183, -61,78,82,173,93,48,59,56,63,224,105,13,108,246,243,154,77,79,136,137,109, -177,118,244,19,94,230,137,193,121,72,125,195,143,166,133,100,131,209,27, -4,234,112,109,123,200,240,196,199,100,64,250,7,254,214,156,209,10,134,177, -3,88,116,56,105,141,96,227,193,149,205,53,122,26,179,197,224,12,24,29,174, -221,21,103,41,51,110,132,64,252,199,124,145,55,218,221,14,206,1,242,130, -183,246,130,78,40,72,74,22,142,254,133,251,116,199,128,6,215,211,21,23, -213,0,97,128,129,68,171,123,180,48,241,243,139,51,122,9,24,247,196,195, -78,240,226,140,183,230,140,86,100,212,35,226,165,112,155,231,245,204,1, -62,76,24,172,143,239,223,93,112,18,10,2,1,222,79,120,185,39,38,71,80,205, -45,117,103,30,147,13,96,209,225,172,78,145,208,152,193,137,82,201,172,13, -137,201,253,62,61,48,114,131,203,249,138,171,210,64,24,241,36,137,70,117, -32,255,192,187,55,96,113,193,69,55,208,228,48,90,7,22,209,71,90,241,132, -167,185,227,229,1,221,116,104,210,72,68,32,94,183,151,125,98,244,128,210, -63,113,211,26,10,14,131,245,96,209,161,87,39,40,246,17,121,112,14,82,95, -241,150,124,167,211,9,72,158,246,14,16,103,156,165,128,119,47,188,236,0, -131,14,125,219,130,236,59,254,114,6,44,47,184,233,22,18,6,147,179,128,56, -163,111,123,180,197,166,40,65,232,156,245,75,32,40,116,138,224,221,128, -167,243,80,42,122,211,139,89,58,150,227,117,30,172,3,139,62,187,254,249, -117,229,131,13,208,124,254,26,127,71,41,89,8,147,70,226,143,135,115,3,30, -211,8,39,78,184,180,61,90,154,7,54,209,101,49,0,24,60,160,117,143,94,205, -92,149,213,74,119,126,53,181,196,143,148,220,221,20,17,31,201,120,77,127, -34,160,65,167,4,156,55,240,80,80,100,240,48,14,16,61,174,77,7,197,22,163, -243,96,113,198,165,77,132,216,108,176,174,210,168,109,118,100,12,97,194, -203,60,240,10,128,110,90,52,50,22,60,179,125,172,177,143,196,23,185,226, -166,27,32,76,24,204,3,3,75,156,244,25,58,188,240,238,38,120,58,225,231, -169,71,39,101,38,21,237,97,220,3,79,59,193,209,25,63,219,115,74,182,169, -92,11,22,131,189,227,105,45,32,47,184,234,6,10,6,147,183,96,113,194,89, -105,120,251,142,187,53,233,231,109,250,185,3,139,19,122,165,224,236,59, -30,46,64,234,43,174,170,133,32,139,193,196,248,114,105,174,232,231,66,248, -136,80,72,229,94,135,76,113,111,62,187,47,51,193,145,66,35,3,94,195,159, -240,162,193,73,82,188,254,164,160,97,240,52,30,44,123,92,116,23,63,159, -243,128,56,225,210,164,226,127,94,39,20,12,69,106,137,75,224,68,0,76,205, -207,155,62,227,164,100,68,255,40,197,7,243,196,228,1,165,223,112,214,45, -20,28,70,23,0,106,209,171,19,36,91,76,238,129,187,245,16,242,138,91,147, -138,235,108,52,22,159,207,88,160,221,154,118,201,15,33,24,140,230,142,135, -179,96,209,227,166,59,72,56,76,206,34,136,51,122,221,129,220,29,31,206, -192,209,9,63,178,251,155,77,245,225,253,132,209,57,64,164,248,154,114,208, -186,45,194,203,230,151,20,50,141,120,214,248,18,159,139,31,184,169,6,146, -45,70,142,241,229,36,91,192,221,241,110,12,160,127,226,111,77,36,112,79, -230,142,64,29,78,237,25,13,92,50,236,177,144,58,34,202,18,0,253,215,243, -239,203,164,136,120,134,196,107,114,199,150,88,240,31,49,148,201,85,166, -10,184,162,52,120,0,182,86,163,76,248,122,23,152,74,114,89,166,98,81,100, -139,120,157,45,70,251,194,96,45,72,245,56,235,8,201,175,235,61,14,163,141, -142,63,66,246,56,101,63,223,216,163,21,176,252,136,199,248,192,200,2,109, -211,163,151,13,192,67,252,119,80,56,53,61,116,24,241,180,35,32,122,92,154, -51,90,97,241,156,94,24,61,161,107,52,130,55,48,30,104,218,51,122,213,66, -248,33,86,114,65,225,212,92,112,105,18,92,185,85,90,88,134,169,113,230, -254,132,69,147,24,163,50,77,209,226,60,252,125,186,99,96,141,115,27,147, -187,196,234,217,14,242,152,198,7,158,65,160,107,90,200,16,15,50,169,75, -36,244,9,1,49,203,251,46,151,154,23,98,96,228,212,197,247,55,104,209,183, -61,206,50,250,147,115,136,85,251,139,5,78,77,154,151,177,195,107,250,192, -211,123,72,117,197,45,65,159,56,96,58,135,212,233,151,159,63,249,164,135, -72,54,121,152,1,83,136,144,178,32,130,20,29,206,205,5,103,221,66,11,1,10, -35,158,211,59,254,50,19,92,16,104,154,43,126,158,46,232,96,112,31,83,87, -209,244,145,64,9,139,231,248,129,167,243,144,234,134,75,171,225,167,191, -240,112,1,74,95,112,209,39,52,34,227,33,192,226,57,125,224,233,9,93,147, -138,37,59,34,136,51,206,74,193,187,59,222,205,11,83,90,231,145,32,8,217, -225,212,244,232,85,183,140,93,240,233,30,64,128,115,247,133,215,112,109, -230,142,109,230,5,60,240,62,190,96,208,226,210,70,120,153,14,88,229,165, -99,81,182,154,71,153,219,28,102,232,118,69,21,226,251,191,224,233,132,139, -190,224,148,252,188,227,10,157,197,107,140,232,144,210,125,36,85,126,39, -128,240,136,135,137,227,18,169,90,144,55,201,79,28,113,22,57,195,178,110, -196,228,3,132,136,160,164,84,45,206,250,138,179,110,75,78,74,190,174,148, -251,228,112,156,91,190,155,17,150,37,26,125,197,207,182,199,73,9,152,233, -29,31,206,130,68,31,139,133,132,172,12,44,208,53,23,52,28,139,126,200,30, -151,166,71,39,242,109,149,128,209,222,83,114,62,227,210,156,211,168,37, -125,134,48,225,97,62,226,189,9,156,80,197,120,255,187,230,130,94,34,118, -118,211,11,147,143,13,144,0,226,249,208,87,244,146,97,220,128,209,3,173, -238,209,235,53,62,140,156,172,87,19,146,180,235,48,185,227,141,75,217,250, -17,243,152,198,1,1,82,53,128,179,209,195,93,2,33,241,30,34,44,62,96,12, -33,113,85,0,41,79,56,233,11,122,221,166,243,187,103,217,205,9,153,120,199, -221,24,112,218,78,106,133,88,125,53,120,192,125,124,224,21,68,140,117,186, -129,128,199,107,122,199,211,206,13,143,134,179,241,159,133,186,226,210, -156,208,138,124,84,235,48,154,119,60,108,140,39,151,230,140,102,38,197, -4,131,167,121,143,215,55,164,243,3,64,138,22,167,230,138,94,107,240,60, -138,85,125,118,255,202,199,37,164,238,223,160,65,223,92,112,86,42,21,135, -245,170,113,102,112,4,0,126,72,177,75,166,235,21,147,251,203,124,224,229, -60,132,190,162,133,197,152,144,139,120,125,28,158,211,3,175,20,79,122,37, -49,77,239,120,90,7,161,175,184,54,167,101,92,172,124,234,222,133,16,128, -16,217,190,59,149,59,118,85,242,164,255,132,181,35,71,143,121,23,2,164, -164,82,2,144,51,230,102,33,194,182,206,234,54,234,88,123,139,192,185,47, -249,134,129,23,131,150,247,177,26,127,177,136,115,36,169,161,178,66,135, -125,172,176,94,65,160,209,87,244,170,45,88,242,165,144,72,182,106,198,22, -131,125,226,233,2,116,23,33,116,231,31,120,142,119,188,184,193,173,59,161, -225,9,47,107,32,244,53,38,203,185,144,8,2,167,166,129,224,17,79,231,208, -52,55,156,132,130,183,247,120,32,160,113,233,250,232,251,93,121,1,16,151, -106,30,33,76,120,76,15,140,208,184,181,23,156,18,97,135,137,211,134,192, -3,19,34,146,208,43,181,238,139,18,65,49,193,186,1,147,119,32,209,194,217, -1,86,104,116,237,5,157,210,144,25,27,167,100,17,175,197,90,100,148,223, -49,160,197,173,233,151,228,2,118,152,220,11,175,64,232,154,107,156,113, -243,132,151,121,225,233,25,90,223,208,167,185,229,254,96,56,206,181,159, -230,137,17,45,110,205,5,39,165,211,56,133,1,14,112,110,196,211,5,52,237, -223,240,91,34,219,68,249,229,88,224,44,169,147,90,156,219,223,160,84,12, -40,54,50,40,49,134,33,22,31,186,199,89,53,16,60,225,105,158,120,56,160, -105,222,208,107,133,224,98,231,46,244,45,118,47,130,225,2,226,25,162,0, -231,166,152,160,228,41,254,121,231,33,213,5,87,41,17,252,29,119,231,209, -180,127,224,119,169,34,145,139,9,36,34,147,92,102,236,252,93,229,176,200, -170,129,119,47,60,237,128,32,122,92,117,135,38,171,248,66,24,19,91,189, -193,181,237,113,146,114,221,48,41,72,89,137,204,185,169,36,8,165,165,238, -74,80,157,153,189,222,191,18,92,220,227,218,244,49,72,207,9,52,216,152, -228,92,64,219,92,227,61,253,86,124,136,171,167,15,99,33,165,134,74,228, -43,199,1,222,73,116,250,4,205,19,30,158,210,253,141,168,89,124,204,19,169, -45,215,231,42,180,171,171,205,22,17,121,38,74,70,88,220,166,235,106,220, -128,167,51,16,234,130,139,106,1,255,192,159,211,3,99,208,184,156,122,116, -100,240,24,7,120,121,197,91,158,88,144,86,211,252,19,15,243,130,151,87, -252,104,78,145,7,144,205,131,163,205,175,71,219,253,142,223,84,147,136, -150,72,6,36,1,198,126,224,97,2,154,246,15,252,166,215,231,141,32,32,16, -127,254,52,30,77,119,195,41,21,139,31,169,88,191,116,61,46,82,67,48,131, -131,135,35,90,80,137,66,152,160,218,178,225,197,40,194,98,50,79,60,39,11, -161,154,120,253,49,193,131,96,156,64,167,186,216,185,123,70,211,253,129, -159,74,71,50,216,188,22,153,182,33,104,230,136,100,14,165,243,88,216,185, -39,30,102,128,167,43,110,205,25,141,204,52,232,217,98,50,47,60,61,225,212, -93,208,203,57,62,60,241,176,140,166,185,225,162,36,216,61,240,52,14,164, -174,17,253,160,144,136,192,4,192,193,186,104,165,28,159,207,22,138,60,2, -11,8,56,76,246,142,135,141,241,225,167,206,244,25,72,66,18,167,49,228,0, -47,174,120,75,133,123,77,18,15,46,174,227,205,241,237,156,161,190,185,115, -31,23,138,132,12,4,135,209,190,240,242,2,93,123,65,175,53,68,152,240,178, -15,220,29,163,213,61,26,88,140,102,130,104,46,232,213,9,26,22,131,185,39, -254,202,5,189,36,56,23,209,31,210,55,92,154,14,138,24,62,0,82,164,248,166, -164,140,1,5,199,43,112,140,29,234,62,253,90,50,63,218,173,83,50,177,98, -203,168,83,40,5,149,251,100,156,153,69,240,110,247,206,213,110,232,74,95, -165,76,15,150,225,252,3,31,227,29,47,214,232,155,31,184,205,29,93,130,93, -156,127,197,185,89,80,232,219,183,72,132,42,220,247,168,44,122,102,18,82, -234,78,95,211,11,150,100,36,215,216,119,252,243,241,191,240,167,79,55,135, -12,238,227,0,39,78,232,155,19,26,2,38,243,129,191,140,135,150,39,156,69, -192,56,61,97,160,160,4,97,50,127,226,31,175,255,198,159,158,208,53,55,92, -100,19,111,96,33,21,156,75,38,197,31,88,119,199,195,59,72,17,215,251,120, -254,15,199,93,229,145,27,244,201,71,124,101,39,207,35,143,184,95,63,5,7, -19,0,146,29,174,237,188,242,84,74,175,172,236,100,206,228,202,3,156,123, -196,238,86,52,104,68,44,234,86,182,249,0,155,102,156,193,63,240,62,252, -133,15,199,145,116,164,219,245,129,218,61,82,22,79,19,63,255,165,125,195, -57,37,240,197,68,133,13,70,247,130,101,9,149,120,12,4,130,16,10,50,5,72, -27,28,172,183,176,236,224,217,195,186,9,129,26,244,77,143,150,28,6,251, -130,227,168,19,224,211,231,123,183,140,182,141,164,31,13,131,97,122,193, -177,70,35,21,16,70,220,205,11,83,112,203,217,117,126,128,67,128,15,14,46, -16,186,238,22,97,100,225,49,186,17,54,72,40,161,211,60,146,64,114,30,15, -228,143,9,31,66,86,204,102,65,8,148,84,8,97,130,113,14,62,157,71,231,158, -184,187,0,41,227,245,159,173,41,211,94,5,198,233,159,248,127,239,255,3, -127,31,238,24,60,151,82,161,88,85,19,215,231,138,22,162,169,101,7,227,7, -124,12,239,120,5,133,70,158,208,36,54,53,104,30,123,69,226,163,212,151, -248,189,191,18,176,89,104,11,3,62,166,59,158,32,104,117,70,131,1,47,27, -187,185,174,185,225,214,72,248,48,194,178,128,162,57,56,19,4,20,148,20, -171,161,209,98,232,193,149,150,149,135,11,14,150,45,172,119,112,193,195, -250,9,44,26,92,244,25,29,28,94,211,29,3,75,104,33,97,237,59,254,249,252, -111,252,233,8,93,123,197,69,73,4,55,96,8,9,121,225,248,122,126,145,96,139, -35,191,193,51,4,73,8,246,176,193,70,242,50,115,66,13,7,88,72,40,17,147, -123,4,81,85,140,201,236,48,186,1,150,4,148,212,203,22,136,16,233,251,193, -224,105,95,112,164,160,137,48,153,191,240,143,231,127,227,79,39,209,53, -111,184,234,6,82,0,206,254,133,255,245,252,31,248,127,134,7,198,176,179, -118,87,200,142,207,119,56,128,253,11,239,169,241,105,212,9,109,24,240,50, -207,152,144,244,13,111,90,33,248,17,22,2,74,204,197,7,67,72,5,149,32,104, -81,235,42,20,250,24,1,214,190,48,184,16,157,74,217,193,123,7,23,82,124, -10,35,158,110,136,133,9,8,33,60,83,124,0,186,54,146,22,37,44,94,230,5,75, -10,141,146,17,137,49,175,8,149,35,198,128,24,131,21,180,156,127,62,96,116, -54,197,135,1,6,241,250,170,89,104,90,40,104,17,199,115,203,253,19,2,18, -30,222,59,248,144,35,243,169,72,241,1,138,26,104,1,248,153,132,158,91,252, -230,157,252,188,126,24,38,188,236,0,75,4,41,0,239,30,120,159,254,194,187, -77,241,157,28,158,102,128,87,103,244,205,9,90,48,140,153,57,4,61,46,90, -67,192,224,53,14,176,208,208,82,129,194,24,191,191,143,223,95,5,239,65, -82,150,226,162,217,102,90,33,114,66,159,239,193,127,43,201,103,200,16,251, -16,89,251,243,60,131,121,179,227,89,11,210,16,151,44,124,100,246,163,123, -35,165,98,177,40,39,194,177,131,49,79,60,173,5,203,30,63,116,135,70,138, -85,164,132,35,59,247,153,230,94,63,154,46,193,30,92,249,185,115,229,230, -179,18,146,252,28,150,195,11,143,49,160,145,10,90,247,120,83,17,90,27,156, -65,80,29,110,237,9,13,24,206,189,48,120,15,173,111,184,106,13,14,46,190, -90,120,226,99,116,80,66,66,169,51,122,121,195,77,235,180,182,179,111,142, -129,101,181,201,166,117,14,143,209,252,133,255,246,45,206,205,27,174,138, -224,221,11,35,75,52,205,117,233,234,138,101,4,14,176,110,192,96,13,130, -56,161,111,123,92,148,74,162,40,249,68,130,23,181,190,173,149,169,131,15, -1,129,61,134,233,79,76,174,67,223,196,207,79,76,16,2,128,123,225,47,63, -64,201,6,39,245,3,191,165,196,78,159,157,163,36,60,52,177,64,219,220,226, -231,175,221,190,211,58,31,241,128,247,97,196,7,0,45,59,156,219,31,184,136, -0,99,239,248,211,140,112,243,182,136,208,104,85,143,183,243,41,238,172, -134,152,216,217,61,241,215,107,128,82,26,157,122,195,111,237,12,59,122, -88,239,96,131,131,11,14,239,47,139,81,159,113,209,39,116,74,39,194,161, -129,113,6,14,13,78,42,237,251,47,21,60,65,144,4,97,192,199,107,192,29,4, -37,59,244,237,79,92,244,188,216,133,227,237,219,133,55,50,97,242,22,46, -4,12,246,5,209,92,208,169,6,146,25,96,23,239,127,112,24,167,191,240,223, -190,195,89,191,225,170,99,129,230,253,136,209,13,112,212,160,83,39,116, -178,66,199,104,182,97,46,49,94,14,6,131,249,192,187,157,96,131,79,164,43, -15,182,31,16,226,13,23,161,32,152,35,163,218,78,128,184,225,77,119,144, -223,157,243,133,41,22,63,212,225,173,249,129,94,6,140,83,128,80,63,240, -123,90,125,162,48,66,66,128,66,186,126,2,144,226,132,190,253,129,11,169, -56,102,42,130,87,86,20,249,9,163,189,227,47,51,194,5,0,130,65,104,209,234, -19,110,221,25,173,20,112,238,5,235,28,60,28,238,83,128,38,5,221,92,112, -19,61,110,74,67,82,92,13,147,152,48,78,255,192,127,153,121,227,226,7,122, -153,10,224,229,231,255,43,253,252,132,107,251,3,189,76,8,146,144,128,27, -241,62,140,184,39,104,251,210,254,64,159,232,191,146,36,224,71,124,60,71, -220,9,80,242,28,191,159,20,113,13,16,20,19,241,228,160,73,66,201,19,46, -234,26,55,70,128,136,236,76,119,188,130,196,169,237,146,56,87,45,41,92, -43,69,132,120,127,221,0,71,45,222,186,27,122,193,24,93,186,254,221,109, -185,254,17,162,31,151,243,43,229,9,125,247,134,139,212,169,17,90,199,175, -204,235,138,216,226,115,33,36,4,12,198,241,31,24,64,80,234,132,190,125, -195,69,169,200,205,160,24,31,254,124,14,80,170,65,167,222,240,123,218,88, -138,205,131,131,9,177,56,123,247,22,83,211,227,210,156,208,73,149,24,249, -14,214,123,56,188,240,241,154,127,126,142,132,100,246,49,62,132,17,31,207, -191,227,131,226,243,119,105,127,196,239,7,78,228,185,120,127,255,62,17, -180,236,226,245,87,51,247,202,193,179,67,8,30,163,249,39,76,136,207,215, -77,183,144,162,148,9,165,220,106,150,25,33,9,140,193,63,240,231,227,149, -190,223,13,191,53,145,99,49,26,139,32,59,188,37,162,170,243,47,188,66,128, -82,49,126,10,142,76,122,199,49,254,124,188,44,76,115,198,89,159,112,150, -26,204,1,244,63,31,127,103,74,195,130,92,114,176,64,224,63,95,188,253,215, -102,240,12,4,112,130,131,233,64,124,38,23,215,41,19,105,193,191,203,97, -184,205,72,41,131,252,211,142,105,112,177,114,123,121,66,163,59,244,75, -87,158,186,91,63,173,63,87,39,244,25,139,126,243,101,104,223,77,40,146, -245,67,218,59,78,144,235,44,109,73,18,52,239,121,167,153,27,18,217,141, -3,128,52,199,226,180,95,26,192,217,142,47,131,73,66,129,138,98,120,35,131, -183,220,179,152,92,195,204,117,200,200,99,204,12,159,130,136,168,32,144, -192,30,214,141,177,67,64,131,115,115,195,89,202,204,188,128,11,184,115, -79,96,142,49,251,61,135,212,213,196,34,107,145,249,229,85,90,55,174,44, -198,190,90,136,111,8,218,32,190,110,72,59,202,36,54,187,62,160,180,31,29, -184,180,240,141,73,53,138,189,248,192,197,174,50,137,121,191,63,234,13, -4,230,101,95,153,210,254,181,204,44,26,35,123,223,71,227,146,4,113,43,202, -21,225,226,62,51,35,190,175,40,84,235,86,25,89,166,89,51,65,64,80,36,191, -125,41,172,177,172,123,166,157,92,138,253,235,234,11,79,233,26,248,69,51, -129,72,164,110,115,245,34,136,154,12,137,84,86,168,225,149,138,122,185, -76,43,19,47,50,159,165,212,109,188,70,132,0,187,140,13,58,156,155,27,78, -226,251,177,130,211,30,114,152,119,156,121,86,5,139,223,111,213,117,240, -105,95,120,86,249,162,101,205,151,170,234,183,20,163,137,163,73,95,72,206, -138,24,208,83,113,25,137,199,1,126,97,210,139,52,146,72,154,15,233,254, -151,251,238,34,106,70,100,130,39,158,215,177,134,128,136,59,244,243,189, -9,14,33,59,214,2,2,66,202,228,2,22,191,159,207,190,67,252,243,50,173,168, -249,229,249,193,50,110,226,84,84,0,158,39,140,211,7,222,173,133,80,111, -120,235,122,156,102,173,10,174,10,55,230,76,110,132,192,240,8,97,190,254, -114,121,22,24,235,190,53,16,192,33,61,219,180,58,93,206,231,136,11,33,230, -90,57,114,94,150,243,240,62,239,206,196,170,39,48,199,191,197,18,59,219, -133,79,163,215,128,89,211,98,54,58,18,81,160,45,127,254,230,125,117,202, -36,144,231,36,155,105,101,204,241,105,141,135,243,243,185,94,99,18,243, -115,156,213,162,193,39,174,18,45,204,248,25,109,89,27,207,117,174,189,24, -162,97,213,51,193,252,108,46,239,29,138,235,77,224,120,173,129,236,119, -210,179,159,127,62,138,155,51,28,28,140,31,65,255,243,249,119,94,160,56, -46,85,117,248,144,184,246,239,37,248,184,134,17,34,132,35,69,69,10,91,85, -54,230,170,175,174,54,8,59,42,109,133,86,237,142,34,220,124,156,252,128, -135,25,224,160,209,233,115,220,83,166,76,188,192,15,120,218,8,121,116,58, -206,139,37,29,169,244,228,244,253,12,1,161,76,202,180,28,207,103,36,52, -202,124,219,247,136,141,59,162,123,153,112,248,231,2,110,91,241,212,34, -84,47,154,197,37,194,17,82,167,239,66,36,117,24,6,26,117,138,172,213,12, -50,230,220,122,178,230,48,150,53,85,33,95,90,80,22,142,10,70,254,74,181, -174,186,254,187,180,224,189,43,146,95,131,45,133,120,95,35,142,10,120,124, -79,142,150,42,51,34,218,211,154,252,196,223,180,148,187,165,67,65,221,253, -215,231,67,237,61,174,73,61,200,156,225,80,31,200,181,160,46,117,43,215, -213,82,222,185,134,139,108,241,114,158,82,49,233,29,172,31,240,114,62,42, -43,54,137,77,255,107,154,192,251,1,36,247,99,47,156,27,215,243,145,111, -211,108,9,132,56,116,173,91,181,214,107,97,173,61,189,241,76,88,107,89, -17,156,21,233,120,123,232,171,211,135,163,211,250,137,207,61,237,20,41, -243,92,155,153,50,171,108,11,27,12,94,211,128,137,9,77,19,121,25,138,86, -131,174,133,40,57,191,38,103,110,149,213,127,231,231,116,107,140,125,116, -183,246,21,250,143,158,150,186,97,216,57,200,187,66,60,191,54,18,222,222, -143,37,241,103,35,223,93,66,249,129,138,96,113,125,178,85,106,230,29,149, -62,42,132,83,55,155,42,88,52,7,184,208,158,159,207,227,34,176,150,73,68, -83,161,225,16,185,52,62,88,76,118,128,97,2,253,253,245,119,6,211,30,185, -124,163,207,254,229,181,253,218,52,61,118,238,204,203,236,120,63,50,85, -15,24,215,15,118,37,143,12,84,25,102,239,131,174,235,98,179,210,25,165, -25,17,215,93,55,175,108,235,189,67,187,13,8,171,183,49,103,179,172,210, -148,101,71,190,49,179,21,228,98,13,113,71,203,154,183,117,204,234,120,196, -159,220,138,74,239,60,31,107,228,21,54,123,76,238,142,251,248,196,68,45, -122,29,73,31,170,184,14,165,195,22,113,165,160,158,217,147,209,222,74,206, -145,180,236,103,194,27,159,37,255,3,211,154,186,180,169,93,218,246,30,99, -222,73,221,251,178,106,71,97,26,223,10,123,245,239,125,158,196,1,236,59, -129,31,132,211,74,149,145,80,184,4,19,127,162,40,153,145,80,11,186,75,205, -152,175,57,89,217,42,160,115,15,220,205,29,131,167,184,6,215,156,209,24, -63,53,75,0,0,32,0,73,68,65,84,73,149,208,130,79,191,228,191,208,45,160, -26,151,209,198,87,189,54,127,201,165,107,183,159,225,88,43,126,115,191, -55,208,230,103,193,143,182,74,153,69,12,219,185,191,187,245,224,103,165, -223,218,32,5,247,192,221,60,241,10,113,67,167,151,13,212,98,180,146,35, -181,156,25,203,84,92,228,197,208,171,74,206,75,146,249,164,224,156,209, -129,141,193,109,46,121,139,141,159,193,151,230,38,159,213,239,71,5,193, -206,239,175,72,47,109,140,158,81,249,10,108,94,170,248,156,235,97,90,55, -188,178,77,147,220,35,101,113,137,251,196,208,101,247,251,103,197,91,86, -100,215,8,247,220,201,27,251,192,125,138,241,251,172,47,232,181,2,253,215, -235,239,188,121,20,184,50,138,250,119,159,197,236,62,251,16,33,15,169,100, -36,116,229,237,28,99,239,78,172,29,212,188,83,155,25,150,20,219,96,27,184, -154,11,113,254,165,6,174,92,229,248,147,158,139,14,202,126,218,233,235, -138,192,93,27,215,236,122,88,239,152,58,228,124,131,250,207,239,248,64, -108,14,221,78,63,186,239,99,176,173,170,67,72,112,96,146,102,20,180,129, -29,0,108,55,43,152,106,189,250,111,20,123,71,15,228,103,7,110,119,244,130, -141,195,208,54,164,254,42,247,243,19,231,135,131,114,239,216,221,241,168, -123,207,12,75,170,112,72,95,53,33,188,143,30,21,137,173,42,178,138,113, -22,14,138,172,162,122,70,233,101,76,235,168,108,47,78,68,68,213,193,167, -238,69,200,4,99,242,78,231,254,175,52,7,89,81,205,5,196,200,217,72,121, -219,45,21,128,30,29,39,7,162,181,147,93,188,31,106,78,18,190,118,136,219, -187,195,91,29,122,124,198,172,40,77,95,178,123,82,184,71,230,51,93,90,89, -233,88,12,156,18,156,205,123,40,72,157,168,170,241,44,99,119,165,248,115, -164,48,79,106,153,77,115,150,252,138,38,109,115,110,15,27,237,227,135,226, -168,56,248,12,5,44,10,217,189,145,116,45,206,79,219,209,239,254,193,220, -216,251,230,49,168,80,119,61,130,96,243,84,72,251,40,116,188,108,84,174, -50,166,2,60,142,27,210,8,55,73,235,210,223,95,127,231,26,152,219,69,152, -254,19,115,119,84,221,251,97,236,203,221,154,56,59,224,216,64,246,185,177, -89,158,220,43,132,173,120,58,9,149,247,123,145,76,183,149,103,17,170,115, -119,180,10,6,69,5,74,237,185,219,161,10,252,171,153,207,12,47,114,85,93, -210,50,79,94,204,117,150,17,105,110,160,83,15,49,115,70,108,105,72,250, -89,130,58,76,190,217,191,92,181,245,57,131,68,171,226,134,203,196,127,232, -87,254,43,46,113,252,157,15,74,59,5,14,127,2,127,239,193,243,251,175,9, -212,222,111,244,117,66,254,180,163,219,130,243,191,102,152,151,157,33,198, -1,94,193,192,238,171,239,5,202,253,179,190,32,54,216,155,179,28,196,208, -127,187,51,168,139,152,163,31,29,149,171,219,124,89,84,59,27,212,191,54, -154,89,97,235,35,188,102,191,40,165,79,15,248,38,74,108,56,60,85,18,94, -146,36,111,146,78,158,36,121,7,212,160,47,139,104,218,20,253,123,168,227, -175,161,227,153,219,217,140,4,240,241,179,248,117,204,193,175,21,1,223, -69,136,152,54,241,177,126,94,190,76,234,59,72,233,230,169,174,76,210,80, -207,230,107,112,171,186,205,148,17,134,105,7,122,202,37,219,105,103,218, -33,102,47,222,194,55,137,112,224,173,251,11,232,25,182,164,58,239,61,216, -135,45,84,145,47,113,215,15,41,21,110,37,40,180,112,184,250,255,89,144, -34,154,247,20,120,53,124,169,128,23,174,119,21,57,159,183,82,57,223,75, -196,162,156,71,176,31,39,203,185,29,175,227,255,226,253,86,54,63,47,126, -200,185,65,205,98,133,203,171,58,96,61,54,41,111,56,29,68,88,202,76,9,86, -117,59,202,108,36,138,109,25,170,22,15,139,29,104,44,82,159,165,107,199, -90,189,111,110,253,222,67,66,159,252,243,175,248,127,111,96,115,42,130, -12,97,235,6,198,59,51,234,79,133,185,55,133,1,29,30,244,173,243,88,126, -111,234,87,89,131,60,109,230,180,71,102,182,91,94,193,226,59,64,171,128, -11,215,159,138,214,153,221,76,40,175,29,251,136,243,245,202,106,220,66, -37,238,51,235,149,31,221,9,250,229,160,241,5,198,194,199,239,180,241,33, -39,66,245,181,179,70,177,26,227,85,96,62,109,224,240,114,255,31,188,93, -23,198,1,168,63,63,101,180,59,116,161,253,107,84,41,98,174,99,144,124,145, -63,5,250,226,241,204,60,18,41,35,61,110,12,153,202,152,75,41,54,174,171, -189,85,35,64,223,64,148,14,114,231,162,152,192,171,207,98,145,244,246,14, -205,177,165,227,190,198,201,209,4,109,207,201,142,243,187,130,194,125,173, -110,123,102,110,20,241,39,65,136,178,194,138,214,228,203,201,248,164,6, -193,106,85,216,252,254,215,31,119,57,65,60,199,239,85,63,96,243,117,23, -114,225,246,197,57,173,247,166,217,72,153,144,54,103,141,241,189,140,127, -96,92,29,40,237,18,74,185,239,153,74,123,33,130,87,215,167,44,168,16,151, -226,21,249,14,118,129,201,45,65,128,22,131,156,185,187,231,234,244,214, -129,128,14,246,235,235,147,56,219,247,113,246,112,229,95,97,99,231,87,84, -37,59,237,206,220,141,45,176,27,22,134,53,118,206,53,243,78,80,216,248, -205,215,34,37,249,195,156,23,36,180,117,54,202,100,86,150,185,93,81,148, -174,25,165,64,168,62,91,165,252,46,73,134,191,74,20,101,103,80,254,65,170, -138,48,62,140,27,116,0,199,175,93,13,103,229,194,222,159,165,47,31,12,218, -236,23,80,241,105,249,240,242,240,110,171,178,134,103,42,80,30,46,88,250, -89,129,197,213,237,44,206,223,252,137,214,0,64,156,23,201,229,13,225,170, -16,217,189,79,191,210,189,127,229,61,189,68,228,109,33,86,20,52,153,105, -8,237,242,12,118,76,212,51,102,51,23,229,24,99,99,185,182,109,124,55,16, -1,23,169,147,23,174,120,81,200,205,245,60,209,22,165,166,157,243,191,169, -1,8,133,222,6,231,170,137,59,155,52,27,194,46,101,242,220,85,28,228,106, -116,201,219,151,217,75,168,84,95,37,174,7,84,185,223,123,62,27,217,41,64, -184,250,236,180,243,93,246,254,119,231,252,17,242,230,35,135,201,107,97, -102,46,255,13,227,211,4,71,105,176,77,156,141,117,138,22,170,28,11,17,87, -231,55,251,110,156,55,183,243,179,74,188,62,151,84,110,7,109,35,2,31,28, -109,78,219,24,115,141,69,21,220,243,25,228,65,223,120,104,103,181,49,14, -8,46,89,143,138,35,214,67,157,185,203,138,155,106,236,137,242,68,194,107, -7,50,39,28,162,29,211,140,60,182,241,218,89,31,6,85,222,27,181,44,160,2, -42,54,57,243,186,167,79,245,89,97,172,2,59,155,167,37,131,190,243,243,158, -23,94,233,125,202,93,245,28,2,170,186,249,204,193,174,236,15,183,62,238, -216,157,21,51,242,106,133,230,57,83,126,209,168,154,235,230,82,3,124,144, -155,118,92,255,118,236,209,143,43,246,77,161,181,57,214,217,75,82,53,11, -69,229,193,118,132,4,236,229,43,62,248,184,180,231,68,190,169,84,184,138, -184,107,106,38,80,197,129,249,14,66,201,117,128,156,205,59,151,25,242,206, -17,163,252,30,241,94,179,184,64,241,75,207,69,84,96,34,84,205,16,9,223, -236,186,190,42,230,62,43,2,151,76,195,11,202,176,204,163,115,27,104,166, -178,252,160,77,205,155,101,216,249,89,205,157,47,87,116,106,246,82,103, -108,175,213,222,103,46,153,226,59,17,165,72,48,188,216,240,22,163,232,188, -248,66,61,77,161,181,19,36,20,39,103,142,19,251,164,201,109,103,203,196, -149,19,104,230,80,95,1,129,76,159,36,246,172,192,231,106,124,67,121,167, -76,235,253,41,26,12,170,146,249,87,4,109,28,196,147,221,223,89,137,129, -249,83,63,207,176,247,70,177,84,52,61,188,3,75,81,86,252,228,5,92,22,111, -23,68,100,75,92,223,198,175,245,186,80,102,20,144,243,1,104,105,74,121, -121,30,41,87,97,220,81,167,203,47,141,160,172,66,39,222,135,88,255,37,164, -45,79,156,28,93,229,68,178,107,68,85,77,229,15,221,218,17,242,74,72,152, -137,5,188,115,95,185,106,193,41,123,125,94,1,49,218,59,0,180,251,44,109, -225,199,236,164,206,130,46,249,67,207,53,212,66,229,159,203,59,105,206, -103,152,149,25,14,231,23,123,246,114,230,109,113,187,118,220,92,84,229, -43,164,145,85,24,180,77,237,84,0,188,192,126,107,146,201,249,238,244,196, -185,4,104,126,198,120,63,231,238,207,0,233,11,120,254,104,143,136,104,183, -40,169,209,9,218,41,240,169,40,0,246,223,140,119,96,127,254,4,48,47,235, -149,178,208,250,172,57,229,44,21,240,39,121,238,179,25,62,113,254,61,103, -152,126,13,56,5,63,146,183,117,96,81,28,100,35,157,124,235,100,207,218, -185,142,36,255,22,26,79,95,4,241,250,228,242,26,64,139,98,99,25,83,48,142, -1,144,245,98,112,113,64,170,4,77,219,93,7,250,98,148,68,217,41,161,226, -170,174,99,80,174,152,59,27,116,148,104,195,12,92,45,186,215,221,254,146, -163,182,34,148,5,60,127,4,1,48,85,143,229,126,217,75,135,131,152,245,60, -80,85,230,114,29,41,178,228,207,223,65,245,8,199,11,44,159,22,26,245,223, -21,159,2,57,217,186,30,89,126,86,230,231,207,205,156,100,185,76,31,21,225, -100,17,242,201,185,211,155,103,132,11,49,169,5,225,229,114,172,192,75,23, -191,3,208,211,103,207,74,252,75,173,132,46,42,102,217,252,31,32,201,16, -0,239,99,231,46,147,82,218,146,28,105,135,81,145,153,182,208,209,103,166, -157,33,196,210,253,87,175,201,33,170,61,113,168,160,87,70,16,73,16,97,135, -57,66,219,28,183,188,15,21,233,146,129,192,233,61,74,118,131,72,174,124, -203,163,67,40,131,4,149,132,147,5,134,167,108,42,206,5,138,184,185,55,139, -38,255,204,15,200,110,224,60,155,229,16,5,18,242,30,131,164,0,137,185,11, -202,32,181,61,56,147,80,192,191,75,98,10,241,111,2,3,82,172,154,238,73, -212,131,163,34,67,124,159,3,94,199,151,235,45,135,55,164,70,36,248,96,243, -139,177,191,245,158,55,14,159,81,118,203,129,13,29,140,0,247,143,39,87, -49,138,10,85,121,222,161,209,210,97,83,66,5,94,48,239,197,150,27,151,171, -62,68,214,232,198,127,8,73,44,68,136,45,25,7,40,68,78,226,121,203,138,154, -140,165,142,154,87,71,219,105,211,191,58,102,255,244,60,228,119,57,159, -21,87,234,122,200,187,239,195,45,160,234,161,42,135,150,69,39,183,201,152, -197,103,202,209,197,26,240,229,18,243,41,146,42,29,187,101,109,208,11,202, -247,21,23,88,126,215,183,139,51,183,182,131,4,184,110,32,108,207,102,13, -175,81,53,188,218,35,161,50,74,135,130,114,241,140,54,227,93,58,64,39,14, -99,0,31,210,98,190,55,230,201,248,72,204,216,105,12,50,132,134,74,62,198, -118,215,40,139,26,203,26,225,54,84,174,40,18,54,12,12,98,108,81,139,60, -150,45,154,18,25,9,187,250,28,84,121,177,108,139,227,82,183,64,21,172,70, -222,112,8,126,121,156,86,195,210,81,85,72,32,179,214,169,91,112,16,173, -14,100,121,167,92,143,220,120,179,23,78,219,50,105,254,119,206,195,61,39, -76,79,7,111,83,162,23,20,63,143,148,144,125,135,238,162,32,37,54,173,9, -131,75,41,86,96,97,130,230,171,51,236,29,236,199,132,233,229,150,121,22, -145,128,236,26,180,55,13,221,138,229,193,42,74,184,140,233,31,109,6,147, -57,131,164,162,136,40,86,144,242,142,153,176,3,14,87,163,8,14,240,147,133, -253,107,132,49,88,224,42,82,26,205,207,14,237,89,46,16,165,247,33,106,2, -72,81,65,83,101,242,92,30,101,102,240,104,48,190,91,112,219,162,187,10, -8,149,102,122,206,193,126,24,216,32,160,111,13,116,39,203,14,229,40,83, -238,28,50,158,117,237,67,234,100,100,189,225,206,155,14,187,156,15,111, -197,124,246,207,52,23,48,254,210,95,37,8,152,67,186,41,185,247,249,23,205, -231,241,196,138,118,10,130,114,23,99,187,224,24,21,195,56,233,212,215,247, -157,24,187,223,157,152,17,220,128,105,120,192,139,19,218,83,15,45,105,251, -48,21,187,242,219,113,66,254,168,237,38,250,127,103,254,254,85,194,207, -5,93,114,34,1,83,70,48,164,85,184,169,66,21,14,153,228,40,81,10,34,218, -116,109,197,216,116,247,207,239,227,44,27,105,169,122,76,88,169,155,49, -239,168,34,112,97,196,155,173,241,109,117,13,14,197,124,246,152,174,51, -43,255,80,160,131,63,229,186,21,237,59,151,200,73,190,91,159,163,174,40, -122,8,46,187,220,175,244,47,248,139,153,59,225,120,223,61,35,2,115,214, -80,149,223,152,11,83,53,170,42,86,42,118,37,179,102,103,179,154,199,25, -152,156,109,96,112,181,115,190,83,188,172,83,214,74,164,141,170,56,147, -137,242,28,147,34,242,88,64,80,92,239,51,255,59,237,122,158,191,57,118, -142,4,2,84,246,112,50,111,32,122,6,149,221,56,111,138,234,205,141,206,5, -9,86,22,94,54,47,148,18,242,114,66,215,56,216,135,129,243,4,117,110,160, -219,216,185,67,238,72,162,214,181,103,86,213,21,218,243,4,192,7,184,193, -193,121,1,253,214,163,153,13,209,65,128,160,152,172,177,138,225,148,93, -67,154,149,250,0,251,154,96,167,248,217,232,180,74,198,214,2,67,95,174, -29,21,162,68,140,96,61,252,203,33,168,6,221,91,244,87,119,247,9,211,20, -192,62,128,131,136,50,155,47,3,51,2,234,220,160,57,71,185,196,13,107,46, -235,56,152,0,118,1,110,116,112,14,80,23,1,146,233,223,27,7,115,55,176,14, -80,189,134,110,74,73,199,221,164,254,25,123,54,4,184,231,4,51,1,242,220, -160,57,203,213,208,39,3,23,143,150,28,247,100,138,142,62,76,25,78,211,215, -15,30,238,105,226,251,247,13,154,211,78,209,185,59,57,223,102,20,174,10, -200,163,84,191,157,115,89,184,241,5,99,60,68,211,163,57,137,213,96,104, -153,47,70,88,158,114,198,53,2,130,27,96,94,79,120,150,208,237,25,42,31, -145,229,251,139,180,142,195,184,82,111,43,146,28,161,88,49,61,220,77,6, -126,77,208,102,119,254,74,229,25,204,146,229,154,240,120,157,165,103,31, -154,179,237,147,61,158,11,215,223,47,91,107,205,159,85,218,131,245,104, -239,236,236,239,122,114,198,204,207,119,232,41,27,29,174,132,90,70,185, -251,187,142,77,57,23,32,202,77,66,54,243,255,74,93,143,120,123,198,185, -112,207,88,86,240,8,244,109,52,134,178,4,61,187,125,46,73,61,79,222,168, -146,123,142,100,124,182,203,206,223,57,31,248,84,36,139,63,173,80,246,182, -94,182,170,38,187,220,160,188,132,163,149,172,184,114,12,50,60,174,218, -76,216,69,191,114,177,176,132,176,16,237,172,246,231,90,12,95,37,131,229, -17,101,168,189,78,224,95,111,217,203,171,47,132,44,111,36,170,86,160,86, -131,41,224,106,20,51,244,35,72,180,72,158,217,124,133,210,44,139,173,133, -243,4,121,110,208,158,53,132,202,42,105,31,59,251,229,44,40,81,174,4,89, -159,58,247,80,176,110,5,17,194,104,97,198,0,217,181,104,206,18,82,150,137, -37,184,0,150,4,114,12,80,210,50,79,14,87,8,81,127,57,12,6,230,229,1,173, -162,10,149,247,192,60,202,240,73,103,157,56,118,248,9,98,21,146,98,55,23, -8,164,104,117,252,226,128,224,24,44,162,14,184,127,26,184,32,32,251,6,186, -37,192,1,33,48,40,153,212,4,235,17,38,3,243,244,224,70,131,36,35,56,6,201, -0,33,0,246,217,218,176,247,241,46,136,88,20,177,243,112,99,0,53,26,186, -73,51,66,235,96,238,19,60,75,52,183,6,186,19,32,14,240,118,190,215,2,82, -149,160,19,51,131,93,105,28,20,81,140,136,42,132,49,126,62,104,157,222, -55,0,82,44,136,8,251,176,170,70,1,128,202,236,65,67,64,96,2,137,52,46,72, -21,177,16,123,59,68,84,144,225,40,204,239,111,35,58,163,53,148,136,231, -133,132,40,146,222,190,182,70,0,123,15,8,74,206,121,243,92,220,3,144,32, -57,91,174,248,136,158,20,160,148,4,9,2,39,3,23,54,79,76,198,2,242,28,175, -141,247,96,37,87,56,52,248,18,186,38,25,191,99,152,96,95,15,120,150,144, -205,9,66,68,221,248,217,47,61,185,50,128,93,88,3,188,144,73,115,157,18, -110,224,1,23,16,178,0,69,164,64,98,221,200,8,46,233,216,171,228,249,77, -255,66,12,217,35,77,102,35,177,162,43,201,136,180,148,207,203,231,196,49, -235,101,84,240,254,134,96,148,17,167,102,244,112,73,160,71,68,191,66,196, -238,72,209,41,47,57,41,35,75,37,37,183,42,243,80,133,6,228,140,236,210, -34,59,91,101,204,223,139,41,83,179,76,69,94,150,112,75,117,207,92,243,35, -159,139,239,235,58,28,101,88,206,57,4,11,47,137,119,117,8,242,233,41,227, -139,21,202,239,174,198,125,210,245,83,197,115,168,81,149,189,82,159,118, -128,142,61,244,131,22,51,210,149,36,89,232,107,100,186,32,123,93,58,118, -214,186,185,244,103,204,146,123,134,42,110,54,155,8,71,8,61,231,226,48, -32,40,14,233,161,161,29,38,94,97,210,113,0,3,204,208,116,214,248,121,31, -13,54,148,144,217,158,215,30,54,91,105,175,211,30,58,71,179,189,112,1,253, -111,103,25,37,118,197,140,152,192,94,30,164,59,180,103,5,154,19,76,96,248, -201,194,60,38,216,41,128,61,32,186,6,237,111,45,180,22,160,224,225,95,22, -211,221,192,57,6,251,84,165,181,10,205,237,132,86,57,152,193,34,64,163, -81,4,132,232,63,44,82,2,247,207,17,102,112,8,16,8,147,67,240,49,177,182, -63,59,104,25,224,30,19,166,167,133,159,24,129,0,41,3,220,203,66,156,52, -186,91,11,5,7,243,176,240,28,61,161,221,224,224,89,196,247,238,24,238,195, -192,178,68,251,179,129,82,209,213,204,60,12,236,43,64,92,90,72,54,176,38, -128,250,22,186,149,64,112,176,207,9,62,8,168,179,64,24,71,76,47,7,103,2, -0,1,97,98,167,44,79,13,218,91,11,5,31,223,31,2,146,28,236,43,6,113,117, -59,225,116,145,8,198,194,89,134,60,41,72,37,0,235,48,125,152,132,102,52, -208,138,16,70,3,251,152,96,167,200,81,144,167,22,221,207,6,74,165,219,230, -60,236,203,194,60,44,130,143,234,121,234,210,162,59,17,252,107,194,244, -136,163,21,6,129,148,135,123,81,44,166,222,26,104,201,240,131,129,125,24, -88,199,64,0,68,171,209,252,214,161,209,4,88,139,233,30,63,191,66,136,247, -130,36,244,165,67,123,81,17,105,167,3,93,46,235,48,61,38,76,119,7,111,227, -227,39,84,192,48,95,159,183,120,70,86,90,6,23,115,107,176,131,125,221,97, -71,3,40,130,155,44,72,72,40,205,176,19,67,118,87,116,253,25,2,22,118,124, -98,26,198,84,176,121,4,209,161,233,223,208,40,15,247,250,128,49,22,33,164, -123,36,38,184,177,129,234,174,232,250,19,4,24,222,12,112,227,7,172,141, -134,43,66,158,160,250,55,180,77,128,127,61,96,109,0,52,96,159,255,192,228, -24,162,189,226,116,187,65,73,66,240,6,110,124,194,140,67,228,201,144,132, -58,253,192,169,63,197,144,21,38,216,241,9,51,140,240,137,195,33,117,143, -246,114,131,22,18,12,143,241,227,29,127,253,53,66,246,55,188,253,184,160, -145,7,242,204,223,234,218,235,121,248,26,52,115,31,6,174,180,42,104,79, -61,145,215,2,127,179,24,146,19,66,103,162,106,190,17,195,43,31,134,115, -190,66,13,217,82,77,149,43,151,228,202,192,78,217,156,124,191,139,43,208, -135,249,85,153,11,20,112,45,16,114,174,65,189,86,148,59,110,211,102,228, -70,213,156,121,133,213,169,66,195,142,52,165,177,43,139,204,25,186,176, -188,18,103,87,231,203,49,2,240,201,196,241,203,196,190,2,60,92,228,131, -149,214,181,38,207,93,249,97,28,144,177,56,151,110,166,18,100,46,53,157, -177,7,110,125,113,188,179,127,46,155,13,202,18,59,211,49,78,184,87,179, -230,218,45,202,7,23,247,211,73,238,220,214,216,201,8,74,14,66,59,249,217, -121,31,29,184,88,100,77,58,65,145,2,131,225,188,135,148,209,241,171,196, -78,34,247,205,251,248,254,81,182,182,210,104,78,226,56,66,10,204,206,194, -165,184,62,47,63,23,36,11,198,120,240,14,238,105,16,72,161,189,40,8,149, -14,98,8,240,163,133,11,2,234,214,163,97,15,251,49,194,248,104,223,201,206, -195,188,79,176,44,209,188,157,209,144,131,125,159,224,168,65,251,22,19, -84,184,27,76,175,232,52,53,12,19,88,8,200,83,131,211,85,67,144,135,189, -27,88,39,160,110,26,109,175,17,238,35,140,79,130,4,74,65,157,99,209,48, -9,129,238,166,151,57,53,73,1,112,128,251,152,48,61,60,208,52,104,111,13, -58,77,152,238,97,113,156,243,54,0,109,19,183,18,130,135,123,90,152,1,80, -215,22,90,7,152,63,29,130,212,104,36,129,141,133,125,26,56,39,160,127,116, -169,155,23,16,204,128,208,49,97,182,137,124,149,228,22,221,199,136,233, -17,128,70,67,221,90,116,202,97,188,251,228,97,204,240,134,193,74,65,183, -2,228,227,245,115,94,163,189,105,40,193,176,127,69,143,232,166,63,67,95, -57,254,220,70,132,1,196,240,207,9,227,203,131,218,22,167,223,27,80,154, -75,8,21,209,7,162,54,94,31,185,126,190,121,77,15,222,97,250,211,194,35, -222,159,86,0,238,49,96,26,3,216,49,88,49,252,195,96,188,59,80,219,66,205, -215,239,35,185,61,137,178,141,168,232,107,128,82,80,103,2,251,17,211,68, -49,161,119,169,186,76,28,142,124,218,228,131,79,238,101,137,212,105,30, -152,158,119,120,104,104,153,120,20,201,189,142,36,65,42,66,24,223,49,25, -15,106,47,56,253,184,1,126,128,121,60,224,85,143,166,109,161,68,0,78,14, -222,191,32,79,111,104,79,45,164,64,114,164,35,176,127,96,120,12,8,162,69, -115,254,29,189,74,208,59,4,136,2,252,235,79,188,30,19,160,206,104,155,30, -77,59,193,124,188,0,213,69,84,229,245,142,113,114,160,230,130,246,118,1, -252,11,230,49,172,16,184,127,96,120,60,1,121,65,247,118,91,58,122,33,100, -186,87,140,224,38,12,195,4,47,27,244,231,22,90,210,231,222,30,95,175,7, -236,51,237,56,219,202,166,154,39,151,73,88,115,54,247,221,64,251,40,27, -149,5,47,231,66,82,148,169,162,70,29,229,185,77,24,45,73,148,117,159,184, -161,11,109,198,248,92,153,113,85,255,189,36,23,94,70,51,84,73,215,86,20, -166,140,47,147,19,45,56,51,20,42,73,127,181,216,51,125,10,107,151,123,217, -229,40,178,114,131,248,10,94,7,190,150,150,5,142,213,248,14,239,81,222, -33,211,170,245,178,51,140,229,170,16,171,223,159,119,37,177,102,104,126, -229,72,204,178,188,213,164,231,115,191,169,226,222,209,214,206,135,182, -69,215,231,66,159,165,214,166,146,82,29,235,45,145,128,148,136,201,119, -195,240,143,135,69,200,104,93,8,138,72,180,11,17,15,85,114,94,77,200,96, -250,234,29,4,33,194,149,148,185,82,229,252,65,1,8,200,213,236,164,144,164, -141,63,151,36,151,228,191,192,40,204,240,47,11,99,5,196,165,133,110,68, -113,93,73,74,72,41,32,40,206,170,3,11,200,78,67,73,15,247,49,193,90,130, -122,107,160,91,70,120,49,130,144,80,167,6,186,1,194,96,97,44,161,185,245, -104,250,108,30,154,118,115,253,221,194,75,133,230,214,161,233,4,48,77,24, -57,18,239,84,51,19,159,124,156,95,159,52,154,139,94,24,232,196,30,238,101, -97,7,134,232,79,232,110,26,74,6,216,59,131,164,130,106,20,96,198,104,241, -218,8,16,123,216,199,4,103,16,191,103,71,240,31,6,246,229,224,69,28,1,64, -42,52,103,141,246,166,160,180,136,104,131,117,176,46,205,149,47,58,89,183, -70,88,56,12,19,204,200,16,125,139,238,173,137,239,255,17,32,148,140,176, -187,53,240,134,33,181,130,144,1,230,195,192,121,9,253,214,66,73,7,243,97, -225,44,32,175,13,164,142,157,58,24,128,150,16,18,113,230,63,4,136,115,135, -238,162,33,100,117,180,2,129,109,156,239,203,115,44,144,102,193,21,54,30, -230,195,198,162,237,135,134,146,2,236,109,124,208,164,140,227,139,215,4, -51,48,100,127,194,233,71,3,33,2,252,29,32,45,161,78,153,29,234,14,131,152, -18,112,13,235,224,237,124,125,228,98,72,68,25,172,137,132,42,73,146,169, -123,15,96,247,130,25,7,176,60,163,109,20,130,31,33,244,9,141,34,132,224, -161,180,2,249,1,147,21,80,231,31,104,91,21,59,229,41,66,240,237,229,2,37, -1,182,6,126,114,32,125,69,123,233,161,196,28,136,60,252,56,163,3,23,116, -253,25,90,100,143,52,59,184,215,29,227,224,32,79,63,209,245,103,72,17,11, -60,200,88,220,133,241,79,24,227,65,237,21,109,219,130,194,4,103,45,184, -57,161,61,159,32,48,70,82,158,35,232,83,19,175,43,137,149,220,147,88,188, -66,157,112,251,173,193,85,72,40,41,254,51,170,180,123,81,127,182,137,46, -36,60,75,11,104,226,42,248,237,36,129,185,19,90,92,190,150,128,154,203, -65,151,212,123,250,68,208,102,191,5,221,209,72,220,204,204,247,28,146,114, -24,130,11,82,111,77,71,160,162,255,46,191,115,13,127,51,237,141,24,178, -117,187,156,175,64,192,190,222,124,245,237,42,5,203,124,137,105,37,3,175, -197,71,206,202,60,242,255,194,23,221,238,167,155,53,155,213,103,206,56, -2,188,240,23,246,28,56,248,87,132,26,136,42,83,176,236,253,56,147,61,231, -29,65,164,205,218,205,206,6,6,21,148,202,130,188,120,156,214,247,184,62, -85,145,249,247,215,127,241,225,120,227,23,86,229,152,34,84,90,192,149,187, -107,24,249,67,183,66,76,156,13,108,40,23,14,216,113,176,218,20,215,57,84, -21,2,252,96,48,61,45,88,183,56,93,53,164,138,228,133,96,93,234,118,93,156, -87,115,116,96,150,231,22,167,155,2,57,135,241,110,193,74,161,57,43,144, -247,112,83,0,181,26,205,73,2,206,193,60,45,130,210,104,207,26,170,201,8, -120,28,224,159,211,146,188,154,83,236,110,205,221,192,177,68,123,109,160, -52,33,76,6,211,221,34,8,141,246,170,160,27,185,222,148,201,97,124,90,48, -105,52,87,13,165,103,50,222,106,36,225,62,38,24,39,161,123,1,216,0,239, -8,234,162,160,20,197,153,254,16,64,221,76,38,156,217,231,169,243,99,142, -115,237,187,133,23,26,237,173,129,106,196,58,55,30,45,198,167,69,16,10, -237,85,71,248,157,227,42,224,124,40,221,99,132,121,50,168,145,16,28,16, -88,64,221,26,40,21,59,255,241,35,250,91,207,235,113,4,0,141,70,115,109, -32,67,44,94,232,212,160,57,39,168,28,37,34,195,163,77,215,71,197,89,126, -147,206,130,177,241,90,6,9,253,214,160,105,37,224,67,132,243,7,134,60,199, -98,196,189,34,28,31,175,159,136,247,216,167,207,47,233,208,130,103,217, -40,27,227,232,38,8,29,199,21,250,59,38,48,1,193,142,176,211,0,31,20,164, -2,130,179,96,138,159,41,56,139,64,26,130,61,152,37,212,233,2,165,37,224, -94,48,175,1,14,10,250,124,65,163,36,216,70,216,62,136,22,205,233,2,173, -68,186,54,14,126,124,192,26,11,168,30,205,233,28,121,1,139,75,160,135,27, -239,48,147,1,244,21,109,215,66,144,129,125,61,225,28,65,182,77,68,10,158, -3,60,35,110,76,16,65,200,22,234,116,69,211,52,177,216,178,19,204,240,23, -166,209,197,207,218,93,209,246,61,148,146,199,28,157,111,89,77,254,122, -178,175,246,86,178,132,153,139,242,148,157,23,31,109,255,108,132,197,105, -119,196,194,223,226,35,237,147,234,182,150,196,216,5,131,215,241,66,217, -210,175,154,243,107,199,190,130,6,153,84,245,158,233,234,87,46,154,27,251, -163,189,37,209,157,222,125,199,139,98,207,219,128,171,149,174,185,110,97, -124,34,85,253,89,247,253,21,81,243,75,7,202,218,176,246,120,1,238,243,99, -72,139,178,28,115,133,4,101,219,29,76,84,34,208,21,7,161,118,216,44,193, -155,44,15,50,23,182,199,95,125,199,61,70,98,78,163,84,123,106,169,255,202, -186,11,123,70,8,161,36,214,237,170,159,100,171,11,89,53,185,236,128,51, -109,197,222,246,214,32,54,79,116,186,109,198,193,188,44,88,40,180,231,152, -220,1,70,120,78,24,31,14,208,26,237,207,22,146,29,204,51,205,182,47,26, -34,56,152,167,129,155,28,48,121,12,163,139,51,215,75,11,213,74,144,179, -152,6,135,0,9,221,41,40,93,174,229,248,193,194,14,1,212,180,208,157,130, -96,11,243,180,112,94,64,93,52,100,35,0,103,35,163,159,101,76,112,77,38, -219,107,60,236,211,130,33,161,207,42,6,246,121,47,87,165,32,49,88,56,195, -0,123,240,196,96,41,161,175,177,208,8,131,133,29,61,168,109,160,123,181, -172,67,21,183,213,197,2,199,177,128,190,196,239,176,4,11,227,96,94,233, -251,157,27,72,69,177,179,39,1,22,9,254,156,28,220,20,34,167,192,50,160, -27,168,139,70,211,48,220,195,192,14,128,250,113,70,115,146,177,184,152, -161,69,9,192,56,140,119,7,86,13,154,78,173,27,12,121,199,228,226,53,112, -44,208,244,26,58,93,99,132,200,81,176,134,160,110,26,186,17,160,144,54, -16,94,1,162,213,208,42,68,228,2,18,186,111,160,84,182,197,160,142,5,124, -144,3,171,46,113,21,88,66,245,13,132,166,2,246,58,18,157,9,102,128,153, -34,100,174,20,16,220,4,150,45,36,5,4,235,0,169,33,188,131,15,128,60,157, -99,49,54,221,49,189,158,240,104,209,94,46,104,180,6,219,7,166,33,254,187, -166,59,167,228,78,0,60,194,244,192,52,140,32,125,69,115,62,65,82,254,108, -121,248,241,1,51,121,136,230,138,230,116,2,133,17,246,245,130,11,26,170, -83,128,123,193,25,130,190,254,13,125,163,51,253,108,1,33,212,66,9,99,221, -161,17,127,64,170,123,228,7,32,235,116,19,225,50,214,75,50,113,25,126,129, -88,247,45,19,145,92,208,138,51,168,53,223,241,159,29,212,104,167,105,192, -54,214,20,122,250,181,117,87,25,240,247,192,198,221,93,104,96,147,46,246, -23,40,247,155,127,194,30,63,32,3,251,243,133,119,162,205,107,44,186,25, -92,65,236,84,22,172,219,120,57,163,179,91,127,112,218,235,178,119,121,18, -92,109,29,148,9,127,195,2,255,106,195,130,127,97,238,254,25,233,110,215, -46,145,54,123,14,181,15,197,167,199,54,19,28,43,26,113,206,20,19,170,117, -192,173,108,44,21,107,116,51,119,98,41,220,184,54,234,162,133,186,86,223, -187,220,5,181,214,139,169,145,9,2,101,44,250,95,213,142,230,109,221,32, -165,66,177,78,90,72,60,230,214,111,188,117,240,161,242,161,59,222,237,172, -36,110,23,214,67,100,24,219,151,129,15,145,201,45,155,244,35,107,99,226, -8,18,77,35,32,56,118,214,214,8,52,63,53,164,240,176,31,22,158,20,186,223, -79,16,34,226,175,66,10,8,77,16,193,195,13,6,214,2,178,147,144,196,8,54, -128,5,65,74,32,216,8,173,179,108,160,79,18,130,226,156,223,24,134,186,104, -232,78,64,32,192,153,72,28,67,19,175,83,112,30,164,4,16,24,126,180,176, -94,64,95,99,2,171,203,94,74,54,187,81,56,72,128,85,74,196,50,177,218,95, -6,65,54,104,78,58,6,255,205,154,69,64,48,30,214,196,247,23,137,233,47,148, -0,130,91,223,255,18,19,171,64,110,110,67,96,246,49,184,15,30,62,0,234,124, -138,93,178,162,184,141,48,5,4,2,180,200,2,190,72,187,245,105,44,192,46, -128,101,220,22,16,0,152,4,72,166,223,15,12,111,28,236,228,65,173,138,96, -185,67,44,110,66,128,55,73,80,40,48,194,152,238,135,3,228,185,133,62,17, -194,107,140,163,130,84,184,236,238,213,3,155,205,248,124,180,227,141,131, -155,24,220,17,4,24,108,67,188,63,180,149,155,89,88,247,126,132,125,61,17, -84,7,37,1,63,142,128,62,65,75,134,27,44,160,91,40,225,97,38,131,160,122, -40,182,176,143,15,140,195,19,44,47,56,93,174,208,90,1,193,194,79,207,184, -206,217,53,113,124,196,28,229,35,130,131,179,19,60,139,56,235,246,14,65, -136,200,104,135,135,159,62,48,142,14,162,187,64,119,29,4,91,216,215,7,140, -215,104,206,29,36,77,48,131,129,23,231,216,137,207,132,40,82,105,45,211, -197,77,141,25,228,11,6,206,58,144,238,161,187,115,28,183,49,195,185,1,247, -127,254,133,167,145,56,255,246,3,215,115,187,6,144,239,250,11,28,5,148, -133,208,196,155,102,155,119,88,90,245,218,85,62,54,207,45,166,87,81,23, -42,117,245,151,125,98,218,55,142,202,96,107,58,208,89,230,79,96,139,237, -111,82,165,239,85,15,221,43,121,221,153,244,54,179,212,107,182,55,74,197, -180,141,198,87,54,35,47,18,247,198,29,110,107,206,243,105,187,77,229,158, -126,174,199,147,119,200,196,59,184,192,87,30,232,95,121,195,127,214,128, -102,208,75,97,228,66,84,66,215,153,112,17,125,51,217,45,92,135,172,148, -43,92,75,103,149,187,4,185,111,53,34,118,84,155,138,21,3,108,228,15,168, -214,77,160,163,21,198,26,158,207,201,165,41,193,115,117,239,190,157,220, -211,239,122,231,0,38,72,37,143,77,52,43,15,98,174,118,65,22,205,93,100, -243,50,28,41,246,240,22,154,39,32,152,52,187,61,69,129,21,49,195,42,62, -146,235,216,36,2,90,35,192,144,144,23,141,230,44,16,6,3,103,60,172,243, -112,163,73,108,93,66,243,118,194,233,77,33,56,7,59,56,184,33,38,98,67,4, -8,133,246,218,162,189,70,86,121,96,1,121,142,176,48,57,3,55,50,168,209, -104,78,49,136,50,82,55,230,25,254,105,48,188,44,84,154,115,11,239,96,12, -64,157,142,251,244,98,167,220,36,134,31,28,188,35,52,111,81,164,39,194, -224,1,110,50,177,235,60,55,177,235,165,189,231,104,86,222,139,176,246,48, -24,200,190,67,251,166,33,157,135,117,128,104,21,154,78,228,130,130,25,81, -135,17,76,64,240,20,137,119,63,154,216,24,83,92,47,20,90,128,6,11,243,215, -11,6,0,132,68,115,139,34,56,16,4,161,36,72,88,184,231,132,241,101,0,41, -161,111,13,218,171,206,30,196,36,208,243,28,49,188,4,84,223,38,98,163,128, -208,0,6,7,243,151,135,17,18,170,215,104,127,198,49,2,79,6,222,18,68,171, -226,125,255,178,25,224,157,209,216,124,106,227,70,193,124,127,154,91,11, -173,80,153,73,204,127,202,193,141,67,36,212,53,13,48,13,96,209,162,105, -36,252,248,2,171,19,218,254,12,26,223,1,182,240,227,59,44,110,144,66,64, -181,39,136,246,13,77,151,56,48,236,192,232,101,224,0,0,32,0,73,68,65,84, -17,66,64,176,6,198,77,176,250,130,182,191,161,105,226,125,22,4,144,27,97, -30,35,12,8,162,189,161,235,223,160,120,128,49,22,208,61,218,238,20,215, -42,199,39,172,39,168,238,130,166,213,128,179,32,98,132,233,142,209,60,48, -130,33,186,27,218,254,7,52,6,216,215,7,198,209,172,45,130,234,160,187,43, -186,174,131,72,92,26,80,128,29,94,120,62,159,176,221,79,40,213,110,129, -145,127,117,238,158,101,243,92,80,106,19,32,169,90,141,61,216,174,219,179, -1,43,133,225,104,167,191,195,150,20,119,80,149,108,135,59,25,197,137,120, -113,248,90,63,15,21,174,146,229,122,47,10,5,79,112,133,23,81,150,228,51, -239,239,163,249,115,206,242,34,194,70,26,151,170,85,178,210,61,243,232, -22,113,33,121,188,112,164,50,191,11,170,185,2,121,108,63,74,238,123,250, -219,95,37,118,222,169,11,171,213,48,46,8,106,165,133,55,209,87,52,125,222, -217,21,219,126,182,66,44,136,184,218,192,168,190,43,213,34,111,156,131, -75,107,17,81,29,86,206,53,253,55,151,168,156,182,23,42,132,185,154,222, -127,189,254,139,127,113,220,94,98,64,179,225,131,160,131,209,0,85,130,216, -217,164,160,88,87,41,155,243,218,240,170,188,193,180,3,69,205,146,156,34, -219,117,78,15,74,0,124,200,246,106,243,149,190,215,4,243,10,16,125,11,221, -198,132,233,95,6,211,131,33,46,39,116,87,5,73,33,170,169,85,129,102,222, -107,231,16,98,53,61,179,169,129,8,99,207,221,236,220,105,132,184,139,188, -92,129,89,202,149,211,206,54,17,32,176,57,40,156,16,4,115,247,160,115,139, -246,162,35,25,43,189,116,240,1,12,145,18,193,190,56,39,1,203,222,120,72, -223,67,72,90,87,112,226,166,90,22,2,178,144,144,62,72,112,81,85,142,228, -204,70,207,118,218,61,199,239,150,207,169,230,189,116,2,144,126,206,217, -190,110,252,121,166,208,227,83,151,62,255,142,72,239,131,136,206,132,220, -164,97,230,21,36,238,71,88,84,19,107,66,79,253,136,215,240,86,22,109,210, -245,89,98,239,242,30,199,138,94,28,2,64,241,123,112,28,110,131,40,234,43, -204,228,52,102,7,164,85,179,56,175,136,171,111,177,64,163,117,142,31,66, -246,230,42,251,121,220,119,71,166,50,23,247,229,227,214,69,252,238,98,153, -229,69,221,130,89,142,152,226,239,120,95,18,4,73,197,251,200,1,193,135, -76,122,51,186,72,203,68,144,72,42,16,128,29,241,120,255,19,239,19,163,187, -254,142,31,151,14,138,112,108,168,241,159,32,220,109,173,209,11,103,197, -60,8,150,113,39,15,238,7,18,137,57,87,104,39,248,109,4,239,118,202,229, -114,120,67,123,68,251,207,69,90,150,88,87,174,173,81,33,183,155,117,143, -123,201,163,154,56,108,204,37,115,183,178,140,223,180,254,207,175,117,117, -84,237,159,228,252,0,170,229,71,153,107,119,172,195,235,128,163,239,245, -221,89,125,118,209,103,205,129,188,28,167,74,35,159,142,38,241,84,231,153, -140,148,88,58,189,111,239,53,202,132,95,158,71,236,232,18,228,27,8,53,183, -140,81,106,210,31,21,118,245,244,189,42,89,102,146,221,183,18,122,117,120, -150,53,53,18,49,217,29,117,249,213,64,134,120,39,255,231,68,128,202,216, -130,119,121,2,59,10,20,123,124,190,221,0,68,137,20,55,98,252,176,8,186, -69,247,166,35,244,110,44,204,211,129,69,220,121,86,186,188,153,53,186,118, -72,26,225,250,203,85,213,95,134,108,80,109,60,65,107,49,192,54,38,119,103, -163,88,79,115,209,144,180,74,116,150,0,201,246,240,126,118,43,11,79,247, -60,29,214,243,76,170,8,35,168,224,164,239,64,108,95,173,195,124,201,80, -46,83,243,222,12,173,184,252,169,88,160,3,25,81,136,84,16,45,76,219,237, -126,47,190,228,142,109,15,194,87,159,107,123,153,74,70,114,13,177,237,69, -107,218,208,161,120,43,125,200,121,231,64,171,12,237,30,1,43,15,254,197, -236,54,170,30,90,59,98,184,63,49,56,160,187,190,225,218,183,144,7,218,24, -135,132,160,35,194,249,94,18,161,76,35,188,38,173,29,36,140,29,14,93,134, -164,206,10,97,84,52,19,219,4,126,112,167,153,118,153,98,117,247,187,253, -138,92,57,62,98,199,122,163,92,47,43,59,205,138,1,194,180,37,112,85,172, -182,66,70,53,139,85,92,137,225,124,62,194,58,0,102,104,107,122,140,124, -84,66,91,25,222,79,23,14,142,103,26,223,39,114,242,94,144,231,157,103,183, -86,25,60,136,227,76,216,8,116,47,51,118,94,229,119,105,63,95,23,35,24,70, -193,234,95,139,206,108,21,110,225,80,112,225,76,186,52,37,188,63,194,200, -117,11,118,212,255,215,95,159,59,248,95,253,171,16,194,161,29,24,102,83, -85,151,191,59,171,1,21,21,81,22,100,138,149,184,106,206,67,121,183,193, -92,25,75,28,16,69,234,234,195,51,220,115,192,120,79,243,199,180,118,39, -218,6,186,215,208,237,74,4,59,202,223,116,88,125,174,65,122,53,120,200, -37,64,121,153,253,81,109,98,65,177,211,246,131,129,121,68,222,128,62,41, -232,94,65,106,81,60,76,91,147,146,253,93,201,101,79,184,38,181,213,102, -11,53,83,167,80,190,42,89,160,191,84,97,227,139,223,223,4,81,250,230,92, -119,235,30,55,139,232,184,199,4,243,244,81,68,167,254,24,146,160,78,45, -244,37,141,84,104,31,57,252,30,223,148,62,197,17,169,144,67,225,170,243, -219,7,124,235,127,218,174,135,149,163,47,250,44,248,205,164,167,74,68,126, -89,249,161,253,130,27,240,112,102,192,227,241,196,96,8,77,119,70,127,233, -208,104,153,180,182,255,141,142,125,83,183,208,210,165,20,58,247,153,148, -108,30,15,234,228,204,92,23,153,180,22,51,53,36,79,155,48,143,194,222,19, -223,45,90,246,220,5,120,45,38,190,186,56,27,182,119,174,140,86,237,231, -239,144,160,249,136,24,157,131,140,53,95,105,167,227,218,52,221,159,21, -179,84,89,154,114,77,110,228,45,236,202,159,52,125,223,101,204,255,2,160, -188,104,246,87,116,179,138,13,112,72,70,47,242,72,97,48,150,33,67,135,93, -57,29,34,17,196,91,228,131,137,118,197,178,151,252,72,95,69,157,173,6,225, -198,120,243,203,14,126,39,218,69,37,80,15,102,134,18,234,120,22,148,149, -144,69,215,138,76,187,152,112,220,133,213,189,51,239,68,51,222,169,37,118, -97,179,186,228,199,226,136,86,124,118,17,161,222,52,56,47,73,57,213,124, -137,247,152,187,117,5,183,69,14,63,215,208,72,210,184,243,103,99,138,235, -110,179,24,204,182,114,61,46,66,190,186,145,148,9,64,112,118,104,169,10, -0,56,130,177,240,141,14,253,59,130,20,155,239,243,213,222,213,113,0,157, -3,101,240,92,9,139,84,191,63,27,15,209,62,236,118,252,9,142,211,63,109, -108,40,107,209,73,170,190,193,247,203,8,252,242,159,220,65,23,18,39,101, -233,28,43,164,171,36,129,37,81,37,23,199,63,82,69,137,224,127,11,133,63, -176,203,43,5,231,138,197,245,221,72,176,169,9,107,173,247,124,52,147,23, -142,59,187,209,251,12,229,227,174,29,149,159,121,33,87,74,188,209,97,223, -204,100,177,19,8,138,201,49,173,66,95,88,61,234,115,1,176,61,20,99,238, -232,170,89,198,231,35,5,254,12,238,45,203,23,70,9,215,21,43,124,121,139, -81,159,145,207,24,243,95,29,249,207,8,121,95,83,227,118,88,242,188,181, -125,62,32,251,213,13,99,13,213,239,198,149,221,78,123,91,8,21,46,160,59, -23,130,246,206,227,55,38,27,69,38,157,223,239,95,237,224,67,136,10,119, -44,14,230,66,213,160,137,50,242,8,87,93,97,109,79,75,245,3,86,117,127,11, -132,183,67,150,162,186,11,253,118,59,145,67,132,229,211,153,203,78,111, -154,221,189,215,41,56,7,84,53,246,107,20,218,255,204,223,51,65,46,36,53, -177,111,178,178,223,52,151,131,205,37,201,231,196,140,202,92,6,59,208,60, -209,47,60,136,191,212,237,213,16,219,177,124,213,247,26,128,99,108,176, -46,2,203,137,45,125,189,106,123,52,203,255,70,143,255,45,154,15,149,114, -159,27,86,54,237,160,42,5,46,187,38,140,2,109,219,36,179,117,143,23,71, -69,235,255,31,127,109,70,14,92,176,186,203,241,27,103,201,46,123,134,14, -156,237,86,93,249,237,253,33,222,235,52,203,23,90,74,138,131,27,87,227, -100,95,214,182,123,182,144,188,7,13,103,134,86,25,100,187,232,203,31,146, -5,42,145,220,90,166,117,62,7,121,180,248,212,93,108,103,13,139,86,151,194, -21,25,172,142,221,119,58,247,175,226,3,127,55,126,148,49,161,46,98,120, -239,94,45,90,242,116,112,30,185,24,165,162,30,131,213,6,92,84,117,219,123, -198,75,179,132,47,85,58,128,76,69,179,88,231,134,207,56,32,123,115,247, -122,231,31,0,4,255,66,220,157,209,8,231,92,34,214,237,18,86,75,57,223,108, -238,128,140,25,207,181,20,125,190,53,50,195,117,57,217,102,243,255,235, -158,102,166,116,19,202,221,212,114,107,117,91,68,110,161,16,102,84,110, -77,105,107,159,235,102,147,246,97,44,80,169,132,53,143,20,82,32,173,59, -127,174,159,138,3,125,102,226,50,185,175,93,9,237,234,50,81,158,40,62,29, -181,208,2,215,130,86,87,170,98,139,131,118,172,66,107,41,231,95,233,220, -248,43,148,97,127,251,156,62,233,222,247,142,255,190,167,36,23,97,160,132, -184,234,20,191,237,12,176,51,177,47,63,31,178,191,121,199,144,243,200,5, -179,210,20,207,18,13,229,118,159,56,88,44,161,157,109,149,172,40,46,116, -175,185,20,238,152,3,100,110,12,114,120,95,249,63,148,224,51,54,113,93, -94,205,1,118,49,70,75,123,239,53,113,142,234,37,252,124,193,38,253,195, -255,245,127,254,223,248,63,254,183,255,29,215,230,138,139,238,139,29,99, -206,198,88,216,67,0,171,134,133,0,244,186,199,89,247,203,217,225,170,49, -224,163,251,179,119,0,42,4,125,117,140,43,159,179,34,185,231,90,243,181, -158,125,177,198,197,75,97,180,174,193,173,118,193,252,197,173,44,215,232, -226,102,81,174,26,8,174,10,99,46,77,241,118,201,114,95,117,232,188,143, -242,148,255,254,43,23,154,181,233,217,12,44,121,71,136,173,254,172,76,11, -226,204,187,201,63,233,181,100,133,85,33,107,144,131,29,84,102,158,92,169, -53,95,245,94,87,87,215,49,46,127,146,220,75,204,144,81,239,249,196,156, -195,16,223,38,216,101,23,92,72,9,33,229,174,141,222,54,49,230,59,153,249, -58,192,255,215,218,151,71,91,82,87,231,126,187,170,78,157,241,158,123,187, -5,186,155,110,26,163,207,149,136,224,11,13,146,176,222,66,88,47,43,17,101, -16,208,24,141,60,76,162,8,6,3,130,18,73,212,16,67,38,194,76,192,72,34,17, -77,98,48,68,77,242,100,185,178,36,131,130,2,33,9,42,51,40,105,160,161,231, -59,156,169,230,223,126,127,84,157,170,223,84,231,92,120,185,107,221,213, -125,239,185,167,78,13,191,97,239,111,127,251,251,216,44,89,88,221,124,204, -112,149,101,76,77,115,54,5,116,88,10,146,99,56,73,143,157,244,117,198,178, -91,177,82,175,38,229,85,19,174,171,148,181,138,205,156,181,218,31,193,48, -39,52,157,135,200,210,219,85,108,21,229,220,100,201,31,195,26,167,90,218, -140,180,59,194,234,121,151,203,20,203,123,5,91,235,83,235,192,137,102,195, -113,51,50,250,48,12,113,245,85,87,99,199,235,143,197,166,222,38,28,251, -250,29,184,250,170,171,17,134,97,185,125,50,128,135,30,252,55,156,127,222, -249,120,221,182,215,97,115,127,51,142,59,106,7,126,239,183,127,15,97,16, -148,199,250,242,151,238,196,241,71,31,143,195,122,135,226,248,163,143,195, -93,119,222,165,124,150,252,250,113,71,31,135,191,189,243,174,242,46,46, -53,151,176,212,220,80,252,43,127,47,106,219,125,117,81,15,61,248,16,62, -112,222,249,120,237,182,215,226,176,254,97,56,246,168,99,241,187,198,57, -125,25,199,29,189,3,135,246,14,193,142,163,119,224,111,238,252,155,242, -150,44,54,251,232,55,251,88,108,46,98,209,95,148,236,96,243,69,167,223, -236,99,209,239,163,223,92,204,255,214,207,255,190,26,12,172,146,37,36,107, -230,233,175,251,254,2,250,197,231,244,155,11,216,190,105,59,222,117,206, -187,240,220,179,207,25,212,153,218,121,168,61,187,5,127,193,250,109,157, -82,70,6,0,171,71,167,114,9,122,180,105,41,119,202,255,235,249,61,244,26, -189,114,254,125,244,146,203,240,95,207,254,23,30,124,248,223,48,138,71, -74,208,14,107,160,165,85,99,137,80,195,238,81,125,196,185,230,22,217,90, -124,165,136,128,203,41,201,170,21,184,44,57,43,135,155,164,225,184,18,154, -49,157,178,196,106,200,201,242,240,64,101,3,76,243,240,113,154,234,172, -171,140,121,150,243,1,204,80,66,181,37,2,235,233,48,152,153,20,176,228, -52,170,162,31,186,175,159,109,145,98,43,249,83,141,34,88,242,137,159,58, -200,49,201,101,76,217,212,71,171,30,147,154,40,202,174,123,36,203,22,151, -65,22,73,110,124,168,184,49,214,56,132,148,192,170,110,229,231,34,241,115, -214,23,105,79,97,249,12,89,150,153,94,203,164,133,162,83,232,194,32,216, -169,217,34,177,58,103,101,82,13,213,207,16,179,199,16,250,64,35,3,34,83, -20,203,108,33,180,12,145,83,69,114,97,27,194,75,154,251,79,181,2,73,8,79, -30,204,144,34,197,107,170,168,65,118,47,85,196,56,84,14,0,89,248,185,168, -129,144,235,11,55,92,94,95,197,226,172,28,170,20,215,114,182,36,10,122, -91,20,207,201,236,214,43,49,89,252,34,8,38,56,235,45,103,225,201,39,158, -196,151,190,242,215,120,97,121,23,254,234,43,95,194,19,143,63,129,179,222, -242,118,4,210,70,249,59,159,252,29,156,113,214,25,120,232,145,135,240,212, -11,79,225,212,211,78,197,181,127,112,45,62,118,241,199,0,0,247,125,251, -62,92,248,203,23,226,205,167,188,25,79,63,255,52,78,58,249,36,124,240,125, -31,196,3,223,125,16,4,224,222,111,223,135,11,202,215,159,194,73,39,159, -132,243,223,119,62,238,255,238,3,96,0,171,209,170,242,125,231,87,191,12, -0,56,98,251,17,90,136,86,13,138,79,127,242,211,56,253,172,51,240,239,143, -252,59,158,126,225,25,156,122,218,169,184,230,15,174,193,71,47,254,40,24, -192,119,190,125,31,62,248,203,31,196,201,167,156,140,167,159,127,26,111, -62,249,205,56,255,125,231,227,193,239,62,0,128,176,22,173,97,45,26,192, -136,10,181,175,65,52,192,90,52,192,160,248,46,3,93,50,3,110,2,180,148,188, -56,70,60,192,74,176,130,223,251,163,223,199,55,238,254,6,46,120,255,5,234, -144,123,5,182,175,195,120,168,124,43,207,92,111,35,210,92,198,202,5,211, -166,203,46,67,162,108,211,54,32,51,109,150,50,203,93,47,236,2,0,28,245, -134,163,138,77,141,148,30,109,158,177,232,201,121,28,131,180,174,104,146, -94,99,83,121,140,180,13,132,245,32,91,187,15,18,2,195,54,201,122,19,150, -44,231,52,201,190,172,176,148,252,184,174,32,89,63,93,203,88,81,210,40, -145,45,188,229,5,66,41,154,214,172,153,150,29,120,126,182,174,128,112,164, -98,104,172,90,172,18,235,99,159,52,208,196,210,56,169,187,195,200,126,245, -82,159,127,233,65,204,170,128,146,236,44,168,92,35,107,7,153,234,18,144, -218,27,46,119,28,88,171,220,154,96,16,43,136,243,244,26,201,146,219,23, -201,248,92,88,85,190,15,228,192,245,92,192,70,248,146,49,252,50,187,150, -218,50,160,145,14,203,4,156,13,27,71,147,77,205,26,164,174,175,65,172,26, -30,88,215,40,214,178,111,121,127,86,87,182,234,103,21,14,103,229,1,146, -29,86,167,42,171,150,161,254,18,174,101,82,219,216,216,250,52,37,44,156, -76,168,222,184,122,13,13,171,219,229,229,168,94,47,49,80,165,171,92,250, -79,203,147,152,53,32,192,214,214,66,168,211,138,152,147,185,231,127,112, -253,213,215,99,203,214,45,248,163,27,175,193,205,215,221,140,55,254,143, -99,112,202,9,39,227,251,15,127,31,155,15,223,140,235,175,190,174,252,168, -255,251,205,175,227,204,115,206,196,226,134,37,44,46,46,226,55,175,252, -77,0,192,221,255,112,55,0,224,150,27,110,1,0,252,234,197,23,97,105,227, -6,92,116,241,69,0,128,155,175,187,9,44,189,126,209,197,23,97,195,198,141, -248,213,139,127,181,124,157,138,254,246,44,205,166,246,10,184,225,154,235, -1,0,151,255,198,175,155,70,31,197,53,220,253,205,187,113,214,57,111,199, -210,134,13,88,90,92,196,39,174,252,68,121,78,4,224,230,27,110,46,207,105, -227,198,141,229,57,221,112,221,141,168,204,39,116,65,12,179,36,193,154, -181,178,140,190,64,179,126,206,157,199,212,113,57,133,191,61,215,195,59, -223,245,14,0,192,195,255,249,48,158,122,242,41,244,253,5,108,61,100,43, -134,131,124,131,254,209,15,127,132,5,127,1,59,142,222,241,138,97,122,35, -187,111,44,148,203,211,173,55,223,130,158,191,128,133,230,2,94,115,196, -107,240,107,23,126,24,163,225,168,148,239,236,249,61,44,20,25,121,207,239, -97,169,179,132,19,223,116,34,30,40,2,49,67,29,76,91,194,186,141,94,149, -217,55,186,232,54,122,96,6,186,126,183,248,185,250,119,250,117,203,77,183, -228,191,247,123,248,177,109,175,193,135,47,252,48,134,195,161,10,113,3, -232,54,58,232,54,186,88,108,247,113,226,241,39,226,193,239,60,80,38,54, -108,11,108,32,75,148,86,206,110,202,148,159,246,60,203,157,3,117,185,14, -75,139,188,70,52,102,174,220,206,170,36,134,235,99,54,210,123,63,170,205, -131,202,146,163,161,227,168,106,229,207,210,69,168,155,251,179,2,73,227, -53,46,203,157,68,242,26,198,18,42,97,178,100,172,107,127,173,60,46,155, -224,169,172,29,32,151,132,44,117,55,50,206,23,70,187,3,131,45,157,13,90, -169,102,6,169,144,141,70,97,46,75,131,172,93,152,51,47,107,159,126,101, -89,6,33,50,105,19,174,97,182,104,215,63,93,112,100,67,123,42,23,27,150, -8,115,82,253,70,27,70,106,122,78,170,189,167,20,147,233,17,52,27,213,84, -214,22,5,42,122,75,101,172,37,67,150,38,200,210,4,156,198,200,50,161,168, -226,154,215,75,150,13,173,202,66,74,142,54,107,253,18,132,66,100,36,129, -162,15,131,220,156,36,151,164,213,123,160,245,160,66,228,231,41,132,154, -192,17,106,120,214,82,192,196,80,219,113,88,218,178,136,44,136,133,141, -13,60,103,98,206,156,196,106,137,132,179,12,119,125,233,46,92,254,27,151, -227,67,191,124,33,14,219,116,24,238,255,222,253,216,55,218,135,135,159, -252,30,62,254,169,43,112,215,95,223,85,11,6,252,231,67,255,9,0,56,228,208, -67,0,16,30,253,193,163,0,128,109,219,183,130,192,216,186,125,27,0,148,191, -159,254,187,117,251,54,48,128,109,69,102,254,232,15,30,65,150,6,24,172, -172,98,48,202,109,132,191,115,239,119,241,224,253,15,226,181,175,253,49, -188,245,204,51,17,51,67,40,213,87,54,178,70,0,248,143,135,254,3,0,240,170, -67,95,165,124,230,17,71,230,231,178,237,72,245,156,42,57,76,253,137,169, -253,235,91,150,54,99,243,226,38,252,212,79,158,128,155,111,248,99,164,89, -170,105,126,179,181,238,165,117,206,35,19,2,95,251,219,175,1,0,118,28,183, -3,63,254,19,63,142,83,223,118,42,6,131,1,238,184,253,14,0,192,93,95,206, -239,249,233,103,158,62,255,185,207,249,122,239,121,239,197,174,253,187, -48,140,71,229,246,176,127,223,126,220,251,192,125,216,55,216,143,43,127, -231,183,113,199,237,119,224,183,62,113,165,145,91,191,231,220,247,96,215, -190,93,184,237,246,219,240,200,247,31,193,69,23,92,36,141,71,174,29,120, -227,100,84,254,52,74,198,24,37,99,101,120,159,123,222,185,120,233,192,75, -24,39,227,242,119,251,247,239,199,125,15,222,135,3,131,3,184,242,170,43, -241,249,219,63,143,43,63,241,91,198,208,255,197,115,127,17,47,237,127,17, -127,246,249,63,195,15,190,255,3,124,232,130,15,201,0,160,189,134,197,114, -7,131,38,111,74,18,239,155,102,112,224,72,6,108,43,78,201,212,38,151,36, -14,16,179,89,206,172,54,137,58,232,79,222,190,171,82,73,133,204,154,93, -33,96,61,131,158,145,161,215,193,5,179,72,1,108,7,2,171,128,134,172,117, -248,121,131,149,52,142,82,85,237,34,51,224,214,79,196,146,184,176,74,42, -49,238,123,197,117,209,213,74,88,11,178,102,215,201,21,142,1,73,88,151, -130,128,209,58,88,244,185,38,12,152,89,82,136,35,211,64,134,212,44,190, -106,47,80,39,97,69,0,144,100,245,12,205,26,233,226,121,218,222,83,181,143, -129,40,247,66,7,12,5,37,19,169,212,155,159,234,46,50,3,103,49,146,104,130, -56,8,114,145,25,114,225,181,23,209,238,116,224,58,150,76,89,235,121,183, -209,72,167,170,74,106,47,47,131,145,34,11,135,136,3,1,183,187,132,134,239, -193,65,138,52,28,32,28,132,64,107,1,237,94,55,231,59,40,211,177,240,187, -231,226,253,161,128,219,89,130,239,123,101,103,31,213,20,190,153,171,251, -71,174,3,71,191,247,58,173,141,52,68,117,22,173,124,94,159,123,205,164, -205,251,214,35,76,134,171,120,205,17,199,224,187,15,63,128,83,126,250,100, -60,252,163,199,112,200,134,62,166,122,106,113,28,97,235,134,109,216,55, -222,111,44,155,143,63,246,56,206,121,235,217,216,183,119,31,190,120,231, -23,113,198,217,103,96,211,194,38,196,113,140,229,112,5,14,1,66,48,54,182, -55,194,247,125,236,29,238,45,95,95,9,87,0,34,136,76,224,85,157,252,245, -39,158,125,12,236,119,209,239,181,209,112,8,63,255,246,119,226,158,127, -188,7,127,124,203,181,248,153,51,207,65,127,227,34,186,13,207,218,205,62, -61,183,199,30,123,28,103,189,245,237,216,183,119,31,254,226,206,191,192, -153,103,159,137,67,23,14,69,28,199,88,13,87,65,68,16,66,96,67,123,3,124, -223,199,254,209,129,114,78,45,22,117,254,18,174,39,24,66,27,59,159,123, -14,31,191,244,215,241,141,187,191,129,75,62,122,9,174,250,253,171,12,116, -165,106,77,173,14,210,247,251,198,99,240,125,31,223,252,214,55,177,227, -184,29,184,247,91,247,226,109,63,251,54,108,221,182,21,143,62,253,40,78, -60,254,68,60,249,248,147,248,167,111,255,19,78,248,233,19,172,207,86,169, -183,107,144,189,252,250,51,207,61,131,205,91,54,107,173,113,178,82,98,134, -197,246,18,182,29,177,13,79,252,232,73,16,1,189,34,3,127,122,231,211,216, -114,248,225,72,146,4,27,187,27,64,68,24,70,67,107,143,234,244,61,163,100, -4,2,149,217,121,89,127,167,234,119,63,124,254,135,216,178,101,11,234,148, -120,178,44,67,191,213,199,182,35,182,225,169,103,159,46,51,119,0,120,102, -231,51,216,186,117,43,146,36,193,98,103,17,68,132,113,60,182,139,238,104, -68,56,82,220,225,244,82,32,43,238,118,54,7,196,169,182,189,194,251,33,139, -46,185,41,137,180,206,126,15,187,112,140,202,82,39,203,122,136,122,157, -249,217,188,184,217,167,80,83,234,179,214,159,13,46,249,140,86,8,197,33, -142,213,46,141,146,227,68,218,26,200,48,32,19,104,138,180,100,234,155,144, -70,0,92,71,183,98,185,215,18,145,145,193,171,222,133,246,231,236,204,43, -189,179,96,100,89,10,133,66,110,107,142,174,97,95,145,156,233,130,212,186, -252,212,53,199,16,179,97,229,41,231,209,99,140,52,88,69,48,88,67,156,164, -185,108,169,76,235,102,181,46,202,50,44,110,165,212,72,146,172,105,128, -120,188,140,201,112,0,65,45,180,23,55,161,183,225,16,116,187,29,248,13, -175,132,60,73,71,38,84,226,0,100,150,154,228,145,87,213,255,167,154,206, -156,34,11,198,136,67,1,167,217,45,54,119,1,145,133,72,130,220,170,180,209, -108,193,117,43,47,114,153,84,194,34,183,14,173,222,239,106,101,11,253,193, -8,176,72,144,77,86,17,12,215,16,199,105,30,243,147,90,113,96,137,207,96, -184,12,178,17,224,175,175,246,94,235,247,92,157,169,227,250,104,247,22, -177,121,243,38,236,217,179,15,199,157,240,38,220,118,211,45,24,172,172, -150,185,196,179,63,124,22,91,182,110,49,234,223,223,249,214,125,120,219, -41,111,197,190,189,251,112,205,77,215,226,140,179,207,0,0,28,122,216,161, -0,128,40,138,0,16,194,48,175,223,111,218,188,73,121,61,140,66,16,51,38, -163,213,18,1,240,218,125,108,232,119,208,112,9,143,62,242,8,238,249,199, -123,240,134,163,143,194,219,206,120,107,62,238,4,176,161,185,88,146,238, -114,226,93,117,161,247,126,235,94,156,122,202,91,176,111,239,62,92,123, -211,181,56,243,236,51,107,206,41,170,206,137,97,118,59,88,244,169,167,27, -227,171,143,60,18,55,125,230,38,0,192,157,127,117,167,148,238,87,144,139, -98,133,42,75,93,2,24,196,67,12,162,1,238,248,203,59,16,199,49,46,255,200, -229,0,128,147,78,62,9,199,238,56,22,47,238,122,17,159,254,212,167,241,228, -227,79,98,211,230,77,120,211,79,189,233,149,215,224,139,175,205,91,182, -40,83,230,161,127,123,8,103,156,122,58,94,189,249,72,244,253,62,22,219, -75,0,128,23,119,189,104,152,80,30,126,248,225,0,1,126,163,81,150,30,140, -177,56,151,19,66,85,191,248,20,13,217,172,142,169,135,30,124,8,167,191, -229,116,108,223,124,4,122,126,15,253,86,95,58,39,117,224,111,221,186,21, -0,163,161,157,19,89,212,209,204,115,99,101,133,208,33,97,214,201,240,80, -137,49,37,204,203,114,242,91,149,6,105,218,206,198,58,111,160,6,235,32, -117,205,38,35,176,152,174,223,108,53,169,177,144,158,212,154,52,89,200, -150,100,205,67,102,187,201,149,226,77,100,168,79,176,146,189,147,85,217, -205,38,4,85,37,64,84,182,40,150,36,59,73,99,190,170,201,147,36,237,172, -101,239,50,225,117,138,156,17,155,72,0,179,218,146,202,51,22,75,146,49, -21,158,161,83,202,70,76,52,159,100,71,200,55,26,207,177,147,38,116,149, -25,82,161,75,171,204,44,169,18,250,68,53,245,101,206,192,34,131,72,67,36, -193,8,113,148,128,221,70,158,77,179,200,191,179,92,103,91,136,20,89,38, -128,44,5,103,105,161,187,158,107,120,115,150,21,255,38,16,105,150,235,114, -51,131,56,69,26,141,16,141,199,72,69,3,126,119,35,154,157,46,188,70,3,78, -163,5,175,189,0,207,247,225,32,203,97,243,52,129,72,18,100,105,154,235, -119,115,145,21,103,41,56,203,114,184,61,77,139,207,155,150,32,184,250,236, -36,69,154,6,72,130,33,162,40,1,26,109,120,173,6,56,203,33,121,80,27,126, -255,16,244,54,190,42,55,9,1,131,33,192,66,64,136,252,115,211,36,204,223, -31,38,64,163,3,191,213,204,125,217,179,4,105,113,142,89,154,64,136,252, -250,69,150,32,75,34,36,193,0,81,156,130,92,31,158,75,64,154,229,2,238,44, -138,123,28,67,36,113,126,140,226,222,149,17,167,200,138,227,228,231,144, -137,20,66,111,227,160,250,48,145,133,200,157,218,146,20,105,146,85,229, -7,146,202,18,113,132,211,223,126,26,62,123,203,159,224,51,127,254,39,216, -245,220,11,120,211,49,39,96,83,111,19,118,252,196,14,252,225,85,127,136, -119,188,235,157,200,178,172,132,227,190,118,215,87,113,206,105,231,32,8, -2,220,246,249,219,240,190,247,191,15,105,42,32,0,28,253,198,163,1,0,59, -159,253,47,164,153,192,115,59,159,207,137,86,71,191,1,34,171,94,127,126, -231,78,36,225,8,79,61,241,12,0,224,232,255,249,70,44,244,154,112,139,133, -235,134,63,186,1,0,240,155,159,186,28,32,23,13,207,43,173,104,229,175,52, -205,175,235,43,119,125,5,103,159,118,54,130,32,192,237,127,113,59,62,112, -225,249,229,28,56,250,141,199,20,159,249,60,0,198,174,231,95,144,126,207, -165,46,185,190,191,19,179,78,152,6,19,74,20,43,152,4,102,137,128,160,134, -184,146,62,119,85,2,38,156,118,230,105,0,128,239,127,239,251,229,186,115, -201,101,151,0,0,110,188,238,70,0,192,105,167,159,86,109,0,255,29,61,241, -197,90,241,75,239,253,37,252,235,63,255,43,254,228,115,159,197,242,104, -25,123,150,247,72,27,37,207,119,175,38,173,148,161,247,137,27,36,181,34, -248,102,170,67,62,113,222,123,207,195,191,252,243,191,224,179,183,223,134, -149,241,10,246,173,236,45,207,201,38,152,196,118,127,80,123,148,43,147, -113,73,10,82,52,133,62,34,150,60,44,44,27,30,213,115,108,42,159,121,46, -45,129,235,77,108,229,253,134,161,54,189,169,250,247,114,210,165,116,217, -240,156,13,123,61,188,141,121,34,54,172,214,95,229,230,86,121,43,39,9,221, -88,79,229,208,236,106,144,244,32,36,188,156,167,27,180,252,92,100,9,98, -133,164,5,104,244,251,242,185,200,132,92,150,13,215,230,204,43,82,240,104, -117,32,176,193,197,82,111,178,35,63,96,61,41,203,178,12,34,205,105,70,66, -176,193,163,83,178,41,161,77,202,194,5,169,10,104,184,228,121,104,74,155, -37,41,68,141,250,4,178,112,132,112,117,55,70,251,95,194,104,176,134,56, -10,144,6,171,152,172,45,35,154,12,16,141,14,34,92,59,136,96,176,31,163, -253,123,17,172,30,192,100,184,15,195,3,251,17,4,97,110,163,57,88,70,56, -60,128,96,120,0,227,229,61,24,28,216,139,96,18,65,100,41,226,241,10,194, -113,0,118,219,133,115,87,163,128,195,81,158,59,167,19,68,163,85,76,86,246, -97,180,188,27,131,3,187,48,88,89,65,20,198,200,162,33,194,181,3,152,12, -150,17,12,246,99,188,178,7,131,125,187,49,30,143,145,22,155,127,154,140, -145,140,86,48,62,184,23,163,229,221,24,238,223,141,209,40,2,53,218,240, -60,70,54,89,198,120,249,37,12,14,28,68,24,37,32,199,131,227,22,25,57,103, -16,73,128,100,188,130,201,242,94,140,15,238,198,240,64,254,126,52,186,104, -181,26,64,22,32,26,175,96,92,190,62,61,191,8,105,184,134,112,109,31,134, -251,95,196,104,109,128,56,10,16,7,43,24,175,174,32,12,163,124,163,78,38, -136,71,203,152,44,239,195,240,224,30,140,150,247,35,12,34,8,76,149,204, -198,136,70,203,24,175,236,197,104,121,15,70,7,247,32,24,141,243,128,100, -38,244,3,64,164,136,227,9,134,171,203,216,183,127,47,118,239,222,131,61, -251,14,98,109,28,34,31,86,197,208,77,2,12,71,33,46,188,244,50,236,217,189, -27,151,255,218,165,184,236,227,151,226,209,103,190,135,123,190,245,13,28, -115,204,81,216,185,243,57,252,226,121,239,197,129,213,9,226,76,224,214, -27,111,197,251,207,125,63,90,237,22,190,240,151,127,138,255,117,210,137, -216,189,123,15,246,175,14,17,37,2,31,254,200,135,1,0,55,93,119,35,118,62, -251,44,110,190,54,223,168,223,253,190,255,131,181,32,193,69,31,249,53,0, -192,173,215,223,140,231,94,216,141,207,253,217,23,0,0,31,249,216,37,229, -164,216,249,236,78,252,221,87,254,14,199,159,112,60,126,230,127,159,132, -152,29,248,173,38,26,142,139,181,130,93,191,18,238,199,174,61,207,96,239, -158,253,184,238,154,27,241,43,231,254,10,218,237,54,190,122,247,215,240, -142,119,189,83,73,90,46,190,180,248,204,63,190,21,203,203,43,184,245,230, -91,1,84,27,170,46,42,161,56,221,105,44,228,253,123,246,227,227,31,253,120, -89,219,6,35,111,155,243,251,74,233,139,168,114,190,210,85,183,4,51,190, -254,247,95,207,3,159,55,28,85,78,191,179,222,113,22,182,31,185,189,252, -211,211,223,126,58,254,91,190,100,107,76,16,210,52,5,0,244,23,251,8,162, -16,191,253,201,43,53,210,23,207,44,231,130,73,99,72,219,125,222,140,165, -178,94,48,162,60,167,197,126,31,97,24,226,183,164,115,34,139,137,83,237, -102,43,11,72,232,189,250,83,98,47,169,11,61,73,61,87,108,67,38,228,182, -22,57,226,83,26,128,213,78,126,94,151,145,140,188,207,200,208,116,149,180, -149,138,163,5,27,188,214,13,204,86,170,163,154,0,128,215,25,24,208,140, -232,78,73,36,165,49,48,167,35,132,52,42,150,204,67,44,121,98,178,71,4,155, -60,1,102,59,153,142,88,210,69,32,82,136,112,144,73,113,54,185,110,43,128, -167,10,48,177,65,215,151,175,67,59,198,158,201,30,206,10,175,113,207,149, -188,175,153,32,202,122,47,67,8,145,103,242,100,62,37,81,188,223,117,221, -178,103,84,22,43,102,33,144,137,12,158,59,117,192,82,75,24,66,228,142,86, -174,231,230,157,123,229,249,71,72,38,107,136,130,20,78,107,17,126,225,147, -13,206,144,197,67,132,195,16,236,249,240,60,129,52,6,92,175,1,114,50,100, -194,71,179,237,131,227,53,68,33,195,109,116,224,119,125,112,52,70,20,9, -52,186,139,112,197,4,73,148,2,173,13,104,183,154,112,61,82,245,245,167, -168,65,230,192,109,117,208,112,29,112,60,70,20,132,64,107,17,173,6,33,11, -151,17,76,114,152,188,217,107,3,241,24,113,144,194,237,189,10,77,79,32, -139,70,72,50,7,110,179,131,134,231,64,196,99,196,147,16,104,46,192,247, -93,128,9,14,165,72,38,35,36,236,163,217,95,132,239,229,94,241,156,134,72, -131,33,162,204,129,215,236,22,239,31,229,159,223,236,163,237,187,200,226, -252,252,26,205,46,188,226,245,56,8,129,230,18,218,157,54,28,36,72,130,226, -254,181,151,224,55,189,60,235,99,128,56,65,26,14,17,167,4,167,217,67,163, -65,224,112,136,40,18,240,186,27,209,108,17,56,26,34,12,18,56,254,66,94, -70,152,150,42,156,234,57,83,77,207,59,167,17,198,163,53,12,35,192,111,47, -160,219,242,224,22,16,41,21,227,136,192,64,22,99,60,88,195,90,232,160,247, -170,37,120,34,197,141,87,95,135,191,249,210,151,241,210,139,187,177,121, -203,22,188,243,61,239,196,37,31,185,0,105,148,32,105,244,176,180,180,128, -195,123,135,212,46,89,187,199,7,225,115,132,47,126,238,14,220,112,195,103, -241,210,139,47,225,136,237,71,224,146,203,62,132,159,61,237,108,116,151, -54,96,161,229,226,206,47,126,17,215,252,225,245,216,245,194,139,56,226, -200,237,184,226,83,87,224,23,222,243,174,114,92,127,228,162,75,113,199, -231,62,143,191,255,250,93,248,201,29,199,96,130,14,54,246,123,240,27,78, -177,148,8,196,225,24,171,203,67,164,110,27,175,223,254,99,181,231,180,22, -173,149,112,250,213,191,127,53,158,223,249,60,182,191,122,59,174,248,228, -21,120,247,123,126,161,232,131,95,172,121,239,0,32,198,162,95,189,222,237, -118,241,234,215,188,26,231,253,210,121,248,224,135,62,8,34,194,82,123,9, -174,235,98,37,88,177,48,137,243,71,212,215,234,229,253,126,31,199,30,119, -44,174,185,228,123,80,228,0,0,24,190,73,68,65,84,254,26,188,254,13,175, -47,127,127,235,205,183,226,138,143,93,129,133,133,5,236,124,105,39,252, -166,95,91,44,172,173,193,39,67,128,171,215,85,216,158,112,223,189,247,226, -242,75,47,199,19,143,61,129,172,112,187,171,224,254,17,136,24,189,130,113, -63,173,159,3,121,159,123,249,59,77,150,213,168,185,19,161,87,252,60,78, -70,101,190,215,45,127,55,86,206,233,59,223,190,23,31,189,244,99,120,252, -177,199,141,115,154,36,99,0,132,78,81,131,31,39,147,242,118,76,127,55,73, -39,22,178,45,169,158,220,108,194,219,178,47,5,107,124,41,211,57,83,91,129, -89,246,231,128,226,61,191,94,199,56,187,216,178,154,19,210,43,161,220,204, -244,159,192,108,93,104,37,9,36,173,73,145,44,44,43,198,76,23,0,139,7,2, -203,246,186,208,68,200,100,88,126,189,118,234,242,158,79,170,158,138,106, -106,165,10,1,91,195,209,18,117,179,25,232,144,53,166,210,111,30,237,153, -236,97,6,20,221,88,98,32,205,82,56,142,3,199,113,236,114,144,10,182,100, -39,45,40,42,240,37,33,132,106,244,153,245,154,85,6,145,12,17,142,18,80, -187,139,102,187,157,119,231,177,0,39,35,4,195,17,132,219,129,239,166,136, -163,20,142,223,133,135,8,137,240,224,53,91,112,146,98,115,239,46,162,217, -110,129,56,64,180,186,138,204,93,128,239,165,136,195,16,212,90,66,171,211, -129,235,64,29,62,217,4,193,218,0,153,211,70,179,219,67,163,225,128,179, -9,162,193,4,236,119,224,55,155,16,193,65,132,1,195,235,46,162,217,110,130, -68,136,120,48,64,230,245,224,183,92,100,163,1,50,183,141,70,167,135,134, -231,0,98,130,112,48,6,251,93,52,219,157,194,17,78,64,4,203,8,34,66,163, -221,135,223,110,194,1,67,100,19,68,131,252,243,253,206,66,254,249,233,4, -209,112,12,110,116,224,55,9,233,104,136,212,105,193,239,44,192,47,206,175, -58,126,23,174,195,224,120,136,96,28,193,105,246,224,119,242,207,204,173, -93,35,68,195,149,252,94,181,114,14,0,101,1,226,73,4,246,186,240,59,29,56, -60,70,52,88,69,130,46,90,221,5,120,13,55,15,14,116,79,24,203,164,228,44, -197,100,112,16,131,196,67,167,183,128,94,219,207,63,91,183,8,228,12,217, -100,13,251,87,99,120,139,139,216,208,107,195,133,0,167,1,86,15,14,144,184, -45,116,122,93,52,93,64,196,99,172,173,5,160,238,18,150,250,29,120,156,32, -73,115,219,213,220,3,125,136,213,177,64,171,191,136,133,150,135,108,116, -16,7,134,41,154,253,69,44,116,219,104,32,196,112,121,136,216,233,96,97, -177,135,6,69,24,47,47,99,132,14,22,23,251,232,250,142,61,51,224,12,241, -112,25,7,71,140,206,210,18,22,59,77,201,109,152,129,44,67,90,216,181,58, -14,205,163,245,24,171,13,105,172,88,80,213,113,65,36,251,131,207,88,176, -8,248,135,175,254,3,206,125,247,185,184,237,207,255,20,239,121,239,187, -205,72,94,219,99,0,93,174,86,93,140,239,191,255,126,252,220,41,63,135,115, -126,254,28,124,225,175,190,240,138,97,120,195,243,213,118,237,18,89,149, -88,213,234,54,140,135,234,116,195,37,146,175,110,98,102,53,165,153,187, -209,89,164,197,75,163,17,75,58,104,169,247,151,189,207,108,216,106,85,139, -61,87,255,87,141,98,108,215,73,74,223,55,216,124,152,84,214,119,201,234, -203,81,255,140,84,120,87,30,143,74,11,176,230,202,183,110,18,93,29,155, -30,53,36,59,13,89,49,76,85,12,161,65,139,35,223,220,29,94,187,126,146,253, -43,72,65,163,89,113,122,171,227,20,113,101,156,84,62,39,213,62,151,100, -71,190,89,106,193,146,99,156,157,4,105,185,189,82,160,50,253,242,12,114, -71,49,17,28,199,45,188,184,181,73,97,106,202,66,165,3,234,182,79,210,191, -68,42,169,64,22,2,80,102,123,6,17,143,17,133,17,216,237,162,213,106,149, -22,169,156,4,136,131,4,236,245,224,55,8,34,77,65,126,15,190,39,144,38,2, -78,163,9,87,4,136,83,202,51,209,78,3,36,162,156,188,70,77,52,124,7,34,74, -192,110,7,173,118,27,174,228,29,15,193,224,44,68,60,9,32,168,133,214,66, -31,158,195,224,104,140,56,8,144,161,137,102,179,1,142,70,72,146,252,248, -237,78,3,16,33,226,48,132,112,90,240,91,30,56,154,64,80,11,126,111,1,13, -23,224,120,132,104,146,191,191,213,238,192,117,28,64,100,121,70,30,103, -32,127,9,126,219,207,55,247,52,64,26,132,16,212,70,179,215,135,231,162, -64,6,38,200,168,1,191,233,64,132,249,249,53,123,253,226,248,99,68,193,4, -130,154,121,240,224,136,28,173,8,3,176,219,133,223,110,231,27,44,51,68, -22,32,30,15,16,78,2,192,241,192,105,136,24,14,92,191,9,175,189,132,86,211, -207,7,122,146,15,19,145,140,16,12,66,52,90,139,104,117,219,185,79,248,12, -114,12,139,24,225,100,140,32,1,90,189,69,44,180,43,87,62,29,195,23,113, -128,209,36,6,55,90,232,117,154,112,33,32,210,16,227,193,26,134,227,16,236, -165,136,194,81,89,47,118,252,14,250,29,31,72,198,24,141,198,24,78,98,8, -46,184,22,240,224,119,23,209,107,186,16,209,4,163,68,192,235,46,97,105, -161,13,151,8,224,22,186,27,60,116,29,31,14,39,8,39,99,76,18,7,205,126,23, -237,134,99,95,0,132,64,26,78,48,10,82,56,173,62,122,45,223,208,131,135, -235,161,129,249,6,122,246,230,77,213,19,132,73,107,219,97,147,50,105,119, -253,203,123,236,127,247,15,174,202,55,119,173,167,151,20,104,88,10,228, -107,22,150,61,123,246,224,178,139,47,3,17,225,3,23,124,224,101,110,232, -250,130,45,155,77,64,178,173,165,42,144,97,46,156,187,106,220,241,228,229, -69,17,142,209,60,21,74,177,41,213,5,177,172,35,215,49,150,53,73,80,197, -134,83,90,176,229,131,49,215,217,71,200,74,53,186,221,144,92,218,101,21, -201,148,214,78,5,213,183,234,94,153,134,1,138,160,22,217,84,50,96,119,217, -212,198,164,60,180,100,11,83,150,120,27,134,87,1,102,100,230,58,84,207, -53,127,59,99,77,145,183,185,74,234,129,97,250,145,218,105,198,250,5,27, -70,58,114,35,148,60,79,36,45,18,130,37,42,54,60,224,81,121,183,151,220, -23,201,123,133,212,214,96,157,31,161,132,50,36,211,6,201,18,223,234,50, -186,146,221,180,244,229,233,28,60,145,229,164,40,199,113,44,66,119,90,26, -32,57,41,144,100,247,168,216,58,85,171,150,113,19,203,89,162,134,242,57, -148,29,78,32,156,54,154,157,118,142,34,8,1,78,198,136,162,0,240,58,240, -73,64,36,17,224,181,208,64,134,52,73,65,141,46,28,142,145,38,12,175,179, -136,134,239,1,201,4,113,20,33,205,8,94,187,5,36,99,36,25,224,117,219,112, -220,202,58,86,16,1,34,68,50,25,33,77,61,52,186,61,184,200,144,6,57,236, -157,215,233,125,32,10,144,36,69,107,90,211,7,178,0,73,48,70,198,13,52,218, -30,68,56,68,146,54,208,232,118,225,34,67,18,140,17,79,2,192,109,163,217, -235,193,115,29,16,103,72,226,33,210,40,134,211,90,66,195,247,243,129,32, -98,164,147,49,162,204,133,223,237,194,163,12,217,100,140,40,200,121,2,126, -187,1,132,99,196,105,245,122,26,140,17,77,166,60,130,30,60,7,69,112,52, -129,112,58,69,54,95,60,55,17,34,13,70,72,50,15,205,13,135,195,247,189,114, -196,56,142,83,64,239,197,32,109,180,209,92,108,192,13,134,8,163,164,226, -111,242,116,156,100,16,204,112,92,175,112,101,203,209,149,52,10,48,26,135, -224,102,31,189,162,117,207,74,6,74,67,140,71,99,4,236,163,219,239,162,233, -56,96,17,35,26,79,48,137,28,244,14,219,132,94,211,47,223,159,15,37,129, -116,50,192,234,56,1,53,123,216,112,232,34,40,13,49,153,68,72,168,137,126, -175,5,39,11,49,8,2,100,110,23,139,5,89,46,31,253,14,92,175,1,176,64,18, -78,48,30,199,112,218,125,244,218,213,57,170,189,193,140,44,14,48,14,67, -8,191,135,197,94,27,57,207,52,255,155,44,203,144,9,192,241,28,184,228,204, -208,244,208,37,188,52,7,103,150,91,113,184,34,73,201,45,163,108,49,159, -144,164,91,137,129,123,238,189,71,105,61,35,230,242,253,202,134,71,242, -57,144,193,9,75,179,20,175,59,242,117,216,184,113,35,62,243,167,159,193, -73,111,62,169,126,1,159,151,129,65,179,201,44,230,252,212,244,132,138,44, -151,229,126,94,174,218,75,117,31,83,210,119,84,82,197,62,80,152,119,232, -50,32,186,50,24,235,112,43,217,120,200,83,168,155,37,193,151,10,74,39,203, -178,72,10,245,95,138,220,140,117,18,10,178,89,162,3,178,67,29,105,42,132, -172,178,230,117,39,146,105,187,112,158,245,145,213,66,148,106,225,6,29, -85,169,76,128,160,107,102,218,54,111,219,198,204,51,96,250,89,122,245,48, -147,73,67,145,148,101,145,160,153,33,204,92,28,157,65,102,107,59,171,146, -18,68,54,186,124,21,9,40,232,47,73,138,166,164,17,91,167,92,52,170,37,22, -104,60,120,6,219,96,119,157,19,34,7,211,172,162,46,158,94,228,39,2,28,207, -53,109,240,88,231,244,75,226,199,83,246,175,148,113,40,42,140,172,237,245, -26,11,85,17,227,207,34,36,209,4,137,112,224,55,252,162,55,49,3,210,0,113, -24,130,221,38,92,98,100,113,12,106,180,224,58,140,44,202,64,158,15,226, -20,89,20,3,141,54,28,23,200,162,53,36,81,2,184,29,248,189,22,28,14,17,77, -18,8,246,65,16,224,36,70,198,2,66,16,92,215,201,9,109,113,2,248,45,16,98, -196,195,33,162,40,6,26,61,180,219,205,252,28,98,145,67,222,173,252,231, -100,50,68,2,31,141,86,19,148,77,144,36,41,208,104,131,16,35,25,14,17,134, -49,168,209,67,171,179,0,175,225,129,32,144,198,99,36,65,30,192,52,136,192, -113,12,209,32,112,50,70,146,36,32,191,9,226,24,241,96,128,48,74,242,207, -239,180,225,100,35,132,211,243,227,4,209,112,128,40,76,64,141,46,90,221, -30,26,13,23,200,66,164,209,4,153,112,224,53,27,112,136,33,24,57,58,144, -68,72,162,24,212,88,128,235,186,197,28,114,64,174,83,168,183,165,37,153, -50,239,75,142,145,101,25,92,175,131,70,187,200,132,145,34,26,15,176,186, -54,65,230,180,208,91,202,51,91,7,12,136,12,73,20,34,78,5,188,22,131,69, -146,215,248,201,133,231,82,158,109,103,2,44,82,132,147,49,70,145,128,219, -105,160,217,112,138,103,159,34,138,99,100,240,209,118,28,73,30,215,203, -159,115,24,96,50,14,16,115,11,11,77,15,78,22,98,52,28,35,18,13,244,150, -218,104,185,25,130,113,128,136,27,232,182,218,101,173,92,246,90,66,22,35, -14,67,164,236,161,211,108,192,115,108,234,227,140,36,28,99,60,154,32,113, -90,232,116,187,104,55,220,226,175,50,36,225,24,171,43,67,68,240,177,176, -180,136,110,187,1,183,54,87,103,131,154,197,202,255,72,177,82,150,51,119, -185,209,192,176,115,133,153,57,178,162,76,42,147,125,200,178,224,90,44, -154,25,240,92,207,218,226,54,155,142,140,90,255,1,38,181,37,200,204,28, -169,84,120,52,4,121,172,125,194,108,89,61,88,97,131,151,215,75,170,143, -44,213,16,174,108,142,93,12,85,74,70,23,191,46,157,212,88,106,43,85,202, -236,234,17,88,38,31,79,95,39,201,213,77,65,123,37,109,123,50,107,14,165, -155,155,225,168,72,154,239,134,237,113,177,185,166,91,248,218,164,88,236, -194,32,63,146,81,7,169,9,254,108,123,46,173,131,61,207,242,189,82,45,191, -153,84,109,19,69,43,148,76,242,156,170,53,64,146,13,47,171,0,63,87,70,63, -138,155,223,156,210,2,107,166,239,178,165,47,145,102,46,75,164,6,131,68, -181,129,22,219,86,146,105,144,108,59,29,38,35,126,243,100,200,32,203,82, -16,57,112,92,199,18,89,177,10,15,233,70,43,50,60,207,182,218,128,6,189, -105,180,142,60,98,23,57,60,159,101,224,56,66,148,198,72,146,5,52,219,13, -32,142,192,78,11,141,134,131,44,154,178,208,5,146,40,3,249,109,184,60,65, -56,153,228,62,224,105,136,36,112,225,54,123,240,59,27,225,121,46,28,135, -192,153,11,199,245,64,73,136,104,16,35,113,124,120,221,5,248,205,38,28, -71,64,36,34,239,81,15,135,0,122,112,201,133,215,234,193,107,247,224,136, -233,230,222,133,223,110,130,68,130,52,154,32,225,6,26,237,30,26,46,144, -165,25,72,164,200,194,1,162,172,3,143,28,184,205,46,26,237,94,78,170,67, -174,231,207,113,136,44,73,32,8,32,183,81,240,11,184,96,222,231,159,31,165, -29,184,228,192,105,118,242,227,123,14,178,148,1,78,33,194,1,98,238,193, -33,23,141,118,19,94,107,1,141,66,120,69,112,6,145,9,136,56,70,156,38,200, -154,61,52,59,61,144,87,60,42,135,144,134,3,4,209,0,64,46,228,227,183,91, -121,89,35,24,33,142,210,226,1,57,128,215,66,179,221,71,171,217,204,51,124, -102,100,73,140,96,18,34,201,8,173,110,27,109,223,43,224,127,2,195,129,231, -121,240,220,24,209,96,25,7,134,14,28,175,141,133,126,15,157,150,139,100, -188,134,225,40,64,156,49,50,145,183,187,185,2,24,58,46,250,221,22,60,199, -69,195,245,224,68,19,172,29,12,176,70,4,199,109,161,191,184,128,78,219, -3,139,12,153,16,200,178,49,134,203,17,34,223,65,234,248,104,247,122,232, -54,93,136,120,132,48,115,209,105,119,208,109,186,22,226,16,67,136,4,81, -28,67,56,11,240,60,207,130,81,9,36,225,8,195,97,4,225,117,208,235,118,208, -242,157,106,50,8,129,104,50,194,36,136,64,189,30,60,207,179,110,238,70, -166,94,107,129,171,250,78,171,155,174,186,0,144,205,24,163,116,191,170, -178,127,134,174,179,33,101,135,150,141,147,214,67,136,194,156,215,108,48, -181,172,252,33,91,215,106,217,81,165,26,38,193,147,172,101,238,44,37,33, -154,202,90,89,147,157,6,51,242,38,80,100,180,181,155,137,225,181,203,138, -178,186,172,99,33,183,69,213,249,199,148,106,132,204,149,6,135,134,82,202, -190,237,83,130,28,73,252,129,170,15,141,205,29,138,36,196,7,154,35,2,145, -66,58,155,245,72,137,77,89,83,101,19,149,108,185,73,35,1,26,110,108,179, -203,196,51,180,48,48,199,240,188,178,184,37,157,211,5,178,154,196,130,237, -70,73,172,5,13,96,178,204,81,117,114,144,156,160,202,188,3,137,147,81,9, -74,201,28,9,82,28,71,13,187,98,154,83,151,224,202,80,76,45,240,176,161, -118,169,0,11,108,186,187,42,36,59,102,6,57,164,142,119,107,228,165,109, -234,18,116,111,181,204,213,219,37,73,202,88,88,135,22,178,124,147,102,145, -71,178,5,23,128,51,1,56,185,170,91,150,9,56,174,7,32,203,85,246,146,17, -194,201,24,104,244,209,106,53,43,8,196,41,136,97,82,164,207,89,38,69,110, -78,142,86,76,9,41,34,5,103,197,153,185,30,136,243,62,2,103,90,51,7,64,228, -86,139,72,150,130,41,15,30,242,69,38,1,68,113,91,28,183,120,191,147,103, -201,78,181,170,9,145,149,110,115,228,21,236,244,34,131,230,105,247,153, -227,84,239,119,156,252,154,68,10,81,30,223,3,113,10,144,155,31,191,124, -54,185,46,64,57,199,28,233,117,206,187,21,100,177,33,114,167,159,47,138, -222,126,25,194,204,131,61,149,177,153,183,78,10,56,69,215,132,86,47,20, -25,18,33,101,173,236,192,45,50,105,145,73,2,69,210,174,226,148,221,25,12, -145,165,170,210,106,241,140,28,0,44,50,164,66,148,3,203,113,9,44,40,63, -143,156,186,143,148,9,158,227,90,156,251,242,159,147,96,128,149,131,171, -72,90,75,56,100,67,15,126,113,111,185,120,127,56,30,98,28,36,112,154,11, -232,247,90,82,134,95,40,41,70,19,172,173,44,99,144,249,232,111,60,20,139, -45,215,170,127,93,47,189,45,161,9,164,102,125,165,84,41,203,88,130,93,201, -76,109,158,102,197,60,165,84,138,228,154,78,38,158,195,10,126,185,72,167, -173,24,79,48,165,149,161,9,97,146,180,77,113,229,47,174,103,33,21,79,129, -116,220,223,170,195,78,122,155,142,21,13,160,250,186,130,82,199,149,178, -245,105,111,57,195,84,171,83,78,128,76,212,2,150,154,61,145,81,113,177, -14,32,182,213,165,109,112,53,214,249,224,180,42,116,57,94,236,68,53,157, -242,49,215,97,112,189,227,138,215,155,209,171,36,64,134,106,111,67,51,163, -4,187,229,51,235,229,20,173,219,129,32,213,206,217,162,212,7,149,7,66,172, -138,233,216,116,85,103,50,252,21,148,157,172,109,6,165,180,56,207,224,25, -144,26,24,211,238,201,30,102,145,103,84,110,193,154,159,127,179,42,168, -64,134,14,89,183,138,85,215,30,147,117,169,4,12,108,141,100,84,108,82,191, -25,2,34,9,16,142,135,57,251,187,200,116,109,163,144,140,42,168,201,241, -227,90,130,143,10,245,153,236,93,75,27,9,207,32,245,204,186,175,172,178, -47,215,171,220,104,46,10,100,173,221,112,13,163,122,230,122,87,247,250, -255,151,232,9,65,23,95,180,213,153,230,79,13,29,210,82,139,62,208,170,145, -73,56,198,218,218,0,49,58,88,218,216,71,167,32,216,101,73,132,96,60,66, -144,58,104,117,187,232,180,124,120,133,114,87,30,148,37,72,162,24,147,209, -24,17,187,232,46,244,209,107,55,13,121,224,249,203,172,134,92,201,27,190, -188,129,96,6,163,90,203,62,101,38,182,49,12,140,76,228,101,44,192,47,135, -84,103,208,245,21,254,143,84,138,38,69,2,153,181,5,169,214,118,148,234, -246,18,82,219,142,20,18,148,122,95,230,237,74,164,67,221,83,137,108,139, -101,178,33,7,173,103,49,176,120,187,151,207,149,75,66,84,229,27,65,150, -137,46,175,7,38,23,161,42,189,86,187,190,125,138,154,171,8,145,134,124, -200,252,64,137,184,199,60,35,225,155,53,30,102,77,136,185,147,132,44,37, -24,178,19,71,231,18,91,217,122,248,82,66,92,10,26,89,71,39,216,82,189,153, -21,44,73,139,171,161,59,49,119,154,145,117,207,178,9,216,176,173,192,86, -115,255,189,41,25,199,43,123,216,235,34,114,185,215,164,218,124,101,69, -33,149,112,64,10,195,147,153,106,180,225,45,59,127,37,149,164,174,25,164, -46,214,185,118,124,4,154,182,163,185,150,54,130,162,230,81,219,223,168, -147,95,21,146,133,37,149,40,225,78,185,180,48,21,10,34,85,206,86,131,240, -88,130,16,43,7,33,201,72,68,34,70,233,192,25,106,231,9,73,228,30,125,53, -229,122,212,148,44,237,36,243,132,40,116,130,204,124,14,203,12,10,56,43, -42,76,70,77,86,163,147,240,156,18,48,43,128,37,91,130,136,252,101,199,117, -224,185,13,144,219,128,231,230,159,148,37,49,162,113,222,101,177,176,212, -65,211,115,170,32,129,5,178,104,140,225,112,132,32,243,208,106,47,96,99, -183,13,223,115,140,208,195,164,116,217,92,17,228,233,42,205,21,146,245, -197,85,116,214,186,70,75,16,238,20,142,174,54,35,185,99,69,98,167,83,189, -62,201,43,224,39,217,215,39,86,192,74,69,177,208,38,83,109,24,40,234,85, -8,50,145,67,21,110,101,197,85,172,74,220,85,34,86,221,24,52,77,60,12,35, -118,157,211,103,25,210,108,45,109,179,225,217,161,242,189,89,241,116,183, -61,6,86,247,125,150,125,60,204,191,169,135,228,77,210,6,179,185,89,202, -188,41,133,145,173,163,172,182,113,192,115,2,63,187,197,231,156,13,142, -102,198,182,144,87,135,105,185,163,230,175,72,230,55,72,146,179,85,199, -4,169,193,47,175,111,109,155,142,191,202,115,68,26,67,12,195,90,156,176, -62,134,191,156,170,40,199,52,144,35,11,241,175,84,197,4,232,197,225,139, -204,96,184,78,221,6,15,115,51,102,91,52,84,109,206,70,175,187,150,0,27, -91,22,107,142,113,178,121,139,100,168,160,44,166,156,215,75,89,112,14,103, -19,161,206,48,194,136,133,164,212,161,46,58,150,225,42,147,33,40,91,196, -74,117,79,205,226,81,1,30,44,189,157,90,184,12,211,38,193,168,128,233,200, -208,140,103,35,233,143,235,251,190,134,238,218,74,168,243,51,199,57,17, -249,58,213,47,200,50,13,9,117,16,245,252,99,217,242,118,181,14,103,25,51, -34,43,30,183,3,199,49,37,52,132,16,200,132,200,153,248,14,193,33,103,46, -224,166,71,217,198,72,212,218,195,201,178,104,177,46,36,100,252,177,222, -167,60,125,222,82,13,117,29,189,223,175,24,141,169,93,8,73,221,236,160, -201,154,74,16,82,5,255,90,178,88,3,225,35,13,203,214,77,87,204,235,157, -159,45,153,75,170,57,164,107,204,217,21,232,15,10,155,152,116,75,16,139, -104,141,114,15,244,214,59,131,31,160,102,243,58,144,62,7,209,159,3,203, -145,57,254,12,114,36,205,238,111,159,33,84,179,46,7,202,154,11,168,11,230, -235,218,239,97,163,168,232,213,122,153,204,201,108,57,30,219,155,237,102, -65,160,44,89,1,67,87,39,212,72,179,235,130,251,204,210,155,202,218,129, -105,104,99,57,89,47,111,135,35,72,234,29,218,83,134,186,217,169,225,144, -212,55,40,193,18,100,66,108,198,190,105,132,237,172,74,58,146,250,128,140, -24,128,114,183,91,114,107,194,68,173,132,80,14,12,105,213,177,18,124,25, -10,171,95,53,149,49,239,79,85,63,35,51,160,37,245,97,177,205,217,206,152, -16,242,99,36,107,84,110,157,180,178,55,50,145,220,224,96,192,240,164,118, -116,152,45,88,175,100,19,88,151,112,56,215,0,81,230,146,85,103,155,67,214, -35,48,216,146,229,51,216,168,39,130,28,192,213,182,125,71,103,219,171,255, -39,199,133,231,56,26,34,64,53,197,3,121,49,225,202,119,129,165,201,41,5, -152,186,247,151,33,26,90,183,56,146,153,246,202,203,53,145,74,140,154,169, -24,70,47,115,179,183,240,108,205,5,139,85,89,79,121,3,101,216,145,15,29, -161,128,9,103,148,80,55,169,118,210,100,88,31,202,100,3,115,142,25,129, -165,18,28,155,206,92,181,101,3,174,100,99,73,202,140,217,56,180,116,204, -242,188,84,50,215,76,173,116,86,185,75,58,251,91,238,131,95,143,242,43, -75,1,161,174,66,15,153,109,174,203,36,211,140,77,121,214,13,155,71,190, -179,168,243,149,8,21,171,123,145,204,76,39,155,245,10,235,244,195,74,255, -159,184,34,197,149,29,10,128,242,12,141,232,66,79,104,193,210,16,37,217, -31,88,233,211,151,61,127,13,46,39,236,200,186,108,1,108,114,88,52,117,3, -174,9,10,80,117,90,56,194,66,6,177,251,74,179,230,140,68,202,190,199,146, -219,16,179,145,228,42,242,139,36,107,42,91,160,27,101,200,105,34,21,245, -101,30,109,229,155,182,146,204,32,250,24,177,140,230,97,95,95,115,81,161, -22,185,238,71,100,158,81,85,163,97,117,130,235,62,193,26,107,213,94,175, -150,31,172,70,19,85,72,50,172,198,75,164,104,49,152,196,14,27,228,54,75, -71,122,46,161,198,14,170,177,114,23,235,215,12,251,220,178,179,78,85,15, -193,233,239,204,19,155,93,250,211,109,49,245,2,130,174,153,181,78,231,12, -150,125,30,88,113,79,36,205,220,67,22,42,177,126,43,207,167,128,239,24, -154,185,140,20,168,50,25,207,144,231,193,237,235,45,189,204,250,89,126, -214,68,213,156,32,105,45,176,140,3,117,227,228,106,76,51,73,89,144,76,144, -82,89,211,12,86,231,6,145,189,11,9,154,142,56,212,190,123,214,42,158,52, -67,20,72,29,115,100,36,71,172,149,101,100,19,188,90,244,195,208,158,47, -142,175,252,95,10,91,9,224,25,35,210,128,231,167,107,24,91,36,110,136,36, -166,182,166,137,47,159,147,45,88,172,227,241,80,205,49,52,227,28,146,239, -29,177,178,127,144,209,41,32,149,22,140,196,193,94,35,32,182,248,220,203, -229,8,170,41,71,218,16,132,178,44,203,165,82,97,217,42,206,21,226,194,250, -154,77,58,8,108,245,188,147,198,13,12,111,63,148,1,4,107,139,102,149,241, -151,52,242,146,84,103,133,92,201,124,40,86,128,132,75,226,8,49,73,61,148, -150,186,149,34,112,160,101,237,83,229,31,61,19,98,182,27,54,105,108,87, -229,169,144,134,53,19,73,182,123,176,111,246,172,77,92,182,65,70,44,213, -23,81,218,192,42,129,31,91,22,4,182,184,231,105,72,136,25,201,205,71,182, -160,147,136,74,53,44,82,72,143,101,233,64,246,37,214,58,30,172,3,124,222, -226,94,187,81,204,254,67,86,170,208,178,89,134,185,248,91,6,161,17,42,144, -102,208,171,47,2,235,39,58,66,51,100,36,99,109,162,154,73,55,171,10,90, -6,34,197,67,32,189,38,71,234,222,102,44,166,108,15,170,202,133,157,85,119, -42,34,203,102,86,179,96,217,199,255,203,252,50,50,56,233,195,185,66,206, -108,78,211,101,240,107,11,40,169,66,8,33,181,211,209,148,113,175,187,138, -144,10,19,214,162,195,68,74,198,196,133,250,156,169,20,166,7,146,181,49, -191,230,23,38,219,189,144,98,98,2,178,216,151,202,48,154,18,39,144,178, -128,147,214,157,79,26,146,85,79,116,151,199,28,91,82,136,105,25,165,114, -77,51,114,28,90,87,65,220,220,75,108,162,54,150,140,133,109,55,149,205, -240,4,198,19,177,205,113,201,43,131,72,186,234,170,92,91,109,83,156,115, -69,244,214,65,91,128,173,132,20,22,212,72,206,70,103,56,27,202,251,137, -81,133,215,60,10,160,201,58,40,153,239,44,152,134,200,38,52,70,106,161, -215,114,211,88,87,126,146,24,161,50,73,204,120,96,4,11,193,77,202,102,203, -40,90,173,193,170,186,202,243,242,65,121,210,179,138,20,48,27,240,180,181, -114,40,23,15,21,253,194,42,43,81,81,82,82,29,134,172,193,82,21,204,176, -100,35,72,36,109,114,108,11,90,230,36,76,83,98,158,54,144,73,211,181,102, -89,74,209,54,41,108,27,201,203,109,105,153,49,241,109,65,153,236,140,196, -70,111,243,220,208,70,139,225,213,76,216,182,192,211,220,205,93,95,48,73, -9,234,72,11,78,236,199,100,5,94,85,44,44,229,241,47,89,84,201,45,59,42, -244,103,243,70,163,74,225,75,106,53,83,149,107,217,116,125,148,18,52,235, -41,207,179,174,156,155,217,219,161,130,138,172,88,100,29,26,103,128,229, -69,17,150,37,199,114,238,44,163,34,100,89,15,168,78,228,69,215,103,215, -37,63,229,220,73,221,221,152,168,182,233,74,175,224,41,50,188,242,94,197, -246,10,168,125,243,148,71,54,25,201,26,171,57,151,186,106,176,93,34,153, -109,88,38,177,36,251,170,173,103,115,145,154,25,235,4,48,223,3,30,246,160, -176,180,170,102,214,84,228,88,153,133,166,8,145,150,212,161,66,147,217, -114,127,229,89,95,33,184,100,15,118,165,222,249,146,188,58,117,76,101,82, -206,121,74,56,151,166,106,237,125,100,219,141,80,212,14,101,121,119,54, -133,109,160,239,85,84,218,75,3,140,255,7,235,53,118,152,139,141,219,172, -0,0,0,0,73,69,78,68,174,66,96,130}; - -static size_t xml_res_size_2 = 322; -static unsigned char xml_res_file_2[] = { -60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, -110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, -115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, -47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, -47,119,120,120,114,99,34,62,10,32,32,60,111,98,106,101,99,116,32,99,108, -97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61, -34,112,97,121,112,97,108,34,62,65,98,111,117,116,68,108,103,95,98,105,116, -109,97,112,115,46,99,112,112,36,46,46,95,99,111,100,101,108,105,116,101, -45,105,99,111,110,115,95,97,98,111,117,116,95,51,50,95,112,97,121,112,97, -108,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106, -101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34, -32,110,97,109,101,61,34,115,112,108,97,115,104,115,99,114,101,101,110,34, -62,65,98,111,117,116,68,108,103,95,98,105,116,109,97,112,115,46,99,112, -112,36,46,46,95,82,117,110,116,105,109,101,95,105,109,97,103,101,115,95, -115,112,108,97,115,104,115,99,114,101,101,110,46,112,110,103,60,47,111, -98,106,101,99,116,62,10,60,47,114,101,115,111,117,114,99,101,62,10}; - -void wxC3415InitBitmapResources() -{ - - // Check for memory FS. If not present, load the handler: - { - wxMemoryFSHandler::AddFile(wxT("XRC_resource/dummy_file"), wxT("dummy one")); - wxFileSystem fsys; - wxFSFile *f = fsys.OpenFile(wxT("memory:XRC_resource/dummy_file")); - wxMemoryFSHandler::RemoveFile(wxT("XRC_resource/dummy_file")); - if (f) delete f; - else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase); - } - - XRC_ADD_FILE(wxT("XRC_resource/AboutDlg_bitmaps.cpp$.._codelite-icons_about_32_paypal.png"), xml_res_file_0, xml_res_size_0, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/AboutDlg_bitmaps.cpp$.._Runtime_images_splashscreen.png"), xml_res_file_1, xml_res_size_1, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/AboutDlg_bitmaps.cpp$_home_david_devel_git_CL_LiteEditor_AboutDlg_bitmaps.xrc"), xml_res_file_2, xml_res_size_2, wxT("text/xml")); - wxXmlResource::Get()->Load(wxT("memory:XRC_resource/AboutDlg_bitmaps.cpp$_home_david_devel_git_CL_LiteEditor_AboutDlg_bitmaps.xrc")); -} +// +// This file was automatically generated by wxrc, do not edit by hand. +// + +#include + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +#include +#include +#include +#include + +#if wxCHECK_VERSION(2,8,5) && wxABI_VERSION >= 20805 + #define XRC_ADD_FILE(name, data, size, mime) \ + wxMemoryFSHandler::AddFileWithMimeType(name, data, size, mime) +#else + #define XRC_ADD_FILE(name, data, size, mime) \ + wxMemoryFSHandler::AddFile(name, data, size) +#endif + +static size_t xml_res_size_0 = 1249; +static unsigned char xml_res_file_0[] = { +137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0, +0,115,122,122,244,0,0,0,25,116,69,88,116,83,111,102,116,119,97,114,101, +0,65,100,111,98,101,32,73,109,97,103,101,82,101,97,100,121,113,201,101, +60,0,0,4,131,73,68,65,84,120,218,236,87,125,76,85,101,24,255,189,231,156, +203,103,40,44,67,67,194,100,197,194,69,126,140,98,106,173,129,112,93,234, +40,205,12,212,25,149,75,27,70,46,219,218,136,40,103,171,230,63,45,8,114, +83,107,45,201,76,107,75,28,210,151,206,4,117,230,39,9,72,78,234,74,228, +7,31,147,128,43,220,123,238,121,123,222,247,220,115,239,61,246,225,218, +186,240,143,239,246,222,231,124,61,207,239,121,159,239,203,56,231,24,205, +165,96,148,215,77,5,70,93,1,230,167,218,242,181,85,187,124,156,61,42,131, +50,140,113,201,20,70,167,54,190,170,121,111,205,98,186,213,37,120,97,73, +101,237,145,227,109,220,92,70,152,55,231,231,93,23,121,97,73,69,173,192, +214,232,39,26,76,93,144,53,35,13,23,127,239,132,207,224,33,134,249,191, +23,135,66,22,72,77,153,72,16,218,2,129,45,20,136,226,18,148,131,51,69,70, +69,248,224,173,101,192,196,68,148,22,60,174,169,29,11,115,93,98,246,211, +49,205,150,18,76,37,43,216,45,32,109,115,131,106,201,72,234,141,120,20, +102,10,190,222,186,54,5,28,14,5,170,176,66,136,154,6,153,74,167,253,79, +74,8,193,154,202,228,209,44,46,241,169,238,51,96,248,121,132,76,77,83,205, +156,103,254,236,247,99,104,161,25,25,233,112,160,120,99,29,38,140,27,35, +159,252,236,186,130,69,217,233,88,60,103,10,249,204,239,67,18,26,170,138, +74,224,101,213,251,160,17,175,120,215,219,231,70,92,140,3,111,23,231,250, +3,154,64,84,5,51,159,221,138,133,115,50,240,241,238,99,56,179,179,36,224, +10,155,2,253,131,195,72,73,186,21,235,87,231,5,158,110,216,252,61,150,150, +125,1,135,162,162,171,111,0,15,76,73,150,39,20,167,154,156,148,128,115, +29,61,24,242,114,84,174,155,23,224,169,254,252,48,150,190,182,139,190,81, +209,115,117,16,75,242,50,176,48,39,3,165,207,100,227,114,87,31,89,58,210, +102,197,196,130,146,42,153,159,123,127,104,226,123,14,180,200,235,228,188, +13,146,214,55,158,229,161,107,237,198,221,146,62,84,84,197,139,202,119, +200,235,182,95,175,152,60,206,55,37,253,177,185,131,255,210,217,27,224, +169,220,222,192,235,27,76,57,143,191,244,161,164,133,47,86,11,243,36,42, +161,5,241,187,163,237,200,202,152,36,175,155,118,174,147,244,147,61,199, +81,83,119,18,239,110,59,40,239,19,198,70,75,186,100,238,84,84,190,242,24, +190,57,212,134,110,58,165,88,251,183,172,146,244,72,147,11,135,79,187,80, +94,253,181,188,31,19,27,5,231,236,52,156,187,208,141,220,172,187,3,113, +18,232,5,150,63,220,67,58,198,37,196,224,232,79,23,80,241,89,35,230,23, +111,65,81,126,38,150,205,155,78,241,208,37,191,57,214,220,129,19,173,157, +88,83,48,27,183,196,68,96,89,233,118,204,154,122,39,122,200,247,53,117, +167,48,107,197,251,210,61,133,143,76,67,87,175,169,88,239,31,110,136,16, +173,107,56,139,204,244,137,8,213,192,214,140,6,135,100,105,150,224,175, +175,202,193,203,79,61,72,129,100,190,251,224,213,69,146,158,104,253,13, +231,201,239,98,189,181,117,31,30,206,76,149,215,85,59,14,225,233,252,105, +216,84,154,143,248,184,24,147,167,204,228,25,184,230,149,148,92,131,204, +123,239,176,21,37,45,244,174,181,253,50,178,150,87,96,198,61,73,178,90, +101,223,127,23,86,174,255,18,141,39,219,81,79,166,142,141,142,192,128,219, +139,39,156,247,161,223,237,193,240,208,48,46,117,247,99,230,138,74,249, +174,252,185,108,164,76,136,199,182,186,211,104,105,191,132,189,116,98,85, +53,83,187,246,192,25,76,79,75,250,219,84,78,44,120,161,202,222,136,12,157, +123,134,135,229,54,116,47,61,243,153,65,122,176,153,231,172,220,196,223, +249,104,63,119,62,191,153,187,175,185,131,124,134,143,123,61,158,32,15, +201,176,154,79,240,27,157,235,94,143,188,123,146,48,5,182,22,106,14,159, +174,7,138,135,149,237,162,160,80,53,146,185,156,158,58,30,111,172,206,149, +69,169,208,153,129,232,72,7,116,221,27,168,13,86,43,215,125,62,226,17,129, +229,11,22,167,64,178,179,191,186,192,2,163,110,64,66,12,219,168,192,253, +63,58,201,76,30,31,143,73,183,39,4,43,164,206,97,214,26,22,228,97,65,30, +123,3,178,230,1,197,166,146,173,20,11,95,253,91,47,20,39,180,170,27,247, +119,109,133,253,183,222,105,98,92,215,11,44,33,66,59,77,25,153,41,205,194, +148,104,42,227,87,79,181,184,70,108,14,20,88,2,211,178,128,135,230,51,39, +89,244,91,131,179,177,134,17,222,129,64,204,28,10,227,125,159,18,166,192, +22,118,160,54,134,219,104,139,18,21,23,198,121,44,116,92,232,167,221,73, +187,203,2,19,74,196,210,142,24,33,47,120,68,225,165,237,29,237,191,5,52, +2,222,252,115,58,202,235,79,1,6,0,97,231,180,27,227,20,92,140,0,0,0,0,73, +69,78,68,174,66,96,130}; + +static size_t xml_res_size_1 = 155711; +static unsigned char xml_res_file_1[] = { +137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,1,248,0,0,1,44,8,6,0, +0,0,47,135,161,70,0,0,0,6,98,75,71,68,0,255,0,255,0,255,160,189,167,147, +0,0,0,9,112,72,89,115,0,0,11,19,0,0,11,19,1,0,154,156,24,0,0,0,7,116,73, +77,69,7,223,7,26,17,44,17,236,93,237,170,0,0,0,29,105,84,88,116,67,111, +109,109,101,110,116,0,0,0,0,0,67,114,101,97,116,101,100,32,119,105,116, +104,32,71,73,77,80,100,46,101,7,0,0,32,0,73,68,65,84,120,218,236,189,89, +143,44,57,146,182,247,24,73,95,34,34,243,156,83,213,179,9,18,62,64,16,4, +253,255,255,162,27,93,9,146,32,205,242,245,116,87,157,140,197,55,210,116, +65,186,135,47,244,136,200,83,213,211,51,131,201,198,204,201,74,223,232, +116,210,150,215,94,51,147,127,105,254,168,130,162,8,160,0,233,55,65,84, +81,33,253,45,253,162,160,162,211,89,227,249,227,127,235,244,223,160,154, +174,20,69,21,68,198,43,214,63,247,123,221,127,159,70,49,141,46,142,194, +32,233,148,249,253,230,119,24,199,137,228,143,45,159,176,29,73,124,199, +204,223,95,185,207,252,185,186,186,191,144,255,153,191,139,230,207,91,204, +144,66,208,64,219,182,244,93,207,233,253,13,35,18,231,74,210,185,233,158, +227,253,116,253,14,153,249,89,191,227,52,254,217,251,0,247,103,112,255, +208,58,189,135,44,222,117,51,247,243,185,157,125,188,205,10,88,141,143, +245,252,103,38,94,131,34,198,228,159,175,247,231,236,222,98,61,223,179, +239,50,31,242,250,29,230,231,108,254,93,31,215,229,251,206,247,202,98,61, +207,230,250,165,245,189,179,31,214,227,230,193,88,88,157,179,183,246,115, +231,243,96,127,108,230,41,179,191,246,222,135,93,201,48,251,119,188,223, +248,62,235,53,159,25,227,66,70,237,237,203,220,30,205,140,107,125,28,1, +85,77,210,144,187,204,218,217,211,89,249,180,26,87,246,123,238,236,219, +71,235,126,119,47,102,230,100,243,253,88,202,131,205,115,200,204,205,74, +30,178,183,6,50,239,187,185,79,70,86,108,214,208,108,80,243,177,200,236, +184,202,131,53,55,147,111,100,222,237,149,125,177,167,87,148,252,250,206, +138,125,93,238,125,200,236,219,189,239,55,123,158,147,105,17,234,116,112, +82,171,2,162,146,254,22,191,74,28,212,82,249,106,70,131,168,48,211,48,227, +162,143,163,146,153,49,48,206,166,204,140,135,217,209,105,184,10,24,228, +62,41,194,190,209,176,154,188,120,227,184,233,130,70,51,65,236,114,165, +169,122,84,5,77,179,103,172,76,202,74,136,6,10,170,4,77,35,49,105,44,170, +113,51,43,132,105,78,192,24,147,93,140,57,161,52,23,12,15,141,150,73,185, +43,93,223,211,15,3,213,225,16,159,53,25,84,121,33,56,95,172,89,165,149, +17,0,27,33,156,19,228,170,132,16,8,33,96,173,157,110,46,211,90,90,26,77, +139,205,35,219,69,61,125,215,29,5,59,13,69,166,207,74,8,158,16,2,198,90, +204,106,220,170,15,198,190,22,130,51,1,148,91,91,235,115,117,231,190,154, +30,234,117,32,96,48,196,113,33,247,15,162,4,130,6,2,130,21,187,253,238, +171,23,142,247,84,130,6,124,24,247,161,193,136,193,164,201,8,26,240,170, +24,177,233,111,247,185,203,221,115,92,119,115,229,152,179,128,198,245,58, +223,83,50,125,207,248,75,208,1,175,96,197,98,76,188,54,104,192,3,22,131, +49,50,205,159,238,216,248,178,26,176,46,167,108,241,25,23,74,80,86,130, +121,61,119,178,47,108,239,223,82,81,226,252,137,88,172,200,242,92,89,254, +43,107,97,59,27,188,250,158,46,180,244,190,67,205,145,186,168,41,118,220, +152,113,95,140,243,185,183,231,201,25,21,59,134,231,98,239,203,214,97,89, +239,191,245,62,91,43,198,245,123,239,126,63,205,40,205,185,34,146,253,245, +189,150,149,187,198,190,62,112,152,100,181,182,115,206,193,142,66,212,217, +123,231,140,141,141,178,157,27,194,43,7,77,51,6,144,174,191,161,236,59, +20,176,218,147,235,215,147,229,183,93,191,239,124,30,157,78,202,154,201, +79,30,79,21,213,217,140,102,253,168,73,89,175,189,132,251,157,182,166,245, +125,32,146,38,41,25,9,194,236,170,185,201,1,102,246,242,155,15,195,190, +39,67,80,84,3,33,120,218,166,161,247,66,113,56,80,155,36,84,53,16,134,129, +182,233,232,251,30,175,130,20,37,199,195,129,202,197,27,121,2,234,61,93, +211,210,121,40,15,53,85,89,68,225,168,1,223,53,52,237,64,31,162,145,96, +109,201,225,80,83,22,6,157,9,10,50,202,118,46,56,214,155,74,87,155,123, +220,40,195,48,208,247,3,206,57,202,194,221,239,63,187,135,74,70,137,142, +66,121,102,32,229,188,73,118,144,132,156,160,87,162,33,100,157,155,148, +202,230,222,27,131,43,243,254,243,13,38,219,141,158,181,162,229,190,51, +173,179,136,152,93,139,126,207,243,209,213,115,231,27,58,43,208,36,143, +98,220,13,55,37,232,64,59,92,184,116,29,226,222,120,43,106,10,99,210,154, +143,199,187,225,194,121,60,94,214,20,51,47,79,55,194,33,160,218,211,13, +13,151,238,202,109,240,4,1,231,78,124,173,222,57,24,139,106,195,181,59, +211,104,193,177,124,231,96,13,54,33,58,107,79,86,214,134,210,218,40,202, +121,135,107,37,52,147,116,253,112,230,123,243,65,75,201,123,253,149,55, +113,120,127,229,210,221,24,164,230,84,30,169,148,184,62,86,19,154,155,227, +61,3,119,51,174,149,23,147,67,57,114,199,54,243,43,16,124,195,37,205,223, +169,124,163,54,22,107,36,139,100,109,140,164,105,61,43,253,112,229,210, +95,233,113,212,197,145,163,171,176,179,249,223,40,79,201,43,171,245,58, +215,181,227,146,49,8,84,86,104,13,75,3,136,29,228,68,100,235,20,233,142, +241,191,150,25,11,237,176,163,253,115,123,69,50,70,36,59,134,77,118,46, +216,71,103,217,249,219,102,191,202,62,226,193,158,131,52,123,87,37,99,80, +202,22,29,145,39,40,212,70,182,144,71,67,214,107,72,214,223,60,35,163,221, +82,89,235,226,183,57,60,174,43,165,43,179,161,105,130,225,151,150,206,210, +100,184,255,126,199,73,70,111,125,137,8,220,127,27,7,108,210,219,138,200, +114,178,51,11,231,190,0,20,84,241,125,75,219,123,66,24,232,7,193,214,21, +69,97,48,2,132,192,208,181,244,65,176,85,77,89,151,180,183,134,126,242, +246,3,218,183,180,253,64,8,129,126,0,91,215,56,103,49,211,135,180,216,178, +230,80,40,117,24,104,111,45,131,24,226,9,178,111,100,238,120,148,27,171, +78,86,239,22,2,205,173,197,21,142,170,44,239,144,248,106,243,61,130,250, +215,139,56,187,185,118,144,132,185,193,16,20,188,31,16,17,140,200,242,145, +179,243,178,202,157,125,239,60,107,16,201,114,163,142,94,173,247,30,68, +48,98,55,27,89,100,139,32,228,100,144,62,9,207,236,77,231,102,163,42,248, +208,114,238,206,116,193,82,148,95,57,185,18,43,146,140,73,37,164,227,173, +90,170,242,11,7,91,81,140,199,55,97,20,5,6,186,238,204,199,208,129,169, +57,84,63,243,94,11,97,184,49,152,2,107,4,213,142,107,251,193,85,45,135, +226,72,109,45,86,182,239,181,182,114,246,222,137,204,26,201,41,16,37,224, +253,133,239,205,175,92,122,79,81,191,83,88,131,106,195,185,189,48,152,154, +67,113,160,76,235,99,237,189,72,6,245,147,29,229,161,107,193,246,192,59, +231,129,50,200,25,217,170,29,151,246,59,87,117,28,138,35,149,141,30,252, +35,152,117,57,183,74,208,142,91,251,193,213,43,214,29,248,82,28,41,140, +89,124,7,205,78,244,246,91,140,6,133,60,210,6,146,65,149,50,74,85,114,222, +171,238,107,70,229,177,19,245,200,3,94,239,251,151,20,176,60,141,140,236, +202,46,246,208,144,189,117,45,251,176,186,102,100,213,198,99,206,172,65, +93,41,94,205,24,53,194,214,145,202,125,214,117,232,107,254,46,107,148,97, +179,94,36,63,55,78,102,143,153,123,204,146,112,214,81,201,207,193,114,157, +12,128,164,246,211,147,117,99,40,204,160,137,141,183,166,51,181,206,198, +112,24,47,51,17,80,159,238,47,228,77,203,237,135,9,244,93,31,149,114,225, +160,13,136,181,84,85,73,49,153,172,22,87,214,88,12,34,74,232,90,212,123, +164,168,112,14,66,63,191,190,199,56,71,93,149,20,102,230,149,27,64,227, +70,30,250,150,160,224,138,130,194,154,172,57,168,207,226,147,143,224,57, +133,174,235,128,64,85,22,19,236,153,219,124,123,66,65,215,16,79,38,116, +192,74,65,206,191,161,200,28,250,86,172,49,209,200,16,121,26,202,220,131, +247,158,161,7,146,243,30,18,12,46,9,137,217,219,244,146,219,112,186,244, +208,179,143,206,196,11,115,158,195,180,15,84,241,195,149,239,221,149,142, +154,247,250,200,193,88,36,205,139,106,192,15,87,62,186,27,157,148,188,85, +39,14,198,101,5,138,38,28,219,107,195,181,189,112,11,80,150,223,56,217, +2,43,38,238,47,235,240,42,24,90,46,221,7,87,111,168,235,47,156,156,195, +174,148,240,160,1,13,115,87,205,96,177,147,225,238,213,79,161,41,136,16, +181,17,131,81,8,132,136,114,45,214,133,193,138,16,252,141,239,205,7,23, +239,49,174,164,118,53,5,61,215,246,74,167,5,111,229,137,131,49,4,245,244, +195,108,161,167,176,130,168,143,40,24,160,1,140,17,2,1,52,134,192,76,26, +79,8,129,48,9,105,193,137,185,207,235,202,91,210,85,172,159,17,122,15,154, +66,104,196,247,31,13,194,208,70,227,200,27,234,250,43,39,23,103,70,103, +220,146,160,62,133,246,146,140,18,151,56,47,105,126,135,43,231,238,76,67, +197,91,253,198,209,22,152,140,65,58,223,67,185,248,42,25,168,120,18,242, +59,10,120,131,34,236,40,11,201,193,195,179,112,216,94,204,247,17,71,135, +92,72,96,29,106,203,25,230,59,247,92,243,86,200,160,143,155,40,210,92,233, +74,198,209,217,217,223,242,192,177,202,205,113,78,70,203,142,177,44,188, +192,183,216,225,133,228,28,36,125,128,78,172,157,193,53,146,235,80,77,48, +178,174,200,67,178,75,194,138,231,10,42,201,231,94,236,40,89,152,11,107, +8,240,110,48,44,109,39,217,224,2,220,9,42,57,8,79,50,48,227,98,172,22,91, +24,140,11,132,182,161,13,134,242,80,82,152,165,73,101,196,196,24,122,24, +232,187,150,193,84,28,170,2,39,22,45,4,235,20,223,53,180,65,40,14,5,206, +172,226,168,65,33,40,222,247,180,157,98,171,35,85,153,132,199,220,187,150, +252,2,16,242,222,148,172,81,10,85,6,239,233,186,158,170,170,48,73,177,170, +206,248,10,178,213,114,170,51,226,99,142,233,163,51,83,109,230,62,201,60, +216,52,221,126,22,71,213,192,224,61,54,41,177,251,58,90,109,202,249,154, +153,11,101,150,184,159,202,140,202,41,203,248,249,40,152,199,231,199,208, +8,120,239,103,243,160,75,52,131,165,33,160,10,98,100,33,40,230,134,138, +194,36,180,55,124,146,244,34,50,243,66,117,38,141,20,79,59,92,56,183,13, +106,223,248,90,30,168,141,76,65,110,37,208,13,23,62,218,27,216,19,95,202, +35,149,49,11,30,193,56,63,137,236,129,247,55,190,183,31,52,212,124,41,79, +28,157,139,166,110,154,32,85,193,210,211,116,23,206,131,82,87,239,188,185, +2,59,155,248,160,61,77,127,229,210,223,104,252,144,98,254,6,87,124,227, +111,234,35,21,158,110,184,240,189,107,104,195,128,2,214,84,28,171,175,188, +21,37,132,129,110,56,243,189,107,104,124,31,145,18,83,115,170,190,112,180, +74,219,125,112,83,75,101,2,222,212,84,18,24,250,11,23,47,28,170,19,21,158, +182,255,206,185,107,104,134,129,64,228,28,20,197,87,190,22,208,181,13,131, +17,124,232,25,188,80,59,67,175,3,129,35,63,213,95,168,141,167,27,174,156, +187,27,109,240,120,4,107,223,248,185,126,231,232,236,157,3,50,137,30,185, +199,194,21,2,158,97,232,185,245,223,185,14,45,189,10,136,163,42,190,242, +173,172,41,36,208,245,31,124,248,64,93,125,229,45,25,71,35,218,162,58,208, +245,233,253,67,31,165,138,169,57,86,95,120,47,42,44,3,253,112,225,163,109, +80,243,198,183,234,68,109,246,201,156,235,45,152,243,222,22,97,70,217,55, +148,55,114,68,183,161,173,53,41,46,75,210,147,188,231,205,3,34,238,38,180, +181,30,83,142,11,49,87,208,186,229,223,60,67,199,178,33,71,182,97,219,28, +25,142,157,103,62,130,225,55,74,87,118,66,60,51,3,44,71,116,221,9,235,111, +136,185,207,16,12,209,60,121,48,135,214,204,159,231,98,28,43,9,231,57,132, +41,203,41,30,193,115,157,9,225,5,123,126,100,113,51,255,59,75,5,174,146, +44,58,97,174,238,23,202,126,34,221,201,20,163,127,6,247,176,107,113,41, +161,239,233,134,232,149,87,101,177,128,0,37,41,63,63,116,116,109,79,175, +150,170,62,80,58,51,157,231,251,142,182,27,175,159,89,238,170,12,125,67, +211,52,116,30,140,45,41,171,138,186,114,19,188,247,0,89,123,106,209,174, +207,13,33,208,182,29,214,26,202,178,154,241,23,21,239,67,228,41,88,155, +101,129,122,31,16,192,90,187,217,148,241,184,143,222,184,117,219,152,23, +48,132,128,164,227,34,68,129,42,130,75,231,123,63,164,231,59,204,58,54, +149,12,19,65,176,214,100,60,125,197,135,48,61,127,29,146,64,149,224,3,168, +98,157,187,143,77,152,208,131,97,8,145,188,105,237,100,4,204,159,17,223, +79,16,44,152,181,215,16,239,175,40,98,93,134,164,53,31,255,106,254,52,224, +67,82,162,193,99,139,47,124,45,15,20,51,235,97,8,61,77,127,230,22,2,182, +248,202,123,89,37,4,105,254,124,159,136,157,6,131,50,248,11,223,219,51, +173,22,188,213,239,156,236,146,132,23,13,140,129,182,63,115,30,6,156,123, +231,173,168,177,233,187,135,224,163,226,233,91,130,169,57,214,127,224,93, +59,110,237,153,27,150,99,121,192,210,166,103,56,170,234,15,124,179,50,237, +91,107,12,33,92,249,104,47,180,90,80,214,63,243,205,216,59,182,166,129, +182,187,68,163,217,22,168,15,136,45,64,111,156,189,98,93,77,169,55,126, +109,90,6,83,115,172,127,230,93,123,110,237,153,70,13,165,9,116,221,149, +243,16,40,139,34,77,102,228,80,88,12,165,177,136,94,248,245,118,163,51, +21,167,234,15,188,209,112,237,174,116,41,84,55,255,200,241,251,129,179, +163,177,23,98,168,164,61,115,11,150,186,248,194,207,149,75,174,66,68,125, +172,122,218,254,131,143,193,227,220,59,239,69,25,231,79,199,239,118,227, +218,126,164,247,255,3,223,204,61,232,232,140,69,210,252,127,12,29,98,79, +124,169,222,162,243,192,126,166,134,236,120,135,107,239,109,177,255,114, +161,146,156,220,147,188,178,223,35,210,138,178,111,133,172,96,255,220,125, +36,131,48,62,244,128,101,137,80,200,206,35,121,160,20,121,50,100,118,184, +162,172,156,6,217,137,141,239,42,88,93,162,40,187,60,5,121,225,94,143,222, +225,17,26,32,251,33,146,93,35,80,193,141,76,21,201,218,148,107,21,205,78, +20,126,126,149,174,22,208,140,110,39,143,86,83,82,247,9,35,54,43,51,65, +158,16,111,182,223,82,35,155,181,235,25,76,65,93,69,229,99,102,158,107, +8,158,174,107,233,58,15,214,81,31,42,10,39,49,124,174,33,121,229,3,193, +22,84,213,28,150,75,130,176,168,57,218,146,162,107,104,251,144,156,47,121, +104,193,63,250,224,123,11,59,4,165,105,59,4,168,170,250,110,253,165,193, +88,107,87,243,59,183,149,162,98,21,246,72,52,241,184,206,51,20,86,115,237, +108,116,75,38,207,38,68,200,214,24,147,238,239,18,2,144,179,70,227,241, +61,216,9,198,241,239,133,41,100,113,60,164,231,71,143,60,10,116,231,236, +221,3,222,8,157,241,122,217,77,149,218,123,255,241,122,151,198,191,60,30, +232,135,11,151,190,165,167,224,80,158,56,218,2,59,9,146,8,221,198,227,142, +67,249,78,61,59,206,226,249,110,218,59,222,223,248,104,47,17,238,173,238, +202,125,177,174,53,208,246,31,156,135,30,113,111,188,23,7,156,140,4,191, +150,75,123,225,230,67,84,92,101,133,213,142,91,223,225,165,226,189,56,82, +155,129,166,59,115,245,129,162,168,168,140,197,165,185,20,85,188,182,52, +221,153,139,215,116,220,97,141,137,209,40,237,184,116,103,218,96,168,138, +138,48,92,105,164,196,105,195,109,16,140,41,49,225,202,199,0,206,189,241, +173,172,176,244,220,218,248,252,83,97,25,124,67,75,193,91,101,9,218,71, +34,158,5,15,20,198,98,233,184,116,30,204,145,247,162,196,209,211,14,61, +42,21,111,35,250,49,219,135,102,90,159,138,170,167,31,206,156,187,14,111, +106,190,212,71,14,201,240,28,5,147,106,160,233,63,248,24,122,76,154,63, +43,247,224,96,208,46,189,127,160,40,106,74,99,177,198,78,176,123,8,61,183, +238,131,139,15,88,251,30,73,146,230,49,151,68,30,192,198,185,88,243,179, +152,183,60,240,56,247,16,193,189,115,114,241,233,61,239,124,47,38,191,246, +90,245,5,14,203,46,197,64,246,179,5,158,216,35,15,231,55,251,222,15,4,244, +51,174,144,60,144,237,143,144,151,61,52,101,119,220,171,140,171,103,63, +243,119,117,91,106,176,46,84,185,108,96,243,209,142,213,133,183,126,247, +237,101,101,81,234,206,135,201,27,19,235,124,247,71,214,227,67,104,67,61, +93,219,209,171,161,172,75,10,107,102,176,108,192,247,61,93,219,208,169, +161,168,14,84,165,141,241,205,233,164,64,223,246,244,42,148,117,49,93,63, +45,14,3,6,19,25,206,65,65,28,206,197,88,190,46,48,138,253,47,240,40,7,123, +254,211,117,29,193,123,234,186,186,43,59,238,176,121,206,32,19,153,195, +101,178,47,120,230,208,120,246,120,230,90,145,4,141,223,159,103,54,6,225, +99,107,253,14,243,201,190,213,191,10,191,220,23,174,193,152,245,216,242, +43,63,174,33,217,37,180,200,58,172,176,67,54,92,146,223,60,109,127,225, +58,116,136,61,242,238,234,59,228,158,98,182,93,127,225,54,180,96,79,155, +227,235,185,156,230,45,180,145,9,31,28,199,58,66,238,38,67,108,107,186, +95,185,244,61,226,190,240,94,214,148,147,225,217,113,237,46,220,188,80, +85,145,224,39,225,202,165,189,112,13,150,67,117,226,232,74,140,182,73,81, +117,92,154,63,211,187,55,190,214,239,28,146,33,100,210,140,132,208,112, +105,254,68,63,156,248,90,127,225,96,61,215,238,202,45,24,14,229,17,23,46, +124,132,142,65,45,65,29,117,81,98,52,33,97,213,27,39,87,98,194,141,115, +251,193,53,56,14,133,67,181,103,160,228,84,68,104,222,203,137,55,9,244, +161,195,138,195,104,199,165,191,209,5,69,164,167,233,193,152,138,67,249, +22,223,117,54,143,243,245,61,174,143,174,63,243,209,221,8,246,109,10,133, +44,63,122,156,191,115,63,96,220,251,106,254,238,242,110,84,228,241,253, +199,249,49,32,201,184,234,59,76,241,141,183,178,194,137,188,196,41,121, +70,40,229,129,243,178,23,227,205,66,231,143,214,243,139,104,34,47,60,251, +81,156,249,21,7,7,30,199,201,245,193,60,200,39,238,243,212,155,126,144, +143,254,236,189,159,205,33,79,226,245,100,120,66,57,244,225,149,156,251, +28,218,226,230,167,233,46,81,74,87,244,183,173,82,216,2,175,107,181,157, +7,215,183,194,87,48,51,28,245,213,69,184,22,130,161,239,104,123,112,135, +146,210,37,218,76,242,218,251,182,165,27,2,226,42,142,85,25,189,23,230, +185,213,227,245,138,59,28,40,19,52,188,80,97,99,158,111,215,210,169,165, +172,211,115,228,185,149,249,10,204,50,66,67,222,123,186,174,163,170,42, +156,43,242,97,116,30,199,179,126,203,207,252,222,33,40,222,15,11,229,254, +40,84,242,108,76,207,98,112,235,115,67,8,12,62,96,141,32,98,246,173,96, +121,62,158,103,115,47,153,205,169,201,131,189,117,223,185,120,161,42,222, +57,21,37,118,92,195,10,170,45,183,238,156,142,127,185,31,151,39,30,136, +122,250,225,202,121,24,144,226,196,209,186,168,104,85,241,41,197,76,241, +12,41,189,142,226,11,95,82,28,217,171,193,226,233,251,11,31,221,64,81,125, +229,224,44,193,159,185,52,31,92,130,227,173,62,113,114,35,249,171,228,80, +253,76,225,26,190,55,191,210,78,185,43,163,65,85,113,168,126,162,112,199, +116,92,64,7,186,238,194,121,128,67,249,70,109,160,237,27,110,190,39,32, +188,85,53,37,61,31,253,64,81,125,73,207,143,12,251,107,40,56,85,5,248,43, +173,28,56,56,135,14,103,122,169,56,88,131,239,175,4,115,160,146,158,115, +31,40,170,191,225,231,162,76,233,101,49,102,20,201,133,178,95,44,75,21, +31,46,92,186,11,189,188,241,109,206,115,152,8,115,202,48,156,249,232,58, +164,136,198,81,33,113,126,221,204,106,184,207,207,141,143,230,87,154,25, +241,216,251,27,215,174,65,237,87,78,69,57,101,64,60,92,87,159,216,144,63, +162,168,126,235,222,255,140,140,125,197,43,127,20,118,252,204,24,94,149, +35,207,136,116,143,98,225,175,26,31,143,216,239,175,122,234,123,16,190, +190,248,110,123,188,133,71,142,162,99,17,15,207,121,211,107,245,45,15,38, +117,29,129,223,46,19,89,157,187,253,152,146,133,178,244,201,135,143,194, +213,71,8,215,15,52,77,79,144,2,103,237,100,223,251,174,229,118,107,24,164, +160,172,107,202,20,243,28,111,30,66,98,245,250,126,118,189,153,165,194, +232,68,218,138,44,253,142,174,135,162,170,168,10,187,50,2,94,87,40,251, +214,176,210,182,45,34,66,89,150,187,240,140,252,70,197,253,136,220,178, +96,118,11,41,14,47,191,175,21,241,194,59,105,130,3,92,138,179,63,21,170, +191,97,78,242,27,91,9,225,198,57,197,165,15,51,248,124,228,100,132,112, +229,220,94,179,199,159,127,179,64,239,59,186,193,83,186,152,43,63,168,167, +245,1,161,224,80,20,136,246,92,186,11,157,58,222,172,67,66,195,197,123, +48,21,39,233,185,116,87,122,42,142,70,232,187,95,249,104,190,115,213,146, +183,250,157,55,231,32,120,134,233,107,6,122,223,18,164,224,88,158,56,24, +193,39,162,221,246,248,17,19,206,252,218,119,88,247,141,247,162,0,127,166, +29,58,58,117,188,87,95,249,90,8,151,102,124,190,161,111,127,229,163,29, +159,95,83,104,203,77,13,101,81,194,16,211,4,15,101,137,246,87,122,74,14, +69,65,104,63,232,113,84,166,152,140,38,49,118,99,32,229,191,117,160,31, +90,110,62,96,75,135,197,71,238,200,120,253,20,94,184,68,134,191,115,72, +184,113,241,1,164,228,228,108,220,223,139,247,239,240,82,166,186,2,22,136, +198,91,171,5,167,242,72,109,228,37,200,244,183,66,186,242,137,125,242,151, +218,127,159,65,3,94,29,251,143,202,168,223,99,92,159,149,209,242,131,6, +152,252,198,185,150,79,158,183,62,199,253,182,169,95,43,244,215,162,20, +143,64,81,225,85,129,56,23,254,74,24,122,218,166,161,27,124,18,182,128, +81,154,27,104,93,98,117,160,189,53,116,67,0,211,211,94,123,58,4,99,29,101, +85,227,36,208,183,55,186,33,164,235,117,186,158,186,194,138,167,187,165, +251,3,198,22,184,178,226,112,114,184,79,110,244,87,126,130,6,250,190,39, +132,64,93,215,191,251,253,63,179,144,85,73,213,234,116,67,52,251,183,248, +185,63,63,252,69,159,159,95,119,154,32,247,43,215,190,33,152,19,95,170, +35,213,84,201,16,2,67,58,222,18,204,113,121,252,19,79,55,166,164,178,3, +93,247,11,127,236,45,133,59,114,170,142,28,108,129,16,232,125,207,16,60, +33,244,124,191,13,116,238,20,21,141,53,4,223,37,4,171,225,220,64,105,11, +92,113,226,139,57,242,230,132,190,255,133,95,219,134,78,67,52,163,77,65, +105,143,188,215,7,42,9,180,221,47,252,218,229,142,215,88,58,174,93,36,17, +190,23,37,162,61,141,239,232,168,56,149,111,124,173,14,24,109,82,202,236, +236,249,238,196,23,91,83,27,24,122,67,233,106,156,118,180,193,82,23,21, +198,119,220,180,224,88,29,169,101,224,102,28,102,232,248,184,254,19,23, +49,88,91,71,70,191,43,94,16,84,49,80,100,129,174,253,87,254,185,151,148, +17,240,45,101,23,40,131,239,25,66,32,132,27,223,175,158,206,29,226,252, +137,62,120,255,88,87,64,146,1,209,14,138,45,78,159,86,238,127,105,133,252, +159,241,71,254,131,140,237,223,245,56,255,123,243,71,125,238,207,189,102, +153,254,22,99,97,140,222,203,15,236,154,49,213,41,132,64,174,36,212,84, +202,51,119,28,137,101,103,73,228,173,77,193,225,189,235,227,117,230,47, +244,117,187,174,167,235,58,156,179,19,177,238,175,245,51,79,197,51,127, +133,129,140,207,31,83,229,254,45,31,28,66,203,109,184,113,243,130,115,245, +130,173,126,63,222,112,243,108,143,127,250,29,61,62,220,217,6,34,38,102, +10,140,199,197,19,66,170,113,174,18,75,170,154,123,153,179,16,60,97,90, +179,38,37,151,91,140,70,242,153,215,245,186,55,184,177,220,116,230,184, +49,134,152,117,31,8,99,9,215,228,223,170,6,124,34,58,218,41,95,61,243,124, +137,40,89,12,51,196,191,5,82,29,40,85,2,38,149,133,205,140,65,98,25,223, +87,246,216,114,254,182,215,71,25,17,82,198,70,50,7,166,146,190,15,230,103, +228,136,232,64,211,254,202,47,125,79,81,254,196,79,85,133,249,47,133,253, +95,63,255,222,141,164,255,222,252,81,179,53,146,119,52,184,172,235,239, +234,15,104,250,204,121,99,90,156,252,215,142,193,123,207,237,214,96,83, +97,158,177,214,252,95,227,39,164,52,181,53,177,238,175,241,124,107,204, +191,157,68,77,169,82,17,210,45,169,139,152,139,110,102,202,253,225,241, +255,250,249,79,245,163,161,229,220,254,202,217,59,222,170,47,28,157,91, +100,68,252,215,207,127,253,252,123,252,113,115,63,253,78,181,153,149,157, +213,165,22,159,43,116,125,84,243,115,81,128,63,177,243,117,153,87,56,158, +110,70,222,174,188,138,11,252,54,204,224,175,3,232,232,75,239,160,10,77, +211,2,164,184,187,121,0,16,189,98,93,61,251,187,236,222,103,108,69,48,22, +147,121,253,251,252,126,158,59,179,231,35,252,134,247,253,236,152,99,81, +147,183,170,68,229,94,0,101,126,220,141,199,177,83,57,218,191,36,214,245, +31,107,125,63,59,159,255,64,115,49,134,99,44,133,141,188,30,35,63,30,35, +254,203,206,237,191,247,231,252,222,107,224,81,175,195,191,214,218,214, +191,240,60,191,126,15,249,99,243,199,141,158,222,120,230,171,169,132,101, +39,155,71,42,99,209,81,104,231,220,109,59,69,249,29,62,216,111,21,244,175, +180,49,248,125,63,142,106,108,36,115,187,221,56,28,14,56,231,50,74,227, +71,223,235,147,11,47,117,199,11,131,143,5,108,204,103,141,23,94,54,106, +246,140,11,37,214,154,183,214,238,132,6,158,101,6,255,53,54,223,95,222, +8,124,110,164,253,200,253,94,93,223,159,217,7,127,137,189,187,247,237,245, +147,239,252,202,94,153,167,196,4,124,172,167,123,47,159,253,187,10,254, +255,44,198,219,143,25,211,175,213,117,251,75,141,79,94,88,71,252,78,207, +248,75,172,141,253,53,110,178,86,104,46,161,126,204,161,89,237,239,221, +30,115,83,254,174,204,90,199,228,152,249,185,184,251,94,111,169,197,96, +158,249,127,143,204,19,158,103,59,230,224,137,103,89,235,159,173,198,190, +204,169,139,213,234,90,156,179,20,69,98,171,63,77,32,123,229,216,167,106, +0,78,223,13,149,216,130,213,60,58,119,175,62,211,103,149,75,190,174,148, +91,40,119,121,242,77,244,19,155,141,23,190,249,111,241,40,30,29,147,23, +159,253,106,43,30,94,92,39,250,228,249,175,188,255,163,125,240,25,126,184, +252,198,249,84,30,23,26,125,246,77,31,173,5,93,61,35,10,68,59,99,228,63, +30,155,252,142,235,71,126,135,121,148,23,206,253,189,247,196,163,140,124, +249,164,252,122,245,26,249,132,60,206,201,141,189,22,48,143,230,233,25, +191,254,21,5,174,79,190,151,252,240,55,112,219,18,51,119,15,106,84,195, +83,227,133,57,204,190,146,155,139,178,181,196,62,242,139,38,33,243,198, +177,137,96,115,87,96,251,80,243,16,122,188,250,157,169,216,83,150,247,106, +123,177,176,234,222,143,193,138,161,176,69,166,46,223,51,175,80,30,44,148, +87,63,228,253,191,67,80,186,174,157,170,213,125,78,97,63,59,254,25,197, +159,122,219,135,33,194,227,214,172,206,213,23,55,90,110,243,188,34,12,82, +103,238,224,73,197,209,51,37,116,94,121,199,71,199,149,199,173,181,62,235, +57,190,234,45,234,11,115,242,40,65,84,31,172,35,249,132,23,161,79,215,192, +115,164,228,209,156,62,155,231,207,174,221,103,173,65,62,131,248,189,178, +46,244,119,216,235,240,184,73,237,222,152,245,19,74,239,85,185,160,47,174, +139,207,40,38,249,196,59,61,219,171,175,122,207,242,162,44,249,236,220, +201,131,189,249,104,108,250,34,90,249,35,223,240,209,245,175,203,62,119, +87,208,186,7,28,47,59,224,204,146,212,199,186,205,164,166,39,83,244,94, +244,94,243,119,134,229,47,218,77,202,188,102,212,114,144,170,240,209,127, +231,207,221,31,23,163,154,26,135,204,94,124,209,231,46,165,184,140,93,160, +238,157,81,86,186,127,211,52,26,190,30,126,230,111,143,127,135,17,75,190, +134,210,43,10,237,199,172,93,5,218,174,35,132,64,85,85,177,102,251,195, +26,69,123,136,196,51,97,146,83,52,219,26,81,170,33,17,251,126,11,233,81, +127,252,252,160,152,177,246,185,240,226,252,63,131,104,101,199,251,123, +230,21,235,139,232,210,171,2,255,149,235,30,109,240,103,235,226,217,154, +124,38,72,245,129,97,242,204,160,248,145,48,193,171,200,207,43,48,234,43, +165,89,94,53,232,62,35,96,159,25,96,143,12,223,87,222,231,85,99,79,95,120, +166,60,49,190,30,205,243,179,53,243,106,1,214,207,34,174,175,162,115,207, +198,249,25,3,136,79,24,153,242,9,121,196,147,121,127,21,69,123,180,6,103, +197,232,254,216,252,81,99,140,124,214,251,61,253,247,88,221,110,30,144, +143,199,83,90,153,222,75,157,174,122,121,206,218,235,36,92,64,151,204,58, +35,102,6,212,223,7,212,249,134,127,106,254,191,212,5,77,147,188,191,23, +151,97,194,25,116,234,242,53,87,254,11,15,126,78,20,208,181,103,175,51, +2,225,253,29,255,254,203,255,192,183,250,167,79,8,212,223,18,255,141,215, +13,67,207,237,218,80,213,37,69,81,36,98,157,190,96,41,191,234,125,189,158, +234,16,121,0,30,107,83,170,147,200,39,5,156,188,184,129,242,227,10,33,178, +230,141,141,105,98,34,175,120,145,207,226,177,143,106,80,253,136,215,240, +74,161,200,103,239,253,91,141,130,207,144,39,31,53,158,252,140,39,198,39, +214,225,51,35,248,213,24,184,126,226,123,188,138,180,124,214,40,127,118, +238,43,30,236,43,138,236,145,33,247,104,238,94,93,191,242,27,208,171,87, +90,232,60,147,151,159,57,95,127,112,61,188,186,94,225,133,134,184,47,142, +239,51,134,245,43,255,45,15,16,177,103,232,200,242,152,211,92,215,129,181, +66,159,41,246,177,14,253,252,220,169,209,136,166,252,220,123,231,228,169, +191,184,112,247,230,69,36,211,74,70,185,13,23,254,165,249,71,20,33,168, +231,232,78,28,237,9,147,202,84,166,198,144,196,206,206,115,231,60,220,141, +8,230,213,168,152,198,55,121,252,26,97,251,209,206,9,97,160,25,90,154,230, +6,192,63,253,242,143,248,119,207,31,78,127,251,162,64,92,67,204,207,224, +248,229,34,81,85,154,166,193,186,84,229,75,30,245,56,122,4,241,190,26,87, +221,95,252,154,12,37,231,204,172,147,223,163,56,239,103,20,219,115,171, +84,53,126,101,235,12,76,196,203,61,175,229,21,168,248,145,96,209,23,5,97, +174,216,229,43,6,196,171,94,209,171,74,234,153,167,192,3,15,224,213,53, +240,72,49,61,51,110,217,185,134,23,215,204,51,136,85,94,8,5,232,139,247, +209,39,115,250,200,27,149,7,158,235,51,238,208,43,158,57,11,196,50,120, +5,99,176,230,21,197,251,44,28,162,79,198,38,79,230,62,53,155,242,33,134, +206,68,50,229,200,31,181,208,122,197,128,122,214,146,230,149,181,253,40, +252,241,8,149,123,169,183,220,139,222,53,47,42,231,87,214,203,158,156,223, +51,8,238,243,233,32,182,85,69,215,53,225,83,109,250,57,4,63,111,175,51, +42,250,209,11,215,121,181,122,93,244,200,101,66,4,70,165,191,86,30,81,57, +255,75,243,207,147,114,254,219,250,239,169,205,129,128,191,171,108,181, +201,203,19,166,146,51,162,128,141,74,91,72,157,198,148,144,198,46,198,46, +12,0,21,69,99,247,209,216,93,206,150,188,187,130,186,172,249,245,227,151, +56,142,143,127,225,173,124,167,48,5,152,177,54,254,43,144,152,62,248,8, +219,255,14,170,244,93,71,8,112,56,212,137,144,168,159,176,150,95,133,135, +159,25,40,146,170,247,197,106,117,206,153,29,67,227,21,248,246,213,205, +187,26,139,130,6,159,170,213,57,150,217,129,143,54,235,51,139,246,85,175, +76,159,192,130,235,10,215,100,5,50,65,99,243,33,64,37,0,6,99,117,133,68, +124,198,179,213,149,17,20,151,179,106,136,5,101,172,188,160,244,158,197, +67,229,9,194,242,44,70,187,228,191,232,180,193,236,206,123,127,38,110,46, +63,0,225,190,130,64,140,215,196,53,47,41,180,72,208,84,212,231,238,64,140, +13,142,48,22,35,175,238,113,121,98,136,231,214,212,253,161,193,183,52,183, +27,77,7,213,219,59,135,114,44,248,163,159,216,127,143,12,204,220,243,159, +40,199,224,233,110,87,110,55,165,120,63,113,168,220,170,0,249,35,89,33, +15,96,245,103,168,211,43,94,249,103,225,108,125,33,92,36,79,194,34,63,146, +141,245,8,81,216,115,40,120,18,22,97,119,206,221,228,89,39,108,94,102,158, +124,36,212,221,181,244,212,125,43,193,237,170,219,206,113,243,166,247,50, +107,194,59,14,219,136,100,75,213,254,211,237,31,9,26,128,192,63,28,254, +71,140,24,60,67,226,224,27,130,14,248,16,208,212,124,101,80,161,168,10, +10,23,225,108,13,158,193,15,12,93,79,239,99,77,122,113,5,85,89,226,108, +140,43,107,106,1,219,119,61,94,5,91,149,20,46,26,2,70,12,223,222,127,226, +95,255,252,71,212,123,254,143,255,251,127,231,191,253,225,127,163,58,28, +40,75,153,170,117,189,6,187,188,192,182,87,197,15,158,174,235,41,203,34, +197,221,95,245,204,159,33,5,175,198,128,150,2,222,136,193,20,250,128,112, +248,74,155,5,253,177,107,99,225,113,172,27,179,42,244,65,108,233,51,138, +82,30,196,85,229,69,152,89,159,199,27,189,18,218,129,254,220,210,181,169, +117,176,181,20,167,146,234,189,192,90,32,181,217,141,85,226,198,109,167, +59,2,47,99,48,42,104,219,209,254,185,193,171,163,248,185,162,180,118,19, +230,122,238,45,191,226,69,60,131,255,243,34,71,135,43,253,237,202,64,69, +117,124,139,198,226,42,6,20,66,64,196,206,106,27,188,98,140,200,139,241, +94,125,49,22,156,170,215,117,23,186,166,195,216,26,43,3,125,123,77,37,162, +83,213,70,17,196,58,108,245,78,117,56,97,156,121,50,119,79,222,69,163,172, +66,146,241,179,233,187,234,233,154,27,215,203,13,111,106,234,183,19,199, +210,36,39,76,241,62,86,7,180,118,60,204,48,55,0,0,32,0,73,68,65,84,221, +205,67,31,236,181,71,202,96,230,100,133,112,55,28,197,44,154,155,196,66, +128,1,223,183,180,189,96,66,152,33,163,207,61,255,207,41,189,103,240,249, +43,240,246,51,132,2,158,183,142,121,132,200,40,159,175,0,155,83,224,143, +8,126,242,226,26,219,51,102,244,78,178,187,195,242,146,60,246,148,224,38, +179,162,39,83,232,58,42,127,153,189,171,174,218,168,141,81,242,73,153,39, +3,57,199,136,14,26,104,67,131,162,28,221,41,118,10,83,197,153,58,90,216, +218,19,250,129,126,232,25,188,103,8,96,75,23,189,23,141,101,36,251,126, +96,80,48,69,73,229,6,250,190,199,107,244,146,189,247,104,24,232,250,129, +16,2,62,40,82,22,19,236,165,51,15,178,42,10,254,124,190,16,60,244,226,121, +43,98,121,206,231,2,244,21,171,238,62,241,131,31,232,218,142,194,57,170, +178,122,193,59,151,23,96,29,125,8,215,236,89,121,154,186,236,69,99,202, +62,241,150,94,49,52,228,197,177,165,35,1,124,240,177,90,158,88,94,99,151, +243,36,190,252,138,183,180,135,4,232,139,207,78,119,232,6,186,143,142,222, +27,138,67,205,241,171,197,216,116,208,166,80,131,15,12,151,150,174,83,204, +161,162,58,216,105,111,61,238,160,125,31,143,134,192,112,27,24,130,96,223, +28,174,48,59,29,27,117,199,184,202,121,15,123,134,206,43,134,194,178,110, +2,190,161,187,93,240,234,112,245,49,133,90,230,36,217,129,208,92,104,219, +128,169,142,148,85,153,184,56,175,192,252,123,105,87,159,89,243,243,191, +123,66,119,165,191,13,72,113,160,168,143,136,4,140,43,48,183,51,125,48, +20,245,27,69,89,196,167,90,247,2,130,244,36,188,22,60,190,61,211,117,30, +170,35,85,85,205,218,44,43,218,119,52,215,11,215,65,177,213,27,239,199, +154,194,36,229,238,123,154,203,153,115,171,148,167,55,78,117,145,136,176, +175,132,7,159,163,85,234,7,186,219,133,219,0,174,58,112,172,138,69,237, +9,65,8,40,94,5,113,38,54,21,14,66,76,180,126,101,175,60,10,251,252,40,28, +253,74,42,168,62,145,3,207,200,128,143,20,241,51,185,243,140,71,245,154, +124,121,46,111,247,13,10,55,249,230,114,79,145,26,235,194,143,233,110,35, +45,237,222,199,92,87,53,107,239,12,122,153,55,183,157,13,36,42,247,252, +75,121,13,4,13,40,129,55,247,142,106,192,74,129,96,80,122,134,118,192,3, +214,10,195,160,24,231,40,92,132,172,70,2,158,45,98,123,77,17,101,104,135, +216,73,170,16,140,4,252,208,227,17,172,19,124,163,136,115,148,169,172,232, +24,163,15,126,160,235,123,196,154,84,194,187,68,197,199,58,217,242,44,246, +247,44,207,124,251,225,219,166,67,140,80,148,21,98,158,41,239,87,82,34, +158,229,77,62,142,3,27,107,179,189,253,62,247,243,200,146,150,135,138,200, +58,59,11,221,200,99,79,54,187,168,95,33,218,101,196,193,160,168,128,49, +179,242,139,40,234,35,39,192,152,20,246,33,194,225,99,209,166,48,164,162, +39,226,233,126,185,209,14,150,242,107,73,121,176,203,240,130,15,4,31,8, +109,71,115,246,80,20,20,54,122,177,19,209,52,4,130,10,198,42,193,39,139, +199,24,196,36,58,104,136,205,147,4,176,135,138,227,123,236,178,38,73,184, +134,33,196,53,228,195,61,104,102,101,170,91,33,233,156,137,55,51,110,72, +35,119,33,46,143,140,72,137,53,228,147,215,38,83,95,235,88,43,63,42,175, +43,237,249,204,32,21,229,225,141,162,116,247,47,226,61,26,60,218,95,105, +154,14,138,67,188,46,232,100,245,171,6,212,43,247,156,91,27,21,152,40,104, +136,97,15,99,32,213,187,23,0,83,76,123,56,126,179,123,56,15,177,136,49, +51,217,230,227,55,37,133,81,134,51,77,51,96,220,137,242,16,199,163,4,124, +119,197,7,75,113,120,143,61,32,204,244,18,168,143,236,159,136,100,26,196, +154,36,31,61,193,43,98,239,239,76,24,34,138,104,93,188,54,120,180,187,208, +52,61,184,3,165,88,240,10,54,137,202,254,202,175,191,92,233,165,224,240, +118,226,144,28,16,245,158,33,120,134,230,204,247,75,67,112,7,106,35,17, +5,193,164,241,41,193,199,62,5,105,55,99,11,155,162,138,1,239,3,138,141, +104,138,198,249,244,33,196,10,141,162,248,224,209,190,225,214,14,4,87,225, +140,68,52,85,109,170,49,122,39,82,9,130,117,37,69,33,179,112,197,184,14, +61,74,156,23,131,206,16,128,31,221,183,143,234,149,188,130,0,200,11,220, +17,121,96,20,231,188,233,103,232,146,188,96,164,240,178,124,122,77,209, +203,46,239,193,45,191,145,220,99,205,115,133,60,165,193,37,230,249,212, +63,126,140,191,167,232,186,44,95,108,206,176,151,133,103,182,156,144,214, +223,34,113,78,21,103,10,130,6,140,148,211,25,166,176,56,160,107,91,6,49, +148,69,172,172,54,165,205,77,85,117,2,126,136,138,90,77,73,89,152,88,27, +188,112,136,6,134,110,192,139,196,235,19,41,48,86,75,235,99,44,124,106, +238,97,176,206,49,132,102,6,161,62,131,127,95,33,77,196,249,235,250,30, +31,60,199,250,116,207,51,207,100,30,44,5,108,6,206,91,143,109,193,145,96, +123,253,188,134,240,40,135,124,236,150,102,141,5,51,14,99,7,2,203,53,180, +159,221,95,229,222,55,59,219,133,121,108,26,35,247,249,11,99,220,29,55, +39,121,100,174,213,57,60,180,157,251,121,22,133,100,54,224,244,235,253, +62,161,233,105,191,247,112,168,168,142,201,235,86,208,193,211,125,180,248, +96,177,46,208,93,60,82,87,28,190,22,152,224,233,206,45,109,7,246,173,164, +100,160,111,2,234,138,20,15,159,13,169,247,12,151,134,230,99,192,119,158, +160,130,45,2,183,166,195,148,5,229,215,10,103,60,221,185,103,240,130,51, +129,190,241,120,21,220,91,205,225,189,64,66,186,199,185,199,247,81,193, +215,127,168,113,163,161,209,180,116,31,61,131,17,164,11,248,62,64,225,40, +191,213,84,7,131,4,101,184,245,116,31,29,126,8,4,159,140,248,194,81,126, +173,169,142,163,161,203,44,3,230,110,164,71,253,213,48,52,23,186,91,19, +209,48,2,42,5,238,240,19,199,83,141,9,29,253,237,66,239,29,213,151,55,10, +231,166,125,19,250,43,221,249,23,218,182,71,213,163,106,49,125,203,208, +20,184,234,68,125,58,96,212,51,116,23,218,107,67,240,30,21,139,173,190, +114,120,59,70,216,252,246,65,215,121,140,115,104,127,163,239,7,196,29,168, +222,126,162,44,45,248,142,161,189,208,222,26,130,31,162,226,26,175,55,160, +190,77,227,191,49,248,16,21,46,22,83,255,68,125,56,96,197,128,14,132,230, +59,125,27,48,199,159,41,170,50,201,51,69,135,217,253,67,84,98,182,250,198, +225,237,132,213,134,238,250,11,221,96,41,222,126,162,116,18,223,249,122, +38,72,137,45,29,218,156,233,251,142,144,20,173,177,45,190,141,176,127,125, +58,33,190,229,124,254,160,161,230,253,235,27,71,151,128,213,161,229,122, +254,149,95,207,13,93,219,199,176,100,57,208,223,46,184,250,200,219,215, +119,142,133,193,183,13,183,243,119,174,157,199,171,161,168,79,124,253,122, +162,178,66,215,156,57,95,59,164,56,241,254,86,99,233,233,110,13,183,65, +40,10,135,209,158,182,235,25,6,79,8,130,213,150,115,223,225,202,146,250, +120,164,178,50,133,101,213,7,2,134,162,44,40,166,250,20,145,180,220,183, +55,206,31,13,82,30,56,157,106,204,162,126,197,35,34,24,59,156,5,249,132, +131,242,140,148,252,172,226,229,51,168,254,81,172,252,85,99,226,89,157, +136,87,8,125,242,162,33,50,243,224,239,215,141,17,29,153,39,189,223,101, +170,204,5,101,252,131,172,149,206,98,222,231,173,100,205,67,248,45,198, +222,163,98,137,74,55,36,225,50,220,111,221,117,180,189,98,202,177,108,106, +152,177,228,73,241,245,142,174,235,241,148,148,165,195,138,76,124,121,29, +210,245,149,195,88,166,14,90,97,232,104,187,128,88,135,115,202,208,122, +164,40,112,206,68,143,66,94,181,252,228,169,149,165,8,26,60,109,211,82, +85,37,206,218,133,110,246,195,16,227,224,214,44,159,149,148,167,31,124, +58,190,28,195,152,25,224,7,143,177,38,193,220,107,221,23,67,21,139,235, +85,16,3,86,28,40,12,253,16,61,249,117,229,184,105,124,62,118,24,91,119, +217,72,118,159,239,227,113,201,80,126,117,28,159,177,209,187,76,235,37, +26,83,38,62,127,28,191,217,110,72,69,227,252,88,59,121,190,139,185,157, +230,103,6,143,47,2,66,227,251,11,198,216,8,119,95,59,134,96,168,92,234, +153,230,13,134,128,191,38,184,253,232,40,204,192,112,25,8,94,241,93,79, +127,233,241,106,169,190,69,47,70,187,128,113,194,208,182,220,254,172,232, +215,138,178,78,125,224,157,193,157,42,170,65,105,172,163,122,47,41,235, +148,161,144,180,106,248,232,104,63,122,212,149,184,175,37,117,57,208,124, +31,166,44,6,77,247,56,168,114,59,131,61,21,137,167,16,13,145,254,163,165, +109,160,248,82,83,158,12,254,124,163,237,146,225,237,61,221,247,134,222, +91,220,91,77,229,148,238,151,134,158,130,250,91,69,81,202,228,161,170,42, +67,63,96,77,90,127,42,16,122,66,251,65,219,14,80,28,169,190,189,35,190, +161,59,127,224,237,137,170,170,49,26,24,154,239,180,157,80,156,222,40,10, +187,32,138,138,173,40,14,39,188,63,163,238,27,229,241,132,181,163,243,16, +208,246,131,107,211,130,59,81,189,191,35,122,166,61,95,167,79,23,134,43, +221,245,202,16,132,162,56,80,28,15,152,219,159,232,136,45,92,195,237,59, +77,211,161,69,186,158,11,237,199,53,129,14,30,223,124,208,182,61,148,39, +170,111,239,212,190,165,187,124,199,155,35,213,233,132,181,6,197,163,253, +153,246,230,49,199,47,148,135,18,131,2,3,254,250,17,123,67,76,227,187,220, +199,39,76,178,71,76,141,232,64,127,57,51,12,96,171,111,84,117,25,215,149, +85,194,7,152,234,68,121,60,225,236,232,0,25,52,120,110,231,239,220,66,205, +219,251,59,167,226,190,182,197,22,212,199,47,132,33,240,171,41,249,250, +246,133,211,161,136,176,190,128,16,184,253,242,39,174,234,56,158,126,226, +111,190,64,115,249,206,181,31,24,60,84,78,112,54,118,196,11,18,137,123, +125,146,143,199,83,69,105,5,213,2,107,26,154,14,138,186,162,42,236,68,42, +156,250,79,164,16,110,240,30,181,37,85,233,34,39,41,33,155,234,7,134,126, +64,108,73,85,151,137,79,4,175,229,218,127,6,182,151,7,255,62,130,172,159, +57,99,143,98,232,175,160,154,63,210,169,253,21,175,93,94,184,223,163,138, +129,99,161,155,209,115,159,231,178,143,94,211,8,197,103,61,200,7,252,22, +77,2,92,100,165,48,50,241,31,150,69,108,84,73,177,157,72,250,8,67,79,235, +61,24,75,225,98,76,106,188,70,211,2,235,135,158,190,243,96,45,229,161,72, +145,228,8,168,233,208,211,14,30,53,38,41,213,72,214,235,135,142,33,16,21, +186,81,134,161,39,8,184,194,166,208,146,190,104,221,241,146,133,166,62, +208,118,29,198,8,101,81,45,190,149,168,96,83,234,201,230,250,233,248,92, +249,234,18,41,81,131,117,235,48,200,252,248,246,122,239,67,132,199,173, +141,165,56,173,203,132,11,146,49,71,186,222,100,222,127,28,159,179,59,237, +92,37,29,159,25,123,137,27,1,18,61,168,233,254,121,248,46,26,2,107,99,113, +126,166,153,41,142,237,24,36,149,26,29,189,145,208,246,120,47,216,218,33, +67,199,237,18,48,85,129,99,160,31,162,167,92,30,4,109,134,20,103,239,233, +47,6,83,150,212,111,46,182,105,5,164,42,168,190,42,124,52,180,77,71,247, +33,136,173,163,242,4,66,231,25,60,216,186,164,58,22,119,227,35,4,252,173, +163,107,60,230,88,83,125,41,163,129,121,86,140,179,184,67,92,231,35,188, +62,244,32,117,65,121,76,141,78,188,103,184,244,120,28,213,223,148,148,181, +133,174,167,199,96,143,5,174,8,244,31,29,125,39,216,247,138,178,130,208, +118,168,181,184,186,164,40,205,236,91,70,190,141,179,110,66,87,212,55,244, +205,7,125,47,152,234,43,213,193,33,161,163,239,58,212,30,40,223,222,113, +226,25,218,51,93,31,48,245,55,170,178,92,66,178,26,208,161,97,232,60,82, +188,83,189,189,227,172,73,76,251,142,225,250,65,215,246,80,188,81,214,21, +134,142,161,11,80,28,41,15,21,226,207,180,231,11,131,84,84,239,95,40,203, +2,29,46,12,226,112,182,128,238,131,166,31,160,120,75,241,236,142,161,137, +222,189,171,12,161,253,133,190,147,56,182,186,64,180,165,239,59,212,28, +40,79,95,18,65,119,32,180,23,186,164,196,203,250,128,17,69,67,26,95,215, +131,123,163,60,84,24,237,24,90,15,238,72,121,60,98,37,101,76,136,139,94, +254,181,71,92,77,249,118,76,228,66,37,244,77,114,26,222,238,239,63,201, +131,142,230,242,157,75,7,229,219,27,199,210,110,228,135,239,91,58,15,101, +253,206,251,233,128,75,89,19,161,111,185,158,47,220,122,40,223,14,84,165, +69,251,22,85,67,81,85,148,69,130,163,196,98,172,69,195,64,223,91,172,59, +112,44,199,245,171,132,132,44,185,170,164,46,139,149,113,61,27,135,239, +233,61,184,162,160,180,203,174,142,98,10,170,163,163,226,222,90,123,191, +252,180,60,241,182,159,121,251,175,40,67,121,33,142,206,11,231,63,51,16, +158,133,17,95,49,32,62,163,220,63,115,253,168,224,117,107,1,220,137,244, +179,60,55,88,253,254,236,219,68,161,44,187,177,216,249,79,184,51,245,85, +81,252,61,123,42,12,116,125,244,180,92,25,137,73,83,17,28,13,248,190,139, +144,55,35,43,254,110,0,196,44,152,158,182,235,232,49,49,46,152,8,43,109, +215,51,40,88,235,176,18,24,250,158,126,136,222,123,236,110,167,159,140, +71,231,232,78,178,128,152,219,174,77,213,234,234,149,34,27,245,228,3,203, +87,182,28,134,145,200,56,26,104,123,202,111,174,164,231,196,182,9,70,27, +211,30,205,99,43,51,42,132,125,22,188,236,128,114,235,247,19,148,160,227, +243,199,20,68,93,24,7,203,173,248,232,253,102,70,128,60,110,171,43,38,101, +134,248,129,225,54,16,172,193,72,160,255,24,208,194,160,67,79,31,64,170, +146,242,96,16,245,12,67,140,217,98,4,119,170,162,7,110,22,210,45,194,230, +0,190,195,39,131,74,0,109,123,186,75,143,186,130,234,228,102,200,66,52, +24,186,38,64,85,83,159,10,92,25,215,136,123,59,224,222,103,136,89,223,211, +127,244,12,56,202,247,2,107,83,6,198,181,101,232,20,115,172,40,43,135,241, +29,237,117,64,141,163,58,58,164,239,24,26,31,67,7,146,200,121,77,64,202, +59,79,224,94,218,42,173,175,113,191,251,150,254,118,97,8,46,122,156,85, +129,116,87,154,219,21,175,5,197,241,68,97,3,195,245,23,250,150,164,64,235, +165,241,167,138,246,23,218,219,13,165,78,158,235,104,220,181,244,151,239, +180,183,27,222,131,12,191,224,27,65,92,77,113,120,163,46,74,36,68,79,217, +155,3,135,211,251,61,166,111,78,84,214,210,95,207,180,109,131,15,32,125, +143,191,9,82,212,20,245,59,149,83,134,230,138,15,142,226,237,68,81,20,48, +92,105,175,87,60,105,252,206,130,40,225,118,161,109,110,73,137,31,163,130, +10,55,134,243,7,205,237,22,123,222,15,191,16,26,129,113,124,101,21,191, +131,239,241,125,75,24,122,84,42,236,241,11,101,81,48,214,169,210,46,189, +191,169,40,143,111,11,229,142,122,186,235,153,115,227,113,135,47,156,14, +235,134,78,129,208,94,185,92,26,188,59,240,254,86,69,229,174,160,161,227, +250,241,43,223,175,29,65,133,254,215,129,198,196,118,206,174,168,57,28, +106,156,137,180,56,31,34,82,96,140,163,172,42,10,123,79,93,212,161,103, +240,1,53,37,213,66,185,175,208,59,223,209,247,3,216,98,115,158,16,195,56, +203,102,80,243,228,185,77,17,243,23,20,148,254,128,162,124,150,71,46,51, +169,185,167,234,127,207,30,2,207,216,244,191,133,217,36,43,29,243,72,193, +203,204,230,214,59,220,122,215,43,50,241,229,238,185,236,51,167,127,29, +186,159,121,240,34,242,68,1,206,42,224,79,104,184,78,144,178,170,103,232, +251,200,154,47,44,214,164,116,55,2,193,15,81,41,251,128,177,37,101,97,167, +94,220,243,235,251,190,163,11,224,42,27,55,101,24,232,218,150,110,24,240, +42,244,67,135,122,143,15,1,76,108,251,25,134,144,132,221,99,224,232,49, +159,251,30,242,80,136,70,200,224,35,52,239,220,211,59,189,242,1,245,101, +3,68,152,39,46,250,148,70,104,141,65,140,217,60,103,63,139,88,94,158,11, +118,54,116,36,148,107,202,119,55,155,5,187,159,104,40,15,222,238,158,175, +241,252,39,48,52,30,223,41,114,72,10,223,141,177,247,200,112,47,15,22,241, +61,221,109,96,232,18,215,196,74,84,236,57,35,72,3,190,243,120,12,238,228, +176,133,192,48,36,56,223,80,28,11,108,57,187,174,31,232,27,79,80,75,121, +42,112,197,157,27,177,136,174,120,79,127,73,241,249,175,5,69,29,231,43, +52,61,67,19,160,168,40,14,22,131,167,191,121,134,193,80,124,113,24,245, +244,231,232,13,107,23,184,181,61,182,46,168,223,43,236,204,115,215,220, +55,15,29,125,115,166,239,21,123,124,195,21,134,208,124,208,94,206,120,42, +170,247,19,133,3,223,156,233,154,128,169,191,80,214,101,68,197,66,66,139, +68,96,184,37,70,125,69,117,60,226,92,74,52,13,29,195,237,76,116,140,255, +134,67,89,78,102,155,152,152,107,78,119,165,107,174,120,83,83,157,222,40, +10,55,91,191,158,208,222,232,189,224,222,254,150,67,81,96,204,40,114,44, +66,207,112,61,211,119,138,59,69,163,34,180,105,252,82,81,157,78,20,101, +129,65,241,109,84,238,106,79,84,135,67,82,192,29,195,245,18,199,247,254, +183,28,10,151,210,229,136,25,38,38,133,113,218,43,125,123,77,105,107,14, +231,14,88,27,153,231,99,186,96,215,92,226,156,213,167,233,253,167,112,81, +215,112,187,182,168,59,113,60,86,148,235,186,15,125,199,245,122,165,13, +142,227,251,145,186,28,101,198,64,215,92,105,90,168,223,127,230,116,40, +99,171,226,17,81,18,147,16,158,158,110,72,100,99,99,38,116,240,14,224,249, +40,7,48,20,133,195,153,188,113,174,97,160,31,60,65,28,101,89,36,195,129, +41,60,234,67,172,25,32,198,60,140,34,47,83,250,36,227,19,190,206,42,207, +203,198,215,26,233,188,82,76,88,127,147,82,255,209,140,130,199,233,167, +175,252,45,219,172,107,30,67,157,55,142,209,249,223,103,196,248,13,141, +76,150,70,193,157,39,182,63,249,89,231,63,17,176,130,134,88,240,68,6,130, +239,104,250,128,26,59,65,74,170,158,161,107,104,250,232,173,20,69,57,139, +201,155,8,11,166,214,142,58,244,180,157,7,87,76,208,145,138,224,170,26, +83,69,36,192,107,71,119,13,72,89,83,184,20,159,191,244,169,93,233,115,96, +71,119,121,225,50,25,60,74,236,18,87,150,5,174,40,238,68,102,158,215,86, +226,97,242,133,60,92,172,185,171,71,18,157,75,12,224,207,212,248,122,198, +239,223,51,8,200,120,246,46,133,5,30,181,118,248,81,235,249,209,245,33, +4,134,179,39,104,12,197,88,245,12,141,18,250,64,249,181,162,168,133,112, +107,233,206,1,57,22,148,95,96,248,211,64,23,198,80,67,170,46,54,14,52,40, +195,165,165,239,160,248,90,83,30,29,54,177,154,251,198,163,101,36,107,233, +16,192,25,140,42,195,45,66,231,197,155,163,40,183,115,164,125,36,156,106, +219,209,94,60,28,74,172,77,95,59,120,134,115,71,48,69,124,150,1,154,158, +246,170,184,247,2,231,148,254,207,45,158,130,234,15,201,43,20,65,172,137, +105,117,146,95,95,19,159,101,104,233,111,13,193,189,81,136,167,191,124, +208,93,190,211,155,119,142,95,222,41,10,11,254,74,127,189,162,230,136,45, +12,58,220,98,88,163,168,112,133,139,6,79,123,166,27,192,213,21,198,196, +226,49,70,64,67,207,208,54,4,142,20,166,192,140,235,216,70,95,67,67,75, +119,77,49,242,183,55,138,121,179,35,141,225,182,161,107,80,142,247,54,198, +26,175,55,162,104,215,210,183,13,106,222,34,58,115,253,51,221,229,131,193, +188,115,250,242,30,211,222,84,9,225,70,119,249,78,176,111,17,93,72,12,115, +245,61,67,223,224,229,136,179,238,158,11,111,92,76,20,27,90,186,230,131, +110,80,108,125,162,58,4,250,243,25,159,138,227,232,100,240,205,222,63,161, +142,211,228,7,197,119,55,110,3,148,199,138,210,153,89,38,82,50,130,135, +142,219,173,39,20,241,250,97,24,162,99,16,148,161,27,232,17,142,54,58,36, +113,140,38,201,56,143,239,122,218,62,96,202,130,170,0,223,182,244,186,228, +80,105,8,248,33,160,166,64,36,242,160,230,109,187,53,25,1,125,219,50,224, +40,202,2,151,44,169,73,241,223,26,90,15,174,62,80,149,96,118,246,223,143, +182,56,226,19,244,179,103,84,231,87,158,33,15,221,173,31,235,98,176,39, +23,183,178,95,118,117,130,188,44,31,37,7,209,111,53,199,189,250,220,44, +255,125,78,212,206,132,52,100,102,12,136,228,98,193,15,38,53,105,83,85, +197,15,45,77,123,35,136,37,16,243,222,213,64,80,131,45,4,239,91,186,182, +163,15,1,17,207,208,199,14,108,198,57,108,89,98,66,71,215,117,120,31,98, +222,102,8,24,2,173,6,202,170,192,46,162,4,41,29,74,44,174,24,133,161,78, +164,163,123,145,53,217,252,255,103,220,206,89,139,29,218,182,3,160,44,170, +5,170,161,228,238,255,40,233,110,244,85,239,224,252,107,104,2,51,239,217, +163,65,177,226,210,247,146,5,230,240,250,70,154,245,46,120,225,217,227, +26,241,33,162,7,206,186,135,229,56,62,83,126,229,213,196,21,81,197,183, +3,62,40,246,88,82,86,150,208,244,232,64,140,75,87,130,255,104,232,58,48, +199,138,250,205,65,223,51,72,10,95,168,103,248,232,104,62,134,152,206,150, +60,23,91,23,84,63,21,184,210,220,189,147,0,162,129,112,107,105,155,158, +254,80,80,126,171,112,126,96,24,98,236,190,168,237,6,245,241,183,142,238, +151,150,126,72,113,250,1,140,118,116,40,152,18,147,144,39,123,44,163,231, +63,68,22,191,148,142,162,50,208,245,132,222,211,15,158,161,233,210,90,54, +184,247,10,243,173,196,202,131,138,5,114,23,236,161,253,160,211,19,214, +89,108,125,194,150,95,41,171,18,145,152,169,18,134,1,47,103,154,239,29, +174,62,81,214,41,238,28,221,87,130,42,97,232,232,47,255,202,208,29,41,143, +95,169,202,152,138,41,70,208,246,66,251,253,66,11,152,226,68,121,250,70, +225,6,124,115,33,104,129,59,190,197,112,219,108,173,141,53,58,196,8,161, +187,208,254,114,161,53,96,220,137,234,237,27,174,144,148,49,23,8,221,7, +173,214,177,167,66,121,160,42,239,57,237,104,143,111,111,120,42,138,244, +156,49,220,34,35,234,54,196,251,119,2,82,198,247,19,127,161,189,245,49, +20,240,22,175,11,237,7,126,8,24,151,50,118,36,42,63,66,88,190,255,225,107, +12,165,16,235,1,116,125,199,128,229,56,166,235,174,214,127,72,239,49,52, +31,252,185,187,80,213,111,188,127,253,66,93,24,156,115,56,110,52,151,95, +232,110,22,107,75,170,250,192,161,50,248,174,165,11,130,45,42,170,210,66, +24,24,0,204,189,227,247,88,188,76,53,224,135,150,219,208,97,93,65,89,150, +81,137,19,51,13,186,174,99,8,18,247,134,91,238,72,77,105,197,193,148,145, +120,59,111,69,242,130,191,253,74,41,163,207,24,248,178,40,72,254,154,211, +244,106,219,38,205,162,166,250,169,192,193,94,253,193,71,69,115,63,83,43, +116,183,222,223,31,155,127,93,52,134,29,155,203,140,11,97,81,170,54,165, +198,45,66,187,220,91,192,170,74,34,6,153,236,135,158,87,237,154,171,167, +95,218,63,241,47,231,127,70,68,249,187,183,127,32,4,207,209,126,65,241, +120,245,132,241,127,33,48,104,159,114,52,21,102,138,110,42,198,167,99,53, +166,57,84,31,55,175,50,48,248,88,236,70,85,167,255,67,153,172,96,113,208, +254,41,150,143,253,233,253,27,255,211,223,253,183,7,241,26,205,188,221, +50,251,96,232,123,154,182,161,170,42,202,178,124,80,250,96,239,41,247,185, +146,213,54,208,157,115,119,63,248,84,81,112,214,17,48,211,71,240,213,150, +15,159,105,251,17,59,26,133,89,26,222,246,221,101,103,3,201,139,6,199,214, +240,90,221,49,73,78,85,77,121,230,196,60,117,141,138,218,8,41,149,41,230, +145,39,64,60,166,150,137,76,233,100,26,116,182,230,137,249,208,102,195, +26,77,121,221,105,109,74,202,77,215,88,42,25,145,69,204,117,154,87,127, +47,117,27,175,77,43,203,204,210,149,18,105,112,124,41,245,137,229,124,107, +105,111,1,73,198,139,16,51,5,186,179,71,142,53,135,175,177,162,222,195, +186,96,234,209,16,18,42,151,8,125,235,182,189,193,167,114,180,73,41,154, +8,255,234,60,214,154,194,64,0,24,55,193,195,146,246,103,72,251,110,132, +214,77,202,89,15,33,85,82,155,77,206,242,171,250,169,28,245,221,169,176, +145,207,161,164,84,188,52,126,99,39,249,69,50,44,70,126,16,99,109,131,84, +177,109,74,231,37,141,45,132,153,195,98,83,134,143,71,3,200,72,86,77,74, +56,122,231,102,202,187,215,49,39,95,211,10,52,118,214,56,41,18,239,62,126, +249,19,231,190,226,235,79,63,241,118,176,27,41,175,234,147,156,98,242,206, +227,253,199,99,119,207,75,100,108,12,165,247,126,32,243,245,49,11,23,222, +201,239,58,125,3,77,154,223,166,62,31,190,239,233,70,132,180,44,41,210, +218,27,101,75,8,3,67,211,114,27,2,69,117,160,44,238,164,189,125,180,113, +95,49,234,70,214,237,239,101,201,40,218,87,155,123,191,210,162,41,207,161, +250,124,172,156,29,205,240,185,38,187,75,217,156,151,199,123,154,54,181, +139,157,19,230,39,149,41,107,159,78,243,150,137,220,135,174,227,198,89, +209,234,114,118,144,110,186,186,71,59,101,44,34,17,4,172,49,49,197,45,41, +97,25,43,140,164,210,181,17,42,10,247,167,205,12,16,35,102,106,128,19,144, +20,71,106,146,240,158,111,162,59,42,225,131,130,122,232,193,247,99,78,191, +44,148,230,114,49,234,186,74,248,162,201,206,84,173,174,143,214,113,81, +22,139,169,215,39,75,67,102,246,219,210,139,209,12,36,189,188,171,174,188, +254,72,106,139,93,218,68,162,128,154,129,246,187,139,99,27,10,208,39,20, +18,89,149,175,156,247,26,8,49,77,205,196,106,121,34,143,54,135,102,54,235, +124,163,200,42,138,183,94,95,108,98,242,19,242,100,205,162,135,130,90,195, +220,143,22,119,39,134,142,223,84,220,138,222,103,101,58,71,246,8,133,114, +143,215,47,168,147,98,192,230,113,32,69,192,166,120,255,134,26,116,111, +179,188,240,134,68,192,42,225,218,209,94,6,130,43,168,138,72,52,13,221, +128,239,3,82,149,84,111,169,118,4,143,75,110,136,184,105,124,57,49,21,141, +13,11,216,7,28,100,65,109,42,60,181,22,98,98,35,179,123,37,152,227,239, +38,189,251,220,168,93,223,193,96,102,188,17,153,139,184,88,114,142,123, +97,233,173,112,157,186,91,26,187,130,148,199,252,255,164,136,83,187,226, +5,123,37,25,101,243,68,161,232,245,47,165,0,128,177,46,95,47,113,234,249, +49,134,168,52,245,197,152,205,175,36,163,194,184,172,36,53,98,167,113,44, +215,94,28,123,36,25,203,140,184,42,27,184,57,150,163,93,238,153,16,6,250, +182,163,27,2,198,85,84,117,66,60,199,86,220,41,243,165,239,90,122,15,69, +89,83,151,110,170,145,255,188,75,251,51,163,61,143,105,106,214,13,201,99, +125,123,94,186,46,164,221,22,51,200,87,59,209,29,5,186,245,232,101,87,45, +235,195,226,180,121,133,47,171,252,45,89,140,49,135,224,230,102,65,198, +74,118,49,118,62,146,219,70,175,157,101,43,245,85,173,19,209,177,170,215, +76,232,166,188,102,21,205,78,130,238,216,80,146,26,104,68,165,189,236,249, +30,166,123,164,148,55,13,139,99,146,114,232,231,74,105,222,106,182,247, +29,67,223,207,226,74,115,197,158,12,7,93,197,38,52,16,188,16,82,26,153, +108,212,174,110,96,251,229,39,136,158,72,215,182,136,88,234,170,220,93, +162,108,40,104,163,170,214,69,157,233,165,145,161,15,227,77,75,1,169,19, +206,99,92,76,255,203,109,24,89,133,0,88,44,110,125,0,89,45,24,7,217,13, +49,10,79,151,170,229,169,172,145,0,125,161,49,230,221,166,126,92,132,82, +102,101,146,101,179,73,150,54,175,102,55,248,202,23,93,109,245,188,239, +171,25,142,107,222,191,200,89,222,219,47,177,28,191,110,226,117,11,90,161, +38,175,63,68,136,255,118,235,192,10,182,44,40,78,7,234,42,165,31,10,155, +25,201,19,35,51,36,216,105,60,235,89,200,229,140,44,13,176,185,178,213, +109,126,73,198,176,219,174,176,245,183,216,123,135,103,69,106,55,6,205, +98,142,101,81,94,123,213,135,114,53,79,235,175,123,191,67,110,111,47,10, +124,138,96,109,193,209,150,247,240,192,106,38,101,118,175,71,25,228,108, +192,233,121,111,200,249,188,223,37,87,110,29,106,24,232,154,142,128,80, +214,71,10,103,146,209,49,86,9,236,185,53,45,253,160,20,101,205,225,228, +34,234,34,57,126,188,44,198,240,92,165,173,215,244,114,46,117,49,195,243, +61,190,149,134,146,81,214,219,17,178,145,112,185,53,162,25,71,78,158,26, +2,186,99,96,172,229,150,172,118,249,202,216,220,200,163,37,81,113,46,121, +246,185,89,26,89,244,162,25,65,166,185,141,35,51,111,125,57,51,178,218, +216,57,239,227,17,140,113,239,225,174,83,219,87,238,93,223,19,55,69,167, +191,140,164,149,48,87,236,163,199,159,254,55,166,165,201,152,126,55,239, +9,63,83,242,177,83,94,130,172,80,212,68,47,139,89,17,144,237,39,13,139, +207,23,230,75,76,149,174,105,9,193,115,56,86,113,156,58,182,201,221,243, +114,31,169,181,165,96,145,204,194,96,71,128,129,224,213,163,62,96,141,69, +197,44,54,138,46,150,137,174,16,11,125,2,71,109,57,240,178,82,145,145,12, +62,198,221,109,74,215,91,11,232,117,32,66,23,91,112,174,242,238,27,95,54, +70,69,238,46,235,153,219,130,123,249,168,217,93,48,75,198,135,208,157,112, +136,110,222,61,207,174,216,170,5,166,183,155,139,119,221,40,245,156,223, +35,198,96,143,21,117,93,115,24,43,76,42,168,145,169,40,145,108,188,9,201, +122,85,91,179,2,182,121,14,178,64,222,182,176,161,102,118,190,174,188,143, +165,58,219,75,254,209,39,244,205,103,140,104,178,95,104,29,235,220,117, +61,178,251,82,50,134,208,218,204,151,12,26,54,205,156,171,120,251,82,198, +176,143,17,230,9,59,178,227,211,237,243,93,182,106,95,23,120,130,238,26, +209,11,3,74,44,69,117,64,166,178,205,75,35,82,92,193,225,96,169,137,132, +77,217,172,41,89,72,98,158,152,67,186,49,106,114,40,177,100,10,129,75,198, +107,94,238,158,156,180,92,203,155,253,66,177,250,160,85,81,38,12,59,67, +79,37,115,142,174,214,188,100,77,245,165,129,146,135,238,151,6,154,108, +214,241,124,38,239,223,205,137,206,74,206,110,132,61,139,190,235,209,203, +95,110,209,59,243,94,54,37,66,231,119,147,21,136,165,171,33,223,63,80,152, +253,237,238,189,79,202,119,46,86,230,253,223,245,238,229,7,160,111,219, +4,43,73,138,53,233,20,126,91,244,178,87,197,73,201,183,67,73,101,28,133, +17,244,203,125,19,95,190,255,63,11,251,119,189,24,182,159,40,22,144,105, +154,27,69,85,210,92,138,187,47,144,230,217,216,154,162,248,130,43,222,22, +75,74,51,64,210,90,25,75,198,223,145,172,64,157,169,72,17,140,115,247,248, +99,214,155,210,85,128,97,185,172,242,158,126,110,137,206,238,149,52,141, +152,88,77,107,52,168,214,38,128,46,193,195,140,33,177,29,155,172,252,230, +188,159,155,3,227,100,33,244,216,161,79,202,102,163,111,1,67,89,205,201, +124,78,243,254,158,102,182,253,227,72,94,206,147,94,206,214,8,237,27,140, +93,138,61,179,82,196,123,97,153,229,85,10,187,201,139,91,17,151,135,90, +37,203,26,206,171,49,89,173,229,45,161,116,211,50,55,131,218,228,64,96, +221,160,2,50,219,43,185,30,94,107,5,160,27,243,102,171,188,215,166,221, +50,100,150,55,61,193,184,45,186,148,71,84,182,166,34,43,248,58,143,33,174, +59,205,201,142,35,160,19,193,48,214,105,208,29,153,36,83,173,253,188,177, +120,87,199,75,244,145,205,156,47,77,1,201,174,106,201,168,209,181,153,178, +70,62,37,107,20,231,56,67,250,112,222,215,243,54,151,89,242,96,143,222, +231,227,81,40,83,54,242,74,178,184,153,102,145,181,181,129,38,15,177,84, +137,149,236,22,202,75,101,217,229,106,81,27,125,230,61,77,245,91,116,42, +114,32,25,17,184,247,26,11,165,20,194,157,73,63,115,175,167,223,199,20, +186,133,55,125,247,234,153,121,245,1,165,111,187,137,60,167,58,98,255,119, +130,210,68,130,66,249,90,29,249,185,172,240,132,133,23,31,54,158,132,174, +44,69,93,41,159,17,154,87,186,190,141,141,100,198,170,121,220,173,164,88, +50,245,70,24,110,244,253,175,84,135,127,152,234,244,75,6,230,213,85,138, +198,86,33,201,204,50,92,1,187,26,27,157,32,49,38,184,246,59,36,131,22,72, +6,178,149,213,70,39,163,154,117,211,153,44,125,51,239,227,57,214,165,98, +53,146,129,96,229,65,4,47,23,192,88,131,111,91,191,116,141,31,45,197,15, +43,212,65,23,42,148,141,127,189,54,43,116,51,122,54,84,72,205,170,203,173, +71,187,244,64,214,137,139,242,112,174,52,187,185,101,21,230,217,107,248, +177,142,236,237,37,227,72,38,160,34,11,1,189,134,254,231,34,126,13,180, +174,69,230,92,112,178,97,178,228,3,80,251,38,212,92,21,107,70,84,63,98, +95,75,134,202,154,55,35,32,159,245,114,255,134,146,193,116,114,145,213, +188,58,217,226,28,57,124,109,27,172,201,155,230,146,157,141,156,151,172, +187,100,184,181,67,38,89,243,127,109,148,47,85,186,236,200,153,156,42,147, +141,4,220,171,199,33,179,245,163,187,213,60,36,243,187,100,92,156,69,241, +176,141,35,162,27,211,46,103,32,108,141,171,109,108,124,169,158,215,104, +36,89,89,171,217,123,206,231,138,205,142,115,27,216,80,22,164,235,123,45, +98,209,85,121,244,56,29,70,204,142,231,184,5,83,100,163,46,101,36,229,226, +7,197,56,146,146,14,119,24,125,174,150,52,164,16,193,93,128,5,194,29,106, +39,208,181,125,100,57,207,210,247,182,138,61,42,251,191,121,123,231,36, +54,178,242,5,172,43,41,171,83,108,188,146,141,228,41,251,141,14,34,74,208, +245,29,101,117,164,40,29,118,65,146,137,49,18,191,16,0,0,32,0,73,68,65, +84,57,254,125,223,209,119,77,42,214,115,165,185,252,95,28,222,254,151,141, +191,174,171,88,238,92,76,200,202,79,201,1,70,99,216,69,102,229,105,247, +138,233,174,149,28,27,99,98,63,250,148,247,245,239,11,204,152,109,109,251, +53,72,189,167,60,37,67,168,147,13,157,100,237,125,178,97,47,44,189,44,217, +108,85,201,242,181,183,30,147,100,1,99,221,40,166,156,231,33,25,108,64, +50,98,246,174,148,53,235,185,74,198,179,202,121,231,107,15,63,7,96,230, +88,190,57,12,69,201,149,10,217,206,123,206,79,146,29,122,210,50,78,187, +158,185,45,153,82,179,70,94,110,253,176,50,105,100,227,73,111,213,226,94, +143,239,109,232,128,213,125,228,1,118,241,40,221,147,140,170,158,155,122, +100,189,200,109,16,107,235,132,72,22,177,88,135,40,182,176,244,14,25,111, +103,214,151,188,32,221,168,192,92,25,46,221,249,26,115,244,43,183,207,182, +145,108,221,229,34,72,246,186,124,0,105,203,65,215,141,35,187,103,90,72, +150,119,160,153,176,208,182,134,222,218,168,221,238,177,121,247,18,89,25, +198,178,218,225,121,119,99,188,175,91,105,241,229,63,163,39,63,107,41,185, +240,209,82,202,147,102,99,29,185,151,204,111,233,152,58,27,240,62,250,187, +163,23,61,107,21,51,41,247,48,169,242,177,86,253,253,120,215,244,139,188, +252,59,34,144,94,63,220,99,234,95,14,111,28,99,75,58,68,132,247,247,191, +77,165,78,117,193,160,214,149,69,36,153,56,205,56,57,125,215,161,26,40, +138,130,194,185,149,216,49,24,4,103,107,234,186,166,109,46,180,109,11,58, +112,59,255,159,28,223,254,231,141,232,200,249,237,123,80,238,122,3,135, +16,187,196,25,107,39,180,37,103,81,75,86,65,201,142,39,41,27,175,117,171, +108,19,178,226,99,88,37,150,163,149,93,149,76,198,4,84,30,165,14,234,131, +78,220,91,240,75,178,243,35,59,177,214,61,81,169,25,165,177,86,101,121, +15,83,55,164,61,125,88,155,112,29,42,219,10,107,201,42,128,252,154,149, +149,199,34,15,226,212,207,144,147,220,44,201,142,32,92,11,247,60,18,181, +86,116,146,245,212,183,87,111,201,135,146,193,9,216,33,67,202,202,4,204, +209,165,30,149,61,149,29,131,144,172,89,151,195,112,214,216,74,206,88,95, +66,189,154,53,110,247,13,21,118,120,80,249,177,147,225,93,200,234,235,229, +222,81,118,20,122,142,82,154,243,91,243,191,235,211,14,238,91,140,115,31, +65,222,242,130,86,33,230,13,210,68,134,135,180,13,59,228,50,251,37,195, +76,202,27,203,185,10,159,186,187,39,115,97,81,50,56,135,108,36,215,61,76, +119,63,117,202,155,147,233,95,157,201,242,133,104,148,237,242,145,77,164, +107,29,5,100,83,81,93,208,152,27,231,225,234,207,4,98,207,231,137,43,175, +51,181,59,122,248,234,39,229,238,135,158,238,214,37,56,95,167,210,246,170, +58,229,61,199,94,201,97,74,185,251,169,136,45,45,141,49,188,127,249,251, +123,153,220,197,132,71,35,35,37,145,204,148,90,216,192,173,33,12,244,67, +135,115,6,231,236,116,222,125,57,132,244,127,241,158,117,125,160,170,170, +4,42,116,120,127,93,45,128,181,151,39,59,162,86,86,138,55,217,125,2,214, +185,123,62,236,202,155,149,108,44,107,11,50,75,134,91,154,139,230,233,186, +1,145,137,205,115,140,152,108,52,150,29,198,49,11,192,87,87,163,149,149, +96,220,110,209,173,176,203,151,150,144,85,92,93,179,0,155,238,16,159,158, +41,201,124,239,5,221,68,232,30,165,246,73,150,133,188,190,86,51,95,74,118, +162,227,91,63,93,51,30,128,102,162,220,186,18,193,57,170,146,102,4,15,27, +111,67,118,139,16,203,78,4,243,46,220,114,209,213,37,1,83,118,83,58,231, +109,136,100,145,173,66,102,45,45,191,67,44,8,19,8,186,6,169,231,227,219, +43,173,178,52,170,243,220,22,93,40,86,89,223,87,149,48,120,66,182,70,164, +100,48,198,188,123,34,89,246,4,89,176,124,76,107,29,35,180,27,147,118,12, +255,237,42,188,60,33,141,140,187,162,171,232,181,100,215,233,78,218,232, +78,232,105,203,89,208,12,18,184,37,65,62,230,44,232,42,89,109,251,38,108, +24,103,107,3,126,233,40,105,134,202,186,196,64,53,107,252,239,237,19,89, +225,61,203,162,232,50,179,106,100,222,201,108,229,229,79,11,81,22,96,66, +94,45,232,174,213,171,33,112,39,182,39,117,174,129,171,191,240,147,251, +57,22,93,8,97,242,218,199,178,175,99,170,92,240,61,125,23,208,160,83,155, +91,37,22,169,8,179,34,54,99,95,107,147,54,75,93,22,83,81,136,195,241,219, +236,189,92,82,232,118,236,86,190,138,221,173,227,41,247,77,211,117,29,70, +192,57,55,7,60,22,49,248,245,86,172,235,58,118,183,10,129,246,246,255,114, +124,251,95,31,216,120,251,196,141,181,218,143,93,218,2,78,139,89,147,1, +201,84,128,206,255,182,245,168,36,203,189,205,111,87,240,62,160,162,56, +227,118,70,152,175,31,149,167,205,176,137,145,235,142,175,146,243,149,182, +240,237,108,251,4,159,140,161,101,94,190,102,194,76,100,197,227,86,241, +73,54,142,156,7,101,247,189,194,76,93,45,141,229,69,99,45,229,59,233,244, +94,78,58,205,139,36,163,42,211,193,81,118,90,117,230,200,130,121,14,239, +82,1,233,206,185,147,209,235,99,65,22,113,14,43,249,10,25,219,244,66,118, +190,222,179,88,58,59,4,179,60,42,51,93,163,177,128,141,215,88,123,99,25, +206,82,194,16,187,182,117,161,224,248,229,157,218,229,91,155,230,155,119, +110,219,46,19,60,67,240,247,171,198,253,169,177,205,178,53,243,25,14,168, +111,185,126,191,209,83,112,252,242,70,105,72,197,120,66,170,39,192,178, +202,223,195,86,169,233,247,48,22,3,179,136,196,2,98,227,30,136,239,223, +115,253,126,161,245,150,227,183,19,101,50,210,39,149,173,158,246,124,165, +83,71,253,86,167,49,61,14,148,144,101,58,228,220,152,124,54,139,102,251, +100,178,131,98,230,66,142,91,198,9,108,211,206,36,35,19,183,28,136,188, +244,36,139,82,201,78,252,157,12,142,184,31,196,248,255,41,123,147,94,73, +150,101,59,239,243,38,186,108,246,174,186,239,145,124,2,53,144,8,16,34, +52,215,255,255,23,146,0,81,3,10,26,136,228,229,61,167,246,206,38,194,59, +211,192,61,34,163,205,58,60,192,107,170,178,50,163,243,112,51,91,182,108, +173,61,84,72,253,166,165,182,10,240,242,146,164,91,139,208,175,127,74,132, +152,52,67,18,110,78,8,49,45,23,186,200,46,231,123,186,65,49,18,99,96,24, +28,162,42,48,110,170,198,83,10,196,193,243,72,119,66,242,120,201,194,26, +166,201,11,62,165,72,136,30,215,59,220,115,32,138,165,110,107,140,6,149, +178,214,181,27,92,86,98,154,164,168,52,198,102,175,99,68,248,188,180,168, +4,218,84,24,91,149,202,186,41,194,57,243,76,107,253,63,235,128,150,147, +132,16,2,49,6,218,182,153,144,128,53,1,234,85,205,47,83,132,182,169,121, +62,31,153,55,144,66,17,183,120,63,247,202,155,112,43,72,217,36,236,78,18, +170,118,195,221,17,212,244,206,54,113,55,248,23,174,134,54,89,204,230,149, +92,236,109,129,251,117,28,7,47,25,43,106,207,222,239,237,243,177,215,96, +93,70,121,146,127,226,250,59,73,103,163,145,209,195,90,102,137,25,41,175, +136,185,170,154,122,99,99,169,54,128,222,126,135,239,93,95,123,119,83,150, +64,24,238,248,62,160,234,14,45,61,238,249,36,198,80,236,74,77,30,109,210, +21,166,189,210,158,186,73,160,132,183,219,215,27,11,204,9,33,123,41,238, +169,221,117,178,61,134,164,136,31,238,124,253,249,141,83,53,167,31,63,248, +104,70,65,20,181,243,30,41,254,26,31,95,14,147,209,53,37,242,119,73,212, +180,23,133,158,251,237,70,47,13,151,235,153,182,42,160,102,12,12,195,131, +199,211,145,204,137,203,71,199,228,247,242,102,13,171,195,4,54,33,193,241, +188,127,241,117,31,178,129,75,81,192,211,58,239,79,221,229,131,143,83,131, +213,42,203,217,62,31,60,250,158,100,206,92,206,29,181,1,21,6,194,243,78, +136,26,221,116,24,60,49,101,57,94,99,213,108,255,81,236,249,185,17,61,254, +121,195,15,9,211,116,232,244,196,123,48,167,15,170,182,66,139,144,98,200, +46,157,201,82,133,68,93,47,195,160,132,64,8,3,46,70,108,168,139,211,223, +113,171,224,157,145,138,122,91,61,175,121,72,178,203,28,56,74,100,183,44, +143,189,4,136,195,134,19,187,137,239,62,234,33,187,45,136,253,93,251,168, +133,177,237,218,31,167,18,71,92,168,245,121,216,189,44,51,203,99,178,179, +65,43,162,192,127,252,175,145,193,251,25,108,190,223,79,92,126,144,197, +56,82,40,246,174,41,87,214,166,82,92,187,80,236,223,19,161,119,4,209,84, +109,131,141,16,251,39,46,101,57,78,159,30,184,251,19,231,2,33,230,199,107, +139,219,211,104,3,234,67,32,36,77,85,159,177,19,87,78,77,210,146,34,66, +43,6,84,192,154,150,125,11,128,52,123,232,105,103,227,121,5,240,148,242, +98,175,172,41,65,66,14,171,126,166,64,255,90,180,218,232,87,80,16,159,3, +243,111,182,225,163,23,71,138,210,148,210,10,163,245,46,28,167,126,243, +139,239,143,170,222,116,197,198,118,73,81,171,211,239,185,2,234,47,217, +70,238,85,225,242,230,26,142,41,132,243,53,153,194,19,247,252,206,90,228, +205,43,184,79,255,86,60,225,249,141,115,130,110,47,52,109,115,240,154,201, +111,9,53,91,34,226,123,160,127,155,76,71,194,240,192,245,1,101,79,212,109, +135,162,65,219,10,255,252,38,164,138,234,244,65,93,233,92,5,106,179,99, +235,123,36,78,171,246,183,57,241,217,241,205,37,116,115,161,233,154,131, +243,149,77,242,133,4,220,240,228,126,123,226,98,66,119,21,213,104,218,242, +219,245,4,239,61,196,217,129,99,213,155,21,240,46,16,231,96,247,188,223, +184,59,161,185,180,180,54,139,181,70,63,208,63,238,60,188,20,31,246,22, +171,246,89,8,188,13,91,139,158,21,170,106,232,174,63,169,234,158,219,237, +155,103,170,56,95,174,156,27,141,42,190,237,90,37,146,31,120,62,238,60, +28,212,221,71,57,62,100,35,153,30,63,4,84,117,66,75,86,42,164,105,49,197, +38,251,253,251,148,72,97,200,234,134,182,65,75,32,120,65,85,167,28,220, +103,106,60,162,198,56,160,182,140,112,149,181,242,35,58,43,249,9,43,196, +232,221,123,41,135,140,133,227,103,254,206,220,245,104,13,113,8,124,31, +239,161,114,48,90,184,197,101,182,88,35,111,90,30,234,0,121,80,127,121, +87,254,93,130,174,14,88,24,118,111,191,94,142,179,191,122,184,127,60,19, +255,207,31,225,101,12,83,116,146,141,94,223,187,18,178,102,131,244,146, +34,33,68,4,131,169,20,201,39,148,181,217,93,77,138,116,170,210,216,170, +66,39,176,74,229,192,142,38,23,181,217,30,54,198,145,185,159,208,186,162, +26,53,168,83,36,70,143,15,130,54,117,254,251,121,72,72,50,17,237,20,113, +166,137,158,86,65,91,14,254,188,37,17,165,148,237,104,181,206,150,139,107, +72,127,59,214,53,15,242,251,29,158,119,61,188,227,191,123,61,86,99,182, +172,245,227,205,238,175,6,216,109,120,62,130,238,95,199,63,218,16,21,71, +131,99,239,120,254,123,141,129,93,0,87,82,49,16,154,115,69,76,241,26,16, +82,241,5,23,221,81,183,217,14,245,5,129,71,36,5,162,127,224,134,128,178, +29,214,228,138,148,162,3,142,20,189,116,18,136,46,243,195,122,74,30,68, +102,21,219,168,11,62,105,151,151,17,204,88,190,175,52,48,126,127,150,128, +164,130,136,165,72,244,15,188,139,168,234,76,221,181,185,154,142,145,52, +244,36,90,234,243,149,186,170,75,80,31,19,152,196,139,89,153,43,196,124, +110,49,235,88,232,151,46,186,164,242,46,232,226,196,24,3,193,63,112,46, +160,76,185,254,152,150,90,244,7,73,137,36,143,123,222,121,122,65,105,131, +173,90,76,221,80,27,94,250,236,217,186,172,232,88,40,148,205,142,104,249, +186,103,159,203,104,159,91,62,159,96,255,80,116,45,52,140,54,168,179,150, +128,40,5,227,243,23,149,213,27,25,197,100,198,182,65,202,86,210,253,131, +123,47,84,167,11,151,182,202,218,253,195,157,239,239,158,100,106,206,215, +51,109,147,101,117,83,136,89,51,223,204,86,109,25,195,29,101,225,71,125, +120,163,77,49,157,137,217,78,85,231,61,114,252,102,240,3,30,203,233,124, +229,218,53,100,229,232,172,160,57,29,95,215,156,62,206,116,197,160,6,18, +226,93,14,206,245,9,91,27,36,120,168,106,236,104,162,51,169,210,165,156, +80,232,57,186,150,159,117,242,130,174,58,116,165,17,231,208,205,9,219,181, +11,23,100,33,130,54,212,182,46,104,194,24,191,199,117,157,16,209,185,168, +209,107,151,209,153,119,131,86,135,192,250,187,247,91,142,83,178,55,191, +245,187,249,16,245,155,253,239,221,111,169,131,212,243,232,119,247,218, +113,127,165,160,145,13,125,113,255,106,126,151,212,188,254,179,147,199, +235,140,55,39,171,202,95,9,124,57,225,63,253,195,51,122,183,127,118,21, +127,59,85,180,86,77,58,246,105,236,129,203,12,224,30,71,218,164,124,158, +60,67,63,16,84,69,213,84,88,101,120,186,111,110,255,24,21,244,116,201,52, +179,38,50,198,82,89,72,36,140,173,16,19,179,5,44,22,91,21,21,241,148,55, +38,55,68,18,150,202,100,82,157,158,103,45,179,243,96,129,78,28,81,122,210, +206,34,76,139,199,236,220,0,34,217,165,74,207,250,118,115,235,200,77,194, +144,55,133,87,16,220,145,130,149,185,134,244,118,6,87,70,235,205,217,233, +197,24,17,18,198,154,98,114,161,95,230,65,107,130,203,248,251,107,255,223, +25,193,70,41,125,184,8,215,134,49,99,223,95,68,176,227,241,223,84,108,227, +231,242,155,207,143,50,249,241,248,139,151,94,18,41,246,132,254,129,235, +159,121,19,79,137,100,78,180,167,79,218,83,131,242,15,220,189,120,116,119, +151,34,157,91,182,180,225,27,119,255,133,119,158,56,214,45,186,199,63,107, +170,243,149,182,107,144,228,240,253,29,255,28,72,146,242,90,59,255,164, +59,53,104,28,195,237,139,16,52,186,50,136,123,224,157,71,53,31,180,215, +79,42,163,144,208,227,135,71,182,99,77,9,81,22,123,254,73,119,106,75,16, +233,75,181,222,231,96,23,35,162,91,170,243,39,109,215,22,67,22,207,240, +248,133,143,10,211,126,80,87,121,237,229,224,220,227,250,242,251,18,73, +84,212,231,159,116,93,11,233,129,251,254,19,175,206,52,151,15,172,78,196, +225,78,120,222,137,54,195,187,169,191,225,7,87,28,30,242,245,135,190,198, +158,62,232,78,237,66,119,125,251,236,34,195,215,23,247,8,85,219,34,225, +155,40,21,93,93,99,181,48,124,255,201,189,119,4,108,182,116,13,30,169,207, +124,254,248,201,181,213,184,219,159,220,251,129,64,181,253,188,179,168, +20,24,158,119,158,247,27,15,151,136,73,211,156,63,248,241,227,76,99,160, +255,254,131,123,239,137,202,146,134,252,125,213,94,249,241,227,7,231,198, +32,41,48,60,111,60,239,247,252,253,24,8,201,114,250,248,224,199,185,165, +50,138,212,127,241,235,187,39,234,142,143,235,153,198,228,138,126,248,254, +7,191,158,137,230,252,201,199,169,158,106,158,232,190,249,243,187,71,108, +77,37,3,223,143,68,115,249,193,207,107,141,114,79,190,190,111,60,162,229, +124,253,228,218,90,140,22,66,127,227,251,233,209,237,7,215,83,182,1,158, +146,151,225,155,95,223,79,162,57,241,241,113,166,153,121,200,35,26,101, +27,170,75,157,147,77,5,18,155,236,18,167,94,61,251,212,63,241,67,66,213, +13,85,91,189,62,83,160,116,133,57,217,236,31,175,64,170,186,244,237,151, +149,96,10,145,40,154,186,46,133,146,90,134,153,228,61,17,141,109,26,42, +61,79,252,34,195,253,198,253,25,177,221,153,243,169,194,42,181,59,198,187, +63,147,113,44,241,36,127,185,64,217,48,109,56,182,186,81,59,195,131,251, +125,254,253,225,69,117,168,32,34,191,69,50,222,236,143,7,200,132,252,38, +89,82,59,10,145,118,239,34,39,54,125,249,171,40,194,255,253,223,92,113, +139,131,127,247,207,39,108,201,136,125,153,57,127,205,172,51,35,196,189, +76,108,70,242,155,31,60,125,212,84,173,69,161,136,35,195,125,242,148,79, +196,97,96,48,217,199,189,181,144,240,217,143,91,18,193,7,124,80,216,110, +6,205,167,68,112,158,16,2,73,2,247,33,251,55,55,109,77,53,66,213,163,0, +186,44,251,234,106,195,160,94,255,57,109,40,28,136,16,146,39,166,64,219, +52,69,218,241,69,18,76,41,21,9,202,237,188,188,72,230,17,228,207,245,134, +124,151,36,145,66,42,144,155,102,61,108,19,199,10,205,230,177,59,41,22, +149,218,40,180,170,136,133,221,106,52,176,232,29,143,73,216,248,121,118, +191,90,103,207,243,239,43,165,55,235,48,22,211,154,145,33,63,158,87,190, +30,179,115,254,203,229,24,15,142,255,254,252,100,17,252,99,200,199,167, +88,91,74,116,132,231,13,31,64,55,103,218,31,87,240,165,82,175,207,212,109, +13,209,225,250,59,94,42,154,243,104,17,250,202,192,117,221,98,147,39,202, +128,109,179,53,170,30,161,110,9,196,231,31,12,67,66,55,87,218,31,87,196, +223,24,30,62,19,218,82,36,184,59,238,222,35,85,141,214,39,170,214,2,191, +136,218,160,147,35,12,55,6,151,48,245,133,238,243,130,132,27,253,195,163, +209,72,116,248,231,55,46,130,153,159,255,253,129,52,31,83,112,71,60,190, +191,225,189,198,94,62,94,246,167,105,32,60,191,232,93,66,215,87,218,31, +23,196,223,112,227,249,141,235,78,105,180,173,33,62,25,30,119,146,88,236, +233,111,217,6,86,2,65,34,41,106,170,238,147,186,174,179,178,153,228,231, +160,87,50,45,139,231,150,60,253,227,206,247,0,205,199,133,86,123,190,67, +66,85,13,141,133,56,60,184,127,125,243,164,166,61,159,56,159,59,220,237, +23,247,0,74,39,130,235,185,127,127,243,144,154,238,114,226,124,234,112, +247,95,220,2,40,157,189,211,31,223,95,56,221,114,254,248,103,78,201,113, +255,254,162,247,142,144,90,180,31,120,124,223,121,210,112,254,56,211,118, +13,143,239,95,244,217,25,131,48,60,120,220,110,56,221,112,254,248,103,206, +226,121,220,190,184,199,220,119,175,140,34,185,39,183,251,147,104,46,124, +126,156,104,76,222,235,162,31,120,246,61,65,93,248,168,52,41,134,140,8, +137,227,241,120,226,232,248,217,213,36,23,48,18,73,41,210,63,190,121,222, +7,164,58,243,243,163,163,177,153,35,17,92,207,253,241,36,218,51,159,231, +182,88,179,150,247,202,245,220,111,249,179,31,151,115,246,136,223,236,229, +89,109,110,10,125,70,45,80,65,137,158,232,35,104,139,169,236,134,188,38, +106,229,228,168,183,65,38,197,64,12,9,170,134,166,214,232,77,199,40,16, +146,160,170,134,182,54,179,207,133,24,28,206,69,148,173,105,106,59,237, +15,75,122,228,177,235,186,108,170,216,61,145,151,119,1,142,223,12,161,202, +110,223,251,104,78,230,88,217,101,239,243,35,42,241,62,250,170,118,169, +162,252,6,165,120,223,16,90,179,32,38,146,221,166,83,185,66,61,255,191, +91,34,163,134,194,255,248,51,19,120,68,4,83,224,170,152,4,191,14,232,50, +171,77,139,14,124,12,158,33,36,148,201,30,194,211,191,73,121,172,44,133, +200,240,240,56,151,144,107,69,83,27,162,248,50,211,157,16,159,89,243,170, +202,190,197,106,226,246,105,108,213,209,25,129,228,25,122,151,73,44,65, +144,42,171,243,141,193,33,227,105,44,202,223,173,140,133,44,116,156,23, +242,141,5,134,245,206,97,141,158,250,238,211,93,44,193,118,61,22,52,177, +238,21,147,181,229,56,130,55,95,190,90,105,84,165,14,121,213,166,124,174, +103,250,105,33,196,98,71,90,190,111,213,225,76,172,81,197,177,75,109,39, +42,203,22,178,251,125,230,231,103,213,66,191,45,132,136,86,10,109,192,160, +209,149,58,164,132,76,223,151,125,205,41,173,52,218,170,105,17,174,105, +66,170,92,255,152,129,74,236,25,110,95,196,84,97,79,159,212,141,134,216, +51,56,143,170,46,52,231,115,238,53,246,95,248,160,168,186,43,117,101,55, +189,73,137,3,97,72,152,230,35,127,167,24,179,164,52,224,239,127,50,120, +133,105,175,212,181,69,165,158,224,98,241,9,175,192,253,194,221,239,164, +234,76,123,249,160,174,12,113,248,19,209,53,85,101,72,253,175,233,251,85, +109,65,122,130,203,80,107,213,68,252,253,139,24,43,170,243,39,117,173,145, +84,206,191,190,208,156,206,185,202,147,72,124,126,49,244,49,87,238,117, +157,171,254,56,224,238,127,226,189,66,143,231,39,61,222,69,168,207,216, +182,65,233,50,134,138,69,220,55,206,43,76,115,161,109,91,140,214,89,116, +41,12,4,151,208,109,190,126,163,214,155,199,190,63,117,74,1,119,255,230, +107,16,170,243,149,107,107,112,183,27,46,105,234,186,194,18,120,220,239, +196,250,202,231,245,147,75,163,33,62,232,69,97,155,134,218,8,254,215,157, +104,175,252,248,248,228,220,104,8,15,250,155,162,110,26,42,237,121,252, +249,77,159,44,167,207,142,202,140,208,55,152,166,198,170,196,240,184,19, +236,133,207,207,79,206,181,34,61,7,18,53,109,215,81,169,158,239,63,238, +132,170,229,122,253,160,51,9,119,187,209,7,77,123,57,115,170,13,36,199, +253,246,197,61,84,92,62,79,52,246,213,246,11,195,131,94,106,218,83,77,122, +254,201,223,7,104,47,23,106,255,205,35,90,78,151,51,77,173,112,62,251,83, +184,231,55,18,43,154,243,15,174,231,58,87,203,101,98,195,221,191,184,71, +67,119,61,209,86,102,214,149,25,74,194,81,113,185,156,51,159,226,128,145, +112,236,14,161,81,166,198,158,171,226,20,167,222,218,146,238,6,21,73,68, +63,48,68,149,209,85,189,182,177,77,4,63,48,4,176,77,110,143,206,127,201, +152,134,243,71,93,218,66,234,237,164,195,251,58,116,191,49,247,238,62,188, +119,123,216,59,7,117,200,166,144,3,224,252,175,48,45,56,32,69,191,163,235, +253,85,223,247,163,99,191,251,222,164,198,50,122,43,47,168,46,229,127,253, +231,95,17,5,156,91,203,201,106,162,200,52,46,50,142,66,42,85,254,255,197, +204,186,154,102,215,37,6,188,143,68,101,169,107,83,170,213,252,239,58,223, +242,61,12,56,23,168,154,150,170,105,49,85,246,223,142,50,246,215,60,131, +11,68,101,168,77,14,238,106,82,165,203,231,169,149,148,86,187,66,27,91, +54,198,209,100,38,223,146,148,150,253,245,165,26,211,218,62,227,37,182, +243,130,167,19,62,100,119,186,28,40,182,243,213,235,25,235,245,50,208,147, +37,175,236,190,122,106,135,99,41,7,99,37,80,92,218,212,82,131,92,222,80, +62,244,108,20,104,107,1,188,55,58,178,54,86,89,245,221,117,174,80,132,151, +165,239,126,207,126,118,125,234,248,133,154,243,62,14,51,102,149,144,48, +224,159,79,18,13,213,229,154,97,112,247,192,61,31,68,106,234,211,25,205, +64,232,239,56,7,246,244,131,186,169,103,227,160,197,91,219,221,51,44,110, +58,186,211,41,7,119,17,82,124,226,30,95,244,247,39,162,114,165,29,238,58, +87,251,237,15,186,218,150,74,190,39,217,43,221,229,74,101,179,94,183,105, +46,116,198,17,250,27,207,199,19,65,147,162,35,60,52,218,182,84,221,149, +214,8,113,60,255,143,43,181,86,36,255,192,79,231,127,41,107,56,16,135,59, +131,11,168,234,90,72,127,133,44,248,248,162,47,191,175,203,239,27,219,98, +186,31,116,117,141,86,217,9,44,58,71,10,30,108,75,117,186,82,215,213,246, +250,117,71,123,58,109,130,251,62,3,35,191,147,253,237,198,253,57,32,205, +149,182,2,247,188,243,120,120,168,90,186,26,134,199,131,33,106,154,203, +149,83,163,33,13,220,239,15,188,84,180,109,133,60,31,244,73,211,92,51,217, +140,52,240,124,60,240,98,169,43,141,251,254,226,235,222,147,180,102,248, +175,143,146,228,41,76,117,226,114,170,136,207,7,46,106,218,203,149,115, +165,192,61,185,247,1,169,59,206,181,48,220,123,130,110,184,94,174,180,58, +149,190,187,71,55,103,174,167,26,82,160,191,223,121,122,104,78,23,186,186, +64,206,42,17,125,207,179,15,96,44,42,246,220,111,30,85,87,136,127,240,240, +138,230,244,193,185,214,164,228,241,33,143,235,154,170,162,187,124,114, +109,95,125,241,148,2,238,121,227,230,18,85,247,193,181,181,179,245,231, +167,227,215,229,248,239,223,157,35,254,116,161,28,106,117,176,171,236,7, +197,87,183,82,136,110,160,247,17,108,67,215,228,113,223,23,141,42,17,189, +99,112,17,99,219,252,249,58,160,78,122,246,251,73,133,236,6,168,99,175, +55,117,132,24,241,254,24,239,18,0,97,63,113,253,239,171,155,127,239,24, +47,135,255,102,207,56,72,237,122,60,200,111,24,80,252,133,196,239,165,69, +175,246,59,25,125,44,65,78,224,163,177,132,148,251,191,122,10,208,179,138, +93,202,212,183,204,38,192,75,38,60,184,128,75,170,16,66,76,113,119,75,164, +16,184,163,112,62,67,122,181,169,177,70,243,231,247,223,249,231,31,255, +122,26,19,114,206,225,147,198,106,157,179,226,177,24,31,173,97,203,120, +135,27,2,49,105,108,93,101,87,232,244,234,43,47,155,240,239,243,53,216, +147,194,16,124,112,164,24,51,169,78,235,205,227,90,170,221,173,151,176, +108,100,49,213,172,13,176,7,56,29,185,105,101,228,35,235,4,104,99,48,127, +129,203,251,87,59,94,123,83,255,123,191,56,246,185,243,24,153,222,233,28, +169,3,57,145,35,107,219,99,238,233,102,65,71,135,127,124,227,163,161,58, +157,169,12,164,225,155,225,241,32,233,142,230,114,193,154,68,184,223,112, +30,76,247,65,221,216,60,254,53,49,127,5,241,15,134,103,38,221,53,167,115, +38,188,149,170,42,60,110,132,96,105,127,252,11,85,101,167,228,71,74,133, +146,134,239,220,239,183,39,154,238,66,85,198,54,198,213,239,251,7,62,88, +154,207,127,41,163,68,99,114,162,208,201,227,30,223,184,104,168,79,23,42, +13,161,255,102,120,62,64,119,212,151,241,247,18,113,184,49,244,3,152,51, +245,169,203,201,84,234,9,143,27,62,84,52,159,159,139,223,87,42,183,47,148, +4,146,235,243,57,74,38,181,170,186,195,88,59,173,231,180,184,254,211,98, +162,160,116,92,137,147,42,161,153,218,74,146,60,207,219,23,223,223,143, +140,202,13,129,191,223,114,34,31,117,203,245,71,131,10,79,250,33,96,218, +11,167,186,66,199,158,251,253,206,115,80,52,215,11,21,3,207,62,160,219, +11,93,83,161,83,207,237,86,62,63,119,152,212,115,31,20,167,191,253,43,46, +109,253,26,215,147,28,200,66,255,205,99,8,232,230,66,219,86,232,244,228, +235,209,51,72,205,249,92,33,195,141,123,47,212,215,19,117,105,21,220,190, +31,120,213,112,62,119,84,70,19,30,223,220,31,14,85,93,56,119,53,213,232, +179,46,145,225,49,224,66,194,180,6,82,128,42,207,144,71,159,159,89,215, +102,174,197,99,112,244,62,229,94,181,50,25,93,156,34,71,34,185,59,183,199, +147,100,59,62,78,45,214,188,118,8,63,60,120,60,28,170,190,114,233,50,169, +109,207,172,107,219,97,158,201,187,166,252,111,82,169,220,213,78,227,241, +29,199,27,4,241,3,79,23,50,185,175,30,207,227,117,14,41,58,156,243,36,211, +208,52,243,207,243,241,163,200,204,62,150,93,83,90,118,3,182,236,20,17, +114,152,220,31,211,151,183,90,249,243,207,100,87,36,232,29,220,253,110, +47,149,131,107,217,119,121,216,75,41,214,30,146,123,242,190,236,206,41, +109,19,135,119,110,18,118,247,34,102,114,181,161,68,241,172,250,54,194, +172,179,176,84,2,237,164,211,38,47,34,84,42,130,51,209,103,104,30,91,151, +202,61,51,122,195,48,228,191,215,22,219,116,104,17,226,51,96,108,195,224, +28,127,255,245,95,184,116,103,220,224,24,66,34,121,178,219,91,202,62,240, +146,138,100,109,18,98,200,35,114,9,75,93,87,24,173,150,189,130,5,207,109, +30,88,247,212,164,182,36,59,133,16,98,158,119,55,214,46,160,121,181,249, +238,203,250,22,9,196,148,22,213,186,46,125,243,165,201,204,158,9,161,218, +113,34,159,61,106,165,48,214,28,194,233,188,205,226,101,71,81,153,29,135, +228,99,27,24,165,50,11,90,237,250,202,241,70,185,93,237,160,37,127,37,43, +29,215,86,32,185,7,206,123,84,221,162,196,51,124,127,227,250,1,177,87,186, +243,5,107,21,226,158,248,193,67,117,194,24,33,248,7,18,53,166,106,80,214, +228,138,124,120,16,147,193,54,117,73,100,21,186,84,111,62,120,146,185,160, +140,201,243,224,185,191,130,65,136,254,137,239,123,68,159,105,186,19,214, +206,19,156,152,9,115,222,35,230,130,49,185,113,154,217,235,38,247,187,253, +115,58,127,100,96,248,190,225,158,3,82,93,56,157,175,216,50,149,17,221, +13,255,236,193,94,168,187,83,102,181,19,145,114,126,98,26,116,249,125,212, +200,91,72,36,247,32,12,119,98,50,152,230,76,141,199,63,134,162,81,161,10, +153,42,95,127,72,154,170,169,203,168,102,33,167,42,64,2,67,255,205,159, +127,220,112,52,92,127,126,114,105,43,76,204,243,220,119,167,233,126,252, +51,63,235,10,163,33,121,199,227,251,23,15,26,26,237,25,30,79,188,234,232, +172,33,249,7,183,254,201,80,32,234,90,7,30,95,15,130,234,56,217,28,40,191, +250,71,249,252,76,99,34,143,95,158,168,12,157,209,211,12,189,209,217,219, +62,185,7,253,211,17,237,153,203,169,161,198,51,244,61,189,87,180,215,134, +74,57,110,79,71,212,45,70,69,134,219,55,223,183,7,131,52,252,248,121,166, +171,13,68,135,119,14,47,134,115,91,103,248,63,215,220,120,55,48,60,28,98, +13,109,109,81,33,208,247,9,137,134,230,220,209,88,97,184,253,201,163,23, +170,115,199,217,106,30,62,224,214,214,59,190,32,22,212,92,207,39,90,171, +89,204,164,15,3,78,44,167,166,166,54,219,100,250,184,90,43,193,221,247, +248,251,147,132,197,158,78,80,102,210,217,49,112,82,187,166,47,146,97,247, +126,32,232,138,182,105,166,181,60,254,171,232,61,253,115,32,234,154,166, +169,169,10,249,79,200,99,207,247,219,29,47,134,230,116,166,107,204,36,143, +186,165,186,109,117,250,101,131,120,110,19,2,121,195,191,63,154,138,103, +151,80,39,43,53,65,217,204,245,200,238,190,184,246,24,148,55,5,212,54,96, +239,249,28,190,219,7,121,139,126,200,174,3,159,236,120,109,8,228,241,202, +205,165,204,228,107,39,247,112,25,85,159,50,104,173,80,47,113,154,73,206, +246,101,252,50,12,57,227,11,169,200,30,2,42,14,36,105,168,42,33,185,129, +97,8,4,17,68,37,106,249,201,175,199,127,194,84,45,9,133,173,34,143,175, +111,254,158,254,91,134,143,132,76,153,169,43,106,107,115,70,57,120,124, +148,34,238,210,96,171,142,102,84,85,154,185,211,201,68,176,203,73,193,81, +30,59,175,188,95,65,62,77,127,235,156,195,104,133,181,35,185,100,111,164, +110,116,113,243,236,155,87,230,177,154,156,52,197,172,212,39,17,173,204, +110,134,41,7,25,100,238,123,83,60,222,183,214,149,123,193,121,171,24,46, +59,214,43,71,110,84,203,240,31,66,64,41,149,61,222,119,116,146,183,191, +203,142,213,208,214,83,125,47,208,111,150,189,202,252,13,146,39,62,126, +49,180,31,24,101,177,109,53,245,185,21,145,16,28,41,14,164,16,120,250,134, +250,116,165,110,26,204,72,14,148,68,76,145,232,123,98,24,8,205,133,230, +116,165,170,116,126,30,74,72,253,47,158,195,119,182,220,109,62,104,206, +23,172,202,98,35,81,181,212,167,51,214,172,135,247,50,193,80,105,136,195, +47,30,46,127,223,52,159,249,251,163,7,66,10,132,231,47,98,56,99,149,66, +55,29,182,189,96,235,60,26,37,105,192,247,3,98,78,229,56,35,41,179,16,12, +149,144,250,47,250,225,43,143,171,54,31,52,109,69,28,190,240,125,66,119, +103,154,235,25,173,132,248,120,228,201,18,173,95,35,117,42,18,83,36,121, +207,16,28,190,92,127,93,153,194,63,112,244,143,158,193,65,251,121,162,107, +43,140,2,63,60,232,131,161,59,95,57,119,21,166,172,63,73,46,79,22,212,150, +48,220,121,60,6,60,158,254,121,195,84,45,151,203,133,31,215,26,163,19,143, +63,190,185,63,6,2,158,225,121,67,85,29,215,203,133,159,215,58,143,190,37, +143,181,6,213,63,249,245,143,158,95,40,180,105,184,124,126,112,57,89,92, +255,36,168,154,211,169,203,237,66,55,240,24,18,166,59,113,110,43,84,12, +104,3,241,121,227,43,70,206,13,232,170,229,220,92,57,117,121,230,91,36, +48,12,61,81,206,104,91,149,234,55,239,87,161,31,24,4,154,46,7,173,161,15, +72,208,180,31,103,78,85,224,254,245,205,35,214,156,175,31,92,59,139,60, +61,15,149,114,130,165,84,153,242,72,248,225,201,144,12,237,233,204,169, +169,94,237,49,145,114,252,129,40,231,162,128,169,88,187,135,239,203,71, +203,107,253,14,61,161,31,160,107,81,102,84,182,219,75,185,247,83,230,228, +123,30,15,71,210,150,174,235,168,205,82,159,52,207,228,231,224,222,117, +121,218,224,245,62,71,194,208,51,244,3,210,94,177,230,21,220,247,224,104, +57,112,106,148,183,220,246,189,164,64,118,189,230,182,141,68,217,153,114, +151,29,46,255,190,104,54,59,222,35,178,219,225,223,26,69,203,110,69,255, +110,78,224,8,208,223,43,199,214,206,141,199,187,174,250,111,195,63,100, +207,79,89,1,74,12,119,151,248,63,255,243,3,128,127,249,113,162,50,154,218, +64,107,21,49,65,16,8,41,87,250,41,101,150,117,214,172,41,166,48,50,171, +141,69,149,217,223,2,235,76,196,181,28,132,195,31,255,23,49,220,243,34, +209,130,169,53,73,51,89,189,206,251,211,146,210,52,143,191,16,6,156,85, +233,57,33,145,215,104,149,100,66,224,255,250,239,126,146,36,209,212,39, +154,182,45,87,255,1,68,32,0,177,244,222,35,138,64,66,8,222,227,189,167, +107,155,2,73,203,70,97,58,91,193,250,151,171,205,14,184,180,254,251,148, +18,247,251,128,82,112,58,255,123,180,61,191,157,22,85,179,41,5,93,2,157, +82,251,142,97,123,181,192,145,51,214,158,24,172,28,214,212,165,210,219, +25,165,219,58,102,237,141,170,200,174,255,160,218,201,229,57,200,234,73, +121,30,58,147,139,45,74,34,9,131,209,51,137,161,20,102,45,25,157,231,209, +23,103,145,242,140,247,120,165,202,20,39,65,1,137,101,158,119,246,162,142, +138,113,228,73,1,101,204,204,143,97,45,5,17,203,60,251,156,7,101,115,114, +33,128,248,215,218,85,166,172,189,241,247,167,225,61,164,28,71,41,189,220, +206,202,239,47,158,147,206,146,176,49,102,206,17,197,197,240,0,0,32,0,73, +68,65,84,140,50,166,180,78,50,116,46,168,92,237,79,239,81,36,197,52,219, +48,245,76,120,169,36,163,33,145,24,145,162,49,42,4,2,6,91,154,180,47,195, +201,136,15,145,224,31,220,191,123,212,233,7,151,38,11,239,40,149,133,160, +148,36,252,243,155,239,239,39,114,250,228,210,216,50,75,109,102,218,21, +249,30,199,152,74,32,164,232,26,24,172,213,104,129,152,2,162,242,243,166, +28,59,36,85,230,226,51,202,145,207,93,16,49,88,35,68,41,254,8,99,146,60, +220,249,227,31,127,226,205,149,159,63,175,180,37,177,153,230,229,37,95, +183,46,2,78,9,157,167,67,82,34,164,88,174,169,172,151,148,147,69,180,45, +74,146,99,77,17,72,98,38,66,242,28,110,245,195,131,95,255,248,131,161,28, +191,171,244,129,122,163,236,51,194,253,128,191,125,225,163,165,186,126, +98,107,51,19,20,218,171,156,103,213,157,68,252,208,211,15,1,108,203,169, +180,7,94,40,110,196,13,61,195,224,17,219,149,207,245,236,89,39,82,116,60, +110,223,60,163,166,57,231,103,169,119,60,61,228,128,197,35,59,52,54,225, +189,230,229,145,121,244,158,196,242,90,74,121,237,94,240,142,103,180,143, +161,168,93,174,255,190,113,240,50,33,219,187,158,163,212,107,223,34,248, +112,222,237,0,253,204,223,179,139,3,205,4,13,50,153,101,6,65,203,202,73, +92,102,115,238,165,255,30,203,197,38,201,243,215,34,186,144,174,94,220, +171,177,162,150,145,204,37,146,9,190,40,204,207,255,128,250,227,255,32, +250,7,68,240,143,132,50,10,173,229,69,146,147,215,44,246,154,242,47,146, +38,194,136,148,74,90,205,199,247,132,82,193,207,231,218,101,50,181,81,187, +147,143,69,186,49,120,42,107,50,251,127,102,27,34,51,171,186,184,168,218, +247,45,52,151,127,151,118,124,230,57,116,141,27,145,137,172,86,103,16,37, +179,25,85,217,88,242,174,95,245,173,59,210,82,51,121,41,46,188,134,153, +70,212,38,155,80,104,173,39,184,71,86,4,195,237,52,168,98,223,157,236,200, +24,228,232,37,159,165,34,122,20,0,25,79,99,254,231,178,196,117,245,166, +147,153,17,33,53,110,208,235,109,84,89,148,5,189,99,223,11,26,109,245,70, +220,114,241,34,43,139,54,178,3,141,150,103,166,214,146,196,213,42,245,41, +248,89,57,206,166,202,41,193,165,212,243,11,88,78,155,106,150,42,149,223, +50,213,14,183,36,171,167,201,206,176,80,190,54,131,177,57,32,46,42,66,109, +169,246,158,151,50,168,244,100,120,12,72,115,225,114,106,105,204,210,191, +62,186,7,143,71,143,52,23,206,167,142,198,172,171,143,215,221,210,198,236, +15,21,169,76,162,93,172,35,101,74,251,98,188,62,93,130,243,107,229,236, +85,114,121,154,71,136,105,62,52,165,103,137,192,152,59,89,166,20,71,107, +42,109,150,91,180,214,211,216,219,60,184,41,93,205,214,208,114,77,43,197, +116,252,226,88,189,65,195,100,211,199,206,82,177,49,56,194,227,73,146,26, +123,190,80,53,102,19,74,212,142,255,197,152,188,248,190,103,136,66,213, +156,104,155,106,38,35,156,121,81,126,120,50,4,133,109,46,180,139,192,157, +57,85,222,59,134,103,143,147,138,238,124,226,212,154,157,240,35,7,72,162, +188,229,215,207,61,222,229,192,254,86,54,238,109,178,59,141,190,126,119, +95,34,210,91,227,150,125,196,84,118,251,249,234,13,95,94,14,106,253,173, +91,224,239,135,231,212,198,7,126,79,111,95,86,208,252,235,119,236,226,164, +212,107,219,85,232,77,238,148,100,236,159,171,197,72,249,124,246,61,174, +254,142,121,11,92,102,0,120,233,219,171,66,221,206,127,78,232,31,255,1, +245,245,255,18,134,191,231,49,178,40,196,88,224,255,178,0,167,160,46,43, +226,129,44,197,96,94,115,40,234,53,155,159,150,222,217,75,49,255,165,99, +28,36,98,10,120,239,81,154,76,180,218,244,230,243,236,118,140,110,199,215, +73,205,18,137,253,96,255,122,133,211,174,37,226,196,142,157,45,153,44,105, +169,119,134,56,214,134,10,71,189,176,253,76,247,189,121,193,203,75,73,47, +60,230,229,141,133,204,154,88,242,186,103,106,215,191,121,109,243,34,135, +14,242,188,129,245,247,145,137,229,44,238,58,0,202,142,63,243,250,89,238, +57,163,237,153,1,189,183,159,216,50,103,151,9,215,241,176,141,236,248,131, +29,11,111,172,147,59,181,50,41,85,59,178,191,107,242,206,214,159,109,15, +121,25,143,157,194,128,27,28,201,52,116,167,19,181,89,62,179,88,218,106, +249,243,51,173,81,155,164,102,159,126,41,155,149,161,118,17,41,89,248,105, +173,205,130,230,207,60,79,215,42,42,91,131,177,88,187,180,65,62,50,65,217, +26,14,239,173,250,163,183,108,203,161,177,182,230,100,170,204,25,217,77, +234,231,254,0,129,52,60,24,110,207,204,173,232,206,52,93,131,177,122,213, +159,221,129,106,199,61,58,6,194,16,16,101,233,206,53,149,49,179,235,200, +2,64,222,121,146,170,232,206,45,149,157,251,63,100,205,130,254,209,227, +68,99,235,142,143,166,41,73,160,108,58,197,242,102,14,102,141,17,202,170, +94,126,237,73,91,201,103,57,8,224,178,131,9,108,61,235,213,166,103,175, +118,169,122,71,193,150,13,87,96,207,90,123,207,168,106,249,110,169,77,234, +49,255,179,122,131,254,170,195,161,192,237,16,158,93,58,118,177,113,212, +30,25,234,35,153,238,53,223,254,234,82,143,99,104,175,207,213,84,97,167, +85,224,77,50,83,119,151,177,34,127,85,216,1,65,62,254,45,146,254,7,236, +240,69,117,251,59,46,64,50,191,38,216,93,169,84,126,127,38,51,58,191,161, +50,219,248,198,222,251,206,13,101,213,235,90,27,58,38,4,55,56,148,130,186, +170,10,2,177,22,166,137,89,252,226,112,48,109,79,254,246,8,118,219,58,194, +47,153,172,217,133,202,104,115,0,195,109,199,236,142,6,45,246,12,13,215, +1,108,253,203,41,198,82,192,104,246,140,44,222,171,174,203,206,191,218, +178,31,150,230,183,236,56,128,109,93,166,216,0,130,178,51,113,186,53,208, +92,111,204,115,135,192,165,31,246,30,33,104,219,70,216,215,220,82,155,68, +130,157,151,255,157,95,247,182,247,182,126,78,236,38,41,106,215,32,105, +121,204,109,122,177,76,2,246,174,231,200,213,75,217,138,246,242,131,22, +64,155,217,92,133,76,200,66,123,249,160,41,149,243,158,138,255,17,72,121, +236,217,126,156,32,112,152,114,101,220,195,216,150,203,207,182,84,224,123, +166,31,108,43,242,35,226,231,166,95,43,187,46,144,204,16,6,109,59,46,63, +27,4,195,4,136,173,232,186,139,117,173,12,170,57,209,216,46,247,249,181, +158,166,26,216,225,100,111,3,91,70,114,234,206,150,105,139,117,178,166, +208,166,162,110,51,31,96,28,189,157,7,54,83,53,156,174,13,221,66,138,86, +54,227,97,234,141,36,173,236,124,166,222,52,36,217,1,213,213,33,191,96, +221,127,223,39,13,171,77,225,179,92,225,251,106,246,239,172,101,229,160, +141,176,69,88,247,246,12,181,249,134,172,236,181,246,17,225,253,243,126, +93,167,93,75,251,233,89,126,204,206,143,39,209,11,123,215,69,189,59,86, +248,227,162,20,153,5,246,226,213,54,6,126,153,81,35,102,223,73,165,159, +37,2,190,190,226,255,246,49,25,197,32,9,25,110,36,247,68,16,254,183,255, +229,223,238,86,114,199,18,15,249,147,219,175,255,189,48,216,217,113,141, +163,84,242,137,224,29,73,34,77,83,79,125,247,197,150,34,161,244,59,101, +199,27,155,157,160,206,34,91,102,67,32,81,135,170,199,144,89,216,153,208, +180,172,75,212,145,154,187,122,181,54,100,84,253,91,125,123,139,23,236, +83,242,132,172,169,173,87,18,186,219,37,118,212,48,224,160,66,149,67,143, +59,118,199,15,247,85,163,182,70,178,178,201,183,215,137,192,30,146,242, +110,246,96,255,157,216,31,252,219,195,18,212,174,150,254,26,136,221,239, +217,29,155,49,175,45,117,247,156,169,222,77,69,171,197,132,135,90,165,48, +91,106,209,236,121,79,17,98,118,94,250,157,211,33,104,109,23,239,200,22, +7,82,187,252,241,229,217,109,239,238,94,183,246,117,199,15,188,28,148,41, +146,207,251,204,145,245,211,222,247,252,59,114,229,150,29,210,152,90,160, +15,40,93,184,21,251,233,200,94,40,80,202,204,44,194,214,207,234,8,183,99, +118,39,212,76,87,94,118,217,87,227,56,226,60,85,152,158,176,82,147,130, +158,236,32,73,71,251,238,158,1,235,54,112,174,49,14,96,215,165,109,141, +28,202,110,218,122,28,228,247,66,241,145,6,221,246,218,212,46,128,174,14, +137,193,234,144,228,184,93,81,75,163,93,181,161,36,179,123,46,178,251,27, +10,193,206,47,94,79,57,247,234,135,68,166,160,172,120,205,186,143,149,123, +174,196,165,48,236,71,180,60,7,176,180,208,128,159,193,251,172,208,128, +20,179,121,66,10,43,40,126,132,134,117,206,178,37,129,36,212,33,36,42,11, +168,109,127,35,16,146,132,66,108,90,195,178,153,184,148,82,194,123,71,101, +109,81,116,74,139,236,48,165,72,76,97,39,243,60,234,193,11,239,166,22,213, +134,221,190,236,96,197,16,178,67,156,210,203,197,172,10,129,112,7,180,21, +153,65,252,194,110,55,103,91,117,238,44,116,37,68,159,229,119,69,233,141, +1,227,126,118,188,174,207,142,12,112,213,170,115,180,239,223,174,86,89, +171,218,24,35,142,10,133,178,19,8,143,172,101,255,138,38,150,236,52,16, +246,28,231,213,91,156,68,237,110,46,199,68,199,61,96,79,14,131,207,214, +53,123,207,26,245,157,173,228,126,235,104,141,156,148,235,152,18,238,245, +183,247,92,2,213,62,252,57,75,62,151,0,248,246,218,223,219,137,174,147, +90,181,26,133,221,199,167,142,49,175,125,63,117,181,2,88,199,10,248,117, +172,253,106,149,195,228,119,219,244,89,38,103,178,27,164,167,78,234,111, +76,82,182,237,47,222,38,178,243,170,255,216,167,111,31,37,81,59,201,220, +209,28,204,94,131,71,173,128,107,222,4,180,163,183,120,155,118,109,145, +56,14,215,168,236,188,173,251,18,56,219,20,122,47,97,248,157,219,224,206, +189,153,182,176,223,249,33,170,157,253,154,157,132,68,70,126,206,252,175, +247,254,231,21,228,71,72,125,46,67,59,2,221,169,136,220,188,140,103,178, +206,188,204,199,235,74,2,16,165,140,214,21,54,124,26,238,136,27,178,107, +215,212,55,159,245,174,69,80,18,81,49,64,244,72,10,43,189,26,217,121,145, +202,249,171,101,117,58,175,216,83,10,164,228,166,126,251,120,197,41,69, +124,112,104,5,85,101,86,125,247,68,74,158,148,194,235,183,212,28,199,144, +137,88,184,239,39,191,14,246,91,55,187,53,252,171,32,147,126,180,121,45, +174,153,174,240,145,255,178,218,125,249,214,207,86,237,208,62,150,176,29, +146,229,117,245,212,26,56,214,147,126,37,30,219,180,101,47,120,190,86,159, +218,110,118,138,21,21,112,175,206,154,85,206,194,134,127,176,30,97,220, +183,34,93,190,148,147,65,143,82,139,53,163,54,155,208,154,188,184,51,224, +167,142,215,169,48,63,140,58,108,239,236,215,151,106,19,230,215,97,106, +10,150,138,205,118,175,14,7,40,247,54,196,213,61,19,118,8,123,123,184,202, +30,165,168,156,101,33,218,242,38,77,218,34,75,178,67,59,93,125,75,216,60, +87,217,219,207,54,79,34,79,76,108,77,168,222,232,156,201,26,118,86,111, +214,213,114,11,62,102,189,8,107,159,38,53,79,208,132,13,82,168,118,16,67, +181,115,111,182,229,132,204,148,43,101,231,82,133,119,226,178,106,189,183, +169,61,254,199,239,66,156,218,1,198,229,240,221,220,214,187,203,54,201, +226,119,213,206,52,253,102,164,120,15,19,91,159,205,81,66,115,52,212,182, +94,93,170,168,103,238,137,242,206,227,29,59,201,147,218,149,232,81,187, +24,230,12,185,157,230,98,22,68,174,157,71,162,100,81,193,203,60,192,151, +160,63,6,240,81,234,61,202,75,170,54,78,66,56,99,114,240,202,176,162,119, +36,223,79,193,92,49,59,192,120,221,146,102,12,61,153,102,237,145,200,95, +255,111,239,102,140,210,181,158,24,134,217,148,128,16,130,207,106,117,117, +181,32,147,37,73,121,182,58,197,101,224,146,213,66,151,35,152,94,14,136, +19,59,16,211,104,111,154,34,49,196,109,61,35,239,122,86,251,2,183,123,47, +201,86,177,121,185,33,229,227,167,221,26,97,30,136,247,90,19,203,141,106, +29,240,182,217,255,114,131,80,59,170,212,219,158,62,111,64,171,87,244,84, +236,171,11,28,108,57,139,71,116,20,32,228,141,238,20,171,23,247,192,82, +114,204,159,68,222,180,72,212,198,231,123,191,79,175,246,82,179,105,173, +44,111,187,90,190,223,138,157,164,103,254,111,213,42,105,88,39,163,199, +131,77,242,166,112,81,34,255,29,207,229,40,232,115,88,33,174,219,0,251, +231,49,195,156,38,73,235,247,149,39,7,228,169,227,34,237,120,226,153,61, +217,102,217,107,169,172,41,163,106,156,101,94,253,134,130,141,100,180,90, +172,35,181,74,222,167,191,149,85,194,186,104,199,201,110,242,191,72,192, +199,12,73,173,234,109,117,148,236,29,141,16,31,37,85,123,168,224,186,118, +157,221,183,157,71,46,34,155,164,66,128,247,86,51,234,55,207,94,222,174, +47,53,83,119,125,143,240,114,136,26,188,246,200,189,34,97,181,86,228,101, +3,107,243,70,163,22,112,219,226,192,105,102,178,130,154,228,105,199,127, +159,148,76,20,147,81,209,110,138,211,74,166,68,128,5,44,159,21,152,72,105, +21,36,95,85,242,148,112,73,122,157,205,60,203,145,85,5,178,29,68,62,14, +132,35,148,171,230,189,218,172,174,231,189,35,68,143,181,26,99,20,34,161, +36,49,177,120,84,47,110,192,78,159,93,166,25,98,197,94,21,251,87,114,219, +210,2,81,130,82,26,99,15,32,238,185,129,128,240,155,42,234,93,181,182,151, +212,149,84,98,58,254,234,252,230,107,70,14,94,202,77,55,226,104,49,203, +34,160,206,23,170,90,85,119,242,219,77,96,5,21,202,78,255,85,169,247,145, +135,189,97,37,181,147,69,203,1,18,114,0,178,169,37,202,48,55,212,225,175, +122,60,47,126,64,29,160,35,236,159,195,110,27,80,237,196,207,189,119,71, +189,129,37,57,252,251,93,232,91,228,13,98,52,95,95,171,117,166,214,107, +228,221,117,11,191,181,231,148,119,74,228,191,251,205,253,231,180,145,101, +145,157,132,74,118,174,115,167,58,228,144,22,185,254,125,217,58,132,201, +142,161,128,236,247,198,213,209,125,148,119,239,154,28,180,186,212,86,14, +252,240,30,188,89,171,111,239,191,44,147,80,81,239,247,184,241,223,40,22, +38,87,211,8,55,106,245,76,102,251,154,90,39,92,127,213,139,125,222,130, +58,74,94,126,55,241,207,108,159,103,231,157,124,55,165,147,255,203,190, +96,162,22,27,71,94,115,75,120,30,149,137,114,235,62,122,246,34,79,132,164, +136,40,36,189,54,198,148,138,92,237,108,57,104,37,72,241,81,47,66,245,229, +59,163,199,183,204,2,248,40,106,19,95,32,185,72,201,68,57,208,242,219,31, +250,82,74,33,155,56,187,172,118,83,138,56,215,99,76,66,43,77,140,110,134, +20,200,6,150,123,17,229,86,129,94,49,5,232,69,53,175,230,223,159,49,182, +213,142,66,115,233,123,43,173,48,74,239,7,145,169,237,252,174,75,163,126, +3,39,237,44,210,50,86,24,67,40,199,55,111,235,167,205,166,166,86,138,217, +178,5,147,215,117,201,34,243,23,118,173,23,254,138,101,228,219,190,100, +177,54,214,230,213,171,61,226,191,30,155,172,236,19,135,246,139,208,237, +166,43,7,35,115,47,161,136,157,12,94,212,50,41,80,175,162,104,194,95,22, +253,137,85,128,86,251,27,131,108,2,206,136,188,168,44,128,147,118,54,143, +34,150,241,114,11,83,251,151,50,86,23,111,130,178,36,217,30,67,41,180,81, +187,239,245,58,104,169,18,28,101,245,188,119,103,135,199,251,163,230,27, +247,126,175,125,220,151,37,164,109,135,211,170,221,96,187,129,82,23,73, +237,236,239,69,109,114,222,209,202,117,254,204,214,244,213,93,165,8,217, +134,127,89,33,48,35,247,230,200,201,108,113,190,139,223,156,191,203,217, +34,250,181,244,205,107,110,94,29,37,74,234,64,37,110,118,223,55,107,175, +20,92,69,48,72,205,170,86,137,41,27,42,105,197,123,167,170,236,143,129, +178,47,199,204,241,253,89,35,35,178,167,147,167,118,192,154,35,190,131, +108,223,45,245,238,59,203,120,244,226,11,169,157,103,165,246,223,255,93, +160,75,109,106,60,85,16,117,171,86,110,51,106,21,195,68,100,250,59,153, +228,105,243,127,49,69,130,115,60,30,158,65,213,168,170,42,27,122,113,93, +115,14,231,61,33,101,146,156,173,42,26,66,153,72,145,108,150,18,178,164, +173,232,138,166,173,138,189,221,235,65,199,224,241,206,19,82,214,172,175, +52,212,44,91,70,178,219,217,88,145,40,100,175,234,24,123,224,57,128,122, +159,93,226,170,170,66,169,56,201,238,110,43,167,29,162,220,172,178,151, +89,2,177,224,155,207,95,120,245,226,25,228,66,37,109,90,244,186,120,174, +31,87,252,234,45,128,185,118,137,19,129,173,46,28,75,142,218,236,183,204, +100,46,178,124,55,213,2,64,145,37,28,46,227,139,179,195,215,87,43,1,206, +121,34,57,219,241,100,47,64,207,95,36,245,130,131,82,18,148,206,230,35, +203,4,117,185,97,75,239,232,191,61,82,213,180,31,89,241,77,54,47,140,218, +108,122,175,199,174,94,241,65,14,42,11,57,170,48,126,255,194,239,5,118, +10,121,117,28,89,154,31,107,93,36,169,49,121,216,219,52,119,232,15,178, +168,126,150,149,78,242,14,247,53,48,60,179,210,159,20,29,125,52,232,218, +82,93,59,154,78,237,55,39,228,160,123,180,110,188,12,158,254,87,143,27, +100,190,224,168,46,53,237,117,46,188,178,147,68,142,246,207,105,124,254, +44,158,191,172,171,187,249,254,54,119,160,92,7,197,151,252,28,225,54,48, +124,57,66,44,255,40,42,116,87,211,254,83,243,146,38,150,156,164,20,111, +225,77,62,178,60,254,94,225,54,75,38,55,75,102,54,8,54,161,25,243,23,176, +252,110,138,153,252,156,229,2,143,193,158,197,219,186,133,187,119,31,154, +164,226,215,240,196,15,67,46,178,84,133,109,47,52,77,61,35,74,238,239,75, +239,131,210,94,59,36,16,250,59,193,43,76,119,193,86,58,43,20,62,111,184, +103,64,55,103,234,174,217,85,208,44,194,255,217,128,202,43,236,233,147, +170,210,187,202,32,11,217,155,233,29,211,229,246,29,35,7,106,49,141,52, +43,94,212,65,174,178,65,61,103,207,124,133,74,173,201,187,114,128,28,169, +93,149,192,45,200,55,85,240,235,133,32,155,77,63,33,193,65,81,188,74,34, +196,148,240,67,160,119,145,33,36,188,50,152,202,228,225,50,17,36,70,92, +240,36,101,168,218,10,27,29,174,247,164,225,137,212,22,82,214,9,119,62, +102,137,71,12,181,125,41,71,137,196,34,184,16,65,105,108,211,81,23,139, +79,149,60,226,103,129,84,173,42,190,233,1,28,67,56,219,209,144,68,8,129, +24,66,238,187,235,89,229,173,22,198,246,219,74,124,253,185,26,55,145,121, +127,181,44,178,233,158,190,130,189,236,84,229,66,34,134,84,88,243,59,25, +26,239,209,176,173,188,204,114,81,174,55,251,197,37,144,133,123,36,38,84, +49,249,16,89,23,36,219,121,236,41,67,86,106,182,201,191,2,135,240,130,199, +100,181,16,101,118,63,247,70,192,132,85,2,34,130,132,136,191,57,124,84, +212,215,134,170,158,5,115,153,111,50,130,248,136,191,59,66,52,180,23,51, +161,57,106,147,248,173,110,141,188,105,167,30,244,203,183,104,200,62,156, +38,111,122,182,89,3,124,188,62,77,253,81,147,101,24,212,20,156,166,66,116, +29,172,143,213,133,151,215,52,99,155,143,234,102,170,72,221,82,85,84,159, +6,211,5,252,247,128,87,21,237,181,194,86,69,103,93,31,76,57,43,54,129,115, +17,147,198,36,207,71,194,211,19,77,77,247,79,22,91,207,38,67,76,70,7,182, +235,122,165,91,22,34,97,188,63,215,26,91,239,200,134,202,78,193,178,105, +54,201,234,221,19,210,16,8,207,136,58,117,156,58,131,138,17,255,171,199, +251,72,242,146,135,139,125,62,190,139,154,166,28,127,147,44,207,17,120, +86,214,171,99,69,58,123,199,216,109,228,173,90,97,179,17,55,73,158,240, +248,198,7,77,117,186,228,194,4,118,116,211,213,1,250,118,44,153,34,97,192, +247,119,66,2,83,159,168,175,151,44,7,29,3,152,87,50,49,38,188,111,109,92, +101,181,13,203,108,174,67,205,76,185,134,7,222,37,108,123,198,84,89,214, +56,133,129,56,56,80,53,166,174,54,5,199,244,150,199,64,116,119,252,32,152, +238,156,147,131,157,132,124,190,47,75,242,132,254,27,231,231,247,79,45, +242,50,100,181,246,100,31,164,19,37,139,184,179,107,181,44,171,220,110, +67,201,58,26,248,156,205,25,200,114,230,96,63,6,188,126,197,238,46,192, +69,155,181,188,157,49,100,131,19,35,56,47,180,181,198,24,129,144,5,44,180, +54,164,88,42,125,109,48,86,101,75,193,24,240,222,145,252,128,173,26,84, +138,248,144,117,177,173,85,57,91,179,134,202,170,28,24,37,16,92,174,250, +149,201,158,208,122,30,176,101,53,67,187,218,224,150,27,222,62,44,185,158, +33,15,49,17,147,71,27,141,181,217,102,83,230,36,169,233,225,189,254,110, +100,178,175,171,242,57,79,64,201,170,194,21,121,67,254,89,106,118,153,153, +90,220,14,208,183,13,122,171,194,64,201,114,17,44,168,7,114,64,31,82,47, +18,138,50,243,64,184,51,123,188,10,252,83,102,60,221,255,45,204,42,235, +13,112,145,96,204,224,209,44,168,48,137,36,77,176,45,64,204,112,97,120, +56,220,51,162,218,38,107,241,199,132,140,194,27,165,178,146,17,37,122,250, +156,213,159,43,108,91,236,147,82,202,107,76,103,216,111,110,115,169,10, +36,25,203,231,217,147,189,212,83,49,179,43,212,88,197,169,124,78,82,42, +237,81,48,69,162,188,80,132,17,97,152,55,37,82,17,121,26,179,84,157,231, +143,37,172,174,175,177,229,124,74,107,97,148,119,14,179,57,127,53,59,31, +100,70,97,41,21,102,57,7,244,170,237,86,70,65,135,254,137,199,210,118,23, +218,90,51,170,185,39,23,115,242,125,174,169,78,102,70,62,204,215,55,193, +227,229,250,70,169,235,177,178,70,94,76,20,202,61,99,124,30,65,97,187,42, +255,238,44,110,137,228,235,151,101,183,11,61,202,208,70,129,152,240,15, +135,127,70,104,44,74,229,239,40,93,136,100,137,169,61,150,82,89,89,38,107, +115,74,153,224,121,221,47,53,173,21,165,21,18,2,254,225,73,198,98,207,21, +85,37,196,103,110,51,170,42,67,211,105,136,196,217,243,97,60,190,81,104, +121,81,139,166,234,112,20,210,209,10,36,226,251,27,223,183,129,84,159,249, +188,158,38,68,96,93,113,47,130,224,132,64,39,68,18,18,61,193,221,241,62, +130,61,103,135,189,148,74,85,253,18,24,155,229,113,101,238,126,86,128,148, +130,109,148,218,213,74,229,226,202,61,240,67,70,85,171,211,41,27,225,148, +122,208,216,170,216,45,199,252,140,231,231,171,77,126,22,105,166,155,50, +197,146,60,230,60,173,82,137,197,13,148,172,208,231,158,120,159,208,213, +41,43,243,133,64,82,160,116,67,117,105,168,148,46,90,36,148,209,224,148, +215,2,146,245,254,253,19,239,34,170,185,80,181,53,90,34,169,16,178,243, +26,202,62,40,217,196,41,229,224,62,220,115,17,89,157,179,135,69,74,229, +28,243,125,78,41,189,118,106,173,151,234,161,146,173,186,103,23,255,146, +239,150,229,254,50,238,31,139,230,158,252,158,194,57,7,70,217,139,209,59, +89,149,90,33,88,246,80,241,110,93,181,8,120,31,209,162,56,183,6,163,19, +207,33,33,198,82,25,147,37,106,103,49,76,43,114,112,239,239,184,126,64, +219,138,170,202,23,105,173,33,69,143,115,9,180,161,178,197,100,65,34,193, +13,132,196,84,77,72,74,217,231,120,226,214,201,106,60,101,139,134,170,109, +44,93,117,89,100,54,222,151,240,193,97,140,162,174,42,20,145,153,248,46, +47,9,92,89,144,243,68,102,16,252,110,149,95,54,87,181,246,249,97,227,63, +180,152,128,47,189,46,85,28,199,80,91,114,153,108,38,230,183,1,116,36,55, +170,5,164,52,79,0,242,134,48,90,255,142,191,150,98,94,180,163,70,182,82, +7,109,0,153,253,254,17,197,101,231,252,23,155,216,116,127,230,149,67,36, +220,29,254,233,9,190,244,123,219,154,230,82,97,36,226,110,14,247,240,4, +159,55,125,229,159,196,167,198,116,53,205,181,66,147,72,79,135,127,120, +188,207,193,32,98,168,63,91,234,174,152,137,196,129,219,175,47,110,79,161, +185,94,249,184,180,147,191,117,14,166,3,183,63,191,248,238,133,238,122, +229,122,105,177,10,210,224,24,126,121,104,106,170,107,149,181,207,189,199, +125,121,130,104,170,83,149,77,77,6,79,40,199,23,165,177,167,134,246,35, +255,123,36,17,93,192,223,61,254,153,55,57,101,45,213,165,198,218,68,184, +59,220,51,228,235,211,179,235,59,229,123,160,137,249,183,31,158,20,114, +131,201,156,26,186,207,58,39,0,207,129,231,51,77,4,85,239,34,162,42,154, +207,134,166,4,83,36,226,253,192,243,254,228,233,18,85,211,113,190,116,212, +229,61,204,73,145,203,213,208,169,166,105,117,246,96,87,165,114,238,3,238, +54,16,124,70,64,204,185,161,251,168,209,21,224,35,238,225,241,247,114,126, +41,34,42,63,159,250,82,97,83,192,149,125,195,26,133,132,148,215,128,201, +27,108,248,234,241,62,33,73,33,62,27,254,168,83,67,251,81,99,82,192,223, +6,220,35,223,31,140,66,251,39,247,167,198,156,107,154,179,69,7,207,240, +200,27,179,150,132,115,17,148,165,254,108,168,117,196,253,242,164,182,156, +139,1,66,192,125,123,82,210,152,214,160,188,39,166,252,123,214,66,114,30, +119,15,121,159,171,33,124,221,9,125,36,56,153,142,31,251,242,124,206,21, +41,56,220,35,141,243,182,4,23,17,101,169,63,91,154,206,228,224,26,34,193, +245,4,12,125,104,56,107,187,159,168,207,16,49,165,32,73,32,246,223,184, +199,29,239,135,226,245,161,81,218,19,135,154,170,184,232,73,76,36,18,201, +39,180,53,160,19,193,107,170,211,149,218,120,220,224,203,222,146,8,206, +35,98,169,207,159,212,173,33,61,191,113,1,116,125,162,110,91,236,104,62, +52,229,218,66,244,119,194,208,103,216,62,21,135,206,234,76,123,58,99,213, +128,239,221,200,106,34,122,159,45,154,207,159,180,167,14,163,34,49,12,196, +225,137,27,134,194,195,72,36,211,209,156,78,104,19,9,247,111,220,224,136, +170,161,185,124,80,215,117,17,216,202,38,80,209,247,175,227,199,98,234, +100,58,154,243,149,186,177,224,238,244,99,91,33,19,193,166,243,51,50,224, +158,119,188,27,72,163,235,163,119,60,134,22,219,93,104,26,67,72,3,190,207, +191,47,73,16,93,83,159,62,179,44,176,74,197,42,58,159,127,110,17,25,76, +115,165,61,157,178,89,83,28,184,255,249,197,247,32,116,151,43,151,75,118, +225,147,117,97,179,170,190,213,130,158,48,3,227,215,124,61,181,162,123, +173,138,189,137,111,38,146,165,106,145,181,30,239,75,97,14,150,194,17,41, +70,124,72,120,17,2,6,83,89,4,69,136,35,9,175,56,64,165,64,184,127,225,66, +66,155,154,166,24,63,228,236,49,18,156,39,162,169,43,155,97,132,148,55, +157,252,66,144,55,206,148,114,21,223,52,88,163,209,197,145,97,169,127,246, +186,75,75,238,140,154,101,170,203,76,118,10,183,34,120,239,144,148,168, +90,91,200,110,177,184,225,69,36,69,180,73,211,147,152,147,53,198,12,52, +75,110,46,197,111,153,190,47,19,204,46,171,222,112,146,88,196,129,244,171, +117,166,76,145,159,36,103,135,73,178,91,213,172,15,63,102,232,113,252,125, +107,74,70,189,4,32,67,138,229,251,118,38,221,255,162,216,196,148,167,3, +24,145,130,177,239,95,142,159,146,144,82,194,88,3,171,138,125,228,95,144, +100,229,7,255,90,61,33,230,169,3,171,13,50,239,143,142,128,80,201,144,71, +164,66,0,156,195,125,57,60,150,250,199,137,86,23,198,187,46,21,124,210, +212,41,101,209,157,182,162,249,168,114,144,87,89,65,77,122,143,123,4,82, +85,81,255,168,169,131,103,248,246,40,83,209,92,44,198,170,201,37,235,249, +240,80,95,56,157,154,34,100,52,166,93,249,243,199,211,163,234,11,221,169, +201,46,90,42,33,46,18,35,24,107,49,70,35,190,156,111,212,212,159,21,58, +4,134,123,4,107,169,127,212,84,190,36,4,37,251,77,222,227,190,7,188,87, +57,40,95,178,199,252,212,67,6,180,8,209,11,170,173,104,174,85,118,33,43, +215,151,158,142,254,30,161,178,52,255,116,70,71,79,255,135,43,174,105,96, +124,160,255,30,112,131,194,158,91,154,43,232,219,128,115,160,76,22,147, +74,209,241,124,220,185,247,130,109,79,124,254,173,205,40,217,236,233,197, +193,227,30,17,170,154,186,179,185,242,86,130,56,143,119,9,209,134,246,111, +231,41,225,201,168,157,32,247,124,126,98,43,154,191,85,72,239,24,30,10, +213,54,57,249,138,190,36,104,2,58,16,239,61,162,13,245,165,161,185,88,228, +233,112,223,158,104,43,234,207,26,27,125,254,253,82,253,235,202,82,73,34, +122,129,242,252,95,247,71,161,162,103,248,26,24,122,69,117,105,48,87,75, +253,61,224,67,70,105,210,16,8,1,140,53,24,3,248,192,112,203,1,189,186,214, +104,231,24,250,8,109,139,209,66,42,137,148,232,138,230,71,69,101,21,169, +135,20,133,170,169,168,63,171,108,48,51,62,195,232,233,203,241,237,165, +161,189,90,84,121,222,170,244,233,149,182,216,166,166,177,138,222,121,6, +151,232,42,201,21,228,108,3,15,49,191,223,214,148,247,7,208,24,84,123,34, +121,71,18,139,57,125,82,213,197,8,70,50,220,252,124,12,152,170,6,147,72, +165,170,84,2,166,110,169,76,36,12,119,92,47,216,246,76,221,213,104,254, +196,249,92,121,135,231,159,248,1,116,247,131,182,173,23,173,18,65,144,240, +196,61,110,56,177,84,221,133,174,251,32,246,95,184,62,160,155,19,86,7,252, +253,139,193,129,110,174,52,231,26,243,252,194,59,133,177,21,42,62,113,253, +3,151,12,117,123,161,235,174,57,161,24,2,182,235,202,212,146,193,86,109, +217,63,44,198,140,100,185,124,124,255,184,225,197,98,187,11,93,123,37,245, +95,12,67,64,181,87,106,43,132,251,31,120,177,84,221,149,83,247,73,236,191, +240,131,135,246,76,213,116,40,165,177,49,223,191,122,118,255,20,42,219, +51,63,190,240,65,99,218,43,93,123,38,245,95,56,167,80,38,91,80,187,199, +159,184,65,208,205,149,238,199,143,23,87,196,24,242,91,148,45,136,31,79, +143,174,47,180,227,254,49,163,233,140,136,229,198,3,116,86,153,138,146, +37,63,99,94,196,173,134,47,230,245,165,154,241,230,74,15,126,101,203,169, +150,100,48,145,21,67,92,178,133,228,19,139,24,75,66,147,162,100,34,93,10, +72,240,196,208,227,7,71,136,138,170,169,178,197,227,100,11,155,136,222, +225,19,216,186,162,82,197,215,56,58,124,239,72,170,162,174,108,126,193, +220,128,11,43,168,101,198,50,125,101,44,99,177,251,242,174,95,107,235,207, +9,92,85,245,3,239,255,193,48,12,216,74,81,91,139,81,49,171,229,149,50,83, +107,157,9,21,139,49,191,52,5,105,165,71,207,231,23,235,108,62,83,169,75, +85,242,130,88,100,70,114,203,196,28,35,10,239,102,112,94,50,104,149,53, +167,141,6,49,47,54,254,156,196,145,137,172,163,175,247,43,145,153,115,68, +116,33,69,237,77,17,72,33,240,229,204,60,67,214,169,36,13,186,200,103,106, +67,22,182,81,170,48,50,95,41,98,134,76,53,152,89,163,97,154,46,201,7,49, +90,79,217,228,170,7,80,108,75,117,97,75,171,9,122,12,189,199,15,9,206,42, +159,71,9,236,50,155,177,76,165,34,170,62,26,170,182,36,71,41,17,7,135,251, +14,72,215,210,156,13,134,68,120,70,18,150,250,90,101,111,241,34,198,92, +181,87,254,246,47,151,156,121,47,52,209,51,25,180,106,175,252,83,249,124, +100,139,75,204,118,200,88,147,251,173,209,227,191,6,130,216,156,104,80, +42,193,170,162,110,205,11,170,83,26,221,24,136,17,127,27,8,209,208,124, +54,84,77,126,62,170,44,96,41,220,149,228,34,73,89,154,143,154,170,53,185, +114,150,72,120,58,220,119,66,95,27,234,83,182,5,149,33,43,41,234,218,162, +147,224,239,249,247,219,191,181,212,39,141,138,17,39,10,211,85,104,21,120, +254,250,131,95,207,128,238,62,249,252,217,209,84,186,60,167,23,172,34,33, +18,30,142,168,44,221,185,194,84,227,124,184,32,90,163,237,140,208,152,4, +177,150,234,108,208,165,18,142,182,165,189,90,172,74,120,73,168,186,162, +62,231,63,135,222,19,168,57,253,43,139,173,212,212,2,84,38,67,227,225,225, +81,151,142,211,37,123,198,167,187,144,172,205,201,89,169,240,211,16,137, +202,102,94,66,107,38,9,121,137,185,39,30,162,161,253,167,124,143,136,129, +136,194,118,217,146,54,6,65,172,161,170,84,14,238,191,178,207,121,85,206, +119,184,13,185,50,119,15,252,45,39,20,245,181,165,110,77,190,230,241,249, +80,158,79,105,159,148,140,119,58,126,83,142,175,82,64,149,251,111,171,87, +175,93,219,134,230,212,98,191,6,220,179,39,182,165,200,153,21,87,70,231, +247,107,100,67,151,69,72,116,79,66,212,84,151,43,117,219,148,54,99,70,62, +189,75,152,238,147,74,59,188,3,219,118,88,6,66,106,105,154,138,52,252,194, +123,67,251,249,73,93,87,144,30,12,1,108,221,162,83,207,208,71,204,249,39, +109,83,231,118,197,68,10,137,36,247,96,184,125,19,205,41,87,234,86,145, +226,131,224,18,166,251,160,174,53,225,241,7,62,86,52,31,31,84,77,141,138, +15,6,47,232,246,138,81,61,195,247,131,104,59,154,211,57,39,75,241,65,112, +130,238,62,51,121,14,133,74,158,240,236,73,82,211,156,47,84,86,131,74,136, +123,208,223,190,73,230,68,93,190,47,225,193,224,4,115,250,192,234,128,187, +63,72,166,155,206,79,194,3,231,19,186,251,65,221,118,104,29,72,67,143,247, +26,123,185,210,180,77,73,108,19,41,60,241,247,47,156,212,84,237,137,170, +2,226,64,8,6,219,93,169,43,133,248,27,225,217,35,246,138,181,6,173,205, +202,83,33,239,47,118,181,127,108,200,168,106,139,254,110,172,134,100,57, +19,178,172,208,151,252,14,53,197,24,181,16,66,43,44,250,57,217,74,166,73, +142,215,65,100,154,75,23,201,85,215,32,138,166,54,24,155,251,238,78,32, +249,72,114,79,130,235,241,33,128,182,212,93,69,173,244,66,8,38,69,151,251, +30,218,22,167,162,148,251,62,67,0,93,209,54,117,230,112,72,204,85,162,50, +24,165,152,76,45,37,173,198,57,101,98,97,4,115,211,0,0,32,0,73,68,65,84, +109,191,32,224,61,133,229,145,128,39,212,237,191,102,240,127,199,57,7,88, +186,174,37,201,127,65,241,137,82,85,201,171,34,66,92,82,115,148,204,102, +179,199,49,160,244,106,213,171,244,98,51,79,227,10,50,155,34,145,151,100, +108,193,189,6,87,108,253,236,153,202,54,83,182,170,148,46,66,32,59,196, +123,20,90,230,201,216,150,188,145,251,105,227,111,205,122,178,83,62,178, +54,25,202,213,182,154,178,118,53,137,95,8,235,243,152,249,193,173,24,248, +106,198,142,213,179,145,59,181,104,41,200,162,183,34,211,120,148,65,169, +128,255,26,184,127,123,234,143,134,246,195,230,100,42,9,225,233,24,122, +65,181,53,117,167,11,169,44,229,190,233,119,174,28,235,171,197,34,196,135, +103,24,18,186,173,243,6,61,59,166,49,217,202,85,173,238,161,148,27,165, +245,232,51,62,158,121,38,29,70,151,225,116,109,18,254,151,35,138,161,250, +172,169,8,244,127,58,134,71,4,155,8,143,126,122,225,116,87,83,183,138,244, +232,241,65,99,63,58,170,118,205,118,45,216,79,239,25,122,65,183,53,182, +25,205,90,18,226,2,238,59,230,96,119,182,152,130,16,249,103,32,89,139,61, +25,8,46,87,30,215,204,66,207,118,185,138,234,135,161,210,9,119,255,226, +251,251,142,183,23,62,187,51,109,253,234,73,79,21,146,8,225,57,224,60,25, +162,110,116,89,115,9,25,66,169,190,227,75,219,66,25,236,181,165,174,53, +241,54,224,131,96,90,208,41,226,159,14,231,242,249,84,149,34,61,29,131, +7,221,86,57,248,141,193,78,101,19,163,120,119,68,12,246,84,97,109,190,23, +174,7,211,212,84,5,218,78,79,143,235,19,186,235,168,59,131,158,113,2,210, +224,113,65,97,46,45,205,197,230,130,66,215,212,63,109,110,119,133,220,247, +87,70,3,129,225,59,144,84,174,204,13,9,255,53,144,76,69,253,175,154,204, +7,82,101,108,215,188,208,179,216,123,134,62,97,218,14,219,154,9,77,83,2, +113,112,12,65,97,46,13,221,165,8,71,148,227,51,17,233,242,100,80,240,217, +135,61,120,232,70,100,105,74,194,165,36,236,122,65,60,21,137,132,225,155, +225,233,160,186,82,181,13,185,108,138,153,92,246,12,80,93,104,170,152,171, +240,246,74,165,123,188,83,232,186,65,194,29,159,44,246,242,147,182,179, +72,236,241,143,1,49,29,85,13,254,233,242,247,219,54,163,9,211,139,153,192, +63,113,143,39,98,78,180,151,15,172,74,136,187,211,63,243,223,53,77,69,124, +254,73,136,150,234,242,147,182,51,224,179,109,48,246,76,93,43,66,63,228, +239,95,175,88,18,226,110,244,143,30,177,29,237,169,197,162,51,255,106,248, +206,73,65,115,161,174,171,76,242,94,29,223,168,68,114,119,134,71,79,178, +45,173,85,132,199,64,210,29,205,229,3,171,19,169,252,126,50,39,186,174, +203,208,122,95,238,95,93,130,123,38,140,144,226,131,254,246,197,240,28, +192,4,196,63,112,74,161,235,51,213,249,39,77,99,243,250,83,10,180,16,250, +95,68,247,160,62,255,160,237,218,89,155,50,223,55,99,114,129,6,171,88,180, +98,220,47,37,150,89,76,129,168,141,197,174,154,218,196,178,195,136,159, +207,44,205,247,228,2,209,207,120,122,178,211,217,31,255,79,244,120,31,177, +109,71,85,87,196,52,18,110,18,33,12,120,215,19,99,194,84,13,214,154,92, +224,77,140,159,92,225,123,231,137,74,83,215,54,67,238,34,165,162,23,76, +109,49,74,50,203,222,123,34,134,170,174,177,19,28,81,94,168,36,235,162, +112,170,100,151,98,5,175,217,194,229,88,152,37,250,113,46,90,229,94,176, +6,225,15,210,196,244,78,91,113,151,181,124,238,130,88,63,235,219,171,37, +201,110,76,44,94,58,220,249,101,127,62,138,72,80,74,180,167,255,121,10, +50,175,241,152,49,152,202,174,203,220,92,156,97,173,1,47,178,36,253,77, +170,97,50,142,122,72,97,156,103,40,62,197,2,7,206,130,245,148,93,206,251, +250,243,49,119,89,14,145,172,29,211,54,243,185,99,85,187,231,10,167,21, +250,212,112,170,108,14,228,247,148,229,140,83,190,95,209,121,194,35,128, +181,52,151,89,240,139,41,247,219,163,162,186,84,104,17,66,159,33,102,177, +53,237,37,251,196,75,33,66,73,202,232,67,30,43,146,25,249,37,229,10,58, +81,166,7,10,66,83,18,180,228,35,162,20,70,37,252,119,66,176,84,159,22,99, +18,254,203,19,163,161,253,55,45,85,109,22,92,54,20,164,222,225,158,9,186, +14,91,47,239,231,184,54,196,5,252,163,192,251,231,252,238,136,72,238,105, +223,29,1,77,125,173,48,8,41,196,204,81,112,96,207,53,70,2,190,79,80,219, +137,103,48,30,92,87,25,129,169,218,19,231,107,32,61,83,238,47,86,45,141, +85,175,177,3,33,147,223,158,9,213,188,250,245,41,69,194,125,192,221,115, +226,209,254,107,141,10,1,127,15,36,83,209,156,52,233,233,243,159,3,196, +175,39,225,161,177,93,67,243,51,147,109,147,243,184,103,4,91,209,116,122, +214,123,84,57,184,63,51,167,194,156,114,112,197,123,124,31,73,198,208,156, +115,162,155,134,128,127,4,146,173,105,79,6,61,182,203,82,66,202,239,75, +85,211,156,12,122,146,27,150,220,74,145,68,116,185,37,134,68,194,67,65, +85,211,118,22,77,34,62,67,38,251,158,234,226,164,198,212,14,27,69,190,210, +224,203,243,169,168,207,165,165,33,249,253,138,174,60,223,106,76,94,198, +247,12,148,53,179,189,111,160,127,62,120,70,69,213,254,224,223,124,86,84, +118,132,118,101,218,43,114,1,48,39,231,70,146,187,229,158,117,117,161,237, +218,108,58,149,34,209,221,240,131,67,108,71,165,19,201,5,84,213,97,9,4, +151,208,245,9,45,61,49,104,170,83,174,180,197,101,94,84,20,139,237,44,226, +238,196,100,168,79,249,119,71,89,114,165,20,132,39,238,113,39,74,69,125, +62,97,196,227,251,27,190,239,73,230,76,211,86,36,119,35,68,141,61,93,169, +27,67,114,61,97,120,18,85,67,221,104,82,127,35,198,138,250,218,161,147, +199,15,55,92,223,131,57,211,156,206,229,90,60,161,191,225,125,196,180,159, +84,117,149,85,76,227,192,240,184,19,82,69,117,57,161,164,124,255,49,128, +237,104,27,77,124,222,8,243,243,123,220,113,207,30,236,153,246,116,194, +144,72,195,141,161,207,9,71,115,106,167,231,151,66,159,175,143,134,238, +231,63,101,164,101,68,178,149,153,90,28,162,20,218,158,105,175,53,166,255, +206,220,142,162,210,154,233,82,153,201,159,68,149,132,46,39,208,175,202, +90,166,4,78,212,102,6,96,218,103,213,124,26,107,106,147,175,60,19,213,139, +81,191,26,192,90,21,123,10,59,55,125,88,244,240,39,28,63,102,198,98,10, +68,103,8,81,103,120,120,204,250,83,192,245,3,207,126,64,41,131,181,25,14, +83,41,149,151,172,144,48,74,208,246,49,247,93,245,212,72,136,69,12,71,48, +146,50,68,232,3,81,192,86,245,68,192,147,148,102,13,9,153,42,197,165,243, +243,75,226,102,62,26,177,30,213,241,62,80,53,255,19,240,31,177,198,112, +127,56,186,46,247,85,199,172,92,102,209,91,45,102,190,87,254,84,74,22,90, +1,106,156,245,150,245,224,194,40,106,147,72,9,30,247,87,80,174,154,127, +166,170,78,211,108,237,75,44,100,61,131,201,75,246,80,201,98,222,124,58, +239,255,159,179,119,89,146,92,215,178,196,214,6,192,167,63,34,243,220,91, +86,109,86,214,26,180,90,214,102,173,129,122,162,255,255,11,141,100,86,50, +73,3,85,171,234,156,140,112,119,62,64,0,91,3,128,36,0,130,30,89,58,131, +123,51,51,194,233,36,8,236,231,218,107,113,60,97,144,114,102,175,155,108, +13,37,215,224,71,64,66,168,8,174,71,17,126,33,66,130,236,5,19,222,200,76, +40,11,39,83,42,72,206,168,179,233,168,212,205,1,173,190,138,18,25,134,53, +12,106,42,52,189,12,8,84,3,59,45,208,11,131,122,17,42,162,12,65,128,93, +130,225,149,13,8,14,238,169,49,126,45,96,89,161,253,89,133,236,200,65,15, +95,248,245,215,0,171,122,252,248,113,69,215,8,236,75,105,160,135,7,126, +253,26,224,84,143,143,31,87,116,245,14,114,132,179,112,134,97,141,87,14, +84,93,141,170,243,128,58,167,29,236,236,252,72,104,16,226,97,162,29,81, +107,13,172,246,189,95,69,1,244,231,60,136,114,107,253,59,231,75,240,218, +65,92,252,12,184,91,131,78,107,176,76,254,207,228,216,59,163,33,128,250, +110,45,42,201,88,94,198,7,195,173,242,163,108,113,192,23,94,128,170,107, +212,77,3,249,122,64,79,35,150,206,107,129,139,245,29,105,13,61,104,56,33, +81,247,94,31,29,171,99,125,120,103,174,90,1,97,12,166,79,63,2,219,220,21, +200,24,232,151,1,154,6,221,71,8,110,136,64,181,132,18,30,132,184,188,2, +112,45,76,48,88,227,171,11,66,236,35,105,168,107,168,86,121,3,62,44,190, +12,125,241,207,67,206,194,78,11,22,205,192,101,21,123,114,128,20,160,197, +59,126,75,10,85,39,161,170,117,154,134,147,217,20,103,67,239,30,0,93,42, +95,182,39,246,215,157,12,80,87,80,173,218,140,117,204,47,0,231,224,166, +5,70,59,208,165,218,70,73,5,9,63,39,62,24,56,18,168,59,5,169,68,4,110,101, +48,89,44,227,136,225,249,196,100,9,205,245,134,123,91,163,150,33,153,89, +19,10,90,57,132,118,251,179,1,172,236,132,101,30,96,157,132,106,124,207, +216,177,131,91,158,48,211,12,84,13,4,172,119,238,117,3,9,11,163,13,72,181, +32,167,97,244,2,84,61,164,114,126,206,124,94,128,234,130,166,111,0,251, +194,60,45,96,106,252,89,52,179,111,133,56,130,82,194,103,202,218,247,216, +201,106,204,195,39,166,217,64,182,119,180,109,5,232,167,175,248,116,87, +212,109,237,255,62,14,176,84,163,238,106,176,126,98,214,22,162,237,0,59, +67,143,159,152,39,11,209,222,208,246,87,84,74,133,214,195,3,122,28,193, +242,130,74,0,188,204,112,74,128,231,39,180,54,160,182,3,57,13,253,250,133, +121,114,225,243,29,160,191,176,104,3,106,124,240,48,191,254,218,175,127, +185,160,82,10,108,94,208,211,11,14,10,170,170,253,158,103,246,182,216,78, +48,139,5,84,7,169,100,240,21,94,190,87,96,117,218,251,121,114,70,195,57, +134,168,122,84,77,227,91,41,108,189,253,248,124,64,83,135,251,143,59,110, +93,189,183,46,87,123,201,187,147,223,196,138,138,226,185,251,72,113,62, +200,184,182,244,40,26,135,98,206,148,35,162,170,174,74,198,182,178,225, +90,199,22,122,30,49,12,79,88,235,32,90,9,38,9,163,53,150,165,133,101,135, +121,214,152,23,3,235,44,200,106,95,86,23,2,74,214,190,79,178,104,104,99, +2,232,44,204,193,114,48,88,74,66,56,159,93,10,103,160,71,3,45,36,234,90, +161,145,114,43,161,236,189,227,136,114,36,153,59,63,82,10,166,60,25,188, +57,121,63,95,175,81,55,61,186,230,127,194,56,254,51,0,194,56,154,208,59, +198,38,151,24,23,53,18,14,178,88,9,107,235,131,196,127,118,9,83,211,214, +242,112,12,235,82,5,118,162,11,154,246,63,97,21,235,245,209,251,26,241, +237,165,244,148,157,178,160,164,198,199,140,127,43,207,243,158,97,199,128, +14,14,243,184,36,60,128,39,161,18,93,55,17,71,132,52,217,140,255,250,123, +9,218,55,158,249,71,196,113,189,202,114,198,85,7,199,176,175,9,250,101, +96,151,16,217,170,10,205,173,70,219,250,190,171,31,65,10,239,216,57,216, +175,17,195,168,80,223,60,0,12,43,0,109,158,49,91,9,85,195,151,184,251,10, +85,67,1,245,59,99,122,206,161,175,220,162,170,100,56,32,126,127,25,171, +49,189,102,88,84,232,250,22,117,37,119,65,159,80,161,114,179,5,179,128, +108,107,84,189,242,189,121,10,146,159,146,64,147,193,248,111,139,111,173, +212,254,25,60,70,192,143,60,10,177,96,249,28,96,190,40,250,185,199,92,172, +103,149,216,163,200,135,209,19,190,212,87,181,5,2,78,27,140,255,106,60, +208,236,218,160,237,36,164,240,173,8,11,129,170,83,168,235,189,122,115, +24,126,96,129,170,106,113,189,26,76,80,251,30,7,124,251,97,182,96,72,84, +151,128,15,88,199,199,140,63,127,78,107,232,63,13,140,20,190,143,125,105, +80,73,134,25,13,172,177,112,179,133,30,66,165,72,40,52,63,90,136,86,248, +202,196,228,3,28,59,105,104,34,80,229,81,253,74,57,152,217,0,170,66,213, +87,144,228,123,220,198,10,200,86,161,170,195,125,240,26,112,58,240,215, +136,215,40,81,93,91,52,157,11,163,124,2,117,87,161,106,132,255,221,125, +230,46,24,101,235,131,192,74,250,222,125,23,38,116,172,15,206,32,43,168, +190,130,148,169,186,25,199,103,102,37,192,249,26,225,70,63,245,80,119,2, +60,251,81,66,213,41,168,38,229,132,96,182,48,211,128,231,107,1,234,11,126, +116,29,234,106,173,240,164,148,215,219,153,143,130,114,31,184,59,15,200, +181,206,87,66,204,2,219,221,80,87,2,110,49,128,106,161,36,193,206,11,168, +106,33,132,71,248,139,170,1,177,47,109,91,199,160,101,134,157,36,68,123, +67,221,223,160,214,145,63,86,16,74,130,244,140,249,243,95,161,85,13,213, +223,81,71,163,102,20,74,231,224,206,235,197,95,46,168,154,6,100,39,44,214, +147,210,52,77,5,178,26,90,79,112,104,80,183,87,40,225,96,217,129,120,129, +29,159,152,76,3,201,10,170,109,81,117,87,47,228,69,12,103,13,172,214,176, +102,129,115,35,68,165,32,219,22,2,22,150,25,196,6,118,124,96,54,13,4,43, +168,86,161,234,122,72,185,10,154,25,184,249,133,153,91,8,170,160,250,11, +234,246,134,74,73,48,28,92,72,82,221,60,66,47,6,166,189,162,233,46,168, +36,131,216,87,242,156,254,133,65,127,2,164,160,218,15,52,93,13,88,15,42, +92,140,31,87,97,33,32,100,135,186,251,64,87,215,1,67,196,112,198,96,30, +94,62,240,185,54,168,149,220,2,204,29,5,79,91,59,39,209,252,227,216,78, +70,159,33,78,230,231,153,210,194,253,134,95,89,19,170,3,34,63,36,128,191, +230,79,166,18,213,146,247,72,120,12,51,254,183,255,227,95,252,143,187,43, +136,36,46,93,135,159,183,6,179,97,12,154,49,90,246,17,215,50,122,238,120, +94,153,165,194,172,44,187,224,168,56,161,219,17,43,95,189,139,14,17,200, +163,26,57,250,183,56,136,49,26,235,192,253,255,250,191,252,151,205,146, +197,64,132,84,114,49,165,116,123,13,3,24,14,151,238,2,34,1,99,95,152,199, +127,246,180,180,197,41,196,115,17,130,243,63,159,139,41,196,43,221,52,255, +3,234,230,63,4,77,7,74,74,53,49,161,1,37,188,164,43,80,45,218,24,241,240, +255,246,161,184,18,65,9,83,231,62,46,237,130,143,218,129,23,204,72,100, +48,147,158,80,172,174,22,54,45,101,138,90,235,189,166,239,155,10,149,143, +80,215,136,102,158,183,32,83,82,196,100,198,27,200,109,219,71,20,238,121, +125,247,129,82,116,213,35,247,32,66,138,128,169,190,172,237,203,108,98, +147,69,222,41,152,157,191,198,250,115,142,179,224,21,132,179,118,119,40, +154,217,14,215,183,46,76,144,132,181,166,64,105,202,123,5,139,93,220,253, +10,51,225,113,235,198,97,167,108,6,129,100,152,29,134,159,121,247,147,205, +251,181,183,106,72,152,235,246,5,131,140,82,43,69,235,132,185,112,11,38, +25,216,241,176,221,163,159,91,143,169,88,195,71,87,62,1,78,85,239,136,13, +166,95,30,100,88,223,106,143,74,135,193,242,231,140,217,72,180,127,116, +104,186,240,157,54,27,99,221,52,197,61,175,0,139,64,125,203,107,159,58, +60,127,60,92,154,220,71,64,205,211,74,117,235,223,187,72,56,124,41,216, +22,3,253,215,12,163,9,234,163,67,221,209,14,204,3,3,54,128,70,133,72,25, +253,50,90,106,159,213,70,42,141,1,189,239,247,100,8,242,80,200,168,156, +133,13,115,247,161,110,185,51,162,33,149,204,61,40,53,208,202,53,176,82, +181,134,235,138,21,92,26,234,195,136,214,5,126,196,208,205,127,97,26,23, +136,230,142,166,173,194,245,68,152,215,78,6,235,195,104,236,154,20,120, +240,107,64,104,120,25,111,239,221,188,131,99,127,78,214,103,223,120,30, +88,132,239,182,112,228,147,179,149,111,194,109,124,16,62,219,245,148,179, +34,170,24,134,123,216,102,172,213,174,115,99,141,231,139,216,190,39,88, +146,21,220,230,236,118,31,16,34,84,77,8,68,50,216,49,183,19,57,109,66,60, +98,35,107,90,167,161,226,179,185,82,241,250,159,185,104,58,139,64,144,254, +93,71,184,42,59,62,241,231,159,127,98,160,11,126,254,241,7,174,173,8,213, +24,74,199,170,99,198,228,18,147,100,172,120,183,57,238,76,111,36,97,252, +76,149,0,119,155,75,27,167,132,162,120,208,142,34,71,25,188,65,165,148, +223,252,204,219,162,47,198,134,203,10,144,96,136,80,142,39,33,35,245,83, +23,237,116,177,29,170,132,231,116,53,48,17,7,61,49,54,89,90,202,9,98,34, +57,59,85,201,132,221,137,56,165,116,220,249,176,247,21,93,22,13,107,45, +250,174,223,230,204,165,234,113,185,253,207,48,250,47,44,250,47,56,158, +163,246,4,71,139,157,51,204,236,142,150,146,70,117,52,228,88,224,175,39, +81,65,202,27,84,253,79,126,3,145,243,7,47,162,86,141,89,242,40,97,230,201, +158,55,138,2,15,202,209,171,35,76,105,190,183,223,231,96,236,133,148,251, +70,138,117,186,163,136,96,251,35,23,24,236,162,123,161,4,11,16,111,186, +152,47,61,165,231,244,72,125,222,25,163,54,4,10,39,253,21,18,169,90,20, +71,194,17,84,173,153,91,212,110,34,74,52,202,165,175,221,70,170,69,59,250, +95,64,0,149,220,73,128,214,246,71,20,56,9,69,137,182,71,194,91,39,69,232, +93,198,248,143,181,114,35,188,179,18,17,200,112,155,107,225,141,36,195, +219,222,156,185,136,131,189,19,216,32,247,153,112,21,145,240,19,23,5,82, +136,29,44,185,126,64,108,60,239,156,204,61,10,8,193,7,46,242,205,145,34, +195,77,88,7,243,90,252,156,252,45,140,156,193,194,205,6,150,133,159,112, +8,217,172,39,8,225,173,23,121,224,244,84,41,5,241,26,220,112,214,158,130, +20,105,219,42,76,133,136,189,209,25,241,141,251,214,134,211,158,48,200, +58,129,250,167,175,76,80,220,122,195,58,9,2,28,88,97,98,16,104,224,165, +144,130,82,174,127,15,217,12,83,172,187,113,166,232,254,72,42,168,132,134, +54,61,3,148,19,154,108,89,124,28,108,120,198,187,152,37,210,175,73,212, +110,163,253,172,56,51,64,79,11,168,190,163,238,59,95,70,206,19,149,109, +159,201,253,218,5,36,152,31,15,139,63,46,118,96,174,144,209,100,204,234, +196,171,164,247,76,194,215,6,183,202,136,16,25,245,154,255,30,33,101,145, +151,30,66,65,198,158,81,196,122,231,129,92,7,42,53,187,49,157,118,152,2, +18,74,36,138,121,216,36,92,21,72,69,252,38,145,13,38,161,178,119,27,155, +116,231,181,75,166,9,195,243,9,163,238,248,219,199,29,125,35,118,169,89, +46,240,201,36,85,242,44,33,203,88,109,55,59,146,253,122,202,103,31,127, +38,45,221,17,209,90,162,223,173,116,2,234,98,160,169,85,196,116,51,131, +234,11,172,153,97,108,151,209,246,249,62,59,98,114,24,138,136,18,195,140, +252,166,207,18,57,141,152,125,42,25,115,219,250,191,30,205,192,4,144,179, +96,48,254,241,239,63,51,78,86,42,38,221,107,132,99,22,3,61,47,168,170,10, +170,82,7,174,122,85,253,1,85,253,68,81,53,40,54,150,27,80,44,151,123,204, +248,200,99,197,58,78,197,9,54,224,4,171,13,105,30,139,13,16,69,18,243,177, +40,1,231,61,248,180,44,143,140,99,251,200,149,190,191,107,98,10,51,166, +37,238,108,206,78,9,146,113,192,163,106,91,194,101,151,60,119,174,91,149, +40,56,69,220,245,156,183,94,128,84,218,148,10,220,213,148,22,54,118,231, +31,97,32,136,162,126,230,58,114,184,53,60,119,80,75,142,38,164,2,51,15, +239,101,50,138,2,98,226,130,128,9,167,109,140,157,114,184,20,4,174,251, +130,34,157,152,168,92,155,84,82,112,112,50,169,230,65,202,111,157,172,35, +241,22,8,109,197,190,56,224,137,211,11,142,3,0,74,245,107,200,103,102,112, +214,183,29,62,131,3,236,107,52,127,212,126,4,46,214,6,200,4,62,54,44,73, +220,78,99,28,165,108,51,94,254,20,130,204,200,9,82,215,106,141,121,76,152, +95,11,156,168,80,95,26,116,189,218,3,155,67,251,98,151,188,101,206,20,100, +81,154,118,200,163,188,136,228,34,249,130,24,212,26,211,52,211,222,147, +165,130,8,4,71,12,227,185,154,94,188,183,41,137,10,54,59,233,236,12,51, +107,80,117,65,221,247,129,192,169,160,46,25,123,11,46,134,27,121,44,156, +207,121,37,159,35,138,233,129,143,138,135,91,54,203,5,210,116,166,44,113, +74,147,206,3,162,154,66,5,107,125,89,148,77,82,69,58,18,123,239,154,246, +250,248,234,227,248,141,35,70,65,88,97,27,233,181,176,243,19,159,159,47, +140,168,113,187,252,196,253,18,205,187,115,12,150,204,244,8,56,198,71,197, +94,155,78,21,99,233,128,5,163,116,19,199,217,123,182,190,244,57,127,241, +225,233,50,178,221,255,235,191,255,133,255,231,95,63,253,205,117,189,39, +100,1,80,55,29,184,106,177,232,25,60,189,118,196,60,69,163,96,43,243,28, +165,96,47,196,128,18,142,141,170,11,15,237,118,237,217,245,83,198,128,216, +130,136,240,223,254,235,127,134,82,42,226,57,223,209,225,25,37,16,172,117, +30,65,9,160,109,219,157,246,52,135,32,38,206,46,237,129,36,81,126,174,218, +145,40,84,101,142,33,11,60,152,25,150,125,185,200,147,202,20,68,31,232, +228,32,30,162,255,117,35,229,217,245,234,167,143,212,73,236,60,197,34,5, +32,24,29,130,17,58,222,63,115,102,124,51,74,165,4,205,201,25,183,114,38, +135,64,5,41,82,226,115,201,217,248,247,137,83,3,120,168,168,100,131,164, +148,223,99,100,221,163,96,234,88,33,217,75,158,28,207,168,22,101,102,243, +178,110,230,216,75,178,145,68,71,225,0,20,8,240,137,202,251,146,247,82, +247,97,202,163,36,72,130,18,7,117,238,233,242,247,136,163,184,210,246,252, +46,20,232,162,214,27,9,64,250,220,133,232,40,146,113,116,142,148,17,182, +35,193,173,28,168,190,146,189,89,184,223,40,0,96,19,233,84,40,202,37,180, +143,123,161,228,228,222,170,207,150,228,88,227,207,102,123,182,116,193, +226,207,56,9,194,147,192,161,36,14,19,179,167,68,228,176,30,64,38,247,144, +251,160,46,88,184,78,118,254,82,46,246,136,209,242,112,110,79,238,175,40, +249,155,127,6,105,69,46,89,135,51,145,158,172,198,93,208,253,74,190,231, +236,26,103,52,168,153,141,56,218,162,168,245,98,253,168,168,148,153,194, +96,36,170,117,228,24,47,80,198,102,153,250,33,149,63,236,251,130,158,4, +101,223,71,43,209,205,161,93,156,245,160,8,248,167,191,127,224,95,254,237, +211,7,32,211,0,106,46,96,65,152,167,23,48,60,143,198,201,241,150,233,238, +209,88,60,3,189,150,226,93,250,178,55,52,157,221,75,253,91,117,192,59,119, +0,184,93,61,63,114,234,3,162,131,156,69,76,243,228,203,238,77,215,132,118, +67,190,31,57,21,115,32,156,24,163,2,1,123,174,201,156,107,29,23,100,131, +37,228,94,93,96,160,172,127,76,101,249,120,74,159,121,11,148,50,39,67,121, +155,32,74,231,164,8,188,208,185,108,110,92,11,98,122,179,47,10,112,3,42, +232,95,199,135,54,90,35,162,216,46,112,90,5,225,114,15,52,142,160,55,250, +221,228,126,57,117,230,84,90,127,74,75,169,57,110,33,186,31,74,178,96,122, +35,183,78,27,23,67,98,28,40,195,179,164,28,194,71,20,28,225,68,198,180, +4,13,201,232,129,249,196,129,228,142,224,112,223,199,64,52,17,224,201,231, +114,54,163,29,90,10,161,79,155,58,205,210,119,224,40,17,74,133,125,158, +215,171,243,0,57,9,122,115,39,29,233,194,73,177,183,172,242,254,101,66, +11,22,191,175,92,95,189,16,208,197,107,16,15,51,35,99,31,73,4,111,10,234, +51,7,213,145,82,112,65,153,26,83,230,140,54,17,169,104,128,106,237,17,199, +85,141,82,85,164,24,200,157,41,209,115,18,215,36,109,99,16,202,42,51,135, +190,96,150,52,228,65,126,236,156,248,252,186,37,251,156,42,86,165,164,94, +165,50,56,31,247,203,177,49,142,180,18,11,78,43,197,28,24,9,243,182,86, +180,46,91,171,239,172,53,149,219,21,112,210,42,77,190,19,5,46,242,152,202, +46,169,236,165,246,124,3,116,82,76,58,207,105,68,39,132,192,127,250,167, +127,216,122,235,60,63,128,101,6,86,141,224,196,24,187,77,200,34,15,73,104, +251,119,14,50,4,30,20,178,47,98,164,212,176,206,248,56,11,216,5,112,118, +227,177,255,47,255,227,127,60,70,214,92,58,188,140,197,44,48,206,160,110, +234,64,251,138,195,172,252,161,185,193,56,74,136,38,7,57,203,92,215,127, +167,130,180,108,244,103,231,44,172,49,123,68,28,235,218,19,29,163,203,67, +161,129,202,229,163,252,254,145,151,138,121,227,158,183,206,4,76,18,37, +165,99,0,5,99,16,101,193,73,192,86,56,220,73,11,32,55,200,28,247,106,18, +74,206,131,174,117,42,121,86,176,56,156,145,239,68,173,1,194,222,255,58, +24,140,8,71,65,185,115,78,223,85,238,163,14,237,22,206,214,162,180,119, +184,176,151,14,129,95,180,95,34,52,117,172,60,66,165,128,34,222,35,241, +60,92,94,141,200,51,30,66,194,109,158,220,83,76,246,243,78,246,50,185,214, +26,164,22,200,17,242,106,6,50,3,155,49,52,29,185,29,74,129,74,185,250,177, +27,83,74,251,130,241,26,80,33,99,43,185,52,202,247,8,210,189,147,200,2, +163,160,188,202,199,239,161,184,125,133,200,241,83,22,252,103,26,216,156, +38,29,68,199,231,224,124,131,108,45,161,60,224,47,60,23,162,115,73,124, +76,89,57,42,7,51,167,113,26,69,213,217,216,49,37,237,134,76,24,108,151, +94,75,215,46,222,204,217,191,17,149,170,121,148,77,83,209,33,73,166,67, +102,142,12,63,196,133,247,79,209,45,80,66,164,118,200,234,139,153,246,145, +128,38,9,40,14,129,15,71,32,101,42,4,32,133,61,18,217,76,15,148,229,131, +138,99,188,104,42,21,52,32,100,152,232,45,104,249,227,227,2,199,14,255, +252,127,255,119,95,38,213,51,128,41,235,145,21,154,25,76,89,127,58,55,254, +177,113,141,75,129,46,127,42,8,165,240,223,254,235,127,62,57,160,185,254, +169,47,71,207,211,12,165,148,159,183,204,51,10,58,41,7,151,254,163,194, +215,28,208,145,116,12,206,56,237,87,75,165,178,252,43,143,2,207,12,80,97, +179,30,54,85,164,39,76,156,244,106,56,24,169,157,219,249,88,93,224,108, +14,159,19,250,204,24,102,69,81,107,144,50,34,228,66,192,76,116,136,248, +233,93,172,16,107,47,231,5,3,218,233,110,227,12,147,25,101,41,71,166,180, +147,149,103,133,132,67,207,47,166,67,230,188,71,182,61,35,101,140,143,217, +136,66,180,239,61,55,66,97,29,10,247,147,78,124,198,156,10,188,141,218, +20,183,103,198,245,207,113,37,131,83,128,23,83,252,92,133,150,9,74,16,146, +66,43,34,154,172,40,234,138,151,206,197,89,11,128,114,252,74,1,110,145, +76,150,240,142,7,72,188,44,50,91,67,39,165,118,138,10,58,89,25,57,207,102, +153,82,89,217,188,186,86,200,132,83,128,116,28,32,228,65,78,65,247,189, +120,141,88,37,44,166,66,139,2,155,179,222,2,237,180,82,20,48,16,96,78,123, +218,135,119,147,255,59,37,38,158,137,79,240,49,89,176,127,216,94,231,239, +35,245,149,59,238,104,127,63,148,85,224,41,139,169,40,237,150,196,243,97, +89,32,149,203,230,38,175,150,179,179,201,39,173,181,4,151,83,106,205,208, +33,179,223,3,70,2,19,101,21,251,99,107,141,146,179,154,46,90,214,228,216, +181,82,98,211,248,169,191,56,109,193,20,162,162,168,114,101,172,197,255, +254,127,254,11,30,195,152,149,213,179,32,39,207,168,145,102,242,113,6,150, +210,236,0,233,92,190,255,201,127,252,167,127,196,127,248,251,31,200,167, +194,202,153,2,121,149,184,73,99,177,11,250,174,15,40,205,114,5,148,206, +218,143,156,179,142,229,109,167,76,44,160,52,15,14,143,39,176,65,53,73, +138,200,193,34,83,83,227,19,95,142,130,209,164,147,82,121,94,94,10,15,98, +157,239,205,73,33,252,136,73,222,62,43,62,123,116,16,178,150,114,204,90, +71,200,244,187,233,216,158,43,234,201,151,160,161,103,66,233,39,253,246, +18,70,112,95,207,28,51,129,147,202,79,41,184,59,246,240,74,213,182,131, +82,95,105,67,113,193,120,130,222,170,56,130,142,173,234,227,23,23,214,142, +202,237,81,202,59,72,92,108,46,163,120,152,243,235,196,165,208,2,176,245, +237,127,124,118,200,16,145,211,68,54,33,250,25,31,48,9,9,154,182,188,78, +133,88,111,95,3,78,39,83,182,215,158,25,217,82,126,130,35,126,22,89,251, +188,228,48,119,109,139,29,236,26,223,75,252,158,242,100,247,112,116,10, +69,174,28,163,122,72,216,168,12,17,226,12,255,179,157,105,226,20,38,153, +199,66,17,111,7,50,128,39,211,155,243,246,206,208,29,224,25,133,192,100, +229,115,39,42,188,151,40,240,204,56,219,185,116,174,80,120,119,133,100, +143,182,234,99,249,57,183,179,65,37,160,109,8,20,75,216,152,67,124,197, +9,81,219,41,246,227,236,236,69,193,25,125,233,47,230,67,182,146,97,107, +178,86,51,1,152,244,130,113,214,152,180,134,13,179,204,7,12,65,94,34,228, +172,202,197,71,162,154,56,178,106,154,10,109,93,225,114,233,34,45,222,108, +151,103,51,222,43,211,154,158,52,22,179,160,174,107,212,85,157,142,150, +209,27,92,77,1,55,146,183,80,233,216,18,45,216,148,232,194,97,2,0,17,154, +54,253,92,230,36,19,10,213,163,23,43,26,144,196,9,135,55,186,37,10,28,21, +45,242,49,141,168,47,94,194,180,161,140,159,1,157,224,81,50,163,89,116, +220,116,204,58,15,215,228,114,34,86,194,161,229,240,135,28,67,132,55,133, +153,226,11,77,42,52,169,100,39,78,240,128,135,46,81,97,173,138,115,176, +145,193,167,2,230,147,79,250,240,121,53,30,92,22,162,56,98,136,194,44,60, +68,16,194,160,195,239,230,21,109,42,181,165,11,207,153,43,14,50,157,175, +239,58,89,115,168,210,20,238,249,56,59,124,196,105,81,97,136,37,239,4,48, +157,199,52,249,94,79,56,40,138,193,112,1,171,112,118,86,105,7,193,114,110, +176,15,153,107,190,95,56,45,195,115,154,181,237,1,16,34,58,212,200,201, +113,217,94,237,231,47,170,134,21,191,35,119,184,225,247,57,10,239,227,115, +146,5,20,56,73,70,14,235,77,71,243,113,10,160,67,230,180,113,150,232,100, +146,172,165,224,163,72,115,146,50,206,37,89,55,159,4,194,165,189,116,192, +214,100,201,73,126,86,11,248,74,206,113,98,165,37,225,99,129,97,187,189, +61,131,15,244,143,68,158,141,43,34,9,225,48,166,230,214,242,169,160,192, +50,23,151,53,120,3,205,145,16,27,255,55,175,4,21,135,104,58,72,101,38,165, +178,35,214,136,10,47,189,228,140,226,245,214,203,130,121,154,81,213,10, +117,213,164,104,227,19,71,1,124,191,89,206,0,231,249,116,71,252,57,231, +60,95,186,87,70,19,233,75,226,115,28,85,174,28,4,250,6,28,90,104,253,121, +30,15,175,254,39,196,74,159,74,229,8,54,15,82,74,85,83,62,98,213,74,135, +245,172,134,204,236,215,98,237,29,210,70,186,65,229,86,217,89,230,119,8, +50,216,43,14,58,120,178,139,204,96,157,129,218,115,108,24,211,123,199,149, +27,151,84,239,192,121,82,12,33,188,18,222,246,113,175,18,199,56,166,250, +188,78,82,68,180,114,69,96,121,169,32,118,182,79,10,21,211,253,28,91,44, +211,136,113,240,212,158,93,215,160,146,84,78,222,185,208,110,206,3,220, +56,211,60,11,122,242,96,131,253,58,185,141,80,133,78,171,15,73,194,128, +115,14,159,98,73,191,112,255,37,131,127,0,228,243,113,237,242,110,34,10, +65,239,1,224,253,198,137,208,55,32,252,119,65,103,238,168,64,239,3,222, +253,62,130,18,168,115,59,231,68,216,171,103,240,151,179,247,80,4,205,39, +246,152,119,106,241,64,42,227,179,82,47,129,205,88,137,129,232,248,222, +215,63,56,231,121,124,72,164,85,206,130,29,63,196,2,133,100,225,204,151, +224,236,249,114,28,94,33,80,120,23,16,239,62,201,239,119,147,225,151,132, +8,251,159,233,232,243,202,93,179,178,109,165,50,78,124,125,30,229,169,58, +29,172,158,48,206,22,178,235,208,53,21,100,40,187,56,183,64,79,26,122,89, +124,153,153,20,154,190,199,165,89,73,14,60,195,147,209,35,166,209,66,116, +29,186,182,10,109,116,3,61,78,152,180,137,64,241,236,133,77,186,30,93,219, +162,150,169,115,224,194,52,72,214,254,4,35,77,21,226,3,229,152,49,207,19, +164,146,168,170,122,155,199,205,131,96,46,97,150,50,48,73,2,236,166,50, +182,34,30,231,46,57,33,10,130,19,27,217,203,73,117,54,173,218,239,51,148, +140,19,128,53,167,214,149,115,80,104,180,54,82,201,16,176,237,168,103,206, +171,45,5,32,56,184,0,42,229,76,170,144,203,109,200,164,205,231,22,56,61, +97,153,70,24,61,123,156,37,85,168,175,63,188,170,147,56,84,179,10,153,171, +133,179,12,146,210,147,199,172,61,88,48,156,125,97,122,12,94,217,234,210, +111,18,141,249,61,37,1,16,189,207,16,14,123,48,111,87,37,193,170,133,125, +253,137,209,120,169,217,186,169,118,161,8,59,96,126,61,160,245,2,182,11, +24,114,11,106,184,234,209,94,110,104,154,106,3,228,48,101,211,15,185,243, +163,84,186,247,96,132,10,254,129,217,171,56,14,95,15,140,78,160,233,47, +184,180,181,55,158,9,63,118,217,126,231,96,251,163,211,46,100,20,20,169, +8,242,138,67,112,176,195,39,254,124,26,168,203,13,247,190,129,20,5,92,11, +165,103,43,35,192,76,167,232,16,164,98,25,80,74,120,249,99,218,247,56,101, +152,190,253,252,69,51,234,132,84,191,43,91,64,199,6,214,18,100,37,188,65, +166,180,66,65,17,158,170,52,29,155,158,155,120,93,226,245,179,158,163,95, +201,125,74,4,41,21,8,21,42,90,140,227,104,250,161,162,227,22,176,153,177, +76,131,23,172,97,128,69,131,230,250,195,83,204,38,4,58,153,45,227,243,152, +61,38,24,227,85,89,18,12,118,51,244,227,19,78,116,80,237,213,75,150,242, +12,253,248,5,61,3,213,245,7,234,174,217,73,105,178,246,64,252,249,170,187, +66,73,74,130,78,202,237,56,237,77,239,194,0,0,32,0,73,68,65,84,123,245, +81,199,12,94,137,187,10,231,151,179,33,23,166,50,70,238,112,206,41,65,6, +165,207,142,99,208,201,81,133,198,14,159,248,183,175,23,180,225,13,23,67, +170,197,245,126,195,237,210,4,18,160,72,213,146,211,226,119,194,134,247, +206,249,71,247,22,219,96,53,143,3,180,13,217,199,170,197,30,216,152,172, +209,208,218,0,170,65,223,52,176,122,194,164,61,41,141,99,130,112,11,244, +52,99,182,206,139,31,200,10,77,93,133,207,35,72,198,246,80,109,184,113, +246,60,240,139,1,170,58,202,30,226,67,23,57,32,148,250,224,209,105,101, +222,209,209,235,139,94,180,23,3,232,251,54,48,56,165,96,212,179,30,213, +214,235,137,14,212,118,248,75,37,158,147,254,111,92,38,182,206,111,58,143, +222,167,20,136,93,138,18,17,105,5,199,178,189,43,237,99,244,69,140,35,138, +59,231,105,177,206,71,236,82,201,189,255,19,227,165,232,216,135,203,141, +195,10,146,162,136,188,40,137,144,104,47,200,165,162,52,97,52,114,25,160, +199,135,151,170,172,239,104,47,18,228,52,156,49,96,85,69,82,139,41,62,39, +1,154,185,9,203,240,194,226,42,212,215,107,148,117,50,96,103,44,227,11, +214,42,212,215,46,205,158,183,25,237,243,222,105,58,205,70,81,160,196,39, +101,229,20,253,203,176,94,5,107,54,160,230,7,170,170,218,2,57,207,148,214, +162,185,84,80,234,133,121,124,193,213,119,116,93,235,229,124,201,51,148, +37,58,124,145,174,193,38,103,155,96,187,248,8,242,204,110,43,38,176,97, +102,56,61,226,245,28,48,115,133,235,253,138,182,150,9,33,17,71,72,103,46, +196,143,165,41,195,124,47,110,200,227,20,161,20,237,57,134,91,38,60,135, +9,70,244,184,117,245,198,254,23,239,195,8,38,90,156,68,77,105,220,25,118, +25,241,122,60,49,81,143,31,31,61,106,201,137,186,225,65,146,19,41,62,102, +235,251,211,209,56,130,24,118,158,240,120,60,160,69,135,143,143,43,106, +185,47,16,17,31,2,235,188,194,147,87,56,152,143,44,152,108,39,232,241,133, +197,213,168,111,23,84,66,230,160,239,3,73,79,58,156,17,137,81,109,15,224, +233,103,237,50,98,25,30,88,80,65,53,119,244,157,4,156,103,244,164,96,151, +226,156,33,97,60,63,180,147,41,217,43,107,37,96,83,214,36,134,179,11,204, +248,242,210,177,151,222,139,133,177,133,213,19,22,109,65,245,21,170,173, +147,32,134,227,9,155,237,243,21,170,75,239,5,192,144,6,181,113,39,153,216, +219,135,249,245,194,194,21,234,219,21,85,224,0,200,225,46,251,223,119,14, +119,63,17,204,197,22,237,26,128,112,130,59,202,171,21,81,144,19,39,157, +236,147,222,231,164,225,170,59,254,254,179,133,12,26,178,68,190,154,43, +226,232,147,119,246,63,196,182,254,172,69,183,242,140,132,68,135,136,11, +56,60,134,130,80,168,201,96,210,132,170,171,81,173,233,20,0,33,42,212,109, +229,179,96,107,176,56,7,38,225,169,41,221,130,121,54,96,89,161,22,11,38, +45,80,183,117,48,190,180,69,43,130,188,160,198,42,242,98,156,68,211,53, +104,86,229,30,142,116,220,3,195,19,151,128,35,25,139,92,2,122,88,57,129, +173,133,158,53,218,38,157,119,167,188,129,78,20,197,9,188,97,86,41,153, +145,230,131,213,220,153,194,142,179,151,72,48,230,128,35,159,25,41,33,64, +16,201,6,165,204,204,32,19,199,88,15,108,210,247,74,122,156,101,235,190, +77,163,17,193,193,1,2,144,66,238,148,134,89,93,149,207,129,189,219,212, +76,113,132,51,218,152,201,1,138,80,201,236,12,220,244,133,105,182,16,245, +13,221,165,131,144,129,227,25,18,66,121,62,121,118,62,51,119,235,28,47, +121,45,118,47,78,228,0,231,133,46,180,33,168,38,200,165,90,134,144,4,54, +51,244,240,137,197,85,168,174,119,212,106,167,206,92,199,16,157,51,240, +244,9,222,13,9,41,183,232,134,176,182,13,108,148,249,250,146,185,16,97, +15,135,251,139,160,159,129,222,55,84,21,130,198,180,104,62,188,140,167, +160,132,35,154,137,192,48,48,122,2,87,55,180,171,200,70,248,70,231,44,156, +219,103,153,125,217,94,6,7,229,185,189,99,174,108,175,84,39,183,76,208, +243,101,71,167,95,136,157,254,215,89,232,241,137,199,83,67,116,23,220,47, +29,106,41,60,19,87,104,103,168,53,168,9,229,115,183,158,113,18,112,240, +34,39,27,176,72,8,40,185,107,196,59,227,127,87,144,195,98,195,218,40,1, +185,49,195,57,176,245,202,144,176,6,211,240,192,104,43,244,183,14,181,144, +123,21,38,143,190,105,63,3,40,246,142,25,214,25,24,99,49,191,158,120,204, +14,237,197,171,254,89,246,89,176,12,45,71,118,118,227,50,95,239,223,87, +78,125,86,46,100,104,19,133,86,138,113,240,134,216,57,88,187,96,122,62, +240,210,14,205,69,0,206,83,241,10,25,180,224,243,96,104,21,101,90,105,189, +51,207,18,243,78,56,132,253,109,131,206,187,33,84,181,130,12,242,205,34, +136,225,240,138,161,9,20,175,150,1,65,18,36,66,25,60,76,105,152,149,142, +125,45,137,59,3,59,63,49,207,6,162,186,162,107,123,159,104,48,3,144,129, +78,214,255,158,115,145,56,54,121,250,87,73,236,51,98,23,90,96,46,4,113, +66,70,45,37,6,216,4,142,254,64,254,50,63,176,44,194,103,222,2,112,102,9, +243,90,55,244,127,92,125,251,87,196,60,5,22,108,195,208,180,51,62,88,54, +2,170,191,162,150,18,204,38,19,232,242,106,166,34,240,228,59,103,96,166, +7,102,43,80,53,53,132,99,176,112,129,82,23,254,254,236,234,4,189,76,52, +69,89,51,156,217,206,23,111,237,103,153,85,87,247,106,79,78,35,75,113,144, +188,253,220,7,58,243,56,96,116,53,174,183,30,109,171,146,192,192,58,131, +197,250,82,189,10,89,149,221,228,170,189,18,163,99,7,107,236,238,255,132, +79,8,68,92,53,177,6,54,226,140,33,225,253,243,58,146,173,148,96,76,179, +131,80,53,218,90,37,179,116,20,52,109,217,89,44,243,12,99,9,170,110,208, +84,10,4,70,221,144,127,144,137,33,42,159,189,39,122,182,129,153,206,46, +11,102,173,177,56,129,186,107,81,43,177,71,215,177,118,50,142,44,158,251, +225,217,217,197,40,3,62,49,188,148,231,172,53,132,18,168,234,106,231,219, +134,219,202,221,180,242,40,243,206,156,196,27,24,197,69,209,108,36,15,136, +72,83,61,240,129,39,82,177,5,153,84,231,188,18,159,103,170,22,126,195,113, +58,170,181,26,55,206,230,109,54,190,248,45,65,226,168,84,39,182,72,61,205, +120,215,32,69,236,250,213,65,225,131,72,69,17,234,145,138,213,241,206,19, +158,116,23,214,236,140,93,42,83,27,221,87,92,151,242,193,153,240,146,173, +70,99,25,31,88,140,3,53,87,212,77,229,85,211,156,151,213,244,236,11,22, +86,143,88,198,23,150,121,241,218,3,170,69,125,249,64,93,17,220,244,229, +117,160,141,13,234,131,10,118,153,177,76,45,170,254,138,218,1,118,122,192, +88,9,213,121,29,234,157,224,199,183,150,120,153,160,199,97,171,234,144, +234,208,92,63,124,9,221,89,56,107,96,230,23,150,121,192,98,29,136,36,68, +117,69,221,95,81,73,23,50,171,1,122,214,187,49,173,47,104,46,119,52,21, +121,5,171,73,3,170,67,213,181,73,70,138,80,146,102,51,97,25,158,112,212, +248,235,170,240,142,236,2,107,103,95,153,208,218,59,35,16,68,125,65,211, +223,80,85,228,63,59,14,88,22,29,4,65,214,239,191,121,221,116,59,67,143, +79,232,121,9,135,91,65,118,55,95,53,99,139,121,124,226,57,44,160,250,138, +251,165,135,18,0,155,25,175,231,19,163,21,232,46,55,92,26,9,1,127,142,167, +241,133,97,114,16,117,135,174,38,232,241,133,241,53,66,59,231,21,226,46, +31,248,184,117,168,201,98,30,7,60,38,175,158,39,236,132,151,182,160,234, +130,251,253,142,75,35,0,19,174,247,26,48,25,11,107,1,136,10,253,199,13, +215,174,134,200,231,230,51,90,219,53,76,114,43,242,103,101,112,100,135, +101,122,224,241,120,224,53,45,126,127,8,21,156,177,66,115,189,227,214,183, +112,108,160,167,240,253,11,3,162,70,127,191,225,126,105,32,236,132,199, +215,3,175,69,162,191,127,224,214,146,87,125,27,70,44,168,209,85,4,51,191, +240,154,12,236,226,147,24,99,22,140,47,133,238,114,195,237,218,163,222, +196,82,118,237,249,117,172,105,39,196,226,189,245,177,178,149,177,119,42, +102,250,130,14,251,219,121,117,36,240,50,99,153,91,84,181,244,193,138,181, +62,208,48,14,162,150,32,182,48,92,163,233,46,80,164,177,204,51,28,4,136, +23,152,217,248,178,251,229,142,170,6,204,244,132,49,128,104,174,168,215, +189,25,123,39,103,224,116,216,223,122,241,178,221,236,247,87,215,247,112, +60,65,143,58,96,101,140,191,62,85,168,250,59,218,190,243,74,111,235,254, +212,126,127,50,0,146,45,170,203,21,66,104,232,175,7,230,201,0,170,71,115, +189,163,109,170,173,77,232,156,129,51,147,63,255,97,255,131,1,200,22,245, +229,134,186,34,216,229,185,93,223,139,214,248,251,107,251,14,194,142,152, +135,193,243,138,48,131,195,250,105,233,207,89,93,9,95,234,31,7,44,243,226, +37,203,85,139,246,250,3,117,173,64,100,188,186,220,248,242,85,106,48,136, +246,243,35,165,140,146,63,206,128,177,107,213,138,225,104,159,199,39,8, +255,234,173,223,123,79,109,33,170,14,21,49,150,197,64,72,9,73,128,91,70, +60,62,191,240,212,10,215,143,27,174,141,128,157,7,60,94,35,22,209,225,122, +233,209,73,198,60,13,120,189,158,152,23,7,38,133,238,246,129,251,173,67, +37,9,236,22,24,61,97,120,190,240,154,22,56,39,32,235,22,151,107,143,86, +104,12,143,7,158,147,129,154,231,5,142,42,52,77,13,185,205,55,239,135,140, +173,193,60,77,88,28,65,54,61,154,80,222,243,89,165,197,60,47,176,178,66, +211,52,190,215,146,180,117,29,156,158,49,105,11,22,21,250,174,14,125,178, +172,60,138,99,93,56,41,17,83,68,0,18,169,137,115,84,211,157,245,12,98,66, +213,54,62,2,91,149,169,172,119,80,171,224,66,156,181,58,90,179,16,134,18, +114,231,132,223,46,235,85,198,44,1,146,68,82,6,219,105,137,195,248,153, +148,81,79,199,65,8,21,156,189,5,155,144,21,108,180,145,113,166,235,3,16, +159,105,167,233,64,172,182,182,106,213,239,253,56,31,92,56,227,224,224, +191,95,108,50,191,12,225,229,184,124,6,104,210,251,139,69,124,86,181,39, +41,101,132,136,93,95,139,11,223,207,91,246,157,90,99,175,179,237,216,175, +159,159,175,30,49,191,158,176,80,168,250,27,36,102,44,143,79,232,121,130, +19,23,180,183,27,42,90,160,245,8,199,10,170,254,64,223,89,44,195,3,134, +125,132,13,33,32,155,22,82,47,96,41,33,155,43,170,166,130,0,131,72,128, +105,129,121,126,97,89,157,123,93,69,101,88,7,59,63,161,231,217,235,63,183, +31,232,123,139,229,245,23,52,7,192,142,157,49,143,79,44,6,80,85,135,230, +126,69,75,98,231,186,208,47,204,195,4,43,106,84,237,7,46,61,96,94,191,176, +88,1,213,94,80,85,18,172,191,48,77,51,32,123,180,253,197,103,205,28,81, +7,195,121,185,201,215,8,75,77,40,87,42,128,44,156,126,65,15,35,156,168, +33,219,31,232,47,14,102,248,12,215,239,32,48,65,63,39,88,84,80,221,15,116, +189,133,25,252,243,86,237,5,149,226,253,247,155,15,92,46,106,171,220,64, +120,38,51,61,60,240,28,45,100,123,199,165,111,188,198,54,24,203,228,29, +87,213,93,81,17,195,56,135,138,8,118,126,225,57,89,80,165,32,150,23,30, +51,67,212,61,238,127,187,2,118,192,227,243,5,107,125,134,108,244,128,231, +215,23,6,43,209,95,111,104,47,10,252,249,132,38,1,34,159,85,191,180,133, +168,90,220,126,94,112,93,158,248,124,104,80,123,193,253,210,66,230,211, +29,49,38,34,162,249,116,225,252,185,112,254,4,9,48,17,84,211,227,106,45, +22,59,161,190,246,184,94,58,212,210,159,31,65,192,50,60,240,57,27,136,186, +195,229,103,143,94,191,240,245,53,249,105,31,172,64,76,11,102,9,118,51, +94,15,13,173,25,178,253,192,207,174,70,69,14,70,58,24,51,3,215,31,184,245, +29,234,32,248,35,164,175,160,108,53,161,141,15,32,154,205,222,144,230,161, +34,178,157,175,144,84,72,9,217,116,144,90,131,101,135,166,189,66,85,42, +156,175,25,250,249,5,61,57,200,74,130,201,129,133,10,234,102,10,170,106, +32,120,130,158,70,24,3,168,230,10,213,182,32,124,194,56,9,192,96,121,189, +96,88,65,117,55,52,117,237,219,65,209,153,118,250,137,121,152,225,132,242, +251,251,18,246,147,145,80,109,15,1,13,61,124,65,47,18,170,187,162,106,123, +8,254,130,225,26,178,82,112,203,11,243,52,130,169,130,106,63,208,117,128, +29,163,253,43,0,176,130,170,59,88,51,1,117,5,169,84,160,18,15,223,63,142, +176,84,135,243,25,157,175,238,10,37,52,230,231,4,135,26,178,249,64,215, +3,118,248,229,51,251,246,130,170,174,125,11,84,107,64,182,144,237,213,59, +237,213,186,153,1,250,53,248,243,83,223,113,233,44,150,215,3,6,43,53,184, +198,242,252,132,182,18,178,254,64,127,169,130,32,82,80,164,163,72,92,45, +106,5,239,101,82,239,0,92,176,143,22,128,18,65,41,144,29,172,126,225,235, +241,196,172,45,120,156,49,63,9,36,91,92,111,55,220,250,58,148,230,93,8, +116,22,60,159,51,22,205,144,205,29,63,251,26,202,205,152,23,6,87,29,238, +127,235,224,198,7,126,61,52,214,148,208,205,79,124,62,94,88,184,70,211, +253,192,223,239,222,54,19,9,47,177,237,42,144,181,208,118,130,50,44,81, +119,53,42,41,50,41,58,7,179,204,152,39,13,195,18,117,223,162,169,228,6, +190,243,89,125,248,89,83,163,146,25,151,48,44,204,60,99,214,22,168,90,180, +117,5,41,210,18,239,198,33,159,180,155,142,104,158,184,124,31,55,197,87, +112,208,188,248,81,189,174,237,160,132,218,162,102,65,0,75,185,205,155, +110,164,21,161,95,65,76,160,168,47,114,100,114,10,37,60,68,92,195,209,252, +59,192,91,57,116,237,187,122,141,117,11,169,124,185,204,9,185,169,43,29, +198,242,86,20,249,86,18,95,217,141,246,134,30,137,240,242,98,181,53,68, +26,239,82,64,109,109,8,130,101,11,103,45,164,82,254,96,123,29,209,48,171, +74,233,181,87,217,196,117,30,23,81,121,49,220,143,8,27,87,108,35,34,161, +125,176,169,121,137,125,162,194,205,88,94,47,44,150,80,93,174,168,106,31, +177,179,93,96,173,243,70,13,26,122,24,96,69,131,186,237,33,37,195,45,26, +142,149,119,58,181,4,97,129,157,53,28,87,168,46,30,180,182,117,214,89,99, +25,6,44,6,144,221,213,151,229,182,30,157,129,25,31,62,243,168,111,104,218, +22,82,1,110,122,192,58,1,89,119,62,243,25,7,24,171,188,174,117,85,237,172, +126,108,96,230,47,204,131,6,170,30,109,219,67,42,134,157,158,112,78,66, +93,238,168,155,10,88,6,111,224,100,143,166,191,64,42,17,241,254,7,252,196, +50,98,30,67,95,176,191,162,82,18,4,131,101,124,64,15,19,184,190,108,215, +55,227,232,175,223,93,32,89,99,25,102,255,253,93,239,245,189,167,9,54,124, +127,83,75,216,249,11,203,164,129,230,14,169,42,223,199,39,17,222,161,197, +50,189,240,124,78,176,205,7,238,125,227,179,125,16,176,76,152,230,5,172, +58,52,202,97,252,250,19,166,186,224,82,3,122,156,193,178,65,229,44,102, +67,104,110,55,92,218,6,74,56,204,79,231,181,226,155,6,138,53,198,97,192, +76,13,62,254,118,199,165,169,224,244,19,128,68,211,42,96,122,225,57,27, +168,203,29,183,190,129,48,19,94,122,129,147,13,62,174,23,52,42,235,249, +150,88,123,35,210,38,202,2,75,2,129,157,193,60,107,56,213,226,227,122,69, +215,132,0,135,13,166,215,19,143,231,4,180,23,52,77,5,69,22,179,181,96,82, +168,154,26,146,164,47,113,66,130,237,130,105,176,144,85,135,219,253,130, +166,145,144,68,112,90,99,154,23,184,170,197,253,122,69,31,174,191,234,111, +39,179,128,132,180,228,27,139,248,192,43,108,30,184,171,216,194,233,9,142, +107,212,151,27,84,83,123,176,149,91,96,198,201,87,74,251,43,4,79,48,166, +66,221,212,32,214,176,85,135,90,49,204,52,250,76,254,126,67,85,43,176,254, +130,177,10,170,169,65,118,132,54,128,186,222,209,172,231,102,3,107,45,126, +255,141,51,80,93,162,253,253,130,115,18,213,229,6,69,38,56,195,30,237,143, +27,234,74,129,151,7,140,35,175,209,110,71,232,201,239,207,166,189,64,42, +7,59,189,96,157,64,213,223,195,121,100,184,197,139,222,176,108,209,180, +151,208,139,55,88,230,7,244,224,191,191,9,223,239,166,23,28,75,168,254, +2,193,51,244,107,6,234,139,175,68,73,14,215,151,168,46,119,212,117,13,96, +129,157,39,88,212,168,47,119,168,90,249,74,41,57,184,217,87,254,172,232, +80,181,29,148,100,56,173,125,176,223,93,81,213,128,155,159,152,103,13,170, +127,64,85,181,231,146,23,34,18,4,226,205,31,196,108,31,216,170,167,180, +3,51,67,187,97,253,125,183,76,120,141,51,108,117,195,223,126,118,80,193, +127,128,188,26,161,32,2,91,130,96,1,54,11,198,151,129,170,47,184,221,59, +180,181,130,16,12,107,20,20,224,245,4,88,99,54,22,168,123,92,250,14,164, +39,60,94,3,52,122,124,220,47,254,51,17,14,138,152,225,220,140,89,107,88, +213,66,201,186,70,45,5,68,12,4,177,22,243,252,130,214,12,81,119,232,219, +10,213,38,215,201,32,114,112,139,198,180,0,178,171,81,171,240,16,193,65, +58,182,48,227,132,201,50,84,221,250,155,88,65,79,235,33,88,209,168,57,200, +106,107,200,239,101,120,142,208,43,28,55,189,194,104,158,158,39,212,117, +3,85,201,44,200,160,136,9,136,118,165,182,24,65,187,149,181,177,207,141, +198,160,11,162,100,54,63,230,28,219,125,245,138,78,247,145,157,82,213,246, +139,34,66,191,81,244,12,59,176,40,8,229,134,231,57,140,7,34,2,208,68,235, +182,150,242,197,38,180,235,43,7,4,130,172,170,13,132,145,246,143,242,113, +2,142,116,215,41,233,43,110,210,137,28,127,127,58,111,182,182,13,130,119, +247,135,107,90,32,175,63,209,212,62,42,118,118,134,153,102,112,117,69,163, +44,230,215,23,172,113,96,90,96,245,211,99,52,154,59,234,235,7,170,74,120, +25,198,225,19,222,134,132,114,250,42,242,14,175,226,52,79,11,168,251,64, +221,213,144,43,208,146,125,63,124,122,45,160,254,134,182,235,124,128,103, +94,152,94,3,168,186,161,106,8,230,245,9,35,58,239,116,43,21,5,118,22,110, +121,98,126,45,160,246,142,166,111,33,216,194,77,159,152,94,22,34,56,119, +114,3,230,231,23,140,244,253,116,165,104,195,101,108,120,16,187,96,25,191, +176,152,0,10,172,124,235,194,234,23,230,97,129,232,124,191,158,96,97,167, +79,204,163,133,232,174,80,210,96,126,44,16,221,13,77,23,202,160,227,3,122, +180,160,254,238,39,14,120,205,66,25,102,252,11,118,30,80,223,126,162,105, +106,95,81,49,26,227,243,129,89,246,248,184,180,168,86,177,21,182,176,203, +136,113,33,84,189,195,60,90,44,179,131,106,28,166,225,5,35,46,232,105,193, +227,181,160,186,127,160,239,27,72,6,156,157,49,189,102,80,231,203,249,110, +122,224,225,26,220,63,110,184,244,21,4,51,92,115,195,143,63,46,112,118, +192,95,127,46,144,183,15,220,46,45,36,59,232,233,129,167,22,232,62,46,104, +107,17,74,180,123,47,61,73,225,35,160,107,170,188,23,157,57,103,125,117, +98,145,232,63,46,104,155,213,182,56,216,121,192,231,175,47,12,134,33,22, +141,241,185,30,12,133,246,254,129,174,13,123,210,249,201,33,24,11,113,189, +227,199,253,130,58,8,134,176,179,208,211,19,207,69,224,114,191,160,171, +101,132,104,78,1,155,187,61,139,207,230,81,251,33,206,242,193,22,102,248, +133,105,6,84,255,129,170,246,242,170,112,22,86,127,97,94,8,170,251,128, +228,39,244,210,160,234,27,208,242,133,133,90,84,149,128,157,190,96,197, +5,93,239,247,51,155,17,243,176,128,154,11,42,169,49,189,44,228,229,7,154, +182,242,50,200,81,194,229,150,23,244,176,128,186,59,154,174,11,103,230, +11,227,107,129,188,220,161,42,96,121,60,96,229,21,93,231,247,45,47,79,76, +47,3,106,63,80,171,5,243,83,67,180,119,212,93,11,65,225,124,12,6,162,187, +163,106,61,42,220,183,190,62,161,185,66,125,185,121,204,9,179,207,252,95, +11,68,119,71,211,118,222,143,140,159,152,70,3,209,94,161,196,2,253,12,247, +215,118,16,228,224,166,79,140,131,133,236,111,168,218,218,103,200,171,125, +232,238,80,77,144,147,133,133,211,15,140,143,79,152,197,2,194,219,10,33, +8,162,249,129,230,218,67,86,4,193,59,223,139,25,254,130,153,95,168,175, +63,209,118,245,214,54,165,4,113,179,2,185,57,229,14,160,157,210,118,7,102, +59,143,121,177,21,110,183,11,250,182,138,160,137,59,82,210,89,131,197,49, +200,26,200,230,111,248,248,232,81,11,63,9,160,135,39,62,31,35,102,109,60, +6,130,45,44,245,248,249,183,14,141,88,48,124,126,65,139,11,62,238,55,116, +21,101,204,235,254,247,245,240,192,67,11,244,247,11,84,93,43,108,238,221, +57,44,139,134,214,11,44,73,52,151,22,117,181,70,188,219,84,47,216,120,128, +29,100,237,13,121,92,148,119,6,203,52,99,54,12,209,244,104,27,185,109,179, +24,92,70,57,43,87,212,237,32,228,60,234,123,70,191,130,167,152,201,183, +8,244,12,2,161,169,235,224,8,246,12,149,55,246,40,222,208,147,199,249,155, +40,187,207,101,57,35,22,167,157,3,157,182,140,120,59,204,161,7,29,151,235, +137,51,62,232,236,69,36,145,127,228,252,99,54,163,88,191,157,162,200,241, +48,61,21,158,121,45,65,74,145,142,138,164,74,77,113,175,51,66,19,199,173, +3,74,65,131,185,24,196,138,133,216,157,60,251,114,244,164,125,22,216,180, +254,176,152,25,122,28,125,164,93,43,184,249,1,150,87,244,31,183,80,205, +9,239,64,84,62,208,88,157,180,94,64,213,79,212,117,29,228,116,253,12,183, +211,47,232,105,241,217,71,215,64,108,129,158,3,155,17,122,94,192,85,135, +174,245,206,209,105,223,35,116,162,67,211,215,192,244,5,99,5,100,127,131, +170,213,174,118,8,231,209,254,195,4,71,13,218,174,1,57,141,101,120,64,79, +26,168,111,104,218,26,194,77,208,195,0,131,6,245,229,2,37,87,25,227,192, +29,1,7,231,140,7,26,25,64,182,247,80,58,100,240,50,98,25,70,56,106,208, +180,13,200,133,32,96,244,215,175,21,195,12,35,88,52,168,218,6,112,19,230, +215,23,244,100,60,128,175,109,189,116,57,9,200,246,142,78,117,48,227,23, +38,237,185,38,60,220,197,248,190,249,34,80,223,47,104,171,125,122,194,217, +25,227,160,193,142,32,4,249,182,76,5,88,109,65,92,163,109,4,204,107,129, +145,13,62,186,22,10,12,103,38,12,175,39,38,86,104,251,30,210,14,120,204, +22,178,185,226,210,85,161,170,36,32,132,127,238,241,57,192,192,183,226, +36,27,44,227,11,207,193,64,212,119,92,219,181,210,98,97,67,191,85,72,181, +181,251,118,167,159,141,173,108,24,15,255,255,102,26,240,154,12,80,221, +209,175,215,132,3,219,25,175,215,0,35,58,252,252,199,15,244,42,86,248,34, +8,37,33,156,133,158,94,120,77,218,183,28,21,249,178,251,54,38,198,48,243, +128,215,176,64,212,55,92,186,6,34,153,52,9,83,9,225,156,9,169,246,236,24, +156,130,2,227,137,146,213,134,177,7,161,233,217,128,234,31,33,8,14,10,143, +250,129,101,178,16,213,29,146,102,152,5,160,186,133,228,209,223,107,219, +128,204,232,179,254,235,13,149,96,240,60,64,79,19,156,104,81,55,4,243,154, +96,69,139,166,110,16,118,227,174,50,185,140,152,135,17,142,58,180,109,3, +56,189,85,187,168,190,161,174,4,220,248,132,115,53,170,251,29,149,244,85, +40,61,105,112,213,162,174,24,203,107,130,163,22,117,91,131,120,193,50,124, +249,106,64,237,3,6,9,128,121,129,157,30,176,198,7,42,149,10,173,81,51,66, +15,35,88,180,168,218,22,196,26,102,120,64,79,51,184,186,163,86,128,25,38, +88,209,160,107,90,95,169,123,61,161,167,25,84,223,209,180,45,4,251,246, +219,188,218,135,80,189,3,28,88,143,88,94,3,156,184,162,255,219,13,190,112, +25,222,139,172,118,46,20,98,200,230,3,189,108,61,56,79,115,22,108,6,214, +79,7,144,82,16,137,112,207,145,249,45,110,40,153,249,137,215,204,80,117, +135,107,163,182,73,11,191,71,124,57,127,222,246,31,54,141,122,193,12,184, +5,175,175,47,60,70,70,117,249,137,191,255,0,88,15,120,14,26,86,93,113,109, +5,150,225,129,97,1,212,189,71,43,35,127,186,145,40,57,143,29,25,13,68,117, +199,181,171,161,196,218,151,49,26,243,56,97,118,128,172,90,180,117,64,60, +59,6,11,242,68,55,236,81,169,70,107,104,39,160,26,25,57,69,47,231,170,245, +140,197,9,84,93,141,70,133,224,160,64,108,182,233,66,199,122,185,136,69, +2,98,149,133,35,237,31,192,88,150,5,214,88,180,77,151,56,44,138,178,252, +28,204,26,247,184,233,144,150,175,243,231,156,176,77,237,196,111,180,241, +144,31,102,98,24,129,56,98,159,55,231,3,163,40,71,183,176,131,94,138,26, +224,113,27,35,154,13,226,136,73,139,162,141,231,113,58,20,198,206,104,103, +207,226,130,210,16,197,234,225,180,5,63,201,119,157,192,35,14,244,112,236, +124,102,109,22,88,235,17,160,48,51,156,181,48,243,4,203,13,234,75,5,178, +47,204,198,65,132,25,241,117,189,214,210,24,195,194,45,19,244,60,192,193, +183,131,0,207,184,182,30,158,101,24,224,100,143,186,169,1,107,66,251,67, +0,110,129,153,7,44,198,66,180,2,206,78,30,192,167,45,160,46,232,250,6,100, +71,204,122,1,203,14,2,6,108,24,78,200,48,33,226,63,175,13,67,116,18,60, +191,48,13,159,208,11,67,116,31,232,251,11,4,27,152,105,192,162,45,100,219, +65,56,13,99,173,199,17,168,26,66,49,24,222,185,235,201,143,204,53,173,119, +96,206,46,176,147,159,133,149,157,4,235,23,198,225,19,203,194,16,205,15, +116,157,130,211,15,255,253,173,242,24,128,215,151,175,160,245,63,208,92, +124,64,96,163,64,219,153,5,214,81,152,187,175,253,88,171,213,152,39,13, +167,58,116,181,12,142,203,1,108,161,167,25,227,228,32,187,22,149,80,176, +114,194,99,102,84,142,208,254,184,128,220,136,47,109,33,42,192,233,25,243, +108,48,78,3,12,87,184,126,92,208,208,132,215,107,130,81,61,62,186,181,143, +200,27,142,100,153,71,140,218,129,234,10,208,51,6,253,192,231,99,6,215, +55,252,113,235,188,46,57,91,76,195,23,190,126,13,88,84,135,31,63,63,208, +133,177,92,36,132,61,177,211,95,219,116,14,206,106,232,121,192,100,8,117, +39,224,2,38,64,8,192,24,3,173,29,72,54,80,188,139,133,8,41,33,224,96,245, +128,199,48,97,182,132,166,187,160,86,3,158,143,57,216,53,128,132,95,83, +61,141,152,44,161,238,37,172,53,32,136,29,191,195,22,243,240,133,207,95, +3,140,188,224,254,199,29,151,90,70,149,134,194,144,126,12,150,93,252,44, +186,165,22,205,234,248,130,211,90,102,13,212,61,36,207,176,218,66,212,23, +128,125,111,86,84,29,200,12,208,179,133,236,122,223,198,153,6,44,179,131, +104,46,104,155,26,88,30,254,249,21,192,86,195,130,192,214,193,177,240,104, +118,253,10,65,167,4,235,17,243,240,9,189,56,136,246,7,218,86,192,142,1, +253,126,189,162,146,128,91,6,63,214,41,122,52,181,2,235,7,22,195,144,157, +0,235,1,211,248,9,173,29,68,247,3,253,229,2,73,126,12,218,78,171,211,190, +160,38,3,171,25,66,2,118,126,97,49,12,209,41,176,126,98,122,61,252,247, +119,63,208,117,21,156,254,130,182,12,217,133,253,63,124,134,243,240,3,125, +223,123,144,238,50,97,153,188,125,88,39,81,56,112,100,216,101,196,98,29, +68,19,70,240,16,36,115,165,159,70,217,167,65,60,240,219,89,3,235,8,170, +189,162,174,235,96,26,45,230,225,211,191,95,213,227,227,199,7,186,198,79, +54,164,224,58,138,146,52,239,88,221,50,96,24,70,104,212,232,21,193,26,11, +144,219,247,223,60,97,24,70,204,86,162,233,122,52,213,136,199,195,115,18, +56,102,31,120,190,52,184,190,162,169,252,250,127,61,70,88,121,193,207,107, +13,225,140,7,186,51,160,156,134,182,21,164,21,16,74,134,243,227,192,70, +135,253,43,80,119,2,198,26,168,197,88,64,48,150,105,198,164,23,88,22,112, +110,128,153,125,15,160,234,58,212,18,176,243,140,121,49,222,201,51,224, +92,112,8,130,188,49,182,26,122,54,176,144,168,155,22,181,138,164,10,153, +143,186,231,116,156,79,221,51,111,202,198,209,128,132,21,129,129,197,204, +88,22,3,85,85,80,149,76,56,148,19,199,89,162,160,91,251,41,81,203,96,175, +44,236,51,201,224,200,233,109,149,4,28,134,92,93,24,109,241,164,75,18,187, +44,234,170,81,143,132,97,97,139,234,183,141,146,162,175,211,60,59,5,31, +18,31,23,206,57,79,54,228,251,233,148,4,153,123,68,81,96,214,161,253,62, +227,10,203,129,20,145,206,21,32,125,128,33,60,86,64,48,236,242,196,240, +235,233,17,221,205,5,117,231,17,233,214,132,236,109,248,5,59,254,229,13, +113,251,225,35,115,177,174,183,1,27,95,42,159,172,134,105,239,104,186,22, +100,39,152,113,192,50,207,96,97,96,231,47,64,248,185,222,166,247,153,131, +239,80,104,44,207,63,97,101,13,213,246,168,174,119,40,229,43,72,118,9,132, +47,203,3,211,242,4,137,26,170,251,240,18,194,219,184,220,12,59,10,44,117, +13,82,13,170,170,65,213,93,33,43,242,96,203,101,129,93,102,24,203,48,117, +135,166,235,125,15,95,174,37,194,17,70,59,80,125,65,221,53,129,208,198, +3,111,28,91,176,213,48,163,0,234,10,36,27,84,170,65,213,93,32,197,2,227, +252,207,237,236,48,47,2,236,4,212,229,134,166,111,64,102,192,56,188,124, +233,145,24,160,10,162,238,209,180,31,190,239,26,28,185,209,51,102,237,32, +90,181,141,131,129,0,183,44,208,227,12,171,42,92,250,30,53,12,94,218,65, +136,26,221,71,143,174,149,176,179,134,146,128,158,159,248,107,30,161,218, +22,151,203,13,215,182,129,130,197,52,44,88,68,141,190,235,208,214,34,161, +205,163,109,244,212,66,143,47,60,109,133,74,2,178,243,136,108,95,154,103, +216,101,198,244,245,196,184,0,77,215,160,146,34,0,67,227,61,198,201,60, +48,40,165,160,115,142,193,86,99,252,245,111,208,175,22,151,251,29,151,174, +134,32,233,199,131,198,7,254,210,79,48,4,170,246,130,251,181,133,116,35, +30,47,13,39,91,244,215,11,46,138,49,189,252,212,130,220,38,122,104,27,91, +100,171,49,126,254,9,61,212,184,220,238,184,244,45,20,1,110,153,49,62,6, +12,154,209,254,168,81,5,82,21,142,43,112,69,125,8,242,229,112,183,120,80, +234,242,196,100,23,152,182,71,85,9,184,197,129,170,30,66,0,78,59,80,85, +67,146,195,178,0,162,170,65,110,132,30,7,24,75,126,242,66,84,222,49,93, +90,200,90,65,192,193,88,9,161,4,236,242,194,244,57,65,168,6,85,239,113, +48,130,23,216,240,92,102,18,64,93,131,68,237,199,162,219,26,100,6,24,23, +70,211,234,26,108,38,152,121,2,168,69,221,134,253,57,91,159,245,79,8,252, +21,21,84,87,163,238,46,144,138,2,160,217,192,104,13,163,53,0,9,91,85,168, +234,6,2,122,219,223,102,124,129,149,242,114,171,109,237,17,235,194,236, +63,159,4,80,85,254,252,213,53,170,246,226,9,134,96,253,72,169,49,176,102, +129,179,26,182,245,165,124,185,53,161,29,204,240,23,236,200,32,217,66,181, +119,52,173,2,47,175,109,34,199,191,14,5,81,119,104,186,15,168,186,193,90, +76,116,218,191,223,81,51,154,190,241,184,153,44,179,161,216,62,174,118, +213,46,88,166,9,195,56,97,182,51,150,241,129,79,82,168,154,11,110,247,22, +202,142,248,122,77,96,209,225,114,189,162,171,28,230,231,203,131,191,37, +65,56,11,107,44,172,51,208,227,23,30,139,130,144,2,172,58,92,175,61,218, +70,129,140,243,64,107,55,99,248,252,55,12,159,2,85,115,193,253,227,138, +174,86,91,21,202,57,95,57,29,191,254,13,122,106,61,85,173,31,221,224,140, +22,34,64,171,68,68,117,153,79,223,19,5,196,36,162,104,106,255,204,41,183, +225,9,191,238,81,42,181,68,102,237,103,164,95,195,128,74,42,95,166,17,162, +172,14,87,24,252,63,37,142,46,113,25,126,199,95,190,206,180,110,173,131, +180,13,145,208,192,29,156,109,129,177,12,5,2,236,184,92,89,164,107,245, +149,21,162,88,23,184,160,122,132,76,239,154,206,88,20,50,82,104,156,173, +25,178,222,168,243,78,50,214,120,150,98,27,107,100,182,97,15,69,117,26, +41,19,162,27,14,180,142,190,181,18,178,251,224,188,246,127,223,215,144, +132,220,162,117,143,246,119,1,136,72,0,249,236,60,132,64,225,218,251,216, +146,71,204,6,101,63,114,192,122,253,72,129,111,29,21,245,189,217,245,250, +235,211,173,217,65,68,78,1,27,130,198,20,184,233,41,156,195,255,35,2,179, +10,1,176,241,255,22,136,160,220,50,64,143,30,228,87,119,61,148,242,35,83, +251,218,97,167,147,142,112,49,236,12,166,231,47,252,250,210,144,183,159, +248,227,214,250,172,121,101,178,11,99,120,82,10,95,42,182,225,252,174,51, +197,236,231,112,87,126,117,18,210,131,143,162,61,238,103,244,17,181,194, +176,161,138,157,229,45,248,39,90,223,65,24,181,13,211,28,243,227,79,252, +249,53,67,244,119,220,239,87,180,213,218,37,166,2,115,212,81,76,135,217, +109,83,27,0,111,51,217,34,220,135,179,97,228,12,209,51,144,39,35,114,46, +0,86,197,10,68,242,3,120,43,208,149,194,220,190,11,83,37,96,222,127,223, +3,147,252,253,63,194,253,223,174,104,43,153,148,112,11,101,202,232,31,194, +117,173,221,219,124,66,238,32,99,162,20,155,4,95,210,53,211,95,208,139, +159,28,80,85,21,102,185,195,180,196,214,122,243,123,215,239,209,29,192, +75,27,137,82,216,223,46,220,143,8,99,177,1,224,139,192,195,176,158,151, +245,172,64,172,123,153,183,243,193,235,231,60,47,244,38,92,21,234,74,219, +61,172,251,115,175,112,134,207,71,163,192,235,231,253,207,195,56,44,68, +100,119,194,30,223,8,175,246,169,163,216,175,19,108,189,0,0,32,0,73,68, +65,84,62,80,224,53,216,212,107,195,180,205,70,91,205,43,151,68,186,55,182, +243,19,236,83,250,126,47,104,43,21,246,103,70,52,114,176,135,158,47,194, +119,158,10,251,143,61,23,3,145,12,244,204,46,112,127,132,61,25,214,205, +173,235,187,6,139,1,192,188,106,186,175,251,123,63,163,98,35,2,218,206, +71,32,87,91,41,227,233,75,63,248,119,72,191,143,156,201,209,92,244,153, +0,197,169,83,68,146,45,199,206,44,161,3,204,164,247,40,100,203,211,52,193, +152,5,151,203,197,59,247,195,119,81,65,208,129,143,60,240,69,202,191,19, +197,174,146,1,2,5,163,200,33,19,160,50,73,115,145,141,232,140,179,182,192, +147,90,250,157,176,217,108,112,108,94,134,54,227,216,205,131,42,156,4,57, +103,172,73,103,242,185,5,97,137,93,176,134,143,220,194,5,94,248,242,247, +161,192,182,131,147,224,176,68,85,117,12,32,41,34,93,138,85,32,14,2,43, +185,58,13,21,104,179,138,108,157,156,73,97,22,130,212,152,134,45,226,199, +116,203,3,243,56,0,242,142,170,85,192,50,66,79,190,13,209,94,110,193,193, +158,17,100,167,34,35,128,195,252,250,11,127,254,154,33,175,63,241,183,143, +214,131,143,162,138,13,113,204,161,64,71,101,176,119,239,229,219,253,128, +66,240,190,58,101,139,121,124,225,249,53,192,181,87,252,248,113,69,35,69, +214,54,43,237,47,126,211,39,42,113,145,115,66,7,253,214,32,241,105,254, +16,117,6,66,32,224,2,167,192,215,24,238,255,134,230,240,110,222,45,92,140, +104,225,111,12,228,122,35,126,52,114,158,102,80,251,211,99,78,98,54,169, +68,45,141,51,240,241,161,47,153,240,250,237,76,117,89,105,14,121,197,52, +61,95,199,116,228,141,36,221,183,201,86,137,204,172,96,148,9,231,247,118, +42,80,129,223,72,94,214,219,95,247,231,19,207,199,8,215,228,239,247,119, +191,163,116,70,74,246,227,141,168,198,33,185,138,71,178,75,188,225,40,127, +79,116,73,117,84,192,160,67,121,41,237,202,38,200,173,115,101,179,83,146, +252,157,3,48,42,140,71,179,223,72,101,171,162,146,181,67,96,196,51,11,218, +182,13,66,9,116,160,159,76,203,245,116,74,197,89,220,117,124,236,255,231, +244,159,241,189,173,180,131,84,48,78,155,196,33,78,120,19,15,45,138,130, +122,20,149,218,24,251,53,4,145,207,132,183,91,230,243,151,64,113,33,158, +178,247,150,9,138,191,59,160,68,69,197,131,216,148,49,101,146,113,200,250, +172,185,184,68,78,246,191,145,239,68,14,148,24,69,201,181,130,17,219,136, +133,146,245,163,131,198,65,190,73,87,157,102,100,193,82,106,32,145,238, +221,228,111,20,81,159,210,113,205,40,174,40,24,95,246,159,254,95,232,81, +65,168,14,117,255,19,109,93,239,149,141,136,0,134,147,118,82,172,40,22, +240,27,170,70,219,176,159,159,222,123,65,5,33,140,189,79,92,22,80,137,12, +70,190,239,202,4,249,123,240,176,174,23,51,28,91,44,227,19,191,158,51,156, +104,113,253,227,31,252,200,153,200,156,35,189,219,95,113,96,18,59,204,76, +83,98,99,207,43,4,109,56,74,167,30,102,215,14,26,18,222,240,47,211,19,191, +158,19,172,232,112,251,227,31,208,53,213,14,224,138,71,78,99,39,197,25, +15,116,20,88,81,201,150,102,58,21,128,131,51,51,204,226,32,219,31,129,219, +35,162,1,138,166,114,56,76,249,36,69,228,205,121,241,193,136,16,199,246, +54,191,159,99,208,23,75,2,31,84,168,115,98,120,202,2,207,67,210,146,182, +252,114,246,204,131,184,72,137,96,58,169,42,210,129,15,165,92,177,68,74, +140,182,17,161,172,239,119,134,149,13,110,63,255,1,125,83,133,10,52,157, +56,53,42,248,139,99,236,189,251,181,35,35,107,250,90,168,20,89,166,126, +155,57,57,179,7,138,115,162,8,250,193,201,187,217,51,120,206,180,201,79, +34,138,146,83,124,39,124,20,59,55,138,208,170,41,208,235,76,247,35,141, +200,77,32,221,33,34,116,125,15,58,241,66,185,240,197,94,113,143,208,244, +219,139,224,184,115,159,28,212,52,234,78,231,0,156,11,108,113,132,64,1, +121,220,156,137,20,44,190,43,113,224,84,175,190,244,92,107,73,149,2,144, +40,89,139,109,212,111,231,71,166,67,160,86,48,50,28,179,114,209,225,224, +158,137,197,29,222,31,159,56,139,239,178,248,223,250,239,141,108,226,155, +160,253,244,158,11,2,22,167,153,123,241,121,242,189,193,123,56,192,84,144, +62,229,200,176,185,141,142,212,199,188,114,167,241,140,245,195,223,158, +45,206,74,216,158,170,85,28,230,32,80,206,32,15,213,142,114,102,28,27,38, +138,131,113,20,130,210,248,147,206,194,56,95,238,174,132,56,158,237,194, +139,162,108,16,245,76,141,181,184,23,138,173,184,245,103,116,162,250,197, +153,115,139,238,50,186,127,37,196,121,6,119,186,159,99,213,150,146,193, +47,37,23,235,222,96,208,90,153,59,84,141,206,20,49,114,123,29,173,97,177, +26,195,7,21,147,21,249,189,77,248,196,168,113,42,100,240,185,44,31,229, +247,121,148,239,61,104,16,175,62,34,78,252,10,218,1,229,181,46,216,24,46, +219,209,24,208,236,219,98,103,251,243,36,113,56,249,121,73,40,237,244,94, +19,137,224,172,170,118,210,90,45,217,185,40,101,42,43,145,2,160,135,126, +48,127,227,32,191,43,185,31,248,227,207,22,247,0,194,46,136,99,23,14,173, +231,96,246,165,121,6,163,109,26,72,169,206,111,42,107,163,167,146,147,113, +230,18,149,172,10,165,148,21,208,150,231,160,206,35,235,66,143,49,45,51, +190,85,76,141,14,223,153,210,37,191,219,20,225,0,184,56,119,161,172,39, +90,40,165,83,161,144,114,150,73,228,25,34,178,225,197,244,94,207,250,246, +133,61,242,198,17,239,229,242,236,253,29,196,46,56,227,36,72,255,254,93, +73,189,104,24,15,229,66,62,240,30,156,105,202,31,12,79,230,156,146,10,14, +227,84,226,242,221,153,249,189,54,65,233,253,30,15,126,233,158,75,242,195, +229,247,76,199,74,199,89,112,84,146,128,69,218,37,98,226,99,5,36,55,254, +165,61,87,72,54,98,20,123,81,219,252,80,186,228,36,51,205,10,127,191,21, +96,191,221,211,69,7,113,190,39,177,15,202,22,29,7,222,180,81,206,186,12, +156,191,171,223,188,223,114,25,158,146,192,96,23,174,162,211,51,146,87, +52,246,170,192,74,170,117,172,238,189,47,223,151,147,177,67,117,185,84, +170,198,185,18,47,157,117,107,248,172,219,90,120,238,130,113,216,165,119, +179,189,246,6,209,84,124,166,82,85,34,174,236,81,106,107,242,248,77,112, +41,19,216,11,212,241,184,120,50,158,69,81,5,47,174,230,29,0,176,209,191, +227,160,11,191,65,112,163,207,31,205,5,19,160,245,12,231,28,154,186,246, +115,230,69,35,71,200,171,32,185,70,250,62,234,22,167,202,148,222,39,246, +242,46,231,21,118,16,156,115,126,150,55,41,107,151,157,40,50,222,11,206, +94,54,31,254,183,80,169,138,70,231,188,36,174,219,102,222,41,115,120,103, +165,206,244,192,227,248,30,80,238,179,48,98,70,230,108,243,114,246,238, +114,195,91,210,188,78,47,188,223,98,84,101,32,202,36,94,147,114,120,220, +142,163,195,251,39,202,42,130,73,215,130,118,181,173,66,53,152,78,158,191, +244,123,116,178,122,140,157,160,104,173,16,109,156,10,204,155,42,24,23, +58,39,165,9,197,184,77,68,39,5,67,198,153,124,36,178,55,155,104,129,37, +91,235,240,110,179,117,43,133,19,185,20,107,190,126,116,102,183,41,95,197, +61,83,164,76,76,61,9,10,54,134,49,28,247,193,42,80,67,153,221,41,221,58, +81,49,66,226,2,28,32,163,217,41,65,130,79,43,113,148,183,194,184,236,254, +203,57,20,37,251,132,226,46,83,65,218,56,15,130,54,162,171,168,237,201, +135,147,140,194,90,162,216,126,219,130,160,205,145,80,154,149,71,4,97,200, +107,39,89,128,194,241,195,148,54,224,97,45,163,154,42,167,242,175,124,184, +215,226,193,79,20,60,75,129,108,254,142,206,182,74,201,173,211,137,115, +63,76,86,48,18,165,190,252,190,74,103,57,145,17,47,181,181,162,86,100,34, +47,190,218,222,71,40,209,243,187,140,128,79,116,176,113,108,139,112,49, +83,63,226,1,206,162,207,210,206,51,198,98,24,7,180,117,139,42,204,81,211, +41,236,168,176,95,50,63,204,111,50,159,239,162,241,77,221,137,114,250,218, +223,169,88,252,94,228,127,174,18,200,155,76,230,246,186,137,222,151,201, +127,51,82,255,246,239,167,160,196,216,0,31,247,201,217,90,148,126,143,190, +89,171,119,239,151,9,167,198,247,180,5,244,230,62,78,138,172,191,245,123, +239,28,192,233,58,23,158,153,10,213,116,156,23,106,222,86,5,249,119,90, +21,248,190,109,242,221,249,57,123,190,223,221,243,239,236,208,111,237,133, +147,181,167,12,98,242,221,122,208,191,227,94,254,189,231,248,52,155,44, +84,83,222,125,215,183,246,171,0,249,57,125,23,39,152,223,223,121,135,255, +127,108,234,59,72,71,81,42,252,68,15,254,60,155,255,102,63,124,243,46,79, +159,153,143,152,66,42,224,161,243,155,163,247,5,134,211,234,194,239,216, +145,146,2,235,250,57,193,133,172,132,179,44,254,108,66,43,246,111,76,135, +228,236,112,77,188,233,47,227,141,241,154,231,25,82,8,79,21,202,244,54, +234,228,179,236,38,143,204,57,139,124,249,28,91,22,7,39,206,88,176,117, +73,228,118,54,113,198,89,6,120,182,9,223,225,62,115,157,111,103,253,72, +6,81,41,67,79,219,98,121,68,90,218,76,249,102,35,62,49,154,239,180,137, +247,100,254,247,14,24,29,191,63,223,240,121,126,135,82,166,154,61,43,191, +179,115,252,27,155,45,222,51,92,136,166,11,1,13,23,14,39,159,173,123,246, +111,196,239,159,153,41,175,30,165,235,144,159,193,210,189,229,103,243,116, +205,41,173,202,109,21,22,20,49,68,135,247,95,122,95,224,178,115,91,159, +157,222,189,219,19,135,74,81,0,203,191,17,151,80,108,0,233,80,112,251,118, +18,150,78,140,124,241,123,78,158,153,179,243,117,102,175,248,4,91,123,134, +159,61,203,58,115,7,202,217,61,156,140,234,159,218,29,224,100,189,248,189, +29,39,148,43,79,69,123,71,71,191,65,148,86,85,136,210,51,70,111,130,47, +250,205,64,242,108,230,41,239,32,83,102,32,50,236,94,177,226,151,191,195, +248,179,252,102,223,31,236,114,86,148,200,237,69,238,83,227,107,170,119, +153,58,255,102,244,90,90,244,82,121,28,111,50,163,82,20,197,204,94,42,144, +29,218,182,219,202,158,40,44,46,253,102,212,192,5,39,195,39,78,39,121,9, +65,68,68,72,81,152,2,56,86,198,207,178,24,156,68,241,165,117,77,55,193, +218,26,17,32,73,64,17,24,136,3,14,32,143,46,191,27,248,224,147,64,132,79, +60,33,209,121,164,207,39,65,35,16,148,194,130,14,181,20,34,253,60,253,102, +166,144,25,5,156,68,178,249,95,222,29,242,195,116,219,73,160,197,39,251, +154,222,172,99,30,8,50,149,159,153,74,193,9,149,91,113,197,103,250,119, +130,23,139,147,152,5,59,192,191,241,142,112,18,160,208,27,75,75,244,189, +207,40,157,177,210,30,221,49,3,188,237,175,117,148,118,221,115,158,94,151, +222,102,235,103,193,195,183,217,53,165,109,14,208,185,83,253,102,160,246, +208,30,64,208,101,231,245,204,148,200,62,179,141,122,164,244,8,107,99,25, +134,93,224,1,16,27,155,96,201,73,208,153,243,164,247,89,240,89,102,93,218, +239,165,170,99,62,57,91,0,144,23,237,234,119,126,165,56,153,86,186,87,58, +249,110,58,247,121,165,253,240,157,109,59,125,158,236,253,150,124,25,125, +243,172,42,1,179,4,253,98,183,242,43,39,66,48,188,147,109,172,228,12,171, +58,78,161,15,249,46,66,62,51,250,249,70,210,203,130,101,49,168,170,202, +19,126,224,56,206,77,111,178,172,239,14,205,219,232,180,176,41,172,181, +59,177,198,55,7,245,119,38,93,223,29,136,67,25,202,121,105,79,111,152,196, +123,244,56,189,31,238,192,155,96,227,204,104,174,127,118,158,51,35,4,59, +199,77,6,0,198,122,12,226,106,96,132,231,156,216,65,138,206,64,79,19,134, +209,64,181,29,186,75,3,5,250,182,220,199,111,214,154,179,8,255,188,212, +232,31,192,241,222,83,216,21,191,232,91,48,206,153,19,40,31,58,14,58,242, +8,50,183,97,5,156,217,136,110,24,162,56,160,194,209,28,182,191,166,255, +124,110,96,168,148,113,157,112,26,157,101,62,56,41,13,159,5,129,223,149, +140,207,202,174,4,14,248,21,6,132,240,168,116,42,180,251,74,123,243,164, +21,72,5,231,206,206,79,219,76,163,129,108,59,244,151,6,18,12,51,14,120, +189,52,100,215,135,127,163,183,182,225,180,4,76,239,207,114,62,174,159, +227,129,222,181,23,215,243,5,1,68,100,132,94,234,119,124,225,249,90,160, +214,251,167,35,106,36,14,60,137,142,237,53,118,6,122,26,241,124,60,61,165, +233,229,142,143,107,7,33,249,205,164,205,123,91,126,214,122,56,172,231, +55,129,105,30,84,82,33,105,34,252,158,237,229,55,65,71,153,145,243,123, +71,143,111,18,53,124,19,16,190,11,232,232,44,137,250,157,96,233,141,223, +80,142,17,216,118,28,140,53,48,243,12,109,128,170,109,81,215,202,11,212, +3,112,70,67,79,11,180,89,66,121,76,64,53,45,186,118,37,180,63,29,218,248, +119,149,72,214,191,47,214,96,209,26,82,41,212,117,115,28,225,121,87,150, +45,24,138,239,250,53,239,50,107,14,163,12,82,202,4,12,246,93,239,245,93, +228,254,157,211,69,22,189,167,223,255,38,160,160,223,51,208,239,178,207, +179,207,217,5,120,252,9,188,22,160,185,3,183,11,80,203,200,217,89,96,30, +128,175,7,48,204,128,35,160,106,129,63,126,0,125,3,128,60,157,234,240,122, +97,97,133,186,191,160,111,234,77,175,96,163,10,101,175,187,205,39,212,65, +244,77,117,164,124,208,189,225,55,203,128,101,26,177,232,5,204,2,84,181, +104,47,247,160,44,247,222,112,189,205,216,15,107,231,188,100,236,48,128, +101,135,186,237,33,20,3,102,196,252,248,194,226,20,234,203,29,85,211,148, +43,56,196,176,203,203,11,212,200,14,85,219,67,41,250,182,55,235,156,241, +168,101,41,139,89,214,59,203,205,223,244,208,241,77,239,240,96,116,178, +64,216,152,25,175,95,191,240,210,132,230,126,199,189,247,108,123,135,65, +154,210,25,202,202,235,101,59,226,96,244,132,225,53,96,97,133,166,191,160, +107,42,200,32,49,235,150,25,179,94,32,234,6,173,227,141,226,244,59,174, +198,223,233,153,126,231,232,190,75,0,156,3,22,13,76,47,224,53,251,243,117, +239,177,217,86,56,11,183,104,44,90,195,214,13,90,183,7,0,223,37,55,155, +18,165,209,120,61,191,48,26,137,230,242,3,183,166,134,146,50,18,102,249, +182,27,247,109,50,242,214,246,188,161,30,160,223,8,28,190,219,139,103,246, +157,240,123,173,156,223,113,186,244,166,167,143,19,123,78,191,241,249,183, +149,176,183,118,237,188,13,198,12,207,102,233,204,140,105,214,48,206,193, +26,6,85,141,231,56,14,119,179,140,47,104,3,136,186,197,181,235,192,102, +194,48,153,141,134,242,172,244,132,111,122,106,231,89,25,99,158,102,128, +128,102,229,218,126,83,214,70,41,122,206,144,252,255,158,141,20,203,209, +3,8,108,117,0,41,89,156,189,167,223,252,251,239,4,61,199,141,194,48,214, +249,222,139,18,223,2,192,190,155,16,58,173,44,80,218,215,206,175,233,0, +232,17,24,38,0,29,208,117,222,185,111,76,197,22,248,250,11,248,124,2,198, +133,207,73,160,239,129,182,6,8,22,203,235,137,175,97,6,87,29,174,183,30, +141,18,136,109,20,155,39,166,231,4,167,250,255,143,182,119,139,149,166, +75,235,251,126,235,84,135,62,236,253,190,31,51,12,81,36,24,39,226,34,177, +176,100,32,82,124,225,19,48,34,40,38,1,100,229,194,138,28,228,40,145,32, +154,216,78,128,216,200,7,133,177,49,81,98,217,137,136,131,176,236,200,55, +81,132,101,7,124,80,108,28,219,2,199,9,194,140,21,39,152,4,89,192,204,152, +83,24,152,239,221,187,187,235,184,214,122,114,177,170,187,171,170,171,123, +247,254,134,108,105,230,211,187,123,119,29,86,173,122,14,255,231,255,252, +31,242,245,10,163,238,68,87,174,220,227,185,181,46,18,155,61,109,93,17, +76,65,86,190,71,190,6,233,91,130,36,29,129,165,112,254,38,58,116,77,101, +248,136,82,132,134,182,170,136,100,184,114,149,36,98,241,244,109,69,223, +71,116,185,74,179,179,175,180,198,73,168,232,170,154,72,78,86,150,131,36, +229,11,117,69,191,163,217,55,105,222,251,122,157,100,46,95,88,175,107,134, +72,238,93,135,59,234,216,195,196,6,66,211,208,12,163,126,203,85,126,114, +176,234,133,107,121,217,16,39,25,224,190,218,177,171,210,28,247,243,254, +58,206,204,208,41,0,8,145,156,52,160,227,158,251,122,137,92,118,111,192, +124,11,17,8,13,236,14,208,245,208,117,160,75,40,87,201,129,159,66,16,157, +134,46,245,167,235,127,217,174,140,11,183,34,145,230,240,156,38,13,110, +30,216,20,118,144,241,125,217,145,169,87,58,164,123,19,6,185,101,195,239, +12,52,174,150,152,174,60,75,121,225,217,188,100,63,239,241,29,247,6,73, +47,145,116,95,12,52,212,21,158,192,200,166,91,239,251,52,32,195,58,50,223, +209,104,75,94,228,216,33,234,11,125,75,223,121,112,107,114,103,48,4,186, +144,70,124,58,103,46,90,163,120,133,65,94,206,102,211,148,184,24,3,101, +185,62,233,122,115,199,203,50,135,29,231,171,35,183,32,250,177,50,16,76, +152,82,71,77,97,174,8,135,94,13,84,212,37,105,109,242,183,35,70,175,26, +51,70,143,14,119,136,48,204,108,136,204,45,168,74,238,140,28,47,62,147, +235,69,33,31,210,165,152,12,222,251,8,216,108,200,44,146,180,54,33,64,123, +128,167,67,50,78,31,90,67,102,65,91,112,6,148,116,52,251,61,187,42,224, +214,143,108,86,57,86,167,232,43,198,144,32,243,208,225,135,233,101,153, +51,232,161,14,16,149,156,52,7,142,60,8,80,36,169,236,164,139,45,49,158, +130,161,152,70,131,13,115,18,20,18,59,124,115,160,107,211,228,172,85,158, +134,219,128,2,107,49,199,5,139,62,65,199,227,135,167,147,96,76,148,112, +10,21,136,71,161,178,65,11,123,24,161,204,48,240,39,65,240,233,156,125, +116,228,155,18,171,2,209,199,97,84,229,27,214,133,66,107,59,58,87,210,162, +14,195,247,137,253,233,251,197,118,133,53,234,116,125,162,142,88,214,160, +227,61,204,72,79,235,119,192,75,70,238,44,106,88,63,209,71,173,250,161, +254,124,68,160,244,48,109,14,16,21,33,164,243,31,149,208,146,206,183,126, +17,150,151,161,239,47,12,211,186,68,165,41,94,70,235,97,202,161,164,65, +39,17,112,5,15,31,94,97,51,55,56,216,244,93,63,210,192,103,80,65,212,39, +29,248,227,136,214,244,55,162,192,232,84,55,62,151,124,122,218,195,158, +231,42,144,173,183,3,50,48,238,87,30,74,37,162,208,198,98,172,126,49,72, +124,141,29,147,87,26,248,241,223,250,22,170,42,189,91,5,208,71,216,60,64, +174,103,199,136,199,137,145,22,107,205,213,134,183,75,39,145,214,184,111, +14,52,109,192,148,15,172,114,123,30,131,251,2,18,245,50,82,245,178,195, +146,23,160,234,151,74,186,183,18,161,123,69,107,229,142,99,95,35,63,203, +11,118,247,53,8,181,92,241,57,47,6,68,87,235,13,183,131,2,107,141,197,228, +154,232,59,42,15,58,203,200,108,26,64,129,128,132,72,144,52,233,43,68,161, +107,91,188,164,32,32,27,50,74,117,199,2,206,89,249,44,50,66,147,161,232, +218,46,77,137,179,230,66,213,138,211,184,190,251,106,32,103,231,62,155, +245,126,81,243,148,139,190,242,83,221,93,169,1,15,147,209,144,213,17,209, +228,90,15,233,132,77,47,51,49,211,17,59,82,206,202,74,199,48,226,216,91, +122,60,127,34,214,45,11,61,156,96,124,150,123,185,199,235,203,21,5,237, +185,162,215,17,114,175,158,225,233,25,218,144,28,246,230,45,60,228,105, +10,105,187,135,119,79,80,245,233,111,131,128,238,147,209,218,188,133,199, +92,80,49,208,28,158,121,170,33,91,109,121,216,228,231,1,35,161,75,51,165, +171,29,125,24,238,76,105,90,95,209,217,146,44,55,72,215,17,17,162,120,98, +171,176,133,37,198,158,16,51,138,205,22,19,15,180,77,143,50,22,98,75,223, +122,176,43,138,237,3,153,9,116,135,29,125,52,216,242,145,162,112,11,93, +26,129,208,85,116,117,69,223,245,131,168,18,152,252,145,114,189,74,89,113, +227,81,70,35,177,199,183,29,232,130,124,251,134,188,204,211,239,250,154, +190,174,82,32,44,49,197,35,110,69,177,46,49,177,166,217,237,210,148,183, +108,155,174,107,224,147,168,113,217,224,116,254,152,214,209,109,41,214, +107,172,142,132,246,64,87,215,195,231,129,40,10,157,63,80,174,74,232,247, +180,135,61,62,30,97,147,150,218,215,104,91,146,175,54,184,76,17,187,132, +6,244,93,71,84,10,101,215,20,155,7,178,204,160,162,39,244,21,93,53,156, +95,41,148,118,216,245,99,154,212,165,110,240,14,36,226,125,79,187,127,102, +63,140,154,214,202,80,108,30,217,110,214,228,42,210,215,207,60,61,239,169, +218,136,152,130,199,247,30,217,230,195,30,140,129,102,255,196,211,190,162, +13,67,144,132,198,230,27,222,60,110,89,23,6,239,59,218,234,192,254,144, +198,249,98,10,182,143,111,120,216,184,196,68,9,158,246,240,204,115,45,184, +213,54,77,143,27,70,206,158,179,215,52,160,170,235,61,152,156,204,166,17, +181,23,101,184,145,36,76,138,239,195,16,184,140,127,123,30,67,123,30,67, +58,183,212,42,125,62,65,80,166,51,11,142,231,181,25,108,116,122,103,222, +111,193,173,83,57,203,204,190,37,209,15,215,95,224,172,193,170,25,33,84, +150,101,142,4,136,125,67,125,104,8,182,100,93,230,100,230,202,220,148,91, +89,248,8,17,189,199,121,94,117,134,115,100,85,221,80,215,190,229,92,175, +36,110,175,65,73,229,218,53,221,10,48,212,20,229,188,149,210,43,185,142, +16,204,217,241,47,162,48,242,242,223,45,5,92,150,227,164,167,46,128,205, +40,115,51,218,148,41,11,80,6,250,174,166,138,142,44,43,88,57,55,130,143, +238,131,161,47,130,202,133,139,9,49,210,117,29,74,107,242,97,70,239,209, +249,134,97,34,151,209,230,130,193,124,204,18,82,182,123,9,183,70,73,35, +85,211,231,250,226,115,145,116,110,65,176,195,132,178,147,36,136,73,19, +125,124,12,40,1,125,34,100,141,90,41,4,66,12,168,249,241,213,41,128,78, +181,101,20,118,184,126,53,213,157,29,221,159,157,178,96,135,105,65,126, +104,205,59,30,95,205,130,147,112,186,63,115,89,135,63,125,62,58,254,124, +253,36,130,48,100,94,42,213,4,155,148,93,180,61,4,32,203,161,40,146,241, +9,45,212,53,52,61,4,159,14,102,108,66,18,179,18,86,5,152,232,105,170,61, +135,78,200,215,15,108,87,25,122,124,94,109,177,89,78,244,61,74,28,182,220, +12,65,93,26,221,218,215,123,186,38,160,115,151,214,202,28,167,180,57,108, +150,163,98,69,87,31,240,33,35,115,14,147,25,20,53,1,13,161,165,109,106, +124,52,184,213,35,89,102,103,107,230,147,227,107,90,162,118,216,213,91, +178,50,164,44,56,42,76,145,163,66,69,91,237,233,131,37,115,91,92,150,99, +212,129,32,25,218,64,108,118,244,109,75,208,14,119,250,254,158,62,42,76, +49,204,176,22,139,205,87,8,29,226,28,169,52,158,166,87,93,156,127,229,233, +235,138,16,53,186,88,97,104,104,119,45,81,103,216,213,91,92,233,9,205,30, +31,53,166,92,99,156,1,157,97,67,129,138,118,88,63,123,66,127,36,84,52,207, +13,145,52,26,119,85,246,248,166,34,160,210,181,249,134,174,62,16,162,194, +148,239,177,222,14,179,205,135,236,253,22,143,133,152,116,230,119,85,71, +112,57,15,95,240,128,29,246,158,49,102,40,61,24,76,177,102,19,33,210,16, +179,146,60,207,78,206,11,109,201,215,143,124,65,185,166,239,58,154,186, +35,96,40,54,27,74,43,52,251,103,170,46,96,92,193,227,123,43,124,189,103, +95,123,66,232,137,209,161,164,167,173,118,28,58,33,91,63,176,93,13,193, +163,204,68,162,36,36,110,145,104,242,85,73,97,245,130,253,24,217,7,13,226, +59,234,195,158,253,190,166,13,103,4,71,107,67,86,110,88,175,114,232,42, +246,251,154,62,132,179,93,215,134,172,216,176,217,110,40,135,49,214,50, +148,249,210,241,45,199,1,109,39,98,157,135,125,5,228,240,176,30,156,187, +58,11,107,17,3,125,215,208,138,157,92,255,57,206,26,191,223,71,82,76,18, +195,242,161,167,107,90,188,202,88,109,214,228,118,122,110,145,43,118,124, +222,181,33,247,151,104,110,6,0,242,194,191,175,100,181,139,218,15,119,4, +36,183,208,95,245,18,246,207,149,57,96,55,238,109,201,121,223,228,101,204, +37,246,95,88,227,123,16,142,241,229,88,137,158,182,237,8,202,144,229,217, +73,111,57,246,45,109,219,211,99,200,92,129,85,45,141,23,226,113,156,225, +141,5,124,177,16,127,101,33,219,182,37,70,33,207,243,180,81,71,199,50,179, +193,50,243,8,76,27,139,186,150,159,43,82,13,116,80,98,90,170,81,25,99,70, +151,45,67,100,46,169,45,14,146,241,154,101,248,227,135,115,156,191,61,102, +162,170,145,118,119,146,214,149,101,232,78,43,140,152,73,189,91,124,56, +157,95,41,117,26,11,168,22,34,79,116,202,156,38,186,5,50,38,40,13,99,66, +175,109,16,165,134,245,29,41,111,105,112,37,108,7,8,190,183,9,58,44,93, +170,187,235,28,30,30,83,240,244,220,193,106,155,72,65,206,128,210,130,214, +208,237,118,236,42,143,41,182,172,203,236,52,190,244,148,155,196,22,223, +118,68,85,144,173,54,216,204,161,17,98,108,240,117,131,143,22,183,42,33, +180,4,93,226,92,98,97,43,183,194,209,209,215,13,81,175,41,55,91,156,83, +248,234,29,81,28,54,51,196,182,38,96,112,171,7,178,220,157,130,214,148, +153,117,244,135,103,186,94,208,217,154,188,40,48,58,208,31,42,34,22,183, +90,163,165,161,63,28,136,102,77,185,125,32,115,208,87,79,233,248,69,14, +221,129,182,15,168,108,77,49,249,190,195,173,54,167,128,34,118,123,218, +62,161,10,121,89,96,180,70,196,227,15,79,233,252,110,69,86,150,88,237,233, +15,45,130,197,149,121,170,193,15,179,229,243,34,71,155,128,223,183,68,44, +118,181,37,203,28,74,90,186,166,75,117,250,245,6,155,59,180,164,177,181, +190,218,211,53,169,30,239,242,2,173,3,177,237,136,42,195,22,43,172,133, +80,237,232,219,128,206,31,48,214,158,72,156,47,147,142,134,153,236,213, +158,170,55,148,133,67,107,51,4,23,50,121,11,180,244,180,77,71,180,57,155, +77,170,139,79,228,124,149,208,183,45,109,23,48,197,150,77,225,176,198,83, +63,237,57,52,30,83,174,200,11,135,145,62,57,90,147,225,178,196,93,232,14, +251,97,127,109,88,151,249,153,144,54,235,85,150,238,192,254,80,19,204,138, +117,145,77,201,105,195,197,164,247,227,60,30,87,4,108,182,98,251,166,96, +123,114,122,106,184,79,131,146,64,160,228,225,77,57,177,70,202,164,117, +48,71,126,201,80,234,59,17,100,103,206,82,2,236,247,208,41,216,108,32,183, +76,130,20,65,144,254,192,126,223,32,102,69,57,186,126,53,177,111,134,179, +240,175,167,173,246,236,118,21,189,202,89,63,108,121,200,28,214,168,11, +216,247,90,246,172,228,14,12,251,202,191,239,226,36,169,151,157,251,61, +196,190,171,101,145,27,189,114,47,34,206,147,65,46,76,231,116,221,128,197, +231,195,20,229,14,94,198,213,150,170,123,147,229,23,56,2,214,183,29,93, +80,100,171,12,55,20,86,67,223,210,182,29,162,11,86,185,197,170,72,23,253, +96,184,95,80,21,153,23,131,239,124,232,125,223,225,125,160,40,10,172,181, +51,255,179,220,60,168,70,144,246,133,44,224,184,148,58,215,61,189,120,88, +151,87,167,180,30,102,221,171,139,232,106,62,213,117,42,123,187,228,63, +213,101,131,178,220,34,110,201,168,29,79,93,200,33,94,108,182,211,12,97, +38,2,37,83,35,160,174,210,63,47,228,91,135,63,15,33,17,235,122,5,229,54, +65,135,122,116,254,190,77,240,124,182,130,199,13,20,110,196,152,110,15, +84,85,75,116,27,30,86,25,206,76,61,135,248,14,95,239,232,188,77,206,41, +115,67,226,209,19,154,138,62,58,92,105,193,215,120,83,146,57,133,244,53, +98,74,156,142,132,182,1,183,165,88,173,176,70,8,93,133,239,193,228,37,58, +214,116,81,97,215,15,100,99,36,8,80,146,178,216,190,7,91,62,224,114,135, +22,79,127,120,166,237,4,183,222,98,84,79,95,215,68,247,64,177,42,177,6, +66,187,199,123,133,41,87,40,105,241,189,96,202,199,225,251,61,125,181,27, +190,255,152,206,169,83,134,220,183,7,162,90,145,151,107,172,77,243,223, +99,115,24,206,191,77,68,59,233,233,15,59,218,14,220,170,72,215,216,9,102, +53,124,30,61,253,254,41,125,190,126,56,57,247,190,122,162,11,238,20,28, +169,161,174,18,218,103,154,106,143,247,130,234,61,161,217,161,140,195,20, +91,178,117,137,181,10,164,7,52,34,45,125,245,62,190,47,7,216,222,221,193, +153,73,165,20,99,12,186,235,56,188,255,171,52,110,205,227,123,91,214,249, +168,12,18,61,205,161,166,242,154,242,205,122,130,14,202,144,68,212,85,77, +19,13,171,213,150,60,119,104,60,109,189,231,121,183,163,9,10,213,181,28, +158,101,232,42,204,88,189,89,83,230,150,216,85,84,85,51,236,175,2,103,22, +116,186,1,241,45,85,85,211,138,99,187,46,201,157,94,168,55,76,219,129,251, +246,192,254,105,79,213,245,132,145,72,136,182,5,171,135,7,74,233,105,158, +119,84,157,79,200,215,112,48,109,11,202,135,71,30,156,158,138,147,92,107, +249,137,137,53,95,123,40,223,64,153,45,24,116,223,81,85,13,173,100,233, +250,237,165,184,250,188,96,169,48,100,69,73,233,61,177,78,220,16,117,79, +223,238,29,16,241,75,217,235,181,77,51,71,10,110,58,202,123,50,212,5,39, +188,196,31,186,198,68,86,119,194,222,183,197,64,46,179,123,165,62,216,189, +221,12,148,238,144,199,188,22,144,217,182,139,152,172,72,196,166,129,224, +211,214,45,94,103,148,69,138,250,164,239,232,189,96,108,170,187,107,245, +1,23,228,202,102,138,34,180,109,135,179,22,231,220,101,109,232,222,104, +82,238,164,88,222,56,166,40,8,253,177,67,192,44,22,248,95,138,188,174,241, +0,174,94,191,76,35,218,232,195,48,134,214,92,255,222,75,141,218,119,188, +160,92,129,156,130,79,109,59,221,30,118,53,168,50,49,225,199,245,216,216, +12,140,121,3,31,218,14,206,125,212,47,215,28,246,212,209,177,93,173,200, +157,153,66,114,18,241,205,19,77,39,100,171,53,89,102,207,53,221,250,29, +93,176,216,98,133,238,159,233,49,216,60,131,246,153,64,142,205,44,177,218, +19,245,154,108,189,25,156,253,142,182,246,224,86,100,206,211,62,183,136, +219,98,179,44,101,148,9,229,68,105,144,254,64,83,53,144,63,224,10,135,242, +45,109,245,68,215,130,93,63,226,108,164,219,85,68,189,38,95,111,176,26, +164,123,74,117,254,108,131,83,29,205,161,65,242,71,92,145,161,124,51,250, +254,27,178,60,75,235,16,123,250,195,51,65,74,178,213,54,65,243,10,232,14, +52,135,6,202,135,225,251,29,109,245,110,248,254,3,78,117,212,135,26,138, +71,92,158,163,67,75,123,120,55,58,126,142,18,193,215,207,52,29,100,235, +205,201,41,167,214,188,138,118,223,162,242,183,108,222,148,232,177,92,230, +80,126,74,198,222,97,203,183,172,179,21,221,254,29,221,169,134,63,12,100, +26,36,162,5,141,177,122,202,59,25,138,199,171,199,15,145,109,122,14,239, +62,199,110,32,193,157,161,207,72,108,15,60,31,60,102,245,192,186,204,57, +46,129,72,196,183,21,135,218,163,92,193,195,54,199,13,132,197,232,27,170, +231,134,152,63,242,225,199,53,133,30,225,94,58,9,188,40,2,135,195,110,216, +95,201,105,171,5,107,43,81,232,234,61,123,111,88,109,182,172,7,14,134,154, +189,63,243,12,210,102,37,219,247,10,54,23,26,165,26,109,53,74,34,238,189, +140,141,204,12,203,240,206,46,218,199,5,178,80,108,225,249,0,102,5,235, +50,189,95,227,249,43,18,195,112,253,154,213,102,195,186,116,103,37,51,185, +237,37,148,82,72,240,96,11,178,60,191,40,169,126,62,142,231,38,1,113,201, +25,221,168,247,223,101,163,94,227,103,110,144,133,175,125,95,221,115,29, +247,34,22,242,235,187,198,119,5,98,55,206,105,189,50,20,214,156,95,234, +190,75,132,39,163,33,6,124,239,233,186,142,168,44,69,145,96,86,181,20,190, +124,144,40,80,165,177,171,93,223,33,34,201,120,221,179,80,31,116,17,95, +144,16,146,193,195,31,9,50,119,99,33,47,144,45,238,189,222,227,161,19,44, +175,175,7,48,234,246,134,189,107,211,44,252,62,70,168,15,240,244,57,104, +66,114,138,33,130,17,120,86,160,222,194,202,166,228,239,112,128,86,96,179, +133,149,27,195,82,66,232,90,186,62,162,178,252,108,124,39,153,91,69,223, +246,96,182,24,163,145,40,128,39,118,7,250,161,29,83,135,10,223,43,204,106, +133,137,45,125,208,152,194,65,123,160,15,10,87,102,168,88,209,214,53,193, +131,46,182,137,148,215,212,4,47,96,82,223,111,212,131,88,76,52,88,227,233, +155,84,163,207,44,132,122,151,160,250,160,176,171,55,100,46,226,15,137, +201,159,175,87,137,224,214,85,116,117,141,152,45,133,19,124,93,227,69,145, +89,69,172,159,232,14,207,116,65,99,203,183,228,69,134,62,18,231,234,231, +4,127,175,50,136,45,62,128,49,224,155,134,128,34,51,138,80,61,211,85,207, +244,195,247,51,167,240,117,67,16,77,102,32,212,207,52,167,235,123,75,94, +228,201,9,246,251,209,250,41,100,80,36,147,232,233,187,154,0,88,227,206, +112,185,54,105,6,187,164,25,231,241,180,225,3,193,119,68,44,89,249,128, +203,92,154,227,238,91,14,187,39,222,237,61,174,220,242,248,118,67,97,135, +225,39,49,164,110,1,129,136,164,121,246,24,138,114,77,233,52,68,143,15, +66,240,45,245,174,166,195,241,80,88,116,20,208,16,67,71,181,63,80,55,1, +93,174,89,231,22,21,133,72,68,105,232,59,79,23,4,237,12,102,84,98,58,59, +78,25,180,58,34,218,229,228,206,44,6,248,49,4,218,106,207,190,234,49,171, +183,108,74,119,217,122,181,24,244,43,148,50,88,123,227,221,209,230,28,252, +223,67,249,30,65,182,50,8,217,132,30,234,61,116,192,67,1,106,16,183,57, +158,51,70,79,123,216,177,175,123,76,249,38,183,115,16,190,0,0,32,0,73,68, +65,84,93,191,220,201,234,151,64,87,87,180,189,34,219,110,40,236,157,9,217, +107,108,231,7,112,54,55,27,186,111,57,103,197,253,98,242,234,133,228,75, +125,64,255,113,43,65,84,119,216,223,151,154,244,95,242,165,242,193,124, +157,141,190,163,109,128,34,39,115,26,173,12,70,123,250,174,226,208,105, +180,181,100,121,73,225,92,122,193,110,101,145,175,140,84,68,82,75,156,239, +250,161,238,174,95,127,188,123,254,254,142,44,94,84,146,111,12,49,156,136, +102,183,34,210,187,229,188,228,6,91,98,174,47,30,35,62,198,225,252,119, +60,236,123,54,240,43,50,119,223,37,7,223,133,225,22,13,56,11,198,165,190, +220,220,166,114,71,59,64,243,249,106,38,198,49,20,21,125,87,209,5,176,197, +64,88,28,103,38,18,144,216,19,67,36,118,79,84,161,198,21,27,156,17,66,23, +48,110,141,82,129,216,43,76,81,162,164,167,15,10,147,231,72,191,163,169, +107,162,104,226,83,75,111,28,166,216,224,182,101,106,37,35,16,140,195,152, +134,190,123,166,238,15,104,87,166,76,63,119,168,48,180,107,249,150,238, +0,214,101,40,87,144,23,5,46,179,72,87,225,197,146,173,54,56,163,161,175, +241,109,3,102,67,81,174,81,170,73,108,229,208,211,237,159,9,214,161,76, +134,203,74,178,85,137,209,67,211,156,239,9,109,71,8,158,216,86,104,179, +193,101,25,74,218,225,251,29,221,254,25,227,28,202,228,184,188,32,47,11, +180,234,82,199,74,232,232,14,42,33,16,174,32,47,74,178,98,56,190,248,36, +218,18,194,176,126,21,174,120,36,47,138,228,31,148,6,105,233,118,159,165, +223,43,148,205,18,15,193,25,232,246,212,85,69,8,241,68,114,51,217,154,108, +253,94,18,250,25,178,235,190,111,168,154,30,76,78,185,202,201,140,6,17, +98,223,81,237,158,216,215,13,94,20,40,147,234,212,219,247,40,114,7,190, +225,249,249,153,125,221,17,100,104,27,84,158,253,147,130,135,45,43,23,105, +158,159,120,222,215,244,81,161,186,154,234,73,99,178,130,245,195,150,117, +145,165,185,220,6,170,195,251,124,182,74,40,154,45,54,60,62,172,41,50,147, +230,119,119,21,109,15,122,109,78,132,181,241,190,143,190,165,174,42,170, +198,99,86,143,108,214,35,254,199,53,61,229,123,208,198,123,127,119,229, +189,11,29,28,158,97,95,167,142,147,56,160,251,135,39,80,15,176,42,193,138, +16,67,71,93,85,212,77,192,148,143,108,214,5,86,223,103,213,5,240,205,129, +67,213,162,138,45,171,220,158,72,123,119,207,138,189,71,194,241,131,172, +201,75,118,236,53,190,229,154,194,203,107,2,1,184,79,8,224,90,177,95,94, +17,212,92,147,232,123,173,47,189,107,114,208,232,207,223,213,79,114,236, +25,62,205,94,63,194,117,195,4,10,115,84,155,82,159,71,84,180,176,184,125, +239,233,186,22,173,13,69,158,95,102,205,183,30,194,107,198,29,221,187,215, +142,173,38,90,221,108,221,184,59,82,147,251,95,164,201,249,149,122,185, +7,242,131,6,64,55,142,37,67,95,187,204,90,61,68,15,12,249,163,1,61,182, +196,153,65,130,118,156,57,197,142,234,221,251,60,53,194,234,241,45,219, +213,0,15,206,160,199,24,70,247,170,245,64,174,75,98,62,132,212,113,160, +116,194,214,163,239,241,237,158,62,128,205,55,216,204,160,228,216,235,62, +235,42,144,152,50,246,227,225,181,78,104,148,36,8,59,198,152,88,140,131, +134,174,146,128,40,139,214,113,184,38,157,206,11,41,227,141,2,35,145,25, +137,30,137,131,140,179,82,67,234,101,70,211,5,147,147,148,19,228,157,122, +182,101,96,54,75,136,231,41,221,106,160,84,170,148,97,39,230,187,31,36, +61,211,117,164,144,193,76,135,21,73,64,130,156,178,219,99,167,133,82,130, +132,115,63,254,105,125,205,192,142,143,195,253,159,134,36,13,107,48,219, +239,49,6,66,140,104,165,7,52,235,204,13,9,62,16,101,212,80,102,204,73,141, +142,209,24,227,201,254,214,58,145,68,135,126,246,56,127,111,181,194,88, +51,112,8,142,199,56,207,13,87,218,96,134,250,144,132,142,250,233,125,222, +53,66,249,240,134,135,117,106,139,83,67,171,152,111,235,164,100,135,35, +47,87,172,10,119,177,71,63,239,119,69,221,25,24,204,254,238,244,126,205, +157,130,78,232,142,146,145,18,31,142,188,44,89,151,217,205,225,41,23,65, +68,95,179,127,222,209,145,177,126,124,164,176,55,196,142,62,31,231,124, +79,214,125,71,109,254,102,64,241,210,104,66,117,231,241,63,168,221,190, +119,124,158,252,58,172,221,107,158,201,43,198,11,218,35,187,124,60,17,227, +196,166,157,215,169,228,133,77,124,45,91,94,114,104,81,104,155,26,109,109, +106,137,187,54,73,224,86,244,244,218,135,113,35,18,10,62,36,237,147,193, +25,188,106,163,188,22,22,90,136,218,142,231,63,25,186,215,212,240,185,243, +133,224,118,80,164,146,246,203,139,17,179,30,20,236,150,174,237,40,0,35, +49,65,193,106,241,111,12,198,113,49,149,65,31,49,89,109,38,186,227,177, +217,165,118,183,98,147,234,210,234,198,75,162,244,169,243,225,50,210,77, +206,118,98,241,212,177,125,110,32,85,78,246,135,78,215,52,94,35,237,38, +80,42,11,230,51,13,4,154,254,94,13,127,59,255,253,233,251,71,120,216,184, +23,65,33,165,12,202,46,253,81,130,227,47,78,113,84,85,210,230,162,59,101, +105,100,158,54,38,241,63,46,246,140,74,108,251,5,131,146,150,75,99,149, +190,177,15,103,223,95,250,153,31,99,246,142,203,113,127,73,10,2,245,105, +184,75,160,219,239,216,55,1,229,10,182,235,213,73,167,227,53,129,246,93, +25,210,189,89,255,44,91,83,10,172,227,10,97,45,208,239,159,217,181,17,92, +201,118,93,226,142,76,252,59,29,135,136,224,187,154,166,11,232,210,78,212, +238,238,66,54,239,177,241,47,217,145,57,50,114,143,227,188,53,252,226,158, +26,63,31,208,238,223,202,176,229,14,91,250,218,189,117,103,169,248,230, +57,238,93,199,35,159,228,38,140,204,141,135,119,15,92,124,21,14,30,212, +234,4,202,44,79,6,89,94,177,193,238,133,79,110,189,184,51,113,154,99,59, +154,112,99,104,198,189,250,187,183,238,127,1,154,31,159,255,110,104,235, +158,145,111,119,56,245,87,15,233,126,97,163,169,193,136,23,185,33,183,83, +125,247,87,73,73,1,168,128,111,107,130,36,161,26,151,217,161,179,225,142, +235,186,181,103,239,124,57,238,226,62,124,16,52,233,165,49,102,175,173, +215,189,20,232,222,51,195,247,181,131,236,95,130,27,95,203,15,185,243,187, +218,12,251,43,51,73,177,239,232,28,235,134,182,77,26,247,133,115,103,231, +118,143,65,124,9,42,94,186,230,123,13,177,112,199,96,242,116,253,77,167, +201,183,27,138,204,157,132,108,94,83,127,85,42,14,36,93,143,175,43,42,155, +97,87,67,91,221,189,137,216,61,186,188,75,239,198,75,14,82,184,61,61,138, +59,160,242,123,6,213,223,67,228,187,165,103,251,82,201,128,27,239,231,175, +3,15,234,3,19,17,175,236,49,181,235,118,242,121,25,165,15,0,5,135,16,168, +170,138,44,203,206,196,186,123,234,32,31,20,170,184,2,39,29,39,227,249, +16,210,200,196,123,56,0,47,189,172,175,168,167,28,97,121,31,3,90,233,211, +216,212,15,180,1,126,157,75,22,47,149,87,110,189,88,81,6,24,220,140,50, +144,123,144,136,133,127,79,167,177,141,198,97,126,190,211,26,94,66,155, +94,187,255,94,10,72,95,139,184,220,19,208,189,6,58,133,255,127,24,190,31, +212,86,220,123,61,11,207,32,14,178,184,106,40,157,168,97,159,136,168,161, +172,193,235,201,76,234,149,6,250,181,247,240,194,126,56,150,78,148,158, +105,81,170,215,5,104,18,194,73,114,248,36,56,244,26,251,206,43,215,232, +222,99,195,125,36,59,245,1,246,187,188,194,70,255,122,236,239,123,203,20, +175,68,145,127,221,222,197,49,106,180,235,119,242,98,150,247,65,140,255, +149,139,9,33,210,117,45,33,70,214,171,213,37,52,63,25,156,43,175,175,183, +220,50,146,48,153,34,115,82,162,83,115,1,90,121,57,200,120,13,9,231,202, +230,78,138,96,233,195,171,172,253,171,47,196,76,205,227,174,104,118,58, +155,83,102,195,10,94,222,188,106,52,243,81,94,222,176,87,215,106,38,210, +127,247,94,27,233,2,191,52,214,233,181,92,145,15,178,191,228,181,198,113, +180,224,243,62,27,121,97,77,95,11,51,203,108,173,23,246,255,189,168,204, +245,53,186,210,59,37,175,57,238,124,29,110,28,236,30,24,249,53,207,121, +178,118,55,244,74,63,240,243,94,250,247,21,205,215,207,7,73,99,225,250, +95,27,96,221,122,87,145,215,5,109,47,221,219,45,199,254,82,160,59,223,207, +159,215,251,125,227,11,87,175,93,77,184,82,23,211,185,174,5,100,50,239, +171,187,242,221,123,51,245,151,184,15,195,223,232,243,2,171,75,161,24,181, +112,115,87,67,5,110,51,198,135,26,81,219,117,9,154,207,139,211,204,249, +101,152,67,184,58,252,122,233,36,115,49,27,185,6,189,201,105,189,19,153, +40,140,250,52,229,54,28,119,173,6,53,49,210,55,54,253,236,227,232,195,73, +194,118,114,28,117,135,33,191,230,232,228,5,175,43,231,133,137,62,226,143, +172,186,123,216,255,167,123,150,209,200,62,206,202,56,114,5,150,100,118, +111,215,224,189,27,123,103,216,64,211,3,137,186,12,94,198,123,97,233,156, +199,107,157,175,247,82,32,52,121,25,95,153,97,203,66,52,167,132,69,182, +170,140,246,59,183,196,223,111,68,254,87,75,53,179,205,39,114,57,199,149, +23,144,10,212,29,146,92,87,222,139,227,115,90,122,23,230,196,158,249,188, +75,94,216,151,55,141,188,90,126,159,174,58,230,241,208,244,185,93,121,237, +243,158,7,226,47,216,181,123,32,241,165,247,104,2,93,203,109,24,90,177, +60,65,101,110,187,230,207,71,201,203,243,154,213,146,45,230,182,54,9,55, +236,3,179,239,79,108,138,220,94,15,238,248,76,93,73,228,212,220,150,169, +133,107,146,101,27,198,66,169,99,98,59,100,234,99,69,166,239,197,210,51, +24,175,169,186,113,131,178,96,87,135,223,233,73,182,44,87,30,212,204,57, +114,139,228,52,127,57,70,139,208,247,169,189,199,101,14,109,205,237,12, +108,108,248,38,117,16,181,28,93,46,57,232,23,240,113,61,168,113,41,173, +174,68,89,247,194,113,35,103,115,107,188,219,248,97,13,16,227,9,70,91,124, +41,174,57,150,177,113,152,109,194,139,44,90,22,13,181,160,82,61,211,216, +217,196,62,197,197,128,240,185,19,26,7,24,140,254,173,94,48,196,162,70, +153,134,58,95,143,82,247,207,87,84,234,60,0,96,254,5,81,163,96,245,138, +1,30,239,41,53,51,232,99,163,54,9,44,229,122,192,248,210,24,177,177,196, +149,204,3,149,165,253,37,215,131,105,53,70,2,230,14,236,134,198,172,204, +245,81,199,78,254,21,200,209,75,25,214,196,128,170,243,90,142,51,149,201, +58,168,75,71,175,110,5,231,55,214,120,142,52,77,39,61,45,24,234,37,27,55, +91,163,249,96,251,37,219,168,212,109,7,165,174,4,73,74,46,223,241,165,235, +187,22,73,201,194,6,186,112,196,227,224,74,93,216,227,169,189,146,229,160, +81,212,117,62,202,60,161,26,159,92,205,174,227,226,29,158,189,123,75,215, +181,52,12,97,105,3,136,122,57,72,184,30,205,95,38,39,147,214,7,181,60,41, +70,102,207,80,212,50,191,73,70,129,35,51,36,13,153,79,111,186,14,133,78, +38,154,169,105,224,192,181,160,237,148,193,207,36,135,38,184,173,90,32, +147,140,50,18,245,50,126,32,67,141,169,105,27,172,115,184,9,249,106,201, +49,168,235,78,127,62,211,85,189,16,109,95,177,119,62,248,217,4,166,113, +102,202,141,205,55,102,239,204,196,135,153,57,6,102,142,77,206,15,171,31, +206,47,115,3,189,180,142,243,99,77,132,142,101,234,232,47,36,113,213,116, +189,78,237,58,125,26,191,58,190,238,249,27,113,113,73,55,130,43,238,40, +213,40,185,156,159,43,179,103,122,143,60,214,18,196,61,222,15,50,139,172, +174,14,115,150,229,181,150,43,176,139,154,69,112,194,117,82,216,133,51, +27,27,44,117,49,144,232,122,154,163,166,1,12,243,76,112,28,152,206,12,186, +82,151,153,27,44,19,151,212,130,253,155,143,218,154,27,245,211,154,205, +130,5,145,5,131,180,228,92,102,6,244,98,191,142,207,121,3,5,144,27,112, +204,248,111,100,238,208,70,215,173,174,56,77,25,57,251,69,84,232,14,141, +86,152,194,202,147,0,71,46,209,139,121,26,190,164,254,165,102,239,213,133, +13,56,238,17,185,12,200,231,8,152,204,14,120,81,78,80,151,25,163,168,43, +54,91,174,160,72,51,167,55,14,50,39,251,139,43,61,227,243,141,172,206,129, +194,60,171,159,219,234,155,162,34,227,172,124,54,69,76,177,28,40,94,32, +182,115,214,182,154,33,138,11,23,119,147,16,45,163,32,126,172,201,174,46, +75,108,50,10,150,22,36,209,245,162,37,151,89,234,47,179,94,143,197,90,171, +90,134,107,134,155,111,219,22,141,74,82,158,147,172,68,93,102,230,106,102, +4,151,28,214,228,115,89,134,162,212,60,26,60,191,160,86,155,115,59,213, +45,232,251,184,193,231,217,221,252,197,83,55,176,109,53,22,136,79,253,203, +86,27,140,210,168,11,103,185,148,89,41,46,180,244,199,25,208,34,222,60, +139,240,228,156,185,43,210,84,60,125,26,224,51,50,52,243,141,46,87,178, +188,185,113,85,115,99,172,102,153,196,216,25,45,204,82,148,27,80,62,179, +140,2,181,16,81,207,12,211,24,113,80,51,132,69,102,198,113,41,178,56,26, +111,37,51,67,184,96,120,47,28,232,181,98,177,204,74,37,234,206,218,159, +154,193,147,115,99,50,239,65,85,231,235,151,217,59,125,114,118,11,86,84, +150,28,172,92,207,114,111,162,24,106,33,80,24,5,209,114,3,38,189,200,12, +231,215,177,0,123,143,131,63,153,237,197,9,4,175,150,199,127,93,4,115,114, +25,100,140,3,84,88,206,240,101,33,123,85,51,148,232,34,176,149,43,229,79, +153,6,3,215,28,130,112,253,89,202,236,61,92,122,247,230,208,243,82,0,42, +11,54,117,140,54,205,201,60,139,12,125,117,233,88,37,169,14,134,32,179, +192,65,45,140,113,59,38,35,145,24,67,34,38,202,13,184,122,242,53,185,156, +2,51,71,177,150,146,88,102,190,67,212,229,251,173,22,18,25,225,54,243,126, +9,137,80,179,189,41,50,69,236,100,244,187,165,103,56,127,254,40,108,140, +194,177,237,116,186,17,229,210,121,45,65,179,115,136,116,98,28,211,175, +251,174,39,132,72,86,142,102,129,139,204,54,133,204,74,5,87,138,101,19, +131,123,77,81,130,169,211,58,213,221,5,137,73,8,196,104,51,115,94,114,105, +60,150,40,219,75,100,156,209,236,233,169,33,149,139,136,50,198,36,20,114, +234,71,150,5,184,110,66,190,184,37,2,45,151,70,110,76,230,154,7,96,195, +152,210,16,227,121,172,174,204,158,221,181,193,203,50,67,118,228,74,198, +50,217,220,179,233,55,81,6,49,25,185,184,69,117,20,118,209,50,37,163,141, +137,125,106,14,89,205,102,45,74,146,109,149,16,79,207,65,6,121,83,140,30, +236,208,156,116,182,144,1,177,20,228,45,149,141,110,56,85,181,64,170,17, +25,148,236,18,203,57,73,204,14,108,240,185,83,144,91,125,90,227,247,75, +46,3,57,53,43,153,200,204,1,142,223,181,107,251,232,162,68,51,75,159,213, +236,190,151,174,85,141,20,94,38,25,237,216,217,202,20,133,152,163,104,99, +168,116,254,92,46,28,167,76,238,41,74,224,164,170,163,146,14,128,190,8, +142,153,149,39,153,18,124,213,149,218,254,104,221,100,144,253,37,30,197, +147,134,143,163,39,138,26,117,147,204,146,131,241,61,141,197,157,150,108, +142,146,233,127,145,75,219,37,163,242,203,216,190,46,69,209,106,254,2,202, +2,31,100,92,162,154,37,83,34,203,181,236,165,107,158,7,52,199,229,137,29, +109,221,210,182,130,93,149,20,69,26,37,172,4,124,24,222,103,192,152,52, +222,56,29,39,210,53,21,213,33,96,215,43,86,165,67,171,165,122,168,92,66, +1,178,48,160,157,107,164,211,151,36,231,22,124,29,11,201,240,197,36,26, +46,71,10,46,150,18,100,246,158,207,16,178,177,122,146,186,130,134,10,216, +221,161,161,40,211,16,25,37,179,218,238,24,202,18,150,217,139,243,13,50, +115,182,125,239,233,125,143,181,134,204,185,133,122,194,82,253,64,46,141, +193,5,204,38,139,117,237,75,242,202,249,193,168,65,33,204,216,227,116,165, +133,44,67,93,201,142,38,101,140,185,177,91,218,27,114,201,91,16,80,90,97, +230,211,239,100,110,156,184,253,178,45,109,202,201,115,144,203,192,96,248, +92,161,49,38,253,119,226,56,231,68,163,69,199,189,228,236,101,154,17,206, +179,176,225,188,18,3,177,234,104,246,61,190,139,103,251,169,147,1,52,171, +156,124,147,97,231,4,184,139,23,65,93,62,171,147,145,244,244,135,142,110, +239,9,65,206,2,54,185,35,127,116,184,92,79,141,142,154,7,88,146,164,108, +229,40,192,182,48,118,106,105,20,213,156,235,48,121,238,163,224,163,243, +116,207,45,93,237,7,7,15,202,90,178,135,12,183,25,4,96,36,73,38,163,213, +176,61,78,3,124,175,192,124,234,74,112,61,115,140,106,244,14,147,2,221, +36,126,163,70,65,207,44,136,82,178,0,53,42,110,78,106,97,206,53,80,139, +172,126,9,62,1,136,102,80,244,147,121,128,61,230,90,204,2,138,201,94,155, +5,245,68,36,120,66,95,211,55,21,125,239,17,52,58,91,83,172,54,232,204,76, +247,241,34,155,77,22,186,30,100,25,209,64,136,221,158,174,110,193,174,200, +86,43,140,138,196,254,64,187,223,227,99,65,190,221,146,229,110,121,80,56, +66,104,247,244,117,139,216,117,146,60,30,223,23,75,193,94,122,126,50,76, +189,84,44,56,124,181,80,22,154,215,150,231,182,99,105,70,170,44,5,181,11, +246,234,228,124,146,34,164,104,69,10,167,228,18,53,139,145,190,173,169, +234,6,79,70,177,90,165,145,195,64,223,9,77,5,85,5,157,7,149,193,195,131, +176,41,147,106,38,49,105,99,212,93,36,47,11,74,81,136,146,209,68,207,165, +18,222,124,126,54,151,9,162,90,42,53,200,66,176,58,43,81,45,149,79,149, +186,36,206,202,149,146,52,179,224,118,238,164,79,201,240,11,226,24,75,193, +167,18,172,34,142,88,220,115,199,160,46,107,45,147,197,82,151,228,138,209, +226,198,16,233,218,22,99,13,89,150,205,106,101,194,5,179,119,158,145,171, +153,67,81,11,68,184,107,132,165,113,80,160,4,34,137,49,175,192,40,179,156, +169,170,217,253,207,235,80,39,135,38,35,24,107,156,181,207,6,62,143,141, +90,20,66,8,163,217,243,179,123,188,6,205,93,64,150,114,25,29,206,179,184, +37,216,54,74,210,32,63,206,142,158,111,166,57,180,44,163,0,107,226,28,102, +40,134,204,72,100,243,44,248,24,92,105,141,89,21,20,206,226,15,13,93,167, +176,171,140,172,48,168,193,200,43,61,131,82,231,99,168,198,6,107,146,177, +42,8,66,168,59,250,14,236,182,160,44,204,8,109,84,40,163,46,179,151,121, +203,97,132,88,183,180,149,96,214,14,87,88,180,145,43,62,96,161,189,107, +206,226,87,147,230,109,252,161,35,40,67,254,5,37,198,8,161,106,105,247, +158,24,178,148,253,169,152,126,87,145,206,95,218,161,143,121,193,249,204, +107,243,106,150,193,205,3,177,145,179,136,93,154,190,167,178,18,87,148, +152,121,160,116,161,53,171,102,213,31,53,51,146,234,101,145,144,81,70,18, +135,233,127,42,31,102,213,155,209,24,90,145,133,114,221,232,188,147,64, +83,77,109,66,236,240,205,62,57,117,147,227,86,95,64,166,35,210,119,68,109, +209,102,224,20,95,236,221,217,187,42,215,208,176,209,245,9,64,64,124,53, +56,247,98,88,203,52,242,216,183,45,62,104,108,153,99,157,157,125,239,120, +95,41,16,232,170,14,92,137,43,114,140,86,179,76,124,86,10,139,145,216,31, +159,223,42,125,71,205,74,120,115,7,189,4,39,171,25,52,63,118,132,178,16, +148,45,58,174,25,114,21,3,125,253,204,83,21,113,171,45,235,50,75,51,34, +198,123,36,118,52,135,61,135,70,208,89,201,118,85,164,49,229,81,168,118, +112,232,20,54,135,135,183,208,31,96,215,41,226,40,33,20,132,24,133,168, +20,122,184,46,117,173,155,235,34,113,145,5,116,65,150,17,138,241,123,60, +175,161,43,181,96,7,103,239,132,90,34,110,207,108,214,220,246,138,92,225, +111,204,74,85,19,155,40,151,201,248,200,39,89,81,102,208,10,87,215,91,74, +152,195,122,234,210,153,206,35,95,84,154,41,175,210,148,56,173,244,52,251, +188,120,169,22,110,84,201,117,228,96,206,28,93,202,90,70,199,23,37,231, +41,109,50,35,89,141,157,212,139,229,128,25,121,106,14,15,205,9,30,163,158, +123,109,146,148,232,132,24,183,216,14,56,139,222,149,92,214,216,231,220, +135,107,218,1,195,53,9,17,109,135,204,125,206,118,93,12,210,100,118,111, +11,117,196,73,102,53,131,97,213,66,221,218,8,170,137,248,30,116,158,147, +111,29,90,31,97,206,163,22,251,81,71,94,161,172,158,242,53,162,16,99,152, +174,155,74,18,183,210,247,116,141,128,115,100,155,44,29,119,156,173,68, +73,80,106,28,217,27,61,56,254,144,160,243,216,118,116,187,142,160,93,26, +78,18,34,114,28,175,42,114,94,218,163,214,189,73,51,28,136,105,74,88,202, +186,101,36,58,146,94,64,165,33,84,29,125,15,122,147,225,74,131,18,143,15, +17,209,6,237,52,42,6,66,231,19,250,160,108,58,191,143,136,29,50,220,56, +178,249,62,137,186,160,83,39,196,37,202,33,151,65,81,244,196,40,72,95,209, +53,21,65,173,200,141,69,73,76,242,175,204,32,213,57,18,36,234,106,236,56, +69,249,230,165,188,97,61,66,42,77,137,175,232,154,154,160,138,225,252,199, +103,18,167,168,163,38,253,158,65,154,23,65,98,56,221,159,12,232,204,81, +135,159,80,211,86,7,66,208,152,242,13,206,185,65,250,88,129,201,134,227, +164,17,170,113,98,71,77,130,120,213,113,126,192,177,148,37,211,227,203, +17,249,8,39,114,174,248,154,174,169,136,106,69,81,150,40,9,164,75,180,216, +242,45,182,60,206,1,56,63,151,52,203,96,88,174,62,173,69,84,107,138,178, +76,147,1,131,79,211,21,213,236,250,36,16,37,34,254,64,87,55,4,85,146,27, +141,138,130,152,243,30,141,113,40,75,28,165,150,181,6,173,22,207,15,160, +180,29,161,153,75,8,205,57,34,144,161,238,45,113,56,182,213,167,172,58, +132,72,232,14,236,118,21,141,90,81,216,52,115,34,12,136,97,98,246,182,236, +158,118,212,222,80,108,211,248,94,51,236,237,195,78,168,59,200,55,194,186, +80,168,126,152,104,169,4,227,212,148,18,32,17,133,195,58,55,85,182,36,18, +125,36,146,102,84,232,139,142,135,5,114,172,186,130,20,207,73,152,44,248, +42,22,144,230,249,223,207,75,43,215,248,126,114,131,117,119,203,79,204, +17,231,73,32,44,88,231,236,89,193,109,9,134,156,183,229,44,214,29,185,120, +235,125,240,120,239,41,138,2,61,12,226,16,185,146,5,204,225,65,57,211,255, +46,122,118,133,97,88,200,82,125,124,129,249,57,24,230,224,125,170,59,107, +153,245,13,94,67,18,230,153,226,104,49,135,209,151,103,167,186,16,65,142, +54,136,32,132,232,19,114,112,145,89,169,75,230,122,228,178,253,137,145, +163,143,11,140,238,241,82,68,65,13,147,205,24,198,149,164,41,121,102,217, +161,95,237,233,148,101,164,32,206,122,65,199,193,204,69,192,53,122,60,125, +160,175,91,162,206,40,215,54,213,213,142,231,236,123,186,125,71,87,251, +100,36,181,37,123,91,144,175,13,42,70,98,235,233,118,45,125,23,137,33,57, +79,229,44,238,33,35,207,13,177,238,241,65,145,173,146,99,62,206,127,87, +90,33,93,79,247,220,226,149,130,62,18,251,136,40,131,123,91,146,23,16,15, +109,42,29,180,129,24,21,218,10,77,215,163,140,37,123,147,227,156,16,14, +29,93,175,48,38,18,154,64,8,160,203,130,98,107,160,73,89,183,125,83,144, +21,42,141,63,237,58,218,39,15,185,195,229,224,171,0,121,129,43,76,26,122, +51,56,124,83,58,84,219,82,189,235,241,109,36,70,208,54,210,116,93,130,239, +31,11,156,133,80,55,116,173,74,153,127,23,210,136,220,85,65,249,144,97, +220,108,255,197,209,94,81,130,248,150,110,255,62,93,219,18,66,64,48,104, +221,81,119,135,4,93,111,214,88,99,207,134,33,78,131,87,145,72,240,113,161, +135,58,233,254,235,197,193,6,199,119,38,166,243,31,222,209,53,195,249,213, +112,254,254,128,118,5,46,211,196,186,69,180,34,6,79,12,26,155,107,66,240, +8,43,138,77,142,234,246,180,253,112,255,190,39,244,1,229,214,148,219,45, +70,117,180,251,29,129,146,124,189,193,57,51,205,84,180,130,208,225,219, +154,174,174,240,125,72,92,13,20,166,124,75,89,56,164,127,166,237,192,232, +212,97,18,250,128,210,37,249,227,27,178,220,64,244,132,238,64,87,213,231, +14,28,17,200,31,89,149,25,210,60,209,212,21,62,8,42,127,195,106,179,198, +154,211,192,91,36,118,105,244,240,241,251,71,229,189,252,129,213,186,68, +19,240,85,149,174,47,132,164,181,47,26,83,188,161,40,44,177,121,166,107, +107,130,143,231,245,27,158,223,105,180,113,123,160,173,27,130,63,150,37, +54,148,219,7,220,17,85,232,14,180,85,77,8,30,68,163,108,78,182,121,36,115, +25,167,78,217,165,68,65,210,248,223,106,247,204,161,105,211,56,113,93,176, +121,239,13,219,76,211,87,239,120,218,85,52,77,71,47,26,235,34,239,127,182, +194,216,140,245,227,27,54,69,134,14,29,213,254,153,67,111,211,228,192,210, +166,225,85,17,218,61,236,42,69,249,6,86,153,224,91,168,159,97,223,128,123, +67,26,119,59,12,107,10,190,199,123,65,103,5,206,168,115,98,74,160,111,14, +60,253,218,142,206,172,120,243,118,75,153,155,244,249,18,25,109,92,30,85, +92,246,164,47,114,21,174,145,228,212,37,143,106,142,188,204,97,253,177, +63,21,185,36,251,45,149,198,175,42,146,205,120,73,35,219,107,93,110,83, +51,252,224,192,142,138,106,114,225,204,23,50,121,181,0,133,40,69,12,129, +174,109,177,198,224,50,55,217,44,193,7,224,72,50,83,23,173,120,33,36,226, +145,70,207,8,60,195,70,11,49,193,220,218,158,224,25,25,17,142,142,163,48, +141,213,103,198,53,146,250,189,73,226,50,162,84,114,182,106,134,211,139, +156,135,190,24,51,201,166,21,67,160,112,132,185,209,19,167,54,236,191,147, +33,60,13,236,25,214,202,154,84,251,11,62,14,215,99,102,109,83,199,50,194, +232,254,230,109,34,49,57,234,191,246,63,253,53,190,227,63,249,14,250,190, +95,236,250,248,153,159,255,217,33,152,56,111,24,99,82,229,63,132,148,5, +157,134,12,205,162,200,24,227,64,108,49,11,45,59,156,191,111,205,20,212, +57,150,193,251,81,25,66,72,19,206,0,66,196,31,90,250,94,99,183,14,155,159, +145,147,216,244,248,0,170,44,41,215,17,191,111,232,106,73,217,157,15,244, +251,142,174,19,76,81,176,218,10,253,174,163,247,10,247,144,147,229,10,234, +142,47,253,87,254,213,201,173,252,95,255,228,167,201,31,51,156,9,244,187, +134,174,10,232,237,138,236,173,70,14,13,109,125,204,96,52,166,116,100,49, +165,141,186,204,201,215,246,180,45,181,129,176,239,104,119,45,94,57,220, +67,142,221,6,186,125,63,108,175,72,104,3,17,139,182,58,77,160,107,122,218, +42,64,230,200,86,154,176,107,9,162,48,153,2,239,233,235,158,190,141,152, +117,226,29,168,232,81,73,219,23,93,102,228,219,19,75,3,101,32,238,91,218, +231,30,175,44,246,49,39,207,3,221,115,63,76,90,155,70,206,177,143,160,73, +153,155,28,245,22,28,182,88,17,131,160,92,142,91,63,144,74,209,234,228, +164,83,224,44,67,25,75,157,72,168,18,91,14,187,29,187,93,157,70,196,158, +202,30,134,108,181,229,225,97,67,97,142,40,193,177,12,165,176,90,15,143, +87,163,76,54,156,63,162,220,22,183,126,192,153,33,244,245,53,221,97,71, +215,130,45,221,96,15,21,74,105,180,202,80,214,162,66,77,219,212,132,88, +96,243,146,60,115,116,213,158,168,53,18,90,218,118,135,167,32,223,60,226, +236,140,131,35,158,216,28,104,219,22,49,5,217,230,67,228,210,209,215,59, +124,116,184,60,67,133,61,205,97,79,31,75,204,118,75,94,70,194,126,135,215, +22,109,32,214,59,186,166,69,108,65,246,240,33,242,216,226,171,61,189,88, +108,89,36,219,160,10,178,18,164,234,80,198,158,117,62,66,32,244,7,186,166, +65,76,137,123,248,16,121,236,232,171,103,188,56,108,185,66,199,3,77,213, +34,186,24,62,111,233,171,61,94,28,174,92,227,28,4,85,12,235,151,227,214, +91,156,78,8,14,34,136,63,208,238,43,188,94,145,109,190,128,156,134,126, +127,32,12,246,37,250,154,238,240,140,39,199,109,62,76,169,207,204,240,19, +194,112,33,238,115,116,128,169,230,221,120,208,235,183,188,183,241,52,187, +97,40,78,72,165,183,172,220,176,9,145,136,99,181,218,242,184,201,81,146, +178,110,227,44,132,158,186,122,166,242,138,98,243,192,166,176,167,201,165, +190,22,246,181,66,231,144,43,97,255,14,218,8,58,10,249,26,86,43,200,116, +18,73,35,70,124,219,209,41,75,86,230,228,118,116,189,177,167,169,27,186, +96,40,182,5,69,110,7,243,46,151,93,36,23,221,25,87,18,197,145,127,72,105, +210,217,102,29,121,15,115,157,247,73,107,252,34,25,117,90,194,84,39,52, +106,150,201,79,16,245,225,216,74,13,175,250,204,249,51,15,82,206,201,169, +181,243,155,86,199,139,30,7,48,87,224,7,57,143,105,60,90,122,9,49,189,76, +2,121,145,159,140,143,12,255,61,79,175,155,102,245,105,157,135,207,71,48, +136,26,28,168,200,113,116,173,62,109,236,121,77,68,13,142,75,29,9,76,128, +143,73,169,45,101,239,105,190,244,148,200,51,133,68,140,25,29,127,210,194, +39,131,227,30,29,127,180,86,199,251,48,86,79,94,148,163,82,158,30,198,114, +154,19,28,58,47,129,43,208,130,225,56,244,70,22,201,25,198,24,254,224,199, +255,32,183,126,204,8,22,244,33,5,84,122,88,215,227,250,169,1,217,56,3,0, +10,209,146,2,43,189,208,166,36,163,245,153,100,254,83,200,222,216,97,124, +235,169,140,175,32,70,66,221,225,91,65,175,114,242,66,79,3,67,99,134,113, +153,130,132,128,4,141,89,91,140,21,252,190,163,107,4,179,41,200,10,13,109, +135,40,141,221,100,100,185,134,190,167,237,47,89,176,235,15,229,40,34,161, +234,9,209,224,190,160,76,231,245,158,78,52,102,101,201,242,97,15,250,72, +232,4,85,228,228,27,55,100,196,194,223,253,225,191,203,31,250,79,255,16, +18,35,159,248,196,119,243,213,95,247,49,172,131,88,247,40,107,49,165,134, +222,19,34,152,210,98,36,208,239,18,137,80,21,25,174,208,80,53,244,85,135, +15,26,223,29,232,172,193,21,9,25,48,89,34,208,197,46,16,122,80,133,35,223, +58,140,29,158,7,66,172,59,186,58,160,138,156,213,54,195,90,136,181,7,103, +176,229,48,15,125,20,249,107,123,222,159,199,151,95,124,139,239,123,196, +174,201,203,245,48,110,87,141,90,245,207,194,67,39,126,200,48,94,55,68, +141,203,55,188,201,54,147,126,97,165,45,214,218,161,198,58,170,194,104, +115,70,143,142,146,200,161,197,183,30,49,107,138,114,141,201,28,90,34,49, +212,244,93,67,80,57,217,90,131,120,68,23,216,85,122,255,116,150,99,232, +232,235,22,229,182,172,86,107,140,17,124,189,3,149,106,183,161,169,18,220, +191,126,32,115,106,210,18,37,177,165,175,14,233,121,228,91,138,34,67,137, +167,175,187,228,144,87,37,58,84,180,117,11,217,27,214,235,53,214,8,190, +222,19,85,134,203,51,98,253,68,223,131,202,183,228,69,142,166,167,111,123, +162,206,201,202,45,153,179,72,244,68,169,233,106,143,46,54,228,101,129, +65,136,49,5,18,125,15,38,219,146,21,5,154,142,190,233,146,51,207,114,8, +123,218,78,206,199,151,158,190,239,17,157,147,21,91,92,166,145,80,225,219, +0,118,77,190,90,99,143,58,34,161,167,111,118,116,93,151,62,203,114,52,62, +173,181,45,201,202,21,154,150,190,221,211,123,65,151,89,42,83,106,195,68, +219,74,22,18,183,113,137,79,59,92,174,208,34,72,232,241,162,200,203,117, +34,198,41,240,190,163,237,4,83,108,120,216,174,200,236,217,190,74,240,52, +135,29,135,70,176,229,150,77,153,174,93,69,8,61,28,42,69,211,131,69,56, +212,10,87,10,171,94,104,59,69,190,130,210,157,48,16,124,91,113,168,123, +180,91,179,201,77,42,127,169,212,41,131,206,89,111,222,163,220,166,153, +30,106,222,78,58,225,108,170,145,237,190,236,196,153,148,91,135,46,27,25, +236,156,26,202,137,162,22,58,5,230,116,216,99,169,241,152,228,204,185,109, +234,146,15,120,60,201,249,87,114,201,83,20,53,58,146,26,133,23,151,218, +31,86,205,250,119,147,248,201,92,3,65,157,157,253,34,119,227,236,8,187, +174,37,198,72,150,231,201,209,92,148,44,212,52,144,144,89,123,175,154,18, +104,78,44,226,57,180,63,134,253,39,65,218,249,132,145,200,143,253,195,31, +227,111,252,208,95,231,147,159,252,36,63,255,153,159,167,239,123,222,188, +121,195,111,252,178,223,200,87,125,236,171,249,221,255,206,239,102,181, +42,249,103,63,253,207,248,230,127,247,155,1,248,19,223,243,39,249,157,95, +243,59,39,140,125,25,193,244,194,232,119,23,68,246,179,231,22,24,6,200, +76,217,201,178,208,86,120,138,19,79,95,63,71,142,199,50,128,44,245,33,95, +233,86,75,118,78,134,242,203,172,110,62,4,83,151,157,55,234,92,122,184, +104,195,86,179,142,153,243,245,255,224,95,249,65,190,253,15,124,219,85, +68,97,254,227,156,227,191,250,111,254,52,255,214,215,255,155,132,67,79, +123,232,9,97,32,16,5,133,89,231,20,43,139,9,61,117,19,136,202,226,12,196, +166,163,175,60,100,25,89,105,208,209,211,84,30,209,151,51,110,181,86,196, +67,79,95,7,40,10,178,149,69,7,79,91,123,188,104,178,149,197,88,5,253,80, +247,214,150,124,248,221,241,30,63,241,199,190,139,207,126,246,179,0,252, +23,255,229,247,240,117,223,244,111,164,151,109,85,98,74,80,70,232,159,210, +60,121,231,192,55,61,177,7,179,201,113,133,73,72,65,23,209,15,27,214,165, +73,4,172,129,76,168,6,222,139,116,29,253,206,39,242,221,218,157,224,118, +1,104,125,98,220,91,71,190,113,184,76,33,74,161,87,5,166,76,156,14,153, +25,99,197,113,182,194,240,60,253,129,174,58,16,200,112,229,154,44,51,201, +88,141,178,23,165,212,57,72,231,17,219,61,80,0,0,32,0,73,68,65,84,76,32, +235,154,138,231,167,103,154,62,30,71,38,164,181,205,74,54,15,143,201,161, +78,18,6,133,232,89,224,234,43,186,195,1,175,50,178,50,193,231,41,49,108, +232,155,134,40,5,89,14,49,244,136,90,145,153,64,244,61,98,11,12,158,208, +247,168,108,75,94,174,49,38,224,171,29,190,215,216,220,34,190,33,138,193, +149,27,92,102,71,21,69,149,8,119,85,133,247,10,179,122,36,203,29,202,55, +116,245,158,222,107,220,122,141,14,13,190,237,32,219,82,174,214,24,211, +211,31,42,188,55,216,85,6,125,139,247,26,179,90,167,161,88,190,166,173, +247,120,111,82,22,157,13,163,125,251,134,190,169,137,186,32,47,214,24,171, +145,216,226,171,3,222,107,108,185,33,203,92,66,34,234,61,62,88,220,42,135, +174,37,120,133,89,111,201,178,12,21,106,186,195,158,62,24,236,122,139,203, +29,170,63,208,86,7,60,142,172,92,227,156,29,248,8,61,125,253,76,115,56, +36,212,83,247,132,6,148,41,176,229,134,60,207,210,232,235,24,8,146,214, +215,63,191,79,44,54,20,155,45,78,153,211,12,14,78,179,56,134,253,57,88, +175,216,183,52,117,197,110,95,211,249,128,18,161,143,154,188,220,240,248, +80,144,59,141,116,123,14,251,138,78,229,108,55,37,185,29,143,63,142,248, +102,207,161,106,33,127,96,189,42,176,250,200,179,16,170,3,60,29,192,150, +176,121,84,228,14,186,131,162,106,64,175,160,44,132,35,55,86,186,138,253, +161,166,87,57,219,85,58,207,188,107,91,59,131,97,156,112,78,51,115,25,37, +115,114,68,172,69,141,238,121,90,167,159,84,29,79,110,233,76,234,155,53, +105,157,131,6,53,69,7,68,166,226,88,231,227,77,89,252,103,191,171,166,247, +112,12,48,150,80,251,73,194,175,102,93,209,10,181,235,247,151,4,251,83, +82,124,206,80,207,78,96,218,250,50,190,249,16,60,85,93,147,103,57,89,230, +70,70,71,70,142,229,8,119,140,140,194,34,223,107,65,225,105,66,228,148, +89,31,163,154,180,97,127,242,31,253,4,127,244,15,255,81,126,234,159,254, +212,77,103,243,230,237,27,62,241,221,159,224,47,253,247,127,137,159,248, +241,159,0,224,75,62,250,37,252,232,255,254,163,11,132,104,25,130,32,206, +196,171,185,194,155,28,209,202,4,87,106,173,7,65,153,121,213,100,20,131, +29,55,194,140,180,60,101,102,203,41,0,248,193,191,250,131,124,251,239,191, +238,80,63,245,203,159,66,98,210,218,63,158,95,198,47,241,124,147,169,105, +255,189,98,238,56,198,37,120,57,7,87,195,3,253,232,191,240,37,124,144,159, +255,251,159,252,83,130,114,228,91,139,86,49,101,235,94,147,63,100,56,43, +244,79,53,77,29,144,168,80,70,163,51,71,254,224,176,185,70,75,196,239,91, +234,94,147,111,50,190,244,163,191,97,114,236,159,251,204,207,208,61,213, +4,155,147,111,51,140,78,12,245,166,18,220,224,128,149,68,252,174,166,169, +21,246,33,167,88,141,56,10,49,240,47,127,241,151,142,74,26,134,159,249, +133,159,153,240,78,164,247,116,79,53,125,28,16,8,99,177,43,139,201,18,82, +208,191,107,240,110,64,5,204,140,144,118,44,91,236,107,154,131,194,189, +201,83,71,193,113,171,132,128,223,183,52,189,166,216,56,108,102,56,86,133, +166,28,203,27,68,209,208,209,29,62,71,23,50,242,245,22,231,220,172,235, +71,70,1,233,57,155,87,199,119,85,146,0,201,133,226,163,209,24,101,70,4, +167,41,234,119,218,75,177,167,59,252,26,93,200,79,231,87,64,12,13,125,253, +132,167,196,89,131,244,7,188,42,112,78,19,235,3,209,173,176,22,124,213, +160,242,117,98,138,75,192,183,123,186,46,162,139,18,43,13,205,190,69,149, +143,20,235,50,5,178,131,206,128,34,18,154,103,234,186,199,174,30,200,243, +108,40,5,60,211,7,71,182,217,98,233,233,170,6,149,173,113,101,137,81,129, +208,60,211,180,10,91,230,152,88,211,84,1,179,218,146,23,25,210,87,244,213, +158,62,88,178,205,195,48,5,83,16,223,208,29,158,8,102,67,86,148,88,163, +80,42,18,234,103,170,170,199,172,30,41,10,71,60,125,223,145,173,87,233, +248,117,192,174,31,200,50,135,248,154,190,218,141,142,159,65,236,232,15, +239,143,158,159,77,193,88,244,196,246,137,170,242,152,98,67,150,103,156, +42,53,218,12,173,115,163,228,36,122,98,87,211,30,118,4,189,166,220,108, +177,54,237,117,9,33,145,47,209,24,171,7,62,94,196,119,21,79,239,239,233, +84,201,118,91,144,209,83,87,21,251,206,176,121,220,178,41,51,116,232,105, +14,239,120,87,65,241,240,200,195,202,49,166,197,74,223,176,123,250,28,21, +37,15,143,15,148,206,156,182,167,111,224,221,231,160,115,194,219,55,138, +194,66,95,11,187,189,194,174,142,208,252,80,242,245,29,245,238,137,189, +119,108,54,9,57,56,159,37,14,101,85,115,66,135,47,236,235,56,27,30,69,164, +71,116,250,56,38,124,73,202,228,66,172,241,24,64,204,252,205,88,183,99, +222,108,52,69,71,212,25,121,152,152,132,81,242,55,35,129,207,105,97,183, +134,4,169,89,135,187,189,144,24,158,64,207,231,54,4,81,115,214,184,186, +208,57,104,218,6,163,116,218,156,12,209,209,209,100,168,115,22,44,99,111, +61,235,208,83,147,250,255,37,151,65,78,176,140,26,45,238,185,189,67,20, +124,255,127,247,253,252,169,239,250,238,75,195,180,240,243,238,253,119, +124,252,91,62,62,249,221,63,255,204,63,159,58,246,193,16,170,209,202,201, +92,179,157,89,2,132,96,135,178,128,90,80,25,77,27,65,102,65,230,20,98,153, +146,39,207,7,248,134,111,250,6,190,241,155,190,225,244,208,63,250,69,83, +7,123,236,107,214,218,160,181,154,118,209,169,105,73,99,18,84,12,61,165, +243,205,115,142,110,207,198,255,18,158,127,253,79,223,10,238,209,36,40, +126,215,210,238,5,243,38,195,21,16,222,53,120,111,200,222,75,81,191,168, +129,25,235,244,192,74,239,105,235,136,206,146,243,252,185,207,252,92,90, +107,157,240,191,254,169,198,139,197,149,25,198,166,108,184,175,34,42,115, +137,197,174,128,54,208,87,158,160,50,114,173,136,62,38,136,91,65,104,250, +147,115,63,114,15,212,40,176,77,96,71,36,120,240,93,192,108,29,102,155, +97,173,160,36,210,31,90,250,104,112,101,130,220,207,173,135,234,188,238, +62,208,31,60,1,71,166,85,18,232,81,73,20,37,180,61,109,19,49,171,28,151, +235,69,197,91,153,133,230,103,126,103,186,78,223,238,233,219,128,46,114, +236,17,157,59,117,5,140,140,209,188,253,239,180,181,13,198,77,35,127,117, +18,15,154,102,60,99,136,48,217,38,69,104,119,244,109,68,13,237,95,233,252, +30,223,236,8,193,98,202,12,105,118,120,201,112,107,71,172,247,4,149,227, +156,38,28,118,233,185,100,14,21,19,67,222,199,12,183,122,75,150,5,250,253, +142,224,3,86,4,21,2,81,58,124,31,81,202,145,233,142,190,62,16,40,201,140, +38,212,79,52,251,119,244,82,82,60,60,144,233,142,102,119,32,186,53,229, +106,133,86,66,168,158,168,155,30,83,188,37,183,158,230,185,34,80,226,140, +38,84,239,211,238,159,241,170,164,216,60,80,228,249,176,124,61,125,245, +46,241,74,10,135,132,6,31,45,214,120,186,250,64,80,37,206,42,124,245,62, +221,225,153,142,146,98,179,37,119,158,230,169,26,174,79,17,154,167,68,130, +100,69,185,125,32,47,114,148,72,42,233,116,1,157,231,216,209,123,140,248, +132,24,196,12,107,178,115,230,61,240,108,20,105,100,108,106,23,72,255,11, +190,69,200,18,218,49,160,40,202,87,188,123,255,29,207,59,161,124,239,45, +111,222,172,112,8,16,104,246,59,170,70,40,222,230,100,38,210,236,15,60, +61,123,242,183,27,214,171,212,179,78,236,168,170,134,158,21,107,147,246, +175,140,70,68,7,223,80,119,130,90,23,228,206,76,186,241,162,135,62,128, +201,83,95,79,53,144,234,178,53,60,110,57,163,140,177,167,222,61,177,107, +33,223,110,88,149,118,196,123,235,216,125,238,115,188,123,242,100,111,223, +242,222,155,21,246,132,116,170,203,198,175,35,42,58,100,196,243,6,41,53, +3,153,101,145,135,60,178,159,199,0,153,89,125,255,202,248,128,99,112,160, +212,44,105,134,51,154,61,35,241,169,113,240,44,215,103,36,141,81,227,19, +250,173,192,158,120,214,195,153,38,189,250,195,221,202,133,238,136,154, +233,161,8,125,223,19,131,176,46,203,11,1,26,37,87,224,104,150,166,90,158, +163,27,181,32,226,116,186,158,227,152,87,153,70,76,127,241,251,255,2,223, +253,159,255,73,62,159,159,24,227,180,141,113,20,144,28,77,216,185,68,127, +233,148,37,198,147,90,220,100,19,200,76,90,224,72,104,28,49,58,231,218, +55,19,18,253,188,52,126,69,81,46,72,106,249,57,169,229,77,178,62,53,235, +232,59,27,231,19,60,52,70,72,198,207,98,120,121,212,140,162,240,103,255, +219,255,250,213,16,253,247,124,215,159,72,170,84,207,21,161,26,248,9,27, +71,81,26,164,243,248,46,36,182,243,231,60,29,130,136,198,174,50,138,199, +12,77,32,12,68,53,186,10,127,72,10,98,118,149,145,111,18,20,31,189,194, +172,51,108,6,202,7,250,54,16,141,37,91,185,211,112,159,24,7,52,162,235, +104,126,213,163,11,139,219,102,88,3,190,95,86,183,58,173,89,140,244,141, +39,120,82,63,255,102,112,228,17,98,231,9,65,97,54,25,214,141,122,188,71, +66,141,74,82,63,175,210,10,213,245,52,159,13,232,194,146,61,228,88,45,248, +78,80,121,78,86,234,211,254,81,75,35,54,207,59,242,108,8,134,250,172,72, +64,98,196,87,159,35,118,5,118,245,64,150,229,24,51,67,47,103,205,18,140, +236,193,248,183,74,45,12,59,153,116,209,157,249,40,74,250,84,114,145,136, +84,159,227,208,23,216,98,141,211,129,224,53,38,95,161,98,119,10,194,240, +45,129,44,177,231,235,119,180,109,15,170,163,238,43,148,205,112,197,3,101, +86,164,178,138,68,180,206,48,182,199,87,239,115,104,12,58,95,145,149,107, +172,179,196,190,75,107,226,107,186,189,160,141,195,20,27,140,221,144,27, +193,183,45,98,75,242,85,137,81,145,208,39,102,189,46,30,201,115,151,68, +120,132,4,153,239,2,198,90,116,182,194,217,13,46,207,134,181,139,132,174, +165,239,60,49,42,124,125,64,151,27,172,115,136,79,66,70,42,212,180,187, +144,8,190,217,138,204,108,200,114,155,90,225,148,66,135,154,110,39,24,231, +48,249,150,194,110,134,228,8,136,62,241,81,98,164,175,62,71,232,11,92,249, +64,150,165,108,93,27,11,125,67,247,244,75,244,74,163,108,129,91,61,226, +172,16,155,103,154,166,73,251,91,20,202,58,116,182,162,120,92,97,141,73, +118,61,246,52,117,77,211,70,76,177,98,181,114,216,19,240,226,9,94,64,121, +154,119,191,134,119,6,165,52,217,102,203,195,58,199,14,42,140,49,14,38, +172,59,240,238,179,13,85,190,98,243,184,165,204,44,42,244,116,93,71,68, +147,25,61,179,241,169,75,202,90,104,107,248,213,22,92,9,15,111,21,69,198, +201,9,135,190,165,174,42,170,78,81,62,36,114,222,185,251,57,210,213,53, +213,161,193,155,140,149,203,206,196,84,46,69,48,39,26,63,162,46,26,184, +198,192,241,146,138,180,140,211,93,153,240,183,207,90,31,39,18,220,92,46, +224,76,126,155,119,88,95,112,252,102,218,80,71,199,63,31,244,42,179,1,64, +103,81,172,169,254,152,218,247,123,89,234,134,82,55,70,98,206,239,191,239, +123,218,182,197,25,71,86,230,23,186,1,19,189,140,5,238,216,69,159,191,186, +222,170,189,36,103,124,60,238,79,254,159,63,201,215,127,221,215,39,141, +226,209,207,111,254,242,223,204,239,249,189,191,135,127,253,183,252,22, +62,242,69,31,161,174,107,62,253,115,159,226,31,254,175,255,27,127,249,127, +252,1,126,246,103,126,246,18,230,254,165,79,79,85,82,111,204,29,151,25, +79,35,158,11,27,23,14,26,185,162,60,57,239,156,99,65,231,101,214,158,121, +188,164,121,6,255,115,191,248,169,1,77,88,40,113,204,59,57,230,16,212,172, +211,98,105,208,209,162,114,229,236,197,250,146,217,53,125,234,151,62,61, +105,187,73,146,173,35,217,122,149,12,183,111,122,186,67,64,23,73,232,69, +33,132,166,165,125,14,80,228,148,111,50,140,145,212,43,60,234,105,71,13, +204,113,77,106,83,59,102,168,58,17,122,226,17,238,50,179,114,131,151,115, +87,216,177,47,94,146,162,221,111,248,23,63,58,185,135,79,255,242,167,7, +3,145,72,131,221,62,32,198,145,189,73,228,183,179,36,64,250,190,50,106, +49,64,59,75,107,39,213,58,25,105,99,43,59,244,236,31,9,58,102,161,22,200, +229,51,96,38,191,144,238,33,57,216,100,88,146,6,131,90,210,217,152,235, +175,204,134,237,205,43,115,204,247,200,226,12,240,164,25,126,84,92,75,207, +66,163,73,207,70,13,58,3,199,1,26,34,17,241,13,190,57,164,26,116,185,193, +25,125,66,235,180,54,19,157,21,36,140,222,115,53,144,88,245,192,201,137, +136,140,55,215,208,84,127,236,167,79,162,5,39,116,75,145,228,171,25,214, +71,17,135,126,247,1,41,84,199,50,163,30,8,132,199,119,53,34,33,28,55,31, +74,235,161,155,117,248,62,199,250,238,81,199,62,181,20,202,232,248,40,53, +148,240,210,245,141,75,37,196,56,220,227,241,239,82,9,71,68,134,224,77, +78,228,228,227,243,69,13,122,1,147,102,255,212,207,63,213,119,151,84,34, +138,131,8,149,209,103,155,20,147,204,111,8,67,0,60,160,62,162,244,32,170, +51,92,99,140,132,24,134,190,250,225,249,26,141,22,136,161,101,255,238,115, +236,90,205,250,237,123,60,148,41,235,63,233,142,165,237,113,86,18,214,48, +52,230,128,68,250,182,226,176,175,241,58,103,181,90,83,230,230,212,206, +159,148,129,91,14,207,239,120,170,122,76,249,134,55,111,54,20,122,217,49, +207,187,172,231,106,203,23,66,173,106,65,47,103,46,255,34,215,207,117,209, +249,189,36,43,195,229,208,202,171,154,89,178,44,108,120,161,53,180,164, +97,180,31,106,240,147,225,100,75,51,131,89,86,100,13,33,208,212,13,198, +24,138,60,63,177,26,213,149,225,87,139,131,147,38,11,48,206,70,228,66,160, +231,124,131,3,236,63,114,250,223,244,245,223,196,39,255,209,39,39,199,252, +206,63,246,157,252,7,223,242,31,158,106,67,83,34,69,106,11,250,158,79,252, +41,254,252,247,253,249,17,65,75,243,179,191,248,115,203,193,206,200,161, +87,85,197,223,248,161,191,206,223,249,225,191,195,79,253,228,79,241,43, +255,239,175,128,130,47,252,194,47,228,203,126,211,151,241,53,95,251,53, +252,174,127,251,235,41,138,226,98,29,46,84,13,103,29,27,239,158,222,241, +67,127,229,7,249,145,191,255,35,252,244,255,243,211,252,234,175,254,42, +0,31,249,200,71,248,242,175,252,114,190,246,235,190,150,143,125,237,199, +112,206,93,56,211,159,253,133,159,69,27,179,184,195,143,107,217,247,158, +31,254,91,127,155,31,249,251,63,202,39,127,226,147,124,246,87,126,133,195, +254,192,155,55,111,248,240,23,126,152,175,248,215,190,130,175,254,216,87, +243,91,127,251,111,61,213,110,5,22,149,236,212,66,43,231,252,154,62,253, +203,159,158,74,13,204,131,131,65,104,166,121,234,240,218,146,109,51,156, +29,234,220,149,71,36,101,215,127,243,111,254,208,93,104,193,167,126,233, +211,179,253,117,126,163,151,100,215,149,130,191,247,191,252,61,62,241,199, +63,193,103,62,253,25,188,247,175,66,125,156,115,124,244,95,250,40,127,228, +143,255,17,126,199,87,253,142,233,156,136,5,99,208,251,192,223,254,159, +255,22,255,96,88,255,95,89,88,255,175,250,216,87,243,219,126,251,111,195, +57,59,43,234,141,170,138,75,131,208,102,58,67,87,199,161,95,104,144,95, +114,46,212,210,208,144,5,137,4,174,201,43,44,40,59,79,202,113,199,223,249, +134,174,218,209,139,197,21,3,41,109,18,136,158,37,73,167,231,28,106,154, +44,139,148,93,84,97,231,134,125,78,160,94,48,146,44,200,107,156,96,208, +81,187,176,90,88,108,89,232,148,186,0,98,230,1,243,2,145,155,165,9,198, +87,218,175,151,28,218,164,162,182,116,190,37,71,116,173,255,123,65,167, +108,190,95,98,104,217,63,189,99,223,105,214,143,143,108,139,140,129,38, +49,21,90,156,157,59,134,158,174,58,112,232,34,38,43,88,21,5,153,211,103, +252,44,68,186,174,165,173,14,212,157,96,87,27,182,235,50,245,196,47,236, +205,105,137,113,161,29,126,174,121,179,136,104,205,4,68,151,4,54,185,212, +9,91,74,12,231,201,224,164,219,109,161,214,126,70,75,213,136,51,35,23,58, +115,23,64,197,17,128,221,117,123,81,179,249,201,114,28,202,193,184,70,60, +56,222,211,38,73,87,127,56,28,0,69,89,20,35,41,200,9,176,119,110,91,185, +162,163,194,66,180,195,12,234,56,183,27,168,19,73,239,216,178,160,148,240, +143,127,226,31,243,141,191,235,27,39,139,249,29,223,249,159,241,173,31, +255,143,78,215,205,21,100,162,235,58,190,226,55,125,37,207,79,79,0,124, +241,151,124,49,63,250,99,255,224,210,177,15,23,238,125,224,47,254,249,191, +192,247,254,217,239,61,125,231,218,207,219,247,222,242,241,63,240,31,243, +205,255,254,55,39,18,200,140,193,49,105,119,24,178,174,63,247,189,127,142, +239,251,222,239,99,183,219,221,60,246,71,190,232,35,124,251,31,254,118, +190,237,247,127,219,140,100,247,233,73,61,254,204,252,76,231,251,203,255, +195,15,240,103,254,244,159,225,23,127,225,23,95,116,92,31,254,240,135,249, +150,143,127,43,223,252,251,254,189,20,52,92,43,187,207,158,225,69,6,63, +92,211,113,239,204,201,150,8,196,186,161,125,215,210,245,67,134,39,130, +42,50,242,117,134,203,13,218,94,30,247,218,207,49,219,94,82,91,76,48,155, +92,56,155,175,252,178,175,60,177,230,63,232,207,71,190,232,35,252,248,255, +241,227,211,247,96,182,54,63,240,202,245,255,214,143,127,43,191,247,247, +125,51,102,80,246,91,170,13,94,139,252,231,131,232,148,58,119,245,142,137, +38,23,156,214,133,108,230,210,214,207,232,76,114,61,160,89,66,220,206,6, +210,39,118,188,87,152,114,51,48,197,151,157,229,162,196,199,146,99,229, +54,250,117,106,227,82,50,157,221,52,55,202,87,166,245,170,49,7,226,56,208, +72,22,140,56,203,201,210,245,251,186,172,187,77,159,223,185,133,246,200, +225,81,75,72,226,210,90,47,106,155,76,222,194,75,21,228,89,75,184,200,44, +177,90,16,57,76,255,215,83,189,255,76,21,44,235,199,45,69,166,39,195,27, +39,151,116,58,182,231,255,163,237,187,227,109,171,170,115,191,177,218,94, +123,237,189,207,57,183,112,239,165,93,176,39,166,72,7,107,40,18,69,222, +139,52,5,131,137,5,75,44,40,214,151,216,130,209,196,103,162,81,19,163,162, +9,22,148,72,20,41,42,22,84,200,139,40,138,136,162,70,68,8,92,20,148,118, +207,57,187,172,190,214,120,127,204,85,230,156,107,174,115,49,154,243,251, +221,223,133,123,246,94,101,206,49,71,249,198,55,198,136,166,33,178,130, +224,142,135,24,184,78,19,181,139,114,214,8,179,233,12,179,176,196,32,24, +97,60,30,194,117,29,216,212,51,34,5,93,155,210,135,130,162,39,106,238,24, +124,238,163,30,73,103,74,90,107,226,58,181,219,165,161,234,78,142,222,24, +178,227,80,235,219,71,170,243,170,85,5,138,125,155,165,115,134,97,212,178, +62,43,3,82,78,190,22,172,44,19,205,5,130,225,80,52,52,144,123,3,51,235, +221,82,59,76,253,190,57,45,125,136,65,199,254,75,120,229,155,223,248,102, +156,255,161,243,155,223,31,118,248,97,184,248,242,139,141,105,133,214,179, +107,79,196,69,23,126,18,127,253,87,127,13,215,113,241,55,127,247,54,60, +233,132,63,148,38,146,181,13,12,86,87,87,241,194,179,94,136,111,125,243, +91,191,146,226,63,226,168,35,113,222,191,124,0,155,183,108,86,222,174,217, +120,6,214,214,215,241,146,23,188,24,95,255,127,95,255,181,140,204,46,201, +192,203,178,50,159,206,112,246,139,206,198,85,95,189,234,87,190,230,161, +135,29,138,15,127,226,195,88,94,90,86,36,77,110,136,68,82,100,223,141,224, +239,104,189,112,201,101,38,185,116,176,44,69,123,87,197,171,22,176,121, +29,129,28,248,64,13,124,149,18,96,125,110,3,186,48,91,125,112,15,123,212, +225,184,247,158,123,126,173,181,223,107,219,54,124,231,251,215,117,250, +80,128,8,179,217,20,103,255,217,175,179,254,31,193,242,242,146,57,115,166, +149,240,182,142,128,236,16,83,199,114,179,214,210,138,100,135,188,111,112, +28,247,31,80,211,122,247,208,6,84,110,67,69,48,108,72,169,122,196,197,134, +25,70,44,85,232,80,219,242,184,174,46,32,77,233,202,220,31,50,17,112,53, +29,87,107,245,250,252,179,6,209,246,181,34,239,116,241,5,20,37,175,4,41, +6,163,174,71,245,38,163,216,212,101,43,207,194,85,196,39,149,22,119,43, +164,165,251,72,205,89,244,200,212,148,123,150,175,211,215,217,90,18,132, +178,110,197,76,134,54,252,6,20,136,193,40,243,18,176,44,209,253,84,114, +40,80,65,247,121,46,90,43,91,54,53,233,2,245,25,116,99,42,7,152,212,174, +145,113,93,187,251,160,144,221,122,82,196,164,57,104,220,52,63,107,157, +39,234,51,230,61,136,142,58,68,81,94,3,125,127,12,19,5,37,71,207,130,68, +77,96,134,66,84,160,166,27,143,188,129,149,71,82,148,72,226,84,52,187,112, +157,182,225,191,172,12,26,86,121,11,143,115,135,108,167,61,40,107,227,127, +165,255,54,85,7,212,39,225,186,111,95,167,44,252,159,158,245,172,158,148, +57,73,10,136,27,37,119,250,51,78,199,247,111,186,17,215,255,240,122,60, +233,132,39,73,121,233,246,0,196,105,130,103,157,249,172,95,217,184,3,192, +183,175,253,22,254,244,25,127,138,40,138,58,9,9,64,160,8,207,123,214,89, +191,182,113,239,115,146,102,211,41,158,121,198,51,255,91,198,5,0,174,255, +206,245,120,241,243,95,220,52,238,129,100,52,136,13,163,133,141,161,10, +55,36,126,82,44,5,55,147,229,44,87,244,184,182,93,241,199,114,72,33,38, +190,231,125,255,160,148,123,245,222,141,228,174,107,146,28,74,50,46,27, +36,38,224,255,190,227,109,120,208,131,31,4,199,113,126,229,245,113,28,7, +15,125,216,67,241,119,239,250,91,181,64,167,186,213,116,186,142,103,158, +254,235,174,255,139,20,102,127,221,52,161,145,36,238,50,120,73,98,182,203, +13,59,196,127,87,235,206,164,184,156,114,79,43,146,148,1,201,195,132,170, +69,229,166,233,6,53,10,182,51,248,81,57,195,164,160,114,226,63,173,170, +39,58,41,227,200,169,169,58,160,14,255,64,174,90,145,187,121,81,53,179, +157,164,205,37,153,60,197,220,116,15,99,106,43,6,212,92,167,164,132,136, +37,120,91,29,5,170,143,140,87,39,13,215,79,173,58,82,104,156,139,154,28, +76,77,185,169,110,80,117,25,82,203,168,184,165,41,147,174,230,89,34,35, +179,212,229,154,180,241,232,237,187,113,181,206,181,65,233,52,82,97,73, +142,12,169,91,101,238,22,11,222,131,101,59,98,120,14,153,163,105,125,38, +21,177,5,203,177,91,227,174,99,220,100,193,113,29,184,78,197,5,96,72,242, +167,233,20,141,36,36,191,131,206,69,34,152,199,222,18,75,179,93,88,35,153, +106,228,55,150,6,175,145,196,131,145,123,196,52,68,101,166,142,188,232, +121,121,150,42,155,200,52,157,83,169,108,97,101,6,13,73,100,190,38,7,15, +165,245,30,36,111,77,13,69,184,106,82,144,36,49,202,130,49,12,124,88,21, +185,133,72,245,150,200,76,45,80,161,82,176,153,196,167,97,108,186,167,196, +18,172,93,150,5,14,122,228,65,152,174,79,155,223,127,235,123,223,194,142, +29,59,84,15,112,35,52,0,234,33,106,224,47,169,41,204,91,206,125,11,254, +249,188,15,117,32,248,231,60,239,185,56,254,15,159,136,3,31,252,32,48,51, +118,237,218,133,175,124,241,74,252,243,121,255,140,117,13,194,127,206,243, +158,131,115,223,242,230,54,226,168,132,225,205,111,252,43,156,255,161,127, +81,62,187,188,178,140,179,158,127,22,142,127,242,241,120,208,131,31,132, +146,25,187,110,219,133,47,93,241,69,124,248,95,62,140,245,181,245,13,163, +87,25,179,123,197,75,207,193,103,62,253,25,229,115,15,122,240,131,112,202, +105,167,224,152,227,142,193,142,125,118,96,121,105,25,235,211,41,238,254, +197,47,113,245,215,254,29,151,126,230,18,252,244,230,159,42,223,121,213, +255,121,21,94,246,138,151,55,76,107,146,66,12,25,141,56,96,239,110,14,222, +156,182,33,77,242,90,1,238,122,173,117,169,149,190,121,132,3,118,236,52, +163,24,82,57,140,202,51,237,202,146,62,160,232,128,189,77,215,52,250,220, +208,146,71,109,9,100,117,237,115,94,122,14,46,233,89,255,163,171,245,95, +89,94,193,250,218,26,238,254,197,221,184,250,170,254,245,63,251,156,151, +43,117,206,198,228,178,204,250,215,115,199,70,28,80,79,2,114,139,94,25, +203,53,12,212,32,45,25,217,217,171,122,157,180,118,158,109,235,39,234,104, +33,121,88,19,100,35,107,194,44,245,100,167,164,179,212,128,66,101,249,144, +33,149,211,24,132,14,206,15,205,148,202,122,78,214,85,50,54,213,149,25, +157,87,160,206,209,128,225,218,166,136,84,142,166,181,107,235,108,107,5, +50,86,207,82,211,244,69,171,6,34,121,157,89,211,187,77,249,52,43,209,175, +10,99,119,101,164,179,26,198,81,227,166,125,37,40,13,106,54,200,189,232, +112,184,204,237,218,152,28,167,218,35,166,46,143,132,53,232,93,234,28,97, +144,41,234,34,30,220,58,218,68,108,222,103,163,44,116,249,36,93,57,215, +210,232,194,192,47,184,187,80,82,151,185,170,219,143,140,211,69,113,132, +178,44,224,121,3,184,142,163,68,233,166,62,189,253,80,187,170,24,76,6,192, +108,133,37,210,76,85,234,244,160,125,14,84,234,222,255,235,231,255,5,91, +244,252,148,58,231,233,222,90,247,6,202,161,148,28,155,159,221,241,51,28, +253,152,163,21,242,213,161,135,29,138,243,206,63,15,91,247,218,170,78,169, +171,222,233,254,221,247,227,57,207,124,14,190,127,195,247,155,239,216,182, +141,171,191,113,53,246,223,121,64,227,121,223,246,95,183,225,184,199,31, +167,68,103,7,31,114,48,62,248,145,15,98,219,182,237,29,176,140,153,112, +247,221,191,196,243,158,117,22,126,240,253,31,24,32,250,59,36,99,75,184, +225,187,223,197,73,39,158,164,26,138,215,190,10,47,58,251,69,112,93,79, +205,75,75,121,153,60,47,112,222,251,206,195,223,189,237,111,155,181,29, +14,135,248,143,111,125,29,91,183,109,109,5,174,41,5,108,247,222,76,178, +211,103,27,119,29,63,117,253,217,144,3,165,14,251,21,204,157,102,59,187, +126,121,71,7,99,110,111,221,214,251,203,105,5,221,161,237,125,7,73,241, +169,138,10,82,183,171,246,231,134,235,111,232,89,255,23,75,4,70,5,91,18, +68,188,44,195,135,222,255,65,252,109,103,253,255,3,123,237,181,173,137, +12,201,100,220,140,73,96,244,100,28,169,59,178,153,180,253,168,122,90,16, +209,6,12,44,85,70,201,20,162,24,21,185,154,36,109,246,166,55,53,215,37, +251,161,91,137,223,99,16,213,188,141,137,176,102,98,63,211,158,130,3,13, +138,135,226,184,180,123,210,204,250,168,157,159,78,96,67,77,159,13,53,248, +81,146,89,173,166,85,116,27,180,245,111,219,132,147,86,70,195,26,192,219, +213,201,53,89,154,13,105,78,3,217,83,55,216,134,247,82,156,69,70,207,100, +66,192,56,252,75,210,25,13,210,220,33,151,116,155,182,182,159,229,126,153, +239,117,42,84,88,223,56,194,149,212,244,69,111,243,88,86,101,163,37,134, +74,231,74,151,75,160,199,54,118,131,42,163,140,50,96,153,147,225,66,217, +83,173,168,36,201,207,242,12,121,158,193,117,92,97,220,209,54,239,104,224, +79,110,5,156,152,186,184,33,168,203,2,98,82,21,156,158,236,80,134,224,8, +1,44,171,25,231,98,50,147,186,49,182,99,119,230,189,147,92,56,40,21,155, +179,12,21,115,213,4,129,85,143,237,147,159,184,72,49,238,251,237,191,31, +206,191,224,124,172,108,222,212,64,127,74,59,90,2,182,108,217,130,11,62, +121,1,246,217,119,159,230,123,69,81,224,162,11,47,146,186,199,18,62,125, +209,167,21,227,190,207,190,251,224,35,23,126,20,219,182,109,131,220,232, +187,134,130,136,24,59,118,236,192,199,46,252,24,118,236,189,195,152,8,109, +225,65,198,167,47,250,180,242,235,215,253,229,27,240,178,87,188,172,133, +186,213,41,191,205,91,59,142,141,151,156,253,18,188,225,220,55,52,223,141, +162,8,23,94,240,9,109,175,106,184,143,204,250,188,131,203,161,105,250,98, +156,81,220,97,11,81,11,61,213,80,179,52,172,129,168,71,253,146,10,241,145, +220,236,130,219,54,144,74,43,102,48,152,184,255,53,152,161,246,68,208,181, +60,171,7,177,218,95,249,231,245,111,122,125,181,254,14,160,229,232,154, +121,169,96,56,174,139,23,191,236,37,120,195,185,111,212,214,255,66,205, +153,214,58,108,212,71,140,213,166,202,220,155,204,97,101,222,130,210,221, +78,114,146,72,86,168,27,164,133,116,244,133,149,166,219,50,178,160,205, +148,104,160,103,25,82,38,117,82,51,208,211,72,132,13,244,111,89,142,168, +105,188,213,166,124,168,49,20,50,20,78,202,243,146,20,20,144,145,111,0, +25,238,175,191,193,178,194,23,103,86,38,51,55,157,204,148,113,225,114,168, +220,173,248,32,237,165,73,26,37,77,218,249,145,255,159,234,5,149,251,109, +212,72,10,43,7,95,206,237,72,121,124,168,240,60,235,131,42,8,42,64,68,154, +131,8,173,191,186,146,251,145,114,50,104,28,73,150,153,140,90,13,117,243, +62,144,13,162,164,176,185,77,143,144,162,3,244,82,17,57,16,53,143,132,37, +104,198,93,54,95,117,43,89,169,199,136,38,225,210,242,201,111,47,217,61, +125,80,43,201,154,85,183,141,218,26,215,122,94,122,95,69,1,16,73,17,188, +226,128,75,222,150,132,79,48,151,152,207,231,112,108,23,195,161,47,9,67, +79,61,5,27,10,14,117,152,196,16,153,179,66,218,210,163,239,246,90,92,117, +90,160,141,32,90,217,211,213,41,166,10,91,180,237,182,39,59,41,92,109,240, +137,199,159,136,31,254,224,135,205,53,223,241,238,119,226,180,167,159,90, +221,95,134,116,186,121,134,139,46,252,36,94,251,202,215,54,223,253,189, +71,253,30,62,247,165,207,55,55,127,202,19,159,130,31,253,240,71,205,239, +223,254,206,191,197,25,103,158,209,101,44,105,235,203,37,227,194,143,127, +2,175,123,237,235,122,222,93,124,231,184,199,31,135,91,126,122,11,126,83, +63,7,31,114,48,46,189,226,82,115,20,211,91,38,119,135,25,14,150,60,239, +75,62,115,9,206,121,241,203,1,0,255,240,254,127,192,83,79,126,170,26,201, +152,114,101,213,165,250,72,125,29,229,223,169,93,51,92,187,247,154,187, +186,121,36,3,108,171,135,38,255,51,235,127,89,55,26,209,11,117,213,62,203, +123,128,65,55,130,190,201,192,42,234,135,19,59,103,189,75,156,233,159,169, +192,100,78,31,48,186,70,195,148,215,211,83,123,50,252,169,65,217,29,214, +160,18,125,82,231,125,187,40,23,250,211,20,172,242,143,58,16,44,109,44, +123,29,104,26,134,158,133,250,251,152,144,148,13,114,204,102,154,23,12, +97,53,12,229,5,106,138,172,135,197,103,96,143,25,88,141,85,15,140,34,47, +65,142,84,239,174,123,113,157,154,63,54,140,171,222,160,236,193,232,146, +146,33,37,161,55,44,217,192,206,245,150,130,109,176,32,210,44,22,50,99, +248,102,215,185,119,108,109,159,76,180,83,215,161,207,22,39,38,141,31,85, +34,77,69,237,241,192,247,90,143,171,35,59,109,123,196,142,99,164,121,37, +138,251,194,164,148,227,41,14,94,39,23,69,40,171,38,11,245,61,117,226,213, +98,17,42,128,146,194,4,49,232,47,146,61,37,137,2,91,127,229,214,91,110, +85,174,127,244,177,127,32,70,187,74,23,32,89,8,165,155,28,123,252,113,202, +119,111,253,233,173,202,103,238,188,243,78,229,247,199,30,127,140,210,73, +206,244,83,191,255,177,79,60,118,15,230,128,30,80,57,214,175,242,115,199, +29,119,84,141,84,10,148,121,14,206,51,148,185,104,60,194,220,163,71,58, +74,131,219,25,187,101,142,50,79,241,26,169,220,239,85,47,123,149,234,201, +246,194,186,212,15,230,114,9,46,114,148,121,94,205,25,207,5,179,183,105, +109,163,199,157,61,165,29,6,178,160,34,203,123,96,117,252,143,172,191,254, +236,117,164,34,49,142,185,204,81,22,153,120,127,249,79,81,182,100,215,102, +31,197,140,116,245,60,147,161,205,150,20,109,54,247,72,165,251,84,141,79, +100,67,72,218,168,76,19,27,80,66,156,36,15,182,146,173,250,61,50,148,69, +110,232,136,197,90,68,168,229,156,59,93,122,186,185,95,146,239,77,232,34, +27,92,41,75,133,8,84,84,242,85,61,91,179,182,172,232,45,37,199,190,33,222, +175,141,251,84,76,58,25,234,4,169,43,7,42,244,216,237,5,177,167,126,170, +250,57,101,8,249,40,138,78,107,100,53,252,100,5,125,146,232,148,48,147, +111,169,33,8,150,69,130,112,62,197,116,125,129,56,47,13,228,204,122,202, +153,100,192,73,141,130,141,254,127,131,92,104,112,139,132,146,148,69,142, +60,207,144,103,25,242,162,144,146,22,164,178,57,251,130,88,162,30,189,33, +38,99,230,153,152,14,152,101,57,242,188,106,208,37,163,46,212,227,104,233, +147,116,100,187,169,246,137,238,216,110,249,29,29,19,100,161,28,134,122, +56,64,94,32,75,83,12,6,130,84,215,181,146,189,97,185,230,93,176,74,23,236, +204,200,149,148,185,226,145,169,145,31,17,193,169,115,236,0,182,238,181, +21,191,184,235,23,205,29,127,250,147,155,113,208,33,7,25,158,71,221,192, +150,48,82,231,145,13,17,79,85,18,40,255,44,45,45,193,169,122,63,179,41, +250,160,246,93,198,227,145,242,221,52,77,85,103,100,190,80,254,127,101, +101,83,231,240,182,108,6,110,244,142,99,219,216,178,101,139,193,164,171, +35,108,91,71,232,55,243,179,190,182,142,60,94,69,188,136,80,20,220,244, +118,166,193,4,195,209,18,92,215,218,32,97,89,119,194,96,49,113,43,139,145, +134,17,138,188,80,214,184,219,200,166,46,85,146,101,68,116,4,3,25,238,87, +36,98,218,86,156,136,150,176,213,240,116,203,13,224,141,198,112,61,79,202, +149,73,208,38,169,77,150,140,17,143,92,187,197,106,109,178,238,48,112,81, +254,143,172,191,57,129,89,59,202,25,138,120,134,56,138,196,152,88,46,1, +203,17,205,158,108,27,246,64,76,103,115,28,70,145,206,68,95,118,123,4,127, +60,134,87,245,41,112,209,151,8,0,0,32,0,73,68,65,84,111,85,2,171,68,173, +90,255,148,113,181,190,169,88,223,170,211,155,229,6,24,140,38,112,60,183, +75,94,51,230,60,161,228,47,155,88,55,143,145,69,107,72,226,12,101,147,175, +180,97,57,67,120,99,49,201,141,148,233,147,80,13,0,244,58,95,115,97,18, +23,121,53,218,143,186,35,67,245,22,211,141,110,36,233,249,82,148,77,185, +158,13,203,29,194,171,7,235,152,106,159,180,8,175,211,83,220,104,173,212, +84,67,23,9,128,193,40,153,28,138,46,82,219,205,77,203,127,151,149,124,132, +40,237,0,254,88,244,177,215,115,245,74,32,34,171,105,82,91,151,117,206, +71,89,117,172,91,196,40,237,1,134,75,1,124,215,150,176,23,209,206,89,116, +116,236,177,228,125,13,84,52,70,85,109,95,8,4,46,69,111,254,36,141,177, +152,71,72,178,28,176,28,120,193,50,150,39,65,53,103,190,123,182,148,142, +1,101,213,239,159,236,166,82,160,73,165,150,25,210,56,65,56,159,35,74,50, +20,96,144,237,194,15,86,176,52,246,225,89,38,167,153,212,119,161,30,232, +129,216,144,194,102,67,16,34,62,235,232,194,166,48,104,43,1,201,139,12, +105,154,192,118,156,42,82,38,205,24,27,224,23,5,50,163,174,7,34,229,110, +153,123,122,193,82,215,112,149,204,40,139,66,204,134,151,186,181,61,234, +160,71,41,6,254,83,23,125,26,7,29,114,240,134,170,90,46,59,105,31,75,77, +17,212,132,169,237,59,182,227,206,159,183,145,246,119,190,253,29,60,246, +9,143,51,36,201,168,3,43,93,127,221,119,149,187,110,219,190,77,57,124,91, +182,110,193,47,127,241,203,22,10,190,253,118,60,252,225,15,83,14,62,55, +236,75,81,95,42,116,181,131,93,187,238,232,137,31,91,101,186,125,251,14, +220,177,107,215,111,204,192,228,121,142,52,46,96,13,150,224,15,60,160,8, +145,132,33,138,254,240,29,114,45,41,151,41,242,120,142,44,205,192,206,16, +238,120,43,124,171,52,71,52,48,41,71,0,101,134,50,89,136,113,172,94,208, +249,106,26,205,145,101,22,220,96,43,92,207,110,97,74,178,218,46,127,29, +101,41,27,179,141,104,85,232,246,157,214,21,114,153,163,72,66,164,105,129, +109,219,182,225,103,119,252,236,55,186,254,42,220,167,114,21,64,54,108, +127,9,190,229,33,79,102,72,11,91,116,135,115,29,81,103,78,14,44,11,40,243, +4,121,156,160,100,7,238,96,0,199,177,219,50,186,14,66,42,193,190,69,44, +230,156,231,22,220,96,139,180,190,117,121,84,79,107,55,101,192,3,107,57, +80,73,81,21,149,124,20,54,188,209,178,152,95,143,186,140,75,191,62,52,199, +175,103,236,22,235,35,147,51,20,177,216,31,242,2,120,190,7,75,79,221,43, +25,8,169,57,85,145,34,139,196,243,185,163,189,224,122,78,91,212,70,86,101, +140,250,12,179,78,6,51,99,174,93,206,185,129,230,70,221,242,95,232,156, +118,157,201,167,143,51,133,220,139,66,133,166,57,79,145,199,213,72,222, +129,15,215,177,141,185,250,78,16,101,168,72,80,61,165,18,92,100,136,194, +5,194,148,225,12,70,152,4,67,184,54,218,58,245,234,252,36,205,254,12,96, +145,169,243,11,75,67,178,196,187,20,165,64,27,26,251,32,157,231,50,79,16, +47,230,152,199,25,216,29,34,88,222,138,101,42,197,89,176,173,170,21,176, +84,18,167,144,112,235,177,169,41,226,249,28,243,140,225,5,99,140,135,30, +236,106,21,139,52,196,98,54,71,84,56,240,135,75,216,186,210,58,122,150, +229,182,237,120,209,29,56,99,116,196,234,233,157,44,15,109,147,59,19,192, +24,0,215,239,236,160,75,209,232,120,90,73,156,192,146,90,209,182,240,151, +97,228,40,115,23,146,211,80,165,134,193,201,212,157,85,14,67,155,91,141, +212,98,217,182,74,172,34,224,41,255,251,41,248,226,21,95,108,254,233,95, +63,126,33,158,122,210,31,225,200,71,31,105,224,122,234,52,108,194,157,63, +191,19,47,60,235,5,184,243,231,119,226,157,239,249,123,28,247,196,99,20, +198,233,97,135,31,174,24,248,183,189,245,109,248,204,103,47,105,38,231, +233,10,190,30,50,147,166,41,222,246,150,191,81,222,227,240,35,14,87,150, +253,145,191,243,72,197,192,127,226,99,159,192,185,111,125,115,67,144,97, +141,5,106,89,117,31,109,198,5,31,249,88,143,25,106,223,243,200,71,31,161, +24,248,15,252,203,7,112,194,137,79,105,158,81,45,242,210,91,62,168,135, +170,76,86,17,71,57,200,29,193,27,250,176,45,66,89,132,0,219,112,60,15,150, +93,245,213,54,34,144,140,50,153,33,14,99,176,237,193,29,109,130,235,184, +162,135,183,193,49,40,139,42,138,39,49,21,15,36,96,47,230,18,156,206,17, +39,41,224,4,112,237,110,4,159,101,4,199,31,195,29,12,96,89,50,207,149,81, +230,57,200,105,149,50,202,12,12,187,170,132,200,81,150,22,44,203,64,73, +43,171,14,123,0,184,204,192,165,36,73,150,211,40,38,46,75,148,217,92,12, +76,113,134,56,226,200,35,20,3,255,190,15,253,19,78,120,242,147,69,143,117, +170,234,192,201,170,128,8,6,80,162,44,74,41,253,103,193,174,135,132,112, +14,102,11,84,22,194,161,98,17,57,146,35,154,131,112,157,121,163,18,101, +22,34,47,197,28,118,111,48,168,102,208,139,84,69,81,2,12,23,222,104,11, +220,177,184,191,24,57,218,190,127,89,150,98,43,45,11,86,213,231,28,92,32, +15,167,200,114,187,89,95,187,158,241,221,200,104,33,26,150,52,81,181,35, +80,191,106,20,41,23,37,96,219,213,64,156,58,66,115,197,153,46,115,100,225, +26,210,220,129,227,79,218,235,215,209,83,145,131,217,6,151,57,192,22,44, +27,98,30,58,137,62,232,92,22,40,89,122,126,70,101,116,45,16,19,202,50,23, +131,82,210,25,146,36,3,57,1,28,91,244,255,39,155,68,10,0,54,200,182,26, +249,231,60,3,91,245,144,162,2,121,184,142,44,183,170,231,243,43,89,169, +206,72,153,163,204,25,100,59,45,57,171,204,196,96,22,219,1,113,14,46,45, +88,118,53,166,149,117,167,179,68,153,151,32,219,6,202,66,90,31,71,170,74, +16,163,168,91,144,66,140,136,5,181,196,187,34,47,26,34,158,152,52,231,182, +83,204,80,136,32,129,235,85,181,196,245,235,251,151,181,96,59,240,198,91, +225,65,52,32,106,131,192,82,76,87,172,191,95,141,106,101,112,37,151,245, +250,87,159,97,27,228,90,13,94,81,230,17,214,215,22,40,172,1,252,113,128, +225,192,109,231,190,151,25,74,46,81,166,139,230,252,120,182,5,148,98,77, +100,20,165,181,39,146,113,79,35,76,215,231,200,172,1,198,203,99,248,118, +59,197,142,139,24,179,181,41,18,118,48,24,111,66,224,123,168,38,204,130, +61,15,3,136,105,148,92,228,200,155,25,10,22,28,199,170,82,82,57,242,92, +204,184,159,133,9,10,215,199,144,32,214,218,177,97,149,49,102,107,171,88, +20,3,76,150,39,24,13,29,216,146,126,5,215,250,85,140,184,173,199,12,128, +44,129,6,215,213,62,121,117,62,73,156,109,199,109,29,149,34,207,1,203,22, +122,176,146,6,203,118,171,51,82,241,9,74,241,125,112,3,209,75,204,191,166, +206,80,124,33,73,19,148,92,194,247,134,205,156,225,186,59,84,219,76,132, +140,57,43,83,254,152,155,49,178,80,234,147,149,242,12,160,211,34,136,0, +20,213,128,5,203,182,149,153,186,4,224,41,39,62,5,239,216,249,142,42,63, +41,216,234,207,253,211,231,226,93,239,125,23,254,240,73,199,43,174,57,73, +221,134,64,192,29,183,239,194,51,158,246,12,252,252,103,63,7,0,188,238, +181,127,129,107,175,191,86,113,78,78,127,198,211,113,217,37,45,177,236, +7,55,254,0,207,123,246,89,248,199,15,252,35,150,151,87,58,0,57,3,88,91, +91,195,203,94,116,182,66,206,3,128,83,79,63,85,121,254,19,78,124,10,190, +246,149,175,53,191,255,200,191,124,4,15,127,196,195,113,230,51,207,148, +214,136,80,150,66,41,212,202,254,99,31,185,0,31,61,255,163,102,218,140, +228,197,157,124,234,41,248,212,39,63,213,252,254,156,151,158,131,60,203, +241,71,39,253,145,26,93,75,92,7,150,39,20,85,53,221,101,186,64,18,197,40, +237,9,130,225,16,150,77,224,60,68,22,199,40,201,195,96,224,129,202,4,121, +188,48,24,235,28,156,45,144,132,33,216,25,193,31,14,171,25,32,149,18,179, +186,70,122,190,251,46,148,112,224,248,203,8,198,1,40,139,144,44,86,145, +166,98,210,86,9,27,150,157,25,239,71,142,15,199,177,42,131,40,140,19,149, +41,210,104,129,44,119,48,24,143,96,219,86,245,78,11,192,89,194,192,45,145, +71,115,164,133,5,219,46,171,40,189,53,244,119,223,243,75,108,223,182,13, +156,69,72,163,41,178,172,202,75,218,3,216,254,24,95,254,252,103,241,254, +247,126,0,247,220,123,31,222,252,166,215,226,9,71,63,30,150,149,226,201, +127,120,12,46,254,212,197,205,117,94,121,246,43,49,127,243,110,156,120, +202,105,8,70,1,154,14,198,92,2,101,130,60,9,17,135,17,184,44,80,192,129, +235,47,99,56,30,193,42,197,76,243,180,176,225,216,34,165,81,230,12,203, +155,96,184,188,84,141,11,5,128,12,121,60,67,150,22,176,131,21,184,190,7, +11,37,202,60,67,22,77,145,196,145,24,107,26,44,99,52,10,132,243,4,160,204, +67,164,225,28,121,97,193,178,10,228,105,138,162,36,216,131,37,12,39,99, +56,118,129,60,158,34,137,51,144,63,130,237,88,98,255,170,129,46,98,66,94, +130,60,153,35,9,19,148,101,142,18,54,28,127,5,193,56,128,141,28,89,56,69, +154,150,32,215,5,167,34,133,64,78,0,111,178,9,3,23,200,227,117,164,113, +14,248,227,234,250,25,24,14,96,229,98,111,162,20,176,25,69,146,3,100,195, +241,128,52,45,225,120,75,24,12,45,20,241,2,121,97,193,182,68,74,177,40, +1,123,176,140,225,100,4,187,136,27,249,17,40,160,45,70,190,70,182,24,163, +234,148,200,162,4,240,38,240,131,33,44,171,64,17,77,17,135,25,172,96,5, +254,192,66,17,79,145,198,41,224,111,18,149,58,101,14,134,45,250,172,23, +17,210,249,26,210,210,133,55,218,4,215,97,33,43,225,20,37,13,97,15,92,112, +26,162,40,109,195,250,142,224,88,5,242,112,134,36,45,96,87,235,147,53,235, +179,2,207,177,65,156,34,139,23,72,162,8,101,89,162,132,45,38,237,141,198, +176,108,70,89,166,200,227,5,210,40,174,56,66,36,210,38,227,37,184,142,45, +210,98,241,2,113,20,55,131,108,44,119,8,111,188,12,135,242,38,181,83,148, +54,220,96,5,195,209,176,74,201,10,231,174,44,82,20,73,136,56,140,133,179, +4,27,182,191,130,96,60,18,99,125,231,51,100,165,5,199,46,145,165,41,202, +162,149,79,199,182,81,166,17,230,179,57,82,12,176,180,52,174,32,249,106, +62,92,186,64,186,88,107,246,135,201,134,101,137,247,113,252,73,245,44,182, +18,189,178,150,194,100,46,81,102,17,18,148,240,210,0,158,111,137,81,201, +121,140,197,250,12,97,110,97,180,105,9,163,129,3,75,71,228,202,106,66,221, +124,138,69,44,28,21,215,31,97,101,211,4,62,50,132,243,53,172,207,19,164, +89,142,156,45,184,110,134,44,154,195,245,70,152,108,26,195,201,98,68,97, +142,210,27,194,178,160,149,48,138,218,128,50,75,16,69,11,204,102,177,112, +34,200,193,32,152,96,101,57,128,67,5,210,40,194,98,54,67,156,137,105,125, +182,23,96,105,243,18,130,129,141,60,156,98,190,8,145,147,131,50,78,144, +151,5,96,15,48,90,222,130,165,145,11,139,11,100,73,132,104,62,197,60,201, +81,148,150,96,209,247,113,44,203,34,199,98,17,194,27,120,24,12,6,77,212, +94,66,192,228,150,85,77,48,234,24,151,82,120,213,22,85,27,210,133,104,242, +162,132,93,79,96,234,253,190,136,84,155,205,44,219,54,131,69,81,192,166, +122,74,146,248,185,234,171,87,225,217,103,62,171,163,236,143,122,204,81, +56,237,244,167,225,208,195,14,197,246,29,219,225,185,46,238,191,239,126, +220,118,219,109,248,234,149,95,195,5,31,253,24,226,40,110,62,191,125,199, +118,124,227,59,223,132,101,81,51,114,149,1,252,241,211,158,129,107,254, +227,26,229,218,123,237,181,23,158,247,194,179,112,236,241,199,97,231,1, +7,52,117,237,95,253,202,215,240,225,15,157,223,233,109,126,228,163,143, +196,191,125,230,223,144,231,185,152,188,100,217,200,179,12,199,31,125,124, +103,170,221,19,142,126,2,206,56,243,12,28,124,200,193,216,107,175,189,80, +150,140,123,239,185,7,215,95,127,61,46,188,224,66,92,251,141,107,141,145, +242,174,95,236,66,94,237,143,101,9,207,249,217,207,124,182,226,68,0,192, +161,135,31,138,83,78,59,5,135,30,118,40,246,217,111,95,140,199,99,112,89, +98,58,157,226,151,191,248,37,126,254,243,59,113,251,109,183,227,39,55,221, +132,155,254,243,199,184,237,191,110,135,235,185,56,247,173,111,193,41,167, +62,21,92,230,200,195,221,136,18,130,23,4,176,57,17,144,167,27,224,183,30, +242,219,42,177,240,182,27,145,132,49,104,48,134,231,15,128,100,29,113,56, +71,94,16,44,127,5,65,224,227,33,59,31,166,126,231,246,239,35,153,135,192, +96,5,254,72,24,136,34,157,35,158,135,128,59,193,96,56,108,140,227,131,246, +123,136,242,221,27,191,127,141,80,76,206,16,254,104,9,174,3,228,225,110, +36,169,5,39,152,192,243,93,80,145,32,158,174,34,183,2,248,195,0,156,220, +143,104,145,0,246,16,222,120,140,199,29,249,120,220,123,207,125,205,53, +143,123,226,209,120,241,139,206,194,1,15,126,24,198,75,203,152,207,231, +184,245,167,183,224,27,223,184,22,151,92,124,9,238,144,210,37,59,118,236, +192,215,191,125,141,152,101,15,224,185,207,58,11,87,125,245,106,229,25, +15,57,244,16,156,250,244,83,113,232,97,135,98,223,125,182,193,119,24,81, +156,97,145,20,88,91,93,197,207,110,191,5,55,223,116,11,110,185,237,78,220, +242,211,159,226,246,219,110,131,227,56,248,139,215,189,22,39,63,237,100, +88,86,142,116,58,7,6,155,132,3,96,137,8,179,76,103,136,23,25,172,225,24, +158,63,132,77,181,225,45,5,98,144,206,17,37,128,51,89,130,239,251,34,114, +47,115,228,139,251,16,69,41,216,26,194,11,134,176,41,65,50,11,65,195,205, +24,6,62,144,79,17,77,103,200,243,178,154,92,86,231,220,199,112,28,70,25, +207,5,164,234,14,225,121,46,56,159,35,153,135,96,127,51,130,234,251,225, +250,28,5,17,220,96,5,174,109,161,140,86,197,156,244,209,4,14,47,16,78,167, +210,245,9,100,251,24,140,199,176,17,35,90,159,162,100,23,182,15,20,105, +1,34,15,142,203,200,115,27,238,112,8,171,20,239,13,219,199,32,24,194,162, +24,201,44,2,134,91,48,28,5,176,145,161,72,171,103,114,199,24,12,131,202, +175,36,129,120,68,107,136,50,7,131,209,18,60,151,80,166,51,68,243,24,150, +63,129,231,251,160,124,166,60,31,17,193,178,125,184,227,37,12,6,14,184, +72,144,206,215,144,99,132,129,239,161,76,231,200,10,192,25,140,224,58,22, +138,120,21,81,148,129,44,31,94,48,132,85,173,47,252,205,24,142,124,80,62, +69,180,54,71,110,89,98,244,171,109,161,168,214,39,24,141,96,229,115,196, +73,6,56,35,184,3,15,84,44,144,44,34,144,191,130,65,48,4,149,11,36,211,57, +74,103,12,207,247,27,100,5,182,152,196,135,98,129,120,54,71,105,171,191, +23,58,52,71,150,20,66,62,178,57,226,88,200,199,176,26,148,69,85,90,173, +222,95,215,115,129,102,127,183,32,24,122,40,163,123,17,74,231,199,182,178, +70,62,253,241,72,204,118,159,222,143,57,15,49,25,143,17,12,108,53,185,85, +102,40,211,57,162,234,124,123,254,16,34,43,64,194,25,179,160,113,158,218, +238,117,77,12,95,100,136,102,247,99,109,158,130,253,21,108,90,89,130,111, +229,72,103,187,113,127,72,24,47,47,99,60,180,5,194,84,161,93,182,107,131, +243,20,225,116,29,17,59,24,14,135,240,44,70,60,91,197,60,117,48,222,178, +9,147,129,141,50,75,17,205,86,177,30,219,24,45,79,48,26,136,148,133,101, +217,176,173,18,121,188,192,238,221,83,132,105,1,203,159,96,243,242,4,163, +97,5,209,151,5,210,197,26,86,23,25,104,48,198,100,232,195,181,25,12,145, +114,162,34,197,108,109,138,8,30,198,163,33,6,54,144,44,214,48,13,1,127, +243,38,76,188,18,139,251,238,199,60,99,184,227,77,152,248,14,202,104,13, +211,5,48,220,178,25,99,23,72,102,226,249,131,234,249,195,217,106,93,38, +103,102,105,39,73,130,178,200,49,26,141,218,90,210,134,224,199,109,75,60, +83,119,32,230,10,50,100,144,214,64,70,137,208,181,244,42,43,17,104,155, +183,173,91,164,58,142,211,220,223,162,110,123,129,119,253,221,223,227,221, +239,124,247,175,149,227,124,235,255,125,43,158,249,172,63,105,219,110,86, +121,239,187,238,186,11,39,157,120,210,127,123,32,201,214,173,91,113,217, +23,46,199,126,251,239,7,230,178,186,190,120,243,239,94,127,3,78,63,245, +233,72,226,228,55,150,171,117,93,23,239,252,135,119,226,169,39,159,132, +123,238,185,7,167,254,175,83,26,132,227,215,249,89,217,180,130,239,255, +232,122,228,241,28,105,18,227,115,87,124,13,175,251,243,55,34,203,114,252, +38,127,110,190,249,122,228,165,131,193,120,5,159,191,236,18,188,234,156, +215,60,224,153,243,27,174,201,123,222,129,167,62,245,201,72,194,25,242, +204,130,51,90,130,93,204,145,44,66,176,55,129,31,4,176,172,12,127,254,202, +63,199,69,23,93,250,223,186,207,150,173,91,113,195,15,191,219,40,163,123, +238,185,27,167,252,175,83,126,35,185,248,149,149,21,220,240,163,111,33, +15,103,34,21,49,217,138,129,43,16,128,34,153,35,141,99,148,246,88,160,30, +212,182,157,226,60,23,81,122,20,161,116,38,213,239,133,242,201,163,169, +64,87,188,37,248,129,47,162,215,112,29,73,230,192,29,175,192,101,241,189, +2,3,12,70,129,104,39,90,165,15,128,4,89,88,69,206,254,18,188,129,11,112, +130,60,92,71,146,64,164,98,40,66,18,78,145,22,3,12,70,75,24,120,14,202, +108,129,52,142,0,111,9,158,157,35,75,98,148,240,225,13,7,176,228,122,96, +78,197,164,185,220,130,237,186,64,25,163,96,87,12,223,225,18,76,62,28,43, +69,22,45,192,238,178,48,238,86,46,82,9,169,5,103,105,43,124,135,81,228, +17,178,40,66,201,46,220,201,18,156,166,30,171,4,167,130,71,82,218,99,248, +129,3,78,67,100,73,42,200,101,35,31,148,133,72,226,4,5,249,24,12,253,118, +192,73,3,175,11,110,66,58,159,33,207,185,106,187,60,132,235,7,176,44,70, +81,173,47,188,37,49,135,222,170,208,140,204,134,55,94,129,195,33,146,112, +138,172,240,224,141,150,48,240,92,129,120,197,2,241,114,145,32,77,114,192, +27,11,164,12,41,242,10,137,241,38,203,226,247,139,53,196,9,193,27,111,134, +231,201,105,145,234,217,22,107,72,18,130,59,222,12,223,115,26,88,95,24, +74,174,42,1,66,164,53,74,55,17,242,193,69,140,172,66,118,196,254,58,213, +254,78,145,164,128,59,92,129,93,206,145,134,33,202,230,252,228,149,124, +90,112,38,155,225,89,57,194,249,12,139,40,135,59,217,130,77,129,163,164, +108,9,34,242,206,162,8,57,187,240,170,253,105,73,136,34,109,85,143,63,6, +72,164,106,45,106,122,97,212,115,226,139,120,134,221,171,235,136,49,194, +242,242,4,3,142,48,159,133,200,189,37,108,94,114,145,133,51,172,175,47, +144,179,133,193,120,130,201,216,67,190,88,32,78,74,56,147,37,140,61,11, +156,197,152,207,230,72,40,192,202,150,101,248,84,34,139,230,152,206,67, +148,222,18,182,172,4,74,47,252,154,23,148,70,11,204,102,83,76,99,198,32, +152,96,105,121,5,129,83,34,13,103,88,68,41,120,48,193,202,36,128,99,53, +184,44,242,52,194,98,22,33,97,49,152,39,112,45,112,30,99,190,190,138,69, +58,192,104,211,24,118,50,71,152,20,112,199,43,24,251,46,168,140,177,88, +159,34,202,61,140,87,124,148,225,2,81,82,192,153,44,99,236,89,40,179,4, +139,217,12,180,200,22,220,105,38,200,64,156,36,40,139,2,222,160,234,86, +135,158,146,86,115,133,38,160,100,117,105,227,177,149,198,235,170,206,2, +73,169,128,190,239,212,127,191,251,29,239,194,187,222,241,174,255,150,242, +60,231,85,231,224,21,175,121,165,122,159,122,112,14,17,254,235,150,91,241, +236,103,62,27,187,110,255,213,72,107,7,28,120,0,206,255,216,249,120,232, +195,31,214,229,47,85,63,87,95,253,239,120,201,243,95,188,199,41,114,191, +234,207,174,95,222,1,130,232,198,119,214,179,206,194,77,63,190,233,215, +186,222,239,254,222,35,113,201,165,159,64,158,49,44,219,193,35,30,246,251, +248,159,248,185,249,182,155,225,14,60,216,4,236,220,251,192,223,232,181, +127,242,147,235,43,248,127,8,43,143,145,166,105,197,43,24,194,70,138,44, +10,241,243,59,239,197,73,79,125,26,214,214,214,126,101,39,226,189,31,120, +47,78,56,241,4,137,43,83,98,215,45,55,225,121,103,189,20,55,223,124,203, +175,189,254,151,94,114,161,80,184,195,64,84,4,112,137,34,153,33,137,99, +192,30,97,48,12,4,196,45,161,98,101,50,67,26,39,40,157,0,3,191,250,61,231, +200,163,25,178,36,3,220,49,6,195,1,44,202,145,133,11,100,57,224,248,1,108, +202,132,49,33,31,222,112,4,87,98,58,35,143,144,134,139,10,242,23,99,94, +81,38,200,194,25,178,140,97,249,99,184,150,184,94,78,30,188,234,51,84,5, +17,224,18,69,42,210,60,112,71,240,252,0,142,67,45,168,153,137,223,229,112, +96,219,149,147,98,13,224,82,142,188,40,0,103,0,187,204,81,228,25,224,140, +225,13,125,88,148,33,15,23,200,115,192,30,142,5,163,63,155,35,137,162,202, +64,143,224,184,118,155,142,42,83,100,139,25,178,194,129,227,187,160,50, +69,145,149,128,59,130,59,112,129,108,142,52,78,0,39,168,158,207,234,50, +70,202,172,130,198,23,40,104,0,111,180,4,207,115,97,161,16,132,196,36,3, +185,99,184,213,250,214,207,103,13,3,56,200,144,45,22,200,45,177,62,98,63, +171,153,239,69,130,60,154,35,137,98,20,53,159,128,8,150,235,195,245,199, +112,106,142,66,30,35,13,215,144,68,89,149,22,153,192,31,85,105,14,48,56, +143,145,134,235,72,226,20,204,54,108,127,130,225,104,44,210,88,16,228,221, +34,153,137,116,155,19,96,224,143,224,56,132,50,139,196,59,149,14,220,160, +90,203,50,65,22,206,145,102,12,103,16,128,56,69,145,165,237,250,35,69,30, +133,200,10,11,206,112,4,199,177,144,45,214,49,13,51,88,254,18,150,198,21, +161,78,34,87,113,207,254,176,152,61,139,52,90,96,58,91,32,206,68,74,200, +241,2,140,39,19,4,190,11,167,238,232,200,37,178,44,66,180,8,49,15,51,192, +11,48,9,28,100,243,25,98,12,48,89,89,198,104,96,129,179,4,243,233,12,113, +110,99,56,26,128,211,16,211,121,132,156,33,80,229,234,177,108,47,192,120, +121,9,193,192,1,37,115,172,207,66,100,150,143,201,100,140,161,103,119,116, +56,87,28,140,44,154,99,109,125,142,220,25,99,121,121,4,43,155,35,140,114, +88,195,49,70,193,16,174,213,82,188,203,76,112,6,98,118,49,90,154,96,52, +112,64,101,142,120,49,197,34,46,97,15,71,240,56,70,28,23,176,135,19,140, +130,1,108,164,8,103,83,44,98,192,27,14,64,121,132,121,245,252,117,133,27, +1,176,188,0,6,42,145,32,134,21,121,14,215,117,55,52,238,164,113,239,141, +117,142,6,227,142,158,255,55,20,178,137,60,83,81,180,131,49,176,231,137, +115,175,120,245,43,240,169,75,63,141,67,14,61,228,1,43,205,7,63,228,193, +248,200,39,62,138,87,188,230,149,202,179,148,101,41,20,73,117,255,135,60, +244,33,184,226,43,95,192,11,254,236,5,85,218,98,227,159,129,63,192,11,94, +244,66,92,241,149,47,224,97,149,113,55,181,63,96,0,71,31,253,7,248,226, +87,191,136,163,143,61,250,1,61,243,126,251,239,135,15,125,228,67,123,252, +92,189,102,251,237,220,31,159,253,226,231,240,226,179,95,140,32,8,126,101, +195,178,105,243,38,156,249,204,211,241,129,247,189,19,89,78,130,96,68,5, +254,167,126,188,97,53,231,32,143,126,227,215,206,10,11,174,63,132,85,38, +200,178,28,214,96,130,65,16,192,70,138,52,94,32,43,44,236,123,224,129,184, +224,19,231,97,95,169,19,225,70,63,227,241,24,103,156,249,12,92,245,245, +171,20,227,46,200,63,115,108,223,107,43,46,190,244,98,252,217,75,94,244, +223,94,255,103,254,201,51,112,222,7,223,141,180,176,224,248,35,184,158, +7,11,140,50,93,8,35,105,5,24,12,133,17,146,138,206,80,164,181,145,26,97, +224,15,97,219,4,66,129,60,94,32,75,11,208,96,130,65,224,195,226,20,105, +56,71,154,3,182,47,96,237,44,10,145,91,67,12,2,81,70,215,156,207,50,69, +30,135,72,75,27,246,112,12,207,115,128,60,66,22,206,145,101,4,123,56,129, +107,23,200,227,16,165,53,128,31,44,193,243,188,86,115,88,34,82,201,147, +24,108,11,227,105,59,86,83,65,205,105,136,44,14,81,144,39,136,148,69,6, +182,60,56,86,69,148,180,7,176,81,162,204,11,88,222,4,94,224,195,226,4,121, +56,71,150,3,150,47,160,108,43,15,145,70,11,228,112,21,7,165,6,119,139,52, +66,158,87,228,180,44,70,193,14,236,96,25,131,225,0,84,113,76,216,26,74, +207,39,19,209,11,148,233,28,201,124,13,89,154,0,182,3,219,27,194,118,92, +88,84,34,147,214,215,171,214,55,147,158,207,161,28,121,28,162,176,253,102, +125,172,42,152,176,80,162,76,34,164,185,5,103,178,23,38,91,247,193,210, +150,29,152,108,222,142,209,242,102,120,67,191,138,114,9,112,124,81,141, +50,25,11,210,160,86,224,69,142,143,193,120,11,134,99,241,123,185,120,144, +1,145,78,136,19,97,164,253,0,182,77,64,41,242,237,121,181,191,142,178,191, +16,206,49,50,148,89,14,242,38,240,130,33,28,136,156,185,56,95,35,184,158, +3,78,35,132,97,130,210,25,98,20,248,112,109,165,243,1,56,23,60,152,2,174, +230,124,85,29,10,44,193,145,88,217,178,23,118,236,216,129,189,183,111,199, +94,91,68,36,107,19,192,101,137,34,141,49,159,174,98,247,90,136,212,26,97, +211,214,109,216,182,121,12,135,19,36,89,9,203,245,225,57,54,44,48,178,52, +69,158,91,24,12,125,88,101,138,56,41,225,47,109,193,246,189,247,193,222, +59,118,96,251,142,29,216,177,99,111,108,219,186,9,19,223,133,93,36,8,23, +33,146,210,129,31,4,141,113,55,218,180,50,71,154,166,200,224,194,15,124, +216,101,130,112,17,33,167,1,252,129,47,25,119,225,20,70,139,5,162,20,112, +135,1,134,158,3,148,25,146,112,134,121,152,139,234,1,202,145,198,194,89, +25,14,7,112,144,34,90,204,17,197,12,111,56,132,139,12,73,82,98,80,61,255, +142,29,59,170,63,123,99,251,214,77,34,130,151,227,240,178,44,49,95,44,224, +121,30,60,207,147,32,62,181,175,124,79,49,74,111,123,225,141,34,118,185, +197,175,238,17,213,121,247,22,130,233,235,15,68,157,130,27,2,112,227,247, +111,196,151,174,248,18,174,187,238,58,220,250,211,91,177,190,190,142,162, +40,48,158,140,177,115,231,78,28,114,216,33,56,254,15,143,199,99,159,240, +184,42,95,173,86,168,150,210,253,245,237,188,239,254,251,112,249,37,151, +225,234,175,93,141,155,126,124,19,238,191,239,126,1,197,239,181,21,191, +253,200,223,198,209,199,30,141,167,158,252,84,108,218,180,201,128,117,116, +43,55,229,191,127,252,159,63,198,231,47,255,28,174,253,230,181,216,117, +219,46,17,69,18,97,219,182,189,112,240,33,7,227,201,79,121,50,78,56,241, +4,56,142,131,157,90,23,63,57,146,124,199,123,222,137,147,78,57,169,179, +55,179,217,12,159,189,236,115,184,246,155,223,196,15,111,252,33,238,187, +239,62,204,166,51,56,174,131,241,120,140,229,229,37,236,220,127,111,28, +112,192,129,120,232,195,31,129,131,15,61,8,15,127,240,190,130,49,234,141, +49,240,125,88,69,136,104,62,199,229,95,248,119,188,225,47,222,248,107,195, +231,250,207,29,191,188,163,201,243,127,250,226,47,224,13,111,248,171,95, +31,162,119,28,252,213,91,207,197,105,103,60,29,14,71,136,195,12,52,20,57, +86,11,57,138,197,42,226,194,134,55,156,136,188,253,98,21,187,215,99,124, +241,202,171,112,213,87,175,18,251,124,255,110,112,89,98,219,246,109,216, +185,115,127,28,118,200,239,226,81,7,29,140,35,30,251,56,76,38,19,145,159, +181,36,104,188,136,144,78,87,145,209,16,222,96,8,2,176,8,23,248,252,229, +151,225,27,215,92,139,255,252,207,155,177,123,247,42,102,179,25,28,199, +193,104,52,194,242,202,50,14,216,185,47,14,60,224,0,60,248,17,143,192,161, +135,31,142,71,254,246,67,81,70,107,72,10,7,238,80,212,130,91,4,112,30,34, +154,78,69,238,53,16,249,94,217,189,46,139,8,201,116,21,5,13,225,86,247, +39,199,6,149,17,210,69,12,118,135,162,26,132,171,178,57,26,194,29,86,57, +248,234,186,131,96,212,56,13,130,120,89,136,26,233,185,200,249,14,134,3, +16,39,200,162,24,5,6,240,134,35,56,118,142,124,49,69,110,5,66,217,235,253, +17,242,5,226,233,122,131,12,56,142,136,78,201,178,129,50,21,249,108,107, +8,215,181,80,68,17,216,245,225,186,132,44,140,0,215,23,68,195,48,1,60,241, +252,196,9,210,56,1,211,16,222,48,128,227,216,2,161,8,119,35,78,24,142,95, +87,19,212,251,67,130,155,48,187,15,73,78,128,53,132,231,251,112,171,138, +3,228,17,226,233,26,114,242,225,14,199,112,28,170,158,207,129,133,2,69, +46,250,13,100,5,193,30,4,130,88,54,95,160,116,71,240,131,33,168,152,35, +154,197,205,243,129,19,100,113,10,38,191,90,223,12,217,98,138,210,10,132, +179,166,172,15,3,217,28,241,108,138,140,2,177,175,118,123,127,81,177,33, +154,75,181,193,136,32,125,21,240,42,210,32,68,191,137,6,101,200,145,70, +51,20,16,149,21,174,235,136,178,171,74,62,50,12,133,211,11,136,106,24,142, +145,204,231,40,170,253,181,57,17,228,61,12,4,210,85,134,136,195,76,56,119, +254,16,132,28,197,98,55,226,194,17,231,199,115,65,92,34,89,172,98,247,44, +199,96,105,19,86,70,3,101,198,187,168,154,216,141,168,217,31,15,150,229, +52,213,42,123,66,125,57,79,176,152,174,35,202,74,144,63,66,48,28,194,119, +68,213,13,151,57,226,233,110,172,205,98,208,112,25,75,99,31,54,167,8,167, +33,202,193,24,227,192,65,54,95,195,52,6,130,201,4,163,129,91,117,38,181, +90,89,231,18,121,52,195,234,218,12,153,55,198,242,56,128,231,216,176,109, +71,232,139,170,49,15,87,181,241,73,56,19,6,123,52,193,120,232,160,12,215, +177,54,13,81,12,150,176,60,30,86,123,104,195,113,8,156,71,88,223,189,142, +89,102,97,178,180,132,192,37,164,209,28,81,198,112,131,49,70,30,33,94,95, +69,132,1,134,163,17,60,139,145,199,115,68,185,5,63,24,193,119,129,104,182, +134,153,242,252,128,69,182,72,95,1,109,14,190,94,200,40,22,77,71,130,209, +168,201,131,113,79,235,5,160,103,144,61,12,141,255,123,102,12,108,20,115, +22,85,228,94,231,221,251,190,215,31,209,247,37,18,204,6,86,41,191,102,52, +200,129,227,186,202,28,115,83,33,89,7,170,81,154,230,169,131,59,244,246, +171,108,174,102,68,81,20,40,25,85,253,169,217,33,0,246,208,120,77,186,232, +3,113,196,32,229,177,162,217,42,242,130,68,153,148,237,195,245,3,120,131, +1,44,219,21,57,187,116,142,120,190,138,52,171,102,15,123,1,92,127,34,162, +16,11,0,82,164,179,53,68,139,24,176,44,241,166,206,0,158,191,130,193,208, +133,85,132,136,103,107,136,211,178,41,152,176,189,49,220,209,10,6,110,229, +223,151,130,249,28,45,18,65,186,116,3,184,193,50,6,110,81,193,192,22,156, +201,38,120,14,105,239,84,162,140,215,17,77,215,145,179,45,190,231,136,67, +207,238,18,124,175,64,22,46,80,80,128,193,210,24,78,245,206,113,148,130, +252,101,248,190,7,162,12,249,124,21,209,60,1,91,237,243,121,163,21,120, +110,93,46,151,32,93,172,34,94,36,128,109,193,114,70,240,2,65,186,106,215, +114,138,104,186,134,156,93,56,254,24,131,96,12,199,181,193,233,12,201,124, +13,73,179,126,35,81,175,238,185,160,34,68,18,46,144,83,32,24,224,196,200, +227,25,210,234,249,6,190,39,140,123,153,34,175,114,185,206,100,165,90,7, +121,8,69,137,82,187,191,23,140,96,151,97,149,179,45,69,46,19,0,201,247, +71,134,60,156,33,205,8,206,100,83,213,252,67,115,236,211,57,162,249,42, +210,188,133,4,197,254,187,176,144,33,11,231,16,105,227,77,112,29,173,159, +118,153,34,15,215,16,205,22,40,43,194,26,129,64,222,8,131,209,24,148,45, +144,165,37,156,96,4,164,33,242,194,130,23,120,40,147,8,121,233,193,241, +138,42,199,95,54,213,3,186,252,49,0,170,246,39,172,228,135,220,0,131,96, +89,144,226,192,40,163,117,196,179,53,148,238,10,6,163,9,220,58,58,43,83, +164,225,26,226,217,2,133,101,195,34,33,191,150,55,134,23,4,64,58,71,28, +103,176,93,31,238,72,56,131,101,44,154,194,208,112,5,174,155,35,91,172, +245,60,159,180,190,57,193,29,11,134,124,167,127,121,190,64,60,91,67,148, +150,205,76,117,203,29,11,134,62,197,200,162,117,196,113,218,42,5,123,0, +199,31,137,244,11,18,164,97,245,251,186,172,218,30,192,245,235,10,22,171, +45,121,235,145,79,164,51,196,138,124,182,207,143,34,68,90,157,31,127,50, +130,69,64,25,79,145,40,242,73,224,34,198,124,245,62,172,38,46,150,183,108, +197,210,208,130,50,36,178,76,144,44,86,17,47,82,192,34,88,238,8,110,117, +126,84,238,150,161,24,57,143,49,159,46,16,177,141,225,100,132,161,219,150, +219,213,159,202,162,41,214,215,166,88,100,85,165,31,11,103,108,121,243, +38,4,78,137,120,182,134,181,245,5,242,106,126,8,145,135,96,178,132,229, +137,47,216,247,0,242,112,29,171,171,171,8,11,11,22,217,24,4,19,76,38,3, +112,52,195,250,76,64,227,130,175,231,33,8,2,140,199,1,60,215,129,5,193, +189,88,91,91,199,60,171,70,41,91,46,134,147,37,172,76,68,42,112,177,182, +134,245,105,140,130,8,100,123,240,131,0,147,113,0,215,1,178,249,58,86,119, +175,33,130,11,199,2,200,25,32,8,70,156,247,45,126,0,0,32,0,73,68,65,84, +152,140,134,240,28,11,64,129,104,186,134,181,245,16,117,216,67,182,135, +96,188,140,229,201,0,142,232,69,31,138,246,254,204,200,243,28,113,28,99, +224,15,225,53,173,95,77,70,76,106,9,163,15,126,171,199,15,110,52,229,102, +131,150,14,114,222,189,206,123,155,28,8,117,178,82,95,59,155,190,9,83,216, +179,209,103,117,40,68,183,77,133,220,245,143,53,24,66,37,255,153,198,36, +246,223,155,218,50,68,105,250,20,105,53,238,100,112,111,216,208,246,194, +208,30,99,67,7,167,69,114,10,209,144,162,169,181,181,42,102,179,220,251, +164,64,201,162,253,34,65,56,2,36,229,176,68,126,83,148,54,54,235,68,85, +189,57,1,196,21,105,166,148,158,201,178,97,89,182,84,180,87,138,103,169, +175,97,85,53,227,196,98,22,1,170,74,140,122,252,174,146,94,17,239,0,38, +176,85,213,121,55,50,197,162,67,90,149,211,20,104,81,209,52,43,129,133, +170,236,171,126,62,150,158,207,146,246,88,228,8,235,154,120,106,158,79, +54,102,85,27,88,166,42,122,172,243,158,37,152,11,160,249,174,184,182,168, +174,41,155,231,107,102,73,151,69,213,236,66,190,62,87,81,156,85,69,61,6, +57,47,203,234,254,162,166,29,121,140,36,154,162,128,47,114,202,118,53,82, +151,108,216,150,213,156,237,118,95,219,246,213,234,88,223,66,170,153,150, +215,166,254,190,120,46,88,212,65,216,234,231,70,89,170,77,220,170,158,7, +205,59,17,170,22,186,86,213,217,172,68,89,164,200,163,41,114,136,72,216, +173,239,105,181,207,175,104,174,178,172,100,69,124,198,162,170,166,57,141, +145,199,17,74,123,88,117,246,179,212,146,225,170,44,85,57,167,182,248,62, +87,123,78,182,141,170,153,65,37,7,165,40,85,139,102,200,105,8,111,224,195, +182,171,26,112,203,110,74,18,185,126,46,88,210,191,105,122,180,146,61,65, +44,147,250,45,88,22,136,171,123,73,83,201,80,161,31,84,181,128,174,135, +112,53,1,5,89,64,245,123,213,217,106,229,83,121,198,234,30,141,126,175, +100,151,106,210,91,45,159,53,90,85,200,242,41,206,110,158,198,152,175,237, +198,188,24,96,101,211,10,70,190,219,218,6,34,65,174,43,170,181,4,87,251, +99,73,77,4,165,62,120,250,128,73,46,81,20,162,196,214,174,2,136,78,208, +89,22,162,28,77,26,3,77,118,213,125,78,212,83,163,168,100,176,238,185,97, +219,212,244,148,168,207,93,81,86,35,112,216,2,217,54,44,170,90,60,151,141, +37,4,136,224,216,86,107,179,72,172,73,81,178,100,207,44,216,182,85,5,207, +162,26,173,44,25,101,53,24,71,200,10,35,79,22,152,79,23,200,189,49,198, +195,138,103,97,217,112,44,171,218,63,106,244,107,94,148,82,112,106,193, +145,174,223,144,236,138,60,71,146,36,176,44,187,29,36,67,164,245,86,71, +163,168,229,49,193,29,227,161,108,68,213,13,142,247,12,237,55,123,194,34, +122,23,237,104,109,115,148,141,238,116,37,128,13,51,17,164,174,87,140,158, +187,67,121,110,102,81,34,72,114,183,60,244,247,155,218,24,114,55,59,48, +166,175,202,229,31,69,153,3,16,247,239,40,71,82,115,26,102,2,163,52,27, +152,213,22,54,157,222,97,205,103,170,41,96,220,117,56,72,155,183,92,63, +67,103,198,182,62,135,164,199,25,49,96,30,134,102,162,4,189,15,86,127,138, +198,188,150,202,56,111,45,182,109,250,143,179,230,180,110,224,124,246,205, +74,217,104,15,246,132,26,153,101,91,159,239,77,90,255,51,253,217,218,115, +198,218,236,23,249,123,162,134,127,142,2,46,92,127,25,174,103,181,211,212, +152,141,235,166,242,105,212,169,96,234,112,84,214,186,42,116,247,145,55, +152,51,179,145,3,223,180,46,173,115,192,236,194,27,46,195,243,44,35,189, +215,212,178,11,44,156,69,46,50,228,73,136,172,180,225,14,2,184,94,213,4, +72,59,151,93,154,176,174,239,52,153,38,70,153,138,46,127,57,187,112,134, +203,24,120,150,230,128,75,210,215,76,252,235,166,63,161,213,119,11,131, +200,237,196,78,163,246,100,3,255,137,123,209,205,174,172,195,172,171,54, +210,127,157,94,187,172,76,133,43,179,8,179,213,85,44,10,31,75,155,150,49, +246,109,213,80,119,244,133,52,222,149,13,50,174,245,113,219,243,57,210, +207,154,126,38,77,40,111,159,94,167,30,201,68,127,123,48,125,192,18,235, +118,129,154,118,208,245,51,22,105,136,249,124,142,140,7,8,150,151,16,56, +212,27,8,215,246,128,217,220,162,204,97,0,101,201,72,146,20,150,101,97, +48,240,148,135,129,113,182,173,62,187,91,157,219,4,121,254,112,221,67,188, +142,156,152,123,148,181,60,74,17,112,228,78,80,157,136,180,171,56,219,161, +127,42,186,160,15,95,0,113,127,55,85,110,213,188,221,120,230,178,74,101, +109,64,162,244,214,205,230,233,130,167,143,13,68,219,102,127,3,129,179, +45,169,91,159,254,204,186,113,87,228,81,237,239,221,153,159,65,234,148, +62,98,77,253,116,28,55,117,228,104,35,106,134,249,17,250,236,139,78,163, +202,102,255,251,219,111,234,74,202,84,163,209,174,57,58,78,134,178,222, +29,242,135,174,76,89,106,61,206,134,177,53,45,138,83,175,57,161,107,244, +84,103,161,237,176,37,231,69,186,78,95,187,175,212,49,108,210,137,82,70, +67,154,228,93,66,116,234,97,77,108,204,86,10,166,119,154,128,201,135,231, +143,96,187,86,179,44,166,161,153,242,160,25,29,193,35,105,56,15,41,99,114, +77,198,68,51,50,178,134,231,174,242,68,199,25,173,102,69,148,41,138,56, +65,217,48,173,173,174,50,166,118,212,172,114,222,74,145,47,79,226,24,108, +249,130,101,238,185,112,44,137,245,196,122,64,195,232,234,104,189,183,125, +123,174,184,200,80,36,162,148,206,27,6,205,243,177,193,217,32,105,218,153, +126,254,73,106,241,45,159,51,249,172,170,122,163,254,127,89,174,76,233, +83,85,30,72,147,185,246,42,172,207,226,233,141,137,80,53,193,82,70,154, +86,107,72,213,108,0,219,25,96,232,186,13,249,79,113,82,88,213,89,186,200, +152,229,66,95,213,54,144,233,155,170,167,158,48,131,210,103,244,7,34,85, +160,171,235,117,101,64,153,38,19,45,202,32,151,123,146,102,151,170,119, +147,251,195,21,25,210,36,17,141,195,130,49,6,77,51,3,238,223,11,211,32, +29,193,48,1,45,178,144,163,56,68,145,151,240,135,126,19,49,155,179,238, +108,134,199,53,15,196,204,162,231,142,218,55,45,104,157,119,183,42,40,12, +123,26,252,161,77,135,171,61,162,14,115,175,231,243,170,225,17,109,47,153, +75,216,154,131,129,62,202,7,233,138,144,52,195,40,121,255,114,79,225,158, +236,125,123,255,218,192,119,239,95,207,180,54,161,34,102,21,107,154,74, +196,27,70,233,166,212,134,126,216,140,114,210,105,140,192,230,168,140,218, +225,35,109,25,164,217,113,120,96,50,64,221,148,145,198,61,32,50,201,196, +198,178,110,126,126,210,226,234,141,16,9,211,184,219,13,226,34,163,3,218, +69,50,104,131,200,130,164,16,153,89,222,179,178,73,107,180,173,71,187,113, +78,99,24,136,212,126,21,61,239,218,73,89,245,166,203,160,54,67,166,174, +3,164,188,147,130,174,84,16,105,89,181,86,181,54,94,147,238,51,214,211, +5,89,164,107,154,84,146,26,45,154,100,219,136,108,117,100,181,133,76,219, +231,51,163,32,232,32,19,48,38,240,148,145,221,6,140,138,149,104,119,3,30, +84,71,63,155,11,141,59,145,168,193,17,195,6,72,147,172,95,88,10,242,202, +162,168,160,247,158,180,164,116,31,102,21,187,162,190,145,206,125,49,90, +173,203,9,90,191,243,158,36,169,178,247,166,109,50,235,49,212,233,83,230, +61,235,168,234,115,141,19,162,237,135,186,238,85,189,63,89,82,201,30,111, +160,7,180,1,113,218,52,83,90,143,214,57,12,67,12,135,1,92,207,173,110,204, +253,23,35,217,107,232,198,20,132,141,134,62,212,222,150,28,145,168,247, +41,203,82,154,86,215,35,180,154,81,237,26,168,7,50,247,88,23,92,106,242, +182,117,142,181,159,145,214,255,142,27,67,179,164,70,147,36,247,39,174, +186,20,87,13,124,76,206,195,30,21,190,52,88,162,217,71,217,224,54,81,37, +25,46,179,129,114,238,125,142,30,135,66,159,71,222,51,39,189,15,250,237, +236,163,252,10,188,145,12,180,138,184,167,189,82,87,121,25,157,52,195,36, +78,253,115,250,156,154,13,25,22,27,204,120,214,67,79,54,59,77,108,60,47, +15,204,168,246,39,198,122,20,90,223,115,116,214,106,195,196,136,182,158, +186,50,236,123,22,218,64,30,117,231,116,15,117,60,122,190,66,159,29,142, +158,77,214,21,165,209,193,217,224,72,234,159,111,7,112,236,89,6,244,161, +45,140,61,200,155,110,224,76,41,74,217,154,60,16,153,97,117,26,29,88,123, +7,137,56,173,56,32,125,29,77,54,152,105,175,143,82,231,61,5,129,102,153, +51,203,24,107,208,120,95,128,162,167,61,187,78,138,26,28,82,55,167,218, +187,135,123,112,190,116,200,147,55,14,98,218,231,234,75,179,168,169,18, +43,73,82,216,182,13,215,117,42,163,171,207,134,212,72,94,204,38,154,56, +186,211,232,96,192,120,90,8,145,12,202,47,207,243,138,144,181,135,151,236, +177,65,202,60,108,162,7,112,160,84,108,89,185,63,201,48,157,54,221,71,87, +214,164,2,247,212,247,248,26,108,219,202,139,88,15,113,255,18,202,76,224, +141,168,128,82,119,193,70,64,229,241,216,245,240,1,146,242,2,50,196,200, +80,103,100,155,134,72,147,233,37,72,26,175,169,231,55,88,90,50,234,185, +14,119,148,120,11,253,182,144,91,59,209,176,98,88,51,186,123,33,13,53,34, +165,210,129,165,198,72,166,89,208,166,100,51,105,99,195,181,238,12,114, +68,192,164,0,214,230,153,215,12,211,44,117,101,45,77,80,131,97,157,168, +55,147,15,83,94,68,187,191,105,186,27,169,239,164,188,91,75,218,234,42, +32,195,252,107,50,57,3,218,172,117,150,70,181,17,27,215,139,97,152,105, +161,236,65,159,227,65,125,225,156,193,113,128,38,247,6,61,193,0,247,26, +20,234,158,5,105,104,85,23,50,37,101,70,122,63,1,129,186,90,222,100,24, +164,238,151,234,52,207,122,80,151,46,87,210,90,240,70,17,60,212,107,233, +233,10,70,39,109,161,162,210,250,52,185,174,188,27,17,132,234,121,137,117, +7,130,205,179,236,73,191,62,73,50,134,13,229,128,54,178,5,122,157,54,75, +105,60,50,68,201,204,234,153,234,35,88,41,103,137,186,105,51,121,159,152, +140,123,170,231,118,73,153,209,66,134,207,181,31,183,152,25,190,63,212, +4,198,164,172,116,33,208,134,211,155,54,131,169,231,32,117,149,91,61,222, +207,118,236,61,204,69,150,127,69,234,226,50,105,138,119,15,112,53,183,222, +53,51,87,247,119,52,229,160,41,118,125,252,165,60,183,145,216,160,20,37, +5,192,250,8,73,150,238,95,189,191,237,60,32,122,139,121,180,32,169,198, +174,86,155,172,31,50,50,68,217,164,121,237,170,98,32,221,198,179,62,80, +136,12,30,45,43,7,89,189,55,52,3,169,29,103,57,231,221,24,4,50,40,214,214, +56,82,231,112,112,143,82,150,20,21,27,230,169,147,105,173,235,28,181,105, +143,85,156,153,212,132,41,140,99,52,73,35,59,144,97,172,170,201,177,232, +172,97,143,177,160,61,25,17,3,49,68,254,119,50,160,116,29,40,147,181,8, +133,97,110,89,101,48,54,178,81,172,206,145,197,230,160,179,227,80,200,109, +90,168,111,36,171,190,199,61,138,23,242,250,83,199,225,84,157,65,233,94, +164,25,59,162,7,230,120,112,143,131,160,40,125,153,227,160,25,88,197,240, +72,14,28,107,114,201,125,51,222,251,228,146,52,99,39,175,111,235,52,119, +205,130,20,80,81,61,218,84,215,243,220,19,129,155,70,141,75,6,91,9,58,88, +13,76,122,117,97,95,136,69,106,122,176,79,159,203,250,89,158,144,42,27, +97,57,248,99,82,81,209,142,83,45,201,138,172,199,228,165,233,56,228,108, +72,237,112,143,3,201,90,174,72,213,69,150,231,121,130,80,38,81,251,55,134, +250,90,168,148,228,195,94,207,102,174,251,80,53,74,143,205,217,71,106,133, +166,228,18,69,145,183,165,105,38,154,50,105,134,28,6,160,64,11,60,152,168, +43,80,164,66,45,196,168,238,95,26,200,10,220,68,141,100,218,4,229,220,72, +94,175,34,28,50,121,134,84,210,70,245,119,93,53,192,61,142,146,226,178, +16,117,29,16,61,114,82,2,29,85,208,88,17,22,173,159,149,226,233,170,138, +135,149,232,92,243,102,9,93,143,210,224,209,178,142,96,52,122,222,224,16, +152,160,126,121,222,188,172,52,168,133,0,59,78,10,153,140,30,169,249,52, +166,238,253,58,193,72,61,1,177,39,218,145,100,139,181,8,223,24,37,200,81, +0,203,121,1,19,148,45,63,190,33,114,209,70,56,119,243,143,208,16,33,86, +3,8,61,234,98,50,231,31,59,126,50,117,145,20,24,124,41,3,26,65,138,241, +168,72,97,164,194,210,172,24,223,238,97,39,89,249,86,253,212,27,67,99,34, +0,82,15,10,210,124,220,240,30,104,245,154,242,206,204,10,92,221,200,38, +153,12,32,245,68,206,220,239,3,233,78,169,116,166,216,64,20,35,141,115, +68,50,143,130,12,193,142,178,223,172,34,112,100,64,38,8,42,149,146,100, +7,155,90,116,144,89,69,22,59,206,12,27,98,55,218,0,233,130,148,106,209, +12,112,127,38,190,205,145,203,6,211,160,151,90,158,21,117,183,134,217,64, +22,229,141,145,16,210,108,76,163,94,169,29,143,46,157,51,54,174,145,36, +54,100,210,93,114,16,71,141,14,82,9,176,226,223,44,215,115,42,225,229,238, +16,24,35,68,203,104,205,4,105,158,140,14,171,182,15,196,186,64,179,154, +115,181,109,71,144,10,26,61,46,205,252,237,243,92,228,236,63,169,236,241, +94,135,78,142,26,164,220,143,109,87,196,24,82,23,187,158,113,205,154,80, +16,169,172,86,147,210,32,82,247,167,201,157,176,122,76,9,128,99,219,98, +170,144,126,29,146,179,211,220,176,57,205,74,154,148,3,172,179,82,73,58, +124,106,80,164,122,218,108,128,192,84,133,79,90,133,130,9,252,146,89,189, +173,51,163,40,44,102,141,85,79,42,58,35,231,200,161,206,35,80,225,87,19, +154,36,41,28,104,134,155,180,3,75,173,179,103,66,166,53,205,171,58,148, +92,159,4,150,222,154,154,180,139,238,80,118,83,44,186,162,149,157,50,249, +81,73,209,43,242,40,74,104,108,106,197,17,146,157,101,98,205,33,148,28, +62,238,225,81,200,93,28,89,151,49,77,190,180,148,93,31,71,131,73,123,78, +54,193,210,58,44,175,33,54,74,186,8,109,255,13,86,75,201,24,4,38,106,42, +37,58,205,181,169,149,253,54,213,194,70,103,80,207,237,16,228,14,151,173, +161,83,76,155,28,177,147,9,69,148,214,184,14,112,152,13,126,130,182,71, +218,121,98,82,3,2,110,250,105,200,249,103,50,2,230,242,217,161,14,18,103, +134,232,59,108,88,106,83,133,172,187,33,70,241,111,157,67,234,164,121,89, +117,102,153,52,224,152,140,209,106,23,65,86,245,2,43,206,32,53,179,228, +169,227,204,181,79,193,202,222,145,98,116,137,216,236,196,26,179,113,172, +250,215,58,18,64,140,78,109,26,75,78,57,147,210,251,66,56,196,58,7,174, +34,42,74,169,70,139,200,82,62,72,77,116,41,11,32,247,64,134,18,4,70,108, +78,75,25,60,89,57,63,92,228,57,202,162,108,24,227,172,229,83,187,133,58, +170,226,106,184,192,13,111,138,164,173,97,201,153,39,35,108,157,103,213, +253,45,234,70,137,26,88,212,234,61,2,215,17,7,212,141,111,155,16,136,103, +97,217,121,234,112,17,128,60,207,218,247,103,3,161,132,187,197,118,76,106, +206,201,104,139,184,118,180,160,29,107,86,211,190,212,77,157,16,171,113, +188,73,136,155,32,158,12,176,29,203,40,66,85,57,208,129,149,42,119,172, +137,48,164,191,245,148,67,93,50,100,98,193,115,11,137,171,229,90,90,110, +82,174,79,236,164,80,164,146,208,250,35,218,113,163,78,105,148,185,148, +134,165,242,30,197,133,35,189,92,71,134,158,37,99,33,149,46,182,85,119, +90,138,130,13,244,215,186,19,156,238,152,129,219,52,4,147,98,136,201,132, +20,81,123,62,136,186,178,71,172,159,141,214,64,50,73,242,197,125,28,15, +82,75,170,100,23,83,35,57,145,110,148,100,180,128,204,72,155,26,87,145, +230,124,72,108,124,189,4,133,73,66,166,251,185,35,164,146,52,52,185,150, +51,122,100,72,173,119,83,149,53,183,132,185,69,191,26,135,132,218,212,31, +87,6,137,20,227,40,165,19,36,88,189,245,125,101,142,142,26,249,203,232, +8,145,94,20,43,189,171,1,34,38,133,136,136,46,146,193,170,140,215,85,29, +204,102,47,153,165,84,25,75,78,160,90,189,206,26,170,111,106,68,65,154, +191,66,154,14,111,157,10,102,110,206,57,75,246,73,46,1,86,3,10,147,227, +105,72,223,118,11,224,219,210,114,82,137,178,53,95,66,46,161,147,243,253, +36,131,193,77,233,164,1,170,151,130,86,82,168,80,12,10,179,144,197,189, +165,90,239,234,131,198,178,122,82,115,62,196,82,228,64,104,34,178,102,209, +88,51,130,154,17,227,146,155,190,208,220,195,83,232,28,160,218,235,85,22, +165,155,207,96,80,247,214,18,187,156,235,46,108,150,80,144,204,186,112, +203,231,136,59,222,111,135,124,12,110,202,60,26,1,85,170,47,184,195,20, +230,146,197,60,230,186,206,178,83,154,100,106,47,210,26,102,165,34,176, +178,8,198,150,185,157,106,26,110,34,113,238,6,99,74,77,183,12,251,233,181, +10,205,229,137,37,231,138,186,132,101,101,93,165,178,59,67,85,93,93,135, +91,191,139,34,75,210,23,218,123,86,247,135,244,50,74,155,96,85,22,58,149, +146,36,3,246,164,241,109,88,41,189,100,134,33,133,64,26,232,197,146,147, +192,70,168,189,102,232,114,79,87,135,218,217,102,5,90,39,116,124,28,173, +168,128,184,175,182,67,82,244,220,87,43,172,194,159,122,5,145,233,44,66, +161,98,176,90,247,107,192,218,76,169,7,53,207,217,253,219,116,222,72,59, +231,157,130,24,169,239,5,113,221,4,136,84,61,172,101,139,244,245,99,227, +16,141,141,218,169,180,78,52,163,117,214,218,235,170,50,104,106,223,221, +81,125,218,187,180,64,23,41,83,54,59,186,13,61,207,91,33,21,74,150,77,209, +15,26,71,191,54,124,178,158,7,43,179,65,164,25,223,178,66,80,124,168,14, +19,95,9,32,169,91,230,45,87,26,85,198,176,91,120,220,149,197,142,222,107, +246,146,187,101,115,74,181,3,25,42,38,89,225,105,201,58,94,239,35,208,244, +23,209,2,219,142,218,130,161,96,133,90,40,185,175,77,139,94,4,210,46,157, +100,115,208,125,23,75,207,213,50,168,83,73,165,58,204,93,56,141,37,22,48, +203,139,207,58,70,173,146,32,139,188,64,169,231,83,52,242,1,233,60,46,214, +137,111,164,102,9,72,131,140,42,111,79,119,248,202,146,197,253,89,135,224, +165,124,107,199,10,80,151,79,166,4,165,85,36,211,228,196,218,4,5,83,221, +232,167,85,240,121,85,243,15,169,233,141,25,38,107,53,2,81,55,26,100,141, +192,195,6,48,64,119,68,64,212,114,134,148,192,69,131,197,200,76,86,100, +146,155,99,200,249,123,106,174,163,55,196,105,126,71,212,205,119,43,78, +61,73,135,133,181,20,144,46,139,18,114,195,42,137,75,238,93,66,58,9,87, +65,160,90,45,199,26,16,197,146,17,215,211,98,34,197,32,213,181,214,156, +51,150,162,6,137,80,163,4,67,32,137,74,162,103,92,117,98,166,20,97,177, +218,180,168,67,5,145,227,90,234,58,164,172,229,97,149,85,37,150,154,122, +64,233,194,76,90,69,128,220,217,173,37,93,118,89,247,109,93,62,75,125,29, +204,85,57,53,138,209,12,119,34,153,251,32,7,72,92,237,171,230,184,25,115, +244,45,207,162,137,113,89,101,49,147,132,234,169,174,180,1,118,213,242, +184,164,65,253,164,228,118,85,89,134,1,89,102,210,131,125,86,207,93,103, +254,5,73,114,90,97,75,12,165,129,152,210,224,138,72,137,164,137,37,227, +94,35,107,4,213,13,148,249,209,146,139,204,93,186,90,227,84,212,129,93, +147,103,102,249,236,113,183,84,80,39,254,146,6,53,75,232,31,49,65,79,64, +40,230,66,45,32,234,240,27,88,114,142,27,29,32,59,21,141,19,161,6,115,196, +212,254,14,221,226,0,174,251,215,203,54,131,53,90,19,208,109,201,34,233, +2,150,117,155,33,149,161,242,111,37,68,154,89,69,30,53,93,93,239,191,213, +101,37,74,77,84,136,186,188,192,78,3,0,85,240,59,180,182,202,187,168,155, +15,48,181,215,19,172,113,187,131,98,118,40,23,220,66,120,132,254,200,94, +239,28,102,42,50,146,125,175,250,254,68,134,142,111,80,175,71,146,128,49, +171,208,83,29,65,10,5,79,109,202,64,142,91,155,116,88,27,221,218,182,13, +203,177,13,233,77,86,141,34,212,8,156,37,43,46,115,131,72,38,179,106,182, +133,37,63,42,112,71,24,57,129,130,240,144,210,206,213,192,99,107,156,20, +205,185,5,225,198,31,252,16,143,61,234,113,88,9,150,177,117,121,107,227, +164,176,33,69,86,95,147,165,10,11,3,143,184,77,25,43,64,176,218,93,68,70, +128,137,186,169,50,232,223,211,170,3,89,201,117,183,93,211,26,190,36,105, +142,29,235,105,96,82,100,156,53,143,152,229,148,174,1,182,164,198,17,213, +161,69,180,80,107,135,176,164,214,163,119,178,39,212,37,56,179,1,49,110, +253,131,214,24,145,84,49,193,29,2,25,105,121,103,197,196,107,18,43,189, +59,65,225,92,116,168,34,212,173,161,224,78,185,167,44,15,122,254,89,201, +226,52,107,66,106,234,86,51,160,114,48,83,239,55,105,45,129,37,167,132, +186,180,13,104,180,4,185,34,184,213,191,36,49,150,52,199,73,174,22,212, +90,59,115,117,1,214,148,18,85,141,156,104,3,126,20,233,149,219,12,4,110, +128,145,59,106,12,82,19,244,200,41,44,214,56,147,220,230,140,153,213,116, +137,140,22,16,193,88,208,38,239,87,253,251,145,27,96,228,6,170,193,234, +100,69,73,227,208,155,206,70,47,197,77,178,3,36,157,185,170,249,13,179, +212,160,149,53,238,43,169,128,135,124,206,101,231,144,168,51,0,157,53,14, +10,105,169,77,130,185,170,24,18,135,67,105,201,164,23,175,72,41,94,61,65, +86,247,192,151,83,131,50,71,210,210,235,89,137,164,158,212,189,37,155,221, +72,174,17,84,234,66,9,117,222,184,22,240,162,40,4,107,28,170,183,99,170, +46,80,43,230,106,143,105,3,86,47,128,231,63,247,249,24,57,1,94,240,220, +231,171,92,156,106,115,203,178,189,191,90,241,197,248,242,151,175,196,233, +167,158,142,157,59,246,199,146,191,132,157,59,246,199,9,79,124,50,222,247, +79,239,51,101,13,155,231,97,83,195,66,83,101,32,137,41,117,101,81,232,37, +244,146,83,214,42,149,182,2,175,61,136,212,211,195,62,112,3,4,78,32,254, +118,3,44,249,75,120,212,239,60,10,239,253,199,247,182,21,10,27,244,245, +48,17,206,235,245,175,157,2,221,195,100,2,206,121,233,203,113,195,245,223, +197,229,87,92,142,123,167,247,41,169,40,165,248,65,230,151,212,81,85,207, +196,66,80,183,33,40,19,119,144,20,19,255,167,27,41,104,206,137,244,64,105, +154,226,239,255,238,93,56,234,176,163,176,101,188,5,155,39,91,240,232,67, +143,194,187,223,249,110,100,89,214,202,52,169,141,189,148,162,2,210,137, +254,164,26,36,13,173,103,170,56,28,204,50,224,160,164,215,26,46,140,225, +76,48,128,255,184,250,255,225,105,39,157,134,135,61,232,97,216,52,90,193, +161,191,127,8,222,252,166,115,241,217,75,47,55,162,224,212,16,112,204,133, +68,164,160,50,146,19,6,173,193,149,6,43,163,195,222,214,200,233,10,237, +129,84,120,209,144,242,134,4,57,203,109,144,174,252,210,149,120,250,105, +167,99,255,29,251,99,50,152,52,231,242,253,239,125,159,230,209,119,135, +14,17,128,43,191,124,37,158,126,234,233,216,185,99,39,150,6,19,236,220, +94,127,255,253,74,165,151,28,113,146,36,132,157,234,54,102,51,27,131,187, +114,140,14,175,169,82,228,10,87,137,213,243,39,161,148,74,219,211,46,106, +172,144,149,121,35,174,23,203,200,84,107,70,63,245,201,127,19,78,128,19, +224,130,143,124,172,33,106,157,247,254,15,52,70,249,109,111,125,91,243, +32,151,93,114,41,70,110,128,192,25,225,223,62,249,169,198,200,147,22,60, +203,91,162,167,0,73,67,2,228,84,55,235,188,84,66,163,215,70,110,32,116, +81,165,227,234,173,168,255,63,112,132,51,179,247,150,29,56,246,15,142,197, +63,127,240,67,18,74,44,238,39,95,67,255,19,184,65,155,202,225,246,220,147, +193,206,104,254,98,59,20,74,119,176,149,110,154,90,123,106,102,5,161,110, +28,74,205,233,83,206,63,233,78,173,28,216,113,115,230,152,33,154,166,53, +176,162,236,241,72,181,249,138,247,193,170,160,232,57,36,238,6,191,10,129, +151,153,97,89,4,199,113,154,142,109,100,202,139,105,144,139,58,64,163,219, +100,163,222,147,221,171,171,184,248,83,23,3,0,46,254,212,197,88,91,93,237, +60,24,17,193,117,196,204,225,122,191,202,178,196,89,207,122,30,78,58,241, +169,56,226,168,35,240,253,31,223,136,187,238,187,11,239,251,224,251,112, +199,29,119,224,213,231,188,186,107,63,184,203,73,37,149,164,223,141,122, +171,70,5,78,125,127,173,122,68,110,14,165,123,148,32,141,199,161,19,82, +171,159,69,30,98,26,77,241,239,223,248,127,216,190,99,59,94,251,202,215, +226,131,31,56,207,4,81,40,70,145,101,212,148,204,215,54,85,178,125,239, +187,223,3,0,60,230,177,143,81,218,1,48,233,194,173,113,1,200,0,123,145, +217,53,103,137,101,171,151,165,234,109,67,245,192,187,134,14,181,20,62, +178,52,197,31,157,240,191,241,166,215,191,17,103,252,241,25,248,225,79, +127,132,31,221,252,35,156,241,199,207,192,27,255,226,13,56,249,196,147, +144,230,89,235,84,113,87,222,8,106,175,11,185,210,173,49,254,164,84,115, +41,145,168,94,34,220,87,206,204,82,26,232,3,255,244,126,60,249,137,79,198, +182,237,219,112,205,183,174,193,174,187,118,225,13,127,249,6,92,248,241, +11,113,198,105,103,24,215,148,153,148,210,123,238,41,193,238,100,21,244, +74,56,99,219,107,234,160,115,122,181,36,145,97,175,180,158,75,74,52,84, +15,104,227,18,103,61,91,156,203,35,143,48,156,203,87,188,90,115,58,73,65, +3,197,247,207,18,223,63,242,8,220,120,211,141,184,235,222,238,247,85,61, +38,110,30,56,129,130,158,201,163,33,72,67,186,106,195,1,45,131,168,247, +126,82,122,218,179,138,114,176,36,79,122,37,170,236,132,193,208,88,175, +79,246,77,69,80,10,215,128,129,99,142,59,182,249,200,181,223,188,182,121, +215,175,126,249,171,205,191,95,125,213,213,205,237,174,249,250,55,26,39, +244,216,227,142,81,28,14,214,219,132,144,185,106,115,163,0,178,3,250,48, +176,200,66,44,178,80,209,113,97,22,118,80,154,48,11,177,22,174,225,186, +239,125,7,79,58,225,201,120,249,75,94,142,63,125,198,159,160,44,185,99, +155,235,107,132,213,181,235,255,134,185,42,83,209,107,138,83,194,90,160, +104,0,212,200,144,70,109,208,15,86,43,88,137,141,106,191,211,94,68,6,18, +219,76,23,169,193,241,34,139,56,204,66,94,84,127,194,44,228,48,15,121,145, +87,255,45,255,201,235,207,68,226,247,121,200,157,239,231,237,103,235,239, +213,215,157,167,11,158,70,83,158,37,179,246,179,213,189,228,123,55,247, +49,252,29,74,247,169,191,183,144,254,253,237,239,120,59,3,224,45,91,182, +48,0,126,251,59,223,222,124,111,158,45,120,26,207,120,22,207,154,251,45, +170,235,188,231,189,239,97,0,124,230,159,156,169,188,111,152,133,124,230, +159,156,201,158,231,53,207,86,47,241,181,223,185,150,79,123,250,105,188, +239,126,251,178,101,89,28,102,17,135,121,200,151,124,238,82,62,234,49,71, +177,239,251,60,28,14,249,168,199,28,197,151,95,113,57,47,210,5,79,227,41, +79,147,25,223,189,251,110,62,251,229,103,243,254,59,247,231,193,96,192, +71,62,250,72,126,211,185,111,106,214,241,238,213,187,249,165,47,63,155, +247,223,185,179,249,253,27,207,125,83,187,6,121,119,191,234,231,146,215, +228,198,255,188,145,1,240,239,252,238,239,52,159,173,63,39,239,233,126, +251,239,199,65,16,176,101,89,188,188,188,204,39,60,229,4,254,241,45,55, +41,215,213,255,44,50,243,239,234,189,184,180,103,29,100,185,232,91,75,249, +119,95,250,202,151,248,144,67,15,97,207,243,248,176,195,15,227,27,126,120, +3,95,245,245,171,248,209,143,125,52,15,135,67,62,226,168,35,248,251,63, +190,81,149,55,131,92,45,52,121,252,235,183,253,53,3,224,179,207,57,187, +145,131,250,115,103,159,115,54,3,224,191,121,251,219,154,235,212,207,243, +173,239,126,139,159,115,214,115,120,60,30,243,129,15,58,144,47,252,183, +11,149,51,176,200,66,190,232,226,139,248,160,131,15,98,207,243,120,223, +125,247,229,23,190,232,133,124,247,234,61,157,61,248,250,181,95,231,39, +157,240,36,14,130,128,55,111,222,204,167,62,237,84,190,253,206,219,149, +103,93,104,251,189,215,94,123,49,0,254,249,221,63,111,174,183,123,182,155, +31,243,184,199,40,235,31,230,230,61,184,236,138,203,149,243,169,200,141, +180,62,205,126,238,65,238,23,149,62,248,250,183,175,225,147,79,61,153,247, +223,185,63,251,190,207,79,56,250,9,252,151,111,254,203,230,62,166,53,185, +103,245,30,69,223,52,122,39,23,103,73,62,151,139,234,124,213,127,228,115, +169,63,123,125,157,206,185,150,214,177,249,190,225,123,181,220,135,146, +190,91,72,250,66,151,179,122,189,244,189,90,104,215,212,245,228,34,55,159, +189,155,110,189,73,121,142,94,89,185,235,118,229,189,191,249,157,107,249, +232,99,143,230,193,96,192,203,203,203,124,202,105,167,180,251,155,71,218, +25,137,170,231,139,248,224,67,14,102,0,252,136,223,122,4,135,89,200,211, +120,202,147,201,164,249,174,231,121,124,255,244,126,14,179,176,249,236, +33,135,30,162,92,79,222,223,125,234,253,93,187,167,115,214,47,251,252,101, +124,216,225,135,241,96,48,224,223,127,212,239,243,7,63,252,161,238,153, +149,109,80,222,213,23,186,77,144,101,88,222,231,83,159,118,42,3,224,247, +126,224,189,141,189,106,215,35,52,223,87,190,191,246,59,249,89,76,54,82, +253,247,168,215,126,42,246,43,83,223,85,249,190,38,107,186,77,85,190,95, +219,99,249,108,171,130,26,41,135,37,148,15,84,214,53,168,29,3,44,9,141, +120,185,72,93,192,116,193,243,116,174,62,112,174,46,64,168,31,2,237,254, +157,239,52,47,30,113,152,71,252,240,71,60,156,1,240,165,159,191,140,1,240, +195,31,241,240,214,193,200,218,251,215,10,164,254,115,240,161,135,48,0, +190,230,91,215,116,55,171,71,152,44,203,234,24,182,75,62,123,9,3,224,99, +142,59,134,111,189,227,86,190,249,246,155,249,241,79,120,60,19,17,95,246, +249,203,120,158,204,57,204,195,230,224,93,240,175,31,231,221,243,221,124, +197,149,95,224,131,14,62,168,185,247,41,167,138,223,127,252,95,63,206,247, +75,191,87,5,49,82,214,76,87,212,97,30,242,189,211,251,154,3,218,57,36,6, +225,186,119,253,62,126,211,185,111,18,239,112,236,49,29,37,211,217,239, +158,195,37,175,195,45,63,187,149,111,190,237,167,252,248,63,16,235,80,27, +121,249,186,157,181,148,126,119,241,229,159,225,123,86,239,225,243,254, +249,60,6,192,123,239,179,15,95,242,185,75,249,158,245,123,249,188,243,63, +200,0,248,184,39,30,103,112,44,35,233,48,68,157,195,248,123,191,255,123, +12,128,191,253,221,235,164,3,45,148,249,117,223,187,142,1,240,163,14,122, +84,199,224,125,252,95,63,206,191,184,239,23,252,147,91,127,194,71,31,115, +52,59,142,195,223,254,222,117,205,189,174,188,234,74,6,192,167,61,253,52, +190,243,222,187,248,45,127,253,22,6,192,127,246,226,63,107,206,89,125,173, +243,63,246,97,222,245,139,93,124,255,244,126,126,253,155,94,207,0,248,228, +83,79,238,24,163,48,111,101,118,101,101,133,1,240,233,207,56,157,63,249, +233,79,242,45,119,220,170,58,214,185,182,7,199,86,178,120,155,36,139,146, +163,213,113,248,52,131,190,39,185,95,100,33,95,245,245,171,120,48,24,240, +111,253,246,111,241,183,111,248,54,223,187,126,47,191,228,101,47,229,3, +14,60,128,23,89,200,95,254,90,187,38,119,221,119,23,255,149,188,38,89,87, +159,212,255,166,156,75,195,217,111,229,48,82,100,178,150,175,230,251,223, +190,70,53,212,153,172,132,35,163,210,110,13,124,125,61,89,134,162,142,195, +168,59,87,186,81,95,84,50,41,235,49,249,154,247,173,223,223,158,189,227, +142,105,174,83,175,243,135,47,16,178,114,223,116,55,191,254,141,149,172, +156,114,114,115,159,235,110,184,142,93,215,229,253,246,223,143,175,184, +242,11,124,239,250,125,252,131,155,126,168,24,52,117,205,218,255,127,245, +255,121,117,243,185,59,239,189,147,175,188,234,43,12,128,199,227,49,59, +142,195,0,248,179,95,248,44,223,189,251,238,102,255,95,243,231,175,105, +222,243,74,121,127,53,153,215,229,233,2,233,252,28,115,220,49,12,128,63, +242,137,143,170,78,147,41,216,203,13,6,62,51,200,170,180,135,87,253,199, +85,12,128,15,61,252,176,142,28,43,198,90,11,20,59,1,165,98,147,162,214, +126,24,140,172,46,151,178,173,89,24,215,63,82,228,78,94,3,221,214,182,247, +136,84,125,167,59,2,185,108,224,117,195,153,183,2,109,54,196,145,241,48, +134,125,70,59,11,121,158,206,121,61,154,10,3,155,171,209,115,104,48,230, +141,130,214,61,251,76,93,168,246,0,69,252,197,175,124,145,1,240,99,31,255, +88,14,179,144,31,247,132,199,51,128,255,207,217,155,71,107,151,86,245,129, +191,125,134,119,190,247,126,69,129,75,232,52,8,17,2,8,101,16,180,170,192, +64,97,81,152,244,50,209,198,24,135,164,141,182,68,59,226,64,52,89,157,110, +99,214,138,11,208,206,74,103,117,47,12,106,156,186,213,86,218,216,82,76, +69,67,0,11,35,32,98,156,25,100,40,21,218,146,169,170,190,239,222,251,142, +231,156,103,247,31,103,218,123,63,251,121,239,23,89,203,85,86,221,123,223, +247,156,103,216,195,111,255,246,254,241,91,222,254,255,242,197,254,178, +67,15,46,227,0,162,218,240,124,62,103,0,252,208,249,195,38,147,48,153,129, +56,32,247,255,198,253,252,169,135,63,165,62,231,246,59,111,103,0,252,158, +247,191,103,88,215,251,127,227,126,6,192,119,60,247,14,190,216,175,121, +83,109,120,185,92,50,0,126,199,253,239,224,117,181,214,217,67,226,231,99, +196,61,110,178,0,118,241,170,0,0,32,0,73,68,65,84,252,255,35,199,93,109, +249,215,254,83,251,221,119,62,239,206,225,61,84,68,95,203,96,167,253,231, +67,231,15,51,0,158,207,231,195,57,136,46,144,200,180,60,228,96,88,135,223, +122,239,176,142,253,58,220,249,188,231,70,23,243,254,223,184,159,63,245, +208,167,212,65,182,65,69,255,92,210,88,61,116,241,16,3,224,147,147,19,237, +8,43,231,204,26,196,99,54,155,49,0,126,248,226,225,225,172,245,251,252, +208,229,35,106,13,34,71,216,173,203,187,127,235,61,12,128,191,238,235,191, +110,88,247,187,94,120,23,3,224,143,254,233,199,120,83,109,248,83,15,127, +138,1,240,227,30,247,184,200,104,203,72,254,19,159,250,36,3,224,107,215, +174,169,251,161,179,193,45,191,252,251,95,30,161,38,79,126,202,147,249, +167,126,246,167,90,99,209,25,150,113,15,222,51,188,255,253,191,241,174, +241,60,116,251,109,223,171,55,74,227,51,110,245,185,127,183,216,171,238, +44,188,224,174,23,12,78,96,83,199,168,201,93,95,209,173,201,159,125,148, +215,245,150,63,245,208,184,38,155,68,66,33,239,229,231,46,30,210,134,209, +24,186,117,101,246,221,220,235,207,117,217,103,156,17,109,199,123,80,197, +206,68,38,59,195,126,212,58,136,80,1,65,109,29,129,78,22,214,67,96,190, +141,2,1,121,158,147,231,174,251,140,79,252,197,39,244,89,169,54,124,247, +139,238,102,0,252,218,95,121,173,74,184,212,157,241,50,189,122,203,111, +125,199,91,199,128,250,245,255,15,255,243,31,248,231,12,128,191,234,111, +127,21,255,141,23,180,118,244,251,254,217,247,241,235,239,123,131,66,214, +250,243,54,156,249,63,251,40,111,234,109,116,230,215,78,192,184,169,55, +252,238,247,189,187,117,192,207,121,118,236,176,156,53,28,215,98,43,238, +244,54,118,218,221,207,62,115,253,115,67,160,178,54,182,44,245,127,30,58, +227,5,150,81,86,111,236,141,60,99,155,42,14,232,214,234,172,111,35,68,192, +6,2,238,217,143,124,182,254,236,76,183,61,24,186,190,98,57,146,232,175, +20,125,190,146,133,64,134,109,172,106,91,132,162,200,145,81,174,250,178, +189,2,254,56,249,83,244,7,218,46,61,26,235,96,212,49,27,127,242,39,126, +10,0,240,205,223,242,205,0,128,111,249,214,127,8,0,248,169,159,248,73,100, +148,33,203,243,118,98,29,193,85,146,27,200,77,228,48,248,187,161,44,178, +222,243,101,183,223,142,211,147,83,69,164,248,253,223,253,125,0,192,211, +159,254,244,225,119,111,251,235,183,1,221,207,178,188,253,180,167,127,209, +211,1,0,119,223,117,55,30,247,232,199,225,155,254,222,55,225,79,30,248, +211,142,5,233,255,252,129,143,63,96,186,116,198,182,9,59,190,178,174,106, +124,224,143,254,8,255,244,159,124,63,202,178,196,171,126,228,85,241,200, +243,110,115,46,47,47,241,178,239,120,25,238,121,225,139,240,140,191,246, +12,60,254,177,255,53,0,96,187,221,194,76,168,208,172,82,103,240,76,255, +241,195,58,124,209,211,134,61,187,237,89,95,12,0,248,189,223,249,221,136, +5,244,101,119,220,142,211,179,211,145,5,237,20,237,230,139,89,52,142,97, +222,233,40,92,92,92,140,211,204,32,72,162,118,179,41,38,253,168,126,246, +238,46,88,61,195,72,103,166,251,179,167,60,245,41,0,128,119,190,253,157, +67,221,240,15,255,224,15,1,0,79,254,130,47,196,162,92,224,243,31,245,249, +0,128,7,31,124,208,173,99,247,181,241,71,221,114,11,0,224,250,245,235,178, +75,113,108,47,235,206,223,43,127,248,149,248,209,159,248,119,120,214,151, +60,107,96,225,126,244,35,31,197,75,191,245,165,184,247,87,127,117,224,81, +143,123,240,69,3,169,235,139,159,117,91,183,7,191,23,15,11,81,197,62,61, +109,77,238,198,151,126,217,237,56,61,61,85,44,254,247,255,214,251,1,0,207, +249,210,231,104,201,133,110,189,254,240,247,187,53,121,194,147,177,44,230, +248,252,91,199,53,25,235,174,201,33,227,200,144,197,140,109,193,198,34, +213,42,18,143,49,205,72,143,39,86,195,64,186,203,59,144,184,138,197,64, +40,29,201,87,115,44,139,133,98,169,247,196,180,158,212,10,160,35,121,117, +100,215,98,46,122,159,201,216,187,214,182,94,94,92,226,101,255,195,203, +240,226,23,222,131,103,60,245,25,120,252,231,63,126,188,123,222,68,192, +238,188,60,234,81,183,14,103,165,183,91,191,249,222,223,4,0,124,249,243, +191,124,172,21,51,187,35,7,44,151,233,246,59,239,192,114,185,4,0,188,247, +61,239,109,207,51,128,187,239,185,27,95,249,149,95,9,0,120,215,175,189, +11,239,233,234,239,171,213,10,119,60,247,142,97,176,209,112,230,159,240, +100,44,138,185,62,243,71,164,19,158,242,180,191,6,0,248,200,31,127,36,46, +92,51,212,208,44,43,103,237,118,115,169,246,78,26,58,157,136,226,225,60, +155,122,131,77,189,29,106,241,67,157,159,198,86,101,18,173,222,125,87,139, +28,1,20,233,118,137,214,90,178,58,85,108,120,240,154,113,60,146,89,9,73, +57,9,150,243,186,192,142,118,150,158,9,147,13,210,173,12,184,170,34,44, +39,233,136,87,19,108,118,102,142,135,253,12,68,25,70,83,215,104,66,208, +99,29,57,241,18,70,191,130,197,116,49,22,243,242,199,1,1,237,111,125,230, +51,159,197,27,238,125,61,0,224,59,190,237,59,176,40,23,120,233,183,190, +20,0,240,134,123,223,128,79,127,250,83,200,50,210,223,33,250,121,190,232, +153,207,0,0,124,248,67,31,114,91,29,250,41,68,236,244,33,49,199,122,33, +135,170,26,198,35,134,16,134,117,234,39,54,253,252,47,254,60,254,206,87, +255,29,204,102,51,220,184,113,3,247,190,238,94,252,119,223,240,247,7,150, +165,251,243,111,252,7,73,154,190,92,199,69,185,192,217,226,20,247,220,245, +34,60,230,243,30,131,119,254,250,59,113,251,157,119,116,77,96,113,227,208, +119,126,251,119,226,103,127,250,103,241,172,103,61,11,63,249,51,63,137, +15,63,240,97,211,49,97,155,7,89,17,182,172,159,148,255,59,28,14,221,90, +19,6,117,99,230,152,57,205,220,77,254,115,250,153,83,250,17,28,115,190, +228,4,196,49,56,137,166,248,128,1,60,249,41,79,6,0,124,236,163,31,27,219, +107,186,23,235,13,78,251,59,164,2,14,18,47,187,219,180,65,208,126,191,31, +60,255,229,229,37,0,224,207,63,243,32,54,213,22,155,122,51,24,17,167,145, +116,248,119,41,147,76,209,84,53,49,177,140,8,255,253,183,125,43,222,253, +91,239,198,159,127,246,65,220,247,182,251,240,15,187,96,246,95,252,79,255, +34,234,47,59,84,123,17,212,140,123,16,141,173,13,178,223,62,41,41,56,176, +204,89,244,109,246,54,32,207,243,120,12,12,139,53,249,236,159,183,235,49, +144,154,182,113,171,133,104,190,123,70,119,47,63,244,225,15,197,35,200, +201,182,129,40,235,7,6,196,223,127,88,17,248,236,172,12,16,13,207,211,26, +254,205,64,218,234,255,125,83,111,68,171,31,181,255,173,255,253,142,0,102, +157,6,25,17,156,62,16,233,201,85,223,249,29,230,238,125,252,143,227,197, +115,28,88,150,103,209,148,151,190,229,120,54,157,249,29,51,156,184,64,204, +152,76,38,120,254,11,158,15,0,120,235,91,222,138,223,126,255,111,183,14, +254,197,247,224,158,191,121,15,0,224,119,254,243,239,224,190,55,189,25, +0,240,252,187,158,143,178,44,135,189,83,251,43,137,107,245,6,174,128,85, +183,240,253,253,97,211,149,96,237,20,217,40,129,140,142,134,248,108,198, +200,28,255,240,135,90,91,246,69,207,124,70,71,146,99,248,29,167,20,77,78, +28,172,29,147,18,249,33,219,251,70,113,59,103,212,217,225,54,97,147,214, +32,235,25,240,106,188,187,85,11,212,237,117,209,212,104,102,53,191,37,139, +122,250,92,26,32,69,139,170,178,200,126,216,189,232,151,101,49,86,51,203, +115,20,69,161,229,0,101,47,107,52,227,186,143,160,72,105,165,68,180,110, +113,80,126,238,103,255,79,84,85,133,175,251,250,191,215,94,174,122,139, +77,181,193,55,124,211,55,160,170,42,252,194,207,253,2,180,124,42,169,232, +236,187,190,231,101,0,128,31,127,205,143,71,180,213,151,127,247,203,113, +203,242,150,81,99,61,186,111,99,171,215,95,255,146,103,1,0,254,248,67,127, +60,108,208,135,63,216,30,178,103,61,251,89,3,21,243,241,79,120,2,94,251, +43,175,197,167,31,249,44,238,123,219,125,99,20,219,125,252,227,159,240, +120,188,246,87,254,111,124,230,250,103,113,223,219,222,34,162,92,59,112, +39,246,124,155,122,139,77,189,197,131,159,251,11,252,234,235,127,21,207, +126,206,179,71,68,38,154,163,14,188,233,13,111,4,0,252,224,191,250,151, +184,243,185,119,226,214,91,31,173,127,135,128,147,147,147,22,25,104,106, +49,138,23,74,186,80,110,214,176,14,31,254,72,199,22,103,124,224,143,62, +208,173,195,151,136,181,151,228,103,57,70,151,92,166,127,220,177,25,59, +222,187,190,252,46,44,202,5,94,124,247,139,53,143,149,116,250,255,141,127, +255,27,1,0,63,255,127,252,188,234,61,34,0,175,233,218,175,218,223,97,255, +203,121,204,92,239,124,222,157,195,133,121,198,109,207,4,0,188,239,55,223, +167,126,247,131,31,252,160,167,224,61,182,255,209,77,40,6,18,97,89,46,240, +236,219,158,141,205,102,131,107,103,103,184,235,43,238,194,255,250,191, +255,219,214,153,239,15,195,229,30,247,224,143,135,143,254,224,7,62,56,236, +65,255,177,103,103,103,45,10,114,121,161,51,98,223,191,143,129,191,160, +250,126,201,115,190,164,69,6,126,247,247,84,63,98,159,149,60,179,95,147, +247,190,79,125,254,7,63,240,65,35,47,76,131,65,103,0,47,251,238,246,94, +254,196,191,251,113,173,76,201,132,151,127,215,247,226,150,213,181,225, +204,221,245,188,23,96,81,116,251,222,157,205,151,125,207,248,247,164,180, +193,209,253,253,45,136,38,232,153,32,90,143,246,39,211,51,205,194,222,33, +158,175,158,16,130,236,131,164,55,189,225,77,109,96,246,175,126,176,189, +123,143,126,148,219,142,28,239,3,71,157,45,79,125,218,83,99,59,65,241,40, +85,178,136,86,103,215,95,244,226,23,1,93,54,30,66,192,19,190,224,9,248, +194,47,124,18,158,121,219,109,120,220,227,30,7,102,30,50,245,23,189,248, +69,162,67,146,212,254,14,246,149,128,15,254,209,7,157,53,24,167,224,244, +119,228,142,59,239,208,201,33,116,155,13,51,59,189,235,182,55,124,236,241, +239,191,243,167,58,84,247,219,191,227,31,165,131,28,57,35,65,14,23,17,118, +9,93,107,171,106,245,98,61,235,95,181,14,12,131,215,196,93,81,99,31,73, +207,90,128,158,225,48,206,96,208,195,131,99,65,42,211,118,160,0,73,2,198, +58,131,36,14,24,50,73,109,234,152,181,193,254,235,173,168,159,141,191,211, +179,198,47,247,151,166,142,177,141,235,6,209,103,90,18,204,86,17,98,100, +189,109,93,109,248,9,95,240,4,6,192,247,189,237,190,241,191,31,214,252, +230,183,190,153,1,180,100,159,131,33,229,13,117,156,246,179,190,254,27, +191,129,1,240,43,126,228,149,252,153,71,62,195,159,189,254,57,190,247,77, +247,242,147,159,242,228,161,22,169,106,147,85,92,235,189,247,77,247,50, +0,190,235,43,238,226,143,253,233,199,248,35,15,124,100,168,79,190,254,205, +111,24,126,255,206,231,61,151,239,123,219,125,252,185,243,135,248,141,111, +121,35,3,224,175,249,111,191,102,248,142,244,207,55,126,125,185,142,235, +80,250,255,182,14,33,165,93,243,219,190,248,182,150,152,248,166,123,249, +115,55,30,226,87,191,230,213,209,59,246,53,182,31,251,247,63,62,16,5,251, +61,24,107,229,99,93,236,222,55,181,36,199,187,94,120,23,127,236,19,31,227, +143,127,226,1,177,14,175,143,72,118,150,44,233,214,188,29,130,140,253,189, +7,63,247,224,64,2,186,239,109,247,169,58,221,198,176,176,111,108,207,7, +226,223,171,254,151,87,241,3,159,252,19,254,248,39,63,206,175,252,225,87, +50,17,241,243,239,122,62,223,216,222,136,88,228,127,250,224,159,241,35, +235,235,252,142,251,223,193,79,250,171,79,226,178,44,249,93,239,249,245, +97,31,254,195,235,254,195,64,240,124,207,111,189,151,63,242,192,71,248, +229,223,255,242,182,174,234,213,189,5,105,71,237,141,83,203,237,223,247, +49,143,121,12,255,204,207,253,12,255,127,159,254,115,254,139,207,253,5, +127,239,247,181,117,249,87,255,216,143,14,127,23,237,193,39,31,224,23,188, +80,158,197,246,123,191,250,107,190,154,1,240,15,252,203,31,224,135,47,30, +230,247,255,222,251,249,123,254,201,247,154,51,176,141,206,141,124,174, +255,248,206,255,200,101,89,242,109,95,124,27,255,246,239,253,54,127,242, +211,159,228,127,243,191,253,27,126,234,211,158,202,107,111,77,254,68,172, +73,68,150,213,53,216,175,255,198,175,103,0,252,202,31,238,238,229,141,207, +234,123,89,109,248,193,207,202,125,127,139,218,239,225,239,127,36,241,247, +210,126,137,186,166,218,135,228,125,26,237,135,100,221,71,245,99,151,28, +181,213,119,239,252,33,126,245,107,126,212,156,123,187,238,219,228,127, +255,133,215,254,194,176,223,31,250,216,135,249,67,31,251,240,96,211,162, +191,119,108,248,239,127,224,15,84,45,250,219,254,209,183,13,207,251,205, +223,242,205,234,103,127,240,161,63,84,251,166,246,247,253,239,137,247,87, +156,237,143,127,226,1,126,248,226,17,126,251,175,189,157,159,248,164,39, +118,247,231,93,241,90,215,219,129,40,27,217,132,225,206,196,247,233,198, +230,156,63,246,137,143,241,207,252,220,207,116,29,20,255,64,189,167,190, +99,158,47,115,234,219,210,207,169,179,162,127,111,45,58,203,54,9,110,155, +95,227,183,245,244,109,124,214,170,216,22,120,188,21,205,162,175,205,97, +173,183,188,141,138,248,198,249,59,7,85,253,95,189,25,137,99,213,218,33, +226,109,53,27,177,178,139,186,53,27,152,248,121,247,89,189,83,125,226,147, +158,56,124,223,186,90,119,172,253,53,63,241,73,79,236,46,209,235,227,11, +104,72,11,111,123,199,219,248,37,95,251,18,126,244,163,31,205,68,196,183, +220,114,11,223,253,162,187,249,213,175,121,245,240,172,145,83,170,245,103, +188,238,141,175,227,219,239,188,157,103,179,25,207,102,51,190,253,206,219, +249,117,111,124,157,10,42,126,232,21,63,196,207,253,242,231,242,116,58, +229,199,62,246,177,252,210,111,127,41,63,248,217,7,121,219,253,206,15,189, +242,135,248,185,95,254,188,248,231,238,129,216,198,68,147,168,85,99,27, +57,170,254,249,223,247,159,223,199,207,249,210,231,112,158,231,60,159,207, +249,187,190,231,187,162,139,244,7,31,252,67,190,251,69,119,243,233,233, +233,208,206,19,175,199,86,93,130,215,189,241,94,179,14,119,180,235,32,206, +140,117,34,210,48,70,228,175,40,136,137,3,155,95,250,229,95,138,136,124, +238,165,232,254,246,250,230,58,191,226,85,175,224,103,222,246,76,158,78, +167,60,157,78,249,153,183,61,147,95,241,170,87,240,141,245,117,97,4,198, +239,249,218,175,251,90,190,245,214,91,121,50,153,240,29,207,189,131,223, +249,174,119,242,182,178,103,224,94,126,222,223,120,30,47,151,75,94,44,22, +252,146,191,251,181,252,234,215,252,232,240,142,49,177,205,121,63,117,246, +199,119,121,195,125,111,224,127,250,63,254,51,254,194,39,127,33,79,38,19, +126,236,99,31,203,247,188,248,30,126,243,91,223,28,5,50,237,89,188,195, +63,139,221,239,60,240,201,7,248,37,95,251,18,190,229,150,91,120,62,159, +243,11,191,226,133,252,246,251,223,158,108,147,139,29,92,251,207,95,127, +207,127,226,175,250,219,95,53,180,126,222,241,220,59,248,127,254,193,31, +80,207,162,215,228,37,252,234,31,123,181,176,55,246,238,143,159,255,182, +119,190,141,95,242,119,205,189,188,231,110,254,209,31,107,239,229,47,254, +242,47,14,228,65,207,184,186,127,175,238,117,251,123,219,254,159,221,94, +244,251,191,53,9,193,54,50,218,91,189,111,214,206,69,142,162,253,187,247, +253,206,177,187,231,16,200,132,83,138,131,227,13,255,235,127,251,175,249, +191,250,43,127,133,167,211,41,255,173,255,230,111,13,142,87,39,36,91,189, +230,226,159,143,127,194,227,135,223,255,197,95,254,165,225,60,253,194,107, +255,175,225,191,63,254,9,143,215,159,35,238,123,124,230,95,173,2,160,44, +203,248,203,238,248,50,158,78,167,195,253,121,199,253,239,72,56,219,216, +41,71,132,184,186,221,27,251,223,207,206,206,248,142,231,222,201,63,246, +239,127,92,145,148,55,213,205,145,236,180,83,221,68,182,173,61,35,30,217, +109,235,16,226,226,160,85,249,61,47,120,176,1,97,181,117,8,118,218,111, +123,223,75,155,106,203,4,214,202,104,6,186,96,11,141,147,153,72,97,200, +56,1,140,208,132,161,174,72,89,230,232,70,59,18,159,106,230,174,168,241, +1,122,140,152,28,19,10,45,138,211,234,203,183,211,226,128,182,60,208,203, +119,178,55,101,131,73,9,42,176,82,102,113,164,62,57,158,13,74,36,52,192, +187,97,62,227,247,103,200,122,8,239,216,128,120,43,165,65,6,50,20,51,165, +217,78,137,225,81,36,40,130,193,162,249,242,70,28,69,174,135,154,172,195, +102,222,39,187,19,54,122,40,149,88,148,93,200,148,1,200,202,10,27,165,11, +165,232,6,71,170,147,213,179,203,243,55,136,4,117,207,248,221,255,248,187, +241,211,63,249,211,120,227,91,222,136,187,239,185,27,74,121,137,180,50, +89,164,222,196,98,18,185,115,70,22,29,241,170,173,27,179,154,52,198,30, +254,103,223,67,222,1,238,197,114,96,148,78,8,238,184,12,194,241,181,176, +2,43,131,160,8,15,28,136,104,188,167,20,208,80,48,174,57,3,30,214,204,70, +59,221,78,181,82,179,92,217,153,180,2,45,143,203,9,82,14,59,34,59,100,112, +90,34,124,247,63,254,174,110,223,223,212,238,59,115,60,66,80,212,80,149, +89,177,229,72,37,252,4,61,162,147,76,93,149,200,81,193,225,88,206,152,200, +10,9,104,17,41,214,36,176,81,84,203,147,161,25,103,167,179,85,46,129,89, +75,54,178,193,236,76,104,113,237,162,57,151,209,212,66,82,100,65,246,25, +57,163,40,153,169,53,235,9,53,114,189,188,179,211,115,193,204,122,97,36, +179,105,82,109,226,221,88,23,172,71,177,50,235,223,236,58,89,151,48,206, +13,100,114,166,8,1,195,221,238,245,55,72,18,161,197,158,146,145,129,150, +103,101,20,64,51,234,151,108,255,29,206,168,192,14,238,111,163,35,78,23, +140,144,184,156,96,53,111,124,16,67,97,116,2,46,189,206,113,166,140,18, +41,153,85,123,247,180,194,153,30,49,69,102,204,21,35,30,122,221,126,126, +64,24,95,82,93,64,30,196,3,82,93,3,108,15,130,149,69,51,178,62,228,78,182, +235,39,80,203,239,231,216,137,170,83,207,195,44,109,61,254,86,27,235,225, +96,89,167,206,142,90,147,144,82,101,75,255,22,78,159,132,194,216,96,236, +137,148,122,28,167,216,109,20,7,39,196,172,116,12,162,11,29,201,136,26, +21,58,151,33,59,26,146,33,152,128,86,99,34,48,158,246,148,167,227,243,62, +239,243,112,255,187,239,87,6,105,148,18,118,140,180,49,142,90,197,109,252, +253,69,57,31,136,84,150,197,173,103,236,26,67,206,208,170,113,86,242,209, +27,93,103,99,237,33,48,235,72,63,196,74,107,141,35,45,107,239,142,73,231, +64,90,5,49,25,196,67,7,30,189,210,164,148,127,102,39,65,48,193,140,29,157, +203,209,51,197,36,160,72,41,139,212,64,214,97,29,192,132,167,63,229,105, +221,190,191,203,216,67,41,229,35,148,209,76,28,51,4,70,44,184,45,189,226, +159,115,201,101,96,57,220,85,117,207,133,226,165,81,224,140,130,112,176, +230,30,1,90,106,88,8,55,13,118,110,152,128,22,43,84,146,236,112,25,182, +141,196,76,252,88,225,48,10,4,172,195,140,84,19,181,32,76,172,232,199,78, +237,31,106,52,111,28,80,26,135,14,155,52,176,34,83,74,85,60,185,183,76, +94,130,99,84,58,201,241,121,44,149,20,133,47,32,163,176,7,113,23,33,229, +202,165,84,145,115,167,165,223,132,13,252,108,2,43,156,191,221,15,78,241, +115,226,132,145,58,168,199,204,130,37,71,233,149,85,139,73,47,85,200,38, +251,227,46,123,166,60,67,214,145,108,88,182,1,32,118,54,74,102,213,75,51, +108,143,156,53,158,166,173,162,14,53,178,44,67,150,229,233,64,130,172,0, +77,127,137,180,193,68,36,143,24,103,145,146,145,171,71,76,138,139,105,15, +147,171,18,98,156,110,196,166,181,142,16,142,234,161,204,216,88,145,55, +24,6,69,25,88,165,157,137,234,131,47,54,70,12,102,47,152,76,130,171,29, +56,121,75,228,100,39,131,209,97,35,213,8,99,104,135,215,31,165,26,33,131, +16,197,160,38,1,184,176,38,68,25,98,40,39,214,93,39,201,163,225,152,247, +14,190,218,194,110,182,39,175,172,246,101,32,163,142,200,129,12,212,64, +234,196,168,115,173,162,124,36,8,75,24,187,86,116,134,108,7,105,147,31, +207,203,59,33,246,223,18,111,71,103,158,48,148,38,187,232,149,6,245,122, +74,163,168,253,250,176,10,38,17,136,109,14,76,86,110,109,139,14,156,25, +20,163,142,202,224,139,32,31,48,201,139,73,128,209,190,7,41,236,131,84, +19,30,123,178,178,86,245,199,216,56,194,216,230,57,222,13,189,150,201,76, +89,197,22,108,219,61,204,21,230,200,62,40,100,143,161,132,160,122,50,237, +32,211,29,189,159,116,128,14,242,57,216,37,35,35,237,2,31,9,100,151,45, +170,1,145,72,112,164,168,57,200,23,71,1,196,104,75,134,55,100,131,4,152, +232,111,120,95,242,124,208,24,64,65,188,191,84,156,100,153,180,178,4,172, +100,80,98,19,89,11,179,233,128,72,101,247,4,19,52,136,214,204,77,189,229, +244,161,196,8,141,176,205,238,28,214,61,0,230,54,123,206,50,26,156,37,40, +110,249,96,39,50,29,163,38,41,232,194,67,15,162,202,28,76,86,222,47,24, +135,126,179,50,29,13,29,201,38,7,195,40,55,27,80,106,75,102,82,181,48,90, +108,80,85,114,81,185,72,19,89,200,84,202,220,139,141,182,183,78,136,88, +107,65,147,204,236,109,54,62,170,107,177,211,51,67,74,34,199,178,241,45, +76,102,229,225,109,144,97,15,153,101,199,67,29,126,173,107,173,219,38,53, +16,194,162,4,0,147,113,106,149,112,118,75,19,72,103,228,78,25,131,152,226, +64,88,236,14,67,58,57,74,75,91,69,214,75,58,44,29,84,244,109,147,172,12, +161,5,173,200,137,15,121,84,228,179,235,111,250,7,7,244,194,202,140,137, +136,108,12,238,60,152,93,221,86,213,39,108,225,71,165,19,30,101,48,186, +20,166,127,87,48,160,133,203,238,37,131,149,163,145,234,108,82,66,22,182, +243,66,180,166,65,139,186,12,72,16,196,44,120,105,124,17,151,150,180,102, +188,57,129,196,113,71,139,73,76,149,206,184,108,21,230,40,38,137,206,81, +18,244,132,119,214,164,74,160,176,237,76,6,93,79,32,182,22,117,97,37,45, +100,226,71,131,138,164,16,26,142,237,1,228,51,200,103,242,252,139,151,36, +168,215,102,49,167,197,183,175,144,1,34,83,228,175,217,158,81,138,75,140, +90,243,221,201,254,213,242,117,126,83,158,41,152,0,137,28,164,26,112,74, +48,186,100,48,150,133,97,202,62,50,121,2,50,217,127,76,66,98,79,14,183, +24,29,245,168,143,11,182,125,127,220,170,196,213,65,193,103,76,34,190,98, +173,42,221,58,42,82,11,74,131,86,54,141,202,91,82,160,4,100,58,178,104, +80,202,105,154,6,33,52,218,136,171,164,132,7,33,29,41,115,196,172,101,71, +7,195,99,100,211,40,202,166,88,233,1,91,49,20,75,25,32,114,116,184,217, +249,59,146,25,171,208,92,167,78,52,133,89,201,200,246,123,160,248,18,221, +64,134,72,212,133,201,92,120,138,102,16,120,221,168,42,52,227,49,187,32, +145,41,48,116,231,141,82,136,18,173,43,52,12,47,18,45,71,196,227,103,138, +223,229,174,175,121,200,252,24,106,192,10,11,227,161,7,71,56,112,16,73, +81,83,157,125,67,174,39,89,200,125,108,149,34,57,143,65,124,38,13,103,135, +7,229,54,153,69,113,36,157,54,206,147,96,147,137,50,81,252,32,60,42,81, +193,200,188,142,231,66,182,23,245,189,195,70,92,188,111,71,36,138,99,87, +209,109,67,50,27,23,53,214,65,42,54,142,1,77,233,103,60,95,212,35,128,214, +193,64,43,238,245,102,143,133,90,198,40,147,73,67,64,59,200,218,42,228, +147,212,249,149,109,86,172,194,64,29,217,75,213,182,193,82,73,152,88,204, +184,96,217,224,76,253,176,39,142,188,45,137,64,197,6,128,100,74,128,218, +151,186,250,177,170,175,223,203,225,101,45,124,80,104,164,81,102,148,133, +166,186,46,145,144,81,52,97,61,100,42,42,195,65,233,152,147,152,215,192, +61,159,68,252,76,15,53,208,242,218,99,215,155,80,110,179,18,229,86,196, +9,178,75,140,77,139,155,68,143,216,180,161,143,127,204,221,93,33,227,35, +148,169,96,173,120,55,156,169,206,238,177,41,61,68,153,55,113,212,198,45, +165,53,217,204,111,32,131,2,232,242,164,233,207,151,220,8,150,186,246,228, +246,219,183,25,60,31,139,202,252,26,69,164,118,196,227,139,103,195,197, +226,56,210,87,153,169,184,118,172,97,202,126,168,135,205,148,122,120,76, +213,68,184,67,14,6,99,66,34,233,209,150,200,242,41,156,14,95,141,92,25, +227,192,30,170,78,0,66,64,19,154,86,162,47,207,145,81,22,151,123,156,0, +222,150,192,8,49,229,192,139,146,45,39,195,45,235,57,48,57,57,45,229,242, +29,89,193,229,172,102,17,244,215,38,52,1,33,4,48,50,20,57,129,204,187,106, +254,12,71,19,0,97,162,204,40,35,69,12,47,15,63,71,196,235,140,97,60,39, +215,209,101,100,54,235,230,195,197,199,55,76,228,153,162,84,65,178,56,211, +19,144,76,29,15,9,142,42,92,2,156,204,180,226,250,180,61,27,16,89,67,140, +110,152,64,193,102,60,253,94,137,123,71,209,61,117,230,44,121,235,30,101, +188,186,138,18,161,87,66,243,26,228,215,234,251,122,182,181,87,99,41,65, +151,203,70,147,213,217,20,203,125,139,120,77,12,37,208,42,51,53,22,201, +132,225,82,232,251,109,8,187,230,114,146,217,143,20,31,193,86,78,24,254, +58,14,89,187,157,101,98,246,40,98,88,197,188,190,56,251,20,112,112,218, +102,56,8,10,107,98,178,87,33,114,201,151,22,230,55,100,81,9,125,179,87, +26,80,193,176,227,111,225,64,31,166,119,220,229,82,146,74,73,117,80,18, +149,22,251,51,74,174,205,135,240,177,26,131,52,229,7,196,103,214,150,89, +0,104,142,66,196,189,99,116,44,122,251,160,9,254,169,133,156,134,1,0,45, +107,156,136,218,9,75,131,147,232,225,117,142,217,130,208,81,189,141,156, +53,28,35,234,120,238,172,2,70,221,125,127,158,101,186,118,76,9,226,166, +189,64,226,32,195,163,0,16,67,155,111,241,62,161,65,181,189,192,141,203, +53,246,21,97,122,122,134,107,171,5,10,145,37,49,59,140,93,15,182,50,75, +208,63,119,168,129,16,198,164,59,207,129,204,9,218,84,64,34,214,44,89,241, +247,248,45,44,201,84,178,46,202,168,14,107,92,220,216,96,95,55,192,100, +133,211,211,37,230,101,142,140,112,19,70,64,214,236,181,206,56,39,2,45, +91,170,72,17,184,251,9,118,76,186,212,225,249,101,74,16,119,37,241,197, +37,36,43,114,19,220,1,38,238,218,154,103,33,152,96,200,175,140,25,39,196, +198,145,25,8,155,41,42,241,70,100,82,196,1,158,170,96,50,197,92,65,85,47, +28,121,47,145,193,52,112,169,36,65,198,81,159,121,79,246,201,206,176,104, +139,9,242,216,146,233,4,119,133,12,17,220,54,195,32,50,184,14,68,108,201, +156,6,222,38,162,56,56,83,36,193,241,191,13,232,131,77,28,56,230,244,146, +225,88,176,37,143,169,64,49,38,240,73,210,31,57,220,50,85,86,25,222,213, +216,126,246,159,83,150,27,73,217,23,73,52,180,241,133,120,158,68,131,140, +181,133,17,161,29,154,60,23,241,142,18,220,146,56,167,101,81,85,39,223, +231,217,198,158,68,162,20,81,58,18,165,19,219,97,36,239,4,59,182,31,110, +112,24,151,75,227,18,110,108,71,10,32,134,218,188,50,157,71,224,147,176, +65,158,231,99,189,116,64,35,105,140,123,200,250,239,241,5,93,107,161,136, +45,100,96,61,217,18,214,141,200,204,242,14,118,100,184,252,22,63,184,20, +145,91,60,205,79,73,101,51,13,132,52,216,172,62,203,80,204,87,88,213,21, +170,166,2,33,71,78,80,140,83,2,185,36,169,136,83,97,181,195,9,168,214,192, +245,235,192,122,215,190,247,236,4,184,118,13,152,151,136,106,205,138,147, +110,14,169,211,165,161,191,191,175,35,26,158,64,127,224,247,155,115,220, +88,239,65,147,21,110,189,54,65,150,229,109,27,32,57,93,144,48,117,109,53, +80,142,140,179,139,107,146,67,169,194,113,72,218,70,179,134,250,217,192, +110,137,206,28,182,17,244,160,245,108,70,64,42,67,65,106,44,49,123,205, +16,6,69,235,223,143,69,151,7,59,131,211,70,7,194,138,228,58,110,133,12, +144,73,7,58,236,116,116,104,240,114,40,235,104,146,63,143,211,230,156,238, +38,121,6,89,120,33,141,200,24,66,28,11,202,219,176,230,250,254,107,103, +36,33,82,141,148,40,18,175,124,79,22,14,118,24,138,70,74,175,29,54,187, +53,142,221,161,53,116,239,42,198,135,186,117,231,161,22,163,81,31,69,44, +212,173,84,202,216,176,182,32,50,96,96,34,32,213,203,68,78,121,72,5,92, +4,93,229,237,214,133,157,228,12,162,84,230,57,119,211,88,226,253,83,6,27, +10,101,241,244,72,100,89,213,6,86,169,110,47,242,57,130,178,236,34,75,30, +131,126,137,227,244,116,135,34,13,156,11,178,156,30,142,157,60,113,76,156, +85,96,54,197,227,178,21,26,2,57,98,157,69,43,181,158,103,111,147,87,111, +29,73,141,77,151,119,206,180,251,138,119,47,8,246,50,249,81,182,75,224, +37,32,132,22,174,165,172,103,205,251,151,7,81,121,116,20,166,183,208,141, +253,27,11,177,14,89,26,218,249,217,77,8,200,179,172,183,208,170,115,142, +237,243,16,252,218,88,138,165,108,235,124,138,72,36,211,202,0,14,0,229, +115,204,39,133,54,14,160,40,75,134,223,25,162,191,147,129,166,6,118,91, +96,123,0,234,134,64,19,96,178,0,38,133,93,39,138,201,208,137,96,130,217, +119,156,242,112,232,201,155,1,213,126,131,205,122,135,108,122,138,147,229, +28,101,17,247,85,147,87,28,164,184,147,67,5,92,16,130,14,20,239,137,44, +21,74,227,28,123,36,77,54,37,167,115,132,212,154,143,209,179,109,157,101, +114,12,63,39,184,72,158,241,180,68,32,113,94,76,9,45,42,57,16,156,58,117, +220,105,163,130,54,91,170,33,47,208,145,206,131,60,241,14,211,113,74,177, +30,19,153,245,238,217,233,81,155,168,217,71,54,37,75,50,188,15,86,173,92, +163,65,142,38,20,75,39,35,202,42,196,122,61,21,169,63,154,163,111,203,21, +240,75,2,228,55,186,80,98,15,129,248,62,146,137,52,137,98,66,20,56,170, +36,131,13,165,87,210,55,40,166,76,168,224,202,222,25,211,222,239,119,171, +34,49,186,130,98,184,95,142,146,102,21,4,147,218,47,178,200,149,211,220, +129,120,90,117,52,161,154,56,46,91,146,177,109,178,27,206,222,85,162,84, +121,72,31,124,162,216,201,14,103,213,65,86,162,74,34,219,51,30,209,155, +12,41,83,223,127,197,197,160,120,223,52,250,104,231,223,83,244,128,253, +239,23,156,56,200,242,162,245,204,85,21,128,163,237,119,111,97,249,92,168, +53,249,245,30,138,224,195,152,7,37,25,142,17,55,154,226,153,27,125,20,159, +247,223,207,146,192,192,166,255,19,110,173,194,50,63,123,101,58,135,244, +30,213,28,33,32,250,195,118,131,117,77,152,204,23,152,205,138,65,141,44, +66,40,197,201,103,0,8,132,38,180,236,127,6,64,89,11,191,247,223,151,21, +192,124,5,52,13,112,177,5,138,83,96,53,39,20,61,33,169,1,130,24,211,204, +4,228,89,251,57,89,235,155,17,26,32,116,204,251,44,3,250,238,65,119,206, +132,83,175,110,154,29,182,155,13,234,124,138,197,98,142,73,225,215,51,19, +4,98,225,120,72,183,4,33,230,58,192,68,198,126,233,162,135,107,117,186, +97,47,21,153,86,216,8,69,178,165,117,103,127,85,239,4,233,78,138,152,220, +42,222,143,117,64,67,78,240,198,114,84,56,143,232,147,229,230,68,65,96, +162,52,3,231,125,6,208,150,89,195,123,41,254,137,195,79,81,144,229,192, +64,102,191,173,24,142,3,117,28,181,6,206,72,241,34,60,227,214,111,222,104, +116,89,7,83,234,89,41,138,200,216,152,128,200,150,184,25,140,200,228,156, +116,191,183,45,137,217,60,230,124,196,25,12,39,108,98,212,124,198,172,248, +34,182,223,137,188,32,211,222,25,166,88,104,133,188,196,75,219,111,138, +148,62,101,235,161,159,200,185,35,17,18,179,153,116,2,73,130,239,48,46, +30,51,71,168,49,69,250,153,113,219,123,180,158,228,143,119,32,155,68,58, +239,16,113,54,212,123,57,231,205,59,78,30,49,213,131,231,9,166,237,211, +4,220,38,129,37,51,155,72,6,55,197,112,8,2,131,50,210,140,107,130,80,63, +226,193,137,211,48,173,45,128,8,200,40,31,218,94,20,149,68,124,99,16,48, +181,237,22,25,160,175,140,180,98,143,186,184,172,112,83,102,6,55,1,129, +128,60,203,16,152,7,4,65,19,196,59,144,188,127,191,104,33,59,36,130,251, +247,99,109,5,108,93,90,22,0,9,96,110,208,28,182,88,111,43,160,92,96,53, +47,149,115,79,21,118,24,64,168,128,205,154,113,126,1,28,234,246,247,166, +43,224,244,26,48,47,9,121,39,203,91,239,129,253,1,200,231,192,233,10,152, +100,109,64,208,84,192,229,57,112,185,6,14,77,251,92,229,156,113,118,10, +44,103,132,166,97,108,46,129,139,11,96,87,183,235,59,91,50,206,58,120,95, +213,183,2,15,106,123,178,215,55,212,21,182,235,13,14,92,96,182,92,97,86, +144,95,91,55,151,200,233,140,28,122,73,233,136,161,82,116,29,83,155,85, +64,36,91,2,164,67,228,145,36,186,33,0,32,61,193,206,25,90,167,155,86,5, +15,4,176,28,90,147,109,232,116,131,140,247,49,115,44,6,73,203,190,11,4, +17,210,16,99,249,67,79,183,24,202,162,189,150,132,46,37,116,42,235,137, +250,129,162,96,220,76,231,138,130,29,226,152,88,167,90,250,244,132,71,181, +223,150,99,34,7,55,137,78,9,125,5,69,123,42,193,17,218,176,1,187,168,178, +10,59,230,66,234,48,204,123,59,64,144,12,70,110,145,69,175,175,205,117, +52,28,167,231,226,117,108,71,140,226,125,88,174,9,224,246,136,235,96,221, +56,116,217,45,68,135,59,119,60,0,0,32,0,73,68,65,84,136,238,161,244,20, +17,47,130,44,185,75,172,173,248,158,244,136,52,179,46,240,7,254,217,104, +109,120,223,168,220,202,214,60,235,68,131,188,82,222,56,116,40,138,143, +251,255,238,4,203,240,8,241,4,93,52,35,63,80,134,199,35,178,182,193,162, +174,228,20,91,136,69,153,216,131,185,161,230,40,144,32,201,20,68,64,211, +52,96,102,228,148,171,86,174,254,17,66,104,90,248,185,200,20,67,53,203, +91,1,208,208,52,224,78,174,144,40,27,107,26,221,195,212,161,1,152,135,76, +159,77,221,161,105,2,2,51,10,202,64,200,34,221,209,166,9,96,14,200,243, +66,145,75,178,172,253,221,38,132,118,145,242,76,235,225,118,198,48,52,245, +248,126,136,235,203,33,180,239,79,29,143,192,134,65,195,223,231,57,48,60, +95,127,111,26,236,247,123,84,53,48,153,229,131,222,251,88,23,7,154,90,172, +15,50,48,24,213,6,56,191,1,172,15,109,118,206,12,52,129,144,55,220,117, +34,180,255,12,59,224,242,2,216,19,112,118,74,152,151,140,12,192,126,3,220, +184,14,92,238,59,123,151,181,217,254,108,14,204,39,64,189,5,46,110,0,151, +7,66,8,12,110,8,77,197,168,103,162,166,219,213,152,154,16,192,33,0,212, +33,33,196,8,117,131,134,3,14,155,13,246,85,134,114,117,130,197,100,130, +92,24,111,56,153,27,165,14,186,83,59,87,78,222,153,38,54,100,72,164,179, +25,38,103,242,103,228,228,52,17,137,20,47,64,182,60,145,81,142,138,235, +163,182,188,64,158,4,53,59,191,8,199,89,8,231,205,125,75,157,112,224,99, +70,161,70,174,40,167,168,90,176,236,132,227,168,136,106,225,127,86,223, +21,81,240,212,172,10,205,128,178,129,153,173,147,147,234,179,212,160,228, +208,86,21,149,63,56,42,147,196,208,45,199,40,131,156,36,230,112,115,117, +102,109,3,21,18,253,246,177,193,141,157,140,94,151,49,187,146,242,186,146, +25,237,57,42,91,199,26,191,115,152,174,169,120,32,49,220,72,30,163,115, +40,7,176,105,163,230,104,226,53,217,255,32,105,152,98,176,141,29,167,27, +221,45,176,70,35,29,28,143,69,240,202,228,79,217,48,19,33,68,210,164,203, +114,105,180,192,24,1,30,229,120,221,25,40,78,251,231,200,199,145,208,188, +112,146,228,32,12,194,1,235,4,195,65,116,34,40,142,134,68,64,161,36,46, +158,198,138,52,230,42,153,138,110,24,234,90,17,199,115,212,145,236,218, +137,111,172,245,218,197,131,102,89,135,247,182,83,213,17,2,35,132,166,157, +51,79,57,178,12,122,44,237,64,88,104,95,36,203,178,238,69,98,210,10,64, +200,40,67,150,177,104,67,209,255,107,117,178,179,97,33,66,104,16,66,104, +167,213,81,142,94,26,153,134,26,252,232,124,136,88,188,95,134,104,220,5, +141,58,220,237,207,123,232,223,4,18,246,162,15,54,57,67,150,151,40,243, +45,14,155,53,118,101,129,197,140,144,203,154,104,55,143,190,63,91,213,6, +120,232,97,96,207,192,234,26,48,37,96,187,6,54,7,96,50,3,38,29,210,208, +212,109,6,190,13,132,197,45,140,197,148,145,81,155,185,111,47,129,245,129, +186,172,158,49,45,129,188,0,202,12,168,118,192,195,195,231,51,166,25,176, +189,0,54,7,194,100,198,152,100,194,112,18,181,78,189,232,130,31,4,52,135, +45,206,31,185,192,62,100,152,44,151,88,221,50,199,36,207,148,147,180,150, +43,202,100,152,29,134,168,29,174,202,170,36,64,41,172,56,81,115,37,242, +47,5,179,156,100,229,204,255,83,156,12,118,210,14,18,93,19,98,32,141,52, +84,2,15,140,184,29,134,93,172,106,113,189,49,55,173,77,94,100,111,107,108, +195,112,11,242,13,190,116,27,100,177,59,251,44,228,207,33,139,86,52,106, +101,98,167,237,151,28,114,9,15,45,106,35,74,50,78,76,68,148,245,113,76, +46,2,167,203,9,178,237,80,140,241,181,78,201,131,159,9,142,254,1,52,140, +195,196,166,251,33,214,190,80,83,61,4,172,106,26,26,85,214,61,30,27,214, +232,141,210,215,16,191,15,139,230,232,192,138,204,8,107,189,31,94,145,93, +204,176,32,221,29,160,239,52,169,160,111,8,138,200,141,48,162,192,97,8, +90,40,134,175,136,156,242,18,120,8,84,82,28,168,248,190,138,241,213,178, +161,92,162,118,106,144,213,232,81,41,26,92,38,74,41,6,58,180,227,159,61, +14,131,10,124,204,26,18,28,20,51,42,95,89,7,46,2,140,126,62,13,141,200, +9,83,212,80,25,5,178,4,160,128,97,135,107,232,142,134,161,24,250,18,142, +172,121,143,241,167,234,76,76,67,11,149,54,89,172,137,47,78,24,99,35,156, +241,223,51,228,57,9,200,95,151,6,250,120,182,63,119,36,0,29,182,117,102, +249,252,230,112,142,119,43,139,35,85,6,66,181,198,141,27,27,212,249,12, +203,107,143,198,89,150,33,43,178,54,22,162,113,222,26,137,145,170,188,103, +220,184,1,92,236,90,135,188,57,7,54,104,91,224,138,5,176,90,16,38,121,27, +100,28,54,192,197,6,200,150,237,127,47,51,30,134,47,112,214,101,223,59, +224,250,30,40,151,192,45,183,0,101,69,56,191,1,92,236,88,125,62,55,64,177, +4,86,115,96,146,67,149,34,168,11,96,250,244,41,47,102,56,57,173,17,174, +111,80,215,1,200,50,209,15,237,59,149,40,157,54,89,137,234,82,0,71,179, +100,8,110,145,115,168,31,19,177,226,134,68,221,197,196,106,238,60,76,237, +26,110,109,142,220,119,234,217,72,113,125,217,26,78,57,123,31,234,89,201, +45,66,66,205,233,215,17,140,205,105,108,209,152,227,103,182,83,1,89,35, +32,112,178,70,63,64,243,28,243,56,89,146,100,208,236,57,46,153,181,75,135, +67,17,29,62,14,6,34,246,224,56,68,134,40,1,129,27,59,101,225,34,142,96, +212,196,56,52,9,121,154,154,33,73,45,114,200,54,44,22,45,116,206,90,88, +75,39,113,113,226,184,88,42,51,59,176,129,107,57,1,123,147,10,30,201,10, +196,144,62,31,236,112,236,89,77,64,60,66,173,38,82,149,239,49,231,103,196, +77,197,236,216,111,214,67,195,250,146,175,237,6,232,239,120,42,32,18,164, +196,161,220,64,4,135,70,217,5,103,44,72,141,172,198,211,90,130,39,69,196, +5,15,170,235,207,0,233,187,104,123,50,129,163,99,200,201,70,215,67,80,230, +48,189,251,253,33,93,236,80,65,7,201,78,162,152,171,84,68,162,0,82,184, +197,100,94,18,206,206,243,60,65,47,182,2,33,236,243,241,197,164,50,178, +197,19,151,87,218,30,130,22,142,111,191,127,32,77,16,69,145,185,238,190, +99,115,17,201,237,61,119,13,32,224,168,97,49,154,106,139,245,122,139,3, +38,56,93,45,48,155,228,209,122,145,128,233,193,173,147,221,108,218,76,125, +182,4,78,79,58,103,75,64,150,1,69,222,110,84,117,96,84,251,22,154,175,115, +194,106,206,200,187,195,21,26,70,195,140,249,138,80,206,8,219,75,198,229, +174,155,119,212,48,214,91,194,102,159,248,252,178,37,217,57,86,72,227,187, +220,78,5,68,86,96,58,155,34,39,74,244,84,8,131,77,137,200,215,54,57,123, +114,40,41,5,58,150,53,56,210,70,83,24,117,50,20,105,5,147,13,123,97,152, +98,196,240,199,29,81,52,247,95,255,174,61,35,108,90,21,225,70,225,177,42, +33,27,6,29,252,254,40,74,205,195,149,65,135,45,38,91,214,13,59,19,103,76, +230,103,106,231,202,121,16,131,146,116,74,91,160,100,127,91,41,158,77,238, +215,120,236,48,35,71,21,209,165,132,233,156,57,70,38,24,116,196,149,169, +105,104,138,60,71,170,165,80,159,111,223,136,251,11,32,107,170,64,106,206, +177,215,81,193,194,249,33,42,21,25,5,74,142,153,113,228,216,103,178,133, +251,40,72,183,104,157,158,87,175,153,148,112,132,172,88,32,26,38,184,50, +25,116,228,101,217,148,8,34,27,5,131,54,91,174,186,115,94,28,63,197,182, +164,226,22,221,141,157,138,134,180,164,6,44,112,130,33,96,139,243,137,214, +23,5,40,145,29,198,45,74,156,112,215,145,58,63,85,120,240,212,104,112,172, +92,97,15,87,147,95,55,72,64,166,136,116,175,200,207,72,92,42,174,48,34, +44,224,246,8,13,240,210,52,78,212,55,204,70,144,71,77,142,85,154,134,159, +133,61,182,155,29,118,117,142,249,106,137,217,164,48,112,44,199,52,84,106, +217,236,135,29,208,28,8,77,205,120,168,115,204,147,57,227,218,45,0,246, +192,249,117,198,122,215,50,227,155,208,110,88,184,222,66,52,179,12,88,223, +32,92,238,218,172,162,159,252,54,153,19,206,78,24,37,1,187,45,163,174,8, +161,161,238,243,219,182,186,179,107,192,132,218,34,11,41,118,166,189,220, +140,122,191,193,102,219,128,166,11,204,167,83,20,116,196,0,144,195,34,49, +61,109,68,241,220,130,120,157,197,25,112,96,69,72,113,26,107,9,205,36,176, +12,241,20,64,175,172,16,177,223,220,128,207,231,251,10,120,72,36,169,199, +148,24,113,245,119,185,152,59,39,131,171,52,95,215,25,120,144,32,4,69,133, +202,72,73,44,21,192,59,147,164,226,194,130,243,238,169,158,212,196,58,43, +187,64,71,236,141,163,8,230,125,174,27,224,196,200,163,14,12,196,44,127, +43,126,69,150,142,110,132,77,16,11,87,25,248,235,10,35,202,202,145,83,82, +198,55,26,244,144,104,153,96,247,250,186,164,25,117,110,56,177,215,246, +206,251,182,223,131,241,99,242,162,14,94,173,200,93,20,140,168,103,238, +255,27,187,10,151,56,230,174,60,117,75,178,72,23,185,165,18,255,78,240, +205,157,109,186,25,155,32,120,58,81,25,143,143,36,3,93,98,103,11,53,68, +190,226,89,8,97,32,195,141,81,2,57,87,153,117,118,99,212,178,117,21,137, +20,3,137,216,64,33,98,34,72,224,6,77,104,16,184,137,8,31,170,94,107,230, +55,199,29,222,41,120,214,82,231,199,9,118,42,218,12,7,236,55,91,108,42, +96,50,95,96,49,205,99,102,43,72,64,91,210,209,17,242,18,152,76,24,121,215, +49,144,23,140,249,10,40,64,216,173,9,251,67,23,177,101,132,162,0,202,9, +99,214,245,189,31,54,140,221,97,52,23,197,4,56,187,21,120,204,163,25,203, +57,144,117,159,63,157,0,69,7,231,231,37,99,190,100,204,38,24,217,253,76, +113,212,217,189,94,179,223,97,183,221,34,20,51,44,22,115,148,25,20,209, +139,216,137,156,201,137,126,5,37,88,146,154,72,64,214,36,215,92,206,77, +55,167,101,172,223,66,141,134,141,43,63,70,162,86,193,139,112,34,101,142, +25,169,114,186,151,173,211,73,163,111,234,148,204,190,9,137,208,10,51,72, +39,106,204,86,165,43,118,50,47,242,157,29,199,78,144,16,203,126,122,247, +128,92,134,36,25,209,39,187,47,222,188,96,249,115,51,236,64,173,8,37,12, +35,142,188,35,155,207,102,231,93,89,103,144,102,192,56,153,12,51,14,234, +227,181,139,36,73,77,193,90,101,241,100,179,55,214,34,47,140,68,227,188, +188,55,242,220,59,237,60,6,164,183,181,242,49,59,55,101,1,35,252,67,130, +227,16,59,39,214,165,13,78,237,189,151,249,10,36,36,122,54,50,167,142,13, +121,177,191,223,164,234,213,146,155,64,81,33,223,4,180,68,198,207,145,63, +187,87,65,241,64,122,120,131,69,68,56,25,39,83,42,248,102,143,5,44,237, +15,105,187,41,246,140,162,32,10,254,253,151,65,166,8,158,104,87,111,25, +150,23,43,116,144,7,58,148,146,144,116,166,230,36,55,222,207,24,52,8,6, +95,201,78,242,1,88,42,67,165,154,111,211,229,2,95,49,47,209,24,239,141, +194,235,254,123,216,157,227,161,243,61,48,89,226,150,211,5,10,178,243,2, +44,17,71,240,85,185,235,73,103,93,79,201,114,238,186,17,8,33,32,202,134, +179,140,144,81,199,132,231,113,78,60,81,219,211,158,9,190,67,104,24,129, +229,52,59,238,126,39,33,237,168,150,186,193,246,198,67,184,220,231,152, +159,221,130,229,52,19,252,137,68,100,158,228,250,166,214,240,216,255,18, +153,142,110,148,114,158,221,52,52,211,205,158,197,171,96,223,163,213,122, +53,175,59,86,122,58,198,27,190,217,231,176,116,215,227,229,48,123,222,249, +72,67,163,61,163,177,140,73,170,51,218,115,140,105,132,129,82,42,149,2, +97,137,169,105,236,172,131,106,208,178,156,237,120,88,212,145,181,243,191, +207,251,155,155,161,86,49,60,126,115,156,185,31,57,51,17,152,162,9,158, +108,236,173,122,27,102,191,241,156,82,89,243,241,119,211,251,21,219,106, +249,190,246,191,91,104,219,233,183,56,114,118,253,155,198,201,223,131,233, +195,65,226,124,226,191,240,60,227,138,191,27,225,117,173,100,152,62,249, +126,145,4,238,95,197,148,96,62,178,103,124,5,98,14,20,238,177,55,9,113, +63,173,46,207,139,164,89,178,81,45,59,139,73,130,160,193,113,163,140,255, +169,68,104,66,155,189,151,121,25,213,115,61,35,170,151,118,208,98,51,249, +57,28,131,231,7,42,220,189,127,125,216,97,179,217,34,20,75,220,178,154, +161,200,100,201,1,206,187,153,167,162,54,99,207,173,241,234,39,19,21,232, +6,216,88,30,110,247,247,69,223,62,71,230,103,60,160,13,121,65,200,29,231, +48,26,22,82,61,203,36,212,254,66,117,192,110,95,161,166,41,114,10,24,115, +126,58,122,248,245,19,27,249,91,3,46,42,242,141,51,136,61,206,141,216,185, +22,148,184,96,118,74,14,31,185,216,54,172,29,40,145,206,165,116,100,30, +229,62,147,134,83,89,149,20,172,75,97,99,0,40,106,174,145,251,22,27,144, +35,153,52,68,31,57,81,250,231,142,65,96,143,33,20,141,192,212,65,50,37, +194,44,68,147,210,201,15,199,168,191,155,124,36,104,148,161,8,187,119,12, +142,46,123,108,15,232,136,205,242,194,70,29,84,234,185,8,50,72,246,245, +93,125,229,87,121,102,76,146,196,44,38,3,142,130,63,148,114,52,204,166, +199,202,146,195,200,201,76,225,112,21,88,156,66,138,87,95,60,7,219,12,151, +28,228,83,240,149,56,154,88,68,199,75,49,110,160,9,183,180,231,207,94,79, +57,188,216,59,145,179,71,169,228,194,107,217,33,178,154,36,49,73,150,35, +135,29,7,108,113,48,174,176,55,39,96,215,191,167,239,100,236,205,51,175, +227,84,29,93,59,45,206,44,5,41,72,7,226,50,209,145,120,150,142,192,61,250, +64,247,211,242,138,188,140,244,185,173,177,210,102,219,142,208,178,82,127, +44,158,148,4,108,100,142,114,104,112,216,92,199,195,159,253,52,62,119,125, +11,76,79,241,168,107,75,76,138,92,245,114,31,171,143,114,50,139,237,86, +144,76,15,166,129,112,98,112,203,66,128,49,45,17,74,220,129,197,208,8,177, +87,102,50,24,163,85,228,171,247,107,92,110,246,56,212,236,64,186,26,36, +34,177,231,35,49,215,193,7,88,31,123,201,116,214,8,11,153,179,37,230,204, +155,9,33,172,62,17,137,121,255,28,67,214,234,178,147,0,255,88,192,105,158, +244,36,195,42,74,145,89,21,54,207,71,82,249,73,3,226,166,19,153,163,18, +23,41,29,118,58,146,117,25,88,155,140,75,99,68,187,198,62,229,87,127,63, +145,20,65,86,0,101,188,86,236,159,65,251,19,230,40,116,181,101,190,81,95, +158,221,55,77,105,152,147,195,204,129,57,79,36,135,27,185,179,117,229,206, +144,130,254,137,244,74,107,21,77,175,71,154,76,137,192,47,143,12,183,211, +168,226,144,10,9,88,88,173,84,189,28,110,24,227,115,149,100,225,226,8,178, +70,113,224,195,32,151,76,74,182,232,67,136,230,142,120,79,75,206,156,106, +74,100,189,170,16,71,170,47,74,167,16,172,39,64,177,251,22,54,220,33,247, +76,80,4,207,147,99,149,189,76,221,29,197,165,8,223,250,109,163,225,209, +80,186,20,145,99,231,163,120,40,129,65,187,122,199,236,68,52,173,177,14, +104,66,171,239,222,246,156,103,72,93,207,52,137,45,117,200,12,68,31,145, +49,185,27,254,210,116,223,63,14,201,241,193,188,24,22,245,225,54,186,226, +121,99,98,72,104,106,52,1,0,101,200,243,113,230,190,15,108,82,58,238,228, +81,234,86,189,183,145,154,244,160,73,237,254,109,38,21,11,182,28,47,139, +72,57,70,17,252,48,163,105,234,54,59,206,11,100,153,114,221,46,76,231,173, +51,69,165,225,99,144,95,28,165,74,24,22,78,83,142,45,233,248,69,22,86,224, +115,28,241,194,169,103,250,82,145,71,97,102,227,78,148,162,89,100,72,204, +137,85,134,143,163,21,128,91,194,138,1,91,78,24,218,164,156,103,2,146,166, +100,145,196,230,236,20,229,66,124,132,200,196,209,25,74,193,188,206,223, +247,214,137,56,122,206,248,109,142,63,19,69,33,155,125,123,191,209,43,198, +35,98,248,157,18,207,145,2,216,61,100,3,71,193,99,111,199,53,94,230,35, +104,177,244,152,143,176,122,80,189,95,130,240,6,86,177,179,102,254,157, +241,214,35,149,163,139,245,82,243,215,253,29,63,158,195,199,88,15,162,243, +164,109,3,69,167,223,252,94,68,130,165,43,75,213,190,207,76,201,74,250, +255,126,236,12,68,9,97,235,224,253,47,31,52,214,133,234,84,108,56,83,206, +222,175,231,192,121,44,56,78,154,192,45,161,15,227,120,216,120,3,200,5, +112,211,23,15,17,220,104,163,117,253,254,220,101,49,148,128,34,99,231,71, +78,101,211,54,238,112,34,11,131,235,204,77,78,32,100,39,225,228,11,124, +180,115,152,157,67,29,195,136,94,253,231,42,67,125,236,146,29,175,19,195, +221,71,36,106,200,169,218,230,85,12,10,28,161,217,164,214,37,10,66,35,3, +118,117,21,218,85,44,115,43,119,49,191,128,156,254,144,52,180,231,119,172, +180,149,24,50,99,70,253,26,191,199,83,33,231,4,35,233,22,210,193,182,53, +63,94,224,65,201,220,42,85,147,213,127,163,207,142,111,91,148,9,52,162, +70,241,221,134,177,118,246,121,40,66,117,248,138,181,73,57,111,123,7,56, +81,219,143,239,110,10,110,246,62,51,157,232,16,174,14,160,82,119,51,70, +6,252,251,121,213,123,165,108,144,254,6,142,202,125,126,50,135,100,114, +153,110,60,101,80,210,205,31,103,192,192,13,54,41,58,153,48,193,186,199, +139,81,251,230,204,153,79,125,166,215,148,152,193,169,77,183,211,234,194, +48,194,86,75,74,146,91,205,99,3,138,197,12,251,216,153,217,24,78,114,6, +155,192,226,251,61,67,16,71,69,241,40,14,13,210,232,235,78,142,209,24,33, +192,208,125,127,8,98,226,154,214,206,50,111,204,34,16,177,16,23,52,188, +230,188,1,155,107,98,65,152,97,181,88,195,186,58,122,163,43,104,101,94, +196,26,231,127,22,80,182,224,35,171,114,136,61,63,172,197,60,160,25,201, +233,11,157,230,84,35,1,247,222,44,101,207,205,180,19,59,17,25,169,196,208, +10,15,252,227,163,33,13,71,204,2,89,26,162,4,162,224,81,113,200,133,56, +109,201,36,30,227,96,81,11,175,54,205,46,162,33,131,17,191,124,33,57,6, +156,152,93,108,63,155,12,143,129,213,109,208,67,103,217,229,18,176,91,92, +96,183,141,55,70,152,136,189,64,1,166,108,135,232,30,178,178,38,49,60,203, +71,104,108,222,252,116,117,143,200,207,97,73,221,51,246,70,167,248,82,222, +30,85,139,236,121,99,55,240,229,35,124,43,130,30,48,198,81,169,44,157,90, +197,35,148,97,198,24,83,228,144,53,91,192,86,171,73,173,36,153,127,194, +193,171,200,9,69,140,8,178,59,57,193,19,74,227,35,192,190,69,109,152,226, +245,35,103,125,72,160,216,156,56,249,108,239,172,211,19,78,187,122,199, +246,129,193,12,14,157,99,39,114,107,55,254,34,167,224,150,68,228,175,218, +144,117,132,29,66,64,70,153,34,145,120,224,173,157,73,238,211,93,108,174, +77,209,16,211,142,115,54,212,255,56,116,19,252,136,18,244,25,56,57,217, +113,136,200,143,230,253,124,233,106,40,146,116,59,232,240,255,123,153,255, +241,204,150,76,91,169,31,57,119,135,84,101,131,146,59,67,55,153,221,221, +12,47,148,225,13,98,148,179,60,96,254,61,253,121,41,150,51,187,101,5,118, +75,6,233,8,93,242,157,220,189,58,82,199,138,145,32,161,226,119,196,73,164, +238,225,209,115,55,136,141,80,50,227,64,138,128,100,198,171,251,235,125, +28,38,69,10,154,116,58,20,232,72,86,100,209,139,99,61,48,86,70,20,142,149, +98,23,209,242,144,43,155,187,255,101,2,75,114,186,107,204,168,86,118,178, +114,74,205,66,242,115,57,36,178,89,74,134,169,199,32,109,28,69,76,83,133, +79,107,43,57,137,20,164,7,37,147,27,36,123,120,204,113,233,106,78,236,59, +37,214,138,220,55,240,223,150,175,60,227,233,123,3,28,17,237,58,138,18, +112,178,172,104,215,60,139,126,169,83,137,11,28,162,8,147,113,188,153,38, +189,225,28,69,159,67,13,210,180,144,7,116,223,31,130,142,136,40,65,105, +147,186,239,128,211,101,107,251,91,73,204,59,226,8,244,13,96,52,77,64,195, +193,37,119,104,42,20,71,199,142,128,40,114,164,132,211,179,121,151,28,65, +72,81,189,217,201,240,216,232,18,139,117,138,147,40,78,30,64,119,128,149, +227,96,25,36,12,141,32,83,178,63,21,89,79,43,243,29,253,85,72,131,58,67, +70,247,66,169,225,57,25,65,10,7,176,56,16,81,188,87,228,230,210,114,143, +105,208,130,39,55,64,137,231,162,56,146,247,209,136,213,17,50,102,33,103, +194,55,213,200,3,7,74,29,255,95,114,35,127,21,160,71,154,200,48,164,180, +99,206,44,118,238,158,84,172,69,211,40,233,142,244,121,161,68,81,203,202, +18,71,28,10,142,239,160,79,104,245,8,187,227,254,176,104,27,166,68,150, +158,58,127,98,150,162,75,30,99,165,223,225,236,32,167,238,14,57,212,190, +238,116,146,61,207,28,5,20,148,192,175,124,254,30,93,217,252,172,51,74, +185,71,28,173,173,4,248,211,182,209,126,62,57,231,141,124,52,143,99,52, +130,41,254,91,239,12,28,199,246,40,105,107,24,150,124,28,219,112,187,197, +246,236,50,244,24,17,142,158,189,179,241,132,164,213,84,207,183,173,119, +76,198,193,35,114,170,233,104,69,169,64,221,100,132,98,7,133,169,140,171, +87,121,234,166,174,193,252,30,225,230,58,155,143,213,72,233,200,51,48,143, +198,52,35,74,83,171,142,70,136,87,103,173,169,236,78,102,170,209,51,199, +66,85,81,214,103,163,253,171,234,69,55,67,65,100,155,57,227,120,71,52,95, +81,123,60,26,213,38,180,141,111,122,77,111,226,76,144,179,127,106,141,156, +161,142,184,201,232,250,24,106,18,41,176,93,145,21,223,204,122,166,206, +227,177,172,225,47,115,103,142,103,86,250,28,226,38,178,220,212,217,250, +75,239,231,145,125,102,190,185,245,176,136,160,186,139,241,36,230,43,247, +154,18,182,43,58,135,56,98,75,82,211,129,109,32,197,199,239,182,187,118, +87,160,69,55,123,38,147,255,126,156,133,157,190,83,87,13,152,116,80,50, +79,51,138,174,88,59,58,114,246,255,75,126,7,87,156,1,62,102,175,225,156, +181,35,123,225,217,247,228,249,167,126,70,74,23,153,134,16,80,135,86,38, +84,17,178,41,29,173,176,8,217,162,151,54,115,149,163,206,93,150,89,84,43, +251,90,55,13,2,7,29,169,115,42,11,139,107,33,81,36,45,254,40,26,253,11, +109,100,67,8,8,253,247,211,21,208,11,251,119,112,168,180,210,21,16,86,226, +240,81,228,76,25,204,53,170,208,242,1,188,255,133,80,183,179,2,152,175, +184,68,61,123,59,160,225,10,85,168,112,8,21,170,80,163,230,96,218,72,196, +51,113,172,142,213,78,22,28,255,78,173,19,7,212,161,30,80,16,134,47,29, +203,14,4,207,236,51,108,61,206,198,49,98,13,147,109,108,17,231,144,3,154, +238,249,252,249,8,222,190,210,81,132,96,68,67,228,103,199,104,151,154,146, +154,88,7,134,85,220,210,164,27,78,100,207,246,95,249,8,194,22,233,184,31, +89,75,74,100,86,4,114,6,115,5,132,80,35,116,107,203,110,182,219,158,159, +154,107,52,33,32,184,23,193,32,13,137,251,68,201,90,55,69,78,194,83,166, +139,130,96,51,117,47,154,162,202,87,113,164,69,160,208,109,86,84,50,64, +98,51,108,25,149,116,234,198,169,247,231,227,65,48,39,96,120,74,189,11, +197,8,140,111,11,233,200,171,80,60,198,253,138,200,111,152,193,194,49,50, +203,182,140,44,207,38,39,206,179,93,187,99,178,214,160,52,10,67,112,209, +88,74,160,53,16,62,149,201,162,117,49,247,131,157,201,184,118,253,229,158, +69,104,53,37,208,79,22,44,122,2,208,240,168,205,76,169,202,131,40,216,42, +69,202,33,178,32,223,251,17,233,209,181,78,40,214,58,118,9,85,27,142,163, +21,158,130,81,231,17,122,194,72,100,106,148,136,140,91,219,20,90,201,88, +210,186,116,105,71,45,153,202,208,2,16,204,71,192,84,190,50,58,239,166, +0,160,170,47,113,113,216,33,208,28,139,233,18,243,44,19,160,150,252,249, +2,139,233,162,251,121,162,72,205,140,186,57,96,95,95,98,83,109,177,107, +66,251,142,217,28,39,211,21,86,101,39,44,195,53,42,6,138,172,64,230,60, +93,224,61,46,54,143,224,162,201,176,156,93,195,73,57,65,222,17,119,2,7, +236,247,15,225,60,228,88,148,43,44,139,178,155,159,64,66,5,202,47,84,39, +107,84,81,22,150,118,237,199,230,185,161,11,62,118,209,243,101,80,178,175, +55,153,117,120,206,189,170,30,193,245,10,152,148,203,97,61,201,164,237, +227,59,197,141,124,18,120,245,208,134,246,215,27,84,204,200,135,253,161, +65,85,42,85,252,63,142,126,57,205,67,9,233,129,214,200,180,231,35,55,231, +131,185,193,110,255,48,206,67,142,121,185,194,170,152,196,147,16,137,17, +130,60,63,103,56,41,167,237,232,102,78,215,41,129,116,15,14,95,145,193, +93,169,37,5,63,237,183,217,80,170,198,149,108,33,179,36,6,101,139,140,158, +253,21,153,127,10,217,74,53,158,250,103,231,10,66,8,82,191,155,232,93,33, +26,38,140,38,5,194,34,7,38,236,192,149,53,252,52,2,146,66,251,142,113,244, +163,207,116,165,72,252,145,103,169,53,137,236,108,226,60,246,70,140,149, +196,49,252,12,207,58,44,190,26,1,75,253,172,232,13,74,211,180,81,119,145, +23,110,213,152,204,144,255,129,170,198,9,29,91,41,61,233,133,112,66,15, +153,129,33,115,206,243,2,89,82,112,70,239,16,57,41,166,163,143,163,235, +29,236,227,253,253,247,23,74,134,246,152,209,215,24,235,16,89,177,169,193, +170,199,48,216,31,195,7,173,137,193,161,193,174,94,99,125,56,0,249,18,39, +211,57,74,202,186,119,12,0,55,216,87,151,184,172,15,160,108,137,211,201, +28,165,116,238,125,192,195,212,14,176,9,21,182,135,11,156,87,53,242,98, +129,211,249,9,174,13,142,33,71,158,101,221,56,220,45,46,246,151,216,242, +12,167,243,21,102,145,131,106,112,168,183,216,54,13,178,98,137,69,49,25, +230,2,48,106,28,170,75,92,214,53,168,60,197,162,40,7,213,167,113,232,11, +34,13,7,37,243,106,206,137,146,208,52,113,145,103,196,52,107,149,77,247, +127,141,125,125,137,203,186,66,86,158,96,49,4,31,172,207,71,183,153,131, +84,106,98,2,128,61,156,117,221,237,71,126,11,86,229,20,133,41,66,171,110, +129,94,149,139,57,145,11,57,163,202,193,64,216,225,98,191,198,150,39,237, +254,100,89,59,16,135,245,243,217,102,162,168,169,81,25,6,86,165,54,245, +51,145,69,50,2,56,236,112,177,191,196,134,167,56,155,159,96,54,56,230,6, +135,234,28,23,117,5,42,78,186,192,41,17,156,244,231,39,111,207,79,222,207, +15,79,24,171,65,100,136,45,22,69,24,103,206,235,180,135,144,32,104,176, +87,107,22,17,100,116,127,199,161,62,241,160,174,116,66,74,94,121,145,99, +180,32,30,141,34,157,254,216,162,220,151,14,109,178,70,236,55,173,146,140, +138,35,246,129,173,227,27,21,186,158,104,109,206,122,68,119,102,59,51,95, +62,43,41,237,115,69,253,226,132,154,113,212,122,7,68,143,118,76,63,73,169, +211,196,129,134,70,81,122,125,12,11,153,142,173,165,196,233,62,130,104, +22,171,163,214,107,253,157,34,193,177,215,180,231,212,186,249,120,2,68, +9,13,140,94,54,186,205,224,121,52,162,148,81,20,193,194,141,112,142,85, +36,142,114,91,29,138,9,15,145,96,70,199,240,27,141,127,176,148,19,101,135, +215,79,70,38,51,162,65,9,98,97,215,243,158,17,93,17,237,10,131,111,158, +137,251,121,1,204,201,201,140,241,132,122,50,207,201,104,194,30,219,195, +5,214,77,142,249,100,133,69,81,162,200,186,254,119,98,52,205,1,219,195, +57,214,161,192,108,178,192,50,159,160,16,26,218,118,132,28,115,141,67,117, +142,135,246,53,38,147,51,156,77,166,40,199,1,246,96,132,86,200,39,52,216, +87,231,184,104,50,204,39,99,118,91,16,33,132,6,141,157,194,149,229,237, +154,49,218,50,66,117,129,235,135,61,178,242,20,167,147,57,38,68,55,201, +5,224,86,134,24,237,204,253,166,195,233,137,218,192,131,4,172,219,132,177, +109,32,163,28,121,54,142,173,36,155,122,178,92,131,6,85,117,129,71,14,123, +228,229,25,78,39,51,76,178,17,203,14,8,8,129,145,103,249,112,38,26,110, +0,202,91,7,68,45,194,211,112,51,0,81,12,66,78,57,50,98,212,205,22,151,251, +115,84,180,192,162,156,99,154,101,32,100,226,249,245,229,139,145,140,4, +242,213,15,32,10,53,2,55,216,87,23,184,104,72,236,79,142,156,218,236,57, +112,214,197,204,97,208,70,200,178,28,196,93,249,38,203,81,12,129,119,64, +187,226,185,144,3,246,178,23,241,253,104,176,63,140,231,99,81,148,200,41, +71,158,5,212,213,26,55,118,151,104,178,37,150,147,57,166,25,181,159,157, +183,1,72,8,13,26,6,218,195,130,238,174,119,211,49,135,18,97,61,238,47,8, +68,89,59,96,75,157,147,26,129,8,57,73,244,128,132,83,66,156,73,82,2,254, +228,171,73,49,42,67,166,216,225,196,93,20,221,250,146,76,40,142,100,108, +214,182,18,156,192,223,160,148,30,194,99,146,32,230,171,248,241,71,106, +211,150,142,206,142,141,53,240,136,156,96,121,148,55,67,55,33,33,146,202, +152,205,26,42,91,234,186,152,4,178,225,162,186,49,231,63,149,193,199,170, +0,14,146,171,158,57,61,133,192,83,24,72,78,151,73,160,209,169,137,48,0, +64,155,106,203,161,105,0,34,228,189,88,120,102,32,250,97,212,107,16,226, +111,94,141,133,69,61,62,139,122,84,120,40,138,141,89,33,7,180,211,211,8, +200,179,124,252,126,206,180,150,117,191,180,82,107,220,171,51,202,207,143, +154,95,228,4,183,142,91,218,25,47,64,188,63,41,209,81,229,136,244,223,235, +131,199,234,253,201,13,100,250,155,239,34,49,220,160,14,91,108,170,45,14, +33,199,116,122,134,85,158,119,136,6,131,209,160,106,182,216,30,182,56,112, +129,201,228,4,39,69,161,12,224,40,41,216,47,112,131,186,190,196,245,253, +117,172,121,129,107,243,107,237,103,82,6,162,128,208,212,216,29,46,112, +126,184,192,174,9,8,8,96,42,80,82,142,188,152,99,89,206,49,167,26,235,195, +37,46,171,26,148,47,112,58,63,235,190,183,251,102,174,112,168,214,184,168, +118,168,179,5,174,205,86,152,16,57,176,155,233,164,37,2,135,10,251,250, +18,23,251,61,152,8,25,106,108,171,10,76,19,44,166,103,56,155,206,145,163, +70,213,236,177,57,92,98,93,29,208,0,200,242,57,78,38,215,112,90,22,67,80, +230,157,175,54,113,169,135,231,171,178,5,174,205,87,152,14,237,126,237, +154,174,247,7,112,62,199,106,50,67,206,53,182,135,115,108,2,97,90,158,96, +89,100,8,161,193,161,186,196,186,222,96,223,48,64,25,202,98,133,147,201, +18,37,182,184,220,95,98,219,4,80,150,35,52,123,4,244,207,191,64,145,245, +122,3,118,132,166,179,58,172,117,216,67,83,97,119,184,196,249,254,2,187, +16,16,136,17,144,99,66,57,242,124,142,213,100,137,121,86,99,93,109,112, +224,28,5,49,170,106,131,3,103,152,78,207,112,58,41,81,31,46,177,105,8,179, +201,25,78,202,12,77,179,195,102,127,137,61,79,176,152,158,96,89,228,26, +132,21,202,142,33,212,216,29,206,113,190,191,236,190,63,128,209,158,143, +44,159,225,100,186,196,12,53,54,135,53,118,129,65,89,134,186,218,33,208, +4,139,233,41,78,39,19,160,217,97,125,184,192,69,85,131,242,37,78,103,167, +56,41,75,209,235,219,160,106,118,88,31,46,177,174,170,238,138,148,152,77, +78,112,50,93,98,146,1,8,53,246,135,27,184,113,216,34,20,167,56,155,174, +48,151,210,209,82,26,149,19,116,60,50,165,51,114,74,105,46,46,60,90,237, +72,81,55,249,57,20,233,135,199,74,197,228,59,115,242,234,140,48,145,132, +65,72,143,56,131,184,158,207,55,145,68,89,84,49,245,167,71,232,182,30,27, +140,175,18,157,73,56,67,74,4,194,50,248,145,25,176,165,169,31,221,247,35, +116,88,138,21,4,175,30,123,195,49,91,147,224,179,149,175,174,149,28,33, +122,143,101,111,78,48,45,10,128,145,231,121,71,214,10,96,102,228,200,163, +162,21,115,219,58,199,1,200,139,44,142,76,153,187,159,119,159,71,90,123, +153,57,140,159,159,231,0,101,67,246,152,23,221,247,55,242,251,217,100,96, +108,254,94,158,127,26,4,97,192,64,150,103,17,155,142,3,156,191,239,190, +63,107,255,61,132,238,253,242,44,126,127,249,124,121,39,225,38,34,91,70, +232,126,158,248,123,54,223,223,7,16,253,16,159,80,99,123,184,196,38,212, +200,104,142,211,217,28,147,44,239,2,133,0,230,26,219,195,26,155,166,66, +150,205,113,58,149,63,23,235,131,54,11,69,23,172,48,183,117,113,102,128, +235,13,214,251,28,249,244,4,139,130,64,76,200,178,2,147,114,138,105,216, +131,243,2,179,114,133,121,94,116,89,97,75,186,172,185,192,172,152,161,230, +3,66,86,182,165,128,126,95,67,27,64,156,87,123,112,87,42,152,216,0,139, +198,246,75,102,30,246,155,67,64,93,95,226,98,119,142,77,147,97,54,89,97, +86,46,144,227,2,59,158,160,204,115,52,245,5,46,171,61,106,42,49,45,207, +112,235,164,198,118,127,142,109,215,10,196,52,54,1,133,110,48,82,187,191, +29,12,214,5,56,231,245,1,156,45,113,54,153,99,138,54,171,100,14,168,234, +11,220,168,14,64,54,199,170,156,32,71,235,208,214,33,160,200,87,152,82, +141,245,110,131,109,19,80,22,115,156,206,86,109,198,219,59,109,222,225, +124,123,142,203,134,49,41,87,88,22,25,170,138,113,224,41,38,121,137,12, +66,98,151,29,30,117,31,28,14,251,135,54,208,236,208,5,202,74,76,202,89, +187,63,161,196,172,92,98,94,148,200,7,45,243,3,46,247,151,184,60,28,144, +23,75,204,138,5,38,8,224,38,160,160,12,212,28,176,15,1,121,177,194,188, +200,128,102,139,245,126,141,3,10,204,166,75,204,139,188,167,77,58,231,49, +171,193,23,0,0,32,0,73,68,65,84,187,69,105,38,229,28,211,166,2,115,142, +217,100,60,31,0,129,235,75,156,31,46,176,169,9,147,233,10,171,162,64,133, +128,29,151,40,243,28,85,104,64,156,99,90,204,81,241,190,59,63,249,0,55, +135,112,192,250,112,3,219,144,99,82,156,225,209,211,241,179,219,12,191, +35,238,53,123,236,154,61,26,154,98,81,204,48,161,204,25,174,13,237,84,201, +144,99,172,145,183,8,36,217,191,231,168,79,141,172,100,43,177,153,57,204, +130,41,22,131,225,177,132,168,195,151,97,175,133,134,227,172,64,113,3,248, +8,49,192,50,215,18,78,57,158,211,44,158,41,133,216,178,239,20,225,124,143, +27,204,240,81,142,0,89,134,36,39,28,107,60,16,36,134,37,152,157,32,64,246, +82,178,97,66,114,28,44,38,227,25,118,80,143,56,200,139,249,104,30,99,219, +228,231,17,143,2,250,220,33,150,246,234,255,160,104,66,211,194,146,25,181, +25,25,161,37,154,25,205,101,34,66,142,28,92,152,15,235,107,69,132,150,172, +148,97,48,254,96,9,87,19,178,206,233,80,247,196,77,215,111,159,103,89,251, +253,125,68,78,177,6,242,248,247,102,74,21,217,159,139,231,23,217,63,17, +204,223,183,188,3,238,234,254,195,223,247,239,111,14,58,129,219,192,193, +204,226,26,207,132,124,254,152,154,70,89,183,62,125,237,85,74,208,54,59, +172,247,107,108,57,199,180,60,197,178,152,162,16,135,44,132,238,231,33, +199,116,114,138,101,49,233,234,187,194,216,216,245,237,231,168,103,132, +178,92,96,201,1,117,115,3,219,106,131,60,159,98,146,231,40,137,0,62,96, +95,237,81,241,4,203,233,9,150,197,164,53,176,221,89,44,178,128,208,108, +176,62,84,8,52,195,106,186,196,172,51,208,224,182,238,124,113,216,161,201, +22,56,157,204,49,203,243,104,70,96,191,130,106,127,153,209,52,151,184,216, +175,113,192,28,103,203,54,147,172,171,11,108,56,195,180,156,33,227,77,91, +47,47,86,56,41,102,152,230,192,97,191,67,205,25,202,98,142,121,239,64,187, +47,105,247,143,132,20,118,64,213,116,207,71,109,240,49,43,242,33,59,109, +154,13,46,14,91,212,180,192,181,114,129,41,5,236,14,45,135,32,159,156,97, +153,53,216,85,27,236,184,192,98,118,138,69,81,140,74,128,68,8,205,37,46, +118,55,176,9,132,217,228,20,171,34,67,93,111,80,97,130,197,172,173,67,231, +48,61,140,54,210,23,243,11,198,243,39,13,192,30,251,106,135,26,83,44,103, +39,88,246,207,64,0,55,91,92,30,110,224,188,10,152,76,110,193,217,100,137, +18,59,172,27,32,207,151,109,176,113,216,160,198,20,39,69,137,172,217,224, +162,218,98,143,9,150,147,21,22,69,222,97,48,226,254,244,83,43,7,187,93, +99,95,237,80,209,4,203,233,106,120,39,2,58,130,231,37,246,152,225,116,121, +138,101,78,168,171,75,108,66,134,201,228,4,139,114,130,156,25,129,54,88, +31,14,8,52,197,106,186,192,172,11,46,129,10,135,250,162,229,108,228,11, +76,243,214,249,103,14,2,151,21,51,156,100,83,44,145,33,207,114,67,254,164, +56,115,179,217,36,123,181,50,191,54,45,203,108,81,246,171,210,247,132,67, +32,195,8,30,6,80,177,227,119,73,59,23,151,84,41,3,152,84,95,157,63,170, +73,147,108,41,237,8,213,82,140,206,221,50,192,165,163,143,40,200,157,115, +26,53,55,96,132,70,236,115,57,14,208,32,195,99,253,205,58,80,227,112,7, +7,202,62,162,194,78,182,110,159,41,26,204,66,166,85,204,203,194,201,9,136, +116,95,74,212,62,202,17,139,4,74,9,82,109,172,124,87,167,133,198,9,144, +228,119,22,69,86,12,14,161,245,139,70,138,207,192,12,52,28,126,138,32,23, +234,57,189,189,94,121,87,139,234,35,223,46,105,31,215,137,8,101,158,143, +47,66,221,67,72,129,18,65,216,160,44,83,36,13,54,172,58,234,179,14,249, +189,242,76,103,217,56,169,14,45,99,62,235,29,82,31,157,103,250,96,81,71, +68,3,147,30,74,192,130,34,209,7,57,153,110,107,65,20,252,101,109,13,114, +176,5,13,154,206,185,215,217,28,171,114,142,89,214,138,217,12,181,241,102, +139,245,126,131,58,155,97,53,91,98,150,83,7,217,59,186,236,178,150,42,140, +76,70,37,102,229,10,220,28,80,87,64,217,43,3,114,141,221,225,6,206,235, +172,115,72,147,225,187,135,10,22,215,216,85,45,169,234,100,182,196,50,47, +70,231,222,172,113,177,95,163,42,78,112,86,46,48,45,50,100,76,134,138,98, +144,198,238,172,53,188,199,229,225,18,135,124,133,107,229,18,243,156,208, +52,107,92,84,1,229,100,133,41,14,56,63,84,109,25,162,156,163,200,186,128, +224,176,3,242,19,156,148,11,148,153,157,94,37,114,36,14,168,154,13,46,118, +107,84,249,9,78,39,11,204,242,108,116,238,97,143,203,253,5,14,217,2,167, +229,18,147,44,224,112,56,199,141,67,131,201,236,20,139,44,96,187,63,199, +14,11,156,76,86,88,148,153,80,198,98,132,230,128,245,238,2,151,33,67,134, +3,182,135,71,80,243,53,156,77,174,225,214,172,229,6,80,36,41,202,138,0, +195,166,70,215,239,223,152,200,85,216,237,111,224,188,206,177,232,178,227, +161,52,21,106,236,170,115,92,84,132,229,236,81,56,41,103,40,51,2,133,25, +86,211,41,86,4,132,102,141,139,26,152,76,75,100,188,197,197,126,135,38, +159,227,116,178,108,215,66,26,57,30,239,207,80,207,230,26,187,253,13,92, +212,132,249,180,35,206,117,207,92,55,123,172,247,23,56,100,43,92,155,156, +116,251,119,142,139,234,128,108,114,218,145,12,91,100,106,119,184,196,38, +76,112,50,93,181,231,135,71,229,193,12,4,226,6,187,195,195,56,84,51,156, +206,175,225,180,44,163,18,23,33,111,121,40,178,95,8,169,204,82,100,145, +145,80,188,116,94,20,75,160,10,254,209,72,200,165,40,139,103,249,223,217, +240,216,89,56,64,182,99,176,160,80,61,68,9,157,201,156,137,98,2,150,33, +240,81,82,97,92,36,56,66,133,142,58,199,202,202,126,179,67,110,29,185,7, +113,37,195,9,76,44,56,65,182,4,49,142,252,97,134,63,176,195,165,119,25, +39,42,125,18,27,118,166,151,233,10,73,94,56,218,127,241,121,112,105,136, +17,18,47,39,162,142,107,164,207,10,91,95,2,24,129,215,174,155,130,201,111, +51,215,4,35,83,2,128,139,20,200,179,89,200,230,220,129,21,201,122,36,41, +179,120,201,254,103,34,106,83,81,7,141,19,207,228,37,97,210,181,240,166, +110,218,223,233,97,102,226,193,137,178,56,152,16,108,76,93,243,39,21,65, +245,34,44,227,87,246,100,38,61,11,139,59,130,83,211,180,42,117,57,10,39, +210,99,17,40,114,151,109,140,72,4,71,83,125,198,230,68,130,208,226,54,4, +63,169,129,222,178,142,47,113,89,237,17,104,129,179,201,18,147,62,243,231, +0,32,116,63,63,32,208,28,103,211,37,74,202,226,126,114,230,113,190,113, +31,57,179,168,197,119,16,125,8,123,236,3,144,23,11,44,138,9,10,14,216,85, +231,56,175,107,228,197,163,112,146,75,231,62,150,5,118,135,115,108,57,195, +124,114,138,121,150,9,4,114,135,205,126,141,61,77,113,58,89,98,66,0,135, +78,112,150,172,6,178,24,108,203,12,230,61,54,187,53,42,158,98,53,61,197, +34,103,132,122,141,139,106,15,206,230,88,100,220,214,196,179,37,86,147, +25,74,110,80,29,54,184,56,108,90,164,96,186,108,217,219,170,225,91,16,67, +9,3,42,178,199,4,39,211,5,166,68,8,28,144,33,3,83,91,131,62,96,138,229, +100,133,9,53,216,236,207,113,94,29,144,21,45,239,225,176,191,142,109,200, +48,159,157,96,81,100,131,164,110,75,246,59,96,189,191,129,77,200,176,40, +231,8,213,195,168,48,197,188,92,98,81,230,221,121,9,8,92,33,244,100,193, +126,236,49,139,32,186,59,91,177,110,116,27,252,237,171,11,156,55,53,242, +226,20,39,197,84,196,158,161,101,172,87,1,101,121,13,215,202,89,71,148, +35,128,114,20,20,16,112,192,182,218,161,161,12,57,31,176,173,106,208,228, +20,215,138,153,64,135,96,50,161,209,80,50,51,246,221,249,200,138,107,56, +41,167,29,215,161,133,203,55,251,75,236,49,105,247,47,235,130,137,67,5, +206,87,45,239,128,218,186,249,174,186,192,150,115,204,167,167,152,231,99, +240,222,94,137,28,101,121,134,91,139,5,54,187,27,184,104,184,93,175,46, +240,8,97,92,191,172,111,95,29,18,16,18,42,140,49,171,124,12,84,172,179, +239,147,44,97,87,68,102,76,195,251,91,186,211,56,61,76,57,99,22,252,143, +193,217,141,182,70,53,47,71,159,223,151,215,72,7,3,18,1,96,219,105,76,38, +227,36,49,234,219,150,122,73,251,193,238,61,217,6,71,68,182,241,80,97,111, +108,32,237,209,76,176,95,83,239,247,137,237,36,69,35,178,196,142,211,18, +140,244,40,59,142,74,28,100,226,29,17,0,26,234,25,11,214,161,28,168,54, +152,106,21,204,144,232,222,48,105,138,144,112,102,165,12,73,195,125,86, +239,168,92,0,15,236,125,86,220,45,175,117,144,84,160,40,3,66,40,9,94,179, +206,166,125,172,32,153,86,203,241,127,125,166,43,90,88,84,29,136,229,239, +27,137,85,211,174,35,181,201,7,184,150,114,80,46,6,21,178,12,50,132,228, +166,9,20,134,81,172,170,229,130,6,81,156,222,185,141,247,47,214,180,3,115, +251,253,153,150,138,96,26,163,241,65,14,208,78,75,22,109,77,44,33,35,98, +129,126,232,245,144,193,22,119,6,114,219,245,161,151,197,25,150,125,255, +121,143,45,132,29,182,213,14,187,38,160,40,78,113,90,78,80,246,76,238,14, +209,232,15,134,154,241,76,109,77,188,25,50,144,0,70,64,21,118,216,238,15, +8,217,18,143,154,46,48,5,163,106,182,216,84,59,52,152,225,36,207,218,161, +52,220,99,48,173,115,223,87,23,45,233,169,88,161,160,3,14,21,33,47,74,20, +8,216,29,54,216,52,140,73,57,69,198,123,236,66,141,58,148,152,23,19,148, +82,254,182,15,20,187,103,231,166,205,220,215,77,134,229,236,4,243,140,81, +85,107,92,86,27,84,180,192,233,164,64,93,157,99,199,140,73,73,104,234,29, +46,155,13,182,117,0,242,19,156,77,102,152,230,100,72,107,218,190,132,112, +192,174,106,235,230,147,114,138,60,28,176,227,26,53,23,152,230,132,80,175, +177,169,107,228,229,18,212,172,113,227,112,129,203,58,160,152,92,195,181, +233,4,8,91,108,235,26,76,11,20,92,161,14,89,231,100,8,196,7,108,247,23, +216,52,25,166,147,21,230,89,133,203,38,71,201,101,75,6,227,118,253,154, +122,139,203,195,245,174,211,225,26,78,203,41,74,234,238,19,196,153,166, +56,152,101,102,212,97,139,109,189,109,247,167,200,208,160,155,17,193,13, +246,213,6,155,170,70,57,185,134,101,57,235,200,161,163,51,225,16,80,213, +59,236,155,22,22,111,66,142,101,185,194,172,104,107,218,164,184,49,253, +253,17,87,138,25,77,127,62,168,253,254,208,157,15,132,125,75,134,107,50, +44,102,43,204,51,66,93,175,113,81,109,80,101,11,156,150,139,54,100,14,85, +219,198,121,56,0,229,18,37,215,216,87,140,162,40,145,129,193,97,204,28, +235,230,128,154,91,14,198,170,152,128,192,104,234,13,46,247,55,112,201, +5,22,147,107,56,41,166,40,6,3,206,106,36,179,116,79,202,36,178,17,152,98, +61,10,218,116,70,153,182,68,66,122,164,5,251,163,8,229,191,146,70,4,84, +2,98,226,41,30,108,157,213,0,96,129,46,118,129,64,47,155,203,186,148,51, +12,213,33,15,185,103,181,199,67,235,39,141,124,1,214,164,38,167,81,28,42, +160,24,218,19,85,208,193,218,14,10,136,155,72,14,45,115,214,78,160,44,158, +40,118,239,8,200,188,231,208,215,25,21,64,68,251,26,141,190,129,204,72, +57,69,252,21,179,41,56,234,187,150,100,243,113,111,88,5,19,99,39,211,56, +104,201,52,235,26,244,91,243,41,105,224,43,145,146,3,99,97,67,73,5,41,82, +188,134,135,0,120,244,161,197,168,183,12,21,9,70,253,198,60,70,31,32,217, +54,98,14,7,75,225,12,3,221,16,192,221,156,119,34,66,214,147,249,122,102, +57,251,149,1,219,59,106,9,22,106,46,253,16,86,216,126,78,12,68,194,192, +161,53,116,200,163,190,70,166,113,227,201,176,102,7,163,162,234,31,162, +140,208,179,235,217,204,205,31,100,111,3,14,205,6,155,195,22,53,38,152, +77,78,187,58,40,13,237,77,85,189,197,230,176,65,77,19,204,166,167,88,228, +57,114,200,86,48,97,140,69,240,196,4,132,122,135,203,195,57,46,171,61,154, +238,157,50,154,96,86,174,176,152,173,48,41,138,14,178,169,1,174,81,135, +6,135,230,18,215,195,1,211,174,181,109,218,5,93,161,169,177,175,247,216, +55,123,48,114,148,249,41,202,98,130,50,207,16,154,3,170,122,143,42,84,216, +239,27,28,194,2,171,114,137,69,89,138,222,111,211,196,193,173,209,223,213, +91,236,153,176,152,172,176,44,75,112,189,197,174,222,163,161,25,86,211, +21,230,84,97,3,6,135,3,54,219,135,177,207,74,76,203,21,150,211,25,166,178, +6,46,219,151,76,100,223,132,6,135,186,66,213,28,112,8,231,168,154,57,150, +147,246,249,136,119,184,172,247,168,154,10,123,16,154,98,130,34,155,96, +49,153,96,62,153,99,154,103,168,67,107,72,155,250,2,143,52,23,160,108,130, +197,228,12,171,178,64,168,119,216,54,132,114,178,196,106,50,1,55,7,48,231, +0,229,35,36,31,14,45,58,82,85,160,98,133,121,81,162,200,70,24,78,203,188, +25,104,142,218,115,194,92,161,106,26,84,205,37,110,52,7,108,39,39,56,157, +206,144,53,91,108,155,3,168,88,98,81,206,219,192,79,102,156,12,132,176, +199,246,176,198,142,9,211,201,18,39,229,72,124,36,149,57,196,2,29,237,106, +54,8,56,160,9,13,170,176,198,245,230,128,237,228,20,103,101,142,80,111, +177,71,219,166,183,42,39,64,189,197,182,217,161,161,57,78,202,21,102,57, +117,67,179,26,236,235,29,14,245,1,64,129,50,43,177,40,115,112,125,137,71, +246,235,118,200,18,49,128,18,147,98,129,213,228,12,243,98,138,34,35,132, +166,194,161,218,96,219,48,242,114,129,121,49,105,73,133,131,24,11,169,142, +17,85,47,149,105,74,143,234,176,108,119,215,157,28,108,57,96,17,220,109, +26,224,84,217,143,84,214,62,56,6,91,115,37,61,63,68,247,48,199,210,49,204, +82,73,76,146,247,116,179,245,16,190,116,134,29,194,249,15,239,106,156,146, +74,204,36,226,200,112,200,114,50,121,26,215,154,92,33,22,83,10,241,136, +97,198,25,202,114,46,132,222,59,51,11,109,66,26,144,84,208,184,70,186,147, +65,76,152,136,120,131,60,62,179,130,209,13,25,179,71,87,173,182,37,141, +253,242,108,72,112,99,190,171,71,48,201,118,232,33,177,145,251,222,67,242, +36,145,239,110,157,153,6,148,152,44,255,131,117,243,159,86,23,237,253,0, +171,227,66,187,122,207,81,199,32,25,108,95,13,138,17,2,165,164,33,123,18, +16,83,148,236,15,131,50,120,232,181,207,156,81,142,186,76,198,58,80,176, +44,89,56,181,250,68,59,71,7,46,130,3,183,51,230,137,196,172,123,9,149,192, +103,227,70,3,54,108,96,161,137,158,113,60,89,97,87,173,113,89,49,242,124, +134,101,57,69,153,103,67,11,92,8,173,81,187,168,3,242,98,138,101,49,67, +217,215,140,137,34,20,149,21,41,135,7,86,58,115,64,48,117,176,156,178,150, +111,128,145,27,209,112,104,59,15,186,249,189,109,191,177,68,84,218,64,168, +233,222,55,167,28,89,54,246,80,183,61,225,237,82,244,253,204,148,152,246, +61,158,173,174,143,157,168,109,211,67,223,179,205,224,142,123,48,244,76, +139,191,111,123,189,51,149,189,216,182,96,101,38,67,24,70,197,182,255,43, +186,154,120,255,125,1,129,25,76,89,215,45,208,178,32,7,20,133,25,1,13,66, +232,107,115,93,6,159,241,80,134,232,159,191,127,39,162,172,155,136,87,99, +191,63,199,245,106,3,206,79,112,82,174,176,44,218,245,209,16,172,69,55, +228,229,111,59,82,66,111,44,136,144,35,235,56,44,12,14,221,247,103,178, +102,223,114,54,234,122,143,77,181,198,1,57,166,197,2,203,14,90,39,143,104, +166,234,143,50,59,104,215,167,191,47,160,12,148,229,200,186,206,3,166,110, +175,186,217,0,237,60,196,108,152,35,193,226,140,116,125,29,200,41,67,70, +64,64,141,78,71,106,172,98,101,221,172,1,81,15,14,220,32,116,44,254,140, +100,83,170,200,100,121,156,33,209,207,189,96,183,247,156,0,74,113,146,68, +224,64,210,193,246,31,163,133,96,134,89,23,16,78,193,209,130,96,26,203, +103,196,210,89,177,33,113,251,106,149,236,117,105,113,15,241,147,30,110, +195,42,60,128,167,157,166,27,247,125,186,130,174,227,218,59,38,145,88,209, +61,20,17,12,181,45,30,125,183,217,55,140,68,60,50,67,132,108,187,61,139, +128,152,216,104,165,71,101,18,91,183,238,157,166,8,176,85,160,71,137,206, +1,193,108,144,245,121,214,117,249,97,103,73,4,102,4,241,156,142,115,48, +94,196,150,95,36,199,43,226,104,112,138,103,200,130,131,37,126,111,87,239, +117,144,40,22,82,195,172,60,194,35,142,241,38,59,68,64,68,41,253,211,85, +77,13,116,109,82,228,40,23,247,155,104,179,85,255,226,144,169,97,194,84, +144,200,148,108,24,117,211,0,204,237,180,62,146,240,158,184,88,108,70,15, +8,40,72,30,190,49,219,31,211,3,178,181,185,193,33,29,176,222,221,192,186, +33,76,39,103,56,41,242,129,241,222,126,86,91,211,189,108,8,147,178,237, +49,207,69,119,128,138,210,16,141,168,22,181,159,120,252,230,192,33,32,205, +71,137,197,13,36,116,132,193,16,145,23,175,211,88,234,80,10,70,198,8,33, +226,189,200,26,20,204,1,78,203,149,70,3,70,164,113,29,12,59,233,8,151,70, +180,73,37,23,156,232,54,149,181,59,50,117,173,72,166,76,126,71,199,235, +8,1,13,239,177,61,108,112,89,213,40,38,75,92,43,151,237,64,33,149,101,251, +173,197,227,196,50,77,228,84,18,172,81,43,125,159,177,215,104,16,80,85, +27,172,235,10,121,190,196,106,58,197,132,114,3,59,194,151,41,149,251,174, +178,38,13,152,178,201,178,8,164,166,17,166,228,119,61,212,119,172,135,19, +172,32,168,114,188,246,220,243,152,1,73,98,34,216,200,104,146,83,103,21, +137,9,179,25,51,66,78,87,148,215,245,196,126,107,57,89,114,62,100,224,1, +255,12,146,216,123,182,125,205,26,162,103,195,46,215,163,178,12,18,160, +56,122,172,56,81,170,158,111,202,167,186,90,26,7,71,190,144,144,176,255, +20,1,0,174,48,15,18,162,89,18,113,141,219,250,89,124,190,25,21,38,56,100, +20,9,133,107,169,222,24,193,242,223,79,119,59,136,178,8,100,66,11,53,27, +129,37,97,214,33,85,34,74,15,73,209,41,226,46,72,54,157,158,34,75,79,113, +72,250,119,237,63,122,223,236,153,217,83,86,27,9,7,68,126,217,201,66,224, +145,90,47,9,114,67,215,7,222,183,2,89,136,42,82,216,81,211,152,252,32,66, +242,103,152,227,104,42,26,195,211,163,7,178,254,1,142,234,251,54,58,39, +65,40,81,71,37,53,248,34,106,221,108,199,224,6,110,179,224,108,200,220, +250,207,108,5,126,184,255,185,121,87,142,246,145,99,49,7,51,94,148,25,137, +75,66,118,184,87,28,12,192,100,32,146,208,67,130,28,54,204,63,39,119,14, +196,48,170,50,49,148,40,238,124,209,223,47,91,145,40,34,230,178,128,178, +200,153,61,46,234,221,17,201,122,252,158,254,0,141,129,157,110,71,137,246, +91,212,144,6,202,71,168,176,173,174,227,162,10,160,98,129,85,185,192,60, +203,65,153,168,171,146,223,254,172,162,111,103,254,7,203,197,146,193,48, +115,23,180,110,177,62,92,96,211,4,228,249,9,78,38,115,76,179,174,214,46, +224,87,53,163,206,70,76,202,121,105,195,163,81,18,30,178,182,161,84,199, +113,23,25,59,70,155,204,164,48,142,74,44,221,127,55,123,70,182,88,78,194, +229,139,231,151,117,71,173,121,17,247,119,235,128,230,200,125,33,89,115, +150,164,98,242,149,230,156,10,162,10,160,21,146,2,51,1,206,177,115,38,64, +138,90,178,77,86,42,141,191,12,194,7,196,65,64,247,228,32,173,163,205,178, +68,64,221,230,63,4,79,66,191,94,51,235,69,0,72,18,186,38,53,139,136,36, +1,14,20,223,17,205,229,182,52,175,168,101,92,126,7,96,209,25,136,142,7, +167,235,81,77,216,19,200,140,249,126,203,45,84,246,249,152,176,187,180, +169,194,1,146,57,95,210,150,41,84,15,36,130,61,86,36,83,183,243,19,34,131, +247,228,95,225,245,238,195,19,122,49,245,35,19,241,182,117,111,70,19,26, +16,208,13,57,137,245,204,35,94,135,179,88,44,160,151,232,57,156,67,58,100, +117,204,45,107,158,48,12,65,137,102,19,24,163,74,134,55,40,35,98,27,153, +71,208,60,217,168,216,233,239,180,254,208,139,106,205,59,193,105,253,36, +131,186,1,134,23,162,214,152,53,73,3,78,22,217,113,9,212,68,60,167,221, +55,254,23,241,9,6,210,147,193,142,90,79,58,226,240,225,49,164,5,233,51, +17,216,216,139,197,14,156,229,84,112,20,201,50,53,252,209,33,4,143,157, +1,161,65,67,93,59,23,25,244,203,217,155,241,72,176,234,6,112,181,73,34, +227,42,72,149,93,73,131,59,78,75,158,81,244,61,81,166,155,82,9,75,25,42, +131,236,177,12,144,68,198,64,55,121,190,65,126,231,15,156,76,154,44,242, +100,230,157,68,211,126,1,71,134,119,52,40,12,114,132,105,140,195,115,218, +235,181,232,140,70,232,136,19,147,93,19,89,126,52,10,65,214,160,163,254, +122,22,100,48,242,19,49,167,246,60,218,82,155,57,90,97,44,39,152,146,165, +116,113,231,56,106,159,103,67,244,19,112,56,4,161,143,108,153,195,65,172, +12,202,167,71,165,123,189,235,60,16,168,229,90,169,218,54,115,212,210,199, +172,75,82,81,128,45,236,181,87,102,70,164,211,96,2,56,167,10,38,223,63, +10,12,104,68,165,70,246,188,147,112,155,78,64,74,160,14,100,214,73,103, +240,136,141,46,12,137,80,71,60,34,171,115,106,4,24,106,131,99,198,21,101, +115,206,84,72,18,12,200,20,140,145,212,38,54,139,30,68,141,146,186,86,37, +9,245,123,198,233,168,94,61,98,25,69,93,80,116,102,34,120,50,149,28,159, +219,40,88,144,101,14,135,125,155,130,228,1,114,229,7,109,29,146,108,52, +175,147,92,255,48,145,159,125,71,129,144,49,146,222,236,110,59,195,193, +251,124,114,50,90,178,99,26,20,179,216,68,187,41,204,152,211,10,97,222, +100,201,99,34,79,73,71,133,49,211,137,74,194,28,35,61,177,106,214,152,109, +70,168,169,41,89,176,173,167,122,231,133,100,246,79,62,92,106,157,154,131, +146,233,82,26,105,52,143,28,56,216,9,198,88,4,109,210,152,234,118,112,103, +252,172,51,26,221,131,121,45,127,200,69,187,28,197,54,155,252,235,53,55, +1,102,20,124,176,102,194,203,178,135,9,250,227,64,207,1,87,188,245,55,78, +25,6,97,82,154,96,110,96,40,239,146,236,200,137,209,66,216,196,143,227, +179,116,213,164,223,99,229,26,36,124,78,68,166,182,37,18,242,145,9,56,104, +202,209,119,113,234,248,112,58,39,136,174,208,135,103,184,29,61,228,249, +45,210,36,91,133,240,9,194,187,245,183,64,10,65,119,146,65,73,52,85,25, +188,147,69,50,197,145,103,100,128,29,227,220,195,52,77,104,201,54,121,158, +131,100,31,183,173,119,80,58,155,112,235,86,169,33,82,164,167,63,135,166, +29,97,59,124,191,51,214,25,176,68,45,191,118,68,199,52,116,224,101,204, +94,65,39,206,80,60,231,25,233,95,91,131,158,200,10,109,36,110,131,10,74, +137,60,120,217,47,197,201,132,247,222,78,91,176,175,123,157,112,214,222, +243,89,61,250,232,226,89,13,101,7,114,165,196,248,232,43,182,208,189,11, +17,50,229,13,188,2,18,85,183,120,141,124,52,196,236,161,93,151,155,17,76, +33,103,15,145,8,2,82,255,180,254,53,97,108,163,103,243,144,164,84,160,155, +144,134,117,51,81,56,168,21,156,103,242,108,86,2,153,180,168,24,18,129, +200,209,32,140,18,118,16,136,120,19,222,61,99,15,165,65,122,138,41,82,37, +113,167,76,146,60,216,48,104,150,19,32,198,1,161,243,236,72,39,47,182,147, +144,18,123,234,73,4,216,184,204,203,96,189,9,187,150,119,237,33,95,222, +63,221,32,49,97,19,217,11,130,189,128,147,252,115,70,156,144,40,118,140, +145,23,100,51,142,33,219,113,144,74,12,208,190,222,51,31,139,252,143,224, +251,71,176,222,174,53,0,3,107,125,32,162,29,17,158,139,234,51,206,8,223, +232,240,32,21,165,247,4,36,116,223,175,107,236,81,0,1,127,13,220,210,1, +210,145,127,234,98,68,40,61,251,34,82,41,165,165,163,217,34,226,195,78, +206,33,129,155,37,217,125,139,26,7,34,216,47,229,188,249,255,167,237,61, +183,28,71,146,108,221,207,5,20,85,68,102,85,207,156,251,254,79,119,70,116, +39,73,104,87,247,135,59,72,16,4,72,102,85,159,236,181,58,43,131,65,192, +133,185,185,217,54,177,55,18,107,196,171,131,179,117,193,175,197,6,195, +6,162,240,2,90,126,121,121,44,193,151,181,139,238,147,113,176,109,200,173, +33,3,171,161,32,216,108,15,190,22,202,90,53,42,197,202,129,95,219,151,23, +134,193,131,243,187,114,201,193,134,113,242,130,87,100,213,147,231,117, +188,114,213,232,124,179,55,124,178,31,75,29,178,64,173,30,66,97,47,228, +104,153,123,176,21,86,220,252,179,66,203,187,21,102,219,92,167,149,207, +95,62,99,229,61,91,207,94,202,249,150,222,20,43,99,89,77,230,20,111,194, +64,108,235,151,53,148,239,37,87,186,120,97,92,110,161,58,172,32,169,27, +235,188,134,48,174,161,150,107,200,236,170,129,191,98,60,193,250,93,18, +182,212,216,26,130,33,184,117,158,124,134,171,150,95,158,95,116,107,113, +250,176,72,192,64,224,173,35,164,154,119,33,238,49,174,233,25,65,172,31, +230,91,177,140,88,129,73,230,214,137,88,137,237,205,46,81,235,34,5,170, +144,247,12,68,177,162,64,196,138,161,240,150,119,119,177,73,98,46,16,97, +209,62,58,60,62,87,204,45,179,13,56,230,161,123,100,250,61,177,229,30,206, +199,17,30,105,157,197,114,142,43,94,194,3,44,201,54,49,19,139,57,174,9, +222,237,32,174,148,165,178,150,134,176,194,145,61,111,84,180,156,227,154, +210,21,243,125,95,57,140,97,54,159,176,178,39,79,94,207,124,28,243,131, +35,158,233,57,67,88,129,19,23,158,199,195,69,34,22,115,20,43,235,185,232, +27,242,184,41,207,9,120,98,37,166,254,196,0,27,22,93,63,215,121,123,55, +97,218,39,132,139,21,29,32,22,239,94,156,203,85,251,46,172,120,59,43,123, +20,22,123,19,194,54,29,243,214,123,215,16,160,169,241,163,8,143,63,19,203, +51,184,208,131,11,177,120,190,124,54,108,131,176,68,86,196,202,50,108,120, +189,132,141,150,251,203,56,241,2,5,10,243,117,13,207,220,40,179,70,156, +44,67,225,75,143,122,78,129,33,194,138,188,63,47,249,115,18,216,202,190, +63,188,119,133,239,93,188,131,200,86,16,13,222,57,23,98,161,219,86,230, +31,86,222,181,118,63,110,129,29,203,202,88,120,108,87,191,202,20,29,158, +239,228,48,191,47,196,99,95,191,176,208,119,15,247,218,224,134,192,11,203, +102,213,92,8,235,49,141,121,38,103,100,150,125,140,187,175,37,174,108,65, +190,107,66,30,86,178,94,215,44,161,169,193,195,50,238,206,39,158,228,26, +60,254,198,242,94,91,191,53,72,247,165,55,187,97,14,134,173,195,190,6,69, +191,240,136,121,147,160,241,18,86,100,29,50,93,131,67,87,145,25,54,144, +131,53,203,250,3,248,152,181,103,108,192,111,98,3,6,23,27,28,36,98,165, +121,213,106,28,47,108,67,191,235,95,88,81,114,108,35,10,108,197,225,86, +188,227,53,232,244,37,11,231,155,51,189,138,216,108,121,128,47,188,249, +39,84,96,43,177,107,203,232,19,43,233,45,107,231,94,124,184,254,27,104, +205,147,215,184,37,75,91,200,202,11,4,102,9,197,111,122,92,226,181,225, +190,25,106,120,149,147,244,46,164,184,165,103,196,155,117,221,200,31,121, +185,255,108,163,53,107,161,222,167,144,207,26,33,219,134,151,187,137,162, +189,154,87,88,207,19,89,114,217,8,241,34,84,25,54,114,193,94,33,59,175, +144,136,21,164,100,237,190,125,25,206,25,220,16,94,9,216,242,146,120,5, +209,222,160,249,148,181,46,149,68,9,181,25,31,228,21,228,242,34,195,246, +213,70,7,98,51,146,219,251,39,142,249,13,40,116,51,190,12,239,168,138,63, +251,221,219,207,61,206,249,152,237,44,228,141,24,229,254,187,83,115,150, +212,48,100,201,154,183,129,243,249,91,51,145,216,168,69,44,146,128,62,9, +58,175,65,118,97,43,150,247,6,46,92,51,136,94,42,224,23,134,196,43,35,44, +132,216,146,87,164,6,60,226,93,130,141,120,31,106,90,133,15,195,139,11, +241,69,89,76,152,26,224,36,230,51,177,82,75,191,73,110,246,194,8,93,26, +116,79,73,73,47,148,215,187,139,111,43,100,246,82,33,125,16,50,18,159,40, +180,213,179,21,27,222,184,212,221,75,205,141,245,87,198,223,150,28,190, +8,71,176,1,29,123,111,113,137,169,80,10,241,152,84,248,2,230,94,131,80, +195,39,48,126,88,191,100,222,234,27,214,247,236,229,121,92,96,224,177,185, +144,140,231,233,169,63,201,11,89,123,23,202,91,251,108,37,214,204,7,107, +179,102,244,109,27,86,51,29,113,43,247,125,51,198,79,207,248,7,97,130,183, +198,37,111,238,163,79,223,249,226,223,154,55,48,225,82,241,139,15,45,59, +173,52,200,23,119,147,248,224,146,127,137,249,204,30,17,158,93,80,173,245, +155,11,119,3,69,8,175,99,148,79,74,235,29,234,17,2,33,56,70,219,80,219, +17,68,197,62,223,145,171,251,69,236,189,197,172,125,206,11,43,48,248,200, +232,53,94,104,172,67,234,19,95,197,142,66,138,103,239,102,203,194,11,207, +208,20,107,241,159,79,14,28,43,49,254,165,194,17,27,80,244,234,197,148, +140,23,15,82,201,200,64,54,41,125,63,208,142,53,173,87,236,138,35,187,212, +38,246,137,146,122,101,239,230,25,218,62,117,242,139,6,130,120,100,15,93, +174,247,74,182,92,236,109,48,117,181,187,119,20,187,141,47,104,118,249, +158,157,202,158,67,0,60,195,144,175,228,148,13,196,74,176,49,198,87,198, +49,239,13,137,213,49,173,157,197,240,193,51,216,48,48,95,61,155,128,245, +13,151,246,74,31,50,246,229,145,131,46,144,226,141,60,110,133,114,86,222, +43,196,138,14,152,77,220,218,134,75,55,189,255,196,65,103,72,185,241,206, +21,150,214,167,179,177,181,55,139,181,20,172,200,241,171,179,40,22,161, +38,120,106,166,180,153,19,146,184,19,140,109,105,198,30,175,74,118,217, +138,254,217,48,152,183,246,79,188,112,132,196,171,74,22,177,237,140,45, +101,111,189,92,45,254,183,15,125,60,131,78,179,203,15,236,180,126,122,215, +203,100,196,48,63,223,234,33,244,249,62,147,118,67,247,190,186,63,195,70, +220,253,149,119,207,123,189,172,55,173,186,87,39,117,227,133,65,128,51, +62,206,107,34,4,89,123,206,154,242,220,186,80,196,7,227,153,89,228,206, +186,232,197,42,185,217,60,228,229,198,136,55,240,61,239,19,221,30,61,16, +67,59,94,98,255,242,236,24,185,222,229,189,88,240,233,115,85,160,149,120, +142,189,46,172,109,235,26,46,198,48,216,72,8,178,83,57,185,20,72,241,194, +226,123,7,135,134,55,94,250,114,175,54,246,109,153,155,176,106,172,189, +220,215,128,55,87,254,53,12,4,181,227,88,84,228,114,170,141,117,116,195, +133,218,11,138,108,71,165,212,172,229,240,7,208,243,180,238,166,230,95, +67,31,159,95,86,228,107,9,2,155,80,123,192,187,43,255,234,7,130,222,113, +204,99,175,247,201,115,239,198,11,181,21,20,249,157,179,126,115,15,62,129, +239,120,29,183,124,235,97,7,214,41,57,223,121,212,239,96,205,13,229,250, +18,145,217,146,129,240,184,255,33,24,6,211,209,187,64,86,148,84,233,114, +21,91,241,245,119,151,95,120,49,102,177,6,183,26,70,219,209,251,128,206, +74,42,173,147,103,251,33,170,247,74,167,189,211,169,225,3,253,247,238,247, +194,11,61,187,96,88,245,190,229,58,118,56,89,176,207,43,114,33,35,171,181, +224,179,196,69,94,232,209,45,164,40,188,67,60,127,227,243,133,210,9,222, +210,14,23,106,39,40,242,29,85,34,89,122,23,166,152,255,241,118,169,127, +228,123,212,233,19,67,86,172,92,254,175,144,131,79,156,163,23,50,160,55, +133,245,69,114,207,186,224,69,92,74,74,113,231,109,23,191,177,73,111,22, +252,157,17,50,181,86,144,82,165,30,221,225,35,139,247,51,133,190,161,28, +196,246,119,34,43,92,71,61,212,244,100,236,139,35,59,165,18,52,31,71,59, +125,62,144,69,79,52,113,173,139,173,11,88,196,30,223,163,237,232,204,72, +144,18,45,53,82,71,226,22,153,8,107,34,61,236,125,253,37,10,161,100,100, +241,10,33,246,97,247,225,222,129,42,245,81,23,233,243,128,72,125,213,167, +208,65,136,255,158,250,198,223,32,229,59,141,161,68,198,38,43,1,92,122, +191,72,236,105,18,141,146,175,96,225,169,226,34,246,64,119,126,160,51,13, +61,5,95,90,35,136,99,86,194,49,140,87,90,103,81,217,55,165,18,4,239,176, +66,198,94,245,196,252,15,239,220,140,93,44,245,218,159,214,221,7,172,239, +233,198,250,254,124,31,240,210,199,53,88,67,143,110,173,145,29,206,121, +156,31,232,199,134,129,146,147,82,177,119,59,32,69,96,24,175,52,102,26, +159,196,123,75,72,116,177,19,161,144,247,209,59,152,172,31,41,117,164,61, +10,111,96,116,145,58,206,187,217,247,133,64,18,121,6,38,72,59,4,149,194, +64,128,143,93,18,17,241,183,66,112,132,32,17,34,245,122,23,32,144,55,170, +224,200,101,144,100,193,123,194,131,252,36,54,196,224,241,110,202,200,140, +178,163,102,20,169,222,249,180,34,83,135,200,56,30,57,245,217,79,251,60, +167,98,149,137,119,193,123,155,40,98,5,185,254,230,63,142,2,41,244,140, +247,2,188,115,248,217,186,72,161,102,243,143,189,242,99,63,125,110,242, +173,151,174,247,90,60,57,248,8,83,123,16,82,144,233,31,252,35,3,37,117, +106,68,50,141,127,90,255,41,1,76,221,184,30,94,27,103,145,54,251,246,253, +153,97,42,69,36,149,122,119,209,197,234,160,20,206,187,37,204,68,174,130, +200,3,224,147,124,204,206,191,188,63,123,58,31,62,197,11,34,49,81,205,64, +193,87,190,163,20,146,16,44,38,113,70,136,25,231,159,84,20,0,0,32,0,73, +68,65,84,215,196,39,136,101,204,127,10,184,224,102,227,147,200,32,80,50, +106,190,24,10,152,30,34,211,254,69,46,133,224,166,214,207,243,218,112,153, +184,50,162,236,196,166,49,30,23,211,196,163,252,79,250,203,27,250,177,166, +182,129,162,252,230,168,179,91,231,80,230,242,55,91,100,153,58,63,146,202, +186,157,239,35,89,19,229,76,255,248,148,145,190,144,191,116,254,148,16, +31,24,117,19,91,104,60,29,183,189,159,244,99,240,113,221,166,53,17,119, +94,141,219,249,197,197,90,249,137,71,68,70,4,81,114,215,207,254,150,243, +226,99,153,220,114,48,203,230,254,235,201,4,247,54,166,33,117,139,179,206, +34,101,140,123,135,89,91,199,181,239,223,158,143,216,200,132,157,147,58, +44,99,165,51,246,182,112,239,188,102,173,139,130,32,197,189,19,219,106, +166,237,221,21,95,75,16,9,15,92,112,98,181,148,108,222,10,117,9,221,134, +224,49,174,165,25,58,172,40,216,229,39,118,234,206,228,21,188,199,248,150, +186,111,113,178,100,87,156,216,171,89,119,231,176,232,90,53,141,203,27, +70,91,115,177,1,173,115,164,175,169,173,226,88,254,224,168,53,1,131,177, +45,245,208,210,57,131,71,32,101,198,190,248,226,144,149,40,28,198,212,92, +199,142,206,217,120,49,171,196,148,150,107,48,13,87,227,208,217,142,125, +94,34,93,236,145,223,161,41,181,196,141,29,6,129,11,14,227,160,204,20,62, +88,70,95,240,93,158,216,107,176,182,227,58,180,116,222,68,21,47,15,252, +168,78,28,180,126,132,196,66,32,72,113,107,30,18,252,64,55,92,56,143,13, +131,247,183,88,160,18,26,165,42,190,242,61,185,232,56,119,45,78,40,16,1, +107,6,156,44,57,85,223,156,242,28,225,44,198,183,241,253,214,18,41,99,64, +103,95,252,200,10,176,53,23,83,51,248,41,215,65,161,132,66,201,138,83,117, +98,175,53,242,161,213,237,140,157,208,141,180,227,153,203,52,62,162,210, +148,82,163,85,197,49,223,83,136,142,115,223,225,146,50,140,227,43,56,86, +63,56,101,57,50,24,70,215,82,15,29,157,53,81,10,213,158,31,229,55,7,173, +30,154,67,197,26,151,249,249,72,132,68,174,139,251,107,13,94,128,144,123, +126,84,223,28,84,96,24,127,241,107,52,168,252,7,95,89,142,8,35,195,80,211, +120,135,86,123,114,250,216,210,86,10,188,55,116,214,32,196,142,175,234, +139,99,166,113,174,230,210,181,88,149,163,83,111,251,1,69,85,254,224,59, +175,208,211,251,199,36,95,65,32,212,158,31,229,137,67,166,193,27,70,215, +80,15,29,173,181,113,10,50,139,116,175,89,17,229,207,214,92,135,40,127, +81,247,231,236,138,35,123,157,33,108,195,101,108,104,172,67,168,35,63,171, +19,123,149,76,7,225,241,206,49,250,142,122,104,232,156,137,122,68,237,249, +89,126,115,80,158,206,156,57,15,22,165,84,108,31,108,13,136,130,227,238, +7,167,188,64,207,9,99,110,36,59,34,65,186,54,66,242,227,149,54,81,19,255, +172,78,236,181,186,123,186,193,98,92,195,181,143,243,15,34,158,175,93,241, +197,41,171,208,15,23,221,178,146,33,162,117,163,237,168,77,75,111,77,34, +115,18,104,253,197,207,242,200,94,169,153,126,227,9,46,12,193,97,172,97, +176,87,26,211,49,250,72,187,157,229,71,78,249,142,66,56,70,219,83,143,13, +157,179,120,60,66,30,249,81,125,113,208,2,156,101,240,221,77,63,132,201, +120,215,39,126,148,39,246,50,96,38,249,116,54,234,85,121,136,223,87,234, +57,148,241,148,252,230,176,214,48,216,154,218,116,140,62,18,9,101,217,145, +175,108,71,41,60,131,111,169,199,56,127,71,184,233,135,157,24,57,183,87, +172,16,56,28,198,70,253,18,188,101,8,5,223,213,30,237,26,46,198,161,165, +32,4,67,107,44,168,29,223,229,55,199,92,35,189,99,180,23,254,57,24,116, +118,226,187,172,226,158,63,172,255,125,126,30,144,106,207,119,245,197,78, +90,186,254,194,197,76,231,91,220,72,174,148,220,113,42,15,236,36,73,111, +119,116,147,33,170,118,241,252,105,181,218,92,107,222,254,118,126,126,123, +107,113,179,247,31,20,233,252,142,168,236,7,95,121,142,240,35,189,137,109, +168,181,78,231,215,184,104,40,45,230,127,202,36,214,53,156,251,22,39,227, +249,29,77,155,216,67,23,229,39,46,68,82,22,53,145,178,132,199,203,215,123, +71,240,160,180,76,243,136,74,90,167,54,176,214,89,8,160,230,113,240,217, +229,229,188,139,240,193,244,252,133,231,235,188,71,120,144,90,173,38,25, +121,31,173,67,37,213,3,236,164,146,16,250,244,124,41,213,68,206,251,112, +121,223,223,175,224,137,148,38,246,204,15,105,254,98,37,219,212,121,11, +94,196,182,187,11,207,222,5,75,63,54,116,222,34,213,158,175,124,119,227, +114,135,128,243,150,193,212,180,214,34,245,145,175,188,138,132,36,97,254, +124,127,159,207,244,189,16,57,228,71,31,40,242,138,60,140,92,29,104,189, +163,82,18,239,59,154,177,102,240,138,44,251,201,63,170,196,84,151,146,250, +130,239,169,199,154,193,75,242,252,39,71,169,34,147,154,16,72,60,214,52, +92,205,0,114,199,78,71,225,106,205,149,206,7,164,2,55,93,254,58,187,89, +174,241,127,25,165,206,80,116,156,251,30,19,114,202,226,155,157,48,244, +99,203,144,188,251,48,227,132,191,237,31,250,78,199,40,52,153,42,40,149, +67,40,69,149,159,18,252,62,37,40,54,156,187,11,141,207,216,23,59,74,21, +48,4,6,52,90,130,25,175,116,102,192,200,140,93,241,131,67,17,247,161,15, +146,60,219,83,105,133,195,82,122,139,80,25,85,118,100,167,229,205,3,211, +66,220,208,75,231,34,151,157,150,18,82,63,121,164,38,215,21,149,243,113, +124,217,137,74,203,68,229,123,31,95,235,51,118,197,129,74,5,70,2,3,57,90, +130,179,23,46,99,199,72,78,149,255,96,87,12,244,99,199,128,124,106,206, +228,188,71,132,16,215,71,70,207,198,140,13,181,237,24,67,70,149,253,96, +151,143,244,166,97,100,162,103,245,137,213,78,147,11,207,104,206,244,214, +34,101,201,169,136,52,185,151,161,165,119,57,199,162,162,200,52,34,4,70, +162,119,102,93,75,51,92,169,173,163,80,5,153,174,208,194,19,108,64,133, +56,254,218,244,113,252,217,55,187,98,140,251,139,64,138,128,181,45,253, +216,210,123,65,150,253,224,63,203,228,117,39,15,39,132,36,127,78,145,21, +63,248,15,149,80,139,132,222,56,103,177,33,167,212,158,16,70,188,210,100, +19,131,160,119,137,72,103,136,52,202,229,15,246,190,167,29,26,6,4,65,56, +122,83,71,180,204,101,236,117,69,85,20,104,217,48,132,156,76,70,195,141, +249,250,250,144,244,83,192,97,25,157,197,147,81,170,29,62,189,63,151,247, +122,35,231,250,120,190,156,34,203,127,242,159,211,217,20,34,121,91,51,253, +226,124,34,213,210,137,113,207,198,139,211,196,241,239,138,31,236,115,199, +56,94,233,130,138,242,41,213,205,121,184,235,87,149,106,184,61,206,13,52, +99,77,231,162,60,127,239,191,209,51,146,39,239,26,206,102,90,159,111,246, +126,160,25,27,6,2,4,199,104,122,26,211,99,69,78,85,254,96,31,44,195,216, +208,37,74,225,156,150,115,223,49,138,130,170,248,193,78,140,244,67,195, +144,18,126,55,51,248,39,228,195,79,134,133,36,207,118,124,239,78,40,33, +153,56,77,188,107,248,53,12,88,145,81,22,223,236,179,52,190,0,193,13,156, +205,149,218,26,50,157,199,10,145,196,110,233,68,70,169,50,132,239,104,76, +203,224,115,114,93,145,201,28,104,48,201,123,15,222,49,152,154,171,53,72, +117,224,148,151,168,112,71,61,173,109,184,154,142,145,140,42,255,102,39, +13,253,208,50,220,244,152,38,207,10,42,239,16,74,83,101,41,110,63,181,162, +14,29,231,33,201,127,241,131,29,241,252,13,19,115,200,92,190,102,251,31, +247,52,58,86,181,237,239,231,63,31,232,77,203,144,150,209,37,190,18,41, +53,153,244,152,241,76,231,44,82,149,156,10,13,161,231,58,52,244,190,228, +168,75,50,153,65,104,25,133,66,74,48,174,167,233,107,26,107,41,242,146, +76,229,104,17,102,73,118,51,158,97,229,35,53,229,22,180,45,133,2,117,239, +165,237,93,20,34,41,227,5,171,165,126,46,188,158,181,3,83,34,42,174,181, +207,5,34,94,220,50,172,102,19,10,17,226,197,205,60,233,42,94,200,82,202, +40,24,94,63,36,209,44,147,146,148,212,47,225,123,41,146,98,223,136,173, +196,241,45,179,220,3,206,53,212,227,192,24,52,101,126,162,82,51,126,244, +224,113,174,141,159,163,40,243,175,200,19,46,30,227,199,66,6,110,81,229, +233,114,183,13,87,99,176,40,118,89,69,33,12,215,132,14,28,116,142,20,134, +97,184,80,91,135,214,21,185,214,100,82,222,184,138,5,35,141,137,159,103, +250,68,166,20,153,156,212,67,192,152,134,171,233,65,238,57,228,59,180,48, +52,253,149,214,67,174,74,124,136,23,203,62,47,241,97,140,220,237,121,132, +200,180,210,232,96,104,70,11,178,100,159,87,100,194,49,88,131,35,103,95, +28,40,148,124,136,129,73,169,211,92,239,139,26,220,72,239,70,156,44,57, +102,123,42,157,37,42,87,31,81,135,161,195,201,3,127,84,71,74,25,24,204, +5,67,70,153,21,120,91,115,177,30,173,119,124,101,21,153,52,180,253,128, +37,99,87,236,227,65,13,61,189,27,240,162,226,88,164,231,175,37,22,146,248, +10,150,237,78,221,72,111,71,236,202,248,236,120,165,30,58,172,60,240,179, +58,82,42,24,134,51,150,140,50,43,145,174,225,108,70,130,168,216,231,37, +57,150,193,165,245,201,247,209,144,153,21,26,43,161,16,233,124,4,239,232, +205,133,171,25,8,178,138,49,82,44,163,51,56,10,170,252,64,169,20,50,56, +188,208,224,71,186,241,74,38,43,170,252,64,165,36,214,92,56,143,45,78,236, +249,177,63,80,41,24,135,51,65,100,236,242,29,133,24,105,250,11,141,151, +84,9,109,80,190,167,14,130,76,23,232,208,81,247,6,175,42,14,186,76,251, +107,241,20,236,243,29,133,244,12,99,77,237,44,74,159,40,84,134,86,106,214, +143,97,72,198,131,69,171,138,66,101,81,62,103,5,187,90,72,172,173,185,14, +6,84,202,107,80,64,24,105,199,43,157,3,173,143,156,178,130,76,120,70,219, +96,133,166,200,74,148,107,169,199,14,43,14,252,60,28,169,20,12,227,21,27, +50,202,124,31,215,103,150,245,121,115,12,166,243,140,166,212,10,107,174, +92,188,5,185,227,84,236,162,129,1,16,12,195,120,161,54,254,118,190,180, +80,17,182,95,148,224,10,17,29,135,123,153,108,204,177,105,140,67,233,3, +167,162,36,199,208,14,3,150,60,38,128,101,26,249,160,127,52,201,246,141, +23,198,216,112,49,61,78,228,156,202,29,165,210,55,200,60,248,129,102,188, +210,57,241,176,62,131,109,113,100,84,58,195,155,43,103,239,209,250,192, +87,94,144,97,105,135,17,75,206,33,47,16,190,229,98,163,124,30,178,146,12, +199,224,70,188,40,216,101,59,10,37,8,193,98,253,140,95,93,38,163,88,68, +227,255,98,122,28,57,199,114,79,41,239,33,185,224,199,52,62,208,250,192, +105,122,190,109,112,33,163,82,10,107,91,70,20,135,34,199,121,139,21,5,123, +13,62,128,214,37,57,3,195,216,99,197,158,31,213,129,74,11,134,225,23,33, +100,84,197,158,82,129,179,53,23,51,34,244,62,233,128,59,61,244,48,158,185, +152,145,32,74,14,121,117,155,159,19,57,187,124,79,41,5,132,129,206,26,172, +44,56,102,7,118,89,22,209,188,96,233,205,149,171,29,65,166,245,185,233, +183,184,62,149,146,15,9,155,177,114,43,245,187,247,142,126,60,83,219,1, +47,43,246,89,73,46,252,253,251,121,52,238,36,22,135,38,248,145,97,184,98, +117,73,149,127,81,106,133,27,47,156,199,14,39,14,252,168,162,124,143,227, +25,47,178,184,63,12,180,253,153,58,40,170,242,79,190,178,184,167,181,157, +199,224,231,148,116,98,59,211,79,196,160,238,172,121,70,138,227,221,226, +84,27,29,28,230,141,66,228,44,29,125,229,2,21,15,12,33,75,40,72,44,16,34, +17,227,95,114,70,214,32,87,190,55,195,151,68,216,142,115,198,241,173,212, +220,60,160,245,11,84,32,120,70,215,208,153,30,47,247,28,179,146,252,198, +229,30,55,121,116,45,157,233,9,114,199,49,171,40,148,220,158,223,45,94, +237,24,77,75,61,54,88,81,177,203,74,50,97,232,76,77,27,20,85,177,167,210, +26,133,1,33,9,126,164,27,254,133,177,99,132,156,85,242,162,124,140,179, +6,63,210,244,191,24,221,142,175,242,196,78,73,156,109,169,77,143,147,7, +78,89,69,46,12,77,74,80,41,179,2,25,70,134,144,83,101,154,224,123,134,80, +177,83,18,111,59,188,200,208,193,208,141,13,157,15,8,105,232,199,43,74, +229,20,217,145,67,81,82,106,249,208,188,226,70,122,34,231,9,45,29,141,185, +210,186,140,125,185,163,82,26,117,51,110,90,26,211,227,229,129,83,185,167, +148,158,209,212,180,22,50,93,162,49,244,22,138,252,196,78,103,104,210,248, +173,160,44,142,236,116,142,244,29,237,112,161,13,25,251,98,31,19,223,94, +84,104,136,37,52,234,250,200,216,230,117,188,144,117,150,68,36,122,6,181, +29,240,250,200,87,177,163,146,158,193,212,52,54,144,103,37,154,158,107, +127,165,247,30,41,13,163,189,32,101,90,159,178,124,170,122,184,29,29,33, +192,27,122,115,229,87,127,165,247,1,41,45,195,120,69,202,156,50,143,223, +47,149,132,224,176,126,196,216,22,39,52,101,118,226,144,149,228,2,140,75, +227,83,177,202,162,148,48,154,58,42,220,236,196,78,6,134,161,166,243,58, +102,138,103,5,153,16,81,78,165,102,176,45,151,190,142,239,247,134,193,156, +81,178,160,200,14,28,138,138,92,75,68,24,99,252,60,56,134,254,23,198,13, +73,190,116,186,196,69,98,254,115,116,227,191,48,126,228,171,156,224,247, +56,123,231,122,26,211,50,138,29,167,124,71,165,53,194,15,52,67,205,213, +65,81,28,216,171,116,121,141,53,87,99,80,250,68,41,60,189,233,111,243,171, +132,167,55,53,157,17,20,229,129,189,206,35,116,190,68,188,23,120,179,115, +29,173,109,49,162,226,148,239,169,148,92,168,37,1,193,208,142,255,194,248, +129,175,34,134,116,158,19,183,102,122,40,24,134,177,161,181,129,188,56, +177,207,10,84,24,99,146,168,21,84,197,145,93,150,71,89,159,103,81,203,59, +92,105,93,77,61,54,24,121,224,84,196,203,228,166,54,252,72,59,197,155,139, +35,71,93,160,137,158,121,109,13,90,237,209,88,122,23,40,138,19,187,44,67, +123,67,99,174,233,253,5,138,158,243,16,229,83,72,195,96,47,72,153,81,102, +39,246,101,145,46,207,150,75,127,165,181,6,39,2,74,150,236,138,47,142,58, +195,187,150,102,104,176,234,192,41,175,40,148,186,235,53,31,141,179,105, +124,7,149,163,133,99,48,13,181,117,72,85,34,133,141,94,181,214,224,122, +172,44,57,40,137,115,29,94,85,20,210,97,140,193,171,99,146,223,128,49,53, +189,131,44,63,177,215,25,222,94,185,142,61,232,35,135,124,71,62,149,205, +114,63,63,131,247,32,98,120,67,165,243,119,44,75,10,37,227,249,30,46,116, +62,231,80,30,168,166,170,151,96,233,237,133,95,195,116,254,12,189,57,35, +101,65,121,59,191,114,81,217,50,233,239,40,47,131,185,166,245,13,32,45, +163,185,34,101,150,244,99,69,161,5,34,56,140,51,88,219,225,144,84,197,23, +123,93,144,73,176,166,77,231,247,192,87,190,167,146,48,164,243,155,231, +71,246,50,68,25,11,25,135,226,148,12,16,8,98,207,169,204,208,155,153,179, +175,50,114,103,117,157,214,89,164,16,55,175,122,251,98,125,147,145,205, +111,100,35,114,143,227,90,231,98,130,213,236,112,61,37,193,189,77,16,124, +147,93,190,153,201,28,8,33,42,221,139,11,228,89,188,36,245,67,72,33,94, +122,181,11,100,217,145,67,86,162,215,234,62,197,115,194,143,53,23,126,165, +120,43,114,164,55,23,192,98,157,160,170,254,193,78,229,9,230,212,148,249, +15,254,161,71,154,254,159,212,62,37,60,222,242,88,50,202,252,39,255,208, +3,77,255,175,248,57,1,124,79,61,212,56,21,149,135,246,3,215,238,23,23,39, +56,20,71,164,191,210,135,146,93,86,34,109,132,199,171,44,35,152,11,70,84, +84,202,83,15,6,178,63,248,63,121,129,74,57,23,17,0,137,245,233,239,50,68, +3,158,222,92,184,56,201,161,216,179,87,249,45,44,225,125,199,101,104,241, +106,207,41,63,80,202,128,51,53,191,198,64,145,237,217,137,129,95,125,143, +204,191,168,178,12,225,6,46,195,47,174,78,178,43,191,56,102,57,18,79,55, +158,57,123,197,33,63,112,80,217,118,163,148,181,100,73,239,233,198,95,156, +173,228,80,30,98,172,56,177,21,122,223,115,29,90,130,218,115,204,247,148, +146,52,62,79,145,31,216,137,145,95,253,128,204,211,250,32,162,109,44,4, +74,200,123,226,210,106,242,87,132,253,47,67,143,200,126,242,127,242,18, +61,17,185,200,232,229,75,1,206,13,180,166,166,179,14,37,21,42,228,100,42, +39,147,16,124,71,221,181,4,61,173,159,99,52,87,174,163,67,100,7,246,90, +227,198,255,165,14,138,67,121,226,144,229,143,93,16,125,79,61,12,136,60, +189,127,42,149,73,239,191,117,111,20,25,101,241,147,127,100,35,77,247,79, +234,48,113,156,77,40,155,166,202,127,146,169,129,186,255,23,117,120,44, +252,247,222,208,14,23,6,177,231,88,236,41,82,197,132,119,45,181,177,232, +226,196,81,149,104,97,24,198,43,191,140,67,101,71,14,218,211,246,73,62, +138,3,5,1,107,107,46,198,145,23,199,120,185,175,246,0,125,172,19,155,222, +223,139,184,143,185,92,56,40,34,163,40,254,224,207,44,142,191,9,247,228, +77,177,89,145,227,113,182,230,60,244,136,252,139,93,150,131,239,184,246, +103,174,78,176,47,191,57,100,249,29,69,90,203,228,14,3,77,127,161,231,192, +87,177,167,84,51,86,184,132,8,94,141,67,231,39,78,186,64,98,25,199,11,191, +198,184,62,59,57,114,238,7,100,254,197,46,203,96,118,62,246,197,137,146, +62,201,231,207,36,159,114,50,199,110,104,172,8,1,41,43,142,187,130,227, +212,77,79,18,251,155,132,158,122,56,211,113,136,9,122,234,49,145,43,34, +150,150,44,255,226,164,115,84,136,242,119,25,13,82,239,208,161,101,8,57, +187,172,66,216,104,128,87,121,70,24,47,24,185,99,167,36,195,208,164,253, +221,199,28,3,115,225,50,122,132,222,179,207,114,84,104,248,103,223,225, +179,35,95,249,142,66,4,156,11,104,41,240,182,225,220,247,200,252,15,254, +51,207,209,36,103,67,222,195,42,193,123,250,241,204,197,79,250,39,187,17, +11,121,87,115,233,123,68,210,111,90,220,249,227,69,74,60,220,230,82,136, +200,235,121,232,33,255,131,255,204,139,251,249,17,83,98,109,192,185,20, +10,181,145,74,93,81,162,69,30,195,182,41,95,34,200,3,95,229,52,255,43,23, +227,80,89,44,191,181,195,255,112,117,154,125,113,226,152,101,119,36,65, +8,132,235,209,47,155,93,124,64,102,161,100,84,228,33,44,40,247,196,7,229, +19,91,37,113,239,254,158,214,41,76,112,166,120,108,204,242,174,124,230, +85,13,246,114,238,171,191,59,245,185,239,105,76,67,111,37,69,241,197,97, +14,181,133,128,119,61,141,109,232,157,36,207,191,56,106,141,92,33,71,120, +42,247,243,38,122,33,206,162,139,63,249,255,118,42,101,184,143,180,227, +133,86,72,74,157,35,19,108,38,68,192,227,49,110,130,165,143,236,148,196, +6,123,163,11,13,196,186,121,27,52,85,113,160,18,158,118,140,150,96,153, +43,188,57,243,107,184,210,120,73,158,157,40,24,35,236,151,229,8,215,209, +57,65,145,151,200,208,209,6,77,145,21,8,251,11,19,2,149,138,112,117,172, +81,158,56,237,223,215,96,135,84,107,220,90,131,144,39,74,33,240,222,35, +101,92,219,169,2,225,43,223,83,200,192,104,106,174,99,143,80,95,28,148, +72,49,108,197,81,74,236,120,161,30,46,52,78,82,22,95,156,116,137,76,207, +111,172,69,200,216,35,192,121,143,146,242,125,57,207,4,191,187,233,251, +39,10,33,240,193,163,16,56,215,210,12,53,125,136,227,155,60,227,235,216, +131,252,226,144,73,198,161,199,4,168,100,150,154,221,128,72,134,143,124, +85,242,146,188,191,222,166,239,167,245,141,73,235,49,238,239,131,161,51, +29,237,216,19,84,201,190,220,129,141,222,92,140,121,246,180,99,67,135,224, +160,115,84,232,168,251,150,46,121,62,71,37,177,46,238,127,145,127,115,200, +230,23,118,140,27,247,182,103,12,80,201,201,144,20,169,225,139,76,217,249, +225,89,190,208,84,249,145,74,72,124,176,177,154,99,74,16,243,247,207,119, +90,77,240,13,253,120,161,113,1,149,199,196,192,222,10,114,21,24,76,207, +136,228,40,37,206,183,180,166,161,117,33,66,209,58,208,143,53,61,57,223, +249,158,66,120,70,211,80,143,61,65,125,113,76,158,251,38,249,211,205,168, +54,244,227,153,214,57,116,145,197,196,68,11,133,206,30,228,148,219,249, +210,41,127,67,191,40,29,13,120,63,210,37,249,60,169,187,124,182,94,82,20, +63,57,233,50,173,233,154,113,25,179,173,173,235,232,92,128,76,165,179,30, +41,129,133,16,49,71,102,236,24,131,162,148,73,30,77,67,231,2,74,159,248, +210,129,126,236,24,81,28,37,140,67,122,127,144,148,249,23,7,45,49,227,128, +9,129,82,230,209,248,20,1,208,168,121,227,40,98,12,94,46,98,182,17,181, +236,233,92,64,104,133,14,14,227,35,93,178,20,2,225,123,90,211,49,34,227, +185,115,45,173,237,104,173,71,234,29,149,176,209,11,205,74,132,235,232, +173,164,44,75,132,239,233,131,162,80,26,111,106,134,32,216,233,12,233,59, +106,219,210,59,80,249,41,38,145,250,129,118,108,49,136,136,202,249,158, +198,59,60,57,123,17,24,108,143,9,130,74,106,212,100,108,138,41,35,63,230, +3,77,250,135,116,190,157,143,161,102,194,72,103,187,199,243,151,232,160, +99,35,178,215,37,142,193,27,6,219,49,6,65,37,99,56,48,182,108,143,134,189, +15,134,222,118,52,166,39,200,130,125,89,16,204,149,171,243,8,25,13,247, +152,67,36,216,103,26,233,58,106,215,210,185,64,150,197,253,179,174,166, +245,130,170,248,230,152,233,135,118,233,193,199,231,235,213,186,188,15, +234,226,125,240,119,101,57,239,123,244,73,9,220,39,117,141,111,59,153,121, +172,243,168,169,222,253,119,26,0,136,15,106,189,95,88,214,193,167,198,16, +182,199,139,138,125,85,197,56,223,164,14,130,195,216,142,102,236,113,178, +226,80,238,40,149,124,238,213,254,212,150,49,16,252,72,63,214,52,150,8, +171,233,100,249,225,49,206,19,130,162,200,74,180,173,249,101,227,129,142, +207,211,100,122,207,169,252,153,46,155,127,113,25,251,8,189,5,1,82,145, +233,61,199,234,15,42,169,240,190,193,88,139,11,150,166,63,99,117,129,82, +21,251,76,83,72,48,46,160,178,3,153,176,140,46,80,228,123,84,24,232,156, +138,10,90,5,6,39,81,24,218,254,255,210,5,137,210,49,35,127,159,21,200,119, +198,91,136,33,8,23,12,54,4,140,57,243,223,174,163,204,191,98,70,168,137, +113,255,83,121,100,39,5,206,117,244,102,32,168,99,76,160,97,192,5,16,161, +167,29,4,78,231,40,93,114,204,119,28,178,10,45,99,137,152,15,6,23,2,102, +60,243,63,233,249,95,121,73,246,110,175,83,3,16,23,12,214,7,140,139,223, +175,138,19,71,173,48,182,167,23,57,199,42,142,207,186,142,222,244,160,98, +226,164,198,96,132,66,210,211,244,255,69,3,40,89,164,138,134,226,177,46, +119,213,184,72,94,2,134,186,255,111,26,4,90,229,236,178,3,185,176,52,99, +139,13,25,187,226,148,146,34,59,174,206,131,200,192,245,52,230,194,101, +28,48,66,226,218,129,90,100,20,249,129,83,85,145,139,84,229,97,44,50,143, +25,244,114,173,105,138,80,40,122,218,254,255,210,206,247,87,75,130,189, +114,238,59,250,224,147,167,174,208,122,207,169,252,131,82,193,104,126,113, +25,187,8,141,34,64,40,114,189,227,80,253,145,114,14,226,36,173,31,25,236, +128,113,14,103,107,50,21,97,117,25,198,100,180,15,92,218,255,166,145,25, +101,126,228,59,47,200,112,244,230,202,64,206,177,60,82,73,176,110,160,79, +80,230,119,94,161,165,216,172,230,157,55,10,55,206,208,91,131,241,14,103, +26,178,226,64,165,99,222,194,101,236,232,167,178,44,161,200,213,158,99, +241,7,165,214,119,3,118,21,33,140,149,23,14,144,201,11,55,58,71,171,24, +131,61,230,21,234,101,61,183,136,37,79,72,52,208,143,255,228,191,70,129, +214,5,85,30,229,71,39,61,162,66,199,185,29,105,165,166,200,79,81,182,37, +8,63,196,44,239,208,83,15,144,203,12,169,10,118,178,226,152,23,104,225, +146,124,26,154,254,191,232,16,40,149,83,101,95,241,243,173,222,11,55,53, +31,16,65,162,4,12,230,159,252,151,21,40,117,31,159,154,176,128,208,115, +233,254,155,86,100,228,197,129,83,149,35,253,64,111,60,153,58,160,177,140, +30,138,124,135,10,35,173,23,20,186,196,155,115,76,74,68,98,154,129,70,101, +228,121,132,213,115,25,107,91,92,136,201,145,214,59,234,254,159,140,186, +226,152,77,57,55,6,146,252,54,221,127,211,10,80,170,96,159,198,23,111,45, +135,199,96,66,192,154,51,255,227,59,202,252,196,87,86,160,131,64,8,61,59, +191,113,125,118,249,236,252,110,57,148,183,117,210,40,58,154,254,191,104, +17,104,85,164,243,107,162,97,146,206,239,94,231,4,223,82,123,143,16,89, +12,25,152,11,87,211,99,144,152,118,64,203,140,226,54,127,143,51,45,173, +177,232,236,20,13,128,37,75,155,0,129,222,104,85,251,6,62,15,62,204,146, +194,196,235,90,245,55,189,182,63,250,247,90,41,91,152,38,33,62,171,161, +135,237,254,192,159,244,130,190,121,215,3,157,233,233,172,71,233,146,125, +86,145,201,121,121,204,64,111,58,26,23,208,83,210,153,252,176,121,69,170, +31,116,222,17,230,181,187,51,184,216,199,218,182,153,247,126,239,149,124, +175,167,140,161,3,155,242,21,194,44,121,71,205,33,224,84,143,57,89,150, +34,213,64,107,17,82,237,187,34,132,88,47,173,85,204,84,117,200,164,60,99, +118,179,155,122,254,7,17,161,231,212,154,245,109,163,139,196,117,31,176, +120,127,87,140,83,253,167,247,14,143,138,239,186,93,182,30,132,142,158, +70,138,249,250,91,226,102,172,241,102,62,71,210,239,164,170,4,132,68,164, +234,129,183,220,11,55,164,37,182,156,157,80,163,9,154,142,107,161,238,23, +73,240,177,58,35,89,235,136,251,250,220,151,64,220,107,110,121,215,235, +33,54,236,112,15,252,226,105,125,112,88,239,99,125,183,72,9,99,222,227, +240,88,111,24,77,77,227,4,101,118,96,167,100,162,73,190,175,45,65,224,137, +245,222,15,227,89,188,223,251,180,190,183,22,154,209,131,191,215,215,223, +58,41,36,216,82,163,153,184,40,28,118,201,152,40,244,189,148,236,33,3,219, +17,41,45,239,245,206,33,237,93,72,178,113,11,75,76,120,65,112,4,84,244, +54,99,183,22,44,30,177,216,255,87,186,32,76,114,149,4,48,32,99,147,169, +148,28,101,23,221,2,223,62,251,161,37,200,212,143,34,158,47,41,227,249, +65,126,248,140,180,54,238,118,56,66,234,57,48,33,45,83,27,223,123,21,147, +18,73,209,115,63,31,46,213,244,11,36,34,56,130,152,18,224,86,228,83,136, +84,58,250,137,163,151,122,74,4,55,115,238,102,208,119,152,234,221,83,41, +98,250,76,36,89,245,36,253,66,220,123,149,214,103,116,35,163,173,211,69, +127,160,210,247,26,126,121,155,223,93,135,89,239,239,252,4,226,126,30,3, +119,25,156,231,213,220,122,38,220,102,97,113,126,182,190,168,212,173,112, +174,223,238,223,127,88,31,94,53,143,122,92,95,102,161,1,145,222,25,132, +36,147,73,218,83,15,7,231,13,195,88,211,6,40,244,49,205,63,233,46,161,110, +168,207,164,251,164,156,205,103,97,188,134,224,102,100,51,191,113,209,58, +231,8,164,50,179,15,133,245,119,122,12,191,235,93,254,244,254,119,113,253, +119,125,186,63,84,184,222,77,165,102,49,59,119,55,207,196,22,177,65,75, +59,92,233,66,70,153,29,216,79,201,98,159,24,29,159,174,227,135,141,127, +126,203,192,250,157,142,81,191,137,180,124,220,230,246,175,206,247,147, +231,188,51,24,255,221,99,226,67,57,255,180,185,210,135,207,12,193,208,116, +191,104,131,138,73,112,83,2,215,171,231,127,208,213,235,183,247,226,147, +118,158,159,236,231,187,241,188,59,231,252,205,51,245,59,99,253,119,189, +235,223,125,206,62,113,116,248,77,189,252,239,208,27,43,207,12,97,164,233, +206,180,65,69,227,52,203,159,12,194,191,188,206,159,180,105,254,157,61, +9,124,78,40,243,225,26,249,96,104,187,95,52,65,81,101,135,152,99,240,105, +167,196,45,64,104,149,77,238,205,130,121,31,238,9,84,226,131,75,250,223, +41,24,201,123,23,66,252,181,75,229,239,40,0,2,214,59,68,242,28,214,152, +28,156,119,176,249,249,223,188,60,254,93,23,239,95,189,144,126,199,64,251, +168,223,248,111,202,64,248,155,243,249,171,10,247,149,129,248,119,140,143, +223,85,242,47,255,56,134,177,161,25,13,58,255,98,159,233,15,61,177,15,229, +142,191,48,214,191,34,63,127,71,246,127,71,230,63,157,39,111,28,133,127, +215,184,197,223,92,235,191,43,67,191,129,98,254,191,57,143,143,242,123, +152,98,202,255,47,29,134,223,145,21,222,24,10,130,191,166,115,111,250,47, +86,23,52,198,160,242,47,14,41,95,75,252,174,99,184,44,43,31,220,24,30,248, +6,95,12,50,132,128,179,145,165,77,206,225,227,229,44,197,111,28,168,223, +216,176,152,20,225,80,203,247,139,45,38,133,191,240,239,205,231,137,117, +222,206,223,62,116,47,50,24,223,62,115,131,215,240,211,11,243,119,122,158, +139,15,15,255,199,239,217,160,122,219,154,199,199,74,121,131,165,35,188, +34,55,127,177,182,191,37,147,111,152,32,214,100,233,175,122,59,159,156, +15,239,82,7,46,249,158,181,236,213,158,252,149,11,249,165,98,123,69,243, +247,70,105,254,191,186,212,62,250,206,111,200,207,59,178,148,143,207,232, +218,121,16,207,188,193,255,70,185,121,254,108,131,23,156,55,40,194,95,189, +220,38,15,214,59,98,153,153,252,11,190,201,7,123,53,231,240,254,228,5,171, +103,98,67,79,252,27,100,48,248,212,134,118,57,255,191,97,224,37,15,126, +237,0,46,126,54,187,100,133,20,11,78,67,113,39,200,158,83,118,189,93,132, +55,188,119,51,238,188,27,167,114,8,247,94,247,171,138,100,238,234,191,179, +134,87,72,203,151,210,250,64,92,253,137,162,254,144,254,231,229,97,154, +175,231,202,120,55,185,69,89,33,187,254,13,229,251,119,225,240,77,178,243, +191,234,73,173,241,3,255,198,133,252,106,158,47,215,240,221,37,252,226, +221,191,235,181,191,253,206,39,70,196,167,255,222,170,121,253,100,92,159, +144,105,191,58,91,127,227,178,93,221,143,15,199,255,22,214,94,242,184,254, +230,126,252,142,129,250,119,188,246,181,247,124,36,75,43,165,4,155,23,225, +135,6,205,218,69,247,180,71,111,206,214,239,232,202,119,231,239,223,242, +204,79,117,198,27,103,67,132,109,7,230,221,218,252,101,99,97,155,89,235, +217,13,223,120,183,247,254,214,194,51,254,222,10,143,160,88,251,185,120, +49,142,55,183,143,184,103,248,4,183,120,255,211,139,167,231,133,89,179, +251,149,223,221,34,137,22,43,134,193,148,242,46,182,86,93,188,81,76,98, +125,243,158,136,136,195,202,188,121,106,208,243,72,103,183,81,123,184,134, +50,136,79,92,143,15,76,90,177,54,167,53,46,214,240,225,29,47,94,16,255, +204,13,148,176,189,119,226,55,52,234,211,84,195,34,75,120,234,198,36,214, +229,247,233,221,159,242,163,46,141,150,197,207,133,248,173,67,123,91,226, +23,165,150,207,255,94,177,88,2,11,163,252,213,177,220,224,69,13,43,220, +210,97,235,108,189,144,1,94,216,133,226,141,216,174,158,67,241,90,246,103, +245,202,235,23,171,216,100,34,188,203,10,143,244,118,27,84,192,4,241,124, +110,150,213,27,98,77,254,231,50,18,54,68,228,21,255,245,108,126,65,172, +200,224,202,220,196,214,160,54,54,105,75,199,111,29,124,241,137,238,17, +111,246,123,177,79,66,108,239,207,203,1,136,79,14,206,194,217,156,173,97, +96,91,111,63,252,76,124,182,54,159,158,151,87,139,179,188,74,158,178,232, +215,30,232,195,125,126,127,199,107,125,153,198,254,26,122,73,28,103,43, +164,202,107,214,237,154,231,247,42,179,136,215,158,201,75,239,109,110,245, +110,205,233,131,134,2,225,3,2,231,191,98,129,46,189,147,45,67,68,132,223, +240,240,94,172,77,8,159,133,35,30,210,213,195,135,112,240,95,33,74,22,111, +112,229,45,175,234,67,143,105,115,206,175,80,171,13,5,247,18,134,21,219, +23,236,95,58,139,159,122,111,91,144,228,150,231,42,152,165,221,47,88,87, +126,103,110,31,202,65,16,235,196,245,159,122,148,175,100,254,37,12,253, +34,16,251,183,147,242,196,182,242,22,159,34,60,31,134,143,94,121,243,191, +37,71,31,158,231,191,186,255,188,209,181,159,236,243,230,249,250,119,121, +253,191,129,90,125,114,39,174,26,255,225,131,231,44,61,248,153,192,62,243, +222,123,172,183,4,239,31,90,49,222,47,37,177,18,135,95,217,190,176,6,249, +191,231,109,141,245,238,54,149,203,132,117,247,66,108,154,206,43,214,253, +140,213,37,132,21,183,232,133,151,48,223,0,49,191,148,215,15,187,120,176, +130,95,157,248,164,44,111,86,187,120,15,145,173,89,160,107,150,171,120, +181,198,143,66,47,150,130,22,182,188,247,176,177,54,75,203,54,172,200,213, +74,23,164,7,248,80,172,64,129,235,173,4,197,211,220,31,189,113,49,237,243, +147,247,185,129,28,205,199,49,49,141,45,231,246,202,235,9,43,10,255,97, +79,197,182,39,252,112,14,197,107,175,233,105,39,197,223,80,202,98,101,31, +86,100,107,233,217,61,17,179,139,5,218,18,30,188,123,241,86,49,61,19,180, +139,39,116,104,254,142,240,136,242,109,161,2,171,74,127,238,29,175,210, +92,46,228,117,249,181,53,103,224,67,227,96,83,23,172,145,182,135,21,132, +236,157,107,43,102,231,99,209,25,236,201,211,14,219,136,19,225,247,0,178, +53,196,230,237,156,231,247,66,120,13,111,60,160,45,98,241,93,177,104,46, +178,134,162,134,7,25,20,91,151,242,71,158,255,7,22,160,120,181,207,91,221, +216,194,19,58,34,152,235,230,176,50,47,241,104,84,47,158,41,151,15,15,15, +7,44,254,81,82,35,231,132,222,65,44,132,36,172,35,55,65,220,85,241,2,186, +23,75,1,14,108,28,174,84,91,254,250,62,182,0,0,32,0,73,68,65,84,157,90, +121,137,197,216,230,156,210,239,219,147,45,20,175,120,161,80,158,206,246, +154,18,9,27,88,120,226,142,126,216,176,176,184,196,230,148,180,235,23,144, +216,18,172,45,143,72,44,87,112,67,249,205,149,200,188,231,250,150,82,15, +203,249,178,18,107,15,47,96,225,229,40,194,246,229,36,54,194,38,43,235, +16,86,161,193,89,222,198,109,152,226,19,173,251,244,123,225,9,250,10,139, +223,16,43,16,222,146,41,33,204,140,140,215,25,78,226,65,9,45,149,213,242, +242,89,24,29,97,197,232,65,172,135,9,222,42,47,177,17,70,91,137,63,207, +47,35,241,248,125,33,238,23,112,120,24,249,227,158,139,141,182,146,97,109, +29,196,43,72,53,172,92,110,226,243,45,23,119,99,36,108,122,232,171,237, +240,102,107,47,214,13,37,241,202,216,120,17,2,185,61,55,172,24,2,108,200, +227,172,22,252,201,32,251,252,186,226,233,74,20,111,238,54,241,38,52,35, +86,28,130,240,6,109,11,143,196,79,15,186,107,185,54,75,159,79,60,180,55, +13,15,243,90,118,27,19,15,23,234,251,203,253,29,212,255,142,28,62,188,112, +88,152,141,89,60,104,162,39,27,243,129,40,37,60,233,127,185,101,81,139, +68,123,247,24,247,22,139,7,133,103,235,80,132,251,192,68,88,92,193,143, +113,165,135,101,159,55,248,152,24,185,189,155,189,95,220,174,195,71,213, +27,158,254,127,121,225,138,213,3,57,61,81,44,158,244,104,81,138,7,129,32, +181,161,180,177,25,77,88,49,38,18,29,170,243,177,145,203,114,211,197,210, +10,125,209,236,126,59,67,97,105,134,205,133,201,167,241,249,217,251,151, +106,117,235,226,120,246,228,197,10,10,32,54,2,136,98,97,37,47,21,175,88, +81,92,97,77,177,133,45,168,50,188,240,86,215,142,199,134,55,179,25,95,12, +219,218,75,220,87,230,209,188,156,245,92,95,67,160,38,58,89,239,99,211, +152,39,51,234,209,8,10,155,6,208,125,206,97,33,163,33,221,166,98,211,239, +242,120,239,177,83,227,154,53,245,29,30,165,125,13,21,155,157,130,123,79, +238,23,70,104,96,106,214,98,177,206,70,66,141,244,183,243,158,229,149,19, +130,195,166,223,177,83,83,167,233,93,179,254,206,226,149,225,62,87,249, +97,137,74,61,230,137,136,39,15,46,164,83,176,221,222,80,60,232,179,109, +179,245,61,228,190,149,159,195,134,33,59,71,66,94,133,188,194,66,223,62, +143,42,120,135,189,233,39,241,153,67,244,48,10,54,157,142,71,212,75,204, +78,98,88,213,3,98,181,31,249,90,130,112,184,113,84,188,70,129,210,173,50, +11,219,132,224,112,222,226,87,140,212,91,95,255,212,108,41,60,33,137,98, +161,123,196,138,113,21,158,56,74,54,145,198,13,52,235,117,209,203,163,177, +30,150,142,246,11,195,75,140,110,8,97,205,186,8,119,245,33,132,76,86,237, +150,98,157,14,70,88,40,153,176,106,139,62,122,175,107,162,26,123,219,79, +63,151,66,60,93,232,98,113,61,108,213,248,45,71,181,118,197,240,112,212, +195,234,177,16,137,88,166,79,181,138,168,61,199,188,162,144,51,245,23,98, +23,177,218,216,219,231,185,124,127,221,221,71,34,86,76,141,245,195,55,247, +50,238,223,114,24,211,208,152,1,47,119,28,243,253,173,139,158,16,143,94, +201,124,198,62,149,87,169,149,242,148,251,78,189,40,2,14,225,41,204,19, +158,194,21,225,201,179,152,14,253,212,41,78,204,41,68,103,151,114,120,81, +195,57,61,55,240,120,1,132,39,101,250,120,57,132,151,177,87,241,6,112,253, +164,91,76,252,219,187,46,54,71,10,57,251,252,192,78,203,197,206,222,103, +16,22,235,21,86,228,248,254,247,124,244,225,105,159,238,255,29,48,182,230, +220,53,24,114,142,85,100,224,154,251,6,193,7,60,83,87,172,176,242,196,87, +185,37,107,43,56,25,232,177,207,251,101,136,108,131,177,19,27,104,89,178, +43,34,115,157,22,2,130,197,184,129,110,188,210,152,17,139,138,212,191,197, +189,231,187,120,240,233,197,202,201,95,158,232,249,105,102,227,167,243, +235,242,117,30,208,243,252,182,126,111,169,39,231,40,69,32,188,72,245,127, +165,99,31,71,58,215,185,219,50,240,248,212,104,252,27,83,83,155,158,144, +168,161,115,185,94,43,44,86,71,246,65,37,197,75,175,119,187,150,112,93, +199,172,233,198,89,4,72,132,23,107,159,206,185,235,185,142,117,162,187, +142,157,225,230,251,125,255,60,158,207,106,226,72,120,113,9,175,33,79,143, +187,51,223,151,104,92,123,36,74,202,23,167,125,57,223,237,83,22,54,141, +79,241,228,26,234,199,227,60,93,84,16,156,143,173,57,19,183,237,125,11, +150,138,242,81,0,194,138,34,152,43,27,241,4,59,60,11,88,8,30,231,98,31, +86,45,213,170,224,172,94,192,31,120,118,235,202,115,14,168,63,122,248,211, +79,173,27,104,199,134,49,68,50,150,157,206,185,51,190,134,200,234,53,214, +140,65,145,101,71,246,186,72,45,33,31,15,99,216,16,220,176,10,202,138,149, +43,53,220,252,228,249,69,22,66,192,186,150,122,28,9,170,100,55,181,200, +125,64,211,23,112,85,112,24,123,229,50,122,148,174,216,103,197,189,117, +226,2,232,127,229,229,10,33,30,60,241,87,254,250,220,66,15,193,207,222, +95,178,207,202,200,162,180,16,102,177,233,29,133,213,84,198,229,33,91,123, +158,88,64,153,15,71,54,181,218,124,52,35,151,215,231,170,111,52,59,25,34, +146,13,13,53,125,144,84,121,162,8,126,48,130,196,194,228,10,27,16,177,152, +201,201,179,173,31,158,12,33,110,231,205,251,129,222,244,216,32,41,242, +138,82,234,212,10,54,93,172,182,225,58,90,164,222,221,246,159,133,207,181, +60,97,175,148,247,92,38,133,140,253,231,43,111,113,94,80,101,7,118,42,67, +73,57,99,243,138,164,66,157,23,20,250,200,207,60,75,236,144,177,173,231, +227,78,63,234,160,231,181,122,28,197,26,204,30,30,46,219,176,240,177,196, +10,162,181,149,140,187,109,132,241,100,194,173,95,238,66,76,142,212,242, +106,120,109,220,173,161,150,97,241,155,44,12,179,72,73,218,36,253,176,99, +159,156,15,49,91,3,177,113,214,159,205,235,176,130,251,189,66,44,196,203, +207,196,203,11,115,105,196,76,103,116,205,0,93,4,216,92,164,27,30,130,162, +200,247,228,74,61,72,128,115,177,243,104,31,52,101,190,75,159,111,93,238, +235,55,76,120,50,17,103,186,249,166,95,93,58,95,177,143,126,224,5,95,249, +124,71,82,88,226,217,164,103,33,27,139,136,89,26,175,115,61,154,7,216,123, +166,246,148,188,245,0,14,15,195,126,246,163,183,55,122,61,122,248,168,8, +151,234,45,229,203,79,92,209,226,241,98,219,138,107,132,5,252,17,158,236, +206,71,245,207,138,152,77,135,62,44,148,164,51,53,151,113,192,201,146,99, +81,145,203,59,43,156,32,96,205,149,203,56,98,101,201,169,168,40,164,126, +8,79,132,181,88,99,136,125,156,31,242,213,132,138,52,162,120,76,0,37,136, +253,215,19,124,42,165,66,137,52,175,16,112,169,215,51,128,119,13,215,113, +192,201,93,164,77,148,242,193,24,120,80,189,222,224,2,120,223,112,25,58, +156,220,81,41,21,161,220,32,144,196,190,200,136,200,53,238,167,203,78,73, +20,50,126,159,52,22,49,65,192,177,119,124,252,153,216,132,250,34,205,170, +141,239,119,13,151,113,122,191,142,159,5,80,98,154,159,191,35,57,98,122, +246,70,145,122,234,109,63,197,188,109,240,169,191,126,236,153,30,27,104, +168,200,48,150,200,60,110,189,236,35,124,16,41,48,69,236,171,47,82,87,66, +63,79,188,74,223,103,130,245,130,155,229,101,77,223,159,80,241,142,122, +184,210,121,197,190,252,98,167,82,15,107,17,34,92,30,64,11,117,67,217,130, +55,120,84,106,82,19,16,193,99,211,252,231,207,23,34,44,204,217,231,168, +253,52,231,184,135,25,187,226,39,85,1,50,245,209,246,83,31,121,223,112, +30,58,172,172,248,82,242,190,255,98,25,164,9,139,139,237,241,58,18,171, +170,63,254,49,182,163,247,130,50,251,230,43,47,144,98,246,61,223,114,233, +27,70,50,246,229,158,74,105,228,6,2,55,63,157,222,135,212,55,125,246,254, +36,47,204,122,161,59,92,172,0,122,144,31,241,112,222,197,34,67,224,166, +39,130,127,58,159,66,106,148,184,247,13,159,16,137,137,96,202,133,200,20, +38,69,210,28,147,236,221,170,42,35,19,159,76,86,164,247,126,118,190,239, +99,140,68,60,75,249,84,17,237,72,223,141,242,97,103,85,97,234,198,120,22, +110,235,225,110,242,19,92,195,121,140,158,251,41,175,40,164,92,9,10,62, +163,177,19,220,29,194,93,123,249,196,149,161,132,124,8,77,186,116,230,100, +170,158,112,11,249,213,66,174,198,220,31,139,87,238,235,229,195,250,250, +112,219,3,119,215,15,82,162,153,159,191,158,122,184,210,122,197,190,60, +178,83,250,182,238,247,207,47,116,94,179,43,143,28,148,142,231,110,90,129, +167,243,119,95,255,155,105,17,236,140,81,241,190,191,76,231,207,53,156, +199,14,43,119,156,148,66,224,112,65,165,14,117,226,41,200,252,128,84,132, +133,254,73,119,67,52,10,29,54,8,164,32,126,158,244,155,148,247,62,249,209, +112,62,163,73,109,95,167,131,226,125,136,44,113,169,207,123,108,11,187, +17,241,9,225,70,82,240,8,181,204,44,158,69,67,151,7,223,48,220,45,149,155, +144,249,56,49,149,72,45,98,126,133,96,45,191,117,162,170,68,70,234,88,158, +44,168,101,150,123,202,142,190,133,220,238,153,184,97,37,182,18,130,101, +176,13,205,48,130,62,114,202,11,242,89,147,29,17,28,131,109,184,14,61,66, +159,248,206,163,7,42,102,229,34,83,124,116,190,113,33,24,122,219,80,143, +45,131,139,155,24,144,228,249,55,127,228,26,107,174,92,93,32,147,48,58, +131,113,30,33,43,78,187,31,28,148,68,164,113,93,199,150,209,185,120,16, +0,173,191,249,179,168,40,165,138,170,112,101,125,189,107,169,251,51,181, +237,25,188,199,163,200,228,200,104,27,50,189,143,74,216,119,92,198,17,161, +114,164,27,232,221,136,19,25,251,242,39,7,233,104,135,11,163,216,243,93, +238,40,4,140,137,247,90,170,19,199,188,36,23,211,33,73,138,110,38,31,214, +245,52,253,47,174,182,143,12,94,104,180,52,247,247,23,187,72,253,105,91, +174,99,199,224,108,36,192,209,7,254,40,143,201,11,190,199,101,167,245,189, +197,190,130,99,48,23,206,163,73,227,239,233,221,136,23,5,187,242,7,223, +89,134,8,3,189,105,169,199,158,33,197,230,180,62,241,179,60,82,42,137,247, +35,131,169,185,142,29,99,138,21,75,85,113,44,190,216,107,157,40,77,107, +234,177,103,116,6,135,68,233,35,127,148,39,74,37,193,143,49,148,227,36, +251,42,194,204,147,65,232,109,79,51,92,232,68,201,119,177,167,16,2,99,27, +234,161,195,171,40,99,132,49,142,207,244,12,206,68,18,20,125,226,71,121, +160,84,106,166,132,150,241,119,17,217,8,205,149,243,216,209,123,200,244, +145,63,170,35,165,148,49,23,192,245,105,255,7,70,111,241,104,148,52,252, +143,109,201,245,129,83,177,191,49,35,6,241,88,238,182,204,78,9,43,77,160, +196,44,238,63,218,154,218,140,168,236,7,167,172,136,198,197,68,114,20,12, +253,120,165,118,130,93,81,68,118,63,15,15,180,88,183,203,235,38,189,88, +219,114,29,12,58,63,68,20,77,196,208,217,104,26,174,198,146,229,39,118, +50,196,53,77,251,27,210,254,254,40,143,55,206,242,251,250,241,100,144,6, +111,24,76,205,37,237,63,8,164,42,56,20,95,236,149,196,218,154,198,64,89, +238,169,84,150,144,154,11,67,50,174,115,96,116,3,221,120,161,181,35,46, +8,144,154,42,25,57,130,16,169,86,199,11,157,53,152,32,16,183,207,115,192, +210,143,13,215,177,103,244,54,18,79,169,99,28,191,140,180,209,157,105,147, +124,186,153,252,30,168,164,76,84,164,53,245,216,221,244,131,71,160,244, +55,255,40,118,148,55,84,246,57,224,41,102,222,227,84,185,116,119,157,60, +198,214,52,131,69,229,71,246,58,94,50,34,88,6,211,112,53,142,44,63,222, +214,255,58,246,24,111,35,65,149,62,62,156,223,69,162,196,204,176,154,100, +103,90,63,19,73,139,164,166,204,34,19,164,14,54,233,207,187,126,80,250, +200,159,229,129,66,41,240,134,97,108,168,157,96,95,157,168,116,162,107, +190,137,102,98,236,116,138,93,117,100,159,62,231,118,167,13,116,99,195, +117,236,48,83,248,114,166,31,66,112,105,255,174,105,124,1,33,115,202,236, +196,81,195,48,156,185,218,62,233,14,137,150,134,255,181,13,153,62,240,85, +68,103,230,241,254,153,229,34,4,127,187,119,38,253,238,146,254,251,89,158, +40,133,165,25,126,81,167,251,97,112,6,227,28,82,237,248,170,126,176,215, +26,25,204,109,126,218,57,143,214,201,91,78,151,189,86,10,16,88,107,17,128, +212,234,241,242,139,225,156,148,0,39,80,90,222,18,16,110,246,118,34,133, +17,8,164,150,143,241,220,219,247,45,2,129,210,19,223,121,84,38,58,41,49, +235,28,2,80,90,63,195,165,1,172,51,241,251,66,63,129,28,33,8,156,179,49, +14,145,169,123,158,212,148,72,17,2,214,89,164,16,209,152,121,60,226,120, +111,233,18,79,117,158,127,113,204,38,239,99,178,98,13,157,185,210,216,64, +158,127,115,204,138,104,221,223,228,54,164,241,11,180,86,55,43,223,152, +154,243,56,16,212,142,67,245,31,156,194,64,219,159,233,40,217,231,37,193, +157,57,143,87,6,118,81,32,242,64,219,93,48,34,35,19,1,103,46,15,223,151, +97,160,235,47,116,20,236,167,11,38,205,228,113,125,227,31,37,11,170,188, +98,244,30,161,43,14,197,145,74,220,19,101,132,111,249,53,212,116,206,83, +234,146,93,241,133,54,191,168,93,178,158,125,31,33,175,172,164,16,96,108, +203,181,239,240,242,14,251,77,243,55,206,33,166,245,77,247,132,150,25,101, +190,99,244,30,165,42,14,229,145,114,38,84,193,53,252,50,3,78,86,236,171, +63,56,185,150,243,80,99,17,4,33,31,12,69,155,230,167,181,74,158,171,199, +186,150,203,208,166,241,87,84,197,55,218,254,226,106,37,74,8,188,189,112, +30,90,140,220,113,168,254,228,20,90,234,161,193,76,208,188,111,185,246, +23,134,80,80,149,255,193,15,121,95,27,9,120,115,230,108,6,130,220,177,175, +14,156,124,205,185,111,176,169,50,35,42,187,43,103,227,40,178,47,14,58, +71,78,108,123,193,69,126,122,231,201,146,177,104,93,124,255,64,193,94,103, +4,123,225,127,199,22,39,119,28,138,63,56,209,115,29,106,156,136,86,252, +221,75,191,203,151,186,201,151,161,183,150,32,42,78,89,192,143,6,165,50, +180,20,183,62,18,74,230,84,249,14,227,61,82,29,57,148,167,251,250,11,73, +166,228,205,35,152,140,230,16,196,115,194,80,32,238,47,160,181,126,8,33, +136,224,176,174,225,218,183,120,181,143,74,89,130,79,212,169,151,161,101, +12,46,50,25,162,176,126,160,149,21,199,242,196,65,101,241,189,225,190,191, +42,83,209,163,245,3,237,56,130,204,35,156,26,92,98,29,238,168,71,67,80, +5,89,104,57,119,207,251,107,147,135,53,35,219,154,233,151,132,164,132,144, +246,255,202,16,10,118,229,127,240,83,222,51,227,21,96,204,153,179,113,104, +125,162,84,89,100,151,28,46,180,94,177,203,42,116,232,57,247,117,244,28, +243,111,254,81,168,91,24,43,174,105,203,175,190,137,158,99,254,131,63,31, +62,15,4,123,229,127,199,22,43,119,28,203,63,249,162,229,58,52,184,164,251, +140,189,114,30,90,172,218,113,44,255,193,23,221,93,62,8,137,166,119,196, +171,29,251,234,200,41,244,180,253,149,158,130,253,116,1,62,133,135,150, +40,108,64,248,105,253,73,250,115,90,127,11,50,163,80,242,230,224,121,223, +83,143,6,100,129,14,45,151,180,254,251,234,79,178,16,199,103,31,12,65,241, +164,31,39,153,118,62,254,254,218,250,5,0,123,225,95,55,253,240,39,95,174, +225,215,112,197,18,217,217,68,112,244,230,204,47,235,200,179,212,211,125, +142,212,6,71,111,46,156,173,39,207,190,56,222,8,195,82,200,48,209,4,91, +185,227,80,254,137,38,134,144,108,10,169,56,215,112,29,234,136,204,205, +198,119,103,170,243,200,155,126,43,217,151,167,153,126,85,41,4,22,13,103, +235,28,242,118,63,70,142,120,103,27,46,99,204,161,218,87,255,224,203,53, +156,135,58,234,39,60,131,57,115,29,175,244,161,34,43,79,124,101,158,174, +191,48,10,141,146,26,21,28,253,120,225,98,45,69,246,29,123,209,79,253,40, +156,143,144,148,84,50,193,92,204,188,251,180,8,66,36,131,58,121,136,139, +210,146,7,208,110,34,133,121,136,114,206,64,160,91,73,121,140,251,187,224, +16,62,190,255,30,215,21,171,237,128,163,161,23,158,202,102,230,16,253,253, +253,143,222,200,124,252,143,232,64,138,75,187,142,102,28,48,104,118,249, +142,74,101,55,15,140,224,176,174,163,29,123,70,145,177,203,246,148,74,35, +37,55,143,234,22,126,184,161,35,1,239,71,218,49,94,156,90,31,35,211,23, +35,221,216,210,59,40,242,10,229,7,154,177,193,202,138,67,113,160,16,158, +193,212,116,22,242,188,66,250,142,193,6,100,118,228,184,252,126,113,98, +175,38,79,241,126,136,230,235,47,240,88,223,211,12,93,154,219,254,6,141, +135,4,41,93,134,43,181,87,49,9,74,101,224,59,26,211,19,228,142,157,14,12, +166,99,164,226,148,231,72,215,209,216,1,43,42,142,249,254,193,58,23,51, +249,152,232,44,9,30,231,58,154,177,199,16,121,229,43,165,16,120,130,31, +105,199,134,222,129,158,152,164,66,76,210,186,90,79,150,255,224,52,177, +75,205,140,168,219,254,6,135,119,45,151,225,74,227,21,85,126,226,160,53, +248,158,198,116,56,81,144,11,203,104,199,120,57,39,79,96,176,61,131,151, +84,197,129,66,58,134,241,204,213,4,178,236,139,67,158,147,39,88,60,42,183, +134,193,131,214,251,52,62,75,55,158,169,147,145,183,215,18,111,107,106, +51,16,212,33,122,115,147,71,154,114,36,174,67,195,32,74,190,138,10,29,70, +218,177,103,32,163,202,115,132,237,104,237,8,50,198,195,21,113,124,163, +151,84,41,225,76,206,225,241,112,247,222,39,15,215,249,232,229,54,166,199, +138,146,83,121,72,225,154,68,97,234,122,234,177,195,4,77,85,238,169,164, +126,42,165,121,238,17,115,175,8,185,183,127,120,110,196,33,210,24,140,109, +163,247,72,198,161,56,176,83,122,230,129,247,116,99,77,235,33,211,123,118, +58,79,208,167,76,16,228,44,139,202,223,33,103,239,6,26,211,99,130,36,151, +96,237,128,147,57,149,22,88,59,50,4,25,57,206,157,69,200,29,187,172,68, +51,223,223,35,251,228,200,220,28,133,7,253,150,216,32,199,51,117,218,255, +99,150,163,101,52,12,99,130,109,76,2,12,234,192,119,94,162,48,180,227,149, +214,10,242,252,64,201,72,107,7,156,40,56,228,251,27,218,146,48,114,70,219, +196,243,194,244,249,61,169,212,251,232,53,54,118,32,200,61,251,172,72,227, +239,24,130,164,202,74,132,235,233,220,72,16,145,87,94,97,25,109,207,16, +36,69,150,131,235,233,173,71,103,71,14,89,134,100,164,51,29,131,133,60, +233,7,37,102,186,88,136,135,86,32,98,37,174,60,201,129,115,3,173,233,177, +65,144,73,129,177,3,94,230,148,90,226,236,192,16,20,90,196,42,136,32,247, +137,19,254,46,191,101,113,71,178,68,8,55,4,232,166,127,131,101,180,45,141, +153,175,159,188,237,149,247,35,221,88,211,59,241,160,31,186,241,66,109, +29,89,254,131,163,142,232,74,109,7,132,60,114,42,74,242,89,72,38,248,132, +108,24,3,234,192,87,81,145,165,48,163,119,17,249,170,141,1,185,99,151,214, +127,180,29,67,80,148,217,142,44,244,116,118,196,166,241,21,74,61,184,181, +224,112,174,143,119,67,208,236,138,136,184,221,84,192,114,93,195,221,176, +243,190,167,29,27,58,39,200,242,3,123,157,35,131,97,24,47,81,255,101,71, +74,122,154,177,193,201,61,135,98,71,46,2,163,73,242,87,124,177,87,2,103, +175,92,205,8,234,200,119,94,197,44,250,41,177,45,164,114,159,101,86,223, +122,30,167,216,44,47,221,236,214,25,30,155,191,45,47,131,144,50,230,31, +211,57,86,42,51,103,49,131,185,241,129,224,161,52,236,85,197,233,99,83, +174,228,97,97,232,77,67,103,44,66,69,37,81,220,51,233,32,101,209,119,214, +32,212,158,50,43,40,148,92,109,120,246,88,249,55,112,29,162,112,22,9,90, +148,62,122,22,93,80,236,242,61,58,116,180,102,196,203,29,135,188,162,148, +150,122,104,232,157,160,204,50,130,31,25,28,228,121,164,17,148,110,250, +190,164,204,227,133,47,22,105,99,247,139,53,41,176,4,251,12,228,28,242, +3,59,173,239,136,132,173,57,15,215,116,217,28,57,232,226,22,11,247,193, +3,158,126,188,210,58,73,158,21,100,97,160,181,22,169,15,28,242,120,144, +158,251,227,164,163,149,94,226,76,205,213,180,183,140,242,253,244,126,223, +113,233,107,218,160,168,242,72,115,42,131,161,27,226,225,85,217,145,99, +54,175,72,120,206,7,9,182,230,60,212,244,65,71,227,68,103,81,49,39,88,58, +66,110,45,131,247,8,169,162,229,44,75,118,249,33,102,115,75,137,244,61, +215,241,204,121,24,176,65,146,103,71,126,148,7,10,49,82,247,53,93,80,148, +105,124,42,24,154,225,66,147,198,119,200,50,188,57,83,27,139,212,39,14, +69,69,241,96,140,140,180,253,53,242,180,23,59,138,96,232,92,143,23,59,118, +153,194,152,58,94,254,62,220,56,235,165,136,227,219,103,5,89,146,179,240, +100,76,63,38,11,198,124,144,14,39,43,142,249,33,41,201,248,251,222,214, +92,198,150,145,156,125,186,120,37,203,103,190,235,247,184,204,178,127,220, +147,155,7,36,74,78,197,129,74,169,153,193,105,232,18,58,164,178,125,76, +170,20,203,40,254,90,190,245,64,221,199,189,211,186,64,216,49,242,160,171, +8,249,75,161,32,24,250,177,167,247,62,113,202,11,164,44,162,44,103,57,122, +206,155,189,152,225,109,158,190,231,58,156,57,143,3,38,72,138,252,200,119, +113,160,82,130,113,188,112,53,35,65,237,57,229,187,232,153,142,13,125,80, +148,217,158,60,116,52,227,8,122,159,206,239,28,181,244,12,227,37,134,189, +244,46,94,14,114,182,118,97,164,25,206,252,26,90,198,180,255,50,161,109, +187,252,200,78,11,140,137,158,123,252,92,34,1,41,203,88,153,145,9,198,177, +163,159,244,67,210,47,215,161,161,79,250,225,144,229,200,149,108,37,145, +28,159,103,30,150,121,100,120,160,25,58,122,103,81,186,68,218,33,198,128, +85,130,153,133,68,120,67,103,250,217,249,2,37,103,242,43,197,51,74,112, +215,62,183,245,65,239,57,230,187,180,62,105,103,124,199,165,191,210,6,157, +158,151,161,130,165,25,46,180,233,252,237,179,12,103,126,209,24,135,212, +39,142,121,69,38,103,225,103,31,141,129,171,113,209,193,154,85,56,5,70, +218,254,190,254,82,198,139,91,37,249,217,103,25,193,214,212,227,0,250,192, +33,141,239,41,215,204,214,156,199,22,67,206,62,223,223,244,107,216,104, +254,118,151,187,164,255,80,236,18,77,172,12,134,118,56,211,216,64,150,237, +201,25,233,146,241,31,223,111,98,2,175,19,105,207,37,227,248,139,218,120, +148,62,178,79,21,94,58,8,65,112,49,238,46,165,68,8,249,168,152,195,90,213, +169,88,253,9,139,92,213,155,183,252,234,2,20,224,29,183,184,251,212,145, +104,155,226,93,60,116,66,20,51,6,184,87,36,87,243,76,67,177,108,168,23, +98,198,97,103,26,90,47,40,179,227,205,179,152,4,62,184,158,206,212,52,94, +61,124,62,175,207,125,50,36,4,41,30,84,83,27,71,158,32,116,111,107,46,195, +149,62,100,28,138,138,140,145,214,24,132,62,240,149,85,100,216,104,205, +59,193,46,47,80,190,229,108,2,69,113,100,167,20,222,196,203,184,71,115, +44,146,64,136,187,83,5,143,113,198,24,123,143,89,254,109,200,249,42,246, +183,56,80,252,172,167,30,27,122,74,142,249,158,74,71,30,226,128,0,41,18, +52,217,210,91,7,82,225,108,139,147,57,187,242,72,33,117,172,22,8,247,186, +204,231,60,119,129,183,61,173,169,233,66,206,41,223,179,83,73,248,131,97, +48,29,141,151,236,138,3,7,157,33,252,64,103,26,174,46,144,231,177,156,42, +19,243,60,234,69,174,132,235,169,77,132,185,143,197,129,157,206,144,183, +77,246,56,219,83,91,79,94,252,131,31,153,70,221,50,113,85,204,232,158,6, +43,11,246,249,79,180,236,168,135,154,17,32,24,6,219,209,38,47,255,160,51, +164,31,104,198,58,30,190,132,20,120,23,203,35,133,62,114,200,115,52,30, +23,68,162,13,246,56,55,50,56,135,210,21,50,12,52,46,30,196,163,146,56,147, +228,163,248,7,63,179,89,188,80,42,20,242,30,150,190,215,7,173,24,192,1, +107,59,154,177,195,171,61,199,172,34,19,147,45,156,214,127,140,235,255, +85,238,217,73,253,80,194,28,124,192,7,75,64,34,196,148,8,180,172,140,185, +223,2,98,229,130,180,182,165,25,219,132,232,28,40,164,154,37,36,197,152, +251,213,58,242,252,24,61,84,177,93,25,126,135,210,77,138,239,26,180,210, +49,175,35,24,12,1,103,21,149,46,201,24,185,218,64,86,254,201,183,206,208, +139,164,213,123,242,212,178,122,98,1,83,139,130,93,241,147,76,69,152,120, +76,144,174,49,3,181,25,145,58,26,231,34,193,194,93,200,56,150,59,114,70, +218,177,195,201,35,95,255,63,103,239,26,108,77,118,150,135,61,239,234,219, +190,156,203,167,1,105,36,13,32,83,5,26,164,18,18,133,72,65,168,4,144,177, +37,27,33,196,140,112,2,70,55,98,67,98,155,128,185,165,10,137,96,35,12,54, +65,2,25,92,69,98,32,84,25,93,192,198,9,34,184,12,63,168,210,200,66,65,194, +41,60,242,104,144,11,60,186,141,230,166,249,110,103,159,189,119,119,175, +203,155,31,107,117,247,187,86,175,62,223,224,81,125,53,154,239,156,189, +187,123,245,90,239,245,121,159,39,1,176,17,28,76,232,23,59,117,138,243, +106,147,56,119,223,47,221,105,135,102,245,108,220,37,238,159,168,128,130, +69,175,119,216,105,139,38,236,143,161,97,234,127,110,208,155,29,46,181, +69,211,156,121,251,96,47,113,209,238,112,228,18,167,171,33,27,12,160,52, +162,32,119,141,136,67,102,32,30,156,205,108,179,79,122,46,122,191,254,21, +251,125,98,193,232,109,129,85,209,248,245,183,140,122,245,249,120,86,122, +255,164,160,84,146,208,13,126,133,2,79,130,217,227,82,15,235,179,22,206, +147,192,220,163,21,246,97,83,86,160,80,237,27,206,223,182,44,193,246,50, +56,247,83,156,54,13,202,0,24,45,128,17,179,116,169,13,138,242,20,39,117, +131,66,5,80,36,12,186,97,253,195,250,78,251,71,121,160,179,61,224,162,63, +192,170,179,232,254,34,58,49,219,98,223,95,162,229,26,103,205,22,155,162, +90,24,97,19,254,136,24,236,12,90,61,216,151,173,31,97,29,171,57,64,85,111, +209,192,224,216,247,80,213,22,39,213,38,248,135,75,92,90,133,77,179,13, +153,187,183,33,170,60,197,182,110,80,146,183,63,106,72,136,139,162,8,14, +94,64,217,120,33,95,34,204,70,83,56,51,55,154,101,166,13,189,22,74,24,50, +139,162,24,101,242,134,77,48,186,250,12,193,26,207,33,160,89,98,55,162, +24,252,51,39,74,99,239,112,219,29,142,174,194,182,185,54,206,231,142,192, +67,115,137,219,237,14,7,87,99,219,248,126,252,240,115,207,21,177,192,127, +196,0,92,135,125,127,132,161,2,21,1,125,127,27,215,247,79,225,150,85,88, +215,39,216,82,143,93,123,128,81,107,108,155,53,42,98,116,253,45,92,104, +131,186,220,224,132,28,142,125,11,67,10,165,98,180,253,45,92,223,63,133, +155,150,176,174,206,112,90,54,62,11,99,158,113,151,77,196,89,236,141,140, +117,168,84,131,106,64,95,6,3,122,232,47,124,86,223,156,99,27,128,75,227, +119,248,38,27,122,115,128,230,30,218,49,84,177,193,105,227,145,169,197, +80,107,26,201,37,162,197,31,75,201,198,236,113,105,28,74,242,134,221,14, +169,190,235,176,215,7,88,120,192,142,181,123,92,180,183,112,75,179,7,213, +84,43,84,68,201,56,141,28,70,240,247,223,114,141,109,227,103,188,37,90, +150,88,163,53,7,104,40,148,69,133,50,124,143,82,21,42,229,123,118,218,121, +242,21,109,13,44,91,24,219,193,81,141,147,38,28,46,125,128,22,247,119,187, +187,133,11,3,212,245,57,206,171,198,183,74,186,3,52,74,212,69,9,114,29, +46,251,16,16,133,77,98,205,17,134,24,198,25,24,167,176,170,253,187,43,97, +209,153,3,76,184,63,21,250,141,74,85,40,131,115,226,104,88,128,38,63,27, +241,130,244,104,187,219,216,59,133,74,149,112,182,131,182,218,119,177,156, +95,255,157,117,168,10,15,104,179,204,19,230,221,57,244,253,13,124,238,242, +81,60,118,184,192,193,186,145,224,104,172,223,69,34,145,98,151,177,133, +117,26,218,30,177,235,110,249,10,79,185,70,93,20,226,140,51,180,222,225, +162,215,40,202,45,78,194,59,165,17,96,4,49,72,155,164,2,246,128,93,183, +195,145,9,117,185,69,133,22,123,189,247,6,177,58,197,105,85,192,216,163, +95,63,53,24,103,2,21,21,202,66,141,21,201,249,120,211,52,202,228,137,120, +52,140,51,112,108,161,135,247,95,109,209,40,131,67,119,137,150,11,148,74, +65,235,219,184,126,8,231,175,57,197,73,89,130,93,139,131,101,40,165,80, +176,133,177,126,74,132,67,128,169,77,139,163,11,63,71,32,243,97,1,228,181, +97,127,170,106,12,122,84,81,249,170,18,134,159,23,97,255,34,236,223,210, +3,145,217,103,215,134,10,148,202,219,142,235,151,225,254,194,30,43,136, +97,244,45,92,223,63,134,39,15,151,232,28,4,209,24,101,19,48,30,75,227,123, +191,254,46,172,63,251,68,104,111,21,86,229,41,78,171,18,214,182,97,253, +203,113,253,199,251,79,212,156,37,155,49,179,199,205,104,219,226,104,56, +84,94,252,250,185,113,111,246,56,104,127,62,148,66,8,94,110,225,182,97, +52,225,252,149,161,85,169,81,162,42,74,192,182,216,245,7,28,3,73,26,163, +199,33,252,188,44,74,128,125,155,178,53,6,96,131,206,28,208,15,246,129, +134,251,47,81,5,94,8,109,90,28,45,196,251,51,112,209,130,185,209,190,150, +170,65,165,134,243,133,116,78,57,54,143,76,128,235,112,212,7,24,16,148, +34,88,23,236,159,97,52,245,25,78,73,251,247,91,108,176,169,55,168,212,224, +31,44,154,106,131,211,162,2,177,198,161,155,158,159,92,139,125,127,64,107, +45,74,182,14,142,61,106,158,68,25,125,54,140,38,50,101,202,56,82,206,232, +154,204,56,138,24,243,226,140,243,68,0,69,81,100,11,104,17,109,166,208, +26,200,149,18,179,37,120,65,171,155,202,0,51,12,186,126,143,67,40,189,157, +215,235,145,248,129,69,73,254,160,123,184,98,24,47,161,72,246,158,83,97, +49,142,143,138,229,201,80,93,182,14,181,42,81,87,39,168,138,83,108,10,224, +168,123,112,177,198,89,179,65,29,250,180,71,199,40,202,51,156,85,53,156, +211,126,225,236,1,23,71,139,90,121,18,144,179,194,151,229,167,197,160,217, +251,152,170,39,222,113,89,103,161,251,27,232,236,10,219,250,28,39,21,193, +232,61,142,78,133,234,192,20,224,137,23,4,109,143,56,246,61,172,218,96, +219,108,113,26,50,252,52,234,138,29,175,124,239,254,250,206,89,180,253, +13,244,118,133,77,237,1,46,138,201,151,210,205,30,183,246,7,148,69,141, +166,58,199,231,173,154,121,25,76,68,254,62,227,240,217,69,59,244,248,138, +2,148,40,9,251,182,79,1,229,90,92,28,158,192,14,132,178,92,97,91,95,195, +70,89,104,189,195,77,221,10,178,157,26,85,181,193,249,218,143,26,178,11, +99,75,195,253,149,53,154,242,28,119,53,13,106,69,193,64,25,31,36,176,197, +237,86,163,27,202,180,3,90,214,117,232,93,15,203,53,154,114,29,230,253, +39,99,167,168,0,92,139,219,135,39,176,35,10,68,48,215,112,90,150,80,74, +84,145,100,245,137,133,195,101,7,99,123,116,86,195,58,139,163,46,80,212, +167,104,2,58,152,195,251,103,103,209,118,55,208,27,191,254,103,117,141, +2,12,99,59,28,117,11,141,6,235,82,148,151,57,195,22,44,169,247,185,67,219, +239,112,171,107,97,2,27,24,200,2,250,2,138,174,5,128,147,67,111,15,184, +212,93,152,68,89,161,162,140,90,47,81,164,144,60,24,247,214,116,208,88, +225,90,115,142,173,98,180,218,162,40,207,241,121,171,51,63,218,196,173, +31,79,116,45,46,142,79,96,199,228,193,77,97,253,104,65,110,128,194,123, +105,251,29,110,246,109,24,165,4,160,106,52,165,127,255,181,34,88,99,160, +157,134,101,131,93,103,199,243,91,168,19,191,127,201,143,203,21,176,56, +118,215,209,118,132,50,92,127,27,122,206,32,5,197,22,109,119,29,79,244, +254,253,110,27,191,62,4,64,161,0,201,253,89,36,63,79,247,239,248,253,197, +52,41,148,216,135,211,50,180,237,136,97,237,209,99,5,156,194,38,236,61, +137,103,146,226,136,242,157,179,235,209,153,30,61,86,184,182,10,235,111, +44,84,88,255,109,81,66,113,11,69,195,253,183,227,249,218,212,215,112,90, +149,163,131,191,154,115,205,175,95,155,89,63,4,251,0,179,199,205,203,3, +170,96,31,238,26,236,195,112,254,172,129,97,139,219,71,141,174,146,231, +207,193,24,207,164,104,216,226,226,168,209,135,159,55,170,0,216,120,130, +39,235,247,207,5,19,170,194,159,191,1,160,71,52,221,223,19,93,252,126,188, +59,176,163,125,59,6,251,182,174,207,113,94,121,174,148,43,53,249,134,177, +212,244,249,154,26,37,245,56,118,222,63,248,233,34,134,49,7,28,45,163,44, +207,112,90,214,32,48,180,53,232,217,64,187,233,249,183,225,249,169,51,29, +35,26,117,195,213,98,108,11,227,249,217,223,185,147,246,133,0,30,208,149, +178,142,148,208,120,36,128,187,84,131,0,89,122,252,168,230,224,108,135, +214,28,113,112,132,186,240,36,47,133,136,68,156,153,126,94,21,107,95,214, +185,3,175,89,122,223,158,130,124,152,103,37,144,34,40,40,32,204,235,18, +252,156,165,35,229,203,253,240,198,58,12,230,248,210,150,139,63,79,195, +129,14,224,159,81,80,139,151,203,157,158,173,204,7,114,30,103,17,16,159, +196,126,68,143,17,250,78,113,168,205,108,194,56,200,17,26,53,54,245,9,54, +101,33,102,113,249,234,247,44,50,56,55,94,127,152,23,45,66,105,208,133, +121,215,97,86,125,64,163,94,33,196,38,202,55,206,57,48,145,159,31,207,252, +14,179,71,199,250,25,105,140,149,0,127,13,95,182,180,82,98,50,188,163,98, +168,224,164,247,55,174,157,92,167,240,142,134,236,101,246,30,120,254,0, +0,32,0,73,68,65,84,152,215,29,135,3,252,245,153,8,10,225,179,34,18,114, +227,172,254,144,45,43,95,77,203,5,173,11,124,67,44,247,25,13,172,89,211, +231,60,21,231,244,254,167,50,60,2,206,194,128,195,28,190,162,184,234,70, +139,244,248,12,7,79,203,44,234,142,98,141,44,122,115,196,161,63,194,132, +126,241,90,77,165,126,142,178,156,28,87,9,135,117,13,243,227,24,246,208, +180,62,126,111,39,235,167,252,58,19,221,65,40,45,224,75,44,156,88,224,97, +86,157,66,235,98,90,87,80,8,70,153,193,74,161,20,132,77,35,245,110,168, +54,21,84,192,199,73,254,236,249,153,240,248,254,134,121,241,249,251,31, +214,143,70,142,9,43,133,123,196,30,228,145,131,130,132,78,7,143,229,101, +231,122,28,187,219,184,176,26,84,156,227,90,115,130,85,145,6,109,75,218, +237,195,250,79,8,113,7,7,102,53,85,123,7,106,238,236,253,95,65,191,42,210, +121,191,126,130,68,109,248,188,242,103,199,33,156,63,158,126,70,52,149, +250,29,124,240,154,158,191,169,74,51,112,86,80,56,226,229,216,162,136,214, +63,124,95,116,198,195,253,25,231,162,145,54,105,3,152,133,125,165,96,223, +80,140,173,137,171,213,186,131,125,1,207,174,61,216,46,207,57,32,252,3, +243,120,126,121,180,47,118,4,53,143,207,207,6,116,236,143,92,168,2,97,240, +53,33,56,24,192,103,188,64,216,72,9,220,134,175,102,46,148,153,184,245, +198,25,3,91,30,37,89,74,70,121,113,166,31,176,212,104,23,198,102,6,249, +34,231,123,149,250,8,205,53,86,245,6,27,85,78,47,131,60,210,119,175,15, +232,185,194,186,218,6,146,132,76,105,98,142,76,89,80,119,76,165,96,227, +190,5,99,89,109,235,153,125,71,158,44,53,238,105,240,21,106,182,226,25, +130,51,180,206,247,190,58,86,168,203,21,54,229,196,140,119,167,64,108,246, +210,115,212,210,180,0,217,230,103,120,13,74,75,173,25,110,112,74,212,133, +115,247,184,112,237,153,130,46,73,237,243,156,200,79,130,28,205,189,195, +217,94,201,221,203,194,62,195,213,235,180,168,150,25,157,35,113,190,159, +193,25,29,23,33,5,204,115,94,124,119,168,125,89,231,179,25,109,14,56,90, +3,20,107,79,139,154,1,164,206,214,138,48,218,28,66,46,176,143,159,193,111, +107,10,72,255,121,146,17,175,203,124,63,46,17,27,231,214,37,231,172,174, +82,205,205,42,155,34,111,155,174,218,244,57,114,226,43,245,214,3,158,66, +219,14,7,125,68,239,8,77,53,128,73,233,10,197,235,233,125,231,247,5,165, +165,216,12,144,154,230,196,209,114,15,97,121,147,102,21,169,179,123,158, +34,244,71,196,89,72,82,87,225,47,178,190,75,231,86,114,169,240,180,78,89, +248,55,95,25,132,95,249,96,201,59,97,220,73,33,96,238,111,253,46,177,176, +110,178,223,212,27,205,119,60,117,87,25,217,59,200,156,231,30,78,142,184, +17,169,120,83,45,56,231,216,192,34,111,100,25,139,206,37,122,17,3,59,91, +96,30,138,200,111,135,168,221,23,119,125,36,255,204,22,37,131,8,164,140, +132,40,174,188,239,59,110,80,74,161,234,148,63,112,88,112,224,75,206,53, +56,247,78,239,176,235,246,232,105,133,117,189,193,182,170,81,137,249,225, +232,253,200,235,82,78,14,120,6,190,136,127,151,243,247,158,117,86,87,237, +43,90,44,93,204,127,145,56,222,95,148,115,204,82,134,50,103,204,174,216, +139,87,217,149,140,177,138,208,240,139,123,225,47,114,54,211,107,9,73,96, +198,213,193,4,255,5,175,145,58,52,199,126,76,167,187,196,193,18,234,106, +139,109,179,241,64,204,172,70,80,166,62,156,174,241,210,123,207,60,43,103, +249,52,131,205,89,172,68,36,123,51,93,59,89,221,201,58,191,76,128,127,69, +208,31,175,61,242,235,47,159,125,73,90,123,49,216,99,56,179,199,78,95,98, +111,43,172,235,45,182,101,19,8,184,22,62,152,179,15,124,245,6,152,39,17, +124,199,207,44,57,235,69,169,217,156,237,206,225,178,128,171,237,223,210, +61,17,207,109,117,180,15,150,214,101,193,222,243,21,231,106,41,56,78,215, +130,112,245,190,199,21,149,82,199,232,244,69,176,223,13,54,245,22,164,109, +207,177,191,206,25,45,57,231,22,179,208,101,161,227,75,14,39,44,152,115, +14,206,58,79,192,146,214,113,120,105,97,105,142,210,200,34,238,210,40,83, +62,92,110,135,253,23,104,104,167,142,141,249,106,71,47,216,192,162,251, +206,233,170,19,95,157,213,94,81,185,152,159,155,137,185,143,159,161,129, +240,229,78,7,80,57,81,35,166,23,206,26,160,171,156,217,146,1,160,59,56, +199,37,30,112,206,39,193,75,229,198,59,221,39,174,188,76,38,88,204,200, +155,44,237,175,197,117,160,12,42,62,121,169,36,128,45,204,249,160,149,82, +45,243,59,4,60,87,85,113,228,247,92,153,225,203,253,28,27,165,97,255,48, +171,192,57,79,207,32,74,72,214,144,24,153,89,218,133,163,155,234,217,203, +232,233,202,195,113,103,135,147,203,184,151,218,144,57,167,157,221,202, +11,11,43,159,121,41,72,77,29,204,82,85,137,45,12,251,4,165,32,53,195,165, +100,29,242,146,58,46,22,156,26,150,130,152,212,214,229,122,61,233,119,210, +66,128,53,63,135,68,44,30,249,25,4,168,87,173,251,95,180,165,28,217,237, +59,220,123,174,226,138,180,18,34,43,171,201,62,230,204,189,47,38,60,98, +162,197,25,223,114,66,129,66,21,160,222,246,156,189,41,78,30,40,89,164, +177,56,63,227,177,149,15,157,24,100,143,137,8,235,195,130,243,122,186,110, +236,175,227,135,142,232,111,19,71,150,149,2,160,164,190,246,76,147,147, +200,216,81,108,60,238,148,145,255,69,50,253,59,58,149,76,241,157,18,224, +225,29,83,218,165,228,53,19,76,136,10,193,116,70,211,12,231,42,203,63,175, +186,140,116,170,184,67,6,183,104,124,104,9,122,57,142,98,78,142,38,4,51, +145,99,76,246,164,148,141,200,37,48,139,85,169,120,31,141,36,33,132,76, +109,141,242,104,213,28,112,132,23,172,25,101,106,118,201,34,142,249,234, +226,187,201,105,130,221,41,184,205,107,181,221,201,240,46,86,244,174,170, +40,81,166,151,194,87,101,91,87,166,119,119,184,94,146,123,82,146,176,100, +170,79,177,89,188,195,186,205,50,185,76,149,71,238,71,74,108,9,61,51,59, +53,50,129,46,102,121,131,19,20,249,245,248,223,87,191,71,26,219,178,201, +25,66,210,226,155,57,235,43,74,109,131,61,225,68,136,44,155,248,200,101, +121,38,44,38,185,82,119,28,244,76,190,147,34,106,220,59,38,5,179,0,60,159, +177,251,143,231,123,30,147,141,224,229,214,204,236,171,115,201,80,62,193, +200,254,60,241,41,106,160,125,77,75,172,211,136,89,120,192,36,99,96,9,231, +5,199,89,115,212,112,29,191,12,236,60,216,199,176,153,54,42,137,13,31,122, +56,211,252,89,210,83,229,120,6,152,100,224,43,159,149,6,244,67,2,28,148, +179,99,4,193,194,39,203,165,114,160,156,18,244,30,207,12,7,101,181,197, +41,153,39,13,200,111,154,43,82,77,245,205,196,201,18,11,135,148,36,99,145, +15,165,217,117,198,245,148,40,163,168,58,62,223,144,81,242,195,136,157, +87,26,161,202,94,154,184,94,218,35,162,81,40,70,246,222,8,2,33,19,127,39, +33,2,194,73,237,238,104,47,13,179,240,148,72,30,177,48,126,73,37,135,32, +65,61,241,59,228,108,227,94,110,154,185,243,137,8,65,6,70,170,17,217,158, +86,120,40,142,220,211,251,75,102,70,137,166,239,21,234,22,211,2,141,143, +27,107,96,71,201,120,114,174,132,64,166,216,27,28,127,128,146,108,94,156, +138,201,144,211,72,37,155,175,128,36,235,71,153,123,151,235,51,232,37,32, +7,208,200,165,63,169,173,193,236,236,165,236,150,99,117,33,247,173,146, +32,131,115,65,93,154,184,204,241,50,36,102,22,39,179,146,112,243,167,14, +125,134,167,225,204,222,75,94,69,42,103,206,185,42,140,116,230,44,246,106, +154,28,80,190,194,205,136,206,16,141,98,38,88,0,209,76,239,143,102,154, +244,73,110,40,31,134,147,114,52,229,59,39,217,26,60,197,226,103,163,150, +64,166,210,197,2,80,57,209,228,82,182,168,16,237,211,104,70,60,131,91,73, +206,51,49,77,19,72,156,113,23,28,159,119,202,4,201,115,157,247,248,104, +83,2,42,26,239,73,56,65,138,124,150,167,215,14,180,174,73,63,109,84,16, +162,64,20,65,35,106,50,61,132,20,245,87,147,104,139,199,47,3,195,179,4, +149,170,26,203,70,19,144,137,51,25,129,104,26,112,228,86,70,67,205,72,34, +101,150,214,151,227,123,16,81,220,104,164,6,33,152,1,49,25,29,40,142,55, +198,24,244,144,72,106,195,134,166,201,49,71,217,101,244,210,104,10,42,88, +246,4,57,118,114,201,186,114,88,40,22,45,10,26,17,158,57,131,49,66,248, +69,63,159,68,151,37,102,34,28,29,49,199,78,52,222,204,152,222,191,92,17, +145,85,49,5,234,216,160,250,198,194,1,114,210,231,140,104,137,162,138,44, +251,251,161,76,68,205,19,205,240,232,0,89,26,20,158,85,147,102,1,32,83, +116,64,105,161,87,79,81,180,35,246,79,114,176,56,57,240,60,190,227,76,201, +59,211,140,75,125,170,207,116,200,159,61,154,135,139,32,198,124,136,53, +158,238,102,8,241,37,206,33,161,146,243,54,160,217,7,242,145,168,213,37, +204,201,160,181,64,25,185,75,18,198,38,34,229,153,110,153,32,156,24,77, +65,250,128,168,151,14,127,122,86,65,152,69,83,148,78,76,73,96,147,235,229, +114,52,139,63,51,164,87,36,227,17,99,39,11,133,68,158,2,84,18,103,109,4, +4,178,204,64,49,158,221,248,120,134,239,28,227,47,154,175,221,120,219,177, +193,102,230,121,251,148,22,42,151,217,49,2,1,216,203,108,13,74,178,244, +25,252,108,154,205,140,188,48,15,212,226,148,47,124,77,159,137,197,201, +166,100,64,174,27,101,125,9,137,196,96,52,167,163,13,148,101,56,113,232, +153,162,68,141,150,9,94,18,223,33,28,62,211,188,82,61,222,7,77,241,33,135, +128,136,18,177,91,150,178,189,193,23,114,18,79,200,189,26,217,32,25,36, +9,63,50,158,115,68,1,239,52,182,205,65,135,141,146,23,47,179,95,154,156, +40,147,40,217,178,252,125,89,26,167,56,18,18,55,236,130,198,59,135,113, +37,102,169,75,158,25,135,74,74,92,68,226,33,8,179,188,57,42,195,146,40, +173,72,143,61,100,90,114,81,229,38,35,121,51,97,108,33,53,98,9,2,44,154, +183,103,22,10,103,83,185,115,170,78,12,0,17,161,233,78,241,11,29,206,175, +103,236,26,50,2,26,13,240,72,64,194,169,145,143,181,167,35,53,174,49,170, +142,37,122,165,112,203,228,212,167,81,60,74,140,8,243,48,98,133,104,3,19, +40,206,128,56,237,155,81,92,60,97,22,134,11,130,91,129,98,7,197,153,222, +191,8,146,70,34,157,153,82,251,84,210,101,76,45,28,68,14,51,214,67,64,180, +58,28,2,181,148,247,76,86,11,120,124,55,49,130,150,227,241,65,97,52,167, +216,73,28,210,209,217,242,108,83,71,69,157,224,16,198,61,157,1,87,197,61, +77,121,253,4,151,66,169,212,110,112,102,210,33,39,1,17,201,151,203,98,175, +49,9,178,148,137,35,67,30,165,56,49,141,49,189,156,169,14,210,240,63,225, +24,120,224,48,167,33,51,227,232,252,142,164,57,148,105,163,68,153,14,50, +129,176,56,129,81,87,39,201,162,73,152,37,30,146,1,30,237,35,205,8,153, +100,37,113,210,159,15,12,47,193,159,80,124,123,148,86,225,134,255,203,163, +45,137,185,42,56,194,218,76,204,158,44,246,21,69,142,138,211,125,1,233, +208,133,107,145,204,148,68,25,194,22,158,178,198,168,74,38,72,192,130,227, +34,209,82,228,180,76,206,65,227,100,44,231,79,246,155,132,63,96,89,233, +96,154,72,151,136,16,199,213,83,162,53,51,223,156,148,115,153,64,75,96, +28,70,84,149,163,244,112,10,78,255,49,241,145,160,86,146,228,95,73,229, +123,88,163,241,26,20,225,223,104,88,39,105,139,163,22,21,139,71,165,89, +203,97,154,250,229,201,112,177,136,118,163,44,143,89,216,4,1,233,167,116, +134,61,252,222,240,251,97,99,14,253,243,178,244,212,160,243,50,155,112, +179,148,30,218,56,176,151,108,90,113,201,109,70,178,24,245,160,162,50,63, +40,6,106,144,12,48,69,153,141,166,8,109,216,84,156,244,194,57,186,46,69, +37,209,193,208,83,218,30,17,107,201,225,36,144,200,204,135,190,206,168, +126,199,162,119,60,235,237,137,173,193,177,155,147,134,140,178,213,70,17, +17,74,66,160,161,191,75,67,27,100,218,104,44,218,39,83,50,60,165,248,44, +43,60,52,173,57,83,90,192,23,89,192,208,243,19,125,81,38,78,250,1,130,234, +145,167,234,0,135,247,68,148,56,212,100,125,88,148,181,135,207,76,18,149, +194,184,141,7,36,220,131,176,238,76,226,243,81,193,32,110,77,141,53,28, +158,230,204,135,210,25,15,1,0,137,166,16,77,214,137,133,179,23,57,160,48, +202,28,97,90,40,233,189,14,142,113,52,28,17,1,213,240,62,41,206,254,68, +121,81,50,63,202,128,135,211,202,6,137,0,149,36,246,150,98,204,16,145,168, +140,138,204,59,242,181,28,5,109,76,130,213,46,77,246,70,154,53,113,157, +97,191,8,174,2,18,103,124,10,232,100,233,122,112,10,131,51,16,207,73,9, +75,231,144,113,37,184,23,226,184,182,60,150,194,57,174,81,77,21,80,146, +185,69,100,79,89,158,249,12,80,109,178,127,178,148,47,218,66,99,111,30, +113,224,76,83,194,48,217,162,240,254,24,137,122,215,20,220,115,148,80,201, +160,150,162,78,236,132,139,226,88,181,68,16,162,113,154,248,201,128,144, +146,182,168,108,153,137,126,124,212,42,136,242,14,158,242,57,158,214,131, +56,185,46,210,78,151,104,97,80,156,104,77,193,30,71,233,16,132,47,35,129, +31,73,43,92,227,25,155,202,57,25,144,42,71,118,154,103,201,99,98,219,73, +38,25,34,189,146,92,50,160,4,103,206,160,222,106,81,161,158,11,78,196,26, +56,41,224,69,170,1,77,229,23,169,118,69,32,88,235,73,54,202,162,156,230, +237,19,26,184,25,24,11,57,141,233,56,16,144,154,216,177,50,146,0,98,57, +95,61,152,168,246,68,37,172,240,4,41,144,129,10,139,67,62,3,73,114,60,23, +201,147,195,113,206,1,110,42,83,17,17,160,6,30,230,248,139,40,131,160,30, +202,47,52,56,216,177,92,138,168,29,48,0,97,210,81,142,209,129,8,185,222, +241,181,56,11,39,34,69,0,64,225,209,181,179,120,65,150,234,121,42,181,199, +65,55,141,142,11,142,189,140,183,82,211,59,1,131,157,31,155,130,10,40,94, +1,120,137,202,193,204,9,176,143,98,48,46,144,1,199,208,108,176,99,194,212, +197,128,158,104,61,197,65,37,158,214,81,42,23,198,149,195,225,247,132,2, +97,52,157,144,236,199,116,234,142,6,28,66,210,175,20,21,157,57,134,47,25, +246,138,238,149,198,10,136,28,13,195,108,95,164,170,17,28,8,67,252,123, +154,238,43,6,160,77,219,134,39,67,31,5,72,148,157,226,137,89,233,17,157, +141,120,109,40,86,213,138,48,52,162,231,59,187,251,132,61,50,153,162,25, +50,62,169,94,8,161,182,39,247,115,110,61,37,46,130,210,202,214,152,7,112, +52,102,199,145,115,29,168,154,39,41,235,200,214,114,242,121,144,56,239, +49,0,142,18,32,30,51,102,147,23,49,70,150,103,61,254,72,221,157,210,158, +238,180,167,103,19,26,196,34,239,74,4,199,164,147,39,154,170,145,51,233, +163,152,29,5,169,142,194,96,179,103,224,50,145,9,147,128,131,70,10,160, +210,153,73,233,51,89,187,100,241,202,197,247,68,83,129,20,171,126,38,65, +91,236,79,146,182,194,88,161,21,85,26,230,24,107,72,179,151,63,213,248, +8,73,123,55,6,10,207,40,53,134,138,231,24,56,243,20,188,142,107,54,217, +166,1,32,57,126,70,187,158,163,221,56,100,71,20,235,198,77,134,51,46,239, +146,216,72,169,49,28,111,212,49,6,218,159,201,9,32,25,49,157,174,203,169, +147,25,215,77,108,40,158,136,120,226,74,140,216,108,198,194,28,58,180,123, +3,219,91,176,163,224,212,189,131,43,183,107,172,182,5,84,137,56,226,164, +212,201,197,125,16,121,77,54,6,250,162,69,119,180,176,54,60,89,161,160, +154,10,171,179,26,85,77,163,74,159,4,174,13,107,57,244,144,216,133,185, +124,149,10,239,78,160,151,161,202,50,167,132,21,189,87,154,200,24,24,14, +220,106,116,183,123,244,189,155,236,70,81,160,185,107,141,102,83,76,237, +0,235,192,106,184,126,234,120,38,153,96,30,50,127,7,216,174,71,123,75,131, +235,6,171,179,10,69,25,222,169,214,48,187,30,189,35,212,103,43,148,141, +18,179,171,98,223,136,128,6,144,229,57,138,156,29,152,225,172,167,4,165, +146,162,226,15,167,45,194,177,156,27,31,226,65,242,52,90,93,138,39,5,210, +99,63,237,83,207,84,197,164,188,130,86,26,132,114,226,172,36,138,151,100, +25,118,50,168,156,82,183,80,146,102,196,30,18,228,156,231,103,80,126,252, +12,44,141,98,58,157,202,83,54,238,24,214,182,232,247,59,56,181,65,179,222, +76,250,219,105,24,79,67,15,145,146,138,215,80,238,230,73,254,87,246,249, +165,30,1,226,177,31,138,2,151,169,132,57,5,142,73,248,30,181,179,82,200, +66,50,166,75,152,1,40,167,50,41,199,149,48,81,93,145,2,214,163,75,138,130, +12,140,45,1,142,50,81,41,159,139,232,60,50,18,91,49,6,175,136,123,169,148, +72,29,115,178,39,174,154,230,74,167,251,198,54,148,8,240,34,122,160,1,152, +37,223,23,3,51,26,138,121,64,64,9,100,5,41,80,79,226,91,120,218,235,210, +104,77,1,15,11,36,123,70,120,37,181,137,243,152,44,218,163,16,50,220,114, +58,132,56,213,59,141,157,234,80,1,97,90,192,229,11,177,46,18,239,105,122, +45,180,48,166,62,201,114,67,84,152,99,240,91,236,159,144,78,192,70,195, +37,28,37,66,44,64,183,156,248,169,41,193,21,226,98,34,113,42,199,139,36, +88,13,158,17,163,76,78,92,70,232,44,250,38,76,50,186,12,42,117,108,0,16, +10,148,241,77,136,226,205,84,26,231,88,146,86,100,177,18,208,50,246,92, +102,3,51,201,184,69,169,80,108,27,108,170,18,122,223,163,55,132,234,164, +65,93,7,144,76,169,102,128,238,25,136,115,214,34,20,11,174,45,244,81,67, +91,133,242,108,133,117,19,120,203,7,161,149,130,18,164,115,90,121,99,192, +90,216,67,143,190,5,138,109,131,106,173,68,181,50,65,71,34,158,88,137,250, +99,227,102,153,72,232,185,51,208,71,3,87,148,88,125,126,133,2,12,189,59, +66,119,14,206,48,216,2,138,125,16,212,119,4,181,169,81,175,7,138,77,121, +29,138,170,238,204,94,2,208,30,52,156,5,202,74,161,40,130,226,188,209,232, +47,58,104,67,168,78,27,148,77,64,114,142,212,164,67,102,66,179,81,234,169, +178,35,10,30,97,125,186,22,40,183,21,234,16,69,176,152,162,96,209,219,229, +209,160,36,86,153,69,127,118,40,207,139,12,143,196,239,12,217,38,1,96,107, +96,246,26,186,101,168,109,141,122,93,138,185,98,158,90,57,81,192,73,17, +66,127,136,188,199,18,226,112,72,69,214,137,40,251,65,28,184,58,13,221, +238,161,123,11,85,111,129,117,19,20,197,166,103,136,202,174,194,177,58, +211,194,28,247,112,92,161,168,55,40,138,98,46,232,18,33,232,165,86,186, +144,247,156,147,199,199,116,163,201,40,24,1,9,96,143,162,226,31,35,17,205, +145,208,75,142,159,101,156,46,96,138,130,167,200,121,144,160,113,158,129, +25,105,234,136,11,96,164,100,90,227,17,72,151,96,195,25,81,169,29,18,156, +203,83,64,58,11,238,56,70,139,79,128,83,169,148,54,137,189,48,77,152,16, +18,125,84,66,138,209,156,176,57,57,52,62,97,110,51,88,244,246,121,129,135, +109,114,94,18,191,34,19,13,22,99,250,147,224,24,137,76,50,154,188,17,246, +122,114,190,62,96,146,10,118,114,172,144,69,37,89,102,241,160,24,184,72, +136,165,103,25,113,18,18,97,50,228,36,1,81,84,133,138,6,109,8,81,63,125, +74,62,16,85,206,162,250,1,197,21,139,169,45,52,129,235,56,129,46,140,207, +199,115,12,200,4,204,164,89,85,104,180,141,163,243,167,104,50,74,6,56,131, +253,98,6,202,9,213,205,99,79,57,26,172,145,217,99,212,11,144,101,51,154, +101,148,195,1,46,138,114,122,17,162,191,42,123,233,148,0,231,98,58,64,138, +34,56,146,136,75,129,96,76,199,200,88,244,55,141,54,48,6,168,54,53,154, +141,23,36,25,55,191,117,24,104,134,153,0,85,8,14,111,38,56,227,198,104, +210,13,123,191,32,207,243,220,25,232,142,81,172,43,212,155,18,170,136,203, +97,108,44,184,80,128,229,192,156,231,167,8,160,188,131,116,6,224,174,71, +119,105,193,117,133,146,24,108,28,104,224,123,183,14,142,149,231,140,183, +225,137,84,8,28,156,243,148,246,165,154,122,115,206,59,109,14,34,40,118, +223,195,218,2,229,73,141,186,86,128,213,232,29,128,186,132,82,12,214,6, +186,215,232,246,22,168,42,148,10,96,227,192,101,232,141,57,11,199,10,164, +24,78,135,141,164,194,179,107,3,221,57,112,85,163,8,194,231,108,52,250, +219,61,12,23,168,207,26,84,43,5,178,22,214,13,103,75,1,138,18,20,61,131, +53,143,211,8,12,5,85,18,200,122,50,36,215,250,245,113,117,9,34,130,211, +14,84,248,123,2,3,108,252,218,18,8,142,224,171,49,131,225,119,28,138,71, +12,235,194,190,85,162,74,66,162,234,33,210,26,10,251,130,13,251,235,31, +44,184,170,80,42,2,91,231,135,79,134,96,143,57,95,190,99,6,140,5,135,207, +240,192,241,206,206,115,171,23,69,232,211,89,95,157,144,163,198,170,64, +161,8,108,61,229,171,211,123,244,157,6,138,181,223,159,214,129,3,189,180, +15,164,13,216,77,83,22,164,74,144,114,94,81,238,112,9,195,5,138,122,141, +82,57,176,5,168,44,196,184,164,131,51,70,100,162,5,168,144,192,57,7,54, +22,78,162,252,203,82,56,102,134,235,45,156,34,148,131,158,1,77,85,182,104, +86,95,102,136,132,136,47,68,182,220,36,171,216,16,48,73,96,216,172,188, +202,114,186,41,198,0,72,170,109,136,233,132,120,236,125,168,176,77,239, +50,237,130,129,39,26,86,150,1,149,112,38,204,18,217,77,137,131,141,129, +98,18,173,206,178,12,75,83,70,134,204,88,44,39,121,39,75,187,75,20,205, +180,167,108,134,156,0,70,71,7,196,44,40,101,99,212,121,212,33,136,52,65, +98,7,200,9,61,27,73,167,58,58,95,22,126,70,138,63,83,84,146,148,88,4,137, +20,167,177,173,45,156,42,79,21,210,8,7,144,182,96,198,234,20,146,74,9,199, +210,140,178,146,45,209,243,34,16,159,238,137,163,64,109,196,3,101,90,63, +99,133,12,52,171,129,83,218,10,17,129,95,218,146,138,130,154,49,176,162, +41,25,164,201,151,131,224,213,241,152,167,155,162,76,175,34,234,41,70,35, +72,52,149,241,136,162,222,184,51,158,14,182,84,5,188,60,4,197,200,110,154, +178,53,30,3,136,164,230,198,20,149,179,162,8,91,246,111,220,52,66,193,28, +3,102,93,223,163,63,88,160,110,188,19,86,83,47,201,118,26,250,178,133,110, +25,206,48,104,211,96,245,172,6,85,165,0,103,161,15,6,253,174,131,53,193, +89,56,128,86,21,154,179,21,154,194,162,63,24,56,148,168,10,255,251,150, +131,60,98,193,112,187,22,253,209,192,81,1,215,89,88,99,65,117,141,213,179, +86,168,10,135,254,178,69,119,105,96,123,47,0,162,180,131,57,244,40,214, +21,154,179,6,37,12,250,75,13,235,20,10,229,194,181,20,234,243,53,86,13, +163,191,221,193,160,68,115,173,65,89,249,133,212,187,14,253,145,81,108, +107,255,249,158,160,182,53,170,218,203,162,246,251,30,214,41,148,155,2, +104,59,28,14,6,166,247,219,71,85,14,246,208,67,173,42,212,231,13,42,214, +232,246,26,206,41,20,228,208,31,189,86,120,117,182,198,106,171,224,180, +133,211,132,98,83,162,168,20,96,52,250,93,15,109,21,234,103,53,168,10,31, +188,244,151,157,111,15,56,130,90,215,88,157,55,168,170,176,73,181,129,62, +244,208,123,3,103,189,232,78,181,109,208,172,9,246,216,161,191,52,48,227, +250,88,28,14,26,197,170,66,115,222,160,44,0,219,246,232,119,26,90,123,177, +16,213,212,104,238,10,223,223,107,116,97,253,74,53,221,127,121,186,198, +250,164,4,41,105,188,146,113,45,99,208,95,116,232,247,241,250,28,195,250, +52,103,13,202,58,96,24,134,172,146,9,164,134,172,207,192,236,47,160,59, +13,40,64,119,26,170,40,161,74,7,163,29,138,250,28,171,147,53,20,107,232, +126,15,125,104,61,251,155,117,112,212,160,62,57,71,83,88,152,227,5,250, +174,247,24,18,20,80,69,7,211,85,40,215,167,88,173,215,80,236,96,250,22, +186,221,193,24,11,103,1,148,43,212,155,51,212,53,195,28,247,208,218,128, +42,134,62,92,71,171,45,84,115,134,245,249,185,15,230,108,7,211,29,208,29, +90,207,64,135,2,213,230,26,54,219,53,80,0,48,29,250,118,15,125,108,97,157, +199,177,168,102,139,230,228,204,75,177,42,131,118,119,27,55,111,245,40, +54,167,184,118,109,227,101,98,17,131,44,41,109,103,0,51,14,31,102,74,198, +130,83,6,109,142,128,167,51,195,205,178,205,128,25,24,43,38,169,74,202, +182,105,187,3,11,60,224,52,205,203,15,78,158,210,241,93,193,5,192,9,168, +84,102,222,204,52,211,168,39,1,92,3,205,239,43,110,99,80,102,90,82,150, +251,17,85,23,100,219,113,42,229,78,21,89,142,7,179,50,116,50,98,146,6,153, +41,35,226,148,53,33,2,174,49,35,1,218,82,220,30,225,60,119,129,108,251, +78,241,66,140,127,152,48,1,20,249,85,217,30,155,38,179,100,64,159,150,104, +167,192,108,54,234,79,153,46,197,66,213,132,51,96,223,113,98,27,201,200, +177,236,215,139,231,26,129,185,114,61,57,6,181,115,204,6,48,114,32,200, +10,69,201,142,97,172,133,42,8,5,41,17,13,77,127,172,177,80,133,87,16,226, +104,152,126,224,159,246,63,167,161,207,206,0,41,66,9,255,251,46,100,178, +3,130,94,146,130,112,24,159,83,74,65,21,50,158,27,106,140,128,177,22,69, +161,64,130,19,125,120,72,199,12,107,253,245,11,169,40,198,62,200,208,123, +13,75,37,154,109,9,53,136,45,59,7,219,246,208,174,64,121,118,130,234,196, +66,95,180,232,157,7,135,57,99,97,46,90,244,92,160,57,223,160,38,11,115, +209,193,80,141,230,172,70,89,49,236,174,71,123,48,96,88,184,99,7,20,132, +162,169,209,156,85,40,172,131,222,105,104,75,40,78,43,52,155,202,59,252, +65,146,180,44,80,109,26,192,2,93,65,33,219,13,37,70,229,13,150,217,245, +232,118,22,104,42,148,167,53,214,21,161,187,112,225,246,29,156,113,64,83, +248,128,197,58,152,67,135,174,5,170,83,127,127,250,70,15,46,107,168,2,112, +189,133,62,180,208,90,161,122,86,131,186,81,128,41,64,124,4,23,10,245,89, +131,114,21,214,78,17,20,51,204,237,14,253,206,129,234,10,229,89,141,85, +29,174,31,50,29,215,90,184,146,80,53,4,178,214,59,68,87,162,57,175,81,42, +134,190,213,66,83,129,250,100,133,45,1,250,162,133,214,22,206,177,23,26, +58,180,56,238,29,104,85,163,190,107,133,178,8,6,71,21,30,117,76,4,184,22, +174,32,212,231,13,234,122,184,63,0,214,162,191,209,195,80,129,250,124,133, +134,8,118,223,162,107,45,172,102,148,133,131,217,251,245,163,186,66,117, +94,97,85,17,250,11,55,227,116,73,41,199,61,56,178,68,181,245,215,231,130, +80,157,215,168,235,98,172,96,40,10,206,156,253,254,115,198,130,10,133,130, +9,196,22,86,239,208,238,47,97,185,66,217,32,84,45,188,58,152,82,21,202, +154,224,218,219,232,122,7,85,111,177,58,63,3,134,62,121,181,197,170,105, +80,40,7,192,192,25,0,205,25,170,213,42,72,79,18,80,0,108,246,56,94,30,225, +84,141,122,243,121,168,135,190,138,10,193,230,241,38,218,203,22,92,110, +208,212,91,212,171,14,253,238,0,84,141,215,220,62,222,70,215,25,80,117, +130,230,252,4,202,94,226,184,111,161,148,242,85,143,254,18,237,229,37,184, +60,69,115,118,134,162,8,139,85,40,16,21,32,114,176,186,67,123,232,225,138, +26,39,219,21,170,66,40,18,50,205,157,99,194,35,64,156,72,76,83,50,191,28, +181,107,36,219,101,140,15,154,218,102,52,87,191,28,199,59,17,245,195,19, +168,65,220,43,144,165,215,132,231,73,86,124,198,50,46,203,138,38,205,178, +110,57,222,13,9,4,100,97,172,9,179,222,106,12,186,131,16,255,66,148,140, +69,13,30,150,137,24,71,201,24,39,14,24,81,123,34,150,32,150,136,66,249, +38,105,198,114,138,249,251,74,121,108,40,67,3,145,118,136,102,114,227,20, +211,145,164,52,237,52,85,8,136,99,126,146,52,3,142,248,33,68,155,98,22, +20,37,213,157,169,85,48,231,9,138,0,193,18,236,153,188,87,18,60,1,20,181, +35,121,54,19,27,237,232,180,93,196,241,30,141,71,34,83,112,223,52,73,83, +18,17,202,34,112,194,103,144,29,68,228,57,227,69,239,36,13,143,85,89,76, +186,213,236,29,50,136,81,22,94,80,17,101,232,235,242,172,233,230,165,45, +11,154,174,63,163,93,4,202,162,8,142,79,62,140,255,15,69,4,42,4,167,253, +216,183,116,176,199,30,90,19,138,109,40,81,143,196,49,0,21,37,138,66,121, +201,80,227,229,32,139,166,66,85,56,152,93,7,221,19,170,243,6,85,195,176, +71,3,139,2,197,186,66,85,3,174,213,208,154,80,159,111,199,146,255,52,31, +225,96,46,52,108,81,122,231,179,34,112,215,163,133,66,177,174,125,217,154, +25,86,91,24,3,20,155,26,245,182,156,228,71,29,251,158,252,145,81,108,87, +104,206,43,148,5,67,95,0,84,21,40,106,5,232,222,151,238,43,5,130,133,222, +117,48,26,40,79,86,168,27,134,190,232,208,31,45,44,117,176,135,62,4,20, +53,86,103,21,202,138,124,80,166,13,140,241,125,247,106,59,72,35,18,200, +177,207,140,91,196,215,223,1,170,44,80,174,10,144,233,161,13,160,234,10, +69,225,160,111,247,48,70,161,62,175,81,86,14,250,118,7,173,129,242,172, +68,81,18,160,181,215,22,42,11,20,5,96,246,29,186,214,65,173,27,172,78,171, +177,231,63,70,201,22,128,49,254,153,54,53,234,77,144,119,116,12,167,53, +250,11,3,71,37,154,107,21,170,74,129,141,241,220,219,170,132,170,8,124, +236,161,91,70,185,93,161,185,86,249,128,99,103,64,85,129,114,85,78,152, +19,206,48,133,133,77,228,66,91,167,216,212,104,182,213,36,241,202,41,49, +5,141,154,10,236,28,96,142,208,199,22,40,214,104,170,18,236,90,112,185, +70,85,1,214,1,69,93,1,250,128,222,40,148,155,115,52,77,5,216,22,93,223, +3,229,6,245,246,4,165,2,172,233,96,122,3,170,79,81,159,158,160,24,90,27, +206,194,118,59,116,109,15,46,183,88,111,54,40,74,53,25,42,107,96,250,11, +244,71,131,98,125,23,154,237,6,133,210,208,123,13,86,43,84,181,130,61,222, +66,223,89,160,62,65,211,212,32,238,209,247,22,170,220,162,90,55,40,92,139, +238,120,1,99,75,255,223,69,1,26,167,33,134,117,80,80,229,6,103,159,215, +224,148,10,20,165,138,203,170,51,2,17,68,208,182,121,111,25,137,17,78,122, +180,18,219,67,130,213,139,103,69,191,44,126,38,71,243,159,50,198,198,180, +222,52,103,151,77,4,130,152,104,134,176,78,97,75,140,120,172,79,150,211, +101,249,59,39,229,129,25,40,155,98,246,112,138,141,60,37,107,12,217,242, +160,57,182,8,105,165,37,194,140,82,174,12,50,127,183,105,54,59,3,62,34, +79,111,76,49,160,153,8,179,226,117,132,53,98,196,196,162,73,33,102,154, +70,202,13,6,208,140,42,101,182,16,68,241,94,148,206,142,22,246,162,12,52, +196,72,166,36,121,37,9,20,39,25,172,80,134,207,71,84,196,51,193,99,158, +228,145,51,11,47,30,75,59,205,185,23,144,106,62,100,192,171,89,250,97,199, +3,225,130,39,194,5,242,17,91,238,208,93,41,1,155,108,40,206,145,227,136, +200,203,30,123,116,59,13,110,106,172,78,42,20,101,104,55,104,3,189,215, +208,7,3,107,195,252,166,83,40,78,26,172,207,74,144,209,104,111,107,112, +229,251,234,100,13,76,231,128,198,3,208,200,106,244,123,3,171,74,172,78, +42,223,47,22,65,133,57,244,232,91,7,181,106,80,111,20,200,26,116,59,13, +203,5,234,211,26,85,13,216,214,151,179,29,85,222,41,214,19,90,219,181,26, +253,65,195,169,10,245,73,133,210,55,81,124,11,33,244,238,245,174,247,32, +182,77,1,24,7,163,129,226,164,66,85,19,220,161,71,127,180,254,126,87,65, +55,89,133,0,42,56,73,238,52,186,112,253,230,172,70,217,208,164,141,220, +105,244,251,233,250,69,53,245,179,253,46,243,1,80,183,103,168,85,1,229, +28,44,20,170,211,10,101,201,48,23,45,218,11,227,245,169,5,27,148,170,74, +212,103,53,148,51,48,71,11,52,13,154,77,9,85,36,239,208,249,123,232,118, +61,156,10,247,87,135,8,91,27,244,23,61,180,45,252,186,53,202,151,169,247, +29,250,131,131,218,52,40,74,7,187,215,112,69,133,234,164,66,21,214,143, +141,159,228,32,162,249,33,225,152,113,203,181,226,250,167,97,125,50,251, +50,198,157,57,56,125,132,238,90,88,246,1,137,179,26,78,213,168,200,193, +25,13,167,74,40,118,112,78,161,220,156,160,170,10,176,57,162,63,28,96,81, +162,218,156,162,42,21,88,239,209,181,71,56,172,208,172,183,40,171,98,0, +117,192,28,119,232,59,13,174,79,177,90,175,80,20,162,255,233,12,108,27, +126,94,158,96,181,89,65,113,15,125,184,244,213,164,166,6,244,17,221,241, +0,118,4,82,30,19,161,170,21,170,230,4,85,221,160,80,0,219,35,250,195,109, +180,71,13,166,2,101,115,138,213,201,9,202,82,165,92,55,217,204,6,9,177, +24,45,201,5,243,130,67,67,98,68,113,133,189,184,194,110,164,201,77,122, +1,78,38,185,102,201,37,207,39,158,210,95,226,68,123,105,246,92,153,123, +75,101,8,102,229,224,244,247,49,167,126,159,17,135,206,84,10,243,188,52, +51,123,121,149,98,35,197,239,146,150,190,119,201,190,39,123,129,238,32, +236,148,83,89,227,52,251,95,120,6,206,240,55,61,163,127,22,170,10,233,72, +122,250,253,156,78,16,222,137,54,63,183,30,152,183,0,104,105,237,23,232, +242,115,250,101,242,30,74,100,122,13,17,133,44,50,40,192,217,23,81,240, +111,22,142,157,151,96,85,25,71,40,212,136,0,0,32,0,73,68,65,84,250,219, +164,116,134,116,28,2,121,135,158,163,64,206,169,73,142,65,72,23,156,100, +81,162,89,123,231,14,98,184,203,14,237,133,1,154,10,205,179,26,168,161, +207,205,5,234,147,18,202,89,244,151,26,166,179,96,237,96,59,141,98,93,163, +57,9,163,94,70,163,219,27,88,86,62,171,44,227,50,149,237,52,244,209,247, +218,171,77,1,229,12,186,125,232,3,7,7,12,109,96,246,61,172,43,80,133,140, +122,92,211,222,160,63,26,24,20,104,54,101,112,238,131,131,244,139,229,122, +11,163,29,156,35,216,30,128,42,80,157,86,168,26,130,61,244,254,250,77,141, +250,164,14,101,85,22,136,95,159,225,245,151,190,23,95,157,215,40,106,209, +199,49,198,7,62,40,80,111,74,223,219,31,50,251,34,68,156,237,112,125,6, +119,0,55,5,234,109,141,170,129,31,141,107,129,242,124,227,241,14,178,44, +89,16,208,105,180,151,26,174,172,209,172,75,80,49,63,64,108,44,244,101, +88,159,16,96,140,193,211,190,71,223,1,229,121,57,115,238,212,212,168,42, +134,17,247,95,137,245,67,73,11,89,101,178,255,141,133,14,88,133,234,84, +92,63,151,173,136,3,235,250,3,250,246,8,167,86,40,21,224,108,11,86,13,74, +197,112,218,0,69,5,101,53,140,37,148,155,13,202,138,124,38,126,216,195, +81,131,102,123,130,170,170,0,189,67,119,220,195,146,119,238,69,21,22,137, +44,108,187,67,119,236,64,205,41,154,245,218,191,223,241,76,25,232,227,37, +76,111,161,234,83,148,235,53,10,215,250,30,58,151,168,86,21,96,14,232,13, +161,62,125,14,170,186,10,211,13,0,40,100,232,99,233,119,133,122,91,65,149, +59,116,199,22,41,219,138,179,206,7,242,74,133,185,122,68,124,252,17,255, +63,101,50,39,17,28,17,230,153,53,207,121,176,242,145,194,157,132,33,105, +254,122,163,50,249,192,212,153,149,229,165,152,112,75,162,194,41,5,72,101, +132,157,210,108,92,68,45,148,104,126,204,90,6,28,239,83,154,141,130,102, +28,7,45,56,143,52,216,200,57,224,92,146,181,176,237,83,24,20,101,130,157, +232,59,41,87,169,137,137,97,38,251,157,70,40,11,178,170,148,205,249,150, +35,53,32,175,164,72,87,4,145,73,208,122,69,209,98,166,155,146,125,151,9, +163,52,101,2,216,92,223,31,249,193,132,100,138,10,89,26,93,239,224,211, +104,123,86,99,226,229,136,132,100,25,34,240,167,20,133,152,61,206,204,171, +138,27,144,83,155,148,1,183,164,213,135,104,2,102,33,242,229,96,160,141, +85,104,78,125,191,19,3,160,107,175,97,81,250,126,46,91,15,10,211,10,245, +179,42,20,228,160,47,124,102,222,124,254,42,24,79,63,74,87,84,202,247,185, +143,26,90,3,197,186,8,165,125,231,219,4,21,129,181,129,57,104,112,81,163, +218,148,80,8,32,190,30,40,79,74,84,181,47,163,186,62,0,183,234,96,96,140, +3,151,10,202,57,152,214,192,88,229,51,247,74,205,15,162,243,243,216,206, +4,224,99,81,160,218,6,116,183,54,48,71,223,119,175,215,30,37,31,243,56, +123,39,233,122,3,163,29,184,42,65,112,96,67,160,66,121,7,218,122,220,64, +125,42,175,47,118,143,115,30,159,112,240,196,57,229,214,7,18,101,229,145, +220,166,183,30,16,87,168,9,89,12,64,213,126,142,219,24,11,103,24,40,253, +123,114,236,43,11,170,16,40,216,225,254,234,80,74,55,236,131,3,231,60,224, +206,41,144,243,89,246,248,62,182,126,244,209,181,61,180,37,84,39,213,148, +109,142,202,78,185,74,80,204,11,237,43,24,1,216,87,149,254,253,88,7,64, +197,26,20,145,6,13,131,77,7,125,220,195,169,181,7,255,29,91,160,90,163, +42,25,230,216,1,245,10,37,25,244,109,15,174,182,32,24,232,203,11,244,135, +61,108,113,130,245,233,169,119,238,174,135,233,15,48,134,80,174,43,40,10, +149,147,2,128,213,48,93,7,7,242,218,222,78,135,245,43,65,48,176,221,14, +253,81,67,173,79,81,173,26,40,215,163,63,220,70,111,43,212,235,53,10,234, +208,245,61,88,109,60,130,127,40,75,14,109,52,103,61,89,211,80,42,183,61, +172,49,160,106,131,106,189,65,81,40,48,1,174,63,226,226,250,45,236,173, +194,250,252,89,56,223,212,40,85,34,33,205,121,67,181,228,236,83,121,104, +186,50,165,70,70,244,35,243,235,185,132,33,3,72,35,226,185,66,218,92,38, +33,14,92,100,160,66,28,209,48,207,156,211,76,173,140,231,89,105,46,8,201, +249,168,180,36,45,140,38,231,28,34,146,64,41,247,92,148,191,238,82,192, +49,75,200,228,239,82,206,145,44,120,34,57,228,206,177,64,79,46,179,151, +126,64,142,239,178,152,199,79,197,160,72,70,89,11,85,31,90,216,171,3,45, +180,100,65,157,165,209,18,27,145,140,110,206,149,108,150,131,38,220,169, +74,37,215,149,99,58,230,236,134,23,165,179,50,237,157,196,209,49,207,85, +191,120,214,186,8,227,220,22,12,70,137,50,78,205,151,158,66,190,84,217, +23,67,250,22,115,245,61,100,164,14,195,11,239,12,140,37,223,239,94,23,83, +84,104,130,115,236,123,116,55,53,76,173,0,86,190,63,191,86,224,67,15,163, +189,195,48,199,62,172,147,66,117,190,194,250,188,0,25,3,115,212,48,45,96, +123,131,254,182,239,249,214,167,13,154,179,18,174,211,112,92,248,82,121, +73,128,209,48,61,131,170,42,56,92,49,231,237,44,236,222,225,120,208,40, +183,53,154,179,6,100,13,180,102,168,186,66,213,20,17,223,251,248,236,202, +193,182,22,86,19,170,107,43,52,167,33,75,14,193,132,99,133,98,93,5,84,125, +154,34,8,100,175,115,176,135,206,95,255,164,70,115,222,160,48,6,90,3,106, +37,174,159,206,168,0,62,184,112,132,242,164,198,234,172,9,224,56,15,190, +42,43,5,115,208,232,110,25,116,128,95,159,179,6,77,81,130,72,65,149,10, +74,49,244,190,197,113,79,64,225,199,233,154,147,33,219,15,185,141,117,176, +251,110,90,159,243,6,101,169,80,148,10,250,96,252,247,83,137,106,91,161, +185,171,66,81,16,208,247,254,254,235,10,245,170,140,232,29,151,130,211, +105,190,26,209,220,122,110,125,202,34,59,60,12,144,133,233,142,176,92,163, +106,106,112,119,0,23,43,212,43,5,219,30,193,213,6,205,102,3,116,183,1,24, +216,238,2,61,123,20,186,170,55,40,215,231,168,155,106,12,192,216,90,56, +221,163,183,61,76,181,69,189,61,71,163,138,224,140,21,184,61,162,219,245, +232,8,80,205,41,154,205,57,42,110,61,98,191,217,162,222,172,80,16,195,30, +15,254,28,172,206,80,213,5,200,26,40,197,232,251,75,180,253,165,223,78, +245,41,154,147,115,212,212,162,59,92,160,59,246,83,233,93,53,168,215,39, +88,175,86,126,180,147,24,128,133,110,15,216,31,246,48,205,179,80,213,117, +192,6,80,218,164,158,215,29,57,147,52,112,126,150,123,209,250,45,125,158, +18,164,254,85,142,5,41,154,44,147,34,145,20,70,89,96,155,25,144,254,81, +202,206,11,37,113,206,250,174,92,73,117,241,159,52,40,144,10,103,145,253, +206,56,37,158,35,254,136,248,138,140,55,249,14,164,73,21,9,181,195,41,243, +166,153,100,105,234,228,56,227,228,151,42,11,146,221,111,225,149,130,227, +224,37,197,88,204,34,4,44,148,107,104,30,152,82,38,88,77,131,151,168,218, +157,137,56,239,244,94,57,1,62,228,128,28,51,63,154,123,47,57,77,250,176, +51,181,213,140,92,105,132,229,252,106,138,248,72,26,79,14,8,211,189,129, +138,22,73,217,142,231,242,242,87,201,31,231,106,106,137,102,52,9,186,199, +168,230,225,166,204,144,84,4,14,128,179,28,107,238,14,253,250,67,143,254, +232,123,184,85,67,32,248,145,177,254,210,129,78,214,88,157,86,40,148,131, +179,243,3,76,133,2,21,126,110,26,172,66,217,217,103,172,214,193,163,220, +229,134,24,231,238,195,125,23,129,28,199,241,148,209,74,229,184,129,244, +194,25,79,248,114,105,65,155,21,154,147,10,69,33,202,66,161,154,64,5,229, +203,133,195,127,216,48,78,53,252,218,112,125,246,51,227,190,84,203,243, +247,28,94,189,51,126,228,141,10,242,207,42,207,145,115,96,75,163,80,11, +51,251,153,107,21,222,147,243,165,253,40,48,43,213,68,28,67,240,156,1,78, +172,115,65,40,194,72,37,107,65,168,194,24,137,138,252,141,185,241,254,85, +66,41,155,45,81,45,148,236,96,157,95,31,76,129,139,138,100,108,165,150, +188,199,36,76,253,125,63,33,64,1,53,232,216,249,245,164,176,238,236,134, +135,6,145,11,168,221,176,62,0,136,29,156,115,147,178,26,21,30,64,58,16, +23,217,233,103,30,40,88,132,119,231,224,48,76,32,132,234,152,181,126,56, +117,192,29,12,243,246,18,189,91,132,207,195,95,119,170,144,49,128,98,186, +247,96,60,156,62,98,127,251,38,110,119,132,213,217,93,56,223,174,80,21, +124,69,111,119,73,131,60,151,26,102,154,214,140,133,230,99,156,4,94,217, +223,3,93,145,230,35,223,248,93,52,200,132,153,126,59,18,223,158,114,141, +230,228,224,23,251,208,25,40,125,196,38,155,105,246,3,207,240,217,50,0, +38,206,100,221,28,83,19,75,70,192,161,18,198,105,9,32,5,9,96,105,198,16, +249,53,155,101,160,9,200,64,82,102,95,181,126,152,168,90,17,177,220,97, +25,124,144,109,243,204,230,242,230,189,96,78,74,81,204,25,116,39,231,75, +51,41,29,115,74,161,74,249,152,40,51,96,48,163,33,78,207,76,2,178,75,31, +134,242,205,48,177,33,188,198,187,215,119,47,202,34,127,76,56,223,191,228, +108,29,76,206,14,74,90,193,228,85,241,52,242,16,97,91,147,239,138,94,120, +250,226,156,131,219,183,56,238,66,95,248,188,70,73,14,78,27,244,59,3,87, +250,153,235,170,186,34,19,201,29,208,76,217,241,142,17,58,207,75,132,20, +8,114,156,241,224,61,219,195,179,169,109,195,60,127,170,90,38,89,199,82, +73,201,220,134,75,248,236,65,203,56,17,230,76,131,83,206,173,112,178,97, +83,4,208,76,49,44,33,11,77,74,141,179,186,228,200,129,45,231,99,35,38,246, +72,10,122,64,163,178,137,89,50,70,99,53,204,76,43,95,85,96,225,36,226,228, +146,242,209,115,234,196,232,42,167,48,181,73,152,151,123,138,241,10,167, +6,40,131,162,145,134,85,6,230,169,162,90,244,76,25,39,198,249,236,134,2, +71,133,115,22,166,239,113,184,220,161,181,132,230,228,28,103,91,15,200, +139,19,95,138,149,194,150,156,185,116,206,105,243,24,179,217,175,133,242, +106,206,80,39,255,159,19,20,20,199,141,126,202,200,8,75,162,158,25,211, +205,2,58,141,34,126,15,158,37,95,145,189,143,4,153,226,142,65,188,15,40, +98,75,100,94,232,57,240,21,103,26,19,221,174,92,227,217,115,207,102,178, +211,157,18,95,135,146,61,25,19,177,112,234,198,51,136,181,133,247,139,121, +176,21,175,205,220,41,103,131,166,217,62,224,124,160,35,36,155,57,163,113, +63,123,63,184,3,6,96,22,78,100,130,203,76,91,134,103,254,140,243,118,51, +226,198,159,175,49,81,76,197,60,57,120,185,249,16,215,250,57,243,208,227, +195,48,143,164,247,138,72,16,25,48,98,173,1,33,110,1,202,115,109,39,7,136, +147,7,148,15,79,66,72,130,4,243,209,132,78,77,103,25,56,65,225,13,61,101, +134,185,108,209,238,122,207,116,22,230,247,213,186,70,189,169,81,54,133, +239,101,207,102,63,57,243,98,51,187,53,49,238,136,100,77,147,111,73,120, +190,97,135,73,128,30,150,21,202,77,133,106,83,162,8,35,135,28,189,84,185, +17,105,62,230,33,213,201,120,226,231,158,56,253,211,202,72,124,98,36,179, +31,131,179,52,193,179,224,138,175,64,190,140,116,142,36,100,55,231,107, +33,155,105,147,3,167,57,122,40,135,110,214,22,122,239,201,106,156,225,88, +182,145,1,42,124,27,167,62,105,80,214,169,93,201,101,12,52,39,173,190,42, +242,135,36,126,194,108,252,115,9,215,50,16,162,44,12,253,198,172,123,72, +131,223,185,209,202,2,205,211,192,130,99,37,201,201,57,88,152,254,128,221, +110,143,86,19,234,245,6,155,205,26,77,85,76,204,103,113,136,133,137,203, +125,206,139,158,55,248,28,147,138,65,236,199,217,145,146,130,40,20,235, +11,16,197,65,163,228,43,191,67,229,96,166,135,128,204,120,29,104,6,113, +94,198,81,229,193,98,204,115,128,193,120,207,49,103,115,100,191,70,97,167, +204,81,162,153,112,23,102,227,125,177,195,203,108,219,204,152,129,12,11, +211,0,36,23,124,82,210,191,151,156,5,140,133,25,179,148,132,61,231,64,133, +147,158,138,138,82,6,45,89,123,22,21,196,97,31,0,51,197,183,52,64,142,5, +112,146,234,9,18,238,5,73,119,157,177,147,87,6,52,73,64,151,82,116,79,226, +88,105,213,62,71,19,205,25,154,235,184,21,69,198,105,158,109,85,65,198, +48,143,224,166,110,151,49,6,96,134,42,11,80,168,179,18,199,82,159,51,189, +158,200,209,98,6,239,140,104,114,211,82,127,38,58,204,69,120,148,139,32, +35,37,166,240,196,65,105,142,93,18,89,5,30,249,72,149,72,10,39,164,65,10, +229,238,135,18,160,32,39,101,54,193,48,181,244,57,23,218,2,106,106,57,68, +116,139,57,232,167,208,134,158,184,167,57,62,160,28,83,134,114,162,41,141, +84,93,109,97,77,39,129,139,43,202,155,156,41,141,101,51,209,68,83,32,163, +202,36,89,192,128,185,195,139,238,209,5,5,53,119,69,245,132,200,87,66,84, +146,249,138,76,102,97,149,243,61,37,78,84,13,165,130,153,200,202,34,133, +190,72,63,96,94,171,138,52,182,105,254,78,164,196,230,200,128,149,110,251, +133,89,52,41,171,147,45,135,135,182,139,11,193,185,10,168,121,41,124,49, +115,76,44,165,48,57,83,97,227,36,187,204,32,170,104,57,176,202,172,78,190, +228,58,34,214,99,197,53,41,152,196,185,128,67,66,193,69,80,63,241,196,75, +213,52,196,220,228,140,88,165,78,206,195,73,155,200,82,216,37,147,185,202, +96,46,23,40,103,103,206,40,73,141,104,46,181,40,209,251,148,238,71,186, +178,95,157,86,80,135,100,98,210,64,224,89,80,75,146,218,150,230,246,159, +16,247,54,164,194,157,180,141,72,219,224,148,230,203,226,57,50,35,3,99, +128,132,212,86,211,204,207,200,96,142,48,111,137,112,242,119,177,109,165, +5,75,33,237,83,234,251,146,84,81,170,86,34,167,186,67,87,87,19,211,214, +134,177,154,153,40,155,125,70,202,59,44,148,160,194,131,58,103,71,249,201, +216,17,164,106,113,194,120,37,25,91,162,239,37,162,255,133,90,72,154,181, +10,1,134,57,36,114,46,58,49,0,251,56,221,0,146,223,90,170,14,37,64,8,233, +16,35,121,210,20,148,150,148,212,164,162,20,167,81,223,172,37,146,81,43, +138,52,236,57,83,150,231,76,164,78,72,5,128,57,23,105,70,0,71,169,51,38, +212,145,40,46,73,78,81,102,78,214,55,94,55,150,25,215,98,237,21,25,131, +197,25,161,147,52,200,66,70,122,44,254,254,88,134,246,138,67,2,137,31,136, +247,115,236,172,133,140,167,220,211,76,162,130,68,34,27,79,161,206,60,19, +182,97,206,177,112,240,44,32,147,58,16,241,62,74,131,50,136,96,112,142, +238,150,239,4,51,26,81,249,92,9,8,72,236,243,180,252,28,75,44,231,3,209, +121,197,107,161,47,28,85,122,50,193,47,197,114,165,105,203,108,106,225, +196,146,162,105,17,51,10,67,120,226,41,39,129,144,231,132,77,79,242,157, +115,196,158,6,17,36,198,251,129,4,149,232,232,60,144,131,47,44,225,16,226, +255,150,153,127,254,21,165,191,147,8,162,72,89,85,81,145,157,181,35,132, +34,94,28,156,33,9,56,147,68,5,20,129,16,167,128,150,163,247,79,153,128, +130,147,49,131,72,73,13,169,86,156,212,36,224,204,24,65,188,55,114,101, +236,92,144,21,251,41,121,22,176,80,61,67,150,200,40,181,111,36,3,106,36, +248,138,116,90,100,70,230,35,196,221,102,173,173,4,39,17,126,164,98,33, +41,30,217,111,7,131,79,76,225,176,196,25,180,181,102,10,190,100,20,54,62, +66,80,244,18,20,146,82,9,39,202,212,135,175,24,85,192,104,206,132,52,162, +52,89,156,99,22,17,115,138,98,228,232,185,70,90,70,8,62,101,142,24,145, +103,148,85,148,66,56,101,182,43,102,246,56,168,7,81,162,197,158,58,196, +209,96,209,164,25,63,108,90,66,60,31,155,107,147,74,176,30,49,34,61,242, +184,205,33,141,40,70,195,50,9,70,144,160,124,146,9,104,92,226,28,254,53, +221,227,100,8,82,233,218,193,174,177,140,198,35,201,74,153,243,112,20,189, +147,216,57,8,207,53,70,198,131,202,215,160,220,53,28,180,209,120,12,2,33, +50,62,14,14,52,201,42,40,138,222,57,142,154,137,18,0,48,79,10,87,36,223, +143,0,159,50,98,231,232,95,74,156,99,39,232,227,241,60,200,204,72,178,146, +37,78,59,26,191,33,30,247,224,240,166,226,109,47,2,188,132,193,43,162,151, +30,21,204,132,222,3,226,17,155,73,178,146,167,103,39,161,170,6,193,97,158, +192,61,82,102,46,68,99,77,52,219,157,17,159,59,77,103,157,18,50,14,26,213, +219,56,62,38,156,112,180,35,86,68,251,157,247,253,63,184,247,75,238,69, +93,84,168,84,37,87,15,41,141,235,168,196,56,138,9,77,26,24,76,254,93,87, +69,133,170,40,231,216,181,193,102,210,116,15,156,211,99,15,246,64,222,133, +15,90,121,54,115,77,130,161,142,100,130,194,177,67,155,236,170,164,1,167, +89,251,150,7,251,70,66,145,141,243,40,46,226,88,122,140,16,23,106,228,89, +154,244,0,98,90,96,22,116,191,136,218,94,131,13,9,127,48,9,245,69,9,25, +18,97,177,209,95,200,185,243,164,26,136,137,184,139,210,25,117,241,25,239, +219,48,141,162,201,25,204,168,79,206,201,168,187,248,221,209,94,81,6,165, +193,211,187,195,36,13,62,92,110,16,138,25,108,15,177,148,123,75,21,243, +40,106,101,12,127,55,41,5,78,247,45,239,67,49,211,140,64,114,164,161,151, +190,64,28,164,161,92,231,249,225,41,30,147,16,89,241,168,252,54,202,111, +146,112,36,211,134,28,12,30,73,49,135,232,108,179,40,205,210,92,181,40, +211,184,145,210,180,113,188,21,87,20,88,252,59,150,230,163,68,179,91,26, +90,76,26,187,28,219,215,129,176,129,66,134,19,149,241,146,50,41,135,131, +49,186,37,18,146,150,52,41,172,141,6,76,58,199,148,27,32,67,105,68,51,169, +78,22,170,89,49,234,151,211,89,84,146,7,139,5,143,53,207,250,82,147,132, +48,69,234,93,188,116,63,50,83,2,162,242,94,219,29,241,19,111,123,27,94, +248,37,247,98,179,218,224,222,47,125,33,222,246,19,111,67,219,181,209,252, +249,135,255,223,15,227,245,223,249,122,60,255,238,231,99,187,222,226,203, +190,244,94,252,131,255,245,31,224,120,56,142,1,234,187,222,253,110,188, +248,222,23,97,221,108,240,162,123,95,140,247,190,231,61,145,123,121,247, +175,191,27,47,190,247,197,88,175,54,120,241,189,47,194,123,223,251,222, +177,114,85,169,10,149,42,81,169,10,165,42,253,159,194,255,221,40,1,65,36, +120,182,9,31,254,163,63,194,235,191,243,13,120,222,221,207,199,201,120, +79,63,142,182,61,142,65,211,187,223,245,46,188,232,222,23,97,51,220,211, +123,223,235,247,10,128,50,92,111,184,110,28,188,1,165,242,14,170,10,142, +202,223,83,153,0,163,6,209,40,137,30,154,118,225,248,253,225,59,158,253, +249,207,198,183,190,246,62,124,226,19,159,24,213,23,39,63,79,226,108,76, +146,159,105,197,165,44,134,123,42,167,181,10,142,116,10,180,163,112,51, +58,179,60,6,70,36,76,33,69,6,53,174,88,38,226,43,136,3,132,42,92,127,248, +206,239,255,190,239,199,35,143,60,130,255,240,224,159,64,59,157,186,80, +225,152,115,20,173,226,104,49,146,32,122,8,72,57,129,230,240,152,117,78, +50,179,130,247,131,99,94,220,145,202,157,41,2,179,14,86,84,202,112,15,231, +157,50,196,14,156,0,105,199,123,138,228,54,41,170,130,77,201,227,100,123, +166,209,191,68,89,143,32,48,56,60,5,0,163,44,42,69,139,54,85,174,57,10, +64,56,229,154,199,36,198,66,201,253,48,230,201,210,112,111,82,170,86,222, +50,201,32,134,100,160,60,249,36,26,196,206,6,46,251,196,127,77,105,104, +208,8,25,91,152,28,37,38,76,147,117,140,247,83,156,28,177,184,193,232,74, +33,57,156,212,99,167,49,77,74,170,17,131,240,16,69,213,108,217,254,38,145, +80,249,255,175,226,12,91,114,39,71,241,210,232,184,172,115,176,214,140, +134,135,199,168,100,56,148,177,212,31,11,198,186,49,146,33,138,163,218, +41,222,153,140,19,166,118,128,44,103,200,172,124,116,58,20,103,60,209,239, +16,207,113,0,73,148,54,181,248,104,166,163,32,227,129,184,180,199,209,252, +45,201,234,69,164,6,65,139,115,175,67,4,43,242,222,81,43,91,110,200,97, +83,144,216,116,114,109,105,44,189,201,50,54,137,124,150,99,240,20,69,174, +95,244,221,105,116,246,83,105,42,222,98,19,175,246,244,70,89,28,252,200, +136,12,101,189,56,197,17,79,49,69,166,12,224,112,60,226,149,223,248,74, +252,233,199,30,198,111,255,206,111,227,246,238,54,254,175,247,253,223,120, +232,161,135,240,202,111,124,37,142,199,118,124,7,111,125,203,91,113,223, +253,247,225,99,31,127,24,143,61,241,24,190,249,53,223,140,159,254,169,159, +198,247,126,239,247,2,0,30,120,224,253,120,243,27,223,140,87,252,229,87, +224,179,143,127,22,223,240,138,111,192,27,94,255,70,124,240,131,31,4,0, +124,224,129,15,224,205,111,122,19,94,241,151,95,129,71,199,159,191,1,127, +248,161,63,4,3,208,78,67,59,13,227,52,180,53,248,237,223,249,109,0,192, +23,125,209,23,197,7,122,84,252,98,188,229,71,127,12,247,221,127,31,30,254, +248,195,248,172,188,167,191,247,63,131,153,241,129,7,30,200,220,211,27, +240,135,31,252,144,87,151,117,6,198,233,184,43,199,60,107,96,104,171,161, +157,129,118,6,38,76,176,176,48,146,41,21,90,110,20,218,56,141,86,183,248, +217,119,188,29,255,230,119,127,23,255,195,155,190,43,54,163,68,179,160, +146,41,117,167,177,179,247,235,101,160,173,191,55,12,153,77,210,227,37, +217,55,229,185,44,230,152,249,200,94,28,139,202,27,197,165,222,156,196, +171,172,156,125,230,51,159,1,0,188,248,37,47,137,164,172,162,10,97,42,31, +203,28,141,31,83,12,253,143,43,19,68,51,251,196,226,76,49,146,103,1,33, +101,76,142,98,177,89,152,145,80,160,81,92,54,96,81,181,144,61,233,177,197, +64,156,148,115,69,53,70,88,198,65,64,103,12,64,120,114,206,16,39,119,76, +9,73,130,110,7,182,204,41,49,160,136,204,12,81,63,30,162,253,198,34,113, +138,240,52,82,82,87,36,139,114,221,57,173,84,142,103,65,180,68,4,43,90, +132,229,27,199,183,105,82,52,228,88,105,109,214,187,39,138,196,92,48,98, +16,40,29,225,17,188,244,83,85,123,180,222,67,133,145,41,110,176,17,71,190, +99,122,122,158,85,101,73,84,179,101,251,145,229,100,141,177,134,141,243, +127,116,248,183,177,195,255,215,241,191,173,225,94,247,172,173,246,191, +111,195,207,172,97,237,244,248,57,255,187,122,252,222,225,187,117,248,221, +225,26,38,185,158,30,127,87,79,191,239,76,244,103,186,183,233,119,199,107, +217,228,26,233,103,195,179,204,239,43,121,254,133,235,105,59,61,199,240, +61,242,94,167,239,208,226,123,167,53,140,174,107,231,215,49,209,247,78, +223,109,210,107,14,159,181,58,185,119,121,13,29,174,173,197,189,105,241, +157,58,251,174,211,223,159,222,81,248,185,53,201,207,194,251,183,203,123, +104,186,151,248,93,235,104,77,13,191,229,173,111,225,111,251,182,111,227, +207,62,241,24,191,225,141,111,224,187,239,190,155,171,170,226,47,254,226, +47,230,215,189,238,117,252,150,183,190,69,124,143,142,222,215,205,139,91, +12,128,175,93,187,198,198,25,126,245,171,191,137,1,240,195,31,127,152,141, +211,252,208,159,126,140,1,240,107,94,243,205,172,197,207,63,246,241,135, +89,59,195,31,11,63,255,230,215,188,102,92,235,94,119,220,246,45,119,214, +240,215,126,237,215,50,0,254,229,95,249,231,220,245,93,116,223,114,191, +203,189,39,239,73,59,205,223,244,234,87,135,123,250,24,27,167,163,107,202, +189,49,88,23,51,126,175,95,227,225,239,199,247,101,147,253,98,77,178,95, +76,242,110,116,252,221,206,240,238,242,130,1,240,122,189,230,135,30,254, +143,12,128,207,206,206,248,198,237,27,108,172,225,143,255,167,63,101,0, +252,194,23,190,112,182,151,135,103,31,239,203,198,247,144,94,83,254,25, +246,230,59,126,238,29,161,64,64,124,247,221,119,243,223,250,219,127,139, +111,222,190,57,126,127,250,185,178,44,249,101,47,123,25,127,224,223,125, +96,178,63,98,207,71,207,104,205,226,181,115,127,63,124,207,219,23,238,73, +39,223,159,222,211,3,31,252,64,178,175,245,104,23,83,27,27,219,181,216, +94,24,43,237,205,252,204,206,222,177,155,219,168,241,154,86,103,109,152, +73,255,216,185,29,148,215,150,118,193,36,54,214,36,246,245,106,123,155, +216,148,196,15,164,254,194,100,214,70,39,118,116,102,183,172,206,238,85, +121,47,233,51,202,245,206,61,159,201,60,207,228,211,194,59,179,122,242, +63,54,126,198,216,15,233,217,222,141,239,79,199,182,209,198,190,102,184, +142,73,252,163,177,115,127,167,198,82,66,50,166,48,68,30,211,191,25,218, +26,175,189,30,245,203,98,213,90,74,25,141,22,70,115,100,86,31,141,42,200, +64,85,74,47,10,28,85,18,15,70,58,242,18,40,199,217,110,52,197,85,9,228, +4,122,28,216,104,56,163,97,141,246,36,50,145,184,16,197,138,77,226,94,37, +127,245,156,116,143,163,246,168,143,52,29,88,107,88,158,178,3,14,215,31, +174,27,215,63,36,222,140,60,57,138,214,96,39,162,85,142,33,77,136,70,152, +40,234,66,203,40,89,22,166,210,86,2,100,171,74,86,51,56,29,217,226,4,40, +72,113,4,78,73,23,75,100,18,239,121,247,123,240,214,31,123,43,222,252,198, +55,225,57,207,185,27,15,62,244,81,28,187,3,254,236,63,255,25,126,252,31, +254,56,222,243,238,247,136,114,173,24,189,100,198,31,127,228,35,0,128,103, +63,251,217,96,6,30,124,240,163,99,198,13,16,94,240,69,95,4,192,255,61,129, +147,159,3,95,24,254,253,209,7,31,4,49,96,245,17,151,183,110,227,226,178, +197,251,31,248,0,62,244,161,15,225,133,47,252,82,220,255,154,215,224,214, +237,3,58,78,70,37,73,40,161,133,126,234,31,127,120,186,39,2,225,163,15, +62,24,174,245,2,0,52,94,251,163,15,62,56,149,197,103,184,63,130,212,128, +6,128,243,147,51,156,110,207,240,178,47,127,25,222,241,142,159,135,54,58, +238,215,10,185,204,17,243,145,129,50,58,235,240,91,255,234,95,3,0,190,234, +171,190,10,95,118,239,139,240,77,175,126,53,46,46,46,240,171,191,252,43, +0,1,191,241,27,191,9,0,120,237,183,190,54,145,26,205,143,22,19,201,124, +69,156,97,0,111,124,211,27,241,244,205,167,97,156,30,51,158,167,158,122, +10,31,249,247,31,193,238,114,135,159,252,169,127,132,95,253,149,95,197, +91,126,244,45,179,222,254,235,223,240,122,124,238,198,211,248,181,95,251, +53,60,248,224,131,248,158,239,254,158,200,254,76,192,96,138,6,74,244,80, +109,20,21,6,105,234,222,248,166,55,226,250,205,235,48,214,140,159,252,220, +112,79,251,11,252,35,113,79,41,49,231,235,223,240,122,60,125,227,105,252, +159,225,158,254,199,191,253,61,99,197,133,8,25,180,193,220,62,208,12,128, +43,70,22,73,102,205,136,178,213,8,152,44,139,190,35,195,221,188,236,25, +73,183,134,191,136,70,218,18,130,185,212,138,209,156,200,36,198,184,50, +71,123,132,57,121,126,230,228,253,80,70,205,49,30,63,142,26,69,162,87,156, +54,139,72,78,51,36,96,195,120,178,64,84,197,34,149,63,142,198,186,65,243, +138,54,207,28,26,71,45,102,22,213,153,233,32,146,104,123,12,107,75,25,14, +23,36,181,167,120,170,43,170,132,208,212,230,148,239,126,194,130,77,56, +13,50,206,240,76,45,41,149,93,12,191,204,204,80,164,230,156,197,41,220, +143,23,248,19,36,168,49,113,124,209,139,103,142,105,107,229,136,138,115, +35,208,202,235,211,179,88,128,184,140,65,153,107,33,41,231,200,103,244, +44,115,61,76,183,71,127,108,97,157,3,84,133,98,117,138,245,118,235,89,191, +162,113,157,84,97,136,19,131,19,143,179,112,210,87,97,215,195,118,123,244, +173,129,218,92,67,83,85,0,105,152,227,14,237,101,11,106,78,177,62,217,162, +40,84,254,190,185,135,105,247,232,90,139,114,125,13,117,83,196,35,40,72, +70,183,41,4,47,158,98,111,194,69,164,211,0,184,179,46,197,124,78,33,63, +193,32,177,251,139,220,37,12,176,105,177,217,94,195,159,126,252,33,124, +197,203,94,142,63,254,15,15,225,11,94,240,124,172,75,175,49,222,247,26, +103,39,103,104,251,54,172,251,132,106,253,216,67,15,225,85,127,245,85,120, +242,201,39,241,47,127,235,95,226,254,251,239,195,102,181,69,223,247,232, +173,134,23,225,99,212,85,141,186,174,177,111,15,216,174,54,232,251,30,218, +106,16,8,150,29,154,210,255,252,198,211,143,99,127,232,129,122,139,211, +147,53,238,251,150,111,198,239,255,222,239,227,93,191,254,107,120,213,55, +126,35,142,88,225,236,174,115,108,107,149,148,83,167,53,120,232,63,62,132, +87,189,114,186,167,251,238,191,63,186,38,194,94,174,195,53,15,237,97,252, +134,74,149,99,25,61,61,144,195,21,62,241,201,79,226,7,190,239,251,241,187, +191,251,111,240,195,63,242,195,248,199,63,243,79,238,72,100,38,191,91,254, +83,215,53,62,240,193,7,240,242,175,250,175,240,192,3,15,224,175,188,226, +27,241,5,95,240,5,248,243,71,254,28,95,249,21,95,137,135,31,126,24,255, +238,67,31,196,127,253,53,95,147,125,227,101,230,59,189,67,53,209,207,63, +253,217,207,224,121,207,123,94,4,178,26,158,141,201,211,93,175,170,6,95, +248,133,95,136,71,62,245,9,32,96,33,0,224,83,159,249,20,158,127,207,61, +48,90,99,221,172,65,68,208,86,71,168,243,225,89,203,113,253,188,51,31,0, +113,195,253,200,117,248,204,163,159,193,115,159,255,220,168,227,203,98, +174,219,90,139,70,220,147,124,158,79,126,230,83,184,231,158,231,67,107, +131,77,116,79,11,210,167,9,251,205,196,157,197,217,115,27,149,146,105,154, +191,198,48,33,192,20,217,30,90,148,217,123,6,68,119,201,92,230,210,183, +113,52,37,145,54,63,147,137,164,172,209,151,118,97,201,166,112,130,122, +202,219,109,198,178,76,202,108,206,31,136,248,14,98,154,137,171,121,101, +57,5,79,39,42,118,152,133,190,9,128,31,25,241,31,204,39,31,144,243,193, +87,61,100,26,232,37,243,249,196,152,4,165,144,160,24,229,212,163,115,12, +99,236,72,182,16,225,248,68,184,202,179,236,77,70,83,124,197,184,116,18, +191,68,0,54,158,144,169,174,135,61,222,194,225,226,54,116,103,224,144,213, +157,136,90,193,179,113,175,40,246,18,145,172,233,208,31,110,224,120,121, +1,67,107,52,215,238,198,201,181,103,99,189,221,160,174,203,0,156,75,34, +110,249,82,152,231,217,47,101,158,107,136,71,157,134,109,247,232,91,11, +213,156,160,170,43,79,95,106,59,152,182,3,83,133,178,110,160,10,138,208, +194,227,125,91,13,211,30,208,183,22,69,179,69,213,148,49,0,3,25,241,38, +215,195,30,110,225,176,187,128,238,77,64,137,199,72,247,28,144,40,134,158, +204,167,57,82,196,246,16,25,179,64,72,47,168,29,142,203,164,84,133,123, +238,121,62,110,62,245,36,94,254,242,175,194,47,255,243,95,194,126,119,49, +154,130,63,251,243,63,195,61,247,220,51,251,206,7,222,255,126,124,221,127, +243,117,120,242,201,39,241,11,255,236,23,112,223,125,247,3,32,60,231,57, +207,1,0,244,93,23,192,123,94,21,237,185,207,125,46,136,121,252,121,219, +117,0,1,221,209,59,216,187,159,243,28,92,28,45,202,205,41,174,157,109,240, +167,31,251,40,126,255,247,126,31,47,125,233,75,241,109,223,118,31,24,158, +93,240,218,170,25,1,107,222,224,79,168,237,247,191,255,253,248,186,255, +214,223,211,47,254,179,95,196,253,247,223,15,2,162,107,18,128,246,56,221, +19,178,26,29,20,77,37,200,247,249,197,127,233,47,225,151,254,143,95,2,0, +188,235,215,223,149,153,186,96,9,225,74,198,210,16,122,229,26,239,121,239, +123,208,247,61,254,254,247,253,0,8,192,215,127,253,215,227,229,47,127,57, +30,125,244,81,252,216,91,127,12,15,63,252,48,158,251,220,231,226,107,190, +250,171,231,245,48,206,124,167,51,48,118,192,6,196,183,245,188,231,61,47, +202,92,255,232,195,31,198,171,254,234,95,195,221,207,185,27,117,81,97,85, +53,0,128,71,31,125,116,102,23,238,185,231,30,16,195,139,242,8,160,46,36, +230,152,231,172,102,115,37,204,120,161,158,247,252,231,137,81,43,194,135, +63,252,17,252,181,87,190,10,119,63,251,110,84,69,133,70,220,83,106,194, +191,224,158,123,64,76,179,123,162,140,93,155,178,44,204,2,18,26,128,94, +105,70,12,201,253,30,219,215,33,40,98,57,169,50,171,17,204,177,23,115,146, +46,49,161,27,113,49,164,202,242,19,158,131,82,224,87,146,223,83,2,214,206, +201,129,82,38,192,96,72,240,181,8,29,88,244,154,57,153,204,224,188,98,240, +148,187,11,144,185,248,238,241,124,80,60,187,192,185,17,243,161,159,79, +88,32,92,204,35,38,144,248,190,37,77,163,44,243,172,156,174,77,129,207, +162,210,23,85,142,197,8,224,176,212,42,117,6,36,106,225,36,16,155,101,81, +64,21,197,172,112,130,172,65,194,114,172,200,25,16,219,210,175,15,10,99, +214,192,245,71,244,199,29,218,94,3,69,144,128,181,33,232,176,22,108,141, +87,40,179,198,255,49,198,171,189,177,243,100,29,214,194,57,19,74,239,38, +240,122,195,107,104,247,151,104,247,151,48,92,163,220,222,133,213,102,139, +170,170,160,234,21,170,149,215,201,6,91,95,178,215,67,233,222,248,106,2, +24,204,6,214,57,176,53,176,161,172,239,172,133,99,1,214,112,118,44,249, +219,190,133,62,238,208,181,198,171,142,213,21,200,106,88,235,192,180,66, +115,250,249,216,222,245,121,88,173,234,113,100,12,206,194,89,237,203,249, +125,139,190,221,161,107,53,80,109,80,55,211,253,57,163,193,226,254,56,220, +215,176,126,93,88,63,53,242,231,15,64,73,59,125,86,123,101,177,105,164, +55,92,127,184,127,237,159,111,81,57,108,214,159,240,207,111,181,70,175, +53,140,54,48,198,115,199,79,167,213,225,191,251,27,175,195,79,228,61,31, +107,0,0,30,203,73,68,65,84,255,204,207,225,23,254,247,95,198,19,143,125, +22,47,253,178,23,99,221,108,240,194,47,121,33,126,242,31,190,13,223,254, +29,223,238,63,107,29,28,128,223,252,205,223,196,95,127,213,95,199,241,120, +196,175,255,250,191,192,119,127,247,119,195,24,13,99,44,94,250,178,151, +250,44,235,19,159,128,179,14,159,248,196,39,0,0,95,254,210,47,135,54,22, +47,125,169,255,249,167,62,249,73,128,45,30,249,179,255,4,0,120,209,75,94, +130,237,217,25,78,54,158,138,245,103,254,201,207,0,0,222,246,147,63,225, +91,39,80,40,131,65,143,203,221,12,107,13,126,227,61,211,61,189,251,221, +239,194,223,249,187,255,211,248,136,47,123,217,203,252,61,125,242,147,254, +218,159,254,52,128,240,247,57,154,106,204,71,88,229,249,86,202,159,199, +195,225,48,19,139,74,26,72,217,192,148,136,240,45,175,253,22,0,192,159, +252,201,159,140,6,235,135,126,248,135,0,0,111,255,217,183,3,0,94,243,45, +175,137,80,219,50,48,155,21,23,5,65,201,146,168,220,240,95,223,249,237, +127,19,127,240,7,127,128,95,253,181,95,197,161,61,224,214,197,173,169,210, +181,208,2,64,102,171,73,227,120,103,85,54,90,230,61,98,224,111,206,238, +233,102,52,138,197,153,224,55,193,228,99,54,61,60,204,40,47,92,155,133, +131,141,202,206,179,136,88,84,39,105,34,155,202,102,173,243,142,40,150, +181,84,39,144,241,242,74,205,40,244,238,176,154,114,100,146,242,193,87, +218,222,73,170,124,211,100,4,69,83,63,148,142,12,103,207,11,97,137,71,69, +78,247,36,77,157,188,228,124,162,67,65,75,148,179,25,185,11,57,150,74,75, +130,105,153,251,143,7,13,104,78,149,59,251,142,57,11,35,67,56,120,95,189, +229,137,16,132,167,18,149,87,138,131,151,43,93,34,43,11,114,166,148,21, +84,162,64,204,118,133,144,67,184,126,28,142,57,216,227,14,199,91,79,224, +226,233,199,176,191,125,1,211,30,161,143,183,176,191,121,3,237,113,135, +118,119,29,199,219,79,227,120,241,57,236,174,63,129,253,205,167,113,188, +120,10,187,235,159,195,161,109,97,187,29,14,23,215,113,188,184,142,118, +247,52,246,55,31,199,197,211,79,226,120,104,225,108,15,189,191,133,227, +254,8,46,214,104,54,167,168,235,10,74,50,218,17,224,244,1,253,254,38,14, +55,159,196,229,141,199,113,241,185,71,113,251,230,13,116,109,15,211,238, +208,222,190,142,246,226,58,142,187,167,113,184,249,4,46,158,122,28,135, +203,131,215,76,119,14,182,23,159,191,254,56,118,79,63,134,203,203,14,84, +123,73,81,125,188,129,253,245,199,113,113,253,105,116,157,1,138,18,170, +24,116,182,109,244,249,221,141,199,177,187,238,63,143,106,139,102,85,129, +237,17,122,248,249,117,127,127,23,55,110,160,107,91,152,246,2,199,219,211, +250,245,237,17,230,120,11,135,91,55,209,30,91,56,171,225,250,61,58,249, +253,55,62,135,246,208,123,205,111,56,88,125,64,127,121,19,251,155,79,226, +242,250,19,184,188,249,20,14,151,151,48,214,101,40,61,19,115,224,44,116, +183,199,197,237,155,120,234,169,39,241,228,227,79,224,201,167,174,227,98, +239,91,32,195,222,113,166,195,223,251,59,127,23,159,254,236,103,241,163, +63,242,131,120,203,91,127,20,159,126,244,211,248,255,254,253,71,240,149, +95,249,21,248,212,39,63,137,239,250,174,55,227,241,199,159,196,245,219, +123,188,227,29,63,135,239,252,142,239,196,122,189,198,251,222,247,175,241, +170,191,242,13,120,234,137,39,240,216,99,79,224,115,55,47,241,189,127,255, +7,0,0,63,255,142,183,227,145,71,254,51,126,246,127,243,206,234,187,190, +235,77,120,236,201,235,248,158,239,253,126,0,192,59,127,254,157,120,234, +179,159,198,219,127,238,23,1,0,63,244,35,255,11,54,141,231,250,127,228, +145,71,240,91,255,234,183,240,213,95,253,213,120,245,171,191,9,182,235, +208,115,129,166,110,208,26,159,165,26,107,160,205,1,135,219,79,227,39,223, +246,83,120,195,235,95,143,245,122,141,127,251,123,255,22,255,253,119,124, +187,64,52,3,63,248,195,63,8,0,248,167,63,255,78,220,184,113,3,255,244,157, +239,12,215,252,161,103,160,62,21,59,216,167,158,124,18,63,16,158,241,77, +111,126,211,88,154,46,135,249,108,190,90,252,128,131,211,122,223,111,191, +15,0,240,146,151,188,100,188,196,235,94,247,58,188,224,5,47,24,127,247, +181,223,250,218,69,26,191,108,31,158,239,100,250,3,192,215,248,254,248, +217,249,57,218,182,197,91,223,242,86,252,23,253,195,119,88,186,103,250, +53,148,187,167,31,75,246,52,225,138,34,93,60,53,147,105,89,47,169,124,82, +156,242,45,174,53,137,89,239,180,127,77,185,181,160,185,195,196,157,183, +88,246,135,188,152,255,199,207,198,11,154,63,148,201,110,23,219,18,200, +148,174,151,190,251,10,27,132,133,202,161,116,202,156,237,252,231,79,158, +228,49,203,196,95,203,207,64,120,102,114,177,200,23,186,41,183,53,56,95, +147,137,182,69,64,237,194,89,175,40,85,20,5,72,77,236,104,99,143,219,49, +156,115,80,69,225,233,61,147,127,172,245,217,226,240,249,180,7,193,226, +251,161,104,98,209,10,143,226,172,23,181,80,225,243,227,11,176,29,244,225, +2,253,209,64,13,210,154,106,112,124,59,180,23,45,80,86,40,42,7,211,1,69, +85,65,145,133,117,53,234,117,13,214,183,209,182,140,178,218,160,218,212, +224,126,135,190,5,202,237,25,74,62,162,111,53,104,245,44,172,214,141,151, +29,149,125,32,211,162,63,94,66,27,133,98,181,65,85,42,112,191,71,119,108, +129,230,28,171,154,96,143,55,112,60,90,168,250,4,205,201,10,232,247,232, +142,22,229,246,46,52,181,131,109,47,209,103,63,127,138,186,46,0,75,80,202, +192,28,47,209,187,26,171,211,115,84,131,22,185,105,161,15,151,232,173,66, +185,218,160,28,62,127,232,128,213,41,86,181,130,235,247,232,77,248,121, +161,224,180,199,15,160,57,199,122,189,129,162,30,250,40,214,175,246,235, +199,32,40,214,48,237,14,189,241,210,161,117,5,184,110,135,174,117,254,254, +87,10,174,219,161,63,246,64,125,142,186,46,252,218,3,32,85,120,22,195,171, +206,155,105,177,223,93,224,255,47,237,90,126,109,201,202,250,239,91,171, +30,187,118,237,189,207,185,221,193,8,218,45,97,202,148,137,137,218,206, +29,56,16,218,4,193,1,78,120,168,33,50,81,66,218,1,173,9,9,130,12,156,8, +38,144,160,144,104,24,56,36,142,8,240,31,48,7,236,4,9,220,219,247,236,87, +61,215,250,28,84,237,170,245,248,106,239,211,183,239,232,222,123,78,85, +173,90,181,214,247,248,125,191,245,253,14,13,144,21,59,148,185,198,0,2, +17,180,187,142,250,6,167,253,3,158,215,10,73,153,227,95,254,233,203,248, +143,111,255,59,222,122,235,45,188,239,125,239,197,159,188,254,167,248,252, +231,255,14,69,10,28,31,14,104,147,18,175,254,230,123,22,159,251,243,255, +251,53,158,60,217,226,63,191,253,45,188,249,230,63,226,231,255,251,22,126, +251,149,87,241,249,47,252,45,62,252,199,127,132,99,77,88,223,63,193,127, +255,215,119,241,15,95,252,34,126,246,179,159,227,149,87,95,197,23,222,120, +3,127,254,241,143,77,155,233,83,159,252,20,190,254,175,95,199,247,255,231, +251,248,195,223,251,93,28,246,15,56,163,196,147,187,18,249,69,201,14,22, +93,117,196,243,103,7,188,247,149,223,89,28,83,111,251,9,78,127,243,139, +111,226,167,63,253,41,222,255,254,247,227,141,191,127,3,31,253,179,143, +122,181,99,249,90,66,162,102,249,190,178,44,241,129,15,124,0,159,248,139, +79,224,211,159,249,52,136,8,89,146,65,107,141,166,107,228,250,95,112,15, +0,216,237,118,248,208,135,62,132,175,126,237,171,248,224,7,63,56,253,255, +215,254,249,107,248,220,223,124,14,219,237,22,191,252,213,47,145,101,185, +152,149,223,30,183,91,19,55,158,57,250,193,15,126,128,207,254,245,103,241, +147,159,252,4,198,152,27,215,246,211,165,73,80,83,15,219,212,122,215,32, +254,183,59,15,239,122,76,66,221,223,135,119,223,93,228,113,243,242,107, +191,112,165,177,103,116,153,40,163,42,68,64,183,126,231,69,223,73,172,47, +95,235,117,57,183,237,190,237,30,31,49,143,47,252,1,98,174,147,219,80,42, +102,27,60,42,86,149,57,6,139,28,185,229,54,225,163,131,31,201,107,228,156, +187,102,11,211,27,144,34,104,149,128,97,199,72,66,137,55,227,169,21,224, +2,81,225,69,126,206,22,182,61,160,62,118,160,85,137,108,93,64,143,68,49, +219,29,112,222,31,129,100,141,84,27,180,77,7,202,214,72,208,162,183,9,210, +124,5,106,159,163,110,24,73,121,135,124,181,2,161,66,243,252,1,70,111,144, +37,22,109,117,6,86,247,88,149,37,18,229,131,27,220,159,81,239,247,48,170, +64,182,222,32,77,21,216,156,209,236,79,224,108,131,44,207,96,207,191,30, +238,191,190,67,86,172,160,184,66,243,112,128,77,54,72,87,10,230,180,116, +125,137,172,40,135,119,177,102,8,18,90,66,186,222,33,91,229,131,92,172, +247,252,45,210,148,230,235,211,53,210,156,208,31,15,87,239,159,40,30,231, +175,29,231,111,61,60,19,12,54,53,154,195,115,116,70,35,89,109,144,102,26, +48,53,218,170,1,146,113,174,237,25,245,225,109,116,92,34,223,108,145,38, +9,148,126,220,54,225,190,199,121,255,20,251,78,163,220,236,176,41,50,39, +48,116,214,143,181,232,207,207,241,171,231,45,210,187,59,220,149,5,82,197, +176,253,25,207,127,189,71,167,87,88,111,74,172,52,96,218,19,30,30,42,80, +121,143,251,93,129,148,123,116,189,5,211,32,17,107,234,3,222,62,89,172, +118,59,236,138,4,253,225,25,158,30,122,100,219,29,182,229,10,9,181,56,62, +219,163,85,107,108,119,27,100,170,197,241,217,83,156,120,141,221,221,14, +101,174,22,144,37,139,246,240,20,79,79,140,245,221,61,118,235,12,202,73, +45,216,90,24,51,10,21,41,21,54,8,188,98,124,30,191,241,227,74,50,123,6, +229,123,223,251,30,94,255,240,235,248,230,183,190,137,143,125,252,99,239, +226,254,195,159,31,253,232,199,120,237,247,255,0,31,121,253,35,248,206, +119,191,243,184,247,16,9,180,180,88,184,123,103,134,247,69,231,106,62,255, +205,116,125,44,47,246,173,164,54,223,215,137,81,215,95,252,138,166,3,189, +91,111,117,229,57,47,124,79,17,212,190,254,189,110,200,0,63,26,110,89,210, +117,95,6,189,95,108,237,132,233,50,189,147,192,231,17,223,19,8,104,133, +75,223,228,157,127,179,100,218,134,202,185,253,232,108,231,108,221,161, +164,45,68,77,75,142,123,130,54,110,161,67,97,224,96,45,76,123,66,91,215, +176,73,137,162,88,57,206,253,60,100,222,233,6,105,166,96,218,14,42,219, +32,77,44,76,103,161,210,12,202,86,67,230,91,62,193,106,157,128,108,139, +174,106,193,200,145,102,10,182,57,131,147,53,86,235,2,137,71,82,183,224, +190,70,91,85,176,84,32,47,119,72,18,6,183,39,180,213,25,134,86,200,243, +4,220,30,208,25,133,164,188,199,170,72,65,182,65,91,53,176,106,133,116, +165,193,205,121,168,167,111,118,72,52,192,237,9,93,117,134,165,28,89,49, +100,219,108,123,152,238,136,182,55,80,249,61,178,60,135,130,5,119,151,231, +15,215,167,154,135,76,189,170,96,40,71,150,107,216,250,60,253,60,81,193, +248,138,53,52,217,145,161,95,195,38,107,20,197,26,122,212,5,103,83,163, +61,237,209,156,43,88,149,192,246,13,90,34,232,172,64,178,186,71,150,15, +14,140,71,221,122,219,29,81,63,52,232,139,29,86,229,26,90,209,66,109,115, +164,116,153,30,245,121,143,170,3,86,155,123,108,214,201,232,16,133,18,76, +123,198,241,220,130,211,2,155,117,142,132,24,182,171,112,220,31,176,63, +213,64,210,163,173,142,19,78,165,179,53,118,235,12,212,157,177,63,30,113, +28,75,9,3,212,166,144,149,247,216,140,243,115,108,45,146,242,14,247,219, +2,137,26,24,239,155,251,151,135,18,8,119,168,78,71,84,157,66,182,43,81, +100,74,222,154,214,162,175,79,56,214,61,84,190,69,89,164,163,134,186,115, +58,64,233,113,13,133,242,35,11,155,51,146,71,126,132,19,19,68,119,92,251, +245,149,47,127,5,95,250,210,151,222,165,115,31,174,249,197,47,126,129,191, +250,204,95,130,136,240,201,79,125,114,193,40,243,18,54,15,95,69,86,210, +203,142,165,104,110,27,70,126,132,3,9,69,72,124,77,3,90,146,242,92,124, +178,219,22,139,23,52,228,220,168,70,144,14,166,133,103,209,181,81,72,210, +204,143,145,158,22,68,88,110,72,36,49,110,200,29,191,131,224,70,210,67, +88,126,119,190,17,72,221,144,121,186,137,36,220,88,171,87,254,47,86,145, +15,122,49,71,239,195,87,214,229,194,123,82,248,204,152,3,224,203,199,98, +113,13,45,213,224,71,7,31,116,133,103,192,142,10,82,131,115,247,29,175, +39,41,187,120,88,129,23,107,135,88,220,150,236,157,151,180,221,25,77,117, +2,235,53,86,69,49,56,21,182,48,237,17,93,211,128,117,129,148,24,182,171, +129,164,64,138,129,196,69,105,9,101,59,116,61,160,139,59,100,121,2,116, +21,218,186,70,111,21,146,117,1,116,71,180,61,33,221,172,161,149,154,178, +176,65,133,172,65,123,62,162,51,9,178,178,132,86,102,128,207,207,21,88, +175,145,175,51,160,173,208,181,60,220,63,203,64,166,70,91,159,208,219,20, +105,161,193,205,17,125,159,32,41,75,36,100,96,170,35,154,203,245,229,102, +112,54,220,195,52,7,116,77,11,149,223,33,201,50,16,44,96,26,116,238,243, +105,120,126,115,174,193,122,133,172,72,193,245,9,93,175,145,150,27,104, +50,48,181,123,255,1,141,24,74,1,231,113,254,214,211,252,177,109,209,157, +15,104,77,130,252,201,123,145,166,233,108,248,212,160,10,56,213,123,146, +53,242,93,6,93,31,208,212,173,83,4,27,191,133,25,136,114,74,107,104,117, +233,141,108,209,53,103,28,79,53,56,191,195,54,79,38,135,120,33,7,77,229, +159,190,193,249,88,161,226,12,155,221,26,153,38,192,118,168,207,39,156, +26,194,246,61,191,129,205,202,205,150,9,68,22,109,181,199,179,99,7,157, +151,120,242,158,39,208,125,133,211,169,70,171,86,216,109,86,80,166,193, +161,170,97,245,122,200,220,39,116,70,67,167,106,24,99,93,225,116,110,65, +197,14,155,85,2,49,102,97,70,223,158,113,170,26,152,116,131,187,77,129, +212,65,33,76,111,96,152,157,114,3,71,68,43,177,250,74,36,56,31,44,107,73, +35,142,246,195,29,245,195,31,255,112,225,121,177,185,138,69,142,231,251, +244,189,193,43,191,245,10,94,122,233,37,124,227,223,190,129,215,94,123, +109,209,40,147,192,206,151,205,49,71,53,88,190,233,108,121,49,231,151,21, +229,102,251,19,72,127,4,132,165,107,230,208,181,68,20,141,52,20,15,241, +198,17,48,168,252,57,95,86,23,139,255,207,209,230,160,23,73,169,89,120, +47,217,86,243,53,7,20,173,37,186,241,187,225,76,209,35,156,43,221,128,39, +194,147,238,124,195,147,176,176,254,37,231,203,139,193,92,188,54,111,5, +34,115,32,203,140,171,153,124,28,120,177,48,10,105,68,143,9,6,89,176,13, +140,36,156,68,134,5,17,65,43,90,200,202,57,250,240,36,108,131,229,107,194, +79,20,107,251,178,105,208,53,71,24,171,145,230,233,220,60,164,61,163,171, +27,176,30,96,108,219,182,64,90,12,217,106,219,131,146,124,168,43,183,3, +187,92,39,128,169,31,208,181,29,160,215,200,202,17,70,63,117,96,78,199, +108,189,65,207,6,108,20,84,162,192,221,25,93,215,3,217,10,224,22,237,97, +116,110,233,6,69,145,1,125,133,182,177,80,171,13,178,85,62,214,233,247, +232,56,27,224,117,115,26,152,254,89,1,197,61,154,253,3,154,166,3,210,18, +197,122,131,36,77,64,100,97,155,51,186,234,12,163,10,164,164,192,93,11, +78,104,32,180,77,207,239,208,238,15,104,154,6,72,183,40,214,107,232,233, +254,43,16,119,104,15,15,104,235,30,156,150,40,214,91,36,233,0,181,119,205, +25,198,42,164,121,54,204,159,181,195,115,187,10,93,219,131,146,213,120, +42,130,1,82,32,165,65,176,3,219,159,231,140,199,246,45,172,49,80,233,26, +217,170,24,2,34,54,104,206,123,60,127,126,66,167,86,216,221,223,205,78, +210,246,232,155,10,157,177,208,196,3,145,145,213,36,53,202,108,70,190,71, +143,230,124,196,169,233,161,215,5,178,84,141,100,187,30,77,211,195,34,65, +162,245,124,4,71,41,40,69,232,155,10,231,99,141,30,57,86,121,2,101,42,236, +247,39,52,156,97,123,95,96,165,123,156,79,21,26,78,80,150,5,86,169,66,120, +62,151,77,63,4,124,156,98,157,231,72,53,69,38,159,216,162,173,43,28,143, +195,59,150,101,57,222,11,0,12,186,234,136,135,183,15,168,145,97,123,127, +135,77,145,13,8,9,32,52,232,92,86,49,19,101,229,37,121,201,48,139,37,71, +118,52,112,157,34,139,215,203,180,56,34,124,93,242,233,36,209,94,93,58, +206,9,253,70,81,8,100,79,73,120,222,178,155,163,169,185,232,45,129,77,142, +70,26,187,250,199,101,99,129,179,118,250,248,94,119,202,190,49,245,149, +223,194,209,33,24,97,124,191,80,21,62,122,42,93,11,12,104,209,57,147,16, +140,144,211,253,127,185,155,197,173,57,12,113,41,94,180,239,36,174,143, +112,101,196,146,212,87,213,32,189,67,145,18,66,17,235,162,75,33,218,242, +222,88,70,18,98,151,43,195,247,20,16,26,131,22,59,11,168,10,5,79,229,133, +145,46,125,37,94,192,179,56,204,224,135,14,106,198,24,40,82,67,67,155,69, +168,37,142,112,228,152,42,140,217,201,81,203,137,51,151,169,27,18,155,129, +116,215,85,104,77,139,62,223,32,91,165,224,166,5,84,129,36,37,216,186,5, +146,28,73,2,116,141,129,74,139,193,121,159,207,232,13,3,93,141,174,210, +208,249,6,89,241,4,73,150,64,1,176,54,129,214,26,125,223,160,59,60,69,167, +82,36,83,237,219,194,52,22,196,29,250,250,136,142,75,40,210,72,139,13,146, +124,3,141,10,77,55,59,119,226,30,125,115,70,207,249,112,156,46,33,152,206, +2,232,97,235,7,212,166,132,134,134,202,211,225,231,105,50,58,91,3,211,214, +48,93,7,3,128,146,20,249,106,13,165,44,108,195,227,243,247,104,204,26,9, +8,58,47,145,20,27,164,137,130,233,12,152,59,152,122,143,150,55,208,148, +34,41,114,232,213,64,218,35,48,44,155,225,152,94,215,163,49,29,186,124, +131,85,177,69,146,96,108,84,196,176,205,3,170,102,15,144,134,46,118,88, +21,5,148,173,208,156,15,232,218,177,219,23,41,168,164,64,90,236,80,228, +249,184,38,44,108,95,163,58,215,104,141,194,106,83,32,207,244,124,6,159, +20,116,146,34,81,29,234,195,219,248,213,129,160,211,2,155,221,6,101,174, +209,157,246,216,31,207,104,141,133,181,195,153,114,61,162,69,187,114,13, +173,244,224,216,155,26,15,79,43,236,73,65,37,43,108,118,59,108,86,26,220, +247,195,177,196,174,199,254,89,141,44,211,48,42,67,89,150,40,115,13,211, +86,168,141,70,81,148,88,143,227,242,156,42,15,205,140,218,166,129,85,91, +36,137,26,17,6,87,180,193,162,173,143,216,31,26,112,90,98,91,22,200,83, +61,247,63,55,6,237,249,132,115,221,128,54,155,129,155,16,108,83,242,58, +37,82,100,166,220,6,21,177,190,120,104,192,174,101,184,114,48,193,81,134, +29,74,6,19,2,77,182,133,124,146,61,34,27,187,157,67,46,215,51,5,217,179, +148,183,200,48,46,9,70,14,145,97,116,223,142,189,16,69,206,167,120,49,219, +34,47,188,241,53,211,249,162,216,199,161,123,89,154,39,18,114,166,248,75, +132,129,81,184,14,66,166,2,45,216,209,248,173,195,251,198,130,179,16,220, +52,7,97,167,255,152,216,225,242,34,50,16,235,104,128,133,213,203,20,188, +47,9,14,92,66,132,150,179,90,207,125,122,65,154,92,144,241,223,135,197, +0,70,60,92,72,115,183,206,216,85,179,39,226,136,5,60,195,15,50,195,245, +226,23,170,88,224,240,203,136,32,9,161,11,199,171,253,66,178,155,134,100, +237,80,15,39,92,93,110,16,193,45,10,228,17,57,88,52,75,155,207,107,166, +10,134,25,206,176,79,53,78,5,77,4,107,236,8,35,91,88,195,32,173,161,96, +96,12,96,251,35,218,243,25,54,217,98,85,100,19,147,95,81,50,179,250,49, +100,61,102,60,195,125,153,4,173,147,137,96,104,237,216,246,117,172,173, +18,12,128,209,81,112,15,203,10,164,212,172,188,102,12,152,198,159,143,206, +123,184,126,100,154,179,1,227,114,141,179,144,76,143,233,84,160,78,38,39, +195,182,31,142,35,2,128,74,134,86,182,24,200,91,67,247,179,14,176,128,5, +131,84,10,226,30,76,122,236,178,119,33,59,89,240,120,180,113,26,7,233,49, +146,30,207,198,187,34,15,23,70,60,155,225,180,131,187,221,40,25,224,125, +183,245,38,27,244,189,1,160,160,18,61,194,219,115,216,198,214,192,24,235, +44,60,130,78,244,16,96,77,239,237,47,201,1,230,87,3,199,194,12,208,247, +252,71,67,39,106,228,5,244,24,200,205,60,206,11,96,121,80,54,84,227,252, +24,171,161,53,77,65,71,184,209,251,106,143,103,79,31,208,231,119,120,249, +165,45,114,173,38,126,0,163,71,125,60,226,84,181,160,213,22,119,229,10, +137,118,14,50,141,188,129,135,183,159,225,96,114,108,159,188,140,251,34, +153,228,104,125,53,48,200,142,218,209,239,36,193,69,199,59,132,132,45,77, +209,191,151,242,17,79,111,62,60,48,21,8,209,44,230,190,139,229,92,57,203, +142,195,152,176,117,10,166,62,23,180,144,3,46,151,4,102,94,207,164,109, +238,26,105,242,155,100,121,153,145,15,56,8,89,105,152,99,186,110,208,57, +77,238,9,125,80,160,77,63,21,80,189,46,142,236,102,178,116,17,207,9,195, +29,158,100,107,103,101,198,184,46,237,185,94,71,0,60,234,230,185,176,162, +16,133,124,18,164,44,128,254,162,51,93,2,240,131,154,51,59,42,238,228,28, +201,142,2,142,27,223,221,235,102,183,68,170,195,34,68,79,87,19,81,4,95, +60,196,66,130,164,148,252,243,239,124,99,79,64,228,134,196,95,151,197,240, +140,31,201,90,112,188,105,111,205,224,215,71,167,170,181,2,105,237,203, +143,78,223,135,167,94,186,78,23,20,207,161,75,147,131,209,192,76,45,101, +153,133,248,205,95,64,23,189,241,176,21,210,28,97,143,211,205,22,166,171, +208,156,246,48,122,128,177,147,68,137,197,0,57,98,12,90,168,146,47,95,234, +29,118,112,162,123,239,51,18,251,114,202,98,238,69,82,101,208,233,34,232, +235,151,243,66,132,40,45,206,168,97,36,193,217,60,215,107,96,145,121,115, +100,156,132,120,112,170,55,122,198,41,56,0,202,11,249,143,39,251,57,173, +7,63,3,12,141,254,53,166,7,196,106,90,12,2,250,254,132,209,55,39,60,60, +223,163,165,53,238,159,220,161,200,134,241,155,174,70,125,58,225,108,20, +138,245,6,69,145,34,25,199,72,204,176,166,71,211,214,56,31,78,104,57,69, +185,219,162,44,134,114,17,5,173,68,56,2,230,151,90,246,114,180,62,56,50, +122,49,155,133,61,136,30,113,118,236,180,69,37,142,75,3,215,86,40,7,64, +248,101,15,15,45,83,157,253,238,234,136,6,159,193,223,71,142,204,50,7,173, +74,131,238,137,225,24,41,64,35,110,25,103,247,166,180,64,151,155,147,179, +165,220,40,14,22,98,74,32,139,8,69,156,123,93,227,19,196,99,247,199,36, +3,210,145,163,241,244,36,252,0,65,94,147,136,66,10,247,217,238,253,165, +150,183,8,132,180,217,209,172,247,72,123,76,65,113,7,81,121,5,139,108,4, +136,220,17,90,216,55,130,215,241,122,235,46,1,251,145,204,184,228,220,39, +159,116,61,244,144,240,170,48,91,151,202,116,183,201,146,215,168,129,126, +253,62,156,239,137,69,175,160,64,154,134,108,55,226,3,185,58,222,190,101, +157,23,17,59,4,67,175,47,222,212,248,130,189,205,237,71,249,23,232,239, +226,252,167,222,232,1,124,197,236,187,17,54,45,250,166,5,116,57,16,204, +52,9,75,200,175,95,185,153,75,84,47,114,53,220,71,71,38,1,62,228,158,14, +96,114,160,51,103,193,93,50,39,143,4,203,2,139,1,142,241,68,52,62,102,56, +112,46,203,108,109,114,228,52,89,98,54,208,36,45,11,56,247,118,191,197, +197,241,58,70,194,211,62,134,195,132,119,71,194,66,165,57,52,254,142,67, +34,167,5,101,84,223,227,229,250,148,219,22,147,35,210,149,179,97,46,229, +2,246,171,113,147,33,83,26,105,146,2,58,193,32,167,206,176,125,131,186, +106,96,40,199,246,110,61,64,242,78,61,190,171,79,56,30,78,56,27,141,245, +122,139,151,203,53,146,132,196,241,196,2,197,66,73,202,17,140,240,75,217, +50,137,107,126,183,203,62,161,32,99,35,63,151,188,160,36,28,114,2,56,200, +77,67,186,28,11,161,133,227,64,220,251,185,123,127,250,126,142,28,102,144, +145,132,129,243,12,223,134,74,18,44,211,230,92,36,98,204,134,195,96,150, +156,20,221,13,13,200,113,130,51,90,3,49,15,244,251,139,115,240,45,67,177, +41,55,91,71,148,237,97,33,148,166,192,14,114,20,248,187,154,225,179,236, +50,5,206,204,147,213,118,71,237,197,28,18,68,19,4,62,28,187,114,30,91,132, +187,122,35,228,74,178,94,202,11,76,49,215,132,253,246,172,112,236,27,59, +226,57,20,4,190,28,172,214,80,162,91,178,14,236,136,216,78,171,205,147, +154,69,80,18,99,33,144,32,31,255,152,51,145,40,32,112,91,187,19,147,64, +232,243,75,58,190,72,182,187,183,88,60,78,225,135,236,82,129,72,230,70, +80,128,148,0,4,234,76,207,118,108,232,160,181,114,142,171,209,162,121,242, +29,86,92,19,112,51,117,4,224,21,145,239,176,66,194,128,36,45,16,102,170, +222,198,100,6,179,29,217,223,36,68,235,228,137,35,184,144,222,148,73,134, +207,116,144,138,105,9,93,80,8,33,154,141,128,58,154,69,120,132,184,50,48, +29,193,239,209,172,39,239,106,80,243,2,236,228,26,254,105,163,5,209,123, +200,133,146,243,57,31,66,165,41,75,95,250,14,33,89,9,83,235,204,208,177, +17,249,210,76,75,228,34,127,222,252,172,38,142,219,67,164,35,52,199,75, +209,52,15,37,20,203,67,217,100,60,30,106,173,29,131,49,5,165,130,124,153, +45,44,91,24,59,52,127,212,122,252,29,166,120,30,105,86,209,138,75,79,215, +14,232,196,25,33,69,154,97,28,65,211,62,92,205,87,57,218,147,161,189,137, +133,208,13,148,41,52,64,113,189,150,34,50,28,28,244,103,169,24,16,160,106, +190,56,226,132,160,77,207,34,71,32,137,131,10,111,88,21,137,102,17,18,3, +72,204,145,229,98,3,34,88,94,6,143,73,220,179,33,235,221,219,147,228,7, +205,97,23,253,89,220,139,35,255,29,127,61,199,50,145,11,211,205,45,129, +225,6,198,44,161,77,236,101,234,209,14,30,191,41,57,129,23,95,225,69,144, +200,95,119,203,18,174,253,145,48,131,112,230,98,212,11,8,81,38,71,37,142, +3,185,26,239,89,36,228,195,145,117,92,96,173,59,215,45,2,75,60,33,209,204, +210,186,195,213,118,239,97,18,237,133,117,78,217,104,10,144,58,211,51,152, +199,58,181,127,3,158,156,227,194,145,129,48,66,116,68,16,176,224,224,17, +209,73,100,34,10,137,238,30,66,53,47,16,76,89,164,85,144,0,143,135,27,56, +40,39,176,219,247,216,37,91,56,139,253,18,60,44,44,137,208,28,0,81,171, +18,1,196,150,106,76,36,28,168,240,163,191,208,204,122,40,197,148,49,6,155, +194,85,134,98,68,238,136,23,137,81,44,64,80,98,129,65,172,194,114,116,47, +68,17,52,79,173,33,121,250,206,4,63,208,138,114,66,207,72,121,246,204,153, +35,94,60,219,17,162,55,228,213,109,151,143,104,121,43,55,144,223,10,221, +92,104,168,163,150,148,188,172,162,5,1,218,22,3,70,7,90,158,3,91,233,240, +87,128,110,17,196,223,245,215,140,83,170,11,93,189,195,193,89,166,8,198, +107,26,81,169,130,133,239,187,84,238,8,255,46,172,84,162,88,248,132,31, +119,116,151,252,186,131,48,22,201,58,74,65,79,12,216,138,124,118,130,87, +174,187,12,116,114,162,206,126,112,81,9,47,9,241,210,120,4,33,137,148,173, +35,154,77,151,196,54,217,242,11,114,34,96,64,17,148,239,17,232,121,153, +55,65,240,145,83,39,131,102,14,2,63,167,118,31,178,58,88,2,172,29,135,206, +78,114,202,97,111,22,183,69,69,240,12,4,239,42,85,202,65,97,192,143,133, +178,70,80,94,139,202,8,114,96,39,133,154,82,167,188,176,244,76,117,83,179, +214,195,49,41,41,186,148,176,125,224,154,120,1,11,249,170,99,36,253,179, +4,126,141,207,37,230,194,93,168,16,39,110,134,73,226,170,213,82,37,116, +174,79,197,177,36,93,93,236,30,234,227,31,119,188,222,55,65,116,146,136, +156,161,252,57,165,242,12,59,181,85,150,74,41,238,198,189,212,214,156,58, +217,114,117,45,144,221,245,154,211,144,167,130,20,73,70,114,92,243,194, +194,1,24,68,53,50,33,108,16,2,18,185,138,117,245,9,158,17,244,144,40,7, +229,240,220,11,145,60,143,145,115,229,152,172,20,5,188,51,75,91,234,15, +21,58,118,47,107,35,138,200,111,51,108,138,185,244,227,193,171,210,113, +48,138,158,65,30,17,109,201,65,146,244,230,87,254,21,103,122,226,106,246, +144,33,14,50,45,146,119,131,187,151,60,90,0,199,4,94,162,171,253,125,216, +225,36,72,89,221,236,192,220,231,177,64,130,36,129,115,18,246,91,119,50, +82,23,221,228,235,1,140,183,27,221,182,136,44,153,255,101,58,89,184,99, +226,134,240,242,41,113,186,209,16,142,133,90,53,147,91,222,148,229,83,69, +30,13,73,189,211,164,224,135,175,210,211,68,73,89,49,219,149,172,45,95, +245,104,16,136,116,228,34,72,81,82,202,14,226,5,79,218,87,34,180,202,169, +138,20,52,113,148,0,202,179,61,207,159,26,154,116,104,72,39,110,153,200, +171,151,120,6,149,226,19,172,174,176,140,43,207,55,188,168,179,145,198, +15,234,202,175,210,40,185,26,213,33,166,117,73,145,236,30,156,250,190,43, +4,40,107,105,185,36,61,10,186,247,243,108,124,132,60,43,132,145,189,240, +133,98,1,132,129,56,198,81,228,78,78,205,105,178,67,68,66,46,60,223,135, +41,46,87,72,226,109,96,118,164,112,221,149,9,15,231,140,207,217,178,23, +248,248,130,196,152,107,189,222,251,56,1,18,251,141,217,100,248,126,169, +59,155,195,213,32,95,252,147,153,133,218,37,121,120,243,98,191,41,79,244, +138,188,147,226,83,37,204,149,128,244,158,43,237,4,247,160,27,198,245,75, +177,242,83,16,64,77,53,118,230,229,134,153,228,187,98,130,95,251,35,129, +230,120,201,228,220,26,248,172,179,237,94,69,17,91,94,42,203,186,157,38, +217,225,206,248,217,152,227,196,220,118,180,68,241,153,122,118,223,137, +1,207,82,80,148,231,226,210,36,36,56,231,207,196,227,126,157,165,86,189, +26,52,135,220,1,10,196,67,216,27,148,119,100,235,34,221,76,243,247,196, +196,219,8,78,139,185,252,7,33,124,157,102,155,128,101,57,22,138,230,143, +225,75,188,18,113,196,195,230,48,37,142,20,215,226,205,71,162,95,38,175, +143,249,180,151,29,59,48,57,39,142,15,5,50,187,49,66,40,143,67,147,77,15, +139,78,242,193,55,135,67,37,247,68,11,89,14,243,252,145,163,48,23,164,116, +28,210,77,121,254,48,236,128,206,240,106,253,206,254,112,230,145,131,40, +136,4,196,99,70,78,102,135,231,134,17,20,240,212,16,201,239,186,102,218, +41,185,76,31,146,230,32,211,217,107,110,72,192,36,183,236,165,137,91,7, +183,113,125,72,56,225,217,15,186,155,139,200,23,174,141,122,24,93,68,106, +130,166,248,76,2,97,142,156,9,247,207,3,114,152,228,129,34,121,192,107, +25,139,116,246,112,58,198,36,213,43,153,124,242,74,216,253,202,133,196, +156,205,68,228,47,138,75,63,127,10,204,246,36,11,9,242,86,60,73,99,38,242, +169,35,228,42,73,249,198,205,11,31,36,197,34,10,50,38,167,78,204,228,196, +137,76,62,51,87,0,82,231,250,167,251,93,157,211,220,145,172,40,121,11,60, +82,183,242,82,37,44,212,216,131,184,244,178,182,188,224,19,62,14,47,217, +134,160,186,20,162,18,83,208,233,142,241,114,252,81,32,162,137,65,177,163, +103,233,238,171,216,192,204,40,72,232,46,216,193,234,89,48,153,36,148,117, +46,1,116,120,114,217,117,24,94,216,75,113,102,6,183,156,65,243,254,119, +75,65,174,47,113,203,0,20,126,207,57,20,244,230,133,3,71,232,75,79,251, +37,39,98,26,247,43,77,217,80,196,251,115,36,69,125,101,54,31,106,99,73, +190,12,177,109,156,114,195,64,219,61,74,30,200,167,125,122,43,55,88,211, +190,54,129,143,40,121,247,191,36,30,206,122,157,27,228,205,14,211,215,17, +119,16,54,209,145,198,28,32,98,31,210,185,144,233,252,189,233,80,69,233, +18,124,96,169,185,162,227,28,221,82,149,159,91,134,239,75,193,15,152,17, +173,240,201,117,147,139,198,185,25,53,195,111,151,230,243,82,162,166,118, +211,207,40,74,170,136,103,4,143,224,59,87,241,52,4,95,186,119,134,156,180, +32,210,162,185,228,40,57,119,120,254,49,216,150,209,177,206,32,0,226,25, +29,136,152,23,4,252,63,105,180,241,158,33,239,229,252,0,0,0,0,73,69,78, +68,174,66,96,130}; + +static size_t xml_res_size_2 = 322; +static unsigned char xml_res_file_2[] = { +60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, +110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, +115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, +47,47,119,119,119,46,119,120,119,105,100,103,101,116,115,46,111,114,103, +47,119,120,120,114,99,34,62,10,32,32,60,111,98,106,101,99,116,32,99,108, +97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61, +34,112,97,121,112,97,108,34,62,65,98,111,117,116,68,108,103,95,98,105,116, +109,97,112,115,46,99,112,112,36,46,46,95,99,111,100,101,108,105,116,101, +45,105,99,111,110,115,95,97,98,111,117,116,95,51,50,95,112,97,121,112,97, +108,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106, +101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34, +32,110,97,109,101,61,34,115,112,108,97,115,104,115,99,114,101,101,110,34, +62,65,98,111,117,116,68,108,103,95,98,105,116,109,97,112,115,46,99,112, +112,36,46,46,95,82,117,110,116,105,109,101,95,105,109,97,103,101,115,95, +115,112,108,97,115,104,115,99,114,101,101,110,46,112,110,103,60,47,111, +98,106,101,99,116,62,10,60,47,114,101,115,111,117,114,99,101,62,10}; + +void wxC3415InitBitmapResources() +{ + + // Check for memory FS. If not present, load the handler: + { + wxMemoryFSHandler::AddFile(wxT("XRC_resource/dummy_file"), wxT("dummy one")); + wxFileSystem fsys; + wxFSFile *f = fsys.OpenFile(wxT("memory:XRC_resource/dummy_file")); + wxMemoryFSHandler::RemoveFile(wxT("XRC_resource/dummy_file")); + if (f) delete f; + else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase); + } + + XRC_ADD_FILE(wxT("XRC_resource/AboutDlg_bitmaps.cpp$.._codelite-icons_about_32_paypal.png"), xml_res_file_0, xml_res_size_0, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/AboutDlg_bitmaps.cpp$.._Runtime_images_splashscreen.png"), xml_res_file_1, xml_res_size_1, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/AboutDlg_bitmaps.cpp$C__src_codelite_LiteEditor_AboutDlg_bitmaps.xrc"), xml_res_file_2, xml_res_size_2, wxT("text/xml")); + wxXmlResource::Get()->Load(wxT("memory:XRC_resource/AboutDlg_bitmaps.cpp$C__src_codelite_LiteEditor_AboutDlg_bitmaps.xrc")); +} diff -Nru codelite-8.0.1+dfsg2/LiteEditor/aboutdlg.cpp codelite-9.0+dfsg/LiteEditor/aboutdlg.cpp --- codelite-8.0.1+dfsg2/LiteEditor/aboutdlg.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/aboutdlg.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -58,7 +58,8 @@ m_textCtrlLicense->SetEditable(false); } } - CentreOnScreen(); + CentreOnParent(); + GetSizer()->Fit(this); } AboutDlg::~AboutDlg() diff -Nru codelite-8.0.1+dfsg2/LiteEditor/AccelTableBaseDlg.cpp codelite-9.0+dfsg/LiteEditor/AccelTableBaseDlg.cpp --- codelite-8.0.1+dfsg2/LiteEditor/AccelTableBaseDlg.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/AccelTableBaseDlg.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -85,6 +85,8 @@ #if wxVERSION_NUMBER >= 2900 if(!wxPersistenceManager::Get().Find(this)) { wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); } #endif // Connect events diff -Nru codelite-8.0.1+dfsg2/LiteEditor/AccelTableBaseDlg.h codelite-9.0+dfsg/LiteEditor/AccelTableBaseDlg.h --- codelite-8.0.1+dfsg2/LiteEditor/AccelTableBaseDlg.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/AccelTableBaseDlg.h 2015-10-11 13:56:07.000000000 +0000 @@ -4,8 +4,8 @@ // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// -#ifndef ACCELTABLEBASEDLG_BASE_CLASSES_H -#define ACCELTABLEBASEDLG_BASE_CLASSES_H +#ifndef CODELITE_LITEEDITOR_ACCELTABLEBASEDLG_BASE_CLASSES_H +#define CODELITE_LITEEDITOR_ACCELTABLEBASEDLG_BASE_CLASSES_H #include #include diff -Nru codelite-8.0.1+dfsg2/LiteEditor/AccelTableBaseDlg_liteeditor_bitmaps.cpp codelite-9.0+dfsg/LiteEditor/AccelTableBaseDlg_liteeditor_bitmaps.cpp --- codelite-8.0.1+dfsg2/LiteEditor/AccelTableBaseDlg_liteeditor_bitmaps.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/AccelTableBaseDlg_liteeditor_bitmaps.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,47 +1,47 @@ -// -// This file was automatically generated by wxrc, do not edit by hand. -// - -#include - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#include -#include -#include -#include - -#if wxCHECK_VERSION(2,8,5) && wxABI_VERSION >= 20805 - #define XRC_ADD_FILE(name, data, size, mime) \ - wxMemoryFSHandler::AddFileWithMimeType(name, data, size, mime) -#else - #define XRC_ADD_FILE(name, data, size, mime) \ - wxMemoryFSHandler::AddFile(name, data, size) -#endif - -static size_t xml_res_size_0 = 90; -static unsigned char xml_res_file_0[] = { -60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, -110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, -115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, -47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, -47,119,120,120,114,99,34,47,62,10}; - -void wxCFD7DInitBitmapResources() -{ - - // Check for memory FS. If not present, load the handler: - { - wxMemoryFSHandler::AddFile(wxT("XRC_resource/dummy_file"), wxT("dummy one")); - wxFileSystem fsys; - wxFSFile *f = fsys.OpenFile(wxT("memory:XRC_resource/dummy_file")); - wxMemoryFSHandler::RemoveFile(wxT("XRC_resource/dummy_file")); - if (f) delete f; - else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase); - } - - XRC_ADD_FILE(wxT("XRC_resource/AccelTableBaseDlg_liteeditor_bitmaps.cpp$_home_david_devel_git_CL_LiteEditor_AccelTableBaseDlg_liteeditor_bitmaps.xrc"), xml_res_file_0, xml_res_size_0, wxT("text/xml")); - wxXmlResource::Get()->Load(wxT("memory:XRC_resource/AccelTableBaseDlg_liteeditor_bitmaps.cpp$_home_david_devel_git_CL_LiteEditor_AccelTableBaseDlg_liteeditor_bitmaps.xrc")); -} +// +// This file was automatically generated by wxrc, do not edit by hand. +// + +#include + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +#include +#include +#include +#include + +#if wxCHECK_VERSION(2,8,5) && wxABI_VERSION >= 20805 + #define XRC_ADD_FILE(name, data, size, mime) \ + wxMemoryFSHandler::AddFileWithMimeType(name, data, size, mime) +#else + #define XRC_ADD_FILE(name, data, size, mime) \ + wxMemoryFSHandler::AddFile(name, data, size) +#endif + +static size_t xml_res_size_0 = 90; +static unsigned char xml_res_file_0[] = { +60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, +110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, +115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, +47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, +47,119,120,120,114,99,34,47,62,10}; + +void wxCFD7DInitBitmapResources() +{ + + // Check for memory FS. If not present, load the handler: + { + wxMemoryFSHandler::AddFile(wxT("XRC_resource/dummy_file"), wxT("dummy one")); + wxFileSystem fsys; + wxFSFile *f = fsys.OpenFile(wxT("memory:XRC_resource/dummy_file")); + wxMemoryFSHandler::RemoveFile(wxT("XRC_resource/dummy_file")); + if (f) delete f; + else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase); + } + + XRC_ADD_FILE(wxT("XRC_resource/AccelTableBaseDlg_liteeditor_bitmaps.cpp$C__src_codelite_LiteEditor_AccelTableBaseDlg_liteeditor_bitmaps.xrc"), xml_res_file_0, xml_res_size_0, wxT("text/xml")); + wxXmlResource::Get()->Load(wxT("memory:XRC_resource/AccelTableBaseDlg_liteeditor_bitmaps.cpp$C__src_codelite_LiteEditor_AccelTableBaseDlg_liteeditor_bitmaps.xrc")); +} diff -Nru codelite-8.0.1+dfsg2/LiteEditor/addincludefiledlgbase.cpp codelite-9.0+dfsg/LiteEditor/addincludefiledlgbase.cpp --- codelite-8.0.1+dfsg2/LiteEditor/addincludefiledlgbase.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/addincludefiledlgbase.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -177,6 +177,8 @@ #if wxVERSION_NUMBER >= 2900 if(!wxPersistenceManager::Get().Find(this)) { wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); } #endif // Connect events diff -Nru codelite-8.0.1+dfsg2/LiteEditor/addincludefiledlgbase.h codelite-9.0+dfsg/LiteEditor/addincludefiledlgbase.h --- codelite-8.0.1+dfsg2/LiteEditor/addincludefiledlgbase.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/addincludefiledlgbase.h 2015-10-11 13:56:07.000000000 +0000 @@ -4,8 +4,8 @@ // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// -#ifndef ADDINCLUDEFILE_BASE_CLASSES_H -#define ADDINCLUDEFILE_BASE_CLASSES_H +#ifndef CODELITE_LITEEDITOR_ADDINCLUDEFILE_BASE_CLASSES_H +#define CODELITE_LITEEDITOR_ADDINCLUDEFILE_BASE_CLASSES_H #include #include diff -Nru codelite-8.0.1+dfsg2/LiteEditor/addincludefiledlg.cpp codelite-9.0+dfsg/LiteEditor/addincludefiledlg.cpp --- codelite-8.0.1+dfsg2/LiteEditor/addincludefiledlg.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/addincludefiledlg.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -104,7 +104,7 @@ wxString errMsg; wxString projectName = clMainFrame::Get()->GetMainBook()->GetActiveEditor()->GetProject(); - ProjectPtr proj = WorkspaceST::Get()->FindProjectByName(projectName, errMsg); + ProjectPtr proj = clCxxWorkspaceST::Get()->FindProjectByName(projectName, errMsg); if(proj) { wxArrayString incls = proj->GetIncludePaths(); std::sort(incls.begin(), incls.end(), SAscendingSort()); diff -Nru codelite-8.0.1+dfsg2/LiteEditor/AddIncludeFile_liteeditor_bitmaps.cpp codelite-9.0+dfsg/LiteEditor/AddIncludeFile_liteeditor_bitmaps.cpp --- codelite-8.0.1+dfsg2/LiteEditor/AddIncludeFile_liteeditor_bitmaps.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/AddIncludeFile_liteeditor_bitmaps.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,152 +1,151 @@ -// -// This file was automatically generated by wxrc, do not edit by hand. -// - -#include - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#include -#include -#include -#include - -#if wxCHECK_VERSION(2,8,5) && wxABI_VERSION >= 20805 - #define XRC_ADD_FILE(name, data, size, mime) \ - wxMemoryFSHandler::AddFileWithMimeType(name, data, size, mime) -#else - #define XRC_ADD_FILE(name, data, size, mime) \ - wxMemoryFSHandler::AddFile(name, data, size) -#endif - -static size_t xml_res_size_0 = 391; -static unsigned char xml_res_file_0[] = { -137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, -0,31,243,255,97,0,0,0,25,116,69,88,116,83,111,102,116,119,97,114,101,0, -65,100,111,98,101,32,73,109,97,103,101,82,101,97,100,121,113,201,101,60, -0,0,1,41,73,68,65,84,120,218,98,252,255,255,63,3,50,96,100,100,132,179, -221,187,24,192,146,59,203,24,224,130,232,234,193,2,200,24,6,156,218,25, -254,95,126,48,11,140,65,108,156,234,177,25,224,210,193,240,255,244,237, -190,255,115,119,50,128,49,136,13,18,195,102,0,11,3,26,240,234,97,248,223, -16,208,196,112,245,105,17,195,63,86,136,216,213,103,69,12,109,33,205,12, -108,44,181,32,67,24,81,188,140,238,39,143,86,198,179,255,89,25,140,44,85, -25,24,228,69,33,98,143,94,51,48,28,187,13,84,252,155,225,220,142,234,255, -198,132,194,64,13,136,141,65,254,62,243,40,235,255,194,147,12,255,93,32, -97,0,210,168,70,208,11,64,112,11,68,48,1,29,250,231,255,123,6,70,38,32, -155,9,44,126,22,139,90,6,38,6,28,0,228,209,159,255,63,49,252,103,65,243, -52,177,6,128,192,159,255,159,25,24,152,25,240,2,188,46,248,197,240,137, -129,17,100,192,127,114,92,0,212,244,155,17,232,2,22,138,92,64,129,23,64, -38,252,98,250,68,208,5,56,165,65,209,200,200,250,131,129,21,202,38,217, -128,191,223,25,246,46,94,204,224,12,99,227,116,40,158,236,172,4,196,130, -80,246,123,32,190,135,45,59,3,4,24,0,58,206,177,253,3,180,249,115,0,0,0, -0,73,69,78,68,174,66,96,130}; - -static size_t xml_res_size_1 = 697; -static unsigned char xml_res_file_1[] = { -137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, -0,31,243,255,97,0,0,0,6,98,75,71,68,0,255,0,255,0,255,160,189,167,147,0, -0,2,110,73,68,65,84,56,141,101,208,77,79,19,65,24,7,240,255,51,59,187,219, -45,133,182,208,64,5,162,225,70,122,35,192,93,18,15,94,12,39,62,133,49,49, -28,49,16,130,137,223,193,131,55,63,134,23,15,154,120,52,242,162,81,15,130, -82,66,183,165,165,47,59,187,243,242,120,161,4,178,207,101,50,153,249,255, -230,121,134,112,83,251,251,251,98,117,125,253,101,154,168,237,66,20,213, -125,223,247,132,16,55,167,12,165,148,27,37,73,79,72,249,190,86,169,108, -111,108,108,24,0,144,99,96,121,185,241,37,25,141,214,90,173,24,169,74,80, -156,136,32,165,4,179,67,150,101,208,218,10,95,6,213,114,101,234,197,133, -202,54,1,60,186,7,88,230,181,56,190,66,187,117,137,110,175,235,6,253,1, -57,231,8,0,136,8,97,24,242,244,244,44,44,11,42,70,193,195,113,238,22,56, -63,191,196,226,66,29,243,245,121,40,165,68,166,13,51,216,18,59,38,65,30, -17,145,32,66,162,82,116,186,125,228,0,149,170,209,209,241,143,98,20,249, -168,207,213,17,69,17,73,223,247,216,57,88,231,160,146,4,205,139,38,146, -68,163,80,40,36,57,160,56,17,189,243,101,240,56,213,217,210,217,191,139, -18,114,197,0,209,104,114,178,244,43,136,194,79,57,128,72,156,213,106,229, -207,155,207,158,110,197,113,28,28,30,30,46,182,219,253,58,179,35,173,71, -215,71,223,127,186,181,149,149,46,164,220,26,12,134,205,28,96,157,237,36, -74,173,2,64,20,69,166,209,104,252,185,186,26,158,14,135,87,244,251,244, -180,148,40,253,64,4,30,167,42,155,178,218,124,205,1,70,187,142,38,93,30, -239,211,155,85,3,112,214,18,59,67,66,8,78,211,172,106,157,137,115,0,179, -237,24,77,101,34,162,123,2,0,107,5,49,59,146,144,208,198,78,25,235,218, -249,17,82,125,201,146,171,249,207,3,156,179,4,0,94,232,177,209,186,98,153, -242,29,36,194,116,66,139,60,160,1,235,28,17,9,246,216,227,76,103,181,140, -108,30,136,107,181,206,92,179,93,5,128,111,39,39,75,231,167,103,79,180, -206,102,141,113,66,141,70,131,202,100,233,88,8,175,101,44,87,2,214,183, -35,208,221,199,118,246,94,183,22,234,211,147,206,113,232,73,193,218,104, -24,109,200,89,230,110,175,135,153,153,154,137,59,215,253,55,7,187,51,227, -140,184,11,8,230,15,127,155,237,112,48,76,48,24,14,41,12,11,52,51,93,69, -52,81,164,160,80,164,184,221,243,61,193,31,239,102,238,117,0,0,175,118, -15,246,0,60,55,214,213,140,117,2,0,60,65,142,136,123,129,47,223,30,236, -239,238,16,17,143,239,255,7,118,216,77,24,194,230,243,31,0,0,0,0,73,69, -78,68,174,66,96,130}; - -static size_t xml_res_size_2 = 381; -static unsigned char xml_res_file_2[] = { -137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, -0,31,243,255,97,0,0,0,25,116,69,88,116,83,111,102,116,119,97,114,101,0, -65,100,111,98,101,32,73,109,97,103,101,82,101,97,100,121,113,201,101,60, -0,0,1,31,73,68,65,84,120,218,196,147,193,74,195,64,16,134,191,109,173,207, -161,143,80,162,40,241,222,10,42,22,250,16,162,87,47,62,66,81,122,215,183, -80,240,160,15,208,130,104,110,30,133,122,209,131,7,49,224,193,164,100,199, -217,52,74,176,110,148,122,240,135,97,254,204,204,254,252,179,97,141,136, -80,134,49,38,207,155,125,78,199,25,219,142,55,234,156,157,239,211,113,252, -235,124,94,40,199,7,90,135,200,227,211,177,220,222,237,72,91,185,111,190, -134,7,214,194,107,250,76,52,58,65,240,163,86,209,35,201,94,144,57,42,81, -41,144,74,140,249,147,64,54,17,48,50,131,128,41,28,80,255,175,21,156,131, -4,189,68,231,96,150,21,220,111,124,179,113,46,144,89,191,192,148,193,173, -62,131,100,76,184,218,132,56,125,200,157,132,129,94,69,15,153,111,48,212, -207,181,74,7,86,8,247,58,93,90,205,46,162,93,171,225,248,174,214,92,111, -106,213,111,222,66,208,238,113,179,178,12,139,11,147,218,232,30,174,174, -225,242,128,37,157,143,126,18,112,41,88,87,145,176,48,59,28,192,133,30, -86,26,253,250,49,57,145,141,35,196,133,227,190,121,159,131,79,145,34,71, -101,129,50,222,5,24,0,185,32,163,186,0,158,3,95,0,0,0,0,73,69,78,68,174, -66,96,130}; - -static size_t xml_res_size_3 = 504; -static unsigned char xml_res_file_3[] = { -60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, -110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, -115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, -47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, -47,119,120,120,114,99,34,32,118,101,114,115,105,111,110,61,34,50,46,51, -46,48,46,49,34,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, -61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,97,114,114, -111,119,45,117,112,34,62,65,100,100,73,110,99,108,117,100,101,70,105,108, -101,95,108,105,116,101,101,100,105,116,111,114,95,98,105,116,109,97,112, -115,46,99,112,112,36,46,46,95,103,105,116,95,105,99,111,110,115,95,112, -110,103,95,97,114,114,111,119,45,117,112,46,112,110,103,60,47,111,98,106, -101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61, -34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,99,108,101, -97,110,34,62,65,100,100,73,110,99,108,117,100,101,70,105,108,101,95,108, -105,116,101,101,100,105,116,111,114,95,98,105,116,109,97,112,115,46,99, -112,112,36,46,46,95,99,111,100,101,108,105,116,101,45,105,99,111,110,115, -95,116,111,111,108,98,97,114,115,95,49,54,95,98,117,105,108,100,95,99,108, -101,97,110,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111, -98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97, -112,34,32,110,97,109,101,61,34,103,105,116,45,97,114,114,111,119,45,100, -111,119,110,34,62,65,100,100,73,110,99,108,117,100,101,70,105,108,101,95, -108,105,116,101,101,100,105,116,111,114,95,98,105,116,109,97,112,115,46, -99,112,112,36,46,46,95,103,105,116,95,105,99,111,110,115,95,112,110,103, -95,103,105,116,45,97,114,114,111,119,45,100,111,119,110,46,112,110,103, -60,47,111,98,106,101,99,116,62,10,60,47,114,101,115,111,117,114,99,101, -62,10}; - -void wxC10CDInitBitmapResources() -{ - - // Check for memory FS. If not present, load the handler: - { - wxMemoryFSHandler::AddFile(wxT("XRC_resource/dummy_file"), wxT("dummy one")); - wxFileSystem fsys; - wxFSFile *f = fsys.OpenFile(wxT("memory:XRC_resource/dummy_file")); - wxMemoryFSHandler::RemoveFile(wxT("XRC_resource/dummy_file")); - if (f) delete f; - else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase); - } - - XRC_ADD_FILE(wxT("XRC_resource/AddIncludeFile_liteeditor_bitmaps.cpp$.._git_icons_png_arrow-up.png"), xml_res_file_0, xml_res_size_0, wxT("image/x-apple-ios-png")); - XRC_ADD_FILE(wxT("XRC_resource/AddIncludeFile_liteeditor_bitmaps.cpp$.._codelite-icons_toolbars_16_build_clean.png"), xml_res_file_1, xml_res_size_1, wxT("image/x-apple-ios-png")); - XRC_ADD_FILE(wxT("XRC_resource/AddIncludeFile_liteeditor_bitmaps.cpp$.._git_icons_png_git-arrow-down.png"), xml_res_file_2, xml_res_size_2, wxT("image/x-apple-ios-png")); - XRC_ADD_FILE(wxT("XRC_resource/AddIncludeFile_liteeditor_bitmaps.cpp$_home_eran_devl_codelite_LiteEditor_AddIncludeFile_liteeditor_bitmaps.xrc"), xml_res_file_3, xml_res_size_3, wxT("text/xml")); - wxXmlResource::Get()->Load(wxT("memory:XRC_resource/AddIncludeFile_liteeditor_bitmaps.cpp$_home_eran_devl_codelite_LiteEditor_AddIncludeFile_liteeditor_bitmaps.xrc")); -} +// +// This file was automatically generated by wxrc, do not edit by hand. +// + +#include + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +#include +#include +#include +#include + +#if wxCHECK_VERSION(2,8,5) && wxABI_VERSION >= 20805 + #define XRC_ADD_FILE(name, data, size, mime) \ + wxMemoryFSHandler::AddFileWithMimeType(name, data, size, mime) +#else + #define XRC_ADD_FILE(name, data, size, mime) \ + wxMemoryFSHandler::AddFile(name, data, size) +#endif + +static size_t xml_res_size_0 = 391; +static unsigned char xml_res_file_0[] = { +137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, +0,31,243,255,97,0,0,0,25,116,69,88,116,83,111,102,116,119,97,114,101,0, +65,100,111,98,101,32,73,109,97,103,101,82,101,97,100,121,113,201,101,60, +0,0,1,41,73,68,65,84,120,218,98,252,255,255,63,3,50,96,100,100,132,179, +221,187,24,192,146,59,203,24,224,130,232,234,193,2,200,24,6,156,218,25, +254,95,126,48,11,140,65,108,156,234,177,25,224,210,193,240,255,244,237, +190,255,115,119,50,128,49,136,13,18,195,102,0,11,3,26,240,234,97,248,223, +16,208,196,112,245,105,17,195,63,86,136,216,213,103,69,12,109,33,205,12, +108,44,181,32,67,24,81,188,140,238,39,143,86,198,179,255,89,25,140,44,85, +25,24,228,69,33,98,143,94,51,48,28,187,13,84,252,155,225,220,142,234,255, +198,132,194,64,13,136,141,65,254,62,243,40,235,255,194,147,12,255,93,32, +97,0,210,168,70,208,11,64,112,11,68,48,1,29,250,231,255,123,6,70,38,32, +155,9,44,126,22,139,90,6,38,6,28,0,228,209,159,255,63,49,252,103,65,243, +52,177,6,128,192,159,255,159,25,24,152,25,240,2,188,46,248,197,240,137, +129,17,100,192,127,114,92,0,212,244,155,17,232,2,22,138,92,64,129,23,64, +38,252,98,250,68,208,5,56,165,65,209,200,200,250,131,129,21,202,38,217, +128,191,223,25,246,46,94,204,224,12,99,227,116,40,158,236,172,4,196,130, +80,246,123,32,190,135,45,59,3,4,24,0,58,206,177,253,3,180,249,115,0,0,0, +0,73,69,78,68,174,66,96,130}; + +static size_t xml_res_size_1 = 697; +static unsigned char xml_res_file_1[] = { +137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, +0,31,243,255,97,0,0,0,6,98,75,71,68,0,255,0,255,0,255,160,189,167,147,0, +0,2,110,73,68,65,84,56,141,101,208,77,79,19,65,24,7,240,255,51,59,187,219, +45,133,182,208,64,5,162,225,70,122,35,192,93,18,15,94,12,39,62,133,49,49, +28,49,16,130,137,223,193,131,55,63,134,23,15,154,120,52,242,162,81,15,130, +82,66,183,165,165,47,59,187,243,242,120,161,4,178,207,101,50,153,249,255, +230,121,134,112,83,251,251,251,98,117,125,253,101,154,168,237,66,20,213, +125,223,247,132,16,55,167,12,165,148,27,37,73,79,72,249,190,86,169,108, +111,108,108,24,0,144,99,96,121,185,241,37,25,141,214,90,173,24,169,74,80, +156,136,32,165,4,179,67,150,101,208,218,10,95,6,213,114,101,234,197,133, +202,54,1,60,186,7,88,230,181,56,190,66,187,117,137,110,175,235,6,253,1, +57,231,8,0,136,8,97,24,242,244,244,44,44,11,42,70,193,195,113,238,22,56, +63,191,196,226,66,29,243,245,121,40,165,68,166,13,51,216,18,59,38,65,30, +17,145,32,66,162,82,116,186,125,228,0,149,170,209,209,241,143,98,20,249, +168,207,213,17,69,17,73,223,247,216,57,88,231,160,146,4,205,139,38,146, +68,163,80,40,36,57,160,56,17,189,243,101,240,56,213,217,210,217,191,139, +18,114,197,0,209,104,114,178,244,43,136,194,79,57,128,72,156,213,106,229, +207,155,207,158,110,197,113,28,28,30,30,46,182,219,253,58,179,35,173,71, +215,71,223,127,186,181,149,149,46,164,220,26,12,134,205,28,96,157,237,36, +74,173,2,64,20,69,166,209,104,252,185,186,26,158,14,135,87,244,251,244, +180,148,40,253,64,4,30,167,42,155,178,218,124,205,1,70,187,142,38,93,30, +239,211,155,85,3,112,214,18,59,67,66,8,78,211,172,106,157,137,115,0,179, +237,24,77,101,34,162,123,2,0,107,5,49,59,146,144,208,198,78,25,235,218, +249,17,82,125,201,146,171,249,207,3,156,179,4,0,94,232,177,209,186,98,153, +242,29,36,194,116,66,139,60,160,1,235,28,17,9,246,216,227,76,103,181,140, +108,30,136,107,181,206,92,179,93,5,128,111,39,39,75,231,167,103,79,180, +206,102,141,113,66,141,70,131,202,100,233,88,8,175,101,44,87,2,214,183, +35,208,221,199,118,246,94,183,22,234,211,147,206,113,232,73,193,218,104, +24,109,200,89,230,110,175,135,153,153,154,137,59,215,253,55,7,187,51,227, +140,184,11,8,230,15,127,155,237,112,48,76,48,24,14,41,12,11,52,51,93,69, +52,81,164,160,80,164,184,221,243,61,193,31,239,102,238,117,0,0,175,118, +15,246,0,60,55,214,213,140,117,2,0,60,65,142,136,123,129,47,223,30,236, +239,238,16,17,143,239,255,7,118,216,77,24,194,230,243,31,0,0,0,0,73,69, +78,68,174,66,96,130}; + +static size_t xml_res_size_2 = 381; +static unsigned char xml_res_file_2[] = { +137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, +0,31,243,255,97,0,0,0,25,116,69,88,116,83,111,102,116,119,97,114,101,0, +65,100,111,98,101,32,73,109,97,103,101,82,101,97,100,121,113,201,101,60, +0,0,1,31,73,68,65,84,120,218,196,147,193,74,195,64,16,134,191,109,173,207, +161,143,80,162,40,241,222,10,42,22,250,16,162,87,47,62,66,81,122,215,183, +80,240,160,15,208,130,104,110,30,133,122,209,131,7,49,224,193,164,100,199, +217,52,74,176,110,148,122,240,135,97,254,204,204,254,252,179,97,141,136, +80,134,49,38,207,155,125,78,199,25,219,142,55,234,156,157,239,211,113,252, +235,124,94,40,199,7,90,135,200,227,211,177,220,222,237,72,91,185,111,190, +134,7,214,194,107,250,76,52,58,65,240,163,86,209,35,201,94,144,57,42,81, +41,144,74,140,249,147,64,54,17,48,50,131,128,41,28,80,255,175,21,156,131, +4,189,68,231,96,150,21,220,111,124,179,113,46,144,89,191,192,148,193,173, +62,131,100,76,184,218,132,56,125,200,157,132,129,94,69,15,153,111,48,212, +207,181,74,7,86,8,247,58,93,90,205,46,162,93,171,225,248,174,214,92,111, +106,213,111,222,66,208,238,113,179,178,12,139,11,147,218,232,30,174,174, +225,242,128,37,157,143,126,18,112,41,88,87,145,176,48,59,28,192,133,30, +86,26,253,250,49,57,145,141,35,196,133,227,190,121,159,131,79,145,34,71, +101,129,50,222,5,24,0,185,32,163,186,0,158,3,95,0,0,0,0,73,69,78,68,174, +66,96,130}; + +static size_t xml_res_size_3 = 486; +static unsigned char xml_res_file_3[] = { +60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, +110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, +115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, +47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, +47,119,120,120,114,99,34,62,10,32,32,60,111,98,106,101,99,116,32,99,108, +97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61, +34,97,114,114,111,119,45,117,112,34,62,65,100,100,73,110,99,108,117,100, +101,70,105,108,101,95,108,105,116,101,101,100,105,116,111,114,95,98,105, +116,109,97,112,115,46,99,112,112,36,46,46,95,103,105,116,95,105,99,111, +110,115,95,112,110,103,95,97,114,114,111,119,45,117,112,46,112,110,103, +60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99, +108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101, +61,34,99,108,101,97,110,34,62,65,100,100,73,110,99,108,117,100,101,70,105, +108,101,95,108,105,116,101,101,100,105,116,111,114,95,98,105,116,109,97, +112,115,46,99,112,112,36,46,46,95,99,111,100,101,108,105,116,101,45,105, +99,111,110,115,95,116,111,111,108,98,97,114,115,95,49,54,95,98,117,105, +108,100,95,99,108,101,97,110,46,112,110,103,60,47,111,98,106,101,99,116, +62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120, +66,105,116,109,97,112,34,32,110,97,109,101,61,34,103,105,116,45,97,114, +114,111,119,45,100,111,119,110,34,62,65,100,100,73,110,99,108,117,100,101, +70,105,108,101,95,108,105,116,101,101,100,105,116,111,114,95,98,105,116, +109,97,112,115,46,99,112,112,36,46,46,95,103,105,116,95,105,99,111,110, +115,95,112,110,103,95,103,105,116,45,97,114,114,111,119,45,100,111,119, +110,46,112,110,103,60,47,111,98,106,101,99,116,62,10,60,47,114,101,115, +111,117,114,99,101,62,10}; + +void wxC10CDInitBitmapResources() +{ + + // Check for memory FS. If not present, load the handler: + { + wxMemoryFSHandler::AddFile(wxT("XRC_resource/dummy_file"), wxT("dummy one")); + wxFileSystem fsys; + wxFSFile *f = fsys.OpenFile(wxT("memory:XRC_resource/dummy_file")); + wxMemoryFSHandler::RemoveFile(wxT("XRC_resource/dummy_file")); + if (f) delete f; + else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase); + } + + XRC_ADD_FILE(wxT("XRC_resource/AddIncludeFile_liteeditor_bitmaps.cpp$.._git_icons_png_arrow-up.png"), xml_res_file_0, xml_res_size_0, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/AddIncludeFile_liteeditor_bitmaps.cpp$.._codelite-icons_toolbars_16_build_clean.png"), xml_res_file_1, xml_res_size_1, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/AddIncludeFile_liteeditor_bitmaps.cpp$.._git_icons_png_git-arrow-down.png"), xml_res_file_2, xml_res_size_2, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/AddIncludeFile_liteeditor_bitmaps.cpp$C__src_codelite_LiteEditor_AddIncludeFile_liteeditor_bitmaps.xrc"), xml_res_file_3, xml_res_size_3, wxT("text/xml")); + wxXmlResource::Get()->Load(wxT("memory:XRC_resource/AddIncludeFile_liteeditor_bitmaps.cpp$C__src_codelite_LiteEditor_AddIncludeFile_liteeditor_bitmaps.xrc")); +} diff -Nru codelite-8.0.1+dfsg2/LiteEditor/advanced_settings.cpp codelite-9.0+dfsg/LiteEditor/advanced_settings.cpp --- codelite-8.0.1+dfsg2/LiteEditor/advanced_settings.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/advanced_settings.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -58,10 +58,6 @@ : AdvancedDlgBase(parent) , m_rightclickMenu(NULL) { -#ifndef __WXGTK__ - m_notebook->SetArtProvider(new clAuiGlossyTabArt); -#endif - m_compilersMainPanel = new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL); wxBoxSizer* bSizer5; @@ -233,7 +229,7 @@ // mark all the projects as dirty wxArrayString projects; - WorkspaceST::Get()->GetProjectList(projects); + clCxxWorkspaceST::Get()->GetProjectList(projects); for(size_t i = 0; i < projects.size(); i++) { ProjectPtr proj = ManagerST::Get()->GetProject(projects.Item(i)); if(proj) { diff -Nru codelite-8.0.1+dfsg2/LiteEditor/advance_settings_base.cpp codelite-9.0+dfsg/LiteEditor/advance_settings_base.cpp --- codelite-8.0.1+dfsg2/LiteEditor/advance_settings_base.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/advance_settings_base.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -23,10 +23,10 @@ bBitmapLoaded = true; } - wxBoxSizer* mainSizer = new wxBoxSizer(wxVERTICAL); + mainSizer = new wxBoxSizer(wxVERTICAL); this->SetSizer(mainSizer); - m_notebook = new wxAuiNotebook(this, wxID_ANY, wxDefaultPosition, wxSize(250,250), wxAUI_NB_TOP|wxBK_DEFAULT|wxBORDER_NONE); + m_notebook = new Notebook(this, wxID_ANY, wxDefaultPosition, wxSize(500,300), wxBK_DEFAULT); m_notebook->SetName(wxT("m_notebook")); mainSizer->Add(m_notebook, 1, wxALL|wxEXPAND, 5); @@ -46,28 +46,12 @@ m_stdBtnSizer2->AddButton(m_buttonApply); m_stdBtnSizer2->Realize(); - - #if wxVERSION_NUMBER >= 2900 - if(!wxPersistenceManager::Get().Find(m_notebook)){ - wxPersistenceManager::Get().RegisterAndRestore(m_notebook); - } else { - wxPersistenceManager::Get().Restore(m_notebook); - } - #endif - SetName(wxT("AdvancedDlgBase")); SetSizeHints(-1,-1); if ( GetSizer() ) { GetSizer()->Fit(this); } CentreOnParent(); -#if wxVERSION_NUMBER >= 2900 - if(!wxPersistenceManager::Get().Find(this)) { - wxPersistenceManager::Get().RegisterAndRestore(this); - } else { - wxPersistenceManager::Get().Restore(this); - } -#endif // Connect events m_buttonOK->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(AdvancedDlgBase::OnButtonOKClicked), NULL, this); m_buttonApply->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(AdvancedDlgBase::OnApply), NULL, this); diff -Nru codelite-8.0.1+dfsg2/LiteEditor/advance_settings_base.h codelite-9.0+dfsg/LiteEditor/advance_settings_base.h --- codelite-8.0.1+dfsg2/LiteEditor/advance_settings_base.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/advance_settings_base.h 2015-10-11 13:56:07.000000000 +0000 @@ -4,8 +4,8 @@ // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// -#ifndef ADVANCE_SETTINGS_BASE_CLASSES_H -#define ADVANCE_SETTINGS_BASE_CLASSES_H +#ifndef CODELITE_LITEEDITOR_ADVANCE_SETTINGS_BASE_CLASSES_H +#define CODELITE_LITEEDITOR_ADVANCE_SETTINGS_BASE_CLASSES_H #include #include @@ -14,7 +14,8 @@ #include #include #include -#include +#include +#include "Notebook.h" #include #if wxVERSION_NUMBER >= 2900 #include @@ -26,7 +27,8 @@ class AdvancedDlgBase : public wxDialog { protected: - wxAuiNotebook* m_notebook; + wxBoxSizer* mainSizer; + Notebook* m_notebook; wxStdDialogButtonSizer* m_stdBtnSizer2; wxButton* m_buttonCancel; wxButton* m_buttonOK; @@ -38,7 +40,7 @@ virtual void OnApplyUI(wxUpdateUIEvent& event) { event.Skip(); } public: - wxAuiNotebook* GetNotebook() { return m_notebook; } + Notebook* GetNotebook() { return m_notebook; } AdvancedDlgBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Build Settings"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER); virtual ~AdvancedDlgBase(); }; diff -Nru codelite-8.0.1+dfsg2/LiteEditor/advance_settings_liteeditor_bitmaps.cpp codelite-9.0+dfsg/LiteEditor/advance_settings_liteeditor_bitmaps.cpp --- codelite-8.0.1+dfsg2/LiteEditor/advance_settings_liteeditor_bitmaps.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/advance_settings_liteeditor_bitmaps.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -26,7 +26,7 @@ 60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, 110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, 115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, -47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, +47,47,119,119,119,46,119,120,119,105,100,103,101,116,115,46,111,114,103, 47,119,120,120,114,99,34,47,62,10}; void wxCrafterMQKEsvInitBitmapResources() diff -Nru codelite-8.0.1+dfsg2/LiteEditor/advance_settings.wxcp codelite-9.0+dfsg/LiteEditor/advance_settings.wxcp --- codelite-8.0.1+dfsg2/LiteEditor/advance_settings.wxcp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/advance_settings.wxcp 2015-10-11 13:56:07.000000000 +0000 @@ -1,7 +1,7 @@ { "metadata": { "m_generatedFilesDir": ".", - "m_objCounter": 21, + "m_objCounter": 23, "m_includeFiles": [], "m_bitmapFunction": "wxCrafterMQKEsvInitBitmapResources", "m_bitmapsFile": "advance_settings_liteeditor_bitmaps.cpp", @@ -74,7 +74,7 @@ }, { "type": "bool", "m_label": "Enable Window Persistency:", - "m_value": true + "m_value": false }, { "type": "string", "m_label": "Title:", @@ -150,12 +150,12 @@ }], "m_events": [], "m_children": [{ - "m_type": 4456, + "m_type": 4442, "proportion": 1, "border": 5, "gbSpan": "1,1", "gbPosition": "0,0", - "m_styles": ["wxAUI_NB_TOP", "wxBK_DEFAULT", "wxBORDER_NONE"], + "m_styles": ["wxBK_DEFAULT"], "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "winid", @@ -164,7 +164,7 @@ }, { "type": "string", "m_label": "Size:", - "m_value": "250,250" + "m_value": "500,300" }, { "type": "string", "m_label": "Minimum Size:", @@ -204,11 +204,11 @@ }, { "type": "string", "m_label": "Class Name:", - "m_value": "" + "m_value": "Notebook" }, { "type": "string", "m_label": "Include File:", - "m_value": "" + "m_value": "Notebook.h" }, { "type": "string", "m_label": "Style:", diff -Nru codelite-8.0.1+dfsg2/LiteEditor/app.cpp codelite-9.0+dfsg/LiteEditor/app.cpp --- codelite-8.0.1+dfsg2/LiteEditor/app.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/app.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -24,6 +24,7 @@ ////////////////////////////////////////////////////////////////////////////// #include "precompiled_header.h" +#include "autoversion.h" #include "cl_registry.h" #include "file_logger.h" #include "fileextmanager.h" @@ -57,6 +58,7 @@ #include #include "singleinstancethreadjob.h" #include "SocketAPI/clSocketClient.h" +#include //#define __PERFORMANCE #include "performance.h" @@ -64,8 +66,6 @@ ////////////////////////////////////////////// // Define the version string for this codelite ////////////////////////////////////////////// -extern wxChar* clGitRevision; -wxString CODELITE_VERSION_STR = clGitRevision; #if defined(__WXMAC__) || defined(__WXGTK__) #include @@ -329,7 +329,7 @@ #endif #ifdef USE_POSIX_LAYOUT - wxStandardPaths::Get().IgnoreAppSubDir("bin"); + clStandardPaths::Get().IgnoreAppSubDir("bin"); #endif // Init resources and add the PNG handler @@ -341,6 +341,7 @@ wxImage::AddHandler(new wxICOHandler); wxImage::AddHandler(new wxXPMHandler); wxImage::AddHandler(new wxGIFHandler); + wxImage::AddHandler(new wxJPEGHandler); InitXmlResource(); wxLog::EnableLogging(false); @@ -354,6 +355,11 @@ return false; } + wxString newDataDir(wxEmptyString); + if(parser.Found(wxT("d"), &newDataDir)) { + clStandardPaths::Get().SetUserDataDir(newDataDir); + } + // check for single instance if(!IsSingleInstance(parser)) { return false; @@ -368,9 +374,9 @@ if(parser.Found(wxT("v"))) { // print version #ifdef __WXMSW__ - ::wxMessageBox(wxString() << "CodeLite IDE v" << clGitRevision, "CodeLite"); + ::wxMessageBox(wxString() << "CodeLite IDE v" << CODELITE_VERSION_STRING, "CodeLite"); #else - wxPrintf("CodeLite IDE v%s\n", clGitRevision); + wxPrintf("CodeLite IDE v%s\n", CODELITE_VERSION_STRING); #endif return false; } @@ -402,11 +408,6 @@ #endif } - wxString newDataDir(wxEmptyString); - if(parser.Found(wxT("d"), &newDataDir)) { - clStandardPaths::Get().SetUserDataDir(newDataDir); - } - // Set the log file verbosity. NB Doing this earlier seems to break wxGTK debug output when debugging CodeLite // itself :/ FileLogger::OpenLog("codelite.log", clConfig::Get().Read(kConfigLogVerbosity, FileLogger::Error)); @@ -485,7 +486,7 @@ #else //__WXMSW__ if(homeDir.IsEmpty()) { // did we got a basedir from user? #ifdef USE_POSIX_LAYOUT - homeDir = wxStandardPaths::Get().GetDataDir() + wxT(INSTALL_DIR); + homeDir = clStandardPaths::Get().GetDataDir() + wxT(INSTALL_DIR); #else homeDir = ::wxGetCwd(); #endif @@ -559,7 +560,8 @@ cfg->SetInstallDir(mgr->GetInstallDir()); // Update codelite revision and Version - cfg->Init(clGitRevision, wxT("2.0.2")); + wxString strVersion = CODELITE_VERSION_STRING; + cfg->Init(strVersion, wxT("2.0.2")); if(!cfg->Load()) { CL_ERROR(wxT("Failed to load configuration file: %s/config/codelite.xml"), wxGetCwd().c_str()); return false; @@ -573,7 +575,7 @@ wxBitmap bitmap; wxString splashName(clStandardPaths::Get().GetDataDir() + wxT("/images/splashscreen.png")); if(bitmap.LoadFile(splashName, wxBITMAP_TYPE_PNG)) { - wxString mainTitle = CODELITE_VERSION_STR; + wxString mainTitle = CODELITE_VERSION_STRING; clSplashScreen::g_splashScreen = new clSplashScreen(clSplashScreen::CreateSplashScreenBitmap(bitmap), wxSPLASH_CENTRE_ON_SCREEN | wxSPLASH_NO_TIMEOUT, -1, @@ -640,7 +642,7 @@ #elif defined(__WXMSW__) #ifdef USE_POSIX_LAYOUT - wxLocale::AddCatalogLookupPathPrefix(wxStandardPaths::Get().GetDataDir() + wxT("/share/locale")); + wxLocale::AddCatalogLookupPathPrefix(clStandardPaths::Get().GetDataDir() + wxT("/share/locale")); #else wxLocale::AddCatalogLookupPathPrefix(ManagerST::Get()->GetInstallDir() + wxT("\\locale")); #endif @@ -673,7 +675,7 @@ #endif wxString oldpath; wxGetEnv(wxT("PATH"), &oldpath); - wxFileName execfpath(wxStandardPaths::Get().GetExecutablePath()); + wxFileName execfpath(clStandardPaths::Get().GetExecutablePath()); wxSetEnv(wxT("PATH"), oldpath + pathsep + execfpath.GetPath()); wxString newpath; wxGetEnv(wxT("PATH"), &newpath); @@ -776,9 +778,13 @@ { // check for single instance if(clConfig::Get().Read(kConfigSingleInstance, false)) { - const wxString name = wxString::Format(wxT("CodeLite-%s"), wxGetUserId().c_str()); - - m_singleInstance = new wxSingleInstanceChecker(name); + wxString name = wxString::Format(wxT("CodeLite-%s"), wxGetUserId().c_str()); + + wxString path; +#ifndef __WXMSW__ + path = "/tmp"; +#endif + m_singleInstance = new wxSingleInstanceChecker(name, path); if(m_singleInstance->IsAnotherRunning()) { // prepare commands file for the running instance wxArrayString files; @@ -928,10 +934,10 @@ printersInstallDir = wxFileName(wxString(INSTALL_DIR, wxConvUTF8), "gdb_printers"); #else #ifdef USE_POSIX_LAYOUT - wxString commdir(wxStandardPaths::Get().GetDataDir() + wxT(INSTALL_DIR)); + wxString commdir(clStandardPaths::Get().GetDataDir() + wxT(INSTALL_DIR)); printersInstallDir = wxFileName(commdir, "gdb_printers"); #else - printersInstallDir = wxFileName(wxStandardPaths::Get().GetDataDir(), "gdb_printers"); + printersInstallDir = wxFileName(clStandardPaths::Get().GetDataDir(), "gdb_printers"); #endif #endif diff -Nru codelite-8.0.1+dfsg2/LiteEditor/attachdbgprocbasedlg.cpp codelite-9.0+dfsg/LiteEditor/attachdbgprocbasedlg.cpp --- codelite-8.0.1+dfsg2/LiteEditor/attachdbgprocbasedlg.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/attachdbgprocbasedlg.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,118 +1,114 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2014 The CodeLite Team -// file name : attachdbgprocbasedlg.cpp -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - -/////////////////////////////////////////////////////////////////////////// -// C++ code generated with wxFormBuilder (version Sep 8 2010) -// http://www.wxformbuilder.org/ -// -// PLEASE DO "NOT" EDIT THIS FILE! -/////////////////////////////////////////////////////////////////////////// - -#include "attachdbgprocbasedlg.h" - -/////////////////////////////////////////////////////////////////////////// - -AttachDbgProcBaseDlg::AttachDbgProcBaseDlg( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style ) -{ - this->SetSizeHints( wxDefaultSize, wxDefaultSize ); - - wxBoxSizer* bSizer1; - bSizer1 = new wxBoxSizer( wxVERTICAL ); - - wxFlexGridSizer* fgSizer1; - fgSizer1 = new wxFlexGridSizer( 0, 2, 0, 0 ); - fgSizer1->AddGrowableCol( 1 ); - fgSizer1->SetFlexibleDirection( wxBOTH ); - fgSizer1->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); - - m_staticText3 = new wxStaticText( this, wxID_ANY, _("Debugger to use:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText3->Wrap( -1 ); - fgSizer1->Add( m_staticText3, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); - - wxArrayString m_choiceDebuggerChoices; - m_choiceDebugger = new wxChoice( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceDebuggerChoices, 0 ); - m_choiceDebugger->SetSelection( 0 ); - fgSizer1->Add( m_choiceDebugger, 0, wxALL|wxEXPAND, 5 ); - - m_staticText31 = new wxStaticText( this, wxID_ANY, _("Filter:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText31->Wrap( -1 ); - fgSizer1->Add( m_staticText31, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); - - m_textCtrlFilter = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_RICH2 ); - fgSizer1->Add( m_textCtrlFilter, 0, wxALL|wxEXPAND, 5 ); - - bSizer1->Add( fgSizer1, 0, wxEXPAND, 5 ); - - m_staticText4 = new wxStaticText( this, wxID_ANY, _("Processes:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText4->Wrap( -1 ); - bSizer1->Add( m_staticText4, 0, wxALL, 5 ); - - m_listCtrlProcesses = new wxListCtrl( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLC_HRULES|wxLC_REPORT|wxLC_VRULES ); - bSizer1->Add( m_listCtrlProcesses, 1, wxALL|wxEXPAND, 5 ); - - m_staticline1 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL ); - bSizer1->Add( m_staticline1, 0, wxEXPAND | wxALL, 5 ); - - wxBoxSizer* bSizer2; - bSizer2 = new wxBoxSizer( wxHORIZONTAL ); - - m_buttonOk = new wxButton( this, wxID_OK, _("&Attach"), wxDefaultPosition, wxDefaultSize, 0 ); - m_buttonOk->SetDefault(); - bSizer2->Add( m_buttonOk, 0, wxALL, 5 ); - - m_button2 = new wxButton( this, wxID_CANCEL, _("&Cancel"), wxDefaultPosition, wxDefaultSize, 0 ); - bSizer2->Add( m_button2, 0, wxALL, 5 ); - - m_buttonRefresh = new wxButton( this, wxID_REFRESH, _("&Refresh"), wxDefaultPosition, wxDefaultSize, 0 ); - bSizer2->Add( m_buttonRefresh, 0, wxALL, 5 ); - - bSizer1->Add( bSizer2, 0, wxALIGN_CENTER_HORIZONTAL, 5 ); - - this->SetSizer( bSizer1 ); - this->Layout(); - bSizer1->Fit( this ); - - // Connect Events - m_textCtrlFilter->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( AttachDbgProcBaseDlg::OnFilter ), NULL, this ); - m_listCtrlProcesses->Connect( wxEVT_COMMAND_LIST_COL_CLICK, wxListEventHandler( AttachDbgProcBaseDlg::OnSortColumn ), NULL, this ); - m_listCtrlProcesses->Connect( wxEVT_COMMAND_LIST_ITEM_ACTIVATED, wxListEventHandler( AttachDbgProcBaseDlg::OnItemActivated ), NULL, this ); - m_listCtrlProcesses->Connect( wxEVT_COMMAND_LIST_ITEM_DESELECTED, wxListEventHandler( AttachDbgProcBaseDlg::OnItemDeselected ), NULL, this ); - m_listCtrlProcesses->Connect( wxEVT_COMMAND_LIST_ITEM_SELECTED, wxListEventHandler( AttachDbgProcBaseDlg::OnItemSelected ), NULL, this ); - m_buttonOk->Connect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( AttachDbgProcBaseDlg::OnBtnAttachUI ), NULL, this ); - m_buttonRefresh->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( AttachDbgProcBaseDlg::OnRefresh ), NULL, this ); -} - -AttachDbgProcBaseDlg::~AttachDbgProcBaseDlg() -{ - // Disconnect Events - m_textCtrlFilter->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( AttachDbgProcBaseDlg::OnFilter ), NULL, this ); - m_listCtrlProcesses->Disconnect( wxEVT_COMMAND_LIST_COL_CLICK, wxListEventHandler( AttachDbgProcBaseDlg::OnSortColumn ), NULL, this ); - m_listCtrlProcesses->Disconnect( wxEVT_COMMAND_LIST_ITEM_ACTIVATED, wxListEventHandler( AttachDbgProcBaseDlg::OnItemActivated ), NULL, this ); - m_listCtrlProcesses->Disconnect( wxEVT_COMMAND_LIST_ITEM_DESELECTED, wxListEventHandler( AttachDbgProcBaseDlg::OnItemDeselected ), NULL, this ); - m_listCtrlProcesses->Disconnect( wxEVT_COMMAND_LIST_ITEM_SELECTED, wxListEventHandler( AttachDbgProcBaseDlg::OnItemSelected ), NULL, this ); - m_buttonOk->Disconnect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( AttachDbgProcBaseDlg::OnBtnAttachUI ), NULL, this ); - m_buttonRefresh->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( AttachDbgProcBaseDlg::OnRefresh ), NULL, this ); - -} +////////////////////////////////////////////////////////////////////// +// This file was auto-generated by codelite's wxCrafter Plugin +// wxCrafter project file: AttachDbgProcBaseDlg.wxcp +// Do not modify this file by hand! +////////////////////////////////////////////////////////////////////// + +#include "attachdbgprocbasedlg.h" + + +// Declare the bitmap loading function +extern void wxC484EInitBitmapResources(); + +static bool bBitmapLoaded = false; + + +AttachDbgProcBaseDlg::AttachDbgProcBaseDlg(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style) + : wxDialog(parent, id, title, pos, size, style) +{ + if ( !bBitmapLoaded ) { + // We need to initialise the default bitmap handler + wxXmlResource::Get()->AddHandler(new wxBitmapXmlHandler); + wxC484EInitBitmapResources(); + bBitmapLoaded = true; + } + + wxBoxSizer* bSizer1 = new wxBoxSizer(wxVERTICAL); + this->SetSizer(bSizer1); + + wxFlexGridSizer* fgSizer1 = new wxFlexGridSizer(0, 2, 0, 0); + fgSizer1->SetFlexibleDirection( wxBOTH ); + fgSizer1->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); + fgSizer1->AddGrowableCol(1); + + bSizer1->Add(fgSizer1, 0, wxEXPAND, 5); + + m_staticText3 = new wxStaticText(this, wxID_ANY, _("Debugger to use:"), wxDefaultPosition, wxSize(-1, -1), 0); + + fgSizer1->Add(m_staticText3, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5); + + wxArrayString m_choiceDebuggerArr; + m_choiceDebugger = new wxChoice(this, wxID_ANY, wxDefaultPosition, wxSize(-1, -1), m_choiceDebuggerArr, 0); + + fgSizer1->Add(m_choiceDebugger, 0, wxALL|wxEXPAND, 5); + + m_staticText31 = new wxStaticText(this, wxID_ANY, _("Filter:"), wxDefaultPosition, wxSize(-1, -1), 0); + + fgSizer1->Add(m_staticText31, 0, wxALL|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5); + + m_textCtrlFilter = new wxTextCtrl(this, wxID_ANY, wxT(""), wxDefaultPosition, wxSize(-1, -1), 0); + m_textCtrlFilter->SetFocus(); + #if wxVERSION_NUMBER >= 3000 + m_textCtrlFilter->SetHint(wxT("")); + #endif + + fgSizer1->Add(m_textCtrlFilter, 0, wxALL|wxEXPAND, 5); + + m_staticText4 = new wxStaticText(this, wxID_ANY, _("Processes:"), wxDefaultPosition, wxSize(-1, -1), 0); + + bSizer1->Add(m_staticText4, 0, wxALL, 5); + + m_dvListCtrl = new wxDataViewListCtrl(this, wxID_ANY, wxDefaultPosition, wxSize(-1,150), wxDV_VERT_RULES|wxDV_ROW_LINES|wxDV_SINGLE); + + bSizer1->Add(m_dvListCtrl, 1, wxALL|wxEXPAND, 5); + + m_dvListCtrl->AppendTextColumn(_("PID"), wxDATAVIEW_CELL_INERT, 100, wxALIGN_LEFT); + m_dvListCtrl->AppendTextColumn(_("Name"), wxDATAVIEW_CELL_INERT, -2, wxALIGN_LEFT); + wxBoxSizer* bSizer2 = new wxBoxSizer(wxHORIZONTAL); + + bSizer1->Add(bSizer2, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 10); + + m_buttonOk = new wxButton(this, wxID_OK, _("&Attach"), wxDefaultPosition, wxSize(-1, -1), 0); + m_buttonOk->SetDefault(); + + bSizer2->Add(m_buttonOk, 0, wxALL, 5); + + m_button2 = new wxButton(this, wxID_CANCEL, _("&Cancel"), wxDefaultPosition, wxSize(-1, -1), 0); + + bSizer2->Add(m_button2, 0, wxALL, 5); + + m_buttonRefresh = new wxButton(this, wxID_REFRESH, _("&Refresh"), wxDefaultPosition, wxSize(-1, -1), 0); + + bSizer2->Add(m_buttonRefresh, 0, wxALL, 5); + + SetName(wxT("AttachDbgProcBaseDlg")); + SetSizeHints(-1,-1); + if (GetSizer()) { + GetSizer()->Fit(this); + } + if(GetParent()) { + CentreOnParent(); + } else { + CentreOnScreen(); + } +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(this)) { + wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); + } +#endif + // Connect events + m_textCtrlFilter->Connect(wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler(AttachDbgProcBaseDlg::OnFilter), NULL, this); + m_buttonOk->Connect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(AttachDbgProcBaseDlg::OnBtnAttachUI), NULL, this); + m_buttonRefresh->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(AttachDbgProcBaseDlg::OnRefresh), NULL, this); + +} + +AttachDbgProcBaseDlg::~AttachDbgProcBaseDlg() +{ + m_textCtrlFilter->Disconnect(wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler(AttachDbgProcBaseDlg::OnFilter), NULL, this); + m_buttonOk->Disconnect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(AttachDbgProcBaseDlg::OnBtnAttachUI), NULL, this); + m_buttonRefresh->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(AttachDbgProcBaseDlg::OnRefresh), NULL, this); + +} diff -Nru codelite-8.0.1+dfsg2/LiteEditor/attachdbgprocbasedlg.h codelite-9.0+dfsg/LiteEditor/attachdbgprocbasedlg.h --- codelite-8.0.1+dfsg2/LiteEditor/attachdbgprocbasedlg.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/attachdbgprocbasedlg.h 2015-10-11 13:56:07.000000000 +0000 @@ -1,91 +1,62 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2013 by Eran Ifrah -// file name : attachdbgprocbasedlg.h -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - -/////////////////////////////////////////////////////////////////////////// -// C++ code generated with wxFormBuilder (version Sep 8 2010) -// http://www.wxformbuilder.org/ -// -// PLEASE DO "NOT" EDIT THIS FILE! -/////////////////////////////////////////////////////////////////////////// - -#ifndef __attachdbgprocbasedlg__ -#define __attachdbgprocbasedlg__ - -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/////////////////////////////////////////////////////////////////////////// - - -/////////////////////////////////////////////////////////////////////////////// -/// Class AttachDbgProcBaseDlg -/////////////////////////////////////////////////////////////////////////////// -class AttachDbgProcBaseDlg : public wxDialog -{ - private: - - protected: - wxStaticText* m_staticText3; - wxChoice* m_choiceDebugger; - wxStaticText* m_staticText31; - wxTextCtrl* m_textCtrlFilter; - wxStaticText* m_staticText4; - wxListCtrl* m_listCtrlProcesses; - wxStaticLine* m_staticline1; - wxButton* m_buttonOk; - wxButton* m_button2; - wxButton* m_buttonRefresh; - - // Virtual event handlers, overide them in your derived class - virtual void OnFilter( wxCommandEvent& event ) { event.Skip(); } - virtual void OnSortColumn( wxListEvent& event ) { event.Skip(); } - virtual void OnItemActivated( wxListEvent& event ) { event.Skip(); } - virtual void OnItemDeselected( wxListEvent& event ) { event.Skip(); } - virtual void OnItemSelected( wxListEvent& event ) { event.Skip(); } - virtual void OnBtnAttachUI( wxUpdateUIEvent& event ) { event.Skip(); } - virtual void OnRefresh( wxCommandEvent& event ) { event.Skip(); } - - - public: - - AttachDbgProcBaseDlg( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Attach debugger to process:"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); - ~AttachDbgProcBaseDlg(); - -}; - -#endif //__attachdbgprocbasedlg__ +////////////////////////////////////////////////////////////////////// +// This file was auto-generated by codelite's wxCrafter Plugin +// wxCrafter project file: AttachDbgProcBaseDlg.wxcp +// Do not modify this file by hand! +////////////////////////////////////////////////////////////////////// + +#ifndef CODELITE_LITEEDITOR_ATTACHDBGPROCBASEDLG_BASE_CLASSES_H +#define CODELITE_LITEEDITOR_ATTACHDBGPROCBASEDLG_BASE_CLASSES_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#if wxVERSION_NUMBER >= 2900 +#include +#include +#include +#include +#endif + +class AttachDbgProcBaseDlg : public wxDialog +{ +protected: + wxStaticText* m_staticText3; + wxChoice* m_choiceDebugger; + wxStaticText* m_staticText31; + wxTextCtrl* m_textCtrlFilter; + wxStaticText* m_staticText4; + wxDataViewListCtrl* m_dvListCtrl; + wxButton* m_buttonOk; + wxButton* m_button2; + wxButton* m_buttonRefresh; + +protected: + virtual void OnFilter(wxCommandEvent& event) { event.Skip(); } + virtual void OnBtnAttachUI(wxUpdateUIEvent& event) { event.Skip(); } + virtual void OnRefresh(wxCommandEvent& event) { event.Skip(); } + +public: + wxStaticText* GetStaticText3() { return m_staticText3; } + wxChoice* GetChoiceDebugger() { return m_choiceDebugger; } + wxStaticText* GetStaticText31() { return m_staticText31; } + wxTextCtrl* GetTextCtrlFilter() { return m_textCtrlFilter; } + wxStaticText* GetStaticText4() { return m_staticText4; } + wxDataViewListCtrl* GetDvListCtrl() { return m_dvListCtrl; } + wxButton* GetButtonOk() { return m_buttonOk; } + wxButton* GetButton2() { return m_button2; } + wxButton* GetButtonRefresh() { return m_buttonRefresh; } + AttachDbgProcBaseDlg(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Attach debugger to process:"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER); + virtual ~AttachDbgProcBaseDlg(); +}; + +#endif diff -Nru codelite-8.0.1+dfsg2/LiteEditor/AttachDbgProcBaseDlg_liteeditor_bitmaps.cpp codelite-9.0+dfsg/LiteEditor/AttachDbgProcBaseDlg_liteeditor_bitmaps.cpp --- codelite-8.0.1+dfsg2/LiteEditor/AttachDbgProcBaseDlg_liteeditor_bitmaps.cpp 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/AttachDbgProcBaseDlg_liteeditor_bitmaps.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,47 @@ +// +// This file was automatically generated by wxrc, do not edit by hand. +// + +#include + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +#include +#include +#include +#include + +#if wxCHECK_VERSION(2,8,5) && wxABI_VERSION >= 20805 + #define XRC_ADD_FILE(name, data, size, mime) \ + wxMemoryFSHandler::AddFileWithMimeType(name, data, size, mime) +#else + #define XRC_ADD_FILE(name, data, size, mime) \ + wxMemoryFSHandler::AddFile(name, data, size) +#endif + +static size_t xml_res_size_0 = 90; +static unsigned char xml_res_file_0[] = { +60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, +110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, +115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, +47,47,119,119,119,46,119,120,119,105,100,103,101,116,115,46,111,114,103, +47,119,120,120,114,99,34,47,62,10}; + +void wxC484EInitBitmapResources() +{ + + // Check for memory FS. If not present, load the handler: + { + wxMemoryFSHandler::AddFile(wxT("XRC_resource/dummy_file"), wxT("dummy one")); + wxFileSystem fsys; + wxFSFile *f = fsys.OpenFile(wxT("memory:XRC_resource/dummy_file")); + wxMemoryFSHandler::RemoveFile(wxT("XRC_resource/dummy_file")); + if (f) delete f; + else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase); + } + + XRC_ADD_FILE(wxT("XRC_resource/AttachDbgProcBaseDlg_liteeditor_bitmaps.cpp$C__src_codelite_LiteEditor_AttachDbgProcBaseDlg_liteeditor_bitmaps.xrc"), xml_res_file_0, xml_res_size_0, wxT("text/xml")); + wxXmlResource::Get()->Load(wxT("memory:XRC_resource/AttachDbgProcBaseDlg_liteeditor_bitmaps.cpp$C__src_codelite_LiteEditor_AttachDbgProcBaseDlg_liteeditor_bitmaps.xrc")); +} diff -Nru codelite-8.0.1+dfsg2/LiteEditor/AttachDbgProcBaseDlg.wxcp codelite-9.0+dfsg/LiteEditor/AttachDbgProcBaseDlg.wxcp --- codelite-8.0.1+dfsg2/LiteEditor/AttachDbgProcBaseDlg.wxcp 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/AttachDbgProcBaseDlg.wxcp 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,1045 @@ +{ + "metadata": { + "m_generatedFilesDir": ".", + "m_objCounter": 2, + "m_includeFiles": [], + "m_bitmapFunction": "wxC484EInitBitmapResources", + "m_bitmapsFile": "AttachDbgProcBaseDlg_liteeditor_bitmaps.cpp", + "m_GenerateCodeTypes": -29551663, + "m_outputFileName": "attachdbgprocbasedlg", + "m_firstWindowId": 10000, + "m_useEnum": true, + "m_templateClasses": [] + }, + "windows": [{ + "m_type": 4421, + "proportion": 0, + "border": 0, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": ["wxDEFAULT_DIALOG_STYLE", "wxRESIZE_BORDER"], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "AttachDbgProcBaseDlg" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Enable Window Persistency:", + "m_value": true + }, { + "type": "string", + "m_label": "Title:", + "m_value": "Attach debugger to process:" + }, { + "type": "virtualFolderPicker", + "m_label": "Virtual Folder:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Centre:", + "m_selection": 0, + "m_options": ["", "wxBOTH", "wxVERTICAL", "wxHORIZONTAL"] + }, { + "type": "string", + "m_label": "Inherited Class", + "m_value": "AttachDbgProcDlg" + }, { + "type": "string", + "m_label": "File:", + "m_value": "attachdbgprocdlg" + }, { + "type": "string", + "m_label": "Class Decorator", + "m_value": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (16x16) :", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (32x32) :", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (64x64) :", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (128x128):", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (256x256):", + "m_path": "" + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 0, + "border": 0, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "bSizer1" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4403, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "fgSizer1" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "# Columns:", + "m_value": "2" + }, { + "type": "string", + "m_label": "# Rows:", + "m_value": "0" + }, { + "type": "string", + "m_label": "Growable columns:", + "m_value": "1" + }, { + "type": "string", + "m_label": "Growable rows:", + "m_value": "" + }, { + "type": "string", + "m_label": "Horizontal gap:", + "m_value": "0" + }, { + "type": "string", + "m_label": "Vertical gap:", + "m_value": "0" + }], + "m_events": [], + "m_children": [{ + "m_type": 4405, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_VERTICAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_staticText3" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Label:", + "m_value": "Debugger to use:" + }, { + "type": "string", + "m_label": "Wrap:", + "m_value": "-1" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4411, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_choiceDebugger" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Choices:", + "m_value": "" + }, { + "type": "string", + "m_label": "Selection:", + "m_value": "0" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4405, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT", "wxALIGN_CENTER_VERTICAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_staticText31" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Label:", + "m_value": "Filter:" + }, { + "type": "string", + "m_label": "Wrap:", + "m_value": "-1" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4406, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_textCtrlFilter" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": true + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Value:", + "m_value": "" + }, { + "type": "string", + "m_label": "Text Hint", + "m_value": "" + }, { + "type": "string", + "m_label": "Max Length:", + "m_value": "0" + }, { + "type": "bool", + "m_label": "Auto Complete Directories:", + "m_value": false + }, { + "type": "bool", + "m_label": "Auto Complete Files:", + "m_value": false + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_TEXT_UPDATED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnFilter(wxCommandEvent& event)", + "m_description": "Respond to a wxEVT_COMMAND_TEXT_UPDATED event, generated when the text changes.\nNotice that this event will be sent when the text controls contents changes\n - whether this is due to user input or comes from the program itself\n(for example, if SetValue() is called); see ChangeValue() for a function which does not send this event.", + "m_noBody": false + }], + "m_children": [] + }] + }, { + "m_type": 4405, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_staticText4" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Label:", + "m_value": "Processes:" + }, { + "type": "string", + "m_label": "Wrap:", + "m_value": "-1" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4469, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxDV_VERT_RULES", "wxDV_ROW_LINES", "wxDV_SINGLE"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,150" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_dvListCtrl" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }], + "m_events": [], + "m_children": [{ + "m_type": 4472, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "PID" + }, { + "type": "string", + "m_label": "Width:", + "m_value": "100" + }, { + "type": "choice", + "m_label": "Column Type", + "m_selection": 2, + "m_options": ["bitmap", "check", "text", "icontext", "progress", "choice"] + }, { + "type": "multi-string", + "m_label": "Choices:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Alignment", + "m_selection": 0, + "m_options": ["wxALIGN_LEFT", "wxALIGN_RIGHT", "wxALIGN_CENTER"] + }, { + "type": "choice", + "m_label": "Cell Mode", + "m_selection": 0, + "m_options": ["wxDATAVIEW_CELL_INERT", "wxDATAVIEW_CELL_ACTIVATABLE", "wxDATAVIEW_CELL_EDITABLE"] + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4472, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "Name" + }, { + "type": "string", + "m_label": "Width:", + "m_value": "-2" + }, { + "type": "choice", + "m_label": "Column Type", + "m_selection": 2, + "m_options": ["bitmap", "check", "text", "icontext", "progress", "choice"] + }, { + "type": "multi-string", + "m_label": "Choices:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Alignment", + "m_selection": 0, + "m_options": ["wxALIGN_LEFT", "wxALIGN_RIGHT", "wxALIGN_CENTER"] + }, { + "type": "choice", + "m_label": "Cell Mode", + "m_selection": 0, + "m_options": ["wxDATAVIEW_CELL_INERT", "wxDATAVIEW_CELL_ACTIVATABLE", "wxDATAVIEW_CELL_EDITABLE"] + }], + "m_events": [], + "m_children": [] + }] + }, { + "m_type": 4401, + "proportion": 0, + "border": 10, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_HORIZONTAL"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "bSizer2" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 1, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4400, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_OK" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_buttonOk" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "&Attach" + }, { + "type": "bool", + "m_label": "Default Button", + "m_value": true + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Direction", + "m_selection": 0, + "m_options": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"] + }, { + "type": "string", + "m_label": "Margins:", + "m_value": "2,2" + }], + "m_events": [{ + "m_eventName": "wxEVT_UPDATE_UI", + "m_eventClass": "wxUpdateUIEvent", + "m_eventHandler": "wxUpdateUIEventHandler", + "m_functionNameAndSignature": "OnBtnAttachUI(wxUpdateUIEvent& event)", + "m_description": "Process a wxEVT_UPDATE_UI event", + "m_noBody": false + }], + "m_children": [] + }, { + "m_type": 4400, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_CANCEL" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_button2" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "&Cancel" + }, { + "type": "bool", + "m_label": "Default Button", + "m_value": false + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Direction", + "m_selection": 0, + "m_options": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"] + }, { + "type": "string", + "m_label": "Margins:", + "m_value": "2,2" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4400, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_REFRESH" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_buttonRefresh" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "&Refresh" + }, { + "type": "bool", + "m_label": "Default Button", + "m_value": false + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Direction", + "m_selection": 0, + "m_options": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"] + }, { + "type": "string", + "m_label": "Margins:", + "m_value": "2,2" + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_BUTTON_CLICKED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnRefresh(wxCommandEvent& event)", + "m_description": "Process a wxEVT_COMMAND_BUTTON_CLICKED event, when the button is clicked.", + "m_noBody": false + }], + "m_children": [] + }] + }] + }] + }] +} \ No newline at end of file diff -Nru codelite-8.0.1+dfsg2/LiteEditor/attachdbgprocdlg.cpp codelite-9.0+dfsg/LiteEditor/attachdbgprocdlg.cpp --- codelite-8.0.1+dfsg2/LiteEditor/attachdbgprocdlg.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/attachdbgprocdlg.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -28,6 +28,8 @@ #include "globals.h" #include "procutils.h" #include +#include "fileutils.h" +#include /// Ascending sorting function struct PIDSorter { @@ -43,7 +45,6 @@ AttachDbgProcDlg::AttachDbgProcDlg(wxWindow* parent) : AttachDbgProcBaseDlg(parent) - , m_selectedItem(wxNOT_FOUND) { wxArrayString choices = DebuggerMgr::Get().GetAvailableDebuggers(); m_choiceDebugger->Append(choices); @@ -52,12 +53,9 @@ m_choiceDebugger->SetSelection(0); } - m_listCtrlProcesses->InsertColumn(0, _("PID")); - m_listCtrlProcesses->InsertColumn(1, _("Name")); - RefreshProcessesList(wxEmptyString); m_textCtrlFilter->SetFocus(); - Centre(); + CentreOnParent(); SetName("AttachDbgProcDlg"); WindowAttrManager::Load(this); @@ -65,8 +63,8 @@ void AttachDbgProcDlg::RefreshProcessesList(wxString filter, int colToSort) { - m_listCtrlProcesses->Freeze(); - m_listCtrlProcesses->DeleteAllItems(); + wxWindowUpdateLocker locker(m_dvListCtrl); + m_dvListCtrl->DeleteAllItems(); filter.Trim().Trim(false); @@ -74,81 +72,55 @@ std::vector proclist; ProcUtils::GetProcessList(proclist); - if(colToSort == 0) { // sort by PID - std::sort(proclist.begin(), proclist.end(), PIDSorter()); - - } else if(colToSort == 1) { // sort by name - std::sort(proclist.begin(), proclist.end(), NameSorter()); - } + // if(colToSort == 0) { // sort by PID + // std::sort(proclist.begin(), proclist.end(), PIDSorter()); + // + // } else if(colToSort == 1) { // sort by name + // std::sort(proclist.begin(), proclist.end(), NameSorter()); + // } filter.MakeLower(); - for(size_t i = 0; i < proclist.size(); i++) { + for(size_t i = 0; i < proclist.size(); ++i) { // Use case in-sensitive match for the filter wxString entryName(proclist.at(i).name); - entryName.MakeLower(); // Append only processes that matches the filter string - if(filter.IsEmpty() || entryName.Contains(filter)) { - long item = AppendListCtrlRow(m_listCtrlProcesses); - ProcessEntry entry = proclist.at(i); - wxString spid; - bool selfPid = (entry.pid == (long)wxGetProcessId()); - spid << entry.pid; - SetColumnText(m_listCtrlProcesses, item, 0, spid); - SetColumnText(m_listCtrlProcesses, item, 1, entry.name); - - if(selfPid) { - m_listCtrlProcesses->SetItemTextColour(item, wxSystemSettings::GetColour(wxSYS_COLOUR_GRAYTEXT)); - } + if(filter.IsEmpty() || FileUtils::FuzzyMatch(filter, entryName)) { + const ProcessEntry& entry = proclist.at(i); + if(entry.pid == (long)wxGetProcessId()) continue; + wxVector cols; + cols.push_back(wxString() << entry.pid); + cols.push_back(entry.name); + m_dvListCtrl->AppendItem(cols); } } - - m_listCtrlProcesses->SetColumnWidth(0, 100); - m_listCtrlProcesses->SetColumnWidth(1, 500); - m_listCtrlProcesses->Thaw(); } wxString AttachDbgProcDlg::GetExeName() const { - if(m_selectedItem != wxNOT_FOUND) { - return GetColumnText(m_listCtrlProcesses, m_selectedItem, 1); + wxVariant v; + int sel = m_dvListCtrl->GetSelectedRow(); + if(sel != wxNOT_FOUND) { + m_dvListCtrl->GetValue(v, sel, 1); + return v.GetString(); } return wxEmptyString; } wxString AttachDbgProcDlg::GetProcessId() const { - if(m_selectedItem != wxNOT_FOUND) { - return GetColumnText(m_listCtrlProcesses, m_selectedItem, 0); + wxVariant v; + int sel = m_dvListCtrl->GetSelectedRow(); + if(sel != wxNOT_FOUND) { + m_dvListCtrl->GetValue(v, sel, 0); + return v.GetString(); } return wxEmptyString; } -void AttachDbgProcDlg::OnSortColumn(wxListEvent& event) -{ - RefreshProcessesList(m_textCtrlFilter->GetValue(), event.m_col); -} - -void AttachDbgProcDlg::OnItemActivated(wxListEvent& event) -{ - m_selectedItem = event.m_itemIndex; - EndModal(wxID_OK); -} - -void AttachDbgProcDlg::OnItemDeselected(wxListEvent& event) -{ - m_selectedItem = wxNOT_FOUND; - wxUnusedVar(event); -} - -void AttachDbgProcDlg::OnItemSelected(wxListEvent& event) -{ - m_selectedItem = event.m_itemIndex; - wxUnusedVar(event); -} -void AttachDbgProcDlg::OnBtnAttachUI(wxUpdateUIEvent& event) { event.Enable(m_selectedItem != wxNOT_FOUND); } +void AttachDbgProcDlg::OnBtnAttachUI(wxUpdateUIEvent& event) { event.Enable(m_dvListCtrl->GetSelectedRow() != wxNOT_FOUND); } AttachDbgProcDlg::~AttachDbgProcDlg() {} diff -Nru codelite-8.0.1+dfsg2/LiteEditor/attachdbgprocdlg.h codelite-9.0+dfsg/LiteEditor/attachdbgprocdlg.h --- codelite-8.0.1+dfsg2/LiteEditor/attachdbgprocdlg.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/attachdbgprocdlg.h 2015-10-11 13:56:07.000000000 +0000 @@ -25,38 +25,24 @@ #ifndef __attachdbgprocdlg__ #define __attachdbgprocdlg__ -/** -@file -Subclass of AttachDbgProcBaseDlg, which is generated by wxFormBuilder. -*/ - #include "attachdbgprocbasedlg.h" -/** Implementing AttachDbgProcBaseDlg */ class AttachDbgProcDlg : public AttachDbgProcBaseDlg { - long m_selectedItem; public: - void RefreshProcessesList(wxString filter, int colToSort = -1); + void RefreshProcessesList(wxString filter, int colToSort = -1); + + AttachDbgProcDlg(wxWindow* parent); + virtual ~AttachDbgProcDlg(); - /** Constructor */ - AttachDbgProcDlg( wxWindow* parent ); - virtual ~AttachDbgProcDlg(); - - wxString GetProcessId() const; - wxString GetExeName() const; - wxString GetDebugger() const { - return m_choiceDebugger->GetStringSelection(); - } - - //events - virtual void OnSortColumn( wxListEvent& event ); - virtual void OnItemActivated( wxListEvent& event ); - virtual void OnItemDeselected( wxListEvent& event ); - virtual void OnItemSelected( wxListEvent& event ); - virtual void OnBtnAttachUI( wxUpdateUIEvent& event ); - virtual void OnFilter(wxCommandEvent& event); - virtual void OnRefresh(wxCommandEvent& event); + wxString GetProcessId() const; + wxString GetExeName() const; + wxString GetDebugger() const { return m_choiceDebugger->GetStringSelection(); } + + // events + virtual void OnBtnAttachUI(wxUpdateUIEvent& event); + virtual void OnFilter(wxCommandEvent& event); + virtual void OnRefresh(wxCommandEvent& event); }; #endif // __attachdbgprocdlg__ diff -Nru codelite-8.0.1+dfsg2/LiteEditor/autoversion.cpp codelite-9.0+dfsg/LiteEditor/autoversion.cpp --- codelite-8.0.1+dfsg2/LiteEditor/autoversion.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/autoversion.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -26,7 +26,6 @@ #ifndef CL_GIT_REVISION #define CL_GIT_REVISION -#include -const wxChar* clGitRevision = wxT("8.0"); -#endif +#include "autoversion.h" +#endif diff -Nru codelite-8.0.1+dfsg2/LiteEditor/autoversion.h codelite-9.0+dfsg/LiteEditor/autoversion.h --- codelite-8.0.1+dfsg2/LiteEditor/autoversion.h 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/autoversion.h 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,7 @@ +#ifndef CODELITE_AUTOVERSION_H +#define CODELITE_AUTOVERSION_H + +#define CODELITE_VERSION_STRING "9.0.0" +#define CODELITE_VERSION_NUMBER 900 + +#endif diff -Nru codelite-8.0.1+dfsg2/LiteEditor/batchbuilddlg.cpp codelite-9.0+dfsg/LiteEditor/batchbuilddlg.cpp --- codelite-8.0.1+dfsg2/LiteEditor/batchbuilddlg.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/batchbuilddlg.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -176,7 +176,7 @@ config.Trim().Trim(false); // get the selected configuration to be built - BuildConfigPtr bldConf = WorkspaceST::Get()->GetProjBuildConf(project, config); + BuildConfigPtr bldConf = clCxxWorkspaceST::Get()->GetProjBuildConf(project, config); if (bldConf) { QueueCommand buildInfo(project, config, true, m_cmd); @@ -203,7 +203,7 @@ void BatchBuildDlg::DoInitialize() { // load the previously saved batch build file - wxFileName fn(WorkspaceST::Get()->GetWorkspaceFileName()); + wxFileName fn(clCxxWorkspaceST::Get()->GetWorkspaceFileName()); fn.SetExt(wxT("batch_build")); wxString content; @@ -219,7 +219,7 @@ // loop over all projects, for each project collect all available // build configurations and add them to the check list control wxArrayString projects; - WorkspaceST::Get()->GetProjectList(projects); + clCxxWorkspaceST::Get()->GetProjectList(projects); for (size_t i=0; iGetProject(projects.Item(i)); if (p) { @@ -263,7 +263,7 @@ void BatchBuildDlg::DoSaveBatchBuildOrder() { - wxFileName fn(WorkspaceST::Get()->GetWorkspaceFileName()); + wxFileName fn(clCxxWorkspaceST::Get()->GetWorkspaceFileName()); fn.SetExt(wxT("batch_build")); wxString content; diff -Nru codelite-8.0.1+dfsg2/LiteEditor/breakpointdlgbase.h codelite-9.0+dfsg/LiteEditor/breakpointdlgbase.h --- codelite-8.0.1+dfsg2/LiteEditor/breakpointdlgbase.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/breakpointdlgbase.h 2015-10-11 13:56:07.000000000 +0000 @@ -4,8 +4,8 @@ // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// -#ifndef BREAKPOINTDLG_BASE_CLASSES_H -#define BREAKPOINTDLG_BASE_CLASSES_H +#ifndef CODELITE_LITEEDITOR_BREAKPOINTDLG_BASE_CLASSES_H +#define CODELITE_LITEEDITOR_BREAKPOINTDLG_BASE_CLASSES_H #include #include diff -Nru codelite-8.0.1+dfsg2/LiteEditor/breakpointdlg.cpp codelite-9.0+dfsg/LiteEditor/breakpointdlg.cpp --- codelite-8.0.1+dfsg2/LiteEditor/breakpointdlg.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/breakpointdlg.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -32,8 +32,8 @@ #include "event_notifier.h" #include "breakpointslistctrl.h" -BreakpointDlg::BreakpointDlg( wxWindow* parent ) - : BreakpointTabBase( parent ) +BreakpointDlg::BreakpointDlg(wxWindow* parent) + : BreakpointTabBase(parent) , m_selectedItem(wxNOT_FOUND) { Initialize(); @@ -57,13 +57,13 @@ int count = m_listCtrlBreakpoints->GetItemCount(); bool hasitems = count > 0; - if (hasitems) { + if(hasitems) { // Select the first item if there's not already a selection - if (m_selectedItem == wxNOT_FOUND) { + if(m_selectedItem == wxNOT_FOUND) { m_selectedItem = 0; } - if (m_selectedItem >= count) { // e.g. if the selection was the last item, then one is deleted - m_selectedItem = count-1; + if(m_selectedItem >= count) { // e.g. if the selection was the last item, then one is deleted + m_selectedItem = count - 1; } // Even if an item was previously selected, refreshing the pane means we need to reselect m_listCtrlBreakpoints->SetItemState(m_selectedItem, wxLIST_STATE_SELECTED, wxLIST_STATE_SELECTED); @@ -75,16 +75,16 @@ // The 'Apply Pending' button is more complicated: it should be hidden, // unless there are pending bps to apply,and the debugger is running bool pending = ManagerST::Get()->GetBreakpointsMgr()->PendingBreakpointsExist(); - IDebugger *dbgr = DebuggerMgr::Get().GetActiveDebugger(); - m_buttonApplyPending->Show( pending && dbgr && dbgr->IsRunning() ); + IDebugger* dbgr = DebuggerMgr::Get().GetActiveDebugger(); + m_buttonApplyPending->Show(pending && dbgr && dbgr->IsRunning()); Layout(); // Enable DeleteAll if there are either bps or pending bps m_buttonDeleteAll->Enable(hasitems || pending); } -void BreakpointDlg::OnDelete(wxCommandEvent &e) +void BreakpointDlg::OnDelete(wxCommandEvent& e) { - if (m_selectedItem != wxNOT_FOUND) { + if(m_selectedItem != wxNOT_FOUND) { // Delete by this item's id, which was carefully stored in Initialize() int id = m_ids[m_selectedItem].GetBestId(); ManagerST::Get()->GetBreakpointsMgr()->DelBreakpoint(id); @@ -96,7 +96,7 @@ Initialize(); // ReInitialise, as either a bp was deleted, or the data was corrupt } -void BreakpointDlg::OnDeleteAll(wxCommandEvent &e) +void BreakpointDlg::OnDeleteAll(wxCommandEvent& e) { wxUnusedVar(e); ManagerST::Get()->GetBreakpointsMgr()->DelAllBreakpoints(); @@ -104,12 +104,12 @@ Initialize(); clMainFrame::Get()->GetStatusBar()->SetMessage(_("All Breakpoints deleted")); - + wxCommandEvent evtDelAll(wxEVT_CODELITE_ALL_BREAKPOINTS_DELETED); - EventNotifier::Get()->AddPendingEvent( evtDelAll ); + EventNotifier::Get()->AddPendingEvent(evtDelAll); } -void BreakpointDlg::OnApplyPending(wxCommandEvent &e) +void BreakpointDlg::OnApplyPending(wxCommandEvent& e) { wxUnusedVar(e); ManagerST::Get()->GetBreakpointsMgr()->ApplyPendingBreakpoints(); @@ -118,25 +118,22 @@ clMainFrame::Get()->GetStatusBar()->SetMessage(_("Pending Breakpoints reapplied")); } -void BreakpointDlg::OnItemSelected(wxListEvent &e) -{ - m_selectedItem = e.m_itemIndex; -} +void BreakpointDlg::OnItemSelected(wxListEvent& e) { m_selectedItem = e.m_itemIndex; } -void BreakpointDlg::OnItemDeselected(wxListEvent &e) +void BreakpointDlg::OnItemDeselected(wxListEvent& e) { wxUnusedVar(e); m_selectedItem = wxNOT_FOUND; } -void BreakpointDlg::OnItemActivated(wxListEvent &e) +void BreakpointDlg::OnItemActivated(wxListEvent& e) { wxString file = GetColumnText(m_listCtrlBreakpoints, e.m_itemIndex, m_listCtrlBreakpoints->GetFileColumn()); wxString line = GetColumnText(m_listCtrlBreakpoints, e.m_itemIndex, m_listCtrlBreakpoints->GetLinenoColumn()); long line_number; line.ToLong(&line_number); - clMainFrame::Get()->GetMainBook()->OpenFile(file, wxEmptyString, line_number-1, wxNOT_FOUND, OF_AddJump, false); + clMainFrame::Get()->GetMainBook()->OpenFile(file, wxEmptyString, line_number - 1, wxNOT_FOUND, OF_AddJump, false); } void BreakpointDlg::OnItemRightClick(wxListEvent& e) @@ -150,7 +147,7 @@ void BreakpointDlg::OnEdit(wxCommandEvent& e) { wxUnusedVar(e); - if (m_selectedItem == wxNOT_FOUND) { + if(m_selectedItem == wxNOT_FOUND) { return; } @@ -163,7 +160,7 @@ m_selectedItem = wxNOT_FOUND; } - Initialize(); // Make any changes visible + Initialize(); // Make any changes visible } void BreakpointDlg::OnAdd(wxCommandEvent& e) @@ -171,7 +168,7 @@ wxUnusedVar(e); ManagerST::Get()->GetBreakpointsMgr()->AddBreakpoint(); - Initialize(); // Make any changes visible + Initialize(); // Make any changes visible } void BreakpointsListctrl::Initialise(std::vector& bps) @@ -180,37 +177,37 @@ DeleteAllItems(); std::vector::iterator iter = bps.begin(); - for (; iter != bps.end(); ++iter) { + for(; iter != bps.end(); ++iter) { long item = AppendListCtrlRow(this); // Store the internal and external ids - struct bpd_IDs IDs(*iter); + bpd_IDs IDs(*iter); SetColumnText(this, item, col_id, IDs.GetIdAsString(), wxNOT_FOUND); wxString type; - if (iter->is_temp) { + if(iter->is_temp) { type = _("Temp. "); } - type += ((iter->bp_type==BP_type_watchpt) ? _("Watchpoint") : _("Breakpoint")); + type += ((iter->bp_type == BP_type_watchpt) ? _("Watchpoint") : _("Breakpoint")); SetColumnText(this, item, col_type, type, wxNOT_FOUND); wxString disabled; - if (!iter->is_enabled) { + if(!iter->is_enabled) { disabled = _("disabled"); } - SetColumnText(this, item, col_enabled, disabled ); - SetColumnText(this, item, col_at, iter->at ); - SetColumnText(this, item, col_what, iter->what); + SetColumnText(this, item, col_enabled, disabled); + SetColumnText(this, item, col_at, iter->at); + SetColumnText(this, item, col_what, iter->what); // A breakpoint will have either a file/lineno or a function-name (e.g.main(), or a memory address) // A watchpoint will have watchpt_data (the variable it's watching). Display that in the 'Function' col - if ((iter->bp_type==BP_type_watchpt) && (!iter->watchpt_data.IsEmpty())) { + if((iter->bp_type == BP_type_watchpt) && (!iter->watchpt_data.IsEmpty())) { SetColumnText(this, item, col_functionname, iter->watchpt_data, wxNOT_FOUND); - } else if (!iter->function_name.IsEmpty()) { + } else if(!iter->function_name.IsEmpty()) { SetColumnText(this, item, col_functionname, iter->function_name, wxNOT_FOUND); - } else if (iter->memory_address.IsEmpty() == false) { + } else if(iter->memory_address.IsEmpty() == false) { wxString addr; addr << iter->memory_address; SetColumnText(this, item, col_memory, addr, wxNOT_FOUND); @@ -220,25 +217,24 @@ wxString line; line << iter->lineno; SetColumnText(this, item, col_lineno, line, wxNOT_FOUND); - } wxString ignore; - if (iter->ignore_number) { + if(iter->ignore_number) { ignore << iter->ignore_number; } SetColumnText(this, item, col_ignorecount, ignore, wxNOT_FOUND); - wxString extras; // Extras are conditions, or a commandlist. If both (unlikely!) just show the condition - if (!iter->conditions.IsEmpty()) { + wxString extras; // Extras are conditions, or a commandlist. If both (unlikely!) just show the condition + if(!iter->conditions.IsEmpty()) { extras = iter->conditions; - } else if (!iter->commandlist.IsEmpty()) { + } else if(!iter->commandlist.IsEmpty()) { extras = iter->commandlist; } - if (!extras.IsEmpty()) { + if(!extras.IsEmpty()) { // We don't want to try to display massive commandlist spread over several lines... int index = extras.Find(wxT("\\n")); - if (index != wxNOT_FOUND) { + if(index != wxNOT_FOUND) { extras = extras.Left(index) + wxT("..."); } SetColumnText(this, item, col_extras, extras, wxNOT_FOUND); diff -Nru codelite-8.0.1+dfsg2/LiteEditor/breakpointdlg.h codelite-9.0+dfsg/LiteEditor/breakpointdlg.h --- codelite-8.0.1+dfsg2/LiteEditor/breakpointdlg.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/breakpointdlg.h 2015-10-11 13:56:07.000000000 +0000 @@ -28,41 +28,49 @@ #include "breakpointdlgbase.h" #include "breakpointsmgr.h" -// Since a breakpoint will always have an internal id, but a valid debugger one only when the debugger's running, store both here -struct bpd_IDs -{ - int debugger_id; - int internal_id; - bpd_IDs(const BreakpointInfo& bp) { debugger_id = bp.debugger_id; internal_id = bp.internal_id; } - // If the debugger is running, debugger_id will (should) be >0. Otherwise use the internal_id - int GetBestId() { return debugger_id == -1 ? internal_id : debugger_id; } - wxString GetIdAsString() // Internal IDs start at FIRST_INTERNAL_ID + 1, == 10001 - { int id = (GetBestId() > FIRST_INTERNAL_ID ? GetBestId()-FIRST_INTERNAL_ID : GetBestId()); - wxString idstr; idstr << id; return idstr; - } +// Since a breakpoint will always have an internal id, but a valid debugger one only when the debugger's running, store +// both here +struct bpd_IDs { + double debugger_id; + double internal_id; + bpd_IDs(const BreakpointInfo& bp) + { + debugger_id = bp.debugger_id; + internal_id = bp.internal_id; + } + // If the debugger is running, debugger_id will (should) be >0. Otherwise use the internal_id + double GetBestId() { return debugger_id == -1 ? internal_id : debugger_id; } + wxString GetIdAsString() // Internal IDs start at FIRST_INTERNAL_ID + 1, == 10001 + { + double id = (GetBestId() > FIRST_INTERNAL_ID ? GetBestId() - FIRST_INTERNAL_ID : GetBestId()); + wxString idstr; + idstr << id; + return idstr; + } }; /** Implementing BreakpointDlgBase */ class BreakpointDlg : public BreakpointTabBase { - long m_selectedItem; + long m_selectedItem; + protected: - void OnAdd(wxCommandEvent &e); - void OnEdit(wxCommandEvent &e); - void OnDelete(wxCommandEvent &e); - void OnDeleteAll(wxCommandEvent &e); - void OnApplyPending(wxCommandEvent &e); - void OnItemActivated(wxListEvent &e); - void OnItemSelected(wxListEvent &e); - void OnItemDeselected(wxListEvent &e); - void OnItemRightClick(wxListEvent& e); + void OnAdd(wxCommandEvent& e); + void OnEdit(wxCommandEvent& e); + void OnDelete(wxCommandEvent& e); + void OnDeleteAll(wxCommandEvent& e); + void OnApplyPending(wxCommandEvent& e); + void OnItemActivated(wxListEvent& e); + void OnItemSelected(wxListEvent& e); + void OnItemDeselected(wxListEvent& e); + void OnItemRightClick(wxListEvent& e); - std::vector m_ids; + std::vector m_ids; public: - /** Constructor */ - BreakpointDlg( wxWindow* parent ); - void Initialize(); + /** Constructor */ + BreakpointDlg(wxWindow* parent); + void Initialize(); }; #endif // __breakpointdlg__ diff -Nru codelite-8.0.1+dfsg2/LiteEditor/breakpoint_dlg_liteeditor_bitmaps.cpp codelite-9.0+dfsg/LiteEditor/breakpoint_dlg_liteeditor_bitmaps.cpp --- codelite-8.0.1+dfsg2/LiteEditor/breakpoint_dlg_liteeditor_bitmaps.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/breakpoint_dlg_liteeditor_bitmaps.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,47 +1,47 @@ -// -// This file was automatically generated by wxrc, do not edit by hand. -// - -#include - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#include -#include -#include -#include - -#if wxCHECK_VERSION(2,8,5) && wxABI_VERSION >= 20805 - #define XRC_ADD_FILE(name, data, size, mime) \ - wxMemoryFSHandler::AddFileWithMimeType(name, data, size, mime) -#else - #define XRC_ADD_FILE(name, data, size, mime) \ - wxMemoryFSHandler::AddFile(name, data, size) -#endif - -static size_t xml_res_size_0 = 90; -static unsigned char xml_res_file_0[] = { -60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, -110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, -115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, -47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, -47,119,120,120,114,99,34,47,62,10}; - -void wxCrafterFrb2RoInitBitmapResources() -{ - - // Check for memory FS. If not present, load the handler: - { - wxMemoryFSHandler::AddFile(wxT("XRC_resource/dummy_file"), wxT("dummy one")); - wxFileSystem fsys; - wxFSFile *f = fsys.OpenFile(wxT("memory:XRC_resource/dummy_file")); - wxMemoryFSHandler::RemoveFile(wxT("XRC_resource/dummy_file")); - if (f) delete f; - else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase); - } - - XRC_ADD_FILE(wxT("XRC_resource/breakpoint_dlg_liteeditor_bitmaps.cpp$_home_david_devel_git_CL_LiteEditor_breakpoint_dlg_liteeditor_bitmaps.xrc"), xml_res_file_0, xml_res_size_0, wxT("text/xml")); - wxXmlResource::Get()->Load(wxT("memory:XRC_resource/breakpoint_dlg_liteeditor_bitmaps.cpp$_home_david_devel_git_CL_LiteEditor_breakpoint_dlg_liteeditor_bitmaps.xrc")); -} +// +// This file was automatically generated by wxrc, do not edit by hand. +// + +#include + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +#include +#include +#include +#include + +#if wxCHECK_VERSION(2,8,5) && wxABI_VERSION >= 20805 + #define XRC_ADD_FILE(name, data, size, mime) \ + wxMemoryFSHandler::AddFileWithMimeType(name, data, size, mime) +#else + #define XRC_ADD_FILE(name, data, size, mime) \ + wxMemoryFSHandler::AddFile(name, data, size) +#endif + +static size_t xml_res_size_0 = 90; +static unsigned char xml_res_file_0[] = { +60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, +110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, +115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, +47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, +47,119,120,120,114,99,34,47,62,10}; + +void wxCrafterFrb2RoInitBitmapResources() +{ + + // Check for memory FS. If not present, load the handler: + { + wxMemoryFSHandler::AddFile(wxT("XRC_resource/dummy_file"), wxT("dummy one")); + wxFileSystem fsys; + wxFSFile *f = fsys.OpenFile(wxT("memory:XRC_resource/dummy_file")); + wxMemoryFSHandler::RemoveFile(wxT("XRC_resource/dummy_file")); + if (f) delete f; + else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase); + } + + XRC_ADD_FILE(wxT("XRC_resource/breakpoint_dlg_liteeditor_bitmaps.cpp$C__src_codelite_LiteEditor_breakpoint_dlg_liteeditor_bitmaps.xrc"), xml_res_file_0, xml_res_size_0, wxT("text/xml")); + wxXmlResource::Get()->Load(wxT("memory:XRC_resource/breakpoint_dlg_liteeditor_bitmaps.cpp$C__src_codelite_LiteEditor_breakpoint_dlg_liteeditor_bitmaps.xrc")); +} diff -Nru codelite-8.0.1+dfsg2/LiteEditor/breakpointsmgr.cpp codelite-9.0+dfsg/LiteEditor/breakpointsmgr.cpp --- codelite-8.0.1+dfsg2/LiteEditor/breakpointsmgr.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/breakpointsmgr.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -43,52 +43,55 @@ return AddBreakpoint(bp); } -bool BreakptMgr::AddBreakpointByLineno(const wxString& file, const int lineno, const wxString& conditions/*=wxT("")*/, const bool is_temp, bool is_disabled) +bool BreakptMgr::AddBreakpointByLineno(const wxString& file, + const int lineno, + const wxString& conditions /*=wxT("")*/, + const bool is_temp, + bool is_disabled) { BreakpointInfo bp; bp.Create(file, lineno, GetNextID()); bp.origin = BO_Editor; - if (is_temp) { + if(is_temp) { bp.bp_type = BP_type_tempbreak; bp.is_temp = true; - - } + } bp.is_enabled = !is_disabled; bp.conditions = conditions; return AddBreakpoint(bp); } -bool BreakptMgr::AddBreakpoint(const BreakpointInfo &bp) +bool BreakptMgr::AddBreakpoint(const BreakpointInfo& bp) { - if (bp.bp_type != BP_type_watchpt && - bp.file.IsEmpty() && bp.function_name.IsEmpty() && bp.memory_address.IsEmpty() && bp.lineno == wxNOT_FOUND) { + if(bp.bp_type != BP_type_watchpt && bp.file.IsEmpty() && bp.function_name.IsEmpty() && + bp.memory_address.IsEmpty() && bp.lineno == wxNOT_FOUND) { // no function nor file? no memory address? // do nothing then return true; } - IDebugger *dbgr = DebuggerMgr::Get().GetActiveDebugger(); - if (dbgr && dbgr->IsRunning()) { + IDebugger* dbgr = DebuggerMgr::Get().GetActiveDebugger(); + if(dbgr && dbgr->IsRunning()) { // If the debugger is already running, tell it we want a new bp // If not, they'll all be added together when the debugger does start bool contIsNeeded = PauseDebuggerIfNeeded(); dbgr->Break(bp); - if (contIsNeeded) { + if(contIsNeeded) { dbgr->Continue(); } } BreakpointInfo newBreakpoint(bp); SetBestBPType(newBreakpoint); - + BreakpointInfoVec_t::const_iterator iter = std::find(m_bps.begin(), m_bps.end(), newBreakpoint); - if ( iter == m_bps.end() ) { + if(iter == m_bps.end()) { // new breakpoint - m_bps.push_back( newBreakpoint ); + m_bps.push_back(newBreakpoint); } - + DeleteAllBreakpointMarkers(); RefreshBreakpointMarkers(); return true; @@ -102,20 +105,21 @@ LEditor* const editor = clMainFrame::Get()->GetMainBook()->GetActiveEditor(); BreakpointInfo bp; - bp.Create(editor ? editor->GetFileName().GetFullPath() : wxString(), editor ? editor->GetCurrentLine() : -1, GetNextID()); + bp.Create( + editor ? editor->GetFileName().GetFullPath() : wxString(), editor ? editor->GetCurrentLine() : -1, GetNextID()); dlg.EnterBPData(bp); - if (dlg.ShowModal() != wxID_OK) { + if(dlg.ShowModal() != wxID_OK) { return; } - if (AddBreakpoint(dlg.b)) { - IDebugger *dbgr = DebuggerMgr::Get().GetActiveDebugger(); - if ((!dlg.b.is_enabled) && dbgr && dbgr->IsRunning()) { + if(AddBreakpoint(dlg.b)) { + IDebugger* dbgr = DebuggerMgr::Get().GetActiveDebugger(); + if((!dlg.b.is_enabled) && dbgr && dbgr->IsRunning()) { SetBPEnabledState(dlg.b.debugger_id, dlg.b.is_enabled); } wxString msg; - if (dlg.b.bp_type == BP_type_watchpt) { + if(dlg.b.bp_type == BP_type_watchpt) { msg = _("Watchpoint successfully added"); } else { msg = _("Breakpoint successfully added"); @@ -124,80 +128,82 @@ } } -void BreakptMgr::GetBreakpoints(std::vector &li) +void BreakptMgr::GetBreakpoints(std::vector& li) { DoRemoveDuplicateBreakpoints(); li = m_bps; } // Get all known breakpoints for this line/file -BreakpointInfo& BreakptMgr::GetBreakpoint(const wxString &fileName, const int lineno) +BreakpointInfo& BreakptMgr::GetBreakpoint(const wxString& fileName, const int lineno) { wxFileName fn(fileName); fn.Normalize(wxPATH_NORM_ALL & ~wxPATH_NORM_LONG); - BreakpointInfoVec_t::iterator iter = std::find_if(m_bps.begin(), m_bps.end(), BreakpointInfo::PredicateByFileAndLine(fn.GetFullPath(), lineno)); - if ( iter == m_bps.end() ) { + BreakpointInfoVec_t::iterator iter = + std::find_if(m_bps.begin(), m_bps.end(), BreakpointInfo::PredicateByFileAndLine(fn.GetFullPath(), lineno)); + if(iter == m_bps.end()) { static BreakpointInfo empty; return empty; } return *iter; } -const BreakpointInfo& BreakptMgr::GetBreakpoint(const wxString &fileName, const int lineno) const +const BreakpointInfo& BreakptMgr::GetBreakpoint(const wxString& fileName, const int lineno) const { wxFileName fn(fileName); fn.Normalize(wxPATH_NORM_ALL & ~wxPATH_NORM_LONG); - BreakpointInfoVec_t::const_iterator iter = std::find_if(m_bps.begin(), m_bps.end(), BreakpointInfo::PredicateByFileAndLine(fn.GetFullPath(), lineno)); - if ( iter == m_bps.end() ) { + BreakpointInfoVec_t::const_iterator iter = + std::find_if(m_bps.begin(), m_bps.end(), BreakpointInfo::PredicateByFileAndLine(fn.GetFullPath(), lineno)); + if(iter == m_bps.end()) { static BreakpointInfo empty; return empty; } return *iter; } -void BreakptMgr::GetTooltip(const wxString& fileName, int lineno, wxString& tip, wxString &title) +void BreakptMgr::GetTooltip(const wxString& fileName, int lineno, wxString& tip, wxString& title) { - if (fileName.IsEmpty() || lineno < 0) { - return ; + if(fileName.IsEmpty() || lineno < 0) { + return; } - const BreakpointInfo &bp = GetBreakpoint(fileName, lineno); - if ( bp.IsNull() ) { - return ; + const BreakpointInfo& bp = GetBreakpoint(fileName, lineno); + if(bp.IsNull()) { + return; } int id = (bp.debugger_id > 0 ? bp.debugger_id : bp.internal_id - FIRST_INTERNAL_ID); title << _("Breakpoint# ") << id << ""; - + bool isSimple = true; - if (bp.is_temp) { + if(bp.is_temp) { tip << _("Temporary \n"); isSimple = false; } - - if (! bp.is_enabled) { + + if(!bp.is_enabled) { tip << _(" (disabled)\n"); isSimple = false; } - - if (bp.ignore_number > 0) { + + if(bp.ignore_number > 0) { tip << wxString::Format(_("Ignore-count = %u\n"), bp.ignore_number); isSimple = false; } - if (! bp.conditions.IsEmpty()) { + if(!bp.conditions.IsEmpty()) { tip << wxString::Format(_("Condition:\n%s\n"), bp.conditions.c_str()); isSimple = false; } - if (! bp.commandlist.IsEmpty()) { + if(!bp.commandlist.IsEmpty()) { tip << wxString::Format(_("Commands:\n%s\n"), bp.commandlist.c_str()); isSimple = false; } - - if ( isSimple ) { + + if(isSimple) { tip << _("Normal breakpoint\n"); } @@ -210,7 +216,7 @@ { LEditor::Vec_t editors; clMainFrame::Get()->GetMainBook()->GetAllEditors(editors, MainBook::kGetAll_IncludeDetached); - for(size_t i=0; iDelAllBreakpointMarkers(); } } @@ -219,9 +225,9 @@ void BreakptMgr::RefreshBreakpointMarkers() { std::vector editors; - clMainFrame::Get()->GetMainBook()->GetAllEditors( editors , MainBook::kGetAll_IncludeDetached); + clMainFrame::Get()->GetMainBook()->GetAllEditors(editors, MainBook::kGetAll_IncludeDetached); - for(size_t i=0; i bps; - for(size_t i=0; iGetFileName() == b.file) && (b.lineno != -1)) { + if((editor->GetFileName() == b.file) && (b.lineno != -1)) { bps.insert(std::pair(b.lineno, b)); } } @@ -243,16 +249,17 @@ // the multimap now holds a table of // line numbers and breakpointsInfo, collect all line numbers's breakpoint info into vector // and place markers - for(std::multimap::iterator i=bps.begin(); i != bps.end(); i++) { - std::pair::iterator, std::multimap::iterator> range = bps.equal_range(i->first); + for(std::multimap::iterator i = bps.begin(); i != bps.end(); i++) { + std::pair::iterator, std::multimap::iterator> range = + bps.equal_range(i->first); std::vector v; - int count=0; + int count = 0; for(std::multimap::iterator it = range.first; it != range.second; it++) { v.push_back(it->second); ++count; } // Inc over the rest of the range, otherwise there'll be duplication when there's >1 bp on a line - while (--count > 0) { + while(--count > 0) { ++i; } // Now work out which is the most significant (in marker terms) and tell the editor @@ -263,12 +270,12 @@ // Given a list of bps, tell the editor which is the most significant (in marker terms) void BreakptMgr::DoProvideBestBP_Type(LEditor* editor, const std::vector& li) { - if ((editor == NULL) || (li.size() == 0)) { + if((editor == NULL) || (li.size() == 0)) { return; } // If there's an enabled bp of any sort, it beats all disabled ones // Otherwise, BP_type_break > BP_type_tempbreak > BP_type_cmdlistbreak > BP_type_condbreak > BP_type_ignoredbreak - int values[BP_LAST_MARKED_ITEM+1]; // Allow for BP_type_none = 0 + int values[BP_LAST_MARKED_ITEM + 1]; // Allow for BP_type_none = 0 values[BP_type_break] = 100; values[BP_type_tempbreak] = 90; values[BP_type_cmdlistbreak] = 80; @@ -280,28 +287,28 @@ int best_value = 0; bool is_disabled = false; std::vector::const_iterator iter = li.begin(); - for (; iter != li.end(); ++iter) { + for(; iter != li.end(); ++iter) { BreakpointType bpt = iter->bp_type; - if (bpt == BP_type_invalid) { + if(bpt == BP_type_invalid) { continue; } int val = values[bpt]; - if (!iter->is_enabled) { - val /= 2; // Halving the value for disability means that abled always outranks disabled, without otherwise interfering with the order + if(!iter->is_enabled) { + val /= 2; // Halving the value for disability means that abled always outranks disabled, without otherwise + // interfering with the order } - if (val > best_value) { + if(val > best_value) { best = bpt; best_value = val; - is_disabled = ! iter->is_enabled; // If the new item wins, store its data + is_disabled = !iter->is_enabled; // If the new item wins, store its data } } - - if (best > 0) { + if(best > 0) { // ATTN: this wierd allocation is due to bug in optimization of g++ // which seems to crash (removing optimization fixes this problem, // but we prefer to stick with optimization level 2) - std::vector *v = new std::vector(li); + std::vector* v = new std::vector(li); editor->SetBreakpointMarker(li.at(0).lineno, best, is_disabled, *v); delete v; } @@ -311,8 +318,8 @@ void BreakptMgr::DebuggerStopped() { std::vector newList; - for (size_t i=0; iIsRunning()) { - if (id > FIRST_INTERNAL_ID) { + // remove it from the debugger if it's running + IDebugger* dbgr = DebuggerMgr::Get().GetActiveDebugger(); + if(dbgr && dbgr->IsRunning()) { + if(id > FIRST_INTERNAL_ID) { // This shouldn't happen while the debugger is running (debugger_id should be valid) // But if it does, assume it was a bp that gdb couldn't create, and just remove from the bp list } else { bool contIsNeeded = PauseDebuggerIfNeeded(); - if (dbgr->RemoveBreak(id)) { + if(dbgr->RemoveBreak(id)) { // Strangely, -break-delete doesn't output any confirmation except for ^done. So do it here wxString msg = ((m_bps.at(index).bp_type == BP_type_watchpt) ? _("Watchpoint ") : _("Breakpoint ")); - ManagerST::Get()->UpdateAddLine(msg + wxString::Format(_("%u deleted"), id)); + ManagerST::Get()->UpdateAddLine(msg + wxString::Format(_("%i deleted"), (int)id)); } - if (contIsNeeded) { + if(contIsNeeded) { dbgr->Continue(); } } @@ -369,22 +376,21 @@ // Delete all markers before removing bp from the vector. Otherwise if id was the last in a file... DeleteAllBreakpointMarkers(); - m_bps.erase(m_bps.begin()+index); + m_bps.erase(m_bps.begin() + index); RefreshBreakpointMarkers(); return true; } -int BreakptMgr::DelBreakpointByLineno(const wxString& file, const int lineno) +bool BreakptMgr::DelBreakpointByLineno(const wxString& file, const int lineno) { const BreakpointInfo& bp = GetBreakpoint(file, lineno); - if ( bp.IsNull() ) { + if(bp.IsNull()) { return false; } - int bpId = bp.GetId(); - if(bpId == wxID_CANCEL || bpId == BP_type_none) - return false; + double bpId = bp.GetId(); + if(bpId == wxID_CANCEL || bpId == BP_type_none) return false; DelBreakpoint(bpId); return true; @@ -392,28 +398,29 @@ void BreakptMgr::ApplyPendingBreakpoints() { - if (!PendingBreakpointsExist()) { + if(!PendingBreakpointsExist()) { return; // Nothing to do } - IDebugger *dbgr = DebuggerMgr::Get().GetActiveDebugger(); - if (!(dbgr && dbgr->IsRunning())) { + IDebugger* dbgr = DebuggerMgr::Get().GetActiveDebugger(); + if(!(dbgr && dbgr->IsRunning())) { return; // If the debugger isn't running, there's no point (and we shouldn't have reached here anyway) } bool contIsNeeded = PauseDebuggerIfNeeded(); - for (size_t i=m_pendingBreakpointsList.size(); i>0; --i) { - BreakpointInfo bp = m_pendingBreakpointsList.at(i-1); + for(size_t i = m_pendingBreakpointsList.size(); i > 0; --i) { + BreakpointInfo bp = m_pendingBreakpointsList.at(i - 1); // First check to see if the debugger already accepted this one // The answer should be no, as acceptance should have removed it from this list int index = FindBreakpointById(bp.internal_id, m_bps); - if (index != wxNOT_FOUND) { - // Hmm. See if there's a valid debugger_id. If so, the bp *was* accepted, and shouldn't be on the pending list - if (m_bps.at(index).debugger_id != -1) { - m_pendingBreakpointsList.erase(m_pendingBreakpointsList.begin()+i-1); + if(index != wxNOT_FOUND) { + // Hmm. See if there's a valid debugger_id. If so, the bp *was* accepted, and shouldn't be on the pending + // list + if(m_bps.at(index).debugger_id != -1) { + m_pendingBreakpointsList.erase(m_pendingBreakpointsList.begin() + i - 1); } - continue; // The bp hasn't been assessed yet; it's probably pointless to try to reapply it atm + continue; // The bp hasn't been assessed yet; it's probably pointless to try to reapply it atm } // This bp didn't 'take' the first time; "..try, try again" :p @@ -421,7 +428,7 @@ m_bps.push_back(bp); } - if (contIsNeeded) { + if(contIsNeeded) { dbgr->Continue(); } @@ -430,11 +437,11 @@ void BreakptMgr::DelAllBreakpoints() { - IDebugger *dbgr = DebuggerMgr::Get().GetActiveDebugger(); - if (dbgr && dbgr->IsRunning()) { + IDebugger* dbgr = DebuggerMgr::Get().GetActiveDebugger(); + if(dbgr && dbgr->IsRunning()) { bool contIsNeeded = PauseDebuggerIfNeeded(); dbgr->RemoveAllBreaks(); - if (contIsNeeded) { + if(contIsNeeded) { dbgr->Continue(); } } @@ -442,7 +449,7 @@ // Delete all markers before clearing m_bps, otherwise we won't know which files they were in DeleteAllBreakpointMarkers(); m_bps.clear(); - m_pendingBreakpointsList.clear(); // Delete any pending bps too + m_pendingBreakpointsList.clear(); // Delete any pending bps too clMainFrame::Get()->GetDebuggerPane()->GetBreakpointView()->Initialize(); } @@ -451,19 +458,20 @@ unsigned int successes = 0; bool debuggerIsRunning = false; bool contIsNeeded = false; - - IDebugger *dbgr = DebuggerMgr::Get().GetActiveDebugger(); - if (dbgr && dbgr->IsRunning()) { + + IDebugger* dbgr = DebuggerMgr::Get().GetActiveDebugger(); + if(dbgr && dbgr->IsRunning()) { debuggerIsRunning = true; contIsNeeded = PauseDebuggerIfNeeded(); } - for (size_t i=0; iSetEnabledState(bp.debugger_id, enabled)) { + for(size_t i = 0; i < m_bps.size(); ++i) { + BreakpointInfo& bp = m_bps.at(i); + if(((bp.debugger_id != -1) || !debuggerIsRunning) // Sanity check for when the debugger's running + && + (bp.is_enabled != enabled)) { // No point setting it to the current status + if(debuggerIsRunning) { + if(dbgr->SetEnabledState(bp.debugger_id, enabled)) { bp.is_enabled = enabled; ++successes; } @@ -474,11 +482,11 @@ } } - if (debuggerIsRunning && contIsNeeded) { + if(debuggerIsRunning && contIsNeeded) { dbgr->Continue(); } - if (successes) { + if(successes) { RefreshBreakpointMarkers(); clMainFrame::Get()->GetDebuggerPane()->GetBreakpointView()->Initialize(); @@ -493,12 +501,12 @@ void BreakptMgr::SetBreakpointDebuggerID(const int internal_id, const int debugger_id) { std::vector::iterator iter = m_bps.begin(); - for (; iter != m_bps.end(); ++iter) { - if (iter->internal_id == internal_id) { + for(; iter != m_bps.end(); ++iter) { + if(iter->internal_id == internal_id) { // We've found the match. However, if breakpoint creation had failed, confess, then delete - if (debugger_id == -1) { + if(debugger_id == -1) { wxString msg; - if (iter->bp_type == BP_type_watchpt) { + if(iter->bp_type == BP_type_watchpt) { msg = _("Watchpoint creation unsuccessful"); } else { msg = _("Breakpoint creation unsuccessful"); @@ -506,7 +514,8 @@ // add message to the debugger tab ManagerST::Get()->UpdateAddLine(msg); - DeleteAllBreakpointMarkers(); // Must do this before the erase, otherwise the last-bp-in-file will be missed + DeleteAllBreakpointMarkers(); // Must do this before the erase, otherwise the last-bp-in-file will be + // missed m_bps.erase(iter); // update the UI as well @@ -518,8 +527,8 @@ iter->debugger_id = debugger_id; // Remove the bp from the 'pending' array int index = FindBreakpointById(internal_id, m_pendingBreakpointsList); - if (index != wxNOT_FOUND) { - m_pendingBreakpointsList.erase(m_pendingBreakpointsList.begin()+index); + if(index != wxNOT_FOUND) { + m_pendingBreakpointsList.erase(m_pendingBreakpointsList.begin() + index); } // update the UI as well clMainFrame::Get()->GetDebuggerPane()->GetBreakpointView()->Initialize(); @@ -532,46 +541,46 @@ // Set a breakpoint's ignore count bool BreakptMgr::IgnoreByLineno(const wxString& file, const int lineno) { - BreakpointInfo &bp = GetBreakpoint(file, lineno); - if ( bp.IsNull() ) { + BreakpointInfo& bp = GetBreakpoint(file, lineno); + if(bp.IsNull()) { return false; } - - if (bp.bp_type == BP_type_invalid) { + + if(bp.bp_type == BP_type_invalid) { return false; } - long newvalue = ::wxGetNumberFromUser( _("Please enter the new ignore-count"), wxT(""), _("Set ignore-count"), bp.ignore_number, 0, 1000000); - if ((newvalue == -1) || (newvalue == (long)bp.ignore_number)) { + long newvalue = ::wxGetNumberFromUser( + _("Please enter the new ignore-count"), wxT(""), _("Set ignore-count"), bp.ignore_number, 0, 1000000); + if((newvalue == -1) || (newvalue == (long)bp.ignore_number)) { return false; } - if (! SetBPIgnoreCount(bp.GetId(), newvalue)) { + if(!SetBPIgnoreCount(bp.GetId(), newvalue)) { return false; } bp.ignore_number = newvalue; - + // Explicitly set the best type, in case the user just reset a previously-ignored bp - SetBestBPType( bp ); - + SetBestBPType(bp); + RefreshBreakpointMarkers(); return true; } void BreakptMgr::EditBreakpointByLineno(const wxString& file, const int lineno) { - const BreakpointInfo &bp = GetBreakpoint(file, lineno); - if ( bp.IsNull() ) - return; - + const BreakpointInfo& bp = GetBreakpoint(file, lineno); + if(bp.IsNull()) return; + int bid = bp.GetId(); - if (bid == wxID_CANCEL || bid == BP_type_none) { + if(bid == wxID_CANCEL || bid == BP_type_none) { return; } int index = FindBreakpointById(bid, m_bps); - if (index == wxNOT_FOUND) { + if(index == wxNOT_FOUND) { return; } @@ -579,11 +588,11 @@ EditBreakpoint(index, dummy); } -void BreakptMgr::EditBreakpoint(int index, bool &bpExist) +void BreakptMgr::EditBreakpoint(int index, bool& bpExist) { // sanity bpExist = true; - if (index < 0 || index >= (int)m_bps.size()) { + if(index < 0 || index >= (int)m_bps.size()) { wxLogMessage(wxT("BreakptMgr::EditBreakpoint: Insane index")); bpExist = false; return; @@ -592,52 +601,52 @@ BreakpointInfo bp = m_bps.at(index); BreakptPropertiesDlg dlg(NULL); wxString title; - if (bp.bp_type == BP_type_watchpt) { + if(bp.bp_type == BP_type_watchpt) { title = _("Properties for watchpoint "); } else { title = _("Properties for breakpoint "); } - int id = bp.debugger_id; - if (id == -1) { + double id = bp.debugger_id; + if(id == -1) { id = bp.internal_id - FIRST_INTERNAL_ID; } title << id; dlg.SetTitle(title); dlg.EnterBPData(bp); - if (dlg.ShowModal() != wxID_OK) { - return ; + if(dlg.ShowModal() != wxID_OK) { + return; } - SetBestBPType(dlg.b); // The edited data's available. Use it to determine the best bp_type - if (bp == dlg.b) { + SetBestBPType(dlg.b); // The edited data's available. Use it to determine the best bp_type + if(bp == dlg.b) { // Nothing was altered - return ; + return; } // We've got our altered dlg.b If the debugger's running, we can update it now // Otherwise, it'll be automatically inserted correctly when the debugger starts - IDebugger *dbgr = DebuggerMgr::Get().GetActiveDebugger(); - if (dbgr && dbgr->IsRunning()) { - if (CanThisBreakpointBeUpdated(dlg.b, bp)) { - if (dlg.b.ignore_number != bp.ignore_number) { - if (! SetBPIgnoreCount(dlg.b.debugger_id, dlg.b.ignore_number)) { - return; // Harsh, but what else can one do? + IDebugger* dbgr = DebuggerMgr::Get().GetActiveDebugger(); + if(dbgr && dbgr->IsRunning()) { + if(CanThisBreakpointBeUpdated(dlg.b, bp)) { + if(dlg.b.ignore_number != bp.ignore_number) { + if(!SetBPIgnoreCount(dlg.b.debugger_id, dlg.b.ignore_number)) { + return; // Harsh, but what else can one do? } } - if (dlg.b.is_enabled != bp.is_enabled) { - if (! SetBPEnabledState(dlg.b.debugger_id, dlg.b.is_enabled)) { - return ; + if(dlg.b.is_enabled != bp.is_enabled) { + if(!SetBPEnabledState(dlg.b.debugger_id, dlg.b.is_enabled)) { + return; } } - if (dlg.b.conditions != bp.conditions) { - if (! SetBPConditon(dlg.b)) { - return ; + if(dlg.b.conditions != bp.conditions) { + if(!SetBPConditon(dlg.b)) { + return; } } - if (dlg.b.commandlist != bp.commandlist) { - if (! SetBPCommands(dlg.b)) { - return ; + if(dlg.b.commandlist != bp.commandlist) { + if(!SetBPCommands(dlg.b)) { + return; } } } else { @@ -648,7 +657,7 @@ // dbgr->Break(bp) doesn't set the ignore/disabled/etc states // but we can't do it now, as we don't yet know the debugger_id // However it will happen later, in SetBreakpointDebuggerID - if (contIsNeeded) { + if(contIsNeeded) { dbgr->Continue(); } } @@ -664,12 +673,11 @@ { std::vector updated_bps; std::vector::const_iterator li_iter = li.begin(); - for (; li_iter != li.end(); ++li_iter) { + for(; li_iter != li.end(); ++li_iter) { int index = FindBreakpointById(li_iter->debugger_id, m_bps); - if (index == wxNOT_FOUND) { + if(index == wxNOT_FOUND) { - if(IsDuplicate(*li_iter, updated_bps)) - continue; + if(IsDuplicate(*li_iter, updated_bps)) continue; // This will happen e.g. if a bp was auto-set on Main() // If so, its internal_id will be invalid @@ -681,14 +689,14 @@ // We've match the debugger_id from -break-list with a bp // Update the ignore-count, then store it in a new vector BreakpointInfo bp = m_bps.at(index); - bp.ignore_number = li_iter->ignore_number; - bp.what = li_iter->what; - bp.at = li_iter->at; + bp.ignore_number = li_iter->ignore_number; + bp.what = li_iter->what; + bp.at = li_iter->at; // Remove it from the m_bps list - m_bps.erase(m_bps.begin()+index); + m_bps.erase(m_bps.begin() + index); - SetBestBPType(bp); // as this might have just changed + SetBestBPType(bp); // as this might have just changed updated_bps.push_back(bp); } } @@ -709,47 +717,47 @@ } // When a a breakpoint is hit, see if it's got a command-list that needs faking -void BreakptMgr::BreakpointHit(int id) +void BreakptMgr::BreakpointHit(double id) { int index = FindBreakpointById(id, m_bps); - if ((index == wxNOT_FOUND) || (index >= FIRST_INTERNAL_ID)) { + if((index == wxNOT_FOUND) || (index >= FIRST_INTERNAL_ID)) { return; } BreakpointInfo bp = m_bps.at(index); - if (! bp.commandlist.IsEmpty()) { - IDebugger *dbgr = DebuggerMgr::Get().GetActiveDebugger(); - if (dbgr && dbgr->IsRunning()) { + if(!bp.commandlist.IsEmpty()) { + IDebugger* dbgr = DebuggerMgr::Get().GetActiveDebugger(); + if(dbgr && dbgr->IsRunning()) { // A likely command, presumably at the end of the command-list, is 'continue' or 'cont' - // Filter this out and do it separately, otherwise Manager::UpdateLostControl isn't called to blank the indicator + // Filter this out and do it separately, otherwise Manager::UpdateLostControl isn't called to blank the + // indicator static wxRegEx reContinue(wxT("(([[:space:]]|(^))((cont$)|(continue)))")); bool needsCont = false; wxString commands = bp.commandlist; - if (reContinue.IsValid() && reContinue.Matches(commands)) { + if(reContinue.IsValid() && reContinue.Matches(commands)) { size_t start, len; - if (reContinue.GetMatch(&start,&len)) { + if(reContinue.GetMatch(&start, &len)) { commands = commands.Left(start); needsCont = true; } } - if (! commands.IsEmpty()) { // Just in case someone's _only_ command is 'continue' ! + if(!commands.IsEmpty()) { // Just in case someone's _only_ command is 'continue' ! dbgr->ExecuteCmd(commands); } - if (needsCont) { + if(needsCont) { dbgr->Continue(); } } } - if (bp.bp_type == BP_type_tempbreak) { + if(bp.bp_type == BP_type_tempbreak) { // If this is a temporary bp, remove it from m_bps now it's been hit // Otherwise it will be treated as a 'Pending' bp, the button will be displayed // and, if clicked, the bp will be resurrected. int index = FindBreakpointById(id, m_bps); - if (index != wxNOT_FOUND) { - m_bps.erase(m_bps.begin()+index); + if(index != wxNOT_FOUND) { + m_bps.erase(m_bps.begin() + index); } - } } @@ -761,10 +769,10 @@ // Make a set of all filenames containing a file-relevant variety of breakpoint std::set filenames; std::vector::iterator iter = m_bps.begin(); - for (; iter != m_bps.end(); ++iter) { + for(; iter != m_bps.end(); ++iter) { // If this bp is a lineno or function type, add its file to the set wxString fileName = iter->file; - if ((!fileName.IsEmpty()) && (iter->memory_address.IsEmpty())) { + if((!fileName.IsEmpty()) && (iter->memory_address.IsEmpty())) { filenames.insert(fileName); } } @@ -772,14 +780,14 @@ return filenames; } -int BreakptMgr::FindBreakpointById(const int id, const std::vector& li) +int BreakptMgr::FindBreakpointById(double id, const std::vector& li) { std::vector::const_iterator iter = li.begin(); - for (; iter != li.end(); ++iter) { + for(; iter != li.end(); ++iter) { BreakpointInfo b = *iter; // If we were passed an id > 10000, it must be internal - int this_id = (id > FIRST_INTERNAL_ID ? b.internal_id : b.debugger_id); - if (id == this_id) { + double this_id = (id > FIRST_INTERNAL_ID ? b.internal_id : b.debugger_id); + if(id == this_id) { return (int)(iter - li.begin()); } } @@ -787,7 +795,7 @@ return wxNOT_FOUND; } -bool BreakptMgr::CanThisBreakpointBeUpdated(const BreakpointInfo &a, const BreakpointInfo &b) const +bool BreakptMgr::CanThisBreakpointBeUpdated(const BreakpointInfo& a, const BreakpointInfo& b) const { // Since, afaik, the only things that *can* be updated are: conditions/commands/ignores/enables, // return true if all but these are == (except for bp_type, which will have changed as a consequence of those) @@ -800,15 +808,15 @@ return (temp == b); } -bool BreakptMgr::SetBPIgnoreCount(const int bid, const int ignorecount) +bool BreakptMgr::SetBPIgnoreCount(double bid, const int ignorecount) { - IDebugger *dbgr = DebuggerMgr::Get().GetActiveDebugger(); - if (dbgr && dbgr->IsRunning()) { + IDebugger* dbgr = DebuggerMgr::Get().GetActiveDebugger(); + if(dbgr && dbgr->IsRunning()) { // If the debugger is already running, tell it about the new ignore level // If not, it'll happen automatically when the debugger does start bool contIsNeeded = PauseDebuggerIfNeeded(); bool result = dbgr->SetIgnoreLevel(bid, ignorecount); - if (contIsNeeded) { + if(contIsNeeded) { dbgr->Continue(); } return result; @@ -818,13 +826,13 @@ bool BreakptMgr::SetBPCommands(const BreakpointInfo& bp) { - IDebugger *dbgr = DebuggerMgr::Get().GetActiveDebugger(); - if (dbgr && dbgr->IsRunning()) { + IDebugger* dbgr = DebuggerMgr::Get().GetActiveDebugger(); + if(dbgr && dbgr->IsRunning()) { // If the debugger is already running, tell it about the commands // If not, it'll happen automatically when the debugger does start bool contIsNeeded = PauseDebuggerIfNeeded(); bool result = dbgr->SetCommands(bp); - if (contIsNeeded) { + if(contIsNeeded) { dbgr->Continue(); } return result; @@ -834,13 +842,13 @@ bool BreakptMgr::SetBPConditon(const BreakpointInfo& bp) { - IDebugger *dbgr = DebuggerMgr::Get().GetActiveDebugger(); - if (dbgr && dbgr->IsRunning()) { + IDebugger* dbgr = DebuggerMgr::Get().GetActiveDebugger(); + if(dbgr && dbgr->IsRunning()) { // If the debugger is already running, tell it about the condition // If not, it'll happen automatically when the debugger does start bool contIsNeeded = PauseDebuggerIfNeeded(); bool result = dbgr->SetCondition(bp); - if (contIsNeeded) { + if(contIsNeeded) { dbgr->Continue(); } return result; @@ -848,15 +856,15 @@ return false; } -bool BreakptMgr::SetBPEnabledState(const int bid, const bool enable) +bool BreakptMgr::SetBPEnabledState(double bid, const bool enable) { - IDebugger *dbgr = DebuggerMgr::Get().GetActiveDebugger(); - if (dbgr && dbgr->IsRunning()) { + IDebugger* dbgr = DebuggerMgr::Get().GetActiveDebugger(); + if(dbgr && dbgr->IsRunning()) { // If the debugger is already running, tell it about the new 'enable' level // If not, it'll happen automatically when the debugger does start bool contIsNeeded = PauseDebuggerIfNeeded(); bool result = dbgr->SetEnabledState(bid, enable); - if (contIsNeeded) { + if(contIsNeeded) { dbgr->Continue(); } return result; @@ -866,26 +874,26 @@ void BreakptMgr::SetBestBPType(BreakpointInfo& bp) { - if (bp.bp_type == BP_type_watchpt) { + if(bp.bp_type == BP_type_watchpt) { return; } - if (bp.ignore_number > 0) { + if(bp.ignore_number > 0) { bp.bp_type = BP_type_ignoredbreak; return; } - if (bp.IsConditional()) { + if(bp.IsConditional()) { bp.bp_type = BP_type_condbreak; return; } - if (!bp.commandlist.IsEmpty()) { + if(!bp.commandlist.IsEmpty()) { bp.bp_type = BP_type_cmdlistbreak; return; } - if (bp.is_temp) { + if(bp.is_temp) { bp.bp_type = BP_type_tempbreak; return; } @@ -896,8 +904,8 @@ // If the debugger is running but can't interact, pause it and return true (to flag needs restart) bool BreakptMgr::PauseDebuggerIfNeeded() { - IDebugger *dbgr = DebuggerMgr::Get().GetActiveDebugger(); - if (dbgr && dbgr->IsRunning() && !ManagerST::Get()->DbgCanInteract()) { + IDebugger* dbgr = DebuggerMgr::Get().GetActiveDebugger(); + if(dbgr && dbgr->IsRunning() && !ManagerST::Get()->DbgCanInteract()) { SetExpectingControl(true); dbgr->Interrupt(); return true; @@ -908,14 +916,13 @@ void BreakptMgr::DeleteAllBreakpointsByFileName(const wxString& fileName) { std::vector::iterator iter = m_bps.begin(); - while (iter != m_bps.end()) { - if ((fileName == iter->file) && (iter->lineno != -1)) { + while(iter != m_bps.end()) { + if((fileName == iter->file) && (iter->lineno != -1)) { iter = m_bps.erase(iter); } else { ++iter; } } - } void BreakptMgr::SetBreakpoints(const std::vector& bps) @@ -926,9 +933,9 @@ bool BreakptMgr::AreThereEnabledBreakpoints(bool enabled /*= true*/) { - for (size_t i=0; i& breakpoints = session.GetBreakpoints(); - for (std::vector::const_iterator itr = breakpoints.begin(); itr != breakpoints.end(); ++itr) { + for(std::vector::const_iterator itr = breakpoints.begin(); itr != breakpoints.end(); ++itr) { BreakpointInfo bp = *itr; bp.internal_id = GetNextID(); - bp.origin = BO_Editor; + bp.origin = BO_Editor; AddBreakpoint(bp); } RefreshBreakpointMarkers(); @@ -957,8 +961,8 @@ void BreakptMgr::DragBreakpoint(LEditor* editor, int line, wxBitmap bitmap) { // See if there's a bp marker under the cursor. If so, let the user drag it - BreakpointInfo &bp = GetBreakpoint(editor->GetFileName().GetFullPath(), line+1); - if ( bp.IsNull() ) { + BreakpointInfo& bp = GetBreakpoint(editor->GetFileName().GetFullPath(), line + 1); + if(bp.IsNull()) { return; } @@ -968,10 +972,10 @@ void BreakptMgr::DropBreakpoint(const BreakpointInfo& bp, int newline) { - if ( DelBreakpoint(bp.GetId()) ) { + if(DelBreakpoint(bp.GetId())) { BreakpointInfo new_bp = bp; new_bp.lineno = newline; - AddBreakpoint( new_bp ); + AddBreakpoint(new_bp); } } @@ -990,7 +994,7 @@ bool myDragImage::StartDrag() { - BeginDrag( wxPoint(0, 0),editor, false ); + BeginDrag(wxPoint(0, 0), editor, false); wxPoint pt = editor->ScreenToClient(wxGetMousePosition()); // Store the initial x position, as we know it must be in the bp margin m_startx = pt.x; @@ -1016,71 +1020,76 @@ // If the cursor is within spitting distance of the bp margin, assume it's a genuine drop wxPoint pt = event.GetPosition(); - if ((pt.x < 0) || ((pt.x - m_startx) > 10)) { + if((pt.x < 0) || ((pt.x - m_startx) > 10)) { return; } // Find the desired new line, and check it's different from the previous long pos = editor->PositionFromPoint(pt); int newline = editor->LineFromPosition(pos); - if ((newline+1) != m_bp.lineno) { + if((newline + 1) != m_bp.lineno) { ManagerST::Get()->GetBreakpointsMgr()->DropBreakpoint(m_bp, newline); } } -void BreakptMgr::RefreshBreakpointsForEditor(LEditor* editor) -{ - DoRefreshFileBreakpoints( editor ); -} +void BreakptMgr::RefreshBreakpointsForEditor(LEditor* editor) { DoRefreshFileBreakpoints(editor); } bool BreakptMgr::IsDuplicate(const BreakpointInfo& bp, const std::vector& bpList) { + if(bp.debugger_id != wxNOT_FOUND) { + return false; // A real breakpoint + } + wxString bpFile = bp.file; if(bpFile.IsEmpty() == false) { wxFileName bpFileName(bp.file); bpFileName.Normalize(wxPATH_NORM_ALL & ~wxPATH_NORM_LONG); bpFile = bpFileName.GetFullPath(); } - for(size_t i=0; i bps; std::map uniqueNormalBreakpoints; - for(size_t i=0; i::iterator iter = uniqueNormalBreakpoints.begin(); - for ( ; iter != uniqueNormalBreakpoints.end(); ++iter ) { - bps.push_back( iter->second ); + for(; iter != uniqueNormalBreakpoints.end(); ++iter) { + bps.push_back(iter->second); } - m_bps.swap( bps ); -} - -int BreakptMgr::DelBreakpointByAddress(const wxString& address) + m_bps.swap(bps); +} + +int BreakptMgr::DelBreakpointByAddress(const wxString& address) { std::vector allBps; // Start by finding all on the line GetBreakpoints(allBps); - + int breakpointsRemoved = 0; - for(size_t i=0; i& li); // Tells the editor which is the most appropriate bp marker to show + void DoProvideBestBP_Type( + LEditor* editor, + const std::vector& li); // Tells the editor which is the most appropriate bp marker to show // Delete all line-type breakpoint markers in all editors // Done before refreshing after a delete, lest it was the last bp in a file @@ -62,12 +65,12 @@ /** * Return the index of the bp with the passed id, in the vector that will normally be m_bps */ - int FindBreakpointById(const int id, const std::vector& li); + int FindBreakpointById(double id, const std::vector& li); /** * Can gdb accept this alteration, or will be bp have to be replaced? */ - bool CanThisBreakpointBeUpdated(const BreakpointInfo &bp1, const BreakpointInfo &bp2) const; + bool CanThisBreakpointBeUpdated(const BreakpointInfo& bp1, const BreakpointInfo& bp2) const; /** * Sets bp.bp_type to the value most appropriate to its contents @@ -77,49 +80,42 @@ /** * Ignore this bp */ - bool SetBPIgnoreCount(const int bid, const int ignorecount); + bool SetBPIgnoreCount(double bid, const int ignorecount); /** * Enable or Disable this breakpoint */ - bool SetBPEnabledState(const int bid, const bool enable); + bool SetBPEnabledState(double bid, const bool enable); /** * Set this breakpoint's condition to that in bp.condition */ - bool SetBPConditon(const BreakpointInfo &bp); + bool SetBPConditon(const BreakpointInfo& bp); /** * Set this breakpoint's command-list to that in bp.commandlist */ - bool SetBPCommands(const BreakpointInfo &bp); + bool SetBPCommands(const BreakpointInfo& bp); /** * Clear the list of breakpoints */ - void Clear() { - m_bps.clear(); - } + void Clear() { m_bps.clear(); } - bool IsDuplicate(const BreakpointInfo &bp, const std::vector& bpList); + bool IsDuplicate(const BreakpointInfo& bp, const std::vector& bpList); void DoRemoveDuplicateBreakpoints(); -public: - void SetExpectingControl(bool expectingControl) { - this->m_expectingControl = expectingControl; - } - bool GetExpectingControl() const { - return m_expectingControl; - } - BreakptMgr() { +public: + void SetExpectingControl(bool expectingControl) { this->m_expectingControl = expectingControl; } + bool GetExpectingControl() const { return m_expectingControl; } + BreakptMgr() + { NextInternalID = FIRST_INTERNAL_ID; m_expectingControl = false; } - ~BreakptMgr() { - Clear(); - } + ~BreakptMgr() { Clear(); } /** * @brief refresh the breakpoints marker for a given editor @@ -142,7 +138,8 @@ * @brief Store list of breakpoints in the pending-breakpoints list * @param bps */ - void SetPendingBreakpoints(const std::vector& bps) { + void SetPendingBreakpoints(const std::vector& bps) + { m_pendingBreakpointsList.clear(); m_pendingBreakpointsList = bps; } @@ -150,9 +147,7 @@ /** * @brief Returns true if there are pending breakpoints */ - bool PendingBreakpointsExist() { - return ! m_pendingBreakpointsList.empty(); - } + bool PendingBreakpointsExist() { return !m_pendingBreakpointsList.empty(); } /** * Send again to the debugger any breakpoints that weren't accepted by the debugger the first time @@ -165,13 +160,17 @@ * debugger, so it must be called *before* starting the debugger * @param fileName */ - void DeleteAllBreakpointsByFileName(const wxString &fileName); + void DeleteAllBreakpointsByFileName(const wxString& fileName); /** * Add a breakpoint to the current debugger at the given line-number/file * Depending on the parameters, a temporary/ignored/conditional/commandlist bp can be created */ - bool AddBreakpointByLineno(const wxString& file, const int lineno, const wxString& conditions = wxT(""), bool is_temp = false, bool is_disabled = false); + bool AddBreakpointByLineno(const wxString& file, + const int lineno, + const wxString& conditions = wxT(""), + bool is_temp = false, + bool is_disabled = false); /** * Add a breakpoint using the 'Properties' dialog @@ -184,37 +183,37 @@ * all breakpoints will be passed to the debugger * once started */ - bool AddBreakpoint(const BreakpointInfo &bp); + bool AddBreakpoint(const BreakpointInfo& bp); /** * Delete break point by id */ - bool DelBreakpoint(const int id); + bool DelBreakpoint(double id); /** * Delete break point by file and line */ - int DelBreakpointByLineno(const wxString& file, const int lineno); - + bool DelBreakpointByLineno(const wxString& file, const int lineno); + /** * @brief delete all breakpoints from a given memort address * @param address the memory address * @return number of breakpoints removed */ - int DelBreakpointByAddress(const wxString &address); - + int DelBreakpointByAddress(const wxString& address); + /** * @brief add breakpoint by memory address. * @param address the memory address * @return true of success, false otherwise */ - bool AddBreakpointByAddress(const wxString &address); + bool AddBreakpointByAddress(const wxString& address); /** * @brief return list of allmemory breakpoints * @param memoryBps */ void GetAllMemoryBreakpoints(BreakpointInfoVec_t& memoryBps); - + /** * Summon the BreakptProperties dialog for a bp */ @@ -228,7 +227,7 @@ /** * return list of breakpoints */ - void GetBreakpoints(std::vector &li); + void GetBreakpoints(std::vector& li); /** * When a breakpoint is added, the debugger_id it returns finally arrives here @@ -239,8 +238,8 @@ /** * @brief return the breakpoint for a given file/line */ - BreakpointInfo& GetBreakpoint(const wxString &fileName, const int lineno); - const BreakpointInfo& GetBreakpoint(const wxString &fileName, const int lineno) const; + BreakpointInfo& GetBreakpoint(const wxString& fileName, const int lineno); + const BreakpointInfo& GetBreakpoint(const wxString& fileName, const int lineno) const; /** * Returns a string containing details of any breakpoints on this line @@ -272,9 +271,7 @@ /** * UpdateUI for SetAllBreakpointsEnabledState, disabled version */ - bool AreThereDisabledBreakpoints() { - return AreThereEnabledBreakpoints(false); - } + bool AreThereDisabledBreakpoints() { return AreThereEnabledBreakpoints(false); } /** * remove all breakpoints @@ -284,7 +281,7 @@ /** * The 'edit a breakpoint' dialog */ - void EditBreakpoint(int index, bool &bpExist); + void EditBreakpoint(int index, bool& bpExist); /** * If the debugger is running but can't interact, pause it. @@ -295,7 +292,7 @@ /** * Notification from the debugger that breakpoint id was just hit */ - void BreakpointHit(int id); + void BreakpointHit(double id); /** * Starts 'drag'n'drop' for breakpoints @@ -310,16 +307,12 @@ /** * Getter for the myDragImage pointer */ - myDragImage* GetDragImage() { - return m_dragImage; - } + myDragImage* GetDragImage() { return m_dragImage; } /** * Get a unique id for a breakpoint, to use when the debugger isn't running */ - int GetNextID() { - return ++NextInternalID; - } + int GetNextID() { return ++NextInternalID; } /** * Save session @@ -332,7 +325,7 @@ void LoadSession(const SessionEntry& session); }; -class myDragImage : public wxDragImage, public wxEvtHandler +class myDragImage : public wxDragImage, public wxEvtHandler { LEditor* editor; BreakpointInfo m_bp; @@ -345,4 +338,4 @@ void OnMotion(wxMouseEvent& event); void OnEndDrag(wxMouseEvent& event); }; -#endif //BREAKPOINTS_MANAGER_H +#endif // BREAKPOINTS_MANAGER_H diff -Nru codelite-8.0.1+dfsg2/LiteEditor/buildorderbasepage.cpp codelite-9.0+dfsg/LiteEditor/buildorderbasepage.cpp --- codelite-8.0.1+dfsg2/LiteEditor/buildorderbasepage.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/buildorderbasepage.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,28 +1,3 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2014 The CodeLite Team -// file name : buildorderbasepage.cpp -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - ////////////////////////////////////////////////////////////////////// // This file was auto-generated by codelite's wxCrafter Plugin // wxCrafter project file: depend_dlg_page.wxcp @@ -122,11 +97,12 @@ bSizer7->Add(m_buttonApply, 0, wxALL|wxEXPAND, 5); + SetName(wxT("DependenciesPageBase")); SetSizeHints(-1,-1); if ( GetSizer() ) { GetSizer()->Fit(this); } - Centre(wxBOTH); + CentreOnParent(wxBOTH); // Connect events m_choiceProjectConfig->Connect(wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler(DependenciesPageBase::OnConfigChanged), NULL, this); m_checkListProjectList->Connect(wxEVT_COMMAND_CHECKLISTBOX_TOGGLED, wxCommandEventHandler(DependenciesPageBase::OnCheckListItemToggled), NULL, this); diff -Nru codelite-8.0.1+dfsg2/LiteEditor/buildorderbasepage.h codelite-9.0+dfsg/LiteEditor/buildorderbasepage.h --- codelite-8.0.1+dfsg2/LiteEditor/buildorderbasepage.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/buildorderbasepage.h 2015-10-11 13:56:07.000000000 +0000 @@ -1,36 +1,11 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2014 The CodeLite Team -// file name : buildorderbasepage.h -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - ////////////////////////////////////////////////////////////////////// // This file was auto-generated by codelite's wxCrafter Plugin // wxCrafter project file: depend_dlg_page.wxcp // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// -#ifndef DEPEND_DLG_PAGE_BASE_CLASSES_H -#define DEPEND_DLG_PAGE_BASE_CLASSES_H +#ifndef CODELITE_LITEEDITOR_DEPEND_DLG_PAGE_BASE_CLASSES_H +#define CODELITE_LITEEDITOR_DEPEND_DLG_PAGE_BASE_CLASSES_H #include #include @@ -44,6 +19,12 @@ #include #include #include +#if wxVERSION_NUMBER >= 2900 +#include +#include +#include +#include +#endif class DependenciesPageBase : public wxPanel { @@ -67,6 +48,15 @@ virtual void OnApplyButtonUI(wxUpdateUIEvent& event) { event.Skip(); } public: + wxStaticText* GetStaticText3() { return m_staticText3; } + wxChoice* GetChoiceProjectConfig() { return m_choiceProjectConfig; } + wxStaticText* GetStaticText1() { return m_staticText1; } + wxCheckListBox* GetCheckListProjectList() { return m_checkListProjectList; } + wxStaticText* GetStaticText2() { return m_staticText2; } + wxListBox* GetListBoxBuildOrder() { return m_listBoxBuildOrder; } + wxButton* GetButtonUp() { return m_buttonUp; } + wxButton* GetButtonDown() { return m_buttonDown; } + wxButton* GetButtonApply() { return m_buttonApply; } DependenciesPageBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxTAB_TRAVERSAL); virtual ~DependenciesPageBase(); }; diff -Nru codelite-8.0.1+dfsg2/LiteEditor/buildsettingstabbase.h codelite-9.0+dfsg/LiteEditor/buildsettingstabbase.h --- codelite-8.0.1+dfsg2/LiteEditor/buildsettingstabbase.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/buildsettingstabbase.h 2015-10-11 13:56:07.000000000 +0000 @@ -4,8 +4,8 @@ // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// -#ifndef BUILDTABSETTINGS_BASE_CLASSES_H -#define BUILDTABSETTINGS_BASE_CLASSES_H +#ifndef CODELITE_LITEEDITOR_BUILDTABSETTINGS_BASE_CLASSES_H +#define CODELITE_LITEEDITOR_BUILDTABSETTINGS_BASE_CLASSES_H #include #include diff -Nru codelite-8.0.1+dfsg2/LiteEditor/BuildTabTopPanel.h codelite-9.0+dfsg/LiteEditor/BuildTabTopPanel.h --- codelite-8.0.1+dfsg2/LiteEditor/BuildTabTopPanel.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/BuildTabTopPanel.h 2015-10-11 13:56:07.000000000 +0000 @@ -27,7 +27,7 @@ #define BUILDTABTOPPANEL_H #include "cl_defs.h" -#if CL_USE_NEW_BUILD_TAB +#if 1 #include "wxcrafter.h" diff -Nru codelite-8.0.1+dfsg2/LiteEditor/clang_code_completion.cpp codelite-9.0+dfsg/LiteEditor/clang_code_completion.cpp --- codelite-8.0.1+dfsg2/LiteEditor/clang_code_completion.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/clang_code_completion.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -235,7 +235,7 @@ wxString project = e.GetProjectName(); wxString config = e.GetConfigurationName(); - BuildConfigPtr bldConf = WorkspaceST::Get()->GetProjBuildConf(project, config); + BuildConfigPtr bldConf = clCxxWorkspaceST::Get()->GetProjBuildConf(project, config); if(bldConf && !bldConf->IsCustomBuild()) { wxString cxx = bldConf->GetCompiler()->GetTool(wxT("CXX")); wxString cc = bldConf->GetCompiler()->GetTool(wxT("CC")); diff -Nru codelite-8.0.1+dfsg2/LiteEditor/clang_driver.cpp codelite-9.0+dfsg/LiteEditor/clang_driver.cpp --- codelite-8.0.1+dfsg2/LiteEditor/clang_driver.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/clang_driver.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -267,7 +267,7 @@ // Build the TU file name wxFileName fnSourceFile(sourceFile); - pchfile << WorkspaceST::Get()->GetWorkspaceFileName().GetPath() << wxFileName::GetPathSeparator() << wxT(".clang"); + pchfile << clCxxWorkspaceST::Get()->GetWorkspaceFileName().GetPath() << wxFileName::GetPathSeparator() << wxT(".clang"); { wxLogNull nl; @@ -344,7 +344,7 @@ LocalWorkspaceST::Get()->GetParserPaths(workspaceIncls, dummy); for(size_t i = 0; i < workspaceIncls.GetCount(); i++) { wxFileName fn(workspaceIncls.Item(i).Trim().Trim(false), wxT("")); - fn.MakeAbsolute(WorkspaceST::Get()->GetWorkspaceFileName().GetPath()); + fn.MakeAbsolute(clCxxWorkspaceST::Get()->GetWorkspaceFileName().GetPath()); cppCompileArgs.Add(wxString::Format(wxT("-I%s"), fn.GetPath().c_str())); cCompileArgs.Add(wxString::Format(wxT("-I%s"), fn.GetPath().c_str())); } @@ -383,7 +383,7 @@ PluginManager::Get(), ManagerST::Get()->GetActiveProjectName()), wxT("")); - fn.MakeAbsolute(WorkspaceST::Get()->GetWorkspaceFileName().GetPath()); + fn.MakeAbsolute(clCxxWorkspaceST::Get()->GetWorkspaceFileName().GetPath()); cppCompileArgs.Add(wxString::Format(wxT("-I%s"), fn.GetPath().c_str())); cCompileArgs.Add(wxString::Format(wxT("-I%s"), fn.GetPath().c_str())); } @@ -797,7 +797,7 @@ wxLogNull nolog; wxString cachePath; - cachePath << WorkspaceST::Get()->GetWorkspaceFileName().GetPath() << wxFileName::GetPathSeparator() + cachePath << clCxxWorkspaceST::Get()->GetWorkspaceFileName().GetPath() << wxFileName::GetPathSeparator() << wxT(".clang"); wxMkdir(cachePath); ClangTUCache::DeleteDirectoryContent(cachePath); diff -Nru codelite-8.0.1+dfsg2/LiteEditor/clang_output_parser_api.h codelite-9.0+dfsg/LiteEditor/clang_output_parser_api.h --- codelite-8.0.1+dfsg2/LiteEditor/clang_output_parser_api.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/clang_output_parser_api.h 2015-10-11 13:56:07.000000000 +0000 @@ -1,115 +1,117 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2013 by Eran Ifrah -// file name : clang_output_parser_api.h -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - +////////////////////////////////////////////////////////////////////////////// +////////////////////////////////////////////////////////////////////////////// +// +// copyright : (C) 2013 by Eran Ifrah +// file name : clang_output_parser_api.h +// +// ------------------------------------------------------------------------- +// A +// _____ _ _ _ _ +// / __ \ | | | | (_) | +// | / \/ ___ __| | ___| | _| |_ ___ +// | | / _ \ / _ |/ _ \ | | | __/ _ ) +// | \__/\ (_) | (_| | __/ |___| | || __/ +// \____/\___/ \__,_|\___\_____/_|\__\___| +// +// F i l e +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// +////////////////////////////////////////////////////////////////////////////// +////////////////////////////////////////////////////////////////////////////// + #ifndef CLANG_OUTPUT_PARSER_API_H #define CLANG_OUTPUT_PARSER_API_H #include #include -struct ClangEntry -{ - enum { - TypeUnknown = -1, - TypeEnum, // 0 - TypeMethod, // 1 - TypeCtor, // 2 - TypeDtor, // 3 - TypeVariable, // 4 - TypeClass - }; - - std::string name; - std::string return_value; - std::string signature; // function's signature - std::string parent; - std::string type_name; // variable type - int type; - std::string func_suffix; - std::string tmp; - - void reset() { - name.clear(); - return_value.clear(); - signature.clear(); - parent.clear(); - type_name.clear(); - tmp.clear(); - func_suffix.clear(); - type = TypeUnknown; - } - - std::string pattern() const { - std::string p; - p += "/^ "; - if(return_value.empty() == false) { - p += return_value; - p += " "; - } - - if(type_name.empty() == false) { - p += type_name; - p += " "; - } - - if(parent.empty() == false) { - p += parent; - p += "::"; - } - - if(name.empty() == false) { - p += name; - } - - if(signature.empty() == false) { - p += signature; - } - - if(func_suffix.empty() == false) { - p += " "; - p += func_suffix; - } - p += " $/"; - return p; - } - - void print() const { - printf("----\n"); - printf("name : %s\n", name.c_str()); - printf("return value: %s\n", return_value.c_str()); - printf("signature : %s\n", signature.c_str()); - printf("parent : %s\n", parent.c_str()); - printf("type : %d\n", type); - printf("type_name : %s\n", type_name.c_str()); - printf("func_suffix : %s\n", func_suffix.c_str()); - printf("pattern : %s\n", pattern().c_str()); - } +struct ClangEntry { + enum { + TypeUnknown = -1, + TypeEnum, // 0 + TypeMethod, // 1 + TypeCtor, // 2 + TypeDtor, // 3 + TypeVariable, // 4 + TypeClass + }; + + std::string name; + std::string return_value; + std::string signature; // function's signature + std::string parent; + std::string type_name; // variable type + int type; + std::string func_suffix; + std::string tmp; + + void reset() + { + name.clear(); + return_value.clear(); + signature.clear(); + parent.clear(); + type_name.clear(); + tmp.clear(); + func_suffix.clear(); + type = TypeUnknown; + } + + std::string pattern() const + { + std::string p; + p += "/^ "; + if(return_value.empty() == false) { + p += return_value; + p += " "; + } + + if(type_name.empty() == false) { + p += type_name; + p += " "; + } + + if(parent.empty() == false) { + p += parent; + p += "::"; + } + + if(name.empty() == false) { + p += name; + } + + if(signature.empty() == false) { + p += signature; + } + + if(func_suffix.empty() == false) { + p += " "; + p += func_suffix; + } + p += " $/"; + return p; + } + + void print() const + { + printf("----\n"); + printf("name : %s\n", name.c_str()); + printf("return value: %s\n", return_value.c_str()); + printf("signature : %s\n", signature.c_str()); + printf("parent : %s\n", parent.c_str()); + printf("type : %d\n", type); + printf("type_name : %s\n", type_name.c_str()); + printf("func_suffix : %s\n", func_suffix.c_str()); + printf("pattern : %s\n", pattern().c_str()); + } }; typedef std::vector ClangEntryVector; -extern "C" void clang_parse_string(const std::string& str); -extern "C" const ClangEntryVector& clang_results(); +extern void clang_parse_string(const std::string& str); +extern const ClangEntryVector& clang_results(); #endif // CLANG_OUTPUT_PARSER_API_H diff -Nru codelite-8.0.1+dfsg2/LiteEditor/ClangOutputTab.cpp codelite-9.0+dfsg/LiteEditor/ClangOutputTab.cpp --- codelite-8.0.1+dfsg2/LiteEditor/ClangOutputTab.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/ClangOutputTab.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -23,11 +23,6 @@ } EventNotifier::Get()->Bind(wxEVT_FILE_SAVED, &ClangOutputTab::OnFileSaved, this); ::clRecalculateSTCHScrollBar(m_stc); - // defaults - m_choiceCache->Clear(); - m_choiceCache->Append(TagsOptionsData::CLANG_CACHE_LAZY); - m_choiceCache->Append(TagsOptionsData::CLANG_CACHE_ON_FILE_LOAD); - m_choiceCache->Select(1); // Get the initial value of the clang code completion TagsOptionsData tod; @@ -99,23 +94,10 @@ } } -void ClangOutputTab::OnPolicy(wxCommandEvent& event) -{ - // Cache policy changed - clMainFrame::Get()->GetTagsOptions().SetClangCachePolicy(m_choiceCache->GetStringSelection()); - TagsManagerST::Get()->SetCtagsOptions(clMainFrame::Get()->GetTagsOptions()); -} - -void ClangOutputTab::OnPolicyUI(wxUpdateUIEvent& event) { event.Enable(m_checkBoxEnableClang->IsChecked()); } - void ClangOutputTab::OnInitDone(wxCommandEvent& event) { event.Skip(); TagsOptionsData& options = clMainFrame::Get()->GetTagsOptions(); - int where = m_choiceCache->FindString(options.GetClangCachePolicy()); - if(where != wxNOT_FOUND) { - m_choiceCache->Select(where); - } m_checkBoxEnableClang->SetValue(options.GetClangOptions() & CC_CLANG_ENABLED); } diff -Nru codelite-8.0.1+dfsg2/LiteEditor/ClangOutputTab.h codelite-9.0+dfsg/LiteEditor/ClangOutputTab.h --- codelite-8.0.1+dfsg2/LiteEditor/ClangOutputTab.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/ClangOutputTab.h 2015-10-11 13:56:07.000000000 +0000 @@ -14,8 +14,6 @@ virtual void OnClearCacheUI(wxUpdateUIEvent& event); virtual void OnClearText(wxCommandEvent& event); virtual void OnClearTextUI(wxUpdateUIEvent& event); - virtual void OnPolicy(wxCommandEvent& event); - virtual void OnPolicyUI(wxUpdateUIEvent& event); // Event handlers void OnBuildStarted(clBuildEvent& event); diff -Nru codelite-8.0.1+dfsg2/LiteEditor/cl_editor.cpp codelite-9.0+dfsg/LiteEditor/cl_editor.cpp --- codelite-8.0.1+dfsg2/LiteEditor/cl_editor.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/cl_editor.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -75,6 +75,13 @@ #include "cc_box_tip_window.h" #include "clSTCLineKeeper.h" #include "clEditorStateLocker.h" +#include +#include +#include +#include "clPrintout.h" +#include +#include "ColoursAndFontsManager.h" +#include "lexer_configuration.h" //#include "clFileOrFolderDropTarget.h" // fix bug in wxscintilla.h @@ -129,6 +136,7 @@ EVT_LEFT_DOWN(LEditor::OnLeftDown) EVT_RIGHT_DOWN(LEditor::OnRightDown) EVT_MOTION(LEditor::OnMotion) +EVT_MOUSEWHEEL(LEditor::OnMouseWheel) EVT_LEFT_UP(LEditor::OnLeftUp) EVT_LEAVE_WINDOW(LEditor::OnLeaveWindow) EVT_KILL_FOCUS(LEditor::OnFocusLost) @@ -152,6 +160,133 @@ bool LEditor::m_ccShowItemsComments = true; bool LEditor::m_ccInitialized = false; +wxPrintData* g_printData = NULL; +wxPageSetupDialogData* g_pageSetupData = NULL; + +class clEditorDropTarget : public wxDropTarget +{ + wxStyledTextCtrl* m_stc; + +public: + clEditorDropTarget(wxStyledTextCtrl* stc) + : m_stc(stc) + { + wxDataObjectComposite* dataobj = new wxDataObjectComposite(); + dataobj->Add(new wxTextDataObject(), true); + dataobj->Add(new wxFileDataObject()); + SetDataObject(dataobj); + } + + /** + * @brief do the actual drop action + * we support both text and file names + */ + wxDragResult OnData(wxCoord x, wxCoord y, wxDragResult defaultDragResult) + { + if(!GetData()) { + return wxDragError; + } + wxDataObjectComposite* dataobjComp = static_cast(GetDataObject()); + if(!dataobjComp) return wxDragError; + + wxDataFormat format = dataobjComp->GetReceivedFormat(); + wxDataObject* dataobj = dataobjComp->GetObject(format); + switch(format.GetType()) { + case wxDF_FILENAME: { + wxFileDataObject* fileNameObj = static_cast(dataobj); + DoFilesDrop(fileNameObj->GetFilenames()); + } break; + case wxDF_UNICODETEXT: { + wxTextDataObject* textObj = static_cast(dataobj); + wxString text = textObj->GetText(); +#ifdef __WXOSX__ + // On OSX, textObj->GetText() returns some garbeled text + // so use the editor to get the text that we want to copy/move + text = m_stc->GetSelectedText(); +#endif + if(!DoTextDrop(text, x, y, (defaultDragResult == wxDragMove))) { + return wxDragCancel; + } + } break; + default: + break; + } + return defaultDragResult; + } + + /** + * @brief open list of files in the editor + */ + bool DoTextDrop(const wxString& text, wxCoord x, wxCoord y, bool moving) + { + // insert the text + int pos = m_stc->PositionFromPoint(wxPoint(x, y)); + if(pos == wxNOT_FOUND) return false; + + // Don't allow dropping tabs on the editor + static wxRegEx re("\\{Class:Notebook,TabIndex:([0-9]+)\\}"); + if(re.Matches(text)) return false; + + int selStart = m_stc->GetSelectionStart(); + int selEnd = m_stc->GetSelectionEnd(); + + // No text dnd if the drop is on the selection + if((pos >= selStart) && (pos <= selEnd)) return false; + int length = (selEnd - selStart); + + m_stc->BeginUndoAction(); + if(moving) { + // Clear the selection + + bool movingForward = (pos > selEnd); + m_stc->InsertText(pos, text); + if(movingForward) { + m_stc->Replace(selStart, selEnd, ""); + pos -= length; + } else { + m_stc->Replace(selStart + length, selEnd + length, ""); + } + m_stc->SetSelectionStart(pos); + m_stc->SetSelectionEnd(pos); + m_stc->SetCurrentPos(pos); + } else { + m_stc->SelectNone(); + m_stc->SetSelectionStart(pos); + m_stc->SetSelectionEnd(pos); + m_stc->InsertText(pos, text); + m_stc->SetCurrentPos(pos); + } + m_stc->EndUndoAction(); +#ifndef __WXOSX__ + m_stc->CallAfter(&wxStyledTextCtrl::SetSelection, pos, pos + length); +#endif + return true; + } + + /** + * @brief open list of files in the editor + */ + void DoFilesDrop(const wxArrayString& filenames) + { + // Split the list into 2: files and folders + wxArrayString files, folders; + for(size_t i = 0; i < filenames.size(); ++i) { + if(wxFileName::DirExists(filenames.Item(i))) { + folders.Add(filenames.Item(i)); + } else { + files.Add(filenames.Item(i)); + } + } + + for(size_t i = 0; i < files.size(); ++i) { + clMainFrame::Get()->GetMainBook()->OpenFile(files.Item(i)); + } + } + + bool OnDrop(wxCoord x, wxCoord y) { return true; } + wxDragResult OnDragOver(wxCoord x, wxCoord y, wxDragResult defResult) { return m_stc->DoDragOver(x, y, defResult); } +}; + LEditor::LEditor(wxWindow* parent) : wxStyledTextCtrl(parent, wxID_ANY, wxDefaultPosition, wxSize(1, 1), wxNO_BORDER) , m_popupIsOn(false) @@ -176,12 +311,13 @@ , m_findBookmarksActive(false) , m_mgr(PluginManager::Get()) , m_hasCCAnnotation(false) + , m_richTooltip(NULL) { DoUpdateOptions(); EventNotifier::Get()->Bind(wxEVT_EDITOR_CONFIG_CHANGED, &LEditor::OnEditorConfigChanged, this); m_commandsProcessor.SetParent(this); - // SetDropTarget(new clFileOrFolderDropTarget(clMainFrame::Get()->GetMainBook())); + SetDropTarget(new clEditorDropTarget(this)); // User timer to check if we need to highlight markers m_timerHighlightMarkers = new wxTimer(this); @@ -235,6 +371,7 @@ LEditor::~LEditor() { + wxDELETE(m_richTooltip); EventNotifier::Get()->Unbind(wxEVT_EDITOR_CONFIG_CHANGED, &LEditor::OnEditorConfigChanged, this); EventNotifier::Get()->Disconnect( @@ -667,6 +804,19 @@ CmdKeyAssign(wxSTC_KEY_LEFT, wxSTC_SCMOD_CTRL, wxSTC_CMD_WORDLEFT); CmdKeyAssign(wxSTC_KEY_RIGHT, wxSTC_SCMOD_CTRL, wxSTC_CMD_WORDRIGHT); } + +#ifdef __WXOSX__ + CmdKeyAssign(wxSTC_KEY_DOWN, wxSTC_SCMOD_CTRL, wxSTC_CMD_DOCUMENTEND); + CmdKeyAssign(wxSTC_KEY_UP, wxSTC_SCMOD_CTRL, wxSTC_CMD_DOCUMENTSTART); + + // OSX: wxSTC_SCMOD_CTRL => CMD key + CmdKeyAssign(wxSTC_KEY_RIGHT, wxSTC_SCMOD_CTRL, wxSTC_CMD_LINEEND); + CmdKeyAssign(wxSTC_KEY_LEFT, wxSTC_SCMOD_CTRL, wxSTC_CMD_HOME); + + // OSX: wxSTC_SCMOD_META => CONTROL key + CmdKeyAssign(wxSTC_KEY_LEFT, wxSTC_SCMOD_META, wxSTC_CMD_WORDPARTLEFT); + CmdKeyAssign(wxSTC_KEY_RIGHT, wxSTC_SCMOD_META, wxSTC_CMD_WORDPARTRIGHT); +#endif } void LEditor::OnSavePoint(wxStyledTextEvent& event) @@ -830,7 +980,7 @@ wxString restOfLine = GetTextRange(pos, lineEndPos); wxString restOfLineTrimmed = restOfLine; restOfLineTrimmed.Trim().Trim(false); - bool shiftCode = !restOfLineTrimmed.StartsWith(")"); + bool shiftCode = (!restOfLineTrimmed.StartsWith(")")) && (!restOfLineTrimmed.IsEmpty()); if(shiftCode) { SetSelection(pos, lineEndPos); @@ -996,7 +1146,9 @@ int charCurrnt = SafeGetChar(pos); bool hasSelection = (GetSelectionStart() != GetSelectionEnd()); - if(GetHighlightGuide() != wxNOT_FOUND) SetHighlightGuide(0); + if(GetHighlightGuide() != wxNOT_FOUND) { + SetHighlightGuide(0); + } if(m_hightlightMatchedBraces) { if(hasSelection) { @@ -1029,12 +1181,14 @@ } } - int curLine = LineFromPosition(pos); + int mainSelectionPos = GetSelectionNCaret(GetMainSelection()); + int curLine = LineFromPosition(mainSelectionPos); // update line number wxString message; - message << wxT("Ln ") << curLine + 1 << wxT(", Col ") << GetColumn(pos) << ", Pos " << pos; + message << wxT("Ln ") << curLine + 1 << wxT(", Col ") << GetColumn(mainSelectionPos) << ", Pos " + << mainSelectionPos; // Always update the status bar with event, calling it directly causes performance degredation m_mgr->GetStatusBar()->SetLinePosColumn(message); @@ -1526,6 +1680,11 @@ wxPoint pt(ScreenToClient(wxGetMousePosition())); wxRect clientRect = GetClientRect(); + // If the mouse is no longer over the editor, cancel the tooltip + if(!clientRect.Contains(pt)) { + return; + } + // Always cancel the previous tooltip... DoCancelCodeCompletionBox(); @@ -2923,10 +3082,20 @@ if(keyIsControl) { // Debugger tooltip is shown when clicking 'Control/CMD' // while the mouse is over a word - clDebugEvent event(wxEVT_DBG_EXPR_TOOLTIP); - event.SetString(this->GetWordAtMousePointer()); - if(EventNotifier::Get()->ProcessEvent(event)) { - return; + wxPoint pt = ScreenToClient(wxGetMousePosition()); + int pos = PositionFromPointClose(pt.x, pt.y); + if(pos != wxNOT_FOUND) { + int wordStart = WordStartPos(pos, true); + int wordEnd = WordEndPos(pos, true); + wxString wordAtMouse = GetTextRange(wordStart, wordEnd); + if(!wordAtMouse.IsEmpty()) { + // wxLogMessage("Event wxEVT_DBG_EXPR_TOOLTIP is fired for string: %s", wordAtMouse); + clDebugEvent tipEvent(wxEVT_DBG_EXPR_TOOLTIP); + tipEvent.SetString(wordAtMouse); + if(EventNotifier::Get()->ProcessEvent(tipEvent)) { + return; + } + } } } @@ -2954,16 +3123,26 @@ } // let the context process it as well - if(GetFunctionTip()->IsActive() && event.GetKeyCode() == WXK_ESCAPE) { - GetFunctionTip()->Deactivate(); - escapeUsed = true; - } + if(event.GetKeyCode() == WXK_ESCAPE) { - // If we've not already used ESC, there's a reasonable chance that the user wants to close the QuickFind bar - if(event.GetKeyCode() == WXK_ESCAPE && !escapeUsed) { - clMainFrame::Get()->GetMainBook()->ShowQuickBar( - false); // There's no easy way to tell if it's actually showing, so just do a Close + if(GetFunctionTip()->IsActive()) { + GetFunctionTip()->Deactivate(); + escapeUsed = true; + } + + // If we've not already used ESC, there's a reasonable chance that the user wants to close the QuickFind bar + if(!escapeUsed) { + clMainFrame::Get()->GetMainBook()->ShowQuickBar( + false); // There's no easy way to tell if it's actually showing, so just do a Close + + // In addition, if we have multiple selections, de-select them + if(GetSelections()) { + clEditorStateLocker editor(this); + ClearSelections(); + } + } } + m_context->OnKeyDown(event); } @@ -3040,6 +3219,7 @@ void LEditor::OnLeftDown(wxMouseEvent& event) { HighlightWord(false); + wxDELETE(m_richTooltip); // hide completion box DoCancelCalltip(); @@ -3055,6 +3235,9 @@ SetCaretAt(PositionFromPointClose(event.GetX(), event.GetY())); } SetActive(); + + // Clear any messages from the status bar + clGetManager()->GetStatusBar()->SetMessage(""); event.Skip(); } @@ -3116,7 +3299,8 @@ menu.Append(XRCID("delete_breakpoint"), wxString(_("Remove Breakpoint"))); menu.Append(XRCID("ignore_breakpoint"), wxString(_("Ignore Breakpoint"))); // On MSWin it often crashes the debugger to try to load-then-disable a bp - // so don't show the menu item unless the debugger is running *** Hmm, that was written about 4 years ago. Let's + // so don't show the menu item unless the debugger is running *** Hmm, that was written about 4 years ago. + // Let's // try it again... menu.Append(XRCID("toggle_breakpoint_enabled_status"), bp.is_enabled ? wxString(_("Disable Breakpoint")) : wxString(_("Enable Breakpoint"))); @@ -3508,7 +3692,8 @@ void LEditor::OnDragEnd(wxStyledTextEvent& e) { // For future reference, this will only be called when D'n'D ends successfully with a drop. - // Unfortunately scintilla doesn't seem to provide any notification when ESC is pressed, or the drop-zone is invalid + // Unfortunately scintilla doesn't seem to provide any notification when ESC is pressed, or the drop-zone is + // invalid m_isDragging = false; // Turn on calltips again e.Skip(); @@ -3594,6 +3779,9 @@ ++line; } + // EOF? + if(line >= lastDocLine) break; + while(GetLineVisible(line) && line <= lastDocLine) { if(offset == -1) { offset = PositionFromLine(line); // Get offset value the first time through @@ -3967,7 +4155,7 @@ // Place the tip on top of the mouse position, not under it pt.y -= m_calltip->GetSize().GetHeight(); - m_calltip->PositionAt(pt, this); + m_calltip->CallAfter(&CCBoxTipWindow::PositionAt, pt, this); } void LEditor::DoCancelCalltip() @@ -4106,7 +4294,8 @@ if(!currentOpen) { GetCommandsProcessor().StartNewTextCommand(isInsert ? CLC_insert : CLC_delete); } - // We need to cope with a selection being deleted by typing; this results in 0x2012 followed immediately by + // We need to cope with a selection being deleted by typing; this results in 0x2012 followed immediately + // by // 0x11 i.e. with no intervening wxSTC_STARTACTION else if(isInsert && currentOpen->GetCommandType() != CLC_insert) { GetCommandsProcessor().ProcessOpenCommand(); @@ -4287,6 +4476,7 @@ if(res && (line >= 0) && !again) { SetEnsureCaretIsVisible(pos); SetLineVisible(LineFromPosition(pos)); + CenterLinePreserveSelection(LineFromPosition(pos)); } } @@ -4628,25 +4818,48 @@ return (tlw && (clMainFrame::Get() != tlw)); } -wxString LEditor::GetWordAtMousePointer() +void LEditor::GetWordAtMousePointer(wxString& word, wxRect& wordRect) { + word.clear(); + wordRect = wxRect(); + + long start = wxNOT_FOUND; + long end = wxNOT_FOUND; if(GetSelectedText().IsEmpty()) { wxPoint mousePtInScreenCoord = ::wxGetMousePosition(); wxPoint clientPt = ScreenToClient(mousePtInScreenCoord); int pos = PositionFromPoint(clientPt); if(pos != wxNOT_FOUND) { - long start = WordStartPosition(pos, true); - long end = WordEndPosition(pos, true); - return GetTextRange(start, end); - } else { - return ""; + start = WordStartPosition(pos, true); + end = WordEndPosition(pos, true); } } else { - return GetSelectedText(); + start = GetSelectionStart(); + end = GetSelectionEnd(); } -} -void LEditor::ShowRichTooltip(const wxString& tip, const wxString& title, int pos) { DoShowCalltip(pos, title, tip); } + wxFont font = StyleGetFont(0); + wxBitmap bmp(1, 1); + wxMemoryDC memdc(bmp); + memdc.SetFont(font); + wxSize sz = memdc.GetTextExtent(GetTextRange(start, end)); + wxPoint ptStart = PointFromPosition(start); + wxRect rr(ptStart, sz); + + word = GetTextRange(start, end); + wordRect = rr; +} + +void LEditor::ShowRichTooltip(const wxString& tip, const wxString& title, int pos) +{ + if(m_richTooltip) return; + wxUnusedVar(pos); + wxString word; + wxRect rect; + GetWordAtMousePointer(word, rect); + m_richTooltip = new wxRichToolTip(title, tip); + m_richTooltip->ShowFor(this, &rect); +} wxString LEditor::GetFirstSelection() { @@ -4804,6 +5017,19 @@ } } +void LEditor::CenterLinePreserveSelection(int line) +{ + int linesOnScreen = LinesOnScreen(); + // To place our line in the middle, the first visible line should be + // the: line - (linesOnScreen / 2) + int firstVisibleLine = line - (linesOnScreen / 2); + if(firstVisibleLine < 0) { + firstVisibleLine = 0; + } + EnsureVisible(firstVisibleLine); + SetFirstVisibleLine(firstVisibleLine); +} + void LEditor::CenterLine(int line, int col) { int linesOnScreen = LinesOnScreen(); @@ -4906,17 +5132,28 @@ int start = GetSelectionStart(); int end = GetSelectionEnd(); if(LineFromPosition(PositionBefore(end)) != LineFromPosition(end)) { - end = std::max(start, PositionBefore(end)); + end = wxMax(start, PositionBefore(end)); + } + + // If the caret is set at the EOL position + int lineStartPos = PositionFromLine(GetCurrentLine()); + int lineEndPos = PositionBefore(LineEnd(GetCurrentLine())); + bool atEOL = (lineEndPos == GetCurrentPos()) && // The caret is placed at the end of the line + (lineStartPos != lineEndPos); // The line is not empty + if(atEOL) { + start = PositionBefore(start); // Use the style of previous position (this is due to bug in some lexer which + // don't give the EOL char + // the same style as the char before it } - bool doingComment = GetStyleAt(start) != commentStyle; + bool doingComment = (GetStyleAt(start) != commentStyle); - int line_start = LineFromPosition(start); - int line_end = LineFromPosition(end); + int lineStart = LineFromPosition(start); + int lineEnd = LineFromPosition(end); BeginUndoAction(); - for(; line_start <= line_end; line_start++) { - start = PositionFromLine(line_start); + for(; lineStart <= lineEnd; lineStart++) { + start = PositionFromLine(lineStart); if(doingComment) { InsertText(start, commentSymbol); @@ -4933,7 +5170,7 @@ } EndUndoAction(); - SetCaretAt(PositionFromLine(line_end + 1)); + SetCaretAt(PositionFromLine(lineEnd + 1)); ChooseCaretX(); } @@ -4958,6 +5195,141 @@ ChooseCaretX(); } +void LEditor::QuickAddNext() +{ + if(!HasSelection()) return; + int count = GetSelections(); + int start = GetSelectionNStart(count - 1); + int end = GetSelectionNEnd(count - 1); + if(GetSelections() == 1) { + ClearSelections(); + SetSelection(start, end); + SetMainSelection(0); + } + + wxString findWhat = GetTextRange(start, end); + int where = this->FindText(end, GetLength(), findWhat, wxSTC_FIND_MATCHCASE | wxSTC_FIND_WHOLEWORD); + if(where != wxNOT_FOUND) { + AddSelection(where, where + findWhat.length()); + CenterLineIfNeeded(LineFromPos(where)); + } + + wxString message; + message << _("Found and selected ") << GetSelections() << _(" matches"); + clGetManager()->GetStatusBar()->SetMessage(message); +} + +void LEditor::QuickFindAll() +{ + if(GetSelections() != 1) return; + + int start = GetSelectionStart(); + int end = GetSelectionEnd(); + wxString findWhat = GetTextRange(start, end); + if(findWhat.IsEmpty()) return; + + ClearSelections(); + + int matches(0); + int firstMatch(wxNOT_FOUND); + int where = this->FindText(0, GetLength(), findWhat, wxSTC_FIND_MATCHCASE | wxSTC_FIND_WHOLEWORD); + while(where != wxNOT_FOUND) { + if(matches == 0) { + firstMatch = where; + SetSelection(where, where + findWhat.length()); + SetMainSelection(0); + CenterLineIfNeeded(LineFromPos(where)); + + } else { + AddSelection(where, where + findWhat.length()); + } + ++matches; + where = this->FindText( + where + findWhat.length(), GetLength(), findWhat, wxSTC_FIND_MATCHCASE | wxSTC_FIND_WHOLEWORD); + } + wxString message; + message << _("Found and selected ") << GetSelections() << _(" matches"); + clGetManager()->GetStatusBar()->SetMessage(message); + if(firstMatch != wxNOT_FOUND) { + SetMainSelection(0); + } +} + +void LEditor::CenterLineIfNeeded(int line, bool force) +{ + // Center this line + int linesOnScreen = LinesOnScreen(); + if(force || ((line < GetFirstVisibleLine()) || (line > (GetFirstVisibleLine() + LinesOnScreen())))) { + // To place our line in the middle, the first visible line should be + // the: line - (linesOnScreen / 2) + int firstVisibleLine = line - (linesOnScreen / 2); + if(firstVisibleLine < 0) { + firstVisibleLine = 0; + } + EnsureVisible(firstVisibleLine); + SetFirstVisibleLine(firstVisibleLine); + } +} + +void LEditor::Print() +{ + if(g_printData == NULL) { + g_printData = new wxPrintData(); + g_pageSetupData = new wxPageSetupDialogData(); + (*g_pageSetupData) = *g_printData; + PageSetup(); + } + + // Black on White print mode + SetPrintColourMode(wxSTC_PRINT_BLACKONWHITE); + + // No magnifications + SetPrintMagnification(0); + + wxPrintDialogData printDialogData(*g_printData); + wxPrinter printer(&printDialogData); + clPrintout printout(this, GetFileName().GetFullPath()); + + if(!printer.Print(this, &printout, true /*prompt*/)) { + if(wxPrinter::GetLastError() == wxPRINTER_ERROR) { + wxLogError(wxT("There was a problem printing. Perhaps your current printer is not set correctly?")); + } else { + wxLogMessage(wxT("You canceled printing")); + } + } else { + (*g_printData) = printer.GetPrintDialogData().GetPrintData(); + } +} + +void LEditor::PageSetup() +{ + if(g_printData == NULL) { + g_printData = new wxPrintData(); + g_pageSetupData = new wxPageSetupDialogData(); + (*g_pageSetupData) = *g_printData; + } + wxPageSetupDialog pageSetupDialog(this, g_pageSetupData); + pageSetupDialog.ShowModal(); + (*g_printData) = pageSetupDialog.GetPageSetupData().GetPrintData(); + (*g_pageSetupData) = pageSetupDialog.GetPageSetupData(); +} + +void LEditor::OnMouseWheel(wxMouseEvent& event) +{ + event.Skip(); + if(::wxGetKeyState(WXK_CONTROL) && !GetOptions()->IsMouseZoomEnabled()) { + event.Skip(false); + return; + } +} + +void LEditor::ClearCCAnnotations() +{ + if(IsHasCCAnnotation()) { + AnnotationClearAll(); + } +} + // ---------------------------------- // SelectionInfo // ---------------------------------- diff -Nru codelite-8.0.1+dfsg2/LiteEditor/cl_editor.h codelite-9.0+dfsg/LiteEditor/cl_editor.h --- codelite-8.0.1+dfsg2/LiteEditor/cl_editor.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/cl_editor.h 2015-10-11 13:56:07.000000000 +0000 @@ -46,6 +46,7 @@ #include "bookmark_manager.h" #include "cl_unredo.h" #include "clEditorStateLocker.h" +#include #define DEBUGGER_INDICATOR 11 #define MATCH_INDICATOR 10 @@ -53,6 +54,7 @@ #define USER_INDICATOR 3 #define HYPERLINK_INDICATOR 4 +class wxRichToolTip; class CCBoxTipWindow; class IManager; class wxFindReplaceDialog; @@ -229,15 +231,23 @@ IManager* m_mgr; OptionsConfigPtr m_options; bool m_hasCCAnnotation; + wxRichToolTip* m_richTooltip; public: static bool m_ccShowPrivateMembers; static bool m_ccShowItemsComments; static bool m_ccInitialized; + typedef std::vector Vec_t; IManager* GetManager() { return m_mgr; } - + + /** + * @brief are the CC annotations visible? + */ + bool IsHasCCAnnotation() const { return m_hasCCAnnotation; } + void ClearCCAnnotations(); + public: static FindReplaceData& GetFindReplaceData() { return m_findReplaceData; } @@ -268,6 +278,16 @@ bool SaveFileAs(); /** + * @brief print the editor content using the printing framework + */ + void Print(); + + /** + * @brief setup the print page + */ + void PageSetup(); + + /** * @brief split the current selection into multiple carets. * i.e. place a caret at the end of each line in the selection */ @@ -310,19 +330,19 @@ * i.e. the event wxEVT_CC_CODE_COMPLETE is fired only when refreshingList == false */ void CodeComplete(bool refreshingList = false); - - /** - * @brief toggle line comment - * @param commentSymbol the comment symbol to insert (e.g. "//") - * @param commentStyle the wxSTC line comment style + + /** + * @brief toggle line comment + * @param commentSymbol the comment symbol to insert (e.g. "//") + * @param commentStyle the wxSTC line comment style */ virtual void ToggleLineComment(const wxString& commentSymbol, int commentStyle); - - /** - * @brief block comment the selection + + /** + * @brief block comment the selection */ virtual void CommentBlockSelection(const wxString& commentBlockStart, const wxString& commentBlockEnd); - + // User clicked Ctrl+. void GotoDefinition(); @@ -410,6 +430,16 @@ void CenterLine(int line, int col = wxNOT_FOUND); /** + * @brief center the editor at a given line, but preserve the selection + */ + void CenterLinePreserveSelection(int line); + + /** + * @brief Center line if needed (i.e. only if the line is not visible) + */ + void CenterLineIfNeeded(int line, bool force = false); + + /** * @brief convert the editor indentation to spaces */ void ConvertIndentToSpaces(); @@ -509,6 +539,16 @@ int FindString(const wxString& str, int flags, const bool down, long pos); + /** + * @brief find the current selection and select without removing the current selection + */ + void QuickAddNext(); + + /** + * @brief find all occurances of the selected text and select + */ + void QuickFindAll(); + bool FindAndSelect(); bool FindAndSelect(const FindReplaceData& data); bool FindAndSelect(const wxString& pattern, const wxString& name); @@ -725,7 +765,7 @@ * @brief * @return */ - virtual wxString GetWordAtMousePointer(); + virtual void GetWordAtMousePointer(wxString& word, wxRect& wordRect); /** * @brief * @param text @@ -864,7 +904,7 @@ void DoWrapPrevSelectionWithChars(wxChar first, wxChar last); void DoUpdateOptions(); int GetFirstSingleLineCommentPos(int from, int commentStyle); - + void FillBPtoMarkerArray(); BPtoMarker GetMarkerForBreakpt(enum BreakpointType bp_type); void SetProperties(); @@ -911,6 +951,7 @@ void OnMotion(wxMouseEvent& event); void OnLeftUp(wxMouseEvent& event); void OnLeaveWindow(wxMouseEvent& event); + void OnMouseWheel(wxMouseEvent& event); void OnFocusLost(wxFocusEvent& event); void OnFocus(wxFocusEvent& event); void OnLeftDClick(wxStyledTextEvent& event); diff -Nru codelite-8.0.1+dfsg2/LiteEditor/clPrintout.cpp codelite-9.0+dfsg/LiteEditor/clPrintout.cpp --- codelite-8.0.1+dfsg2/LiteEditor/clPrintout.cpp 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/clPrintout.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,125 @@ +#include "clPrintout.h" +#include "cl_editor.h" + +//---------------------------------------------------------------------------- +// clPrintout +//---------------------------------------------------------------------------- +extern wxPageSetupDialogData* g_pageSetupData; + +clPrintout::clPrintout(LEditor* edit, const wxChar* title) + : wxPrintout(title) + , m_minPage(0) + , m_maxPage(0) +{ + m_edit = edit; + m_printed = 0; +} + +bool clPrintout::OnPrintPage(int page) +{ + + wxDC* dc = GetDC(); + if(!dc) return false; + + // scale DC + PrintScaling(dc); + + // print page + if(page == 1) m_printed = 0; + m_printed = m_edit->FormatRange(1, m_printed, m_edit->GetLength(), dc, dc, m_printRect, m_pageRect); + + return true; +} + +bool clPrintout::OnBeginDocument(int startPage, int endPage) +{ + + if(!wxPrintout::OnBeginDocument(startPage, endPage)) { + return false; + } + + return true; +} + +void clPrintout::GetPageInfo(int* minPage, int* maxPage, int* selPageFrom, int* selPageTo) +{ + // initialize values + *minPage = 0; + *maxPage = 0; + *selPageFrom = 0; + *selPageTo = 0; + + // scale DC if possible + wxDC* dc = GetDC(); + if(!dc) return; + PrintScaling(dc); + + // get print page informations and convert to printer pixels + wxSize ppiScr; + GetPPIScreen(&ppiScr.x, &ppiScr.y); + wxSize page = g_pageSetupData->GetPaperSize(); + page.x = static_cast(page.x * ppiScr.x / 25.4); + page.y = static_cast(page.y * ppiScr.y / 25.4); + m_pageRect = wxRect(0, 0, page.x, page.y); + + // get margins informations and convert to printer pixels + wxPoint pt = g_pageSetupData->GetMarginTopLeft(); + int left = pt.x; + int top = pt.y; + pt = g_pageSetupData->GetMarginBottomRight(); + int right = pt.x; + int bottom = pt.y; + + top = static_cast(top * ppiScr.y / 25.4); + bottom = static_cast(bottom * ppiScr.y / 25.4); + left = static_cast(left * ppiScr.x / 25.4); + right = static_cast(right * ppiScr.x / 25.4); + + m_printRect = wxRect(left, top, page.x - (left + right), page.y - (top + bottom)); + + // count pages + while((m_printed < m_edit->GetLength())) { + m_printed = m_edit->FormatRange(0, m_printed, m_edit->GetLength(), dc, dc, m_printRect, m_pageRect); + *maxPage += 1; + } + + if(*maxPage > 0) *minPage = 1; + *selPageFrom = *minPage; + *selPageTo = *maxPage; + + m_minPage = *minPage; + m_maxPage = *maxPage; +} + +bool clPrintout::HasPage(int page) { return (page >= m_minPage) && (page <= m_maxPage); } + +bool clPrintout::PrintScaling(wxDC* dc) +{ + + // check for dc, return if none + if(!dc) return false; + + // get printer and screen sizing values + wxSize ppiScr; + GetPPIScreen(&ppiScr.x, &ppiScr.y); + if(ppiScr.x == 0) { // most possible guess 96 dpi + ppiScr.x = 96; + ppiScr.y = 96; + } + wxSize ppiPrt; + GetPPIPrinter(&ppiPrt.x, &ppiPrt.y); + if(ppiPrt.x == 0) { // scaling factor to 1 + ppiPrt.x = ppiScr.x; + ppiPrt.y = ppiScr.y; + } + wxSize dcSize = dc->GetSize(); + wxSize pageSize; + GetPageSizePixels(&pageSize.x, &pageSize.y); + + // set user scale + float scale_x = (float)(ppiPrt.x * dcSize.x) / (float)(ppiScr.x * pageSize.x); + float scale_y = (float)(ppiPrt.y * dcSize.y) / (float)(ppiScr.y * pageSize.y); + dc->SetUserScale(scale_x, scale_y); + + return true; +} diff -Nru codelite-8.0.1+dfsg2/LiteEditor/clPrintout.h codelite-9.0+dfsg/LiteEditor/clPrintout.h --- codelite-8.0.1+dfsg2/LiteEditor/clPrintout.h 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/clPrintout.h 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,34 @@ +#ifndef CLPRINTOUT_H +#define CLPRINTOUT_H + +#include +#include +#include + +class LEditor; +class clPrintout : public wxPrintout +{ + LEditor* m_edit; + int m_printed; + wxRect m_pageRect; + wxRect m_printRect; + int m_minPage; + int m_maxPage; + +protected: + bool PrintScaling(wxDC* dc); + +public: + //! constructor + clPrintout(LEditor* edit, const wxChar* title = wxT("")); + + //! event handlers + bool OnPrintPage(int page); + bool OnBeginDocument(int startPage, int endPage); + + //! print functions + bool HasPage(int page); + void GetPageInfo(int* minPage, int* maxPage, int* selPageFrom, int* selPageTo); +}; + +#endif // CLPRINTOUT_H diff -Nru codelite-8.0.1+dfsg2/LiteEditor/clsplashscreen.cpp codelite-9.0+dfsg/LiteEditor/clsplashscreen.cpp --- codelite-8.0.1+dfsg2/LiteEditor/clsplashscreen.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/clsplashscreen.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -24,9 +24,9 @@ ////////////////////////////////////////////////////////////////////////////// #include "clsplashscreen.h" +#include "autoversion.h" #include #include -extern wxString CODELITE_VERSION_STR; clSplashScreen* clSplashScreen::g_splashScreen = NULL; bool clSplashScreen::g_destroyed = false; @@ -74,7 +74,7 @@ memDC.SetFont(font); wxString versionString; - versionString << "v" << CODELITE_VERSION_STR; + versionString << "v" << CODELITE_VERSION_STRING; wxSize textSize = memDC.GetTextExtent(versionString); wxCoord textx, texty; textx = (bmp.GetWidth() - textSize.GetWidth()) - 5; diff -Nru codelite-8.0.1+dfsg2/LiteEditor/CMakeLists.txt codelite-9.0+dfsg/LiteEditor/CMakeLists.txt --- codelite-8.0.1+dfsg2/LiteEditor/CMakeLists.txt 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/CMakeLists.txt 2015-10-11 13:56:07.000000000 +0000 @@ -5,13 +5,6 @@ # visual studio, and in our makefiles. project(codelite) -if ( UNIX AND NOT APPLE ) - execute_process(COMMAND sed s@%%PREFIX%%@${CL_PREFIX}@g Runtime/codelite.desktop.template - WORKING_DIRECTORY "${CL_SRC_ROOT}" - OUTPUT_FILE Runtime/codelite.desktop) - message("-- Generating desktop file...") -endif ( UNIX AND NOT APPLE ) - # It was noticed that when using MinGW gcc it is essential that 'core' is mentioned before 'base'. find_package(wxWidgets COMPONENTS ${WX_COMPONENTS} REQUIRED) @@ -23,7 +16,6 @@ ## On UNIX we require GTK if (UNIX AND NOT APPLE) - if (GTK_VERSION EQUAL 3) set(OLD_CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH}) # Cache the current value set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/") @@ -62,11 +54,6 @@ include_directories(${CLANG_INCLUDE}) endif( USE_CLANG ) -# Add RPATH -if (UNIX) -set (LINKER_OPTIONS -Wl,-rpath,"${PLUGINS_DIR}") -endif (UNIX) - FILE(GLOB SRCS "*.cpp") set (RES_FILE "") @@ -91,11 +78,11 @@ endif (UNIX) if(GTK2_FOUND) - target_link_libraries(codelite ${LINKER_OPTIONS} ${GTK2_LIBRARIES} ${wxWidgets_LIBRARIES} ${CLANG_LIBRARY} -L"${CL_LIBPATH}" -lwxsqlite3 -lsqlite3lib -llibcodelite -lplugin ${ADDITIONAL_LIBRARIES}) + target_link_libraries(codelite ${LINKER_OPTIONS} ${GTK2_LIBRARIES} ${wxWidgets_LIBRARIES} ${CLANG_LIBRARY} -L"${CL_LIBPATH}" libcodelite plugin ${ADDITIONAL_LIBRARIES}) elseif (GTK3_FOUND) - target_link_libraries(codelite ${LINKER_OPTIONS} ${GTK3_LIBRARIES} ${wxWidgets_LIBRARIES} ${CLANG_LIBRARY} -L"${CL_LIBPATH}" -lwxsqlite3 -lsqlite3lib -llibcodelite -lplugin ${ADDITIONAL_LIBRARIES}) + target_link_libraries(codelite ${LINKER_OPTIONS} ${GTK3_LIBRARIES} ${wxWidgets_LIBRARIES} ${CLANG_LIBRARY} -L"${CL_LIBPATH}" libcodelite plugin ${ADDITIONAL_LIBRARIES}) else() - target_link_libraries(codelite ${LINKER_OPTIONS} ${wxWidgets_LIBRARIES} ${CLANG_LIBRARY} -L"${CL_LIBPATH}" -lwxsqlite3 -lsqlite3lib -llibcodelite -lplugin ${ADDITIONAL_LIBRARIES}) + target_link_libraries(codelite ${LINKER_OPTIONS} ${wxWidgets_LIBRARIES} ${CLANG_LIBRARY} -L"${CL_LIBPATH}" libcodelite plugin ${ADDITIONAL_LIBRARIES}) endif() ################################################################## @@ -112,8 +99,6 @@ install(FILES ${CL_SRC_ROOT}/Runtime/codelite_fix_files DESTINATION ${CL_PREFIX}/bin PERMISSIONS ${EXE_PERM}) install(FILES ${CL_SRC_ROOT}/Runtime/codelite_kill_children DESTINATION ${CL_PREFIX}/bin PERMISSIONS ${EXE_PERM}) install(FILES ${CL_SRC_ROOT}/Runtime/codelite_xterm DESTINATION ${CL_PREFIX}/bin PERMISSIONS ${EXE_PERM}) - install(FILES ${CL_SRC_ROOT}/Runtime/clg++ DESTINATION ${CL_PREFIX}/bin PERMISSIONS ${EXE_PERM}) - install(FILES ${CL_SRC_ROOT}/Runtime/clgcc DESTINATION ${CL_PREFIX}/bin PERMISSIONS ${EXE_PERM}) endif (UNIX) ## codelite icons @@ -148,17 +133,9 @@ DESTINATION ${CL_PREFIX}/share/icons/hicolor/32x32/apps RENAME codelite.png) # Clear the icon cache if exists - install(CODE "execute_process(COMMAND rm -f ${CL_PREFIX}/share/icons/hicolor/icon-theme.cache)") + install(CODE "execute_process(COMMAND rm -f \$ENV{DESTDIR}/${CL_PREFIX}/share/icons/hicolor/icon-theme.cache)") endif ( UNIX AND NOT APPLE ) - - install( - DIRECTORY ${CL_SRC_ROOT}/Runtime/plugins/resources - DESTINATION ${PLUGINS_DIR} - USE_SOURCE_PERMISSIONS - PATTERN ".svn" EXCLUDE - PATTERN ".git" EXCLUDE - ) - + install( DIRECTORY ${CL_SRC_ROOT}/Runtime/images ${CL_SRC_ROOT}/Runtime/gdb_printers @@ -166,6 +143,7 @@ ${CL_SRC_ROOT}/Runtime/lexers ${CL_SRC_ROOT}/Runtime/templates ${CL_SRC_ROOT}/Runtime/rc + ${CL_SRC_ROOT}/Runtime/plugins/resources DESTINATION ${CL_PREFIX}/share/codelite USE_SOURCE_PERMISSIONS PATTERN ".svn" EXCLUDE @@ -182,6 +160,7 @@ if (UNIX AND CL_COPY_WX_LIBS) # If we're packaging with wx2.9 # We need to deduce the location of the wx libs to be installed execute_process(COMMAND ${WX_TOOL} --libs OUTPUT_VARIABLE WX_LIBSOUTPUT OUTPUT_STRIP_TRAILING_WHITESPACE) + if (${WX_LIBSOUTPUT} MATCHES "^-L.+") # In recent, multi-architecture, distro versions it'll start with -L/foo/bar string(REGEX REPLACE "^-L([^ ;]+).*" "\\1" WX_LIBS_DIR ${WX_LIBSOUTPUT}) else() @@ -196,11 +175,13 @@ foreach(ITEM ${WX_LIBS_ALL_LIST}) # We want to replace -l with lib. We also want to exclude imaginary libs called _all.so, which buggy wx-config scripts can invent if (${ITEM} MATCHES "-lwx_.+" AND NOT ${ITEM} MATCHES "-l.+_all.+") - string(REGEX REPLACE "^-l" "lib" LIBITEM ${ITEM}) - list(APPEND WX_LIBS_ALL ${WX_LIBS_DIR}/${LIBITEM}.so*) # we need the terminal [.]so because the rpms contain both dynamic and static libs + string(REGEX REPLACE "^-l" "lib" LIBITEM ${ITEM}) + # openSUSE have started to use libwx_gtk2u_xrc-suse.so instead of libwx_gtk2u_xrc-3.1, so chop off the end + string(REGEX REPLACE "-.+" "-" LIBITEMCUT ${LIBITEM}) + list(APPEND WX_LIBS_ALL ${WX_LIBS_DIR}/${LIBITEMCUT}*.so*) # we need the terminal [.]so because the rpms contain both dynamic and static libs endif() endforeach() - + file(GLOB wxfilepaths ${WX_LIBS_ALL}) install(FILES ${wxfilepaths} DESTINATION ${CL_PREFIX}/${CL_INSTALL_LIBDIR}/codelite) endif() @@ -211,4 +192,5 @@ else() # !APPLE install(TARGETS codelite DESTINATION ${CMAKE_BINARY_DIR}/codelite.app/Contents/MacOS PERMISSIONS ${EXE_PERM}) CL_INSTALL_NAME_TOOL_STD(${CMAKE_BINARY_DIR}/codelite.app/Contents/MacOS/codelite) + install(FILES ${CL_SRC_ROOT}/Runtime/OpenTerm DESTINATION ${CMAKE_BINARY_DIR}/codelite.app/Contents/SharedSupport PERMISSIONS ${EXE_PERM}) endif() diff -Nru codelite-8.0.1+dfsg2/LiteEditor/code_completion_manager.cpp codelite-9.0+dfsg/LiteEditor/code_completion_manager.cpp --- codelite-8.0.1+dfsg2/LiteEditor/code_completion_manager.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/code_completion_manager.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -533,7 +533,7 @@ if(editor->GetProjectName().IsEmpty()) return false; - if(!WorkspaceST::Get()->IsOpen()) + if(!clCxxWorkspaceST::Get()->IsOpen()) return false; // Support only C/C++ files @@ -542,7 +542,7 @@ // Get the file's project and get the build configuration settings // for it - ProjectPtr proj = WorkspaceST::Get()->GetProject(editor->GetProjectName()); + ProjectPtr proj = clCxxWorkspaceST::Get()->GetProject(editor->GetProjectName()); CHECK_PTR_RET_FALSE(proj); BuildConfigPtr buildConf = proj->GetBuildConfiguration(); @@ -551,7 +551,11 @@ CompilerPtr compiler = buildConf->GetCompiler(); CHECK_PTR_RET_FALSE(compiler); +#if 0 if(buildConf->IsCustomBuild()) { + definitions = proj->GetPreProcessors(); + CL_DEBUG("CxxPreProcessor will use the following macros:"); + CL_DEBUG_ARR(definitions); // Custom builds are handled differently CompilationDatabase compileDb; compileDb.Open(); @@ -565,25 +569,29 @@ searchPaths = cclp.GetIncludes(); // get the mcros - definitions = cclp.GetMacros(); - } else { - // we will probably will fail... - return false; + definitions << cclp.GetMacros(); } - } else { - // get the include paths based on the project settings (this is per build configuration) - searchPaths = proj->GetIncludePaths(); - CL_DEBUG("CxxPreProcessor will use the following include paths:"); - CL_DEBUG_ARR(searchPaths); - - // get the compiler include paths - // wxArrayString compileIncludePaths = compiler->GetDefaultIncludePaths(); - - // includePaths.insert(includePaths.end(), compileIncludePaths.begin(), compileIncludePaths.end()); - definitions = proj->GetPreProcessors(); - CL_DEBUG("CxxPreProcessor will use the following macros:"); - CL_DEBUG_ARR(definitions); } +#endif + // get the include paths based on the project settings (this is per build configuration) + searchPaths = proj->GetIncludePaths(); + CL_DEBUG("CxxPreProcessor will use the following include paths:"); + CL_DEBUG_ARR(searchPaths); + + // get the compiler include paths + // wxArrayString compileIncludePaths = compiler->GetDefaultIncludePaths(); + + // includePaths.insert(includePaths.end(), compileIncludePaths.begin(), compileIncludePaths.end()); + definitions = proj->GetPreProcessors(); + + // get macros out of workspace + wxString strWorkspaceMacros = clCxxWorkspaceST::Get()->GetParserMacros(); + wxArrayString workspaceMacros = wxStringTokenize(strWorkspaceMacros, wxT("\n\r"), wxTOKEN_STRTOK); + for(size_t i = 0; i < workspaceMacros.GetCount(); i++) + definitions.Add(workspaceMacros.Item(i).Trim().Trim(false).c_str()); + + CL_DEBUG("CxxPreProcessor will use the following macros:"); + CL_DEBUG_ARR(definitions); // Append the compiler builtin macros wxArrayString builtinMacros = compiler->GetBuiltinMacros(); diff -Nru codelite-8.0.1+dfsg2/LiteEditor/code_completion_page.cpp codelite-9.0+dfsg/LiteEditor/code_completion_page.cpp --- codelite-8.0.1+dfsg2/LiteEditor/code_completion_page.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/code_completion_page.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -29,7 +29,7 @@ #include #include "globals.h" -CodeCompletionPage::CodeCompletionPage(wxWindow *parent, int type) +CodeCompletionPage::CodeCompletionPage(wxWindow* parent, int type) : CodeCompletionBasePage(parent) , m_type(type) , m_ccChanged(false) @@ -43,32 +43,25 @@ LocalWorkspaceST::Get()->GetParserPaths(includePaths, excludePaths); LocalWorkspaceST::Get()->GetParserMacros(macros); - m_textCtrlSearchPaths->SetValue( wxImplode(includePaths, wxT("\n")) ); - m_textCtrlMacros->SetValue(macros ); - - m_checkBoxCpp11->SetValue( LocalWorkspaceST::Get()->GetParserFlags() & LocalWorkspace::EnableCpp11 ); - m_checkBoxCpp14->SetValue( LocalWorkspaceST::Get()->GetParserFlags() & LocalWorkspace::EnableCpp14 ); + m_textCtrlSearchPaths->SetValue(wxImplode(includePaths, wxT("\n"))); + m_textCtrlMacros->SetValue(macros); + + m_checkBoxCpp11->SetValue(LocalWorkspaceST::Get()->GetParserFlags() & LocalWorkspace::EnableCpp11); + m_checkBoxCpp14->SetValue(LocalWorkspaceST::Get()->GetParserFlags() & LocalWorkspace::EnableCpp14); + m_checkBoxSWTLW->SetValue(LocalWorkspaceST::Get()->GetParserFlags() & LocalWorkspace::EnableSWTLW); } } -CodeCompletionPage::~CodeCompletionPage() -{ -} +CodeCompletionPage::~CodeCompletionPage() {} wxArrayString CodeCompletionPage::GetIncludePaths() const { return wxStringTokenize(m_textCtrlSearchPaths->GetValue(), wxT("\n\r"), wxTOKEN_STRTOK); } -wxString CodeCompletionPage::GetMacros() const -{ - return m_textCtrlMacros->GetValue(); -} +wxString CodeCompletionPage::GetMacros() const { return m_textCtrlMacros->GetValue(); } -wxString CodeCompletionPage::GetIncludePathsAsString() const -{ - return m_textCtrlSearchPaths->GetValue(); -} +wxString CodeCompletionPage::GetIncludePathsAsString() const { return m_textCtrlSearchPaths->GetValue(); } void CodeCompletionPage::Save() { @@ -77,9 +70,10 @@ LocalWorkspaceST::Get()->SetParserPaths(GetIncludePaths(), wxArrayString()); LocalWorkspaceST::Get()->SetParserMacros(GetMacros()); - if ( m_checkBoxCpp11->IsChecked() ) flags |= LocalWorkspace::EnableCpp11; - if ( m_checkBoxCpp14->IsChecked() ) flags |= LocalWorkspace::EnableCpp14; - LocalWorkspaceST::Get()->SetParserFlags( flags ); + if(m_checkBoxCpp11->IsChecked()) flags |= LocalWorkspace::EnableCpp11; + if(m_checkBoxCpp14->IsChecked()) flags |= LocalWorkspace::EnableCpp14; + if(m_checkBoxSWTLW->IsChecked()) flags |= LocalWorkspace::EnableSWTLW; + LocalWorkspaceST::Get()->SetParserFlags(flags); LocalWorkspaceST::Get()->Flush(); #if HAS_LIBCLANG @@ -91,8 +85,4 @@ } } -void CodeCompletionPage::OnCCContentModified(wxCommandEvent& event) -{ - m_ccChanged = true; -} - +void CodeCompletionPage::OnCCContentModified(wxCommandEvent& event) { m_ccChanged = true; } diff -Nru codelite-8.0.1+dfsg2/LiteEditor/CodeLiteUpgradeFrameBase.cpp codelite-9.0+dfsg/LiteEditor/CodeLiteUpgradeFrameBase.cpp --- codelite-8.0.1+dfsg2/LiteEditor/CodeLiteUpgradeFrameBase.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/CodeLiteUpgradeFrameBase.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -53,11 +53,19 @@ boxSizer6->Add(boxSizer20, 0, wxALL|wxALIGN_RIGHT, 5); m_panel4->SetMinSize(wxSize(500,-1)); + SetName(wxT("clInitializeDialogBase")); SetSizeHints(500,-1); if ( GetSizer() ) { GetSizer()->Fit(this); } - Centre(wxBOTH); + CentreOnParent(wxBOTH); +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(this)) { + wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); + } +#endif } clInitializeDialogBase::~clInitializeDialogBase() diff -Nru codelite-8.0.1+dfsg2/LiteEditor/CodeLiteUpgradeFrameBase.h codelite-9.0+dfsg/LiteEditor/CodeLiteUpgradeFrameBase.h --- codelite-8.0.1+dfsg2/LiteEditor/CodeLiteUpgradeFrameBase.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/CodeLiteUpgradeFrameBase.h 2015-10-11 13:56:07.000000000 +0000 @@ -4,8 +4,8 @@ // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// -#ifndef CODELITEUPGRADEFRAME_BASE_CLASSES_H -#define CODELITEUPGRADEFRAME_BASE_CLASSES_H +#ifndef CODELITE_LITEEDITOR_CODELITEUPGRADEFRAME_BASE_CLASSES_H +#define CODELITE_LITEEDITOR_CODELITEUPGRADEFRAME_BASE_CLASSES_H #include #include @@ -17,6 +17,12 @@ #include #include #include +#if wxVERSION_NUMBER >= 2900 +#include +#include +#include +#include +#endif class clInitializeDialogBase : public wxDialog { diff -Nru codelite-8.0.1+dfsg2/LiteEditor/CodeLiteUpgradeFrame.wxcp codelite-9.0+dfsg/LiteEditor/CodeLiteUpgradeFrame.wxcp --- codelite-8.0.1+dfsg2/LiteEditor/CodeLiteUpgradeFrame.wxcp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/CodeLiteUpgradeFrame.wxcp 2015-10-11 13:56:07.000000000 +0000 @@ -72,6 +72,10 @@ "m_label": "Style:", "m_value": "" }, { + "type": "bool", + "m_label": "Enable Window Persistency:", + "m_value": true + }, { "type": "string", "m_label": "Title:", "m_value": "Initializing CodeLite" @@ -128,6 +132,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "boxSizer26" }, { @@ -217,6 +225,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "boxSizer6" }, { @@ -426,6 +438,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "boxSizer20" }, { diff -Nru codelite-8.0.1+dfsg2/LiteEditor/code_parser.rc codelite-9.0+dfsg/LiteEditor/code_parser.rc --- codelite-8.0.1+dfsg2/LiteEditor/code_parser.rc 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/code_parser.rc 2015-10-11 13:56:07.000000000 +0000 @@ -33,8 +33,8 @@ /////////////////////////////////////////////////////////////////////////////// // Version information VS_VERSION_INFO VERSIONINFO -FILEVERSION 8,0,0,0 -PRODUCTVERSION 8,0,0,1 +FILEVERSION 9,0,0,0 +PRODUCTVERSION 9,0,0,0 FILEFLAGSMASK 0x3fL // VS_FFI_FILEFLAGSMASK FILEFLAGS 0x0L // final version FILEOS VOS_NT_WINDOWS32 @@ -47,15 +47,15 @@ VALUE "Comments", "Licensed under GPL2." VALUE "CompanyName", "The CodeLite Team" VALUE "Developer", "Eran Ifrah" - VALUE "FileDescription", "CodeLite, an Open Source, free, cross platform IDE for C/C++/PHP" - VALUE "FileVersion", "8.0.0" + VALUE "FileDescription", "CodeLite, an Open Source cross platform C,C++, and Web IDE" + VALUE "FileVersion", "9.0.0" VALUE "InternalName", "CodeLite" VALUE "LegalCopyright", "Copyright (C) 2007-2015 CodeLite Team" VALUE "LegalTrademarks", "All rights reserved." VALUE "OriginalFilename", "codelite.exe" VALUE "PrivateBuild", "" VALUE "ProductName", "CodeLite" - VALUE "ProductVersion", "8.0.0" + VALUE "ProductVersion", "9.0.0" VALUE "SpecialBuild", "" VALUE "Support", "http://forums.codelite.org" VALUE "Users", "Unlimited." diff -Nru codelite-8.0.1+dfsg2/LiteEditor/CompilerMainPage.cpp codelite-9.0+dfsg/LiteEditor/CompilerMainPage.cpp --- codelite-8.0.1+dfsg2/LiteEditor/CompilerMainPage.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/CompilerMainPage.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -49,10 +49,6 @@ , m_selectedCmpOption(-1) , m_selectedLnkOption(-1) { -#ifndef __WXGTK__ - m_auiBook->SetArtProvider(new clAuiGlossyTabArt()); -#endif - // =============----------------------------- // Patterns page initialization // =============----------------------------- @@ -803,8 +799,8 @@ m_listBoxCompilers->Clear(); wxString cmpType; - if(WorkspaceST::Get()->IsOpen() && WorkspaceST::Get()->GetActiveProject()) { - BuildConfigPtr bldConf = WorkspaceST::Get()->GetActiveProject()->GetBuildConfiguration(); + if(clCxxWorkspaceST::Get()->IsOpen() && clCxxWorkspaceST::Get()->GetActiveProject()) { + BuildConfigPtr bldConf = clCxxWorkspaceST::Get()->GetActiveProject()->GetBuildConfiguration(); if(bldConf) { cmpType = bldConf->GetCompilerType(); } diff -Nru codelite-8.0.1+dfsg2/LiteEditor/compiler_page_plugin_bitmaps.cpp codelite-9.0+dfsg/LiteEditor/compiler_page_plugin_bitmaps.cpp --- codelite-8.0.1+dfsg2/LiteEditor/compiler_page_plugin_bitmaps.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/compiler_page_plugin_bitmaps.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,28 +1,3 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2014 The CodeLite Team -// file name : compiler_page_plugin_bitmaps.cpp -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - // // This file was automatically generated by wxrc, do not edit by hand. // @@ -57,20 +32,19 @@ 138,55,129,159,76,14,254,166,34,84,230,222,57,167,0,0,0,0,73,69,78,68,174, 66,96,130}; -static size_t xml_res_size_1 = 231; +static size_t xml_res_size_1 = 213; static unsigned char xml_res_file_1[] = { 60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, 110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, 115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, -47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, -47,119,120,120,114,99,34,32,118,101,114,115,105,111,110,61,34,50,46,51, -46,48,46,49,34,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, -61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,97,114,114, -111,119,45,100,111,119,110,45,49,54,34,62,99,111,109,112,105,108,101,114, -95,112,97,103,101,95,112,108,117,103,105,110,95,98,105,116,109,97,112,115, -46,99,112,112,36,114,101,115,95,97,114,114,111,119,45,100,111,119,110,45, -49,54,46,112,110,103,60,47,111,98,106,101,99,116,62,10,60,47,114,101,115, -111,117,114,99,101,62,10}; +47,47,119,119,119,46,119,120,119,105,100,103,101,116,115,46,111,114,103, +47,119,120,120,114,99,34,62,10,32,32,60,111,98,106,101,99,116,32,99,108, +97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61, +34,97,114,114,111,119,45,100,111,119,110,45,49,54,34,62,99,111,109,112, +105,108,101,114,95,112,97,103,101,95,112,108,117,103,105,110,95,98,105, +116,109,97,112,115,46,99,112,112,36,114,101,115,95,97,114,114,111,119,45, +100,111,119,110,45,49,54,46,112,110,103,60,47,111,98,106,101,99,116,62, +10,60,47,114,101,115,111,117,114,99,101,62,10}; void wxCAD0CInitBitmapResources() { diff -Nru codelite-8.0.1+dfsg2/LiteEditor/compiler_pages.cpp codelite-9.0+dfsg/LiteEditor/compiler_pages.cpp --- codelite-8.0.1+dfsg2/LiteEditor/compiler_pages.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/compiler_pages.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -23,10 +23,10 @@ bBitmapLoaded = true; } - wxBoxSizer* bSizer23 = new wxBoxSizer(wxVERTICAL); + bSizer23 = new wxBoxSizer(wxVERTICAL); this->SetSizer(bSizer23); - wxFlexGridSizer* fgSizer7 = new wxFlexGridSizer(0, 2, 0, 0); + fgSizer7 = new wxFlexGridSizer(0, 2, 0, 0); fgSizer7->SetFlexibleDirection( wxBOTH ); fgSizer7->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); fgSizer7->AddGrowableCol(1); @@ -61,7 +61,7 @@ bSizer23->Add(m_staticline4, 0, wxALL|wxEXPAND, 5); - wxBoxSizer* bSizer24 = new wxBoxSizer(wxHORIZONTAL); + bSizer24 = new wxBoxSizer(wxHORIZONTAL); bSizer23->Add(bSizer24, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 5); @@ -74,11 +74,19 @@ bSizer24->Add(m_buttonCancel, 0, wxALL, 5); + SetName(wxT("CompilerOptionDlgBase")); SetSizeHints(-1,-1); if ( GetSizer() ) { GetSizer()->Fit(this); } - Centre(); + CentreOnParent(); +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(this)) { + wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); + } +#endif } CompilerOptionDlgBase::~CompilerOptionDlgBase() @@ -95,10 +103,10 @@ bBitmapLoaded = true; } - wxBoxSizer* bSizerError = new wxBoxSizer(wxVERTICAL); + bSizerError = new wxBoxSizer(wxVERTICAL); this->SetSizer(bSizerError); - wxFlexGridSizer* fgSizer41 = new wxFlexGridSizer(0, 2, 0, 0); + fgSizer41 = new wxFlexGridSizer(0, 2, 0, 0); fgSizer41->SetFlexibleDirection( wxBOTH ); fgSizer41->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); fgSizer41->AddGrowableCol(1); @@ -167,11 +175,19 @@ m_stdBtnSizer229->AddButton(m_button233); m_stdBtnSizer229->Realize(); + SetName(wxT("CompilerPatternDlgBase")); SetSizeHints(500,-1); if ( GetSizer() ) { GetSizer()->Fit(this); } - Centre(); + CentreOnParent(); +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(this)) { + wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); + } +#endif // Connect events m_button231->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(CompilerPatternDlgBase::OnSubmit), NULL, this); @@ -193,10 +209,10 @@ bBitmapLoaded = true; } - wxBoxSizer* boxSizer73 = new wxBoxSizer(wxVERTICAL); + boxSizer73 = new wxBoxSizer(wxVERTICAL); this->SetSizer(boxSizer73); - wxFlexGridSizer* flexGridSizer82 = new wxFlexGridSizer(0, 2, 0, 0); + flexGridSizer82 = new wxFlexGridSizer(0, 2, 0, 0); flexGridSizer82->SetFlexibleDirection( wxBOTH ); flexGridSizer82->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); flexGridSizer82->AddGrowableCol(1); @@ -236,11 +252,19 @@ m_stdBtnSizer75->AddButton(m_buttonOK); m_stdBtnSizer75->Realize(); + SetName(wxT("NewCompilerDlgBase")); SetSizeHints(-1,-1); if ( GetSizer() ) { GetSizer()->Fit(this); } - Centre(wxBOTH); + CentreOnParent(wxBOTH); +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(this)) { + wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); + } +#endif // Connect events m_buttonOK->Connect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(NewCompilerDlgBase::OnOkUI), NULL, this); @@ -262,7 +286,7 @@ bBitmapLoaded = true; } - wxBoxSizer* boxSizer114 = new wxBoxSizer(wxVERTICAL); + boxSizer114 = new wxBoxSizer(wxVERTICAL); this->SetSizer(boxSizer114); m_button222 = new wxButton(this, wxID_ANY, _("Add Compilers"), wxDefaultPosition, wxSize(-1,-1), 0); @@ -273,23 +297,24 @@ boxSizer114->Add(m_button222, 0, wxALL|wxALIGN_RIGHT, 5); - wxBoxSizer* boxSizer220 = new wxBoxSizer(wxHORIZONTAL); + boxSizer220 = new wxBoxSizer(wxHORIZONTAL); - boxSizer114->Add(boxSizer220, 0, wxEXPAND, 5); + boxSizer114->Add(boxSizer220, 1, wxEXPAND, 5); wxArrayString m_listBoxCompilersArr; m_listBoxCompilers = new wxListBox(this, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), m_listBoxCompilersArr, wxLB_SORT|wxLB_SINGLE); boxSizer220->Add(m_listBoxCompilers, 0, wxALL|wxEXPAND, 5); - m_auiBook = new wxAuiNotebook(this, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxAUI_NB_TOP|wxAUI_NB_WINDOWLIST_BUTTON|wxBK_DEFAULT); + m_auiBook = new Notebook(this, wxID_ANY, wxDefaultPosition, wxSize(450,300), wxAUI_NB_DEFAULT_STYLE|wxBK_DEFAULT); + m_auiBook->SetName(wxT("m_auiBook")); boxSizer220->Add(m_auiBook, 1, wxALL|wxEXPAND, 5); m_panelTools = new wxPanel(m_auiBook, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxTAB_TRAVERSAL); m_auiBook->AddPage(m_panelTools, _("Tools"), true); - wxBoxSizer* boxSizer2 = new wxBoxSizer(wxVERTICAL); + boxSizer2 = new wxBoxSizer(wxVERTICAL); m_panelTools->SetSizer(boxSizer2); wxArrayString m_pgMgrToolsArr; @@ -346,10 +371,10 @@ m_panelPatterns = new wxPanel(m_auiBook, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxTAB_TRAVERSAL); m_auiBook->AddPage(m_panelPatterns, _("Patterns"), false); - wxBoxSizer* bSizer14 = new wxBoxSizer(wxVERTICAL); + bSizer14 = new wxBoxSizer(wxVERTICAL); m_panelPatterns->SetSizer(bSizer14); - wxBoxSizer* bSizerError = new wxBoxSizer(wxVERTICAL); + bSizerError = new wxBoxSizer(wxVERTICAL); bSizer14->Add(bSizerError, 1, wxEXPAND, 5); @@ -357,7 +382,7 @@ bSizerError->Add(m_staticText161, 0, wxALL, 5); - wxBoxSizer* bSizer25 = new wxBoxSizer(wxHORIZONTAL); + bSizer25 = new wxBoxSizer(wxHORIZONTAL); bSizerError->Add(bSizer25, 1, wxEXPAND, 5); @@ -365,7 +390,7 @@ bSizer25->Add(m_listErrPatterns, 1, wxALL|wxEXPAND, 5); - wxBoxSizer* bSizer26 = new wxBoxSizer(wxVERTICAL); + bSizer26 = new wxBoxSizer(wxVERTICAL); bSizer25->Add(bSizer26, 0, 0, 5); @@ -384,7 +409,7 @@ bSizer26->Add(m_btnUpdateErrPattern, 0, wxALL|wxEXPAND, 5); - wxBoxSizer* bSizerWarnings = new wxBoxSizer(wxVERTICAL); + bSizerWarnings = new wxBoxSizer(wxVERTICAL); bSizer14->Add(bSizerWarnings, 1, wxEXPAND, 5); @@ -392,7 +417,7 @@ bSizerWarnings->Add(m_staticText17, 0, wxALL, 5); - wxBoxSizer* bSizer251 = new wxBoxSizer(wxHORIZONTAL); + bSizer251 = new wxBoxSizer(wxHORIZONTAL); bSizerWarnings->Add(bSizer251, 1, wxEXPAND, 5); @@ -400,7 +425,7 @@ bSizer251->Add(m_listWarnPatterns, 1, wxALL|wxEXPAND, 5); - wxBoxSizer* bSizer261 = new wxBoxSizer(wxVERTICAL); + bSizer261 = new wxBoxSizer(wxVERTICAL); bSizer251->Add(bSizer261, 0, 0, 5); @@ -422,14 +447,14 @@ m_panelComilerOptions = new wxPanel(m_auiBook, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxTAB_TRAVERSAL); m_auiBook->AddPage(m_panelComilerOptions, _("Compiler Options"), false); - wxBoxSizer* bSizer101 = new wxBoxSizer(wxVERTICAL); + bSizer101 = new wxBoxSizer(wxVERTICAL); m_panelComilerOptions->SetSizer(bSizer101); m_staticText23_O = new wxStaticText(m_panelComilerOptions, wxID_ANY, _("Double click on an entry to modify it:"), wxDefaultPosition, wxSize(-1, -1), 0); bSizer101->Add(m_staticText23_O, 0, wxALL|wxEXPAND, 5); - wxBoxSizer* bSizer12_CmpOptions = new wxBoxSizer(wxHORIZONTAL); + bSizer12_CmpOptions = new wxBoxSizer(wxHORIZONTAL); bSizer101->Add(bSizer12_CmpOptions, 1, wxEXPAND, 5); @@ -437,7 +462,7 @@ bSizer12_CmpOptions->Add(m_listCompilerOptions, 1, wxALL|wxEXPAND, 5); - wxBoxSizer* bSizer_1 = new wxBoxSizer(wxVERTICAL); + bSizer_1 = new wxBoxSizer(wxVERTICAL); bSizer12_CmpOptions->Add(bSizer_1, 0, wxEXPAND, 5); @@ -453,14 +478,14 @@ m_panelLinkerOptions = new wxPanel(m_auiBook, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxTAB_TRAVERSAL); m_auiBook->AddPage(m_panelLinkerOptions, _("Linker Options"), false); - wxBoxSizer* bSizer105 = new wxBoxSizer(wxVERTICAL); + bSizer105 = new wxBoxSizer(wxVERTICAL); m_panelLinkerOptions->SetSizer(bSizer105); m_staticText23_L = new wxStaticText(m_panelLinkerOptions, wxID_ANY, _("Double click on an entry to modify it:"), wxDefaultPosition, wxSize(-1, -1), 0); bSizer105->Add(m_staticText23_L, 0, wxALL|wxEXPAND, 5); - wxBoxSizer* bSizer123 = new wxBoxSizer(wxHORIZONTAL); + bSizer123 = new wxBoxSizer(wxHORIZONTAL); bSizer105->Add(bSizer123, 1, wxEXPAND, 5); @@ -468,7 +493,7 @@ bSizer123->Add(m_listLinkerOptions, 1, wxALL|wxEXPAND, 5); - wxBoxSizer* bSizer_2 = new wxBoxSizer(wxVERTICAL); + bSizer_2 = new wxBoxSizer(wxVERTICAL); bSizer123->Add(bSizer_2, 0, wxEXPAND, 5); @@ -484,7 +509,7 @@ m_panelCompilerSwitches = new wxPanel(m_auiBook, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxTAB_TRAVERSAL); m_auiBook->AddPage(m_panelCompilerSwitches, _("Switches"), false); - wxBoxSizer* mainSizer = new wxBoxSizer(wxVERTICAL); + mainSizer = new wxBoxSizer(wxVERTICAL); m_panelCompilerSwitches->SetSizer(mainSizer); m_staticText8 = new wxStaticText(m_panelCompilerSwitches, wxID_ANY, _("Double click on an entry to modify it:"), wxDefaultPosition, wxSize(-1, -1), 0); @@ -498,14 +523,14 @@ m_panelFileTypes = new wxPanel(m_auiBook, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxTAB_TRAVERSAL); m_auiBook->AddPage(m_panelFileTypes, _("File Types"), false); - wxBoxSizer* bSizer10 = new wxBoxSizer(wxVERTICAL); + bSizer10 = new wxBoxSizer(wxVERTICAL); m_panelFileTypes->SetSizer(bSizer10); m_staticText23 = new wxStaticText(m_panelFileTypes, wxID_ANY, _("Double click on an entry to modify it:"), wxDefaultPosition, wxSize(-1, -1), 0); bSizer10->Add(m_staticText23, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 5); - wxBoxSizer* bSizer12 = new wxBoxSizer(wxHORIZONTAL); + bSizer12 = new wxBoxSizer(wxHORIZONTAL); bSizer10->Add(bSizer12, 1, wxALL|wxEXPAND, 5); @@ -513,7 +538,7 @@ bSizer12->Add(m_listCtrlFileTypes, 1, wxALL|wxEXPAND, 5); - wxBoxSizer* bSizer111 = new wxBoxSizer(wxVERTICAL); + bSizer111 = new wxBoxSizer(wxVERTICAL); bSizer12->Add(bSizer111, 0, wxEXPAND, 5); @@ -529,14 +554,14 @@ m_panelAdvanced = new wxPanel(m_auiBook, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxTAB_TRAVERSAL); m_auiBook->AddPage(m_panelAdvanced, _("Advanced"), false); - wxBoxSizer* bSizer11 = new wxBoxSizer(wxVERTICAL); + bSizer11 = new wxBoxSizer(wxVERTICAL); m_panelAdvanced->SetSizer(bSizer11); - wxBoxSizer* bSizer7 = new wxBoxSizer(wxVERTICAL); + bSizer7 = new wxBoxSizer(wxVERTICAL); bSizer11->Add(bSizer7, 0, wxALL|wxEXPAND, 5); - wxFlexGridSizer* fgSizer3 = new wxFlexGridSizer(0, 3, 0, 0); + fgSizer3 = new wxFlexGridSizer(0, 3, 0, 0); fgSizer3->SetFlexibleDirection( wxBOTH ); fgSizer3->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); fgSizer3->AddGrowableCol(1); @@ -661,13 +686,13 @@ m_checkBoxReadObjectsFromFile->SetValue(false); fgSizer3->Add(m_checkBoxReadObjectsFromFile, 0, wxALL, 5); - m_auiBook->SetMinSize(wxSize(500,500)); + SetName(wxT("CompilerMainPageBase")); SetSizeHints(-1,-1); if ( GetSizer() ) { GetSizer()->Fit(this); } - Centre(wxBOTH); + CentreOnParent(wxBOTH); // Connect events m_button222->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(CompilerMainPageBase::OnAddCompilers), NULL, this); m_listBoxCompilers->Connect(wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler(CompilerMainPageBase::OnCompilerSelected), NULL, this); diff -Nru codelite-8.0.1+dfsg2/LiteEditor/compiler_pages.h codelite-9.0+dfsg/LiteEditor/compiler_pages.h --- codelite-8.0.1+dfsg2/LiteEditor/compiler_pages.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/compiler_pages.h 2015-10-11 13:56:07.000000000 +0000 @@ -4,8 +4,8 @@ // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// -#ifndef COMPILER_PAGE_BASE_CLASSES_H -#define COMPILER_PAGE_BASE_CLASSES_H +#ifndef CODELITE_LITEEDITOR_COMPILER_PAGE_BASE_CLASSES_H +#define CODELITE_LITEEDITOR_COMPILER_PAGE_BASE_CLASSES_H #include #include @@ -23,27 +23,44 @@ #include #include #include +#include "Notebook.h" #include #include #include #include #include #include +#if wxVERSION_NUMBER >= 2900 +#include +#include +#include +#include +#endif class CompilerOptionDlgBase : public wxDialog { protected: + wxBoxSizer* bSizer23; + wxFlexGridSizer* fgSizer7; wxStaticText* m_staticText26; wxTextCtrl* m_textCtrl18; wxStaticText* m_staticText27; wxTextCtrl* m_textCtrl19; wxStaticLine* m_staticline4; + wxBoxSizer* bSizer24; wxButton* m_buttonOK; wxButton* m_buttonCancel; protected: public: + wxStaticText* GetStaticText26() { return m_staticText26; } + wxTextCtrl* GetTextCtrl18() { return m_textCtrl18; } + wxStaticText* GetStaticText27() { return m_staticText27; } + wxTextCtrl* GetTextCtrl19() { return m_textCtrl19; } + wxStaticLine* GetStaticline4() { return m_staticline4; } + wxButton* GetButtonOK() { return m_buttonOK; } + wxButton* GetButtonCancel() { return m_buttonCancel; } CompilerOptionDlgBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = wxT(""), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER); virtual ~CompilerOptionDlgBase(); }; @@ -52,6 +69,8 @@ class CompilerPatternDlgBase : public wxDialog { protected: + wxBoxSizer* bSizerError; + wxFlexGridSizer* fgSizer41; wxStaticText* m_staticText5; wxTextCtrl* m_textPattern; wxStaticText* m_staticText6; @@ -68,6 +87,14 @@ virtual void OnSubmit(wxCommandEvent& event) { event.Skip(); } public: + wxStaticText* GetStaticText5() { return m_staticText5; } + wxTextCtrl* GetTextPattern() { return m_textPattern; } + wxStaticText* GetStaticText6() { return m_staticText6; } + wxTextCtrl* GetTextFileIndex() { return m_textFileIndex; } + wxStaticText* GetStaticText7() { return m_staticText7; } + wxTextCtrl* GetTextLineNumber() { return m_textLineNumber; } + wxStaticText* GetStaticText235() { return m_staticText235; } + wxTextCtrl* GetTextColumn() { return m_textColumn; } CompilerPatternDlgBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = wxT(""), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(500,-1), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER); virtual ~CompilerPatternDlgBase(); }; @@ -76,6 +103,8 @@ class NewCompilerDlgBase : public wxDialog { protected: + wxBoxSizer* boxSizer73; + wxFlexGridSizer* flexGridSizer82; wxStaticText* m_staticText84; wxTextCtrl* m_textCtrlCompilerName; wxStaticText* m_staticText88; @@ -88,6 +117,10 @@ virtual void OnOkUI(wxUpdateUIEvent& event) { event.Skip(); } public: + wxStaticText* GetStaticText84() { return m_staticText84; } + wxTextCtrl* GetTextCtrlCompilerName() { return m_textCtrlCompilerName; } + wxStaticText* GetStaticText88() { return m_staticText88; } + wxChoice* GetChoiceCompilers() { return m_choiceCompilers; } NewCompilerDlgBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("New Compiler"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER); virtual ~NewCompilerDlgBase(); }; @@ -96,10 +129,13 @@ class CompilerMainPageBase : public wxPanel { protected: + wxBoxSizer* boxSizer114; wxButton* m_button222; + wxBoxSizer* boxSizer220; wxListBox* m_listBoxCompilers; - wxAuiNotebook* m_auiBook; + Notebook* m_auiBook; wxPanel* m_panelTools; + wxBoxSizer* boxSizer2; wxPropertyGridManager* m_pgMgrTools; wxPGProperty* m_pgProp94; wxPGProperty* m_pgPropCXX; @@ -113,35 +149,55 @@ wxPGProperty* m_pgPropMkdir; wxPGProperty* m_pgPropDebugger; wxPanel* m_panelPatterns; + wxBoxSizer* bSizer14; + wxBoxSizer* bSizerError; wxStaticText* m_staticText161; + wxBoxSizer* bSizer25; wxListCtrl* m_listErrPatterns; + wxBoxSizer* bSizer26; wxButton* m_btnAddErrPattern; wxButton* m_btnDelErrPattern; wxButton* m_btnUpdateErrPattern; + wxBoxSizer* bSizerWarnings; wxStaticText* m_staticText17; + wxBoxSizer* bSizer251; wxListCtrl* m_listWarnPatterns; + wxBoxSizer* bSizer261; wxButton* m_btnAddWarnPattern; wxButton* m_btnDelWarnPattern; wxButton* m_btnUpdateWarnPattern; wxPanel* m_panelComilerOptions; + wxBoxSizer* bSizer101; wxStaticText* m_staticText23_O; + wxBoxSizer* bSizer12_CmpOptions; wxListCtrl* m_listCompilerOptions; + wxBoxSizer* bSizer_1; wxButton* m_buttonCompilerOption; wxButton* m_buttonDeleteCompilerOption; wxPanel* m_panelLinkerOptions; + wxBoxSizer* bSizer105; wxStaticText* m_staticText23_L; + wxBoxSizer* bSizer123; wxListCtrl* m_listLinkerOptions; + wxBoxSizer* bSizer_2; wxButton* m_buttonLinkerOption; wxButton* m_buttonDeleteLinkerOption; wxPanel* m_panelCompilerSwitches; + wxBoxSizer* mainSizer; wxStaticText* m_staticText8; wxListCtrl* m_listSwitches; wxPanel* m_panelFileTypes; + wxBoxSizer* bSizer10; wxStaticText* m_staticText23; + wxBoxSizer* bSizer12; wxListCtrl* m_listCtrlFileTypes; + wxBoxSizer* bSizer111; wxButton* m_buttonNewFileType; wxButton* m_buttonDeleteFileType; wxPanel* m_panelAdvanced; + wxBoxSizer* bSizer11; + wxBoxSizer* bSizer7; + wxFlexGridSizer* fgSizer3; wxStaticText* m_staticText18; wxStaticText* m_staticText141; wxTextCtrl* m_textCtrlGlobalIncludePath; @@ -198,6 +254,58 @@ virtual void OnEditLibraryPaths(wxCommandEvent& event) { event.Skip(); } public: + wxButton* GetButton222() { return m_button222; } + wxListBox* GetListBoxCompilers() { return m_listBoxCompilers; } + wxPropertyGridManager* GetPgMgrTools() { return m_pgMgrTools; } + wxPanel* GetPanelTools() { return m_panelTools; } + wxStaticText* GetStaticText161() { return m_staticText161; } + wxListCtrl* GetListErrPatterns() { return m_listErrPatterns; } + wxButton* GetBtnAddErrPattern() { return m_btnAddErrPattern; } + wxButton* GetBtnDelErrPattern() { return m_btnDelErrPattern; } + wxButton* GetBtnUpdateErrPattern() { return m_btnUpdateErrPattern; } + wxStaticText* GetStaticText17() { return m_staticText17; } + wxListCtrl* GetListWarnPatterns() { return m_listWarnPatterns; } + wxButton* GetBtnAddWarnPattern() { return m_btnAddWarnPattern; } + wxButton* GetBtnDelWarnPattern() { return m_btnDelWarnPattern; } + wxButton* GetBtnUpdateWarnPattern() { return m_btnUpdateWarnPattern; } + wxPanel* GetPanelPatterns() { return m_panelPatterns; } + wxStaticText* GetStaticText23_O() { return m_staticText23_O; } + wxListCtrl* GetListCompilerOptions() { return m_listCompilerOptions; } + wxButton* GetButtonCompilerOption() { return m_buttonCompilerOption; } + wxButton* GetButtonDeleteCompilerOption() { return m_buttonDeleteCompilerOption; } + wxPanel* GetPanelComilerOptions() { return m_panelComilerOptions; } + wxStaticText* GetStaticText23_L() { return m_staticText23_L; } + wxListCtrl* GetListLinkerOptions() { return m_listLinkerOptions; } + wxButton* GetButtonLinkerOption() { return m_buttonLinkerOption; } + wxButton* GetButtonDeleteLinkerOption() { return m_buttonDeleteLinkerOption; } + wxPanel* GetPanelLinkerOptions() { return m_panelLinkerOptions; } + wxStaticText* GetStaticText8() { return m_staticText8; } + wxListCtrl* GetListSwitches() { return m_listSwitches; } + wxPanel* GetPanelCompilerSwitches() { return m_panelCompilerSwitches; } + wxStaticText* GetStaticText23() { return m_staticText23; } + wxListCtrl* GetListCtrlFileTypes() { return m_listCtrlFileTypes; } + wxButton* GetButtonNewFileType() { return m_buttonNewFileType; } + wxButton* GetButtonDeleteFileType() { return m_buttonDeleteFileType; } + wxPanel* GetPanelFileTypes() { return m_panelFileTypes; } + wxStaticText* GetStaticText18() { return m_staticText18; } + wxStaticText* GetStaticText141() { return m_staticText141; } + wxTextCtrl* GetTextCtrlGlobalIncludePath() { return m_textCtrlGlobalIncludePath; } + wxButton* GetButton67() { return m_button67; } + wxStaticText* GetStaticText16() { return m_staticText16; } + wxTextCtrl* GetTextCtrlGlobalLibPath() { return m_textCtrlGlobalLibPath; } + wxButton* GetButton69() { return m_button69; } + wxStaticText* GetStaticText19() { return m_staticText19; } + wxStaticText* GetStaticText3() { return m_staticText3; } + wxTextCtrl* GetTextObjectExtension() { return m_textObjectExtension; } + wxStaticText* GetStaticText24() { return m_staticText24; } + wxTextCtrl* GetTextDependExtension() { return m_textDependExtension; } + wxStaticText* GetStaticText25() { return m_staticText25; } + wxTextCtrl* GetTextPreprocessExtension() { return m_textPreprocessExtension; } + wxCheckBox* GetCheckBoxGenerateDependenciesFiles() { return m_checkBoxGenerateDependenciesFiles; } + wxCheckBox* GetCheckBoxObjectNameSameAsFileName() { return m_checkBoxObjectNameSameAsFileName; } + wxCheckBox* GetCheckBoxReadObjectsFromFile() { return m_checkBoxReadObjectsFromFile; } + wxPanel* GetPanelAdvanced() { return m_panelAdvanced; } + Notebook* GetAuiBook() { return m_auiBook; } CompilerMainPageBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxTAB_TRAVERSAL); virtual ~CompilerMainPageBase(); }; diff -Nru codelite-8.0.1+dfsg2/LiteEditor/compiler_page.wxcp codelite-9.0+dfsg/LiteEditor/compiler_page.wxcp --- codelite-8.0.1+dfsg2/LiteEditor/compiler_page.wxcp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/compiler_page.wxcp 2015-10-11 13:56:07.000000000 +0000 @@ -72,6 +72,10 @@ "m_label": "Style:", "m_value": "" }, { + "type": "bool", + "m_label": "Enable Window Persistency:", + "m_value": true + }, { "type": "string", "m_label": "Title:", "m_value": "" @@ -128,6 +132,10 @@ "m_sizerFlags": [], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer23" }, { @@ -151,6 +159,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "fgSizer7" }, { @@ -604,6 +616,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_HORIZONTAL"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer24" }, { @@ -857,6 +873,10 @@ "m_label": "Style:", "m_value": "" }, { + "type": "bool", + "m_label": "Enable Window Persistency:", + "m_value": true + }, { "type": "string", "m_label": "Title:", "m_value": "" @@ -913,6 +933,10 @@ "m_sizerFlags": [], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizerError" }, { @@ -936,6 +960,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "fgSizer41" }, { @@ -1829,6 +1857,10 @@ "m_label": "Style:", "m_value": "" }, { + "type": "bool", + "m_label": "Enable Window Persistency:", + "m_value": true + }, { "type": "string", "m_label": "Title:", "m_value": "New Compiler" @@ -1885,6 +1917,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "boxSizer73" }, { @@ -1908,6 +1944,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "flexGridSizer82" }, { @@ -2482,6 +2522,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "boxSizer114" }, { @@ -2592,7 +2636,7 @@ "m_children": [] }, { "m_type": 4401, - "proportion": 0, + "proportion": 1, "border": 5, "gbSpan": "1,1", "gbPosition": "0,0", @@ -2600,6 +2644,10 @@ "m_sizerFlags": ["wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "boxSizer220" }, { @@ -2708,7 +2756,7 @@ "border": 5, "gbSpan": "1,1", "gbPosition": "0,0", - "m_styles": ["wxAUI_NB_TOP", "wxAUI_NB_WINDOWLIST_BUTTON", "wxBK_DEFAULT"], + "m_styles": ["wxAUI_NB_DEFAULT_STYLE", "wxBK_DEFAULT"], "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "winid", @@ -2717,11 +2765,11 @@ }, { "type": "string", "m_label": "Size:", - "m_value": "-1,-1" + "m_value": "450,300" }, { "type": "string", "m_label": "Minimum Size:", - "m_value": "500,500" + "m_value": "-1,-1" }, { "type": "string", "m_label": "Name:", @@ -2757,11 +2805,11 @@ }, { "type": "string", "m_label": "Class Name:", - "m_value": "" + "m_value": "Notebook" }, { "type": "string", "m_label": "Include File:", - "m_value": "" + "m_value": "Notebook.h" }, { "type": "string", "m_label": "Style:", @@ -2860,6 +2908,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "boxSizer2" }, { @@ -3771,6 +3823,10 @@ "m_sizerFlags": [], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer14" }, { @@ -3794,6 +3850,10 @@ "m_sizerFlags": ["wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizerError" }, { @@ -3892,6 +3952,10 @@ "m_sizerFlags": ["wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer25" }, { @@ -3989,6 +4053,10 @@ "m_sizerFlags": [], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer26" }, { @@ -4314,6 +4382,10 @@ "m_sizerFlags": ["wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizerWarnings" }, { @@ -4412,6 +4484,10 @@ "m_sizerFlags": ["wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer251" }, { @@ -4509,6 +4585,10 @@ "m_sizerFlags": [], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer261" }, { @@ -4918,6 +4998,10 @@ "m_sizerFlags": [], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer101" }, { @@ -5016,6 +5100,10 @@ "m_sizerFlags": ["wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer12_CmpOptions" }, { @@ -5127,6 +5215,10 @@ "m_sizerFlags": ["wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer_1" }, { @@ -5426,6 +5518,10 @@ "m_sizerFlags": [], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer105" }, { @@ -5524,6 +5620,10 @@ "m_sizerFlags": ["wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer123" }, { @@ -5635,6 +5735,10 @@ "m_sizerFlags": ["wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer_2" }, { @@ -5934,6 +6038,10 @@ "m_sizerFlags": [], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "mainSizer" }, { @@ -6197,6 +6305,10 @@ "m_sizerFlags": [], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer10" }, { @@ -6295,6 +6407,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer12" }, { @@ -6406,6 +6522,10 @@ "m_sizerFlags": ["wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer111" }, { @@ -6705,6 +6825,10 @@ "m_sizerFlags": [], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer11" }, { @@ -6728,6 +6852,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer7" }, { @@ -6751,6 +6879,10 @@ "m_sizerFlags": ["wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "fgSizer3" }, { diff -Nru codelite-8.0.1+dfsg2/LiteEditor/CompilersFoundDlgBase.cpp codelite-9.0+dfsg/LiteEditor/CompilersFoundDlgBase.cpp --- codelite-8.0.1+dfsg2/LiteEditor/CompilersFoundDlgBase.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/CompilersFoundDlgBase.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,28 +1,3 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2014 The CodeLite Team -// file name : CompilersFoundDlgBase.cpp -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - ////////////////////////////////////////////////////////////////////// // This file was auto-generated by codelite's wxCrafter Plugin // wxCrafter project file: CompilersFoundDlg.wxcp @@ -93,11 +68,19 @@ m_stdBtnSizer4->AddButton(m_buttonOK); m_stdBtnSizer4->Realize(); + SetName(wxT("CompilersFoundDlgBase")); SetSizeHints(-1,-1); if ( GetSizer() ) { GetSizer()->Fit(this); } - Centre(wxBOTH); + CentreOnParent(wxBOTH); +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(this)) { + wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); + } +#endif // Connect events m_dataview->Connect(wxEVT_COMMAND_DATAVIEW_ITEM_ACTIVATED, wxDataViewEventHandler(CompilersFoundDlgBase::OnItemActivated), NULL, this); @@ -149,11 +132,19 @@ m_stdBtnSizer18->AddButton(m_buttonCancel); m_stdBtnSizer18->Realize(); + SetName(wxT("CompilersModifiedDlgBase")); SetSizeHints(-1,-1); if ( GetSizer() ) { GetSizer()->Fit(this); } - Centre(wxBOTH); + CentreOnParent(wxBOTH); +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(this)) { + wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); + } +#endif // Connect events m_pgMgrCompilers->Connect(wxEVT_PG_CHANGED, wxPropertyGridEventHandler(CompilersModifiedDlgBase::OnValueChanged), NULL, this); m_buttonOK->Connect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(CompilersModifiedDlgBase::OnOKUI), NULL, this); diff -Nru codelite-8.0.1+dfsg2/LiteEditor/CompilersFoundDlgBase.h codelite-9.0+dfsg/LiteEditor/CompilersFoundDlgBase.h --- codelite-8.0.1+dfsg2/LiteEditor/CompilersFoundDlgBase.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/CompilersFoundDlgBase.h 2015-10-11 13:56:07.000000000 +0000 @@ -1,36 +1,11 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2014 The CodeLite Team -// file name : CompilersFoundDlgBase.h -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - ////////////////////////////////////////////////////////////////////// // This file was auto-generated by codelite's wxCrafter Plugin // wxCrafter project file: CompilersFoundDlg.wxcp // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// -#ifndef COMPILERSFOUNDDLG_BASE_CLASSES_H -#define COMPILERSFOUNDDLG_BASE_CLASSES_H +#ifndef CODELITE_LITEEDITOR_COMPILERSFOUNDDLG_BASE_CLASSES_H +#define CODELITE_LITEEDITOR_COMPILERSFOUNDDLG_BASE_CLASSES_H #include #include @@ -48,6 +23,12 @@ #include #include #include +#if wxVERSION_NUMBER >= 2900 +#include +#include +#include +#include +#endif class CompilersFoundDlgBase : public wxDialog { @@ -66,6 +47,10 @@ virtual void OnItemActivated(wxDataViewEvent& event) { event.Skip(); } public: + wxBannerWindow* GetBanner10() { return m_banner10; } + wxDataViewCtrl* GetDataview() { return m_dataview; } + wxStaticBitmap* GetStaticBitmap35() { return m_staticBitmap35; } + wxStaticText* GetStaticText29() { return m_staticText29; } CompilersFoundDlgBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Find Installed Compilers"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER); virtual ~CompilersFoundDlgBase(); }; @@ -86,6 +71,8 @@ virtual void OnOKUI(wxUpdateUIEvent& event) { event.Skip(); } public: + wxStaticText* GetStaticText27() { return m_staticText27; } + wxPropertyGridManager* GetPgMgrCompilers() { return m_pgMgrCompilers; } CompilersModifiedDlgBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Could not find selected compiler..."), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER); virtual ~CompilersModifiedDlgBase(); }; diff -Nru codelite-8.0.1+dfsg2/LiteEditor/CompilersFoundDlg_liteeditor_bitmaps.cpp codelite-9.0+dfsg/LiteEditor/CompilersFoundDlg_liteeditor_bitmaps.cpp --- codelite-8.0.1+dfsg2/LiteEditor/CompilersFoundDlg_liteeditor_bitmaps.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/CompilersFoundDlg_liteeditor_bitmaps.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,117 +1,91 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2014 The CodeLite Team -// file name : CompilersFoundDlg_liteeditor_bitmaps.cpp -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - -// -// This file was automatically generated by wxrc, do not edit by hand. -// - -#include - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#include -#include -#include -#include - -#if wxCHECK_VERSION(2,8,5) && wxABI_VERSION >= 20805 - #define XRC_ADD_FILE(name, data, size, mime) \ - wxMemoryFSHandler::AddFileWithMimeType(name, data, size, mime) -#else - #define XRC_ADD_FILE(name, data, size, mime) \ - wxMemoryFSHandler::AddFile(name, data, size) -#endif - -static size_t xml_res_size_0 = 709; -static unsigned char xml_res_file_0[] = { -137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, -0,31,243,255,97,0,0,2,140,73,68,65,84,120,94,149,146,93,72,83,113,24,198, -159,115,182,115,182,169,49,215,164,47,76,67,76,33,69,72,236,107,101,95, -116,17,20,4,213,69,221,72,65,93,84,23,209,213,46,130,76,47,186,9,132,162, -40,41,169,44,218,112,134,80,94,248,5,69,22,137,154,206,143,117,81,179,45, -167,78,101,126,108,109,158,179,179,179,243,118,108,94,76,155,69,63,120, -46,94,206,239,252,255,15,47,127,172,164,183,22,220,108,3,140,162,13,5,210, -11,236,149,108,40,143,190,68,81,240,25,204,195,13,224,177,2,22,73,124,189, -3,93,145,9,217,129,64,254,93,113,205,49,27,87,122,219,206,109,175,177,139, -230,51,141,51,82,225,163,173,10,10,252,245,72,71,42,222,86,66,43,52,34, -207,91,183,173,149,190,63,143,210,194,8,145,52,154,136,224,33,242,183,145, -175,126,103,143,228,64,153,231,9,244,127,52,200,221,113,213,226,11,228, -221,220,188,251,220,33,24,215,242,136,246,0,66,103,34,98,23,160,19,145, -189,239,82,217,68,168,240,22,107,174,216,15,128,73,62,128,145,73,41,213, -243,124,9,195,9,28,137,159,0,234,7,88,39,160,81,195,56,65,82,23,8,227,224, -245,153,197,113,162,93,149,149,73,7,44,14,26,252,52,176,76,220,4,105,8, -160,47,128,86,141,110,56,17,206,5,64,157,99,131,96,33,26,53,76,56,227,224, -82,123,45,150,72,211,73,110,133,149,100,72,131,128,66,128,36,0,172,156, -40,42,176,96,20,3,40,166,234,36,41,105,6,225,199,178,29,84,85,65,9,198, -54,173,139,131,153,4,171,83,101,63,188,31,199,0,126,18,208,79,194,219,57, -1,200,99,191,237,56,203,78,135,164,13,198,119,128,178,108,137,90,45,231, -140,200,172,147,20,211,60,165,29,6,216,245,0,101,1,202,90,64,107,6,210, -203,1,228,33,26,149,251,88,157,169,107,241,82,36,163,238,129,93,104,71, -142,183,62,167,85,241,158,39,154,187,65,158,150,35,228,122,101,33,154,191, -78,202,212,53,242,217,242,123,163,29,40,89,124,108,72,197,104,3,12,82,11, -44,227,246,220,17,154,168,32,10,60,37,151,253,56,209,244,21,242,55,21,204, -199,218,112,114,182,29,198,85,95,98,157,75,109,24,129,59,26,150,92,138, -239,61,16,108,70,238,198,62,96,188,3,114,48,236,150,5,244,15,124,64,4,127, -131,212,122,11,77,122,75,247,227,163,145,111,142,211,52,226,56,69,110,199, -89,10,189,217,114,145,18,213,25,252,139,208,235,140,172,135,247,106,196, -129,254,110,242,141,122,169,246,193,253,248,76,115,161,5,41,96,145,130, -150,207,225,144,2,126,134,55,100,66,195,233,193,106,13,242,212,28,227,193, -255,80,182,231,64,177,213,106,29,170,174,174,158,190,112,217,122,2,171, -240,11,35,252,51,254,226,117,239,57,0,0,0,0,73,69,78,68,174,66,96,130}; - -static size_t xml_res_size_1 = 224; -static unsigned char xml_res_file_1[] = { -60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, -110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, -115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, -47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, -47,119,120,120,114,99,34,32,118,101,114,115,105,111,110,61,34,50,46,51, -46,48,46,49,34,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, -61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,98,117,108, -98,34,62,67,111,109,112,105,108,101,114,115,70,111,117,110,100,68,108,103, -95,108,105,116,101,101,100,105,116,111,114,95,98,105,116,109,97,112,115, -46,99,112,112,36,114,101,115,95,49,54,95,98,117,108,98,46,112,110,103,60, -47,111,98,106,101,99,116,62,10,60,47,114,101,115,111,117,114,99,101,62, -10}; - -void wxCFE1CInitBitmapResources() -{ - - // Check for memory FS. If not present, load the handler: - { - wxMemoryFSHandler::AddFile(wxT("XRC_resource/dummy_file"), wxT("dummy one")); - wxFileSystem fsys; - wxFSFile *f = fsys.OpenFile(wxT("memory:XRC_resource/dummy_file")); - wxMemoryFSHandler::RemoveFile(wxT("XRC_resource/dummy_file")); - if (f) delete f; - else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase); - } - - XRC_ADD_FILE(wxT("XRC_resource/CompilersFoundDlg_liteeditor_bitmaps.cpp$res_16_bulb.png"), xml_res_file_0, xml_res_size_0, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/CompilersFoundDlg_liteeditor_bitmaps.cpp$_home_david_devel_git_CL_LiteEditor_CompilersFoundDlg_liteeditor_bitmaps.xrc"), xml_res_file_1, xml_res_size_1, wxT("text/xml")); - wxXmlResource::Get()->Load(wxT("memory:XRC_resource/CompilersFoundDlg_liteeditor_bitmaps.cpp$_home_david_devel_git_CL_LiteEditor_CompilersFoundDlg_liteeditor_bitmaps.xrc")); -} +// +// This file was automatically generated by wxrc, do not edit by hand. +// + +#include + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +#include +#include +#include +#include + +#if wxCHECK_VERSION(2,8,5) && wxABI_VERSION >= 20805 + #define XRC_ADD_FILE(name, data, size, mime) \ + wxMemoryFSHandler::AddFileWithMimeType(name, data, size, mime) +#else + #define XRC_ADD_FILE(name, data, size, mime) \ + wxMemoryFSHandler::AddFile(name, data, size) +#endif + +static size_t xml_res_size_0 = 709; +static unsigned char xml_res_file_0[] = { +137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, +0,31,243,255,97,0,0,2,140,73,68,65,84,120,94,149,146,93,72,83,113,24,198, +159,115,182,115,182,169,49,215,164,47,76,67,76,33,69,72,236,107,101,95, +116,17,20,4,213,69,221,72,65,93,84,23,209,213,46,130,76,47,186,9,132,162, +40,41,169,44,218,112,134,80,94,248,5,69,22,137,154,206,143,117,81,179,45, +167,78,101,126,108,109,158,179,179,179,243,118,108,94,76,155,69,63,120, +46,94,206,239,252,255,15,47,127,172,164,183,22,220,108,3,140,162,13,5,210, +11,236,149,108,40,143,190,68,81,240,25,204,195,13,224,177,2,22,73,124,189, +3,93,145,9,217,129,64,254,93,113,205,49,27,87,122,219,206,109,175,177,139, +230,51,141,51,82,225,163,173,10,10,252,245,72,71,42,222,86,66,43,52,34, +207,91,183,173,149,190,63,143,210,194,8,145,52,154,136,224,33,242,183,145, +175,126,103,143,228,64,153,231,9,244,127,52,200,221,113,213,226,11,228, +221,220,188,251,220,33,24,215,242,136,246,0,66,103,34,98,23,160,19,145, +189,239,82,217,68,168,240,22,107,174,216,15,128,73,62,128,145,73,41,213, +243,124,9,195,9,28,137,159,0,234,7,88,39,160,81,195,56,65,82,23,8,227,224, +245,153,197,113,162,93,149,149,73,7,44,14,26,252,52,176,76,220,4,105,8, +160,47,128,86,141,110,56,17,206,5,64,157,99,131,96,33,26,53,76,56,227,224, +82,123,45,150,72,211,73,110,133,149,100,72,131,128,66,128,36,0,172,156, +40,42,176,96,20,3,40,166,234,36,41,105,6,225,199,178,29,84,85,65,9,198, +54,173,139,131,153,4,171,83,101,63,188,31,199,0,126,18,208,79,194,219,57, +1,200,99,191,237,56,203,78,135,164,13,198,119,128,178,108,137,90,45,231, +140,200,172,147,20,211,60,165,29,6,216,245,0,101,1,202,90,64,107,6,210, +203,1,228,33,26,149,251,88,157,169,107,241,82,36,163,238,129,93,104,71, +142,183,62,167,85,241,158,39,154,187,65,158,150,35,228,122,101,33,154,191, +78,202,212,53,242,217,242,123,163,29,40,89,124,108,72,197,104,3,12,82,11, +44,227,246,220,17,154,168,32,10,60,37,151,253,56,209,244,21,242,55,21,204, +199,218,112,114,182,29,198,85,95,98,157,75,109,24,129,59,26,150,92,138, +239,61,16,108,70,238,198,62,96,188,3,114,48,236,150,5,244,15,124,64,4,127, +131,212,122,11,77,122,75,247,227,163,145,111,142,211,52,226,56,69,110,199, +89,10,189,217,114,145,18,213,25,252,139,208,235,140,172,135,247,106,196, +129,254,110,242,141,122,169,246,193,253,248,76,115,161,5,41,96,145,130, +150,207,225,144,2,126,134,55,100,66,195,233,193,106,13,242,212,28,227,193, +255,80,182,231,64,177,213,106,29,170,174,174,158,190,112,217,122,2,171, +240,11,35,252,51,254,226,117,239,57,0,0,0,0,73,69,78,68,174,66,96,130}; + +static size_t xml_res_size_1 = 206; +static unsigned char xml_res_file_1[] = { +60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, +110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, +115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, +47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, +47,119,120,120,114,99,34,62,10,32,32,60,111,98,106,101,99,116,32,99,108, +97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61, +34,98,117,108,98,34,62,67,111,109,112,105,108,101,114,115,70,111,117,110, +100,68,108,103,95,108,105,116,101,101,100,105,116,111,114,95,98,105,116, +109,97,112,115,46,99,112,112,36,114,101,115,95,49,54,95,98,117,108,98,46, +112,110,103,60,47,111,98,106,101,99,116,62,10,60,47,114,101,115,111,117, +114,99,101,62,10}; + +void wxCFE1CInitBitmapResources() +{ + + // Check for memory FS. If not present, load the handler: + { + wxMemoryFSHandler::AddFile(wxT("XRC_resource/dummy_file"), wxT("dummy one")); + wxFileSystem fsys; + wxFSFile *f = fsys.OpenFile(wxT("memory:XRC_resource/dummy_file")); + wxMemoryFSHandler::RemoveFile(wxT("XRC_resource/dummy_file")); + if (f) delete f; + else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase); + } + + XRC_ADD_FILE(wxT("XRC_resource/CompilersFoundDlg_liteeditor_bitmaps.cpp$res_16_bulb.png"), xml_res_file_0, xml_res_size_0, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/CompilersFoundDlg_liteeditor_bitmaps.cpp$C__src_codelite_LiteEditor_CompilersFoundDlg_liteeditor_bitmaps.xrc"), xml_res_file_1, xml_res_size_1, wxT("text/xml")); + wxXmlResource::Get()->Load(wxT("memory:XRC_resource/CompilersFoundDlg_liteeditor_bitmaps.cpp$C__src_codelite_LiteEditor_CompilersFoundDlg_liteeditor_bitmaps.xrc")); +} diff -Nru codelite-8.0.1+dfsg2/LiteEditor/CompilersFoundDlg.wxcp codelite-9.0+dfsg/LiteEditor/CompilersFoundDlg.wxcp --- codelite-8.0.1+dfsg2/LiteEditor/CompilersFoundDlg.wxcp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/CompilersFoundDlg.wxcp 2015-10-11 13:56:07.000000000 +0000 @@ -1,1170 +1,1194 @@ { - "metadata": { - "m_generatedFilesDir": ".", - "m_objCounter": 41, - "m_includeFiles": [], - "m_bitmapFunction": "wxCFE1CInitBitmapResources", - "m_bitmapsFile": "CompilersFoundDlg_liteeditor_bitmaps.cpp", - "m_GenerateCodeTypes": 1, - "m_outputFileName": "CompilersFoundDlgBase", - "m_firstWindowId": 1000, - "m_useEnum": false, - "m_templateClasses": [] - }, - "windows": [{ - "m_type": 4421, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": ["wxDEFAULT_DIALOG_STYLE", "wxRESIZE_BORDER"], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "CompilersFoundDlgBase" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Title:", - "m_value": "Find Installed Compilers" - }, { - "type": "virtualFolderPicker", - "m_label": "Virtual Folder:", - "m_path": "CodeLiteIDE:Dialogs:Compiler" - }, { - "type": "choice", - "m_label": "Centre:", - "m_selection": 1, - "m_options": ["", "wxBOTH", "wxVERTICAL", "wxHORIZONTAL"] - }, { - "type": "string", - "m_label": "Inherited Class", - "m_value": "CompilersFoundDlg" - }, { - "type": "string", - "m_label": "File:", - "m_value": "CompilersFoundDlg" - }, { - "type": "string", - "m_label": "Class Decorator", - "m_value": "" - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File (16x16) :", - "m_path": "" - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File (32x32) :", - "m_path": "" - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File (64x64) :", - "m_path": "" - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File (128x128):", - "m_path": "" - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File (256x256):", - "m_path": "" - }], - "m_events": [], - "m_children": [{ - "m_type": 4401, - "proportion": 1, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "boxSizer2" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4471, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": ["wxBORDER_SIMPLE"], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_banner10" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "TooltipText" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Title:", - "m_value": "Found Compilers" - }, { - "type": "multi-string", - "m_label": "Message:", - "m_value": "Below is a list of compilers found on your computer.\\nClick 'OK' to replace the current list of compilers with this list. 'Cancel' to abort." - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["wxTOP", "wxBOTTOM", "wxLEFT", "wxRIGHT"] - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File:", - "m_path": "" - }, { - "type": "colour", - "m_label": "Gradient Start", - "colour": "Tooltip" - }, { - "type": "colour", - "m_label": "Gradient End", - "colour": "Tooltip" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4473, - "proportion": 1, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": ["wxDV_ROW_LINES", "wxDV_SINGLE"], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "300,300" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_dataview" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Generated Model Class Name", - "m_value": "CompilersFoundModel" - }, { - "type": "bool", - "m_label": "Container Item Has Columns", - "m_value": false - }], - "m_events": [{ - "m_eventName": "wxEVT_COMMAND_DATAVIEW_ITEM_ACTIVATED", - "m_eventClass": "wxDataViewEvent", - "m_eventHandler": "wxDataViewEventHandler", - "m_functionNameAndSignature": "OnItemActivated(wxDataViewEvent& event)", - "m_description": "Process a wxEVT_COMMAND_DATAVIEW_ITEM_ACTIVATED event.\nThis event is triggered by double clicking an item or pressing some special key (usually \"Enter\") when it is focused", - "m_noBody": false - }], - "m_children": [{ - "m_type": 4472, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "Compiler Name / Family" - }, { - "type": "string", - "m_label": "Width:", - "m_value": "200" - }, { - "type": "choice", - "m_label": "Column Type", - "m_selection": 2, - "m_options": ["bitmap", "check", "text", "icontext", "progress", "choice"] - }, { - "type": "multi-string", - "m_label": "Choices:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Alignment", - "m_selection": 0, - "m_options": ["wxALIGN_LEFT", "wxALIGN_RIGHT", "wxALIGN_CENTER"] - }, { - "type": "choice", - "m_label": "Cell Mode", - "m_selection": 0, - "m_options": ["wxDATAVIEW_CELL_INERT", "wxDATAVIEW_CELL_ACTIVATABLE", "wxDATAVIEW_CELL_EDITABLE"] - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4472, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "Installation Path" - }, { - "type": "string", - "m_label": "Width:", - "m_value": "400" - }, { - "type": "choice", - "m_label": "Column Type", - "m_selection": 2, - "m_options": ["bitmap", "check", "text", "icontext", "progress", "choice"] - }, { - "type": "multi-string", - "m_label": "Choices:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Alignment", - "m_selection": 0, - "m_options": ["wxALIGN_LEFT", "wxALIGN_RIGHT", "wxALIGN_CENTER"] - }, { - "type": "choice", - "m_label": "Cell Mode", - "m_selection": 0, - "m_options": ["wxDATAVIEW_CELL_INERT", "wxDATAVIEW_CELL_ACTIVATABLE", "wxDATAVIEW_CELL_EDITABLE"] - }], - "m_events": [], - "m_children": [] - }] - }, { - "m_type": 4401, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_HORIZONTAL"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "boxSizer31" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 1, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4409, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_staticBitmap35" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File:", - "m_path": "res/16/bulb.png" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4405, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALIGN_CENTER_VERTICAL"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_staticText29" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Label:", - "m_value": "Double click a compiler to make it the default for its compiler family" - }, { - "type": "string", - "m_label": "Wrap:", - "m_value": "-1" - }], - "m_events": [], - "m_children": [] - }] - }, { - "m_type": 4467, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_HORIZONTAL"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_stdBtnSizer4" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }], - "m_events": [], - "m_children": [{ - "m_type": 4468, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "choice", - "m_label": "ID:", - "m_selection": 6, - "m_options": ["wxID_OK", "wxID_YES", "wxID_SAVE", "wxID_APPLY", "wxID_CLOSE", "wxID_NO", "wxID_CANCEL", "wxID_HELP", "wxID_CONTEXT_HELP"] - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_buttonCancel" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Default Button", - "m_value": false - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4468, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "choice", - "m_label": "ID:", - "m_selection": 0, - "m_options": ["wxID_OK", "wxID_YES", "wxID_SAVE", "wxID_APPLY", "wxID_CLOSE", "wxID_NO", "wxID_CANCEL", "wxID_HELP", "wxID_CONTEXT_HELP"] - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_buttonOK" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Default Button", - "m_value": true - }], - "m_events": [], - "m_children": [] - }] - }] - }] - }, { - "m_type": 4421, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": ["wxDEFAULT_DIALOG_STYLE", "wxRESIZE_BORDER"], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "CompilersModifiedDlgBase" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Title:", - "m_value": "Could not find selected compiler..." - }, { - "type": "virtualFolderPicker", - "m_label": "Virtual Folder:", - "m_path": "CodeLiteIDE:Dialogs:Compiler" - }, { - "type": "choice", - "m_label": "Centre:", - "m_selection": 1, - "m_options": ["", "wxBOTH", "wxVERTICAL", "wxHORIZONTAL"] - }, { - "type": "string", - "m_label": "Inherited Class", - "m_value": "CompilersModifiedDlg" - }, { - "type": "string", - "m_label": "File:", - "m_value": "CompilersModifiedDlg" - }, { - "type": "string", - "m_label": "Class Decorator", - "m_value": "" - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File (16x16) :", - "m_path": "" - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File (32x32) :", - "m_path": "" - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File (64x64) :", - "m_path": "" - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File (128x128):", - "m_path": "" - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File (256x256):", - "m_path": "" - }], - "m_events": [], - "m_children": [{ - "m_type": 4401, - "proportion": 1, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "boxSizer16" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4405, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_staticText27" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Label:", - "m_value": "Some of the compilers referred by the workspace no longer exist.\\nDefine each missing compiler by cloning an existing compiler." - }, { - "type": "string", - "m_label": "Wrap:", - "m_value": "-1" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4485, - "proportion": 1, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": ["wxPG_DESCRIPTION", "wxPG_SPLITTER_AUTO_CENTER", "wxPG_BOLD_MODIFIED"], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_pgMgrCompilers" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "integer", - "m_label": "Sash Position:", - "m_value": -1 - }], - "m_events": [{ - "m_eventName": "wxEVT_PG_CHANGED", - "m_eventClass": "wxPropertyGridEvent", - "m_eventHandler": "wxPropertyGridEventHandler", - "m_functionNameAndSignature": "OnValueChanged(wxPropertyGridEvent& event)", - "m_description": "Respond to wxEVT_PG_CHANGED event, generated when property value has been changed by the user", - "m_noBody": false - }], - "m_children": [{ - "m_type": 4486, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "m_pgPropHeader" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "Compilers" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "choice", - "m_label": "Property Editor Control", - "m_selection": 0, - "m_options": ["", "TextCtrl", "Choice", "ComboBox", "CheckBox", "TextCtrlAndButton", "ChoiceAndButton", "SpinCtrl", "DatePickerCtrl"] - }, { - "type": "choice", - "m_label": "Kind:", - "m_selection": 0, - "m_options": ["wxPropertyCategory", "wxIntProperty", "wxFloatProperty", "wxBoolProperty", "wxStringProperty", "wxLongStringProperty", "wxDirProperty", "wxArrayStringProperty", "wxFileProperty", "wxEnumProperty", "wxEditEnumProperty", "wxFlagsProperty", "wxDateProperty", "wxImageFileProperty", "wxFontProperty", "wxSystemColourProperty"] - }, { - "type": "string", - "m_label": "String Value", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Choices:", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Array Integer Values", - "m_value": "" - }, { - "type": "bool", - "m_label": "Bool Value", - "m_value": true - }, { - "type": "string", - "m_label": "Wildcard", - "m_value": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Initial Colour", - "colour": "" - }], - "m_events": [], - "m_children": [] - }] - }, { - "m_type": 4467, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_HORIZONTAL"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_stdBtnSizer18" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }], - "m_events": [], - "m_children": [{ - "m_type": 4468, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "choice", - "m_label": "ID:", - "m_selection": 0, - "m_options": ["wxID_OK", "wxID_YES", "wxID_SAVE", "wxID_APPLY", "wxID_CLOSE", "wxID_NO", "wxID_CANCEL", "wxID_HELP", "wxID_CONTEXT_HELP"] - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_buttonOK" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Default Button", - "m_value": true - }], - "m_events": [{ - "m_eventName": "wxEVT_UPDATE_UI", - "m_eventClass": "wxUpdateUIEvent", - "m_eventHandler": "wxUpdateUIEventHandler", - "m_functionNameAndSignature": "OnOKUI(wxUpdateUIEvent& event)", - "m_description": "Process a wxEVT_UPDATE_UI event", - "m_noBody": false - }], - "m_children": [] - }, { - "m_type": 4468, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "choice", - "m_label": "ID:", - "m_selection": 6, - "m_options": ["wxID_OK", "wxID_YES", "wxID_SAVE", "wxID_APPLY", "wxID_CLOSE", "wxID_NO", "wxID_CANCEL", "wxID_HELP", "wxID_CONTEXT_HELP"] - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_buttonCancel" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Default Button", - "m_value": false - }], - "m_events": [], - "m_children": [] - }] - }] - }] - }] + "metadata": { + "m_generatedFilesDir": ".", + "m_objCounter": 41, + "m_includeFiles": [], + "m_bitmapFunction": "wxCFE1CInitBitmapResources", + "m_bitmapsFile": "CompilersFoundDlg_liteeditor_bitmaps.cpp", + "m_GenerateCodeTypes": 1, + "m_outputFileName": "CompilersFoundDlgBase", + "m_firstWindowId": 1000, + "m_useEnum": false, + "m_templateClasses": [] + }, + "windows": [{ + "m_type": 4421, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxDEFAULT_DIALOG_STYLE", "wxRESIZE_BORDER"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "CompilersFoundDlgBase" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Enable Window Persistency:", + "m_value": true + }, { + "type": "string", + "m_label": "Title:", + "m_value": "Find Installed Compilers" + }, { + "type": "virtualFolderPicker", + "m_label": "Virtual Folder:", + "m_path": "CodeLiteIDE:Dialogs:Compiler" + }, { + "type": "choice", + "m_label": "Centre:", + "m_selection": 1, + "m_options": ["", "wxBOTH", "wxVERTICAL", "wxHORIZONTAL"] + }, { + "type": "string", + "m_label": "Inherited Class", + "m_value": "CompilersFoundDlg" + }, { + "type": "string", + "m_label": "File:", + "m_value": "CompilersFoundDlg" + }, { + "type": "string", + "m_label": "Class Decorator", + "m_value": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (16x16) :", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (32x32) :", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (64x64) :", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (128x128):", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (256x256):", + "m_path": "" + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "boxSizer2" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4471, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxBORDER_SIMPLE"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_banner10" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "TooltipText" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Title:", + "m_value": "Found Compilers" + }, { + "type": "multi-string", + "m_label": "Message:", + "m_value": "Below is a list of compilers found on your computer.\\nClick 'OK' to replace the current list of compilers with this list. 'Cancel' to abort." + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxTOP", "wxBOTTOM", "wxLEFT", "wxRIGHT"] + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "colour", + "m_label": "Gradient Start", + "colour": "Tooltip" + }, { + "type": "colour", + "m_label": "Gradient End", + "colour": "Tooltip" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4473, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxDV_ROW_LINES", "wxDV_SINGLE"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "300,300" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_dataview" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Generated Model Class Name", + "m_value": "CompilersFoundModel" + }, { + "type": "bool", + "m_label": "Container Item Has Columns", + "m_value": false + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_DATAVIEW_ITEM_ACTIVATED", + "m_eventClass": "wxDataViewEvent", + "m_eventHandler": "wxDataViewEventHandler", + "m_functionNameAndSignature": "OnItemActivated(wxDataViewEvent& event)", + "m_description": "Process a wxEVT_COMMAND_DATAVIEW_ITEM_ACTIVATED event.\nThis event is triggered by double clicking an item or pressing some special key (usually \"Enter\") when it is focused", + "m_noBody": false + }], + "m_children": [{ + "m_type": 4472, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "Compiler Name / Family" + }, { + "type": "string", + "m_label": "Width:", + "m_value": "200" + }, { + "type": "choice", + "m_label": "Column Type", + "m_selection": 2, + "m_options": ["bitmap", "check", "text", "icontext", "progress", "choice"] + }, { + "type": "multi-string", + "m_label": "Choices:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Alignment", + "m_selection": 0, + "m_options": ["wxALIGN_LEFT", "wxALIGN_RIGHT", "wxALIGN_CENTER"] + }, { + "type": "choice", + "m_label": "Cell Mode", + "m_selection": 0, + "m_options": ["wxDATAVIEW_CELL_INERT", "wxDATAVIEW_CELL_ACTIVATABLE", "wxDATAVIEW_CELL_EDITABLE"] + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4472, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "Installation Path" + }, { + "type": "string", + "m_label": "Width:", + "m_value": "400" + }, { + "type": "choice", + "m_label": "Column Type", + "m_selection": 2, + "m_options": ["bitmap", "check", "text", "icontext", "progress", "choice"] + }, { + "type": "multi-string", + "m_label": "Choices:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Alignment", + "m_selection": 0, + "m_options": ["wxALIGN_LEFT", "wxALIGN_RIGHT", "wxALIGN_CENTER"] + }, { + "type": "choice", + "m_label": "Cell Mode", + "m_selection": 0, + "m_options": ["wxDATAVIEW_CELL_INERT", "wxDATAVIEW_CELL_ACTIVATABLE", "wxDATAVIEW_CELL_EDITABLE"] + }], + "m_events": [], + "m_children": [] + }] + }, { + "m_type": 4401, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_HORIZONTAL"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "boxSizer31" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 1, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4409, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_staticBitmap35" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "res/16/bulb.png" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4405, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALIGN_CENTER_VERTICAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_staticText29" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Label:", + "m_value": "Double click a compiler to make it the default for its compiler family" + }, { + "type": "string", + "m_label": "Wrap:", + "m_value": "-1" + }], + "m_events": [], + "m_children": [] + }] + }, { + "m_type": 4467, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_HORIZONTAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_stdBtnSizer4" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }], + "m_events": [], + "m_children": [{ + "m_type": 4468, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "choice", + "m_label": "ID:", + "m_selection": 6, + "m_options": ["wxID_OK", "wxID_YES", "wxID_SAVE", "wxID_APPLY", "wxID_CLOSE", "wxID_NO", "wxID_CANCEL", "wxID_HELP", "wxID_CONTEXT_HELP"] + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_buttonCancel" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Default Button", + "m_value": false + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4468, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "choice", + "m_label": "ID:", + "m_selection": 0, + "m_options": ["wxID_OK", "wxID_YES", "wxID_SAVE", "wxID_APPLY", "wxID_CLOSE", "wxID_NO", "wxID_CANCEL", "wxID_HELP", "wxID_CONTEXT_HELP"] + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_buttonOK" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Default Button", + "m_value": true + }], + "m_events": [], + "m_children": [] + }] + }] + }] + }, { + "m_type": 4421, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxDEFAULT_DIALOG_STYLE", "wxRESIZE_BORDER"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "CompilersModifiedDlgBase" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Enable Window Persistency:", + "m_value": true + }, { + "type": "string", + "m_label": "Title:", + "m_value": "Could not find selected compiler..." + }, { + "type": "virtualFolderPicker", + "m_label": "Virtual Folder:", + "m_path": "CodeLiteIDE:Dialogs:Compiler" + }, { + "type": "choice", + "m_label": "Centre:", + "m_selection": 1, + "m_options": ["", "wxBOTH", "wxVERTICAL", "wxHORIZONTAL"] + }, { + "type": "string", + "m_label": "Inherited Class", + "m_value": "CompilersModifiedDlg" + }, { + "type": "string", + "m_label": "File:", + "m_value": "CompilersModifiedDlg" + }, { + "type": "string", + "m_label": "Class Decorator", + "m_value": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (16x16) :", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (32x32) :", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (64x64) :", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (128x128):", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (256x256):", + "m_path": "" + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "boxSizer16" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4405, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_staticText27" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Label:", + "m_value": "Some of the compilers referred by the workspace no longer exist.\\nDefine each missing compiler by cloning an existing compiler." + }, { + "type": "string", + "m_label": "Wrap:", + "m_value": "-1" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4485, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxPG_DESCRIPTION", "wxPG_SPLITTER_AUTO_CENTER", "wxPG_BOLD_MODIFIED"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_pgMgrCompilers" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "integer", + "m_label": "Sash Position:", + "m_value": -1 + }, { + "type": "bool", + "m_label": "Set Splitter Left:", + "m_value": false + }], + "m_events": [{ + "m_eventName": "wxEVT_PG_CHANGED", + "m_eventClass": "wxPropertyGridEvent", + "m_eventHandler": "wxPropertyGridEventHandler", + "m_functionNameAndSignature": "OnValueChanged(wxPropertyGridEvent& event)", + "m_description": "Respond to wxEVT_PG_CHANGED event, generated when property value has been changed by the user", + "m_noBody": false + }], + "m_children": [{ + "m_type": 4486, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "m_pgPropHeader" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Compilers" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "choice", + "m_label": "Property Editor Control", + "m_selection": 0, + "m_options": ["", "TextCtrl", "Choice", "ComboBox", "CheckBox", "TextCtrlAndButton", "ChoiceAndButton", "SpinCtrl", "DatePickerCtrl"] + }, { + "type": "choice", + "m_label": "Kind:", + "m_selection": 0, + "m_options": ["wxPropertyCategory", "wxIntProperty", "wxFloatProperty", "wxBoolProperty", "wxStringProperty", "wxLongStringProperty", "wxDirProperty", "wxArrayStringProperty", "wxFileProperty", "wxEnumProperty", "wxEditEnumProperty", "wxFlagsProperty", "wxDateProperty", "wxImageFileProperty", "wxFontProperty", "wxSystemColourProperty"] + }, { + "type": "string", + "m_label": "String Value", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Choices:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Array Integer Values", + "m_value": "" + }, { + "type": "bool", + "m_label": "Bool Value", + "m_value": true + }, { + "type": "string", + "m_label": "Wildcard", + "m_value": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Initial Colour", + "colour": "" + }], + "m_events": [], + "m_children": [] + }] + }, { + "m_type": 4467, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_HORIZONTAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_stdBtnSizer18" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }], + "m_events": [], + "m_children": [{ + "m_type": 4468, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "choice", + "m_label": "ID:", + "m_selection": 0, + "m_options": ["wxID_OK", "wxID_YES", "wxID_SAVE", "wxID_APPLY", "wxID_CLOSE", "wxID_NO", "wxID_CANCEL", "wxID_HELP", "wxID_CONTEXT_HELP"] + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_buttonOK" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Default Button", + "m_value": true + }], + "m_events": [{ + "m_eventName": "wxEVT_UPDATE_UI", + "m_eventClass": "wxUpdateUIEvent", + "m_eventHandler": "wxUpdateUIEventHandler", + "m_functionNameAndSignature": "OnOKUI(wxUpdateUIEvent& event)", + "m_description": "Process a wxEVT_UPDATE_UI event", + "m_noBody": false + }], + "m_children": [] + }, { + "m_type": 4468, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "choice", + "m_label": "ID:", + "m_selection": 6, + "m_options": ["wxID_OK", "wxID_YES", "wxID_SAVE", "wxID_APPLY", "wxID_CLOSE", "wxID_NO", "wxID_CANCEL", "wxID_HELP", "wxID_CONTEXT_HELP"] + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_buttonCancel" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Default Button", + "m_value": false + }], + "m_events": [], + "m_children": [] + }] + }] + }] + }] } \ No newline at end of file diff -Nru codelite-8.0.1+dfsg2/LiteEditor/compilersfoundmodel.cpp codelite-9.0+dfsg/LiteEditor/compilersfoundmodel.cpp --- codelite-8.0.1+dfsg2/LiteEditor/compilersfoundmodel.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/compilersfoundmodel.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,28 +1,3 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2014 The CodeLite Team -// file name : compilersfoundmodel.cpp -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - ////////////////////////////////////////////////////////////////////// // This file was auto-generated by codelite's wxCrafter Plugin // Do not modify this file by hand! diff -Nru codelite-8.0.1+dfsg2/LiteEditor/compilersfoundmodel.h codelite-9.0+dfsg/LiteEditor/compilersfoundmodel.h --- codelite-8.0.1+dfsg2/LiteEditor/compilersfoundmodel.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/compilersfoundmodel.h 2015-10-11 13:56:07.000000000 +0000 @@ -1,28 +1,3 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2014 The CodeLite Team -// file name : compilersfoundmodel.h -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - ////////////////////////////////////////////////////////////////////// // This file was auto-generated by codelite's wxCrafter Plugin // Do not modify this file by hand! diff -Nru codelite-8.0.1+dfsg2/LiteEditor/CompilersModifiedDlg.cpp codelite-9.0+dfsg/LiteEditor/CompilersModifiedDlg.cpp --- codelite-8.0.1+dfsg2/LiteEditor/CompilersModifiedDlg.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/CompilersModifiedDlg.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -34,7 +34,7 @@ , m_enableOKButton(false) { wxArrayString compilers; - compilers = BuildSettingsConfigST::Get()->GetAllCompilers(); + compilers = BuildSettingsConfigST::Get()->GetAllCompilersNames(); compilers.Insert(SELECT_COMPILER, 0); wxStringSet_t::const_iterator iter = deletedCompilers.begin(); diff -Nru codelite-8.0.1+dfsg2/LiteEditor/context_base.cpp codelite-9.0+dfsg/LiteEditor/context_base.cpp --- codelite-8.0.1+dfsg2/LiteEditor/context_base.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/context_base.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -201,6 +201,7 @@ // Try to call code completion clCodeCompletionEvent ccEvt(wxEVT_CC_CODE_COMPLETE); ccEvt.SetEditor(&GetCtrl()); + ccEvt.SetPosition(GetCtrl().GetCurrentPos()); ccEvt.SetWord(word); if(!EventNotifier::Get()->ProcessEvent(ccEvt)) { @@ -314,6 +315,8 @@ // default behavior is to check if 'str' exists in the m_completionTriggerStrings container if(GetCtrl().GetLexer() == wxSTC_LEX_XML) { return str == "<" || str == " 0); } diff -Nru codelite-8.0.1+dfsg2/LiteEditor/context_cpp.cpp codelite-9.0+dfsg/LiteEditor/context_cpp.cpp --- codelite-8.0.1+dfsg2/LiteEditor/context_cpp.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/context_cpp.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -79,6 +79,7 @@ #include "wxCodeCompletionBoxManager.h" #include #include "clEditorStateLocker.h" +#include "clSelectSymbolDialog.h" //#define __PERFORMANCE #include "performance.h" @@ -118,7 +119,8 @@ return; \ } -struct SFileSort { +struct SFileSort +{ bool operator()(const wxFileName& one, const wxFileName& two) { return two.GetFullName().Cmp(one.GetFullName()) > 0; @@ -795,6 +797,14 @@ // <<<<<<<<<<<<<<<<<<<<<<<<<<< CodeCompletion API - END //============================================================================= +struct ContextCpp_ClientData : public wxClientData +{ + TagEntryPtr m_ptr; + + ContextCpp_ClientData(TagEntryPtr ptr) { m_ptr = ptr; } + virtual ~ContextCpp_ClientData() {} +}; + TagEntryPtr ContextCpp::GetTagAtCaret(bool scoped, bool impl) { CHECK_JS_RETURN_NULL(); @@ -858,9 +868,26 @@ return tags[0]; // popup a dialog offering the results to the user - SymbolsDialog dlg(&rCtrl); - dlg.AddSymbols(tags, 0); - return dlg.ShowModal() == wxID_OK ? dlg.GetTag() : TagEntryPtr(NULL); + clSelectSymbolDialogEntry::List_t entries; + std::for_each(tags.begin(), tags.end(), [&](TagEntryPtr tag) { + clSelectSymbolDialogEntry e; + e.bmp = wxCodeCompletionBox::GetBitmap(tag); + e.name = tag->GetFullDisplayName(); + e.clientData = new ContextCpp_ClientData(tag); + + wxString helpString; + wxFileName fn(tag->GetFile()); + helpString << fn.GetFullName() << ":" << tag->GetLine(); + e.help = helpString; + entries.push_back(e); + }); + + clSelectSymbolDialog dlg(EventNotifier::Get()->TopFrame(), entries); + if(dlg.ShowModal() != wxID_OK) { + return NULL; + } + ContextCpp_ClientData* cd = dynamic_cast(dlg.GetSelection()); + return cd->m_ptr; } void ContextCpp::DoGotoSymbol(TagEntryPtr tag) @@ -1061,10 +1088,16 @@ classPattern.Replace(wxT("$(Name)"), dc.name); funcPattern.Replace(wxT("$(Name)"), dc.name); - classPattern = ExpandAllVariables( - classPattern, WorkspaceST::Get(), editor.GetProjectName(), wxEmptyString, editor.GetFileName().GetFullPath()); - funcPattern = ExpandAllVariables( - funcPattern, WorkspaceST::Get(), editor.GetProjectName(), wxEmptyString, editor.GetFileName().GetFullPath()); + classPattern = ExpandAllVariables(classPattern, + clCxxWorkspaceST::Get(), + editor.GetProjectName(), + wxEmptyString, + editor.GetFileName().GetFullPath()); + funcPattern = ExpandAllVariables(funcPattern, + clCxxWorkspaceST::Get(), + editor.GetProjectName(), + wxEmptyString, + editor.GetFileName().GetFullPath()); dc.comment.Replace(wxT("$(ClassPattern)"), classPattern); dc.comment.Replace(wxT("$(FunctionPattern)"), funcPattern); @@ -1765,7 +1798,12 @@ for(; iter != protos.end(); ++iter) { tags.push_back(iter->second); } - + + // Sort the functions according to their line number (asc) + std::sort(tags.begin(), tags.end(), [&](TagEntryPtr a, TagEntryPtr b) { + return (a->GetLine() < b->GetLine()); + }); + wxString targetFile; FindSwappedFile(rCtrl.GetFileName(), targetFile); @@ -1911,7 +1949,9 @@ clSourceFormatEvent formatEvent(wxEVT_FORMAT_STRING); formatEvent.SetInputString(editor->GetText()); EventNotifier::Get()->ProcessEvent(formatEvent); - editor->SetText(formatEvent.GetFormattedString()); + if(!formatEvent.GetFormattedString().IsEmpty()) { + editor->SetText(formatEvent.GetFormattedString()); + } } void ContextCpp::OnFileSaved() @@ -2231,7 +2271,7 @@ // Get list of projects to work on wxArrayString projectsCandidateList, projects; - WorkspaceST::Get()->GetProjectList(projectsCandidateList); + clCxxWorkspaceST::Get()->GetProjectList(projectsCandidateList); if(projectsCandidateList.IsEmpty()) return; if(projectsCandidateList.GetCount() > 1) { @@ -3174,7 +3214,7 @@ // to do that, we temporary replace the word-chars of the wxSTC control to include // these chars, perform the selection and then restore the word chars wxString newWordChars = origWordChars; - newWordChars << "./"; + newWordChars << "./-$"; GetCtrl().SetWordChars(newWordChars); int startPos = GetCtrl().WordStartPos(GetCtrl().GetCurrentPos(), true); int endPos = GetCtrl().GetCurrentPos(); diff -Nru codelite-8.0.1+dfsg2/LiteEditor/ContextPhp.cpp codelite-9.0+dfsg/LiteEditor/ContextPhp.cpp --- codelite-8.0.1+dfsg2/LiteEditor/ContextPhp.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/ContextPhp.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -72,15 +72,31 @@ void ContextPhp::AutoIndent(const wxChar& nChar) { LEditor& rCtrl = GetCtrl(); - + int curpos = rCtrl.GetCurrentPos(); + if(rCtrl.GetDisableSmartIndent()) { return; } if(rCtrl.GetLineIndentation(rCtrl.GetCurrentLine()) && nChar == wxT('\n')) { + int prevpos(wxNOT_FOUND); + int foundPos(wxNOT_FOUND); + + wxString word; + wxChar ch = rCtrl.PreviousChar(curpos, prevpos); + wxUnusedVar(ch); + word = rCtrl.PreviousWord(curpos, foundPos); + + // user hit ENTER after 'else'? + if(word == wxT("else")) { + int prevLine = rCtrl.LineFromPosition(prevpos); + rCtrl.SetLineIndentation(rCtrl.GetCurrentLine(), rCtrl.GetIndent() + rCtrl.GetLineIndentation(prevLine)); + rCtrl.SetCaretAt(rCtrl.GetLineIndentPosition(rCtrl.GetCurrentLine())); + rCtrl.ChooseCaretX(); // set new column as "current" column + } return; } - int curpos = rCtrl.GetCurrentPos(); + if(IsCommentOrString(curpos) && nChar == wxT('\n')) { AutoAddComment(); return; @@ -338,16 +354,17 @@ bool ContextPhp::IsStringTriggerCodeComplete(const wxString& str) const { - int style = GetCtrl().GetStyleAt(GetCtrl().GetCurrentPos()); + int curpos = GetCtrl().GetCurrentPos(); + //curpos = GetCtrl().PositionBefore(curpos); + int style = GetCtrl().GetStyleAt(curpos); if(IS_BETWEEN(style, wxSTC_HJ_START, wxSTC_HJA_REGEX)) { // When in JS section, trigger CC if str is a dot return str == "."; - - } else if(IS_BETWEEN(style, wxSTC_H_DEFAULT, wxSTC_H_ENTITY)){ + + } else if(IS_BETWEEN(style, wxSTC_H_DEFAULT, wxSTC_H_ENTITY)) { return str == " 0); - } } diff -Nru codelite-8.0.1+dfsg2/LiteEditor/debugcoredump.cpp codelite-9.0+dfsg/LiteEditor/debugcoredump.cpp --- codelite-8.0.1+dfsg2/LiteEditor/debugcoredump.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/debugcoredump.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -96,7 +96,7 @@ // - Else we use the project's output name wxString activename, conf; ManagerST::Get()->GetActiveProjectAndConf(activename, conf); - BuildConfigPtr buildConf = WorkspaceST::Get()->GetProjBuildConf(activename, conf); + BuildConfigPtr buildConf = clCxxWorkspaceST::Get()->GetProjBuildConf(activename, conf); if(buildConf) { // expand all macros with their values wxString programToDebug = buildConf->GetCommand(); diff -Nru codelite-8.0.1+dfsg2/LiteEditor/DebuggerCallstackView.cpp codelite-9.0+dfsg/LiteEditor/DebuggerCallstackView.cpp --- codelite-8.0.1+dfsg2/LiteEditor/DebuggerCallstackView.cpp 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/DebuggerCallstackView.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,183 @@ +////////////////////////////////////////////////////////////////////////////// +////////////////////////////////////////////////////////////////////////////// +// +// copyright : (C) 2008 by Eran Ifrah +// file name : listctrlpanel.cpp +// +// ------------------------------------------------------------------------- +// A +// _____ _ _ _ _ +// / __ \ | | | | (_) | +// | / \/ ___ __| | ___| | _| |_ ___ +// | | / _ \ / _ |/ _ \ | | | __/ _ ) +// | \__/\ (_) | (_| | __/ |___| | || __/ +// \____/\___/ \__,_|\___\_____/_|\__\___| +// +// F i l e +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// +////////////////////////////////////////////////////////////////////////////// +////////////////////////////////////////////////////////////////////////////// +#include "DebuggerCallstackView.h" +#include "manager.h" +#include "globals.h" +#include "pluginmanager.h" + +#include +#include +#include +#include "globals.h" +#include +#include "event_notifier.h" +#include "debuggermanager.h" +#include "debugger.h" + +DebuggerCallstackView::DebuggerCallstackView(wxWindow* parent) + : ListCtrlPanelBase(parent) + , m_currLevel(0) +{ + EventNotifier::Get()->Connect( + wxEVT_DEBUGGER_LIST_FRAMES, clCommandEventHandler(DebuggerCallstackView::OnUpdateBacktrace), NULL, this); + EventNotifier::Get()->Connect( + wxEVT_DEBUGGER_FRAME_SELECTED, clCommandEventHandler(DebuggerCallstackView::OnFrameSelected), NULL, this); +} +DebuggerCallstackView::~DebuggerCallstackView() +{ + EventNotifier::Get()->Disconnect( + wxEVT_DEBUGGER_LIST_FRAMES, clCommandEventHandler(DebuggerCallstackView::OnUpdateBacktrace), NULL, this); + EventNotifier::Get()->Disconnect( + wxEVT_DEBUGGER_FRAME_SELECTED, clCommandEventHandler(DebuggerCallstackView::OnFrameSelected), NULL, this); +} + +void DebuggerCallstackView::OnItemActivated(wxDataViewEvent& event) +{ + int row = m_dvListCtrl->ItemToRow(event.GetItem()); + + StackEntry* entry = reinterpret_cast(m_dvListCtrl->GetItemData(event.GetItem())); + if(entry) { + long frame, frameLine; + if(!entry->level.ToLong(&frame)) { + frame = 0; + } + + // Remove the currently selected item + wxDataViewItem curitem = m_dvListCtrl->RowToItem(m_currLevel); + if(curitem.IsOk()) { + wxVariant v; + v = ::MakeIconText(wxString() << m_currLevel, m_images.Bitmap("arrowInactive")); + m_dvListCtrl->SetValue(v, m_currLevel, 0); + } + + entry->line.ToLong(&frameLine); + SetCurrentLevel(row); + ManagerST::Get()->DbgSetFrame(frame, frameLine); + + // At this point m_currLevel is pointing to the new stack level + // set it as the active one + curitem = m_dvListCtrl->RowToItem(m_currLevel); + if(curitem.IsOk()) { + wxVariant v; + v = ::MakeIconText(wxString() << m_currLevel, m_images.Bitmap("arrowActive")); + m_dvListCtrl->SetValue(v, m_currLevel, 0); + } + } +} + +void DebuggerCallstackView::Update(const StackEntryArray& stackArr) +{ + Clear(); + m_stack.insert(m_stack.end(), stackArr.begin(), stackArr.end()); + int activeFrame(-1); + if(!m_stack.empty()) { + for(int i = 0; i < (int)m_stack.size(); i++) { + + bool isactive = (i == m_currLevel); + StackEntry entry = m_stack.at(i); + wxVector cols; + cols.push_back(::MakeIconText( + entry.level, isactive ? m_images.Bitmap("arrowActive") : m_images.Bitmap("arrowInactive"))); + cols.push_back(entry.address); + cols.push_back(entry.function); + cols.push_back(entry.file); + cols.push_back(entry.line); + StackEntry* d = new StackEntry(entry); + m_dvListCtrl->AppendItem(cols, (wxUIntPtr)d); + + if(isactive) { + activeFrame = i; + } + } + if(activeFrame != wxNOT_FOUND) { + wxDataViewItem item = m_dvListCtrl->RowToItem(activeFrame); + if(item.IsOk()) { + m_dvListCtrl->EnsureVisible(item); + } + } + } +} + +void DebuggerCallstackView::SetCurrentLevel(const int level) +{ + // Set m_currLevel to level, or 0 if level is out of bounds + m_currLevel = (level >= 0 && level < m_dvListCtrl->GetItemCount()) ? level : 0; +} + +void DebuggerCallstackView::Clear() +{ + m_stack.clear(); + for(int i = 0; i < m_dvListCtrl->GetItemCount(); ++i) { + wxDataViewItem item = m_dvListCtrl->GetStore()->GetItem(i); + if(item.IsOk()) { + StackEntry* entry = reinterpret_cast(m_dvListCtrl->GetItemData(item)); + if(entry) { + delete entry; + } + } + } + m_dvListCtrl->DeleteAllItems(); +} +void DebuggerCallstackView::OnMenu(wxDataViewEvent& event) +{ + // Popup the menu + wxMenu menu; + + menu.Append(XRCID("stack_copy_backtrace"), _("Copy Backtrace to Clipboard")); + menu.Connect(XRCID("stack_copy_backtrace"), + wxEVT_COMMAND_MENU_SELECTED, + wxCommandEventHandler(DebuggerCallstackView::OnCopyBacktrace), + NULL, + this); + m_dvListCtrl->PopupMenu(&menu); +} + +void DebuggerCallstackView::OnCopyBacktrace(wxCommandEvent& event) +{ + wxUnusedVar(event); + wxString trace; + for(size_t i = 0; i < m_stack.size(); ++i) { + trace << m_stack.at(i).level << wxT(" ") << m_stack.at(i).address << wxT(" ") << m_stack.at(i).function + << wxT(" ") << m_stack.at(i).file << wxT(" ") << m_stack.at(i).line << wxT("\n"); + } + trace.RemoveLast(); + ::CopyToClipboard(trace); +} + +void DebuggerCallstackView::OnUpdateBacktrace(clCommandEvent& e) +{ + e.Skip(); + Update(static_cast(e.GetClientObject())->m_stack); +} + +void DebuggerCallstackView::OnFrameSelected(clCommandEvent& e) +{ + e.Skip(); + IDebugger* dbgr = DebuggerMgr::Get().GetActiveDebugger(); + if(dbgr && dbgr->IsRunning() && ManagerST::Get()->DbgCanInteract()) { + // set the frame + dbgr->QueryFileLine(); + } +} diff -Nru codelite-8.0.1+dfsg2/LiteEditor/DebuggerCallstackView.h codelite-9.0+dfsg/LiteEditor/DebuggerCallstackView.h --- codelite-8.0.1+dfsg2/LiteEditor/DebuggerCallstackView.h 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/DebuggerCallstackView.h 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,57 @@ +////////////////////////////////////////////////////////////////////////////// +////////////////////////////////////////////////////////////////////////////// +// +// copyright : (C) 2008 by Eran Ifrah +// file name : listctrlpanel.h +// +// ------------------------------------------------------------------------- +// A +// _____ _ _ _ _ +// / __ \ | | | | (_) | +// | / \/ ___ __| | ___| | _| |_ ___ +// | | / _ \ / _ |/ _ \ | | | __/ _ ) +// | \__/\ (_) | (_| | __/ |___| | || __/ +// \____/\___/ \__,_|\___\_____/_|\__\___| +// +// F i l e +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// +////////////////////////////////////////////////////////////////////////////// +////////////////////////////////////////////////////////////////////////////// +#ifndef DebuggerCallstackView_H +#define DebuggerCallstackView_H + +#include "listctrlpanelbase.h" +#include "debugger.h" +#include "cl_command_event.h" + +/** Implementing ListCtrlPanelBase */ +class DebuggerCallstackView : public ListCtrlPanelBase +{ +protected: + // Handlers for ListCtrlPanelBase events. + void OnCopyBacktrace(wxCommandEvent &event); + void OnUpdateBacktrace(clCommandEvent &e); + void OnFrameSelected(clCommandEvent &e); + +public: + virtual void OnMenu(wxDataViewEvent& event); + virtual void OnItemActivated(wxDataViewEvent& event); + + DebuggerCallstackView( wxWindow* parent ); + virtual ~DebuggerCallstackView(); + void Update(const StackEntryArray &stackArr); + void SetCurrentLevel(const int level); + void Clear(); + +private: + int m_currLevel; + StackEntryArray m_stack; + DebuggerBtImgList m_images; +}; + +#endif // DebuggerCallstackView_H diff -Nru codelite-8.0.1+dfsg2/LiteEditor/DebuggerDisassemblyTab.cpp codelite-9.0+dfsg/LiteEditor/DebuggerDisassemblyTab.cpp --- codelite-8.0.1+dfsg2/LiteEditor/DebuggerDisassemblyTab.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/DebuggerDisassemblyTab.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -37,21 +37,24 @@ #include "debuggerpane.h" #include "breakpointdlg.h" -#define CURLINE_MARKER 7 +#define CURLINE_MARKER 7 #define BREAKPOINT_MARKER 8 #define BREAKPOINT_MARKER_MASK 1 << BREAKPOINT_MARKER -extern const char *stop_xpm[]; // Breakpoint +extern const char* stop_xpm[]; // Breakpoint DebuggerDisassemblyTab::DebuggerDisassemblyTab(wxWindow* parent, const wxString& label) : DebuggerDisassemblyTabBase(parent) , m_title(label) { // associate our custom model - m_model.reset( new RegistersViewModel( m_dvListCtrlRegisters ) ); - m_dvListCtrlRegisters->AssociateModel( m_model.get() ); + m_model.reset(new RegistersViewModel(m_dvListCtrlRegisters)); + m_dvListCtrlRegisters->AssociateModel(m_model.get()); - m_stc->MarkerDefine(CURLINE_MARKER, wxSTC_MARK_BACKGROUND, wxNullColour, EditorConfigST::Get()->GetOptions()->GetDebuggerMarkerLine()); + m_stc->MarkerDefine(CURLINE_MARKER, + wxSTC_MARK_BACKGROUND, + wxNullColour, + EditorConfigST::Get()->GetOptions()->GetDebuggerMarkerLine()); m_stc->MarkerSetAlpha(CURLINE_MARKER, 50); m_stc->SetReadOnly(true); @@ -60,28 +63,44 @@ m_stc->MarkerDefineBitmap(BREAKPOINT_MARKER, wxBitmap(wxImage(stop_xpm))); m_stc->SetYCaretPolicy(wxSTC_CARET_SLOP, 30); - EventNotifier::Get()->Connect(wxEVT_DEBUGGER_DISASSEBLE_OUTPUT, clCommandEventHandler(DebuggerDisassemblyTab::OnOutput), NULL, this); - EventNotifier::Get()->Connect(wxEVT_DEBUGGER_DISASSEBLE_CURLINE, clCommandEventHandler(DebuggerDisassemblyTab::OnCurLine), NULL, this); - EventNotifier::Get()->Connect(wxEVT_DEBUGGER_QUERY_FILELINE, clCommandEventHandler(DebuggerDisassemblyTab::OnQueryFileLineDone), NULL, this); - EventNotifier::Get()->Connect(wxEVT_DEBUGGER_LIST_REGISTERS, clCommandEventHandler(DebuggerDisassemblyTab::OnShowRegisters), NULL, this); - EventNotifier::Get()->Connect(wxEVT_DEBUG_ENDED, wxCommandEventHandler(DebuggerDisassemblyTab::OnDebuggerStopped), NULL, this); - EventNotifier::Get()->Connect(wxEVT_CODELITE_ALL_BREAKPOINTS_DELETED, wxCommandEventHandler(DebuggerDisassemblyTab::OnAllBreakpointsDeleted), NULL, this); - EventNotifier::Get()->Connect(wxEVT_DEBUGGER_UPDATE_VIEWS, clCommandEventHandler(DebuggerDisassemblyTab::OnRefreshView), NULL, this); + EventNotifier::Get()->Connect( + wxEVT_DEBUGGER_DISASSEBLE_OUTPUT, clCommandEventHandler(DebuggerDisassemblyTab::OnOutput), NULL, this); + EventNotifier::Get()->Connect( + wxEVT_DEBUGGER_DISASSEBLE_CURLINE, clCommandEventHandler(DebuggerDisassemblyTab::OnCurLine), NULL, this); + EventNotifier::Get()->Connect( + wxEVT_DEBUGGER_QUERY_FILELINE, clCommandEventHandler(DebuggerDisassemblyTab::OnQueryFileLineDone), NULL, this); + EventNotifier::Get()->Connect( + wxEVT_DEBUGGER_LIST_REGISTERS, clCommandEventHandler(DebuggerDisassemblyTab::OnShowRegisters), NULL, this); + EventNotifier::Get()->Bind(wxEVT_DEBUG_ENDED, &DebuggerDisassemblyTab::OnDebuggerStopped, this); + EventNotifier::Get()->Connect(wxEVT_CODELITE_ALL_BREAKPOINTS_DELETED, + wxCommandEventHandler(DebuggerDisassemblyTab::OnAllBreakpointsDeleted), + NULL, + this); + EventNotifier::Get()->Connect( + wxEVT_DEBUGGER_UPDATE_VIEWS, clCommandEventHandler(DebuggerDisassemblyTab::OnRefreshView), NULL, this); LexerConf::Ptr_t lex = EditorConfigST::Get()->GetLexer("Assembly"); - if ( lex ) { - lex->Apply( m_stc, true ); + if(lex) { + lex->Apply(m_stc, true); } } DebuggerDisassemblyTab::~DebuggerDisassemblyTab() { - EventNotifier::Get()->Disconnect(wxEVT_DEBUGGER_DISASSEBLE_OUTPUT, clCommandEventHandler(DebuggerDisassemblyTab::OnOutput), NULL, this); - EventNotifier::Get()->Disconnect(wxEVT_DEBUGGER_DISASSEBLE_CURLINE, clCommandEventHandler(DebuggerDisassemblyTab::OnCurLine), NULL, this); - EventNotifier::Get()->Disconnect(wxEVT_DEBUGGER_QUERY_FILELINE, clCommandEventHandler(DebuggerDisassemblyTab::OnQueryFileLineDone), NULL, this); - EventNotifier::Get()->Disconnect(wxEVT_DEBUG_ENDED, wxCommandEventHandler(DebuggerDisassemblyTab::OnDebuggerStopped), NULL, this); - EventNotifier::Get()->Disconnect(wxEVT_CODELITE_ALL_BREAKPOINTS_DELETED, wxCommandEventHandler(DebuggerDisassemblyTab::OnAllBreakpointsDeleted), NULL, this); - EventNotifier::Get()->Disconnect(wxEVT_DEBUGGER_LIST_REGISTERS, clCommandEventHandler(DebuggerDisassemblyTab::OnShowRegisters), NULL, this); - EventNotifier::Get()->Disconnect(wxEVT_DEBUGGER_UPDATE_VIEWS, clCommandEventHandler(DebuggerDisassemblyTab::OnRefreshView), NULL, this); + EventNotifier::Get()->Disconnect( + wxEVT_DEBUGGER_DISASSEBLE_OUTPUT, clCommandEventHandler(DebuggerDisassemblyTab::OnOutput), NULL, this); + EventNotifier::Get()->Disconnect( + wxEVT_DEBUGGER_DISASSEBLE_CURLINE, clCommandEventHandler(DebuggerDisassemblyTab::OnCurLine), NULL, this); + EventNotifier::Get()->Disconnect( + wxEVT_DEBUGGER_QUERY_FILELINE, clCommandEventHandler(DebuggerDisassemblyTab::OnQueryFileLineDone), NULL, this); + EventNotifier::Get()->Unbind(wxEVT_DEBUG_ENDED, &DebuggerDisassemblyTab::OnDebuggerStopped, this); + EventNotifier::Get()->Disconnect(wxEVT_CODELITE_ALL_BREAKPOINTS_DELETED, + wxCommandEventHandler(DebuggerDisassemblyTab::OnAllBreakpointsDeleted), + NULL, + this); + EventNotifier::Get()->Disconnect( + wxEVT_DEBUGGER_LIST_REGISTERS, clCommandEventHandler(DebuggerDisassemblyTab::OnShowRegisters), NULL, this); + EventNotifier::Get()->Disconnect( + wxEVT_DEBUGGER_UPDATE_VIEWS, clCommandEventHandler(DebuggerDisassemblyTab::OnRefreshView), NULL, this); } void DebuggerDisassemblyTab::OnOutput(clCommandEvent& e) @@ -91,23 +110,22 @@ m_stc->SetReadOnly(false); BreakpointInfoVec_t memBps; - wxStringSet_t addressSet; - ManagerST::Get()->GetBreakpointsMgr()->GetAllMemoryBreakpoints( memBps ); - for(size_t i=0; iGetBreakpointsMgr()->GetAllMemoryBreakpoints(memBps); + for(size_t i = 0; i < memBps.size(); ++i) { + addressSet.insert(memBps.at(i).memory_address); } // Parse the output - DebuggerEventData *ded = dynamic_cast( e.GetClientObject() ); - if ( ded ) { + DebuggerEventData* ded = dynamic_cast(e.GetClientObject()); + if(ded) { - m_lines.insert(m_lines.end(), - ded->m_disassembleLines.begin(), - ded->m_disassembleLines.end() ); + m_lines.insert(m_lines.end(), ded->m_disassembleLines.begin(), ded->m_disassembleLines.end()); - for(size_t i=0; im_disassembleLines.size(); ++i) { - m_stc->AppendText( ded->m_disassembleLines.at(i).m_address + " " + ded->m_disassembleLines.at(i).m_inst + "\n" ); + for(size_t i = 0; i < ded->m_disassembleLines.size(); ++i) { + m_stc->AppendText(ded->m_disassembleLines.at(i).m_address + " " + ded->m_disassembleLines.at(i).m_inst + + "\n"); // restore breakpoints - if ( addressSet.count( ded->m_disassembleLines.at(i).m_address) ) { + if(addressSet.count(ded->m_disassembleLines.at(i).m_address)) { m_stc->MarkerAdd(i, BREAKPOINT_MARKER); } } @@ -120,30 +138,30 @@ { e.Skip(); size_t curline = wxString::npos; - DebuggerEventData *ded = dynamic_cast(e.GetClientObject()); - if ( ded && ded->m_disassembleLines.size() ) { + DebuggerEventData* ded = dynamic_cast(e.GetClientObject()); + if(ded && ded->m_disassembleLines.size()) { DisassembleEntry entry = ded->m_disassembleLines.at(0); - for(size_t i=0; iMarkerAdd(curline, CURLINE_MARKER); int pos = m_stc->PositionFromLine(curline); - m_stc->SetCurrentPos( pos ); + m_stc->SetCurrentPos(pos); m_stc->SetSelection(pos, pos); DoCentrLine(curline); - //m_stc->EnsureCaretVisible(); - m_textCtrlCurFunction->ChangeValue( entry.m_function ); + // m_stc->EnsureCaretVisible(); + m_textCtrlCurFunction->ChangeValue(entry.m_function); } } } -void DebuggerDisassemblyTab::OnDebuggerStopped(wxCommandEvent& e) +void DebuggerDisassemblyTab::OnDebuggerStopped(clDebugEvent& e) { e.Skip(); DoClearDisassembleView(); @@ -160,10 +178,7 @@ m_stc->SetReadOnly(true); } -void DebuggerDisassemblyTab::OnQueryFileLineDone(clCommandEvent& e) -{ - e.Skip(); -} +void DebuggerDisassemblyTab::OnQueryFileLineDone(clCommandEvent& e) { e.Skip(); } void DebuggerDisassemblyTab::DoCentrLine(int line) { @@ -172,10 +187,9 @@ int linesAboveIt = numLinesOnScreen / 2; line = line - linesAboveIt; - if ( line < 0 ) - line = 0; + if(line < 0) line = 0; - m_stc->SetFirstVisibleLine( line ); + m_stc->SetFirstVisibleLine(line); m_stc->ClearSelections(); } @@ -184,17 +198,18 @@ /// get the address of the line int nLine = m_stc->LineFromPosition(event.GetPosition()); wxString line = m_stc->GetLine(nLine); - wxString address = line.BeforeFirst(' ').Trim(true).Trim(false);; + wxString address = line.BeforeFirst(' ').Trim(true).Trim(false); + ; - if ( m_stc->MarkerGet(nLine) & BREAKPOINT_MARKER_MASK ) { + if(m_stc->MarkerGet(nLine) & BREAKPOINT_MARKER_MASK) { // we already got a marker there m_stc->MarkerDelete(nLine, BREAKPOINT_MARKER); - ManagerST::Get()->GetBreakpointsMgr()->DelBreakpointByAddress( address ); + ManagerST::Get()->GetBreakpointsMgr()->DelBreakpointByAddress(address); } else { m_stc->MarkerAdd(nLine, BREAKPOINT_MARKER); - ManagerST::Get()->GetBreakpointsMgr()->AddBreakpointByAddress( address ); + ManagerST::Get()->GetBreakpointsMgr()->AddBreakpointByAddress(address); } clMainFrame::Get()->GetDebuggerPane()->GetBreakpointView()->Initialize(); } @@ -212,32 +227,32 @@ DoClearRegistersView(); DebuggerEventData* ded = dynamic_cast(e.GetClientObject()); wxStringMap_t curvalues; - if ( ded ) { + if(ded) { // Split the list into 2 - size_t i=0; - while ( i < ded->m_registers.size() ) { - RegistersViewModelClientData *cd = new RegistersViewModelClientData(false, false); - + size_t i = 0; + while(i < ded->m_registers.size()) { + RegistersViewModelClientData* cd = new RegistersViewModelClientData(false, false); + wxVector cols; cols.push_back(ded->m_registers.at(i).reg_name); cols.push_back(ded->m_registers.at(i).reg_value); - if ( !m_oldValues.empty() ) { + if(!m_oldValues.empty()) { wxStringMap_t::iterator iter = m_oldValues.find(ded->m_registers.at(i).reg_name); - if ( iter != m_oldValues.end() && iter->second != ded->m_registers.at(i).reg_value ) { + if(iter != m_oldValues.end() && iter->second != ded->m_registers.at(i).reg_value) { cd->SetFirstColModified(true); } } - curvalues.insert( std::make_pair(ded->m_registers.at(i).reg_name, ded->m_registers.at(i).reg_value) ); + curvalues.insert(std::make_pair(ded->m_registers.at(i).reg_name, ded->m_registers.at(i).reg_value)); ++i; - if ( i < ded->m_registers.size() ) { + if(i < ded->m_registers.size()) { cols.push_back(ded->m_registers.at(i).reg_name); cols.push_back(ded->m_registers.at(i).reg_value); - curvalues.insert( std::make_pair(ded->m_registers.at(i).reg_name, ded->m_registers.at(i).reg_value) ); - - if ( !m_oldValues.empty() ) { + curvalues.insert(std::make_pair(ded->m_registers.at(i).reg_name, ded->m_registers.at(i).reg_value)); + + if(!m_oldValues.empty()) { wxStringMap_t::iterator iter = m_oldValues.find(ded->m_registers.at(i).reg_name); - if ( iter != m_oldValues.end() && iter->second != ded->m_registers.at(i).reg_value ) { + if(iter != m_oldValues.end() && iter->second != ded->m_registers.at(i).reg_value) { cd->SetSecondColModified(true); } } @@ -245,31 +260,35 @@ } else { // no more registeres to display - cols.push_back( "" ); - cols.push_back( "" ); + cols.push_back(""); + cols.push_back(""); } m_dvListCtrlRegisters->AppendItem(cols, (wxUIntPtr)cd); } } - m_oldValues.swap( curvalues ); + m_oldValues.swap(curvalues); } void DebuggerDisassemblyTab::OnRefreshView(clCommandEvent& e) { e.Skip(); IDebugger* debugger = DebuggerMgr::Get().GetActiveDebugger(); - if ( debugger && debugger->IsRunning() && ManagerST::Get()->DbgCanInteract() ) { - debugger->ListRegisters(); - debugger->Disassemble("", -1); + if(debugger && debugger->IsRunning() && ManagerST::Get()->DbgCanInteract()) { + // Only update disass view if the view is visible + if(ManagerST::Get()->IsDebuggerViewVisible(DebuggerPane::DISASSEMBLY)) { + debugger->ListRegisters(); + debugger->Disassemble("", -1); + } } } void DebuggerDisassemblyTab::DoClearRegistersView() { - for(int i=0; iGetItemCount(); ++i) { - RegistersViewModelClientData *cd = reinterpret_cast(m_dvListCtrlRegisters->GetItemData( m_dvListCtrlRegisters->RowToItem(i) ) ); - wxDELETE( cd ); + for(int i = 0; i < m_dvListCtrlRegisters->GetItemCount(); ++i) { + RegistersViewModelClientData* cd = reinterpret_cast( + m_dvListCtrlRegisters->GetItemData(m_dvListCtrlRegisters->RowToItem(i))); + wxDELETE(cd); } m_dvListCtrlRegisters->DeleteAllItems(); } diff -Nru codelite-8.0.1+dfsg2/LiteEditor/DebuggerDisassemblyTab.h codelite-9.0+dfsg/LiteEditor/DebuggerDisassemblyTab.h --- codelite-8.0.1+dfsg2/LiteEditor/DebuggerDisassemblyTab.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/DebuggerDisassemblyTab.h 2015-10-11 13:56:07.000000000 +0000 @@ -38,37 +38,39 @@ { bool m_firstColModified; bool m_secondColModified; -public: - RegistersViewModelClientData(bool firstModified, bool secondModified) : m_firstColModified(firstModified), m_secondColModified(secondModified) {} - void SetFirstColModified(bool firstColModified) { - this->m_firstColModified = firstColModified; - } - void SetSecondColModified(bool secondColModified) { - this->m_secondColModified = secondColModified; - } - bool IsFirstColModified() const { - return m_firstColModified; - } - bool IsSecondColModified() const { - return m_secondColModified; +public: + RegistersViewModelClientData(bool firstModified, bool secondModified) + : m_firstColModified(firstModified) + , m_secondColModified(secondModified) + { } + + void SetFirstColModified(bool firstColModified) { this->m_firstColModified = firstColModified; } + void SetSecondColModified(bool secondColModified) { this->m_secondColModified = secondColModified; } + bool IsFirstColModified() const { return m_firstColModified; } + bool IsSecondColModified() const { return m_secondColModified; } }; class RegistersViewModel : public wxDataViewListStore { wxDataViewListCtrl* m_view; + public: - RegistersViewModel(wxDataViewListCtrl* view) : m_view(view) {} + RegistersViewModel(wxDataViewListCtrl* view) + : m_view(view) + { + } virtual ~RegistersViewModel() {} - bool GetAttr(const wxDataViewItem& item, unsigned int col, wxDataViewItemAttr& attr) const { - RegistersViewModelClientData *cd = reinterpret_cast(m_view->GetItemData(item)); - if ( col == 1 && cd && cd->IsFirstColModified() ) { - attr.SetColour( *wxRED ); + bool GetAttr(const wxDataViewItem& item, unsigned int col, wxDataViewItemAttr& attr) const + { + RegistersViewModelClientData* cd = reinterpret_cast(m_view->GetItemData(item)); + if(col == 1 && cd && cd->IsFirstColModified()) { + attr.SetColour(*wxRED); return true; - } else if ( col == 3 && cd && cd->IsSecondColModified() ) { - attr.SetColour( *wxRED ); + } else if(col == 3 && cd && cd->IsSecondColModified()) { + attr.SetColour(*wxRED); return true; } return false; @@ -88,30 +90,24 @@ protected: virtual void OnMarginClicked(wxStyledTextEvent& event); - + void DoClearRegistersView(); void DoClearDisassembleView(); void DoCentrLine(int line); - void OnOutput(clCommandEvent &e); - void OnCurLine(clCommandEvent &e); - void OnQueryFileLineDone(clCommandEvent &e); - void OnRefreshView(clCommandEvent &e); - void OnShowRegisters(clCommandEvent &e); - void OnDebuggerStopped(wxCommandEvent &e); - void OnAllBreakpointsDeleted(wxCommandEvent &e); + void OnOutput(clCommandEvent& e); + void OnCurLine(clCommandEvent& e); + void OnQueryFileLineDone(clCommandEvent& e); + void OnRefreshView(clCommandEvent& e); + void OnShowRegisters(clCommandEvent& e); + void OnDebuggerStopped(clDebugEvent& e); + void OnAllBreakpointsDeleted(wxCommandEvent& e); public: - DebuggerDisassemblyTab(wxWindow* parent, const wxString &label); + DebuggerDisassemblyTab(wxWindow* parent, const wxString& label); virtual ~DebuggerDisassemblyTab(); - - - void SetTitle(const wxString& title) { - this->m_title = title; - } - const wxString& GetTitle() const { - return m_title; - } + void SetTitle(const wxString& title) { this->m_title = title; } + const wxString& GetTitle() const { return m_title; } }; #endif // DEBUGGERDISASSEMBLYTAB_H diff -Nru codelite-8.0.1+dfsg2/LiteEditor/debuggerpane.cpp codelite-9.0+dfsg/LiteEditor/debuggerpane.cpp --- codelite-8.0.1+dfsg2/LiteEditor/debuggerpane.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/debuggerpane.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -33,7 +33,7 @@ #include "shelltab.h" #include "debuggerpane.h" #include "simpletable.h" -#include "listctrlpanel.h" +#include "DebuggerCallstackView.h" #include "wx/xrc/xmlres.h" #include "manager.h" #include "breakpointdlg.h" @@ -42,37 +42,41 @@ #include "debugger.h" #include "DebuggerDisassemblyTab.h" #include "plugin_general_wxcp.h" +#include "event_notifier.h" +#include "codelite_events.h" -const wxString DebuggerPane::LOCALS = _("Locals"); -const wxString DebuggerPane::WATCHES = _("Watches"); -const wxString DebuggerPane::FRAMES = _("Call Stack"); -const wxString DebuggerPane::BREAKPOINTS = _("Breakpoints"); -const wxString DebuggerPane::THREADS = _("Threads"); -const wxString DebuggerPane::MEMORY = _("Memory"); -const wxString DebuggerPane::ASCII_VIEWER = _("Ascii Viewer"); +const wxString DebuggerPane::LOCALS = _("Locals"); +const wxString DebuggerPane::WATCHES = _("Watches"); +const wxString DebuggerPane::FRAMES = _("Call Stack"); +const wxString DebuggerPane::BREAKPOINTS = _("Breakpoints"); +const wxString DebuggerPane::THREADS = _("Threads"); +const wxString DebuggerPane::MEMORY = _("Memory"); +const wxString DebuggerPane::ASCII_VIEWER = _("Ascii Viewer"); const wxString DebuggerPane::DEBUGGER_OUTPUT = _("Output"); -const wxString DebuggerPane::DISASSEMBLY = _("Disassemble"); +const wxString DebuggerPane::DISASSEMBLY = _("Disassemble"); -#define IS_DETACHED(name) ( detachedPanes.Index(name) != wxNOT_FOUND ) ? true : false +#define IS_DETACHED(name) (detachedPanes.Index(name) != wxNOT_FOUND) ? true : false -DebuggerPane::DebuggerPane(wxWindow *parent, const wxString &caption, wxAuiManager *mgr) +DebuggerPane::DebuggerPane(wxWindow* parent, const wxString& caption, wxAuiManager* mgr) : wxPanel(parent, wxID_ANY, wxDefaultPosition, wxSize(400, 300)) , m_caption(caption) , m_initDone(false) , m_mgr(mgr) { + EventNotifier::Get()->Bind(wxEVT_EDITOR_CONFIG_CHANGED, &DebuggerPane::OnSettingsChanged, this); CreateGUIControls(); } DebuggerPane::~DebuggerPane() { + EventNotifier::Get()->Unbind(wxEVT_EDITOR_CONFIG_CHANGED, &DebuggerPane::OnSettingsChanged, this); } -void DebuggerPane::OnPageChanged(NotebookEvent &event) +void DebuggerPane::OnPageChanged(wxBookCtrlEvent& event) { - if (m_initDone && DebuggerMgr::Get().GetActiveDebugger() && DebuggerMgr::Get().GetActiveDebugger()->IsRunning()) { - if (event.GetEventObject() == m_book) { - ManagerST::Get()->CallAfter( &Manager::UpdateDebuggerPane ); + if(m_initDone && DebuggerMgr::Get().GetActiveDebugger() && DebuggerMgr::Get().GetActiveDebugger()->IsRunning()) { + if(event.GetEventObject() == m_book) { + ManagerST::Get()->CallAfter(&Manager::UpdateDebuggerPane); } else { event.Skip(); } @@ -83,20 +87,16 @@ void DebuggerPane::CreateGUIControls() { - wxBoxSizer *mainSizer = new wxBoxSizer(wxVERTICAL); + wxBoxSizer* mainSizer = new wxBoxSizer(wxVERTICAL); SetSizer(mainSizer); - long bookStyle = wxVB_TOP; - + long style = (kNotebook_Default | kNotebook_AllowDnD); + if(!EditorConfigST::Get()->GetOptions()->GetWorkspaceTabsDirection()) { + style |= kNotebook_BottomTabs; + } GeneralImages img; - -#if !CL_USE_NATIVEBOOK - bookStyle |= wxAUI_NB_SCROLL_BUTTONS; -#endif - bookStyle = EditorConfigST::Get()->GetInteger(wxT("DebuggerBook"), bookStyle); - - m_book = new Notebook(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, bookStyle); - mainSizer->Add(m_book, 1, wxEXPAND|wxALL, 0); + m_book = new Notebook(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, style); + mainSizer->Add(m_book, 1, wxEXPAND | wxALL, 0); // Calculate the widthest tab (the one with the 'Call Stack' label) int xx, yy; @@ -112,10 +112,10 @@ wxString name; wxBitmap bmp; name = wxGetTranslation(LOCALS); - bmp = wxXmlResource::Get()->LoadBitmap(wxT("locals_view")); + bmp = wxXmlResource::Get()->LoadBitmap(wxT("locals_view")); // Add the 'Locals View' - if( IS_DETACHED(name) ) { - DockablePane *cp = new DockablePane(GetParent(), m_book, name, bmp, wxSize(200, 200)); + if(IS_DETACHED(name)) { + DockablePane* cp = new DockablePane(GetParent(), m_book, name, bmp, wxSize(200, 200)); m_localsTable = new LocalsTable(cp); cp->SetChildNoReparent(m_localsTable); @@ -123,12 +123,12 @@ m_localsTable = new LocalsTable(m_book); m_book->AddPage(m_localsTable, name, false, bmp); } - + // Add the 'watches View' name = wxGetTranslation(WATCHES); - bmp = wxXmlResource::Get()->LoadBitmap(wxT("watches")); - if( IS_DETACHED(name) ) { - DockablePane *cp = new DockablePane(GetParent(), m_book, name, bmp, wxSize(200, 200)); + bmp = wxXmlResource::Get()->LoadBitmap(wxT("watches")); + if(IS_DETACHED(name)) { + DockablePane* cp = new DockablePane(GetParent(), m_book, name, bmp, wxSize(200, 200)); m_watchesTable = new WatchesTable(cp); cp->SetChildNoReparent(m_watchesTable); @@ -137,12 +137,11 @@ m_book->AddPage(m_watchesTable, name, false, bmp); } - // Add the 'ASCII Viewer' name = wxGetTranslation(ASCII_VIEWER); - bmp = wxXmlResource::Get()->LoadBitmap(wxT("text_view")); - if( IS_DETACHED(name) ) { - DockablePane *cp = new DockablePane(GetParent(), m_book, name, bmp, wxSize(200, 200)); + bmp = wxXmlResource::Get()->LoadBitmap(wxT("text_view")); + if(IS_DETACHED(name)) { + DockablePane* cp = new DockablePane(GetParent(), m_book, name, bmp, wxSize(200, 200)); m_asciiViewer = new DebuggerAsciiViewer(cp); cp->SetChildNoReparent(m_asciiViewer); @@ -153,9 +152,9 @@ // Add the 'Call Stack' name = wxGetTranslation(FRAMES); - bmp = wxXmlResource::Get()->LoadBitmap(wxT("frames")); - if( IS_DETACHED(name) ) { - DockablePane *cp = new DockablePane(GetParent(), m_book, name, bmp, wxSize(200, 200)); + bmp = wxXmlResource::Get()->LoadBitmap(wxT("frames")); + if(IS_DETACHED(name)) { + DockablePane* cp = new DockablePane(GetParent(), m_book, name, bmp, wxSize(200, 200)); m_frameList = new DebuggerCallstackView(cp); cp->SetChildNoReparent(m_frameList); @@ -166,9 +165,9 @@ // Add the 'Breakpoints' name = wxGetTranslation(BREAKPOINTS); - bmp = wxXmlResource::Get()->LoadBitmap(wxT("breakpoint")); - if( IS_DETACHED(name) ) { - DockablePane *cp = new DockablePane(GetParent(), m_book, name, bmp, wxSize(200, 200)); + bmp = wxXmlResource::Get()->LoadBitmap(wxT("breakpoint")); + if(IS_DETACHED(name)) { + DockablePane* cp = new DockablePane(GetParent(), m_book, name, bmp, wxSize(200, 200)); m_breakpoints = new BreakpointDlg(cp); cp->SetChildNoReparent(m_breakpoints); @@ -179,9 +178,9 @@ // Add the 'Threads' name = wxGetTranslation(THREADS); - bmp = wxXmlResource::Get()->LoadBitmap(wxT("threads")); - if( IS_DETACHED(name) ) { - DockablePane *cp = new DockablePane(GetParent(), m_book, name, bmp, wxSize(200, 200)); + bmp = wxXmlResource::Get()->LoadBitmap(wxT("threads")); + if(IS_DETACHED(name)) { + DockablePane* cp = new DockablePane(GetParent(), m_book, name, bmp, wxSize(200, 200)); m_threads = new ThreadListPanel(cp); cp->SetChildNoReparent(m_threads); @@ -192,9 +191,9 @@ // Add the 'Memory View' name = wxGetTranslation(MEMORY); - bmp = wxXmlResource::Get()->LoadBitmap(wxT("memory_view")); - if( IS_DETACHED(name) ) { - DockablePane *cp = new DockablePane(GetParent(), m_book, name, bmp, wxSize(200, 200)); + bmp = wxXmlResource::Get()->LoadBitmap(wxT("memory_view")); + if(IS_DETACHED(name)) { + DockablePane* cp = new DockablePane(GetParent(), m_book, name, bmp, wxSize(200, 200)); m_memory = new MemoryView(cp); cp->SetChildNoReparent(m_memory); @@ -202,12 +201,12 @@ m_memory = new MemoryView(m_book); m_book->AddPage(m_memory, name, false, bmp); } - + // Add the "Output" tab name = wxGetTranslation(DEBUGGER_OUTPUT); - bmp = wxXmlResource::Get()->LoadBitmap(wxT("debugger_tab")); - if( IS_DETACHED(name) ) { - DockablePane *cp = new DockablePane(GetParent(), m_book, name, bmp, wxSize(200, 200)); + bmp = wxXmlResource::Get()->LoadBitmap(wxT("debugger_tab")); + if(IS_DETACHED(name)) { + DockablePane* cp = new DockablePane(GetParent(), m_book, name, bmp, wxSize(200, 200)); m_outputDebug = new DebugTab(cp, wxID_ANY, wxGetTranslation(DEBUGGER_OUTPUT)); cp->SetChildNoReparent(m_outputDebug); @@ -215,12 +214,12 @@ m_outputDebug = new DebugTab(m_book, wxID_ANY, wxGetTranslation(DEBUGGER_OUTPUT)); m_book->AddPage(m_outputDebug, name, false, bmp); } - + // Add the "Output" tab name = wxGetTranslation(DISASSEMBLY); - bmp = img.Bitmap("dbgAsm"); - if( IS_DETACHED(name) ) { - DockablePane *cp = new DockablePane(GetParent(), m_book, name, bmp, wxSize(200, 200)); + bmp = img.Bitmap("dbgAsm"); + if(IS_DETACHED(name)) { + DockablePane* cp = new DockablePane(GetParent(), m_book, name, bmp, wxSize(200, 200)); m_disassemble = new DebuggerDisassemblyTab(cp, wxGetTranslation(DISASSEMBLY)); cp->SetChildNoReparent(m_disassemble); @@ -228,14 +227,14 @@ m_disassemble = new DebuggerDisassemblyTab(m_book, wxGetTranslation(DISASSEMBLY)); m_book->AddPage(m_disassemble, name, false, bmp); } - m_book->Connect(wxEVT_COMMAND_BOOK_PAGE_CHANGED, NotebookEventHandler(DebuggerPane::OnPageChanged), NULL, this); + m_book->Bind(wxEVT_BOOK_PAGE_CHANGED, &DebuggerPane::OnPageChanged, this); m_initDone = true; } -void DebuggerPane::SelectTab(const wxString &tabName) +void DebuggerPane::SelectTab(const wxString& tabName) { - for (size_t i=0; i< m_book->GetPageCount(); i++) { - if (m_book->GetPageText(i) == tabName) { + for(size_t i = 0; i < m_book->GetPageCount(); i++) { + if(m_book->GetPageText(i) == tabName) { m_book->SetSelection(i); break; } @@ -251,64 +250,66 @@ GetMemoryView()->Clear(); } +void DebuggerPane::OnSettingsChanged(wxCommandEvent& event) +{ + event.Skip(); + m_book->EnableStyle(kNotebook_BottomTabs, + EditorConfigST::Get()->GetOptions()->GetOutputTabsDirection() == wxBOTTOM); +} + //---------------------------------------------------------------- // Debugger config //---------------------------------------------------------------- -void DebuggerPaneConfig::FromJSON(const JSONElement& json) -{ - m_windows = json.namedObject("m_windows").toSize_t(All); -} +void DebuggerPaneConfig::FromJSON(const JSONElement& json) { m_windows = json.namedObject("m_windows").toSize_t(All); } JSONElement DebuggerPaneConfig::ToJSON() const { JSONElement e = JSONElement::createObject(GetName()); e.addProperty("m_windows", m_windows); return e; -} - +} + DebuggerPaneConfig::DebuggerPaneConfig() : clConfigItem("debuggerWindows") - , m_windows(All) -{ -} - -DebuggerPaneConfig::~DebuggerPaneConfig() -{ -} - -wxString DebuggerPaneConfig::WindowName(eDebuggerWindows flag) const + , m_windows(All) +{ +} + +DebuggerPaneConfig::~DebuggerPaneConfig() {} + +wxString DebuggerPaneConfig::WindowName(eDebuggerWindows flag) const { switch(flag) { default: case All: return wxEmptyString; - + case Locals: return wxGetTranslation(DebuggerPane::LOCALS); - + case Watches: return wxGetTranslation(DebuggerPane::WATCHES); - + case Threads: return wxGetTranslation(DebuggerPane::THREADS); - + case Callstack: return wxGetTranslation(DebuggerPane::FRAMES); - + case Breakpoints: return wxGetTranslation(DebuggerPane::BREAKPOINTS); - + case Memory: return wxGetTranslation(DebuggerPane::MEMORY); - + case AsciiViewer: return wxGetTranslation(DebuggerPane::ASCII_VIEWER); - + case Output: return wxGetTranslation(DebuggerPane::DEBUGGER_OUTPUT); - + case Disassemble: return wxGetTranslation(DebuggerPane::DISASSEMBLY); - } -} + } +} diff -Nru codelite-8.0.1+dfsg2/LiteEditor/debuggerpane.h codelite-9.0+dfsg/LiteEditor/debuggerpane.h --- codelite-8.0.1+dfsg2/LiteEditor/debuggerpane.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/debuggerpane.h 2015-10-11 13:56:07.000000000 +0000 @@ -26,7 +26,7 @@ #define DEBUGGERPANE_H #include "wx/panel.h" -#include "notebook_ex.h" +#include "Notebook.h" #include #include "cl_config.h" @@ -44,51 +44,47 @@ class DebuggerPaneConfig : public clConfigItem { size_t m_windows; + public: enum eDebuggerWindows { - None = 0x00000000, - Locals = 0x00000001, - Watches = 0x00000002, - Callstack = 0x00000004, - Memory = 0x00000008, + None = 0x00000000, + Locals = 0x00000001, + Watches = 0x00000002, + Callstack = 0x00000004, + Memory = 0x00000008, AsciiViewer = 0x00000010, Breakpoints = 0x00000020, - Output = 0x00000040, - Threads = 0x00000080, + Output = 0x00000040, + Threads = 0x00000080, Disassemble = 0x00000100, - All = 0xFFFFFFFF, + All = 0xFFFFFFFF, }; public: virtual void FromJSON(const JSONElement& json); virtual JSONElement ToJSON() const; - void SetWindows(size_t windows) { - this->m_windows = windows; - } - size_t GetWindows() const { - return m_windows; - } - + void SetWindows(size_t windows) { this->m_windows = windows; } + size_t GetWindows() const { return m_windows; } + /** * @brief convert debugger window flag id to its visual name */ wxString WindowName(eDebuggerWindows flag) const; - - void ShowDebuggerWindow(eDebuggerWindows win, bool show) { - if ( show ) { + + void ShowDebuggerWindow(eDebuggerWindows win, bool show) + { + if(show) { m_windows |= win; } else { m_windows &= ~win; } } - - bool IsDebuggerWindowShown(eDebuggerWindows win) const { - return m_windows & win; - } + + bool IsDebuggerWindowShown(eDebuggerWindows win) const { return m_windows & win; } public: - DebuggerPaneConfig(); + DebuggerPaneConfig(); virtual ~DebuggerPaneConfig(); }; @@ -106,62 +102,43 @@ static const wxString DISASSEMBLY; private: - Notebook * m_book; - LocalsTable * m_localsTable; - wxString m_caption; - WatchesTable * m_watchesTable; - DebuggerCallstackView * m_frameList; - BreakpointDlg * m_breakpoints; - ThreadListPanel* m_threads; - MemoryView * m_memory; - DebuggerAsciiViewer* m_asciiViewer; + Notebook* m_book; + LocalsTable* m_localsTable; + wxString m_caption; + WatchesTable* m_watchesTable; + DebuggerCallstackView* m_frameList; + BreakpointDlg* m_breakpoints; + ThreadListPanel* m_threads; + MemoryView* m_memory; + DebuggerAsciiViewer* m_asciiViewer; DebuggerDisassemblyTab* m_disassemble; - bool m_initDone; - wxAuiManager * m_mgr; - DebugTab* m_outputDebug; - wxStringSet_t m_visibleWindows; + bool m_initDone; + wxAuiManager* m_mgr; + DebugTab* m_outputDebug; + wxStringSet_t m_visibleWindows; private: void CreateGUIControls(); + void OnSettingsChanged(wxCommandEvent& event); public: - DebuggerPane(wxWindow *parent, const wxString &caption, wxAuiManager *mgr); + DebuggerPane(wxWindow* parent, const wxString& caption, wxAuiManager* mgr); virtual ~DebuggerPane(); - //setters/getters - const wxString & GetCaption () const { - return m_caption; - } - LocalsTable * GetLocalsTable () { - return m_localsTable; - } - WatchesTable * GetWatchesTable () { - return m_watchesTable; - } - DebuggerCallstackView * GetFrameListView () { - return m_frameList; - } - BreakpointDlg * GetBreakpointView() { - return m_breakpoints; - } - ThreadListPanel * GetThreadsView () { - return m_threads; - } - MemoryView * GetMemoryView () { - return m_memory; - } - DebuggerAsciiViewer* GetAsciiViewer () { - return m_asciiViewer; - } - DebugTab* GetDebugWindow () { - return m_outputDebug; - } + // setters/getters + const wxString& GetCaption() const { return m_caption; } + LocalsTable* GetLocalsTable() { return m_localsTable; } + WatchesTable* GetWatchesTable() { return m_watchesTable; } + DebuggerCallstackView* GetFrameListView() { return m_frameList; } + BreakpointDlg* GetBreakpointView() { return m_breakpoints; } + ThreadListPanel* GetThreadsView() { return m_threads; } + MemoryView* GetMemoryView() { return m_memory; } + DebuggerAsciiViewer* GetAsciiViewer() { return m_asciiViewer; } + DebugTab* GetDebugWindow() { return m_outputDebug; } - Notebook *GetNotebook() { - return m_book; - } - void SelectTab(const wxString &tabName); + Notebook* GetNotebook() { return m_book; } + void SelectTab(const wxString& tabName); void Clear(); - void OnPageChanged(NotebookEvent &event); + void OnPageChanged(wxBookCtrlEvent& event); }; -#endif //DEBUGGERPANE_H +#endif // DEBUGGERPANE_H diff -Nru codelite-8.0.1+dfsg2/LiteEditor/debuggersettingsbasedlg.cpp codelite-9.0+dfsg/LiteEditor/debuggersettingsbasedlg.cpp --- codelite-8.0.1+dfsg2/LiteEditor/debuggersettingsbasedlg.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/debuggersettingsbasedlg.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,28 +1,3 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2014 The CodeLite Team -// file name : debuggersettingsbasedlg.cpp -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - ////////////////////////////////////////////////////////////////////// // This file was auto-generated by codelite's wxCrafter Plugin // wxCrafter project file: DebuggerSettings.wxcp @@ -52,6 +27,7 @@ this->SetSizer(bSizer1); m_treebook2 = new wxTreebook(this, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxBK_DEFAULT); + m_treebook2->SetName(wxT("m_treebook2")); bSizer1->Add(m_treebook2, 1, wxALL|wxEXPAND, 5); @@ -68,11 +44,32 @@ bSizer2->Add(m_buttonCancel, 0, wxALL, 5); + + #if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(m_treebook2)){ + wxPersistenceManager::Get().RegisterAndRestore(m_treebook2); + } else { + wxPersistenceManager::Get().Restore(m_treebook2); + } + #endif + + SetName(wxT("DebuggerSettingsBaseDlg")); SetSizeHints(-1,-1); - if ( GetSizer() ) { + if (GetSizer()) { GetSizer()->Fit(this); } - Centre(); + if(GetParent()) { + CentreOnParent(); + } else { + CentreOnScreen(); + } +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(this)) { + wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); + } +#endif // Connect events m_buttonCancel->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(DebuggerSettingsBaseDlg::OnButtonCancel), NULL, this); @@ -110,11 +107,11 @@ bSizer7->Add(m_textCtrlStartupCommands, 1, wxALL|wxEXPAND, 5); + SetName(wxT("DbgPageStartupCmdsBase")); SetSizeHints(-1,-1); - if ( GetSizer() ) { + if (GetSizer()) { GetSizer()->Fit(this); } - Centre(wxBOTH); } DbgPageStartupCmdsBase::~DbgPageStartupCmdsBase() @@ -165,11 +162,11 @@ bSizer6->Add(m_buttonDelete, 0, wxALL|wxEXPAND, 5); + SetName(wxT("PreDefinedTypesPageBase")); SetSizeHints(-1,-1); - if ( GetSizer() ) { + if (GetSizer()) { GetSizer()->Fit(this); } - Centre(wxBOTH); // Connect events m_listCtrl1->Connect(wxEVT_COMMAND_LIST_ITEM_ACTIVATED, wxListEventHandler(PreDefinedTypesPageBase::OnItemActivated), NULL, this); m_listCtrl1->Connect(wxEVT_COMMAND_LIST_ITEM_DESELECTED, wxListEventHandler(PreDefinedTypesPageBase::OnItemDeselected), NULL, this); @@ -216,6 +213,9 @@ fgSizer2->Add(m_staticText3, 0, wxALL|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5); m_textCtrlName = new wxTextCtrl(this, wxID_ANY, wxT(""), wxDefaultPosition, wxSize(-1, -1), 0); + #if wxVERSION_NUMBER >= 3000 + m_textCtrlName->SetHint(wxT("")); + #endif fgSizer2->Add(m_textCtrlName, 0, wxALL|wxEXPAND, 5); @@ -250,11 +250,23 @@ bSizer18->Add(m_button10, 0, wxALL, 5); + SetName(wxT("NewPreDefinedSetBaseDlg")); SetSizeHints(-1,-1); - if ( GetSizer() ) { + if (GetSizer()) { GetSizer()->Fit(this); } - Centre(wxBOTH); + if(GetParent()) { + CentreOnParent(wxBOTH); + } else { + CentreOnScreen(wxBOTH); + } +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(this)) { + wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); + } +#endif } NewPreDefinedSetBaseDlg::~NewPreDefinedSetBaseDlg() @@ -293,6 +305,9 @@ flexGridSizer49->Add(m_staticText1, 0, wxALL|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5); m_textCtrDbgPath = new wxTextCtrl(m_panel6, wxID_ANY, wxT(""), wxDefaultPosition, wxSize(-1, -1), 0); + #if wxVERSION_NUMBER >= 3000 + m_textCtrDbgPath->SetHint(wxT("")); + #endif flexGridSizer49->Add(m_textCtrDbgPath, 0, wxALL|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5); @@ -400,11 +415,11 @@ fgSizer21->Add(0, 0, 0, wxALL, 5); + SetName(wxT("DbgPageGeneralBase")); SetSizeHints(-1,-1); - if ( GetSizer() ) { + if (GetSizer()) { GetSizer()->Fit(this); } - Centre(wxBOTH); // Connect events m_buttonBrowse->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(DbgPageGeneralBase::OnBrowse), NULL, this); @@ -494,14 +509,17 @@ m_textCtrlCygwinPathCommand = new wxTextCtrl(m_panel7, wxID_ANY, wxT(""), wxDefaultPosition, wxSize(-1, -1), 0); m_textCtrlCygwinPathCommand->SetToolTip(_("Set here the command to use in order to convert cygwin paths into native Windows paths (use $(File) as a place holder for the file name)")); + #if wxVERSION_NUMBER >= 3000 + m_textCtrlCygwinPathCommand->SetHint(wxT("")); + #endif gSizer5->Add(m_textCtrlCygwinPathCommand, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5); + SetName(wxT("DbgPageMiscBase")); SetSizeHints(-1,-1); - if ( GetSizer() ) { + if (GetSizer()) { GetSizer()->Fit(this); } - Centre(wxBOTH); // Connect events m_checkBoxDebugAssert->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(DbgPageMiscBase::OnDebugAssert), NULL, this); m_checkBoxDebugAssert->Connect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(DbgPageMiscBase::OnWindowsUI), NULL, this); @@ -558,14 +576,15 @@ bSizer16->Add(sbSizer5, 1, wxEXPAND, 5); m_notebookPreDefTypes = new wxChoicebook(m_panel6, wxID_ANY, wxDefaultPosition, wxSize(-1, -1), 0); + m_notebookPreDefTypes->SetName(wxT("m_notebookPreDefTypes")); sbSizer5->Add(m_notebookPreDefTypes, 1, wxEXPAND, 5); + SetName(wxT("DbgPagePreDefTypesBase")); SetSizeHints(-1,-1); - if ( GetSizer() ) { + if (GetSizer()) { GetSizer()->Fit(this); } - Centre(wxBOTH); // Connect events m_buttonNewSet->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(DbgPagePreDefTypesBase::OnNewSet), NULL, this); m_buttonDeleteSet->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(DbgPagePreDefTypesBase::OnDeleteSet), NULL, this); @@ -608,6 +627,9 @@ flexGridSizer22->Add(m_staticText24, 0, wxALL|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5); m_textCtrlCurFunction = new wxTextCtrl(this, wxID_ANY, wxT(""), wxDefaultPosition, wxSize(-1,-1), wxTE_READONLY); + #if wxVERSION_NUMBER >= 3000 + m_textCtrlCurFunction->SetHint(wxT("")); + #endif flexGridSizer22->Add(m_textCtrlCurFunction, 0, wxALL|wxEXPAND, 5); @@ -675,11 +697,11 @@ m_dvListCtrlRegisters->AppendTextColumn(_("Register"), wxDATAVIEW_CELL_INERT, 80, wxALIGN_LEFT); m_dvListCtrlRegisters->AppendTextColumn(_("Value"), wxDATAVIEW_CELL_INERT, 150, wxALIGN_LEFT); + SetName(wxT("DebuggerDisassemblyTabBase")); SetSizeHints(500,300); - if ( GetSizer() ) { + if (GetSizer()) { GetSizer()->Fit(this); } - Centre(wxBOTH); // Connect events m_stc->Connect(wxEVT_STC_MARGINCLICK, wxStyledTextEventHandler(DebuggerDisassemblyTabBase::OnMarginClicked), NULL, this); @@ -711,22 +733,22 @@ m_auibar31->AddTool(wxID_REFRESH, _("Refresh"), wxXmlResource::Get()->LoadBitmap(wxT("restart")), wxNullBitmap, wxITEM_NORMAL, _("Refresh"), _("Refresh"), NULL); - m_auibar31->AddSeparator(); - m_auibar31->AddTool(wxID_NEW, _("New..."), wxXmlResource::Get()->LoadBitmap(wxT("add")), wxNullBitmap, wxITEM_NORMAL, _("New..."), _("New..."), NULL); m_auibar31->AddTool(wxID_DELETE, _("Delete"), wxXmlResource::Get()->LoadBitmap(wxT("delete-line")), wxNullBitmap, wxITEM_NORMAL, _("Delete"), _("Delete"), NULL); + + m_auibar31->AddTool(ID_SORT_LOCALS, _("Sort Items"), wxXmlResource::Get()->LoadBitmap(wxT("sort")), wxNullBitmap, wxITEM_NORMAL, _("Sort Items"), _("Sort Items"), NULL); m_auibar31->Realize(); - m_listTable = new clTreeListCtrl(this, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxTR_HIDE_ROOT|wxTR_COLUMN_LINES|wxTR_ROW_LINES|wxTR_FULL_ROW_HIGHLIGHT|wxTR_EDIT_LABELS|wxTR_HAS_BUTTONS); + m_listTable = new clTreeListCtrl(this, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxTR_HIDE_ROOT|wxTR_COLUMN_LINES|wxTR_ROW_LINES|wxTR_FULL_ROW_HIGHLIGHT|wxTR_EDIT_LABELS|wxTR_HAS_BUTTONS|wxTR_TWIST_BUTTONS|wxTR_NO_LINES); boxSizer29->Add(m_listTable, 1, wxALL|wxEXPAND, 2); + SetName(wxT("LocalsTableBase")); SetSizeHints(500,300); - if ( GetSizer() ) { + if (GetSizer()) { GetSizer()->Fit(this); } - Centre(wxBOTH); // Connect events this->Connect(wxID_REFRESH, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler(LocalsTableBase::OnRefresh), NULL, this); this->Connect(wxID_REFRESH, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(LocalsTableBase::OnRefreshUI), NULL, this); @@ -734,6 +756,7 @@ this->Connect(wxID_NEW, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(LocalsTableBase::OnNewWatchUI), NULL, this); this->Connect(wxID_DELETE, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler(LocalsTableBase::OnDeleteWatch), NULL, this); this->Connect(wxID_DELETE, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(LocalsTableBase::OnDeleteWatchUI), NULL, this); + this->Connect(ID_SORT_LOCALS, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler(LocalsTableBase::OnSortItems), NULL, this); m_listTable->Connect(wxEVT_COMMAND_TREE_BEGIN_LABEL_EDIT, wxTreeEventHandler(LocalsTableBase::OnListEditLabelBegin), NULL, this); m_listTable->Connect(wxEVT_COMMAND_TREE_END_LABEL_EDIT, wxTreeEventHandler(LocalsTableBase::OnListEditLabelEnd), NULL, this); m_listTable->Connect(wxEVT_COMMAND_TREE_ITEM_MENU, wxTreeEventHandler(LocalsTableBase::OnItemRightClick), NULL, this); @@ -750,6 +773,7 @@ this->Disconnect(wxID_NEW, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(LocalsTableBase::OnNewWatchUI), NULL, this); this->Disconnect(wxID_DELETE, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler(LocalsTableBase::OnDeleteWatch), NULL, this); this->Disconnect(wxID_DELETE, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(LocalsTableBase::OnDeleteWatchUI), NULL, this); + this->Disconnect(ID_SORT_LOCALS, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler(LocalsTableBase::OnSortItems), NULL, this); m_listTable->Disconnect(wxEVT_COMMAND_TREE_BEGIN_LABEL_EDIT, wxTreeEventHandler(LocalsTableBase::OnListEditLabelBegin), NULL, this); m_listTable->Disconnect(wxEVT_COMMAND_TREE_END_LABEL_EDIT, wxTreeEventHandler(LocalsTableBase::OnListEditLabelEnd), NULL, this); m_listTable->Disconnect(wxEVT_COMMAND_TREE_ITEM_MENU, wxTreeEventHandler(LocalsTableBase::OnItemRightClick), NULL, this); diff -Nru codelite-8.0.1+dfsg2/LiteEditor/debuggersettingsbasedlg.h codelite-9.0+dfsg/LiteEditor/debuggersettingsbasedlg.h --- codelite-8.0.1+dfsg2/LiteEditor/debuggersettingsbasedlg.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/debuggersettingsbasedlg.h 2015-10-11 13:56:07.000000000 +0000 @@ -1,36 +1,11 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2014 The CodeLite Team -// file name : debuggersettingsbasedlg.h -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - ////////////////////////////////////////////////////////////////////// // This file was auto-generated by codelite's wxCrafter Plugin // wxCrafter project file: DebuggerSettings.wxcp // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// -#ifndef DEBUGGERSETTINGS_BASE_CLASSES_H -#define DEBUGGERSETTINGS_BASE_CLASSES_H +#ifndef CODELITE_LITEEDITOR_DEBUGGERSETTINGS_BASE_CLASSES_H +#define CODELITE_LITEEDITOR_DEBUGGERSETTINGS_BASE_CLASSES_H #include #include @@ -61,6 +36,12 @@ #include #include #include "cl_treelistctrl.h" +#if wxVERSION_NUMBER >= 2900 +#include +#include +#include +#include +#endif class DebuggerSettingsBaseDlg : public wxDialog { @@ -73,6 +54,9 @@ virtual void OnButtonCancel(wxCommandEvent& event) { event.Skip(); } public: + wxTreebook* GetTreebook2() { return m_treebook2; } + wxButton* GetButtonOK() { return m_buttonOK; } + wxButton* GetButtonCancel() { return m_buttonCancel; } DebuggerSettingsBaseDlg(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Debugger Settings"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER); virtual ~DebuggerSettingsBaseDlg(); }; @@ -86,6 +70,7 @@ protected: public: + wxTextCtrl* GetTextCtrlStartupCommands() { return m_textCtrlStartupCommands; } DbgPageStartupCmdsBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxTAB_TRAVERSAL); virtual ~DbgPageStartupCmdsBase(); }; @@ -109,6 +94,11 @@ virtual void OnDeleteShortcut(wxCommandEvent& event) { event.Skip(); } public: + wxListCtrl* GetListCtrl1() { return m_listCtrl1; } + wxButton* GetButtonNewType() { return m_buttonNewType; } + wxButton* GetButtonEdit() { return m_buttonEdit; } + wxButton* GetButtonDelete() { return m_buttonDelete; } + wxPanel* GetPanel2() { return m_panel2; } PreDefinedTypesPageBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxTAB_TRAVERSAL); virtual ~PreDefinedTypesPageBase(); }; @@ -128,6 +118,13 @@ protected: public: + wxStaticText* GetStaticText3() { return m_staticText3; } + wxTextCtrl* GetTextCtrlName() { return m_textCtrlName; } + wxStaticText* GetStaticText4() { return m_staticText4; } + wxChoice* GetChoiceCopyFrom() { return m_choiceCopyFrom; } + wxCheckBox* GetCheckBoxMakeActive() { return m_checkBoxMakeActive; } + wxButton* GetButton9() { return m_button9; } + wxButton* GetButton10() { return m_button10; } NewPreDefinedSetBaseDlg(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Create a new 'PreDefined Types' set..."), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1, -1), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER); virtual ~NewPreDefinedSetBaseDlg(); }; @@ -157,6 +154,22 @@ virtual void OnBrowse(wxCommandEvent& event) { event.Skip(); } public: + wxStaticText* GetStaticText1() { return m_staticText1; } + wxTextCtrl* GetTextCtrDbgPath() { return m_textCtrDbgPath; } + wxButton* GetButtonBrowse() { return m_buttonBrowse; } + wxCheckBox* GetCheckBoxEnablePendingBreakpoints() { return m_checkBoxEnablePendingBreakpoints; } + wxCheckBox* GetCheckBoxSetBreakpointsAfterMain() { return m_checkBoxSetBreakpointsAfterMain; } + wxCheckBox* GetCheckBreakAtWinMain() { return m_checkBreakAtWinMain; } + wxCheckBox* GetCatchThrow() { return m_catchThrow; } + wxCheckBox* GetRaiseOnBpHit() { return m_raiseOnBpHit; } + wxCheckBox* GetShowTooltipsRequiresControl() { return m_showTooltipsRequiresControl; } + wxCheckBox* GetCheckBoxAutoExpand() { return m_checkBoxAutoExpand; } + wxStaticText* GetStaticText2() { return m_staticText2; } + wxSpinCtrl* GetSpinCtrlNumElements() { return m_spinCtrlNumElements; } + wxCheckBox* GetCheckBoxExpandLocals() { return m_checkBoxExpandLocals; } + wxCheckBox* GetCheckBoxCharArrAsPtr() { return m_checkBoxCharArrAsPtr; } + wxCheckBox* GetCheckBoxUsePrettyPrinting() { return m_checkBoxUsePrettyPrinting; } + wxPanel* GetPanel6() { return m_panel6; } DbgPageGeneralBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxTAB_TRAVERSAL); virtual ~DbgPageGeneralBase(); }; @@ -180,6 +193,15 @@ virtual void OnWindowsUI(wxUpdateUIEvent& event) { event.Skip(); } public: + wxCheckBox* GetCheckUseRelativePaths() { return m_checkUseRelativePaths; } + wxCheckBox* GetCheckBoxEnableLog() { return m_checkBoxEnableLog; } + wxCheckBox* GetCheckShowTerminal() { return m_checkShowTerminal; } + wxStaticText* GetStaticText6() { return m_staticText6; } + wxSpinCtrl* GetMaxFramesSpinCtrl() { return m_maxFramesSpinCtrl; } + wxCheckBox* GetCheckBoxDebugAssert() { return m_checkBoxDebugAssert; } + wxStaticText* GetStaticText5() { return m_staticText5; } + wxTextCtrl* GetTextCtrlCygwinPathCommand() { return m_textCtrlCygwinPathCommand; } + wxPanel* GetPanel7() { return m_panel7; } DbgPageMiscBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxTAB_TRAVERSAL); virtual ~DbgPageMiscBase(); }; @@ -200,6 +222,10 @@ virtual void OnPageChanged(wxChoicebookEvent& event) { event.Skip(); } public: + wxButton* GetButtonNewSet() { return m_buttonNewSet; } + wxButton* GetButtonDeleteSet() { return m_buttonDeleteSet; } + wxChoicebook* GetNotebookPreDefTypes() { return m_notebookPreDefTypes; } + wxPanel* GetPanel6() { return m_panel6; } DbgPagePreDefTypesBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxTAB_TRAVERSAL); virtual ~DbgPagePreDefTypesBase(); }; @@ -220,6 +246,13 @@ virtual void OnMarginClicked(wxStyledTextEvent& event) { event.Skip(); } public: + wxStaticText* GetStaticText24() { return m_staticText24; } + wxTextCtrl* GetTextCtrlCurFunction() { return m_textCtrlCurFunction; } + wxStyledTextCtrl* GetStc() { return m_stc; } + wxPanel* GetSplitterPage55() { return m_splitterPage55; } + wxDataViewListCtrl* GetDvListCtrlRegisters() { return m_dvListCtrlRegisters; } + wxPanel* GetSplitterPage59() { return m_splitterPage59; } + wxSplitterWindow* GetSplitter51() { return m_splitter51; } DebuggerDisassemblyTabBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(500,300), long style = wxTAB_TRAVERSAL); virtual ~DebuggerDisassemblyTabBase(); }; @@ -227,6 +260,10 @@ class LocalsTableBase : public wxPanel { +public: + enum { + ID_SORT_LOCALS = 7334, + }; protected: wxAuiToolBar* m_auibar31; clTreeListCtrl* m_listTable; @@ -238,6 +275,7 @@ virtual void OnNewWatchUI(wxUpdateUIEvent& event) { event.Skip(); } virtual void OnDeleteWatch(wxCommandEvent& event) { event.Skip(); } virtual void OnDeleteWatchUI(wxUpdateUIEvent& event) { event.Skip(); } + virtual void OnSortItems(wxCommandEvent& event) { event.Skip(); } virtual void OnListEditLabelBegin(wxTreeEvent& event) { event.Skip(); } virtual void OnListEditLabelEnd(wxTreeEvent& event) { event.Skip(); } virtual void OnItemRightClick(wxTreeEvent& event) { event.Skip(); } @@ -245,6 +283,8 @@ virtual void OnItemExpanding(wxTreeEvent& event) { event.Skip(); } public: + wxAuiToolBar* GetAuibar31() { return m_auibar31; } + clTreeListCtrl* GetListTable() { return m_listTable; } LocalsTableBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(500,300), long style = wxTAB_TRAVERSAL); virtual ~LocalsTableBase(); }; diff -Nru codelite-8.0.1+dfsg2/LiteEditor/DebuggerSettingsBaseDlg_liteeditor_bitmaps.cpp codelite-9.0+dfsg/LiteEditor/DebuggerSettingsBaseDlg_liteeditor_bitmaps.cpp --- codelite-8.0.1+dfsg2/LiteEditor/DebuggerSettingsBaseDlg_liteeditor_bitmaps.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/DebuggerSettingsBaseDlg_liteeditor_bitmaps.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,28 +1,3 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2014 The CodeLite Team -// file name : DebuggerSettingsBaseDlg_liteeditor_bitmaps.cpp -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - // // This file was automatically generated by wxrc, do not edit by hand. // @@ -145,34 +120,60 @@ 81,171,255,21,96,0,102,238,43,219,11,63,247,237,0,0,0,0,73,69,78,68,174, 66,96,130}; -static size_t xml_res_size_3 = 517; +static size_t xml_res_size_3 = 383; static unsigned char xml_res_file_3[] = { +137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, +0,31,243,255,97,0,0,0,6,98,75,71,68,0,255,0,255,0,255,160,189,167,147,0, +0,0,9,112,72,89,115,0,0,13,215,0,0,13,215,1,66,40,155,120,0,0,0,7,116,73, +77,69,7,222,12,18,6,52,38,182,170,175,82,0,0,1,12,73,68,65,84,56,203,237, +210,77,43,69,113,16,199,241,207,189,137,141,13,59,161,46,43,69,217,73,137, +21,43,165,80,30,86,118,94,129,66,148,181,164,212,93,200,43,16,82,94,0,59, +41,143,165,172,36,162,172,208,85,119,167,92,54,115,234,116,58,123,27,83, +83,255,102,154,249,125,255,51,195,191,165,173,128,50,222,112,140,214,136, +143,226,17,63,25,127,194,88,186,193,4,190,177,136,7,236,70,252,5,7,24,206, +248,30,94,139,41,245,53,28,98,29,43,152,66,119,228,107,104,10,127,15,194, +143,32,1,147,161,222,131,18,138,184,195,121,208,36,216,21,116,4,122,13, +179,137,250,45,246,81,135,123,244,97,58,26,52,96,53,10,198,209,30,234,59, +121,234,141,241,191,206,160,184,196,73,204,97,43,4,78,131,102,27,45,133, +80,121,198,76,40,36,115,57,195,64,12,235,2,131,24,194,124,228,251,99,19, +170,88,198,92,102,77,71,232,138,247,66,206,218,151,240,9,27,169,162,114, +36,71,240,21,177,106,206,13,36,190,89,136,130,94,212,227,42,181,154,18, +218,112,19,36,205,25,130,10,174,255,254,254,127,1,81,71,79,231,198,102, +199,75,0,0,0,0,73,69,78,68,174,66,96,130}; + +static size_t xml_res_size_4 = 607; +static unsigned char xml_res_file_4[] = { 60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, 110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, 115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, -47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, -47,119,120,120,114,99,34,32,118,101,114,115,105,111,110,61,34,50,46,51, -46,48,46,49,34,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, -61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,97,100,100, -34,62,68,101,98,117,103,103,101,114,83,101,116,116,105,110,103,115,66,97, -115,101,68,108,103,95,108,105,116,101,101,100,105,116,111,114,95,98,105, -116,109,97,112,115,46,99,112,112,36,46,46,95,105,99,111,110,115,95,97,100, -100,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106, -101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34, -32,110,97,109,101,61,34,100,101,108,101,116,101,45,108,105,110,101,34,62, -68,101,98,117,103,103,101,114,83,101,116,116,105,110,103,115,66,97,115, -101,68,108,103,95,108,105,116,101,101,100,105,116,111,114,95,98,105,116, -109,97,112,115,46,99,112,112,36,46,46,95,105,99,111,110,115,95,100,101, -108,101,116,101,45,108,105,110,101,46,112,110,103,60,47,111,98,106,101, -99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34, -119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,114,101,115,116, -97,114,116,34,62,68,101,98,117,103,103,101,114,83,101,116,116,105,110,103, +47,47,119,119,119,46,119,120,119,105,100,103,101,116,115,46,111,114,103, +47,119,120,120,114,99,34,62,10,32,32,60,111,98,106,101,99,116,32,99,108, +97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61, +34,97,100,100,34,62,68,101,98,117,103,103,101,114,83,101,116,116,105,110, +103,115,66,97,115,101,68,108,103,95,108,105,116,101,101,100,105,116,111, +114,95,98,105,116,109,97,112,115,46,99,112,112,36,46,46,95,105,99,111,110, +115,95,97,100,100,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32, +60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116, +109,97,112,34,32,110,97,109,101,61,34,100,101,108,101,116,101,45,108,105, +110,101,34,62,68,101,98,117,103,103,101,114,83,101,116,116,105,110,103, 115,66,97,115,101,68,108,103,95,108,105,116,101,101,100,105,116,111,114, -95,98,105,116,109,97,112,115,46,99,112,112,36,46,46,95,99,111,100,101,108, -105,116,101,45,105,99,111,110,115,45,102,114,101,115,104,45,102,97,114, -109,95,116,111,111,108,98,97,114,115,95,49,54,95,100,101,98,117,103,103, -101,114,95,114,101,115,116,97,114,116,46,112,110,103,60,47,111,98,106,101, -99,116,62,10,60,47,114,101,115,111,117,114,99,101,62,10}; +95,98,105,116,109,97,112,115,46,99,112,112,36,46,46,95,105,99,111,110,115, +95,100,101,108,101,116,101,45,108,105,110,101,46,112,110,103,60,47,111, +98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115, +115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,114, +101,115,116,97,114,116,34,62,68,101,98,117,103,103,101,114,83,101,116,116, +105,110,103,115,66,97,115,101,68,108,103,95,108,105,116,101,101,100,105, +116,111,114,95,98,105,116,109,97,112,115,46,99,112,112,36,46,46,95,99,111, +100,101,108,105,116,101,45,105,99,111,110,115,45,102,114,101,115,104,45, +102,97,114,109,95,116,111,111,108,98,97,114,115,95,49,54,95,100,101,98, +117,103,103,101,114,95,114,101,115,116,97,114,116,46,112,110,103,60,47, +111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97, +115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34, +115,111,114,116,34,62,68,101,98,117,103,103,101,114,83,101,116,116,105, +110,103,115,66,97,115,101,68,108,103,95,108,105,116,101,101,100,105,116, +111,114,95,98,105,116,109,97,112,115,46,99,112,112,36,114,101,115,95,115, +111,114,116,46,112,110,103,60,47,111,98,106,101,99,116,62,10,60,47,114, +101,115,111,117,114,99,101,62,10}; void wxCrafter6v4fW1InitBitmapResources() { @@ -190,6 +191,7 @@ XRC_ADD_FILE(wxT("XRC_resource/DebuggerSettingsBaseDlg_liteeditor_bitmaps.cpp$.._icons_add.png"), xml_res_file_0, xml_res_size_0, wxT("image/png")); XRC_ADD_FILE(wxT("XRC_resource/DebuggerSettingsBaseDlg_liteeditor_bitmaps.cpp$.._icons_delete-line.png"), xml_res_file_1, xml_res_size_1, wxT("image/png")); XRC_ADD_FILE(wxT("XRC_resource/DebuggerSettingsBaseDlg_liteeditor_bitmaps.cpp$.._codelite-icons-fresh-farm_toolbars_16_debugger_restart.png"), xml_res_file_2, xml_res_size_2, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/DebuggerSettingsBaseDlg_liteeditor_bitmaps.cpp$C__src_codelite_LiteEditor_DebuggerSettingsBaseDlg_liteeditor_bitmaps.xrc"), xml_res_file_3, xml_res_size_3, wxT("text/xml")); + XRC_ADD_FILE(wxT("XRC_resource/DebuggerSettingsBaseDlg_liteeditor_bitmaps.cpp$res_sort.png"), xml_res_file_3, xml_res_size_3, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/DebuggerSettingsBaseDlg_liteeditor_bitmaps.cpp$C__src_codelite_LiteEditor_DebuggerSettingsBaseDlg_liteeditor_bitmaps.xrc"), xml_res_file_4, xml_res_size_4, wxT("text/xml")); wxXmlResource::Get()->Load(wxT("memory:XRC_resource/DebuggerSettingsBaseDlg_liteeditor_bitmaps.cpp$C__src_codelite_LiteEditor_DebuggerSettingsBaseDlg_liteeditor_bitmaps.xrc")); } diff -Nru codelite-8.0.1+dfsg2/LiteEditor/DebuggerSettings.wxcp codelite-9.0+dfsg/LiteEditor/DebuggerSettings.wxcp --- codelite-8.0.1+dfsg2/LiteEditor/DebuggerSettings.wxcp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/DebuggerSettings.wxcp 2015-10-11 13:56:07.000000000 +0000 @@ -1,6530 +1,6783 @@ { - "metadata": { - "m_generatedFilesDir": ".", - "m_objCounter": 65, - "m_includeFiles": [], - "m_bitmapFunction": "wxCrafter6v4fW1InitBitmapResources", - "m_bitmapsFile": "DebuggerSettingsBaseDlg_liteeditor_bitmaps.cpp", - "m_GenerateCodeTypes": 6370085, - "m_outputFileName": "debuggersettingsbasedlg", - "m_firstWindowId": 1000, - "m_useEnum": false, - "m_templateClasses": [] - }, - "windows": [{ - "m_type": 4421, - "proportion": 0, - "border": 0, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": ["wxDEFAULT_DIALOG_STYLE", "wxRESIZE_BORDER"], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "DebuggerSettingsBaseDlg" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Title:", - "m_value": "Debugger Settings" - }, { - "type": "virtualFolderPicker", - "m_label": "Virtual Folder:", - "m_path": "" - }, { - "type": "choice", - "m_label": "Centre:", - "m_selection": 0, - "m_options": ["", "wxBOTH", "wxVERTICAL", "wxHORIZONTAL"] - }, { - "type": "string", - "m_label": "Inherited Class", - "m_value": "" - }, { - "type": "string", - "m_label": "File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Class Decorator", - "m_value": "" - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File (16x16) :", - "m_path": "" - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File (32x32) :", - "m_path": "" - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File (64x64) :", - "m_path": "" - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File (128x128):", - "m_path": "" - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File (256x256):", - "m_path": "" - }], - "m_events": [], - "m_children": [{ - "m_type": 4401, - "proportion": 0, - "border": 0, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "bSizer1" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4446, - "proportion": 1, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": ["wxBK_DEFAULT"], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_treebook2" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4401, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_HORIZONTAL"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "bSizer2" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 1, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4400, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_OK" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_buttonOK" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "&OK" - }, { - "type": "bool", - "m_label": "Default Button", - "m_value": true - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File:", - "m_path": "" - }, { - "type": "string", - "m_label": "Margins:", - "m_value": "2,2" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4400, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_CANCEL" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_buttonCancel" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "&Cancel" - }, { - "type": "bool", - "m_label": "Default Button", - "m_value": false - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File:", - "m_path": "" - }, { - "type": "string", - "m_label": "Margins:", - "m_value": "2,2" - }], - "m_events": [{ - "m_eventName": "wxEVT_COMMAND_BUTTON_CLICKED", - "m_eventClass": "wxCommandEvent", - "m_eventHandler": "wxCommandEventHandler", - "m_functionNameAndSignature": "OnButtonCancel(wxCommandEvent& event)", - "m_description": "Process a wxEVT_COMMAND_BUTTON_CLICKED event, when the button is clicked.", - "m_noBody": false - }], - "m_children": [] - }] - }] - }] - }, { - "m_type": 4407, - "proportion": 0, - "border": 0, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": ["wxTAB_TRAVERSAL"], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "DbgPageStartupCmdsBase" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Title:", - "m_value": "" - }, { - "type": "virtualFolderPicker", - "m_label": "Virtual Folder:", - "m_path": "" - }, { - "type": "choice", - "m_label": "Centre:", - "m_selection": 1, - "m_options": ["", "wxBOTH", "wxVERTICAL", "wxHORIZONTAL"] - }, { - "type": "string", - "m_label": "Inherited Class", - "m_value": "" - }, { - "type": "string", - "m_label": "File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Class Decorator", - "m_value": "" - }], - "m_events": [], - "m_children": [{ - "m_type": 4401, - "proportion": 0, - "border": 0, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "bSizer7" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4406, - "proportion": 1, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": ["wxTE_RICH2", "wxTE_PROCESS_TAB", "wxTE_PROCESS_ENTER", "wxTE_MULTILINE"], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_textCtrlStartupCommands" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "wxSYS_ANSI_FIXED_FONT,normal,normal,normal" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Value:", - "m_value": "" - }, { - "type": "string", - "m_label": "Max Length:", - "m_value": "0" - }, { - "type": "bool", - "m_label": "Auto Complete Directories:", - "m_value": false - }, { - "type": "bool", - "m_label": "Auto Complete Files:", - "m_value": false - }], - "m_events": [], - "m_children": [] - }] - }] - }, { - "m_type": 4407, - "proportion": 0, - "border": 0, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": ["wxTAB_TRAVERSAL"], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "PreDefinedTypesPageBase" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Title:", - "m_value": "" - }, { - "type": "virtualFolderPicker", - "m_label": "Virtual Folder:", - "m_path": "" - }, { - "type": "choice", - "m_label": "Centre:", - "m_selection": 1, - "m_options": ["", "wxBOTH", "wxVERTICAL", "wxHORIZONTAL"] - }, { - "type": "string", - "m_label": "Inherited Class", - "m_value": "" - }, { - "type": "string", - "m_label": "File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Class Decorator", - "m_value": "" - }], - "m_events": [], - "m_children": [{ - "m_type": 4401, - "proportion": 0, - "border": 0, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "bSizer11" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4408, - "proportion": 1, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": ["wxTAB_TRAVERSAL"], - "m_sizerFlags": ["wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_panel2" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }], - "m_events": [], - "m_children": [{ - "m_type": 4401, - "proportion": 0, - "border": 0, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "bSizer4" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4401, - "proportion": 1, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxEXPAND"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "bSizer5" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 1, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4413, - "proportion": 1, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": ["wxLC_VRULES", "wxLC_HRULES", "wxLC_SINGLE_SEL", "wxLC_REPORT"], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_listCtrl1" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }], - "m_events": [{ - "m_eventName": "wxEVT_COMMAND_LIST_ITEM_ACTIVATED", - "m_eventClass": "wxListEvent", - "m_eventHandler": "wxListEventHandler", - "m_functionNameAndSignature": "OnItemActivated(wxListEvent& event)", - "m_description": "The item has been activated (ENTER or double click)", - "m_noBody": false - }, { - "m_eventName": "wxEVT_COMMAND_LIST_ITEM_DESELECTED", - "m_eventClass": "wxListEvent", - "m_eventHandler": "wxListEventHandler", - "m_functionNameAndSignature": "OnItemDeselected(wxListEvent& event)", - "m_description": "The item has been deselected", - "m_noBody": false - }, { - "m_eventName": "wxEVT_COMMAND_LIST_ITEM_SELECTED", - "m_eventClass": "wxListEvent", - "m_eventHandler": "wxListEventHandler", - "m_functionNameAndSignature": "OnItemSelected(wxListEvent& event)", - "m_description": "The item has been selected", - "m_noBody": false - }], - "m_children": [] - }, { - "m_type": 4401, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxEXPAND"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "bSizer6" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4400, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_buttonNewType" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "&New..." - }, { - "type": "bool", - "m_label": "Default Button", - "m_value": false - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File:", - "m_path": "" - }, { - "type": "string", - "m_label": "Margins:", - "m_value": "2,2" - }], - "m_events": [{ - "m_eventName": "wxEVT_COMMAND_BUTTON_CLICKED", - "m_eventClass": "wxCommandEvent", - "m_eventHandler": "wxCommandEventHandler", - "m_functionNameAndSignature": "OnNewShortcut(wxCommandEvent& event)", - "m_description": "Process a wxEVT_COMMAND_BUTTON_CLICKED event, when the button is clicked.", - "m_noBody": false - }], - "m_children": [] - }, { - "m_type": 4400, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_buttonEdit" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "Edit..." - }, { - "type": "bool", - "m_label": "Default Button", - "m_value": false - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File:", - "m_path": "" - }, { - "type": "string", - "m_label": "Margins:", - "m_value": "2,2" - }], - "m_events": [{ - "m_eventName": "wxEVT_COMMAND_BUTTON_CLICKED", - "m_eventClass": "wxCommandEvent", - "m_eventHandler": "wxCommandEventHandler", - "m_functionNameAndSignature": "OnEditShortcut(wxCommandEvent& event)", - "m_description": "Process a wxEVT_COMMAND_BUTTON_CLICKED event, when the button is clicked.", - "m_noBody": false - }], - "m_children": [] - }, { - "m_type": 4400, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_buttonDelete" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "&Delete" - }, { - "type": "bool", - "m_label": "Default Button", - "m_value": false - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File:", - "m_path": "" - }, { - "type": "string", - "m_label": "Margins:", - "m_value": "2,2" - }], - "m_events": [{ - "m_eventName": "wxEVT_COMMAND_BUTTON_CLICKED", - "m_eventClass": "wxCommandEvent", - "m_eventHandler": "wxCommandEventHandler", - "m_functionNameAndSignature": "OnDeleteShortcut(wxCommandEvent& event)", - "m_description": "Process a wxEVT_COMMAND_BUTTON_CLICKED event, when the button is clicked.", - "m_noBody": false - }], - "m_children": [] - }] - }] - }] - }] - }] - }] - }, { - "m_type": 4421, - "proportion": 0, - "border": 0, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": ["wxDEFAULT_DIALOG_STYLE", "wxRESIZE_BORDER"], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "NewPreDefinedSetBaseDlg" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Title:", - "m_value": "Create a new 'PreDefined Types' set..." - }, { - "type": "virtualFolderPicker", - "m_label": "Virtual Folder:", - "m_path": "" - }, { - "type": "choice", - "m_label": "Centre:", - "m_selection": 1, - "m_options": ["", "wxBOTH", "wxVERTICAL", "wxHORIZONTAL"] - }, { - "type": "string", - "m_label": "Inherited Class", - "m_value": "" - }, { - "type": "string", - "m_label": "File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Class Decorator", - "m_value": "" - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File (16x16) :", - "m_path": "" - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File (32x32) :", - "m_path": "" - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File (64x64) :", - "m_path": "" - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File (128x128):", - "m_path": "" - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File (256x256):", - "m_path": "" - }], - "m_events": [], - "m_children": [{ - "m_type": 4401, - "proportion": 0, - "border": 0, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "bSizer17" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4403, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxEXPAND"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "fgSizer2" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "# Columns:", - "m_value": "2" - }, { - "type": "string", - "m_label": "# Rows:", - "m_value": "0" - }, { - "type": "string", - "m_label": "Growable columns:", - "m_value": "1" - }, { - "type": "string", - "m_label": "Growable rows:", - "m_value": "" - }, { - "type": "string", - "m_label": "Horizontal gap:", - "m_value": "0" - }, { - "type": "string", - "m_label": "Vertical gap:", - "m_value": "0" - }], - "m_events": [], - "m_children": [{ - "m_type": 4405, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT", "wxALIGN_CENTER_VERTICAL"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_staticText3" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Label:", - "m_value": "Name:" - }, { - "type": "string", - "m_label": "Wrap:", - "m_value": "-1" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4406, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_textCtrlName" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Value:", - "m_value": "" - }, { - "type": "string", - "m_label": "Max Length:", - "m_value": "0" - }, { - "type": "bool", - "m_label": "Auto Complete Directories:", - "m_value": false - }, { - "type": "bool", - "m_label": "Auto Complete Files:", - "m_value": false - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4405, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT", "wxALIGN_CENTER_VERTICAL"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_staticText4" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Label:", - "m_value": "Copy Values From:" - }, { - "type": "string", - "m_label": "Wrap:", - "m_value": "-1" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4411, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_choiceCopyFrom" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Choices:", - "m_value": "" - }, { - "type": "string", - "m_label": "Selection:", - "m_value": "0" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4454, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxEXPAND"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "Spacer132" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "0,0" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4415, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND", "wxALIGN_CENTER_VERTICAL"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_checkBoxMakeActive" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "Make this 'PreDefined Types' set active" - }, { - "type": "bool", - "m_label": "Value:", - "m_value": false - }], - "m_events": [], - "m_children": [] - }] - }, { - "m_type": 4454, - "proportion": 1, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxEXPAND"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "Spacer134" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "0,0" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4401, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_HORIZONTAL"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "bSizer18" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 1, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4400, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_OK" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_button9" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "&OK" - }, { - "type": "bool", - "m_label": "Default Button", - "m_value": true - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File:", - "m_path": "" - }, { - "type": "string", - "m_label": "Margins:", - "m_value": "2,2" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4400, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_CANCEL" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_button10" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "&Cancel" - }, { - "type": "bool", - "m_label": "Default Button", - "m_value": false - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File:", - "m_path": "" - }, { - "type": "string", - "m_label": "Margins:", - "m_value": "2,2" - }], - "m_events": [], - "m_children": [] - }] - }] - }] - }, { - "m_type": 4407, - "proportion": 0, - "border": 0, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": ["wxTAB_TRAVERSAL"], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "DbgPageGeneralBase" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Title:", - "m_value": "" - }, { - "type": "virtualFolderPicker", - "m_label": "Virtual Folder:", - "m_path": "" - }, { - "type": "choice", - "m_label": "Centre:", - "m_selection": 1, - "m_options": ["", "wxBOTH", "wxVERTICAL", "wxHORIZONTAL"] - }, { - "type": "string", - "m_label": "Inherited Class", - "m_value": "" - }, { - "type": "string", - "m_label": "File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Class Decorator", - "m_value": "" - }], - "m_events": [], - "m_children": [{ - "m_type": 4401, - "proportion": 0, - "border": 0, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "bSizer18" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4408, - "proportion": 1, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_panel6" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }], - "m_events": [], - "m_children": [{ - "m_type": 4401, - "proportion": 0, - "border": 0, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "bSizer16" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4403, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "flexGridSizer49" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "# Columns:", - "m_value": "3" - }, { - "type": "string", - "m_label": "# Rows:", - "m_value": "0" - }, { - "type": "string", - "m_label": "Growable columns:", - "m_value": "1" - }, { - "type": "string", - "m_label": "Growable rows:", - "m_value": "" - }, { - "type": "string", - "m_label": "Horizontal gap:", - "m_value": "0" - }, { - "type": "string", - "m_label": "Vertical gap:", - "m_value": "0" - }], - "m_events": [], - "m_children": [{ - "m_type": 4405, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT", "wxALIGN_CENTER_VERTICAL"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_staticText1" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Label:", - "m_value": "Debugger path:" - }, { - "type": "string", - "m_label": "Wrap:", - "m_value": "-1" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4406, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND", "wxALIGN_CENTER_VERTICAL"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_textCtrDbgPath" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Value:", - "m_value": "" - }, { - "type": "string", - "m_label": "Max Length:", - "m_value": "0" - }, { - "type": "bool", - "m_label": "Auto Complete Directories:", - "m_value": false - }, { - "type": "bool", - "m_label": "Auto Complete Files:", - "m_value": false - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4400, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALIGN_LEFT", "wxALIGN_CENTER_VERTICAL"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_buttonBrowse" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "Browse" - }, { - "type": "bool", - "m_label": "Default Button", - "m_value": false - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File:", - "m_path": "" - }, { - "type": "string", - "m_label": "Margins:", - "m_value": "2,2" - }], - "m_events": [{ - "m_eventName": "wxEVT_COMMAND_BUTTON_CLICKED", - "m_eventClass": "wxCommandEvent", - "m_eventHandler": "wxCommandEventHandler", - "m_functionNameAndSignature": "OnBrowse(wxCommandEvent& event)", - "m_description": "Process a wxEVT_COMMAND_BUTTON_CLICKED event, when the button is clicked.", - "m_noBody": false - }], - "m_children": [] - }] - }, { - "m_type": 4449, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxLEFT", "wxRIGHT", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "sbSizer1" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["Vertical", "Horizontal"] - }, { - "type": "string", - "m_label": "Label:", - "m_value": "Options:" - }], - "m_events": [], - "m_children": [{ - "m_type": 4452, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxEXPAND"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "gSizer3" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "# Columns:", - "m_value": "1" - }, { - "type": "string", - "m_label": "# Rows:", - "m_value": "0" - }, { - "type": "string", - "m_label": "Horizontal gap:", - "m_value": "0" - }, { - "type": "string", - "m_label": "Vertical gap:", - "m_value": "0" - }], - "m_events": [], - "m_children": [{ - "m_type": 4415, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_checkBoxEnablePendingBreakpoints" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "Some breakpoints can't be applied before the program is run, or even later. This is especially a problem when trying to debug inside a library that is dynamically loaded (CodeLite itself contains examples of this).\\n\\ngdb has an option to 'remember' any breakpoints that it can't initially set, and automatically to set them when it becomes possible. It doesn't always work! However, tick this box to tell gdb to try." - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "Enable pending breakpoints" - }, { - "type": "bool", - "m_label": "Value:", - "m_value": false - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4415, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_checkBoxSetBreakpointsAfterMain" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "Sometimes, some breakpoints won't apply cleanly until after main() has been reached. If this box is ticked, CodeLite won't try to apply them earlier." - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "Apply breakpoints after main function is hit" - }, { - "type": "bool", - "m_label": "Value:", - "m_value": false - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4415, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_checkBreakAtWinMain" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "Every time the debugger runs, set a breakpoint at main(). You may wish to stop then anyway; but it's especially useful when you want to set breakpoints that won't 'take' earlier (however, first try enabling Pending breakpoints, or 'Apply breakpoints after main is hit'" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "Automatically set breakpoint at main" - }, { - "type": "bool", - "m_label": "Value:", - "m_value": false - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4415, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_catchThrow" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "Break when C++ exception is thrown" - }, { - "type": "bool", - "m_label": "Value:", - "m_value": false - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4415, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_raiseOnBpHit" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "Normally, when a breakpoint is hit, you'll want CodeLite to be raise to the top of the window z-order, so that you can examine values of variables etc.\\nHowever you won't always want that to happen; in particular, not if the breakpoint has commands, which end in 'continue'. If so untick this box to stop it happening." - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "Raise CodeLite when a breakpoint is hit" - }, { - "type": "bool", - "m_label": "Value:", - "m_value": true - }], - "m_events": [], - "m_children": [] - }] - }] - }, { - "m_type": 4449, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxLEFT", "wxRIGHT", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "sbSizer4" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["Vertical", "Horizontal"] - }, { - "type": "string", - "m_label": "Label:", - "m_value": "Debugger Tooltip:" - }], - "m_events": [], - "m_children": [{ - "m_type": 4452, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxEXPAND"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "gSizer31" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "# Columns:", - "m_value": "1" - }, { - "type": "string", - "m_label": "# Rows:", - "m_value": "2" - }, { - "type": "string", - "m_label": "Horizontal gap:", - "m_value": "0" - }, { - "type": "string", - "m_label": "Vertical gap:", - "m_value": "0" - }], - "m_events": [], - "m_children": [{ - "m_type": 4415, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_showTooltipsRequiresControl" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "When enabled, codelite will evaluate the expression under the cursor only if the CTRL key is down. \\nOtherwise, it will evaluate it automatically" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "Use CTRL key to evaluate expressions under the cursor" - }, { - "type": "bool", - "m_label": "Value:", - "m_value": true - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4415, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_checkBoxAutoExpand" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "Auto expand items under the cursor" - }, { - "type": "bool", - "m_label": "Value:", - "m_value": false - }], - "m_events": [], - "m_children": [] - }] - }] - }, { - "m_type": 4449, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxLEFT", "wxRIGHT", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "sbSizer3" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 1, - "m_options": ["Vertical", "Horizontal"] - }, { - "type": "string", - "m_label": "Label:", - "m_value": "Display:" - }], - "m_events": [], - "m_children": [{ - "m_type": 4403, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxEXPAND"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "fgSizer21" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "# Columns:", - "m_value": "2" - }, { - "type": "string", - "m_label": "# Rows:", - "m_value": "0" - }, { - "type": "string", - "m_label": "Growable columns:", - "m_value": "" - }, { - "type": "string", - "m_label": "Growable rows:", - "m_value": "" - }, { - "type": "string", - "m_label": "Horizontal gap:", - "m_value": "0" - }, { - "type": "string", - "m_label": "Vertical gap:", - "m_value": "0" - }], - "m_events": [], - "m_children": [{ - "m_type": 4405, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_VERTICAL"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_staticText2" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": " For no limit, set it to 0" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Label:", - "m_value": "Number of elements to display for arrays / strings:" - }, { - "type": "string", - "m_label": "Wrap:", - "m_value": "-1" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4436, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": ["wxSP_ARROW_KEYS"], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_VERTICAL"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_spinCtrlNumElements" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "For no limit, set it to 0" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Value:", - "m_value": "200" - }, { - "type": "string", - "m_label": "Min value:", - "m_value": "0" - }, { - "type": "string", - "m_label": "Max value:", - "m_value": "10000" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4415, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_checkBoxExpandLocals" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "Use 'PreDefined types for the 'Locals' view" - }, { - "type": "bool", - "m_label": "Value:", - "m_value": false - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4454, - "proportion": 1, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxEXPAND"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "Spacer163" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "0,0" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4415, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_VERTICAL"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_checkBoxCharArrAsPtr" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "Auto cast 'char[]' into 'char*'" - }, { - "type": "bool", - "m_label": "Value:", - "m_value": false - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4454, - "proportion": 1, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxEXPAND"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "Spacer165" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "0,0" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4415, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_checkBoxUsePrettyPrinting" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "If ticked, examining the contents of e.g. std::string, wxString, wxArrayString will be much easier" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "Enable GDB Pretty Printing" - }, { - "type": "bool", - "m_label": "Value:", - "m_value": false - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4454, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "Spacer47" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "0,0" - }], - "m_events": [], - "m_children": [] - }] - }] - }] - }] - }] - }] - }, { - "m_type": 4407, - "proportion": 0, - "border": 0, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": ["wxTAB_TRAVERSAL"], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "DbgPageMiscBase" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Title:", - "m_value": "" - }, { - "type": "virtualFolderPicker", - "m_label": "Virtual Folder:", - "m_path": "" - }, { - "type": "choice", - "m_label": "Centre:", - "m_selection": 1, - "m_options": ["", "wxBOTH", "wxVERTICAL", "wxHORIZONTAL"] - }, { - "type": "string", - "m_label": "Inherited Class", - "m_value": "" - }, { - "type": "string", - "m_label": "File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Class Decorator", - "m_value": "" - }], - "m_events": [], - "m_children": [{ - "m_type": 4401, - "proportion": 0, - "border": 0, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "bSizer19" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4408, - "proportion": 1, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": ["wxTAB_TRAVERSAL"], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_panel7" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }], - "m_events": [], - "m_children": [{ - "m_type": 4401, - "proportion": 0, - "border": 0, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "bSizer17" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4449, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxLEFT", "wxRIGHT", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "sbSizer2" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["Vertical", "Horizontal"] - }, { - "type": "string", - "m_label": "Label:", - "m_value": "" - }], - "m_events": [], - "m_children": [{ - "m_type": 4401, - "proportion": 1, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "boxSizer10" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4415, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_checkUseRelativePaths" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "Use file name only for breakpoints (NO full paths)" - }, { - "type": "bool", - "m_label": "Value:", - "m_value": false - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4415, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_checkBoxEnableLog" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "Enable full debugger logging" - }, { - "type": "bool", - "m_label": "Value:", - "m_value": false - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4415, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_checkShowTerminal" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "Show debugger terminal" - }, { - "type": "bool", - "m_label": "Value:", - "m_value": false - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4401, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxEXPAND"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "boxSizer4" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 1, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4405, - "proportion": 1, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_VERTICAL"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_staticText6" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Label:", - "m_value": "Max number of frames to allow in a call-stack" - }, { - "type": "string", - "m_label": "Wrap:", - "m_value": "-1" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4436, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": ["wxSP_ARROW_KEYS"], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "70,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_maxFramesSpinCtrl" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "The maximum number of frames that CodeLite will display in the Call Stack tab. This protects against a very long hang while trying to show 100,000 frames in an infinite recursion situation." - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Value:", - "m_value": "500" - }, { - "type": "string", - "m_label": "Min value:", - "m_value": "1" - }, { - "type": "string", - "m_label": "Max value:", - "m_value": "999999" - }], - "m_events": [], - "m_children": [] - }] - }] - }] - }, { - "m_type": 4449, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxLEFT", "wxRIGHT", "wxEXPAND"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "sbSizer6" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["Vertical", "Horizontal"] - }, { - "type": "string", - "m_label": "Label:", - "m_value": "MinGW / Cygwin:" - }], - "m_events": [], - "m_children": [{ - "m_type": 4452, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxEXPAND"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "gSizer5" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "# Columns:", - "m_value": "1" - }, { - "type": "string", - "m_label": "# Rows:", - "m_value": "0" - }, { - "type": "string", - "m_label": "Horizontal gap:", - "m_value": "0" - }, { - "type": "string", - "m_label": "Vertical gap:", - "m_value": "0" - }], - "m_events": [], - "m_children": [{ - "m_type": 4415, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_checkBoxDebugAssert" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "Break at assertion failure (MinGW only)" - }, { - "type": "bool", - "m_label": "Value:", - "m_value": false - }], - "m_events": [{ - "m_eventName": "wxEVT_COMMAND_CHECKBOX_CLICKED", - "m_eventClass": "wxCommandEvent", - "m_eventHandler": "wxCommandEventHandler", - "m_functionNameAndSignature": "OnDebugAssert(wxCommandEvent& event)", - "m_description": "Process a wxEVT_COMMAND_CHECKBOX_CLICKED event, when the checkbox is clicked.", - "m_noBody": false - }, { - "m_eventName": "wxEVT_UPDATE_UI", - "m_eventClass": "wxUpdateUIEvent", - "m_eventHandler": "wxUpdateUIEventHandler", - "m_functionNameAndSignature": "OnWindowsUI(wxUpdateUIEvent& event)", - "m_description": "Process a wxEVT_UPDATE_UI event", - "m_noBody": false - }], - "m_children": [] - }, { - "m_type": 4405, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxLEFT", "wxRIGHT", "wxTOP", "wxALIGN_CENTER_VERTICAL"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_staticText5" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "Set here the command to use in order to convert cygwin paths into native Windows paths (use $(File) as a place holder for the file name)" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Label:", - "m_value": "Cygwin path conversion command:" - }, { - "type": "string", - "m_label": "Wrap:", - "m_value": "-1" - }], - "m_events": [{ - "m_eventName": "wxEVT_UPDATE_UI", - "m_eventClass": "wxUpdateUIEvent", - "m_eventHandler": "wxUpdateUIEventHandler", - "m_functionNameAndSignature": "OnWindowsUI(wxUpdateUIEvent& event)", - "m_description": "Process a wxEVT_UPDATE_UI event", - "m_noBody": false - }], - "m_children": [] - }, { - "m_type": 4406, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxLEFT", "wxRIGHT", "wxBOTTOM", "wxEXPAND", "wxALIGN_CENTER_VERTICAL"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_textCtrlCygwinPathCommand" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "Set here the command to use in order to convert cygwin paths into native Windows paths (use $(File) as a place holder for the file name)" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Value:", - "m_value": "" - }, { - "type": "string", - "m_label": "Max Length:", - "m_value": "0" - }, { - "type": "bool", - "m_label": "Auto Complete Directories:", - "m_value": false - }, { - "type": "bool", - "m_label": "Auto Complete Files:", - "m_value": false - }], - "m_events": [{ - "m_eventName": "wxEVT_UPDATE_UI", - "m_eventClass": "wxUpdateUIEvent", - "m_eventHandler": "wxUpdateUIEventHandler", - "m_functionNameAndSignature": "OnWindowsUI(wxUpdateUIEvent& event)", - "m_description": "Process a wxEVT_UPDATE_UI event", - "m_noBody": false - }], - "m_children": [] - }] - }] - }] - }] - }] - }] - }, { - "m_type": 4407, - "proportion": 0, - "border": 0, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": ["wxTAB_TRAVERSAL"], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "DbgPagePreDefTypesBase" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Title:", - "m_value": "" - }, { - "type": "virtualFolderPicker", - "m_label": "Virtual Folder:", - "m_path": "" - }, { - "type": "choice", - "m_label": "Centre:", - "m_selection": 1, - "m_options": ["", "wxBOTH", "wxVERTICAL", "wxHORIZONTAL"] - }, { - "type": "string", - "m_label": "Inherited Class", - "m_value": "" - }, { - "type": "string", - "m_label": "File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Class Decorator", - "m_value": "" - }], - "m_events": [], - "m_children": [{ - "m_type": 4401, - "proportion": 0, - "border": 0, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "bSizer21" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4408, - "proportion": 1, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": ["wxTAB_TRAVERSAL"], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_panel6" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }], - "m_events": [], - "m_children": [{ - "m_type": 4401, - "proportion": 0, - "border": 0, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "bSizer16" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4401, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALIGN_RIGHT"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "bSizer14" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 1, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4400, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_VERTICAL"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_NEW" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_buttonNewSet" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "Create new 'PreDefined' set" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "&New" - }, { - "type": "bool", - "m_label": "Default Button", - "m_value": false - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File:", - "m_path": "" - }, { - "type": "string", - "m_label": "Margins:", - "m_value": "2,2" - }], - "m_events": [{ - "m_eventName": "wxEVT_COMMAND_BUTTON_CLICKED", - "m_eventClass": "wxCommandEvent", - "m_eventHandler": "wxCommandEventHandler", - "m_functionNameAndSignature": "OnNewSet(wxCommandEvent& event)", - "m_description": "Process a wxEVT_COMMAND_BUTTON_CLICKED event, when the button is clicked.", - "m_noBody": false - }], - "m_children": [] - }, { - "m_type": 4400, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_DELETE" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_buttonDeleteSet" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "Delete the currently selected set" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "&Delete" - }, { - "type": "bool", - "m_label": "Default Button", - "m_value": false - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File:", - "m_path": "" - }, { - "type": "string", - "m_label": "Margins:", - "m_value": "2,2" - }], - "m_events": [{ - "m_eventName": "wxEVT_COMMAND_BUTTON_CLICKED", - "m_eventClass": "wxCommandEvent", - "m_eventHandler": "wxCommandEventHandler", - "m_functionNameAndSignature": "OnDeleteSet(wxCommandEvent& event)", - "m_description": "Process a wxEVT_COMMAND_BUTTON_CLICKED event, when the button is clicked.", - "m_noBody": false - }, { - "m_eventName": "wxEVT_UPDATE_UI", - "m_eventClass": "wxUpdateUIEvent", - "m_eventHandler": "wxUpdateUIEventHandler", - "m_functionNameAndSignature": "OnDeleteSetUI(wxUpdateUIEvent& event)", - "m_description": "Process a wxEVT_UPDATE_UI event", - "m_noBody": false - }], - "m_children": [] - }] - }, { - "m_type": 4449, - "proportion": 1, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxEXPAND"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "sbSizer5" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["Vertical", "Horizontal"] - }, { - "type": "string", - "m_label": "Label:", - "m_value": "Available sets:" - }], - "m_events": [], - "m_children": [{ - "m_type": 4445, - "proportion": 1, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_notebookPreDefTypes" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }], - "m_events": [{ - "m_eventName": "wxEVT_COMMAND_CHOICEBOOK_PAGE_CHANGED", - "m_eventClass": "wxChoicebookEvent", - "m_eventHandler": "wxChoicebookEventHandler", - "m_functionNameAndSignature": "OnPageChanged(wxChoicebookEvent& event)", - "m_description": "The page selection was changed", - "m_noBody": false - }], - "m_children": [] - }] - }] - }] - }] - }] - }, { - "m_type": 4407, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": ["wxTAB_TRAVERSAL"], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "string", - "m_label": "Size:", - "m_value": "500,300" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "DebuggerDisassemblyTabBase" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Title:", - "m_value": "" - }, { - "type": "virtualFolderPicker", - "m_label": "Virtual Folder:", - "m_path": "CodeLiteIDE:Debugger" - }, { - "type": "choice", - "m_label": "Centre:", - "m_selection": 1, - "m_options": ["", "wxBOTH", "wxVERTICAL", "wxHORIZONTAL"] - }, { - "type": "string", - "m_label": "Inherited Class", - "m_value": "DebuggerDisassemblyTab" - }, { - "type": "string", - "m_label": "File:", - "m_value": "DebuggerDisassemblyTab" - }, { - "type": "string", - "m_label": "Class Decorator", - "m_value": "" - }], - "m_events": [], - "m_children": [{ - "m_type": 4401, - "proportion": 1, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "boxSizer14" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4403, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxEXPAND"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "flexGridSizer22" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "# Columns:", - "m_value": "2" - }, { - "type": "string", - "m_label": "# Rows:", - "m_value": "0" - }, { - "type": "string", - "m_label": "Growable columns:", - "m_value": "1" - }, { - "type": "string", - "m_label": "Growable rows:", - "m_value": "" - }, { - "type": "string", - "m_label": "Horizontal gap:", - "m_value": "0" - }, { - "type": "string", - "m_label": "Vertical gap:", - "m_value": "0" - }], - "m_events": [], - "m_children": [{ - "m_type": 4405, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT", "wxALIGN_CENTER_VERTICAL"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_staticText24" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Label:", - "m_value": "Current function:" - }, { - "type": "string", - "m_label": "Wrap:", - "m_value": "-1" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4406, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": ["wxTE_READONLY"], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_textCtrlCurFunction" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Value:", - "m_value": "" - }, { - "type": "string", - "m_label": "Max Length:", - "m_value": "0" - }, { - "type": "bool", - "m_label": "Auto Complete Directories:", - "m_value": false - }, { - "type": "bool", - "m_label": "Auto Complete Files:", - "m_value": false - }], - "m_events": [], - "m_children": [] - }] - }, { - "m_type": 4447, - "proportion": 1, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": ["wxSP_LIVE_UPDATE", "wxSP_NO_XP_THEME", "wxSP_3DSASH"], - "m_sizerFlags": ["wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_splitter51" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Split Mode:", - "m_selection": 0, - "m_options": ["wxSPLIT_VERTICAL", "wxSPLIT_HORIZONTAL"] - }, { - "type": "string", - "m_label": "Sash Gravity:", - "m_value": "0.5" - }, { - "type": "string", - "m_label": "Minimum Pane Size:", - "m_value": "10" - }, { - "type": "string", - "m_label": "Sash Position:", - "m_value": "0" - }], - "m_events": [], - "m_children": [{ - "m_type": 4448, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": ["wxTAB_TRAVERSAL"], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_splitterPage55" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }], - "m_events": [], - "m_children": [{ - "m_type": 4401, - "proportion": 1, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "boxSizer61" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4466, - "proportion": 1, - "border": 2, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_stc" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Fold Margin", - "m_value": false - }, { - "type": "bool", - "m_label": "Line Number Margin", - "m_value": false - }, { - "type": "bool", - "m_label": "Separator Margin", - "m_value": false - }, { - "type": "bool", - "m_label": "Symbol Margin", - "m_value": true - }, { - "type": "choice", - "m_label": "Wrap Text", - "m_selection": 0, - "m_options": ["None", "Word", "Char"] - }, { - "type": "choice", - "m_label": "Indentation Guides", - "m_selection": 0, - "m_options": ["None", "Real", "Look Forward", "Look Both"] - }, { - "type": "choice", - "m_label": "EOL Mode", - "m_selection": 3, - "m_options": ["CRLF", "CR", "LF", "Default"] - }, { - "type": "bool", - "m_label": "Display EOL Markers", - "m_value": false - }, { - "type": "choice", - "m_label": "Lexer", - "m_selection": 3, - "m_options": ["wxSTC_LEX_ABAQUS", "wxSTC_LEX_ADA", "wxSTC_LEX_APDL", "wxSTC_LEX_ASM", "wxSTC_LEX_ASN1", "wxSTC_LEX_ASYMPTOTE", "wxSTC_LEX_AUTOMATIC", "wxSTC_LEX_AVE", "wxSTC_LEX_BAAN", "wxSTC_LEX_BASH", "wxSTC_LEX_BATCH", "wxSTC_LEX_BLITZBASIC", "wxSTC_LEX_BULLANT", "wxSTC_LEX_CAML", "wxSTC_LEX_CLW", "wxSTC_LEX_CLWNOCASE", "wxSTC_LEX_CMAKE", "wxSTC_LEX_COBOL", "wxSTC_LEX_CONF", "wxSTC_LEX_CONTAINER", "wxSTC_LEX_CPP", "wxSTC_LEX_CPPNOCASE", "wxSTC_LEX_CSOUND", "wxSTC_LEX_CSS", "wxSTC_LEX_D", "wxSTC_LEX_DIFF", "wxSTC_LEX_EIFFEL", "wxSTC_LEX_EIFFELKW", "wxSTC_LEX_ERLANG", "wxSTC_LEX_ERRORLIST", "wxSTC_LEX_ESCRIPT", "wxSTC_LEX_F77", "wxSTC_LEX_FLAGSHIP", "wxSTC_LEX_FORTH", "wxSTC_LEX_FORTRAN", "wxSTC_LEX_FREEBASIC", "wxSTC_LEX_GAP", "wxSTC_LEX_GUI4CLI", "wxSTC_LEX_HASKELL", "wxSTC_LEX_HTML", "wxSTC_LEX_INNOSETUP", "wxSTC_LEX_KIX", "wxSTC_LEX_LATEX", "wxSTC_LEX_LISP", "wxSTC_LEX_LOT", "wxSTC_LEX_LOUT", "wxSTC_LEX_LUA", "wxSTC_LEX_MAGIK", "wxSTC_LEX_MAKEFILE", "wxSTC_LEX_MARKDOWN", "wxSTC_LEX_MATLAB", "wxSTC_LEX_METAPOST", "wxSTC_LEX_MMIXAL", "wxSTC_LEX_MSSQL", "wxSTC_LEX_MYSQL", "wxSTC_LEX_NIMROD", "wxSTC_LEX_NNCRONTAB", "wxSTC_LEX_NSIS", "wxSTC_LEX_NULL", "wxSTC_LEX_OCTAVE", "wxSTC_LEX_OPAL", "wxSTC_LEX_PASCAL", "wxSTC_LEX_PERL", "wxSTC_LEX_PHPSCRIPT", "wxSTC_LEX_PLM", "wxSTC_LEX_PO", "wxSTC_LEX_POV", "wxSTC_LEX_POWERBASIC", "wxSTC_LEX_POWERPRO", "wxSTC_LEX_POWERSHELL", "wxSTC_LEX_PROGRESS", "wxSTC_LEX_PROPERTIES", "wxSTC_LEX_PS", "wxSTC_LEX_PUREBASIC", "wxSTC_LEX_PYTHON", "wxSTC_LEX_R", "wxSTC_LEX_REBOL", "wxSTC_LEX_RUBY", "wxSTC_LEX_SCRIPTOL", "wxSTC_LEX_SMALLTALK", "wxSTC_LEX_SML", "wxSTC_LEX_SORCUS", "wxSTC_LEX_SPECMAN", "wxSTC_LEX_SPICE", "wxSTC_LEX_SQL", "wxSTC_LEX_TACL", "wxSTC_LEX_TADS3", "wxSTC_LEX_TAL", "wxSTC_LEX_TCL", "wxSTC_LEX_TEX", "wxSTC_LEX_VB", "wxSTC_LEX_VBSCRIPT", "wxSTC_LEX_VERILOG", "wxSTC_LEX_VHDL", "wxSTC_LEX_XCODE", "wxSTC_LEX_XML", "wxSTC_LEX_YAML"] - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Keywords Set 1", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Keywords Set 2", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Keywords Set 3", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Keywords Set 4", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Keywords Set 5", - "m_value": "" - }], - "m_events": [{ - "m_eventName": "wxEVT_STC_MARGINCLICK", - "m_eventClass": "wxStyledTextEvent", - "m_eventHandler": "wxStyledTextEventHandler", - "m_functionNameAndSignature": "OnMarginClicked(wxStyledTextEvent& event)", - "m_description": "One of margin was left clicked with the mouse", - "m_noBody": false - }], - "m_children": [] - }] - }] - }, { - "m_type": 4448, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": ["wxTAB_TRAVERSAL"], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_splitterPage59" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }], - "m_events": [], - "m_children": [{ - "m_type": 4401, - "proportion": 1, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "boxSizer63" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4469, - "proportion": 1, - "border": 2, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": ["wxDV_VERT_RULES", "wxDV_ROW_LINES", "wxDV_SINGLE"], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_dvListCtrlRegisters" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }], - "m_events": [], - "m_children": [{ - "m_type": 4472, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "Register" - }, { - "type": "string", - "m_label": "Width:", - "m_value": "80" - }, { - "type": "choice", - "m_label": "Column Type", - "m_selection": 2, - "m_options": ["bitmap", "check", "text", "icontext", "progress", "choice"] - }, { - "type": "multi-string", - "m_label": "Choices:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Alignment", - "m_selection": 0, - "m_options": ["wxALIGN_LEFT", "wxALIGN_RIGHT", "wxALIGN_CENTER"] - }, { - "type": "choice", - "m_label": "Cell Mode", - "m_selection": 0, - "m_options": ["wxDATAVIEW_CELL_INERT", "wxDATAVIEW_CELL_ACTIVATABLE", "wxDATAVIEW_CELL_EDITABLE"] - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4472, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "Value" - }, { - "type": "string", - "m_label": "Width:", - "m_value": "150" - }, { - "type": "choice", - "m_label": "Column Type", - "m_selection": 2, - "m_options": ["bitmap", "check", "text", "icontext", "progress", "choice"] - }, { - "type": "multi-string", - "m_label": "Choices:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Alignment", - "m_selection": 0, - "m_options": ["wxALIGN_LEFT", "wxALIGN_RIGHT", "wxALIGN_CENTER"] - }, { - "type": "choice", - "m_label": "Cell Mode", - "m_selection": 0, - "m_options": ["wxDATAVIEW_CELL_INERT", "wxDATAVIEW_CELL_ACTIVATABLE", "wxDATAVIEW_CELL_EDITABLE"] - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4472, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "Register" - }, { - "type": "string", - "m_label": "Width:", - "m_value": "80" - }, { - "type": "choice", - "m_label": "Column Type", - "m_selection": 2, - "m_options": ["bitmap", "check", "text", "icontext", "progress", "choice"] - }, { - "type": "multi-string", - "m_label": "Choices:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Alignment", - "m_selection": 0, - "m_options": ["wxALIGN_LEFT", "wxALIGN_RIGHT", "wxALIGN_CENTER"] - }, { - "type": "choice", - "m_label": "Cell Mode", - "m_selection": 0, - "m_options": ["wxDATAVIEW_CELL_INERT", "wxDATAVIEW_CELL_ACTIVATABLE", "wxDATAVIEW_CELL_EDITABLE"] - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4472, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "Value" - }, { - "type": "string", - "m_label": "Width:", - "m_value": "150" - }, { - "type": "choice", - "m_label": "Column Type", - "m_selection": 2, - "m_options": ["bitmap", "check", "text", "icontext", "progress", "choice"] - }, { - "type": "multi-string", - "m_label": "Choices:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Alignment", - "m_selection": 0, - "m_options": ["wxALIGN_LEFT", "wxALIGN_RIGHT", "wxALIGN_CENTER"] - }, { - "type": "choice", - "m_label": "Cell Mode", - "m_selection": 0, - "m_options": ["wxDATAVIEW_CELL_INERT", "wxDATAVIEW_CELL_ACTIVATABLE", "wxDATAVIEW_CELL_EDITABLE"] - }], - "m_events": [], - "m_children": [] - }] - }] - }] - }] - }] - }] - }, { - "m_type": 4407, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": ["wxTAB_TRAVERSAL"], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "string", - "m_label": "Size:", - "m_value": "500,300" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "LocalsTableBase" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Title:", - "m_value": "" - }, { - "type": "virtualFolderPicker", - "m_label": "Virtual Folder:", - "m_path": "CodeLiteIDE:Debugger" - }, { - "type": "choice", - "m_label": "Centre:", - "m_selection": 1, - "m_options": ["", "wxBOTH", "wxVERTICAL", "wxHORIZONTAL"] - }, { - "type": "string", - "m_label": "Inherited Class", - "m_value": "DebuggerTreeListCtrlBase" - }, { - "type": "string", - "m_label": "File:", - "m_value": "simpletablebase" - }, { - "type": "string", - "m_label": "Class Decorator", - "m_value": "" - }], - "m_events": [], - "m_children": [{ - "m_type": 4401, - "proportion": 1, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "boxSizer29" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4463, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": ["wxAUI_TB_PLAIN_BACKGROUND", "wxAUI_TB_DEFAULT_STYLE"], - "m_sizerFlags": ["wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_auibar31" - }, { - "type": "string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "string", - "m_label": "Bitmap Size:", - "m_value": "16,16" - }, { - "type": "string", - "m_label": "Margins:", - "m_value": "-1,-1" - }], - "m_events": [], - "m_children": [{ - "m_type": 4462, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_REFRESH" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_toolbarItemRefresh" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "Refresh" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "Refresh" - }, { - "type": "string", - "m_label": "Help String:", - "m_value": "Refresh" - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File:", - "m_path": "../codelite-icons-fresh-farm/toolbars/16/debugger/restart.png" - }, { - "type": "filePicker", - "m_label": "Disabled-Bitmap File", - "m_path": "" - }, { - "type": "choice", - "m_label": "Kind:", - "m_selection": 0, - "m_options": ["normal", "checkable", "radio", "separator", "dropdown"] - }, { - "type": "bool", - "m_label": "Construct the Dropdown Menu:", - "m_value": true - }], - "m_events": [{ - "m_eventName": "wxEVT_COMMAND_TOOL_CLICKED", - "m_eventClass": "wxCommandEvent", - "m_eventHandler": "wxCommandEventHandler", - "m_functionNameAndSignature": "OnRefresh(wxCommandEvent& event)", - "m_description": "Process a wxEVT_COMMAND_TOOL_CLICKED event (a synonym for wxEVT_COMMAND_MENU_SELECTED). Pass the id of the tool", - "m_noBody": false - }, { - "m_eventName": "wxEVT_UPDATE_UI", - "m_eventClass": "wxUpdateUIEvent", - "m_eventHandler": "wxUpdateUIEventHandler", - "m_functionNameAndSignature": "OnRefreshUI(wxUpdateUIEvent& event)", - "m_description": "Process a wxEVT_UPDATE_UI event", - "m_noBody": false - }], - "m_children": [] - }, { - "m_type": 4504, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "m_tbSeparator41" - }, { - "type": "choice", - "m_label": "Kind:", - "m_selection": 0, - "m_options": ["separator"] - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4462, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_NEW" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_toolbarItemNew" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "New..." - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "New..." - }, { - "type": "string", - "m_label": "Help String:", - "m_value": "New..." - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File:", - "m_path": "../icons/add.png" - }, { - "type": "filePicker", - "m_label": "Disabled-Bitmap File", - "m_path": "" - }, { - "type": "choice", - "m_label": "Kind:", - "m_selection": 0, - "m_options": ["normal", "checkable", "radio", "separator", "dropdown"] - }, { - "type": "bool", - "m_label": "Construct the Dropdown Menu:", - "m_value": true - }], - "m_events": [{ - "m_eventName": "wxEVT_COMMAND_TOOL_CLICKED", - "m_eventClass": "wxCommandEvent", - "m_eventHandler": "wxCommandEventHandler", - "m_functionNameAndSignature": "OnNewWatch(wxCommandEvent& event)", - "m_description": "Process a wxEVT_COMMAND_TOOL_CLICKED event (a synonym for wxEVT_COMMAND_MENU_SELECTED). Pass the id of the tool", - "m_noBody": false - }, { - "m_eventName": "wxEVT_UPDATE_UI", - "m_eventClass": "wxUpdateUIEvent", - "m_eventHandler": "wxUpdateUIEventHandler", - "m_functionNameAndSignature": "OnNewWatchUI(wxUpdateUIEvent& event)", - "m_description": "Process a wxEVT_UPDATE_UI event", - "m_noBody": false - }], - "m_children": [] - }, { - "m_type": 4462, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_DELETE" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_toolbarItemDelete" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "Delete" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "Delete" - }, { - "type": "string", - "m_label": "Help String:", - "m_value": "Delete" - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File:", - "m_path": "../icons/delete-line.png" - }, { - "type": "filePicker", - "m_label": "Disabled-Bitmap File", - "m_path": "" - }, { - "type": "choice", - "m_label": "Kind:", - "m_selection": 0, - "m_options": ["normal", "checkable", "radio", "separator", "dropdown"] - }, { - "type": "bool", - "m_label": "Construct the Dropdown Menu:", - "m_value": true - }], - "m_events": [{ - "m_eventName": "wxEVT_COMMAND_TOOL_CLICKED", - "m_eventClass": "wxCommandEvent", - "m_eventHandler": "wxCommandEventHandler", - "m_functionNameAndSignature": "OnDeleteWatch(wxCommandEvent& event)", - "m_description": "Process a wxEVT_COMMAND_TOOL_CLICKED event (a synonym for wxEVT_COMMAND_MENU_SELECTED). Pass the id of the tool", - "m_noBody": false - }, { - "m_eventName": "wxEVT_UPDATE_UI", - "m_eventClass": "wxUpdateUIEvent", - "m_eventHandler": "wxUpdateUIEventHandler", - "m_functionNameAndSignature": "OnDeleteWatchUI(wxUpdateUIEvent& event)", - "m_description": "Process a wxEVT_UPDATE_UI event", - "m_noBody": false - }], - "m_children": [] - }] - }, { - "m_type": 4422, - "proportion": 1, - "border": 2, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": ["wxTR_DEFAULT_STYLE"], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_listTable" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "clTreeListCtrl" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "cl_treelistctrl.h" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "wxTR_HIDE_ROOT|wxTR_COLUMN_LINES|wxTR_ROW_LINES|wxTR_FULL_ROW_HIGHLIGHT|wxTR_EDIT_LABELS|wxTR_HAS_BUTTONS" - }], - "m_events": [{ - "m_eventName": "wxEVT_COMMAND_TREE_BEGIN_LABEL_EDIT", - "m_eventClass": "wxTreeEvent", - "m_eventHandler": "wxTreeEventHandler", - "m_functionNameAndSignature": "OnListEditLabelBegin(wxTreeEvent& event)", - "m_description": "Begin editing a label. This can be prevented by calling Veto().", - "m_noBody": false - }, { - "m_eventName": "wxEVT_COMMAND_TREE_END_LABEL_EDIT", - "m_eventClass": "wxTreeEvent", - "m_eventHandler": "wxTreeEventHandler", - "m_functionNameAndSignature": "OnListEditLabelEnd(wxTreeEvent& event)", - "m_description": "The user has finished editing a label. This can be prevented by calling Veto().", - "m_noBody": false - }, { - "m_eventName": "wxEVT_COMMAND_TREE_ITEM_MENU", - "m_eventClass": "wxTreeEvent", - "m_eventHandler": "wxTreeEventHandler", - "m_functionNameAndSignature": "OnItemRightClick(wxTreeEvent& event)", - "m_description": "The context menu for the selected item has been requested,\neither by a right click or by using the menu key.", - "m_noBody": false - }, { - "m_eventName": "wxEVT_COMMAND_TREE_KEY_DOWN", - "m_eventClass": "wxTreeEvent", - "m_eventHandler": "wxTreeEventHandler", - "m_functionNameAndSignature": "OnListKeyDown(wxTreeEvent& event)", - "m_description": "A key has been pressed.", - "m_noBody": false - }, { - "m_eventName": "wxEVT_COMMAND_TREE_ITEM_EXPANDING", - "m_eventClass": "wxTreeEvent", - "m_eventHandler": "wxTreeEventHandler", - "m_functionNameAndSignature": "OnItemExpanding(wxTreeEvent& event)", - "m_description": "The item is being expanded. This can be prevented by calling Veto().", - "m_noBody": false - }], - "m_children": [] - }] - }] - }] + "metadata": { + "m_generatedFilesDir": ".", + "m_objCounter": 67, + "m_includeFiles": [], + "m_bitmapFunction": "wxCrafter6v4fW1InitBitmapResources", + "m_bitmapsFile": "DebuggerSettingsBaseDlg_liteeditor_bitmaps.cpp", + "m_GenerateCodeTypes": 6370085, + "m_outputFileName": "debuggersettingsbasedlg", + "m_firstWindowId": 7333, + "m_useEnum": true, + "m_templateClasses": [] + }, + "windows": [{ + "m_type": 4421, + "proportion": 0, + "border": 0, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": ["wxDEFAULT_DIALOG_STYLE", "wxRESIZE_BORDER"], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "DebuggerSettingsBaseDlg" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Enable Window Persistency:", + "m_value": true + }, { + "type": "string", + "m_label": "Title:", + "m_value": "Debugger Settings" + }, { + "type": "virtualFolderPicker", + "m_label": "Virtual Folder:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Centre:", + "m_selection": 0, + "m_options": ["", "wxBOTH", "wxVERTICAL", "wxHORIZONTAL"] + }, { + "type": "string", + "m_label": "Inherited Class", + "m_value": "" + }, { + "type": "string", + "m_label": "File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Class Decorator", + "m_value": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (16x16) :", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (32x32) :", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (64x64) :", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (128x128):", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (256x256):", + "m_path": "" + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 0, + "border": 0, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "bSizer1" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4446, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxBK_DEFAULT"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_treebook2" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4401, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_HORIZONTAL"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "bSizer2" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 1, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4400, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_OK" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_buttonOK" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "&OK" + }, { + "type": "bool", + "m_label": "Default Button", + "m_value": true + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Direction", + "m_selection": 0, + "m_options": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"] + }, { + "type": "string", + "m_label": "Margins:", + "m_value": "2,2" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4400, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_CANCEL" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_buttonCancel" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "&Cancel" + }, { + "type": "bool", + "m_label": "Default Button", + "m_value": false + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Direction", + "m_selection": 0, + "m_options": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"] + }, { + "type": "string", + "m_label": "Margins:", + "m_value": "2,2" + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_BUTTON_CLICKED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnButtonCancel(wxCommandEvent& event)", + "m_description": "Process a wxEVT_COMMAND_BUTTON_CLICKED event, when the button is clicked.", + "m_noBody": false + }], + "m_children": [] + }] + }] + }] + }, { + "m_type": 4407, + "proportion": 0, + "border": 0, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": ["wxTAB_TRAVERSAL"], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "DbgPageStartupCmdsBase" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Title:", + "m_value": "" + }, { + "type": "virtualFolderPicker", + "m_label": "Virtual Folder:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Centre:", + "m_selection": 1, + "m_options": ["", "wxBOTH", "wxVERTICAL", "wxHORIZONTAL"] + }, { + "type": "string", + "m_label": "Inherited Class", + "m_value": "" + }, { + "type": "string", + "m_label": "File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Class Decorator", + "m_value": "" + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 0, + "border": 0, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "bSizer7" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4406, + "proportion": 1, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": ["wxTE_RICH2", "wxTE_PROCESS_TAB", "wxTE_PROCESS_ENTER", "wxTE_MULTILINE"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_textCtrlStartupCommands" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "wxSYS_ANSI_FIXED_FONT,normal,normal,normal" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Value:", + "m_value": "" + }, { + "type": "string", + "m_label": "Text Hint", + "m_value": "" + }, { + "type": "string", + "m_label": "Max Length:", + "m_value": "0" + }, { + "type": "bool", + "m_label": "Auto Complete Directories:", + "m_value": false + }, { + "type": "bool", + "m_label": "Auto Complete Files:", + "m_value": false + }], + "m_events": [], + "m_children": [] + }] + }] + }, { + "m_type": 4407, + "proportion": 0, + "border": 0, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": ["wxTAB_TRAVERSAL"], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "PreDefinedTypesPageBase" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Title:", + "m_value": "" + }, { + "type": "virtualFolderPicker", + "m_label": "Virtual Folder:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Centre:", + "m_selection": 1, + "m_options": ["", "wxBOTH", "wxVERTICAL", "wxHORIZONTAL"] + }, { + "type": "string", + "m_label": "Inherited Class", + "m_value": "" + }, { + "type": "string", + "m_label": "File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Class Decorator", + "m_value": "" + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 0, + "border": 0, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "bSizer11" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4408, + "proportion": 1, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": ["wxTAB_TRAVERSAL"], + "m_sizerFlags": ["wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_panel2" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 0, + "border": 0, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "bSizer4" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 1, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "bSizer5" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 1, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4413, + "proportion": 1, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": ["wxLC_VRULES", "wxLC_HRULES", "wxLC_SINGLE_SEL", "wxLC_REPORT"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_listCtrl1" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_LIST_ITEM_ACTIVATED", + "m_eventClass": "wxListEvent", + "m_eventHandler": "wxListEventHandler", + "m_functionNameAndSignature": "OnItemActivated(wxListEvent& event)", + "m_description": "The item has been activated (ENTER or double click)", + "m_noBody": false + }, { + "m_eventName": "wxEVT_COMMAND_LIST_ITEM_DESELECTED", + "m_eventClass": "wxListEvent", + "m_eventHandler": "wxListEventHandler", + "m_functionNameAndSignature": "OnItemDeselected(wxListEvent& event)", + "m_description": "The item has been deselected", + "m_noBody": false + }, { + "m_eventName": "wxEVT_COMMAND_LIST_ITEM_SELECTED", + "m_eventClass": "wxListEvent", + "m_eventHandler": "wxListEventHandler", + "m_functionNameAndSignature": "OnItemSelected(wxListEvent& event)", + "m_description": "The item has been selected", + "m_noBody": false + }], + "m_children": [] + }, { + "m_type": 4401, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "bSizer6" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4400, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_buttonNewType" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "&New..." + }, { + "type": "bool", + "m_label": "Default Button", + "m_value": false + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Direction", + "m_selection": 0, + "m_options": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"] + }, { + "type": "string", + "m_label": "Margins:", + "m_value": "2,2" + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_BUTTON_CLICKED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnNewShortcut(wxCommandEvent& event)", + "m_description": "Process a wxEVT_COMMAND_BUTTON_CLICKED event, when the button is clicked.", + "m_noBody": false + }], + "m_children": [] + }, { + "m_type": 4400, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_buttonEdit" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Edit..." + }, { + "type": "bool", + "m_label": "Default Button", + "m_value": false + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Direction", + "m_selection": 0, + "m_options": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"] + }, { + "type": "string", + "m_label": "Margins:", + "m_value": "2,2" + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_BUTTON_CLICKED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnEditShortcut(wxCommandEvent& event)", + "m_description": "Process a wxEVT_COMMAND_BUTTON_CLICKED event, when the button is clicked.", + "m_noBody": false + }], + "m_children": [] + }, { + "m_type": 4400, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_buttonDelete" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "&Delete" + }, { + "type": "bool", + "m_label": "Default Button", + "m_value": false + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Direction", + "m_selection": 0, + "m_options": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"] + }, { + "type": "string", + "m_label": "Margins:", + "m_value": "2,2" + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_BUTTON_CLICKED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnDeleteShortcut(wxCommandEvent& event)", + "m_description": "Process a wxEVT_COMMAND_BUTTON_CLICKED event, when the button is clicked.", + "m_noBody": false + }], + "m_children": [] + }] + }] + }] + }] + }] + }] + }, { + "m_type": 4421, + "proportion": 0, + "border": 0, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": ["wxDEFAULT_DIALOG_STYLE", "wxRESIZE_BORDER"], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "NewPreDefinedSetBaseDlg" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Enable Window Persistency:", + "m_value": true + }, { + "type": "string", + "m_label": "Title:", + "m_value": "Create a new 'PreDefined Types' set..." + }, { + "type": "virtualFolderPicker", + "m_label": "Virtual Folder:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Centre:", + "m_selection": 1, + "m_options": ["", "wxBOTH", "wxVERTICAL", "wxHORIZONTAL"] + }, { + "type": "string", + "m_label": "Inherited Class", + "m_value": "" + }, { + "type": "string", + "m_label": "File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Class Decorator", + "m_value": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (16x16) :", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (32x32) :", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (64x64) :", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (128x128):", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (256x256):", + "m_path": "" + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 0, + "border": 0, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "bSizer17" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4403, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "fgSizer2" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "# Columns:", + "m_value": "2" + }, { + "type": "string", + "m_label": "# Rows:", + "m_value": "0" + }, { + "type": "string", + "m_label": "Growable columns:", + "m_value": "1" + }, { + "type": "string", + "m_label": "Growable rows:", + "m_value": "" + }, { + "type": "string", + "m_label": "Horizontal gap:", + "m_value": "0" + }, { + "type": "string", + "m_label": "Vertical gap:", + "m_value": "0" + }], + "m_events": [], + "m_children": [{ + "m_type": 4405, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT", "wxALIGN_CENTER_VERTICAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_staticText3" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Label:", + "m_value": "Name:" + }, { + "type": "string", + "m_label": "Wrap:", + "m_value": "-1" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4406, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_textCtrlName" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Value:", + "m_value": "" + }, { + "type": "string", + "m_label": "Text Hint", + "m_value": "" + }, { + "type": "string", + "m_label": "Max Length:", + "m_value": "0" + }, { + "type": "bool", + "m_label": "Auto Complete Directories:", + "m_value": false + }, { + "type": "bool", + "m_label": "Auto Complete Files:", + "m_value": false + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4405, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT", "wxALIGN_CENTER_VERTICAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_staticText4" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Label:", + "m_value": "Copy Values From:" + }, { + "type": "string", + "m_label": "Wrap:", + "m_value": "-1" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4411, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_choiceCopyFrom" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Choices:", + "m_value": "" + }, { + "type": "string", + "m_label": "Selection:", + "m_value": "0" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4454, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "Spacer132" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "0,0" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4415, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND", "wxALIGN_CENTER_VERTICAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_checkBoxMakeActive" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Make this 'PreDefined Types' set active" + }, { + "type": "bool", + "m_label": "Value:", + "m_value": false + }], + "m_events": [], + "m_children": [] + }] + }, { + "m_type": 4454, + "proportion": 1, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "Spacer134" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "0,0" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4401, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_HORIZONTAL"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "bSizer18" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 1, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4400, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_OK" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_button9" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "&OK" + }, { + "type": "bool", + "m_label": "Default Button", + "m_value": true + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Direction", + "m_selection": 0, + "m_options": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"] + }, { + "type": "string", + "m_label": "Margins:", + "m_value": "2,2" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4400, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_CANCEL" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_button10" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "&Cancel" + }, { + "type": "bool", + "m_label": "Default Button", + "m_value": false + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Direction", + "m_selection": 0, + "m_options": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"] + }, { + "type": "string", + "m_label": "Margins:", + "m_value": "2,2" + }], + "m_events": [], + "m_children": [] + }] + }] + }] + }, { + "m_type": 4407, + "proportion": 0, + "border": 0, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": ["wxTAB_TRAVERSAL"], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "DbgPageGeneralBase" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Title:", + "m_value": "" + }, { + "type": "virtualFolderPicker", + "m_label": "Virtual Folder:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Centre:", + "m_selection": 1, + "m_options": ["", "wxBOTH", "wxVERTICAL", "wxHORIZONTAL"] + }, { + "type": "string", + "m_label": "Inherited Class", + "m_value": "" + }, { + "type": "string", + "m_label": "File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Class Decorator", + "m_value": "" + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 0, + "border": 0, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "bSizer18" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4408, + "proportion": 1, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_panel6" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 0, + "border": 0, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "bSizer16" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4403, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "flexGridSizer49" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "# Columns:", + "m_value": "3" + }, { + "type": "string", + "m_label": "# Rows:", + "m_value": "0" + }, { + "type": "string", + "m_label": "Growable columns:", + "m_value": "1" + }, { + "type": "string", + "m_label": "Growable rows:", + "m_value": "" + }, { + "type": "string", + "m_label": "Horizontal gap:", + "m_value": "0" + }, { + "type": "string", + "m_label": "Vertical gap:", + "m_value": "0" + }], + "m_events": [], + "m_children": [{ + "m_type": 4405, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT", "wxALIGN_CENTER_VERTICAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_staticText1" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Label:", + "m_value": "Debugger path:" + }, { + "type": "string", + "m_label": "Wrap:", + "m_value": "-1" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4406, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND", "wxALIGN_CENTER_VERTICAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_textCtrDbgPath" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Value:", + "m_value": "" + }, { + "type": "string", + "m_label": "Text Hint", + "m_value": "" + }, { + "type": "string", + "m_label": "Max Length:", + "m_value": "0" + }, { + "type": "bool", + "m_label": "Auto Complete Directories:", + "m_value": false + }, { + "type": "bool", + "m_label": "Auto Complete Files:", + "m_value": false + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4400, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALIGN_LEFT", "wxALIGN_CENTER_VERTICAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_buttonBrowse" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Browse" + }, { + "type": "bool", + "m_label": "Default Button", + "m_value": false + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Direction", + "m_selection": 0, + "m_options": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"] + }, { + "type": "string", + "m_label": "Margins:", + "m_value": "2,2" + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_BUTTON_CLICKED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnBrowse(wxCommandEvent& event)", + "m_description": "Process a wxEVT_COMMAND_BUTTON_CLICKED event, when the button is clicked.", + "m_noBody": false + }], + "m_children": [] + }] + }, { + "m_type": 4449, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxLEFT", "wxRIGHT", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "sbSizer1" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["Vertical", "Horizontal"] + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Options:" + }], + "m_events": [], + "m_children": [{ + "m_type": 4452, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "gSizer3" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "# Columns:", + "m_value": "1" + }, { + "type": "string", + "m_label": "# Rows:", + "m_value": "0" + }, { + "type": "string", + "m_label": "Horizontal gap:", + "m_value": "0" + }, { + "type": "string", + "m_label": "Vertical gap:", + "m_value": "0" + }], + "m_events": [], + "m_children": [{ + "m_type": 4415, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_checkBoxEnablePendingBreakpoints" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "Some breakpoints can't be applied before the program is run, or even later. This is especially a problem when trying to debug inside a library that is dynamically loaded (CodeLite itself contains examples of this).\\n\\ngdb has an option to 'remember' any breakpoints that it can't initially set, and automatically to set them when it becomes possible. It doesn't always work! However, tick this box to tell gdb to try." + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Enable pending breakpoints" + }, { + "type": "bool", + "m_label": "Value:", + "m_value": false + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4415, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_checkBoxSetBreakpointsAfterMain" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "Sometimes, some breakpoints won't apply cleanly until after main() has been reached. If this box is ticked, CodeLite won't try to apply them earlier." + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Apply breakpoints after main function is hit" + }, { + "type": "bool", + "m_label": "Value:", + "m_value": false + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4415, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_checkBreakAtWinMain" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "Every time the debugger runs, set a breakpoint at main(). You may wish to stop then anyway; but it's especially useful when you want to set breakpoints that won't 'take' earlier (however, first try enabling Pending breakpoints, or 'Apply breakpoints after main is hit'" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Automatically set breakpoint at main" + }, { + "type": "bool", + "m_label": "Value:", + "m_value": false + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4415, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_catchThrow" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Break when C++ exception is thrown" + }, { + "type": "bool", + "m_label": "Value:", + "m_value": false + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4415, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_raiseOnBpHit" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "Normally, when a breakpoint is hit, you'll want CodeLite to be raise to the top of the window z-order, so that you can examine values of variables etc.\\nHowever you won't always want that to happen; in particular, not if the breakpoint has commands, which end in 'continue'. If so untick this box to stop it happening." + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Raise CodeLite when a breakpoint is hit" + }, { + "type": "bool", + "m_label": "Value:", + "m_value": true + }], + "m_events": [], + "m_children": [] + }] + }] + }, { + "m_type": 4449, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxLEFT", "wxRIGHT", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "sbSizer4" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["Vertical", "Horizontal"] + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Debugger Tooltip:" + }], + "m_events": [], + "m_children": [{ + "m_type": 4452, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "gSizer31" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "# Columns:", + "m_value": "1" + }, { + "type": "string", + "m_label": "# Rows:", + "m_value": "2" + }, { + "type": "string", + "m_label": "Horizontal gap:", + "m_value": "0" + }, { + "type": "string", + "m_label": "Vertical gap:", + "m_value": "0" + }], + "m_events": [], + "m_children": [{ + "m_type": 4415, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_showTooltipsRequiresControl" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "When enabled, codelite will evaluate the expression under the cursor only if the CTRL key is down. \\nOtherwise, it will evaluate it automatically" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Use CTRL key to evaluate expressions under the cursor" + }, { + "type": "bool", + "m_label": "Value:", + "m_value": true + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4415, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_checkBoxAutoExpand" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Auto expand items under the cursor" + }, { + "type": "bool", + "m_label": "Value:", + "m_value": false + }], + "m_events": [], + "m_children": [] + }] + }] + }, { + "m_type": 4449, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxLEFT", "wxRIGHT", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "sbSizer3" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 1, + "m_options": ["Vertical", "Horizontal"] + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Display:" + }], + "m_events": [], + "m_children": [{ + "m_type": 4403, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "fgSizer21" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "# Columns:", + "m_value": "2" + }, { + "type": "string", + "m_label": "# Rows:", + "m_value": "0" + }, { + "type": "string", + "m_label": "Growable columns:", + "m_value": "" + }, { + "type": "string", + "m_label": "Growable rows:", + "m_value": "" + }, { + "type": "string", + "m_label": "Horizontal gap:", + "m_value": "0" + }, { + "type": "string", + "m_label": "Vertical gap:", + "m_value": "0" + }], + "m_events": [], + "m_children": [{ + "m_type": 4405, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_VERTICAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_staticText2" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": " For no limit, set it to 0" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Label:", + "m_value": "Number of elements to display for arrays / strings:" + }, { + "type": "string", + "m_label": "Wrap:", + "m_value": "-1" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4436, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": ["wxSP_ARROW_KEYS"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_VERTICAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_spinCtrlNumElements" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "For no limit, set it to 0" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Value:", + "m_value": "200" + }, { + "type": "string", + "m_label": "Min value:", + "m_value": "0" + }, { + "type": "string", + "m_label": "Max value:", + "m_value": "10000" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4415, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_checkBoxExpandLocals" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Use 'PreDefined types for the 'Locals' view" + }, { + "type": "bool", + "m_label": "Value:", + "m_value": false + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4454, + "proportion": 1, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "Spacer163" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "0,0" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4415, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_VERTICAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_checkBoxCharArrAsPtr" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Auto cast 'char[]' into 'char*'" + }, { + "type": "bool", + "m_label": "Value:", + "m_value": false + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4454, + "proportion": 1, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "Spacer165" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "0,0" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4415, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_checkBoxUsePrettyPrinting" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "If ticked, examining the contents of e.g. std::string, wxString, wxArrayString will be much easier" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Enable GDB Pretty Printing" + }, { + "type": "bool", + "m_label": "Value:", + "m_value": false + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4454, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "Spacer47" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "0,0" + }], + "m_events": [], + "m_children": [] + }] + }] + }] + }] + }] + }] + }, { + "m_type": 4407, + "proportion": 0, + "border": 0, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": ["wxTAB_TRAVERSAL"], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "DbgPageMiscBase" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Title:", + "m_value": "" + }, { + "type": "virtualFolderPicker", + "m_label": "Virtual Folder:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Centre:", + "m_selection": 1, + "m_options": ["", "wxBOTH", "wxVERTICAL", "wxHORIZONTAL"] + }, { + "type": "string", + "m_label": "Inherited Class", + "m_value": "" + }, { + "type": "string", + "m_label": "File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Class Decorator", + "m_value": "" + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 0, + "border": 0, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "bSizer19" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4408, + "proportion": 1, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": ["wxTAB_TRAVERSAL"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_panel7" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 0, + "border": 0, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "bSizer17" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4449, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxLEFT", "wxRIGHT", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "sbSizer2" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["Vertical", "Horizontal"] + }, { + "type": "string", + "m_label": "Label:", + "m_value": "" + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "boxSizer10" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4415, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_checkUseRelativePaths" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Use file name only for breakpoints (NO full paths)" + }, { + "type": "bool", + "m_label": "Value:", + "m_value": false + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4415, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_checkBoxEnableLog" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Enable full debugger logging" + }, { + "type": "bool", + "m_label": "Value:", + "m_value": false + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4415, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_checkShowTerminal" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Show debugger terminal" + }, { + "type": "bool", + "m_label": "Value:", + "m_value": false + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4401, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "boxSizer4" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 1, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4405, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_VERTICAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_staticText6" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Label:", + "m_value": "Max number of frames to allow in a call-stack" + }, { + "type": "string", + "m_label": "Wrap:", + "m_value": "-1" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4436, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxSP_ARROW_KEYS"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "70,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_maxFramesSpinCtrl" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "The maximum number of frames that CodeLite will display in the Call Stack tab. This protects against a very long hang while trying to show 100,000 frames in an infinite recursion situation." + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Value:", + "m_value": "500" + }, { + "type": "string", + "m_label": "Min value:", + "m_value": "1" + }, { + "type": "string", + "m_label": "Max value:", + "m_value": "999999" + }], + "m_events": [], + "m_children": [] + }] + }] + }] + }, { + "m_type": 4449, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxLEFT", "wxRIGHT", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "sbSizer6" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["Vertical", "Horizontal"] + }, { + "type": "string", + "m_label": "Label:", + "m_value": "MinGW / Cygwin:" + }], + "m_events": [], + "m_children": [{ + "m_type": 4452, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "gSizer5" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "# Columns:", + "m_value": "1" + }, { + "type": "string", + "m_label": "# Rows:", + "m_value": "0" + }, { + "type": "string", + "m_label": "Horizontal gap:", + "m_value": "0" + }, { + "type": "string", + "m_label": "Vertical gap:", + "m_value": "0" + }], + "m_events": [], + "m_children": [{ + "m_type": 4415, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_checkBoxDebugAssert" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Break at assertion failure (MinGW only)" + }, { + "type": "bool", + "m_label": "Value:", + "m_value": false + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_CHECKBOX_CLICKED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnDebugAssert(wxCommandEvent& event)", + "m_description": "Process a wxEVT_COMMAND_CHECKBOX_CLICKED event, when the checkbox is clicked.", + "m_noBody": false + }, { + "m_eventName": "wxEVT_UPDATE_UI", + "m_eventClass": "wxUpdateUIEvent", + "m_eventHandler": "wxUpdateUIEventHandler", + "m_functionNameAndSignature": "OnWindowsUI(wxUpdateUIEvent& event)", + "m_description": "Process a wxEVT_UPDATE_UI event", + "m_noBody": false + }], + "m_children": [] + }, { + "m_type": 4405, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxLEFT", "wxRIGHT", "wxTOP", "wxALIGN_CENTER_VERTICAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_staticText5" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "Set here the command to use in order to convert cygwin paths into native Windows paths (use $(File) as a place holder for the file name)" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Label:", + "m_value": "Cygwin path conversion command:" + }, { + "type": "string", + "m_label": "Wrap:", + "m_value": "-1" + }], + "m_events": [{ + "m_eventName": "wxEVT_UPDATE_UI", + "m_eventClass": "wxUpdateUIEvent", + "m_eventHandler": "wxUpdateUIEventHandler", + "m_functionNameAndSignature": "OnWindowsUI(wxUpdateUIEvent& event)", + "m_description": "Process a wxEVT_UPDATE_UI event", + "m_noBody": false + }], + "m_children": [] + }, { + "m_type": 4406, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxLEFT", "wxRIGHT", "wxBOTTOM", "wxEXPAND", "wxALIGN_CENTER_VERTICAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_textCtrlCygwinPathCommand" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "Set here the command to use in order to convert cygwin paths into native Windows paths (use $(File) as a place holder for the file name)" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Value:", + "m_value": "" + }, { + "type": "string", + "m_label": "Text Hint", + "m_value": "" + }, { + "type": "string", + "m_label": "Max Length:", + "m_value": "0" + }, { + "type": "bool", + "m_label": "Auto Complete Directories:", + "m_value": false + }, { + "type": "bool", + "m_label": "Auto Complete Files:", + "m_value": false + }], + "m_events": [{ + "m_eventName": "wxEVT_UPDATE_UI", + "m_eventClass": "wxUpdateUIEvent", + "m_eventHandler": "wxUpdateUIEventHandler", + "m_functionNameAndSignature": "OnWindowsUI(wxUpdateUIEvent& event)", + "m_description": "Process a wxEVT_UPDATE_UI event", + "m_noBody": false + }], + "m_children": [] + }] + }] + }] + }] + }] + }] + }, { + "m_type": 4407, + "proportion": 0, + "border": 0, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": ["wxTAB_TRAVERSAL"], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "DbgPagePreDefTypesBase" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Title:", + "m_value": "" + }, { + "type": "virtualFolderPicker", + "m_label": "Virtual Folder:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Centre:", + "m_selection": 1, + "m_options": ["", "wxBOTH", "wxVERTICAL", "wxHORIZONTAL"] + }, { + "type": "string", + "m_label": "Inherited Class", + "m_value": "" + }, { + "type": "string", + "m_label": "File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Class Decorator", + "m_value": "" + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 0, + "border": 0, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "bSizer21" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4408, + "proportion": 1, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": ["wxTAB_TRAVERSAL"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_panel6" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 0, + "border": 0, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "bSizer16" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALIGN_RIGHT"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "bSizer14" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 1, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4400, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_VERTICAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_NEW" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_buttonNewSet" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "Create new 'PreDefined' set" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "&New" + }, { + "type": "bool", + "m_label": "Default Button", + "m_value": false + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Direction", + "m_selection": 0, + "m_options": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"] + }, { + "type": "string", + "m_label": "Margins:", + "m_value": "2,2" + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_BUTTON_CLICKED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnNewSet(wxCommandEvent& event)", + "m_description": "Process a wxEVT_COMMAND_BUTTON_CLICKED event, when the button is clicked.", + "m_noBody": false + }], + "m_children": [] + }, { + "m_type": 4400, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_DELETE" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_buttonDeleteSet" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "Delete the currently selected set" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "&Delete" + }, { + "type": "bool", + "m_label": "Default Button", + "m_value": false + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Direction", + "m_selection": 0, + "m_options": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"] + }, { + "type": "string", + "m_label": "Margins:", + "m_value": "2,2" + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_BUTTON_CLICKED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnDeleteSet(wxCommandEvent& event)", + "m_description": "Process a wxEVT_COMMAND_BUTTON_CLICKED event, when the button is clicked.", + "m_noBody": false + }, { + "m_eventName": "wxEVT_UPDATE_UI", + "m_eventClass": "wxUpdateUIEvent", + "m_eventHandler": "wxUpdateUIEventHandler", + "m_functionNameAndSignature": "OnDeleteSetUI(wxUpdateUIEvent& event)", + "m_description": "Process a wxEVT_UPDATE_UI event", + "m_noBody": false + }], + "m_children": [] + }] + }, { + "m_type": 4449, + "proportion": 1, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "sbSizer5" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["Vertical", "Horizontal"] + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Available sets:" + }], + "m_events": [], + "m_children": [{ + "m_type": 4445, + "proportion": 1, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_notebookPreDefTypes" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_CHOICEBOOK_PAGE_CHANGED", + "m_eventClass": "wxChoicebookEvent", + "m_eventHandler": "wxChoicebookEventHandler", + "m_functionNameAndSignature": "OnPageChanged(wxChoicebookEvent& event)", + "m_description": "The page selection was changed", + "m_noBody": false + }], + "m_children": [] + }] + }] + }] + }] + }] + }, { + "m_type": 4407, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxTAB_TRAVERSAL"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "string", + "m_label": "Size:", + "m_value": "500,300" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "DebuggerDisassemblyTabBase" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Title:", + "m_value": "" + }, { + "type": "virtualFolderPicker", + "m_label": "Virtual Folder:", + "m_path": "CodeLiteIDE:Debugger" + }, { + "type": "choice", + "m_label": "Centre:", + "m_selection": 1, + "m_options": ["", "wxBOTH", "wxVERTICAL", "wxHORIZONTAL"] + }, { + "type": "string", + "m_label": "Inherited Class", + "m_value": "DebuggerDisassemblyTab" + }, { + "type": "string", + "m_label": "File:", + "m_value": "DebuggerDisassemblyTab" + }, { + "type": "string", + "m_label": "Class Decorator", + "m_value": "" + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "boxSizer14" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4403, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "flexGridSizer22" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "# Columns:", + "m_value": "2" + }, { + "type": "string", + "m_label": "# Rows:", + "m_value": "0" + }, { + "type": "string", + "m_label": "Growable columns:", + "m_value": "1" + }, { + "type": "string", + "m_label": "Growable rows:", + "m_value": "" + }, { + "type": "string", + "m_label": "Horizontal gap:", + "m_value": "0" + }, { + "type": "string", + "m_label": "Vertical gap:", + "m_value": "0" + }], + "m_events": [], + "m_children": [{ + "m_type": 4405, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT", "wxALIGN_CENTER_VERTICAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_staticText24" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Label:", + "m_value": "Current function:" + }, { + "type": "string", + "m_label": "Wrap:", + "m_value": "-1" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4406, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxTE_READONLY"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_textCtrlCurFunction" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Value:", + "m_value": "" + }, { + "type": "string", + "m_label": "Text Hint", + "m_value": "" + }, { + "type": "string", + "m_label": "Max Length:", + "m_value": "0" + }, { + "type": "bool", + "m_label": "Auto Complete Directories:", + "m_value": false + }, { + "type": "bool", + "m_label": "Auto Complete Files:", + "m_value": false + }], + "m_events": [], + "m_children": [] + }] + }, { + "m_type": 4447, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxSP_LIVE_UPDATE", "wxSP_NO_XP_THEME", "wxSP_3DSASH"], + "m_sizerFlags": ["wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_splitter51" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Split Mode:", + "m_selection": 0, + "m_options": ["wxSPLIT_VERTICAL", "wxSPLIT_HORIZONTAL"] + }, { + "type": "string", + "m_label": "Sash Gravity:", + "m_value": "0.5" + }, { + "type": "string", + "m_label": "Minimum Pane Size:", + "m_value": "10" + }, { + "type": "string", + "m_label": "Sash Position:", + "m_value": "0" + }], + "m_events": [], + "m_children": [{ + "m_type": 4448, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxTAB_TRAVERSAL"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_splitterPage55" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "boxSizer61" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4466, + "proportion": 1, + "border": 2, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_stc" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Fold Margin", + "m_value": false + }, { + "type": "bool", + "m_label": "Line Number Margin", + "m_value": false + }, { + "type": "bool", + "m_label": "Separator Margin", + "m_value": false + }, { + "type": "bool", + "m_label": "Symbol Margin", + "m_value": true + }, { + "type": "choice", + "m_label": "Wrap Text", + "m_selection": 0, + "m_options": ["None", "Word", "Char"] + }, { + "type": "choice", + "m_label": "Indentation Guides", + "m_selection": 0, + "m_options": ["None", "Real", "Look Forward", "Look Both"] + }, { + "type": "choice", + "m_label": "EOL Mode", + "m_selection": 3, + "m_options": ["CRLF", "CR", "LF", "Default"] + }, { + "type": "bool", + "m_label": "Display EOL Markers", + "m_value": false + }, { + "type": "choice", + "m_label": "Lexer", + "m_selection": 3, + "m_options": ["wxSTC_LEX_ABAQUS", "wxSTC_LEX_ADA", "wxSTC_LEX_APDL", "wxSTC_LEX_ASM", "wxSTC_LEX_ASN1", "wxSTC_LEX_ASYMPTOTE", "wxSTC_LEX_AUTOMATIC", "wxSTC_LEX_AVE", "wxSTC_LEX_BAAN", "wxSTC_LEX_BASH", "wxSTC_LEX_BATCH", "wxSTC_LEX_BLITZBASIC", "wxSTC_LEX_BULLANT", "wxSTC_LEX_CAML", "wxSTC_LEX_CLW", "wxSTC_LEX_CLWNOCASE", "wxSTC_LEX_CMAKE", "wxSTC_LEX_COBOL", "wxSTC_LEX_CONF", "wxSTC_LEX_CONTAINER", "wxSTC_LEX_CPP", "wxSTC_LEX_CPPNOCASE", "wxSTC_LEX_CSOUND", "wxSTC_LEX_CSS", "wxSTC_LEX_D", "wxSTC_LEX_DIFF", "wxSTC_LEX_EIFFEL", "wxSTC_LEX_EIFFELKW", "wxSTC_LEX_ERLANG", "wxSTC_LEX_ERRORLIST", "wxSTC_LEX_ESCRIPT", "wxSTC_LEX_F77", "wxSTC_LEX_FLAGSHIP", "wxSTC_LEX_FORTH", "wxSTC_LEX_FORTRAN", "wxSTC_LEX_FREEBASIC", "wxSTC_LEX_GAP", "wxSTC_LEX_GUI4CLI", "wxSTC_LEX_HASKELL", "wxSTC_LEX_HTML", "wxSTC_LEX_INNOSETUP", "wxSTC_LEX_KIX", "wxSTC_LEX_LATEX", "wxSTC_LEX_LISP", "wxSTC_LEX_LOT", "wxSTC_LEX_LOUT", "wxSTC_LEX_LUA", "wxSTC_LEX_MAGIK", "wxSTC_LEX_MAKEFILE", "wxSTC_LEX_MARKDOWN", "wxSTC_LEX_MATLAB", "wxSTC_LEX_METAPOST", "wxSTC_LEX_MMIXAL", "wxSTC_LEX_MSSQL", "wxSTC_LEX_MYSQL", "wxSTC_LEX_NIMROD", "wxSTC_LEX_NNCRONTAB", "wxSTC_LEX_NSIS", "wxSTC_LEX_NULL", "wxSTC_LEX_OCTAVE", "wxSTC_LEX_OPAL", "wxSTC_LEX_PASCAL", "wxSTC_LEX_PERL", "wxSTC_LEX_PHPSCRIPT", "wxSTC_LEX_PLM", "wxSTC_LEX_PO", "wxSTC_LEX_POV", "wxSTC_LEX_POWERBASIC", "wxSTC_LEX_POWERPRO", "wxSTC_LEX_POWERSHELL", "wxSTC_LEX_PROGRESS", "wxSTC_LEX_PROPERTIES", "wxSTC_LEX_PS", "wxSTC_LEX_PUREBASIC", "wxSTC_LEX_PYTHON", "wxSTC_LEX_R", "wxSTC_LEX_REBOL", "wxSTC_LEX_RUBY", "wxSTC_LEX_SCRIPTOL", "wxSTC_LEX_SMALLTALK", "wxSTC_LEX_SML", "wxSTC_LEX_SORCUS", "wxSTC_LEX_SPECMAN", "wxSTC_LEX_SPICE", "wxSTC_LEX_SQL", "wxSTC_LEX_TACL", "wxSTC_LEX_TADS3", "wxSTC_LEX_TAL", "wxSTC_LEX_TCL", "wxSTC_LEX_TEX", "wxSTC_LEX_VB", "wxSTC_LEX_VBSCRIPT", "wxSTC_LEX_VERILOG", "wxSTC_LEX_VHDL", "wxSTC_LEX_XCODE", "wxSTC_LEX_XML", "wxSTC_LEX_YAML"] + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Keywords Set 1", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Keywords Set 2", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Keywords Set 3", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Keywords Set 4", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Keywords Set 5", + "m_value": "" + }], + "m_events": [{ + "m_eventName": "wxEVT_STC_MARGINCLICK", + "m_eventClass": "wxStyledTextEvent", + "m_eventHandler": "wxStyledTextEventHandler", + "m_functionNameAndSignature": "OnMarginClicked(wxStyledTextEvent& event)", + "m_description": "One of margin was left clicked with the mouse", + "m_noBody": false + }], + "m_children": [] + }] + }] + }, { + "m_type": 4448, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxTAB_TRAVERSAL"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_splitterPage59" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "boxSizer63" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4469, + "proportion": 1, + "border": 2, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxDV_VERT_RULES", "wxDV_ROW_LINES", "wxDV_SINGLE"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_dvListCtrlRegisters" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }], + "m_events": [], + "m_children": [{ + "m_type": 4472, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "Register" + }, { + "type": "string", + "m_label": "Width:", + "m_value": "80" + }, { + "type": "choice", + "m_label": "Column Type", + "m_selection": 2, + "m_options": ["bitmap", "check", "text", "icontext", "progress", "choice"] + }, { + "type": "multi-string", + "m_label": "Choices:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Alignment", + "m_selection": 0, + "m_options": ["wxALIGN_LEFT", "wxALIGN_RIGHT", "wxALIGN_CENTER"] + }, { + "type": "choice", + "m_label": "Cell Mode", + "m_selection": 0, + "m_options": ["wxDATAVIEW_CELL_INERT", "wxDATAVIEW_CELL_ACTIVATABLE", "wxDATAVIEW_CELL_EDITABLE"] + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4472, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "Value" + }, { + "type": "string", + "m_label": "Width:", + "m_value": "150" + }, { + "type": "choice", + "m_label": "Column Type", + "m_selection": 2, + "m_options": ["bitmap", "check", "text", "icontext", "progress", "choice"] + }, { + "type": "multi-string", + "m_label": "Choices:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Alignment", + "m_selection": 0, + "m_options": ["wxALIGN_LEFT", "wxALIGN_RIGHT", "wxALIGN_CENTER"] + }, { + "type": "choice", + "m_label": "Cell Mode", + "m_selection": 0, + "m_options": ["wxDATAVIEW_CELL_INERT", "wxDATAVIEW_CELL_ACTIVATABLE", "wxDATAVIEW_CELL_EDITABLE"] + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4472, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "Register" + }, { + "type": "string", + "m_label": "Width:", + "m_value": "80" + }, { + "type": "choice", + "m_label": "Column Type", + "m_selection": 2, + "m_options": ["bitmap", "check", "text", "icontext", "progress", "choice"] + }, { + "type": "multi-string", + "m_label": "Choices:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Alignment", + "m_selection": 0, + "m_options": ["wxALIGN_LEFT", "wxALIGN_RIGHT", "wxALIGN_CENTER"] + }, { + "type": "choice", + "m_label": "Cell Mode", + "m_selection": 0, + "m_options": ["wxDATAVIEW_CELL_INERT", "wxDATAVIEW_CELL_ACTIVATABLE", "wxDATAVIEW_CELL_EDITABLE"] + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4472, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "Value" + }, { + "type": "string", + "m_label": "Width:", + "m_value": "150" + }, { + "type": "choice", + "m_label": "Column Type", + "m_selection": 2, + "m_options": ["bitmap", "check", "text", "icontext", "progress", "choice"] + }, { + "type": "multi-string", + "m_label": "Choices:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Alignment", + "m_selection": 0, + "m_options": ["wxALIGN_LEFT", "wxALIGN_RIGHT", "wxALIGN_CENTER"] + }, { + "type": "choice", + "m_label": "Cell Mode", + "m_selection": 0, + "m_options": ["wxDATAVIEW_CELL_INERT", "wxDATAVIEW_CELL_ACTIVATABLE", "wxDATAVIEW_CELL_EDITABLE"] + }], + "m_events": [], + "m_children": [] + }] + }] + }] + }] + }] + }] + }, { + "m_type": 4407, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxTAB_TRAVERSAL"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "string", + "m_label": "Size:", + "m_value": "500,300" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "LocalsTableBase" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Title:", + "m_value": "" + }, { + "type": "virtualFolderPicker", + "m_label": "Virtual Folder:", + "m_path": "CodeLiteIDE:Debugger" + }, { + "type": "choice", + "m_label": "Centre:", + "m_selection": 1, + "m_options": ["", "wxBOTH", "wxVERTICAL", "wxHORIZONTAL"] + }, { + "type": "string", + "m_label": "Inherited Class", + "m_value": "DebuggerTreeListCtrlBase" + }, { + "type": "string", + "m_label": "File:", + "m_value": "simpletablebase" + }, { + "type": "string", + "m_label": "Class Decorator", + "m_value": "" + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "boxSizer29" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4463, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxAUI_TB_PLAIN_BACKGROUND", "wxAUI_TB_DEFAULT_STYLE"], + "m_sizerFlags": ["wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_auibar31" + }, { + "type": "string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "string", + "m_label": "Bitmap Size:", + "m_value": "16,16" + }, { + "type": "string", + "m_label": "Margins:", + "m_value": "-1,-1" + }], + "m_events": [], + "m_children": [{ + "m_type": 4462, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_REFRESH" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_toolbarItemRefresh" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Refresh" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "Refresh" + }, { + "type": "string", + "m_label": "Help String:", + "m_value": "Refresh" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "../codelite-icons-fresh-farm/toolbars/16/debugger/restart.png" + }, { + "type": "filePicker", + "m_label": "Disabled-Bitmap File", + "m_path": "" + }, { + "type": "choice", + "m_label": "Kind:", + "m_selection": 0, + "m_options": ["normal", "checkable", "radio", "separator", "dropdown"] + }, { + "type": "bool", + "m_label": "Construct the Dropdown Menu:", + "m_value": true + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_TOOL_CLICKED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnRefresh(wxCommandEvent& event)", + "m_description": "Process a wxEVT_COMMAND_TOOL_CLICKED event (a synonym for wxEVT_COMMAND_MENU_SELECTED). Pass the id of the tool", + "m_noBody": false + }, { + "m_eventName": "wxEVT_UPDATE_UI", + "m_eventClass": "wxUpdateUIEvent", + "m_eventHandler": "wxUpdateUIEventHandler", + "m_functionNameAndSignature": "OnRefreshUI(wxUpdateUIEvent& event)", + "m_description": "Process a wxEVT_UPDATE_UI event", + "m_noBody": false + }], + "m_children": [] + }, { + "m_type": 4462, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_NEW" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_toolbarItemNew" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "New..." + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "New..." + }, { + "type": "string", + "m_label": "Help String:", + "m_value": "New..." + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "../icons/add.png" + }, { + "type": "filePicker", + "m_label": "Disabled-Bitmap File", + "m_path": "" + }, { + "type": "choice", + "m_label": "Kind:", + "m_selection": 0, + "m_options": ["normal", "checkable", "radio", "separator", "dropdown"] + }, { + "type": "bool", + "m_label": "Construct the Dropdown Menu:", + "m_value": true + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_TOOL_CLICKED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnNewWatch(wxCommandEvent& event)", + "m_description": "Process a wxEVT_COMMAND_TOOL_CLICKED event (a synonym for wxEVT_COMMAND_MENU_SELECTED). Pass the id of the tool", + "m_noBody": false + }, { + "m_eventName": "wxEVT_UPDATE_UI", + "m_eventClass": "wxUpdateUIEvent", + "m_eventHandler": "wxUpdateUIEventHandler", + "m_functionNameAndSignature": "OnNewWatchUI(wxUpdateUIEvent& event)", + "m_description": "Process a wxEVT_UPDATE_UI event", + "m_noBody": false + }], + "m_children": [] + }, { + "m_type": 4462, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_DELETE" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_toolbarItemDelete" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Delete" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "Delete" + }, { + "type": "string", + "m_label": "Help String:", + "m_value": "Delete" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "../icons/delete-line.png" + }, { + "type": "filePicker", + "m_label": "Disabled-Bitmap File", + "m_path": "" + }, { + "type": "choice", + "m_label": "Kind:", + "m_selection": 0, + "m_options": ["normal", "checkable", "radio", "separator", "dropdown"] + }, { + "type": "bool", + "m_label": "Construct the Dropdown Menu:", + "m_value": true + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_TOOL_CLICKED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnDeleteWatch(wxCommandEvent& event)", + "m_description": "Process a wxEVT_COMMAND_TOOL_CLICKED event (a synonym for wxEVT_COMMAND_MENU_SELECTED). Pass the id of the tool", + "m_noBody": false + }, { + "m_eventName": "wxEVT_UPDATE_UI", + "m_eventClass": "wxUpdateUIEvent", + "m_eventHandler": "wxUpdateUIEventHandler", + "m_functionNameAndSignature": "OnDeleteWatchUI(wxUpdateUIEvent& event)", + "m_description": "Process a wxEVT_UPDATE_UI event", + "m_noBody": false + }], + "m_children": [] + }, { + "m_type": 4462, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "ID_SORT_LOCALS" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_toolbarItemSort" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Sort Items" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "Sort Items" + }, { + "type": "string", + "m_label": "Help String:", + "m_value": "Sort Items" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "res/sort.png" + }, { + "type": "filePicker", + "m_label": "Disabled-Bitmap File", + "m_path": "" + }, { + "type": "choice", + "m_label": "Kind:", + "m_selection": 0, + "m_options": ["normal", "checkable", "radio", "separator", "dropdown"] + }, { + "type": "bool", + "m_label": "Construct the Dropdown Menu:", + "m_value": true + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_TOOL_CLICKED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnSortItems(wxCommandEvent& event)", + "m_description": "Process a wxEVT_COMMAND_TOOL_CLICKED event (a synonym for wxEVT_COMMAND_MENU_SELECTED). Pass the id of the tool", + "m_noBody": false + }], + "m_children": [] + }] + }, { + "m_type": 4422, + "proportion": 1, + "border": 2, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxTR_DEFAULT_STYLE"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_listTable" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "clTreeListCtrl" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "cl_treelistctrl.h" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "wxTR_HIDE_ROOT|wxTR_COLUMN_LINES|wxTR_ROW_LINES|wxTR_FULL_ROW_HIGHLIGHT|wxTR_EDIT_LABELS|wxTR_HAS_BUTTONS|wxTR_TWIST_BUTTONS|wxTR_NO_LINES" + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_TREE_BEGIN_LABEL_EDIT", + "m_eventClass": "wxTreeEvent", + "m_eventHandler": "wxTreeEventHandler", + "m_functionNameAndSignature": "OnListEditLabelBegin(wxTreeEvent& event)", + "m_description": "Begin editing a label. This can be prevented by calling Veto().", + "m_noBody": false + }, { + "m_eventName": "wxEVT_COMMAND_TREE_END_LABEL_EDIT", + "m_eventClass": "wxTreeEvent", + "m_eventHandler": "wxTreeEventHandler", + "m_functionNameAndSignature": "OnListEditLabelEnd(wxTreeEvent& event)", + "m_description": "The user has finished editing a label. This can be prevented by calling Veto().", + "m_noBody": false + }, { + "m_eventName": "wxEVT_COMMAND_TREE_ITEM_MENU", + "m_eventClass": "wxTreeEvent", + "m_eventHandler": "wxTreeEventHandler", + "m_functionNameAndSignature": "OnItemRightClick(wxTreeEvent& event)", + "m_description": "The context menu for the selected item has been requested,\neither by a right click or by using the menu key.", + "m_noBody": false + }, { + "m_eventName": "wxEVT_COMMAND_TREE_KEY_DOWN", + "m_eventClass": "wxTreeEvent", + "m_eventHandler": "wxTreeEventHandler", + "m_functionNameAndSignature": "OnListKeyDown(wxTreeEvent& event)", + "m_description": "A key has been pressed.", + "m_noBody": false + }, { + "m_eventName": "wxEVT_COMMAND_TREE_ITEM_EXPANDING", + "m_eventClass": "wxTreeEvent", + "m_eventHandler": "wxTreeEventHandler", + "m_functionNameAndSignature": "OnItemExpanding(wxTreeEvent& event)", + "m_description": "The item is being expanded. This can be prevented by calling Veto().", + "m_noBody": false + }], + "m_children": [] + }] + }] + }] } \ No newline at end of file diff -Nru codelite-8.0.1+dfsg2/LiteEditor/DefaultWorkspacePage.cpp codelite-9.0+dfsg/LiteEditor/DefaultWorkspacePage.cpp --- codelite-8.0.1+dfsg2/LiteEditor/DefaultWorkspacePage.cpp 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/DefaultWorkspacePage.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,36 @@ +#include "DefaultWorkspacePage.h" +#include "clFileOrFolderDropTarget.h" +#include "codelite_events.h" +#include "globals.h" +#include +#include "clWorkspaceView.h" +#include +#include "event_notifier.h" +#include +#include "SelectDropTargetDlg.h" + +DefaultWorkspacePage::DefaultWorkspacePage(wxWindow* parent) + : DefaultWorkspacePageBase(parent) +{ + // Allow the PHP view to accepts folders + SetDropTarget(new clFileOrFolderDropTarget(this)); + m_staticBitmap521->SetDropTarget(new clFileOrFolderDropTarget(this)); + Bind(wxEVT_DND_FOLDER_DROPPED, &DefaultWorkspacePage::OnFolderDropped, this); +} + +DefaultWorkspacePage::~DefaultWorkspacePage() +{ + Unbind(wxEVT_DND_FOLDER_DROPPED, &DefaultWorkspacePage::OnFolderDropped, this); +} + +void DefaultWorkspacePage::OnFolderDropped(clCommandEvent& event) +{ + const wxArrayString& folders = event.GetStrings(); + CallAfter(&DefaultWorkspacePage::DoDropFolders, folders); +} + +void DefaultWorkspacePage::DoDropFolders(const wxArrayString& folders) +{ + SelectDropTargetDlg dropTargetDlg(EventNotifier::Get()->TopFrame(), folders); + dropTargetDlg.ShowModal(); +} diff -Nru codelite-8.0.1+dfsg2/LiteEditor/DefaultWorkspacePage.h codelite-9.0+dfsg/LiteEditor/DefaultWorkspacePage.h --- codelite-8.0.1+dfsg2/LiteEditor/DefaultWorkspacePage.h 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/DefaultWorkspacePage.h 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,17 @@ +#ifndef DEFAULTWORKSPACEPAGE_H +#define DEFAULTWORKSPACEPAGE_H + +#include "wxcrafter.h" +#include "cl_command_event.h" + +class DefaultWorkspacePage : public DefaultWorkspacePageBase +{ +protected: + void OnFolderDropped(clCommandEvent& event); + void DoDropFolders(const wxArrayString& folders); + +public: + DefaultWorkspacePage(wxWindow* parent); + virtual ~DefaultWorkspacePage(); +}; +#endif // DEFAULTWORKSPACEPAGE_H diff -Nru codelite-8.0.1+dfsg2/LiteEditor/depend_dlg_page.cpp codelite-9.0+dfsg/LiteEditor/depend_dlg_page.cpp --- codelite-8.0.1+dfsg2/LiteEditor/depend_dlg_page.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/depend_dlg_page.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -142,7 +142,7 @@ void DependenciesPage::Init() { wxString errMsg; - ProjectPtr proj = WorkspaceST::Get()->FindProjectByName(m_projectName, errMsg); + ProjectPtr proj = clCxxWorkspaceST::Get()->FindProjectByName(m_projectName, errMsg); if (proj) { // populate the choice control with the list of available configurations for this project @@ -162,7 +162,7 @@ } // select the active configuration - BuildConfigPtr selBuildConf = WorkspaceST::Get()->GetProjBuildConf(m_projectName, wxEmptyString); + BuildConfigPtr selBuildConf = clCxxWorkspaceST::Get()->GetProjBuildConf(m_projectName, wxEmptyString); if (selBuildConf) { int where = m_choiceProjectConfig->FindString(selBuildConf->GetName()); if (where != wxNOT_FOUND) { @@ -182,7 +182,7 @@ void DependenciesPage::DoPopulateControl(const wxString& configuration) { wxString errMsg; - ProjectPtr proj = WorkspaceST::Get()->FindProjectByName(m_projectName, errMsg); + ProjectPtr proj = clCxxWorkspaceST::Get()->FindProjectByName(m_projectName, errMsg); if(!proj) { return; } diff -Nru codelite-8.0.1+dfsg2/LiteEditor/depend_dlg_page_liteeditor_bitmaps.cpp codelite-9.0+dfsg/LiteEditor/depend_dlg_page_liteeditor_bitmaps.cpp --- codelite-8.0.1+dfsg2/LiteEditor/depend_dlg_page_liteeditor_bitmaps.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/depend_dlg_page_liteeditor_bitmaps.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,28 +1,3 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2014 The CodeLite Team -// file name : depend_dlg_page_liteeditor_bitmaps.cpp -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - // // This file was automatically generated by wxrc, do not edit by hand. // @@ -46,14 +21,13 @@ wxMemoryFSHandler::AddFile(name, data, size) #endif -static size_t xml_res_size_0 = 108; +static size_t xml_res_size_0 = 90; static unsigned char xml_res_file_0[] = { 60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, 110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, 115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, 47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, -47,119,120,120,114,99,34,32,118,101,114,115,105,111,110,61,34,50,46,51, -46,48,46,49,34,47,62,10}; +47,119,120,120,114,99,34,47,62,10}; void wxC312EInitBitmapResources() { diff -Nru codelite-8.0.1+dfsg2/LiteEditor/depend_dlg_page.wxcp codelite-9.0+dfsg/LiteEditor/depend_dlg_page.wxcp --- codelite-8.0.1+dfsg2/LiteEditor/depend_dlg_page.wxcp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/depend_dlg_page.wxcp 2015-10-11 13:56:07.000000000 +0000 @@ -1,1056 +1,1107 @@ { - "metadata": { - "m_generatedFilesDir": ".", - "m_objCounter": 1, - "m_includeFiles": [], - "m_bitmapFunction": "wxC312EInitBitmapResources", - "m_bitmapsFile": "depend_dlg_page_liteeditor_bitmaps.cpp", - "m_GenerateCodeTypes": 2679261, - "m_outputFileName": "buildorderbasepage", - "m_firstWindowId": 1000, - "m_useEnum": false, - "m_templateClasses": [] - }, - "windows": [{ - "m_type": 4407, - "proportion": 0, - "border": 0, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": ["wxTAB_TRAVERSAL"], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "DependenciesPageBase" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Title:", - "m_value": "" - }, { - "type": "virtualFolderPicker", - "m_label": "Virtual Folder:", - "m_path": "" - }, { - "type": "choice", - "m_label": "Centre:", - "m_selection": 1, - "m_options": ["", "wxBOTH", "wxVERTICAL", "wxHORIZONTAL"] - }, { - "type": "string", - "m_label": "Inherited Class", - "m_value": "DependenciesPage" - }, { - "type": "string", - "m_label": "File:", - "m_value": "depend_dlg_page" - }, { - "type": "string", - "m_label": "Class Decorator", - "m_value": "" - }], - "m_events": [], - "m_children": [{ - "m_type": 4401, - "proportion": 0, - "border": 0, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "boxSizer1" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4405, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_staticText3" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Label:", - "m_value": "Select build order for configuration:" - }, { - "type": "string", - "m_label": "Wrap:", - "m_value": "-1" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4411, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_choiceProjectConfig" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Choices:", - "m_value": "" - }, { - "type": "string", - "m_label": "Selection:", - "m_value": "0" - }], - "m_events": [{ - "m_eventName": "wxEVT_COMMAND_CHOICE_SELECTED", - "m_eventClass": "wxCommandEvent", - "m_eventHandler": "wxCommandEventHandler", - "m_functionNameAndSignature": "OnConfigChanged(wxCommandEvent& event)", - "m_description": "Process a wxEVT_COMMAND_CHOICE_SELECTED event, when an item on the list is selected.", - "m_noBody": false - }], - "m_children": [] - }, { - "m_type": 4401, - "proportion": 1, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxEXPAND"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "bSizer3" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 1, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4401, - "proportion": 5, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxEXPAND"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "bSizer31" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4405, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxLEFT", "wxRIGHT", "wxTOP"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_staticText1" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Label:", - "m_value": "Projects:" - }, { - "type": "string", - "m_label": "Wrap:", - "m_value": "-1" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4425, - "proportion": 1, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": ["wxLB_SINGLE"], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_checkListProjectList" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Choices:", - "m_value": "" - }], - "m_events": [{ - "m_eventName": "wxEVT_COMMAND_CHECKLISTBOX_TOGGLED", - "m_eventClass": "wxCommandEvent", - "m_eventHandler": "wxCommandEventHandler", - "m_functionNameAndSignature": "OnCheckListItemToggled(wxCommandEvent& event)", - "m_description": "Process a wxEVT_COMMAND_CHECKLISTBOX_TOGGLED event\nwhen an item in the check list box is checked or unchecked.", - "m_noBody": false - }], - "m_children": [] - }] - }, { - "m_type": 4401, - "proportion": 6, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxEXPAND"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "bSizer4" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4405, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxLEFT", "wxRIGHT", "wxTOP"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_staticText2" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Label:", - "m_value": "Build Order:" - }, { - "type": "string", - "m_label": "Wrap:", - "m_value": "-1" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4401, - "proportion": 1, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxEXPAND"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "bSizer11" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 1, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4401, - "proportion": 1, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxEXPAND"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "bSizer5" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4412, - "proportion": 1, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_listBoxBuildOrder" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Choices:", - "m_value": "" - }, { - "type": "string", - "m_label": "Selection:", - "m_value": "-1" - }], - "m_events": [], - "m_children": [] - }] - }, { - "m_type": 4401, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxEXPAND"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "bSizer6" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4401, - "proportion": 1, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxEXPAND"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "bSizer8" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4400, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_UP" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_buttonUp" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "Up" - }, { - "type": "bool", - "m_label": "Default Button", - "m_value": false - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File:", - "m_path": "" - }, { - "type": "string", - "m_label": "Margins:", - "m_value": "2,2" - }], - "m_events": [{ - "m_eventName": "wxEVT_COMMAND_BUTTON_CLICKED", - "m_eventClass": "wxCommandEvent", - "m_eventHandler": "wxCommandEventHandler", - "m_functionNameAndSignature": "OnMoveUp(wxCommandEvent& event)", - "m_description": "Process a wxEVT_COMMAND_BUTTON_CLICKED event, when the button is clicked.", - "m_noBody": false - }], - "m_children": [] - }, { - "m_type": 4400, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_DOWN" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_buttonDown" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "Down" - }, { - "type": "bool", - "m_label": "Default Button", - "m_value": false - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File:", - "m_path": "" - }, { - "type": "string", - "m_label": "Margins:", - "m_value": "2,2" - }], - "m_events": [{ - "m_eventName": "wxEVT_COMMAND_BUTTON_CLICKED", - "m_eventClass": "wxCommandEvent", - "m_eventHandler": "wxCommandEventHandler", - "m_functionNameAndSignature": "OnMoveDown(wxCommandEvent& event)", - "m_description": "Process a wxEVT_COMMAND_BUTTON_CLICKED event, when the button is clicked.", - "m_noBody": false - }], - "m_children": [] - }] - }, { - "m_type": 4401, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "bSizer7" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4400, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_APPLY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_buttonApply" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "Apply" - }, { - "type": "bool", - "m_label": "Default Button", - "m_value": false - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File:", - "m_path": "" - }, { - "type": "string", - "m_label": "Margins:", - "m_value": "2,2" - }], - "m_events": [{ - "m_eventName": "wxEVT_COMMAND_BUTTON_CLICKED", - "m_eventClass": "wxCommandEvent", - "m_eventHandler": "wxCommandEventHandler", - "m_functionNameAndSignature": "OnApplyButton(wxCommandEvent& event)", - "m_description": "Process a wxEVT_COMMAND_BUTTON_CLICKED event, when the button is clicked.", - "m_noBody": false - }, { - "m_eventName": "wxEVT_UPDATE_UI", - "m_eventClass": "wxUpdateUIEvent", - "m_eventHandler": "wxUpdateUIEventHandler", - "m_functionNameAndSignature": "OnApplyButtonUI(wxUpdateUIEvent& event)", - "m_description": "Process a wxEVT_UPDATE_UI event", - "m_noBody": false - }], - "m_children": [] - }] - }] - }] - }] - }] - }] - }] - }] + "metadata": { + "m_generatedFilesDir": ".", + "m_objCounter": 1, + "m_includeFiles": [], + "m_bitmapFunction": "wxC312EInitBitmapResources", + "m_bitmapsFile": "depend_dlg_page_liteeditor_bitmaps.cpp", + "m_GenerateCodeTypes": 2679261, + "m_outputFileName": "buildorderbasepage", + "m_firstWindowId": 1000, + "m_useEnum": false, + "m_templateClasses": [] + }, + "windows": [{ + "m_type": 4407, + "proportion": 0, + "border": 0, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": ["wxTAB_TRAVERSAL"], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "DependenciesPageBase" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Title:", + "m_value": "" + }, { + "type": "virtualFolderPicker", + "m_label": "Virtual Folder:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Centre:", + "m_selection": 1, + "m_options": ["", "wxBOTH", "wxVERTICAL", "wxHORIZONTAL"] + }, { + "type": "string", + "m_label": "Inherited Class", + "m_value": "DependenciesPage" + }, { + "type": "string", + "m_label": "File:", + "m_value": "depend_dlg_page" + }, { + "type": "string", + "m_label": "Class Decorator", + "m_value": "" + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 0, + "border": 0, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "boxSizer1" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4405, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_staticText3" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Label:", + "m_value": "Select build order for configuration:" + }, { + "type": "string", + "m_label": "Wrap:", + "m_value": "-1" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4411, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_choiceProjectConfig" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Choices:", + "m_value": "" + }, { + "type": "string", + "m_label": "Selection:", + "m_value": "0" + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_CHOICE_SELECTED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnConfigChanged(wxCommandEvent& event)", + "m_description": "Process a wxEVT_COMMAND_CHOICE_SELECTED event, when an item on the list is selected.", + "m_noBody": false + }], + "m_children": [] + }, { + "m_type": 4401, + "proportion": 1, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "bSizer3" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 1, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 5, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "bSizer31" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4405, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxLEFT", "wxRIGHT", "wxTOP"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_staticText1" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Label:", + "m_value": "Projects:" + }, { + "type": "string", + "m_label": "Wrap:", + "m_value": "-1" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4425, + "proportion": 1, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": ["wxLB_SINGLE"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_checkListProjectList" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Choices:", + "m_value": "" + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_CHECKLISTBOX_TOGGLED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnCheckListItemToggled(wxCommandEvent& event)", + "m_description": "Process a wxEVT_COMMAND_CHECKLISTBOX_TOGGLED event\nwhen an item in the check list box is checked or unchecked.", + "m_noBody": false + }], + "m_children": [] + }] + }, { + "m_type": 4401, + "proportion": 6, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "bSizer4" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4405, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxLEFT", "wxRIGHT", "wxTOP"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_staticText2" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Label:", + "m_value": "Build Order:" + }, { + "type": "string", + "m_label": "Wrap:", + "m_value": "-1" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4401, + "proportion": 1, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "bSizer11" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 1, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 1, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "bSizer5" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4412, + "proportion": 1, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_listBoxBuildOrder" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Choices:", + "m_value": "" + }, { + "type": "string", + "m_label": "Selection:", + "m_value": "-1" + }], + "m_events": [], + "m_children": [] + }] + }, { + "m_type": 4401, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "bSizer6" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 1, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "bSizer8" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4400, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_UP" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_buttonUp" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Up" + }, { + "type": "bool", + "m_label": "Default Button", + "m_value": false + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Direction", + "m_selection": 0, + "m_options": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"] + }, { + "type": "string", + "m_label": "Margins:", + "m_value": "2,2" + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_BUTTON_CLICKED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnMoveUp(wxCommandEvent& event)", + "m_description": "Process a wxEVT_COMMAND_BUTTON_CLICKED event, when the button is clicked.", + "m_noBody": false + }], + "m_children": [] + }, { + "m_type": 4400, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_DOWN" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_buttonDown" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Down" + }, { + "type": "bool", + "m_label": "Default Button", + "m_value": false + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Direction", + "m_selection": 0, + "m_options": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"] + }, { + "type": "string", + "m_label": "Margins:", + "m_value": "2,2" + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_BUTTON_CLICKED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnMoveDown(wxCommandEvent& event)", + "m_description": "Process a wxEVT_COMMAND_BUTTON_CLICKED event, when the button is clicked.", + "m_noBody": false + }], + "m_children": [] + }] + }, { + "m_type": 4401, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "bSizer7" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4400, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_APPLY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_buttonApply" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Apply" + }, { + "type": "bool", + "m_label": "Default Button", + "m_value": false + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Direction", + "m_selection": 0, + "m_options": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"] + }, { + "type": "string", + "m_label": "Margins:", + "m_value": "2,2" + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_BUTTON_CLICKED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnApplyButton(wxCommandEvent& event)", + "m_description": "Process a wxEVT_COMMAND_BUTTON_CLICKED event, when the button is clicked.", + "m_noBody": false + }, { + "m_eventName": "wxEVT_UPDATE_UI", + "m_eventClass": "wxUpdateUIEvent", + "m_eventHandler": "wxUpdateUIEventHandler", + "m_functionNameAndSignature": "OnApplyButtonUI(wxUpdateUIEvent& event)", + "m_description": "Process a wxEVT_UPDATE_UI event", + "m_noBody": false + }], + "m_children": [] + }] + }] + }] + }] + }] + }] + }] + }] } \ No newline at end of file diff -Nru codelite-8.0.1+dfsg2/LiteEditor/editorframe.cpp codelite-9.0+dfsg/LiteEditor/editorframe.cpp --- codelite-8.0.1+dfsg2/LiteEditor/editorframe.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/editorframe.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -41,7 +41,10 @@ { m_editor->Reparent( m_mainPanel ); m_mainPanel->GetSizer()->Add(m_editor, 1, wxEXPAND|wxALL, 2); - + // Notebook::RemovePage hides the detached tab + if(!m_editor->IsShown()) { + m_editor->Show(); + } // Load the menubar from XRC and set this frame's menubar to it. wxMenuBar *mb = wxXmlResource::Get()->LoadMenuBar(wxT("main_menu")); diff -Nru codelite-8.0.1+dfsg2/LiteEditor/editor_options_bookmarks_liteeditor_bitmaps.cpp codelite-9.0+dfsg/LiteEditor/editor_options_bookmarks_liteeditor_bitmaps.cpp --- codelite-8.0.1+dfsg2/LiteEditor/editor_options_bookmarks_liteeditor_bitmaps.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/editor_options_bookmarks_liteeditor_bitmaps.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,47 +1,47 @@ -// -// This file was automatically generated by wxrc, do not edit by hand. -// - -#include - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#include -#include -#include -#include - -#if wxCHECK_VERSION(2,8,5) && wxABI_VERSION >= 20805 - #define XRC_ADD_FILE(name, data, size, mime) \ - wxMemoryFSHandler::AddFileWithMimeType(name, data, size, mime) -#else - #define XRC_ADD_FILE(name, data, size, mime) \ - wxMemoryFSHandler::AddFile(name, data, size) -#endif - -static size_t xml_res_size_0 = 90; -static unsigned char xml_res_file_0[] = { -60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, -110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, -115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, -47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, -47,119,120,120,114,99,34,47,62,10}; - -void wxCrafterZg1KYTInitBitmapResources() -{ - - // Check for memory FS. If not present, load the handler: - { - wxMemoryFSHandler::AddFile(wxT("XRC_resource/dummy_file"), wxT("dummy one")); - wxFileSystem fsys; - wxFSFile *f = fsys.OpenFile(wxT("memory:XRC_resource/dummy_file")); - wxMemoryFSHandler::RemoveFile(wxT("XRC_resource/dummy_file")); - if (f) delete f; - else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase); - } - - XRC_ADD_FILE(wxT("XRC_resource/editor_options_bookmarks_liteeditor_bitmaps.cpp$_home_david_devel_git_CL_LiteEditor_editor_options_bookmarks_liteeditor_bitmaps.xrc"), xml_res_file_0, xml_res_size_0, wxT("text/xml")); - wxXmlResource::Get()->Load(wxT("memory:XRC_resource/editor_options_bookmarks_liteeditor_bitmaps.cpp$_home_david_devel_git_CL_LiteEditor_editor_options_bookmarks_liteeditor_bitmaps.xrc")); -} +// +// This file was automatically generated by wxrc, do not edit by hand. +// + +#include + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +#include +#include +#include +#include + +#if wxCHECK_VERSION(2,8,5) && wxABI_VERSION >= 20805 + #define XRC_ADD_FILE(name, data, size, mime) \ + wxMemoryFSHandler::AddFileWithMimeType(name, data, size, mime) +#else + #define XRC_ADD_FILE(name, data, size, mime) \ + wxMemoryFSHandler::AddFile(name, data, size) +#endif + +static size_t xml_res_size_0 = 90; +static unsigned char xml_res_file_0[] = { +60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, +110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, +115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, +47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, +47,119,120,120,114,99,34,47,62,10}; + +void wxCrafterZg1KYTInitBitmapResources() +{ + + // Check for memory FS. If not present, load the handler: + { + wxMemoryFSHandler::AddFile(wxT("XRC_resource/dummy_file"), wxT("dummy one")); + wxFileSystem fsys; + wxFSFile *f = fsys.OpenFile(wxT("memory:XRC_resource/dummy_file")); + wxMemoryFSHandler::RemoveFile(wxT("XRC_resource/dummy_file")); + if (f) delete f; + else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase); + } + + XRC_ADD_FILE(wxT("XRC_resource/editor_options_bookmarks_liteeditor_bitmaps.cpp$C__src_codelite_LiteEditor_editor_options_bookmarks_liteeditor_bitmaps.xrc"), xml_res_file_0, xml_res_size_0, wxT("text/xml")); + wxXmlResource::Get()->Load(wxT("memory:XRC_resource/editor_options_bookmarks_liteeditor_bitmaps.cpp$C__src_codelite_LiteEditor_editor_options_bookmarks_liteeditor_bitmaps.xrc")); +} diff -Nru codelite-8.0.1+dfsg2/LiteEditor/editor_options_caret.cpp codelite-9.0+dfsg/LiteEditor/editor_options_caret.cpp --- codelite-8.0.1+dfsg2/LiteEditor/editor_options_caret.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/editor_options_caret.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,30 +1,6 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2014 The CodeLite Team -// file name : editor_options_caret.cpp -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - ////////////////////////////////////////////////////////////////////// // This file was auto-generated by codelite's wxCrafter Plugin +// wxCrafter project file: editor_options_caret.wxcp // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// @@ -47,10 +23,10 @@ bBitmapLoaded = true; } - mainSizer = new wxBoxSizer(wxVERTICAL); + wxBoxSizer* mainSizer = new wxBoxSizer(wxVERTICAL); this->SetSizer(mainSizer); - fgSizer1 = new wxFlexGridSizer( 0, 2, 0, 0); + wxFlexGridSizer* fgSizer1 = new wxFlexGridSizer(0, 2, 0, 0); fgSizer1->SetFlexibleDirection( wxBOTH ); fgSizer1->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); fgSizer1->AddGrowableCol(1); @@ -63,6 +39,9 @@ m_spinCtrlBlinkPeriod = new wxTextCtrl(this, wxID_ANY, wxT("500"), wxDefaultPosition, wxSize(-1, -1), 0); m_spinCtrlBlinkPeriod->SetToolTip(_("Sets the caret blinking period in millisconds")); + #if wxVERSION_NUMBER >= 3000 + m_spinCtrlBlinkPeriod->SetHint(wxT("")); + #endif fgSizer1->Add(m_spinCtrlBlinkPeriod, 0, wxALL|wxEXPAND|wxALIGN_LEFT, 5); @@ -72,6 +51,9 @@ m_spinCtrlCaretWidth = new wxTextCtrl(this, wxID_ANY, wxT("1"), wxDefaultPosition, wxSize(-1, -1), 0); m_spinCtrlCaretWidth->SetToolTip(_("Set the caret width in pixels")); + #if wxVERSION_NUMBER >= 3000 + m_spinCtrlCaretWidth->SetHint(wxT("")); + #endif fgSizer1->Add(m_spinCtrlCaretWidth, 0, wxALL|wxEXPAND|wxALIGN_LEFT, 5); @@ -83,7 +65,7 @@ m_checkBoxAdjustScrollbarSize = new wxCheckBox(this, wxID_ANY, _("Auto-adjust horizontal scrollbar width"), wxDefaultPosition, wxSize(-1, -1), 0); m_checkBoxAdjustScrollbarSize->SetValue(false); - m_checkBoxAdjustScrollbarSize->SetToolTip(_("Auto adjust the horizontal toolbar to fit to the page content")); + m_checkBoxAdjustScrollbarSize->SetToolTip(_("Auto adjust the horizontal toolbar to fit to the page content")); fgSizer1->Add(m_checkBoxAdjustScrollbarSize, 0, wxALL, 5); @@ -99,11 +81,12 @@ fgSizer1->Add(m_checkBoxCaretUseCamelCase, 0, wxALL, 5); + SetName(wxT("EditorSettingsCaretBase")); SetSizeHints(-1,-1); if ( GetSizer() ) { GetSizer()->Fit(this); } - Centre(wxBOTH); + CentreOnParent(wxBOTH); } EditorSettingsCaretBase::~EditorSettingsCaretBase() diff -Nru codelite-8.0.1+dfsg2/LiteEditor/editor_options_caret.h codelite-9.0+dfsg/LiteEditor/editor_options_caret.h --- codelite-8.0.1+dfsg2/LiteEditor/editor_options_caret.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/editor_options_caret.h 2015-10-11 13:56:07.000000000 +0000 @@ -1,35 +1,11 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2014 The CodeLite Team -// file name : editor_options_caret.h -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - ////////////////////////////////////////////////////////////////////// // This file was auto-generated by codelite's wxCrafter Plugin +// wxCrafter project file: editor_options_caret.wxcp // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// -#ifndef EDITOR_OPTIONS_CARET_BASE_CLASSES_H -#define EDITOR_OPTIONS_CARET_BASE_CLASSES_H +#ifndef CODELITE_LITEEDITOR_EDITOR_OPTIONS_CARET_BASE_CLASSES_H +#define CODELITE_LITEEDITOR_EDITOR_OPTIONS_CARET_BASE_CLASSES_H #include #include @@ -40,12 +16,16 @@ #include #include #include +#if wxVERSION_NUMBER >= 2900 +#include +#include +#include +#include +#endif class EditorSettingsCaretBase : public wxPanel { protected: - wxBoxSizer* mainSizer; - wxFlexGridSizer* fgSizer1; wxStaticText* m_staticText1; wxTextCtrl* m_spinCtrlBlinkPeriod; wxStaticText* m_staticText3; @@ -58,6 +38,14 @@ protected: public: + wxStaticText* GetStaticText1() { return m_staticText1; } + wxTextCtrl* GetSpinCtrlBlinkPeriod() { return m_spinCtrlBlinkPeriod; } + wxStaticText* GetStaticText3() { return m_staticText3; } + wxTextCtrl* GetSpinCtrlCaretWidth() { return m_spinCtrlCaretWidth; } + wxCheckBox* GetCheckBoxScrollBeyondLastLine() { return m_checkBoxScrollBeyondLastLine; } + wxCheckBox* GetCheckBoxAdjustScrollbarSize() { return m_checkBoxAdjustScrollbarSize; } + wxCheckBox* GetCheckBoxCaretOnVirtualSpace() { return m_checkBoxCaretOnVirtualSpace; } + wxCheckBox* GetCheckBoxCaretUseCamelCase() { return m_checkBoxCaretUseCamelCase; } EditorSettingsCaretBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxTAB_TRAVERSAL); virtual ~EditorSettingsCaretBase(); }; diff -Nru codelite-8.0.1+dfsg2/LiteEditor/editor_options_caret_liteeditor_bitmaps.cpp codelite-9.0+dfsg/LiteEditor/editor_options_caret_liteeditor_bitmaps.cpp --- codelite-8.0.1+dfsg2/LiteEditor/editor_options_caret_liteeditor_bitmaps.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/editor_options_caret_liteeditor_bitmaps.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,28 +1,3 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2014 The CodeLite Team -// file name : editor_options_caret_liteeditor_bitmaps.cpp -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - // // This file was automatically generated by wxrc, do not edit by hand. // @@ -46,14 +21,13 @@ wxMemoryFSHandler::AddFile(name, data, size) #endif -static size_t xml_res_size_0 = 108; +static size_t xml_res_size_0 = 90; static unsigned char xml_res_file_0[] = { 60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, 110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, 115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, 47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, -47,119,120,120,114,99,34,32,118,101,114,115,105,111,110,61,34,50,46,51, -46,48,46,49,34,47,62,10}; +47,119,120,120,114,99,34,47,62,10}; void wxC933InitBitmapResources() { @@ -68,6 +42,6 @@ else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase); } - XRC_ADD_FILE(wxT("XRC_resource/editor_options_caret_liteeditor_bitmaps.cpp$C__src_codelitegit_LiteEditor_editor_options_caret_liteeditor_bitmaps.xrc"), xml_res_file_0, xml_res_size_0, wxT("text/xml")); - wxXmlResource::Get()->Load(wxT("memory:XRC_resource/editor_options_caret_liteeditor_bitmaps.cpp$C__src_codelitegit_LiteEditor_editor_options_caret_liteeditor_bitmaps.xrc")); + XRC_ADD_FILE(wxT("XRC_resource/editor_options_caret_liteeditor_bitmaps.cpp$C__src_codelite_LiteEditor_editor_options_caret_liteeditor_bitmaps.xrc"), xml_res_file_0, xml_res_size_0, wxT("text/xml")); + wxXmlResource::Get()->Load(wxT("memory:XRC_resource/editor_options_caret_liteeditor_bitmaps.cpp$C__src_codelite_LiteEditor_editor_options_caret_liteeditor_bitmaps.xrc")); } diff -Nru codelite-8.0.1+dfsg2/LiteEditor/editor_options_caret.wxcp codelite-9.0+dfsg/LiteEditor/editor_options_caret.wxcp --- codelite-8.0.1+dfsg2/LiteEditor/editor_options_caret.wxcp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/editor_options_caret.wxcp 2015-10-11 13:56:07.000000000 +0000 @@ -1,786 +1,802 @@ { - "metadata": { - "m_generatedFilesDir": ".", - "m_objCounter": 2, - "m_includeFiles": [], - "m_bitmapFunction": "wxC933InitBitmapResources", - "m_bitmapsFile": "editor_options_caret_liteeditor_bitmaps.cpp", - "m_GenerateCodeTypes": 2678445, - "m_outputFileName": "", - "m_firstWindowId": 1000, - "m_useEnum": false, - "m_templateClasses": [] - }, - "windows": [{ - "m_type": 4407, - "proportion": 0, - "border": 0, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": ["wxTAB_TRAVERSAL"], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "EditorSettingsCaretBase" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Title:", - "m_value": "" - }, { - "type": "virtualFolderPicker", - "m_label": "Virtual Folder:", - "m_path": "" - }, { - "type": "choice", - "m_label": "Centre:", - "m_selection": 1, - "m_options": ["", "wxBOTH", "wxVERTICAL", "wxHORIZONTAL"] - }, { - "type": "string", - "m_label": "File:", - "m_value": "editorsettingscaret" - }, { - "type": "string", - "m_label": "Inherited Class", - "m_value": "EditorSettingsCaret" - }, { - "type": "string", - "m_label": "Class Decorator", - "m_value": "" - }], - "m_events": [], - "m_children": [{ - "m_type": 4401, - "proportion": 0, - "border": 0, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "mainSizer" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4403, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "fgSizer1" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "# Columns:", - "m_value": "2" - }, { - "type": "string", - "m_label": "# Rows:", - "m_value": "0" - }, { - "type": "string", - "m_label": "Growable columns:", - "m_value": "1" - }, { - "type": "string", - "m_label": "Growable rows:", - "m_value": "" - }, { - "type": "string", - "m_label": "Horizontal gap:", - "m_value": "0" - }, { - "type": "string", - "m_label": "Vertical gap:", - "m_value": "0" - }], - "m_events": [], - "m_children": [{ - "m_type": 4405, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT", "wxALIGN_CENTER_VERTICAL"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_staticText1" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Label:", - "m_value": "Caret blink period (milliseconds):" - }, { - "type": "string", - "m_label": "Wrap:", - "m_value": "-1" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4406, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND", "wxALIGN_LEFT"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_spinCtrlBlinkPeriod" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "Sets the caret blinking period in millisconds" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Value:", - "m_value": "500" - }, { - "type": "string", - "m_label": "Max Length:", - "m_value": "0" - }, { - "type": "bool", - "m_label": "Auto Complete Directories:", - "m_value": false - }, { - "type": "bool", - "m_label": "Auto Complete Files:", - "m_value": false - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4405, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT", "wxALIGN_CENTER_VERTICAL"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_staticText3" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Label:", - "m_value": "Caret width (pixels):" - }, { - "type": "string", - "m_label": "Wrap:", - "m_value": "-1" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4406, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND", "wxALIGN_LEFT"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_spinCtrlCaretWidth" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "Set the caret width in pixels" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Value:", - "m_value": "1" - }, { - "type": "string", - "m_label": "Max Length:", - "m_value": "0" - }, { - "type": "bool", - "m_label": "Auto Complete Directories:", - "m_value": false - }, { - "type": "bool", - "m_label": "Auto Complete Files:", - "m_value": false - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4415, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_checkBoxScrollBeyondLastLine" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "When scrolling with the mouse, the scrolling can go beyond the end of file" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "Allow caret to scroll beyond end of file" - }, { - "type": "bool", - "m_label": "Value:", - "m_value": false - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4415, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_checkBoxAdjustScrollbarSize" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "Auto adjust the horizontal toolbar to fit to the page content" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "Auto-adjust horizontal scrollbar width" - }, { - "type": "bool", - "m_label": "Value:", - "m_value": false - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4415, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_checkBoxCaretOnVirtualSpace" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "Allow the user to place the caret using the mouse beyond the end of line" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "Allow caret to be placed beyond the end of line" - }, { - "type": "bool", - "m_label": "Value:", - "m_value": false - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4415, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_checkBoxCaretUseCamelCase" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "Caret jumps between word segments marked by capitalisation (CamelCase) or underscores" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "Caret jumps between word segments" - }, { - "type": "bool", - "m_label": "Value:", - "m_value": false - }], - "m_events": [], - "m_children": [] - }] - }] - }] - }] -} + "metadata": { + "m_generatedFilesDir": ".", + "m_objCounter": 2, + "m_includeFiles": [], + "m_bitmapFunction": "wxC933InitBitmapResources", + "m_bitmapsFile": "editor_options_caret_liteeditor_bitmaps.cpp", + "m_GenerateCodeTypes": 2678445, + "m_outputFileName": "", + "m_firstWindowId": 1000, + "m_useEnum": false, + "m_templateClasses": [] + }, + "windows": [{ + "m_type": 4407, + "proportion": 0, + "border": 0, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": ["wxTAB_TRAVERSAL"], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "EditorSettingsCaretBase" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Title:", + "m_value": "" + }, { + "type": "virtualFolderPicker", + "m_label": "Virtual Folder:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Centre:", + "m_selection": 1, + "m_options": ["", "wxBOTH", "wxVERTICAL", "wxHORIZONTAL"] + }, { + "type": "string", + "m_label": "Inherited Class", + "m_value": "EditorSettingsCaret" + }, { + "type": "string", + "m_label": "File:", + "m_value": "editorsettingscaret" + }, { + "type": "string", + "m_label": "Class Decorator", + "m_value": "" + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 0, + "border": 0, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "mainSizer" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4403, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "fgSizer1" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "# Columns:", + "m_value": "2" + }, { + "type": "string", + "m_label": "# Rows:", + "m_value": "0" + }, { + "type": "string", + "m_label": "Growable columns:", + "m_value": "1" + }, { + "type": "string", + "m_label": "Growable rows:", + "m_value": "" + }, { + "type": "string", + "m_label": "Horizontal gap:", + "m_value": "0" + }, { + "type": "string", + "m_label": "Vertical gap:", + "m_value": "0" + }], + "m_events": [], + "m_children": [{ + "m_type": 4405, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT", "wxALIGN_CENTER_VERTICAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_staticText1" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Label:", + "m_value": "Caret blink period (milliseconds):" + }, { + "type": "string", + "m_label": "Wrap:", + "m_value": "-1" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4406, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND", "wxALIGN_LEFT"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_spinCtrlBlinkPeriod" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "Sets the caret blinking period in millisconds" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Value:", + "m_value": "500" + }, { + "type": "string", + "m_label": "Text Hint", + "m_value": "" + }, { + "type": "string", + "m_label": "Max Length:", + "m_value": "0" + }, { + "type": "bool", + "m_label": "Auto Complete Directories:", + "m_value": false + }, { + "type": "bool", + "m_label": "Auto Complete Files:", + "m_value": false + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4405, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT", "wxALIGN_CENTER_VERTICAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_staticText3" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Label:", + "m_value": "Caret width (pixels):" + }, { + "type": "string", + "m_label": "Wrap:", + "m_value": "-1" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4406, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND", "wxALIGN_LEFT"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_spinCtrlCaretWidth" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "Set the caret width in pixels" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Value:", + "m_value": "1" + }, { + "type": "string", + "m_label": "Text Hint", + "m_value": "" + }, { + "type": "string", + "m_label": "Max Length:", + "m_value": "0" + }, { + "type": "bool", + "m_label": "Auto Complete Directories:", + "m_value": false + }, { + "type": "bool", + "m_label": "Auto Complete Files:", + "m_value": false + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4415, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_checkBoxScrollBeyondLastLine" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "When scrolling with the mouse, the scrolling can go beyond the end of file" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Allow caret to scroll beyond end of file" + }, { + "type": "bool", + "m_label": "Value:", + "m_value": false + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4415, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_checkBoxAdjustScrollbarSize" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "Auto adjust the horizontal toolbar to fit to the page content" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Auto-adjust horizontal scrollbar width" + }, { + "type": "bool", + "m_label": "Value:", + "m_value": false + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4415, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_checkBoxCaretOnVirtualSpace" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "Allow the user to place the caret using the mouse beyond the end of line" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Allow caret to be placed beyond the end of line" + }, { + "type": "bool", + "m_label": "Value:", + "m_value": false + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4415, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_checkBoxCaretUseCamelCase" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "Caret jumps between word segments marked by capitalisation (CamelCase) or underscores" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Caret jumps between word segments" + }, { + "type": "bool", + "m_label": "Value:", + "m_value": false + }], + "m_events": [], + "m_children": [] + }] + }] + }] + }] +} \ No newline at end of file diff -Nru codelite-8.0.1+dfsg2/LiteEditor/editor_options_comments_base.wxcp codelite-9.0+dfsg/LiteEditor/editor_options_comments_base.wxcp --- codelite-8.0.1+dfsg2/LiteEditor/editor_options_comments_base.wxcp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/editor_options_comments_base.wxcp 2015-10-11 13:56:07.000000000 +0000 @@ -108,6 +108,10 @@ "m_sizerFlags": [], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "mainSizer" }, { @@ -131,6 +135,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer2" }, { @@ -229,6 +237,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "boxSizer1" }, { @@ -395,6 +407,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "boxSizer4" }, { @@ -569,6 +585,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "boxSizer5" }, { @@ -735,6 +755,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_LEFT"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer3" }, { diff -Nru codelite-8.0.1+dfsg2/LiteEditor/editor_options_comments_doxygen_liteeditor_bitmaps.cpp codelite-9.0+dfsg/LiteEditor/editor_options_comments_doxygen_liteeditor_bitmaps.cpp --- codelite-8.0.1+dfsg2/LiteEditor/editor_options_comments_doxygen_liteeditor_bitmaps.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/editor_options_comments_doxygen_liteeditor_bitmaps.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -21,14 +21,13 @@ wxMemoryFSHandler::AddFile(name, data, size) #endif -static size_t xml_res_size_0 = 108; +static size_t xml_res_size_0 = 90; static unsigned char xml_res_file_0[] = { 60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, 110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, 115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, -47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, -47,119,120,120,114,99,34,32,118,101,114,115,105,111,110,61,34,50,46,51, -46,48,46,49,34,47,62,10}; +47,47,119,119,119,46,119,120,119,105,100,103,101,116,115,46,111,114,103, +47,119,120,120,114,99,34,47,62,10}; void wxCB83BInitBitmapResources() { diff -Nru codelite-8.0.1+dfsg2/LiteEditor/editor_options_comments_doxygen.wxcp codelite-9.0+dfsg/LiteEditor/editor_options_comments_doxygen.wxcp --- codelite-8.0.1+dfsg2/LiteEditor/editor_options_comments_doxygen.wxcp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/editor_options_comments_doxygen.wxcp 2015-10-11 13:56:07.000000000 +0000 @@ -108,6 +108,10 @@ "m_sizerFlags": [], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer1" }, { @@ -194,7 +198,14 @@ "m_label": "Set Splitter Left:", "m_value": false }], - "m_events": [], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_BUTTON_CLICKED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnButtonClicked(wxCommandEvent& event)", + "m_description": "Process a wxEVT_COMMAND_BUTTON_CLICKED event, when the custom editor button is clicked.", + "m_noBody": false + }], "m_children": [{ "m_type": 4486, "proportion": 0, @@ -416,12 +427,12 @@ }, { "type": "choice", "m_label": "Property Editor Control", - "m_selection": 0, + "m_selection": 5, "m_options": ["", "TextCtrl", "Choice", "ComboBox", "CheckBox", "TextCtrlAndButton", "ChoiceAndButton", "SpinCtrl", "DatePickerCtrl"] }, { "type": "choice", "m_label": "Kind:", - "m_selection": 5, + "m_selection": 4, "m_options": ["wxPropertyCategory", "wxIntProperty", "wxFloatProperty", "wxBoolProperty", "wxStringProperty", "wxLongStringProperty", "wxDirProperty", "wxArrayStringProperty", "wxFileProperty", "wxEnumProperty", "wxEditEnumProperty", "wxFlagsProperty", "wxDateProperty", "wxImageFileProperty", "wxFontProperty", "wxSystemColourProperty"] }, { "type": "string", @@ -481,12 +492,12 @@ }, { "type": "choice", "m_label": "Property Editor Control", - "m_selection": 0, + "m_selection": 5, "m_options": ["", "TextCtrl", "Choice", "ComboBox", "CheckBox", "TextCtrlAndButton", "ChoiceAndButton", "SpinCtrl", "DatePickerCtrl"] }, { "type": "choice", "m_label": "Kind:", - "m_selection": 5, + "m_selection": 4, "m_options": ["wxPropertyCategory", "wxIntProperty", "wxFloatProperty", "wxBoolProperty", "wxStringProperty", "wxLongStringProperty", "wxDirProperty", "wxArrayStringProperty", "wxFileProperty", "wxEnumProperty", "wxEditEnumProperty", "wxFlagsProperty", "wxDateProperty", "wxImageFileProperty", "wxFontProperty", "wxSystemColourProperty"] }, { "type": "string", diff -Nru codelite-8.0.1+dfsg2/LiteEditor/editor_options_docking_windows_liteeditor_bitmaps.cpp codelite-9.0+dfsg/LiteEditor/editor_options_docking_windows_liteeditor_bitmaps.cpp --- codelite-8.0.1+dfsg2/LiteEditor/editor_options_docking_windows_liteeditor_bitmaps.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/editor_options_docking_windows_liteeditor_bitmaps.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,47 +1,47 @@ -// -// This file was automatically generated by wxrc, do not edit by hand. -// - -#include - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#include -#include -#include -#include - -#if wxCHECK_VERSION(2,8,5) && wxABI_VERSION >= 20805 - #define XRC_ADD_FILE(name, data, size, mime) \ - wxMemoryFSHandler::AddFileWithMimeType(name, data, size, mime) -#else - #define XRC_ADD_FILE(name, data, size, mime) \ - wxMemoryFSHandler::AddFile(name, data, size) -#endif - -static size_t xml_res_size_0 = 90; -static unsigned char xml_res_file_0[] = { -60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, -110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, -115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, -47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, -47,119,120,120,114,99,34,47,62,10}; - -void wxCrafterKZwxilInitBitmapResources() -{ - - // Check for memory FS. If not present, load the handler: - { - wxMemoryFSHandler::AddFile(wxT("XRC_resource/dummy_file"), wxT("dummy one")); - wxFileSystem fsys; - wxFSFile *f = fsys.OpenFile(wxT("memory:XRC_resource/dummy_file")); - wxMemoryFSHandler::RemoveFile(wxT("XRC_resource/dummy_file")); - if (f) delete f; - else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase); - } - - XRC_ADD_FILE(wxT("XRC_resource/editor_options_docking_windows_liteeditor_bitmaps.cpp$_home_eran_devl_codelite_LiteEditor_editor_options_docking_windows_liteeditor_bitmaps.xrc"), xml_res_file_0, xml_res_size_0, wxT("text/xml")); - wxXmlResource::Get()->Load(wxT("memory:XRC_resource/editor_options_docking_windows_liteeditor_bitmaps.cpp$_home_eran_devl_codelite_LiteEditor_editor_options_docking_windows_liteeditor_bitmaps.xrc")); -} +// +// This file was automatically generated by wxrc, do not edit by hand. +// + +#include + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +#include +#include +#include +#include + +#if wxCHECK_VERSION(2,8,5) && wxABI_VERSION >= 20805 + #define XRC_ADD_FILE(name, data, size, mime) \ + wxMemoryFSHandler::AddFileWithMimeType(name, data, size, mime) +#else + #define XRC_ADD_FILE(name, data, size, mime) \ + wxMemoryFSHandler::AddFile(name, data, size) +#endif + +static size_t xml_res_size_0 = 90; +static unsigned char xml_res_file_0[] = { +60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, +110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, +115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, +47,47,119,119,119,46,119,120,119,105,100,103,101,116,115,46,111,114,103, +47,119,120,120,114,99,34,47,62,10}; + +void wxCrafterKZwxilInitBitmapResources() +{ + + // Check for memory FS. If not present, load the handler: + { + wxMemoryFSHandler::AddFile(wxT("XRC_resource/dummy_file"), wxT("dummy one")); + wxFileSystem fsys; + wxFSFile *f = fsys.OpenFile(wxT("memory:XRC_resource/dummy_file")); + wxMemoryFSHandler::RemoveFile(wxT("XRC_resource/dummy_file")); + if (f) delete f; + else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase); + } + + XRC_ADD_FILE(wxT("XRC_resource/editor_options_docking_windows_liteeditor_bitmaps.cpp$C__src_codelite_LiteEditor_editor_options_docking_windows_liteeditor_bitmaps.xrc"), xml_res_file_0, xml_res_size_0, wxT("text/xml")); + wxXmlResource::Get()->Load(wxT("memory:XRC_resource/editor_options_docking_windows_liteeditor_bitmaps.cpp$C__src_codelite_LiteEditor_editor_options_docking_windows_liteeditor_bitmaps.xrc")); +} diff -Nru codelite-8.0.1+dfsg2/LiteEditor/editor_options_docking_windows.wxcp codelite-9.0+dfsg/LiteEditor/editor_options_docking_windows.wxcp --- codelite-8.0.1+dfsg2/LiteEditor/editor_options_docking_windows.wxcp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/editor_options_docking_windows.wxcp 2015-10-11 13:56:07.000000000 +0000 @@ -1,7 +1,7 @@ { "metadata": { "m_generatedFilesDir": ".", - "m_objCounter": 25, + "m_objCounter": 44, "m_includeFiles": [], "m_bitmapFunction": "wxCrafterKZwxilInitBitmapResources", "m_bitmapsFile": "editor_options_docking_windows_liteeditor_bitmaps.cpp", @@ -334,7 +334,7 @@ "gbSpan": ",", "gbPosition": ",", "m_styles": ["wxRA_SPECIFY_COLS"], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_sizerFlags": ["wxLEFT", "wxRIGHT", "wxTOP", "wxEXPAND"], "m_properties": [{ "type": "winid", "m_label": "ID:", @@ -410,94 +410,568 @@ }], "m_events": [], "m_children": [] + }] + }, { + "m_type": 4401, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxLEFT", "wxRIGHT", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" }, { - "m_type": 4416, - "proportion": 1, + "type": "string", + "m_label": "Name:", + "m_value": "boxSizer32" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4449, + "proportion": 0, "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": ["wxRA_SPECIFY_COLS"], + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { "type": "string", "m_label": "Minimum Size:", - "m_value": "" + "m_value": "-1,-1" }, { "type": "string", "m_label": "Name:", - "m_value": "m_radioBoxTabControlStyle" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" + "m_value": "staticBoxSizer27" }, { "type": "string", "m_label": "Style:", "m_value": "" }, { - "type": "string", - "m_label": "Label:", - "m_value": "Tab Control Style:" - }, { - "type": "multi-string", - "m_label": "Choices:", - "m_value": "Glossy;Curved" - }, { - "type": "string", - "m_label": "Selection:", - "m_value": "0" + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["Vertical", "Horizontal"] }, { "type": "string", - "m_label": "Major Dimension:", - "m_value": "1" + "m_label": "Label:", + "m_value": "Tabs" }], "m_events": [], - "m_children": [] + "m_children": [{ + "m_type": 4415, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_checkBoxShowXButton" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "Show close button on active tab" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Show close button on active tab" + }, { + "type": "bool", + "m_label": "Value:", + "m_value": true + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4415, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_checkBoxEditorTabsFollowsTheme" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "The editor tabs matches to the editor colour theme" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "The editor tabs matches to the editor colour theme" + }, { + "type": "bool", + "m_label": "Value:", + "m_value": true + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4403, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "flexGridSizer36" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "# Columns:", + "m_value": "2" + }, { + "type": "string", + "m_label": "# Rows:", + "m_value": "0" + }, { + "type": "string", + "m_label": "Growable columns:", + "m_value": "" + }, { + "type": "string", + "m_label": "Growable rows:", + "m_value": "" + }, { + "type": "string", + "m_label": "Horizontal gap:", + "m_value": "0" + }, { + "type": "string", + "m_label": "Vertical gap:", + "m_value": "0" + }], + "m_events": [], + "m_children": [{ + "m_type": 4405, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT", "wxALIGN_CENTER_VERTICAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_staticText38" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Label:", + "m_value": "Workspace Pane Tabs Orientation:" + }, { + "type": "string", + "m_label": "Wrap:", + "m_value": "-1" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4411, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_VERTICAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_choiceWorkspaceTabsOrientation" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Choices:", + "m_value": "LEFT;RIGHT;TOP;BOTTOM" + }, { + "type": "string", + "m_label": "Selection:", + "m_value": "0" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4405, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT", "wxALIGN_CENTER_VERTICAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_staticText42" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Label:", + "m_value": "Output Pane Tabs Orientation:" + }, { + "type": "string", + "m_label": "Wrap:", + "m_value": "-1" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4411, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_VERTICAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_choiceOutputTabsOrientation" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Choices:", + "m_value": "TOP;BOTTOM" + }, { + "type": "string", + "m_label": "Selection:", + "m_value": "0" + }], + "m_events": [], + "m_children": [] + }] + }] }] }, { "m_type": 4401, "proportion": 0, - "border": 5, + "border": 10, "gbSpan": "1,1", "gbPosition": "0,0", "m_styles": [], diff -Nru codelite-8.0.1+dfsg2/LiteEditor/editor_options_folding.wxcp codelite-9.0+dfsg/LiteEditor/editor_options_folding.wxcp --- codelite-8.0.1+dfsg2/LiteEditor/editor_options_folding.wxcp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/editor_options_folding.wxcp 2015-10-11 13:56:07.000000000 +0000 @@ -108,6 +108,10 @@ "m_sizerFlags": [], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "mainSizer" }, { @@ -206,6 +210,10 @@ "m_sizerFlags": ["wxLEFT", "wxRIGHT", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "sbSizer1" }, { @@ -315,6 +323,10 @@ "m_sizerFlags": ["wxLEFT", "wxRIGHT", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "fgSizer1" }, { diff -Nru codelite-8.0.1+dfsg2/LiteEditor/EditorOptionsGeneralEdit.cpp codelite-9.0+dfsg/LiteEditor/EditorOptionsGeneralEdit.cpp --- codelite-8.0.1+dfsg2/LiteEditor/EditorOptionsGeneralEdit.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/EditorOptionsGeneralEdit.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -13,6 +13,7 @@ m_pgPropSmartQuotes->SetValue(options->GetAutoCompleteDoubleQuotes()); m_pgPropWrapBrackets->SetValue(options->IsWrapSelectionBrackets()); m_pgPropWrapQuotes->SetValue(options->IsWrapSelectionWithQuotes()); + m_pgPropZoomUsingCtrlScroll->SetValue(options->IsMouseZoomEnabled()); } EditorOptionsGeneralEdit::~EditorOptionsGeneralEdit() @@ -31,4 +32,5 @@ options->SetAutoCompleteDoubleQuotes(m_pgPropSmartQuotes->GetValue().GetBool()); options->SetWrapSelectionBrackets(m_pgPropWrapBrackets->GetValue().GetBool()); options->SetWrapSelectionWithQuotes(m_pgPropWrapQuotes->GetValue().GetBool()); + options->SetMouseZoomEnabled(m_pgPropZoomUsingCtrlScroll->GetValue().GetBool()); } diff -Nru codelite-8.0.1+dfsg2/LiteEditor/editoroptionsgeneralguidespanelbase.cpp codelite-9.0+dfsg/LiteEditor/editoroptionsgeneralguidespanelbase.cpp --- codelite-8.0.1+dfsg2/LiteEditor/editoroptionsgeneralguidespanelbase.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/editoroptionsgeneralguidespanelbase.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -94,11 +94,12 @@ m_pgPropDebuggerLineColour->SetValueToUnspecified(); m_pgPropDebuggerLineColour->SetHelpString(_("Debugger line background colour")); + SetName(wxT("EditorOptionsGeneralGuidesPanelBase")); SetSizeHints(500,500); if ( GetSizer() ) { GetSizer()->Fit(this); } - Centre(wxBOTH); + CentreOnParent(wxBOTH); } EditorOptionsGeneralGuidesPanelBase::~EditorOptionsGeneralGuidesPanelBase() @@ -147,11 +148,18 @@ m_pgPropWrapBrackets = m_pgMgrEdit->AppendIn( m_pgProp16, new wxBoolProperty( _("Wrap with brackets"), wxPG_LABEL, 1) ); m_pgPropWrapBrackets->SetHelpString(_("When typing '(' or '[' on a selection, instead of replacing the selection with the character, wrap it with brackets")); + m_pgProp56 = m_pgMgrEdit->Append( new wxPropertyCategory( _("Zoom") ) ); + m_pgProp56->SetHelpString(wxT("")); + + m_pgPropZoomUsingCtrlScroll = m_pgMgrEdit->AppendIn( m_pgProp56, new wxBoolProperty( _("Enable mouse zoom"), wxPG_LABEL, 1) ); + m_pgPropZoomUsingCtrlScroll->SetHelpString(_("When holding Ctrl/CMD + scrolling with the mouse zoom the text")); + + SetName(wxT("EditorOptionsGeneralEditBase")); SetSizeHints(500,300); if ( GetSizer() ) { GetSizer()->Fit(this); } - Centre(wxBOTH); + CentreOnParent(wxBOTH); // Connect events m_pgMgrEdit->Connect(wxEVT_PG_CHANGED, wxPropertyGridEventHandler(EditorOptionsGeneralEditBase::OnValueChanged), NULL, this); diff -Nru codelite-8.0.1+dfsg2/LiteEditor/editoroptionsgeneralguidespanelbase.h codelite-9.0+dfsg/LiteEditor/editoroptionsgeneralguidespanelbase.h --- codelite-8.0.1+dfsg2/LiteEditor/editoroptionsgeneralguidespanelbase.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/editoroptionsgeneralguidespanelbase.h 2015-10-11 13:56:07.000000000 +0000 @@ -4,8 +4,8 @@ // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// -#ifndef EDITOR_OPTIONS_GUIDES_BASE_CLASSES_H -#define EDITOR_OPTIONS_GUIDES_BASE_CLASSES_H +#ifndef CODELITE_LITEEDITOR_EDITOR_OPTIONS_GUIDES_BASE_CLASSES_H +#define CODELITE_LITEEDITOR_EDITOR_OPTIONS_GUIDES_BASE_CLASSES_H #include #include @@ -16,6 +16,12 @@ #include #include #include +#if wxVERSION_NUMBER >= 2900 +#include +#include +#include +#include +#endif class EditorOptionsGeneralGuidesPanelBase : public wxPanel { @@ -41,6 +47,7 @@ protected: public: + wxPropertyGridManager* GetPgMgrGeneral() { return m_pgMgrGeneral; } EditorOptionsGeneralGuidesPanelBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(500,500), long style = wxTAB_TRAVERSAL); virtual ~EditorOptionsGeneralGuidesPanelBase(); }; @@ -57,11 +64,14 @@ wxPGProperty* m_pgProp16; wxPGProperty* m_pgPropWrapQuotes; wxPGProperty* m_pgPropWrapBrackets; + wxPGProperty* m_pgProp56; + wxPGProperty* m_pgPropZoomUsingCtrlScroll; protected: virtual void OnValueChanged(wxPropertyGridEvent& event) { event.Skip(); } public: + wxPropertyGridManager* GetPgMgrEdit() { return m_pgMgrEdit; } EditorOptionsGeneralEditBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(500,300), long style = wxTAB_TRAVERSAL); virtual ~EditorOptionsGeneralEditBase(); }; diff -Nru codelite-8.0.1+dfsg2/LiteEditor/editor_options_guides_liteeditor_bitmaps.cpp codelite-9.0+dfsg/LiteEditor/editor_options_guides_liteeditor_bitmaps.cpp --- codelite-8.0.1+dfsg2/LiteEditor/editor_options_guides_liteeditor_bitmaps.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/editor_options_guides_liteeditor_bitmaps.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,47 +1,47 @@ -// -// This file was automatically generated by wxrc, do not edit by hand. -// - -#include - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#include -#include -#include -#include - -#if wxCHECK_VERSION(2,8,5) && wxABI_VERSION >= 20805 - #define XRC_ADD_FILE(name, data, size, mime) \ - wxMemoryFSHandler::AddFileWithMimeType(name, data, size, mime) -#else - #define XRC_ADD_FILE(name, data, size, mime) \ - wxMemoryFSHandler::AddFile(name, data, size) -#endif - -static size_t xml_res_size_0 = 90; -static unsigned char xml_res_file_0[] = { -60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, -110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, -115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, -47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, -47,119,120,120,114,99,34,47,62,10}; - -void wxC77E7InitBitmapResources() -{ - - // Check for memory FS. If not present, load the handler: - { - wxMemoryFSHandler::AddFile(wxT("XRC_resource/dummy_file"), wxT("dummy one")); - wxFileSystem fsys; - wxFSFile *f = fsys.OpenFile(wxT("memory:XRC_resource/dummy_file")); - wxMemoryFSHandler::RemoveFile(wxT("XRC_resource/dummy_file")); - if (f) delete f; - else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase); - } - - XRC_ADD_FILE(wxT("XRC_resource/editor_options_guides_liteeditor_bitmaps.cpp$C__src_codelite_LiteEditor_editor_options_guides_liteeditor_bitmaps.xrc"), xml_res_file_0, xml_res_size_0, wxT("text/xml")); - wxXmlResource::Get()->Load(wxT("memory:XRC_resource/editor_options_guides_liteeditor_bitmaps.cpp$C__src_codelite_LiteEditor_editor_options_guides_liteeditor_bitmaps.xrc")); -} +// +// This file was automatically generated by wxrc, do not edit by hand. +// + +#include + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +#include +#include +#include +#include + +#if wxCHECK_VERSION(2,8,5) && wxABI_VERSION >= 20805 + #define XRC_ADD_FILE(name, data, size, mime) \ + wxMemoryFSHandler::AddFileWithMimeType(name, data, size, mime) +#else + #define XRC_ADD_FILE(name, data, size, mime) \ + wxMemoryFSHandler::AddFile(name, data, size) +#endif + +static size_t xml_res_size_0 = 90; +static unsigned char xml_res_file_0[] = { +60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, +110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, +115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, +47,47,119,119,119,46,119,120,119,105,100,103,101,116,115,46,111,114,103, +47,119,120,120,114,99,34,47,62,10}; + +void wxC77E7InitBitmapResources() +{ + + // Check for memory FS. If not present, load the handler: + { + wxMemoryFSHandler::AddFile(wxT("XRC_resource/dummy_file"), wxT("dummy one")); + wxFileSystem fsys; + wxFSFile *f = fsys.OpenFile(wxT("memory:XRC_resource/dummy_file")); + wxMemoryFSHandler::RemoveFile(wxT("XRC_resource/dummy_file")); + if (f) delete f; + else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase); + } + + XRC_ADD_FILE(wxT("XRC_resource/editor_options_guides_liteeditor_bitmaps.cpp$_home_eran_devl_codelite_LiteEditor_editor_options_guides_liteeditor_bitmaps.xrc"), xml_res_file_0, xml_res_size_0, wxT("text/xml")); + wxXmlResource::Get()->Load(wxT("memory:XRC_resource/editor_options_guides_liteeditor_bitmaps.cpp$_home_eran_devl_codelite_LiteEditor_editor_options_guides_liteeditor_bitmaps.xrc")); +} diff -Nru codelite-8.0.1+dfsg2/LiteEditor/editor_options_guides.wxcp codelite-9.0+dfsg/LiteEditor/editor_options_guides.wxcp --- codelite-8.0.1+dfsg2/LiteEditor/editor_options_guides.wxcp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/editor_options_guides.wxcp 2015-10-11 13:56:07.000000000 +0000 @@ -1,7 +1,7 @@ { "metadata": { "m_generatedFilesDir": ".", - "m_objCounter": 54, + "m_objCounter": 58, "m_includeFiles": [], "m_bitmapFunction": "wxC77E7InitBitmapResources", "m_bitmapsFile": "editor_options_guides_liteeditor_bitmaps.cpp", @@ -108,6 +108,10 @@ "m_sizerFlags": [], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer1" }, { @@ -1335,6 +1339,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "boxSizer4" }, { @@ -1841,6 +1849,136 @@ }, { "type": "colour", "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "choice", + "m_label": "Property Editor Control", + "m_selection": 0, + "m_options": ["", "TextCtrl", "Choice", "ComboBox", "CheckBox", "TextCtrlAndButton", "ChoiceAndButton", "SpinCtrl", "DatePickerCtrl"] + }, { + "type": "choice", + "m_label": "Kind:", + "m_selection": 3, + "m_options": ["wxPropertyCategory", "wxIntProperty", "wxFloatProperty", "wxBoolProperty", "wxStringProperty", "wxLongStringProperty", "wxDirProperty", "wxArrayStringProperty", "wxFileProperty", "wxEnumProperty", "wxEditEnumProperty", "wxFlagsProperty", "wxDateProperty", "wxImageFileProperty", "wxFontProperty", "wxSystemColourProperty"] + }, { + "type": "string", + "m_label": "String Value", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Choices:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Array Integer Values", + "m_value": "" + }, { + "type": "bool", + "m_label": "Bool Value", + "m_value": true + }, { + "type": "string", + "m_label": "Wildcard", + "m_value": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Initial Colour", + "colour": "" + }], + "m_events": [], + "m_children": [] + }] + }, { + "m_type": 4486, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "m_pgProp56" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Zoom" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "choice", + "m_label": "Property Editor Control", + "m_selection": 0, + "m_options": ["", "TextCtrl", "Choice", "ComboBox", "CheckBox", "TextCtrlAndButton", "ChoiceAndButton", "SpinCtrl", "DatePickerCtrl"] + }, { + "type": "choice", + "m_label": "Kind:", + "m_selection": 0, + "m_options": ["wxPropertyCategory", "wxIntProperty", "wxFloatProperty", "wxBoolProperty", "wxStringProperty", "wxLongStringProperty", "wxDirProperty", "wxArrayStringProperty", "wxFileProperty", "wxEnumProperty", "wxEditEnumProperty", "wxFlagsProperty", "wxDateProperty", "wxImageFileProperty", "wxFontProperty", "wxSystemColourProperty"] + }, { + "type": "string", + "m_label": "String Value", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Choices:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Array Integer Values", + "m_value": "" + }, { + "type": "bool", + "m_label": "Bool Value", + "m_value": true + }, { + "type": "string", + "m_label": "Wildcard", + "m_value": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Initial Colour", + "colour": "" + }], + "m_events": [], + "m_children": [{ + "m_type": 4486, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "m_pgPropZoomUsingCtrlScroll" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Enable mouse zoom" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "When holding Ctrl/CMD + scrolling with the mouse zoom the text" + }, { + "type": "colour", + "m_label": "Bg Colour:", "colour": "" }, { "type": "choice", diff -Nru codelite-8.0.1+dfsg2/LiteEditor/editor_options_terminal_liteeditor_bitmaps.cpp codelite-9.0+dfsg/LiteEditor/editor_options_terminal_liteeditor_bitmaps.cpp --- codelite-8.0.1+dfsg2/LiteEditor/editor_options_terminal_liteeditor_bitmaps.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/editor_options_terminal_liteeditor_bitmaps.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -21,14 +21,13 @@ wxMemoryFSHandler::AddFile(name, data, size) #endif -static size_t xml_res_size_0 = 108; +static size_t xml_res_size_0 = 90; static unsigned char xml_res_file_0[] = { 60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, 110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, 115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, -47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, -47,119,120,120,114,99,34,32,118,101,114,115,105,111,110,61,34,50,46,51, -46,48,46,49,34,47,62,10}; +47,47,119,119,119,46,119,120,119,105,100,103,101,116,115,46,111,114,103, +47,119,120,120,114,99,34,47,62,10}; void wxC575EInitBitmapResources() { diff -Nru codelite-8.0.1+dfsg2/LiteEditor/editor_options_terminal.wxcp codelite-9.0+dfsg/LiteEditor/editor_options_terminal.wxcp --- codelite-8.0.1+dfsg2/LiteEditor/editor_options_terminal.wxcp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/editor_options_terminal.wxcp 2015-10-11 13:56:07.000000000 +0000 @@ -108,6 +108,10 @@ "m_sizerFlags": [], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer1" }, { @@ -197,88 +201,6 @@ "m_events": [], "m_children": [] }, { - "m_type": 4415, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_checkBoxMSWWrapDoubleQuotes" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "Windows only: commands executed with CMD.EXE are wrapped with double quotes\\nThis is often needed to allow executing commands with spaces in their path" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "Windows only: commands executed with CMD.EXE are wrapped with double quotes" - }, { - "type": "bool", - "m_label": "Value:", - "m_value": true - }], - "m_events": [{ - "m_eventName": "wxEVT_UPDATE_UI", - "m_eventClass": "wxUpdateUIEvent", - "m_eventHandler": "wxUpdateUIEventHandler", - "m_functionNameAndSignature": "OnCheckboxmswwrapdoublequotesUpdateUi(wxUpdateUIEvent& event)", - "m_description": "Process a wxEVT_UPDATE_UI event", - "m_noBody": false - }], - "m_children": [] - }, { "m_type": 4405, "proportion": 0, "border": 5, @@ -464,6 +386,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "sbSizer1" }, { @@ -491,6 +417,10 @@ "m_sizerFlags": ["wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "fgSizer1" }, { diff -Nru codelite-8.0.1+dfsg2/LiteEditor/editorsettingsbookmarksbasepanel.h codelite-9.0+dfsg/LiteEditor/editorsettingsbookmarksbasepanel.h --- codelite-8.0.1+dfsg2/LiteEditor/editorsettingsbookmarksbasepanel.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/editorsettingsbookmarksbasepanel.h 2015-10-11 13:56:07.000000000 +0000 @@ -4,8 +4,8 @@ // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// -#ifndef EDITOR_OPTIONS_BOOKMARKS_BASE_CLASSES_H -#define EDITOR_OPTIONS_BOOKMARKS_BASE_CLASSES_H +#ifndef CODELITE_LITEEDITOR_EDITOR_OPTIONS_BOOKMARKS_BASE_CLASSES_H +#define CODELITE_LITEEDITOR_EDITOR_OPTIONS_BOOKMARKS_BASE_CLASSES_H #include #include diff -Nru codelite-8.0.1+dfsg2/LiteEditor/editorsettingscommentsbase.cpp codelite-9.0+dfsg/LiteEditor/editorsettingscommentsbase.cpp --- codelite-8.0.1+dfsg2/LiteEditor/editorsettingscommentsbase.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/editorsettingscommentsbase.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -98,11 +98,12 @@ bSizer3->Add(m_checkBoxAlt, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5); + SetName(wxT("EditorSettingsCommentsBase")); SetSizeHints(-1,-1); if ( GetSizer() ) { GetSizer()->Fit(this); } - Centre(wxBOTH); + CentreOnParent(wxBOTH); } EditorSettingsCommentsBase::~EditorSettingsCommentsBase() diff -Nru codelite-8.0.1+dfsg2/LiteEditor/editorsettingscommentsbase.h codelite-9.0+dfsg/LiteEditor/editorsettingscommentsbase.h --- codelite-8.0.1+dfsg2/LiteEditor/editorsettingscommentsbase.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/editorsettingscommentsbase.h 2015-10-11 13:56:07.000000000 +0000 @@ -4,8 +4,8 @@ // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// -#ifndef EDITOR_OPTIONS_COMMENTS_BASE_BASE_CLASSES_H -#define EDITOR_OPTIONS_COMMENTS_BASE_BASE_CLASSES_H +#ifndef CODELITE_LITEEDITOR_EDITOR_OPTIONS_COMMENTS_BASE_BASE_CLASSES_H +#define CODELITE_LITEEDITOR_EDITOR_OPTIONS_COMMENTS_BASE_BASE_CLASSES_H #include #include @@ -16,6 +16,12 @@ #include #include #include +#if wxVERSION_NUMBER >= 2900 +#include +#include +#include +#include +#endif class EditorSettingsCommentsBase : public wxPanel { diff -Nru codelite-8.0.1+dfsg2/LiteEditor/editorsettingscommentsdoxygenpanelbase.cpp codelite-9.0+dfsg/LiteEditor/editorsettingscommentsdoxygenpanelbase.cpp --- codelite-8.0.1+dfsg2/LiteEditor/editorsettingscommentsdoxygenpanelbase.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/editorsettingscommentsdoxygenpanelbase.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -43,19 +43,26 @@ m_pgProp4 = m_pgMgrDoxy->Append( new wxPropertyCategory( _("Templates") ) ); m_pgProp4->SetHelpString(wxT("")); - m_pgPropDoxyClassPrefix = m_pgMgrDoxy->AppendIn( m_pgProp4, new wxLongStringProperty( _("Class documentation template"), wxPG_LABEL, wxT("")) ); + m_pgPropDoxyClassPrefix = m_pgMgrDoxy->AppendIn( m_pgProp4, new wxStringProperty( _("Class documentation template"), wxPG_LABEL, wxT("")) ); m_pgPropDoxyClassPrefix->SetHelpString(_("Set the template to use when generating documetation for a class (or C/C++ struct).\nThe following macros are available: $(CurrentFileName), $(CurrentFilePath), $(User), $(Date), $(Name) $(CurrentFileFullPath), $(CurrentFileExt), $(ProjectName), $(WorkspaceName)")); + m_pgPropDoxyClassPrefix->SetEditor( wxT("TextCtrlAndButton") ); - m_pgPropDoxyFunctionPrefix = m_pgMgrDoxy->AppendIn( m_pgProp4, new wxLongStringProperty( _("Function documentation template"), wxPG_LABEL, wxT("")) ); + m_pgPropDoxyFunctionPrefix = m_pgMgrDoxy->AppendIn( m_pgProp4, new wxStringProperty( _("Function documentation template"), wxPG_LABEL, wxT("")) ); m_pgPropDoxyFunctionPrefix->SetHelpString(_("Set the template to use when generating documetation for a function\nThe following macros are available: $(CurrentFileName), $(CurrentFilePath), $(User), $(Date), $(Name) $(CurrentFileFullPath), $(CurrentFileExt), $(ProjectName), $(WorkspaceName)")); + m_pgPropDoxyFunctionPrefix->SetEditor( wxT("TextCtrlAndButton") ); + SetName(wxT("EditorSettingsCommentsDoxygenPanelBase")); SetSizeHints(-1,-1); - if ( GetSizer() ) { + if (GetSizer()) { GetSizer()->Fit(this); } - Centre(wxBOTH); + // Connect events + m_pgMgrDoxy->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(EditorSettingsCommentsDoxygenPanelBase::OnButtonClicked), NULL, this); + } EditorSettingsCommentsDoxygenPanelBase::~EditorSettingsCommentsDoxygenPanelBase() { + m_pgMgrDoxy->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(EditorSettingsCommentsDoxygenPanelBase::OnButtonClicked), NULL, this); + } diff -Nru codelite-8.0.1+dfsg2/LiteEditor/editorsettingscommentsdoxygenpanelbase.h codelite-9.0+dfsg/LiteEditor/editorsettingscommentsdoxygenpanelbase.h --- codelite-8.0.1+dfsg2/LiteEditor/editorsettingscommentsdoxygenpanelbase.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/editorsettingscommentsdoxygenpanelbase.h 2015-10-11 13:56:07.000000000 +0000 @@ -4,8 +4,8 @@ // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// -#ifndef EDITOR_OPTIONS_COMMENTS_DOXYGEN_BASE_CLASSES_H -#define EDITOR_OPTIONS_COMMENTS_DOXYGEN_BASE_CLASSES_H +#ifndef CODELITE_LITEEDITOR_EDITOR_OPTIONS_COMMENTS_DOXYGEN_BASE_CLASSES_H +#define CODELITE_LITEEDITOR_EDITOR_OPTIONS_COMMENTS_DOXYGEN_BASE_CLASSES_H #include #include @@ -16,6 +16,12 @@ #include #include #include +#if wxVERSION_NUMBER >= 2900 +#include +#include +#include +#include +#endif class EditorSettingsCommentsDoxygenPanelBase : public wxPanel { @@ -28,6 +34,7 @@ wxPGProperty* m_pgPropDoxyFunctionPrefix; protected: + virtual void OnButtonClicked(wxCommandEvent& event) { event.Skip(); } public: wxPropertyGridManager* GetPgMgrDoxy() { return m_pgMgrDoxy; } diff -Nru codelite-8.0.1+dfsg2/LiteEditor/editorsettingscommentsdoxygenpanel.cpp codelite-9.0+dfsg/LiteEditor/editorsettingscommentsdoxygenpanel.cpp --- codelite-8.0.1+dfsg2/LiteEditor/editorsettingscommentsdoxygenpanel.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/editorsettingscommentsdoxygenpanel.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -25,6 +25,9 @@ #include "editorsettingscommentsdoxygenpanel.h" #include "commentconfigdata.h" +#include "globals.h" +#include "EditDlg.h" +#include "macros.h" EditorSettingsCommentsDoxygenPanel::EditorSettingsCommentsDoxygenPanel(wxWindow* parent) : EditorSettingsCommentsDoxygenPanelBase(parent) @@ -33,7 +36,7 @@ CommentConfigData data; EditorConfigST::Get()->ReadObject(wxT("CommentConfigData"), &data); m_pgPropDoxyClassPrefix->SetValueFromString(data.GetClassPattern()); - m_pgPropDoxyFunctionPrefix->SetValueFromString(data.GetFunctionPattern()); + m_pgPropDoxyFunctionPrefix->SetValueFromString(data.GetFunctionPattern()); m_pgPropAutoGen->SetValue(data.IsAutoInsertAfterSlash2Stars()); } @@ -41,14 +44,23 @@ { CommentConfigData data; EditorConfigST::Get()->ReadObject(wxT("CommentConfigData"), &data); - - wxString classPattern = m_pgPropDoxyClassPrefix->GetValue().GetString(); - wxString funcPattern = m_pgPropDoxyFunctionPrefix->GetValue().GetString(); - classPattern.Replace("\\n", "\n"); - funcPattern.Replace("\\n", "\n"); - + + wxString classPattern = m_pgPropDoxyClassPrefix->GetValue().GetString(); + wxString funcPattern = m_pgPropDoxyFunctionPrefix->GetValue().GetString(); + classPattern.Replace("\\n", "\n"); + funcPattern.Replace("\\n", "\n"); + data.SetClassPattern(classPattern); - data.SetFunctionPattern(funcPattern); + data.SetFunctionPattern(funcPattern); data.SetAutoInsertAfterSlash2Stars(m_pgPropAutoGen->GetValue().GetBool()); EditorConfigST::Get()->WriteObject(wxT("CommentConfigData"), &data); } + +void EditorSettingsCommentsDoxygenPanel::OnButtonClicked(wxCommandEvent& e) +{ + CHECK_PTR_RET(m_pgMgrDoxy->GetSelection()); + wxString str = ::clGetStringFromUser(m_pgMgrDoxy->GetSelection()->GetValueAsString()); + if(!str.IsEmpty()) { + m_pgMgrDoxy->GetSelection()->SetValueFromString(str); + } +} diff -Nru codelite-8.0.1+dfsg2/LiteEditor/editorsettingscommentsdoxygenpanel.h codelite-9.0+dfsg/LiteEditor/editorsettingscommentsdoxygenpanel.h --- codelite-8.0.1+dfsg2/LiteEditor/editorsettingscommentsdoxygenpanel.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/editorsettingscommentsdoxygenpanel.h 2015-10-11 13:56:07.000000000 +0000 @@ -29,13 +29,13 @@ #include "editorsettingscommentsdoxygenpanelbase.h" #include "treebooknodebase.h" -/** Implementing EditorSettingsCommentsDoxygenPanelBase */ class EditorSettingsCommentsDoxygenPanel : public EditorSettingsCommentsDoxygenPanelBase, public TreeBookNode { public: EditorSettingsCommentsDoxygenPanel(wxWindow* parent); void Save(OptionsConfigPtr options); + void OnButtonClicked(wxCommandEvent& e); }; #endif // __editorsettingscommentsdoxygenpanel__ diff -Nru codelite-8.0.1+dfsg2/LiteEditor/editorsettingsdockingwidows.cpp codelite-9.0+dfsg/LiteEditor/editorsettingsdockingwidows.cpp --- codelite-8.0.1+dfsg2/LiteEditor/editorsettingsdockingwidows.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/editorsettingsdockingwidows.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -54,19 +54,35 @@ m_radioBoxHint->SetSelection(options->GetDockingStyle()); m_checkBoxHideCaptions->SetValue(!options->IsShowDockingWindowCaption()); m_checkBoxEnsureCaptionsVisible->SetValue(options->IsEnsureCaptionsVisible()); - - int tabStyle(0); // Glossy - m_startingFlags = OptionsConfig::TabGlossy; - if(options->GetOptions() & OptionsConfig::TabCurved) { - tabStyle = 1; - m_startingFlags = OptionsConfig::TabCurved; + m_checkBoxEditorTabsFollowsTheme->SetValue(options->IsTabColourMatchesTheme()); + m_checkBoxShowXButton->SetValue(options->IsTabHasXButton()); + switch(options->GetOutputTabsDirection()) { + case wxTOP: + m_choiceOutputTabsOrientation->SetSelection(0); + break; + case wxBOTTOM: + m_choiceOutputTabsOrientation->SetSelection(1); + break; + default: + break; } - - m_endFlags = m_startingFlags; - m_radioBoxTabControlStyle->SetSelection(tabStyle); -#if CL_USE_NATIVEBOOK - m_radioBoxTabControlStyle->Enable(false); -#endif + switch(options->GetWorkspaceTabsDirection()) { + case wxLEFT: + m_choiceWorkspaceTabsOrientation->SetSelection(0); + break; + case wxRIGHT: + m_choiceWorkspaceTabsOrientation->SetSelection(1); + break; + case wxTOP: + m_choiceWorkspaceTabsOrientation->SetSelection(2); + break; + case wxBOTTOM: + m_choiceWorkspaceTabsOrientation->SetSelection(3); + break; + default: + break; + } + m_checkBoxHideOutputPaneNotIfDebug->Connect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler(EditorSettingsDockingWindows::OnHideOutputPaneNotIfDebugUI), @@ -98,30 +114,37 @@ options->SetDockingStyle(m_radioBoxHint->GetSelection()); options->SetShowDockingWindowCaption(!m_checkBoxHideCaptions->IsChecked()); options->SetEnsureCaptionsVisible(m_checkBoxEnsureCaptionsVisible->IsChecked()); - - // Keep the quickreplacebar in sync - clMainFrame::Get()->GetMainBook()->ShowQuickReplaceBar(m_checkBoxShowReplaceBar->IsChecked()); - - size_t flags(options->GetOptions()); - - // set the tab control options: - //////////////////////////////////// - - // Clear the current tab control style - flags &= ~OptionsConfig::TabAll; - - switch(m_radioBoxTabControlStyle->GetSelection()) { - case 0: // glossy - flags |= OptionsConfig::TabGlossy; - m_endFlags |= OptionsConfig::TabGlossy; + options->SetTabColourMatchesTheme(m_checkBoxEditorTabsFollowsTheme->IsChecked()); + options->SetTabHasXButton(m_checkBoxShowXButton->IsChecked()); + switch(m_choiceOutputTabsOrientation->GetSelection()) { + case 0: + options->SetOutputTabsDirection(wxTOP); + break; + case 1: + options->SetOutputTabsDirection(wxBOTTOM); + break; + default: + break; + } + switch(m_choiceWorkspaceTabsOrientation->GetSelection()) { + case 0: + options->SetWorkspaceTabsDirection(wxLEFT); + break; + case 1: + options->SetWorkspaceTabsDirection(wxRIGHT); + break; + case 2: + options->SetWorkspaceTabsDirection(wxTOP); + break; + case 3: + options->SetWorkspaceTabsDirection(wxBOTTOM); break; - case 1: // curved default: - flags |= OptionsConfig::TabCurved; - m_endFlags |= OptionsConfig::TabCurved; break; } - options->SetOptions(flags); + + // Keep the quickreplacebar in sync + clMainFrame::Get()->GetMainBook()->ShowQuickReplaceBar(m_checkBoxShowReplaceBar->IsChecked()); } void EditorSettingsDockingWindows::OnHideOutputPaneNotIfDebugUI(wxUpdateUIEvent& event) @@ -129,7 +152,7 @@ event.Enable(m_checkBoxHideOutputPaneOnClick->IsChecked()); } -bool EditorSettingsDockingWindows::IsRestartRequired() { return m_startingFlags != m_endFlags; } +bool EditorSettingsDockingWindows::IsRestartRequired() { return false; } void EditorSettingsDockingWindows::OnEnsureCaptionsVisibleUI(wxUpdateUIEvent& event) { #ifdef __WXMSW__ diff -Nru codelite-8.0.1+dfsg2/LiteEditor/editorsettingsdockingwidows.h codelite-9.0+dfsg/LiteEditor/editorsettingsdockingwidows.h --- codelite-8.0.1+dfsg2/LiteEditor/editorsettingsdockingwidows.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/editorsettingsdockingwidows.h 2015-10-11 13:56:07.000000000 +0000 @@ -33,9 +33,6 @@ class EditorSettingsDockingWindows : public EditorSettingsDockingWindowsBase, public TreeBookNode { - size_t m_startingFlags; - size_t m_endFlags; - void OnHideOutputPaneNotIfDebugUI(wxUpdateUIEvent& event); public: diff -Nru codelite-8.0.1+dfsg2/LiteEditor/editorsettingsdockingwindowsbase.cpp codelite-9.0+dfsg/LiteEditor/editorsettingsdockingwindowsbase.cpp --- codelite-8.0.1+dfsg2/LiteEditor/editorsettingsdockingwindowsbase.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/editorsettingsdockingwindowsbase.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -48,19 +48,63 @@ m_radioBoxHint = new wxRadioBox(m_panel12, wxID_ANY, _("Docking Style:"), wxDefaultPosition, wxSize(-1, -1), m_radioBoxHintArr, 1, wxRA_SPECIFY_COLS); m_radioBoxHint->SetSelection(0); - bSizer2->Add(m_radioBoxHint, 1, wxALL|wxEXPAND, 5); + bSizer2->Add(m_radioBoxHint, 1, wxLEFT|wxRIGHT|wxTOP|wxEXPAND, 5); - wxArrayString m_radioBoxTabControlStyleArr; - m_radioBoxTabControlStyleArr.Add(_("Glossy")); - m_radioBoxTabControlStyleArr.Add(_("Curved")); - m_radioBoxTabControlStyle = new wxRadioBox(m_panel12, wxID_ANY, _("Tab Control Style:"), wxDefaultPosition, wxSize(-1, -1), m_radioBoxTabControlStyleArr, 1, wxRA_SPECIFY_COLS); - m_radioBoxTabControlStyle->SetSelection(0); + wxBoxSizer* boxSizer32 = new wxBoxSizer(wxVERTICAL); - bSizer2->Add(m_radioBoxTabControlStyle, 1, wxALL|wxEXPAND, 5); + boxSizer22->Add(boxSizer32, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND, 5); + + wxStaticBoxSizer* staticBoxSizer27 = new wxStaticBoxSizer( new wxStaticBox(m_panel12, wxID_ANY, _("Tabs")), wxVERTICAL); + + boxSizer32->Add(staticBoxSizer27, 0, wxALL|wxEXPAND, 5); + + m_checkBoxShowXButton = new wxCheckBox(m_panel12, wxID_ANY, _("Show close button on active tab"), wxDefaultPosition, wxSize(-1,-1), 0); + m_checkBoxShowXButton->SetValue(true); + m_checkBoxShowXButton->SetToolTip(_("Show close button on active tab")); + + staticBoxSizer27->Add(m_checkBoxShowXButton, 0, wxALL, 5); + + m_checkBoxEditorTabsFollowsTheme = new wxCheckBox(m_panel12, wxID_ANY, _("The editor tabs matches to the editor colour theme"), wxDefaultPosition, wxSize(-1,-1), 0); + m_checkBoxEditorTabsFollowsTheme->SetValue(true); + m_checkBoxEditorTabsFollowsTheme->SetToolTip(_("The editor tabs matches to the editor colour theme")); + + staticBoxSizer27->Add(m_checkBoxEditorTabsFollowsTheme, 0, wxALL, 5); + + wxFlexGridSizer* flexGridSizer36 = new wxFlexGridSizer(0, 2, 0, 0); + flexGridSizer36->SetFlexibleDirection( wxBOTH ); + flexGridSizer36->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); + + staticBoxSizer27->Add(flexGridSizer36, 1, wxALL|wxEXPAND, 5); + + m_staticText38 = new wxStaticText(m_panel12, wxID_ANY, _("Workspace Pane Tabs Orientation:"), wxDefaultPosition, wxSize(-1,-1), 0); + + flexGridSizer36->Add(m_staticText38, 0, wxALL|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5); + + wxArrayString m_choiceWorkspaceTabsOrientationArr; + m_choiceWorkspaceTabsOrientationArr.Add(wxT("LEFT")); + m_choiceWorkspaceTabsOrientationArr.Add(wxT("RIGHT")); + m_choiceWorkspaceTabsOrientationArr.Add(wxT("TOP")); + m_choiceWorkspaceTabsOrientationArr.Add(wxT("BOTTOM")); + m_choiceWorkspaceTabsOrientation = new wxChoice(m_panel12, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), m_choiceWorkspaceTabsOrientationArr, 0); + m_choiceWorkspaceTabsOrientation->SetSelection(0); + + flexGridSizer36->Add(m_choiceWorkspaceTabsOrientation, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5); + + m_staticText42 = new wxStaticText(m_panel12, wxID_ANY, _("Output Pane Tabs Orientation:"), wxDefaultPosition, wxSize(-1,-1), 0); + + flexGridSizer36->Add(m_staticText42, 0, wxALL|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5); + + wxArrayString m_choiceOutputTabsOrientationArr; + m_choiceOutputTabsOrientationArr.Add(wxT("TOP")); + m_choiceOutputTabsOrientationArr.Add(wxT("BOTTOM")); + m_choiceOutputTabsOrientation = new wxChoice(m_panel12, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), m_choiceOutputTabsOrientationArr, 0); + m_choiceOutputTabsOrientation->SetSelection(0); + + flexGridSizer36->Add(m_choiceOutputTabsOrientation, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5); wxBoxSizer* boxSizer25 = new wxBoxSizer(wxVERTICAL); - boxSizer22->Add(boxSizer25, 0, wxALL, 5); + boxSizer22->Add(boxSizer25, 0, wxALL, 10); m_checkBoxHideCaptions = new wxCheckBox(m_panel12, wxID_ANY, _("Hide Docking Windows captions"), wxDefaultPosition, wxSize(-1,-1), 0); m_checkBoxHideCaptions->SetValue(false); @@ -210,10 +254,9 @@ SetName(wxT("EditorSettingsDockingWindowsBase")); SetSizeHints(-1,-1); - if ( GetSizer() ) { + if (GetSizer()) { GetSizer()->Fit(this); } - CentreOnParent(wxBOTH); // Connect events m_checkBoxEnsureCaptionsVisible->Connect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(EditorSettingsDockingWindowsBase::OnEnsureCaptionsVisibleUI), NULL, this); m_checkBoxHideOutputPaneNotIfBuild->Connect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(EditorSettingsDockingWindowsBase::OnHideOutputPaneNotIfDebugUI), NULL, this); diff -Nru codelite-8.0.1+dfsg2/LiteEditor/editorsettingsdockingwindowsbase.h codelite-9.0+dfsg/LiteEditor/editorsettingsdockingwindowsbase.h --- codelite-8.0.1+dfsg2/LiteEditor/editorsettingsdockingwindowsbase.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/editorsettingsdockingwindowsbase.h 2015-10-11 13:56:07.000000000 +0000 @@ -4,8 +4,8 @@ // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// -#ifndef EDITOR_OPTIONS_DOCKING_WINDOWS_BASE_CLASSES_H -#define EDITOR_OPTIONS_DOCKING_WINDOWS_BASE_CLASSES_H +#ifndef CODELITE_LITEEDITOR_EDITOR_OPTIONS_DOCKING_WINDOWS_BASE_CLASSES_H +#define CODELITE_LITEEDITOR_EDITOR_OPTIONS_DOCKING_WINDOWS_BASE_CLASSES_H #include #include @@ -16,7 +16,11 @@ #include #include #include +#include #include +#include +#include +#include #if wxVERSION_NUMBER >= 2900 #include #include @@ -30,7 +34,12 @@ wxNotebook* m_notebook10; wxPanel* m_panel12; wxRadioBox* m_radioBoxHint; - wxRadioBox* m_radioBoxTabControlStyle; + wxCheckBox* m_checkBoxShowXButton; + wxCheckBox* m_checkBoxEditorTabsFollowsTheme; + wxStaticText* m_staticText38; + wxChoice* m_choiceWorkspaceTabsOrientation; + wxStaticText* m_staticText42; + wxChoice* m_choiceOutputTabsOrientation; wxCheckBox* m_checkBoxHideCaptions; wxCheckBox* m_checkBoxEnsureCaptionsVisible; wxPanel* m_panel14; @@ -61,7 +70,12 @@ public: wxRadioBox* GetRadioBoxHint() { return m_radioBoxHint; } - wxRadioBox* GetRadioBoxTabControlStyle() { return m_radioBoxTabControlStyle; } + wxCheckBox* GetCheckBoxShowXButton() { return m_checkBoxShowXButton; } + wxCheckBox* GetCheckBoxEditorTabsFollowsTheme() { return m_checkBoxEditorTabsFollowsTheme; } + wxStaticText* GetStaticText38() { return m_staticText38; } + wxChoice* GetChoiceWorkspaceTabsOrientation() { return m_choiceWorkspaceTabsOrientation; } + wxStaticText* GetStaticText42() { return m_staticText42; } + wxChoice* GetChoiceOutputTabsOrientation() { return m_choiceOutputTabsOrientation; } wxCheckBox* GetCheckBoxHideCaptions() { return m_checkBoxHideCaptions; } wxCheckBox* GetCheckBoxEnsureCaptionsVisible() { return m_checkBoxEnsureCaptionsVisible; } wxPanel* GetPanel12() { return m_panel12; } diff -Nru codelite-8.0.1+dfsg2/LiteEditor/editorsettingsfoldingbase.cpp codelite-9.0+dfsg/LiteEditor/editorsettingsfoldingbase.cpp --- codelite-8.0.1+dfsg2/LiteEditor/editorsettingsfoldingbase.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/editorsettingsfoldingbase.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -75,11 +75,12 @@ fgSizer1->Add(m_checkBoxHighlightFolding, 0, wxALL, 5); + SetName(wxT("EditorSettingsFoldingBase")); SetSizeHints(-1,-1); if ( GetSizer() ) { GetSizer()->Fit(this); } - Centre(wxBOTH); + CentreOnParent(wxBOTH); // Connect events m_foldStyle->Connect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(EditorSettingsFoldingBase::OnFoldingMarginUI), NULL, this); m_underlineFolded->Connect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(EditorSettingsFoldingBase::OnFoldingMarginUI), NULL, this); diff -Nru codelite-8.0.1+dfsg2/LiteEditor/editorsettingsfoldingbase.h codelite-9.0+dfsg/LiteEditor/editorsettingsfoldingbase.h --- codelite-8.0.1+dfsg2/LiteEditor/editorsettingsfoldingbase.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/editorsettingsfoldingbase.h 2015-10-11 13:56:07.000000000 +0000 @@ -4,8 +4,8 @@ // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// -#ifndef EDITOR_OPTIONS_FOLDING_BASE_CLASSES_H -#define EDITOR_OPTIONS_FOLDING_BASE_CLASSES_H +#ifndef CODELITE_LITEEDITOR_EDITOR_OPTIONS_FOLDING_BASE_CLASSES_H +#define CODELITE_LITEEDITOR_EDITOR_OPTIONS_FOLDING_BASE_CLASSES_H #include #include @@ -17,6 +17,12 @@ #include #include #include +#if wxVERSION_NUMBER >= 2900 +#include +#include +#include +#include +#endif class EditorSettingsFoldingBase : public wxPanel { @@ -33,6 +39,13 @@ virtual void OnFoldingMarginUI(wxUpdateUIEvent& event) { event.Skip(); } public: + wxCheckBox* GetDisplayMargin() { return m_displayMargin; } + wxChoice* GetFoldStyle() { return m_foldStyle; } + wxCheckBox* GetUnderlineFolded() { return m_underlineFolded; } + wxCheckBox* GetFoldElse() { return m_foldElse; } + wxCheckBox* GetFoldPreprocessors() { return m_foldPreprocessors; } + wxCheckBox* GetFoldCompact() { return m_foldCompact; } + wxCheckBox* GetCheckBoxHighlightFolding() { return m_checkBoxHighlightFolding; } EditorSettingsFoldingBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxTAB_TRAVERSAL); virtual ~EditorSettingsFoldingBase(); }; diff -Nru codelite-8.0.1+dfsg2/LiteEditor/editorsettingslocalbase.cpp codelite-9.0+dfsg/LiteEditor/editorsettingslocalbase.cpp --- codelite-8.0.1+dfsg2/LiteEditor/editorsettingslocalbase.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/editorsettingslocalbase.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -294,6 +294,8 @@ #if wxVERSION_NUMBER >= 2900 if(!wxPersistenceManager::Get().Find(m_treebook1)){ wxPersistenceManager::Get().RegisterAndRestore(m_treebook1); + } else { + wxPersistenceManager::Get().Restore(m_treebook1); } #endif m_treebook1->ExpandNode( 0, true ); @@ -309,6 +311,8 @@ #if wxVERSION_NUMBER >= 2900 if(!wxPersistenceManager::Get().Find(this)) { wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); } #endif // Connect events diff -Nru codelite-8.0.1+dfsg2/LiteEditor/editorsettingslocalbase_formbuilder_bitmaps.cpp codelite-9.0+dfsg/LiteEditor/editorsettingslocalbase_formbuilder_bitmaps.cpp --- codelite-8.0.1+dfsg2/LiteEditor/editorsettingslocalbase_formbuilder_bitmaps.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/editorsettingslocalbase_formbuilder_bitmaps.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,297 +1,297 @@ -// -// This file was automatically generated by wxrc, do not edit by hand. -// - -#include - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#include -#include -#include -#include - -#if wxCHECK_VERSION(2,8,5) && wxABI_VERSION >= 20805 - #define XRC_ADD_FILE(name, data, size, mime) \ - wxMemoryFSHandler::AddFileWithMimeType(name, data, size, mime) -#else - #define XRC_ADD_FILE(name, data, size, mime) \ - wxMemoryFSHandler::AddFile(name, data, size) -#endif - -static size_t xml_res_size_0 = 353; -static unsigned char xml_res_file_0[] = { -137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, -0,31,243,255,97,0,0,0,4,103,65,77,65,0,0,175,200,55,5,138,233,0,0,0,25, -116,69,88,116,83,111,102,116,119,97,114,101,0,65,100,111,98,101,32,73,109, -97,103,101,82,101,97,100,121,113,201,101,60,0,0,0,243,73,68,65,84,56,203, -99,252,255,255,63,3,37,128,137,129,66,64,177,1,44,48,70,121,121,249,255, -127,255,254,49,252,249,243,7,142,127,255,254,13,199,191,126,253,130,211, -32,188,119,239,94,70,144,62,70,74,195,0,238,130,206,45,239,174,148,251, -8,233,192,248,177,177,177,215,145,109,68,199,103,206,156,209,68,49,224, -199,239,191,12,153,139,158,92,189,117,251,107,200,222,102,245,235,64,69, -138,184,52,131,48,12,128,189,208,178,249,197,127,17,110,54,134,79,223,127, -51,156,190,243,245,204,195,91,95,226,78,77,213,187,78,140,23,224,97,144, -179,248,197,149,87,239,191,51,221,189,250,41,248,236,76,253,235,158,158, -158,87,96,182,253,252,249,19,110,51,204,91,15,31,62,212,65,241,194,183, -159,255,24,86,229,41,106,193,189,244,227,135,10,186,179,145,99,3,195,5, -20,199,130,183,183,247,127,124,129,134,156,38,64,248,243,231,207,84,78, -7,182,182,182,255,177,5,22,178,173,31,62,124,96,196,25,11,3,150,153,0,9, -38,9,133,50,72,142,137,0,0,0,0,73,69,78,68,174,66,96,130}; - -static size_t xml_res_size_1 = 551; -static unsigned char xml_res_file_1[] = { -137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, -0,31,243,255,97,0,0,0,25,116,69,88,116,83,111,102,116,119,97,114,101,0, -65,100,111,98,101,32,73,109,97,103,101,82,101,97,100,121,113,201,101,60, -0,0,1,201,73,68,65,84,120,218,140,83,187,74,67,65,16,157,125,68,13,4,137, -8,34,26,2,106,33,66,16,76,42,43,237,84,16,31,117,240,7,244,55,252,6,177, -17,139,144,210,36,138,69,210,68,237,85,68,20,17,95,144,136,136,141,41,2, -34,241,222,117,102,179,187,185,49,41,156,203,178,187,103,207,156,157,153, -157,203,148,82,64,118,116,124,252,233,121,94,148,246,140,1,16,76,107,58, -101,52,16,180,56,173,133,16,181,149,229,229,129,38,9,71,174,80,80,214,138, -231,207,170,155,5,113,195,7,9,198,108,36,31,239,111,112,121,95,133,100, -172,15,126,60,223,30,131,20,92,227,51,163,189,48,52,60,226,248,78,128,194, -43,93,188,32,169,2,61,82,192,254,201,35,120,190,239,82,16,156,35,206,97, -175,252,0,201,201,111,205,111,19,32,197,133,212,24,204,142,247,195,110, -233,22,54,23,19,208,240,90,2,33,140,96,167,120,3,91,75,9,232,31,24,132, -92,245,74,251,241,191,41,40,148,166,208,125,244,162,4,124,196,245,140,123, -194,149,185,186,35,5,179,7,206,133,94,115,38,116,181,233,29,104,230,140, -55,113,60,15,242,157,128,53,33,184,86,23,152,175,160,39,195,53,167,103, -147,6,23,188,141,223,69,64,154,72,36,14,79,95,69,2,246,102,123,222,41,96, -171,42,133,155,125,211,76,148,66,16,111,227,91,127,110,138,35,164,196,91, -40,228,16,132,241,233,76,235,33,65,24,92,182,241,153,173,102,254,176,160, -194,177,105,184,188,171,64,8,243,165,138,235,170,83,17,241,163,70,162,209, -248,241,33,57,21,135,175,215,107,88,95,93,99,174,149,15,242,121,215,166, -219,153,114,215,86,14,226,134,223,234,3,102,91,11,45,53,25,135,110,22,196, -217,223,20,50,217,236,105,36,18,153,107,253,141,216,64,190,114,14,156,179, -102,95,152,191,177,94,175,159,109,164,211,243,78,0,193,9,156,162,240,127, -171,161,239,211,175,0,3,0,190,20,35,79,5,28,125,193,0,0,0,0,73,69,78,68, -174,66,96,130}; - -static size_t xml_res_size_2 = 3609; -static unsigned char xml_res_file_2[] = { -137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, -0,31,243,255,97,0,0,0,9,112,72,89,115,0,0,11,18,0,0,11,18,1,210,221,126, -252,0,0,10,79,105,67,67,80,80,104,111,116,111,115,104,111,112,32,73,67, -67,32,112,114,111,102,105,108,101,0,0,120,218,157,83,103,84,83,233,22,61, -247,222,244,66,75,136,128,148,75,111,82,21,8,32,82,66,139,128,20,145,38, -42,33,9,16,74,136,33,161,217,21,81,193,17,69,69,4,27,200,160,136,3,142, -142,128,140,21,81,44,12,138,10,216,7,228,33,162,142,131,163,136,138,202, -251,225,123,163,107,214,188,247,230,205,254,181,215,62,231,172,243,157, -179,207,7,192,8,12,150,72,51,81,53,128,12,169,66,30,17,224,131,199,196, -198,225,228,46,64,129,10,36,112,0,16,8,179,100,33,115,253,35,1,0,248,126, -60,60,43,34,192,7,190,0,1,120,211,11,8,0,192,77,155,192,48,28,135,255,15, -234,66,153,92,1,128,132,1,192,116,145,56,75,8,128,20,0,64,122,142,66,166, -0,64,70,1,128,157,152,38,83,0,160,4,0,96,203,99,98,227,0,80,45,0,96,39, -127,230,211,0,128,157,248,153,123,1,0,91,148,33,21,1,160,145,0,32,19,101, -136,68,0,104,59,0,172,207,86,138,69,0,88,48,0,20,102,75,196,57,0,216,45, -0,48,73,87,102,72,0,176,183,0,192,206,16,11,178,0,8,12,0,48,81,136,133, -41,0,4,123,0,96,200,35,35,120,0,132,153,0,20,70,242,87,60,241,43,174,16, -231,42,0,0,120,153,178,60,185,36,57,69,129,91,8,45,113,7,87,87,46,30,40, -206,73,23,43,20,54,97,2,97,154,64,46,194,121,153,25,50,129,52,15,224,243, -204,0,0,160,145,21,17,224,131,243,253,120,206,14,174,206,206,54,142,182, -14,95,45,234,191,6,255,34,98,98,227,254,229,207,171,112,64,0,0,225,116, -126,209,254,44,47,179,26,128,59,6,128,109,254,162,37,238,4,104,94,11,160, -117,247,139,102,178,15,64,181,0,160,233,218,87,243,112,248,126,60,60,69, -161,144,185,217,217,229,228,228,216,74,196,66,91,97,202,87,125,254,103, -194,95,192,87,253,108,249,126,60,252,247,245,224,190,226,36,129,50,93,129, -71,4,248,224,194,204,244,76,165,28,207,146,9,132,98,220,230,143,71,252, -183,11,255,252,29,211,34,196,73,98,185,88,42,20,227,81,18,113,142,68,154, -140,243,50,165,34,137,66,146,41,197,37,210,255,100,226,223,44,251,3,62, -223,53,0,176,106,62,1,123,145,45,168,93,99,3,246,75,39,16,88,116,192,226, -247,0,0,242,187,111,193,212,40,8,3,128,104,131,225,207,119,255,239,63,253, -71,160,37,0,128,102,73,146,113,0,0,94,68,36,46,84,202,179,63,199,8,0,0, -68,160,129,42,176,65,27,244,193,24,44,192,6,28,193,5,220,193,11,252,96, -54,132,66,36,196,194,66,16,66,10,100,128,28,114,96,41,172,130,66,40,134, -205,176,29,42,96,47,212,64,29,52,192,81,104,134,147,112,14,46,194,85,184, -14,61,112,15,250,97,8,158,193,40,188,129,9,4,65,200,8,19,97,33,218,136, -1,98,138,88,35,142,8,23,153,133,248,33,193,72,4,18,139,36,32,201,136,20, -81,34,75,145,53,72,49,82,138,84,32,85,72,29,242,61,114,2,57,135,92,70,186, -145,59,200,0,50,130,252,134,188,71,49,148,129,178,81,61,212,12,181,67,185, -168,55,26,132,70,162,11,208,100,116,49,154,143,22,160,155,208,114,180,26, -61,140,54,161,231,208,171,104,15,218,143,62,67,199,48,192,232,24,7,51,196, -108,48,46,198,195,66,177,56,44,9,147,99,203,177,34,172,12,171,198,26,176, -86,172,3,187,137,245,99,207,177,119,4,18,129,69,192,9,54,4,119,66,32,97, -30,65,72,88,76,88,78,216,72,168,32,28,36,52,17,218,9,55,9,3,132,81,194, -39,34,147,168,75,180,38,186,17,249,196,24,98,50,49,135,88,72,44,35,214, -18,143,19,47,16,123,136,67,196,55,36,18,137,67,50,39,185,144,2,73,177,164, -84,210,18,210,70,210,110,82,35,233,44,169,155,52,72,26,35,147,201,218,100, -107,178,7,57,148,44,32,43,200,133,228,157,228,195,228,51,228,27,228,33, -242,91,10,157,98,64,113,164,248,83,226,40,82,202,106,74,25,229,16,229,52, -229,6,101,152,50,65,85,163,154,82,221,168,161,84,17,53,143,90,66,173,161, -182,82,175,81,135,168,19,52,117,154,57,205,131,22,73,75,165,173,162,149, -211,26,104,23,104,247,105,175,232,116,186,17,221,149,30,78,151,208,87,210, -203,233,71,232,151,232,3,244,119,12,13,134,21,131,199,136,103,40,25,155, -24,7,24,103,25,119,24,175,152,76,166,25,211,139,25,199,84,48,55,49,235, -152,231,153,15,153,111,85,88,42,182,42,124,21,145,202,10,149,74,149,38, -149,27,42,47,84,169,170,166,170,222,170,11,85,243,85,203,84,143,169,94, -83,125,174,70,85,51,83,227,169,9,212,150,171,85,170,157,80,235,83,27,83, -103,169,59,168,135,170,103,168,111,84,63,164,126,89,253,137,6,89,195,76, -195,79,67,164,81,160,177,95,227,188,198,32,11,99,25,179,120,44,33,107,13, -171,134,117,129,53,196,38,177,205,217,124,118,42,187,152,253,29,187,139, -61,170,169,161,57,67,51,74,51,87,179,82,243,148,102,63,7,227,152,113,248, -156,116,78,9,231,40,167,151,243,126,138,222,20,239,41,226,41,27,166,52, -76,185,49,101,92,107,170,150,151,150,88,171,72,171,81,171,71,235,189,54, -174,237,167,157,166,189,69,187,89,251,129,14,65,199,74,39,92,39,71,103, -143,206,5,157,231,83,217,83,221,167,10,167,22,77,61,58,245,174,46,170,107, -165,27,161,187,68,119,191,110,167,238,152,158,190,94,128,158,76,111,167, -222,121,189,231,250,28,125,47,253,84,253,109,250,167,245,71,12,88,6,179, -12,36,6,219,12,206,24,60,197,53,113,111,60,29,47,199,219,241,81,67,93,195, -64,67,165,97,149,97,151,225,132,145,185,209,60,163,213,70,141,70,15,140, -105,198,92,227,36,227,109,198,109,198,163,38,6,38,33,38,75,77,234,77,238, -154,82,77,185,166,41,166,59,76,59,76,199,205,204,205,162,205,214,153,53, -155,61,49,215,50,231,155,231,155,215,155,223,183,96,90,120,90,44,182,168, -182,184,101,73,178,228,90,166,89,238,182,188,110,133,90,57,89,165,88,85, -90,93,179,70,173,157,173,37,214,187,173,187,167,17,167,185,78,147,78,171, -158,214,103,195,176,241,182,201,182,169,183,25,176,229,216,6,219,174,182, -109,182,125,97,103,98,23,103,183,197,174,195,238,147,189,147,125,186,125, -141,253,61,7,13,135,217,14,171,29,90,29,126,115,180,114,20,58,86,58,222, -154,206,156,238,63,125,197,244,150,233,47,103,88,207,16,207,216,51,227, -182,19,203,41,196,105,157,83,155,211,71,103,23,103,185,115,131,243,136, -139,137,75,130,203,46,151,62,46,155,27,198,221,200,189,228,74,116,245,113, -93,225,122,210,245,157,155,179,155,194,237,168,219,175,238,54,238,105,238, -135,220,159,204,52,159,41,158,89,51,115,208,195,200,67,224,81,229,209,63, -11,159,149,48,107,223,172,126,79,67,79,129,103,181,231,35,47,99,47,145, -87,173,215,176,183,165,119,170,247,97,239,23,62,246,62,114,159,227,62,227, -60,55,222,50,222,89,95,204,55,192,183,200,183,203,79,195,111,158,95,133, -223,67,127,35,255,100,255,122,255,209,0,167,128,37,1,103,3,137,129,65,129, -91,2,251,248,122,124,33,191,142,63,58,219,101,246,178,217,237,65,140,160, -185,65,21,65,143,130,173,130,229,193,173,33,104,200,236,144,173,33,247, -231,152,206,145,206,105,14,133,80,126,232,214,208,7,97,230,97,139,195,126, -12,39,133,135,133,87,134,63,142,112,136,88,26,209,49,151,53,119,209,220, -67,115,223,68,250,68,150,68,222,155,103,49,79,57,175,45,74,53,42,62,170, -46,106,60,218,55,186,52,186,63,198,46,102,89,204,213,88,157,88,73,108,75, -28,57,46,42,174,54,110,108,190,223,252,237,243,135,226,157,226,11,227,123, -23,152,47,200,93,112,121,161,206,194,244,133,167,22,169,46,18,44,58,150, -64,76,136,78,56,148,240,65,16,42,168,22,140,37,242,19,119,37,142,10,121, -194,29,194,103,34,47,209,54,209,136,216,67,92,42,30,78,242,72,42,77,122, -146,236,145,188,53,121,36,197,51,165,44,229,185,132,39,169,144,188,76,13, -76,221,155,58,158,22,154,118,32,109,50,61,58,189,49,131,146,145,144,113, -66,170,33,77,147,182,103,234,103,230,102,118,203,172,101,133,178,254,197, -110,139,183,47,30,149,7,201,107,179,144,172,5,89,45,10,182,66,166,232,84, -90,40,215,42,7,178,103,101,87,102,191,205,137,202,57,150,171,158,43,205, -237,204,179,202,219,144,55,156,239,159,255,237,18,194,18,225,146,182,165, -134,75,87,45,29,88,230,189,172,106,57,178,60,113,121,219,10,227,21,5,43, -134,86,6,172,60,184,138,182,42,109,213,79,171,237,87,151,174,126,189,38, -122,77,107,129,94,193,202,130,193,181,1,107,235,11,85,10,229,133,125,235, -220,215,237,93,79,88,47,89,223,181,97,250,134,157,27,62,21,137,138,174, -20,219,23,151,21,127,216,40,220,120,229,27,135,111,202,191,153,220,148, -180,169,171,196,185,100,207,102,210,102,233,230,222,45,158,91,14,150,170, -151,230,151,14,110,13,217,218,180,13,223,86,180,237,245,246,69,219,47,151, -205,40,219,187,131,182,67,185,163,191,60,184,188,101,167,201,206,205,59, -63,84,164,84,244,84,250,84,54,238,210,221,181,97,215,248,110,209,238,27, -123,188,246,52,236,213,219,91,188,247,253,62,201,190,219,85,1,85,77,213, -102,213,101,251,73,251,179,247,63,174,137,170,233,248,150,251,109,93,173, -78,109,113,237,199,3,210,3,253,7,35,14,182,215,185,212,213,29,210,61,84, -82,143,214,43,235,71,14,199,31,190,254,157,239,119,45,13,54,13,85,141,156, -198,226,35,112,68,121,228,233,247,9,223,247,30,13,58,218,118,140,123,172, -225,7,211,31,118,29,103,29,47,106,66,154,242,154,70,155,83,154,251,91,98, -91,186,79,204,62,209,214,234,222,122,252,71,219,31,15,156,52,60,89,121, -74,243,84,201,105,218,233,130,211,147,103,242,207,140,157,149,157,125,126, -46,249,220,96,219,162,182,123,231,99,206,223,106,15,111,239,186,16,116, -225,210,69,255,139,231,59,188,59,206,92,242,184,116,242,178,219,229,19, -87,184,87,154,175,58,95,109,234,116,234,60,254,147,211,79,199,187,156,187, -154,174,185,92,107,185,238,122,189,181,123,102,247,233,27,158,55,206,221, -244,189,121,241,22,255,214,213,158,57,61,221,189,243,122,111,247,197,247, -245,223,22,221,126,114,39,253,206,203,187,217,119,39,238,173,188,79,188, -95,244,64,237,65,217,67,221,135,213,63,91,254,220,216,239,220,127,106,192, -119,160,243,209,220,71,247,6,133,131,207,254,145,245,143,15,67,5,143,153, -143,203,134,13,134,235,158,56,62,57,57,226,63,114,253,233,252,167,67,207, -100,207,38,158,23,254,162,254,203,174,23,22,47,126,248,213,235,215,206, -209,152,209,161,151,242,151,147,191,109,124,165,253,234,192,235,25,175, -219,198,194,198,30,190,201,120,51,49,94,244,86,251,237,193,119,220,119, -29,239,163,223,15,79,228,124,32,127,40,255,104,249,177,245,83,208,167,251, -147,25,147,147,255,4,3,152,243,252,99,51,45,219,0,0,0,32,99,72,82,77,0, -0,122,37,0,0,128,131,0,0,249,255,0,0,128,233,0,0,117,48,0,0,234,96,0,0, -58,152,0,0,23,111,146,95,197,70,0,0,3,68,73,68,65,84,120,218,60,147,203, -107,156,85,28,134,159,115,206,55,201,132,204,100,102,160,73,26,29,205,197, -90,107,110,77,67,21,33,137,90,13,110,181,118,37,136,98,2,218,40,37,85,40, -184,112,33,24,80,112,97,66,131,46,218,162,232,66,177,32,180,255,128,120, -69,148,46,106,90,141,153,166,73,154,219,76,205,164,233,36,157,219,119,126, -231,184,168,233,187,127,31,120,22,143,242,222,179,187,137,169,201,61,192, -230,123,227,39,221,199,159,125,250,115,60,22,27,136,199,227,20,10,133,242, -216,43,175,214,77,76,77,26,43,126,207,251,239,188,157,219,253,168,93,192, -196,212,228,62,99,204,95,10,118,172,200,176,49,230,199,209,55,94,175,7, -248,226,236,57,140,214,207,148,202,229,51,38,48,15,198,234,234,7,78,140, -140,252,113,15,48,49,53,217,97,140,153,61,250,226,209,200,236,149,43,100, -174,47,184,214,116,90,239,109,106,70,107,88,203,230,88,94,93,163,163,173, -181,242,104,119,119,237,197,11,23,112,98,123,223,61,49,62,19,0,104,173, -135,141,49,193,250,141,21,82,137,20,143,247,39,181,247,224,188,195,139, -162,185,177,145,166,198,70,128,218,236,242,50,38,48,84,170,225,211,192, -204,61,133,15,167,79,95,75,183,180,60,116,127,203,125,160,192,3,222,123, -196,90,130,32,130,82,119,157,87,215,215,217,220,218,146,241,145,209,0,64, -125,48,249,73,4,136,104,173,243,253,189,189,81,99,12,0,183,110,223,102, -45,155,173,40,165,10,70,235,100,235,3,233,72,180,54,138,181,150,63,175, -94,37,209,208,208,180,184,178,86,212,90,235,124,60,22,219,238,238,233,142, -122,192,138,80,42,151,184,190,176,88,9,195,48,61,62,50,218,84,42,151,159, -93,90,94,9,173,8,160,232,234,234,162,90,13,255,137,214,6,219,26,208,29, -109,237,90,137,199,90,193,138,229,78,177,136,247,126,238,212,241,177,13, -128,83,199,199,126,178,34,197,106,24,34,78,240,226,104,111,107,75,121,241, -74,123,208,235,185,44,133,157,2,86,4,43,130,49,1,74,171,246,179,223,124, -29,1,248,252,252,183,157,64,157,243,30,107,45,219,119,182,201,222,204,225, -52,4,78,36,85,19,137,212,45,46,46,109,236,127,120,191,81,10,180,209,36, -19,137,250,124,126,179,240,209,244,244,14,144,108,136,199,2,177,22,15,44, -44,45,209,245,200,129,84,96,12,193,193,206,206,138,19,95,185,225,87,23, -54,242,27,251,82,169,20,10,72,37,147,42,22,143,71,173,181,209,154,72,4, -163,13,34,194,173,173,45,106,35,53,146,170,79,108,37,234,234,209,14,207, -165,153,203,61,98,109,71,60,30,71,196,253,175,226,80,64,36,8,240,222,99, -197,98,157,35,22,139,81,42,151,204,247,191,255,50,116,100,104,16,237,67, -135,247,254,128,181,86,172,21,170,97,133,108,46,135,136,197,57,135,56,135, -181,66,46,151,35,12,67,68,132,48,180,197,98,177,220,14,160,5,79,127,79, -207,121,15,163,115,153,57,151,153,203,132,155,249,252,119,127,207,206,186, -106,24,226,196,145,185,150,161,88,46,95,202,100,50,91,243,243,243,78,161, -78,14,15,61,245,37,128,14,109,21,20,60,118,232,208,87,98,109,179,21,73, -28,238,235,59,102,140,209,74,41,172,88,0,158,56,216,119,216,121,151,46, -85,42,233,35,3,131,103,158,123,114,240,110,141,43,107,235,252,240,219,175, -104,99,120,233,249,23,218,128,24,176,247,181,183,222,124,185,185,165,229, -24,74,169,127,111,102,47,158,155,154,62,13,108,3,59,222,251,197,221,156, -255,27,0,50,132,177,177,162,209,252,223,0,0,0,0,73,69,78,68,174,66,96,130}; - -static size_t xml_res_size_3 = 453; -static unsigned char xml_res_file_3[] = { -60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, -110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, -115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, -47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, -47,119,120,120,114,99,34,62,10,32,32,60,111,98,106,101,99,116,32,99,108, -97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61, -34,105,110,100,101,110,116,34,62,101,100,105,116,111,114,115,101,116,116, -105,110,103,115,108,111,99,97,108,98,97,115,101,95,102,111,114,109,98,117, -105,108,100,101,114,95,98,105,116,109,97,112,115,46,99,112,112,36,46,46, -95,105,99,111,110,115,95,105,110,100,101,110,116,46,112,110,103,60,47,111, -98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115, -115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,109, -97,114,103,105,110,115,34,62,101,100,105,116,111,114,115,101,116,116,105, -110,103,115,108,111,99,97,108,98,97,115,101,95,102,111,114,109,98,117,105, -108,100,101,114,95,98,105,116,109,97,112,115,46,99,112,112,36,46,46,95, -105,99,111,110,115,95,109,97,114,103,105,110,115,46,112,110,103,60,47,111, -98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115, -115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,109, -105,115,99,34,62,101,100,105,116,111,114,115,101,116,116,105,110,103,115, -108,111,99,97,108,98,97,115,101,95,102,111,114,109,98,117,105,108,100,101, -114,95,98,105,116,109,97,112,115,46,99,112,112,36,46,46,95,105,99,111,110, -115,95,109,105,115,99,46,112,110,103,60,47,111,98,106,101,99,116,62,10, -60,47,114,101,115,111,117,114,99,101,62,10}; - -void wxC2ED4InitBitmapResources() -{ - - // Check for memory FS. If not present, load the handler: - { - wxMemoryFSHandler::AddFile(wxT("XRC_resource/dummy_file"), wxT("dummy one")); - wxFileSystem fsys; - wxFSFile *f = fsys.OpenFile(wxT("memory:XRC_resource/dummy_file")); - wxMemoryFSHandler::RemoveFile(wxT("XRC_resource/dummy_file")); - if (f) delete f; - else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase); - } - - XRC_ADD_FILE(wxT("XRC_resource/editorsettingslocalbase_formbuilder_bitmaps.cpp$.._icons_indent.png"), xml_res_file_0, xml_res_size_0, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/editorsettingslocalbase_formbuilder_bitmaps.cpp$.._icons_margins.png"), xml_res_file_1, xml_res_size_1, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/editorsettingslocalbase_formbuilder_bitmaps.cpp$.._icons_misc.png"), xml_res_file_2, xml_res_size_2, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/editorsettingslocalbase_formbuilder_bitmaps.cpp$_home_david_devel_git_CL_formbuilder_editorsettingslocalbase_formbuilder_bitmaps.xrc"), xml_res_file_3, xml_res_size_3, wxT("text/xml")); - wxXmlResource::Get()->Load(wxT("memory:XRC_resource/editorsettingslocalbase_formbuilder_bitmaps.cpp$_home_david_devel_git_CL_formbuilder_editorsettingslocalbase_formbuilder_bitmaps.xrc")); -} +// +// This file was automatically generated by wxrc, do not edit by hand. +// + +#include + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +#include +#include +#include +#include + +#if wxCHECK_VERSION(2,8,5) && wxABI_VERSION >= 20805 + #define XRC_ADD_FILE(name, data, size, mime) \ + wxMemoryFSHandler::AddFileWithMimeType(name, data, size, mime) +#else + #define XRC_ADD_FILE(name, data, size, mime) \ + wxMemoryFSHandler::AddFile(name, data, size) +#endif + +static size_t xml_res_size_0 = 353; +static unsigned char xml_res_file_0[] = { +137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, +0,31,243,255,97,0,0,0,4,103,65,77,65,0,0,175,200,55,5,138,233,0,0,0,25, +116,69,88,116,83,111,102,116,119,97,114,101,0,65,100,111,98,101,32,73,109, +97,103,101,82,101,97,100,121,113,201,101,60,0,0,0,243,73,68,65,84,56,203, +99,252,255,255,63,3,37,128,137,129,66,64,177,1,44,48,70,121,121,249,255, +127,255,254,49,252,249,243,7,142,127,255,254,13,199,191,126,253,130,211, +32,188,119,239,94,70,144,62,70,74,195,0,238,130,206,45,239,174,148,251, +8,233,192,248,177,177,177,215,145,109,68,199,103,206,156,209,68,49,224, +199,239,191,12,153,139,158,92,189,117,251,107,200,222,102,245,235,64,69, +138,184,52,131,48,12,128,189,208,178,249,197,127,17,110,54,134,79,223,127, +51,156,190,243,245,204,195,91,95,226,78,77,213,187,78,140,23,224,97,144, +179,248,197,149,87,239,191,51,221,189,250,41,248,236,76,253,235,158,158, +158,87,96,182,253,252,249,19,110,51,204,91,15,31,62,212,65,241,194,183, +159,255,24,86,229,41,106,193,189,244,227,135,10,186,179,145,99,3,195,5, +20,199,130,183,183,247,127,124,129,134,156,38,64,248,243,231,207,84,78, +7,182,182,182,255,177,5,22,178,173,31,62,124,96,196,25,11,3,150,153,0,9, +38,9,133,50,72,142,137,0,0,0,0,73,69,78,68,174,66,96,130}; + +static size_t xml_res_size_1 = 551; +static unsigned char xml_res_file_1[] = { +137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, +0,31,243,255,97,0,0,0,25,116,69,88,116,83,111,102,116,119,97,114,101,0, +65,100,111,98,101,32,73,109,97,103,101,82,101,97,100,121,113,201,101,60, +0,0,1,201,73,68,65,84,120,218,140,83,187,74,67,65,16,157,125,68,13,4,137, +8,34,26,2,106,33,66,16,76,42,43,237,84,16,31,117,240,7,244,55,252,6,177, +17,139,144,210,36,138,69,210,68,237,85,68,20,17,95,144,136,136,141,41,2, +34,241,222,117,102,179,187,185,49,41,156,203,178,187,103,207,156,157,153, +157,203,148,82,64,118,116,124,252,233,121,94,148,246,140,1,16,76,107,58, +101,52,16,180,56,173,133,16,181,149,229,229,129,38,9,71,174,80,80,214,138, +231,207,170,155,5,113,195,7,9,198,108,36,31,239,111,112,121,95,133,100, +172,15,126,60,223,30,131,20,92,227,51,163,189,48,52,60,226,248,78,128,194, +43,93,188,32,169,2,61,82,192,254,201,35,120,190,239,82,16,156,35,206,97, +175,252,0,201,201,111,205,111,19,32,197,133,212,24,204,142,247,195,110, +233,22,54,23,19,208,240,90,2,33,140,96,167,120,3,91,75,9,232,31,24,132, +92,245,74,251,241,191,41,40,148,166,208,125,244,162,4,124,196,245,140,123, +194,149,185,186,35,5,179,7,206,133,94,115,38,116,181,233,29,104,230,140, +55,113,60,15,242,157,128,53,33,184,86,23,152,175,160,39,195,53,167,103, +147,6,23,188,141,223,69,64,154,72,36,14,79,95,69,2,246,102,123,222,41,96, +171,42,133,155,125,211,76,148,66,16,111,227,91,127,110,138,35,164,196,91, +40,228,16,132,241,233,76,235,33,65,24,92,182,241,153,173,102,254,176,160, +194,177,105,184,188,171,64,8,243,165,138,235,170,83,17,241,163,70,162,209, +248,241,33,57,21,135,175,215,107,88,95,93,99,174,149,15,242,121,215,166, +219,153,114,215,86,14,226,134,223,234,3,102,91,11,45,53,25,135,110,22,196, +217,223,20,50,217,236,105,36,18,153,107,253,141,216,64,190,114,14,156,179, +102,95,152,191,177,94,175,159,109,164,211,243,78,0,193,9,156,162,240,127, +171,161,239,211,175,0,3,0,190,20,35,79,5,28,125,193,0,0,0,0,73,69,78,68, +174,66,96,130}; + +static size_t xml_res_size_2 = 3609; +static unsigned char xml_res_file_2[] = { +137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, +0,31,243,255,97,0,0,0,9,112,72,89,115,0,0,11,18,0,0,11,18,1,210,221,126, +252,0,0,10,79,105,67,67,80,80,104,111,116,111,115,104,111,112,32,73,67, +67,32,112,114,111,102,105,108,101,0,0,120,218,157,83,103,84,83,233,22,61, +247,222,244,66,75,136,128,148,75,111,82,21,8,32,82,66,139,128,20,145,38, +42,33,9,16,74,136,33,161,217,21,81,193,17,69,69,4,27,200,160,136,3,142, +142,128,140,21,81,44,12,138,10,216,7,228,33,162,142,131,163,136,138,202, +251,225,123,163,107,214,188,247,230,205,254,181,215,62,231,172,243,157, +179,207,7,192,8,12,150,72,51,81,53,128,12,169,66,30,17,224,131,199,196, +198,225,228,46,64,129,10,36,112,0,16,8,179,100,33,115,253,35,1,0,248,126, +60,60,43,34,192,7,190,0,1,120,211,11,8,0,192,77,155,192,48,28,135,255,15, +234,66,153,92,1,128,132,1,192,116,145,56,75,8,128,20,0,64,122,142,66,166, +0,64,70,1,128,157,152,38,83,0,160,4,0,96,203,99,98,227,0,80,45,0,96,39, +127,230,211,0,128,157,248,153,123,1,0,91,148,33,21,1,160,145,0,32,19,101, +136,68,0,104,59,0,172,207,86,138,69,0,88,48,0,20,102,75,196,57,0,216,45, +0,48,73,87,102,72,0,176,183,0,192,206,16,11,178,0,8,12,0,48,81,136,133, +41,0,4,123,0,96,200,35,35,120,0,132,153,0,20,70,242,87,60,241,43,174,16, +231,42,0,0,120,153,178,60,185,36,57,69,129,91,8,45,113,7,87,87,46,30,40, +206,73,23,43,20,54,97,2,97,154,64,46,194,121,153,25,50,129,52,15,224,243, +204,0,0,160,145,21,17,224,131,243,253,120,206,14,174,206,206,54,142,182, +14,95,45,234,191,6,255,34,98,98,227,254,229,207,171,112,64,0,0,225,116, +126,209,254,44,47,179,26,128,59,6,128,109,254,162,37,238,4,104,94,11,160, +117,247,139,102,178,15,64,181,0,160,233,218,87,243,112,248,126,60,60,69, +161,144,185,217,217,229,228,228,216,74,196,66,91,97,202,87,125,254,103, +194,95,192,87,253,108,249,126,60,252,247,245,224,190,226,36,129,50,93,129, +71,4,248,224,194,204,244,76,165,28,207,146,9,132,98,220,230,143,71,252, +183,11,255,252,29,211,34,196,73,98,185,88,42,20,227,81,18,113,142,68,154, +140,243,50,165,34,137,66,146,41,197,37,210,255,100,226,223,44,251,3,62, +223,53,0,176,106,62,1,123,145,45,168,93,99,3,246,75,39,16,88,116,192,226, +247,0,0,242,187,111,193,212,40,8,3,128,104,131,225,207,119,255,239,63,253, +71,160,37,0,128,102,73,146,113,0,0,94,68,36,46,84,202,179,63,199,8,0,0, +68,160,129,42,176,65,27,244,193,24,44,192,6,28,193,5,220,193,11,252,96, +54,132,66,36,196,194,66,16,66,10,100,128,28,114,96,41,172,130,66,40,134, +205,176,29,42,96,47,212,64,29,52,192,81,104,134,147,112,14,46,194,85,184, +14,61,112,15,250,97,8,158,193,40,188,129,9,4,65,200,8,19,97,33,218,136, +1,98,138,88,35,142,8,23,153,133,248,33,193,72,4,18,139,36,32,201,136,20, +81,34,75,145,53,72,49,82,138,84,32,85,72,29,242,61,114,2,57,135,92,70,186, +145,59,200,0,50,130,252,134,188,71,49,148,129,178,81,61,212,12,181,67,185, +168,55,26,132,70,162,11,208,100,116,49,154,143,22,160,155,208,114,180,26, +61,140,54,161,231,208,171,104,15,218,143,62,67,199,48,192,232,24,7,51,196, +108,48,46,198,195,66,177,56,44,9,147,99,203,177,34,172,12,171,198,26,176, +86,172,3,187,137,245,99,207,177,119,4,18,129,69,192,9,54,4,119,66,32,97, +30,65,72,88,76,88,78,216,72,168,32,28,36,52,17,218,9,55,9,3,132,81,194, +39,34,147,168,75,180,38,186,17,249,196,24,98,50,49,135,88,72,44,35,214, +18,143,19,47,16,123,136,67,196,55,36,18,137,67,50,39,185,144,2,73,177,164, +84,210,18,210,70,210,110,82,35,233,44,169,155,52,72,26,35,147,201,218,100, +107,178,7,57,148,44,32,43,200,133,228,157,228,195,228,51,228,27,228,33, +242,91,10,157,98,64,113,164,248,83,226,40,82,202,106,74,25,229,16,229,52, +229,6,101,152,50,65,85,163,154,82,221,168,161,84,17,53,143,90,66,173,161, +182,82,175,81,135,168,19,52,117,154,57,205,131,22,73,75,165,173,162,149, +211,26,104,23,104,247,105,175,232,116,186,17,221,149,30,78,151,208,87,210, +203,233,71,232,151,232,3,244,119,12,13,134,21,131,199,136,103,40,25,155, +24,7,24,103,25,119,24,175,152,76,166,25,211,139,25,199,84,48,55,49,235, +152,231,153,15,153,111,85,88,42,182,42,124,21,145,202,10,149,74,149,38, +149,27,42,47,84,169,170,166,170,222,170,11,85,243,85,203,84,143,169,94, +83,125,174,70,85,51,83,227,169,9,212,150,171,85,170,157,80,235,83,27,83, +103,169,59,168,135,170,103,168,111,84,63,164,126,89,253,137,6,89,195,76, +195,79,67,164,81,160,177,95,227,188,198,32,11,99,25,179,120,44,33,107,13, +171,134,117,129,53,196,38,177,205,217,124,118,42,187,152,253,29,187,139, +61,170,169,161,57,67,51,74,51,87,179,82,243,148,102,63,7,227,152,113,248, +156,116,78,9,231,40,167,151,243,126,138,222,20,239,41,226,41,27,166,52, +76,185,49,101,92,107,170,150,151,150,88,171,72,171,81,171,71,235,189,54, +174,237,167,157,166,189,69,187,89,251,129,14,65,199,74,39,92,39,71,103, +143,206,5,157,231,83,217,83,221,167,10,167,22,77,61,58,245,174,46,170,107, +165,27,161,187,68,119,191,110,167,238,152,158,190,94,128,158,76,111,167, +222,121,189,231,250,28,125,47,253,84,253,109,250,167,245,71,12,88,6,179, +12,36,6,219,12,206,24,60,197,53,113,111,60,29,47,199,219,241,81,67,93,195, +64,67,165,97,149,97,151,225,132,145,185,209,60,163,213,70,141,70,15,140, +105,198,92,227,36,227,109,198,109,198,163,38,6,38,33,38,75,77,234,77,238, +154,82,77,185,166,41,166,59,76,59,76,199,205,204,205,162,205,214,153,53, +155,61,49,215,50,231,155,231,155,215,155,223,183,96,90,120,90,44,182,168, +182,184,101,73,178,228,90,166,89,238,182,188,110,133,90,57,89,165,88,85, +90,93,179,70,173,157,173,37,214,187,173,187,167,17,167,185,78,147,78,171, +158,214,103,195,176,241,182,201,182,169,183,25,176,229,216,6,219,174,182, +109,182,125,97,103,98,23,103,183,197,174,195,238,147,189,147,125,186,125, +141,253,61,7,13,135,217,14,171,29,90,29,126,115,180,114,20,58,86,58,222, +154,206,156,238,63,125,197,244,150,233,47,103,88,207,16,207,216,51,227, +182,19,203,41,196,105,157,83,155,211,71,103,23,103,185,115,131,243,136, +139,137,75,130,203,46,151,62,46,155,27,198,221,200,189,228,74,116,245,113, +93,225,122,210,245,157,155,179,155,194,237,168,219,175,238,54,238,105,238, +135,220,159,204,52,159,41,158,89,51,115,208,195,200,67,224,81,229,209,63, +11,159,149,48,107,223,172,126,79,67,79,129,103,181,231,35,47,99,47,145, +87,173,215,176,183,165,119,170,247,97,239,23,62,246,62,114,159,227,62,227, +60,55,222,50,222,89,95,204,55,192,183,200,183,203,79,195,111,158,95,133, +223,67,127,35,255,100,255,122,255,209,0,167,128,37,1,103,3,137,129,65,129, +91,2,251,248,122,124,33,191,142,63,58,219,101,246,178,217,237,65,140,160, +185,65,21,65,143,130,173,130,229,193,173,33,104,200,236,144,173,33,247, +231,152,206,145,206,105,14,133,80,126,232,214,208,7,97,230,97,139,195,126, +12,39,133,135,133,87,134,63,142,112,136,88,26,209,49,151,53,119,209,220, +67,115,223,68,250,68,150,68,222,155,103,49,79,57,175,45,74,53,42,62,170, +46,106,60,218,55,186,52,186,63,198,46,102,89,204,213,88,157,88,73,108,75, +28,57,46,42,174,54,110,108,190,223,252,237,243,135,226,157,226,11,227,123, +23,152,47,200,93,112,121,161,206,194,244,133,167,22,169,46,18,44,58,150, +64,76,136,78,56,148,240,65,16,42,168,22,140,37,242,19,119,37,142,10,121, +194,29,194,103,34,47,209,54,209,136,216,67,92,42,30,78,242,72,42,77,122, +146,236,145,188,53,121,36,197,51,165,44,229,185,132,39,169,144,188,76,13, +76,221,155,58,158,22,154,118,32,109,50,61,58,189,49,131,146,145,144,113, +66,170,33,77,147,182,103,234,103,230,102,118,203,172,101,133,178,254,197, +110,139,183,47,30,149,7,201,107,179,144,172,5,89,45,10,182,66,166,232,84, +90,40,215,42,7,178,103,101,87,102,191,205,137,202,57,150,171,158,43,205, +237,204,179,202,219,144,55,156,239,159,255,237,18,194,18,225,146,182,165, +134,75,87,45,29,88,230,189,172,106,57,178,60,113,121,219,10,227,21,5,43, +134,86,6,172,60,184,138,182,42,109,213,79,171,237,87,151,174,126,189,38, +122,77,107,129,94,193,202,130,193,181,1,107,235,11,85,10,229,133,125,235, +220,215,237,93,79,88,47,89,223,181,97,250,134,157,27,62,21,137,138,174, +20,219,23,151,21,127,216,40,220,120,229,27,135,111,202,191,153,220,148, +180,169,171,196,185,100,207,102,210,102,233,230,222,45,158,91,14,150,170, +151,230,151,14,110,13,217,218,180,13,223,86,180,237,245,246,69,219,47,151, +205,40,219,187,131,182,67,185,163,191,60,184,188,101,167,201,206,205,59, +63,84,164,84,244,84,250,84,54,238,210,221,181,97,215,248,110,209,238,27, +123,188,246,52,236,213,219,91,188,247,253,62,201,190,219,85,1,85,77,213, +102,213,101,251,73,251,179,247,63,174,137,170,233,248,150,251,109,93,173, +78,109,113,237,199,3,210,3,253,7,35,14,182,215,185,212,213,29,210,61,84, +82,143,214,43,235,71,14,199,31,190,254,157,239,119,45,13,54,13,85,141,156, +198,226,35,112,68,121,228,233,247,9,223,247,30,13,58,218,118,140,123,172, +225,7,211,31,118,29,103,29,47,106,66,154,242,154,70,155,83,154,251,91,98, +91,186,79,204,62,209,214,234,222,122,252,71,219,31,15,156,52,60,89,121, +74,243,84,201,105,218,233,130,211,147,103,242,207,140,157,149,157,125,126, +46,249,220,96,219,162,182,123,231,99,206,223,106,15,111,239,186,16,116, +225,210,69,255,139,231,59,188,59,206,92,242,184,116,242,178,219,229,19, +87,184,87,154,175,58,95,109,234,116,234,60,254,147,211,79,199,187,156,187, +154,174,185,92,107,185,238,122,189,181,123,102,247,233,27,158,55,206,221, +244,189,121,241,22,255,214,213,158,57,61,221,189,243,122,111,247,197,247, +245,223,22,221,126,114,39,253,206,203,187,217,119,39,238,173,188,79,188, +95,244,64,237,65,217,67,221,135,213,63,91,254,220,216,239,220,127,106,192, +119,160,243,209,220,71,247,6,133,131,207,254,145,245,143,15,67,5,143,153, +143,203,134,13,134,235,158,56,62,57,57,226,63,114,253,233,252,167,67,207, +100,207,38,158,23,254,162,254,203,174,23,22,47,126,248,213,235,215,206, +209,152,209,161,151,242,151,147,191,109,124,165,253,234,192,235,25,175, +219,198,194,198,30,190,201,120,51,49,94,244,86,251,237,193,119,220,119, +29,239,163,223,15,79,228,124,32,127,40,255,104,249,177,245,83,208,167,251, +147,25,147,147,255,4,3,152,243,252,99,51,45,219,0,0,0,32,99,72,82,77,0, +0,122,37,0,0,128,131,0,0,249,255,0,0,128,233,0,0,117,48,0,0,234,96,0,0, +58,152,0,0,23,111,146,95,197,70,0,0,3,68,73,68,65,84,120,218,60,147,203, +107,156,85,28,134,159,115,206,55,201,132,204,100,102,160,73,26,29,205,197, +90,107,110,77,67,21,33,137,90,13,110,181,118,37,136,98,2,218,40,37,85,40, +184,112,33,24,80,112,97,66,131,46,218,162,232,66,177,32,180,255,128,120, +69,148,46,106,90,141,153,166,73,154,219,76,205,164,233,36,157,219,119,126, +231,184,168,233,187,127,31,120,22,143,242,222,179,187,137,169,201,61,192, +230,123,227,39,221,199,159,125,250,115,60,22,27,136,199,227,20,10,133,242, +216,43,175,214,77,76,77,26,43,126,207,251,239,188,157,219,253,168,93,192, +196,212,228,62,99,204,95,10,118,172,200,176,49,230,199,209,55,94,175,7, +248,226,236,57,140,214,207,148,202,229,51,38,48,15,198,234,234,7,78,140, +140,252,113,15,48,49,53,217,97,140,153,61,250,226,209,200,236,149,43,100, +174,47,184,214,116,90,239,109,106,70,107,88,203,230,88,94,93,163,163,173, +181,242,104,119,119,237,197,11,23,112,98,123,223,61,49,62,19,0,104,173, +135,141,49,193,250,141,21,82,137,20,143,247,39,181,247,224,188,195,139, +162,185,177,145,166,198,70,128,218,236,242,50,38,48,84,170,225,211,192, +204,61,133,15,167,79,95,75,183,180,60,116,127,203,125,160,192,3,222,123, +196,90,130,32,130,82,119,157,87,215,215,217,220,218,146,241,145,209,0,64, +125,48,249,73,4,136,104,173,243,253,189,189,81,99,12,0,183,110,223,102, +45,155,173,40,165,10,70,235,100,235,3,233,72,180,54,138,181,150,63,175, +94,37,209,208,208,180,184,178,86,212,90,235,124,60,22,219,238,238,233,142, +122,192,138,80,42,151,184,190,176,88,9,195,48,61,62,50,218,84,42,151,159, +93,90,94,9,173,8,160,232,234,234,162,90,13,255,137,214,6,219,26,208,29, +109,237,90,137,199,90,193,138,229,78,177,136,247,126,238,212,241,177,13, +128,83,199,199,126,178,34,197,106,24,34,78,240,226,104,111,107,75,121,241, +74,123,208,235,185,44,133,157,2,86,4,43,130,49,1,74,171,246,179,223,124, +29,1,248,252,252,183,157,64,157,243,30,107,45,219,119,182,201,222,204,225, +52,4,78,36,85,19,137,212,45,46,46,109,236,127,120,191,81,10,180,209,36, +19,137,250,124,126,179,240,209,244,244,14,144,108,136,199,2,177,22,15,44, +44,45,209,245,200,129,84,96,12,193,193,206,206,138,19,95,185,225,87,23, +54,242,27,251,82,169,20,10,72,37,147,42,22,143,71,173,181,209,154,72,4, +163,13,34,194,173,173,45,106,35,53,146,170,79,108,37,234,234,209,14,207, +165,153,203,61,98,109,71,60,30,71,196,253,175,226,80,64,36,8,240,222,99, +197,98,157,35,22,139,81,42,151,204,247,191,255,50,116,100,104,16,237,67, +135,247,254,128,181,86,172,21,170,97,133,108,46,135,136,197,57,135,56,135, +181,66,46,151,35,12,67,68,132,48,180,197,98,177,220,14,160,5,79,127,79, +207,121,15,163,115,153,57,151,153,203,132,155,249,252,119,127,207,206,186, +106,24,226,196,145,185,150,161,88,46,95,202,100,50,91,243,243,243,78,161, +78,14,15,61,245,37,128,14,109,21,20,60,118,232,208,87,98,109,179,21,73, +28,238,235,59,102,140,209,74,41,172,88,0,158,56,216,119,216,121,151,46, +85,42,233,35,3,131,103,158,123,114,240,110,141,43,107,235,252,240,219,175, +104,99,120,233,249,23,218,128,24,176,247,181,183,222,124,185,185,165,229, +24,74,169,127,111,102,47,158,155,154,62,13,108,3,59,222,251,197,221,156, +255,27,0,50,132,177,177,162,209,252,223,0,0,0,0,73,69,78,68,174,66,96,130}; + +static size_t xml_res_size_3 = 453; +static unsigned char xml_res_file_3[] = { +60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, +110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, +115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, +47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, +47,119,120,120,114,99,34,62,10,32,32,60,111,98,106,101,99,116,32,99,108, +97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61, +34,105,110,100,101,110,116,34,62,101,100,105,116,111,114,115,101,116,116, +105,110,103,115,108,111,99,97,108,98,97,115,101,95,102,111,114,109,98,117, +105,108,100,101,114,95,98,105,116,109,97,112,115,46,99,112,112,36,46,46, +95,105,99,111,110,115,95,105,110,100,101,110,116,46,112,110,103,60,47,111, +98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115, +115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,109, +97,114,103,105,110,115,34,62,101,100,105,116,111,114,115,101,116,116,105, +110,103,115,108,111,99,97,108,98,97,115,101,95,102,111,114,109,98,117,105, +108,100,101,114,95,98,105,116,109,97,112,115,46,99,112,112,36,46,46,95, +105,99,111,110,115,95,109,97,114,103,105,110,115,46,112,110,103,60,47,111, +98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115, +115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,109, +105,115,99,34,62,101,100,105,116,111,114,115,101,116,116,105,110,103,115, +108,111,99,97,108,98,97,115,101,95,102,111,114,109,98,117,105,108,100,101, +114,95,98,105,116,109,97,112,115,46,99,112,112,36,46,46,95,105,99,111,110, +115,95,109,105,115,99,46,112,110,103,60,47,111,98,106,101,99,116,62,10, +60,47,114,101,115,111,117,114,99,101,62,10}; + +void wxC2ED4InitBitmapResources() +{ + + // Check for memory FS. If not present, load the handler: + { + wxMemoryFSHandler::AddFile(wxT("XRC_resource/dummy_file"), wxT("dummy one")); + wxFileSystem fsys; + wxFSFile *f = fsys.OpenFile(wxT("memory:XRC_resource/dummy_file")); + wxMemoryFSHandler::RemoveFile(wxT("XRC_resource/dummy_file")); + if (f) delete f; + else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase); + } + + XRC_ADD_FILE(wxT("XRC_resource/editorsettingslocalbase_formbuilder_bitmaps.cpp$.._icons_indent.png"), xml_res_file_0, xml_res_size_0, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/editorsettingslocalbase_formbuilder_bitmaps.cpp$.._icons_margins.png"), xml_res_file_1, xml_res_size_1, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/editorsettingslocalbase_formbuilder_bitmaps.cpp$.._icons_misc.png"), xml_res_file_2, xml_res_size_2, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/editorsettingslocalbase_formbuilder_bitmaps.cpp$C__src_codelite_formbuilder_editorsettingslocalbase_formbuilder_bitmaps.xrc"), xml_res_file_3, xml_res_size_3, wxT("text/xml")); + wxXmlResource::Get()->Load(wxT("memory:XRC_resource/editorsettingslocalbase_formbuilder_bitmaps.cpp$C__src_codelite_formbuilder_editorsettingslocalbase_formbuilder_bitmaps.xrc")); +} diff -Nru codelite-8.0.1+dfsg2/LiteEditor/editorsettingslocalbase.h codelite-9.0+dfsg/LiteEditor/editorsettingslocalbase.h --- codelite-8.0.1+dfsg2/LiteEditor/editorsettingslocalbase.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/editorsettingslocalbase.h 2015-10-11 13:56:07.000000000 +0000 @@ -4,8 +4,8 @@ // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// -#ifndef EDITORSETTINGSLOCALBASE_BASE_CLASSES_H -#define EDITORSETTINGSLOCALBASE_BASE_CLASSES_H +#ifndef CODELITE_FORMBUILDER_EDITORSETTINGSLOCALBASE_BASE_CLASSES_H +#define CODELITE_FORMBUILDER_EDITORSETTINGSLOCALBASE_BASE_CLASSES_H #include #include diff -Nru codelite-8.0.1+dfsg2/LiteEditor/editorsettingsmiscbasepanel.h codelite-9.0+dfsg/LiteEditor/editorsettingsmiscbasepanel.h --- codelite-8.0.1+dfsg2/LiteEditor/editorsettingsmiscbasepanel.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/editorsettingsmiscbasepanel.h 2015-10-11 13:56:07.000000000 +0000 @@ -4,8 +4,8 @@ // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// -#ifndef EDITOR_OPTIONS_MISC_BASE_CLASSES_H -#define EDITOR_OPTIONS_MISC_BASE_CLASSES_H +#ifndef CODELITE_LITEEDITOR_EDITOR_OPTIONS_MISC_BASE_CLASSES_H +#define CODELITE_LITEEDITOR_EDITOR_OPTIONS_MISC_BASE_CLASSES_H #include #include diff -Nru codelite-8.0.1+dfsg2/LiteEditor/editorsettings_terminal_base.cpp codelite-9.0+dfsg/LiteEditor/editorsettings_terminal_base.cpp --- codelite-8.0.1+dfsg2/LiteEditor/editorsettings_terminal_base.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/editorsettings_terminal_base.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -31,12 +31,6 @@ bSizer1->Add(m_checkBoxUseCodeLiteTerminal, 0, wxALL, 5); - m_checkBoxMSWWrapDoubleQuotes = new wxCheckBox(this, wxID_ANY, _("Windows only: commands executed with CMD.EXE are wrapped with double quotes"), wxDefaultPosition, wxSize(-1,-1), 0); - m_checkBoxMSWWrapDoubleQuotes->SetValue(true); - m_checkBoxMSWWrapDoubleQuotes->SetToolTip(_("Windows only: commands executed with CMD.EXE are wrapped with double quotes\nThis is often needed to allow executing commands with spaces in their path")); - - bSizer1->Add(m_checkBoxMSWWrapDoubleQuotes, 0, wxALL, 5); - m_staticText2 = new wxStaticText(this, wxID_ANY, _("Enter here the command to be used by CodeLite for launching consoles:"), wxDefaultPosition, wxSize(-1, -1), 0); bSizer1->Add(m_staticText2, 0, wxALL|wxEXPAND, 5); @@ -75,13 +69,13 @@ fgSizer1->Add(m_staticText6, 0, wxALL, 5); + SetName(wxT("EditorSettingsTerminalBase")); SetSizeHints(500,300); if ( GetSizer() ) { GetSizer()->Fit(this); } - Centre(wxBOTH); + CentreOnParent(wxBOTH); // Connect events - m_checkBoxMSWWrapDoubleQuotes->Connect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(EditorSettingsTerminalBase::OnCheckboxmswwrapdoublequotesUpdateUi), NULL, this); m_staticText2->Connect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(EditorSettingsTerminalBase::OnUseCodeLiteTerminalUI), NULL, this); m_textCtrlProgramConsoleCmd->Connect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(EditorSettingsTerminalBase::OnUseCodeLiteTerminalUI), NULL, this); m_staticText3->Connect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(EditorSettingsTerminalBase::OnUseCodeLiteTerminalUI), NULL, this); @@ -93,7 +87,6 @@ EditorSettingsTerminalBase::~EditorSettingsTerminalBase() { - m_checkBoxMSWWrapDoubleQuotes->Disconnect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(EditorSettingsTerminalBase::OnCheckboxmswwrapdoublequotesUpdateUi), NULL, this); m_staticText2->Disconnect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(EditorSettingsTerminalBase::OnUseCodeLiteTerminalUI), NULL, this); m_textCtrlProgramConsoleCmd->Disconnect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(EditorSettingsTerminalBase::OnUseCodeLiteTerminalUI), NULL, this); m_staticText3->Disconnect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(EditorSettingsTerminalBase::OnUseCodeLiteTerminalUI), NULL, this); diff -Nru codelite-8.0.1+dfsg2/LiteEditor/editorsettings_terminal_base.h codelite-9.0+dfsg/LiteEditor/editorsettings_terminal_base.h --- codelite-8.0.1+dfsg2/LiteEditor/editorsettings_terminal_base.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/editorsettings_terminal_base.h 2015-10-11 13:56:07.000000000 +0000 @@ -4,8 +4,8 @@ // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// -#ifndef EDITOR_OPTIONS_TERMINAL_BASE_CLASSES_H -#define EDITOR_OPTIONS_TERMINAL_BASE_CLASSES_H +#ifndef CODELITE_LITEEDITOR_EDITOR_OPTIONS_TERMINAL_BASE_CLASSES_H +#define CODELITE_LITEEDITOR_EDITOR_OPTIONS_TERMINAL_BASE_CLASSES_H #include #include @@ -17,12 +17,17 @@ #include #include #include +#if wxVERSION_NUMBER >= 2900 +#include +#include +#include +#include +#endif class EditorSettingsTerminalBase : public wxPanel { protected: wxCheckBox* m_checkBoxUseCodeLiteTerminal; - wxCheckBox* m_checkBoxMSWWrapDoubleQuotes; wxStaticText* m_staticText2; wxTextCtrl* m_textCtrlProgramConsoleCmd; wxStaticText* m_staticText3; @@ -31,12 +36,10 @@ wxStaticText* m_staticText6; protected: - virtual void OnCheckboxmswwrapdoublequotesUpdateUi(wxUpdateUIEvent& event) { event.Skip(); } virtual void OnUseCodeLiteTerminalUI(wxUpdateUIEvent& event) { event.Skip(); } public: wxCheckBox* GetCheckBoxUseCodeLiteTerminal() { return m_checkBoxUseCodeLiteTerminal; } - wxCheckBox* GetCheckBoxMSWWrapDoubleQuotes() { return m_checkBoxMSWWrapDoubleQuotes; } wxStaticText* GetStaticText2() { return m_staticText2; } wxTextCtrl* GetTextCtrlProgramConsoleCmd() { return m_textCtrlProgramConsoleCmd; } wxStaticText* GetStaticText3() { return m_staticText3; } diff -Nru codelite-8.0.1+dfsg2/LiteEditor/editorsettingsterminal.cpp codelite-9.0+dfsg/LiteEditor/editorsettingsterminal.cpp --- codelite-8.0.1+dfsg2/LiteEditor/editorsettingsterminal.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/editorsettingsterminal.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -33,14 +33,12 @@ OptionsConfigPtr options = EditorConfigST::Get()->GetOptions(); m_textCtrlProgramConsoleCmd->SetValue(options->GetProgramConsoleCommand()); m_checkBoxUseCodeLiteTerminal->SetValue(options->HasOption(OptionsConfig::Opt_Use_CodeLite_Terminal)); - m_checkBoxMSWWrapDoubleQuotes->SetValue(options->MSWIsWrapCmdWithDoubleQuotes()); } void EditorSettingsTerminal::Save(OptionsConfigPtr options) { options->SetProgramConsoleCommand(m_textCtrlProgramConsoleCmd->GetValue()); options->EnableOption(OptionsConfig::Opt_Use_CodeLite_Terminal, m_checkBoxUseCodeLiteTerminal->IsChecked()); - options->MSWWrapCmdWithDoubleQuotes(m_checkBoxMSWWrapDoubleQuotes->IsChecked()); } void EditorSettingsTerminal::OnUseCodeLiteTerminalUI(wxUpdateUIEvent& event) @@ -51,11 +49,11 @@ event.Enable(!m_checkBoxUseCodeLiteTerminal->IsChecked()); #endif } -void EditorSettingsTerminal::OnCheckboxmswwrapdoublequotesUpdateUi(wxUpdateUIEvent& event) +void EditorSettingsTerminal::OnCheckboxmswwrapdoublequotesUpdateUi(wxUpdateUIEvent& event) { #ifdef __WXMSW__ event.Enable(true); #else event.Enable(false); #endif -} +} diff -Nru codelite-8.0.1+dfsg2/LiteEditor/filechecklistbase.cpp codelite-9.0+dfsg/LiteEditor/filechecklistbase.cpp --- codelite-8.0.1+dfsg2/LiteEditor/filechecklistbase.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/filechecklistbase.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -69,11 +69,19 @@ m_stdBtnSizer2->AddButton(m_buttonCancel); m_stdBtnSizer2->Realize(); + SetName(wxT("FileCheckListBase")); SetSizeHints(-1,-1); if ( GetSizer() ) { GetSizer()->Fit(this); } - Centre(wxBOTH); + CentreOnParent(wxBOTH); +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(this)) { + wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); + } +#endif // Connect events m_clearAll->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(FileCheckListBase::OnClearAll), NULL, this); m_checkAllButton->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(FileCheckListBase::OnCheckAll), NULL, this); @@ -125,11 +133,19 @@ boxSizer26->Add(m_checkBoxRemember, 0, wxALL, 5); + SetName(wxT("FilesModifiedDlgBase")); SetSizeHints(-1,-1); if ( GetSizer() ) { GetSizer()->Fit(this); } - Centre(wxBOTH); + CentreOnParent(wxBOTH); +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(this)) { + wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); + } +#endif // Connect events m_cmdLnkBtn30->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(FilesModifiedDlgBase::OnLoad), NULL, this); m_cmdLnkBtn28->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(FilesModifiedDlgBase::OnChoose), NULL, this); diff -Nru codelite-8.0.1+dfsg2/LiteEditor/filechecklistbase.h codelite-9.0+dfsg/LiteEditor/filechecklistbase.h --- codelite-8.0.1+dfsg2/LiteEditor/filechecklistbase.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/filechecklistbase.h 2015-10-11 13:56:07.000000000 +0000 @@ -4,8 +4,8 @@ // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// -#ifndef FILECHECKLISTBASE_BASE_CLASSES_H -#define FILECHECKLISTBASE_BASE_CLASSES_H +#ifndef CODELITE_LITEEDITOR_FILECHECKLISTBASE_BASE_CLASSES_H +#define CODELITE_LITEEDITOR_FILECHECKLISTBASE_BASE_CLASSES_H #include #include @@ -20,6 +20,12 @@ #include #include #include +#if wxVERSION_NUMBER >= 2900 +#include +#include +#include +#include +#endif class FileCheckListBase : public wxDialog { diff -Nru codelite-8.0.1+dfsg2/LiteEditor/filechecklistbase_liteeditor_bitmaps.cpp codelite-9.0+dfsg/LiteEditor/filechecklistbase_liteeditor_bitmaps.cpp --- codelite-8.0.1+dfsg2/LiteEditor/filechecklistbase_liteeditor_bitmaps.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/filechecklistbase_liteeditor_bitmaps.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,48 +1,47 @@ -// -// This file was automatically generated by wxrc, do not edit by hand. -// - -#include - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#include -#include -#include -#include - -#if wxCHECK_VERSION(2,8,5) && wxABI_VERSION >= 20805 - #define XRC_ADD_FILE(name, data, size, mime) \ - wxMemoryFSHandler::AddFileWithMimeType(name, data, size, mime) -#else - #define XRC_ADD_FILE(name, data, size, mime) \ - wxMemoryFSHandler::AddFile(name, data, size) -#endif - -static size_t xml_res_size_0 = 108; -static unsigned char xml_res_file_0[] = { -60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, -110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, -115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, -47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, -47,119,120,120,114,99,34,32,118,101,114,115,105,111,110,61,34,50,46,51, -46,48,46,49,34,47,62,10}; - -void wxCraftertLrKnvInitBitmapResources() -{ - - // Check for memory FS. If not present, load the handler: - { - wxMemoryFSHandler::AddFile(wxT("XRC_resource/dummy_file"), wxT("dummy one")); - wxFileSystem fsys; - wxFSFile *f = fsys.OpenFile(wxT("memory:XRC_resource/dummy_file")); - wxMemoryFSHandler::RemoveFile(wxT("XRC_resource/dummy_file")); - if (f) delete f; - else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase); - } - - XRC_ADD_FILE(wxT("XRC_resource/filechecklistbase_liteeditor_bitmaps.cpp$_home_david_devel_git_CL_LiteEditor_filechecklistbase_liteeditor_bitmaps.xrc"), xml_res_file_0, xml_res_size_0, wxT("text/xml")); - wxXmlResource::Get()->Load(wxT("memory:XRC_resource/filechecklistbase_liteeditor_bitmaps.cpp$_home_david_devel_git_CL_LiteEditor_filechecklistbase_liteeditor_bitmaps.xrc")); -} +// +// This file was automatically generated by wxrc, do not edit by hand. +// + +#include + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +#include +#include +#include +#include + +#if wxCHECK_VERSION(2,8,5) && wxABI_VERSION >= 20805 + #define XRC_ADD_FILE(name, data, size, mime) \ + wxMemoryFSHandler::AddFileWithMimeType(name, data, size, mime) +#else + #define XRC_ADD_FILE(name, data, size, mime) \ + wxMemoryFSHandler::AddFile(name, data, size) +#endif + +static size_t xml_res_size_0 = 90; +static unsigned char xml_res_file_0[] = { +60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, +110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, +115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, +47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, +47,119,120,120,114,99,34,47,62,10}; + +void wxCraftertLrKnvInitBitmapResources() +{ + + // Check for memory FS. If not present, load the handler: + { + wxMemoryFSHandler::AddFile(wxT("XRC_resource/dummy_file"), wxT("dummy one")); + wxFileSystem fsys; + wxFSFile *f = fsys.OpenFile(wxT("memory:XRC_resource/dummy_file")); + wxMemoryFSHandler::RemoveFile(wxT("XRC_resource/dummy_file")); + if (f) delete f; + else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase); + } + + XRC_ADD_FILE(wxT("XRC_resource/filechecklistbase_liteeditor_bitmaps.cpp$C__src_codelite_LiteEditor_filechecklistbase_liteeditor_bitmaps.xrc"), xml_res_file_0, xml_res_size_0, wxT("text/xml")); + wxXmlResource::Get()->Load(wxT("memory:XRC_resource/filechecklistbase_liteeditor_bitmaps.cpp$C__src_codelite_LiteEditor_filechecklistbase_liteeditor_bitmaps.xrc")); +} diff -Nru codelite-8.0.1+dfsg2/LiteEditor/filechecklistbase.wxcp codelite-9.0+dfsg/LiteEditor/filechecklistbase.wxcp --- codelite-8.0.1+dfsg2/LiteEditor/filechecklistbase.wxcp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/filechecklistbase.wxcp 2015-10-11 13:56:07.000000000 +0000 @@ -72,6 +72,10 @@ "m_label": "Style:", "m_value": "" }, { + "type": "bool", + "m_label": "Enable Window Persistency:", + "m_value": true + }, { "type": "string", "m_label": "Title:", "m_value": "Select Files" @@ -128,6 +132,10 @@ "m_sizerFlags": [], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer1" }, { @@ -226,6 +234,10 @@ "m_sizerFlags": ["wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer3" }, { @@ -320,6 +332,10 @@ "m_sizerFlags": ["wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer4" }, { @@ -798,6 +814,10 @@ "m_label": "Style:", "m_value": "" }, { + "type": "bool", + "m_label": "Enable Window Persistency:", + "m_value": true + }, { "type": "string", "m_label": "Title:", "m_value": "Files were modified outside the editor" @@ -854,6 +874,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "boxSizer26" }, { diff -Nru codelite-8.0.1+dfsg2/LiteEditor/fileexplorer.cpp codelite-9.0+dfsg/LiteEditor/fileexplorer.cpp --- codelite-8.0.1+dfsg2/LiteEditor/fileexplorer.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/fileexplorer.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -42,224 +42,53 @@ #include "OpenFolderDlg.h" #include "globals.h" #include +#include "clTreeCtrlPanel.h" +#include "clFileOrFolderDropTarget.h" +#include "codelite_events.h" +#include "clWorkspaceView.h" FileExplorer::FileExplorer(wxWindow* parent, const wxString& caption) : wxPanel(parent, wxID_ANY, wxDefaultPosition, wxSize(250, 300)) , m_caption(caption) - , m_isLinkedToEditor(false) { - long link = EditorConfigST::Get()->GetInteger(wxT("LinkFileExplorerToEditor"), 0); - m_isLinkedToEditor = link ? true : false; CreateGUIControls(); m_themeHelper = new ThemeHandlerHelper(this); + SetDropTarget(new clFileOrFolderDropTarget(this)); + Bind(wxEVT_DND_FOLDER_DROPPED, &FileExplorer::OnFolderDropped, this); } FileExplorer::~FileExplorer() { wxDELETE(m_themeHelper); - wxTheApp->Disconnect(XRCID("show_in_explorer"), - wxEVT_COMMAND_MENU_SELECTED, - wxCommandEventHandler(FileExplorer::OnShowFile), - NULL, - this); - wxTheApp->Disconnect( - XRCID("show_in_explorer"), wxEVT_UPDATE_UI, wxUpdateUIEventHandler(FileExplorer::OnShowFileUI), NULL, this); - EventNotifier::Get()->Disconnect( - wxEVT_WORKSPACE_LOADED, wxCommandEventHandler(FileExplorer::OnWorkspaceLoaded), NULL, this); - EventNotifier::Get()->Disconnect( - wxEVT_ACTIVE_EDITOR_CHANGED, wxCommandEventHandler(FileExplorer::OnActiveEditorChanged), NULL, this); - Disconnect(XRCID("link_editor"), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(FileExplorer::OnLinkEditor)); - Disconnect(XRCID("collapse_all"), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(FileExplorer::OnCollapseAll)); - Disconnect(XRCID("go_home"), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(FileExplorer::OnGoHome)); - Unbind(wxEVT_AUITOOLBAR_TOOL_DROPDOWN, - &FileExplorer::OnBookmark, - this, - FileExplorerTabToolBar::ID_TOOL_EXPLORER_BOOKMARKS); - Unbind(wxEVT_MENU, &FileExplorer::OnGotoFolder, this, FileExplorerTabToolBar::ID_TOOL_GOTO_FOLDER); - Unbind(wxEVT_MENU, &FileExplorer::OnFindInFiles, this, FileExplorerTabToolBar::ID_TOOL_FIND_IN_FILES); + Unbind(wxEVT_DND_FOLDER_DROPPED, &FileExplorer::OnFolderDropped, this); } void FileExplorer::CreateGUIControls() { wxBoxSizer* mainSizer = new wxBoxSizer(wxVERTICAL); SetSizer(mainSizer); - - m_fileTree = new FileExplorerTab(this); - FileExplorerTabToolBar* tb = new FileExplorerTabToolBar(this, m_fileTree); - mainSizer->Add(tb, 0, wxEXPAND); - mainSizer->Add(m_fileTree, 1, wxEXPAND | wxALL, 1); - tb->ToggleTool(XRCID("link_editor"), m_isLinkedToEditor); - - Connect(XRCID("link_editor"), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(FileExplorer::OnLinkEditor)); - Connect(XRCID("collapse_all"), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(FileExplorer::OnCollapseAll)); - Connect(XRCID("go_home"), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(FileExplorer::OnGoHome)); - Bind(wxEVT_AUITOOLBAR_TOOL_DROPDOWN, - &FileExplorer::OnBookmark, - this, - FileExplorerTabToolBar::ID_TOOL_EXPLORER_BOOKMARKS); - Bind(wxEVT_MENU, &FileExplorer::OnGotoFolder, this, FileExplorerTabToolBar::ID_TOOL_GOTO_FOLDER); - Bind(wxEVT_MENU, &FileExplorer::OnFindInFiles, this, FileExplorerTabToolBar::ID_TOOL_FIND_IN_FILES); - mainSizer->Layout(); - - wxTheApp->Connect(XRCID("show_in_explorer"), - wxEVT_COMMAND_MENU_SELECTED, - wxCommandEventHandler(FileExplorer::OnShowFile), - NULL, - this); - wxTheApp->Connect( - XRCID("show_in_explorer"), wxEVT_UPDATE_UI, wxUpdateUIEventHandler(FileExplorer::OnShowFileUI), NULL, this); - EventNotifier::Get()->Connect( - wxEVT_WORKSPACE_LOADED, wxCommandEventHandler(FileExplorer::OnWorkspaceLoaded), NULL, this); - EventNotifier::Get()->Connect( - wxEVT_ACTIVE_EDITOR_CHANGED, wxCommandEventHandler(FileExplorer::OnActiveEditorChanged), NULL, this); -} - -void FileExplorer::OnCollapseAll(wxCommandEvent& e) -{ - wxUnusedVar(e); - m_fileTree->Tree()->ReCreateTree(); -} - -void FileExplorer::OnGoHome(wxCommandEvent& e) -{ - wxUnusedVar(e); - m_fileTree->ClearSelections(); - m_fileTree->Tree()->ExpandPath(::wxGetCwd()); -} - -void FileExplorer::OnLinkEditor(wxCommandEvent& e) -{ - m_isLinkedToEditor = !m_isLinkedToEditor; - EditorConfigST::Get()->SetInteger(wxT("LinkFileExplorerToEditor"), m_isLinkedToEditor ? 1 : 0); - if(m_isLinkedToEditor) { - OnActiveEditorChanged(e); - } -} - -void FileExplorer::OnShowFile(wxCommandEvent& e) -{ - LEditor* editor = clMainFrame::Get()->GetMainBook()->GetActiveEditor(); - if(editor && editor->GetFileName().FileExists()) { - m_fileTree->ClearSelections(); - m_fileTree->Tree()->ExpandPath(editor->GetFileName().GetFullPath()); - ManagerST::Get()->ShowWorkspacePane(m_caption); - } - e.Skip(); -} - -void FileExplorer::OnShowFileUI(wxUpdateUIEvent& e) -{ - LEditor* editor = clMainFrame::Get()->GetMainBook()->GetActiveEditor(); - e.Enable(editor && editor->GetFileName().FileExists()); -} - -void FileExplorer::OnActiveEditorChanged(wxCommandEvent& e) -{ - e.Skip(); - if(m_isLinkedToEditor) { - LEditor* editor = clMainFrame::Get()->GetMainBook()->GetActiveEditor(); - if(editor && editor->GetFileName().FileExists()) { - m_fileTree->ClearSelections(); - CL_DEBUG1(" ===> [Explorer] Expand to path for " + editor->GetFileName().GetFullPath()); - m_fileTree->Tree()->ExpandPath(editor->GetFileName().GetFullPath()); - CL_DEBUG1(" <=== [Explorer] Expand to path for " + editor->GetFileName().GetFullPath()); - } - } -} - -void FileExplorer::OnWorkspaceLoaded(wxCommandEvent& e) -{ - e.Skip(); - wxUnusedVar(e); - if(m_isLinkedToEditor) { - m_fileTree->Tree()->ExpandPath(wxGetCwd()); - } -} - -void FileExplorer::OnBookmark(wxAuiToolBarEvent& event) -{ - wxAuiToolBar* tb = dynamic_cast(event.GetEventObject()); - if(event.IsDropDownClicked()) { - // Show the drop down menu - wxArrayString folders = clConfig::Get().Read(kConfigFileExplorerBookmarks, wxArrayString()); - if(folders.IsEmpty()) return; + m_view = new clTreeCtrlPanel(this); - // Remove non existing folders from the bookmark - wxArrayString existingFolders; - for(size_t i=0; i entries; - wxMenu menu; - for(size_t i = 0; i < folders.GetCount(); ++i) { - int id = ::wxNewId(); - entries.insert(std::make_pair(id, folders.Item(i))); - menu.Append(id, folders.Item(i)); - } - - wxPoint pt = event.GetItemRect().GetBottomLeft(); - pt.y++; - - int sel = tb->GetPopupMenuSelectionFromUser(menu, pt); - if(entries.count(sel)) { - wxString path = entries.find(sel)->second; - m_fileTree->ClearSelections(); - m_fileTree->GetGenericDirCtrl()->ExpandPath(path); - m_fileTree->GetGenericDirCtrl()->SelectPath(path); - } - - } else { - wxArrayString paths; - m_fileTree->GetSelectedDirectories(paths); - if(paths.IsEmpty()) return; - - wxArrayString folders = clConfig::Get().Read(kConfigFileExplorerBookmarks, wxArrayString()); - for(size_t i = 0; i < paths.GetCount(); ++i) { - if(folders.Index(paths.Item(i)) == wxNOT_FOUND) { - folders.Add(paths.Item(i)); - } - } - folders.Sort(); - clConfig::Get().Write(kConfigFileExplorerBookmarks, folders); + // For the file explorer we use the standard configuration tool + m_view->SetConfig(&clConfig::Get()); + m_view->SetViewName(_("File Explorer")); + mainSizer->Add(m_view, 1, wxEXPAND | wxALL, 0); + Layout(); +} + +void FileExplorer::OnFolderDropped(clCommandEvent& event) +{ + const wxArrayString& folders = event.GetStrings(); + for(size_t i = 0; i < folders.size(); ++i) { + m_view->AddFolder(folders.Item(i)); + } + size_t index = clGetManager()->GetWorkspacePaneNotebook()->GetPageIndex(_("Explorer")); + if(index != wxString::npos) { + clGetManager()->GetWorkspacePaneNotebook()->ChangeSelection(index); } } -void FileExplorer::OnGotoFolder(wxCommandEvent& event) -{ - // Quickly jump to folder - OpenFolderDlg dlg(EventNotifier::Get()->TopFrame()); - if(dlg.ShowModal() == wxID_OK) { - wxString path = dlg.GetTextCtrlFolder()->GetValue(); - if(wxFileName::DirExists(path)) { - m_fileTree->ClearSelections(); - m_fileTree->GetGenericDirCtrl()->ExpandPath(path); - m_fileTree->GetGenericDirCtrl()->SelectPath(path); - } - } -} - -void FileExplorer::OnFindInFiles(wxCommandEvent& event) +void FileExplorer::OpenFolder(const wxString& path) { - wxArrayString folders, files; - m_fileTree->GetSelections(folders, files); - if(folders.IsEmpty() && files.IsEmpty()) return; - - // Prepare a folder list from both arrays - for(size_t i=0; iOpenFindInFileForPaths(folders); + m_view->AddFolder(path); } diff -Nru codelite-8.0.1+dfsg2/LiteEditor/fileexplorer.h codelite-9.0+dfsg/LiteEditor/fileexplorer.h --- codelite-8.0.1+dfsg2/LiteEditor/fileexplorer.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/fileexplorer.h 2015-10-11 13:56:07.000000000 +0000 @@ -26,43 +26,35 @@ #define FILEEXPLORER_H #include "wx/panel.h" -#include "wx/choice.h" #include "theme_handler_helper.h" -#include +#include +#include "clTreeCtrlPanel.h" +#include "cl_command_event.h" +class wxTreeCtrl; +class clTreeCtrlPanel; class FileExplorerTab; class FileExplorer : public wxPanel { private: - FileExplorerTab *m_fileTree; + clTreeCtrlPanel* m_view; + + // FileExplorerTab *m_fileTree; wxString m_caption; - bool m_isLinkedToEditor; - ThemeHandlerHelper *m_themeHelper; - + ThemeHandlerHelper* m_themeHelper; void CreateGUIControls(); - - void OnLinkEditor(wxCommandEvent &e); - void OnCollapseAll(wxCommandEvent &e); - void OnGoHome(wxCommandEvent &e); - void OnShowFile(wxCommandEvent &e); - void OnShowFileUI(wxUpdateUIEvent &e); - void OnWorkspaceLoaded(wxCommandEvent &e); - void OnActiveEditorChanged(wxCommandEvent &e); - void OnBookmark(wxAuiToolBarEvent& event); - void OnGotoFolder(wxCommandEvent& event); - void OnFindInFiles(wxCommandEvent& event); +protected: + void OnFolderDropped(clCommandEvent& event); + public: - FileExplorer(wxWindow *parent, const wxString &caption); + FileExplorer(wxWindow* parent, const wxString& caption); virtual ~FileExplorer(); - - const wxString &GetCaption() const { - return m_caption; - } - FileExplorerTab *GetFileTree() { - return m_fileTree; - } + const wxString& GetCaption() const { return m_caption; } + TreeItemInfo GetItemInfo() { return m_view->GetSelectedItemInfo(); } + wxTreeCtrl* GetTree() { return m_view->GetTreeCtrl(); } + void OpenFolder(const wxString& path); }; -#endif //FILEEXPLORER_H +#endif // FILEEXPLORER_H diff -Nru codelite-8.0.1+dfsg2/LiteEditor/FilesModifiedDlg.cpp codelite-9.0+dfsg/LiteEditor/FilesModifiedDlg.cpp --- codelite-8.0.1+dfsg2/LiteEditor/FilesModifiedDlg.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/FilesModifiedDlg.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -28,26 +28,26 @@ FilesModifiedDlg::FilesModifiedDlg(wxWindow* parent) : FilesModifiedDlgBase(parent) { + GetSizer()->Fit(this); + CentreOnParent(); } -FilesModifiedDlg::~FilesModifiedDlg() -{ -} +FilesModifiedDlg::~FilesModifiedDlg() {} void FilesModifiedDlg::OnChoose(wxCommandEvent& event) { event.StopPropagation(); - CallAfter( &FilesModifiedDlg::EndModal, ID_BUTTON_CHOOSE ); + CallAfter(&FilesModifiedDlg::EndModal, ID_BUTTON_CHOOSE); } void FilesModifiedDlg::OnLoad(wxCommandEvent& event) { event.StopPropagation(); - CallAfter( &FilesModifiedDlg::EndModal, ID_BUTTON_LOAD ); + CallAfter(&FilesModifiedDlg::EndModal, ID_BUTTON_LOAD); } void FilesModifiedDlg::OnIgnore(wxCommandEvent& event) { event.StopPropagation(); - CallAfter( &FilesModifiedDlg::EndModal, ID_BUTTON_IGNORE ); + CallAfter(&FilesModifiedDlg::EndModal, ID_BUTTON_IGNORE); } diff -Nru codelite-8.0.1+dfsg2/LiteEditor/fileview.cpp codelite-9.0+dfsg/LiteEditor/fileview.cpp --- codelite-8.0.1+dfsg2/LiteEditor/fileview.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/fileview.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -200,7 +200,7 @@ void FileViewTree::Create(wxWindow* parent, const wxWindowID id, const wxPoint& pos, const wxSize& size, long style) { bool multi(true); - style |= (wxTR_HAS_BUTTONS | wxTR_FULL_ROW_HIGHLIGHT | wxTR_NO_LINES); + style |= (wxTR_HAS_BUTTONS | wxTR_FULL_ROW_HIGHLIGHT | wxTR_NO_LINES | wxBORDER_NONE); if(multi) style |= wxTR_MULTIPLE; wxTreeCtrl::Create(parent, id, pos, size, style); @@ -228,7 +228,7 @@ if(ManagerST::Get()->IsWorkspaceOpen()) { // Add an invisible tree root ProjectItem data; - data.m_displayName = WorkspaceST::Get()->GetName(); + data.m_displayName = clCxxWorkspaceST::Get()->GetName(); data.m_kind = ProjectItem::TypeWorkspace; wxTreeItemId root = AddRoot(data.m_displayName, WORKSPACE_IMG_IDX, -1, new FilewViewTreeItemData(data)); @@ -308,7 +308,7 @@ void FileViewTree::BuildProjectNode(const wxString& projectName) { wxString err_msg; - ProjectPtr prj = WorkspaceST::Get()->FindProjectByName(projectName, err_msg); + ProjectPtr prj = clCxxWorkspaceST::Get()->FindProjectByName(projectName, err_msg); ProjectTreePtr tree = prj->AsTree(); TreeWalker walker(tree->GetRoot()); @@ -432,7 +432,7 @@ menu->FindItem(XRCID("clean_project"))->SetBitmap(bmpClean); menu->FindItem(XRCID("project_properties"))->SetBitmap(bmpSettings); - BuildConfigPtr bldConf = WorkspaceST::Get()->GetProjBuildConf(projectName, wxEmptyString); + BuildConfigPtr bldConf = clCxxWorkspaceST::Get()->GetProjBuildConf(projectName, wxEmptyString); if(bldConf && bldConf->IsCustomBuild()) { wxMenuItem* item = NULL; #if 0 @@ -610,7 +610,14 @@ if(itemData->GetData().GetKind() == ProjectItem::TypeFile) { wxString filename = itemData->GetData().GetFile(); - wxString project = itemData->GetData().Key().BeforeFirst(wxT(':')); + wxString key = itemData->GetData().Key(); + wxString project; + if (key.GetChar(0) == ':') { + // All the entries I've tested have started with a : so exclude this one, otherwise the project is always "" + project = key.AfterFirst(':').BeforeFirst(wxT(':')); + } else { + project = key.BeforeFirst(wxT(':')); + } // Convert the file name to be in absolute path wxFileName fn(filename); @@ -1194,12 +1201,10 @@ void FileViewTree::OnProjectProperties(wxCommandEvent& WXUNUSED(event)) { - wxTreeItemId item = GetSingleSelection(); - if(!item.IsOk()) { - return; + ProjectPtr p = GetSelectedProject(); + if(p) { + clMainFrame::Get()->GetWorkspaceTab()->OpenProjectSettings(p->GetName()); } - wxString projectName(GetItemText(item)); - clMainFrame::Get()->GetWorkspaceTab()->OpenProjectSettings(projectName); } void FileViewTree::DoRemoveProject(const wxString& name) @@ -1252,14 +1257,17 @@ newName = newName.Trim().Trim(false); desc = desc.Trim().Trim(false); - if(newName.IsEmpty() == false) { - wxString tmplateDir = - ManagerST::Get()->GetStartupDirectory() + wxT("/templates/projects/") + newName + wxT("/"); - Mkdir(tmplateDir); + if(!newName.IsEmpty()) { + + // Copy the user template to the user folder + wxFileName userTemplates(clStandardPaths::Get().GetUserDataDir(), ""); + userTemplates.AppendDir("templates"); + userTemplates.AppendDir("projects"); + userTemplates.Mkdir(wxS_DIR_DEFAULT, wxPATH_MKDIR_FULL); Project newProj(*proj); newProj.SetProjectInternalType(type); - newProj.CopyTo(tmplateDir, newName, desc); + newProj.CopyTo(userTemplates.GetPath(), newName, desc); } } } @@ -1285,7 +1293,7 @@ wxString conf; // get the selected configuration to be built - BuildConfigPtr bldConf = WorkspaceST::Get()->GetProjBuildConf(projectName, wxEmptyString); + BuildConfigPtr bldConf = clCxxWorkspaceST::Get()->GetProjBuildConf(projectName, wxEmptyString); if(bldConf) { conf = bldConf->GetName(); } @@ -1309,7 +1317,7 @@ wxString conf; // get the selected configuration to be built - BuildConfigPtr bldConf = WorkspaceST::Get()->GetProjBuildConf(projectName, wxEmptyString); + BuildConfigPtr bldConf = clCxxWorkspaceST::Get()->GetProjBuildConf(projectName, wxEmptyString); if(bldConf) { conf = bldConf->GetName(); } @@ -1583,6 +1591,10 @@ if(!ItemHasChildren(parent)) return wxTreeItemId(); +#if defined(__WXGTK__) + wxString realpathItem = CLRealPath(fileName); +#endif + wxTreeItemIdValue cookie; wxTreeItemId child = GetFirstChild(parent, cookie); while(child.IsOk()) { @@ -1591,7 +1603,15 @@ fn.MakeAbsolute(projectPath); if(fn.GetFullPath().CmpNoCase(fileName) == 0) { return child; - } + } +#if defined(__WXGTK__) + else { // Try again, dereferencing fn + wxString fdest = CLRealPath(fn.GetFullPath()); + if(fdest.CmpNoCase(realpathItem) == 0) { + return child; + } + } +#endif if(ItemHasChildren(child)) { wxTreeItemId res = FindItemByPath(child, projectPath, fileName); @@ -1978,7 +1998,7 @@ wxString conf; // get the selected configuration to be built - BuildConfigPtr bldConf = WorkspaceST::Get()->GetProjBuildConf(projectName, wxEmptyString); + BuildConfigPtr bldConf = clCxxWorkspaceST::Get()->GetProjBuildConf(projectName, wxEmptyString); if(bldConf) { conf = bldConf->GetName(); } @@ -2117,7 +2137,7 @@ wxString conf; // get the selected configuration to be built - BuildConfigPtr bldConf = WorkspaceST::Get()->GetProjBuildConf(projectName, wxEmptyString); + BuildConfigPtr bldConf = clCxxWorkspaceST::Get()->GetProjBuildConf(projectName, wxEmptyString); if(bldConf) { conf = bldConf->GetName(); } @@ -2200,7 +2220,7 @@ for(size_t i = 0; i < count; i++) { FilewViewTreeItemData* itemData = dynamic_cast(GetItemData(selections.Item(i))); if(itemData && itemData->GetData().GetKind() == ProjectItem::TypeProject) { - return WorkspaceST::Get()->FindProjectByName(GetItemText(selections.Item(i)), errMsg); + return clCxxWorkspaceST::Get()->FindProjectByName(GetItemText(selections.Item(i)), errMsg); } } @@ -2212,7 +2232,7 @@ if(!itemData) { return NULL; } else if(itemData->GetData().GetKind() == ProjectItem::TypeProject) { - return WorkspaceST::Get()->FindProjectByName(GetItemText(item), errMsg); + return clCxxWorkspaceST::Get()->FindProjectByName(GetItemText(item), errMsg); } item = GetItemParent(item); } @@ -2235,7 +2255,7 @@ wxString conf; // get the selected configuration to be built - BuildConfigPtr bldConf = WorkspaceST::Get()->GetProjBuildConf(projectName, wxEmptyString); + BuildConfigPtr bldConf = clCxxWorkspaceST::Get()->GetProjBuildConf(projectName, wxEmptyString); if(bldConf) { conf = bldConf->GetName(); } @@ -2259,7 +2279,7 @@ wxString conf; // get the selected configuration to be built - BuildConfigPtr bldConf = WorkspaceST::Get()->GetProjBuildConf(projectName, wxEmptyString); + BuildConfigPtr bldConf = clCxxWorkspaceST::Get()->GetProjBuildConf(projectName, wxEmptyString); if(bldConf) { conf = bldConf->GetName(); } @@ -2295,7 +2315,7 @@ wxString vdPath = path.AfterFirst(':'); wxString filename = data->GetData().GetFile(); - BuildConfigPtr buildConf = WorkspaceST::Get()->GetProjBuildConf(proj, ""); + BuildConfigPtr buildConf = clCxxWorkspaceST::Get()->GetProjBuildConf(proj, ""); if(!buildConf) { return; } @@ -2343,7 +2363,7 @@ ProjectPtr p = mgr->GetProject(proj); if(p) { - BuildConfigPtr buildConf = WorkspaceST::Get()->GetProjBuildConf(proj, ""); + BuildConfigPtr buildConf = clCxxWorkspaceST::Get()->GetProjBuildConf(proj, ""); if(!buildConf) { return false; } @@ -2391,7 +2411,7 @@ void FileViewTree::OnRenameProject(wxCommandEvent& event) { - CHECK_COND_RET(WorkspaceST::Get()->IsOpen()); + CHECK_COND_RET(clCxxWorkspaceST::Get()->IsOpen()); wxTreeItemId item = GetSingleSelection(); CHECK_ITEM_RET(item); @@ -2403,7 +2423,7 @@ if(data->GetData().GetDisplayName() == newname) return; // Calling 'RenameProject' will trigger a wxEVT_PROJ_RENAMED event - WorkspaceST::Get()->RenameProject(data->GetData().GetDisplayName(), newname); + clCxxWorkspaceST::Get()->RenameProject(data->GetData().GetDisplayName(), newname); // Update the display name SetItemText(item, newname); @@ -2426,15 +2446,31 @@ const wxString& folder = folders.Item(0); wxFileName workspaceFileName(folder, ""); wxString errMsg; - if(!WorkspaceST::Get()->IsOpen()) { + if(!clCxxWorkspaceST::Get()->IsOpen()) { wxFileName fnWorkspace(folder, ""); + // If a workspace is already exist at the selected path - load it + wxArrayString workspaceFiles; + wxString workspaceFile; + wxDir::GetAllFiles(folder, &workspaceFiles, "*.workspace", wxDIR_FILES); + // Check the workspace type + for(size_t i = 0; i < workspaceFiles.size(); ++i) { + if(FileExtManager::GetType(workspaceFiles.Item(i)) == FileExtManager::TypeWorkspace) { + // Found a workspace in the folder, just open it + wxCommandEvent evtOpenworkspace(wxEVT_MENU, XRCID("switch_to_workspace")); + evtOpenworkspace.SetString(workspaceFiles.Item(i)); + evtOpenworkspace.SetEventObject(clMainFrame::Get()); + clMainFrame::Get()->GetEventHandler()->AddPendingEvent(evtOpenworkspace); + return; + } + } + workspaceFileName.SetName(workspaceFileName.GetDirs().Last()); workspaceFileName.SetExt("workspace"); // Create an empty workspace - if(!WorkspaceST::Get()->CreateWorkspace(fnWorkspace.GetDirs().Last(), folder, errMsg)) { + if(!clCxxWorkspaceST::Get()->CreateWorkspace(fnWorkspace.GetDirs().Last(), folder, errMsg)) { ::wxMessageBox(_("Failed to create workspace:\n") + errMsg, "CodeLite", wxICON_ERROR | wxOK | wxCENTER); return; } @@ -2466,16 +2502,16 @@ // to which project should we import the folder? wxArrayString projects; - WorkspaceST::Get()->GetProjectList(projects); + clCxxWorkspaceST::Get()->GetProjectList(projects); if(projects.IsEmpty()) { ::wxMessageBox( _("Can't import files to workspace without projects"), "CodeLite", wxICON_ERROR | wxOK | wxCENTER); return; } - + wxString projectName; if(projects.GetCount() > 1) { - int selection = projects.Index(WorkspaceST::Get()->GetActiveProjectName()); + int selection = projects.Index(clCxxWorkspaceST::Get()->GetActiveProjectName()); projectName = ::wxGetSingleChoice(_("Select project:"), _("Import files to project"), projects, selection); } else { // single project, just add it @@ -2484,10 +2520,9 @@ // user cancelled? if(projectName.IsEmpty()) return; - ProjectPtr pProj = WorkspaceST::Get()->GetProject(projectName); + ProjectPtr pProj = clCxxWorkspaceST::Get()->GetProject(projectName); CHECK_PTR_RET(pProj); - wxBusyCursor bc; wxArrayString all_files; wxDir::GetAllFiles(folder, &all_files, wxEmptyString, wxDIR_DIRS | wxDIR_FILES); @@ -2506,3 +2541,10 @@ wxCommandEvent evtOpenworkspace(wxEVT_MENU, XRCID("full_retag_workspace")); clMainFrame::Get()->GetEventHandler()->AddPendingEvent(evtOpenworkspace); } + +void FileViewTree::FolderDropped(const wxArrayString& folders) +{ + clCommandEvent dummy; + dummy.SetStrings(folders); + OnFolderDropped(dummy); +} diff -Nru codelite-8.0.1+dfsg2/LiteEditor/fileview.h codelite-9.0+dfsg/LiteEditor/fileview.h --- codelite-8.0.1+dfsg2/LiteEditor/fileview.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/fileview.h 2015-10-11 13:56:07.000000000 +0000 @@ -42,6 +42,7 @@ class FileViewTree : public wxTreeCtrl { DECLARE_DYNAMIC_CLASS() + std::map m_itemsToSort; wxArrayTreeItemIds m_draggedItems; @@ -123,7 +124,13 @@ * If a file is selected, we go up until we find the first project item */ ProjectPtr GetSelectedProject() const; - + + /** + * @brief public access to the "OnFolderDropped" function + * @param event + */ + void FolderDropped(const wxArrayString& folders); + protected: virtual void OnPopupMenu(wxTreeEvent& event); virtual void OnItemActivated(wxTreeEvent& event); diff -Nru codelite-8.0.1+dfsg2/LiteEditor/findinfiles_dlg.cpp codelite-9.0+dfsg/LiteEditor/findinfiles_dlg.cpp --- codelite-8.0.1+dfsg2/LiteEditor/findinfiles_dlg.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/findinfiles_dlg.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -38,10 +38,14 @@ m_panelMainPanel = new wxPanel(this, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxTAB_TRAVERSAL); - boxSizer7->Add(m_panelMainPanel, 1, wxEXPAND, 5); + boxSizer7->Add(m_panelMainPanel, 1, wxBOTTOM|wxEXPAND, 10); + + wxBoxSizer* boxSizer95 = new wxBoxSizer(wxVERTICAL); + m_panelMainPanel->SetSizer(boxSizer95); wxBoxSizer* boxSizer50 = new wxBoxSizer(wxHORIZONTAL); - m_panelMainPanel->SetSizer(boxSizer50); + + boxSizer95->Add(boxSizer50, 1, wxALL|wxEXPAND, 5); wxFlexGridSizer* fgSizer41 = new wxFlexGridSizer(0, 2, 0, 0); fgSizer41->SetFlexibleDirection( wxBOTH ); @@ -57,37 +61,36 @@ wxArrayString m_findStringArr; m_findString = new wxComboBox(m_panelMainPanel, wxID_ANY, wxT(""), wxDefaultPosition, wxSize(-1, -1), m_findStringArr, 0); - m_findString->SetToolTip(_("String to search")); + m_findString->SetToolTip(_("Find what")); m_findString->SetFocus(); #if wxVERSION_NUMBER >= 3000 - m_findString->SetHint(_("Type a string to search...")); + m_findString->SetHint(_("Find what")); #endif fgSizer41->Add(m_findString, 0, wxALL|wxEXPAND, 5); - m_staticText2 = new wxStaticText(m_panelMainPanel, wxID_ANY, _("Look in :"), wxDefaultPosition, wxSize(-1, -1), 0); - - fgSizer41->Add(m_staticText2, 0, wxALL|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5); + m_staticText102 = new wxStaticText(m_panelMainPanel, wxID_ANY, _("Replace With:"), wxDefaultPosition, wxSize(-1,-1), 0); - wxBoxSizer* bSizer10 = new wxBoxSizer(wxHORIZONTAL); + fgSizer41->Add(m_staticText102, 0, wxALL|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5); - fgSizer41->Add(bSizer10, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL, 5); - - m_dirPicker = new DirPicker(m_panelMainPanel, wxID_ANY, wxT("..."), wxEmptyString, _("Select a folder:"), wxDefaultPosition, wxDefaultSize, wxDP_USE_COMBOBOX); - bSizer10->Add(m_dirPicker, 1, wxALL, 5); + wxArrayString m_replaceStringArr; + m_replaceString = new wxComboBox(m_panelMainPanel, wxID_ANY, wxT(""), wxDefaultPosition, wxSize(-1,-1), m_replaceStringArr, 0); + #if wxVERSION_NUMBER >= 3000 + m_replaceString->SetHint(_("Replace with")); + #endif - m_btnAddPath = new wxButton(m_panelMainPanel, wxID_ANY, _("&Add"), wxDefaultPosition, wxSize(-1, -1), wxBU_EXACTFIT); + fgSizer41->Add(m_replaceString, 0, wxALL|wxEXPAND, 5); - bSizer10->Add(m_btnAddPath, 0, wxRIGHT|wxALIGN_CENTER_VERTICAL, 5); + m_staticText2 = new wxStaticText(m_panelMainPanel, wxID_ANY, _("Look in :"), wxDefaultPosition, wxSize(-1, -1), 0); - fgSizer41->Add(0, 0, 0, wxEXPAND, 5); + fgSizer41->Add(m_staticText2, 0, wxALL|wxALIGN_RIGHT|wxALIGN_TOP, 5); wxBoxSizer* bSizer9 = new wxBoxSizer(wxHORIZONTAL); fgSizer41->Add(bSizer9, 0, wxEXPAND, 5); wxArrayString m_listPathsArr; - m_listPaths = new wxListBox(m_panelMainPanel, wxID_ANY, wxDefaultPosition, wxSize(-1, -1), m_listPathsArr, 0); + m_listPaths = new wxListBox(m_panelMainPanel, wxID_ANY, wxDefaultPosition, wxSize(-1, -1), m_listPathsArr, wxLB_SORT|wxLB_MULTIPLE); bSizer9->Add(m_listPaths, 1, wxLEFT|wxTOP|wxBOTTOM|wxEXPAND, 5); @@ -95,23 +98,23 @@ bSizer9->Add(boxSizer1, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND, 5); - m_btnRemovelPath = new wxButton(m_panelMainPanel, wxID_ANY, wxT(""), wxDefaultPosition, wxSize(-1, -1), wxBU_EXACTFIT); + m_btnAddPath = new wxButton(m_panelMainPanel, wxID_ANY, wxT(""), wxDefaultPosition, wxSize(-1, -1), wxBU_EXACTFIT); #if wxVERSION_NUMBER >= 2904 - m_btnRemovelPath->SetBitmap(wxXmlResource::Get()->LoadBitmap(wxT("clear-all")), wxLEFT); - m_btnRemovelPath->SetBitmapMargins(2,2); + m_btnAddPath->SetBitmap(wxXmlResource::Get()->LoadBitmap(wxT("fif-menu")), wxLEFT); + m_btnAddPath->SetBitmapMargins(2,2); #endif - m_btnRemovelPath->SetToolTip(_("Remove the selected search path")); + m_btnAddPath->SetToolTip(_("Add search path")); - boxSizer1->Add(m_btnRemovelPath, 0, wxTOP|wxBOTTOM|wxEXPAND, 5); + boxSizer1->Add(m_btnAddPath, 0, wxTOP|wxBOTTOM|wxEXPAND, 5); - m_btnClearPaths = new wxButton(m_panelMainPanel, wxID_ANY, wxT(""), wxDefaultPosition, wxSize(-1, -1), wxBU_EXACTFIT); + m_btnClearSelectedPath = new wxButton(m_panelMainPanel, wxID_ANY, wxT(""), wxDefaultPosition, wxSize(-1, -1), wxBU_EXACTFIT); #if wxVERSION_NUMBER >= 2904 - m_btnClearPaths->SetBitmap(wxXmlResource::Get()->LoadBitmap(wxT("delete-line")), wxLEFT); - m_btnClearPaths->SetBitmapMargins(2,2); + m_btnClearSelectedPath->SetBitmap(wxXmlResource::Get()->LoadBitmap(wxT("fif-clear")), wxLEFT); + m_btnClearSelectedPath->SetBitmapMargins(5,5); #endif - m_btnClearPaths->SetToolTip(_("Clear the search path list")); + m_btnClearSelectedPath->SetToolTip(_("Remove the selected path")); - boxSizer1->Add(m_btnClearPaths, 0, wxTOP|wxEXPAND, 5); + boxSizer1->Add(m_btnClearSelectedPath, 0, wxTOP|wxEXPAND, 5); m_staticText3 = new wxStaticText(m_panelMainPanel, wxID_ANY, _("File Mask:"), wxDefaultPosition, wxSize(-1, -1), 0); @@ -126,7 +129,7 @@ #endif m_fileTypes->SetSelection(0); - fgSizer41->Add(m_fileTypes, 1, wxALL|wxEXPAND, 5); + fgSizer41->Add(m_fileTypes, 0, wxALL|wxEXPAND, 5); m_staticText5 = new wxStaticText(m_panelMainPanel, wxID_ANY, _("Files Encoding:"), wxDefaultPosition, wxSize(-1, -1), 0); @@ -138,91 +141,50 @@ fgSizer41->Add(m_choiceEncoding, 1, wxALL|wxEXPAND, 5); - m_staticText7 = new wxStaticText(m_panelMainPanel, wxID_ANY, _("Options:"), wxDefaultPosition, wxSize(-1, -1), 0); + m_staticText97 = new wxStaticText(m_panelMainPanel, wxID_ANY, wxT(""), wxDefaultPosition, wxSize(-1,-1), 0); - fgSizer41->Add(m_staticText7, 0, wxALL|wxALIGN_RIGHT, 5); + fgSizer41->Add(m_staticText97, 0, wxALL|wxALIGN_RIGHT, 5); - m_notebook1 = new wxNotebook(m_panelMainPanel, wxID_ANY, wxDefaultPosition, wxSize(-1, -1), 0); - m_notebook1->SetName(wxT("m_notebook1")); + wxBoxSizer* boxSizer105 = new wxBoxSizer(wxVERTICAL); - fgSizer41->Add(m_notebook1, 0, wxALL|wxEXPAND, 5); + fgSizer41->Add(boxSizer105, 0, wxALL|wxEXPAND, 5); - m_panel1 = new wxPanel(m_notebook1, wxID_ANY, wxDefaultPosition, wxSize(-1, -1), wxTAB_TRAVERSAL); - m_notebook1->AddPage(m_panel1, _("General"), false); - - wxBoxSizer* bSizer6 = new wxBoxSizer(wxVERTICAL); - m_panel1->SetSizer(bSizer6); - - wxFlexGridSizer* fgSizer3 = new wxFlexGridSizer(0, 1, 0, 0); + wxFlexGridSizer* fgSizer3 = new wxFlexGridSizer(0, 3, 0, 0); fgSizer3->SetFlexibleDirection( wxBOTH ); fgSizer3->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); - bSizer6->Add(fgSizer3, 0, wxALL|wxEXPAND, 5); + boxSizer105->Add(fgSizer3, 0, wxEXPAND, 5); - m_matchCase = new wxCheckBox(m_panel1, wxID_ANY, _("&Match case"), wxDefaultPosition, wxSize(-1, -1), 0); + m_matchCase = new wxCheckBox(m_panelMainPanel, wxID_ANY, _("&Match case"), wxDefaultPosition, wxSize(-1, -1), 0); m_matchCase->SetValue(false); m_matchCase->SetToolTip(_("Toggle case sensitive search")); fgSizer3->Add(m_matchCase, 0, wxALL|wxEXPAND, 5); - m_matchWholeWord = new wxCheckBox(m_panel1, wxID_ANY, _("Match &whole word"), wxDefaultPosition, wxSize(-1, -1), 0); + m_matchWholeWord = new wxCheckBox(m_panelMainPanel, wxID_ANY, _("Match &whole word"), wxDefaultPosition, wxSize(-1, -1), 0); m_matchWholeWord->SetValue(false); m_matchWholeWord->SetToolTip(_("Toggle whole word search")); fgSizer3->Add(m_matchWholeWord, 0, wxALL|wxEXPAND, 5); - m_regualrExpression = new wxCheckBox(m_panel1, wxID_ANY, _("Regular &expression"), wxDefaultPosition, wxSize(-1, -1), 0); + m_checkBoxPipeForGrep = new wxCheckBox(m_panelMainPanel, wxID_ANY, _("Enable pipe filtering"), wxDefaultPosition, wxSize(-1,-1), 0); + m_checkBoxPipeForGrep->SetValue(false); + m_checkBoxPipeForGrep->SetToolTip(_("Use the pipe character (\"|\") as a special separator for applying additional filters. This has the similar effect as using the \"grep\" command line tool")); + + fgSizer3->Add(m_checkBoxPipeForGrep, 0, wxALL, 5); + + m_regualrExpression = new wxCheckBox(m_panelMainPanel, wxID_ANY, _("Regular &expression"), wxDefaultPosition, wxSize(-1, -1), 0); m_regualrExpression->SetValue(false); m_regualrExpression->SetToolTip(_("The 'Find What' field is a regular expression")); fgSizer3->Add(m_regualrExpression, 0, wxALL|wxEXPAND, 5); - m_checkBoxSaveFilesBeforeSearching = new wxCheckBox(m_panel1, wxID_ANY, _("&Save modified files before searching"), wxDefaultPosition, wxSize(-1, -1), 0); + m_checkBoxSaveFilesBeforeSearching = new wxCheckBox(m_panelMainPanel, wxID_ANY, _("&Save files before search"), wxDefaultPosition, wxSize(-1, -1), 0); m_checkBoxSaveFilesBeforeSearching->SetValue(false); m_checkBoxSaveFilesBeforeSearching->SetToolTip(_("Save any modified files before search starts")); fgSizer3->Add(m_checkBoxSaveFilesBeforeSearching, 0, wxALL|wxEXPAND, 5); - m_checkBoxSeparateTab = new wxCheckBox(m_panel1, wxID_ANY, _("Display search results in separate tab"), wxDefaultPosition, wxSize(-1, -1), 0); - m_checkBoxSeparateTab->SetValue(true); - - fgSizer3->Add(m_checkBoxSeparateTab, 0, wxALL, 5); - - m_panel2 = new wxPanel(m_notebook1, wxID_ANY, wxDefaultPosition, wxSize(-1, -1), wxTAB_TRAVERSAL); - m_notebook1->AddPage(m_panel2, _("C++"), false); - - wxBoxSizer* bSizer7 = new wxBoxSizer(wxVERTICAL); - m_panel2->SetSizer(bSizer7); - - wxFlexGridSizer* fgSizer4 = new wxFlexGridSizer(0, 1, 0, 0); - fgSizer4->SetFlexibleDirection( wxBOTH ); - fgSizer4->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); - - bSizer7->Add(fgSizer4, 0, wxEXPAND, 5); - - m_printScope = new wxCheckBox(m_panel2, wxID_ANY, _("Display the C++ scope of the match"), wxDefaultPosition, wxSize(-1, -1), 0); - m_printScope->SetValue(false); - m_printScope->SetToolTip(_("Display the class + function name for the matches")); - - fgSizer4->Add(m_printScope, 0, wxALL, 5); - - m_checkBoxSkipMatchesFoundInComments = new wxCheckBox(m_panel2, wxID_ANY, _("Hide matches found in comments"), wxDefaultPosition, wxSize(-1, -1), 0); - m_checkBoxSkipMatchesFoundInComments->SetValue(false); - - fgSizer4->Add(m_checkBoxSkipMatchesFoundInComments, 0, wxALL, 5); - - m_checkBoxSkipMatchesFoundInStrings = new wxCheckBox(m_panel2, wxID_ANY, _("Hide matches found inside strings"), wxDefaultPosition, wxSize(-1, -1), 0); - m_checkBoxSkipMatchesFoundInStrings->SetValue(false); - - fgSizer4->Add(m_checkBoxSkipMatchesFoundInStrings, 0, wxALL, 5); - - m_checkBoxHighlighStringComments = new wxCheckBox(m_panel2, wxID_ANY, _("Use different colour for matches found in comments"), wxDefaultPosition, wxSize(-1, -1), 0); - m_checkBoxHighlighStringComments->SetValue(false); - - fgSizer4->Add(m_checkBoxHighlighStringComments, 0, wxALL, 5); - - fgSizer41->Add(0, 0, 0, wxBOTTOM|wxEXPAND, 10); - wxBoxSizer* bSizer2 = new wxBoxSizer(wxVERTICAL); boxSizer50->Add(bSizer2, 0, wxALL, 5); @@ -248,13 +210,6 @@ bSizer2->Add(m_cancel, 0, wxALL|wxEXPAND, 5); - - #if wxVERSION_NUMBER >= 2900 - if(!wxPersistenceManager::Get().Find(m_notebook1)){ - wxPersistenceManager::Get().RegisterAndRestore(m_notebook1); - } - #endif - SetName(wxT("FindInFilesDialogBase")); SetSizeHints(-1,-1); if ( GetSizer() ) { @@ -264,19 +219,18 @@ #if wxVERSION_NUMBER >= 2900 if(!wxPersistenceManager::Get().Find(this)) { wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); } #endif // Connect events m_btnAddPath->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(FindInFilesDialogBase::OnAddPath), NULL, this); - m_btnRemovelPath->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(FindInFilesDialogBase::OnRemovePath), NULL, this); - m_btnRemovelPath->Connect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(FindInFilesDialogBase::OnRemovePathUI), NULL, this); - m_btnClearPaths->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(FindInFilesDialogBase::OnClearPaths), NULL, this); - m_btnClearPaths->Connect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(FindInFilesDialogBase::OnClearPathsUI), NULL, this); - m_checkBoxHighlighStringComments->Connect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(FindInFilesDialogBase::OnUseDiffColourForCommentsUI), NULL, this); + m_btnClearSelectedPath->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(FindInFilesDialogBase::OnClearSelectedPath), NULL, this); + m_btnClearSelectedPath->Connect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(FindInFilesDialogBase::OnClearSelectedPathUI), NULL, this); m_find->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(FindInFilesDialogBase::OnFind), NULL, this); m_find->Connect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(FindInFilesDialogBase::OnFindWhatUI), NULL, this); m_replaceAll->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(FindInFilesDialogBase::OnReplace), NULL, this); - m_replaceAll->Connect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(FindInFilesDialogBase::OnFindWhatUI), NULL, this); + m_replaceAll->Connect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(FindInFilesDialogBase::OnReplaceUI), NULL, this); m_stop->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(FindInFilesDialogBase::OnStop), NULL, this); m_cancel->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(FindInFilesDialogBase::OnButtonClose), NULL, this); @@ -285,15 +239,12 @@ FindInFilesDialogBase::~FindInFilesDialogBase() { m_btnAddPath->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(FindInFilesDialogBase::OnAddPath), NULL, this); - m_btnRemovelPath->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(FindInFilesDialogBase::OnRemovePath), NULL, this); - m_btnRemovelPath->Disconnect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(FindInFilesDialogBase::OnRemovePathUI), NULL, this); - m_btnClearPaths->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(FindInFilesDialogBase::OnClearPaths), NULL, this); - m_btnClearPaths->Disconnect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(FindInFilesDialogBase::OnClearPathsUI), NULL, this); - m_checkBoxHighlighStringComments->Disconnect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(FindInFilesDialogBase::OnUseDiffColourForCommentsUI), NULL, this); + m_btnClearSelectedPath->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(FindInFilesDialogBase::OnClearSelectedPath), NULL, this); + m_btnClearSelectedPath->Disconnect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(FindInFilesDialogBase::OnClearSelectedPathUI), NULL, this); m_find->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(FindInFilesDialogBase::OnFind), NULL, this); m_find->Disconnect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(FindInFilesDialogBase::OnFindWhatUI), NULL, this); m_replaceAll->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(FindInFilesDialogBase::OnReplace), NULL, this); - m_replaceAll->Disconnect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(FindInFilesDialogBase::OnFindWhatUI), NULL, this); + m_replaceAll->Disconnect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(FindInFilesDialogBase::OnReplaceUI), NULL, this); m_stop->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(FindInFilesDialogBase::OnStop), NULL, this); m_cancel->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(FindInFilesDialogBase::OnButtonClose), NULL, this); diff -Nru codelite-8.0.1+dfsg2/LiteEditor/findinfilesdlg.cpp codelite-9.0+dfsg/LiteEditor/findinfilesdlg.cpp --- codelite-8.0.1+dfsg2/LiteEditor/findinfilesdlg.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/findinfilesdlg.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -35,6 +35,7 @@ #include "replaceinfilespanel.h" #include "windowattrmanager.h" #include +#include "clWorkspaceManager.h" FindInFilesDialog::FindInFilesDialog(wxWindow* parent, const wxString& dataName) : FindInFilesDialogBase(parent, wxID_ANY) @@ -49,47 +50,21 @@ for(size_t i = 0; i < count; ++i) { choices.Add(m_data.GetSearchPaths().Item(i)); } - - // add the default search paths - if(choices.Index(wxGetTranslation(SEARCH_IN_WORKSPACE)) == wxNOT_FOUND) - choices.Add(wxGetTranslation(SEARCH_IN_WORKSPACE)); - - if(choices.Index(wxGetTranslation(SEARCH_IN_PROJECT)) == wxNOT_FOUND) - choices.Add(wxGetTranslation(SEARCH_IN_PROJECT)); - - if(choices.Index(wxGetTranslation(SEARCH_IN_CURR_FILE_PROJECT)) == wxNOT_FOUND) - choices.Add(wxGetTranslation(SEARCH_IN_CURR_FILE_PROJECT)); - - if(choices.Index(wxGetTranslation(SEARCH_IN_CURRENT_FILE)) == wxNOT_FOUND) - choices.Add(wxGetTranslation(SEARCH_IN_CURRENT_FILE)); - - if(choices.Index(wxGetTranslation(SEARCH_IN_OPEN_FILES)) == wxNOT_FOUND) - choices.Add(wxGetTranslation(SEARCH_IN_OPEN_FILES)); - - int initial = m_data.GetSearchScope(); - if((initial == wxNOT_FOUND) || ((size_t)initial >= count)) { - initial = 0; - } - - m_dirPicker->SetValues(choices, initial); + DoAddSearchPaths(choices); // Search for m_findString->Clear(); m_findString->Append(m_data.GetFindStringArr()); m_findString->SetValue(m_data.GetFindString()); - + m_replaceString->Append(m_data.GetReplaceStringArr()); + m_replaceString->SetValue(m_data.GetReplaceString()); m_fileTypes->SetSelection(0); m_matchCase->SetValue(m_data.GetFlags() & wxFRD_MATCHCASE); m_matchWholeWord->SetValue(m_data.GetFlags() & wxFRD_MATCHWHOLEWORD); m_regualrExpression->SetValue(m_data.GetFlags() & wxFRD_REGULAREXPRESSION); - m_printScope->SetValue(m_data.GetFlags() & wxFRD_DISPLAYSCOPE); m_checkBoxSaveFilesBeforeSearching->SetValue(m_data.GetFlags() & wxFRD_SAVE_BEFORE_SEARCH); - m_checkBoxSeparateTab->SetValue(m_data.GetFlags() & wxFRD_SEPARATETAB_DISPLAY); - m_checkBoxSkipMatchesFoundInComments->SetValue(m_data.GetFlags() & wxFRD_SKIP_COMMENTS); - m_checkBoxSkipMatchesFoundInStrings->SetValue(m_data.GetFlags() & wxFRD_SKIP_STRINGS); - m_checkBoxHighlighStringComments->SetValue(m_data.GetFlags() & wxFRD_COLOUR_COMMENTS); - + m_checkBoxPipeForGrep->SetValue(m_data.GetFlags() & wxFRD_ENABLE_PIPE_SUPPORT); // Set encoding wxArrayString astrEncodings; wxFontEncoding fontEnc; @@ -110,14 +85,16 @@ } m_choiceEncoding->Append(astrEncodings); - if(m_choiceEncoding->IsEmpty() == false) m_choiceEncoding->SetSelection(selection); + if(m_choiceEncoding->IsEmpty() == false) { + m_choiceEncoding->SetSelection(selection); + } // Set the file mask DoSetFileMask(); GetSizer()->Fit(this); CentreOnParent(); - + SetName("FindInFilesDialog"); WindowAttrManager::Load(this); } @@ -127,8 +104,8 @@ // Update the data m_data.SetFlags(GetSearchFlags()); m_data.SetFindString(m_findString->GetValue()); + m_data.SetReplaceString(m_replaceString->GetValue()); m_data.SetEncoding(m_choiceEncoding->GetStringSelection()); - m_data.SetSearchScope(m_dirPicker->GetCurrentSelection()); wxString value = m_fileTypes->GetValue(); value.Trim().Trim(false); @@ -139,8 +116,7 @@ m_data.SetSelectedMask(value); m_data.SetFileMask(masks); - - m_data.SetSearchPaths(m_dirPicker->GetValues()); + m_data.SetSearchPaths(m_listPaths->GetStrings()); clConfig::Get().WriteItem(&m_data); @@ -149,22 +125,13 @@ event.SetEventObject(this); event.SetString(m_data.GetSelectedMask()); EventNotifier::Get()->AddPendingEvent(event); - - } -void FindInFilesDialog::SetRootDir(const wxString& rootDir) { m_dirPicker->SetPath(rootDir); } - void FindInFilesDialog::DoSetFileMask() { - // First send an event to the plugins asking for an additional file mask - clCommandEvent getFileMaskEvent(wxEVT_CMD_GET_FIND_IN_FILES_MASK, GetId()); - getFileMaskEvent.SetEventObject(this); - EventNotifier::Get()->ProcessEvent(getFileMaskEvent); - // Get the output wxArrayString fileTypes = m_data.GetFileMask(); - wxArrayString pluginsMask = getFileMaskEvent.GetStrings(); + wxArrayString pluginsMask = clWorkspaceManager::Get().GetUnifiedFilesMask(); // sort and merge arrays fileTypes.Sort(); @@ -179,21 +146,34 @@ // Create a single mask array m_fileTypes->Clear(); + + // Remove empty entries + wxArrayString tempMaskArr; + std::for_each(mergedArr.begin(), mergedArr.end(), [&](wxString& item) { + item.Trim().Trim(false); + if(!item.IsEmpty()) { + tempMaskArr.Add(item); + } + }); + mergedArr.swap(tempMaskArr); + if(!mergedArr.IsEmpty()) { m_fileTypes->Append(mergedArr); - // Let the plugins override the default selected mask wxString selectedMask = m_data.GetSelectedMask(); - if(!getFileMaskEvent.GetString().IsEmpty()) { - selectedMask = getFileMaskEvent.GetString(); + if(selectedMask.IsEmpty() && clWorkspaceManager::Get().IsWorkspaceOpened()) { + // Let the active workspace set the find-in-files mask + selectedMask = clWorkspaceManager::Get().GetWorkspace()->GetFilesMask(); } - int where = m_fileTypes->FindString(selectedMask); - if(where == wxNOT_FOUND) { - // Add it - where = m_fileTypes->Append(selectedMask); + if(!selectedMask.IsEmpty()) { + int where = m_fileTypes->FindString(selectedMask); + if(where == wxNOT_FOUND) { + // Add it + where = m_fileTypes->Append(selectedMask); + } + m_fileTypes->SetSelection(where); } - m_fileTypes->SetSelection(where); } } @@ -221,11 +201,12 @@ { SearchData data; wxString findStr(m_data.GetFindString()); - if(m_findString->GetValue().IsEmpty() == false) { + if(!m_findString->GetValue().IsEmpty()) { findStr = m_findString->GetValue(); } data.SetFindString(findStr); + data.SetReplaceWith(m_replaceString->GetValue()); m_data.SetFlags(GetSearchFlags()); size_t flags = m_data.GetFlags(); @@ -244,31 +225,43 @@ data.SetSkipComments(flags & wxFRD_SKIP_COMMENTS); data.SetSkipStrings(flags & wxFRD_SKIP_STRINGS); data.SetColourComments(flags & wxFRD_COLOUR_COMMENTS); - wxArrayString rootDirs; - for(size_t i = 0; i < m_listPaths->GetCount(); ++i) { - rootDirs.push_back(m_listPaths->GetString(i)); - } - if(rootDirs.IsEmpty()) { - wxString dir = m_dirPicker->GetPath(); - if(dir.IsEmpty() == false) { - rootDirs.push_back(dir); - } - } - data.SetRootDirs(rootDirs); - + data.SetEnablePipeSupport(flags & wxFRD_ENABLE_PIPE_SUPPORT); + wxArrayString searchWhere = m_listPaths->GetStrings(); wxArrayString files; - for(size_t i = 0; i < rootDirs.GetCount(); ++i) { - const wxString& rootDir = rootDirs.Item(i); + wxArrayString rootDirs; + + for(size_t i = 0; i < searchWhere.GetCount(); ++i) { + const wxString& rootDir = searchWhere.Item(i); // Check both translations and otherwise: the history may contain either if((rootDir == wxGetTranslation(SEARCH_IN_WORKSPACE)) || (rootDir == SEARCH_IN_WORKSPACE)) { - ManagerST::Get()->GetWorkspaceFiles(files); + if(!clWorkspaceManager::Get().IsWorkspaceOpened()) continue; + clWorkspaceManager::Get().GetWorkspace()->GetWorkspaceFiles(files); } else if((rootDir == wxGetTranslation(SEARCH_IN_PROJECT)) || (rootDir == SEARCH_IN_PROJECT)) { - ManagerST::Get()->GetActiveProjectFiles(files); + if(!clWorkspaceManager::Get().IsWorkspaceOpened()) continue; + if(clWorkspaceManager::Get().GetWorkspace()->IsProjectSupported()) { + // get the active project files + clWorkspaceManager::Get().GetWorkspace()->GetProjectFiles("", files); + } else { + // search the entire workspace + clWorkspaceManager::Get().GetWorkspace()->GetWorkspaceFiles(files); + } } else if((rootDir == wxGetTranslation(SEARCH_IN_CURR_FILE_PROJECT)) || (rootDir == SEARCH_IN_CURR_FILE_PROJECT)) { - ManagerST::Get()->GetActiveFileProjectFiles(files); + + if(!clWorkspaceManager::Get().IsWorkspaceOpened()) continue; + IEditor* editor = clGetManager()->GetActiveEditor(); + if(!editor) continue; + + if(clWorkspaceManager::Get().GetWorkspace()->IsProjectSupported()) { + wxString projectName = + clWorkspaceManager::Get().GetWorkspace()->GetProjectFromFile(editor->GetFileName()); + clWorkspaceManager::Get().GetWorkspace()->GetProjectFiles(projectName, files); + } else { + // search the entire workspace + clWorkspaceManager::Get().GetWorkspace()->GetWorkspaceFiles(files); + } } else if((rootDir == wxGetTranslation(SEARCH_IN_CURRENT_FILE)) || (rootDir == SEARCH_IN_CURRENT_FILE)) { LEditor* editor = clMainFrame::Get()->GetMainBook()->GetActiveEditor(); @@ -285,11 +278,26 @@ files.Add(editor->GetFileName().GetFullPath()); } } + } else if(wxFileName::DirExists(searchWhere.Item(i))) { + rootDirs.Add(searchWhere.Item(i)); } } - data.SetFiles(files); - data.UseNewTab(m_checkBoxSeparateTab->IsChecked()); + // Remove duplicates + wxStringSet_t filesSet; + wxArrayString uniqueFiles; + std::for_each(files.begin(), files.end(), [&](const wxString& file) { + if(filesSet.count(file) == 0) { + filesSet.insert(file); + uniqueFiles.Add(file); + } + }); + + files.swap(uniqueFiles); + + data.SetFiles(files); // list of files + data.SetRootDirs(rootDirs); // folders + data.UseNewTab(false); data.SetExtensions(m_fileTypes->GetValue()); return data; } @@ -298,25 +306,43 @@ void FindInFilesDialog::OnAddPath(wxCommandEvent& event) { - wxString path = m_dirPicker->GetPath(); - if(m_listPaths->FindString(path) == wxNOT_FOUND) { - m_listPaths->Append(path); - } -} + // Show a popup menu + wxMenu menu; + int firstItem = 8994; + menu.Append(firstItem + 5, "Add Folder..."); + menu.AppendSeparator(); + menu.Append(firstItem + 0, SEARCH_IN_WORKSPACE); + menu.Append(firstItem + 1, SEARCH_IN_PROJECT); + menu.Append(firstItem + 2, SEARCH_IN_CURR_FILE_PROJECT); + menu.Append(firstItem + 3, SEARCH_IN_CURRENT_FILE); + menu.Append(firstItem + 4, SEARCH_IN_OPEN_FILES); + + std::map options; + options.insert(std::make_pair(firstItem, SEARCH_IN_WORKSPACE)); + options.insert(std::make_pair(firstItem + 1, SEARCH_IN_PROJECT)); + options.insert(std::make_pair(firstItem + 2, SEARCH_IN_CURR_FILE_PROJECT)); + options.insert(std::make_pair(firstItem + 3, SEARCH_IN_CURRENT_FILE)); + options.insert(std::make_pair(firstItem + 4, SEARCH_IN_OPEN_FILES)); + + wxPoint pt = m_btnAddPath->GetRect().GetBottomLeft(); + pt.x += 1; + pt.y += 1; + + int selection = GetPopupMenuSelectionFromUser(menu, pt); + if(selection == wxID_NONE) return; + if(selection == (firstItem + 5)) { + wxString folder = ::wxDirSelector(); + if(folder.IsEmpty()) return; + DoAddSearchPath(folder); -void FindInFilesDialog::OnRemovePath(wxCommandEvent& event) -{ - int sel = m_listPaths->GetSelection(); - if(sel != wxNOT_FOUND) { - m_listPaths->Delete(sel); + } else if(options.count(selection)) { + DoAddSearchPath(options.find(selection)->second); } } -void FindInFilesDialog::OnClearPaths(wxCommandEvent& event) { m_listPaths->Clear(); } - int FindInFilesDialog::ShowDialog() { - // update the combobox + // Update the combobox m_findString->Clear(); m_findString->Append(m_data.GetFindStringArr()); DoSetFileMask(); @@ -338,7 +364,7 @@ void FindInFilesDialog::DoSaveSearchPaths() { - wxArrayString paths = m_dirPicker->GetValues(); + wxArrayString paths = m_listPaths->GetStrings(); m_data.SetSearchPaths(paths); } @@ -349,21 +375,14 @@ } } -void FindInFilesDialog::OnClearPathsUI(wxUpdateUIEvent& event) { event.Enable(m_listPaths->IsEmpty() == false); } - -void FindInFilesDialog::OnRemovePathUI(wxUpdateUIEvent& event) -{ - event.Enable(m_listPaths->GetSelection() != wxNOT_FOUND); -} - void FindInFilesDialog::OnFindWhatUI(wxUpdateUIEvent& event) { - event.Enable(m_findString->GetValue().IsEmpty() == false); + event.Enable(!m_findString->GetValue().IsEmpty() && !m_listPaths->IsEmpty()); } void FindInFilesDialog::OnUseDiffColourForCommentsUI(wxUpdateUIEvent& event) { - event.Enable(m_checkBoxSkipMatchesFoundInComments->IsChecked() == false); + // event.Enable(m_checkBoxSkipMatchesFoundInComments->IsChecked() == false); } void FindInFilesDialog::OnFind(wxCommandEvent& event) @@ -388,17 +407,52 @@ if(m_matchCase->IsChecked()) flags |= wxFRD_MATCHCASE; if(m_matchWholeWord->IsChecked()) flags |= wxFRD_MATCHWHOLEWORD; if(m_regualrExpression->IsChecked()) flags |= wxFRD_REGULAREXPRESSION; - if(m_printScope->IsChecked()) flags |= wxFRD_DISPLAYSCOPE; - if(m_checkBoxSeparateTab->IsChecked()) flags |= wxFRD_SEPARATETAB_DISPLAY; if(m_checkBoxSaveFilesBeforeSearching->IsChecked()) flags |= wxFRD_SAVE_BEFORE_SEARCH; - if(m_checkBoxSkipMatchesFoundInComments->IsChecked()) flags |= wxFRD_SKIP_COMMENTS; - if(m_checkBoxSkipMatchesFoundInStrings->IsChecked()) flags |= wxFRD_SKIP_STRINGS; - if(m_checkBoxHighlighStringComments->IsChecked()) flags |= wxFRD_COLOUR_COMMENTS; + if(m_checkBoxPipeForGrep->IsChecked()) flags |= wxFRD_ENABLE_PIPE_SUPPORT; return flags; } void FindInFilesDialog::SetSearchPaths(const wxArrayString& paths) { m_listPaths->Clear(); - m_listPaths->Append(paths); + DoAddSearchPaths(paths); +} + +void FindInFilesDialog::OnClearSelectedPath(wxCommandEvent& event) +{ + wxArrayInt selections; + m_listPaths->GetSelections(selections); + while(!selections.IsEmpty()) { + m_listPaths->Delete(selections.Item(0)); + + selections.Clear(); + m_listPaths->GetSelections(selections); + } +} + +void FindInFilesDialog::OnClearSelectedPathUI(wxUpdateUIEvent& event) +{ + wxArrayInt selections; + m_listPaths->GetSelections(selections); + event.Enable(!selections.IsEmpty()); +} + +void FindInFilesDialog::DoAddSearchPath(const wxString& path) +{ + wxArrayString strings = m_listPaths->GetStrings(); + if(strings.Index(path) == wxNOT_FOUND) { + m_listPaths->Append(path); + } +} + +void FindInFilesDialog::DoAddSearchPaths(const wxArrayString& paths) +{ + for(size_t i = 0; i < paths.size(); ++i) { + DoAddSearchPath(paths.Item(i)); + } +} +void FindInFilesDialog::OnReplaceUI(wxUpdateUIEvent& event) +{ + event.Enable(!m_findString->GetValue().IsEmpty() && !m_listPaths->IsEmpty() && + !m_replaceString->GetValue().IsEmpty()); } diff -Nru codelite-8.0.1+dfsg2/LiteEditor/findinfiles_dlg_formbuilder_bitmaps.cpp codelite-9.0+dfsg/LiteEditor/findinfiles_dlg_formbuilder_bitmaps.cpp --- codelite-8.0.1+dfsg2/LiteEditor/findinfiles_dlg_formbuilder_bitmaps.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/findinfiles_dlg_formbuilder_bitmaps.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,172 +1,145 @@ -// -// This file was automatically generated by wxrc, do not edit by hand. -// - -#include - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#include -#include -#include -#include - -#if wxCHECK_VERSION(2,8,5) && wxABI_VERSION >= 20805 - #define XRC_ADD_FILE(name, data, size, mime) \ - wxMemoryFSHandler::AddFileWithMimeType(name, data, size, mime) -#else - #define XRC_ADD_FILE(name, data, size, mime) \ - wxMemoryFSHandler::AddFile(name, data, size) -#endif - -static size_t xml_res_size_0 = 952; -static unsigned char xml_res_file_0[] = { -137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,16,6,0, -0,0,79,99,35,34,0,0,0,6,98,75,71,68,255,255,255,255,255,255,9,88,247,220, -0,0,0,9,112,72,89,115,0,0,1,186,0,0,1,186,1,232,171,1,6,0,0,0,9,118,112, -65,103,0,0,0,16,0,0,0,16,0,92,198,173,195,0,0,3,21,73,68,65,84,72,199,237, -85,191,75,27,81,28,255,188,228,204,93,84,144,171,24,82,186,53,68,113,146, -208,212,94,9,180,98,135,4,19,173,155,245,79,112,139,139,8,14,133,34,105, -197,78,105,233,86,196,65,108,193,37,24,41,89,18,211,90,141,34,180,29,226, -110,131,137,75,226,96,46,222,187,123,247,174,195,145,30,212,22,187,217, -161,111,122,60,120,223,247,249,245,253,62,98,89,150,101,89,184,182,229, -186,190,167,255,17,0,66,123,19,139,141,143,79,76,104,154,207,231,243,249, -124,162,200,57,231,156,3,166,201,152,105,2,156,91,22,231,127,46,116,126, -126,126,222,108,114,94,173,158,156,84,171,201,228,215,175,135,135,251,251, -175,94,253,53,128,193,193,129,129,254,126,81,140,68,34,145,72,4,56,59,171, -215,235,117,192,227,145,36,73,2,68,209,227,17,69,7,200,197,69,171,117,113, -1,180,90,170,170,170,64,79,143,44,203,178,203,245,225,67,46,151,203,165, -211,67,67,195,195,138,210,221,253,237,219,193,65,169,244,252,249,149,22, -112,110,135,177,82,57,62,62,62,6,226,241,177,177,177,49,192,239,239,235, -235,235,3,170,213,211,211,90,13,168,213,106,181,90,13,184,117,235,230,77, -191,31,152,158,126,242,100,106,10,168,84,42,149,239,223,129,59,119,66,161, -80,8,8,6,3,129,219,183,83,169,161,161,187,119,239,221,91,92,188,82,1,66, -0,203,2,52,77,215,41,5,202,229,163,163,114,25,136,70,163,209,104,20,48, -12,198,24,115,46,198,98,177,88,44,6,124,254,188,187,187,187,219,182,0,104, -181,108,101,130,193,64,32,16,0,108,43,23,22,66,33,69,81,148,174,174,47, -95,74,165,82,105,118,246,55,0,8,33,4,160,212,6,80,40,108,111,23,139,78, -6,18,137,120,60,30,119,0,124,250,180,179,179,179,3,188,127,191,177,177, -177,225,220,119,178,99,154,166,9,244,246,246,246,222,184,1,48,198,24,99, -201,228,253,251,15,30,60,124,40,73,123,123,31,63,22,139,51,51,63,1,152, -38,231,140,1,103,103,141,70,163,1,112,110,154,156,95,102,222,94,245,122, -163,81,175,3,170,170,170,205,166,115,110,63,4,232,186,97,24,6,64,169,166, -81,10,232,186,77,204,235,245,122,37,137,144,75,10,116,117,121,189,94,47, -64,41,165,186,14,60,122,52,50,50,58,10,140,143,39,18,137,4,144,207,23,10, -249,60,160,170,205,166,170,2,147,147,19,19,143,31,3,30,79,71,71,71,7,176, -182,246,238,221,250,58,224,140,53,123,39,8,130,224,118,3,146,68,136,40, -166,211,185,92,54,155,205,38,147,151,0,116,118,118,118,74,146,147,242,112, -56,28,14,135,129,98,177,88,220,222,6,50,153,205,205,76,6,176,44,206,45, -203,145,92,81,20,69,81,128,108,118,107,43,155,117,20,99,204,182,192,182, -100,105,105,117,245,237,219,149,149,249,249,95,149,36,237,81,188,180,180, -188,156,74,57,67,185,205,180,221,29,130,32,8,130,224,20,214,52,77,211,52, -59,35,156,3,132,184,92,132,56,222,27,6,99,166,249,244,233,155,55,233,244, -235,215,207,158,253,69,23,16,66,8,165,110,183,219,237,118,139,162,44,203, -178,44,59,133,219,157,210,206,6,99,166,105,51,181,25,83,106,24,186,110, -89,134,65,169,174,207,205,165,82,139,139,47,94,188,124,121,213,32,34,255, -63,163,235,6,240,3,70,175,226,161,250,181,37,207,0,0,0,34,122,84,88,116, -83,111,102,116,119,97,114,101,0,0,120,218,43,47,47,215,203,204,203,46,78, -78,44,72,213,203,47,74,7,0,54,216,6,88,16,83,202,92,0,0,0,0,73,69,78,68, -174,66,96,130}; - -static size_t xml_res_size_1 = 412; -static unsigned char xml_res_file_1[] = { -137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, -0,31,243,255,97,0,0,0,25,116,69,88,116,83,111,102,116,119,97,114,101,0, -65,100,111,98,101,32,73,109,97,103,101,82,101,97,100,121,113,201,101,60, -0,0,1,62,73,68,65,84,120,218,148,83,75,138,132,48,16,141,67,175,4,17,81, -92,136,224,78,189,128,151,232,115,120,6,207,32,46,92,184,22,161,47,209, -87,240,14,46,92,136,8,34,136,75,255,153,73,160,36,102,180,135,9,20,85,47, -169,122,245,242,19,48,198,232,110,68,81,132,139,162,64,182,109,163,32,8, -132,171,156,175,187,98,223,247,41,115,154,166,2,139,249,33,176,10,178,44, -195,219,182,161,117,93,169,45,203,66,253,60,207,52,6,76,44,142,99,225,68, -240,122,189,176,231,121,52,105,154,166,195,198,113,164,6,49,241,132,176, -44,75,148,36,137,240,128,238,132,40,207,115,4,10,160,35,73,102,49,40,128, -198,167,45,132,97,136,93,215,61,36,19,79,12,186,2,89,85,85,199,217,156, -14,81,85,85,100,154,230,129,29,199,57,58,89,150,69,215,21,69,65,162,40, -94,223,2,73,222,247,29,25,134,113,96,93,215,233,28,96,254,218,127,17,0, -9,25,196,179,69,60,190,85,0,9,60,102,73,46,9,96,145,220,4,171,136,87,240, -241,37,130,124,136,121,69,31,183,0,5,172,2,152,251,23,1,219,145,247,127, -110,161,174,107,74,34,73,18,234,251,158,198,154,166,161,174,235,104,241, -48,12,39,146,7,91,252,243,64,222,109,219,62,155,166,57,125,40,246,9,19, -147,101,249,13,53,223,2,12,0,96,247,127,18,253,82,202,104,0,0,0,0,73,69, -78,68,174,66,96,130}; - -static size_t xml_res_size_2 = 627; -static unsigned char xml_res_file_2[] = { -137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,3,0,0, -0,40,45,15,83,0,0,0,3,115,66,73,84,8,8,8,219,225,79,224,0,0,0,9,112,72, -89,115,0,0,6,236,0,0,6,236,1,30,117,56,53,0,0,0,25,116,69,88,116,83,111, -102,116,119,97,114,101,0,119,119,119,46,105,110,107,115,99,97,112,101,46, -111,114,103,155,238,60,26,0,0,1,2,80,76,84,69,255,255,255,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,4,4,4,10,10,10,0,0,0,16,16,16,17, -17,17,11,11,11,14,14,14,18,18,18,27,27,27,31,31,31,1,1,1,19,19,19,21,21, -21,22,22,22,23,23,23,24,24,24,27,27,27,28,28,28,35,35,35,36,36,36,38,37, -35,39,39,39,40,40,40,43,43,43,44,44,44,45,45,45,50,50,50,52,50,49,54,40, -30,54,40,31,54,42,36,54,54,54,56,40,31,57,44,37,60,48,40,69,66,64,72,33, -0,74,74,74,77,77,77,78,41,9,78,78,78,83,51,28,85,83,82,86,86,86,89,72,61, -104,88,77,104,104,104,105,87,70,105,105,105,106,106,106,114,112,111,115, -115,115,118,98,82,120,120,120,129,126,125,132,64,7,132,87,52,134,67,11, -135,91,59,144,73,11,144,97,61,145,98,63,149,114,84,171,145,122,123,196, -58,153,0,0,0,32,116,82,78,83,0,1,8,10,19,20,25,36,38,41,71,98,129,142,147, -152,157,165,190,204,207,209,235,236,237,243,243,244,246,246,251,252,141, -221,80,73,0,0,0,183,73,68,65,84,24,25,141,193,135,22,129,0,0,5,208,151, -8,217,17,161,204,108,145,45,34,35,145,172,140,255,255,21,78,199,7,116,47, -224,74,40,25,6,194,201,16,254,168,226,177,21,12,180,142,69,10,14,154,237, -245,171,130,80,149,122,44,141,31,127,193,148,150,162,177,21,151,146,89, -240,3,72,76,84,67,94,151,75,170,108,168,147,4,64,87,244,139,213,236,212, -106,157,166,117,209,43,52,152,205,120,186,59,53,186,221,250,105,55,29,111, -24,100,230,218,243,177,23,83,41,113,127,123,105,179,52,184,209,226,110, -159,121,175,151,63,219,215,213,144,67,164,125,120,127,148,40,16,85,62,239, -67,59,2,79,44,55,200,199,73,128,140,231,7,217,152,7,0,225,35,224,32,124, -4,92,248,2,207,199,24,197,87,247,22,178,0,0,0,0,73,69,78,68,174,66,96,130}; - -static size_t xml_res_size_3 = 489; -static unsigned char xml_res_file_3[] = { -60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, -110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, -115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, -47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, -47,119,120,120,114,99,34,62,10,32,32,60,111,98,106,101,99,116,32,99,108, -97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61, -34,99,108,101,97,114,45,97,108,108,34,62,102,105,110,100,105,110,102,105, -108,101,115,95,100,108,103,95,102,111,114,109,98,117,105,108,100,101,114, -95,98,105,116,109,97,112,115,46,99,112,112,36,46,46,95,105,99,111,110,115, -95,99,108,101,97,114,45,97,108,108,46,112,110,103,60,47,111,98,106,101, -99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34, -119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,100,101,108,101, -116,101,45,108,105,110,101,34,62,102,105,110,100,105,110,102,105,108,101, -115,95,100,108,103,95,102,111,114,109,98,117,105,108,100,101,114,95,98, -105,116,109,97,112,115,46,99,112,112,36,46,46,95,105,99,111,110,115,95, -100,101,108,101,116,101,45,108,105,110,101,46,112,110,103,60,47,111,98, -106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, -61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,102,105, -110,100,45,105,110,45,102,105,108,101,115,34,62,102,105,110,100,105,110, -102,105,108,101,115,95,100,108,103,95,102,111,114,109,98,117,105,108,100, -101,114,95,98,105,116,109,97,112,115,46,99,112,112,36,46,46,95,99,111,100, -101,108,105,116,101,45,105,99,111,110,115,95,116,111,111,108,98,97,114, -115,95,49,54,95,115,101,97,114,99,104,95,102,105,110,100,45,105,110,45, -102,105,108,101,115,46,112,110,103,60,47,111,98,106,101,99,116,62,10,60, -47,114,101,115,111,117,114,99,101,62,10}; - -void wxCABC4InitBitmapResources() -{ - - // Check for memory FS. If not present, load the handler: - { - wxMemoryFSHandler::AddFile(wxT("XRC_resource/dummy_file"), wxT("dummy one")); - wxFileSystem fsys; - wxFSFile *f = fsys.OpenFile(wxT("memory:XRC_resource/dummy_file")); - wxMemoryFSHandler::RemoveFile(wxT("XRC_resource/dummy_file")); - if (f) delete f; - else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase); - } - - XRC_ADD_FILE(wxT("XRC_resource/findinfiles_dlg_formbuilder_bitmaps.cpp$.._icons_clear-all.png"), xml_res_file_0, xml_res_size_0, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/findinfiles_dlg_formbuilder_bitmaps.cpp$.._icons_delete-line.png"), xml_res_file_1, xml_res_size_1, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/findinfiles_dlg_formbuilder_bitmaps.cpp$.._codelite-icons_toolbars_16_search_find-in-files.png"), xml_res_file_2, xml_res_size_2, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/findinfiles_dlg_formbuilder_bitmaps.cpp$_home_david_devel_git_CL_formbuilder_findinfiles_dlg_formbuilder_bitmaps.xrc"), xml_res_file_3, xml_res_size_3, wxT("text/xml")); - wxXmlResource::Get()->Load(wxT("memory:XRC_resource/findinfiles_dlg_formbuilder_bitmaps.cpp$_home_david_devel_git_CL_formbuilder_findinfiles_dlg_formbuilder_bitmaps.xrc")); -} +// +// This file was automatically generated by wxrc, do not edit by hand. +// + +#include + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +#include +#include +#include +#include + +#if wxCHECK_VERSION(2,8,5) && wxABI_VERSION >= 20805 + #define XRC_ADD_FILE(name, data, size, mime) \ + wxMemoryFSHandler::AddFileWithMimeType(name, data, size, mime) +#else + #define XRC_ADD_FILE(name, data, size, mime) \ + wxMemoryFSHandler::AddFile(name, data, size) +#endif + +static size_t xml_res_size_0 = 632; +static unsigned char xml_res_file_0[] = { +137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, +0,31,243,255,97,0,0,0,6,98,75,71,68,0,255,0,255,0,255,160,189,167,147,0, +0,0,9,112,72,89,115,0,0,13,215,0,0,13,215,1,66,40,155,120,0,0,0,7,116,73, +77,69,7,223,8,21,14,20,2,178,53,115,69,0,0,2,5,73,68,65,84,56,203,125,147, +189,107,147,81,20,135,159,115,223,56,24,131,137,130,40,168,201,77,242,118, +10,110,42,66,55,69,161,69,16,7,21,35,72,5,219,130,186,251,39,136,56,187, +4,41,216,73,26,23,197,65,163,147,218,37,14,78,117,208,198,124,88,181,104, +209,34,241,35,38,189,199,33,111,210,228,173,244,76,231,254,56,207,185,231, +222,115,142,16,178,220,174,92,236,119,180,121,74,68,78,224,216,29,200,203, +42,90,218,250,43,246,112,225,235,66,115,48,94,6,15,25,107,47,137,114,3, +250,96,216,150,81,185,94,105,84,103,123,130,215,115,178,169,212,45,65,110, +2,49,133,159,34,60,80,101,78,68,231,65,86,128,44,16,71,56,189,115,71,34, +250,125,117,245,89,191,2,63,149,186,162,200,237,160,166,34,158,119,173, +82,169,124,25,188,218,79,38,115,42,166,12,68,1,80,153,174,52,170,5,177, +214,238,241,84,223,129,196,4,102,22,235,181,203,128,14,61,45,147,137,155, +142,43,169,112,120,64,254,65,196,27,49,198,49,13,18,67,249,208,17,174,134, +97,107,109,98,29,214,142,32,147,2,223,128,237,116,220,148,49,48,14,32,134, +153,90,173,246,39,12,71,28,79,250,176,154,11,139,245,234,29,148,66,55,66, +199,13,130,15,224,84,203,97,216,131,210,16,220,168,206,5,205,123,29,36, +24,49,218,255,20,239,111,24,70,57,20,192,249,117,24,84,220,74,144,104,155, +81,248,12,128,113,254,38,112,113,104,26,212,248,129,247,201,136,240,2,64, +148,51,214,218,132,167,250,116,0,62,191,1,238,182,250,108,48,3,207,13,170, +119,3,249,168,167,250,10,228,32,208,14,224,251,97,54,147,204,156,4,61,22, +36,154,237,14,146,181,37,85,142,7,49,109,81,201,255,15,206,38,147,163,136, +121,4,36,128,199,149,122,109,44,2,208,129,139,158,82,70,216,223,205,172, +99,233,116,186,17,109,70,223,180,226,173,182,107,185,3,24,157,0,157,2,182, +0,13,103,100,98,104,153,252,189,254,62,141,116,138,192,17,54,53,153,247, +214,218,231,222,46,45,125,220,176,141,128,241,147,233,188,67,39,69,24,29, +88,182,53,224,165,162,133,247,245,250,61,192,245,128,127,11,211,222,175, +157,247,177,181,0,0,0,0,73,69,78,68,174,66,96,130}; + +static size_t xml_res_size_1 = 190; +static unsigned char xml_res_file_1[] = { +137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, +0,31,243,255,97,0,0,0,6,98,75,71,68,0,255,0,255,0,255,160,189,167,147,0, +0,0,9,112,72,89,115,0,0,13,215,0,0,13,215,1,66,40,155,120,0,0,0,7,116,73, +77,69,7,223,8,21,14,17,40,20,249,78,214,0,0,0,75,73,68,65,84,56,203,99, +96,24,104,192,136,75,66,89,94,225,63,130,247,127,246,221,135,15,211,176, +169,99,162,212,5,3,111,0,35,194,207,242,179,208,164,82,145,20,221,248,207, +240,255,48,178,44,44,76,24,177,7,26,97,112,247,225,3,198,65,22,6,35,56, +29,12,60,0,0,79,49,24,21,122,134,127,121,0,0,0,0,73,69,78,68,174,66,96, +130}; + +static size_t xml_res_size_2 = 627; +static unsigned char xml_res_file_2[] = { +137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,3,0,0, +0,40,45,15,83,0,0,0,3,115,66,73,84,8,8,8,219,225,79,224,0,0,0,9,112,72, +89,115,0,0,6,236,0,0,6,236,1,30,117,56,53,0,0,0,25,116,69,88,116,83,111, +102,116,119,97,114,101,0,119,119,119,46,105,110,107,115,99,97,112,101,46, +111,114,103,155,238,60,26,0,0,1,2,80,76,84,69,255,255,255,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,4,4,4,10,10,10,0,0,0,16,16,16,17, +17,17,11,11,11,14,14,14,18,18,18,27,27,27,31,31,31,1,1,1,19,19,19,21,21, +21,22,22,22,23,23,23,24,24,24,27,27,27,28,28,28,35,35,35,36,36,36,38,37, +35,39,39,39,40,40,40,43,43,43,44,44,44,45,45,45,50,50,50,52,50,49,54,40, +30,54,40,31,54,42,36,54,54,54,56,40,31,57,44,37,60,48,40,69,66,64,72,33, +0,74,74,74,77,77,77,78,41,9,78,78,78,83,51,28,85,83,82,86,86,86,89,72,61, +104,88,77,104,104,104,105,87,70,105,105,105,106,106,106,114,112,111,115, +115,115,118,98,82,120,120,120,129,126,125,132,64,7,132,87,52,134,67,11, +135,91,59,144,73,11,144,97,61,145,98,63,149,114,84,171,145,122,123,196, +58,153,0,0,0,32,116,82,78,83,0,1,8,10,19,20,25,36,38,41,71,98,129,142,147, +152,157,165,190,204,207,209,235,236,237,243,243,244,246,246,251,252,141, +221,80,73,0,0,0,183,73,68,65,84,24,25,141,193,135,22,129,0,0,5,208,151, +8,217,17,161,204,108,145,45,34,35,145,172,140,255,255,21,78,199,7,116,47, +224,74,40,25,6,194,201,16,254,168,226,177,21,12,180,142,69,10,14,154,237, +245,171,130,80,149,122,44,141,31,127,193,148,150,162,177,21,151,146,89, +240,3,72,76,84,67,94,151,75,170,108,168,147,4,64,87,244,139,213,236,212, +106,157,166,117,209,43,52,152,205,120,186,59,53,186,221,250,105,55,29,111, +24,100,230,218,243,177,23,83,41,113,127,123,105,179,52,184,209,226,110, +159,121,175,151,63,219,215,213,144,67,164,125,120,127,148,40,16,85,62,239, +67,59,2,79,44,55,200,199,73,128,140,231,7,217,152,7,0,225,35,224,32,124, +4,92,248,2,207,199,24,197,87,247,22,178,0,0,0,0,73,69,78,68,174,66,96,130}; + +static size_t xml_res_size_3 = 483; +static unsigned char xml_res_file_3[] = { +60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, +110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, +115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, +47,47,119,119,119,46,119,120,119,105,100,103,101,116,115,46,111,114,103, +47,119,120,120,114,99,34,62,10,32,32,60,111,98,106,101,99,116,32,99,108, +97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61, +34,102,105,102,45,99,108,101,97,114,34,62,102,105,110,100,105,110,102,105, +108,101,115,95,100,108,103,95,102,111,114,109,98,117,105,108,100,101,114, +95,98,105,116,109,97,112,115,46,99,112,112,36,46,46,95,105,99,111,110,115, +95,102,105,102,45,99,108,101,97,114,46,112,110,103,60,47,111,98,106,101, +99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34, +119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,102,105,102,45, +109,101,110,117,34,62,102,105,110,100,105,110,102,105,108,101,115,95,100, +108,103,95,102,111,114,109,98,117,105,108,100,101,114,95,98,105,116,109, +97,112,115,46,99,112,112,36,46,46,95,105,99,111,110,115,95,102,105,102, +45,109,101,110,117,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32, +32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116, +109,97,112,34,32,110,97,109,101,61,34,102,105,110,100,45,105,110,45,102, +105,108,101,115,34,62,102,105,110,100,105,110,102,105,108,101,115,95,100, +108,103,95,102,111,114,109,98,117,105,108,100,101,114,95,98,105,116,109, +97,112,115,46,99,112,112,36,46,46,95,99,111,100,101,108,105,116,101,45, +105,99,111,110,115,95,116,111,111,108,98,97,114,115,95,49,54,95,115,101, +97,114,99,104,95,102,105,110,100,45,105,110,45,102,105,108,101,115,46,112, +110,103,60,47,111,98,106,101,99,116,62,10,60,47,114,101,115,111,117,114, +99,101,62,10}; + +void wxCABC4InitBitmapResources() +{ + + // Check for memory FS. If not present, load the handler: + { + wxMemoryFSHandler::AddFile(wxT("XRC_resource/dummy_file"), wxT("dummy one")); + wxFileSystem fsys; + wxFSFile *f = fsys.OpenFile(wxT("memory:XRC_resource/dummy_file")); + wxMemoryFSHandler::RemoveFile(wxT("XRC_resource/dummy_file")); + if (f) delete f; + else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase); + } + + XRC_ADD_FILE(wxT("XRC_resource/findinfiles_dlg_formbuilder_bitmaps.cpp$.._icons_fif-clear.png"), xml_res_file_0, xml_res_size_0, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/findinfiles_dlg_formbuilder_bitmaps.cpp$.._icons_fif-menu.png"), xml_res_file_1, xml_res_size_1, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/findinfiles_dlg_formbuilder_bitmaps.cpp$.._codelite-icons_toolbars_16_search_find-in-files.png"), xml_res_file_2, xml_res_size_2, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/findinfiles_dlg_formbuilder_bitmaps.cpp$C__src_codelite_formbuilder_findinfiles_dlg_formbuilder_bitmaps.xrc"), xml_res_file_3, xml_res_size_3, wxT("text/xml")); + wxXmlResource::Get()->Load(wxT("memory:XRC_resource/findinfiles_dlg_formbuilder_bitmaps.cpp$C__src_codelite_formbuilder_findinfiles_dlg_formbuilder_bitmaps.xrc")); +} diff -Nru codelite-8.0.1+dfsg2/LiteEditor/findinfiles_dlg.h codelite-9.0+dfsg/LiteEditor/findinfiles_dlg.h --- codelite-8.0.1+dfsg2/LiteEditor/findinfiles_dlg.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/findinfiles_dlg.h 2015-10-11 13:56:07.000000000 +0000 @@ -4,8 +4,8 @@ // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// -#ifndef FINDINFILES_DLG_BASE_CLASSES_H -#define FINDINFILES_DLG_BASE_CLASSES_H +#ifndef CODELITE_FORMBUILDER_FINDINFILES_DLG_BASE_CLASSES_H +#define CODELITE_FORMBUILDER_FINDINFILES_DLG_BASE_CLASSES_H #include #include @@ -18,12 +18,9 @@ #include #include #include -#include "dirpicker.h" -#include #include +#include #include -#include -#include #include #if wxVERSION_NUMBER >= 2900 #include @@ -38,29 +35,22 @@ wxPanel* m_panelMainPanel; wxStaticText* m_staticText1; wxComboBox* m_findString; + wxStaticText* m_staticText102; + wxComboBox* m_replaceString; wxStaticText* m_staticText2; - DirPicker* m_dirPicker; - wxButton* m_btnAddPath; wxListBox* m_listPaths; - wxButton* m_btnRemovelPath; - wxButton* m_btnClearPaths; + wxButton* m_btnAddPath; + wxButton* m_btnClearSelectedPath; wxStaticText* m_staticText3; wxComboBox* m_fileTypes; wxStaticText* m_staticText5; wxChoice* m_choiceEncoding; - wxStaticText* m_staticText7; - wxNotebook* m_notebook1; - wxPanel* m_panel1; + wxStaticText* m_staticText97; wxCheckBox* m_matchCase; wxCheckBox* m_matchWholeWord; + wxCheckBox* m_checkBoxPipeForGrep; wxCheckBox* m_regualrExpression; wxCheckBox* m_checkBoxSaveFilesBeforeSearching; - wxCheckBox* m_checkBoxSeparateTab; - wxPanel* m_panel2; - wxCheckBox* m_printScope; - wxCheckBox* m_checkBoxSkipMatchesFoundInComments; - wxCheckBox* m_checkBoxSkipMatchesFoundInStrings; - wxCheckBox* m_checkBoxHighlighStringComments; wxButton* m_find; wxButton* m_replaceAll; wxButton* m_stop; @@ -68,43 +58,34 @@ protected: virtual void OnAddPath(wxCommandEvent& event) { event.Skip(); } - virtual void OnRemovePath(wxCommandEvent& event) { event.Skip(); } - virtual void OnRemovePathUI(wxUpdateUIEvent& event) { event.Skip(); } - virtual void OnClearPaths(wxCommandEvent& event) { event.Skip(); } - virtual void OnClearPathsUI(wxUpdateUIEvent& event) { event.Skip(); } - virtual void OnUseDiffColourForCommentsUI(wxUpdateUIEvent& event) { event.Skip(); } + virtual void OnClearSelectedPath(wxCommandEvent& event) { event.Skip(); } + virtual void OnClearSelectedPathUI(wxUpdateUIEvent& event) { event.Skip(); } virtual void OnFind(wxCommandEvent& event) { event.Skip(); } virtual void OnFindWhatUI(wxUpdateUIEvent& event) { event.Skip(); } virtual void OnReplace(wxCommandEvent& event) { event.Skip(); } + virtual void OnReplaceUI(wxUpdateUIEvent& event) { event.Skip(); } virtual void OnStop(wxCommandEvent& event) { event.Skip(); } virtual void OnButtonClose(wxCommandEvent& event) { event.Skip(); } public: wxStaticText* GetStaticText1() { return m_staticText1; } wxComboBox* GetFindString() { return m_findString; } + wxStaticText* GetStaticText102() { return m_staticText102; } + wxComboBox* GetReplaceString() { return m_replaceString; } wxStaticText* GetStaticText2() { return m_staticText2; } - DirPicker* GetDirPicker() { return m_dirPicker; } - wxButton* GetBtnAddPath() { return m_btnAddPath; } wxListBox* GetListPaths() { return m_listPaths; } - wxButton* GetBtnRemovelPath() { return m_btnRemovelPath; } - wxButton* GetBtnClearPaths() { return m_btnClearPaths; } + wxButton* GetBtnAddPath() { return m_btnAddPath; } + wxButton* GetBtnClearSelectedPath() { return m_btnClearSelectedPath; } wxStaticText* GetStaticText3() { return m_staticText3; } wxComboBox* GetFileTypes() { return m_fileTypes; } wxStaticText* GetStaticText5() { return m_staticText5; } wxChoice* GetChoiceEncoding() { return m_choiceEncoding; } - wxStaticText* GetStaticText7() { return m_staticText7; } + wxStaticText* GetStaticText97() { return m_staticText97; } wxCheckBox* GetMatchCase() { return m_matchCase; } wxCheckBox* GetMatchWholeWord() { return m_matchWholeWord; } + wxCheckBox* GetCheckBoxPipeForGrep() { return m_checkBoxPipeForGrep; } wxCheckBox* GetRegualrExpression() { return m_regualrExpression; } wxCheckBox* GetCheckBoxSaveFilesBeforeSearching() { return m_checkBoxSaveFilesBeforeSearching; } - wxCheckBox* GetCheckBoxSeparateTab() { return m_checkBoxSeparateTab; } - wxPanel* GetPanel1() { return m_panel1; } - wxCheckBox* GetPrintScope() { return m_printScope; } - wxCheckBox* GetCheckBoxSkipMatchesFoundInComments() { return m_checkBoxSkipMatchesFoundInComments; } - wxCheckBox* GetCheckBoxSkipMatchesFoundInStrings() { return m_checkBoxSkipMatchesFoundInStrings; } - wxCheckBox* GetCheckBoxHighlighStringComments() { return m_checkBoxHighlighStringComments; } - wxPanel* GetPanel2() { return m_panel2; } - wxNotebook* GetNotebook1() { return m_notebook1; } wxButton* GetFind() { return m_find; } wxButton* GetReplaceAll() { return m_replaceAll; } wxButton* GetStop() { return m_stop; } diff -Nru codelite-8.0.1+dfsg2/LiteEditor/findinfilesdlg.h codelite-9.0+dfsg/LiteEditor/findinfilesdlg.h --- codelite-8.0.1+dfsg2/LiteEditor/findinfilesdlg.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/findinfilesdlg.h 2015-10-11 13:56:07.000000000 +0000 @@ -35,6 +35,9 @@ wxArrayString m_pluginFileMask; protected: + virtual void OnReplaceUI(wxUpdateUIEvent& event); + virtual void OnClearSelectedPathUI(wxUpdateUIEvent& event); + virtual void OnClearSelectedPath(wxCommandEvent& event); virtual void OnButtonClose(wxCommandEvent& event); virtual void OnFind(wxCommandEvent& event); virtual void OnReplace(wxCommandEvent& event); @@ -45,14 +48,14 @@ SearchData DoGetSearchData(); void DoSaveOpenFiles(); void DoSetFileMask(); - + + // Append new search path, ensure singularity + void DoAddSearchPath(const wxString& path); + void DoAddSearchPaths(const wxArrayString& paths); + // Event Handlers virtual void OnClose(wxCloseEvent& event); virtual void OnAddPath(wxCommandEvent& event); - virtual void OnRemovePath(wxCommandEvent& event); - virtual void OnClearPaths(wxCommandEvent& event); - virtual void OnClearPathsUI(wxUpdateUIEvent& event); - virtual void OnRemovePathUI(wxUpdateUIEvent& event); virtual void OnFindWhatUI(wxUpdateUIEvent& event); @@ -62,7 +65,6 @@ public: FindInFilesDialog(wxWindow* parent, const wxString& dataName); virtual ~FindInFilesDialog(); - void SetRootDir(const wxString& rootDir); void SetSearchPaths(const wxArrayString& paths); FindReplaceData& GetData() { return m_data; } diff -Nru codelite-8.0.1+dfsg2/LiteEditor/findreplacedlg.cpp codelite-9.0+dfsg/LiteEditor/findreplacedlg.cpp --- codelite-8.0.1+dfsg2/LiteEditor/findreplacedlg.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/findreplacedlg.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -32,6 +32,7 @@ #include #include #include "macros.h" +#include DEFINE_EVENT_TYPE(wxEVT_FRD_FIND_NEXT) DEFINE_EVENT_TYPE(wxEVT_FRD_CLOSE) @@ -81,8 +82,7 @@ long style) { m_kind = FIND_DLG; - if(!wxDialog::Create(parent, id, caption, pos, size, style)) - return false; + if(!wxDialog::Create(parent, id, caption, pos, size, style)) return false; m_data = data; m_owner = NULL; @@ -97,9 +97,7 @@ return true; } -FindReplaceDialog::~FindReplaceDialog() -{ -} +FindReplaceDialog::~FindReplaceDialog() {} void FindReplaceDialog::CreateGUIControls() { @@ -175,10 +173,7 @@ SetFindReplaceData(m_data, true); } -void FindReplaceDialog::OnFindEvent(wxCommandEvent& event) -{ - SetFindReplaceData(GetData(), false); -} +void FindReplaceDialog::OnFindEvent(wxCommandEvent& event) { SetFindReplaceData(GetData(), false); } void FindReplaceDialog::SetFindReplaceData(FindReplaceData& data, bool focus) { @@ -538,9 +533,14 @@ { m_findString = json.namedObject("m_findString").toArrayString(); m_replaceString = json.namedObject("m_replaceString").toArrayString(); - m_searchScope = json.namedObject("m_searchScope").toInt(m_searchScope); m_flags = json.namedObject("m_flags").toSize_t(m_flags); - m_searchPaths = json.namedObject("m_searchPaths").toArrayString(); + + if(json.hasNamedObject("m_lookIn")) { + m_searchPaths = json.namedObject("m_lookIn").toArrayString(); + } else { + m_searchPaths.Add(SEARCH_IN_WORKSPACE); + } + m_encoding = json.namedObject("m_encoding").toString(m_encoding); m_fileMask = json.namedObject("m_fileMask").toArrayString(); m_selectedMask = json.namedObject("m_selectedMask").toString(m_selectedMask); @@ -553,7 +553,7 @@ if(m_fileMask.IsEmpty()) { m_fileMask.Add("*.c;*.cpp;*.cxx;*.cc;*.h;*.hpp;*.inc;*.mm;*.m;*.xrc"); - m_selectedMask = "*.c;*.cpp;*.cxx;*.cc;*.h;*.hpp;*.inc;*.mm;*.m;*.xrc"; + m_selectedMask = m_fileMask.Item(0); } } @@ -562,9 +562,8 @@ JSONElement element = JSONElement::createObject(GetName()); element.addProperty("m_findString", m_findString); element.addProperty("m_replaceString", m_replaceString); - element.addProperty("m_searchScope", m_searchScope); element.addProperty("m_flags", m_flags); - element.addProperty("m_searchPaths", m_searchPaths); + element.addProperty("m_lookIn", m_searchPaths); element.addProperty("m_encoding", m_encoding); element.addProperty("m_fileMask", m_fileMask); element.addProperty("m_selectedMask", m_selectedMask); @@ -597,7 +596,16 @@ : clConfigItem("FindReplaceData") , m_flags(wxFRD_SEPARATETAB_DISPLAY | wxFRD_MATCHCASE | wxFRD_MATCHWHOLEWORD) , m_selectedMask("*.c;*.cpp;*.cxx;*.cc;*.h;*.hpp;*.inc;*.mm;*.m;*.xrc") // Default file mask - , m_searchScope(1) { + m_searchPaths.Add(SEARCH_IN_WORKSPACE); m_fileMask.Add("*.c;*.cpp;*.cxx;*.cc;*.h;*.hpp;*.inc;*.mm;*.m;*.xrc"); } + +void FindReplaceData::SetSearchPaths(const wxArrayString& searchPaths) +{ + // filter duplicate items + wxStringSet_t paths; + paths.insert(searchPaths.begin(), searchPaths.end()); + m_searchPaths.clear(); + std::for_each(paths.begin(), paths.end(), [&](const wxString& path) { m_searchPaths.Add(path); }); +} diff -Nru codelite-8.0.1+dfsg2/LiteEditor/findreplacedlg.h codelite-9.0+dfsg/LiteEditor/findreplacedlg.h --- codelite-8.0.1+dfsg2/LiteEditor/findreplacedlg.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/findreplacedlg.h 2015-10-11 13:56:07.000000000 +0000 @@ -33,29 +33,30 @@ class wxButton; class wxStaticText; -#define wxFRD_MATCHCASE 0x00000001 -#define wxFRD_MATCHWHOLEWORD 0x00000002 -#define wxFRD_REGULAREXPRESSION 0x00000004 -#define wxFRD_SEARCHUP 0x00000008 -#define wxFRD_WRAPSEARCH 0x00000010 -#define wxFRD_SELECTIONONLY 0x00000020 -#define wxFRD_DISPLAYSCOPE 0x00000080 -#define wxFRD_SAVE_BEFORE_SEARCH 0x00000100 -#define wxFRD_SKIP_COMMENTS 0x00000200 -#define wxFRD_SKIP_STRINGS 0x00000400 -#define wxFRD_COLOUR_COMMENTS 0x00000800 -#define wxFRD_SEPARATETAB_DISPLAY 0x00001000 +#define wxFRD_MATCHCASE (1 << 0) +#define wxFRD_MATCHWHOLEWORD (1 << 1) +#define wxFRD_REGULAREXPRESSION (1 << 2) +#define wxFRD_SEARCHUP (1 << 3) +#define wxFRD_WRAPSEARCH (1 << 4) +#define wxFRD_SELECTIONONLY (1 << 5) +#define wxFRD_DISPLAYSCOPE (1 << 6) +#define wxFRD_SAVE_BEFORE_SEARCH (1 << 7) +#define wxFRD_SKIP_COMMENTS (1 << 8) +#define wxFRD_SKIP_STRINGS (1 << 9) +#define wxFRD_COLOUR_COMMENTS (1 << 10) +#define wxFRD_SEPARATETAB_DISPLAY (1 << 11) +#define wxFRD_ENABLE_PIPE_SUPPORT (1 << 12) #define FIND_DLG 0 #define REPLACE_DLG 1 #ifndef WXDLLIMPEXP_LE #ifdef WXMAKINGDLL -# define WXDLLIMPEXP_LE WXIMPORT +#define WXDLLIMPEXP_LE WXIMPORT #elif defined(WXUSINGDLL) -# define WXDLLIMPEXP_LE WXEXPORT +#define WXDLLIMPEXP_LE WXEXPORT #else -# define WXDLLIMPEXP_LE +#define WXDLLIMPEXP_LE #endif // WXDLLIMPEXP_LE #endif @@ -68,18 +69,17 @@ class FindReplaceData : public clConfigItem { - wxArrayString m_replaceString; - wxArrayString m_findString; - size_t m_flags; - wxArrayString m_searchPaths; - wxString m_encoding; - wxArrayString m_fileMask; - wxString m_selectedMask; - int m_searchScope; - + wxArrayString m_replaceString; + wxArrayString m_findString; + size_t m_flags; + wxArrayString m_searchPaths; + wxString m_encoding; + wxArrayString m_fileMask; + wxString m_selectedMask; + protected: void TruncateArray(wxArrayString& arr, size_t maxSize); - + public: /** * @brief @@ -92,54 +92,27 @@ */ virtual JSONElement ToJSON() const; FindReplaceData(); - virtual ~FindReplaceData() - {} - + virtual ~FindReplaceData() {} + wxString GetFindString() const; wxString GetReplaceString() const; void SetFindString(const wxString& str); void SetReplaceString(const wxString& str); - - wxArrayString GetFindStringArr() const ; - - wxArrayString GetReplaceStringArr() const ; - - void SetEncoding(const wxString& encoding) { - this->m_encoding = encoding; - } - void SetFileMask(const wxArrayString& fileMask) { - this->m_fileMask = fileMask; - } - void SetFlags(size_t flags) { - this->m_flags = flags; - } - void SetSearchPaths(const wxArrayString& searchPaths) { - this->m_searchPaths = searchPaths; - } - void SetSearchScope(int searchScope) { - this->m_searchScope = searchScope; - } - void SetSelectedMask(const wxString& selectedMask) { - this->m_selectedMask = selectedMask; - } - const wxString& GetEncoding() const { - return m_encoding; - } - const wxArrayString& GetFileMask() const { - return m_fileMask; - } - size_t GetFlags() const { - return m_flags; - } - const wxArrayString& GetSearchPaths() const { - return m_searchPaths; - } - int GetSearchScope() const { - return m_searchScope; - } - const wxString& GetSelectedMask() const { - return m_selectedMask; - } + + wxArrayString GetFindStringArr() const; + + wxArrayString GetReplaceStringArr() const; + + void SetEncoding(const wxString& encoding) { this->m_encoding = encoding; } + void SetFileMask(const wxArrayString& fileMask) { this->m_fileMask = fileMask; } + void SetFlags(size_t flags) { this->m_flags = flags; } + void SetSearchPaths(const wxArrayString& searchPaths); + void SetSelectedMask(const wxString& selectedMask) { this->m_selectedMask = selectedMask; } + const wxString& GetEncoding() const { return m_encoding; } + const wxArrayString& GetFileMask() const { return m_fileMask; } + size_t GetFlags() const { return m_flags; } + const wxArrayString& GetSearchPaths() const { return m_searchPaths; } + const wxString& GetSelectedMask() const { return m_selectedMask; } }; class wxStaticText; @@ -151,43 +124,43 @@ class FindReplaceDialog : public wxDialog { - wxEvtHandler *m_owner; + wxEvtHandler* m_owner; FindReplaceData m_data; // Options - wxComboBox *m_findString; - wxComboBox *m_replaceString; - wxCheckBox *m_matchCase; - wxCheckBox *m_matchWholeWord; - wxCheckBox *m_regualrExpression; - wxCheckBox *m_searchUp; - wxCheckBox *m_selectionOnly; + wxComboBox* m_findString; + wxComboBox* m_replaceString; + wxCheckBox* m_matchCase; + wxCheckBox* m_matchWholeWord; + wxCheckBox* m_regualrExpression; + wxCheckBox* m_searchUp; + wxCheckBox* m_selectionOnly; // Buttons - wxButton *m_find; - wxButton *m_replace; - wxButton *m_replaceAll; - wxButton *m_markAll; - wxButton *m_clearBookmarks; - wxButton *m_cancel; - wxStaticText *m_replacementsMsg; - wxStaticText *m_replaceWithLabel; - wxGridBagSizer *gbSizer; - wxStaticBoxSizer *sz; + wxButton* m_find; + wxButton* m_replace; + wxButton* m_replaceAll; + wxButton* m_markAll; + wxButton* m_clearBookmarks; + wxButton* m_cancel; + wxStaticText* m_replacementsMsg; + wxStaticText* m_replaceWithLabel; + wxGridBagSizer* gbSizer; + wxStaticBoxSizer* sz; int m_kind; unsigned int m_replacedCount; public: - virtual ~FindReplaceDialog( ); + virtual ~FindReplaceDialog(); FindReplaceDialog(); - FindReplaceDialog( wxWindow* parent, - const FindReplaceData& data, - wxWindowID id = wxID_ANY, - const wxString& caption = _("Find / Replace"), - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER); + FindReplaceDialog(wxWindow* parent, + const FindReplaceData& data, + wxWindowID id = wxID_ANY, + const wxString& caption = _("Find / Replace"), + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER); // Creation bool Create(wxWindow* parent, @@ -196,34 +169,21 @@ const wxString& caption = _("Find / Replace"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER - ); + long style = wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER); // Return the data - FindReplaceData& GetData() { - return m_data; - } + FindReplaceData& GetData() { return m_data; } virtual bool Show(int kind); - void SetEventOwner(wxEvtHandler *owner) { - m_owner = owner; - } - wxEvtHandler *GetEventOwner() const { - return m_owner; - } + void SetEventOwner(wxEvtHandler* owner) { m_owner = owner; } + wxEvtHandler* GetEventOwner() const { return m_owner; } // Set the replacements message - void SetReplacementsMessage( enum frd_showzero showzero = frd_showzeros ); - unsigned int GetReplacedCount() { - return m_replacedCount; - } - void IncReplacedCount() { - ++m_replacedCount; - } - void ResetReplacedCount() { - m_replacedCount = 0; - } + void SetReplacementsMessage(enum frd_showzero showzero = frd_showzeros); + unsigned int GetReplacedCount() { return m_replacedCount; } + void IncReplacedCount() { ++m_replacedCount; } + void ResetReplacedCount() { m_replacedCount = 0; } void ResetSelectionOnlyFlag(); void SetFindReplaceData(FindReplaceData& data, bool focus); @@ -231,15 +191,14 @@ void ShowReplaceControls(bool show); void CreateGUIControls(); void ConnectEvents(); - void OnClick(wxCommandEvent &event); - void OnFindEvent(wxCommandEvent &event); - void OnSelectionOnlyUI(wxUpdateUIEvent &event); + void OnClick(wxCommandEvent& event); + void OnFindEvent(wxCommandEvent& event); + void OnSelectionOnlyUI(wxUpdateUIEvent& event); void SendEvent(wxEventType type); - void OnKeyDown(wxKeyEvent &event); + void OnKeyDown(wxKeyEvent& event); DECLARE_EVENT_TABLE() - void OnClose(wxCloseEvent &event); - + void OnClose(wxCloseEvent& event); }; #endif // FIND_REPLACE_DLG_H diff -Nru codelite-8.0.1+dfsg2/LiteEditor/findresultstab.cpp codelite-9.0+dfsg/LiteEditor/findresultstab.cpp --- codelite-8.0.1+dfsg2/LiteEditor/findresultstab.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/findresultstab.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -42,6 +42,13 @@ #include "event_notifier.h" #include "theme_handler.h" #include "cl_config.h" +#include "ColoursAndFontsManager.h" +#include "lexer_configuration.h" +#include "attribute_style.h" +#include +#include "cl_aui_tool_stickness.h" +#include "optionsconfig.h" +#include "editor_config.h" // Custom styles #define LEX_FIF_DEFAULT 0 @@ -52,83 +59,21 @@ #define LEX_FIF_SCOPE 5 #define LEX_FIF_MATCH_COMMENT 6 -class MySTC : public wxStyledTextCtrl -{ -public: - MySTC(wxWindow* parent) - : wxStyledTextCtrl(parent) - { - } - virtual ~MySTC() - { - if(HasCapture()) { - ReleaseMouse(); - } - } -}; - BEGIN_EVENT_TABLE(FindResultsTab, OutputTabWindow) EVT_COMMAND(wxID_ANY, wxEVT_SEARCH_THREAD_SEARCHSTARTED, FindResultsTab::OnSearchStart) EVT_COMMAND(wxID_ANY, wxEVT_SEARCH_THREAD_MATCHFOUND, FindResultsTab::OnSearchMatch) EVT_COMMAND(wxID_ANY, wxEVT_SEARCH_THREAD_SEARCHEND, FindResultsTab::OnSearchEnded) EVT_COMMAND(wxID_ANY, wxEVT_SEARCH_THREAD_SEARCHCANCELED, FindResultsTab::OnSearchCancel) - -// Right click menu options -EVT_MENU(XRCID("close_fif_tab"), FindResultsTab::OnCloseTab) -EVT_MENU(XRCID("close_all_fif_tabs"), FindResultsTab::OnCloseAllTabs) -EVT_MENU(XRCID("close_other_fif_tabs"), FindResultsTab::OnCloseOtherTab) - -EVT_UPDATE_UI(XRCID("close_fif_tab"), FindResultsTab::OnTabMenuUI) -EVT_UPDATE_UI(XRCID("close_all_fif_tabs"), FindResultsTab::OnTabMenuUI) -EVT_UPDATE_UI(XRCID("close_other_fif_tabs"), FindResultsTab::OnTabMenuUI) EVT_UPDATE_UI(XRCID("hold_pane_open"), FindResultsTab::OnHoldOpenUpdateUI) END_EVENT_TABLE() -FindResultsTab::FindResultsTab(wxWindow* parent, wxWindowID id, const wxString& name, bool useBook) +FindResultsTab::eState FindResultsTab::m_curstate = FindResultsTab::kStartOfLine; + +FindResultsTab::FindResultsTab(wxWindow* parent, wxWindowID id, const wxString& name) : OutputTabWindow(parent, id, name) , m_searchInProgress(false) - , m_book(NULL) - , m_recv(NULL) - , m_matchInfo(1) { - if(useBook) { - - // load the book style from the settings file - long bookStyle = wxVB_TOP | wxVB_MOUSE_MIDDLE_CLOSE_TAB; - -#if !CL_USE_NATIVEBOOK - bookStyle |= wxAUI_NB_WINDOWLIST_BUTTON; -#endif - - m_book = new Notebook(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, bookStyle); - - m_book->SetRightClickMenu(wxXmlResource::Get()->LoadMenu(wxT("find_in_files_right_click_menu"))); - - m_book->Connect( - wxEVT_COMMAND_BOOK_PAGE_CHANGED, NotebookEventHandler(FindResultsTab::OnPageChanged), NULL, this); - m_book->Connect(wxEVT_COMMAND_BOOK_PAGE_CLOSED, NotebookEventHandler(FindResultsTab::OnPageClosed), NULL, this); - - m_book->Connect( - wxEVT_COMMAND_BOOK_PAGE_X_CLICKED, NotebookEventHandler(FindResultsTab::OnClosePage), NULL, this); - m_book->Connect( - wxEVT_COMMAND_BOOK_PAGE_MIDDLE_CLICKED, NotebookEventHandler(FindResultsTab::OnClosePage), NULL, this); - - // get rid of base class scintilla component - wxSizer* sz = m_hSizer; - sz->Detach(m_sci); - m_sci->Destroy(); - m_sci = NULL; -#ifdef __WXMAC__ - sz->Insert(0, m_book, 1, wxALL | wxEXPAND); -#else - sz->Add(m_book, 1, wxALL | wxEXPAND); -#endif - sz->Layout(); - } else { - // keep existing scintilla - SetStyles(m_sci); - m_sci->Connect(wxEVT_STC_STYLENEEDED, wxStyledTextEventHandler(FindResultsTab::OnStyleNeeded), NULL, this); - } + m_sci->Connect(wxEVT_STC_STYLENEEDED, wxStyledTextEventHandler(FindResultsTab::OnStyleNeeded), NULL, this); BitmapLoader& loader = *(PluginManager::Get()->GetStdIcons()); @@ -137,10 +82,18 @@ wxCommandEventHandler(FindResultsTab::OnFindInFiles), NULL, this); + m_tb->Bind(wxEVT_AUITOOLBAR_TOOL_DROPDOWN, &FindResultsTab::OnRecentSearches, this, XRCID("recent_searches")); + m_tb->Bind(wxEVT_UPDATE_UI, &FindResultsTab::OnRecentSearchesUI, this, XRCID("recent_searches")); + m_tb->AddTool(XRCID("stop_search"), _("Stop current search"), loader.LoadBitmap(wxT("toolbars/16/build/stop")), _("Stop current search")); + m_tb->AddTool(XRCID("recent_searches"), + _("Show Recent Searches"), + loader.LoadBitmap(wxT("output-pane/16/history")), + _("Show Recent Searches"))->SetHasDropDown(true); + Connect(XRCID("stop_search"), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(FindResultsTab::OnStopSearch), @@ -164,92 +117,72 @@ this); } -MatchInfo& FindResultsTab::GetMatchInfo(size_t idx) -{ - ListMatchInfos::iterator itMatchInfo = m_matchInfo.begin(); - if(m_book) { - for(size_t i = 0; i < idx; ++i) { - ++itMatchInfo; - } - } - return *itMatchInfo; -} - void FindResultsTab::SetStyles(wxStyledTextCtrl* sci) { - sci->ClearDocumentStyle(); - sci->SetBackgroundColour(DrawingUtils::GetOutputPaneBgColour()); - for(int i = 0; i < wxSTC_STYLE_MAX; ++i) { - sci->StyleSetForeground(i, DrawingUtils::GetOutputPaneFgColour()); - sci->StyleSetBackground(i, DrawingUtils::GetOutputPaneBgColour()); + LexerConf::Ptr_t lexer = ColoursAndFontsManager::Get().GetLexer("c++"); + if(!lexer) { + lexer = ColoursAndFontsManager::Get().GetLexer("text"); } - sci->StyleSetForeground(LEX_FIF_DEFAULT, DrawingUtils::GetOutputPaneFgColour()); - sci->StyleSetBackground(LEX_FIF_DEFAULT, DrawingUtils::GetOutputPaneBgColour()); - - wxColour headerColour = DrawingUtils::IsThemeDark() ? wxColour("GREY") : wxColour("BLACK"); + const StyleProperty& defaultStyle = lexer->GetProperty(0); + wxFont defaultFont = lexer->GetFontForSyle(0); - sci->StyleSetForeground(LEX_FIF_HEADER, headerColour); - sci->StyleSetBackground(LEX_FIF_HEADER, DrawingUtils::GetOutputPaneBgColour()); + for(size_t i = 0; i < wxSTC_STYLE_MAX; ++i) { + sci->StyleSetForeground(i, defaultStyle.GetFgColour()); + sci->StyleSetBackground(i, defaultStyle.GetBgColour()); + sci->StyleSetFont(i, defaultFont); + } - sci->StyleSetForeground(LEX_FIF_LINE_NUMBER, - DrawingUtils::IsThemeDark() ? wxColour("#FACE43") : wxColour("MAROON")); - sci->StyleSetBackground(LEX_FIF_LINE_NUMBER, DrawingUtils::GetOutputPaneBgColour()); + // Show the whitespace + sci->SetViewWhiteSpace(wxSTC_WS_VISIBLEALWAYS); + StyleProperty::Map_t& props = lexer->GetLexerProperties(); + // Set the whitespace colours + sci->SetWhitespaceForeground(true, props[WHITE_SPACE_ATTR_ID].GetFgColour()); - sci->StyleSetForeground(LEX_FIF_MATCH, DrawingUtils::GetOutputPaneFgColour()); - sci->StyleSetBackground(LEX_FIF_MATCH, DrawingUtils::GetOutputPaneBgColour()); - sci->StyleSetEOLFilled(LEX_FIF_MATCH, true); + sci->StyleSetForeground(LEX_FIF_HEADER, props[11].GetFgColour()); + sci->StyleSetBackground(LEX_FIF_HEADER, props[11].GetBgColour()); - sci->StyleSetForeground(LEX_FIF_SCOPE, wxT("BROWN")); - sci->StyleSetBackground(LEX_FIF_SCOPE, DrawingUtils::GetOutputPaneBgColour()); - sci->StyleSetEOLFilled(LEX_FIF_SCOPE, false); + // 33 is the style for line numbers + sci->StyleSetForeground(LEX_FIF_LINE_NUMBER, props[33].GetFgColour()); - wxColour fgColour(wxT("GREEN")); - wxFont defFont = wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT); - wxFont font(defFont.GetPointSize(), wxFONTFAMILY_TELETYPE, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL); - wxFont bold(defFont.GetPointSize(), wxFONTFAMILY_TELETYPE, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD); + // 11 is the style number for "identifier" + sci->StyleSetForeground(LEX_FIF_MATCH, props[11].GetFgColour()); - LexerConf::Ptr_t cppLexer = EditorConfigST::Get()->GetLexer(wxT("C++")); - if(cppLexer) { - font = cppLexer->GetFontForSyle(wxSTC_C_DEFAULT); - bold = font; - bold.SetWeight(wxFONTWEIGHT_BOLD); - } + // 16 is the stule for colouring classes + sci->StyleSetForeground(LEX_FIF_SCOPE, props[16].GetFgColour()); - sci->StyleSetForeground(LEX_FIF_MATCH_COMMENT, fgColour); - sci->StyleSetBackground(LEX_FIF_MATCH_COMMENT, DrawingUtils::GetOutputPaneBgColour()); - sci->StyleSetEOLFilled(LEX_FIF_MATCH_COMMENT, true); + sci->StyleSetForeground(LEX_FIF_MATCH_COMMENT, props[wxSTC_C_COMMENTLINE].GetFgColour()); - sci->StyleSetForeground(LEX_FIF_FILE, headerColour); - sci->StyleSetBackground(LEX_FIF_FILE, DrawingUtils::GetOutputPaneBgColour()); + sci->StyleSetForeground(LEX_FIF_FILE, props[wxSTC_C_WORD].GetFgColour()); sci->StyleSetEOLFilled(LEX_FIF_FILE, true); - sci->StyleSetForeground(LEX_FIF_DEFAULT, DrawingUtils::GetOutputPaneFgColour()); - sci->StyleSetBackground(LEX_FIF_DEFAULT, DrawingUtils::GetOutputPaneBgColour()); - sci->StyleSetEOLFilled(LEX_FIF_DEFAULT, true); - sci->StyleSetEOLFilled(LEX_FIF_HEADER, true); - - sci->StyleSetFont(LEX_FIF_FILE, font); - sci->StyleSetFont(LEX_FIF_DEFAULT, bold); - sci->StyleSetFont(LEX_FIF_HEADER, bold); - sci->StyleSetFont(LEX_FIF_MATCH, font); - sci->StyleSetFont(LEX_FIF_LINE_NUMBER, font); - sci->StyleSetFont(LEX_FIF_SCOPE, font); - sci->StyleSetFont(LEX_FIF_MATCH_COMMENT, font); + sci->StyleSetForeground(LEX_FIF_DEFAULT, props[11].GetFgColour()); + sci->StyleSetBackground(LEX_FIF_DEFAULT, props[11].GetBgColour()); sci->StyleSetHotSpot(LEX_FIF_MATCH, true); sci->StyleSetHotSpot(LEX_FIF_FILE, true); sci->StyleSetHotSpot(LEX_FIF_MATCH_COMMENT, true); - sci->SetHotspotActiveForeground(true, DrawingUtils::GetOutputPaneFgColour()); + sci->SetHotspotActiveForeground(true, lexer->IsDark() ? "WHITE" : "BLACK"); sci->SetHotspotActiveUnderline(false); + sci->MarkerDefine(7, wxSTC_MARK_ARROW); +#if wxVERSION_NUMBER < 3100 + // On GTK we dont have the wxSTC_INDIC_TEXTFORE symbol yet (old wx version) sci->MarkerDefine(7, wxSTC_MARK_ARROW); - sci->MarkerSetBackground(7, DrawingUtils::IsThemeDark() ? "YELLOW" : "BLACK"); - sci->MarkerSetForeground(7, DrawingUtils::IsThemeDark() ? "YELLOW" : "BLACK"); + sci->MarkerSetBackground(7, lexer->IsDark() ? "CYAN" : "ORANGE"); + sci->MarkerSetForeground(7, lexer->IsDark() ? "CYAN" : "ORANGE"); - sci->IndicatorSetForeground(1, DrawingUtils::IsThemeDark() ? *wxYELLOW : wxColour(wxT("#6495ED"))); + sci->IndicatorSetForeground(1, lexer->IsDark() ? "CYAN" : "ORANGE"); sci->IndicatorSetStyle(1, wxSTC_INDIC_ROUNDBOX); +#else + sci->MarkerDefine(7, wxSTC_MARK_ARROW); + sci->MarkerSetBackground(7, lexer->IsDark() ? "#FFD700" : "#FF4500"); + sci->MarkerSetForeground(7, lexer->IsDark() ? "#FFD700" : "#FF4500"); + + sci->IndicatorSetForeground(1, lexer->IsDark() ? "#FFD700" : "#FF4500"); + sci->IndicatorSetStyle(1, wxSTC_INDIC_TEXTFORE); +#endif sci->IndicatorSetUnder(1, true); sci->SetMarginWidth(0, 0); @@ -259,70 +192,29 @@ sci->SetMarginWidth(4, 0); sci->SetMarginSensitive(1, true); sci->HideSelection(true); - sci->Refresh(); -} -size_t FindResultsTab::GetPageCount() const -{ - if(m_book) { - return m_book->GetPageCount(); - } else { - return 1; - } + // Indentation + OptionsConfigPtr options = EditorConfigST::Get()->GetOptions(); + sci->SetUseTabs(options->GetIndentUsesTabs()); + sci->SetTabWidth(options->GetIndentWidth()); + sci->SetIndent(options->GetIndentWidth()); + + sci->Refresh(); } void FindResultsTab::AppendText(const wxString& line) { - wxStyledTextCtrl* save = NULL; - if(m_recv) { - // so OutputTabWindow::AppendText() writes to the correct page - save = m_sci; - m_sci = m_recv; - } m_sci->SetIndicatorCurrent(1); OutputTabWindow::AppendText(line); - if(save) { - m_sci = save; - } } void FindResultsTab::Clear() { - MatchInfo& matchInfo = GetMatchInfo(m_book ? m_book->GetSelection() : 0); - matchInfo.clear(); + m_matchInfo.clear(); + m_indicators.clear(); + m_searchTitle.clear(); OutputTabWindow::Clear(); -} - -void FindResultsTab::OnPageChanged(NotebookEvent& e) -{ - // this function can't be called unless m_book != NULL - m_sci = dynamic_cast(m_book->GetCurrentPage()); - if(m_sci) { - m_tb->ToggleTool(XRCID("word_wrap_output"), m_sci->GetWrapMode() == wxSTC_WRAP_WORD); - } -} - -void FindResultsTab::OnPageClosed(NotebookEvent& e) -{ - // this function can't be called unless m_book != NULL - size_t sel = e.GetSelection(); - if(sel != Notebook::npos) { - ListMatchInfos::iterator itMatchInfo = m_matchInfo.begin(); - for(size_t i = 0; i < e.GetSelection(); ++i) { - ++itMatchInfo; - } - m_matchInfo.erase(itMatchInfo); - - } else if(m_book->GetPageCount()) { - m_matchInfo.clear(); - } - - // Create a page if there is no more - if(m_book->GetPageCount() == 0) { - m_sci = NULL; - } else { - m_sci = dynamic_cast(m_book->GetCurrentPage()); - } + m_curstate = kStartOfLine; } void FindResultsTab::OnFindInFiles(wxCommandEvent& e) @@ -345,69 +237,12 @@ void FindResultsTab::OnSearchStart(wxCommandEvent& e) { m_searchInProgress = true; - SearchData* data = (SearchData*)e.GetClientData(); - wxString label = data ? data->GetFindString() : wxT(""); - - if(e.GetInt() != 0 || m_sci == NULL) { - if(m_book) { - clWindowUpdateLocker locker(this); - MySTC* sci = new MySTC(m_book); - SetStyles(sci); - sci->Connect(wxEVT_STC_STYLENEEDED, wxStyledTextEventHandler(FindResultsTab::OnStyleNeeded), NULL, this); - - // Make sure we can add more tabs, if not delete the last used tab and then add - // a new tab - - long MaxBuffers = clConfig::Get().Read(kConfigMaxOpenedTabs, 15); - if((long)m_book->GetPageCount() >= MaxBuffers) { - // We have reached the limit of the number of open buffers - // Close the last used buffer - const wxArrayPtrVoid& arr = m_book->GetHistory(); - if(arr.GetCount()) { - wxWindow* tab = static_cast(arr.Item(arr.GetCount() - 1)); - m_book->DeletePage(m_book->GetPageIndex(tab)); - } - } - - m_book->AddPage(sci, label, true); -#ifdef __WXMAC__ - m_book->GetSizer()->Layout(); -#endif - size_t where = m_book->GetPageCount() - 1; - - // keep the search data used for this tab - wxWindow* tab = m_book->GetPage(where); - if(tab) { - tab->SetClientData(data); - } - - m_matchInfo.push_back(MatchInfo()); - m_sci = sci; - } - } else if(m_book) { - // using current tab, update the tab title and the search data - size_t where = m_book->GetPageIndex(m_sci); - if(where != Notebook::npos) { - m_book->SetPageText(where, label); - // delete the old search data - wxWindow* tab = m_book->GetPage(where); - SearchData* oldData = (SearchData*)tab->GetClientData(); - if(oldData) { - delete oldData; - } - // set the new search data - tab->SetClientData(data); - } - } - - // This is needed in >=wxGTK-2.9, otherwise the 'Search' pane doesn't fully expand - SendSizeEvent(wxSEND_EVENT_POST); - - m_recv = m_sci; Clear(); - + SetStyles(m_sci); + SearchData* data = (SearchData*)e.GetClientData(); if(data) { m_searchData = *data; + m_searchTitle = data->GetFindString(); wxString message; message << _("====== Searching for: '") << data->GetFindString() << _("'; Match case: ") @@ -416,6 +251,7 @@ << (data->IsRegularExpression() ? _("true") : _("false")) << wxT(" ======\n"); AppendText(message); } + wxDELETE(data); } void FindResultsTab::OnSearchMatch(wxCommandEvent& e) @@ -423,37 +259,27 @@ SearchResultList* res = (SearchResultList*)e.GetClientData(); if(!res) return; - size_t m = m_book ? m_book->GetPageIndex(m_recv) : 0; - if(m == Notebook::npos) { - delete res; - return; - } - - MatchInfo& matchInfo = GetMatchInfo(m); - for(SearchResultList::iterator iter = res->begin(); iter != res->end(); iter++) { - if(matchInfo.empty() || matchInfo.rbegin()->second.GetFileName() != iter->GetFileName()) { + SearchResultList::iterator iter = res->begin(); + for(; iter != res->end(); ++iter) { + if(m_matchInfo.empty() || m_matchInfo.rbegin()->second.GetFileName() != iter->GetFileName()) { + if(!m_matchInfo.empty()) { + AppendText("\n"); + } wxFileName fn(iter->GetFileName()); fn.MakeRelativeTo(); - AppendText(fn.GetFullPath() + wxT("\n")); } - int lineno = m_recv->GetLineCount() - 1; - matchInfo.insert(std::make_pair(lineno, *iter)); + int lineno = m_sci->GetLineCount() - 1; + m_matchInfo.insert(std::make_pair(lineno, *iter)); wxString text = iter->GetPattern(); - int delta = -text.Length(); - text.Trim(false); - delta += text.Length(); - text.Trim(); - - wxString linenum; - if(iter->GetMatchState() == CppWordScanner::STATE_CPP_COMMENT || - iter->GetMatchState() == CppWordScanner::STATE_C_COMMENT) - linenum = wxString::Format(wxT(" %5u //"), iter->GetLineNumber()); - else - linenum = wxString::Format(wxT(" %5u "), iter->GetLineNumber()); + // int delta = -text.Length(); + // text.Trim(false); + // delta += text.Length(); + // text.Trim(); - SearchData* d = GetSearchData(m_recv); + wxString linenum = wxString::Format(wxT(" %5u: "), iter->GetLineNumber()); + SearchData* d = GetSearchData(); // Print the scope name if(d->GetDisplayScope()) { TagEntryPtr tag = TagsManagerST::Get()->FunctionFromFileLine(iter->GetFileName(), iter->GetLineNumber()); @@ -466,11 +292,13 @@ iter->SetScope(scopeName); } - delta += linenum.Length(); AppendText(linenum + text + wxT("\n")); - m_recv->IndicatorFillRange(m_sci->PositionFromLine(lineno) + iter->GetColumn() + delta, iter->GetLen()); + int indicatorStartPos = m_sci->PositionFromLine(lineno) + iter->GetColumn() + linenum.Length(); + int indicatorLen = iter->GetLen(); + m_indicators.push_back(indicatorStartPos); + m_sci->IndicatorFillRange(indicatorStartPos, indicatorLen); } - delete res; + wxDELETE(res); } void FindResultsTab::OnSearchEnded(wxCommandEvent& e) @@ -480,51 +308,27 @@ if(!summary) return; // did the page closed before the search ended? - if(m_book && m_book->GetPageIndex(m_recv) != Notebook::npos) { - - AppendText(summary->GetMessage() + wxT("\n")); - m_recv = NULL; - if(m_tb->GetToolToggled(XRCID("scroll_on_output"))) { - m_sci->GotoLine(0); - } + AppendText(summary->GetMessage() + wxT("\n")); - if(!EditorConfigST::Get()->GetOptions()->GetDontAutoFoldResults()) { - OutputTabWindow::OnCollapseAll(e); - if(m_sci) { - // Uncollapse the first file's matches - int maxLine = m_sci->GetLineCount(); - for(int line = 0; line < maxLine; line++) { - int foldLevel = (m_sci->GetFoldLevel(line) & wxSTC_FOLDLEVELNUMBERMASK) - wxSTC_FOLDLEVELBASE; - if(foldLevel == 2 && !m_sci->GetFoldExpanded(line)) { - m_sci->ToggleFold(line); - break; - } - } - } - } - } else if(m_recv == m_sci) { - // Replace In Files... - AppendText(summary->GetMessage() + wxT("\n")); - if(m_tb->GetToolToggled(XRCID("scroll_on_output"))) { - m_sci->GotoLine(0); - } + if(m_tb->GetToolToggled(XRCID("scroll_on_output"))) { + m_sci->GotoLine(0); + } - if(!EditorConfigST::Get()->GetOptions()->GetDontAutoFoldResults()) { - OutputTabWindow::OnCollapseAll(e); - if(m_sci) { - // Uncollapse the first file's matches - int maxLine = m_sci->GetLineCount(); - for(int line = 0; line < maxLine; line++) { - int foldLevel = (m_sci->GetFoldLevel(line) & wxSTC_FOLDLEVELNUMBERMASK) - wxSTC_FOLDLEVELBASE; - if(foldLevel == 2 && !m_sci->GetFoldExpanded(line)) { - m_sci->ToggleFold(line); - break; - } - } + if(!EditorConfigST::Get()->GetOptions()->GetDontAutoFoldResults()) { + OutputTabWindow::OnCollapseAll(e); + // Uncollapse the first file's matches + int maxLine = m_sci->GetLineCount(); + for(int line = 0; line < maxLine; line++) { + int foldLevel = (m_sci->GetFoldLevel(line) & wxSTC_FOLDLEVELNUMBERMASK) - wxSTC_FOLDLEVELBASE; + if(foldLevel == 2 && !m_sci->GetFoldExpanded(line)) { + m_sci->ToggleFold(line); + break; } } } + delete summary; + SaveSearchData(); // We need to tell all editors that there's been a (new) search // This lets them clear any already-saved line-changes, @@ -544,49 +348,29 @@ m_searchInProgress = false; wxString* str = (wxString*)e.GetClientData(); if(!str) return; - - // did the page closed before the search ended? - if(m_book && m_book->GetPageIndex(m_recv) != Notebook::npos) { - AppendText(*str + wxT("\n")); - } - - delete str; - m_recv = NULL; + AppendText((*str) + wxT("\n")); + SaveSearchData(); + wxDELETE(str); } void FindResultsTab::OnClearAll(wxCommandEvent& e) { wxUnusedVar(e); - if(m_recv != NULL) { - SearchThreadST::Get()->StopSearch(); - } + SearchThreadST::Get()->StopSearch(); Clear(); } -void FindResultsTab::OnClearAllUI(wxUpdateUIEvent& e) { e.Enable(m_recv != NULL || (m_sci && m_sci->GetLength() > 0)); } +void FindResultsTab::OnClearAllUI(wxUpdateUIEvent& e) { e.Enable(!m_searchInProgress && !m_sci->IsEmpty()); } void FindResultsTab::OnRepeatOutput(wxCommandEvent& e) { wxUnusedVar(e); - - if(m_book) { - size_t sel = m_book->GetSelection(); - if(sel != Notebook::npos) { - // get the search data used to generate the output on the selected tab - wxWindow* tab = m_book->GetPage(sel); - if(tab) { - SearchData* searchData = (SearchData*)tab->GetClientData(); - searchData->UseNewTab(false); - SearchThreadST::Get()->PerformSearch(*searchData); - } - } - } + SearchData* searchData = GetSearchData(); + searchData->UseNewTab(false); + SearchThreadST::Get()->PerformSearch(*searchData); } -void FindResultsTab::OnRepeatOutputUI(wxUpdateUIEvent& e) -{ - e.Enable(m_recv == NULL && m_sci && m_sci->GetLength() > 0); -} +void FindResultsTab::OnRepeatOutputUI(wxUpdateUIEvent& e) { e.Enable(m_sci->GetLength() > 0); } void FindResultsTab::OnMouseDClick(wxStyledTextEvent& e) { @@ -598,138 +382,64 @@ m_sci->ToggleFold(line); } else { - size_t n = m_book ? m_book->GetSelection() : 0; - const MatchInfo& matchInfo = GetMatchInfo(n); - MatchInfo::const_iterator m = matchInfo.find(line); - if(m != matchInfo.end()) { + MatchInfo_t::const_iterator m = m_matchInfo.find(line); + if(m != m_matchInfo.end()) { DoOpenSearchResult(m->second, m_sci, m->first); } } - - m_sci->SetSelection(wxNOT_FOUND, pos); } -long FindResultsTab::GetBookStyle() { return 0; } +SearchData* FindResultsTab::GetSearchData() { return &m_searchData; } -SearchData* FindResultsTab::GetSearchData(wxStyledTextCtrl* sci) +void FindResultsTab::NextMatch() { - if(m_book) { - size_t i = m_book->GetPageIndex(sci); - if(i != Notebook::npos) { - wxWindow* tab = m_book->GetPage(i); - if(tab) { - SearchData* data = (SearchData*)tab->GetClientData(); - if(data) { - return data; - } - } - } - return NULL; - } else { - // in case we dont have a notebook (e.g. 'Replace In Files') - // we use the global saved search data - return &m_searchData; + // locate the last match + int firstLine = m_sci->MarkerNext(0, 255); + if(firstLine == wxNOT_FOUND) { + firstLine = 0; } -} -void FindResultsTab::OnCloseAllTabs(wxCommandEvent& e) -{ - wxUnusedVar(e); - if(m_book) { - m_book->DeleteAllPages(true); - } -} + // We found the last marker + for(int i = firstLine + 1; i < m_sci->GetLineCount(); i++) { -void FindResultsTab::OnCloseOtherTab(wxCommandEvent& e) -{ - wxUnusedVar(e); - if(m_book) { - size_t idx = m_book->GetSelection(); - if(idx != Notebook::npos) { - for(size_t i = 0; i < idx; i++) { - m_book->DeletePage((size_t)0); - } + // Find the next match + MatchInfo_t::const_iterator iter = m_matchInfo.find(i); + if(iter != m_matchInfo.end()) { + SearchResult sr = iter->second; - size_t number = m_book->GetPageCount(); - for(size_t i = number - 1; i > 0; i--) { - m_book->DeletePage(i); - } + // open the new searchresult in the editor + DoOpenSearchResult(sr, m_sci, i); + return; } } -} -void FindResultsTab::OnCloseTab(wxCommandEvent& e) -{ - wxUnusedVar(e); - if(m_book) { - size_t idx = m_book->GetSelection(); - if(idx != Notebook::npos) { - m_book->DeletePage(idx); - } - } + // if we are here, it means we are the end of the search results list, add a status message + clMainFrame::Get()->GetStatusBar()->SetMessage(_("Reached the end of the 'Find In Files' results")); } -void FindResultsTab::OnTabMenuUI(wxUpdateUIEvent& e) { e.Enable(!m_searchInProgress); } - -void FindResultsTab::NextMatch() +void FindResultsTab::PrevMatch() { - // m_sci holds to the selected tab's scintilla editor - if(m_sci) { - const MatchInfo& matchInfo = GetMatchInfo(m_book ? m_book->GetSelection() : 0); - - // locate the last match - int firstLine = m_sci->MarkerNext(0, 255); - if(firstLine == wxNOT_FOUND) { - firstLine = 0; - } - - // We found the last marker - for(int i = firstLine + 1; i < m_sci->GetLineCount(); i++) { - - // Find the next match - MatchInfo::const_iterator iter = matchInfo.find(i); - if(iter != matchInfo.end()) { - SearchResult sr = iter->second; - - // open the new searchresult in the editor - DoOpenSearchResult(sr, m_sci, i); - return; - } - } - - // if we are here, it means we are the end of the search results list, add a status message - clMainFrame::Get()->GetStatusBar()->SetMessage(_("Reached the end of the 'Find In Files' results")); + // locate the last match + int firstLine = m_sci->MarkerPrevious(m_sci->GetLineCount() - 1, 255); + if(firstLine == wxNOT_FOUND) { + firstLine = m_sci->GetLineCount(); } -} -void FindResultsTab::PrevMatch() -{ - // m_sci holds to the selected tab's scintilla editor - if(m_sci) { - const MatchInfo& matchInfo = GetMatchInfo(m_book ? m_book->GetSelection() : 0); - - // locate the last match - int firstLine = m_sci->MarkerPrevious(m_sci->GetLineCount() - 1, 255); - if(firstLine == wxNOT_FOUND) { - firstLine = m_sci->GetLineCount(); - } + // We found the last marker + for(int i = firstLine - 1; i >= 0; i--) { - // We found the last marker - for(int i = firstLine - 1; i >= 0; i--) { + // Find the next match + MatchInfo_t::const_iterator iter = m_matchInfo.find(i); + if(iter != m_matchInfo.end()) { + SearchResult sr = iter->second; - // Find the next match - MatchInfo::const_iterator iter = matchInfo.find(i); - if(iter != matchInfo.end()) { - SearchResult sr = iter->second; - - // open the new searchresult in the editor - DoOpenSearchResult(sr, m_sci, i); - return; - } + // open the new searchresult in the editor + DoOpenSearchResult(sr, m_sci, i); + return; } - // if we are here, it means we are the top of the search results list, add a status message - clMainFrame::Get()->GetStatusBar()->SetMessage(_("Reached the start of the 'Find In Files' results")); } + // if we are here, it means we are the top of the search results list, add a status message + clMainFrame::Get()->GetStatusBar()->SetMessage(_("Reached the start of the 'Find In Files' results")); } void FindResultsTab::DoOpenSearchResult(const SearchResult& result, wxStyledTextCtrl* sci, int markerLine) @@ -765,7 +475,7 @@ } if(!removed) { editor->SetEnsureCaretIsVisible( - position, + position + resultLength, true, true); // The 3rd parameter sets a small delay, otherwise it fails for long folded files int lineNumber = editor->LineFromPos(position); @@ -799,15 +509,6 @@ void FindResultsTab::OnStopSearchUI(wxUpdateUIEvent& e) { e.Enable(m_searchInProgress); } -void FindResultsTab::OnClosePage(NotebookEvent& e) -{ - int where = e.GetSelection(); - if(where == wxNOT_FOUND) { - return; - } - m_book->DeletePage((size_t)where, true); -} - void FindResultsTab::OnHoldOpenUpdateUI(wxUpdateUIEvent& e) { int sel = clMainFrame::Get()->GetOutputPane()->GetNotebook()->GetSelection(); @@ -832,82 +533,190 @@ StyleText(ctrl, e); } -void FindResultsTab::StyleText(wxStyledTextCtrl* ctrl, wxStyledTextEvent& e) +void FindResultsTab::StyleText(wxStyledTextCtrl* ctrl, wxStyledTextEvent& e, bool hasSope) { int startPos = ctrl->GetEndStyled(); int endPos = e.GetPosition(); wxString text = ctrl->GetTextRange(startPos, endPos); - - wxArrayString lines = ::wxStringTokenize(text, wxT("\r\n"), wxTOKEN_RET_DELIMS); ctrl->StartStyling(startPos, 0x1f); // text styling - int bytes_left = 0; - bool inMatchLine = false; - int offset = 0; - for(size_t i = 0; i < lines.GetCount(); ++i) { - wxString curline = lines.Item(i); - bytes_left = curline.length(); - offset = 0; - - if(curline.StartsWith("/")) { - ctrl->SetStyling(curline.Length(), LEX_FIF_MATCH_COMMENT); - bytes_left = 0; - - } else if(curline.StartsWith(wxT(" "))) { - ctrl->SetStyling(6, LEX_FIF_LINE_NUMBER); // first 6 chars are the line number - bytes_left -= 6; - inMatchLine = true; - offset = 6; - - } else if(curline.StartsWith("=")) { - ctrl->SetFoldLevel(ctrl->LineFromPosition(startPos) + i, 1 | wxSTC_FOLDLEVELHEADERFLAG); - ctrl->SetStyling(curline.Length(), LEX_FIF_HEADER); // first 6 chars are the line number - bytes_left = 0; - - } else { - // File name - ctrl->SetFoldLevel(ctrl->LineFromPosition(startPos) + i, 2 | wxSTC_FOLDLEVELHEADERFLAG); - ctrl->SetStyling(curline.Length(), LEX_FIF_FILE); // first 6 chars are the line number - bytes_left = 0; - } - - // Check for scope - static wxRegEx reScopeName(" \\[[\\<\\>a-z0-9_:~ ]+\\] ", wxRE_DEFAULT | wxRE_ICASE); - size_t scopeStart = wxString::npos, scopeLen = 0; - if(offset == 6 && reScopeName.Matches(curline)) { - reScopeName.GetMatch(&scopeStart, &scopeLen); - if(scopeStart == 6) { - ctrl->SetStyling(scopeLen, LEX_FIF_SCOPE); - bytes_left -= scopeLen; + wxString::const_iterator iter = text.begin(); + size_t headerStyleLen = 0; + size_t filenameStyleLen = 0; + size_t lineNumberStyleLen = 0; + size_t scopeStyleLen = 0; + size_t matchStyleLen = 0; + size_t i = 0; + for(; iter != text.end(); ++iter) { + const wxUniChar& ch = *iter; + switch(m_curstate) { + default: + break; + case kStartOfLine: + if(ch == '=') { + m_curstate = kHeader; + headerStyleLen = 1; + } else if(ch == ' ') { + // start of a line number + lineNumberStyleLen = 1; + m_curstate = kLineNumber; + } else if(ch == '\n') { + ctrl->SetStyling(1, LEX_FIF_DEFAULT); + } else { + // File name + filenameStyleLen = 1; + m_curstate = kFile; + } + break; + case kLineNumber: + ++lineNumberStyleLen; + if(ch == ':') { + ctrl->SetStyling(lineNumberStyleLen, LEX_FIF_LINE_NUMBER); + lineNumberStyleLen = 0; + if(hasSope) { + // the scope showed by displayed after the line number + m_curstate = kScope; + } else { + // No scope, from hereon, match until EOF + m_curstate = kMatch; + } } - } - - if(inMatchLine && bytes_left > 0) { - // The remainder of this line should be a hyper link - ctrl->SetStyling(bytes_left, LEX_FIF_MATCH); - - } else if(bytes_left > 0) { - ctrl->SetStyling(bytes_left, LEX_FIF_DEFAULT); - } + break; + case kScope: + ++scopeStyleLen; + if(ch == ']') { + // end of scope + ctrl->SetStyling(scopeStyleLen, LEX_FIF_SCOPE); + scopeStyleLen = 0; + m_curstate = kMatch; + } + break; + case kMatch: + ++matchStyleLen; + if(ch == '\n') { + m_curstate = kStartOfLine; + ctrl->SetStyling(matchStyleLen, LEX_FIF_MATCH); + matchStyleLen = 0; + } + break; + case kFile: + ++filenameStyleLen; + if(ch == '\n') { + m_curstate = kStartOfLine; + ctrl->SetFoldLevel(ctrl->LineFromPosition(startPos + i), 2 | wxSTC_FOLDLEVELHEADERFLAG); + ctrl->SetStyling(filenameStyleLen, LEX_FIF_FILE); + filenameStyleLen = 0; + } + break; + case kHeader: + ++headerStyleLen; + if(ch == '\n') { + m_curstate = kStartOfLine; + ctrl->SetFoldLevel(ctrl->LineFromPosition(startPos + i), 1 | wxSTC_FOLDLEVELHEADERFLAG); + ctrl->SetStyling(headerStyleLen, LEX_FIF_HEADER); + headerStyleLen = 0; + } + break; + } + ++i; + } + + // Left overs... + if(headerStyleLen) { + ctrl->SetFoldLevel(ctrl->LineFromPosition(startPos + i), 1 | wxSTC_FOLDLEVELHEADERFLAG); + ctrl->SetStyling(headerStyleLen, LEX_FIF_HEADER); + headerStyleLen = 0; + } + + if(filenameStyleLen) { + ctrl->SetFoldLevel(ctrl->LineFromPosition(startPos + i), 2 | wxSTC_FOLDLEVELHEADERFLAG); + ctrl->SetStyling(filenameStyleLen, LEX_FIF_FILE); + filenameStyleLen = 0; + } + + if(matchStyleLen) { + ctrl->SetStyling(matchStyleLen, LEX_FIF_MATCH); + matchStyleLen = 0; + } + + if(lineNumberStyleLen) { + ctrl->SetStyling(lineNumberStyleLen, LEX_FIF_LINE_NUMBER); + lineNumberStyleLen = 0; } } void FindResultsTab::OnThemeChanged(wxCommandEvent& e) { e.Skip(); - if(m_sci) { - SetStyles(m_sci); - } else if(m_book) { - size_t pageCount = m_book->GetPageCount(); - for(size_t i = 0; i < pageCount; ++i) { - wxStyledTextCtrl* stc = dynamic_cast(m_book->GetPage(pageCount)); - if(stc) { - SetStyles(stc); - } - } + SetStyles(m_sci); +} + +void FindResultsTab::OnRecentSearches(wxAuiToolBarEvent& e) +{ + // Show the menu + wxMenu menu; + clAuiToolStickness s(m_tb, e.GetId()); + const int firstID = 8000; + int counter = 0; + std::map entries; + std::for_each(m_history.Begin(), m_history.End(), [&](const std::pair& p) { + menu.Prepend(firstID + counter, p.first, "", wxITEM_CHECK)->Check(m_searchTitle == p.first); + entries.insert(std::make_pair(firstID + counter, p.second)); + ++counter; + }); + + menu.AppendSeparator(); + int clearHistory = ::wxNewId(); + menu.Append(clearHistory, _("Clear History")); + int sel = GetPopupMenuSelectionFromUser(menu, e.GetItemRect().GetBottomLeft()); + if(sel == wxID_NONE) return; + if(sel == clearHistory) { + m_history.Clear(); + + } else if(entries.count(sel)) { + const History& h = entries.find(sel)->second; + LoadSearch(h); + } +} + +void FindResultsTab::SaveSearchData() +{ + History entry; + entry.text = m_sci->GetText(); + entry.searchData = m_searchData; + entry.title = m_searchTitle; + entry.matchInfo = m_matchInfo; + + // Save the indicators as well + entry.indicators = m_indicators; + + // search for an entry with the same title + if(m_history.Contains(entry.title)) { + m_history.Remove(entry.title); } + m_history.PushBack(entry.title, entry); +} + +void FindResultsTab::LoadSearch(const History& h) +{ + m_searchData = h.searchData; + m_matchInfo = h.matchInfo; + m_searchTitle = h.title; + m_sci->SetEditable(true); + m_sci->ClearAll(); + m_sci->SetText(h.text); + + // restore the indicators + std::for_each( + h.indicators.begin(), h.indicators.end(), [&](int pos) { m_sci->IndicatorFillRange(pos, h.title.length()); }); + m_sci->SetFirstVisibleLine(0); + m_sci->SetEditable(false); } +void FindResultsTab::OnRecentSearchesUI(wxUpdateUIEvent& e) { e.Enable(!m_history.IsEmpty() && !m_searchInProgress); } + +void FindResultsTab::ResetStyler() { m_curstate = kStartOfLine; } + ///////////////////////////////////////////////////////////////////////////////// void EditorDeltasHolder::GetChanges(std::vector& changes) diff -Nru codelite-8.0.1+dfsg2/LiteEditor/findresultstab.h codelite-9.0+dfsg/LiteEditor/findresultstab.h --- codelite-8.0.1+dfsg2/LiteEditor/findresultstab.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/findresultstab.h 2015-10-11 13:56:07.000000000 +0000 @@ -31,129 +31,149 @@ #include #include "wx/debug.h" -#include "notebook_ex.h" +#include "Notebook.h" #include "outputtabwindow.h" #include "search_thread.h" #include "findinfilesdlg.h" +#include "wx_ordered_map.h" +#include // Map between the line numbers and a search results -typedef std::map MatchInfo; - -// List containing the match info for all tabs (pre location) -typedef std::list ListMatchInfos; +typedef std::map MatchInfo_t; class FindResultsTab : public OutputTabWindow { SearchData m_searchData; - bool m_searchInProgress; + wxString m_searchTitle; + std::list m_indicators; + bool m_searchInProgress; + + struct History { + wxString title; + SearchData searchData; + wxString text; + MatchInfo_t matchInfo; + std::list indicators; + typedef wxOrderedMap Map_t; + }; -protected: - - Notebook *m_book; // for multiple Find Results pages - wxStyledTextCtrl *m_recv; // the page that is receiving results of a search + enum eState { + kHeader, + kStartOfLine, + kFile, + kLineNumber, + kScope, + kMatch, + }; + static eState m_curstate; + History::Map_t m_history; - ListMatchInfos m_matchInfo; - - MatchInfo& GetMatchInfo(size_t idx = 0); +protected: + MatchInfo_t m_matchInfo; - void AppendText(const wxString &line); + void AppendText(const wxString& line); void Clear(); + void SaveSearchData(); + void LoadSearch(const History& h); + virtual void OnFindInFiles(wxCommandEvent& e); + virtual void OnRecentSearches(wxAuiToolBarEvent& e); + virtual void OnSearchStart(wxCommandEvent& e); + virtual void OnSearchMatch(wxCommandEvent& e); + virtual void OnSearchEnded(wxCommandEvent& e); + virtual void OnSearchCancel(wxCommandEvent& e); + virtual void OnClearAll(wxCommandEvent& e); + virtual void OnRepeatOutput(wxCommandEvent& e); + + virtual void OnClearAllUI(wxUpdateUIEvent& e); + virtual void OnRecentSearchesUI(wxUpdateUIEvent& e); + virtual void OnRepeatOutputUI(wxUpdateUIEvent& e); + virtual void OnMouseDClick(wxStyledTextEvent& e); - virtual void OnPageClosed (NotebookEvent &e); - virtual void OnPageChanged (NotebookEvent &e); - virtual void OnClosePage (NotebookEvent &e); - virtual void OnFindInFiles (wxCommandEvent &e); - virtual void OnSearchStart (wxCommandEvent &e); - virtual void OnSearchMatch (wxCommandEvent &e); - virtual void OnSearchEnded (wxCommandEvent &e); - virtual void OnSearchCancel (wxCommandEvent &e); - virtual void OnClearAll (wxCommandEvent &e); - virtual void OnRepeatOutput (wxCommandEvent &e); - - virtual void OnCloseTab (wxCommandEvent &e); - virtual void OnCloseAllTabs (wxCommandEvent &e); - virtual void OnCloseOtherTab (wxCommandEvent &e); - virtual void OnTabMenuUI (wxUpdateUIEvent &e); - - virtual void OnClearAllUI (wxUpdateUIEvent &e); - virtual void OnRepeatOutputUI (wxUpdateUIEvent &e); - virtual void OnMouseDClick (wxStyledTextEvent &e); - - virtual void OnStopSearch (wxCommandEvent &e); - virtual void OnStopSearchUI (wxUpdateUIEvent &e); + virtual void OnStopSearch(wxCommandEvent& e); + virtual void OnStopSearchUI(wxUpdateUIEvent& e); virtual void OnHoldOpenUpdateUI(wxUpdateUIEvent& e); - virtual void OnStyleNeeded (wxStyledTextEvent &e); - SearchData* GetSearchData (wxStyledTextCtrl *sci ); - void DoOpenSearchResult(const SearchResult &result, wxStyledTextCtrl *sci, int markerLine); - void OnThemeChanged (wxCommandEvent &e); + virtual void OnStyleNeeded(wxStyledTextEvent& e); + SearchData* GetSearchData(); + void DoOpenSearchResult(const SearchResult& result, wxStyledTextCtrl* sci, int markerLine); + void OnThemeChanged(wxCommandEvent& e); DECLARE_EVENT_TABLE() public: - FindResultsTab(wxWindow *parent, wxWindowID id, const wxString &name, bool useBook = false); + FindResultsTab(wxWindow* parent, wxWindowID id, const wxString& name); ~FindResultsTab(); - long GetBookStyle(); - static void SetStyles(wxStyledTextCtrl *sci); - static void StyleText(wxStyledTextCtrl* ctrl, wxStyledTextEvent& e); + static void SetStyles(wxStyledTextCtrl* sci); + static void StyleText(wxStyledTextCtrl* ctrl, wxStyledTextEvent& e, bool hasSope = false); + static void ResetStyler(); - size_t GetPageCount() const ; - void NextMatch(); - void PrevMatch(); + void NextMatch(); + void PrevMatch(); }; class EditorDeltasHolder { -// This is all conceptually complex, so I'm being verbose for my own benefit -// m_changes contains the current state: any position deltas since the file was loaded/reverted -// m_changesAtLastSave is a snapshot of m_changes when the file was (last) saved -// m_changesForCurrentMatches is a snapshot of m_changes at the last FileInFiles, so is the baseline for current matches -// (Any or all may be empty) -// If the file is saved, that makes no difference to any existing FiF matches, so the above situation continues. However we cache m_changes in m_changesAtLastSave -// If another FindInFiles call is made, we no longer care about the m_changesForCurrentMatches contents as the corresponding matches will have been overwritten. -// So we replace m_changesForCurrentMatches with m_changesAtLastSave, which is the baseline for the new matches -// Note that, unless the file is saved at some point after an initial FiF call, both will be empty -// And, unless there's been a 'save' since the last FiF call, the contents of m_changesForCurrentMatches and m_changesAtLastSave will be the same - -// When there's a 'GoTo next/previous FindInFiles' call, any relevant position changes need to be used. There are 4 possibilities: -// 1) If there are no changes, FiF matches should 'just work' -// 2) The common non-trivial situation is for there to be +ve position changes subsequent to the file's saved status at the last FindInFiles call -// However, see below... -// 3) Occasionally there will have been -ve position changes (i.e. undos), or undos followed by different alterations. -// If there hasn't been a second FiF call, that won't matter. -// 4) If there *has* been a second FiF call, followed by more alterations, it *will* matter; especially if there have been undos, then different alterations. -// In that case we need to use both the original changes and the replacement ones. -// As there's no easy way to tell the difference between 2) 3) and 4) (and the cost is nil for 1) anyway) treat all cases as though they may be 4) instances. -// That means combining m_changesForCurrentMatches (reversed and with lengths negated) and m_changes. See GetChanges() + // This is all conceptually complex, so I'm being verbose for my own benefit + // m_changes contains the current state: any position deltas since the file was loaded/reverted + // m_changesAtLastSave is a snapshot of m_changes when the file was (last) saved + // m_changesForCurrentMatches is a snapshot of m_changes at the last FileInFiles, so is the baseline for current + // matches + // (Any or all may be empty) + // If the file is saved, that makes no difference to any existing FiF matches, so the above situation continues. + // However we cache m_changes in m_changesAtLastSave + // If another FindInFiles call is made, we no longer care about the m_changesForCurrentMatches contents as the + // corresponding matches will have been overwritten. + // So we replace m_changesForCurrentMatches with m_changesAtLastSave, which is the baseline for the new matches + // Note that, unless the file is saved at some point after an initial FiF call, both will be empty + // And, unless there's been a 'save' since the last FiF call, the contents of m_changesForCurrentMatches and + // m_changesAtLastSave will be the same + + // When there's a 'GoTo next/previous FindInFiles' call, any relevant position changes need to be used. There are 4 + // possibilities: + // 1) If there are no changes, FiF matches should 'just work' + // 2) The common non-trivial situation is for there to be +ve position changes subsequent to the + // file's + // saved + // status at the last FindInFiles call + // However, see below... + // 3) Occasionally there will have been -ve position changes (i.e. undos), or undos followed by + // different + // alterations. + // If there hasn't been a second FiF call, that won't matter. + // 4) If there *has* been a second FiF call, followed by more alterations, it *will* matter; especially if + // there + // have been undos, then different alterations. + // In that case we need to use both the original changes and the replacement ones. + // As there's no easy way to tell the difference between 2) 3) and 4) (and the cost is nil for 1) anyway) treat all + // cases as though they may be 4) instances. + // That means combining m_changesForCurrentMatches (reversed and with lengths negated) and m_changes. See + // GetChanges() public: EditorDeltasHolder() {} - ~EditorDeltasHolder() { - Clear(); - } + ~EditorDeltasHolder() { Clear(); } - void Clear() { + void Clear() + { m_changes.clear(); m_changesAtLastSave.clear(); m_changesForCurrentMatches.clear(); } - void Push(int position, int length) { + void Push(int position, int length) + { m_changes.push_back(position); m_changes.push_back(length); } - void Pop() { + void Pop() + { if(m_changes.size() > 1) { m_changes.pop_back(); m_changes.pop_back(); } } - void OnFileSaved() { - m_changesAtLastSave = m_changes; - } - void OnFileInFiles() { - m_changesForCurrentMatches = m_changesAtLastSave; - } + void OnFileSaved() { m_changesAtLastSave = m_changes; } + void OnFileInFiles() { m_changesForCurrentMatches = m_changesAtLastSave; } void GetChanges(std::vector& changes); protected: @@ -162,5 +182,4 @@ std::vector m_changesForCurrentMatches; }; - #endif // __findresultstab__ diff -Nru codelite-8.0.1+dfsg2/LiteEditor/findusagetab.cpp codelite-9.0+dfsg/LiteEditor/findusagetab.cpp --- codelite-8.0.1+dfsg2/LiteEditor/findusagetab.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/findusagetab.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -57,12 +57,13 @@ { wxStyledTextCtrl* ctrl = dynamic_cast(e.GetEventObject()); if(!ctrl) return; - FindResultsTab::StyleText(ctrl, e); + FindResultsTab::StyleText(ctrl, e, true); } void FindUsageTab::Clear() { m_matches.clear(); + FindResultsTab::ResetStyler(); OutputTabWindow::Clear(); } @@ -129,7 +130,7 @@ m_matches[lineNumber] = *iter; // Format the message - wxString linenum = wxString::Format(wxT(" %5u "), (unsigned int)iter->getLineNumber() + 1); + wxString linenum = wxString::Format(wxT(" %5u: "), (unsigned int)iter->getLineNumber() + 1); wxString scopeName(wxT("")); TagEntryPtr tag = TagsManagerST::Get()->FunctionFromFileLine(iter->getFilename(), iter->getLineNumber()); if(tag) { diff -Nru codelite-8.0.1+dfsg2/LiteEditor/frame.cpp codelite-9.0+dfsg/LiteEditor/frame.cpp --- codelite-8.0.1+dfsg2/LiteEditor/frame.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/frame.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -24,6 +24,7 @@ ////////////////////////////////////////////////////////////////////////////// #include "precompiled_header.h" +#include "autoversion.h" #include "my_menu_bar.h" #include "bitmap_loader.h" #include @@ -62,6 +63,9 @@ #include "fileutils.h" #include "wxCustomStatusBar.h" #include "clBootstrapWizard.h" +#include "clWorkspaceManager.h" +#include "clSingleChoiceDialog.h" +#include #ifdef __WXGTK20__ // We need this ugly hack to workaround a gtk2-wxGTK name-clash @@ -130,7 +134,7 @@ #include "globals.h" #include "workspacetab.h" #include "fileexplorer.h" -#include "notebook_ex.h" +#include "Notebook.h" #include "options_dlg2.h" #include #include "tabgroupdlg.h" @@ -142,9 +146,6 @@ ////////////////////////////////////////////////// // from auto-generated file svninfo.cpp: -extern wxString CODELITE_VERSION_STR; -extern const wxChar* clGitRevision; - static wxStopWatch gStopWatch; // from iconsextra.cpp: @@ -200,6 +201,7 @@ //--------------------------------------------------- EVT_MENU(XRCID("new_file"), clMainFrame::OnFileNew) EVT_MENU(XRCID("open_file"), clMainFrame::OnFileOpen) +EVT_MENU(XRCID("open_folder"), clMainFrame::OnFileOpenFolder) EVT_MENU(XRCID("refresh_file"), clMainFrame::OnFileReload) EVT_MENU(XRCID("load_tab_group"), clMainFrame::OnFileLoadTabGroup) EVT_MENU(XRCID("save_file"), clMainFrame::OnSave) @@ -212,6 +214,10 @@ EVT_MENU_RANGE(RecentWorkspaceSubMenuID, RecentWorkspaceSubMenuID + 10, clMainFrame::OnRecentWorkspace) EVT_MENU_RANGE(ID_MENU_CUSTOM_TARGET_FIRST, ID_MENU_CUSTOM_TARGET_MAX, clMainFrame::OnBuildCustomTarget) EVT_MENU(wxID_EXIT, clMainFrame::OnQuit) +// print +EVT_MENU(wxID_PRINT, clMainFrame::OnPrint) +EVT_UPDATE_UI(wxID_PRINT, clMainFrame::OnFileExistUpdateUI) +EVT_MENU(wxID_PAGE_SETUP, clMainFrame::OnPageSetup) EVT_UPDATE_UI(XRCID("refresh_file"), clMainFrame::OnFileExistUpdateUI) EVT_UPDATE_UI(XRCID("save_file"), clMainFrame::OnFileSaveUI) @@ -219,6 +225,7 @@ EVT_UPDATE_UI(XRCID("save_all"), clMainFrame::OnFileSaveAllUI) EVT_UPDATE_UI(XRCID("save_tab_group"), clMainFrame::OnFileExistUpdateUI) EVT_UPDATE_UI(XRCID("close_file"), clMainFrame::OnFileCloseUI) +EVT_UPDATE_UI(XRCID("recent_workspaces"), clMainFrame::OnRecentWorkspaceUI) //-------------------------------------------------- // Edit menu @@ -319,16 +326,6 @@ EVT_UPDATE_UI(viewAsSubMenuID, clMainFrame::OnFileExistUpdateUI) EVT_UPDATE_UI_RANGE(viewAsMenuItemID, viewAsMenuItemMaxID, clMainFrame::DispatchUpdateUIEvent) -EVT_MENU(XRCID("show_workspace_tab"), clMainFrame::OnViewShowWorkspaceTab) -EVT_MENU(XRCID("show_explorer_tab"), clMainFrame::OnViewShowExplorerTab) -EVT_MENU(XRCID("show_tabs_tab"), clMainFrame::OnViewShowTabs) -EVT_MENU(XRCID("show_tabgroups_tab"), clMainFrame::OnViewShowTabgroups) - -EVT_UPDATE_UI(XRCID("show_workspace_tab"), clMainFrame::OnViewShowWorkspaceTabUI) -EVT_UPDATE_UI(XRCID("show_explorer_tab"), clMainFrame::OnViewShowExplorerTabUI) -EVT_UPDATE_UI(XRCID("show_tabs_tab"), clMainFrame::OnViewShowTabsUI) -EVT_UPDATE_UI(XRCID("show_tabgroups_tab"), clMainFrame::OnViewShowTabgroupsUI) - //------------------------------------------------------- // Search menu //------------------------------------------------------- @@ -350,6 +347,10 @@ EVT_MENU(XRCID("previous_fif_match"), clMainFrame::OnPreviousFiFMatch) EVT_MENU(XRCID("grep_current_file"), clMainFrame::OnGrepWord) EVT_MENU(XRCID("grep_current_workspace"), clMainFrame::OnGrepWord) +EVT_MENU(XRCID("ID_QUICK_ADD_NEXT"), clMainFrame::DispatchCommandEvent) +EVT_MENU(XRCID("ID_QUICK_FIND_ALL"), clMainFrame::DispatchCommandEvent) +EVT_UPDATE_UI(XRCID("ID_QUICK_ADD_NEXT"), clMainFrame::OnFileExistUpdateUI) +EVT_UPDATE_UI(XRCID("ID_QUICK_FIND_ALL"), clMainFrame::OnFileExistUpdateUI) EVT_AUITOOLBAR_TOOL_DROPDOWN(XRCID("toggle_bookmark"), clMainFrame::OnShowBookmarkMenu) @@ -388,6 +389,9 @@ EVT_MENU(XRCID("local_workspace_settings"), clMainFrame::OnWorkspaceSettings) EVT_MENU(XRCID("new_workspace"), clMainFrame::OnProjectNewWorkspace) EVT_MENU(XRCID("file_new_workspace"), clMainFrame::OnProjectNewWorkspace) +EVT_UPDATE_UI(XRCID("file_new_workspace"), clMainFrame::OnNewWorkspaceUI) +EVT_UPDATE_UI(XRCID("new_workspace"), clMainFrame::OnNewWorkspaceUI) +EVT_UPDATE_UI(XRCID("import_from_msvs"), clMainFrame::OnNewWorkspaceUI) EVT_MENU(XRCID("switch_to_workspace"), clMainFrame::OnSwitchWorkspace) EVT_MENU(XRCID("file_switch_to_workspace"), clMainFrame::OnSwitchWorkspace) EVT_UPDATE_UI(XRCID("switch_to_workspace"), clMainFrame::OnSwitchWorkspaceUI) @@ -411,7 +415,7 @@ EVT_UPDATE_UI(XRCID("reload_workspace"), clMainFrame::OnWorkspaceOpen) EVT_UPDATE_UI(XRCID("add_project"), clMainFrame::OnWorkspaceMenuUI) EVT_UPDATE_UI(XRCID("file_new_project"), clMainFrame::OnWorkspaceOpen) -EVT_UPDATE_UI(XRCID("new_project"), clMainFrame::OnWorkspaceOpen) +EVT_UPDATE_UI(XRCID("new_project"), clMainFrame::OnNewProjectUI) EVT_UPDATE_UI(XRCID("reconcile_project"), clMainFrame::OnShowActiveProjectSettingsUI) EVT_UPDATE_UI(XRCID("retag_workspace"), clMainFrame::OnRetagWorkspaceUI) EVT_UPDATE_UI(XRCID("full_retag_workspace"), clMainFrame::OnRetagWorkspaceUI) @@ -558,6 +562,7 @@ // Workspace Pane tab context menu //------------------------------------------------------- EVT_MENU(XRCID("detach_wv_tab"), clMainFrame::OnDetachWorkspaceViewTab) +EVT_MENU(XRCID("hide_wv_tab"), clMainFrame::OnHideWorkspaceViewTab) //------------------------------------------------------- // Debugger Pane tab context menu @@ -647,6 +652,7 @@ END_EVENT_TABLE() clMainFrame* clMainFrame::m_theFrame = NULL; +bool clMainFrame::m_initCompleted = false; clMainFrame::clMainFrame(wxWindow* pParent, wxWindowID id, @@ -733,6 +739,7 @@ this); EventNotifier::Get()->Connect( wxEVT_WORKSPACE_LOADED, wxCommandEventHandler(clMainFrame::OnUpdateCustomTargetsDropDownMenu), NULL, this); + EventNotifier::Get()->Bind(wxEVT_WORKSPACE_LOADED, &clMainFrame::OnWorkspaceLoaded, this); EventNotifier::Get()->Connect(wxEVT_CMD_PROJ_SETTINGS_SAVED, wxCommandEventHandler(clMainFrame::OnUpdateCustomTargetsDropDownMenu), NULL, @@ -769,6 +776,10 @@ this); EventNotifier::Get()->Connect(wxEVT_PROJ_RENAMED, clCommandEventHandler(clMainFrame::OnProjectRenamed), NULL, this); + + EventNotifier::Get()->Bind(wxEVT_DEBUG_STARTED, &clMainFrame::OnDebugStarted, this); + EventNotifier::Get()->Bind(wxEVT_DEBUG_ENDED, &clMainFrame::OnDebugEnded, this); + // Start the code completion manager, we do this by calling it once CodeCompletionManager::Get(); @@ -826,6 +837,7 @@ this); EventNotifier::Get()->Disconnect( wxEVT_WORKSPACE_LOADED, wxCommandEventHandler(clMainFrame::OnUpdateCustomTargetsDropDownMenu), NULL, this); + EventNotifier::Get()->Unbind(wxEVT_WORKSPACE_LOADED, &clMainFrame::OnWorkspaceLoaded, this); EventNotifier::Get()->Disconnect(wxEVT_CMD_PROJ_SETTINGS_SAVED, wxCommandEventHandler(clMainFrame::OnUpdateCustomTargetsDropDownMenu), NULL, @@ -870,6 +882,9 @@ wxEVT_PROJ_RENAMED, clCommandEventHandler(clMainFrame::OnProjectRenamed), NULL, this); wxDELETE(m_timer); + EventNotifier::Get()->Unbind(wxEVT_DEBUG_STARTED, &clMainFrame::OnDebugStarted, this); + EventNotifier::Get()->Unbind(wxEVT_DEBUG_ENDED, &clMainFrame::OnDebugEnded, this); + // GetPerspectiveManager().DisconnectEvents() assumes that m_mgr is still alive (and it should be as it is allocated // on the stack of clMainFrame) ManagerST::Get()->GetPerspectiveManager().DisconnectEvents(); @@ -885,7 +900,7 @@ { // set the revision number in the frame title wxString title(_("CodeLite ")); - title << clGitRevision; + title << CODELITE_VERSION_STRING; // initialize the environment variable configuration manager EnvironmentConfig::Instance()->Load(); @@ -971,6 +986,9 @@ #if defined(__WXOSX__) && wxCHECK_VERSION(3, 1, 0) EnableFullScreenView(); #endif + // Instantiate the workspace manager + // By calling its "Get" method + clWorkspaceManager::Get(); // tell wxAuiManager to manage this frame m_mgr.SetManagedWindow(this); @@ -985,7 +1003,7 @@ // initialize debugger configuration tool DebuggerConfigTool::Get()->Load(wxT("config/debuggers.xml"), wxT("5.4")); - WorkspaceST::Get()->SetStartupDir(ManagerST::Get()->GetStartupDirectory()); + clCxxWorkspaceST::Get()->SetStartupDir(ManagerST::Get()->GetStartupDirectory()); m_mgr.GetArtProvider()->SetMetric(wxAUI_DOCKART_PANE_BORDER_SIZE, 0); #ifdef __WXMSW__ @@ -1034,11 +1052,14 @@ // However I'm creating unused strings here, so that the translations remain in the catalogue const wxString unusedOV(_("Output View")); const wxString unusedWV(_("Workspace View")); + const wxString unusedCR( + _("wxCrafter")); // One that would otherwise be untranslated; OT here, but it's a convenient place to put it // Add the explorer pane m_workspacePane = new WorkspacePane(this, wxT("Workspace View"), &m_mgr); m_mgr.AddPane(m_workspacePane, wxAuiPaneInfo() + .PinButton() .CaptionVisible(true) .MinimizeButton() .MaximizeButton() @@ -1177,8 +1198,8 @@ XRCID("BookmarkTypes[start]"), XRCID("BookmarkTypes[end]")); - GetWorkspacePane()->GetNotebook()->SetRightClickMenu(wxXmlResource::Get()->LoadMenu(wxT("workspace_view_rmenu"))); - GetDebuggerPane()->GetNotebook()->SetRightClickMenu(wxXmlResource::Get()->LoadMenu(wxT("debugger_view_rmenu"))); + GetWorkspacePane()->GetNotebook()->SetMenu(wxXmlResource::Get()->LoadMenu(wxT("workspace_view_rmenu"))); + GetDebuggerPane()->GetNotebook()->SetMenu(wxXmlResource::Get()->LoadMenu(wxT("debugger_view_rmenu"))); m_mgr.Update(); SetAutoLayout(true); @@ -2160,16 +2181,9 @@ // Do the default and pass this event to the Editor LEditor* editor = GetMainBook()->GetActiveEditor(true); - if(!editor && event.GetId() != wxID_FIND) { + if(!editor && (event.GetId() != wxID_FIND)) { return; } - - if(event.GetId() >= viewAsMenuItemID && event.GetId() <= viewAsMenuItemMaxID) { - // keep the old id as int and override the value set in the event object - // to trick the event system - event.SetInt(event.GetId()); - event.SetId(viewAsMenuItemID); - } editor->OnMenuCommand(event); } @@ -2200,19 +2214,13 @@ void clMainFrame::OnFileExistUpdateUI(wxUpdateUIEvent& event) { CHECK_SHUTDOWN(); - - LEditor* editor = GetMainBook()->GetActiveEditor(true); - if(!editor) { - event.Enable(false); - } else { - event.Enable(true); - } + event.Enable(GetMainBook()->GetActiveEditor(true) != NULL); } void clMainFrame::OnAbout(wxCommandEvent& WXUNUSED(event)) { wxString mainTitle; - mainTitle = CODELITE_VERSION_STR; + mainTitle = CODELITE_VERSION_STRING; AboutDlg dlg(this, mainTitle); dlg.SetInfo(mainTitle); @@ -2309,8 +2317,8 @@ } EditorConfigST::Get()->SetRecentItems(previousgroups, wxT("RecentTabgroups")); // In case any were deleted - wxString path = - ManagerST::Get()->IsWorkspaceOpen() ? WorkspaceST::Get()->GetWorkspaceFileName().GetPath() : wxGetHomeDir(); + wxString path = ManagerST::Get()->IsWorkspaceOpen() ? clCxxWorkspaceST::Get()->GetWorkspaceFileName().GetPath() : + wxGetHomeDir(); LoadTabGroupDlg dlg(this, path, previousgroups); // Disable the 'Replace' checkbox if there aren't any editors to replace @@ -2352,10 +2360,12 @@ if(editor->GetModify()) { // Ask user if he really wants to lose all changes wxString msg; - msg << _("The file") << wxT(" '") << editor->GetFileName().GetFullName() << wxT(" '") - << _("has been altered.") << wxT("\n"); - msg << _("Are you sure you want to lose all changes?"); - if(wxMessageBox(msg, _("Confirm"), wxYES_NO, ::wxGetTopLevelParent(editor)) != wxYES) { + msg << editor->GetFileName().GetFullName() << _(" has been modified, reload file anyways?"); + wxRichMessageDialog dlg(::wxGetTopLevelParent(editor), + msg, + _("Reload File"), + wxYES_NO | wxCANCEL | wxNO_DEFAULT | wxICON_WARNING); + if(dlg.ShowModal() != wxID_YES) { return; } } @@ -2596,28 +2606,49 @@ void clMainFrame::OnWorkspaceOpen(wxUpdateUIEvent& event) { CHECK_SHUTDOWN(); + event.Enable(clWorkspaceManager::Get().GetWorkspace()); +#if 0 clCommandEvent e(wxEVT_CMD_IS_WORKSPACE_OPEN, GetId()); e.SetEventObject(this); e.SetAnswer(false); EventNotifier::Get()->ProcessEvent(e); event.Enable(ManagerST::Get()->IsWorkspaceOpen() || e.IsAnswer()); +#endif } // Project->New Workspace void clMainFrame::OnProjectNewWorkspace(wxCommandEvent& event) { // let the plugins handle this event first - wxCommandEvent e(wxEVT_CMD_CREATE_NEW_WORKSPACE, GetId()); - e.SetEventObject(this); - if(EventNotifier::Get()->ProcessEvent(e)) return; + wxArrayString options = clWorkspaceManager::Get().GetAllWorkspaces(); + wxString selection; + if(options.size() == 1) { + // only C++ is available + selection = clCxxWorkspaceST::Get()->GetWorkspaceType(); + } else { + clSingleChoiceDialog dlg(this, options, 0); + dlg.SetLabel(_("Select the workspace type:")); + if(dlg.ShowModal() == wxID_OK) { + selection = dlg.GetSelection(); + } + } - wxUnusedVar(event); - NewWorkspaceDlg dlg(this); - if(dlg.ShowModal() == wxID_OK) { - wxString fullname = dlg.GetFilePath(); - wxFileName fn(fullname); - ManagerST::Get()->CreateWorkspace(fn.GetName(), fn.GetPath()); + if(selection.IsEmpty()) return; + if(selection == clCxxWorkspaceST::Get()->GetWorkspaceType()) { + wxUnusedVar(event); + NewWorkspaceDlg dlg(this); + if(dlg.ShowModal() == wxID_OK) { + wxString fullname = dlg.GetFilePath(); + wxFileName fn(fullname); + ManagerST::Get()->CreateWorkspace(fn.GetName(), fn.GetPath()); + } + } else { + // a pluing workspace, pass it to the plugins + clCommandEvent e(wxEVT_CMD_CREATE_NEW_WORKSPACE); + e.SetEventObject(this); + e.SetString(selection); + EventNotifier::Get()->AddPendingEvent(e); } } @@ -2928,7 +2959,7 @@ if(ManagerST::Get()->IsWorkspaceOpen()) { // mark all the projects as dirty wxArrayString projects; - WorkspaceST::Get()->GetProjectList(projects); + clCxxWorkspaceST::Get()->GetProjectList(projects); for(size_t i = 0; i < projects.size(); i++) { ProjectPtr proj = ManagerST::Get()->GetProject(projects.Item(i)); if(proj) { @@ -2989,7 +3020,7 @@ if(enable) { // Make sure that the working folder is set to the correct path - wxString workspacePath = WorkspaceST::Get()->GetWorkspaceFileName().GetPath(); + wxString workspacePath = clCxxWorkspaceST::Get()->GetWorkspaceFileName().GetPath(); ::wxSetWorkingDirectory(workspacePath); wxLogMessage("Setting working directory to: %s", workspacePath); GetStatusBar()->SetMessage(_("Build starting...")); @@ -2998,7 +3029,7 @@ projectName = ManagerST::Get()->GetActiveProjectName(); // get the selected configuration to be built - BuildConfigPtr bldConf = WorkspaceST::Get()->GetProjBuildConf(projectName, wxEmptyString); + BuildConfigPtr bldConf = clCxxWorkspaceST::Get()->GetProjBuildConf(projectName, wxEmptyString); if(bldConf) { conf = bldConf->GetName(); } @@ -3022,7 +3053,7 @@ // get the selected configuration to be built BuildConfigPtr bldConf = - WorkspaceST::Get()->GetProjBuildConf(CustomTargetsMgr::Get().GetProjectName(), wxEmptyString); + clCxxWorkspaceST::Get()->GetProjBuildConf(CustomTargetsMgr::Get().GetProjectName(), wxEmptyString); if(bldConf) { CustomTargetsMgr::Pair_t target = CustomTargetsMgr::Get().GetTarget(event.GetId()); if(target.second.IsEmpty()) { @@ -3051,7 +3082,7 @@ wxString projectName = ManagerST::Get()->GetActiveProjectName(); wxString conf; // get the selected configuration to be built - BuildConfigPtr bldConf = WorkspaceST::Get()->GetProjBuildConf(projectName, wxEmptyString); + BuildConfigPtr bldConf = clCxxWorkspaceST::Get()->GetProjBuildConf(projectName, wxEmptyString); if(bldConf) { conf = bldConf->GetName(); } @@ -3077,29 +3108,37 @@ void clMainFrame::OnBuildProjectUI(wxUpdateUIEvent& event) { CHECK_SHUTDOWN(); - bool enable = !ManagerST::Get()->IsBuildInProgress() && !ManagerST::Get()->GetActiveProjectName().IsEmpty(); - event.Enable(enable); + if(!clWorkspaceManager::Get().GetWorkspace() || !clWorkspaceManager::Get().GetWorkspace()->IsBuildSupported()) { + event.Enable(false); + } else { + bool enable = !ManagerST::Get()->IsBuildInProgress() && !ManagerST::Get()->GetActiveProjectName().IsEmpty(); + event.Enable(enable); + } } void clMainFrame::OnStopExecutedProgramUI(wxUpdateUIEvent& event) { CHECK_SHUTDOWN(); - wxCommandEvent e(wxEVT_CMD_IS_PROGRAM_RUNNING, GetId()); + clExecuteEvent e(wxEVT_CMD_IS_PROGRAM_RUNNING, GetId()); e.SetEventObject(this); - e.SetInt(0); + e.SetAnswer(false); EventNotifier::Get()->ProcessEvent(e); Manager* mgr = ManagerST::Get(); bool enable = mgr->IsProgramRunning(); - event.Enable(enable || e.GetInt()); + event.Enable(enable || e.IsAnswer()); } void clMainFrame::OnStopBuildUI(wxUpdateUIEvent& event) { CHECK_SHUTDOWN(); - Manager* mgr = ManagerST::Get(); - bool enable = mgr->IsBuildInProgress(); - event.Enable(enable); + if(!clWorkspaceManager::Get().GetWorkspace() || !clWorkspaceManager::Get().GetWorkspace()->IsBuildSupported()) { + event.Enable(false); + } else { + Manager* mgr = ManagerST::Get(); + bool enable = mgr->IsBuildInProgress(); + event.Enable(enable); + } } void clMainFrame::OnStopBuild(wxCommandEvent& event) @@ -3113,7 +3152,7 @@ void clMainFrame::OnStopExecutedProgram(wxCommandEvent& event) { - wxCommandEvent evtExecute(wxEVT_CMD_STOP_EXECUTED_PROGRAM); + clExecuteEvent evtExecute(wxEVT_CMD_STOP_EXECUTED_PROGRAM); if(EventNotifier::Get()->ProcessEvent(evtExecute)) return; wxUnusedVar(event); @@ -3138,6 +3177,10 @@ void clMainFrame::OnCleanProjectUI(wxUpdateUIEvent& event) { CHECK_SHUTDOWN(); + if(!clWorkspaceManager::Get().GetWorkspace() || !clWorkspaceManager::Get().GetWorkspace()->IsBuildSupported()) { + event.Enable(false); + return; + } bool enable = !ManagerST::Get()->IsBuildInProgress() && !ManagerST::Get()->GetActiveProjectName().IsEmpty(); event.Enable(enable); } @@ -3146,13 +3189,13 @@ { // Test to see if any plugin wants to execute it clExecuteEvent evtExecute(wxEVT_CMD_EXECUTE_ACTIVE_PROJECT); - if(WorkspaceST::Get()->IsOpen()) { + if(clCxxWorkspaceST::Get()->IsOpen()) { // set the project name - evtExecute.SetTargetName(WorkspaceST::Get()->GetActiveProject()->GetName()); + evtExecute.SetTargetName(clCxxWorkspaceST::Get()->GetActiveProject()->GetName()); } if(EventNotifier::Get()->ProcessEvent(evtExecute)) return; - if(!WorkspaceST::Get()->IsOpen()) { + if(!clCxxWorkspaceST::Get()->IsOpen()) { return; } @@ -3179,14 +3222,19 @@ void clMainFrame::OnExecuteNoDebugUI(wxUpdateUIEvent& event) { CHECK_SHUTDOWN(); - wxCommandEvent e(wxEVT_CMD_IS_PROGRAM_RUNNING, GetId()); + if(!clWorkspaceManager::Get().GetWorkspace()) { + event.Enable(false); + return; + } + + clExecuteEvent e(wxEVT_CMD_IS_PROGRAM_RUNNING, GetId()); e.SetEventObject(this); - e.SetInt(0); + e.SetAnswer(false); EventNotifier::Get()->ProcessEvent(e); bool normalCondition = ManagerST::Get()->GetActiveProjectName().IsEmpty() == false && !ManagerST::Get()->IsBuildInProgress() && !ManagerST::Get()->IsProgramRunning(); - event.Enable(normalCondition || !e.GetInt()); + event.Enable(normalCondition || !e.IsAnswer()); } void clMainFrame::OnTimer(wxTimerEvent& event) @@ -3429,8 +3477,8 @@ if(item && menu) { wxMenu* submenu = item->GetSubMenu(); if(submenu) { - for(size_t i = 0; i < files.GetCount(); i++) { - hs.AddFileToHistory(files.Item(i)); + for(size_t i = files.GetCount(); i > 0; --i) { + hs.AddFileToHistory(files.Item(i - 1)); } // set this menu as the recent file menu hs.SetBaseId(RecentWorkspaceSubMenuID + 1); @@ -3561,11 +3609,11 @@ { wxUnusedVar(e); const wxString ALL(wxT("All Solution File (*.dsw;*.sln;*.dev;*.bpr;*.cbp;*.workspace)|") - wxT("*.dsw;*.sln;*.dev;*.bpr;*.cbp;*.workspace|") - wxT("MS Visual Studio Solution File (*.dsw;*.sln)|*.dsw;*.sln|") - wxT("Bloodshed Dev-C++ Solution File (*.dev)|*.dev|") - wxT("Borland C++ Builder Solution File (*.bpr)|*.bpr|") - wxT("Code::Blocks Solution File (*.cbp;*.workspace)|*.cbp;*.workspace")); + wxT("*.dsw;*.sln;*.dev;*.bpr;*.cbp;*.workspace|") + wxT("MS Visual Studio Solution File (*.dsw;*.sln)|*.dsw;*.sln|") + wxT("Bloodshed Dev-C++ Solution File (*.dev)|*.dev|") + wxT("Borland C++ Builder Solution File (*.bpr)|*.bpr|") + wxT("Code::Blocks Solution File (*.cbp;*.workspace)|*.cbp;*.workspace")); wxFileDialog dlg(this, _("Open IDE Solution/Workspace File"), @@ -3597,7 +3645,7 @@ bool isBuiltinDebuggerRunning = DebuggerMgr::Get().GetActiveDebugger() && DebuggerMgr::Get().GetActiveDebugger()->IsRunning(); - if(!WorkspaceST::Get()->IsOpen()) { + if(!clCxxWorkspaceST::Get()->IsOpen()) { // We hae no workspace opened and yet we got here. // this can mean one of two: // 1. A non C++ workspace is opened - so we initiate the debugger start command @@ -3615,7 +3663,7 @@ if(!isBuiltinDebuggerRunning) { // Let the plugin know that we are about to start debugging clDebugEvent dbgEvent(wxEVT_DBG_UI_CONTINUE); - ProjectPtr activeProject = WorkspaceST::Get()->GetActiveProject(); + ProjectPtr activeProject = clCxxWorkspaceST::Get()->GetActiveProject(); if(activeProject) { BuildConfigPtr buildConfig = activeProject->GetBuildConfiguration(); if(buildConfig) { @@ -3632,7 +3680,7 @@ } else if(mgr->IsWorkspaceOpen()) { - if(WorkspaceST::Get()->GetActiveProjectName().IsEmpty()) { + if(clCxxWorkspaceST::Get()->GetActiveProjectName().IsEmpty()) { wxLogMessage(_("Attempting to debug workspace with no active project? Ignoring.")); return; } @@ -3799,9 +3847,9 @@ e.Skip(); // make sure that we are always set to the working directory of the workspace - if(WorkspaceST::Get()->IsOpen()) { + if(clCxxWorkspaceST::Get()->IsOpen()) { // Check that current working directory is set to the workspace folder - wxString path = WorkspaceST::Get()->GetWorkspaceFileName().GetPath(); + wxString path = clCxxWorkspaceST::Get()->GetWorkspaceFileName().GetPath(); wxString curdir = ::wxGetCwd(); if(path != curdir) { // Check that it really *is* different, not just a symlink issue: see bug #942 @@ -3903,7 +3951,7 @@ // Load debuggers (*must* be after the plugins) #ifdef USE_POSIX_LAYOUT - wxString plugdir(wxStandardPaths::Get().GetDataDir() + wxT(PLUGINS_DIR)); + wxString plugdir(clStandardPaths::Get().GetDataDir() + wxT(PLUGINS_DIR)); DebuggerMgr::Get().Initialize(this, EnvironmentConfig::Instance(), plugdir); #else DebuggerMgr::Get().Initialize(this, EnvironmentConfig::Instance(), ManagerST::Get()->GetInstallDir()); @@ -3916,8 +3964,10 @@ Layout(); SelectBestEnvSet(); - // Now everything is loaded, set the saved tab-order in the workspace pane + // Now everything is loaded, set the saved tab-order in the workspace and the output pane GetWorkspacePane()->ApplySavedTabOrder(); + GetOutputPane()->ApplySavedTabOrder(); + ManagerST::Get()->GetPerspectiveManager().ConnectEvents(&m_mgr); wxCommandEvent evt(wxEVT_CL_THEME_CHANGED); @@ -3947,6 +3997,8 @@ eventShowTabBar.SetInt(clConfig::Get().Read(kConfigShowTabBar, true)); OnShowTabBar(eventShowTabBar); ShowOrHideCaptions(); + + m_initCompleted = true; } void clMainFrame::OnAppActivated(wxActivateEvent& e) @@ -3971,7 +4023,7 @@ LEditor* editor = GetMainBook()->GetActiveEditor(); if(editor) { // we are loosing the focus - editor->CallTipCancel(); + editor->DoCancelCalltip(); } #endif } @@ -3995,6 +4047,9 @@ { CHECK_SHUTDOWN(); e.Enable(false); + if(!clWorkspaceManager::Get().GetWorkspace() || !clWorkspaceManager::Get().GetWorkspace()->IsBuildSupported()) { + return; + } Manager* mgr = ManagerST::Get(); if(mgr->IsWorkspaceOpen() && !mgr->IsBuildInProgress()) { LEditor* editor = GetMainBook()->GetActiveEditor(); @@ -4238,33 +4293,24 @@ void clMainFrame::OnNewVersionAvailable(wxCommandEvent& e) { - WebUpdateJobData* data = reinterpret_cast(e.GetClientData()); - if(data) { - if(data->IsUpToDate() == false) { - - m_codeliteDownloadPageURL = data->GetUrl(); - ButtonDetails btn; - btn.buttonLabel = _("Download Now!"); - btn.commandId = XRCID("goto_codelite_download_url"); - btn.isDefault = true; - btn.window = this; - - GetMainBook()->ShowMessage( - _("A new version of codelite is available"), - true, - PluginManager::Get()->GetStdIcons()->LoadBitmap(wxT("messages/48/software_upgrade")), - btn); - - } else { - if(!data->GetShowMessage()) { - wxLogMessage(wxString() << "Info: codelite is up-to-date (or newer), version used: " - << data->GetCurVersion() << ", version on site: " << data->GetNewVersion()); - } else { - // User initiated the version check request - GetMainBook()->ShowMessage(_("CodeLite is up-to-date")); + if(e.GetEventType() == wxEVT_CMD_VERSION_UPTODATE) { + // All is up to date + wxMessageBox(_("You already have the latest version of CodeLite"), "CodeLite", wxOK | wxCENTRE, this); + } else { + WebUpdateJobData* data = reinterpret_cast(e.GetClientData()); + if(data) { + if(data->IsUpToDate() == false) { + wxRichMessageDialog dlg(this, + _("A new version of CodeLite is available for download"), + "CodeLite", + wxYES_NO | wxCANCEL | wxYES_DEFAULT | wxCENTRE | wxICON_INFORMATION); + dlg.SetYesNoLabels(_("Download"), _("No")); + if(dlg.ShowModal() == wxID_YES) { + ::wxLaunchDefaultBrowser(data->GetUrl()); + } } + wxDELETE(data); } - delete data; } } @@ -4276,29 +4322,23 @@ wxBitmap bmp = GetWorkspacePane()->GetNotebook()->GetPageBitmap( sel); // We might have a bitmap on the tab, make sure we restore it -#if !CL_USE_NATIVEBOOK DockablePane* pane = new DockablePane(this, GetWorkspacePane()->GetNotebook(), text, bmp, wxSize(200, 200)); page->Reparent(pane); // remove the page from the notebook - GetWorkspacePane()->GetNotebook()->RemovePage(sel, false); - pane->SetChildNoReparent(page); - -#else - - DockablePane* pane = new DockablePane(this, GetWorkspacePane()->GetNotebook(), text, bmp, wxSize(200, 200)); - GetWorkspacePane()->GetNotebook()->RemovePage(sel, false); -#if wxVERSION_NUMBER < 2903 - // HACK: since Reparent will remove the widget from the parent, we need to place it back... (This was fixed in - // wxGTK-2.9.3) - gtk_container_add(GTK_CONTAINER(GetWorkspacePane()->GetNotebook()->m_widget), page->m_widget); -#endif - page->Reparent(pane); + GetWorkspacePane()->GetNotebook()->RemovePage(sel); pane->SetChildNoReparent(page); + wxUnusedVar(e); +} -#endif +void clMainFrame::OnHideWorkspaceViewTab(wxCommandEvent& e) +{ + size_t sel = GetWorkspacePane()->GetNotebook()->GetSelection(); + wxString text = GetWorkspacePane()->GetNotebook()->GetPageText(sel); - wxUnusedVar(e); + clCommandEvent eventHide(wxEVT_SHOW_WORKSPACE_TAB); + eventHide.SetSelected(false).SetString(text); + EventNotifier::Get()->AddPendingEvent(eventHide); } void clMainFrame::OnNewDetachedPane(wxCommandEvent& e) @@ -4405,7 +4445,7 @@ if(enable) { wxString conf; // get the selected configuration to be built - BuildConfigPtr bldConf = WorkspaceST::Get()->GetProjBuildConf(projectName, wxEmptyString); + BuildConfigPtr bldConf = clCxxWorkspaceST::Get()->GetProjBuildConf(projectName, wxEmptyString); if(bldConf) { conf = bldConf->GetName(); } @@ -4435,8 +4475,12 @@ void clMainFrame::OnBatchBuildUI(wxUpdateUIEvent& e) { CHECK_SHUTDOWN(); - bool enable = !ManagerST::Get()->IsBuildInProgress() && ManagerST::Get()->IsWorkspaceOpen(); - e.Enable(enable); + if(!clWorkspaceManager::Get().GetWorkspace() || !clWorkspaceManager::Get().GetWorkspace()->IsBuildSupported()) { + e.Enable(false); + } else { + bool enable = !ManagerST::Get()->IsBuildInProgress() && ManagerST::Get()->IsWorkspaceOpen(); + e.Enable(enable); + } } void clMainFrame::OnBatchBuild(wxCommandEvent& e) @@ -4472,7 +4516,7 @@ wxString username = ::wxGetUserId(); username.Prepend("[ ").Append(" ]"); - wxString workspace = WorkspaceST::Get()->GetName(); + wxString workspace = clCxxWorkspaceST::Get()->GetName(); if(!workspace.IsEmpty()) { workspace.Prepend("[ ").Append(" ]"); } @@ -4515,7 +4559,11 @@ void clMainFrame::OnBuildWorkspaceUI(wxUpdateUIEvent& e) { CHECK_SHUTDOWN(); - e.Enable(ManagerST::Get()->IsWorkspaceOpen() && !ManagerST::Get()->IsBuildInProgress()); + if(!clWorkspaceManager::Get().GetWorkspace() || !clWorkspaceManager::Get().GetWorkspace()->IsBuildSupported()) { + e.Enable(false); + } else { + e.Enable(ManagerST::Get()->IsWorkspaceOpen() && !ManagerST::Get()->IsBuildInProgress()); + } } void clMainFrame::OnDetachDebuggerViewTab(wxCommandEvent& e) @@ -4525,24 +4573,12 @@ wxString text = GetDebuggerPane()->GetNotebook()->GetPageText(sel); wxBitmap bmp = GetDebuggerPane()->GetNotebook()->GetPageBitmap(sel); -#if !CL_USE_NATIVEBOOK DockablePane* pane = new DockablePane(this, GetDebuggerPane()->GetNotebook(), text, bmp, wxSize(200, 200)); page->Reparent(pane); // remove the page from the notebook - GetDebuggerPane()->GetNotebook()->RemovePage(sel, false); + GetDebuggerPane()->GetNotebook()->RemovePage(sel); pane->SetChildNoReparent(page); - -#else - - DockablePane* pane = new DockablePane(this, GetDebuggerPane()->GetNotebook(), text, bmp, wxSize(200, 200)); - GetDebuggerPane()->GetNotebook()->RemovePage(sel, false); - // HACK: since Reparent will remove the widget from the parent, we need to place it back... - gtk_container_add(GTK_CONTAINER(GetDebuggerPane()->GetNotebook()->m_widget), page->m_widget); - page->Reparent(pane); - pane->SetChildNoReparent(page); - -#endif wxUnusedVar(e); } @@ -4555,7 +4591,11 @@ void clMainFrame::OnCleanWorkspaceUI(wxUpdateUIEvent& e) { CHECK_SHUTDOWN(); - e.Enable(ManagerST::Get()->IsWorkspaceOpen() && !ManagerST::Get()->IsBuildInProgress()); + if(!clWorkspaceManager::Get().GetWorkspace() || !clWorkspaceManager::Get().GetWorkspace()->IsBuildSupported()) { + e.Enable(false); + } else { + e.Enable(ManagerST::Get()->IsWorkspaceOpen() && !ManagerST::Get()->IsBuildInProgress()); + } } void clMainFrame::OnReBuildWorkspace(wxCommandEvent& e) @@ -4567,7 +4607,11 @@ void clMainFrame::OnReBuildWorkspaceUI(wxUpdateUIEvent& e) { CHECK_SHUTDOWN(); - e.Enable(ManagerST::Get()->IsWorkspaceOpen() && !ManagerST::Get()->IsBuildInProgress()); + if(!clWorkspaceManager::Get().GetWorkspace() || !clWorkspaceManager::Get().GetWorkspace()->IsBuildSupported()) { + e.Enable(false); + } else { + e.Enable(ManagerST::Get()->IsWorkspaceOpen() && !ManagerST::Get()->IsBuildInProgress()); + } } void clMainFrame::OnOpenShellFromFilePath(wxCommandEvent& e) @@ -4645,9 +4689,11 @@ startup_info.debugger = dbgr; // notify plugins that we're about to start debugging - if(SendCmdEvent(wxEVT_DEBUG_STARTING, &startup_info)) - // plugin stopped debugging - return; + { + clDebugEvent eventStarting(wxEVT_DEBUG_STARTING); + eventStarting.SetClientData(&startup_info); + if(EventNotifier::Get()->ProcessEvent(eventStarting)) return; + } wxString tty; #ifndef __WXMSW__ @@ -4674,7 +4720,11 @@ dbgr->Start(si); // notify plugins that the debugger just started - SendCmdEvent(wxEVT_DEBUG_STARTED, &startup_info); + { + clDebugEvent eventStarted(wxEVT_DEBUG_STARTED); + eventStarted.SetClientData(&startup_info); + EventNotifier::Get()->ProcessEvent(eventStarted); + } dbgr->Run(dlg.GetArguments(), wxEmptyString); @@ -4734,11 +4784,15 @@ startup_info.debugger = dbgr; // notify plugins that we're about to start debugging - if(SendCmdEvent(wxEVT_DEBUG_STARTING, &startup_info)) { - dlg->Destroy(); - // plugin stopped debugging - return; + { + clDebugEvent eventStarting(wxEVT_DEBUG_STARTING); + eventStarting.SetClientData(&startup_info); + if(EventNotifier::Get()->ProcessEvent(eventStarting)) { + dlg->Destroy(); + return; + } } + wxString tty; wxString title; title << "Debugging core: " << dlg->GetCore(); @@ -4765,7 +4819,11 @@ dbgr->Start(si); // notify plugins that the debugger just started - SendCmdEvent(wxEVT_DEBUG_STARTED, &startup_info); + { + clDebugEvent eventStarted(wxEVT_DEBUG_STARTED); + eventStarted.SetClientData(&startup_info); + EventNotifier::Get()->ProcessEvent(eventStarted); + } // Coredump debugging doesn't use breakpoints, but probably we should do this here anyway... clMainFrame::Get()->GetDebuggerPane()->GetBreakpointView()->Initialize(); @@ -4912,7 +4970,7 @@ return false; } - Workspace* workspace = WorkspaceST::Get(); + clCxxWorkspace* workspace = clCxxWorkspaceST::Get(); bool workspace_modified = false, project_modified = false; // check if the workspace needs reloading and ask the user for confirmation @@ -4977,7 +5035,7 @@ if(!EventNotifier::Get()->ProcessEvent(eventSaveSession)) { // Do the default session store if(ManagerST::Get()->IsWorkspaceOpen()) { - wxString sessionName = WorkspaceST::Get()->GetWorkspaceFileName().GetFullPath(); + wxString sessionName = clCxxWorkspaceST::Get()->GetWorkspaceFileName().GetFullPath(); SessionEntry session; session.SetWorkspaceName(sessionName); GetMainBook()->SaveSession(session); @@ -5019,6 +5077,7 @@ EditorConfigST::Get()->WriteObject(wxT("GeneralInfo"), &m_frameGeneralInfo); EditorConfigST::Get()->SetInteger(wxT("ShowNavBar"), m_mainBook->IsNavBarShown() ? 1 : 0); GetWorkspacePane()->SaveWorkspaceViewTabOrder(); + GetOutputPane()->SaveTabOrder(); // keep list of all detached panes wxArrayString panes = m_DPmenuMgr->GetDeatchedPanesList(); @@ -5032,7 +5091,6 @@ // save the notebooks styles EditorConfigST::Get()->SetInteger(wxT("MainBook"), GetMainBook()->GetBookStyle()); - EditorConfigST::Get()->SetInteger(wxT("FindResults"), GetOutputPane()->GetFindResultsTab()->GetBookStyle()); EditorConfigST::Get()->Save(); return true; } @@ -5049,17 +5107,9 @@ GetOutputPane()->GetFindResultsTab()->PrevMatch(); } -void clMainFrame::OnNextFiFMatchUI(wxUpdateUIEvent& e) -{ - CHECK_SHUTDOWN(); - e.Enable(GetOutputPane()->GetFindResultsTab()->GetPageCount() > 0); -} +void clMainFrame::OnNextFiFMatchUI(wxUpdateUIEvent& e) { CHECK_SHUTDOWN(); } -void clMainFrame::OnPreviousFiFMatchUI(wxUpdateUIEvent& e) -{ - CHECK_SHUTDOWN(); - e.Enable(GetOutputPane()->GetFindResultsTab()->GetPageCount() > 0); -} +void clMainFrame::OnPreviousFiFMatchUI(wxUpdateUIEvent& e) { CHECK_SHUTDOWN(); } void clMainFrame::OnFindResourceXXX(wxCommandEvent& e) { @@ -5078,8 +5128,8 @@ } OpenResourceDialog dlg(this, PluginManager::Get(), initialText); - if(dlg.ShowModal() == wxID_OK) { - OpenResourceDialog::OpenSelection(dlg.GetSelection(), PluginManager::Get()); + if(dlg.ShowModal() == wxID_OK && dlg.GetSelection()) { + OpenResourceDialog::OpenSelection(*dlg.GetSelection(), PluginManager::Get()); } } @@ -5130,7 +5180,7 @@ void clMainFrame::OnShowActiveProjectSettings(wxCommandEvent& e) { wxUnusedVar(e); - if(!WorkspaceST::Get()->IsOpen()) { + if(!clCxxWorkspaceST::Get()->IsOpen()) { return; } GetWorkspaceTab()->OpenProjectSettings(); @@ -5140,7 +5190,7 @@ { CHECK_SHUTDOWN(); wxArrayString projectList; - WorkspaceST::Get()->GetProjectList(projectList); + clCxxWorkspaceST::Get()->GetProjectList(projectList); e.Enable(ManagerST::Get()->IsWorkspaceOpen() && (projectList.IsEmpty() == false)); } @@ -5180,10 +5230,10 @@ // First, if the project has an environment which is not '' use it if(ManagerST::Get()->IsWorkspaceOpen()) { - wxString activeProj = WorkspaceST::Get()->GetActiveProjectName(); + wxString activeProj = clCxxWorkspaceST::Get()->GetActiveProjectName(); ProjectPtr p = ManagerST::Get()->GetProject(activeProj); if(p) { - BuildConfigPtr buildConf = WorkspaceST::Get()->GetProjBuildConf(activeProj, wxEmptyString); + BuildConfigPtr buildConf = clCxxWorkspaceST::Get()->GetProjBuildConf(activeProj, wxEmptyString); if(buildConf) { if(buildConf->GetEnvVarSet() != USE_WORKSPACE_ENV_VAR_SET && buildConf->GetEnvVarSet() != wxT("") /* backward support */) { @@ -5537,59 +5587,18 @@ { CHECK_SHUTDOWN(); LEditor* editor = GetMainBook()->GetActiveEditor(); - e.Enable(editor && !editor->GetSelectedText().IsEmpty()); + if(e.GetId() == XRCID("grep_current_workspace")) { + // grep in workspace + e.Enable(clWorkspaceManager::Get().IsWorkspaceOpened() && editor && !editor->GetSelectedText().IsEmpty()); + } else { + // grep in file + e.Enable(editor && !editor->GetSelectedText().IsEmpty()); + } } void clMainFrame::OnPchCacheEnded(wxCommandEvent& e) { e.Skip(); } - void clMainFrame::OnPchCacheStarted(wxCommandEvent& e) { e.Skip(); } -////////////////// View -> Workspace View -> ///////////////////////////////////// - -void clMainFrame::OnViewShowExplorerTab(wxCommandEvent& e) -{ - DoEnableWorkspaceViewFlag(e.IsChecked(), View_Show_Explorer_Tab); - GetWorkspacePane()->UpdateTabs(); -} - -void clMainFrame::OnViewShowExplorerTabUI(wxUpdateUIEvent& event) -{ - event.Check(GetWorkspacePane()->IsTabVisible(View_Show_Explorer_Tab)); -} - -void clMainFrame::OnViewShowTabgroups(wxCommandEvent& e) -{ - DoEnableWorkspaceViewFlag(e.IsChecked(), View_Show_Tabgroups_Tab); - GetWorkspacePane()->UpdateTabs(); -} - -void clMainFrame::OnViewShowTabgroupsUI(wxUpdateUIEvent& event) -{ - event.Check(GetWorkspacePane()->IsTabVisible(View_Show_Tabgroups_Tab)); -} - -void clMainFrame::OnViewShowTabs(wxCommandEvent& e) -{ - DoEnableWorkspaceViewFlag(e.IsChecked(), View_Show_Tabs_Tab); - GetWorkspacePane()->UpdateTabs(); -} - -void clMainFrame::OnViewShowTabsUI(wxUpdateUIEvent& event) -{ - event.Check(GetWorkspacePane()->IsTabVisible(View_Show_Tabs_Tab)); -} - -void clMainFrame::OnViewShowWorkspaceTab(wxCommandEvent& e) -{ - DoEnableWorkspaceViewFlag(e.IsChecked(), View_Show_Workspace_Tab); - GetWorkspacePane()->UpdateTabs(); -} - -void clMainFrame::OnViewShowWorkspaceTabUI(wxUpdateUIEvent& event) -{ - event.Check(GetWorkspacePane()->IsTabVisible(View_Show_Workspace_Tab)); -} - ///////////////////// Helper methods ///////////////////////////// void clMainFrame::DoEnableWorkspaceViewFlag(bool enable, int flag) @@ -5796,11 +5805,12 @@ menu->Append(XRCID("clean_active_project_only"), wxT("Project Only - Clean")); // build the menu and show it - BuildConfigPtr bldcfg = WorkspaceST::Get()->GetProjBuildConf(WorkspaceST::Get()->GetActiveProjectName(), ""); + BuildConfigPtr bldcfg = + clCxxWorkspaceST::Get()->GetProjBuildConf(clCxxWorkspaceST::Get()->GetActiveProjectName(), ""); if(bldcfg && bldcfg->IsCustomBuild()) { // Update teh custom targets - CustomTargetsMgr::Get().SetTargets(WorkspaceST::Get()->GetActiveProjectName(), bldcfg->GetCustomTargets()); + CustomTargetsMgr::Get().SetTargets(clCxxWorkspaceST::Get()->GetActiveProjectName(), bldcfg->GetCustomTargets()); if(!CustomTargetsMgr::Get().GetTargets().empty()) { menu->AppendSeparator(); @@ -5925,10 +5935,10 @@ if(e.GetInt() == 0) { // start wxLogMessage( - wxString() << "Initializing refactoring database for workspace: " << WorkspaceST::Get()->GetName()); + wxString() << "Initializing refactoring database for workspace: " << clCxxWorkspaceST::Get()->GetName()); } else { - wxLogMessage(wxString() << "Initializing refactoring database for workspace: " << WorkspaceST::Get()->GetName() - << "... done"); + wxLogMessage(wxString() << "Initializing refactoring database for workspace: " + << clCxxWorkspaceST::Get()->GetName() << "... done"); } } @@ -5978,6 +5988,16 @@ } else { CreateNativeToolbar16(); } + + // Update the build drop down menu + if(clCxxWorkspaceST::Get()->IsOpen()) { + wxMenu* buildDropDownMenu = new wxMenu; + DoCreateBuildDropDownMenu(buildDropDownMenu); + if(GetToolBar() && GetToolBar()->FindById(XRCID("build_active_project"))) { + GetToolBar()->SetDropdownMenu(XRCID("build_active_project"), buildDropDownMenu); + } + } + } else { GetToolBar()->Hide(); GetToolBar()->Realize(); @@ -6049,13 +6069,7 @@ void clMainFrame::OnSwitchWorkspaceUI(wxUpdateUIEvent& event) { CHECK_SHUTDOWN(); - clCommandEvent e(wxEVT_CMD_IS_WORKSPACE_OPEN, GetId()); - e.SetEventObject(this); - e.SetAnswer(false); - EventNotifier::Get()->ProcessEvent(e); - bool isCxxWorkspaceOpened = ManagerST::Get()->IsWorkspaceOpen(); - bool isOtherWorkspaceOpened = e.IsAnswer(); - event.Enable(!isCxxWorkspaceOpened && !isOtherWorkspaceOpened); + event.Enable(!clWorkspaceManager::Get().IsWorkspaceOpened()); } void clMainFrame::OnSplitSelection(wxCommandEvent& event) @@ -6103,12 +6117,12 @@ } } -void clMainFrame::OnMarkEditorReadonly(wxCommandEvent& e) -{ +void clMainFrame::OnMarkEditorReadonly(wxCommandEvent& e) +{ wxUnusedVar(e); LEditor* editor = GetMainBook()->GetActiveEditor(); CHECK_PTR_RET(editor); - + editor->SetReadOnly(e.IsChecked()); GetMainBook()->MarkEditorReadOnly(editor); } @@ -6117,6 +6131,75 @@ { LEditor* editor = GetMainBook()->GetActiveEditor(); CHECK_PTR_RET(editor); - + e.Check(!editor->IsEditable()); } + +void clMainFrame::OnWorkspaceLoaded(wxCommandEvent& e) +{ + e.Skip(); + // If the workspace tab is visible, make it active + int where = GetWorkspacePane()->GetNotebook()->GetPageIndex(_("Workspace")); + if(where != wxNOT_FOUND) { + GetWorkspacePane()->GetNotebook()->SetSelection(where); + } +} + +void clMainFrame::OnFileOpenFolder(wxCommandEvent& event) +{ + wxString path = ::wxDirSelector(_("Select Folder")); + if(path.IsEmpty()) return; + GetWorkspacePane()->GetFileExplorer()->OpenFolder(path); + GetWorkspacePane()->SelectTab(GetWorkspacePane()->GetFileExplorer()->GetCaption()); +} + +void clMainFrame::OnNewWorkspaceUI(wxUpdateUIEvent& event) +{ + event.Enable(!clWorkspaceManager::Get().IsWorkspaceOpened()); +} + +void clMainFrame::OnNewProjectUI(wxUpdateUIEvent& event) +{ + event.Enable(clWorkspaceManager::Get().IsWorkspaceOpened() && + clWorkspaceManager::Get().GetWorkspace()->IsProjectSupported()); +} + +void clMainFrame::OnDebugStarted(clDebugEvent& event) +{ + event.Skip(); + m_toggleToolBar = false; + if(GetToolBar() && !GetToolBar()->IsShown()) { + // We have a native toolbar which is not visible, show it during debug session + clGetManager()->ShowToolBar(); + m_toggleToolBar = true; + } +} + +void clMainFrame::OnDebugEnded(clDebugEvent& event) +{ + event.Skip(); + if(m_toggleToolBar && GetToolBar()) { + clGetManager()->ShowToolBar(false); + } + m_toggleToolBar = false; +} + +void clMainFrame::OnPrint(wxCommandEvent& event) +{ + if(GetMainBook()->GetActiveEditor(true)) { + GetMainBook()->GetActiveEditor(true)->Print(); + } +} + +void clMainFrame::OnPageSetup(wxCommandEvent& event) +{ + if(GetMainBook()->GetActiveEditor(true)) { + GetMainBook()->GetActiveEditor(true)->PageSetup(); + } +} + +void clMainFrame::OnRecentWorkspaceUI(wxUpdateUIEvent& e) +{ + // We don't allow reloading of recent workspace while another is opened + e.Enable(!clWorkspaceManager::Get().IsWorkspaceOpened()); +} diff -Nru codelite-8.0.1+dfsg2/LiteEditor/frame.h codelite-9.0+dfsg/LiteEditor/frame.h --- codelite-8.0.1+dfsg2/LiteEditor/frame.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/frame.h 2015-10-11 13:56:07.000000000 +0000 @@ -41,7 +41,7 @@ #include "tags_options_dlg.h" #include #include "debuggerpane.h" -#include "notebook_ex.h" +#include "Notebook.h" #include "mainbook.h" #include #include "theme_handler.h" @@ -50,6 +50,8 @@ #include "macros.h" #include #include "clStatusBar.h" +#include +#include "clDockingManager.h" // forward decls class clSingleInstanceThread; @@ -83,7 +85,7 @@ { MainBook* m_mainBook; static clMainFrame* m_theFrame; - wxAuiManager m_mgr; + clDockingManager m_mgr; OutputPane* m_outputPane; WorkspacePane* m_workspacePane; wxArrayString m_files; @@ -115,21 +117,28 @@ wxStringSet_t m_coreToolbars; clStatusBar* m_statusBar; clSingleInstanceThread* m_singleInstanceThread; - + bool m_toggleToolBar; + + // Printing + wxPrintDialogData m_printDlgData; + +public: + static bool m_initCompleted; + protected: bool IsEditorEvent(wxEvent& event); void DoCreateBuildDropDownMenu(wxMenu* menu); void DoShowToolbars(bool show); - + public: static clMainFrame* Get(); static void Initialize(bool loadLastSession); - - /** - * @brief return the status bar + + /** + * @brief return the status bar */ clStatusBar* GetStatusBar() { return m_statusBar; } - + /** * @brief update the parser (code completion) search paths using the * default compiler as the input provider @@ -310,10 +319,10 @@ */ void DispatchCommandEvent(wxCommandEvent& event); void DispatchUpdateUIEvent(wxUpdateUIEvent& event); - - void OnSplitSelection(wxCommandEvent &event); + + void OnSplitSelection(wxCommandEvent& event); void OnSplitSelectionUI(wxUpdateUIEvent& event); - + /// Toolbar management void CreateToolbars24(); void CreateToolbars16(); @@ -328,12 +337,12 @@ void DoEnableWorkspaceViewFlag(bool enable, int flag); void DoUpdatePerspectiveMenu(); bool IsWorkspaceViewFlagEnabled(int flag); - /** - * @brief show the startup wizard - * @return true if a restart is needed + /** + * @brief show the startup wizard + * @return true if a restart is needed */ bool StartSetupWizard(); - + public: void ViewPane(const wxString& paneName, bool checked); void ShowOrHideCaptions(); @@ -342,6 +351,9 @@ //---------------------------------------------------- // event handlers //---------------------------------------------------- + void OnDebugStarted(clDebugEvent& event); + void OnDebugEnded(clDebugEvent& event); + void OnRestoreDefaultLayout(wxCommandEvent& e); void OnIdle(wxIdleEvent& e); void OnBuildEnded(clCommandEvent& event); @@ -363,6 +375,7 @@ void OnRunSetupWizard(wxCommandEvent& e); void OnFileNew(wxCommandEvent& event); void OnFileOpen(wxCommandEvent& event); + void OnFileOpenFolder(wxCommandEvent& event); void OnFileClose(wxCommandEvent& event); void OnFileCloseUI(wxUpdateUIEvent& event); void OnFileSaveAll(wxCommandEvent& event); @@ -376,16 +389,9 @@ void OnIncrementalSearchUI(wxUpdateUIEvent& event); void OnViewToolbar(wxCommandEvent& event); void OnViewToolbarUI(wxUpdateUIEvent& event); - - // View -> Workspace View -> ... - void OnViewShowWorkspaceTab(wxCommandEvent& e); - void OnViewShowWorkspaceTabUI(wxUpdateUIEvent& event); - void OnViewShowExplorerTab(wxCommandEvent& e); - void OnViewShowExplorerTabUI(wxUpdateUIEvent& event); - void OnViewShowTabs(wxCommandEvent& e); - void OnViewShowTabsUI(wxUpdateUIEvent& event); - void OnViewShowTabgroups(wxCommandEvent& e); - void OnViewShowTabgroupsUI(wxUpdateUIEvent& event); + void OnPrint(wxCommandEvent& event); + void OnPageSetup(wxCommandEvent& event); + void OnRecentWorkspaceUI(wxUpdateUIEvent& e); void OnViewOptions(wxCommandEvent& event); void OnToggleMainTBars(wxCommandEvent& event); @@ -403,10 +409,12 @@ void OnReloadWorkspaceUI(wxUpdateUIEvent& event); void OnSwitchWorkspace(wxCommandEvent& event); void OnSwitchWorkspaceUI(wxUpdateUIEvent& event); + void OnNewWorkspaceUI(wxUpdateUIEvent& event); void OnCloseWorkspace(wxCommandEvent& event); void OnProjectAddProject(wxCommandEvent& event); void OnReconcileProject(wxCommandEvent& event); void OnWorkspaceOpen(wxUpdateUIEvent& event); + void OnNewProjectUI(wxUpdateUIEvent& event); void OnRetagWorkspaceUI(wxUpdateUIEvent& event); void OnAddEnvironmentVariable(wxCommandEvent& event); void OnAdvanceSettings(wxCommandEvent& event); @@ -516,13 +524,14 @@ void OnViewWordWrap(wxCommandEvent& e); void OnViewWordWrapUI(wxUpdateUIEvent& e); void OnViewDisplayEOL_UI(wxUpdateUIEvent& e); - + // Docking windows events void OnAuiManagerRender(wxAuiManagerEvent& e); void OnDockablePaneClosed(wxAuiManagerEvent& e); void OnViewPane(wxCommandEvent& event); void OnViewPaneUI(wxUpdateUIEvent& event); void OnDetachWorkspaceViewTab(wxCommandEvent& e); + void OnHideWorkspaceViewTab(wxCommandEvent& e); void OnDetachDebuggerViewTab(wxCommandEvent& e); void OnNewDetachedPane(wxCommandEvent& e); void OnDestroyDetachedPane(wxCommandEvent& e); @@ -556,13 +565,14 @@ void OnActivateEditor(wxCommandEvent& e); void OnActiveEditorChanged(wxCommandEvent& e); void OnUpdateCustomTargetsDropDownMenu(wxCommandEvent& e); + void OnWorkspaceLoaded(wxCommandEvent& e); void OnRefactoringCacheStatus(wxCommandEvent& e); void OnWorkspaceClosed(wxCommandEvent& e); void OnChangeActiveBookmarkType(wxCommandEvent& e); void OnShowBookmarkMenu(wxAuiToolBarEvent& e); void OnSettingsChanged(wxCommandEvent& e); void OnEditMenuOpened(wxMenuEvent& e); - void OnProjectRenamed(clCommandEvent &event); + void OnProjectRenamed(clCommandEvent& event); DECLARE_EVENT_TABLE() }; diff -Nru codelite-8.0.1+dfsg2/LiteEditor/free_text_dialog.cpp codelite-9.0+dfsg/LiteEditor/free_text_dialog.cpp --- codelite-8.0.1+dfsg2/LiteEditor/free_text_dialog.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/free_text_dialog.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,28 +1,28 @@ ////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// // -// copyright : (C) 2008 by Eran Ifrah -// file name : free_text_dialog.cpp -// +// copyright : (C) 2008 by Eran Ifrah +// file name : free_text_dialog.cpp +// // ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// +// A +// _____ _ _ _ _ +// / __ \ | | | | (_) | +// | / \/ ___ __| | ___| | _| |_ ___ +// | | / _ \ / _ |/ _ \ | | | __/ _ ) +// | \__/\ (_) | (_| | __/ |___| | || __/ +// \____/\___/ \__,_|\___\_____/_|\__\___| +// +// F i l e +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// ////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// - /////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////// // C++ code generated with wxFormBuilder (version May 5 2007) // http://www.wxformbuilder.org/ // @@ -39,38 +39,50 @@ #else #include -#endif //WX_PRECOMP +#endif // WX_PRECOMP #include "free_text_dialog.h" - + /////////////////////////////////////////////////////////////////////////// -FreeTextDialog::FreeTextDialog( wxWindow* parent, wxString value, int id, wxString title, wxPoint pos, wxSize size, int style ) : wxDialog( parent, id, title, pos, size, style ) +FreeTextDialog::FreeTextDialog(wxWindow* parent, + wxString value, + int id, + wxString title, + wxPoint pos, + wxSize size, + int style) + : wxDialog(parent, id, title, pos, size, style) { - this->SetSizeHints( wxDefaultSize, wxDefaultSize ); - - wxBoxSizer* bSizer23; - bSizer23 = new wxBoxSizer( wxVERTICAL ); - - m_text = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE|wxTE_PROCESS_ENTER|wxTE_PROCESS_TAB|wxTE_RICH2); - bSizer23->Add( m_text, 1, wxALL|wxEXPAND, 5 ); - m_text->SetValue(value); - - m_staticline9 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL ); - bSizer23->Add( m_staticline9, 0, wxEXPAND | wxALL, 5 ); - - wxBoxSizer* bSizer24; - bSizer24 = new wxBoxSizer( wxHORIZONTAL ); - - m_buttonOK = new wxButton( this, wxID_OK, _("&OK"), wxDefaultPosition, wxDefaultSize, 0 ); - bSizer24->Add( m_buttonOK, 0, wxALL, 5 ); - - m_buttonCancel = new wxButton( this, wxID_CANCEL, _("&Cancel"), wxDefaultPosition, wxDefaultSize, 0 ); - bSizer24->Add( m_buttonCancel, 0, wxALL, 5 ); - - bSizer23->Add( bSizer24, 0, wxALIGN_RIGHT, 5 ); - - this->SetSizer( bSizer23 ); - this->Layout(); - m_text->SetFocus(); + this->SetSizeHints(wxDefaultSize, wxDefaultSize); + + wxBoxSizer* bSizer23; + bSizer23 = new wxBoxSizer(wxVERTICAL); + + m_text = new wxTextCtrl(this, + wxID_ANY, + wxEmptyString, + wxDefaultPosition, + wxDefaultSize, + wxTE_MULTILINE | wxTE_PROCESS_ENTER | wxTE_PROCESS_TAB | wxTE_RICH2); + bSizer23->Add(m_text, 1, wxALL | wxEXPAND, 5); + m_text->SetValue(value); + + m_staticline9 = new wxStaticLine(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL); + bSizer23->Add(m_staticline9, 0, wxEXPAND | wxALL, 5); + + wxBoxSizer* bSizer24; + bSizer24 = new wxBoxSizer(wxHORIZONTAL); + + m_buttonOK = new wxButton(this, wxID_OK, _("&OK"), wxDefaultPosition, wxDefaultSize, 0); + bSizer24->Add(m_buttonOK, 0, wxALL, 5); + + m_buttonCancel = new wxButton(this, wxID_CANCEL, _("&Cancel"), wxDefaultPosition, wxDefaultSize, 0); + bSizer24->Add(m_buttonCancel, 0, wxALL, 5); + + bSizer23->Add(bSizer24, 0, wxALIGN_RIGHT, 5); + + this->SetSizer(bSizer23); + this->Layout(); + m_text->SetFocus(); } diff -Nru codelite-8.0.1+dfsg2/LiteEditor/free_text_dialog.h codelite-9.0+dfsg/LiteEditor/free_text_dialog.h --- codelite-8.0.1+dfsg2/LiteEditor/free_text_dialog.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/free_text_dialog.h 2015-10-11 13:56:07.000000000 +0000 @@ -1,28 +1,28 @@ ////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// // -// copyright : (C) 2008 by Eran Ifrah -// file name : free_text_dialog.h -// +// copyright : (C) 2008 by Eran Ifrah +// file name : free_text_dialog.h +// // ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// +// A +// _____ _ _ _ _ +// / __ \ | | | | (_) | +// | / \/ ___ __| | ___| | _| |_ ___ +// | | / _ \ / _ |/ _ \ | | | __/ _ ) +// | \__/\ (_) | (_| | __/ |___| | || __/ +// \____/\___/ \__,_|\___\_____/_|\__\___| +// +// F i l e +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// ////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// - /////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////// // C++ code generated with wxFormBuilder (version May 5 2007) // http://www.wxformbuilder.org/ // @@ -39,24 +39,26 @@ /////////////////////////////////////////////////////////////////////////// - /////////////////////////////////////////////////////////////////////////////// /// Class FreeTextDialog /////////////////////////////////////////////////////////////////////////////// -class FreeTextDialog : public wxDialog +class FreeTextDialog : public wxDialog { -private: - protected: - wxTextCtrl* m_text; - wxStaticLine* m_staticline9; - wxButton* m_buttonOK; - wxButton* m_buttonCancel; + wxTextCtrl* m_text; + wxStaticLine* m_staticline9; + wxButton* m_buttonOK; + wxButton* m_buttonCancel; public: - FreeTextDialog( wxWindow* parent, wxString value = wxEmptyString, int id = wxID_ANY, wxString title = _("Edit"), wxPoint pos = wxDefaultPosition, wxSize size = wxSize( 481,299 ), int style = wxDEFAULT_DIALOG_STYLE); - wxString GetValue() const { return m_text->GetValue(); } - + FreeTextDialog(wxWindow* parent, + wxString value = wxEmptyString, + int id = wxID_ANY, + wxString title = _("Edit"), + wxPoint pos = wxDefaultPosition, + wxSize size = wxSize(481, 299), + int style = wxDEFAULT_DIALOG_STYLE); + wxString GetValue() const { return m_text->GetValue(); } }; #endif //__free_text_dialog__ diff -Nru codelite-8.0.1+dfsg2/LiteEditor/functionsmodel.cpp codelite-9.0+dfsg/LiteEditor/functionsmodel.cpp --- codelite-8.0.1+dfsg2/LiteEditor/functionsmodel.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/functionsmodel.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,28 +1,3 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2014 The CodeLite Team -// file name : functionsmodel.cpp -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - ////////////////////////////////////////////////////////////////////// // This file was auto-generated by codelite's wxCrafter Plugin // Do not modify this file by hand! @@ -61,7 +36,7 @@ FunctionsModel::~FunctionsModel() { for(size_t i=0; i(item.m_pItem); if ( node ) { return wxDataViewItem(node->GetParent()); @@ -228,7 +207,7 @@ if ( parent && parent->GetChildren().empty() ) DoChangeItemType(parentItem, false); - delete node; + wxDELETE(node); } if ( IsEmpty() ) @@ -253,6 +232,7 @@ for(; iter != roots.end(); ++iter) { DeleteItem( wxDataViewItem(*iter) ); } + m_data.clear(); Cleared(); } diff -Nru codelite-8.0.1+dfsg2/LiteEditor/functionsmodel.h codelite-9.0+dfsg/LiteEditor/functionsmodel.h --- codelite-8.0.1+dfsg2/LiteEditor/functionsmodel.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/functionsmodel.h 2015-10-11 13:56:07.000000000 +0000 @@ -1,28 +1,3 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2013 by Eran Ifrah -// file name : functionsmodel.h -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - ////////////////////////////////////////////////////////////////////// // This file was auto-generated by codelite's wxCrafter Plugin // Do not modify this file by hand! @@ -217,9 +192,9 @@ protected: // Helpers - wxDataViewItem DoAppendItem(const wxDataViewItem& parent, const wxVector& data, bool isContainer, wxClientData *clientData = NULL); - wxDataViewItem DoInsertItem(const wxDataViewItem& insertBeforeMe, const wxVector& data, bool isContainer, wxClientData *clientData); - void DoChangeItemType(const wxDataViewItem& item, bool changeToContainer); + virtual wxDataViewItem DoAppendItem(const wxDataViewItem& parent, const wxVector& data, bool isContainer, wxClientData *clientData = NULL); + virtual wxDataViewItem DoInsertItem(const wxDataViewItem& insertBeforeMe, const wxVector& data, bool isContainer, wxClientData *clientData); + virtual void DoChangeItemType(const wxDataViewItem& item, bool changeToContainer); public: /** diff -Nru codelite-8.0.1+dfsg2/LiteEditor/implementparentvirtualfunctionsbase.cpp codelite-9.0+dfsg/LiteEditor/implementparentvirtualfunctionsbase.cpp --- codelite-8.0.1+dfsg2/LiteEditor/implementparentvirtualfunctionsbase.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/implementparentvirtualfunctionsbase.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,30 +1,6 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2014 The CodeLite Team -// file name : implementparentvirtualfunctionsbase.cpp -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - ////////////////////////////////////////////////////////////////////// // This file was auto-generated by codelite's wxCrafter Plugin +// wxCrafter project file: implementparentvirtualfunctionsbase.wxcp // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// @@ -68,6 +44,9 @@ m_textCtrlImplFile = new wxTextCtrl(this, wxID_ANY, wxT(""), wxDefaultPosition, wxSize(-1, -1), 0); m_textCtrlImplFile->SetToolTip(_("Generate the functions in this filename")); + #if wxVERSION_NUMBER >= 3000 + m_textCtrlImplFile->SetHint(wxT("")); + #endif bSizer4->Add(m_textCtrlImplFile, 1, wxALL|wxEXPAND, 5); @@ -130,12 +109,19 @@ buttonSizer->Add(m_buttonCancel, 0, wxALL, 5); - + SetName(wxT("ImplementParentVirtualFunctionsBase")); SetSizeHints(-1,400); if ( GetSizer() ) { GetSizer()->Fit(this); } - Centre(wxBOTH); + CentreOnParent(wxBOTH); +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(this)) { + wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); + } +#endif // Connect events m_dataview->Connect(wxEVT_COMMAND_DATAVIEW_ITEM_VALUE_CHANGED, wxDataViewEventHandler(ImplementParentVirtualFunctionsBase::OnValueChanged), NULL, this); m_button10->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(ImplementParentVirtualFunctionsBase::OnCheckAll), NULL, this); diff -Nru codelite-8.0.1+dfsg2/LiteEditor/implementparentvirtualfunctionsbase.h codelite-9.0+dfsg/LiteEditor/implementparentvirtualfunctionsbase.h --- codelite-8.0.1+dfsg2/LiteEditor/implementparentvirtualfunctionsbase.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/implementparentvirtualfunctionsbase.h 2015-10-11 13:56:07.000000000 +0000 @@ -1,40 +1,18 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2013 by Eran Ifrah -// file name : implementparentvirtualfunctionsbase.h -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - ////////////////////////////////////////////////////////////////////// // This file was auto-generated by codelite's wxCrafter Plugin +// wxCrafter project file: implementparentvirtualfunctionsbase.wxcp // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// -#ifndef IMPLEMENTPARENTVIRTUALFUNCTIONSBASE_BASE_CLASSES_H -#define IMPLEMENTPARENTVIRTUALFUNCTIONSBASE_BASE_CLASSES_H +#ifndef CODELITE_LITEEDITOR_IMPLEMENTPARENTVIRTUALFUNCTIONSBASE_BASE_CLASSES_H +#define CODELITE_LITEEDITOR_IMPLEMENTPARENTVIRTUALFUNCTIONSBASE_BASE_CLASSES_H #include #include #include #include +#include +#include #include #include #include @@ -44,6 +22,12 @@ #include #include #include +#if wxVERSION_NUMBER >= 2900 +#include +#include +#include +#include +#endif class ImplementParentVirtualFunctionsBase : public wxDialog { @@ -66,6 +50,15 @@ virtual void OnUnCheckAll(wxCommandEvent& event) { event.Skip(); } public: + wxBannerWindow* GetBanner4() { return m_banner4; } + wxStaticText* GetStaticText2() { return m_staticText2; } + wxTextCtrl* GetTextCtrlImplFile() { return m_textCtrlImplFile; } + wxDataViewCtrl* GetDataview() { return m_dataview; } + wxButton* GetButton10() { return m_button10; } + wxButton* GetButton12() { return m_button12; } + wxCheckBox* GetCheckBoxFormat() { return m_checkBoxFormat; } + wxButton* GetButtonOk() { return m_buttonOk; } + wxButton* GetButtonCancel() { return m_buttonCancel; } ImplementParentVirtualFunctionsBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Implement Parent Virtual Functions"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,400), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER); virtual ~ImplementParentVirtualFunctionsBase(); }; diff -Nru codelite-8.0.1+dfsg2/LiteEditor/implementparentvirtualfunctionsbase.wxcp codelite-9.0+dfsg/LiteEditor/implementparentvirtualfunctionsbase.wxcp --- codelite-8.0.1+dfsg2/LiteEditor/implementparentvirtualfunctionsbase.wxcp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/implementparentvirtualfunctionsbase.wxcp 2015-10-11 13:56:07.000000000 +0000 @@ -1,997 +1,1266 @@ { - "metadata": { - "m_generatedFilesDir": ".", - "m_objCounter": 12, - "m_includeFiles": [], - "m_bitmapFunction": "wxCA6AAInitBitmapResources", - "m_bitmapsFile": "implfuncs_dlg_bitmaps.cpp", - "m_GenerateCodeTypes": 5, - "m_outputFileName": "implementparentvirtualfunctionsbase", - "m_templateClasses": [] - }, - "windows": [{ - "m_type": 4421, - "proportion": 0, - "border": 0, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": ["wxDEFAULT_DIALOG_STYLE", "wxRESIZE_BORDER"], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Size:", - "m_value": "-1,400" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "ImplementParentVirtualFunctionsBase" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Title:", - "m_value": "Implement Parent Virtual Functions" - }, { - "type": "virtualFolderPicker", - "m_label": "Virtual Folder:", - "m_path": "" - }, { - "type": "choice", - "m_label": "Centre:", - "m_selection": 1, - "m_options": ["", "wxBOTH", "wxVERTICAL", "wxHORIZONTAL"] - }, { - "type": "string", - "m_label": "File:", - "m_value": "implement_parent_virtual_functions" - }, { - "type": "string", - "m_label": "Inherited Class", - "m_value": "ImplementParentVirtualFunctionsDialog" - }, { - "type": "string", - "m_label": "Class Decorator", - "m_value": "" - }], - "m_events": [], - "m_children": [{ - "m_type": 4401, - "proportion": 0, - "border": 0, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "mainSizer" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4471, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": ["wxBORDER_THEME"], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_banner4" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "CaptionText" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Title:", - "m_value": "Implement inherited virtual functions" - }, { - "type": "multi-string", - "m_label": "Message:", - "m_value": "Select from the list below the functions that you want to override in your class" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 1, - "m_options": ["wxTOP", "wxBOTTOM", "wxLEFT", "wxRIGHT"] - }, { - "type": "filePicker", - "m_label": "Bitmap File:", - "m_path": "" - }, { - "type": "colour", - "m_label": "Gradient Start", - "colour": "ActiveCaption" - }, { - "type": "colour", - "m_label": "Gradient End", - "colour": "ActiveCaption" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4401, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "bSizer4" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 1, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4405, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_VERTICAL"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_staticText2" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Label:", - "m_value": "File:" - }, { - "type": "string", - "m_label": "Wrap:", - "m_value": "-1" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4406, - "proportion": 1, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_textCtrlImplFile" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "Generate the functions in this filename" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Value:", - "m_value": "" - }, { - "type": "string", - "m_label": "Max Length:", - "m_value": "0" - }], - "m_events": [], - "m_children": [] - }] - }, { - "m_type": 4401, - "proportion": 1, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "boxSizer6" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 1, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4473, - "proportion": 1, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": ["wxDV_VERT_RULES", "wxDV_HORIZ_RULES", "wxDV_ROW_LINES", "wxDV_SINGLE"], - "m_sizerFlags": ["wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_dataview" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "Select which function to generate by ticking the '?' column\\nAll fields on this table are editable" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Generated Model Class Name", - "m_value": "FunctionsModel" - }, { - "type": "bool", - "m_label": "Container Item Has Columns", - "m_value": true - }], - "m_events": [{ - "m_eventName": "wxEVT_COMMAND_DATAVIEW_ITEM_VALUE_CHANGED", - "m_eventClass": "wxDataViewEvent", - "m_eventHandler": "wxDataViewEventHandler", - "m_functionNameAndSignature": "OnValueChanged(wxDataViewEvent& event)", - "m_description": "Process a wxEVT_COMMAND_DATAVIEW_ITEM_VALUE_CHANGED event" - }], - "m_children": [{ - "m_type": 4472, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "?" - }, { - "type": "string", - "m_label": "Width:", - "m_value": "50" - }, { - "type": "choice", - "m_label": "Column Type", - "m_selection": 1, - "m_options": ["bitmap", "check", "text", "icontext", "progress", "choice"] - }, { - "type": "multi-string", - "m_label": "Choices:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Alignment", - "m_selection": 2, - "m_options": ["wxALIGN_LEFT", "wxALIGN_RIGHT", "wxALIGN_CENTER"] - }, { - "type": "choice", - "m_label": "Cell Mode", - "m_selection": 1, - "m_options": ["wxDATAVIEW_CELL_INERT", "wxDATAVIEW_CELL_ACTIVATABLE", "wxDATAVIEW_CELL_EDITABLE"] - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4472, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "Name" - }, { - "type": "string", - "m_label": "Width:", - "m_value": "200" - }, { - "type": "choice", - "m_label": "Column Type", - "m_selection": 2, - "m_options": ["bitmap", "check", "text", "icontext", "progress", "choice"] - }, { - "type": "multi-string", - "m_label": "Choices:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Alignment", - "m_selection": 0, - "m_options": ["wxALIGN_LEFT", "wxALIGN_RIGHT", "wxALIGN_CENTER"] - }, { - "type": "choice", - "m_label": "Cell Mode", - "m_selection": 0, - "m_options": ["wxDATAVIEW_CELL_INERT", "wxDATAVIEW_CELL_ACTIVATABLE", "wxDATAVIEW_CELL_EDITABLE"] - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4472, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "Visibility" - }, { - "type": "string", - "m_label": "Width:", - "m_value": "-2" - }, { - "type": "choice", - "m_label": "Column Type", - "m_selection": 5, - "m_options": ["bitmap", "check", "text", "icontext", "progress", "choice"] - }, { - "type": "multi-string", - "m_label": "Choices:", - "m_value": "public;protected;private;" - }, { - "type": "choice", - "m_label": "Alignment", - "m_selection": 0, - "m_options": ["wxALIGN_LEFT", "wxALIGN_RIGHT", "wxALIGN_CENTER"] - }, { - "type": "choice", - "m_label": "Cell Mode", - "m_selection": 2, - "m_options": ["wxDATAVIEW_CELL_INERT", "wxDATAVIEW_CELL_ACTIVATABLE", "wxDATAVIEW_CELL_EDITABLE"] - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4472, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "Virtual" - }, { - "type": "string", - "m_label": "Width:", - "m_value": "-2" - }, { - "type": "choice", - "m_label": "Column Type", - "m_selection": 1, - "m_options": ["bitmap", "check", "text", "icontext", "progress", "choice"] - }, { - "type": "multi-string", - "m_label": "Choices:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Alignment", - "m_selection": 0, - "m_options": ["wxALIGN_LEFT", "wxALIGN_RIGHT", "wxALIGN_CENTER"] - }, { - "type": "choice", - "m_label": "Cell Mode", - "m_selection": 1, - "m_options": ["wxDATAVIEW_CELL_INERT", "wxDATAVIEW_CELL_ACTIVATABLE", "wxDATAVIEW_CELL_EDITABLE"] - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4472, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "Generate doxygen comment?" - }, { - "type": "string", - "m_label": "Width:", - "m_value": "-2" - }, { - "type": "choice", - "m_label": "Column Type", - "m_selection": 1, - "m_options": ["bitmap", "check", "text", "icontext", "progress", "choice"] - }, { - "type": "multi-string", - "m_label": "Choices:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Alignment", - "m_selection": 0, - "m_options": ["wxALIGN_LEFT", "wxALIGN_RIGHT", "wxALIGN_CENTER"] - }, { - "type": "choice", - "m_label": "Cell Mode", - "m_selection": 1, - "m_options": ["wxDATAVIEW_CELL_INERT", "wxDATAVIEW_CELL_ACTIVATABLE", "wxDATAVIEW_CELL_EDITABLE"] - }], - "m_events": [], - "m_children": [] - }] - }, { - "m_type": 4401, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxEXPAND"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "boxSizer8" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4400, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxLEFT", "wxRIGHT", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_button10" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "Check all" - }, { - "type": "bool", - "m_label": "Default Button", - "m_value": false - }, { - "type": "filePicker", - "m_label": "Bitmap File:", - "m_path": "" - }, { - "type": "string", - "m_label": "Margins:", - "m_value": "2,2" - }], - "m_events": [{ - "m_eventName": "wxEVT_COMMAND_BUTTON_CLICKED", - "m_eventClass": "wxCommandEvent", - "m_eventHandler": "wxCommandEventHandler", - "m_functionNameAndSignature": "OnCheckAll(wxCommandEvent& event)", - "m_description": "Process a wxEVT_COMMAND_BUTTON_CLICKED event, when the button is clicked." - }], - "m_children": [] - }, { - "m_type": 4400, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_button12" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "Uncheck all" - }, { - "type": "bool", - "m_label": "Default Button", - "m_value": false - }, { - "type": "filePicker", - "m_label": "Bitmap File:", - "m_path": "" - }, { - "type": "string", - "m_label": "Margins:", - "m_value": "2,2" - }], - "m_events": [{ - "m_eventName": "wxEVT_COMMAND_BUTTON_CLICKED", - "m_eventClass": "wxCommandEvent", - "m_eventHandler": "wxCommandEventHandler", - "m_functionNameAndSignature": "OnUnCheckAll(wxCommandEvent& event)", - "m_description": "Process a wxEVT_COMMAND_BUTTON_CLICKED event, when the button is clicked." - }], - "m_children": [] - }] - }] - }, { - "m_type": 4449, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "sbSizer1" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 2, - "m_options": ["Vertical", "Horizontal", "wxVERTICAL"] - }, { - "type": "string", - "m_label": "Label:", - "m_value": "Options:" - }], - "m_events": [], - "m_children": [{ - "m_type": 4415, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_checkBoxFormat" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "Format text after insertion" - }, { - "type": "bool", - "m_label": "Value:", - "m_value": false - }], - "m_events": [], - "m_children": [] - }] - }, { - "m_type": 4401, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_HORIZONTAL"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "buttonSizer" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 1, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4400, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_OK" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_buttonOk" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "&OK" - }, { - "type": "bool", - "m_label": "Default Button", - "m_value": true - }, { - "type": "filePicker", - "m_label": "Bitmap File:", - "m_path": "" - }, { - "type": "string", - "m_label": "Margins:", - "m_value": "2,2" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4400, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_CANCEL" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_buttonCancel" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "&Cancel" - }, { - "type": "bool", - "m_label": "Default Button", - "m_value": false - }, { - "type": "filePicker", - "m_label": "Bitmap File:", - "m_path": "" - }, { - "type": "string", - "m_label": "Margins:", - "m_value": "2,2" - }], - "m_events": [], - "m_children": [] - }] - }] - }] - }] + "metadata": { + "m_generatedFilesDir": ".", + "m_objCounter": 12, + "m_includeFiles": [], + "m_bitmapFunction": "wxCA6AAInitBitmapResources", + "m_bitmapsFile": "implfuncs_dlg_bitmaps.cpp", + "m_GenerateCodeTypes": 5, + "m_outputFileName": "implementparentvirtualfunctionsbase", + "m_firstWindowId": 1000, + "m_useEnum": true, + "m_templateClasses": [] + }, + "windows": [{ + "m_type": 4421, + "proportion": 0, + "border": 0, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": ["wxDEFAULT_DIALOG_STYLE", "wxRESIZE_BORDER"], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Size:", + "m_value": "-1,400" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "ImplementParentVirtualFunctionsBase" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Enable Window Persistency:", + "m_value": true + }, { + "type": "string", + "m_label": "Title:", + "m_value": "Implement Parent Virtual Functions" + }, { + "type": "virtualFolderPicker", + "m_label": "Virtual Folder:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Centre:", + "m_selection": 1, + "m_options": ["", "wxBOTH", "wxVERTICAL", "wxHORIZONTAL"] + }, { + "type": "string", + "m_label": "Inherited Class", + "m_value": "ImplementParentVirtualFunctionsDialog" + }, { + "type": "string", + "m_label": "File:", + "m_value": "implement_parent_virtual_functions" + }, { + "type": "string", + "m_label": "Class Decorator", + "m_value": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (16x16) :", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (32x32) :", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (64x64) :", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (128x128):", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (256x256):", + "m_path": "" + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 0, + "border": 0, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "mainSizer" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4471, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxBORDER_THEME"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_banner4" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "CaptionText" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Title:", + "m_value": "Implement inherited virtual functions" + }, { + "type": "multi-string", + "m_label": "Message:", + "m_value": "Select from the list below the functions that you want to override in your class" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 1, + "m_options": ["wxTOP", "wxBOTTOM", "wxLEFT", "wxRIGHT"] + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "colour", + "m_label": "Gradient Start", + "colour": "ActiveCaption" + }, { + "type": "colour", + "m_label": "Gradient End", + "colour": "ActiveCaption" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4401, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "bSizer4" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 1, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4405, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_VERTICAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_staticText2" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Label:", + "m_value": "File:" + }, { + "type": "string", + "m_label": "Wrap:", + "m_value": "-1" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4406, + "proportion": 1, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_textCtrlImplFile" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "Generate the functions in this filename" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Value:", + "m_value": "" + }, { + "type": "string", + "m_label": "Text Hint", + "m_value": "" + }, { + "type": "string", + "m_label": "Max Length:", + "m_value": "0" + }, { + "type": "bool", + "m_label": "Auto Complete Directories:", + "m_value": false + }, { + "type": "bool", + "m_label": "Auto Complete Files:", + "m_value": false + }], + "m_events": [], + "m_children": [] + }] + }, { + "m_type": 4401, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "boxSizer6" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 1, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4473, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxDV_VERT_RULES", "wxDV_HORIZ_RULES", "wxDV_ROW_LINES", "wxDV_SINGLE"], + "m_sizerFlags": ["wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_dataview" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "Select which function to generate by ticking the '?' column\\nAll fields on this table are editable" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Generated Model Class Name", + "m_value": "FunctionsModel" + }, { + "type": "bool", + "m_label": "Container Item Has Columns", + "m_value": true + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_DATAVIEW_ITEM_VALUE_CHANGED", + "m_eventClass": "wxDataViewEvent", + "m_eventHandler": "wxDataViewEventHandler", + "m_functionNameAndSignature": "OnValueChanged(wxDataViewEvent& event)", + "m_description": "Process a wxEVT_COMMAND_DATAVIEW_ITEM_VALUE_CHANGED event", + "m_noBody": false + }], + "m_children": [{ + "m_type": 4472, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "?" + }, { + "type": "string", + "m_label": "Width:", + "m_value": "50" + }, { + "type": "choice", + "m_label": "Column Type", + "m_selection": 1, + "m_options": ["bitmap", "check", "text", "icontext", "progress", "choice"] + }, { + "type": "multi-string", + "m_label": "Choices:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Alignment", + "m_selection": 2, + "m_options": ["wxALIGN_LEFT", "wxALIGN_RIGHT", "wxALIGN_CENTER"] + }, { + "type": "choice", + "m_label": "Cell Mode", + "m_selection": 1, + "m_options": ["wxDATAVIEW_CELL_INERT", "wxDATAVIEW_CELL_ACTIVATABLE", "wxDATAVIEW_CELL_EDITABLE"] + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4472, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "Name" + }, { + "type": "string", + "m_label": "Width:", + "m_value": "200" + }, { + "type": "choice", + "m_label": "Column Type", + "m_selection": 2, + "m_options": ["bitmap", "check", "text", "icontext", "progress", "choice"] + }, { + "type": "multi-string", + "m_label": "Choices:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Alignment", + "m_selection": 0, + "m_options": ["wxALIGN_LEFT", "wxALIGN_RIGHT", "wxALIGN_CENTER"] + }, { + "type": "choice", + "m_label": "Cell Mode", + "m_selection": 0, + "m_options": ["wxDATAVIEW_CELL_INERT", "wxDATAVIEW_CELL_ACTIVATABLE", "wxDATAVIEW_CELL_EDITABLE"] + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4472, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "Visibility" + }, { + "type": "string", + "m_label": "Width:", + "m_value": "-2" + }, { + "type": "choice", + "m_label": "Column Type", + "m_selection": 5, + "m_options": ["bitmap", "check", "text", "icontext", "progress", "choice"] + }, { + "type": "multi-string", + "m_label": "Choices:", + "m_value": "public;protected;private;" + }, { + "type": "choice", + "m_label": "Alignment", + "m_selection": 0, + "m_options": ["wxALIGN_LEFT", "wxALIGN_RIGHT", "wxALIGN_CENTER"] + }, { + "type": "choice", + "m_label": "Cell Mode", + "m_selection": 2, + "m_options": ["wxDATAVIEW_CELL_INERT", "wxDATAVIEW_CELL_ACTIVATABLE", "wxDATAVIEW_CELL_EDITABLE"] + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4472, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "Virtual" + }, { + "type": "string", + "m_label": "Width:", + "m_value": "-2" + }, { + "type": "choice", + "m_label": "Column Type", + "m_selection": 1, + "m_options": ["bitmap", "check", "text", "icontext", "progress", "choice"] + }, { + "type": "multi-string", + "m_label": "Choices:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Alignment", + "m_selection": 0, + "m_options": ["wxALIGN_LEFT", "wxALIGN_RIGHT", "wxALIGN_CENTER"] + }, { + "type": "choice", + "m_label": "Cell Mode", + "m_selection": 1, + "m_options": ["wxDATAVIEW_CELL_INERT", "wxDATAVIEW_CELL_ACTIVATABLE", "wxDATAVIEW_CELL_EDITABLE"] + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4472, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "Generate doxygen comment?" + }, { + "type": "string", + "m_label": "Width:", + "m_value": "-2" + }, { + "type": "choice", + "m_label": "Column Type", + "m_selection": 1, + "m_options": ["bitmap", "check", "text", "icontext", "progress", "choice"] + }, { + "type": "multi-string", + "m_label": "Choices:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Alignment", + "m_selection": 0, + "m_options": ["wxALIGN_LEFT", "wxALIGN_RIGHT", "wxALIGN_CENTER"] + }, { + "type": "choice", + "m_label": "Cell Mode", + "m_selection": 1, + "m_options": ["wxDATAVIEW_CELL_INERT", "wxDATAVIEW_CELL_ACTIVATABLE", "wxDATAVIEW_CELL_EDITABLE"] + }], + "m_events": [], + "m_children": [] + }] + }, { + "m_type": 4401, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "boxSizer8" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4400, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxLEFT", "wxRIGHT", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_button10" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Check all" + }, { + "type": "bool", + "m_label": "Default Button", + "m_value": false + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Direction", + "m_selection": 0, + "m_options": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"] + }, { + "type": "string", + "m_label": "Margins:", + "m_value": "2,2" + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_BUTTON_CLICKED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnCheckAll(wxCommandEvent& event)", + "m_description": "Process a wxEVT_COMMAND_BUTTON_CLICKED event, when the button is clicked.", + "m_noBody": false + }], + "m_children": [] + }, { + "m_type": 4400, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_button12" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Uncheck all" + }, { + "type": "bool", + "m_label": "Default Button", + "m_value": false + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Direction", + "m_selection": 0, + "m_options": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"] + }, { + "type": "string", + "m_label": "Margins:", + "m_value": "2,2" + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_BUTTON_CLICKED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnUnCheckAll(wxCommandEvent& event)", + "m_description": "Process a wxEVT_COMMAND_BUTTON_CLICKED event, when the button is clicked.", + "m_noBody": false + }], + "m_children": [] + }] + }] + }, { + "m_type": 4449, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "sbSizer1" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 2, + "m_options": ["Vertical", "Horizontal", "wxVERTICAL"] + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Options:" + }], + "m_events": [], + "m_children": [{ + "m_type": 4415, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_checkBoxFormat" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Format text after insertion" + }, { + "type": "bool", + "m_label": "Value:", + "m_value": false + }], + "m_events": [], + "m_children": [] + }] + }, { + "m_type": 4401, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_HORIZONTAL"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "buttonSizer" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 1, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4400, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_OK" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_buttonOk" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "&OK" + }, { + "type": "bool", + "m_label": "Default Button", + "m_value": true + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Direction", + "m_selection": 0, + "m_options": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"] + }, { + "type": "string", + "m_label": "Margins:", + "m_value": "2,2" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4400, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_CANCEL" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_buttonCancel" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "&Cancel" + }, { + "type": "bool", + "m_label": "Default Button", + "m_value": false + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Direction", + "m_selection": 0, + "m_options": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"] + }, { + "type": "string", + "m_label": "Margins:", + "m_value": "2,2" + }], + "m_events": [], + "m_children": [] + }] + }] + }] + }] } \ No newline at end of file diff -Nru codelite-8.0.1+dfsg2/LiteEditor/implfuncs_dlg_bitmaps.cpp codelite-9.0+dfsg/LiteEditor/implfuncs_dlg_bitmaps.cpp --- codelite-8.0.1+dfsg2/LiteEditor/implfuncs_dlg_bitmaps.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/implfuncs_dlg_bitmaps.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,73 +1,47 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2014 The CodeLite Team -// file name : implfuncs_dlg_bitmaps.cpp -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - -// -// This file was automatically generated by wxrc, do not edit by hand. -// - -#include - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#include -#include -#include -#include - -#if wxCHECK_VERSION(2,8,5) && wxABI_VERSION >= 20805 - #define XRC_ADD_FILE(name, data, size, mime) \ - wxMemoryFSHandler::AddFileWithMimeType(name, data, size, mime) -#else - #define XRC_ADD_FILE(name, data, size, mime) \ - wxMemoryFSHandler::AddFile(name, data, size) -#endif - -static size_t xml_res_size_0 = 108; -static unsigned char xml_res_file_0[] = { -60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, -110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, -115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, -47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, -47,119,120,120,114,99,34,32,118,101,114,115,105,111,110,61,34,50,46,51, -46,48,46,49,34,47,62,10}; - -void wxCA6AAInitBitmapResources() -{ - - // Check for memory FS. If not present, load the handler: - { - wxMemoryFSHandler::AddFile(wxT("XRC_resource/dummy_file"), wxT("dummy one")); - wxFileSystem fsys; - wxFSFile *f = fsys.OpenFile(wxT("memory:XRC_resource/dummy_file")); - wxMemoryFSHandler::RemoveFile(wxT("XRC_resource/dummy_file")); - if (f) delete f; - else wxFileSystem::AddHandler(new wxMemoryFSHandler); - } - - XRC_ADD_FILE(wxT("XRC_resource/implfuncs_dlg_bitmaps.cpp$implfuncs_dlg_bitmaps.xrc"), xml_res_file_0, xml_res_size_0, wxT("text/xml")); - wxXmlResource::Get()->Load(wxT("memory:XRC_resource/implfuncs_dlg_bitmaps.cpp$implfuncs_dlg_bitmaps.xrc")); -} +// +// This file was automatically generated by wxrc, do not edit by hand. +// + +#include + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +#include +#include +#include +#include + +#if wxCHECK_VERSION(2,8,5) && wxABI_VERSION >= 20805 + #define XRC_ADD_FILE(name, data, size, mime) \ + wxMemoryFSHandler::AddFileWithMimeType(name, data, size, mime) +#else + #define XRC_ADD_FILE(name, data, size, mime) \ + wxMemoryFSHandler::AddFile(name, data, size) +#endif + +static size_t xml_res_size_0 = 90; +static unsigned char xml_res_file_0[] = { +60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, +110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, +115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, +47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, +47,119,120,120,114,99,34,47,62,10}; + +void wxCA6AAInitBitmapResources() +{ + + // Check for memory FS. If not present, load the handler: + { + wxMemoryFSHandler::AddFile(wxT("XRC_resource/dummy_file"), wxT("dummy one")); + wxFileSystem fsys; + wxFSFile *f = fsys.OpenFile(wxT("memory:XRC_resource/dummy_file")); + wxMemoryFSHandler::RemoveFile(wxT("XRC_resource/dummy_file")); + if (f) delete f; + else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase); + } + + XRC_ADD_FILE(wxT("XRC_resource/implfuncs_dlg_bitmaps.cpp$C__src_codelite_LiteEditor_implfuncs_dlg_bitmaps.xrc"), xml_res_file_0, xml_res_size_0, wxT("text/xml")); + wxXmlResource::Get()->Load(wxT("memory:XRC_resource/implfuncs_dlg_bitmaps.cpp$C__src_codelite_LiteEditor_implfuncs_dlg_bitmaps.xrc")); +} diff -Nru codelite-8.0.1+dfsg2/LiteEditor/importfilesdialog_liteeditor_bitmaps.cpp codelite-9.0+dfsg/LiteEditor/importfilesdialog_liteeditor_bitmaps.cpp --- codelite-8.0.1+dfsg2/LiteEditor/importfilesdialog_liteeditor_bitmaps.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/importfilesdialog_liteeditor_bitmaps.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -21,14 +21,13 @@ wxMemoryFSHandler::AddFile(name, data, size) #endif -static size_t xml_res_size_0 = 108; +static size_t xml_res_size_0 = 90; static unsigned char xml_res_file_0[] = { 60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, 110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, 115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, 47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, -47,119,120,120,114,99,34,32,118,101,114,115,105,111,110,61,34,50,46,51, -46,48,46,49,34,47,62,10}; +47,119,120,120,114,99,34,47,62,10}; void wxC945BInitBitmapResources() { diff -Nru codelite-8.0.1+dfsg2/LiteEditor/importfilesdialog_new.cpp codelite-9.0+dfsg/LiteEditor/importfilesdialog_new.cpp --- codelite-8.0.1+dfsg2/LiteEditor/importfilesdialog_new.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/importfilesdialog_new.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -34,7 +34,7 @@ mainSizer->Add(m_banner1, 0, wxALL|wxEXPAND, 5); - m_dirPicker = new wxDirPickerCtrl(this, wxID_ANY, wxEmptyString, wxT("Select a folder"), wxDefaultPosition, wxSize(-1,-1), wxDIRP_DEFAULT_STYLE|wxDIRP_USE_TEXTCTRL); + m_dirPicker = new wxDirPickerCtrl(this, wxID_ANY, wxEmptyString, _("Select a folder"), wxDefaultPosition, wxSize(-1,-1), wxDIRP_DEFAULT_STYLE|wxDIRP_USE_TEXTCTRL); m_dirPicker->SetToolTip(_("Select the base folder for importing")); m_dirPicker->SetFocus(); @@ -80,11 +80,19 @@ m_stdBtnSizer7->AddButton(m_buttonCancel); m_stdBtnSizer7->Realize(); + SetName(wxT("ImportFilesDialogNewBase")); SetSizeHints(400,400); if ( GetSizer() ) { GetSizer()->Fit(this); } - Centre(wxBOTH); + CentreOnParent(wxBOTH); +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(this)) { + wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); + } +#endif // Connect events m_dirPicker->Connect(wxEVT_COMMAND_DIRPICKER_CHANGED, wxFileDirPickerEventHandler(ImportFilesDialogNewBase::OnDirChanged), NULL, this); m_dataview->Connect(wxEVT_COMMAND_DATAVIEW_ITEM_VALUE_CHANGED, wxDataViewEventHandler(ImportFilesDialogNewBase::OnValueChanged), NULL, this); diff -Nru codelite-8.0.1+dfsg2/LiteEditor/importfilesdialog_new.h codelite-9.0+dfsg/LiteEditor/importfilesdialog_new.h --- codelite-8.0.1+dfsg2/LiteEditor/importfilesdialog_new.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/importfilesdialog_new.h 2015-10-11 13:56:07.000000000 +0000 @@ -4,8 +4,8 @@ // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// -#ifndef IMPORTFILESDIALOG_BASE_CLASSES_H -#define IMPORTFILESDIALOG_BASE_CLASSES_H +#ifndef CODELITE_LITEEDITOR_IMPORTFILESDIALOG_BASE_CLASSES_H +#define CODELITE_LITEEDITOR_IMPORTFILESDIALOG_BASE_CLASSES_H #include #include @@ -22,6 +22,12 @@ #include #include #include +#if wxVERSION_NUMBER >= 2900 +#include +#include +#include +#include +#endif class ImportFilesDialogNewBase : public wxDialog { @@ -44,6 +50,12 @@ virtual void OnItemExpanding(wxDataViewEvent& event) { event.Skip(); } public: + wxBannerWindow* GetBanner1() { return m_banner1; } + wxDirPickerCtrl* GetDirPicker() { return m_dirPicker; } + wxDataViewCtrl* GetDataview() { return m_dataview; } + wxStaticText* GetStaticText1() { return m_staticText1; } + wxTextCtrl* GetTextCtrSpec() { return m_textCtrSpec; } + wxCheckBox* GetCheckBoxFilesWOExt() { return m_checkBoxFilesWOExt; } ImportFilesDialogNewBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Import Files"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(400,400), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER); virtual ~ImportFilesDialogNewBase(); }; diff -Nru codelite-8.0.1+dfsg2/LiteEditor/importfilesdialog.wxcp codelite-9.0+dfsg/LiteEditor/importfilesdialog.wxcp --- codelite-8.0.1+dfsg2/LiteEditor/importfilesdialog.wxcp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/importfilesdialog.wxcp 2015-10-11 13:56:07.000000000 +0000 @@ -72,6 +72,10 @@ "m_label": "Style:", "m_value": "" }, { + "type": "bool", + "m_label": "Enable Window Persistency:", + "m_value": true + }, { "type": "string", "m_label": "Title:", "m_value": "Import Files" @@ -128,6 +132,10 @@ "m_sizerFlags": [], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "mainSizer" }, { diff -Nru codelite-8.0.1+dfsg2/LiteEditor/listctrlpanelbase.cpp codelite-9.0+dfsg/LiteEditor/listctrlpanelbase.cpp --- codelite-8.0.1+dfsg2/LiteEditor/listctrlpanelbase.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/listctrlpanelbase.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,30 +1,6 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2014 The CodeLite Team -// file name : listctrlpanelbase.cpp -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - ////////////////////////////////////////////////////////////////////// // This file was auto-generated by codelite's wxCrafter Plugin +// wxCrafter project file: listctrlpanel.wxcp // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// @@ -60,11 +36,12 @@ m_dvListCtrl->AppendTextColumn(_("File"), wxDATAVIEW_CELL_INERT, 400, wxALIGN_LEFT); m_dvListCtrl->AppendTextColumn(_("Line"), wxDATAVIEW_CELL_INERT, -1, wxALIGN_LEFT); + SetName(wxT("ListCtrlPanelBase")); SetSizeHints(500,300); if ( GetSizer() ) { GetSizer()->Fit(this); } - Centre(wxBOTH); + CentreOnParent(wxBOTH); // Connect events m_dvListCtrl->Connect(wxEVT_COMMAND_DATAVIEW_ITEM_ACTIVATED, wxDataViewEventHandler(ListCtrlPanelBase::OnItemActivated), NULL, this); m_dvListCtrl->Connect(wxEVT_COMMAND_DATAVIEW_ITEM_CONTEXT_MENU, wxDataViewEventHandler(ListCtrlPanelBase::OnMenu), NULL, this); diff -Nru codelite-8.0.1+dfsg2/LiteEditor/listctrlpanelbase.h codelite-9.0+dfsg/LiteEditor/listctrlpanelbase.h --- codelite-8.0.1+dfsg2/LiteEditor/listctrlpanelbase.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/listctrlpanelbase.h 2015-10-11 13:56:07.000000000 +0000 @@ -1,35 +1,11 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2014 The CodeLite Team -// file name : listctrlpanelbase.h -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - ////////////////////////////////////////////////////////////////////// // This file was auto-generated by codelite's wxCrafter Plugin +// wxCrafter project file: listctrlpanel.wxcp // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// -#ifndef LISTCTRLPANEL_BASE_CLASSES_H -#define LISTCTRLPANEL_BASE_CLASSES_H +#ifndef CODELITE_FORMBUILDER_LISTCTRLPANEL_BASE_CLASSES_H +#define CODELITE_FORMBUILDER_LISTCTRLPANEL_BASE_CLASSES_H #include #include @@ -42,6 +18,12 @@ #include #include #include +#if wxVERSION_NUMBER >= 2900 +#include +#include +#include +#include +#endif class ListCtrlPanelBase : public wxPanel { @@ -53,6 +35,7 @@ virtual void OnMenu(wxDataViewEvent& event) { event.Skip(); } public: + wxDataViewListCtrl* GetDvListCtrl() { return m_dvListCtrl; } ListCtrlPanelBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(500,300), long style = wxTAB_TRAVERSAL); virtual ~ListCtrlPanelBase(); }; diff -Nru codelite-8.0.1+dfsg2/LiteEditor/listctrlpanel.cpp codelite-9.0+dfsg/LiteEditor/listctrlpanel.cpp --- codelite-8.0.1+dfsg2/LiteEditor/listctrlpanel.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/listctrlpanel.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,145 +0,0 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2008 by Eran Ifrah -// file name : listctrlpanel.cpp -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -#include "listctrlpanel.h" -#include "manager.h" -#include "globals.h" -#include "pluginmanager.h" - -#include -#include -#include -#include "globals.h" -#include -#include "event_notifier.h" - -DebuggerCallstackView::DebuggerCallstackView ( wxWindow* parent ) - : ListCtrlPanelBase ( parent ) - , m_currLevel(0) -{ - EventNotifier::Get()->Connect(wxEVT_DEBUGGER_LIST_FRAMES, clCommandEventHandler(DebuggerCallstackView::OnUpdateBacktrace), NULL, this); -} - -void DebuggerCallstackView::OnItemActivated(wxDataViewEvent& event) -{ - int row = m_dvListCtrl->ItemToRow(event.GetItem()); - - StackEntry* entry = reinterpret_cast( m_dvListCtrl->GetItemData( event.GetItem() ) ); - if ( entry ) { - long frame, frameLine; - if ( !entry->level.ToLong(&frame) ) { - frame = 0; - } - - entry->line.ToLong(&frameLine); - SetCurrentLevel( row ); - ManagerST::Get()->DbgSetFrame(frame, frameLine); - - // Refresh the view - StackEntryArray stack = m_stack; - Update( stack ); - } -} - -void DebuggerCallstackView::Update ( const StackEntryArray &stackArr ) -{ - Clear(); - m_stack.insert(m_stack.end(), stackArr.begin(), stackArr.end()); - int activeFrame (-1); - if (!m_stack.empty()) { - for (int i=0; i<(int)m_stack.size(); i++) { - - bool isactive = (i == m_currLevel); - StackEntry entry = m_stack.at(i); - wxVector cols; - cols.push_back( ::MakeIconText(entry.level, isactive ? m_images.Bitmap("arrowActive") : m_images.Bitmap("arrowInactive")) ) ; - cols.push_back(entry.address); - cols.push_back(entry.function); - cols.push_back(entry.file); - cols.push_back(entry.line); - m_dvListCtrl->AppendItem( cols, (wxUIntPtr)new StackEntry(entry) ); - - if ( isactive ) { - activeFrame = i; - } - } - if ( activeFrame != wxNOT_FOUND ) { - wxDataViewItem item = m_dvListCtrl->RowToItem(activeFrame); - if ( item.IsOk() ) { - m_dvListCtrl->EnsureVisible( item ); - } - } - } -} - -void DebuggerCallstackView::SetCurrentLevel(const int level) -{ - // Set m_currLevel to level, or 0 if level is out of bounds - m_currLevel = (level >=0 && level < m_dvListCtrl->GetItemCount()) ? level : 0; -} - -void DebuggerCallstackView::Clear() -{ - m_stack.clear(); - for(int i=0; iGetItemCount(); ++i) { - wxDataViewItem item = m_dvListCtrl->GetStore()->GetItem(i); - if ( item.IsOk() ) { - StackEntry* entry = reinterpret_cast( m_dvListCtrl->GetItemData( item ) ); - if ( entry ) { - delete entry; - } - } - } - m_dvListCtrl->DeleteAllItems(); -} -void DebuggerCallstackView::OnMenu(wxDataViewEvent& event) -{ - // Popup the menu - wxMenu menu; - - menu.Append(XRCID("stack_copy_backtrace"), _("Copy Backtrace to Clipboard")); - menu.Connect(XRCID("stack_copy_backtrace"), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(DebuggerCallstackView::OnCopyBacktrace), NULL, this); - m_dvListCtrl->PopupMenu( &menu ); -} - -void DebuggerCallstackView::OnCopyBacktrace(wxCommandEvent& event) -{ - wxUnusedVar(event); - wxString trace; - for(size_t i=0; i(e.GetClientObject())->m_stack ); -} diff -Nru codelite-8.0.1+dfsg2/LiteEditor/listctrlpanel_formbuilder_bitmaps.cpp codelite-9.0+dfsg/LiteEditor/listctrlpanel_formbuilder_bitmaps.cpp --- codelite-8.0.1+dfsg2/LiteEditor/listctrlpanel_formbuilder_bitmaps.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/listctrlpanel_formbuilder_bitmaps.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,144 +1,118 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2014 The CodeLite Team -// file name : listctrlpanel_formbuilder_bitmaps.cpp -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - -// -// This file was automatically generated by wxrc, do not edit by hand. -// - -#include - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#include -#include -#include -#include - -#if wxCHECK_VERSION(2,8,5) && wxABI_VERSION >= 20805 - #define XRC_ADD_FILE(name, data, size, mime) \ - wxMemoryFSHandler::AddFileWithMimeType(name, data, size, mime) -#else - #define XRC_ADD_FILE(name, data, size, mime) \ - wxMemoryFSHandler::AddFile(name, data, size) -#endif - -static size_t xml_res_size_0 = 498; -static unsigned char xml_res_file_0[] = { -137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, -0,31,243,255,97,0,0,0,6,98,75,71,68,0,255,0,255,0,255,160,189,167,147,0, -0,1,167,73,68,65,84,56,141,181,146,207,75,84,81,20,199,63,119,156,17,116, -104,19,132,4,225,162,9,11,166,6,10,52,97,192,137,172,133,171,92,10,22,182, -44,144,126,109,139,176,63,160,69,251,32,138,118,70,8,21,173,204,22,249, -3,158,32,18,227,98,22,131,26,37,14,226,32,188,247,154,121,247,157,115,91, -148,34,229,188,69,212,119,115,23,231,123,63,247,124,207,185,240,63,181, -120,239,220,203,133,219,231,187,146,60,169,164,162,107,234,104,218,232, -178,119,179,112,242,239,0,86,56,118,225,242,17,76,198,243,110,228,139,7, -121,12,192,194,245,188,107,5,57,125,231,22,225,198,55,214,166,222,132,18, -53,199,250,159,149,95,253,1,152,31,61,229,10,15,38,126,61,43,160,130,115, -2,78,65,99,180,81,199,250,150,234,228,84,232,26,223,31,246,61,95,121,188, -11,72,3,168,85,16,33,218,92,106,25,167,173,61,203,241,145,225,206,213,201, -183,143,230,175,230,115,253,39,202,227,102,2,77,3,184,72,136,131,0,187, -93,79,152,72,29,147,233,160,123,232,98,246,203,187,15,99,115,159,123,122, -161,210,251,19,96,21,9,124,108,125,59,1,0,169,246,78,76,70,145,134,197, -217,216,237,139,32,168,31,16,39,116,208,150,61,76,108,13,95,63,206,4,77, -63,120,58,240,126,253,238,30,192,69,74,202,111,112,168,187,136,211,24,39, -49,136,221,59,101,167,134,221,81,214,62,205,134,98,229,126,105,122,253, -201,46,216,0,204,20,143,182,92,99,225,202,32,193,102,141,85,111,37,116, -34,215,74,179,27,175,247,215,77,82,230,233,190,46,151,59,147,211,106,185, -234,59,209,161,65,175,54,247,187,39,157,4,112,86,168,46,85,106,42,148,46, -45,111,85,14,242,36,127,229,72,94,152,166,57,219,234,242,63,209,15,99,239, -209,86,3,110,246,131,0,0,0,0,73,69,78,68,174,66,96,130}; - -static size_t xml_res_size_1 = 508; -static unsigned char xml_res_file_1[] = { -137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, -0,31,243,255,97,0,0,0,6,98,75,71,68,0,255,0,255,0,255,160,189,167,147,0, -0,0,9,112,72,89,115,0,0,11,19,0,0,11,19,1,0,154,156,24,0,0,0,7,116,73,77, -69,7,221,3,16,18,53,21,165,131,217,93,0,0,1,137,73,68,65,84,56,203,181, -146,191,75,66,81,20,199,191,61,125,130,54,71,139,123,224,214,32,8,13,185, -73,32,56,56,70,132,187,10,110,74,146,244,7,36,190,165,169,41,194,73,26, -28,116,112,120,91,139,139,33,162,244,23,248,131,139,136,121,31,239,221, -123,238,107,123,96,166,130,212,119,61,223,243,225,156,243,61,192,127,170, -82,169,188,150,203,229,211,93,30,109,87,81,8,113,173,105,218,71,169,84, -58,59,20,128,88,44,118,2,160,91,44,22,47,126,243,28,1,64,161,80,112,183, -65,50,153,12,166,211,41,58,157,14,23,66,220,86,171,213,198,6,32,151,203, -185,217,108,22,0,224,186,46,148,82,80,74,1,0,148,82,176,109,27,156,115, -180,90,45,110,219,246,125,173,86,123,92,91,65,8,1,34,194,120,60,198,100, -50,193,108,54,3,99,12,140,49,204,231,115,112,206,161,235,58,146,201,100, -40,24,12,62,228,243,249,39,195,48,52,0,240,3,128,148,18,150,101,97,177, -88,236,76,197,231,243,33,30,143,31,155,166,121,59,24,12,162,0,162,30,128, -115,190,23,16,8,4,160,235,58,28,199,129,148,210,245,38,32,162,189,19,132, -66,33,16,17,76,211,92,89,150,245,60,28,14,11,30,192,113,28,112,206,17,14, -135,189,35,18,17,164,148,80,74,97,185,92,98,181,90,161,219,237,114,41,229, -93,189,94,55,214,82,72,167,211,91,99,76,36,18,96,140,161,215,235,113,34, -186,105,52,26,111,27,49,110,83,42,149,114,35,145,136,26,141,70,95,68,116, -213,108,54,223,127,122,252,187,0,82,74,244,251,253,41,17,93,182,219,237, -207,67,94,249,69,8,113,190,173,249,79,244,13,229,89,229,131,163,10,197, -192,0,0,0,0,73,69,78,68,174,66,96,130}; - -static size_t xml_res_size_2 = 418; -static unsigned char xml_res_file_2[] = { -60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, -110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, -115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, -47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, -47,119,120,120,114,99,34,32,118,101,114,115,105,111,110,61,34,50,46,51, -46,48,46,49,34,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, -61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,97,114,114, -111,119,65,99,116,105,118,101,34,62,108,105,115,116,99,116,114,108,112, -97,110,101,108,95,102,111,114,109,98,117,105,108,100,101,114,95,98,105, -116,109,97,112,115,46,99,112,112,36,46,46,95,99,111,100,101,108,105,116, -101,45,105,99,111,110,115,95,116,111,111,108,98,97,114,115,95,49,54,95, -115,116,97,110,100,97,114,100,95,102,111,114,119,97,114,100,46,112,110, -103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32, -99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109, -101,61,34,97,114,114,111,119,73,110,97,99,116,105,118,101,34,62,108,105, -115,116,99,116,114,108,112,97,110,101,108,95,102,111,114,109,98,117,105, -108,100,101,114,95,98,105,116,109,97,112,115,46,99,112,112,36,46,46,95, -99,111,100,101,108,105,116,101,45,105,99,111,110,115,95,116,111,111,108, -98,97,114,115,95,49,54,95,115,116,97,110,100,97,114,100,95,102,111,114, -119,97,114,100,45,100,105,115,97,98,108,101,100,46,112,110,103,60,47,111, -98,106,101,99,116,62,10,60,47,114,101,115,111,117,114,99,101,62,10}; - -void wxCF3AAInitBitmapResources() -{ - - // Check for memory FS. If not present, load the handler: - { - wxMemoryFSHandler::AddFile(wxT("XRC_resource/dummy_file"), wxT("dummy one")); - wxFileSystem fsys; - wxFSFile *f = fsys.OpenFile(wxT("memory:XRC_resource/dummy_file")); - wxMemoryFSHandler::RemoveFile(wxT("XRC_resource/dummy_file")); - if (f) delete f; - else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase); - } - - XRC_ADD_FILE(wxT("XRC_resource/listctrlpanel_formbuilder_bitmaps.cpp$.._codelite-icons_toolbars_16_standard_forward.png"), xml_res_file_0, xml_res_size_0, wxT("image/x-apple-ios-png")); - XRC_ADD_FILE(wxT("XRC_resource/listctrlpanel_formbuilder_bitmaps.cpp$.._codelite-icons_toolbars_16_standard_forward-disabled.png"), xml_res_file_1, xml_res_size_1, wxT("image/x-apple-ios-png")); - XRC_ADD_FILE(wxT("XRC_resource/listctrlpanel_formbuilder_bitmaps.cpp$_home_eran_devl_codelitegit_formbuilder_listctrlpanel_formbuilder_bitmaps.xrc"), xml_res_file_2, xml_res_size_2, wxT("text/xml")); - wxXmlResource::Get()->Load(wxT("memory:XRC_resource/listctrlpanel_formbuilder_bitmaps.cpp$_home_eran_devl_codelitegit_formbuilder_listctrlpanel_formbuilder_bitmaps.xrc")); -} +// +// This file was automatically generated by wxrc, do not edit by hand. +// + +#include + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +#include +#include +#include +#include + +#if wxCHECK_VERSION(2,8,5) && wxABI_VERSION >= 20805 + #define XRC_ADD_FILE(name, data, size, mime) \ + wxMemoryFSHandler::AddFileWithMimeType(name, data, size, mime) +#else + #define XRC_ADD_FILE(name, data, size, mime) \ + wxMemoryFSHandler::AddFile(name, data, size) +#endif + +static size_t xml_res_size_0 = 498; +static unsigned char xml_res_file_0[] = { +137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, +0,31,243,255,97,0,0,0,6,98,75,71,68,0,255,0,255,0,255,160,189,167,147,0, +0,1,167,73,68,65,84,56,141,181,146,207,75,84,81,20,199,63,119,156,17,116, +104,19,132,4,225,162,9,11,166,6,10,52,97,192,137,172,133,171,92,10,22,182, +44,144,126,109,139,176,63,160,69,251,32,138,118,70,8,21,173,204,22,249, +3,158,32,18,227,98,22,131,26,37,14,226,32,188,247,154,121,247,157,115,91, +148,34,229,188,69,212,119,115,23,231,123,63,247,124,207,185,240,63,181, +120,239,220,203,133,219,231,187,146,60,169,164,162,107,234,104,218,232, +178,119,179,112,242,239,0,86,56,118,225,242,17,76,198,243,110,228,139,7, +121,12,192,194,245,188,107,5,57,125,231,22,225,198,55,214,166,222,132,18, +53,199,250,159,149,95,253,1,152,31,61,229,10,15,38,126,61,43,160,130,115, +2,78,65,99,180,81,199,250,150,234,228,84,232,26,223,31,246,61,95,121,188, +11,72,3,168,85,16,33,218,92,106,25,167,173,61,203,241,145,225,206,213,201, +183,143,230,175,230,115,253,39,202,227,102,2,77,3,184,72,136,131,0,187, +93,79,152,72,29,147,233,160,123,232,98,246,203,187,15,99,115,159,123,122, +161,210,251,19,96,21,9,124,108,125,59,1,0,169,246,78,76,70,145,134,197, +217,216,237,139,32,168,31,16,39,116,208,150,61,76,108,13,95,63,206,4,77, +63,120,58,240,126,253,238,30,192,69,74,202,111,112,168,187,136,211,24,39, +49,136,221,59,101,167,134,221,81,214,62,205,134,98,229,126,105,122,253, +201,46,216,0,204,20,143,182,92,99,225,202,32,193,102,141,85,111,37,116, +34,215,74,179,27,175,247,215,77,82,230,233,190,46,151,59,147,211,106,185, +234,59,209,161,65,175,54,247,187,39,157,4,112,86,168,46,85,106,42,148,46, +45,111,85,14,242,36,127,229,72,94,152,166,57,219,234,242,63,209,15,99,239, +209,86,3,110,246,131,0,0,0,0,73,69,78,68,174,66,96,130}; + +static size_t xml_res_size_1 = 508; +static unsigned char xml_res_file_1[] = { +137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, +0,31,243,255,97,0,0,0,6,98,75,71,68,0,255,0,255,0,255,160,189,167,147,0, +0,0,9,112,72,89,115,0,0,11,19,0,0,11,19,1,0,154,156,24,0,0,0,7,116,73,77, +69,7,221,3,16,18,53,21,165,131,217,93,0,0,1,137,73,68,65,84,56,203,181, +146,191,75,66,81,20,199,191,61,125,130,54,71,139,123,224,214,32,8,13,185, +73,32,56,56,70,132,187,10,110,74,146,244,7,36,190,165,169,41,194,73,26, +28,116,112,120,91,139,139,33,162,244,23,248,131,139,136,121,31,239,221, +123,238,107,123,96,166,130,212,119,61,223,243,225,156,243,61,192,127,170, +82,169,188,150,203,229,211,93,30,109,87,81,8,113,173,105,218,71,169,84, +58,59,20,128,88,44,118,2,160,91,44,22,47,126,243,28,1,64,161,80,112,183, +65,50,153,12,166,211,41,58,157,14,23,66,220,86,171,213,198,6,32,151,203, +185,217,108,22,0,224,186,46,148,82,80,74,1,0,148,82,176,109,27,156,115, +180,90,45,110,219,246,125,173,86,123,92,91,65,8,1,34,194,120,60,198,100, +50,193,108,54,3,99,12,140,49,204,231,115,112,206,161,235,58,146,201,100, +40,24,12,62,228,243,249,39,195,48,52,0,240,3,128,148,18,150,101,97,177, +88,236,76,197,231,243,33,30,143,31,155,166,121,59,24,12,162,0,162,30,128, +115,190,23,16,8,4,160,235,58,28,199,129,148,210,245,38,32,162,189,19,132, +66,33,16,17,76,211,92,89,150,245,60,28,14,11,30,192,113,28,112,206,17,14, +135,189,35,18,17,164,148,80,74,97,185,92,98,181,90,161,219,237,114,41,229, +93,189,94,55,214,82,72,167,211,91,99,76,36,18,96,140,161,215,235,113,34, +186,105,52,26,111,27,49,110,83,42,149,114,35,145,136,26,141,70,95,68,116, +213,108,54,223,127,122,252,187,0,82,74,244,251,253,41,17,93,182,219,237, +207,67,94,249,69,8,113,190,173,249,79,244,13,229,89,229,131,163,10,197, +192,0,0,0,0,73,69,78,68,174,66,96,130}; + +static size_t xml_res_size_2 = 400; +static unsigned char xml_res_file_2[] = { +60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, +110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, +115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, +47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, +47,119,120,120,114,99,34,62,10,32,32,60,111,98,106,101,99,116,32,99,108, +97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61, +34,97,114,114,111,119,65,99,116,105,118,101,34,62,108,105,115,116,99,116, +114,108,112,97,110,101,108,95,102,111,114,109,98,117,105,108,100,101,114, +95,98,105,116,109,97,112,115,46,99,112,112,36,46,46,95,99,111,100,101,108, +105,116,101,45,105,99,111,110,115,95,116,111,111,108,98,97,114,115,95,49, +54,95,115,116,97,110,100,97,114,100,95,102,111,114,119,97,114,100,46,112, +110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116, +32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109, +101,61,34,97,114,114,111,119,73,110,97,99,116,105,118,101,34,62,108,105, +115,116,99,116,114,108,112,97,110,101,108,95,102,111,114,109,98,117,105, +108,100,101,114,95,98,105,116,109,97,112,115,46,99,112,112,36,46,46,95, +99,111,100,101,108,105,116,101,45,105,99,111,110,115,95,116,111,111,108, +98,97,114,115,95,49,54,95,115,116,97,110,100,97,114,100,95,102,111,114, +119,97,114,100,45,100,105,115,97,98,108,101,100,46,112,110,103,60,47,111, +98,106,101,99,116,62,10,60,47,114,101,115,111,117,114,99,101,62,10}; + +void wxCF3AAInitBitmapResources() +{ + + // Check for memory FS. If not present, load the handler: + { + wxMemoryFSHandler::AddFile(wxT("XRC_resource/dummy_file"), wxT("dummy one")); + wxFileSystem fsys; + wxFSFile *f = fsys.OpenFile(wxT("memory:XRC_resource/dummy_file")); + wxMemoryFSHandler::RemoveFile(wxT("XRC_resource/dummy_file")); + if (f) delete f; + else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase); + } + + XRC_ADD_FILE(wxT("XRC_resource/listctrlpanel_formbuilder_bitmaps.cpp$.._codelite-icons_toolbars_16_standard_forward.png"), xml_res_file_0, xml_res_size_0, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/listctrlpanel_formbuilder_bitmaps.cpp$.._codelite-icons_toolbars_16_standard_forward-disabled.png"), xml_res_file_1, xml_res_size_1, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/listctrlpanel_formbuilder_bitmaps.cpp$C__src_codelite_formbuilder_listctrlpanel_formbuilder_bitmaps.xrc"), xml_res_file_2, xml_res_size_2, wxT("text/xml")); + wxXmlResource::Get()->Load(wxT("memory:XRC_resource/listctrlpanel_formbuilder_bitmaps.cpp$C__src_codelite_formbuilder_listctrlpanel_formbuilder_bitmaps.xrc")); +} diff -Nru codelite-8.0.1+dfsg2/LiteEditor/listctrlpanel.h codelite-9.0+dfsg/LiteEditor/listctrlpanel.h --- codelite-8.0.1+dfsg2/LiteEditor/listctrlpanel.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/listctrlpanel.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,55 +0,0 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2008 by Eran Ifrah -// file name : listctrlpanel.h -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -#ifndef DebuggerCallstackView_H -#define DebuggerCallstackView_H - -#include "listctrlpanelbase.h" -#include "debugger.h" -#include "cl_command_event.h" - -/** Implementing ListCtrlPanelBase */ -class DebuggerCallstackView : public ListCtrlPanelBase -{ -protected: - // Handlers for ListCtrlPanelBase events. - void OnCopyBacktrace(wxCommandEvent &event); - void OnUpdateBacktrace(clCommandEvent &e); - -public: - virtual void OnMenu(wxDataViewEvent& event); - virtual void OnItemActivated(wxDataViewEvent& event); - /** Constructor */ - DebuggerCallstackView( wxWindow* parent ); - void Update(const StackEntryArray &stackArr); - void SetCurrentLevel(const int level); - void Clear(); - -private: - int m_currLevel; - StackEntryArray m_stack; - DebuggerBtImgList m_images; -}; - -#endif // DebuggerCallstackView_H diff -Nru codelite-8.0.1+dfsg2/LiteEditor/LiteEditor.project codelite-9.0+dfsg/LiteEditor/LiteEditor.project --- codelite-8.0.1+dfsg2/LiteEditor/LiteEditor.project 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/LiteEditor.project 2015-10-11 13:56:07.000000000 +0000 @@ -148,6 +148,7 @@ + @@ -156,8 +157,6 @@ - - @@ -280,6 +279,8 @@ + + @@ -409,14 +410,14 @@ - - + + @@ -536,6 +537,8 @@ + + @@ -567,6 +570,8 @@ + + @@ -636,6 +641,8 @@ + + @@ -655,8 +662,6 @@ - - @@ -751,6 +756,7 @@ + @@ -893,6 +899,8 @@ + + @@ -932,6 +940,8 @@ + + @@ -1180,7 +1190,89 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1188,6 +1280,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1235,6 +1366,8 @@ + + @@ -1255,9 +1388,9 @@ make install cmake -DPREFIX=/home/eran/root -DCMAKE_BUILD_TYPE=Debug .. -DCMAKE_EXPORT_COMPILE_COMMANDS=1 - make clean && make -j8 + make clean && make -j4 make clean - make -j8 + make -j4 @@ -1427,6 +1560,7 @@ + @@ -1449,10 +1583,10 @@ - cmake -DCMAKE_BUILD_TYPE=Release .. -DMAKE_DEB=1 -DCMAKE_EXPORT_COMPILE_COMMANDS=1 -DWITH_PCH=1 - make clean && make -j8 + cmake -DCMAKE_BUILD_TYPE=Release .. -DMAKE_DEB=1 -DCMAKE_EXPORT_COMPILE_COMMANDS=1 -DCOPY_WX_LIBS=1 + make clean && make -j4 make clean - make -e -j 8 + make -e -j 4 ./configure @@ -1463,7 +1597,8 @@ resources.cpp resources.cpp: resources.xrc - wxrc -c -v -o resources.cpp resources.xrc + wxrc -c -v -o resources.cpp resources.xrc + @@ -1774,7 +1909,7 @@ - + @@ -1805,8 +1940,7 @@ resources.cpp resources.cpp: resources.xrc - wxrc /c /v /o resources.cpp resources.xrc - + wxrc /c /v /o resources.cpp resources.xrc @@ -1934,126 +2068,4 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff -Nru codelite-8.0.1+dfsg2/LiteEditor/localstable.cpp codelite-9.0+dfsg/LiteEditor/localstable.cpp --- codelite-8.0.1+dfsg2/LiteEditor/localstable.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/localstable.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,28 +1,28 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2014 The CodeLite Team -// file name : localstable.cpp -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - +////////////////////////////////////////////////////////////////////////////// +////////////////////////////////////////////////////////////////////////////// +// +// copyright : (C) 2014 The CodeLite Team +// file name : localstable.cpp +// +// ------------------------------------------------------------------------- +// A +// _____ _ _ _ _ +// / __ \ | | | | (_) | +// | / \/ ___ __| | ___| | _| |_ ___ +// | | / _ \ / _ |/ _ \ | | | __/ _ ) +// | \__/\ (_) | (_| | __/ |___| | || __/ +// \____/\___/ \__,_|\___\_____/_|\__\___| +// +// F i l e +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// +////////////////////////////////////////////////////////////////////////////// +////////////////////////////////////////////////////////////////////////////// + #include "localstable.h" #include #include @@ -36,41 +36,36 @@ #include "frame.h" #include "drawingutils.h" #include "event_notifier.h" +#include BEGIN_EVENT_TABLE(LocalsTable, DebuggerTreeListCtrlBase) - EVT_MENU(XRCID("Change_Value"), LocalsTable::OnEditValue) - EVT_UPDATE_UI(XRCID("Change_Value"), LocalsTable::OnEditValueUI) +EVT_MENU(XRCID("Change_Value"), LocalsTable::OnEditValue) +EVT_UPDATE_UI(XRCID("Change_Value"), LocalsTable::OnEditValueUI) END_EVENT_TABLE() -LocalsTable::LocalsTable(wxWindow *parent) +LocalsTable::LocalsTable(wxWindow* parent) : DebuggerTreeListCtrlBase(parent, wxID_ANY, false) , m_arrayAsCharPtr(false) + , m_sortAsc(true) { m_listTable->AddColumn(_("Name"), 150); m_listTable->AddColumn(_("Value"), 500); m_listTable->AddColumn(_("Type"), 200); m_listTable->AddRoot(_("Locals")); - m_DBG_USERR = DBG_USERR_LOCALS; + m_DBG_USERR = DBG_USERR_LOCALS; m_QUERY_NUM_CHILDS = QUERY_LOCALS_CHILDS; - m_LIST_CHILDS = LIST_LOCALS_CHILDS; - - EventNotifier::Get()->Connect(wxEVT_DEBUGGER_FRAME_SELECTED, clCommandEventHandler(LocalsTable::OnStackSelected), NULL, this); -} + m_LIST_CHILDS = LIST_LOCALS_CHILDS; -LocalsTable::~LocalsTable() -{ + EventNotifier::Get()->Connect( + wxEVT_DEBUGGER_FRAME_SELECTED, clCommandEventHandler(LocalsTable::OnStackSelected), NULL, this); } -void LocalsTable::UpdateLocals(const LocalVariables& locals) -{ - DoUpdateLocals(locals, DbgTreeItemData::Locals); -} +LocalsTable::~LocalsTable() {} -void LocalsTable::UpdateFuncArgs(const LocalVariables& args) -{ - DoUpdateLocals(args, DbgTreeItemData::FuncArgs); -} +void LocalsTable::UpdateLocals(const LocalVariables& locals) { DoUpdateLocals(locals, DbgTreeItemData::Locals); } + +void LocalsTable::UpdateFuncArgs(const LocalVariables& args) { DoUpdateLocals(args, DbgTreeItemData::FuncArgs); } void LocalsTable::Initialize() { @@ -79,10 +74,10 @@ DebuggerConfigTool::Get()->ReadObject(wxT("DebuggerCommands"), &data); DebuggerInformation info; - IDebugger *dbgr = DebuggerMgr::Get().GetActiveDebugger(); + IDebugger* dbgr = DebuggerMgr::Get().GetActiveDebugger(); if(dbgr) { DebuggerMgr::Get().GetDebuggerInformation(dbgr->GetName(), info); - m_resolveLocals = info.resolveLocals; + m_resolveLocals = info.resolveLocals; m_arrayAsCharPtr = info.charArrAsPtr; } @@ -94,27 +89,25 @@ { wxString expr = event.m_expression; std::map::iterator iter = m_createVarItemId.find(expr); - if( iter != m_createVarItemId.end() ) { + if(iter != m_createVarItemId.end()) { // set the variable object DbgTreeItemData* data = static_cast(m_listTable->GetItemData(iter->second)); if(data) { data->_gdbId = event.m_variableObject.gdbId; - data->_kind = DbgTreeItemData::VariableObject; + data->_kind = DbgTreeItemData::VariableObject; // variable object's type name is extracted from the event.m_variableObject.typeName m_listTable->SetItemText(iter->second, 2, event.m_variableObject.typeName); // refresh this item only - IDebugger *dbgr = DoGetDebugger(); - if(dbgr) - DoRefreshItem(dbgr, iter->second, false); + IDebugger* dbgr = DoGetDebugger(); + if(dbgr) DoRefreshItem(dbgr, iter->second, false); dbgr->UpdateVariableObject(data->_gdbId, m_DBG_USERR); dbgr->ListChildren(data->_gdbId, m_LIST_CHILDS); m_listChildItemId[data->_gdbId] = iter->second; - } m_createVarItemId.erase(iter); } @@ -124,19 +117,17 @@ { wxString gdbId = event.m_expression; std::map::iterator iter = m_listChildItemId.find(gdbId); - if(iter == m_listChildItemId.end()) - return; + if(iter == m_listChildItemId.end()) return; wxTreeItemId item = iter->second; m_listChildItemId.erase(iter); if(event.m_userReason == m_LIST_CHILDS) { if(event.m_varObjChildren.empty() == false) { - for(size_t i=0; i_gdbId = ch.gdbId; + DbgTreeItemData* data = new DbgTreeItemData(); + data->_gdbId = ch.gdbId; data->_isFake = ch.isAFake; wxTreeItemId child = m_listTable->AppendItem(item, ch.varName, -1, -1, data); @@ -163,7 +154,6 @@ dbgr->EvaluateVariableObject(data->_gdbId, m_DBG_USERR); // ask the value for this node m_gdbIdToTreeId[data->_gdbId] = child; - } } } @@ -175,8 +165,8 @@ VariableObjectUpdateInfo updateInfo = event.m_varObjUpdateInfo; // remove all obsolete items - for(size_t i=0; iGetFirstChild(event.GetItem(), cookie); - IDebugger *dbgr = DoGetDebugger(); + IDebugger* dbgr = DoGetDebugger(); if(!dbgr || !event.GetItem()) { // dont allow the expansion of this item event.Veto(); @@ -209,7 +199,7 @@ // make sure there is no node and continue wxTreeItemIdValue cookieOne; wxTreeItemId dummyItem = m_listTable->GetFirstChild(event.GetItem(), cookieOne); - while( dummyItem.IsOk() ) { + while(dummyItem.IsOk()) { if(m_listTable->GetItemText(dummyItem) == wxT("")) { m_listTable->Delete(dummyItem); event.Skip(); @@ -218,7 +208,7 @@ dummyItem = m_listTable->GetNextChild(event.GetItem(), cookieOne); } - } else if (child.IsOk() && m_listTable->GetItemText(child) == wxT("")) { + } else if(child.IsOk() && m_listTable->GetItemText(child) == wxT("")) { // a dummy node, replace it with the real node content m_listTable->Delete(child); @@ -233,7 +223,7 @@ // first time // create a variable object wxString expres = m_listTable->GetItemText(event.GetItem()); - DbgTreeItemData *data = (DbgTreeItemData *)m_listTable->GetItemData(event.GetItem()); + DbgTreeItemData* data = (DbgTreeItemData*)m_listTable->GetItemData(event.GetItem()); if(data && data->_kind == DbgTreeItemData::FuncRetValue) { expres = data->_retValueGdbValue; } @@ -246,38 +236,48 @@ } } -void LocalsTable::DoClearNonVariableObjectEntries(wxArrayString& itemsNotRemoved, size_t flags, std::map &oldValues) +void LocalsTable::DoClearNonVariableObjectEntries(wxArrayString& itemsNotRemoved, + size_t flags, + std::map& oldValues) { wxTreeItemIdValue cookie; std::vector itemsToRemove; wxTreeItemId item = m_listTable->GetFirstChild(m_listTable->GetRootItem(), cookie); - while( item.IsOk() ) { + while(item.IsOk()) { wxString gdbId = DoGetGdbId(item); if(gdbId.IsEmpty()) { - DbgTreeItemData* data = static_cast( m_listTable->GetItemData(item) ); + DbgTreeItemData* data = static_cast(m_listTable->GetItemData(item)); if(data && (data->_kind & flags)) { // not a variable object entry, remove it itemsToRemove.push_back(item); } } else { - itemsNotRemoved.Add( m_listTable->GetItemText(item) ); + itemsNotRemoved.Add(m_listTable->GetItemText(item)); } item = m_listTable->GetNextChild(m_listTable->GetRootItem(), cookie); } - for(size_t i=0; iGetItemText(itemsToRemove[i])] = m_listTable->GetItemText(itemsToRemove[i], 1); - m_listTable->Delete( itemsToRemove[i] ); + m_listTable->Delete(itemsToRemove[i]); } } -void LocalsTable::DoUpdateLocals(const LocalVariables& locals, size_t kind) +void LocalsTable::DoUpdateLocals(const LocalVariables& localsUnSorted, size_t kind) { + LocalVariables locals = localsUnSorted; + std::sort(locals.begin(), locals.end(), [&](const LocalVariable& v1, const LocalVariable& v2) { + if(m_sortAsc) { + return v1.name.Lower().CmpNoCase(v2.name.Lower()) < 0; + } else { + return v1.name.Lower().CmpNoCase(v2.name.Lower()) >= 0; + } + }); + wxTreeItemId root = m_listTable->GetRootItem(); - if(!root.IsOk()) - return; + if(!root.IsOk()) return; wxColour rootItemColour = DrawingUtils::LightColour(wxT("LIGHT GRAY"), 3.0); @@ -288,7 +288,7 @@ std::map oldValues; DoClearNonVariableObjectEntries(itemsNotRemoved, kind, oldValues); - for(size_t i=0; i_kind = DbgTreeItemData::VariableObject; wxTreeItemId item = m_listTable->AppendItem(root, newVarName, -1, -1, data); - //m_listTable->SetItemBackgroundColour(item, rootItemColour); - + // m_listTable->SetItemBackgroundColour(item, rootItemColour); m_listTable->AppendItem(item, wxT("")); m_listTable->Collapse(item); @@ -350,7 +348,7 @@ if(itemsNotRemoved.Index(locals[i].name) == wxNOT_FOUND) { // New entry wxTreeItemId item = m_listTable->AppendItem(root, locals[i].name, -1, -1, new DbgTreeItemData()); - //m_listTable->SetItemTextColour(item, DrawingUtils::GetMenuTextColour()); + // m_listTable->SetItemTextColour(item, DrawingUtils::GetMenuTextColour()); m_listTable->SetItemText(item, 1, locals[i].value); m_listTable->SetItemText(item, 2, locals[i].type); @@ -362,23 +360,19 @@ m_listTable->AppendItem(item, wxT("")); m_listTable->Collapse(item); - } - } } } void LocalsTable::UpdateFrameInfo() { - if(ManagerST::Get()->DbgGetCurrentFrameInfo().IsValid() && ManagerST::Get()->DbgGetCurrentFrameInfo() != m_curStackInfo) { + if(ManagerST::Get()->DbgGetCurrentFrameInfo().IsValid() && + ManagerST::Get()->DbgGetCurrentFrameInfo() != m_curStackInfo) { Clear(); m_curStackInfo = ManagerST::Get()->DbgGetCurrentFrameInfo(); - clMainFrame::Get()->GetDebuggerPane()->GetDebugWindow()->AppendLine( - wxString::Format(_("Current scope is now set to: \"%s\", depth: %d\n"), - m_curStackInfo.func.c_str(), - m_curStackInfo.depth) - ); + clMainFrame::Get()->GetDebuggerPane()->GetDebugWindow()->AppendLine(wxString::Format( + _("Current scope is now set to: \"%s\", depth: %d\n"), m_curStackInfo.func.c_str(), m_curStackInfo.depth)); } } @@ -391,56 +385,50 @@ } } -void LocalsTable::OnRefreshUI(wxUpdateUIEvent& event) -{ - event.Enable(DoGetDebugger() != NULL); -} +void LocalsTable::OnRefreshUI(wxUpdateUIEvent& event) { event.Enable(DoGetDebugger() != NULL); } void LocalsTable::OnItemRightClick(wxTreeEvent& event) { wxMenu menu; menu.Append(XRCID("Change_Value"), _("Change value..."), wxT(""), wxITEM_NORMAL); - PopupMenu( &menu ); + PopupMenu(&menu); } void LocalsTable::OnEditValue(wxCommandEvent& event) { wxTreeItemId selectedItem = m_listTable->GetSelection(); - if(selectedItem.IsOk() == false) - return; + if(selectedItem.IsOk() == false) return; wxString itemPath = GetItemPath(selectedItem); - wxString newValue = wxGetTextFromUser(wxString::Format(_("Insert new value for '%s':"), itemPath.c_str()), - _("Edit expression")); - if(newValue.IsEmpty()) - return; + wxString newValue = + wxGetTextFromUser(wxString::Format(_("Insert new value for '%s':"), itemPath.c_str()), _("Edit expression")); + if(newValue.IsEmpty()) return; - IDebugger *debugger = DoGetDebugger(); + IDebugger* debugger = DoGetDebugger(); if(debugger) { debugger->AssignValue(itemPath, newValue); // refresh the item - DbgTreeItemData* data = (DbgTreeItemData*) m_listTable->GetItemData(selectedItem); + DbgTreeItemData* data = (DbgTreeItemData*)m_listTable->GetItemData(selectedItem); if(data && data->_gdbId.IsEmpty()) { m_listTable->Delete(selectedItem); debugger->QueryLocals(); } else { debugger->UpdateVariableObject(data->_gdbId, m_DBG_USERR); - } } } void LocalsTable::OnEditValueUI(wxUpdateUIEvent& event) { - IDebugger *debugger = DoGetDebugger(); + IDebugger* debugger = DoGetDebugger(); wxTreeItemId selectedItem = m_listTable->GetSelection(); if(selectedItem.IsOk() == false) { event.Enable(false); } else { - DbgTreeItemData *data = (DbgTreeItemData*) m_listTable->GetItemData(selectedItem); + DbgTreeItemData* data = (DbgTreeItemData*)m_listTable->GetItemData(selectedItem); event.Enable(debugger && data && (data->_gdbId.IsEmpty() || !data->_isFake)); } } @@ -448,8 +436,7 @@ void LocalsTable::UpdateFuncReturnValue(const wxString& retValueGdbId) { wxTreeItemId root = m_listTable->GetRootItem(); - if(!root.IsOk()) - return; + if(!root.IsOk()) return; wxColour rootItemColour = DrawingUtils::LightColour(wxT("LIGHT GRAY"), 3.0); @@ -462,9 +449,8 @@ } m_listTable->Delete(item); - - DbgTreeItemData *data = new DbgTreeItemData(); - data->_kind = DbgTreeItemData::FuncRetValue; + DbgTreeItemData* data = new DbgTreeItemData(); + data->_kind = DbgTreeItemData::FuncRetValue; data->_retValueGdbValue = retValueGdbId; item = m_listTable->AppendItem(root, wxT("Function Returned"), -1, -1, data); @@ -482,14 +468,20 @@ evt.SetItem(item); OnItemExpanding(evt); } - -void LocalsTable::OnStackSelected(clCommandEvent& event) + +void LocalsTable::OnStackSelected(clCommandEvent& event) { event.Skip(); Clear(); - IDebugger *dbgr = DebuggerMgr::Get().GetActiveDebugger(); - if ( dbgr && dbgr->IsRunning() ) { + IDebugger* dbgr = DebuggerMgr::Get().GetActiveDebugger(); + if(dbgr && dbgr->IsRunning() && ManagerST::Get()->IsDebuggerViewVisible(DebuggerPane::LOCALS)) { dbgr->QueryLocals(); - dbgr->QueryFileLine(); - } -} + } +} + +void LocalsTable::OnSortItems(wxCommandEvent& event) +{ + // Change the sorting type and refresh the view + m_sortAsc = !m_sortAsc; + OnRefresh(event); +} diff -Nru codelite-8.0.1+dfsg2/LiteEditor/localstable.h codelite-9.0+dfsg/LiteEditor/localstable.h --- codelite-8.0.1+dfsg2/LiteEditor/localstable.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/localstable.h 2015-10-11 13:56:07.000000000 +0000 @@ -32,55 +32,60 @@ #include "debuggersettings.h" #include "cl_command_event.h" -#define LIST_LOCALS_CHILDS 600 -#define QUERY_LOCALS_CHILDS 601 +#define LIST_LOCALS_CHILDS 600 +#define QUERY_LOCALS_CHILDS 601 #define QUERY_LOCALS_CHILDS_FAKE_NODE 602 class LocalsTable : public DebuggerTreeListCtrlBase { - +protected: DebuggerPreDefinedTypes m_preDefTypes; - bool m_resolveLocals; - bool m_arrayAsCharPtr; + bool m_resolveLocals; + bool m_arrayAsCharPtr; + bool m_sortAsc; protected: - void DoClearNonVariableObjectEntries(wxArrayString& itemsNotRemoved, size_t flags, std::map &oldValues); - void DoUpdateLocals (const LocalVariables& locals, size_t kind); + void DoClearNonVariableObjectEntries(wxArrayString& itemsNotRemoved, + size_t flags, + std::map& oldValues); + void DoUpdateLocals(const LocalVariables& locals, size_t kind); + + // Events + void OnItemExpanding(wxTreeEvent& event); + void OnRefresh(wxCommandEvent& event); + void OnRefreshUI(wxUpdateUIEvent& event); + void OnItemRightClick(wxTreeEvent& event); + void OnEditValue(wxCommandEvent& event); + void OnEditValueUI(wxUpdateUIEvent& event); + void OnStackSelected(clCommandEvent& event); + void OnSortItems(wxCommandEvent& event); + +public: + LocalsTable(wxWindow* parent); + virtual ~LocalsTable(); + +public: + /** + * @brief callback to IDebugger::CreateVariableObject + * @param event + */ + void OnCreateVariableObj(const DebuggerEventData& event); + /** + * @brief callback to IDebugger::ListChildren + */ + void OnListChildren(const DebuggerEventData& event); + /** + * @brief called to IDEbugger::UpdateVariableObject + */ + void OnVariableObjUpdate(const DebuggerEventData& event); + + void UpdateLocals(const LocalVariables& locals); + void UpdateFrameInfo(); + + void UpdateFuncArgs(const LocalVariables& args); + void UpdateFuncReturnValue(const wxString& retValueGdbId); + void Initialize(); - // Events - void OnItemExpanding (wxTreeEvent& event); - void OnRefresh (wxCommandEvent& event); - void OnRefreshUI (wxUpdateUIEvent& event); - void OnItemRightClick(wxTreeEvent& event); - void OnEditValue (wxCommandEvent &event); - void OnEditValueUI (wxUpdateUIEvent &event); - void OnStackSelected (clCommandEvent &event); -public: - LocalsTable(wxWindow *parent); - virtual ~LocalsTable(); - -public: - /** - * @brief callback to IDebugger::CreateVariableObject - * @param event - */ - void OnCreateVariableObj (const DebuggerEventData& event); - /** - * @brief callback to IDebugger::ListChildren - */ - void OnListChildren (const DebuggerEventData& event); - /** - * @brief called to IDEbugger::UpdateVariableObject - */ - void OnVariableObjUpdate (const DebuggerEventData& event); - - void UpdateLocals (const LocalVariables& locals); - void UpdateFrameInfo(); - - void UpdateFuncArgs (const LocalVariables& args); - void UpdateFuncReturnValue(const wxString& retValueGdbId); - void Initialize (); - - DECLARE_EVENT_TABLE(); -}; + DECLARE_EVENT_TABLE() +}; #endif // __localstable__ diff -Nru codelite-8.0.1+dfsg2/LiteEditor/mainbook.cpp codelite-9.0+dfsg/LiteEditor/mainbook.cpp --- codelite-8.0.1+dfsg2/LiteEditor/mainbook.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/mainbook.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -44,16 +44,8 @@ #include "pluginmanager.h" #include #include "clFileOrFolderDropTarget.h" - -#if CL_USE_NATIVEBOOK -#ifdef __WXGTK20__ -// We need this ugly hack to workaround a gtk2-wxGTK name-clash -// See http://trac.wxwidgets.org/ticket/10883 -#define GSocket GlibGSocket -#include -#undef GSocket -#endif -#endif +#include "NotebookNavigationDlg.h" +#include "clImageViewer.h" MainBook::MainBook(wxWindow* parent) : wxPanel(parent) @@ -79,20 +71,21 @@ m_navBar = new NavBar(this); sz->Add(m_navBar, 0, wxEXPAND); - long style = wxVB_HAS_X | wxVB_MOUSE_MIDDLE_CLOSE_TAB; + long style = kNotebook_AllowDnD | // Allow tabs to move + kNotebook_MouseMiddleClickClosesTab | // Handle mouse middle button when clicked on a tab + kNotebook_MouseMiddleClickFireEvent | // instead of closing the tab, fire an event + kNotebook_ShowFileListButton | // show drop down list of all open tabs + kNotebook_EnableNavigationEvent; // Notify when user hit Ctrl-TAB or Ctrl-PGDN/UP -#if !CL_USE_NATIVEBOOK - style |= wxAUI_NB_WINDOWLIST_BUTTON | wxAUI_NB_SCROLL_BUTTONS; -#endif + if(EditorConfigST::Get()->GetOptions()->IsTabHasXButton()) { + style |= (kNotebook_CloseButtonOnActiveTabFireEvent | kNotebook_CloseButtonOnActiveTab); + } // load the notebook style from the configuration settings - m_book = new Notebook2(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, style); -#if CL_USE_NATIVEBOOK == 0 - m_book->SetArtProvider(new clAuiMainNotebookTabArt(PluginManager::Get())); -#endif + m_book = new Notebook(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, style); wxMenu* contextMenu = wxXmlResource::Get()->LoadMenu(wxT("editor_tab_right_click")); - m_book->SetRightClickMenu(contextMenu); + m_book->SetMenu(contextMenu); sz->Add(m_book, 1, wxEXPAND); m_quickFindBar = new QuickFindBar(this); @@ -102,13 +95,14 @@ void MainBook::ConnectEvents() { - m_book->Connect(wxEVT_COMMAND_BOOK_PAGE_CLOSING, NotebookEventHandler(MainBook::OnPageClosing), NULL, this); - m_book->Connect(wxEVT_COMMAND_BOOK_PAGE_CLOSED, NotebookEventHandler(MainBook::OnPageClosed), NULL, this); - m_book->Connect(wxEVT_COMMAND_BOOK_PAGE_CHANGED, NotebookEventHandler(MainBook::OnPageChanged), NULL, this); - m_book->Connect(wxEVT_COMMAND_BOOK_PAGE_CHANGING, NotebookEventHandler(MainBook::OnPageChanging), NULL, this); - m_book->Connect(wxEVT_COMMAND_BOOK_PAGE_X_CLICKED, NotebookEventHandler(MainBook::OnClosePage), NULL, this); - m_book->Connect(wxEVT_COMMAND_BOOK_PAGE_MIDDLE_CLICKED, NotebookEventHandler(MainBook::OnClosePage), NULL, this); - m_book->Connect(wxEVT_COMMAND_BOOK_BG_DCLICK, NotebookEventHandler(MainBook::OnMouseDClick), NULL, this); + m_book->Bind(wxEVT_BOOK_PAGE_CLOSING, &MainBook::OnPageClosing, this); + m_book->Bind(wxEVT_BOOK_PAGE_CLOSED, &MainBook::OnPageClosed, this); + m_book->Bind(wxEVT_BOOK_PAGE_CHANGED, &MainBook::OnPageChanged, this); + m_book->Bind(wxEVT_BOOK_PAGE_CHANGING, &MainBook::OnPageChanging, this); + m_book->Bind(wxEVT_BOOK_PAGE_CLOSE_BUTTON, &MainBook::OnClosePage, this); + m_book->Bind(wxEVT_BOOK_NAVIGATING, &MainBook::OnNavigating, this); + m_book->Bind(wxEVT_BOOK_TABAREA_DCLICKED, &MainBook::OnMouseDClick, this); + m_book->Bind(wxEVT_BOOK_TAB_DCLICKED, &MainBook::OnTabDClicked, this); EventNotifier::Get()->Connect( wxEVT_WORKSPACE_LOADED, wxCommandEventHandler(MainBook::OnWorkspaceLoaded), NULL, this); @@ -118,21 +112,27 @@ wxEVT_PROJ_FILE_REMOVED, clCommandEventHandler(MainBook::OnProjectFileRemoved), NULL, this); EventNotifier::Get()->Connect( wxEVT_WORKSPACE_CLOSED, wxCommandEventHandler(MainBook::OnWorkspaceClosed), NULL, this); - EventNotifier::Get()->Connect(wxEVT_DEBUG_ENDED, wxCommandEventHandler(MainBook::OnDebugEnded), NULL, this); + EventNotifier::Get()->Bind(wxEVT_DEBUG_ENDED, &MainBook::OnDebugEnded, this); EventNotifier::Get()->Connect(wxEVT_INIT_DONE, wxCommandEventHandler(MainBook::OnInitDone), NULL, this); EventNotifier::Get()->Bind(wxEVT_DETACHED_EDITOR_CLOSED, &MainBook::OnDetachedEditorClosed, this); + EventNotifier::Get()->Bind(wxEVT_CL_THEME_CHANGED, &MainBook::OnThemeChanged, this); + EventNotifier::Get()->Bind(wxEVT_EDITOR_CONFIG_CHANGED, &MainBook::OnEditorSettingsChanged, this); } MainBook::~MainBook() { wxDELETE(m_filesModifiedDlg); - m_book->Disconnect(wxEVT_COMMAND_BOOK_PAGE_CLOSING, NotebookEventHandler(MainBook::OnPageClosing), NULL, this); - m_book->Disconnect(wxEVT_COMMAND_BOOK_PAGE_CLOSED, NotebookEventHandler(MainBook::OnPageClosed), NULL, this); - m_book->Disconnect(wxEVT_COMMAND_BOOK_PAGE_CHANGED, NotebookEventHandler(MainBook::OnPageChanged), NULL, this); - m_book->Disconnect(wxEVT_COMMAND_BOOK_PAGE_X_CLICKED, NotebookEventHandler(MainBook::OnClosePage), NULL, this); - m_book->Disconnect(wxEVT_COMMAND_BOOK_PAGE_MIDDLE_CLICKED, NotebookEventHandler(MainBook::OnClosePage), NULL, this); - m_book->Disconnect(wxEVT_COMMAND_BOOK_BG_DCLICK, NotebookEventHandler(MainBook::OnMouseDClick), NULL, this); + m_book->Unbind(wxEVT_BOOK_PAGE_CLOSING, &MainBook::OnPageClosing, this); + m_book->Unbind(wxEVT_BOOK_PAGE_CLOSED, &MainBook::OnPageClosed, this); + m_book->Unbind(wxEVT_BOOK_PAGE_CHANGED, &MainBook::OnPageChanged, this); + m_book->Unbind(wxEVT_BOOK_PAGE_CHANGING, &MainBook::OnPageChanging, this); + m_book->Unbind(wxEVT_BOOK_PAGE_CLOSE_BUTTON, &MainBook::OnClosePage, this); + m_book->Unbind(wxEVT_BOOK_NAVIGATING, &MainBook::OnNavigating, this); + m_book->Unbind(wxEVT_BOOK_TABAREA_DCLICKED, &MainBook::OnMouseDClick, this); + m_book->Unbind(wxEVT_BOOK_TAB_DCLICKED, &MainBook::OnTabDClicked, this); + + EventNotifier::Get()->Unbind(wxEVT_CL_THEME_CHANGED, &MainBook::OnThemeChanged, this); EventNotifier::Get()->Disconnect( wxEVT_WORKSPACE_LOADED, wxCommandEventHandler(MainBook::OnWorkspaceLoaded), NULL, this); @@ -142,19 +142,20 @@ wxEVT_PROJ_FILE_REMOVED, clCommandEventHandler(MainBook::OnProjectFileRemoved), NULL, this); EventNotifier::Get()->Disconnect( wxEVT_WORKSPACE_CLOSED, wxCommandEventHandler(MainBook::OnWorkspaceClosed), NULL, this); - EventNotifier::Get()->Disconnect(wxEVT_DEBUG_ENDED, wxCommandEventHandler(MainBook::OnDebugEnded), NULL, this); + EventNotifier::Get()->Unbind(wxEVT_DEBUG_ENDED, &MainBook::OnDebugEnded, this); EventNotifier::Get()->Disconnect(wxEVT_INIT_DONE, wxCommandEventHandler(MainBook::OnInitDone), NULL, this); EventNotifier::Get()->Unbind(wxEVT_DETACHED_EDITOR_CLOSED, &MainBook::OnDetachedEditorClosed, this); + EventNotifier::Get()->Unbind(wxEVT_EDITOR_CONFIG_CHANGED, &MainBook::OnEditorSettingsChanged, this); } -void MainBook::OnMouseDClick(NotebookEvent& e) +void MainBook::OnMouseDClick(wxBookCtrlEvent& e) { wxUnusedVar(e); NewEditor(); } -void MainBook::OnPageClosing(NotebookEvent& e) +void MainBook::OnPageClosing(wxBookCtrlEvent& e) { e.Skip(); @@ -168,7 +169,7 @@ } else { - // Unknow type, ask the plugins - maybe they know about this type + // Unknown type, ask the plugins - maybe they know about this type wxNotifyEvent closeEvent(wxEVT_NOTIFY_PAGE_CLOSING); closeEvent.SetClientData(m_book->GetPage(e.GetSelection())); EventNotifier::Get()->ProcessEvent(closeEvent); @@ -178,7 +179,7 @@ } } -void MainBook::OnPageClosed(NotebookEvent& e) +void MainBook::OnPageClosed(wxBookCtrlEvent& e) { e.Skip(); SelectPage(m_book->GetCurrentPage()); @@ -194,6 +195,7 @@ SendCmdEvent(wxEVT_ALL_EDITORS_CLOSED); ShowQuickBar(false); } + DoUpdateNotebookTheme(); } void MainBook::OnProjectFileAdded(clCommandEvent& e) @@ -237,7 +239,7 @@ bool MainBook::AskUserToSave(LEditor* editor) { - if(!editor || !editor->GetModify() || editor->GetFileName().FileExists() == false) return true; + if(!editor || !editor->GetModify()) return true; // unsaved changes wxString msg; @@ -267,13 +269,12 @@ for(size_t i = 0; i < count; i++) { m_recentFiles.RemoveFileFromHistory(0); } - wxArrayString files; - EditorConfigST::Get()->SetRecentItems(files, wxT("RecentFiles")); + clConfig::Get().ClearRecentFiles(); } void MainBook::GetRecentlyOpenedFiles(wxArrayString& files) { - EditorConfigST::Get()->GetRecentItems(files, wxT("RecentFiles")); + files = clConfig::Get().GetRecentFiles(); } void MainBook::UpdateNavBar(LEditor* editor) @@ -319,13 +320,7 @@ editor->LoadMarkersFromArray(ti.GetBookmarks()); editor->LoadCollapsedFoldsFromArray(ti.GetCollapsedFolds()); } - // We can't just use SelectPane() here. - // Notebook::DoPageChangedEvent has posted events to us, - // which have the effect of selecting back to page 0 - // So post ourselves an event, so that it arrives after that one - NotebookEvent event(wxEVT_COMMAND_BOOK_PAGE_CHANGED, GetId()); - event.SetSelection(sel); - m_book->GetEventHandler()->AddPendingEvent(event); + m_book->SetSelection(sel); } LEditor* MainBook::GetActiveEditor(bool includeDetachedEditors) @@ -348,7 +343,17 @@ void MainBook::GetAllTabs(clTab::Vec_t& tabs) { tabs.clear(); - m_book->GetAllTabs(tabs); + clTabInfo::Vec_t tabsInfo; + m_book->GetAllTabs(tabsInfo); + + // Convert into "clTab" array + std::for_each(tabsInfo.begin(), tabsInfo.end(), [&](clTabInfo::Ptr_t tabInfo) { + clTab t; + t.bitmap = tabInfo->GetBitmap(); + t.text = tabInfo->GetLabel(); + t.window = tabInfo->GetWindow(); + tabs.push_back(t); + }); // Go over the tabs, and for each tab that represents a file // populate the filename member @@ -376,22 +381,12 @@ } } else { std::vector windows; -#if !CL_USE_NATIVEBOOK - m_book->GetEditorsInOrder(windows); - for(size_t i = 0; i < windows.size(); i++) { - LEditor* editor = dynamic_cast(windows.at(i)); - if(editor) { - editors.push_back(editor); - } - } -#else for(size_t i = 0; i < m_book->GetPageCount(); i++) { LEditor* editor = dynamic_cast(m_book->GetPage(i)); if(editor) { editors.push_back(editor); } } -#endif } } if((flags & kGetAll_IncludeDetached) || (flags & kGetAll_DetachedOnly)) { @@ -531,11 +526,17 @@ } #endif - if(IsFileExists(fileName) == false) { + if(!IsFileExists(fileName)) { wxLogMessage(wxT("Failed to open: %s: No such file or directory"), fileName.GetFullPath().c_str()); return NULL; } - + + if(FileExtManager::GetType(fileName.GetFullName()) == FileExtManager::TypeBmp) { + // a bitmap file, open it using an image viewer + DoOpenImageViewer(fileName); + return NULL; + } + wxString projName = projectName; if(projName.IsEmpty()) { // try to match a project name to the file. otherwise, CC may not work @@ -566,14 +567,8 @@ editor = new LEditor(m_book); editor->Create(projName, fileName); -// If we're here from 'Swap Header/Implementation file', insert the new page next door -#if !CL_USE_NATIVEBOOK - size_t sel = m_book->GetVisibleEditorIndex(); -#else - size_t sel = (size_t)m_book->GetSelection(); -#endif - - if((extra & OF_PlaceNextToCurrent) && (sel != Notebook::npos)) { + int sel = m_book->GetSelection(); + if((extra & OF_PlaceNextToCurrent) && (sel != wxNOT_FOUND)) { AddPage(editor, fileName.GetFullName(), fileName.GetFullPath(), wxNullBitmap, false, sel + 1); } else { AddPage(editor, fileName.GetFullName(), fileName.GetFullPath()); @@ -612,8 +607,7 @@ editor->SetLineVisible(editor->LineFromPosition(position)); } else if(lineno != wxNOT_FOUND) { - editor->SetEnsureCaretIsVisible(editor->PositionFromLine(lineno), preserveSelection); - editor->SetLineVisible(lineno); + editor->CenterLine(lineno); } if(m_reloadingDoRaise) { @@ -628,9 +622,7 @@ // if it's already on the list, wxFileHistory will move it to the top // Also, sync between the history object and the configuration file m_recentFiles.AddFileToHistory(fileName.GetFullPath()); - wxArrayString files; - m_recentFiles.GetFiles(files); - EditorConfigST::Get()->SetRecentItems(files, wxT("RecentFiles")); + clConfig::Get().AddRecentFile(fileName.GetFullPath()); if(extra & OF_AddJump) { BrowseRecord jumpto = editor->CreateBrowseRecord(); @@ -649,39 +641,23 @@ const wxString& tooltip, const wxBitmap& bmp, bool selected, - size_t insert_at_index /*=wxNOT_FOUND*/) + int insert_at_index /*=wxNOT_FOUND*/) { - if(m_book->GetPageIndex(win) != Notebook::npos) return false; + if(m_book->GetPageIndex(win) != wxNOT_FOUND) return false; long MaxBuffers = clConfig::Get().Read(kConfigMaxOpenedTabs, 15); bool closeLastTab = ((long)(m_book->GetPageCount()) >= MaxBuffers) && GetUseBuffereLimit(); - if((insert_at_index == (size_t)wxNOT_FOUND) || (insert_at_index >= m_book->GetPageCount())) { - -#if CL_USE_NATIVEBOOK - // There seems to be a bug in wxGTK where we can't change - // the selection programtically - int next_pos = m_book->GetPageCount(); -#endif - m_book->AddPage(win, text, closeLastTab ? true : selected, bmp); - -#if CL_USE_NATIVEBOOK - // If the newly added page is expected to be the selected one - // and it is NOT of type IEditor we provide a workaround that - // uses direct gtk calls - bool shouldSelect = (closeLastTab ? true : selected); - IEditor* editor = dynamic_cast(win); - if(shouldSelect && (m_book->GetSelection() != (size_t)next_pos) && !editor) { - // failed to insert the page AND the page is not of type - // IEditor - gtk_widget_show_all(win->m_widget); - m_book->SetSelection(next_pos); - } -#endif + if(insert_at_index == wxNOT_FOUND) { + m_book->AddPage(win, text, selected, bmp); } else { - m_book->InsertPage(insert_at_index, win, text, closeLastTab ? true : selected, bmp); + if(!m_book->InsertPage(insert_at_index, win, text, selected, bmp)) { + // failed to insert, append it + m_book->AddPage(win, text, selected, bmp); + } } if(closeLastTab) { +#if 0 // We have reached the limit of the number of open buffers // Close the last used buffer const wxArrayPtrVoid& arr = m_book->GetHistory(); @@ -690,6 +666,7 @@ wxWindow* tab = static_cast(arr.Item(arr.GetCount() - 1)); ClosePage(tab); } +#endif } #if !CL_USE_NATIVEBOOK @@ -697,17 +674,18 @@ m_book->GetSizer()->Layout(); } #endif - if(!tooltip.IsEmpty()) m_book->SetPageToolTip(m_book->GetPageIndex(win), tooltip); + if(!tooltip.IsEmpty()) { + m_book->SetPageToolTip(m_book->GetPageIndex(win), tooltip); + } return true; } bool MainBook::SelectPage(wxWindow* win) { - size_t index = m_book->GetPageIndex(win); - if(index != Notebook::npos && m_book->GetSelection() != (int)index) { + int index = m_book->GetPageIndex(win); + if(index != wxNOT_FOUND && m_book->GetSelection() != index) { m_book->SetSelection(index); } - return DoSelectPage(win); } @@ -777,7 +755,7 @@ LEditor::Vec_t editors; GetAllEditors(editors, MainBook::kGetAll_IncludeDetached); - time_t workspaceModifiedTimeBefore = WorkspaceST::Get()->GetFileLastModifiedTime(); + time_t workspaceModifiedTimeBefore = clCxxWorkspaceST::Get()->GetFileLastModifiedTime(); // filter list of editors for any whose files have been modified std::vector > files; @@ -831,7 +809,7 @@ } } - time_t workspaceModifiedTimeAfter = WorkspaceST::Get()->GetFileLastModifiedTime(); + time_t workspaceModifiedTimeAfter = clCxxWorkspaceST::Get()->GetFileLastModifiedTime(); if(workspaceModifiedTimeBefore != workspaceModifiedTimeAfter) { // a workspace reload occured between the "Reload Modified Files" and // the "Reload WOrkspace" dialog, cancel this it's not needed anymore @@ -879,8 +857,8 @@ bool MainBook::ClosePage(wxWindow* page) { - size_t pos = m_book->GetPageIndex(page); - return pos != Notebook::npos && m_book->DeletePage(pos); + int pos = m_book->GetPageIndex(page); + return pos != wxNOT_FOUND && m_book->DeletePage(pos); } bool MainBook::CloseAllButThis(wxWindow* page) @@ -889,20 +867,16 @@ clWindowUpdateLocker locker(this); - size_t pos = m_book->GetPageIndex(page); - if(pos != Notebook::npos) { + int pos = m_book->GetPageIndex(page); + if(pos != wxNOT_FOUND) { text = m_book->GetPageText(pos); - m_book->RemovePage(pos, false); + m_book->RemovePage(pos); } + bool res = CloseAll(true); - if(pos != Notebook::npos) { + if(pos != wxNOT_FOUND) { m_book->AddPage(page, text, true); } - -#ifdef __WXMAC__ - m_book->GetSizer()->Layout(); -#endif - return res; } @@ -945,7 +919,7 @@ SendCmdEvent(wxEVT_ALL_EDITORS_CLOSING); m_reloadingDoRaise = false; - m_book->DeleteAllPages(false); + m_book->DeleteAllPages(); m_reloadingDoRaise = true; // Delete all detached editors @@ -980,15 +954,15 @@ wxString MainBook::GetPageTitle(wxWindow* page) const { - size_t selection = m_book->GetPageIndex(page); - if(selection != Notebook::npos) return m_book->GetPageText(selection); + int selection = m_book->GetPageIndex(page); + if(selection != wxNOT_FOUND) return m_book->GetPageText(selection); return wxEmptyString; } void MainBook::SetPageTitle(wxWindow* page, const wxString& name) { - size_t selection = m_book->GetPageIndex(page); - if(selection != Notebook::npos) { + int selection = m_book->GetPageIndex(page); + if(selection != wxNOT_FOUND) { // LEditor *editor = dynamic_cast(page); m_book->SetPageText(selection, name); } @@ -1147,7 +1121,7 @@ clMainFrame::Get()->SendSizeEvent(); } -void MainBook::OnPageChanged(NotebookEvent& e) +void MainBook::OnPageChanged(wxBookCtrlEvent& e) { e.Skip(); int newSel = e.GetSelection(); @@ -1165,11 +1139,47 @@ // Cancel any calltip when switching from the editor editors.at(i)->DoCancelCalltip(); } + DoUpdateNotebookTheme(); +} + +void MainBook::DoUpdateNotebookTheme() +{ + size_t initialStyle = m_book->GetStyle(); + size_t style = m_book->GetStyle(); + if(EditorConfigST::Get()->GetOptions()->IsTabColourMatchesTheme()) { + // Update theme + IEditor* editor = GetActiveEditor(); + if(editor) { + wxColour bgColour = editor->GetCtrl()->StyleGetBackground(0); + if(DrawingUtils::IsDark(bgColour) && !(m_book->GetStyle() & kNotebook_DarkTabs)) { + style &= ~kNotebook_LightTabs; + style |= kNotebook_DarkTabs; + } else if(!DrawingUtils::IsDark(bgColour) && !(m_book->GetStyle() & kNotebook_LightTabs)) { + style &= ~kNotebook_DarkTabs; + style |= kNotebook_LightTabs; + } + } else { + style &= ~kNotebook_DarkTabs; + style |= kNotebook_LightTabs; + } + } else { + style &= ~kNotebook_DarkTabs; + style |= kNotebook_LightTabs; + } + + if(!EditorConfigST::Get()->GetOptions()->IsTabHasXButton()) { + style &= ~(kNotebook_CloseButtonOnActiveTab | kNotebook_CloseButtonOnActiveTabFireEvent); + } else { + style |= (kNotebook_CloseButtonOnActiveTab | kNotebook_CloseButtonOnActiveTabFireEvent); + } + if(initialStyle != style) { + m_book->SetStyle(style); + } } wxWindow* MainBook::GetCurrentPage() { return m_book->GetCurrentPage(); } -void MainBook::OnClosePage(NotebookEvent& e) +void MainBook::OnClosePage(wxBookCtrlEvent& e) { clWindowUpdateLocker locker(this); int where = e.GetSelection(); @@ -1204,32 +1214,11 @@ GetSizer()->Layout(); } -void MainBook::OnDebugEnded(wxCommandEvent& e) -{ - // ManagerST::Get()->GetDebuggerTip()->HideDialog(); - e.Skip(); -} +void MainBook::OnDebugEnded(clDebugEvent& e) { e.Skip(); } -void MainBook::DoHandleFrameMenu(LEditor* editor) -{ - // Incase of no editor or an editor with context other than C++ - // remove the context menu from the main frame - // if(!editor || editor->GetContext()->GetName() != wxT("C++")) { - // int idx = clMainFrame::Get()->GetMenuBar()->FindMenu(wxT("C++")); - // if(idx != wxNOT_FOUND) { - // clMainFrame::Get()->GetMenuBar()->EnableTop(idx, false); - // } - // - // } else if(editor && editor->GetContext()->GetName() == wxT("C++")) { - // - // int idx = clMainFrame::Get()->GetMenuBar()->FindMenu(wxT("C++")); - // if(idx != wxNOT_FOUND) { - // clMainFrame::Get()->GetMenuBar()->EnableTop(idx, true); - // } - // } -} +void MainBook::DoHandleFrameMenu(LEditor* editor) { wxUnusedVar(editor); } -void MainBook::OnPageChanging(NotebookEvent& e) +void MainBook::OnPageChanging(wxBookCtrlEvent& e) { LEditor* editor = GetActiveEditor(); if(editor) { @@ -1354,22 +1343,18 @@ session.SetTabInfoArr(vTabInfoArr); } -void MainBook::ShowTabBar(bool b) -{ - m_book->SetTabCtrlHeight(b ? 30 : 0); - m_book->Refresh(); -} +void MainBook::ShowTabBar(bool b) { wxUnusedVar(b); } void MainBook::CloseTabsToTheRight(wxWindow* win) { wxString text; - //clWindowUpdateLocker locker(this); + // clWindowUpdateLocker locker(this); // Get list of tabs to close std::vector windows; bool currentWinFound(false); - for(size_t i=0; iGetPageCount(); ++i) { + for(size_t i = 0; i < m_book->GetPageCount(); ++i) { if(currentWinFound) { windows.push_back(m_book->GetPage(i)); } else { @@ -1378,7 +1363,7 @@ } } } - + // start from right to left if(windows.empty()) return; @@ -1400,3 +1385,38 @@ m_book->GetSizer()->Layout(); #endif } + +void MainBook::OnNavigating(wxBookCtrlEvent& e) +{ + if(m_book->GetPageCount() == 0) return; + NotebookNavigationDlg dlg(EventNotifier::Get()->TopFrame(), m_book); + if(dlg.ShowModal() == wxID_OK && dlg.GetSelection() != wxNOT_FOUND) { + m_book->SetSelection(dlg.GetSelection()); + } +} + +void MainBook::OnThemeChanged(wxCommandEvent& e) +{ + e.Skip(); + DoUpdateNotebookTheme(); +} + +void MainBook::OnEditorSettingsChanged(wxCommandEvent& e) +{ + e.Skip(); + DoUpdateNotebookTheme(); +} + +void MainBook::OnTabDClicked(wxBookCtrlEvent& e) +{ + e.Skip(); + ManagerST::Get()->TogglePanes(); +} + +void MainBook::DoOpenImageViewer(const wxFileName& filename) +{ + clImageViewer *imageViewer = new clImageViewer(m_book, filename); + size_t pos = m_book->GetPageCount(); + m_book->AddPage(imageViewer, filename.GetFullName(), true); + m_book->SetPageToolTip(pos, filename.GetFullPath()); +} diff -Nru codelite-8.0.1+dfsg2/LiteEditor/mainbook.h codelite-9.0+dfsg/LiteEditor/mainbook.h --- codelite-8.0.1+dfsg2/LiteEditor/mainbook.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/mainbook.h 2015-10-11 13:56:07.000000000 +0000 @@ -30,7 +30,7 @@ #include "sessionmanager.h" #include "navbar.h" #include "quickfindbar.h" -#include "notebook_ex.h" +#include "Notebook.h" #include "filehistory.h" #include "message_pane.h" #include "cl_command_event.h" @@ -45,7 +45,7 @@ private: FileHistory m_recentFiles; NavBar* m_navBar; - Notebook2* m_book; + Notebook* m_book; QuickFindBar* m_quickFindBar; MessagePane* m_messagePane; bool m_useBuffereLimit; @@ -66,21 +66,25 @@ FilesModifiedDlg* GetFilesModifiedDlg(); void CreateGuiControls(); void ConnectEvents(); - - void OnMouseDClick(NotebookEvent& e); - void OnPageClosing(NotebookEvent& e); - void OnPageClosed(NotebookEvent& e); - void OnPageChanged(NotebookEvent& e); - void OnClosePage(NotebookEvent& e); - void OnPageChanging(NotebookEvent& e); + void DoUpdateNotebookTheme(); + void DoOpenImageViewer(const wxFileName& filename); + + void OnMouseDClick(wxBookCtrlEvent& e); + void OnTabDClicked(wxBookCtrlEvent& e); + void OnPageClosing(wxBookCtrlEvent& e); + void OnPageClosed(wxBookCtrlEvent& e); + void OnPageChanged(wxBookCtrlEvent& e); + void OnClosePage(wxBookCtrlEvent& e); + void OnNavigating(wxBookCtrlEvent& e); + void OnPageChanging(wxBookCtrlEvent& e); void OnProjectFileAdded(clCommandEvent& e); void OnProjectFileRemoved(clCommandEvent& e); void OnWorkspaceLoaded(wxCommandEvent& e); void OnWorkspaceClosed(wxCommandEvent& e); - void OnDebugEnded(wxCommandEvent& e); + void OnDebugEnded(clDebugEvent& e); void OnInitDone(wxCommandEvent& e); void OnDetachedEditorClosed(clCommandEvent& e); - + void OnThemeChanged(wxCommandEvent& e); bool AskUserToSave(LEditor* editor); bool DoSelectPage(wxWindow* win); void DoPositionFindBar(int where); @@ -88,6 +92,7 @@ void DoEraseDetachedEditor(IEditor* editor); void OnWorkspaceReloadStarted(clCommandEvent& e); void OnWorkspaceReloadEnded(clCommandEvent& e); + void OnEditorSettingsChanged(wxCommandEvent& e); public: MainBook(wxWindow* parent); @@ -110,7 +115,7 @@ const ButtonDetails& btn2 = ButtonDetails(), const ButtonDetails& btn3 = ButtonDetails(), const CheckboxDetails& cb = CheckboxDetails()); - + void ShowTabBar(bool b); void ShowNavBar(bool s = true); void UpdateNavBar(LEditor* editor); @@ -124,11 +129,11 @@ void CreateSession(SessionEntry& session, wxArrayInt* excludeArr = NULL); LEditor* GetActiveEditor(bool includeDetachedEditors = false); - /** - * @brief return vector of all editors in the notebook. This function only returns instances of type LEditor - * @param editors [output] - * @param flags kGetAll_* - */ + /** + * @brief return vector of all editors in the notebook. This function only returns instances of type LEditor + * @param editors [output] + * @param flags kGetAll_* + */ void GetAllEditors(LEditor::Vec_t& editors, size_t flags); /** * @brief return vector of all tabs in the notebook @@ -161,7 +166,7 @@ const wxString& tooltip = wxEmptyString, const wxBitmap& bmp = wxNullBitmap, bool selected = false, - size_t insert_at_index = wxNOT_FOUND); + int insert_at_index = wxNOT_FOUND); bool SelectPage(wxWindow* win); bool UserSelectFiles(std::vector >& files, diff -Nru codelite-8.0.1+dfsg2/LiteEditor/manager.cpp codelite-9.0+dfsg/LiteEditor/manager.cpp --- codelite-8.0.1+dfsg2/LiteEditor/manager.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/manager.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -80,7 +80,7 @@ #include "threadlistpanel.h" #include "memoryview.h" #include "attachdbgprocdlg.h" -#include "listctrlpanel.h" +#include "DebuggerCallstackView.h" #include "cl_editor.h" #include "custombuildrequest.h" #include "compile_request.h" @@ -98,6 +98,8 @@ #include "code_completion_manager.h" #include "CompileCommandsCreateor.h" #include "CompilersModifiedDlg.h" +#include "clWorkspaceManager.h" +#include "clWorkspaceView.h" #include "clKeyboardManager.h" #include "wxCodeCompletionBoxManager.h" #include "localworkspace.h" @@ -210,9 +212,10 @@ EventNotifier::Get()->Connect(wxEVT_BUILD_STARTING, clBuildEventHandler(Manager::OnBuildStarting), NULL, this); EventNotifier::Get()->Connect(wxEVT_PROJ_RENAMED, clCommandEventHandler(Manager::OnProjectRenamed), NULL, this); EventNotifier::Get()->Connect( - wxEVT_CMD_GET_FIND_IN_FILES_MASK, clCommandEventHandler(Manager::OnGetFindInFilesMask), NULL, this); - EventNotifier::Get()->Connect( wxEVT_CMD_FIND_IN_FILES_DISMISSED, clCommandEventHandler(Manager::OnFindInFilesDismissed), NULL, this); + + // Add new workspace type + clWorkspaceManager::Get().RegisterWorkspace(new clCxxWorkspace()); } Manager::~Manager(void) @@ -226,8 +229,6 @@ EventNotifier::Get()->Disconnect(wxEVT_BUILD_STARTING, clBuildEventHandler(Manager::OnBuildStarting), NULL, this); EventNotifier::Get()->Disconnect(wxEVT_PROJ_RENAMED, clCommandEventHandler(Manager::OnProjectRenamed), NULL, this); EventNotifier::Get()->Disconnect( - wxEVT_CMD_GET_FIND_IN_FILES_MASK, clCommandEventHandler(Manager::OnGetFindInFilesMask), NULL, this); - EventNotifier::Get()->Disconnect( wxEVT_CMD_FIND_IN_FILES_DISMISSED, clCommandEventHandler(Manager::OnFindInFilesDismissed), NULL, this); // stop background processes IDebugger* debugger = DebuggerMgr::Get().GetActiveDebugger(); @@ -251,7 +252,7 @@ ParseThreadST::Free(); // since the parser is making use of the TagsManager, TagsManagerST::Free(); // it is important to release it *before* the TagsManager LanguageST::Free(); - WorkspaceST::Free(); + clCxxWorkspaceST::Free(); ContextManager::Free(); BuildManagerST::Free(); BuildSettingsConfigST::Free(); @@ -272,7 +273,7 @@ //--------------------------- Workspace Loading ----------------------------- -bool Manager::IsWorkspaceOpen() const { return WorkspaceST::Get()->GetName().IsEmpty() == false; } +bool Manager::IsWorkspaceOpen() const { return clCxxWorkspaceST::Get()->GetName().IsEmpty() == false; } void Manager::CreateWorkspace(const wxString& name, const wxString& path) { @@ -281,7 +282,7 @@ ShowWorkspacePane(clMainFrame::Get()->GetWorkspaceTab()->GetCaption()); wxString errMsg; - bool res = WorkspaceST::Get()->CreateWorkspace(name, path, errMsg); + bool res = clCxxWorkspaceST::Get()->CreateWorkspace(name, path, errMsg); if(!res) { wxMessageBox(errMsg, _("Error"), wxOK | wxICON_HAND); return; @@ -296,7 +297,7 @@ CloseWorkspace(); wxString errMsg; - bool res = WorkspaceST::Get()->OpenWorkspace(path, errMsg); + bool res = clCxxWorkspaceST::Get()->OpenWorkspace(path, errMsg); if(!res) { // in case part of the workspace was opened, close the workspace CloseWorkspace(); @@ -314,9 +315,9 @@ if(GetActiveProjectName().IsEmpty()) { // This might happen if a removed faulty project was active wxArrayString list; - WorkspaceST::Get()->GetProjectList(list); + clCxxWorkspaceST::Get()->GetProjectList(list); if(!list.IsEmpty()) { - WorkspaceST::Get()->SetActiveProject(list.Item(0), true); + clCxxWorkspaceST::Get()->SetActiveProject(list.Item(0), true); } } @@ -328,13 +329,13 @@ if(!IsWorkspaceOpen()) return; // Save the current session before re-loading - EventNotifier::Get()->NotifyWorkspaceReloadStartEvet(WorkspaceST::Get()->GetWorkspaceFileName().GetFullPath()); + EventNotifier::Get()->NotifyWorkspaceReloadStartEvet(clCxxWorkspaceST::Get()->GetWorkspaceFileName().GetFullPath()); DbgStop(); - WorkspaceST::Get()->ReloadWorkspace(); - DoSetupWorkspace(WorkspaceST::Get()->GetWorkspaceFileName().GetFullPath()); + clCxxWorkspaceST::Get()->ReloadWorkspace(); + DoSetupWorkspace(clCxxWorkspaceST::Get()->GetWorkspaceFileName().GetFullPath()); - EventNotifier::Get()->NotifyWorkspaceReloadEndEvent(WorkspaceST::Get()->GetWorkspaceFileName().GetFullPath()); + EventNotifier::Get()->NotifyWorkspaceReloadEndEvent(clCxxWorkspaceST::Get()->GetWorkspaceFileName().GetFullPath()); } void Manager::DoSetupWorkspace(const wxString& path) @@ -347,6 +348,9 @@ evtWorkspaceLoaded.SetString(path); EventNotifier::Get()->ProcessEvent(evtWorkspaceLoaded); + // set the C++ workspace as the active one + clWorkspaceManager::Get().SetWorkspace(clCxxWorkspaceST::Get()); + // Update the refactoring cache wxFileList_t allfiles; GetWorkspaceFiles(allfiles, true); @@ -389,7 +393,8 @@ JobQueueSingleton::Instance()->PushJob(new DbContentCacher(this, dbfn.GetFullPath().c_str())); } - // CallAfter( &Manager::GenerateCompileCommands ); + // Ensure that the "C++" view is selected + clGetManager()->GetWorkspaceView()->SelectPage(clCxxWorkspaceST::Get()->GetWorkspaceType()); } void Manager::CloseWorkspace() @@ -407,10 +412,10 @@ // save the current session before closing SessionEntry session; - session.SetWorkspaceName(WorkspaceST::Get()->GetWorkspaceFileName().GetFullPath()); + session.SetWorkspaceName(clCxxWorkspaceST::Get()->GetWorkspaceFileName().GetFullPath()); clMainFrame::Get()->GetMainBook()->SaveSession(session); GetBreakpointsMgr()->SaveSession(session); - SessionManager::Get().Save(WorkspaceST::Get()->GetWorkspaceFileName().GetFullPath(), session); + SessionManager::Get().Save(clCxxWorkspaceST::Get()->GetWorkspaceFileName().GetFullPath(), session); // Delete any breakpoints belong to the current workspace GetBreakpointsMgr()->DelAllBreakpoints(); @@ -422,7 +427,7 @@ // default SessionManager::Get().SetLastSession(wxT("Default")); - WorkspaceST::Get()->CloseWorkspace(); + clCxxWorkspaceST::Get()->CloseWorkspace(); #ifdef __WXMSW__ // Under Windows, and in order to avoid locking the directory set the working directory back to the start up @@ -455,9 +460,7 @@ m_recentWorkspaces.AddFileToHistory(fileName); // sync between the history object and the configuration file - wxArrayString files; - m_recentWorkspaces.GetFiles(files); - EditorConfigST::Get()->SetRecentItems(files, wxT("RecentWorkspaces")); + clConfig::Get().AddRecentWorkspace(fileName); // The above call to AddFileToHistory() rewrote the Recent Workspaces menu // Unfortunately it rewrote it with path/to/foo.workspace, and we'd prefer @@ -471,14 +474,10 @@ for(size_t i = 0; i < count; i++) { m_recentWorkspaces.RemoveFileFromHistory(0); } - wxArrayString files; - EditorConfigST::Get()->SetRecentItems(files, wxT("RecentWorkspaces")); + clConfig::Get().ClearRecentWorkspaces(); } -void Manager::GetRecentlyOpenedWorkspaces(wxArrayString& files) -{ - EditorConfigST::Get()->GetRecentItems(files, wxT("RecentWorkspaces")); -} +void Manager::GetRecentlyOpenedWorkspaces(wxArrayString& files) { files = clConfig::Get().GetRecentWorkspaces(); } //--------------------------- Workspace Projects Mgmt ----------------------------- @@ -490,13 +489,13 @@ } wxString errMsg; - bool res = WorkspaceST::Get()->CreateProject( + bool res = clCxxWorkspaceST::Get()->CreateProject( data.m_name, data.m_path, data.m_srcProject->GetSettings()->GetProjectType(wxEmptyString), false, errMsg); if(!res) { wxMessageBox(errMsg, _("Error"), wxOK | wxICON_HAND); return; } - ProjectPtr proj = WorkspaceST::Get()->FindProjectByName(data.m_name, errMsg); + ProjectPtr proj = clCxxWorkspaceST::Get()->FindProjectByName(data.m_name, errMsg); // copy the project settings to the new one proj->SetSettings(data.m_srcProject->GetSettings()); @@ -504,7 +503,7 @@ proj->SetProjectInternalType(data.m_srcProject->GetProjectInternalType()); // now add the new project to the build matrix - WorkspaceST::Get()->AddProjectToBuildMatrix(proj); + clCxxWorkspaceST::Get()->AddProjectToBuildMatrix(proj); ProjectSettingsPtr settings = proj->GetSettings(); // set the compiler type @@ -585,7 +584,7 @@ } wxString errMsg; - bool res = WorkspaceST::Get()->AddProject(path, errMsg); + bool res = clCxxWorkspaceST::Get()->AddProject(path, errMsg); if(!res) { wxMessageBox(errMsg, _("Error"), wxOK | wxICON_HAND); return; @@ -630,7 +629,7 @@ wxBusyInfo info(_("Importing IDE solution/workspace..."), clMainFrame::Get()); wxString errMsg; - //VcImporter importer(path, defaultCompiler); + // VcImporter importer(path, defaultCompiler); WSImporter importer; importer.Load(path, defaultCompiler); if(importer.Import(errMsg)) { @@ -641,6 +640,8 @@ // Retag workspace wxCommandEvent event(wxEVT_COMMAND_MENU_SELECTED, XRCID("retag_workspace")); clMainFrame::Get()->GetEventHandler()->AddPendingEvent(event); + } else { + wxMessageBox(wxT("Solution/workspace unsupported"), wxMessageBoxCaptionStr, wxOK | wxCENTRE | wxSTAY_ON_TOP); } } @@ -653,7 +654,7 @@ ProjectPtr proj = GetProject(name); wxString errMsg; - bool res = WorkspaceST::Get()->RemoveProject(name, errMsg); + bool res = clCxxWorkspaceST::Get()->RemoveProject(name, errMsg); if(!res) { wxMessageBox(errMsg, _("Error"), wxOK | wxICON_HAND); return false; @@ -686,7 +687,7 @@ return true; } -void Manager::GetProjectList(wxArrayString& list) { WorkspaceST::Get()->GetProjectList(list); } +void Manager::GetProjectList(wxArrayString& list) { clCxxWorkspaceST::Get()->GetProjectList(list); } ProjectPtr Manager::GetProject(const wxString& name) const { @@ -696,7 +697,7 @@ if(projectName.IsEmpty()) return NULL; wxString errMsg; - ProjectPtr proj = WorkspaceST::Get()->FindProjectByName(name, errMsg); + ProjectPtr proj = clCxxWorkspaceST::Get()->FindProjectByName(name, errMsg); if(!proj) { wxLogMessage(errMsg); return NULL; @@ -704,16 +705,16 @@ return proj; } -wxString Manager::GetActiveProjectName() { return WorkspaceST::Get()->GetActiveProjectName(); } +wxString Manager::GetActiveProjectName() { return clCxxWorkspaceST::Get()->GetActiveProjectName(); } void Manager::SetActiveProject(const wxString& name) { - WorkspaceST::Get()->SetActiveProject(WorkspaceST::Get()->GetActiveProjectName(), false); - WorkspaceST::Get()->SetActiveProject(name, true); + clCxxWorkspaceST::Get()->SetActiveProject(clCxxWorkspaceST::Get()->GetActiveProjectName(), false); + clCxxWorkspaceST::Get()->SetActiveProject(name, true); clMainFrame::Get()->SelectBestEnvSet(); // Notify about the change - ProjectPtr activeProject = WorkspaceST::Get()->GetActiveProject(); + ProjectPtr activeProject = clCxxWorkspaceST::Get()->GetActiveProject(); if(activeProject) { clProjectSettingsEvent evt(wxEVT_ACTIVE_PROJECT_CHANGED); evt.SetProjectName(name); @@ -722,11 +723,11 @@ } } -BuildMatrixPtr Manager::GetWorkspaceBuildMatrix() const { return WorkspaceST::Get()->GetBuildMatrix(); } +BuildMatrixPtr Manager::GetWorkspaceBuildMatrix() const { return clCxxWorkspaceST::Get()->GetBuildMatrix(); } void Manager::SetWorkspaceBuildMatrix(BuildMatrixPtr matrix) { - WorkspaceST::Get()->SetBuildMatrix(matrix); + clCxxWorkspaceST::Get()->SetBuildMatrix(matrix); // Notify about the configuration change to the plugins wxCommandEvent e(wxEVT_WORKSPACE_CONFIG_CHANGED); @@ -982,12 +983,12 @@ int Manager::AddVirtualDirectory(const wxString& virtualDirFullPath, bool createIt) { - if(WorkspaceST::Get()->IsVirtualDirectoryExists(virtualDirFullPath)) { + if(clCxxWorkspaceST::Get()->IsVirtualDirectoryExists(virtualDirFullPath)) { return VD_EXISTS; } wxString errMsg; - bool res = WorkspaceST::Get()->CreateVirtualDirectory(virtualDirFullPath, errMsg, createIt); + bool res = clCxxWorkspaceST::Get()->CreateVirtualDirectory(virtualDirFullPath, errMsg, createIt); if(!res) { wxMessageBox(errMsg, _("Error"), wxOK | wxICON_HAND); return VD_ERROR; @@ -999,7 +1000,7 @@ { wxString errMsg; wxString project = virtualDirFullPath.BeforeFirst(wxT(':')); - ProjectPtr p = WorkspaceST::Get()->FindProjectByName(project, errMsg); + ProjectPtr p = clCxxWorkspaceST::Get()->FindProjectByName(project, errMsg); if(!p) { return; } @@ -1014,7 +1015,7 @@ } // and finally, remove the virtual dir from the workspace - bool res = WorkspaceST::Get()->RemoveVirtualDirectory(virtualDirFullPath, errMsg); + bool res = clCxxWorkspaceST::Get()->RemoveVirtualDirectory(virtualDirFullPath, errMsg); if(!res) { wxMessageBox(errMsg, _("Error"), wxOK | wxICON_HAND); return; @@ -1051,7 +1052,7 @@ // Add the file to the project wxString errMsg; - bool res = WorkspaceST::Get()->AddNewFile(vdFullPath, fileName, errMsg); + bool res = clCxxWorkspaceST::Get()->AddNewFile(vdFullPath, fileName, errMsg); if(!res) { // file or virtual dir does not exist return false; @@ -1128,7 +1129,7 @@ } for(i = 0; i < actualAdded.GetCount(); i++) { - Workspace* wsp = WorkspaceST::Get(); + clCxxWorkspace* wsp = clCxxWorkspaceST::Get(); wsp->AddNewFile(vdFullPath, actualAdded.Item(i), errMsg); } @@ -1166,7 +1167,7 @@ clMainFrame::Get()->GetMainBook()->ClosePage(absPath.GetFullPath()); wxString errMsg; - bool res = WorkspaceST::Get()->RemoveFile(vdFullPath, fileName, errMsg); + bool res = clCxxWorkspaceST::Get()->RemoveFile(vdFullPath, fileName, errMsg); if(!res) { wxMessageBox(errMsg, _("Error"), wxOK | wxICON_HAND, clMainFrame::Get()); return false; @@ -1317,14 +1318,14 @@ // remove the file from the source project wxString errMsg; - bool res = WorkspaceST::Get()->RemoveFile(srcVD, fileName, errMsg); + bool res = clCxxWorkspaceST::Get()->RemoveFile(srcVD, fileName, errMsg); if(!res) { wxMessageBox(errMsg, _("Error"), wxOK | wxICON_HAND); return false; } // Add the file to the project - res = WorkspaceST::Get()->AddNewFile(targetVD, fn.GetFullPath(), errMsg); + res = clCxxWorkspaceST::Get()->AddNewFile(targetVD, fn.GetFullPath(), errMsg); if(!res) { // file or virtual dir does not exist return false; @@ -1391,11 +1392,11 @@ wxString fdest = CLRealPath(f); if(fdest != f) { if(caseSensitive) { - if(f.Cmp(fullPathFileName) == 0 || f.Cmp(linkDestination) == 0) { + if(fdest.Cmp(fullPathFileName) == 0 || fdest.Cmp(linkDestination) == 0) { return proj->GetName(); } } else { - if(f.CmpNoCase(fullPathFileName) == 0 || f.CmpNoCase(linkDestination) == 0) { + if(fdest.CmpNoCase(fullPathFileName) == 0 || fdest.CmpNoCase(linkDestination) == 0) { return proj->GetName(); } } @@ -1412,7 +1413,7 @@ wxString Manager::GetProjectCwd(const wxString& project) const { wxString errMsg; - ProjectPtr p = WorkspaceST::Get()->FindProjectByName(project, errMsg); + ProjectPtr p = clCxxWorkspaceST::Get()->FindProjectByName(project, errMsg); if(!p) { return wxGetCwd(); } @@ -1425,7 +1426,7 @@ ProjectSettingsPtr Manager::GetProjectSettings(const wxString& projectName) const { wxString errMsg; - ProjectPtr proj = WorkspaceST::Get()->FindProjectByName(projectName, errMsg); + ProjectPtr proj = clCxxWorkspaceST::Get()->FindProjectByName(projectName, errMsg); if(!proj) { wxLogMessage(errMsg); return NULL; @@ -1437,7 +1438,7 @@ void Manager::SetProjectSettings(const wxString& projectName, ProjectSettingsPtr settings) { wxString errMsg; - ProjectPtr proj = WorkspaceST::Get()->FindProjectByName(projectName, errMsg); + ProjectPtr proj = clCxxWorkspaceST::Get()->FindProjectByName(projectName, errMsg); if(!proj) { wxLogMessage(errMsg); return; @@ -1449,7 +1450,7 @@ void Manager::SetProjectGlobalSettings(const wxString& projectName, BuildConfigCommonPtr settings) { wxString errMsg; - ProjectPtr proj = WorkspaceST::Get()->FindProjectByName(projectName, errMsg); + ProjectPtr proj = clCxxWorkspaceST::Get()->FindProjectByName(projectName, errMsg); if(!proj) { wxLogMessage(errMsg); return; @@ -1460,7 +1461,7 @@ wxString Manager::GetProjectExecutionCommand(const wxString& projectName, wxString& wd, bool considerPauseWhenExecuting) { - BuildConfigPtr bldConf = WorkspaceST::Get()->GetProjBuildConf(projectName, wxEmptyString); + BuildConfigPtr bldConf = clCxxWorkspaceST::Get()->GetProjBuildConf(projectName, wxEmptyString); if(!bldConf) { wxLogMessage(wxT("failed to find project configuration for project '") + projectName + wxT("'")); return wxEmptyString; @@ -1479,7 +1480,7 @@ wd = bldConf->GetWorkingDirectory(); wd = ExpandVariables(wd, GetProject(projectName), clMainFrame::Get()->GetMainBook()->GetActiveEditor()); - wxFileName fnCodeliteTerminal(wxStandardPaths::Get().GetExecutablePath()); + wxFileName fnCodeliteTerminal(clStandardPaths::Get().GetExecutablePath()); fnCodeliteTerminal.SetFullName("codelite-terminal"); wxString title; @@ -1532,7 +1533,7 @@ wxString command; if(bldConf->GetPauseWhenExecEnds()) { wxString ld_lib_path; - wxFileName exePath(wxStandardPaths::Get().GetExecutablePath()); + wxFileName exePath(clStandardPaths::Get().GetExecutablePath()); wxFileName exeWrapper(exePath.GetPath(), wxT("codelite_exec")); if(wxGetEnv(wxT("LD_LIBRARY_PATH"), &ld_lib_path) && ld_lib_path.IsEmpty() == false) { @@ -1609,15 +1610,15 @@ // set the selection to focus win OutputPane* pane = clMainFrame::Get()->GetOutputPane(); - size_t index(Notebook::npos); - for(size_t i = 0; i < pane->GetNotebook()->GetPageCount(); i++) { + int index(wxNOT_FOUND); + for(size_t i = 0; i < pane->GetNotebook()->GetPageCount(); ++i) { if(pane->GetNotebook()->GetPageText(i) == focusWin) { index = i; break; } } - if(index != Notebook::npos && index != (size_t)pane->GetNotebook()->GetSelection()) { + if(index != wxNOT_FOUND && index != pane->GetNotebook()->GetSelection()) { wxWindow* focus = wxWindow::FindFocus(); LEditor* editor = dynamic_cast(focus); pane->GetNotebook()->SetSelection((size_t)index); @@ -1821,21 +1822,7 @@ EventNotifier::Get()->AddPendingEvent(evtDbgRefreshViews); DebuggerPane* pane = clMainFrame::Get()->GetDebuggerPane(); - -#if CL_USE_NATIVEBOOK DoUpdateDebuggerTabControl(pane->GetNotebook()->GetCurrentPage()); -#else - - std::set tabControls = pane->GetNotebook()->GetAllTabControls(); - std::set::iterator iter = tabControls.begin(); - - for(; iter != tabControls.end(); iter++) { - int activePageId = (*iter)->GetActivePage(); - if(activePageId != wxNOT_FOUND) { - DoUpdateDebuggerTabControl((*iter)->GetPage((size_t)activePageId).window); - } - } -#endif } void Manager::DoUpdateDebuggerTabControl(wxWindow* curpage) @@ -1861,9 +1848,7 @@ //-------------------------------------------------------------------- if(curpage == pane->GetLocalsTable() || IsPaneVisible(wxGetTranslation(DebuggerPane::LOCALS))) { - // update the locals tree - pane->GetLocalsTable()->UpdateVariableObjects(); dbgr->QueryLocals(); dbgr->ListRegisters(); } @@ -1911,7 +1896,6 @@ } // Debugger API - void Manager::DbgStart(long attachPid) { // set the working directory to the project directory @@ -1931,7 +1915,7 @@ // Start debugger ( when attachPid != -1 it means we are attaching to process ) // Let the plugin know that we are about to start debugging clDebugEvent dbgEvent(wxEVT_DBG_UI_START); - ProjectPtr activeProject = WorkspaceST::Get()->GetActiveProject(); + ProjectPtr activeProject = clCxxWorkspaceST::Get()->GetActiveProject(); if(activeProject) { dbgEvent.SetProjectName(activeProject->GetName()); BuildConfigPtr buildConfig = activeProject->GetBuildConfiguration(); @@ -2007,10 +1991,10 @@ if(attachPid == wxNOT_FOUND) { // need to debug the current project - proj = WorkspaceST::Get()->FindProjectByName(GetActiveProjectName(), errMsg); + proj = clCxxWorkspaceST::Get()->FindProjectByName(GetActiveProjectName(), errMsg); if(proj) { wxSetWorkingDirectory(proj->GetFileName().GetPath()); - bldConf = WorkspaceST::Get()->GetProjBuildConf(proj->GetName(), wxEmptyString); + bldConf = clCxxWorkspaceST::Get()->GetProjBuildConf(proj->GetName(), wxEmptyString); if(bldConf) { debuggerName = bldConf->GetDebuggerType(); DebuggerMgr::Get().SetActiveDebugger(debuggerName); @@ -2153,9 +2137,13 @@ } // notify plugins that we're about to start debugging - if(SendCmdEvent(wxEVT_DEBUG_STARTING, &startup_info)) - // plugin stopped debugging - return; + { + clDebugEvent eventStarting(wxEVT_DEBUG_STARTING); + eventStarting.SetClientData(&startup_info); + if(EventNotifier::Get()->ProcessEvent(eventStarting)) { + return; + } + } // read wxArrayString dbg_cmds; @@ -2201,7 +2189,11 @@ } // notify plugins that the debugger just started - SendCmdEvent(wxEVT_DEBUG_STARTED, &startup_info); + { + clDebugEvent eventStarted(wxEVT_DEBUG_STARTED); + eventStarted.SetClientData(&startup_info); + EventNotifier::Get()->ProcessEvent(eventStarted); + } // Clear the debugger output window clMainFrame::Get()->GetDebuggerPane()->Clear(); @@ -2311,13 +2303,16 @@ m_dbgCurrentFrameInfo.Clear(); if(!dbgr->IsRunning()) { - // notify plugins that the debugger stopped - SendCmdEvent(wxEVT_DEBUG_ENDED); + clDebugEvent eventEnd(wxEVT_DEBUG_ENDED); + EventNotifier::Get()->ProcessEvent(eventEnd); return; } // notify plugins that the debugger is about to be stopped - SendCmdEvent(wxEVT_DEBUG_ENDING); + { + clDebugEvent eventEnding(wxEVT_DEBUG_ENDING); + EventNotifier::Get()->ProcessEvent(eventEnding); + } if(dbgr->IsRunning()) dbgr->Stop(); @@ -2325,18 +2320,8 @@ DebugMessage(_("Debug session ended\n")); // notify plugins that the debugger stopped - SendCmdEvent(wxEVT_DEBUG_ENDED); - - //#ifndef __WXMSW__ - // while ( true ) { - // int pid = ::waitpid((pid_t)(-1), 0, WNOHANG); - // if ( pid > 0 ) { - // CL_DEBUG("Process %d exited", pid); - // continue; - // } - // break; - // } - //#endif + clDebugEvent eventEnd(wxEVT_DEBUG_ENDED); + EventNotifier::Get()->ProcessEvent(eventEnd); } void Manager::DbgMarkDebuggerLine(const wxString& fileName, int lineno) @@ -2462,7 +2447,9 @@ m_frameLineno = wxNOT_FOUND; } - if(repositionEditor) DbgMarkDebuggerLine(fileName, lineNumber); + if(repositionEditor) { + DbgMarkDebuggerLine(fileName, lineNumber); + } UpdateDebuggerPane(); } @@ -2542,17 +2529,11 @@ } // Print the stack trace - wxAuiPaneInfo& info = clMainFrame::Get()->GetDockingManager().GetPane(wxT("Debugger")); if(showDialog) { // select the "Call Stack" tab clMainFrame::Get()->GetDebuggerPane()->SelectTab(DebuggerPane::FRAMES); } - if(info.IsShown()) { - // Refresh the view - CallAfter(&Manager::UpdateDebuggerPane); - } - if(!userTriggered) { if(dbgr && dbgr->IsRunning()) { dbgr->QueryFileLine(); @@ -2721,8 +2702,8 @@ if(dbgr && dbgr->IsRunning() && IsWorkspaceOpen()) { // we currently do not support this feature when debugging using 'Quick debug' wxString errMsg; - ProjectPtr proj = WorkspaceST::Get()->FindProjectByName(GetActiveProjectName(), errMsg); - BuildConfigPtr bldConf = WorkspaceST::Get()->GetProjBuildConf(proj->GetName(), wxEmptyString); + ProjectPtr proj = clCxxWorkspaceST::Get()->FindProjectByName(GetActiveProjectName(), errMsg); + BuildConfigPtr bldConf = clCxxWorkspaceST::Get()->GetProjBuildConf(proj->GetName(), wxEmptyString); if(bldConf) { wxArrayString dbg_cmds = wxStringTokenize(bldConf->GetDebuggerPostRemoteConnectCmds(), wxT("\n"), wxTOKEN_STRTOK); @@ -2818,7 +2799,7 @@ wxString conf; // get the selected configuration to be built - BuildConfigPtr bldConf = WorkspaceST::Get()->GetProjBuildConf(project, wxEmptyString); + BuildConfigPtr bldConf = clCxxWorkspaceST::Get()->GetProjBuildConf(project, wxEmptyString); if(bldConf) { conf = bldConf->GetName(); } @@ -2852,7 +2833,7 @@ } wxString conf; - BuildConfigPtr bldConf = WorkspaceST::Get()->GetProjBuildConf(projectName, wxEmptyString); + BuildConfigPtr bldConf = clCxxWorkspaceST::Get()->GetProjBuildConf(projectName, wxEmptyString); if(bldConf) { conf = bldConf->GetName(); } @@ -2958,7 +2939,7 @@ for(size_t i = 0; i < projects.GetCount(); i++) { ProjectPtr p = GetProject(projects.Item(i)); - BuildConfigPtr buildConf = WorkspaceST::Get()->GetProjBuildConf(projects.Item(i), wxEmptyString); + BuildConfigPtr buildConf = clCxxWorkspaceST::Get()->GetProjBuildConf(projects.Item(i), wxEmptyString); if(p && buildConf && buildConf->IsProjectEnabled()) { wxArrayString deps = p->GetDependencies(buildConf->GetName()); for(size_t j = 0; j < deps.GetCount(); j++) { @@ -2976,7 +2957,7 @@ // add a build/clean project only command for every project in the optimized list for(size_t i = 0; i < optimizedList.GetCount(); i++) { - BuildConfigPtr buildConf = WorkspaceST::Get()->GetProjBuildConf(optimizedList.Item(i), wxEmptyString); + BuildConfigPtr buildConf = clCxxWorkspaceST::Get()->GetProjBuildConf(optimizedList.Item(i), wxEmptyString); if(buildConf && buildConf->IsProjectEnabled()) { QueueCommand bi(optimizedList.Item(i), buildConf->GetName(), true, cmd); if(buildConf->IsCustomBuild()) { @@ -3241,7 +3222,7 @@ // the codelite_launcher application is located where the codelite executable is // to properly shoutdown codelite. We first need to close the codelite_indexer process restartCodeLiteCommand << wxT("\"") << m_codeliteLauncher.GetFullPath() << wxT("\" ") << wxT(" --name=\"") - << wxStandardPaths::Get().GetExecutablePath() << wxT("\""); + << clStandardPaths::Get().GetExecutablePath() << wxT("\""); wxCommandEvent event(wxEVT_COMMAND_MENU_SELECTED, wxID_EXIT); clMainFrame::Get()->GetEventHandler()->ProcessEvent(event); @@ -3250,7 +3231,7 @@ #elif defined(__WXGTK__) // The Shell is our friend - restartCodeLiteCommand << wxStandardPaths::Get().GetExecutablePath(); + restartCodeLiteCommand << clStandardPaths::Get().GetExecutablePath(); // Restore the original working dir and any paramters for(int i = 1; i < wxTheApp->argc; i++) { @@ -3265,7 +3246,7 @@ #else // OSX // on OSX, we use the open command - wxFileName bundlePath(wxStandardPaths::Get().GetExecutablePath()); + wxFileName bundlePath(clStandardPaths::Get().GetExecutablePath()); bundlePath.RemoveLastDir(); bundlePath.RemoveLastDir(); wxString bundlePathStr = bundlePath.GetPath(); @@ -3367,9 +3348,9 @@ if(IsWorkspaceOpen()) { wxArrayString projects; - WorkspaceST::Get()->GetProjectList(projects); + clCxxWorkspaceST::Get()->GetProjectList(projects); for(size_t i = 0; i < projects.GetCount(); ++i) { - ProjectPtr pProj = WorkspaceST::Get()->GetProject(projects.Item(i)); + ProjectPtr pProj = clCxxWorkspaceST::Get()->GetProject(projects.Item(i)); if(pProj) { wxArrayString compilerIncPaths = pProj->GetIncludePaths(); for(size_t index = 0; index < compilerIncPaths.GetCount(); ++index) { @@ -3543,7 +3524,7 @@ } project = GetActiveProjectName(); - BuildMatrixPtr matrix = WorkspaceST::Get()->GetBuildMatrix(); + BuildMatrixPtr matrix = clCxxWorkspaceST::Get()->GetBuildMatrix(); if(!matrix) { return; } @@ -3560,7 +3541,7 @@ GetActiveProjectAndConf(project, conf); if(project.IsEmpty()) return NULL; - return WorkspaceST::Get()->GetProjBuildConf(project, conf); + return clCxxWorkspaceST::Get()->GetProjBuildConf(project, conf); } void Manager::GetActiveFileProjectFiles(wxArrayString& files) @@ -3615,8 +3596,8 @@ void Manager::GenerateCompileCommands() { - if(WorkspaceST::Get()->IsOpen()) { - CompileCommandsCreateor* job = new CompileCommandsCreateor(WorkspaceST::Get()->GetWorkspaceFileName()); + if(clCxxWorkspaceST::Get()->IsOpen()) { + CompileCommandsCreateor* job = new CompileCommandsCreateor(clCxxWorkspaceST::Get()->GetWorkspaceFileName()); JobQueueSingleton::Instance()->PushJob(job); clMainFrame::Get()->GetStatusBar()->SetMessage(_("Generating compile_commands.json file...")); } @@ -3640,10 +3621,10 @@ // Always Skip it event.Skip(); - if(!WorkspaceST::Get()->IsOpen()) return; + if(!clCxxWorkspaceST::Get()->IsOpen()) return; wxStringSet_t usedCompilers, deletedCompilers; - WorkspaceST::Get()->GetCompilers(usedCompilers); + clCxxWorkspaceST::Get()->GetCompilers(usedCompilers); // Check to see if any of the compilers were deleted wxStringSet_t::iterator iter = usedCompilers.begin(); @@ -3722,28 +3703,15 @@ void Manager::OnProjectRenamed(clCommandEvent& event) { event.Skip(); - if(WorkspaceST::Get()->IsOpen()) { + if(clCxxWorkspaceST::Get()->IsOpen()) { ReloadWorkspace(); } } -void Manager::OnGetFindInFilesMask(clCommandEvent& event) -{ - event.Skip(); - if(WorkspaceST::Get()->IsOpen()) { - wxString findInFilesMask; - LocalWorkspaceST::Get()->GetSearchInFilesMask(findInFilesMask, - "*.c;*.cpp;*.cxx;*.cc;*.h;*.hpp;*.inc;*.mm;*.m;*.xrc;*.xml"); - if(!findInFilesMask.IsEmpty()) { - event.SetString(findInFilesMask); - } - } -} - void Manager::OnFindInFilesDismissed(clCommandEvent& event) { event.Skip(); - if(WorkspaceST::Get()->IsOpen()) { + if(clCxxWorkspaceST::Get()->IsOpen()) { LocalWorkspaceST::Get()->SetSearchInFilesMask(event.GetString()); LocalWorkspaceST::Get()->Flush(); } @@ -3754,3 +3722,19 @@ wxUnusedVar(event); DoRestartCodeLite(); } + +bool Manager::IsDebuggerViewVisible(const wxString& name) +{ + DebuggerPane* debuggerPane = clMainFrame::Get()->GetDebuggerPane(); + if(debuggerPane) { + int sel = debuggerPane->GetNotebook()->GetSelection(); + if(sel != wxNOT_FOUND) { + if(debuggerPane->GetNotebook()->GetPageText(sel) == name) { + return true; + } + } + } + + // Also test if the pane is detached + return IsPaneVisible(name); +} diff -Nru codelite-8.0.1+dfsg2/LiteEditor/manager.h codelite-9.0+dfsg/LiteEditor/manager.h --- codelite-8.0.1+dfsg2/LiteEditor/manager.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/manager.h 2015-10-11 13:56:07.000000000 +0000 @@ -146,7 +146,6 @@ void OnRestart(clCommandEvent& event); void OnCmdRestart(wxCommandEvent& event); void GenerateCompileCommands(); - void OnGetFindInFilesMask(clCommandEvent &event); void OnFindInFilesDismissed(clCommandEvent &event); @@ -708,7 +707,13 @@ * @param conf [output] */ void GetActiveProjectAndConf(wxString& project, wxString& conf); - + /** + * @brief return true if debugger view is visible + * This can be true incase the view is the selected tab in the debuggger pane notebook + * or incase it is detached and visible + */ + bool IsDebuggerViewVisible(const wxString& name); + protected: void DoBuildProject(const QueueCommand& buildInfo); void DoCleanProject(const QueueCommand& buildInfo); diff -Nru codelite-8.0.1+dfsg2/LiteEditor/memoryviewbase.cpp codelite-9.0+dfsg/LiteEditor/memoryviewbase.cpp --- codelite-8.0.1+dfsg2/LiteEditor/memoryviewbase.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/memoryviewbase.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,28 +1,3 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2014 The CodeLite Team -// file name : memoryviewbase.cpp -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - ////////////////////////////////////////////////////////////////////// // This file was auto-generated by codelite's wxCrafter Plugin // wxCrafter project file: memoryviewbase.wxcp @@ -48,10 +23,10 @@ bBitmapLoaded = true; } - bSizer1 = new wxBoxSizer(wxVERTICAL); + wxBoxSizer* bSizer1 = new wxBoxSizer(wxVERTICAL); this->SetSizer(bSizer1); - flexGridSizer6 = new wxFlexGridSizer( 0, 6, 0, 0); + wxFlexGridSizer* flexGridSizer6 = new wxFlexGridSizer(0, 6, 0, 0); flexGridSizer6->SetFlexibleDirection( wxBOTH ); flexGridSizer6->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); flexGridSizer6->AddGrowableCol(1); @@ -64,6 +39,9 @@ m_textCtrlExpression = new wxTextCtrl(this, wxID_ANY, wxT(""), wxDefaultPosition, wxSize(-1, -1), wxTE_PROCESS_ENTER); m_textCtrlExpression->SetToolTip(_("Address or pointer to watch")); + #if wxVERSION_NUMBER >= 3000 + m_textCtrlExpression->SetHint(wxT("")); + #endif flexGridSizer6->Add(m_textCtrlExpression, 1, wxALL|wxEXPAND, 5); @@ -102,7 +80,7 @@ flexGridSizer6->Add(m_choiceCols, 0, wxALL, 5); - bSizer3 = new wxBoxSizer(wxHORIZONTAL); + wxBoxSizer* bSizer3 = new wxBoxSizer(wxHORIZONTAL); bSizer1->Add(bSizer3, 1, wxEXPAND, 5); @@ -119,7 +97,7 @@ bSizer3->Add(m_textCtrlMemory, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND, 5); - bSizer4 = new wxBoxSizer(wxVERTICAL); + wxBoxSizer* bSizer4 = new wxBoxSizer(wxVERTICAL); bSizer3->Add(bSizer4, 0, 0, 5); @@ -134,11 +112,12 @@ bSizer4->Add(m_buttonUpdate, 0, wxALL|wxEXPAND, 5); + SetName(wxT("MemoryViewBase")); SetSizeHints(596,300); if ( GetSizer() ) { GetSizer()->Fit(this); } - Centre(wxBOTH); + CentreOnParent(wxBOTH); // Connect events m_textCtrlExpression->Connect(wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler(MemoryViewBase::OnTextEntered), NULL, this); m_choiceSize->Connect(wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler(MemoryViewBase::OnMemorySize), NULL, this); diff -Nru codelite-8.0.1+dfsg2/LiteEditor/memoryviewbase.h codelite-9.0+dfsg/LiteEditor/memoryviewbase.h --- codelite-8.0.1+dfsg2/LiteEditor/memoryviewbase.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/memoryviewbase.h 2015-10-11 13:56:07.000000000 +0000 @@ -1,36 +1,11 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2014 The CodeLite Team -// file name : memoryviewbase.h -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - ////////////////////////////////////////////////////////////////////// // This file was auto-generated by codelite's wxCrafter Plugin // wxCrafter project file: memoryviewbase.wxcp // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// -#ifndef MEMORYVIEWBASE_BASE_CLASSES_H -#define MEMORYVIEWBASE_BASE_CLASSES_H +#ifndef CODELITE_LITEEDITOR_MEMORYVIEWBASE_BASE_CLASSES_H +#define CODELITE_LITEEDITOR_MEMORYVIEWBASE_BASE_CLASSES_H #include #include @@ -43,21 +18,23 @@ #include #include #include +#if wxVERSION_NUMBER >= 2900 +#include +#include +#include +#include +#endif class MemoryViewBase : public wxPanel { protected: - wxBoxSizer* bSizer1; - wxFlexGridSizer* flexGridSizer6; wxStaticText* m_staticText2; wxTextCtrl* m_textCtrlExpression; wxStaticText* m_staticText1; wxChoice* m_choiceSize; wxStaticText* m_staticText8; wxChoice* m_choiceCols; - wxBoxSizer* bSizer3; wxTextCtrl* m_textCtrlMemory; - wxBoxSizer* bSizer4; wxButton* m_buttonEvaluate; wxButton* m_buttonUpdate; @@ -71,6 +48,15 @@ virtual void OnUpdate(wxCommandEvent& event) { event.Skip(); } public: + wxStaticText* GetStaticText2() { return m_staticText2; } + wxTextCtrl* GetTextCtrlExpression() { return m_textCtrlExpression; } + wxStaticText* GetStaticText1() { return m_staticText1; } + wxChoice* GetChoiceSize() { return m_choiceSize; } + wxStaticText* GetStaticText8() { return m_staticText8; } + wxChoice* GetChoiceCols() { return m_choiceCols; } + wxTextCtrl* GetTextCtrlMemory() { return m_textCtrlMemory; } + wxButton* GetButtonEvaluate() { return m_buttonEvaluate; } + wxButton* GetButtonUpdate() { return m_buttonUpdate; } MemoryViewBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(596,300), long style = wxTAB_TRAVERSAL); virtual ~MemoryViewBase(); }; diff -Nru codelite-8.0.1+dfsg2/LiteEditor/memoryviewbase_liteeditor_bitmaps.cpp codelite-9.0+dfsg/LiteEditor/memoryviewbase_liteeditor_bitmaps.cpp --- codelite-8.0.1+dfsg2/LiteEditor/memoryviewbase_liteeditor_bitmaps.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/memoryviewbase_liteeditor_bitmaps.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,28 +1,3 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2014 The CodeLite Team -// file name : memoryviewbase_liteeditor_bitmaps.cpp -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - // // This file was automatically generated by wxrc, do not edit by hand. // @@ -46,14 +21,13 @@ wxMemoryFSHandler::AddFile(name, data, size) #endif -static size_t xml_res_size_0 = 108; +static size_t xml_res_size_0 = 90; static unsigned char xml_res_file_0[] = { 60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, 110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, 115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, 47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, -47,119,120,120,114,99,34,32,118,101,114,115,105,111,110,61,34,50,46,51, -46,48,46,49,34,47,62,10}; +47,119,120,120,114,99,34,47,62,10}; void wxC5C75InitBitmapResources() { @@ -68,6 +42,6 @@ else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase); } - XRC_ADD_FILE(wxT("XRC_resource/memoryviewbase_liteeditor_bitmaps.cpp$C__src_codelitegit_LiteEditor_memoryviewbase_liteeditor_bitmaps.xrc"), xml_res_file_0, xml_res_size_0, wxT("text/xml")); - wxXmlResource::Get()->Load(wxT("memory:XRC_resource/memoryviewbase_liteeditor_bitmaps.cpp$C__src_codelitegit_LiteEditor_memoryviewbase_liteeditor_bitmaps.xrc")); + XRC_ADD_FILE(wxT("XRC_resource/memoryviewbase_liteeditor_bitmaps.cpp$C__src_codelite_LiteEditor_memoryviewbase_liteeditor_bitmaps.xrc"), xml_res_file_0, xml_res_size_0, wxT("text/xml")); + wxXmlResource::Get()->Load(wxT("memory:XRC_resource/memoryviewbase_liteeditor_bitmaps.cpp$C__src_codelite_LiteEditor_memoryviewbase_liteeditor_bitmaps.xrc")); } diff -Nru codelite-8.0.1+dfsg2/LiteEditor/memoryviewbase.wxcp codelite-9.0+dfsg/LiteEditor/memoryviewbase.wxcp --- codelite-8.0.1+dfsg2/LiteEditor/memoryviewbase.wxcp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/memoryviewbase.wxcp 2015-10-11 13:56:07.000000000 +0000 @@ -1,967 +1,1008 @@ { - "metadata": { - "m_generatedFilesDir": ".", - "m_objCounter": 10, - "m_includeFiles": [], - "m_bitmapFunction": "wxC5C75InitBitmapResources", - "m_bitmapsFile": "memoryviewbase_liteeditor_bitmaps.cpp", - "m_GenerateCodeTypes": 2678125, - "m_outputFileName": "", - "m_firstWindowId": 1000, - "m_useEnum": false, - "m_templateClasses": [] - }, - "windows": [{ - "m_type": 4407, - "proportion": 0, - "border": 0, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": ["wxTAB_TRAVERSAL"], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Size:", - "m_value": "596,300" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "MemoryViewBase" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Title:", - "m_value": "" - }, { - "type": "virtualFolderPicker", - "m_label": "Virtual Folder:", - "m_path": "" - }, { - "type": "choice", - "m_label": "Centre:", - "m_selection": 1, - "m_options": ["", "wxBOTH", "wxVERTICAL", "wxHORIZONTAL"] - }, { - "type": "string", - "m_label": "File:", - "m_value": "memoryview" - }, { - "type": "string", - "m_label": "Inherited Class", - "m_value": "MemoryView" - }, { - "type": "string", - "m_label": "Class Decorator", - "m_value": "" - }], - "m_events": [], - "m_children": [{ - "m_type": 4401, - "proportion": 0, - "border": 0, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "bSizer1" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4403, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "flexGridSizer6" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "# Columns:", - "m_value": "6" - }, { - "type": "string", - "m_label": "# Rows:", - "m_value": "0" - }, { - "type": "string", - "m_label": "Growable columns:", - "m_value": "1" - }, { - "type": "string", - "m_label": "Growable rows:", - "m_value": "" - }, { - "type": "string", - "m_label": "Horizontal gap:", - "m_value": "0" - }, { - "type": "string", - "m_label": "Vertical gap:", - "m_value": "0" - }], - "m_events": [], - "m_children": [{ - "m_type": 4405, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxLEFT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_VERTICAL"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_staticText2" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Label:", - "m_value": "Address:" - }, { - "type": "string", - "m_label": "Wrap:", - "m_value": "-1" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4406, - "proportion": 1, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": ["wxTE_PROCESS_ENTER"], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_textCtrlExpression" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "Address or pointer to watch" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Value:", - "m_value": "" - }, { - "type": "string", - "m_label": "Max Length:", - "m_value": "0" - }, { - "type": "bool", - "m_label": "Auto Complete Directories:", - "m_value": false - }, { - "type": "bool", - "m_label": "Auto Complete Files:", - "m_value": false - }], - "m_events": [{ - "m_eventName": "wxEVT_COMMAND_TEXT_ENTER", - "m_eventClass": "wxCommandEvent", - "m_eventHandler": "wxCommandEventHandler", - "m_functionNameAndSignature": "OnTextEntered(wxCommandEvent& event)", - "m_description": "Respond to a wxEVT_COMMAND_TEXT_ENTER event, generated when enter is pressed in a text control\n(which must have wxTE_PROCESS_ENTER style for this event to be generated)." - }], - "m_children": [] - }, { - "m_type": 4405, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxLEFT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT", "wxALIGN_CENTER_VERTICAL"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_staticText1" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "Memory size to view" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Label:", - "m_value": "Size:" - }, { - "type": "string", - "m_label": "Wrap:", - "m_value": "-1" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4411, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND", "wxALIGN_CENTER_VERTICAL"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_choiceSize" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "Memory size to view" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Choices:", - "m_value": "32;64;128;256;512;1024;2048;4096" - }, { - "type": "string", - "m_label": "Selection:", - "m_value": "0" - }], - "m_events": [{ - "m_eventName": "wxEVT_COMMAND_CHOICE_SELECTED", - "m_eventClass": "wxCommandEvent", - "m_eventHandler": "wxCommandEventHandler", - "m_functionNameAndSignature": "OnMemorySize(wxCommandEvent& event)", - "m_description": "Process a wxEVT_COMMAND_CHOICE_SELECTED event, when an item on the list is selected." - }], - "m_children": [] - }, { - "m_type": 4405, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT", "wxALIGN_CENTER_VERTICAL"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_staticText8" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Label:", - "m_value": "Number of columns:" - }, { - "type": "string", - "m_label": "Wrap:", - "m_value": "-1" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4411, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_choiceCols" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "Number of columns to use per row" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Choices:", - "m_value": "4;8;16;32" - }, { - "type": "string", - "m_label": "Selection:", - "m_value": "2" - }], - "m_events": [{ - "m_eventName": "wxEVT_COMMAND_CHOICE_SELECTED", - "m_eventClass": "wxCommandEvent", - "m_eventHandler": "wxCommandEventHandler", - "m_functionNameAndSignature": "OnNumberOfRows(wxCommandEvent& event)", - "m_description": "Process a wxEVT_COMMAND_CHOICE_SELECTED event, when an item on the list is selected." - }], - "m_children": [] - }] - }, { - "m_type": 4401, - "proportion": 1, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxEXPAND"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "bSizer3" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 1, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4406, - "proportion": 1, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": ["wxTE_RICH2", "wxTE_MULTILINE", "wxTE_DONTWRAP"], - "m_sizerFlags": ["wxLEFT", "wxRIGHT", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_textCtrlMemory" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "wxSYS_ANSI_FIXED_FONT,normal,normal,normal" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Value:", - "m_value": "" - }, { - "type": "string", - "m_label": "Max Length:", - "m_value": "0" - }, { - "type": "bool", - "m_label": "Auto Complete Directories:", - "m_value": false - }, { - "type": "bool", - "m_label": "Auto Complete Files:", - "m_value": false - }], - "m_events": [{ - "m_eventName": "wxEVT_LEFT_DCLICK", - "m_eventClass": "wxMouseEvent", - "m_eventHandler": "wxMouseEventHandler", - "m_functionNameAndSignature": "OnTextDClick(wxMouseEvent& event)", - "m_description": "Process a wxEVT_LEFT_DCLICK event." - }], - "m_children": [] - }, { - "m_type": 4401, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "bSizer4" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4400, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_buttonEvaluate" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "Evaluate the expression in the \"Address\" field" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "Evaluate" - }, { - "type": "bool", - "m_label": "Default Button", - "m_value": true - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File:", - "m_path": "" - }, { - "type": "string", - "m_label": "Margins:", - "m_value": "2,2" - }], - "m_events": [{ - "m_eventName": "wxEVT_COMMAND_BUTTON_CLICKED", - "m_eventClass": "wxCommandEvent", - "m_eventHandler": "wxCommandEventHandler", - "m_functionNameAndSignature": "OnEvaluate(wxCommandEvent& event)", - "m_description": "Process a wxEVT_COMMAND_BUTTON_CLICKED event, when the button is clicked." - }, { - "m_eventName": "wxEVT_UPDATE_UI", - "m_eventClass": "wxUpdateUIEvent", - "m_eventHandler": "wxUpdateUIEventHandler", - "m_functionNameAndSignature": "OnEvaluateUI(wxUpdateUIEvent& event)", - "m_description": "Process a wxEVT_UPDATE_UI event" - }], - "m_children": [] - }, { - "m_type": 4400, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_buttonUpdate" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "Update the memory in the main display area to apply your changes" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "Update" - }, { - "type": "bool", - "m_label": "Default Button", - "m_value": false - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File:", - "m_path": "" - }, { - "type": "string", - "m_label": "Margins:", - "m_value": "2,2" - }], - "m_events": [{ - "m_eventName": "wxEVT_COMMAND_BUTTON_CLICKED", - "m_eventClass": "wxCommandEvent", - "m_eventHandler": "wxCommandEventHandler", - "m_functionNameAndSignature": "OnUpdate(wxCommandEvent& event)", - "m_description": "Process a wxEVT_COMMAND_BUTTON_CLICKED event, when the button is clicked." - }], - "m_children": [] - }] - }] - }] - }] - }] + "metadata": { + "m_generatedFilesDir": ".", + "m_objCounter": 10, + "m_includeFiles": [], + "m_bitmapFunction": "wxC5C75InitBitmapResources", + "m_bitmapsFile": "memoryviewbase_liteeditor_bitmaps.cpp", + "m_GenerateCodeTypes": 2678125, + "m_outputFileName": "", + "m_firstWindowId": 1000, + "m_useEnum": false, + "m_templateClasses": [] + }, + "windows": [{ + "m_type": 4407, + "proportion": 0, + "border": 0, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": ["wxTAB_TRAVERSAL"], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Size:", + "m_value": "596,300" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "MemoryViewBase" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Title:", + "m_value": "" + }, { + "type": "virtualFolderPicker", + "m_label": "Virtual Folder:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Centre:", + "m_selection": 1, + "m_options": ["", "wxBOTH", "wxVERTICAL", "wxHORIZONTAL"] + }, { + "type": "string", + "m_label": "Inherited Class", + "m_value": "MemoryView" + }, { + "type": "string", + "m_label": "File:", + "m_value": "memoryview" + }, { + "type": "string", + "m_label": "Class Decorator", + "m_value": "" + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 0, + "border": 0, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "bSizer1" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4403, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "flexGridSizer6" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "# Columns:", + "m_value": "6" + }, { + "type": "string", + "m_label": "# Rows:", + "m_value": "0" + }, { + "type": "string", + "m_label": "Growable columns:", + "m_value": "1" + }, { + "type": "string", + "m_label": "Growable rows:", + "m_value": "" + }, { + "type": "string", + "m_label": "Horizontal gap:", + "m_value": "0" + }, { + "type": "string", + "m_label": "Vertical gap:", + "m_value": "0" + }], + "m_events": [], + "m_children": [{ + "m_type": 4405, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxLEFT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_VERTICAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_staticText2" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Label:", + "m_value": "Address:" + }, { + "type": "string", + "m_label": "Wrap:", + "m_value": "-1" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4406, + "proportion": 1, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": ["wxTE_PROCESS_ENTER"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_textCtrlExpression" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "Address or pointer to watch" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Value:", + "m_value": "" + }, { + "type": "string", + "m_label": "Text Hint", + "m_value": "" + }, { + "type": "string", + "m_label": "Max Length:", + "m_value": "0" + }, { + "type": "bool", + "m_label": "Auto Complete Directories:", + "m_value": false + }, { + "type": "bool", + "m_label": "Auto Complete Files:", + "m_value": false + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_TEXT_ENTER", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnTextEntered(wxCommandEvent& event)", + "m_description": "Respond to a wxEVT_COMMAND_TEXT_ENTER event, generated when enter is pressed in a text control\n(which must have wxTE_PROCESS_ENTER style for this event to be generated).", + "m_noBody": false + }], + "m_children": [] + }, { + "m_type": 4405, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxLEFT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT", "wxALIGN_CENTER_VERTICAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_staticText1" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "Memory size to view" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Label:", + "m_value": "Size:" + }, { + "type": "string", + "m_label": "Wrap:", + "m_value": "-1" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4411, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND", "wxALIGN_CENTER_VERTICAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_choiceSize" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "Memory size to view" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Choices:", + "m_value": "32;64;128;256;512;1024;2048;4096" + }, { + "type": "string", + "m_label": "Selection:", + "m_value": "0" + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_CHOICE_SELECTED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnMemorySize(wxCommandEvent& event)", + "m_description": "Process a wxEVT_COMMAND_CHOICE_SELECTED event, when an item on the list is selected.", + "m_noBody": false + }], + "m_children": [] + }, { + "m_type": 4405, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT", "wxALIGN_CENTER_VERTICAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_staticText8" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Label:", + "m_value": "Number of columns:" + }, { + "type": "string", + "m_label": "Wrap:", + "m_value": "-1" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4411, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_choiceCols" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "Number of columns to use per row" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Choices:", + "m_value": "4;8;16;32" + }, { + "type": "string", + "m_label": "Selection:", + "m_value": "2" + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_CHOICE_SELECTED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnNumberOfRows(wxCommandEvent& event)", + "m_description": "Process a wxEVT_COMMAND_CHOICE_SELECTED event, when an item on the list is selected.", + "m_noBody": false + }], + "m_children": [] + }] + }, { + "m_type": 4401, + "proportion": 1, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "bSizer3" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 1, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4406, + "proportion": 1, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": ["wxTE_RICH2", "wxTE_MULTILINE", "wxTE_DONTWRAP"], + "m_sizerFlags": ["wxLEFT", "wxRIGHT", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_textCtrlMemory" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "wxSYS_ANSI_FIXED_FONT,normal,normal,normal" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Value:", + "m_value": "" + }, { + "type": "string", + "m_label": "Text Hint", + "m_value": "" + }, { + "type": "string", + "m_label": "Max Length:", + "m_value": "0" + }, { + "type": "bool", + "m_label": "Auto Complete Directories:", + "m_value": false + }, { + "type": "bool", + "m_label": "Auto Complete Files:", + "m_value": false + }], + "m_events": [{ + "m_eventName": "wxEVT_LEFT_DCLICK", + "m_eventClass": "wxMouseEvent", + "m_eventHandler": "wxMouseEventHandler", + "m_functionNameAndSignature": "OnTextDClick(wxMouseEvent& event)", + "m_description": "Process a wxEVT_LEFT_DCLICK event.", + "m_noBody": false + }], + "m_children": [] + }, { + "m_type": 4401, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "bSizer4" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4400, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_buttonEvaluate" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "Evaluate the expression in the \"Address\" field" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Evaluate" + }, { + "type": "bool", + "m_label": "Default Button", + "m_value": true + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Direction", + "m_selection": 0, + "m_options": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"] + }, { + "type": "string", + "m_label": "Margins:", + "m_value": "2,2" + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_BUTTON_CLICKED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnEvaluate(wxCommandEvent& event)", + "m_description": "Process a wxEVT_COMMAND_BUTTON_CLICKED event, when the button is clicked.", + "m_noBody": false + }, { + "m_eventName": "wxEVT_UPDATE_UI", + "m_eventClass": "wxUpdateUIEvent", + "m_eventHandler": "wxUpdateUIEventHandler", + "m_functionNameAndSignature": "OnEvaluateUI(wxUpdateUIEvent& event)", + "m_description": "Process a wxEVT_UPDATE_UI event", + "m_noBody": false + }], + "m_children": [] + }, { + "m_type": 4400, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_buttonUpdate" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "Update the memory in the main display area to apply your changes" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Update" + }, { + "type": "bool", + "m_label": "Default Button", + "m_value": false + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Direction", + "m_selection": 0, + "m_options": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"] + }, { + "type": "string", + "m_label": "Margins:", + "m_value": "2,2" + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_BUTTON_CLICKED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnUpdate(wxCommandEvent& event)", + "m_description": "Process a wxEVT_COMMAND_BUTTON_CLICKED event, when the button is clicked.", + "m_noBody": false + }], + "m_children": [] + }] + }] + }] + }] + }] } \ No newline at end of file diff -Nru codelite-8.0.1+dfsg2/LiteEditor/menu_event_handlers.cpp codelite-9.0+dfsg/LiteEditor/menu_event_handlers.cpp --- codelite-8.0.1+dfsg2/LiteEditor/menu_event_handlers.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/menu_event_handlers.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -213,6 +213,11 @@ } else if ( event.GetId() == wxID_REPLACE ) { editor->DoFindAndReplace(true); + } else if(event.GetId() == XRCID("ID_QUICK_ADD_NEXT")) { + editor->QuickAddNext(); + + } else if(event.GetId() == XRCID("ID_QUICK_FIND_ALL")) { + editor->QuickFindAll(); } } else if ( event.GetId() == wxID_FIND ) { diff -Nru codelite-8.0.1+dfsg2/LiteEditor/menumanager.cpp codelite-9.0+dfsg/LiteEditor/menumanager.cpp --- codelite-8.0.1+dfsg2/LiteEditor/menumanager.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/menumanager.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -54,6 +54,8 @@ PushHandler(new BraceMatchHandler(XRCID("match_brace"))); PushHandler(new FindReplaceHandler(wxID_FIND)); PushHandler(new FindReplaceHandler(wxID_REPLACE)); + PushHandler(new FindReplaceHandler(XRCID("ID_QUICK_ADD_NEXT"))); + PushHandler(new FindReplaceHandler(XRCID("ID_QUICK_FIND_ALL"))); PushHandler(new GotoHandler(XRCID("goto_linenumber"))); PushHandler(new BookmarkHandler(XRCID("toggle_bookmark"))); PushHandler(new BookmarkHandler(XRCID("next_bookmark"))); diff -Nru codelite-8.0.1+dfsg2/LiteEditor/messagepane_base.h codelite-9.0+dfsg/LiteEditor/messagepane_base.h --- codelite-8.0.1+dfsg2/LiteEditor/messagepane_base.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/messagepane_base.h 2015-10-11 13:56:07.000000000 +0000 @@ -4,8 +4,8 @@ // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// -#ifndef MESSAGEPANE_BASE_CLASSES_H -#define MESSAGEPANE_BASE_CLASSES_H +#ifndef CODELITE_LITEEDITOR_MESSAGEPANE_BASE_CLASSES_H +#define CODELITE_LITEEDITOR_MESSAGEPANE_BASE_CLASSES_H #include #include diff -Nru codelite-8.0.1+dfsg2/LiteEditor/messagepane_liteeditor_bitmaps.cpp codelite-9.0+dfsg/LiteEditor/messagepane_liteeditor_bitmaps.cpp --- codelite-8.0.1+dfsg2/LiteEditor/messagepane_liteeditor_bitmaps.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/messagepane_liteeditor_bitmaps.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,47 +1,47 @@ -// -// This file was automatically generated by wxrc, do not edit by hand. -// - -#include - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#include -#include -#include -#include - -#if wxCHECK_VERSION(2,8,5) && wxABI_VERSION >= 20805 - #define XRC_ADD_FILE(name, data, size, mime) \ - wxMemoryFSHandler::AddFileWithMimeType(name, data, size, mime) -#else - #define XRC_ADD_FILE(name, data, size, mime) \ - wxMemoryFSHandler::AddFile(name, data, size) -#endif - -static size_t xml_res_size_0 = 90; -static unsigned char xml_res_file_0[] = { -60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, -110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, -115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, -47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, -47,119,120,120,114,99,34,47,62,10}; - -void wxC2A73InitBitmapResources() -{ - - // Check for memory FS. If not present, load the handler: - { - wxMemoryFSHandler::AddFile(wxT("XRC_resource/dummy_file"), wxT("dummy one")); - wxFileSystem fsys; - wxFSFile *f = fsys.OpenFile(wxT("memory:XRC_resource/dummy_file")); - wxMemoryFSHandler::RemoveFile(wxT("XRC_resource/dummy_file")); - if (f) delete f; - else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase); - } - - XRC_ADD_FILE(wxT("XRC_resource/messagepane_liteeditor_bitmaps.cpp$_home_david_devel_git_CL_LiteEditor_messagepane_liteeditor_bitmaps.xrc"), xml_res_file_0, xml_res_size_0, wxT("text/xml")); - wxXmlResource::Get()->Load(wxT("memory:XRC_resource/messagepane_liteeditor_bitmaps.cpp$_home_david_devel_git_CL_LiteEditor_messagepane_liteeditor_bitmaps.xrc")); -} +// +// This file was automatically generated by wxrc, do not edit by hand. +// + +#include + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +#include +#include +#include +#include + +#if wxCHECK_VERSION(2,8,5) && wxABI_VERSION >= 20805 + #define XRC_ADD_FILE(name, data, size, mime) \ + wxMemoryFSHandler::AddFileWithMimeType(name, data, size, mime) +#else + #define XRC_ADD_FILE(name, data, size, mime) \ + wxMemoryFSHandler::AddFile(name, data, size) +#endif + +static size_t xml_res_size_0 = 90; +static unsigned char xml_res_file_0[] = { +60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, +110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, +115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, +47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, +47,119,120,120,114,99,34,47,62,10}; + +void wxC2A73InitBitmapResources() +{ + + // Check for memory FS. If not present, load the handler: + { + wxMemoryFSHandler::AddFile(wxT("XRC_resource/dummy_file"), wxT("dummy one")); + wxFileSystem fsys; + wxFSFile *f = fsys.OpenFile(wxT("memory:XRC_resource/dummy_file")); + wxMemoryFSHandler::RemoveFile(wxT("XRC_resource/dummy_file")); + if (f) delete f; + else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase); + } + + XRC_ADD_FILE(wxT("XRC_resource/messagepane_liteeditor_bitmaps.cpp$C__src_codelite_LiteEditor_messagepane_liteeditor_bitmaps.xrc"), xml_res_file_0, xml_res_size_0, wxT("text/xml")); + wxXmlResource::Get()->Load(wxT("memory:XRC_resource/messagepane_liteeditor_bitmaps.cpp$C__src_codelite_LiteEditor_messagepane_liteeditor_bitmaps.xrc")); +} diff -Nru codelite-8.0.1+dfsg2/LiteEditor/new_build_tab.cpp codelite-9.0+dfsg/LiteEditor/new_build_tab.cpp --- codelite-8.0.1+dfsg2/LiteEditor/new_build_tab.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/new_build_tab.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -43,23 +43,19 @@ #include "editor_config.h" #include "bitmap_loader.h" #include -#include "notebook_ex.h" +#include "Notebook.h" #include "output_pane.h" #include "macros.h" #include #include "buildtabsettingsdata.h" #include "cl_command_event.h" +#include "ColoursAndFontsManager.h" +#include "lexer_configuration.h" +#include "attribute_style.h" +#include "optionsconfig.h" +#include "editor_config.h" -static size_t BUILD_PANE_WIDTH = 10000; - -static const wxChar* WARNING_MARKER = wxT("@@WARNING@@"); -static const wxChar* ERROR_MARKER = wxT("@@ERROR@@"); -static const wxChar* SUMMARY_MARKER_ERROR = wxT("@@SUMMARY_ERROR@@"); -static const wxChar* SUMMARY_MARKER_WARNING = wxT("@@SUMMARY_WARNING@@"); -static const wxChar* SUMMARY_MARKER_SUCCESS = wxT("@@SUMMARY_SUCCESS@@"); -static const wxChar* SUMMARY_MARKER = wxT("@@SUMMARY@@"); - -#define IS_VALID_LINE(lineNumber) ((lineNumber >= 0 && lineNumber < m_listctrl->GetItemCount())) +#define IS_VALID_LINE(lineNumber) ((lineNumber >= 0 && lineNumber < m_view->GetLineCount())) #ifdef __WXMSW__ #define IS_WINDOWS true #else @@ -76,163 +72,23 @@ wxPostEvent(clMainFrame::Get(), event); } -static void StripBuildMarkders(wxString& s) -{ - s.StartsWith(WARNING_MARKER, &s); - s.StartsWith(ERROR_MARKER, &s); - s.StartsWith(SUMMARY_MARKER, &s); - s.StartsWith(SUMMARY_MARKER_ERROR, &s); - s.StartsWith(SUMMARY_MARKER_SUCCESS, &s); - s.StartsWith(SUMMARY_MARKER_WARNING, &s); -} - -// A renderer for drawing the text -class MyTextRenderer : public wxDataViewCustomRenderer -{ - wxFont m_font; - wxColour m_greyColor; - wxDataViewListCtrl* m_listctrl; - wxColour m_warnFgColor; - wxColour m_errFgColor; - wxVariant m_value; - wxBitmap m_errorBmp; - wxBitmap m_warningBmp; - wxBitmap m_successBmp; - int m_charWidth; - -public: - MyTextRenderer(wxDataViewListCtrl* listctrl) - : m_listctrl(listctrl) - , m_charWidth(12) - { - m_errorBmp = PluginManager::Get()->GetStdIcons()->LoadBitmap(wxT("status/16/error-message")); - m_warningBmp = PluginManager::Get()->GetStdIcons()->LoadBitmap(wxT("status/16/warning-message")); - m_successBmp = PluginManager::Get()->GetStdIcons()->LoadBitmap(wxT("status/16/success-message")); - -#if defined(__WXGTK__) || defined(__WXMAC__) - m_greyColor = wxColour(wxT("GREY")); -#else - m_greyColor = wxColour(wxT("LIGHT GREY")); -#endif - EnableEllipsize(); - } - - virtual ~MyTextRenderer() {} - - virtual wxSize GetSize() const - { - int xx, yy; - wxBitmap bmp(1, 1); - wxMemoryDC dc; - dc.SelectObject(bmp); - - wxString s = m_value.GetString(); - wxFont f = m_font; - dc.GetTextExtent(s, &xx, &yy, NULL, NULL, &f); - - // Adjust the height to fit the bitmap height at least - yy < m_errorBmp.GetHeight() ? yy = m_errorBmp.GetHeight() : yy = yy; - return wxSize(xx, yy); - } - - virtual bool SetValue(const wxVariant& value) - { - m_value = value; - return true; - } - - virtual bool GetValue(wxVariant& value) const - { - value = m_value; - return true; - } - - void SetErrFgColor(const wxColour& errFgColor) { this->m_errFgColor = errFgColor; } - void SetWarnFgColor(const wxColour& warnFgColor) { this->m_warnFgColor = warnFgColor; } - const wxColour& GetErrFgColor() const { return m_errFgColor; } - const wxColour& GetWarnFgColor() const { return m_warnFgColor; } - virtual bool Render(wxRect cell, wxDC* dc, int state) - { - wxVariant v; - GetValue(v); - wxString str = v.GetString(); - str.Trim(); - wxPoint pt = cell.GetTopLeft(); - wxFont f = m_font; - bool isSelected = false; // state & wxDATAVIEW_CELL_SELECTED; - - if(str.StartsWith(ERROR_MARKER, &str)) { - if(!isSelected) { - dc->SetTextForeground(m_errFgColor); - } - - } else if(str.StartsWith(WARNING_MARKER, &str)) { - if(!isSelected) { - dc->SetTextForeground(m_warnFgColor); - } - - } else if(str.StartsWith(SUMMARY_MARKER, &str)) { - f.SetWeight(wxFONTWEIGHT_BOLD); - - } else if(str.StartsWith(wxT("----"))) { - f.SetStyle(wxFONTSTYLE_ITALIC); - if(!isSelected) dc->SetTextForeground(m_greyColor); - - } else if(str.Contains(wxT("Entering directory")) || str.Contains(wxT("Leaving directory"))) { - f.SetStyle(wxFONTSTYLE_ITALIC); - if(!isSelected) dc->SetTextForeground(m_greyColor); - } - - if(str.StartsWith(SUMMARY_MARKER_ERROR, &str)) { - dc->DrawBitmap(m_errorBmp, pt); - pt.x += m_errorBmp.GetWidth() + 2; - str.Prepend(wxT(": ")); - - } else if(str.StartsWith(SUMMARY_MARKER_WARNING, &str)) { - dc->DrawBitmap(m_warningBmp, pt); - pt.x += m_warningBmp.GetWidth() + 2; - str.Prepend(wxT(": ")); - - } else if(str.StartsWith(SUMMARY_MARKER_SUCCESS, &str)) { - dc->DrawBitmap(m_successBmp, pt); - pt.x += m_successBmp.GetWidth() + 2; - str.Prepend(wxT(": ")); - } - - dc->SetFont(f); - - if((str.length() * m_charWidth) > BUILD_PANE_WIDTH) { - size_t newWidth = (BUILD_PANE_WIDTH / m_charWidth) - 1; - str = str.Mid(0, newWidth); - } - - dc->DrawText(str, pt); - return true; - } - void SetFont(const wxFont& font) - { - - this->m_font = font; - - // Calculate a single character width - wxMemoryDC memDc; - wxBitmap bmp(1, 1); - memDc.SelectObject(bmp); - memDc.SetFont(m_font); - wxSize sz = memDc.GetTextExtent("X"); - m_charWidth = sz.x; - } -}; - ////////////////////////////////////////////////////////////// -struct AnnotationInfo { +struct AnnotationInfo +{ int line; LINE_SEVERITY severity; wxString text; }; typedef std::map AnnotationInfoByLineMap_t; +#define LEX_GCC_DEFAULT 0 +#define LEX_GCC_ERROR 1 +#define LEX_GCC_WARNING 2 +#define LEX_GCC_INFO 3 + +#define LEX_GCC_MARKER 1 + NewBuildTab::NewBuildTab(wxWindow* parent) : wxPanel(parent) , m_warnCount(0) @@ -245,57 +101,20 @@ , m_buildInProgress(false) { m_curError = m_errorsAndWarningsList.end(); - wxBoxSizer* bs = new wxBoxSizer(wxHORIZONTAL); + wxBoxSizer* bs = new wxBoxSizer(wxVERTICAL); SetSizer(bs); - // Determine the row height - wxBitmap tmpBmp(1, 1); - wxMemoryDC memDc; - memDc.SelectObject(tmpBmp); - wxFont fnt = DoGetFont(); - int xx, yy; - memDc.GetTextExtent(wxT("Tp"), &xx, &yy, NULL, NULL, &fnt); - int style = wxDV_NO_HEADER | wxDV_MULTIPLE; - - m_listctrl = new wxDataViewListCtrl(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, style); - m_listctrl->Connect( - wxEVT_COMMAND_DATAVIEW_ITEM_CONTEXT_MENU, wxContextMenuEventHandler(NewBuildTab::OnMenu), NULL, this); - - m_listctrl->Connect( - XRCID("copy_all"), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(NewBuildTab::OnCopy), NULL, this); - m_listctrl->Connect( - wxID_COPY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(NewBuildTab::OnCopySelection), NULL, this); - m_listctrl->Connect( - wxID_PASTE, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(NewBuildTab::OnOpenInEditor), NULL, this); - m_listctrl->Connect( - wxID_CLEAR, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(NewBuildTab::OnClear), NULL, this); - - m_listctrl->Connect(XRCID("copy_all"), wxEVT_UPDATE_UI, wxUpdateUIEventHandler(NewBuildTab::OnCopyUI), NULL, this); - m_listctrl->Connect(wxID_COPY, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(NewBuildTab::OnCopySelectionUI), NULL, this); - m_listctrl->Connect(wxID_PASTE, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(NewBuildTab::OnOpenInEditorUI), NULL, this); - m_listctrl->Connect(wxID_CLEAR, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(NewBuildTab::OnClearUI), NULL, this); - - // Make sure we have enought height for the icon - yy < 12 ? yy = 12 : yy = yy; - m_listctrl->SetRowHeight(yy); + m_view = new wxStyledTextCtrl(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxBORDER_NONE); + // We dont really want to collect undo in the output tabs... + InitView(); + m_view->Bind(wxEVT_STC_STYLENEEDED, &NewBuildTab::OnStyleNeeded, this); + m_view->Bind(wxEVT_STC_HOTSPOT_CLICK, &NewBuildTab::OnHotspotClicked, this); + EventNotifier::Get()->Bind(wxEVT_CL_THEME_CHANGED, &NewBuildTab::OnThemeChanged, this); - bs->Add(m_listctrl, 1, wxEXPAND | wxALL); + bs->Add(m_view, 1, wxEXPAND | wxALL); BuildTabTopPanel* toolbox = new BuildTabTopPanel(this); - -#ifdef __WXMAC__ - bs->Add(toolbox, 0, wxEXPAND); -#else bs->Insert(0, toolbox, 0, wxEXPAND); -#endif - - int screenWidth = BUILD_PANE_WIDTH; // use a long screen width to allow long lines - m_textRenderer = new MyTextRenderer(m_listctrl); - - m_listctrl->AppendColumn(new wxDataViewColumn(_("Message"), m_textRenderer, 0, screenWidth, wxALIGN_LEFT)); -#ifdef __WXMSW__ - m_listctrl->AppendTextColumn(""); -#endif EventNotifier::Get()->Connect( wxEVT_SHELL_COMMAND_STARTED, clCommandEventHandler(NewBuildTab::OnBuildStarted), NULL, this); @@ -321,16 +140,11 @@ wxUpdateUIEventHandler(NewBuildTab::OnNextBuildErrorUI), NULL, this); - - m_listctrl->Connect( - wxEVT_COMMAND_DATAVIEW_ITEM_ACTIVATED, wxDataViewEventHandler(NewBuildTab::OnLineSelected), NULL, this); } NewBuildTab::~NewBuildTab() { - m_listctrl->Disconnect( - wxEVT_COMMAND_DATAVIEW_ITEM_CONTEXT_MENU, wxContextMenuEventHandler(NewBuildTab::OnMenu), NULL, this); - + EventNotifier::Get()->Unbind(wxEVT_CL_THEME_CHANGED, &NewBuildTab::OnThemeChanged, this); EventNotifier::Get()->Disconnect( wxEVT_SHELL_COMMAND_STARTED, clCommandEventHandler(NewBuildTab::OnBuildStarted), NULL, this); EventNotifier::Get()->Disconnect( @@ -394,6 +208,23 @@ m_curError = m_errorsAndWarningsList.begin(); CL_DEBUG("Posting wxEVT_BUILD_ENDED event"); + // 0 = first error + // 1 = first error or warning + // 2 = to the end + if(m_buildTabSettings.GetBuildPaneScrollDestination() == ScrollToFirstError && !m_errorsList.empty()) { + BuildLineInfo* bli = m_errorsList.front(); + DoSelectAndOpen(bli->GetLineInBuildTab(), true); + } + + if(m_buildTabSettings.GetBuildPaneScrollDestination() == ScrollToFirstItem && !m_errorsAndWarningsList.empty()) { + BuildLineInfo* bli = m_errorsAndWarningsList.front(); + DoSelectAndOpen(bli->GetLineInBuildTab(), true); + } + + if(m_buildTabSettings.GetBuildPaneScrollDestination() == ScrollToEnd) { + m_view->ScrollToEnd(); + } + // notify the plugins that the build has ended clBuildEvent buildEvent(wxEVT_BUILD_ENDED); buildEvent.SetErrorCount(m_errorCount); @@ -404,6 +235,7 @@ void NewBuildTab::OnBuildStarted(clCommandEvent& e) { e.Skip(); + if(IS_WINDOWS) { m_cygwinRoot.Clear(); EnvSetter es; @@ -421,8 +253,7 @@ // Reload the build settings data EditorConfigST::Get()->ReadObject(wxT("build_tab_settings"), &m_buildTabSettings); - m_textRenderer->SetErrFgColor(m_buildTabSettings.GetErrorColour()); - m_textRenderer->SetWarnFgColor(m_buildTabSettings.GetWarnColour()); + InitView(); m_autoHide = m_buildTabSettings.GetAutoHide(); m_showMe = (BuildTabSettingsData::ShowBuildPane)m_buildTabSettings.GetShowBuildPane(); @@ -437,8 +268,10 @@ OutputPane* opane = clMainFrame::Get()->GetOutputPane(); wxWindow* win(NULL); - size_t sel = opane->GetNotebook()->GetSelection(); - if(sel != Notebook::npos) win = opane->GetNotebook()->GetPage(sel); + int sel = opane->GetNotebook()->GetSelection(); + if(sel != wxNOT_FOUND) { + win = opane->GetNotebook()->GetPage(sel); + } if(m_showMe == BuildTabSettingsData::ShowOnStart) { ManagerST::Get()->ShowOutputPane(OutputPane::BUILD_WIN, true); @@ -454,7 +287,7 @@ BuildEventDetails* bed = dynamic_cast(e.GetClientObject()); if(bed) { BuildConfigPtr buildConfig = - WorkspaceST::Get()->GetProjBuildConf(bed->GetProjectName(), bed->GetConfiguration()); + clCxxWorkspaceST::Get()->GetProjBuildConf(bed->GetProjectName(), bed->GetConfiguration()); if(buildConfig) { m_cmp = buildConfig->GetCompiler(); } @@ -478,19 +311,11 @@ { BuildLineInfo* buildLineInfo = new BuildLineInfo(); - if(isSummaryLine) { + if(line.Lower().Contains("entering directory") || line.Lower().Contains("leaving directory")) { + buildLineInfo->SetSeverity(SV_DIR_CHANGE); + } else if(isSummaryLine) { // Set the severity - if(m_errorCount == 0 && m_warnCount == 0) { - buildLineInfo->SetSeverity(SV_SUCCESS); - - } else if(m_errorCount) { - buildLineInfo->SetSeverity(SV_ERROR); - - } else { - - buildLineInfo->SetSeverity(SV_WARNING); - } - + buildLineInfo->SetSeverity(SV_NONE); } else { // Find *warnings* first @@ -596,7 +421,6 @@ void NewBuildTab::DoClear() { wxFont font = DoGetFont(); - m_textRenderer->SetFont(font); m_buildInterrupted = false; m_directories.Clear(); @@ -608,17 +432,12 @@ m_cmpPatterns.clear(); // Delete all the user data - int count = m_listctrl->GetItemCount(); - for(int i = 0; i < count; i++) { - wxDataViewItem item = m_listctrl->GetStore()->GetItem(i); - if(item.IsOk()) { - BuildLineInfo* bli = (BuildLineInfo*)m_listctrl->GetItemData(item); - if(bli) { - delete bli; - } - } - } - m_listctrl->DeleteAllItems(); + std::for_each(m_viewData.begin(), m_viewData.end(), [&](std::pair p) { delete p.second; }); + m_viewData.clear(); + + m_view->SetEditable(true); + m_view->ClearAll(); + m_view->SetEditable(false); // Clear all markers from open editors std::vector editors; @@ -664,10 +483,7 @@ for(; iter.first != iter.second; ++iter.first) { BuildLineInfo* bli = iter.first->second; - wxString text = m_listctrl->GetTextValue(bli->GetLineInBuildTab(), 0).Trim().Trim(false); - - // strip any build markers - StripBuildMarkders(text); + wxString text = m_view->GetLine(bli->GetLineInBuildTab()).Trim().Trim(false); // remove the line part from the text text = text.Mid(bli->GetRegexLineMatch()); @@ -724,23 +540,18 @@ } } -void NewBuildTab::OnLineSelected(wxDataViewEvent& e) -{ - if(e.GetItem().IsOk()) { - DoSelectAndOpen(e.GetItem()); - } -} - void NewBuildTab::OnWorkspaceClosed(wxCommandEvent& e) { e.Skip(); DoClear(); + InitView(); } void NewBuildTab::OnWorkspaceLoaded(wxCommandEvent& e) { e.Skip(); DoClear(); + InitView(); } void NewBuildTab::DoProcessOutput(bool compilationEnded, bool isSummaryLine) @@ -754,7 +565,7 @@ m_output.Clear(); // Process only completed lines (i.e. a line that ends with '\n') - for(size_t i = 0; i < lines.GetCount(); i++) { + for(size_t i = 0; i < lines.GetCount(); ++i) { if(!compilationEnded && !lines.Item(i).EndsWith(wxT("\n"))) { m_output << lines.Item(i); return; @@ -771,52 +582,46 @@ m_buildInfoPerFile.insert(std::make_pair(buildLineInfo->GetFilename(), buildLineInfo)); } - // Append the line content - - if(buildLineInfo->GetSeverity() == SV_ERROR) { - if(!isSummaryLine) { - buildLine.Prepend(ERROR_MARKER); - } - - } else if(buildLineInfo->GetSeverity() == SV_WARNING) { - if(!isSummaryLine) { - buildLine.Prepend(WARNING_MARKER); - } - } - if(isSummaryLine) { - - // Add a marker for drawing the bitmap - if(m_errorCount) { - buildLine.Prepend(SUMMARY_MARKER_ERROR); - - } else if(m_warnCount) { - buildLine.Prepend(SUMMARY_MARKER_WARNING); - - } else { - buildLine.Prepend(SUMMARY_MARKER_SUCCESS); - } - buildLine.Prepend(SUMMARY_MARKER); + buildLine.Trim(); + buildLine.Prepend("===="); + buildLine.Append("===="); + buildLineInfo->SetSeverity(SV_NONE); } - wxVector data; - data.push_back(wxVariant(buildLine)); -#ifdef __WXMSW__ - data.push_back(wxString()); -#endif - // Keep the line number in the build tab - buildLineInfo->SetLineInBuildTab(m_listctrl->GetItemCount()); - m_listctrl->AppendItem(data, (wxUIntPtr)buildLineInfo); + buildLineInfo->SetLineInBuildTab(m_view->GetLineCount() - 1); // -1 because the view always has 1 extra "\n" + // Store the line info *before* we add the text + // it is needed in the OnStyle function + m_viewData.insert(std::make_pair(buildLineInfo->GetLineInBuildTab(), buildLineInfo)); + + m_view->SetEditable(true); + buildLine.Trim(); + m_view->AppendText(buildLine + "\n"); + m_view->SetEditable(false); if(clConfig::Get().Read(kConfigBuildAutoScroll, true)) { - unsigned int count = m_listctrl->GetStore()->GetItemCount(); - wxDataViewItem lastItem = m_listctrl->GetStore()->GetItem(count - 1); - m_listctrl->EnsureVisible(lastItem); + m_view->ScrollToEnd(); } } } +void NewBuildTab::CenterLineInView(int line) +{ + if(line > m_view->GetLineCount()) return; + int linesOnScreen = m_view->LinesOnScreen(); + // To place our line in the middle, the first visible line should be + // the: line - (linesOnScreen / 2) + int firstVisibleLine = line - (linesOnScreen / 2); + if(firstVisibleLine < 0) { + firstVisibleLine = 0; + } + m_view->EnsureVisible(firstVisibleLine); + m_view->SetFirstVisibleLine(firstVisibleLine); + m_view->ClearSelections(); + m_view->SetCurrentPos(m_view->PositionFromLine(line)); +} + void NewBuildTab::DoToggleWindow() { bool success = m_errorCount == 0 && (m_skipWarnings || m_warnCount == 0); @@ -839,15 +644,7 @@ // Sanity if(bli) { - int line = bli->GetLineInBuildTab(); - if(IS_VALID_LINE(line)) { - // scroll to line of the build tab - wxDataViewItem item = m_listctrl->GetStore()->GetItem(line); - if(item.IsOk()) { - m_listctrl->EnsureVisible(item); - m_listctrl->Select(item); - } - } + CenterLineInView(bli->GetLineInBuildTab()); } } } @@ -884,8 +681,7 @@ // get the wxDataViewItem int line = (*m_curError)->GetLineInBuildTab(); if(IS_VALID_LINE(line)) { - wxDataViewItem item = m_listctrl->GetStore()->GetItem(line); - DoSelectAndOpen(item); + DoSelectAndOpen(line, true); ++m_curError; return; } @@ -899,8 +695,7 @@ } else { int line = (*m_curError)->GetLineInBuildTab(); if(IS_VALID_LINE(line)) { - wxDataViewItem item = m_listctrl->GetStore()->GetItem(line); - DoSelectAndOpen(item); + DoSelectAndOpen(line, true); ++m_curError; } } @@ -911,18 +706,20 @@ e.Enable(!m_errorsAndWarningsList.empty() && !m_buildInProgress); } -bool NewBuildTab::DoSelectAndOpen(const wxDataViewItem& item) +bool NewBuildTab::DoSelectAndOpen(int buildViewLine, bool centerLine) { - if(item.IsOk() == false) return false; - - m_listctrl->UnselectAll(); // Clear any selection - m_listctrl->EnsureVisible(item); - m_listctrl->Select(item); + if(!m_viewData.count(buildViewLine)) { + return false; + } - BuildLineInfo* bli = (BuildLineInfo*)m_listctrl->GetItemData(item); + BuildLineInfo* bli = m_viewData.find(buildViewLine)->second; if(bli) { wxFileName fn(bli->GetFilename()); + // Highlight the clicked line on the view + m_view->MarkerDeleteAll(LEX_GCC_MARKER); + m_view->MarkerAdd(bli->GetLineInBuildTab(), LEX_GCC_MARKER); + if(!fn.IsAbsolute()) { std::vector files; std::vector candidates; @@ -959,17 +756,7 @@ } if(editor) { - // We already got compiler markers set here, just goto the line - clMainFrame::Get()->GetMainBook()->SelectPage(editor); - editor->GotoLine(bli->GetLineNumber()); - - // Convert the compiler column to scintilla's position - if(bli->GetColumn() != wxNOT_FOUND) { - int pos = editor->PositionFromLine(bli->GetLineNumber()); - pos += bli->GetColumn() - 1; - editor->GotoPos(pos); - } - SetActive(editor); + DoCentreErrorLine(bli, editor, centerLine); return true; } } @@ -993,19 +780,7 @@ lineNumber--; } - // We already got compiler markers set here, just goto the line - clMainFrame::Get()->GetMainBook()->SelectPage(editor); - editor->GotoLine(bli->GetLineNumber()); - // Convert the compiler column to scintilla's position - if(bli->GetColumn() != wxNOT_FOUND) { - int pos = editor->PositionFromLine(bli->GetLineNumber()); - pos += bli->GetColumn() - 1; - editor->GotoPos(pos); - } - editor->ScrollToLine(bli->GetLineNumber()); - editor->EnsureVisible(lineNumber); - editor->EnsureCaretVisible(); - SetActive(editor); + DoCentreErrorLine(bli, editor, centerLine); return true; } } @@ -1013,17 +788,7 @@ return false; } -wxString NewBuildTab::GetBuildContent() const -{ - wxString output; - for(int i = 0; i < m_listctrl->GetItemCount(); ++i) { - wxString curline = m_listctrl->GetTextValue(i, 0); - StripBuildMarkders(curline); - curline.Trim(); - output << curline << wxT("\n"); - } - return output; -} +wxString NewBuildTab::GetBuildContent() const { return m_view->GetText(); } wxFont NewBuildTab::DoGetFont() const { @@ -1036,7 +801,7 @@ if(font.IsOk() == false) { font = wxSystemSettings::GetFont(wxSYS_ANSI_FIXED_FONT); } - + // if the user selected a font in the settings, use it instead wxFont userFont = m_buildTabSettings.GetBuildFont(); if(userFont.IsOk()) { @@ -1053,17 +818,9 @@ menu.Append(wxID_PASTE, _("Open Build Output in an Empty Editor")); menu.AppendSeparator(); menu.Append(wxID_CLEAR, _("Clear")); - m_listctrl->PopupMenu(&menu); -} - -void NewBuildTab::OnCopy(wxCommandEvent& e) -{ - wxString content = this->GetBuildContent(); - ::CopyToClipboard(content); + m_view->PopupMenu(&menu); } -void NewBuildTab::OnCopyUI(wxUpdateUIEvent& e) { e.Enable(!m_buildInProgress && m_listctrl->GetItemCount()); } - void NewBuildTab::OnOpenInEditor(wxCommandEvent& e) { wxString content = this->GetBuildContent(); @@ -1073,51 +830,150 @@ } } -void NewBuildTab::OnOpenInEditorUI(wxUpdateUIEvent& e) { e.Enable(!m_buildInProgress && m_listctrl->GetItemCount()); } - +void NewBuildTab::OnOpenInEditorUI(wxUpdateUIEvent& e) { e.Enable(!m_buildInProgress && !m_view->IsEmpty()); } void NewBuildTab::OnClear(wxCommandEvent& e) { Clear(); } void NewBuildTab::OnClearUI(wxUpdateUIEvent& e) { e.Enable(!m_buildInProgress && !IsEmpty()); } -void NewBuildTab::OnCopySelection(wxCommandEvent& e) +void NewBuildTab::ScrollToBottom() { m_view->ScrollToEnd(); } + +void NewBuildTab::AppendLine(const wxString& text) { - wxDataViewItemArray items; - m_listctrl->GetSelections(items); - if(items.IsEmpty()) return; - wxString text; - for(size_t i = 0; i < items.GetCount(); ++i) { - wxString line; - line << m_listctrl->GetTextValue(m_listctrl->GetStore()->GetRow(items.Item(i)), 0).Trim().Trim(false); - StripBuildMarkders(line); - text << line << "\n"; + m_output << text; + DoProcessOutput(false, false); +} + +void NewBuildTab::OnStyleNeeded(wxStyledTextEvent& event) +{ + int startPos = m_view->GetEndStyled(); + int endPos = event.GetPosition(); + wxString text = m_view->GetTextRange(startPos, endPos); + m_view->StartStyling(startPos, 0x1f); // text styling + + int curline = m_view->GetLineCount(); + curline -= 1; // The view always ends with a "\n", we don't count it as a line + wxArrayString lines = ::wxStringTokenize(text, wxT("\n"), wxTOKEN_RET_DELIMS); + + // the last line that we coloured + curline -= lines.size(); + + for(size_t i = 0; i < lines.size(); ++i) { + const wxString& strLine = lines.Item(i); + if(m_viewData.count(curline)) { + BuildLineInfo* b = m_viewData.find(curline)->second; + switch(b->GetSeverity()) { + case SV_WARNING: + m_view->SetStyling(strLine.length(), LEX_GCC_WARNING); + break; + case SV_ERROR: + m_view->SetStyling(strLine.length(), LEX_GCC_ERROR); + break; + case SV_SUCCESS: + m_view->SetStyling(strLine.length(), LEX_GCC_DEFAULT); + break; + case SV_DIR_CHANGE: + m_view->SetStyling(strLine.length(), LEX_GCC_INFO); + break; + case SV_NONE: + default: + m_view->SetStyling(strLine.length(), LEX_GCC_DEFAULT); + break; + } + } else { + m_view->SetStyling(strLine.length(), LEX_GCC_DEFAULT); + } + ++curline; } +} + +void NewBuildTab::InitView(const wxString& theme) +{ + LexerConf::Ptr_t lexText = ColoursAndFontsManager::Get().GetLexer("text", theme); + lexText->Apply(m_view); + + m_view->SetUndoCollection(false); + m_view->EmptyUndoBuffer(); + m_view->HideSelection(true); + m_view->SetEditable(false); + + StyleProperty::Map_t& props = lexText->GetLexerProperties(); + const StyleProperty& defaultStyle = lexText->GetProperty(0); + + // reset the styles + m_view->SetLexer(wxSTC_LEX_CONTAINER); + wxFont defaultFont = lexText->GetFontForSyle(0); + for(size_t i = 0; i < wxSTC_STYLE_MAX; ++i) { + m_view->StyleSetForeground(i, defaultStyle.GetFgColour()); + m_view->StyleSetBackground(i, defaultStyle.GetBgColour()); + m_view->StyleSetFont(i, defaultFont); + } + + m_view->StyleSetForeground(LEX_GCC_INFO, wxSystemSettings::GetColour(wxSYS_COLOUR_GRAYTEXT)); + m_view->StyleSetForeground(LEX_GCC_DEFAULT, props[0].GetFgColour()); + m_view->StyleSetForeground(LEX_GCC_WARNING, this->m_buildTabSettings.GetWarnColour()); + m_view->StyleSetForeground(LEX_GCC_ERROR, this->m_buildTabSettings.GetErrorColour()); + + m_view->StyleSetHotSpot(LEX_GCC_ERROR, true); + m_view->StyleSetHotSpot(LEX_GCC_WARNING, true); + m_view->SetHotspotActiveUnderline(false); // No underline - text.Trim(); - ::CopyToClipboard(text); + m_view->MarkerDefine(LEX_GCC_MARKER, wxSTC_MARK_BACKGROUND); + if(lexText->IsDark()) { + m_view->MarkerSetBackground(LEX_GCC_MARKER, wxColour(defaultStyle.GetBgColour()).ChangeLightness(110)); + } else { + m_view->MarkerSetBackground(LEX_GCC_MARKER, wxColour(defaultStyle.GetBgColour()).ChangeLightness(90)); + } + + // Hide all margins + for(int i = 0; i <= wxSTC_MARGIN_RTEXT; ++i) { + m_view->SetMarginWidth(i, 0); + } + + // make the symbol margin 5 pixel width + m_view->SetMarginType(0, wxSTC_MARGIN_SYMBOL); + m_view->SetMarginWidth(0, 5); } -void NewBuildTab::OnCopySelectionUI(wxUpdateUIEvent& e) +void NewBuildTab::OnHotspotClicked(wxStyledTextEvent& event) { - wxDataViewItemArray items; - m_listctrl->GetSelections(items); - e.Enable(!m_buildInProgress && !items.IsEmpty()); + long pos = event.GetPosition(); + int line = m_view->LineFromPosition(pos); + DoSelectAndOpen(line, false); } -void NewBuildTab::ScrollToBottom() +void NewBuildTab::OnThemeChanged(wxCommandEvent& event) { - if(m_listctrl->GetItemCount()) { - int lastLine = m_listctrl->GetItemCount() - 1; - wxDataViewItem item = m_listctrl->RowToItem(lastLine); - if(item.IsOk()) { - m_listctrl->EnsureVisible(item); - } - } + event.Skip(); + InitView(); } -void NewBuildTab::AppendLine(const wxString& text) +void NewBuildTab::DoCentreErrorLine(BuildLineInfo* bli, LEditor* editor, bool centerLine) { - m_output << text; - DoProcessOutput(false, false); + // We already got compiler markers set here, just goto the line + clMainFrame::Get()->GetMainBook()->SelectPage(editor); + CHECK_PTR_RET(bli); + + // Convert the compiler column to scintilla's position + if(bli->GetColumn() != wxNOT_FOUND) { + editor->CenterLine(bli->GetLineNumber(), bli->GetColumn() - 1); + } else { + editor->CenterLine(bli->GetLineNumber()); + } + + if(centerLine) { + // If the line in the build error tab is not visible, ensure it is + int firstVisibleLine = m_view->GetFirstVisibleLine(); + int linesOnScreen = m_view->LinesOnScreen(); + + // Our line is not visible + firstVisibleLine = bli->GetLineInBuildTab() - (linesOnScreen / 2); + if(firstVisibleLine < 0) { + firstVisibleLine = 0; + } + m_view->EnsureVisible(firstVisibleLine); + m_view->SetFirstVisibleLine(firstVisibleLine); + } + SetActive(editor); } //////////////////////////////////////////// @@ -1155,7 +1011,7 @@ if(strCol.StartsWith(":")) { strCol.Remove(0, 1); } - + if(!strCol.IsEmpty() && strCol.ToLong(&column)) { lineInfo.SetColumn(column); } diff -Nru codelite-8.0.1+dfsg2/LiteEditor/new_build_tab.h codelite-9.0+dfsg/LiteEditor/new_build_tab.h --- codelite-8.0.1+dfsg2/LiteEditor/new_build_tab.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/new_build_tab.h 2015-10-11 13:56:07.000000000 +0000 @@ -38,13 +38,20 @@ #include #include #include "cl_command_event.h" +#include class wxDataViewListCtrl; /////////////////////////////// // Holds the information about // a specific line -enum LINE_SEVERITY { SV_NONE = 0, SV_WARNING = 1, SV_ERROR = 2, SV_SUCCESS = 3 }; +enum LINE_SEVERITY { + SV_NONE = 0, + SV_WARNING = 1, + SV_ERROR = 2, + SV_SUCCESS = 3, + SV_DIR_CHANGE = 4, +}; class BuildLineInfo { @@ -136,7 +143,6 @@ }; /////////////////////////////////////////////////////////////////// -class MyTextRenderer; class LEditor; class NewBuildTab : public wxPanel { @@ -147,12 +153,11 @@ typedef std::list BuildInfoList_t; wxString m_output; - wxDataViewListCtrl* m_listctrl; + wxStyledTextCtrl* m_view; CompilerPtr m_cmp; MapCmpPatterns_t m_cmpPatterns; int m_warnCount; int m_errorCount; - MyTextRenderer* m_textRenderer; BuildTabSettingsData m_buildTabSettings; bool m_buildInterrupted; bool m_autoHide; @@ -167,8 +172,11 @@ BuildInfoList_t::iterator m_curError; bool m_buildInProgress; wxString m_cygwinRoot; + std::map m_viewData; protected: + void InitView(const wxString& theme = ""); + void CenterLineInView(int line); void DoCacheRegexes(); BuildLineInfo* DoProcessLine(const wxString& line, bool isSummaryLine); void DoProcessOutput(bool compilationEnded, bool isSummaryLine); @@ -177,8 +185,9 @@ void DoClear(); void MarkEditor(LEditor* editor); void DoToggleWindow(); - bool DoSelectAndOpen(const wxDataViewItem& item); + bool DoSelectAndOpen(int buildViewLine, bool centerLine); wxFont DoGetFont() const; + void DoCentreErrorLine(BuildLineInfo* bli, LEditor* editor, bool centerLine); public: NewBuildTab(wxWindow* parent); @@ -188,7 +197,7 @@ bool GetBuildEndedSuccessfully() const { return m_errorCount == 0 && !m_buildInterrupted; } void SetBuildInterrupted(bool b) { m_buildInterrupted = b; } - bool IsEmpty() const { return m_listctrl->GetItemCount() == 0; } + bool IsEmpty() const { return m_view->IsEmpty(); } bool IsBuildInProgress() const { return m_buildInProgress; } @@ -198,23 +207,21 @@ void AppendLine(const wxString& text); protected: + void OnThemeChanged(wxCommandEvent& event); void OnBuildStarted(clCommandEvent& e); void OnBuildEnded(clCommandEvent& e); void OnBuildAddLine(clCommandEvent& e); - void OnLineSelected(wxDataViewEvent& e); void OnWorkspaceClosed(wxCommandEvent& e); void OnWorkspaceLoaded(wxCommandEvent& e); void OnNextBuildError(wxCommandEvent& e); void OnNextBuildErrorUI(wxUpdateUIEvent& e); void OnMenu(wxContextMenuEvent& e); - void OnCopy(wxCommandEvent& e); - void OnCopyUI(wxUpdateUIEvent& e); - void OnCopySelection(wxCommandEvent& e); - void OnCopySelectionUI(wxUpdateUIEvent& e); void OnOpenInEditorUI(wxUpdateUIEvent& e); void OnOpenInEditor(wxCommandEvent& e); void OnClear(wxCommandEvent& e); void OnClearUI(wxUpdateUIEvent& e); + void OnStyleNeeded(wxStyledTextEvent& event); + void OnHotspotClicked(wxStyledTextEvent& event); }; #endif // NEWBUILDTAB_H diff -Nru codelite-8.0.1+dfsg2/LiteEditor/NewProjectWizard.cpp codelite-9.0+dfsg/LiteEditor/NewProjectWizard.cpp --- codelite-8.0.1+dfsg2/LiteEditor/NewProjectWizard.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/NewProjectWizard.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -34,6 +34,7 @@ #include #include #include +#include "cl_config.h" class NewProjectDlgData : public SerializedObject { @@ -123,13 +124,15 @@ EditorConfigST::Get()->ReadObject(wxT("NewProjectDlgData"), &info); NewProjImgList images; - // Get list of project templates + + // Get list of project templates (bot the installed ones + user) GetProjectTemplateList(m_list); // Populate the dataview model m_dataviewTemplatesModel->Clear(); std::map categoryMap; - + std::map projectsPerCategory; + // list of compilers wxArrayString compilerChoices; @@ -158,9 +161,17 @@ } cols.push_back(DVTemplatesModel::CreateIconTextVariant(category, bmp)); categoryMap[category] = m_dataviewTemplatesModel->AppendItem(wxDataViewItem(0), cols); + projectsPerCategory.insert(std::make_pair(category, wxStringSet_t())); } { + wxString name = newTemplate.m_template; + if(projectsPerCategory[category].count(name)) { + // already exists + continue; + } + projectsPerCategory[category].insert(name); // add it to the unique list + wxVector cols; wxBitmap bmp = wxXmlResource::Get()->LoadBitmap(newTemplate.m_templatePng); if(!bmp.IsOk()) { @@ -191,12 +202,20 @@ v << ict; cols.push_back(v); categoryMap[internalType] = m_dataviewTemplatesModel->AppendItem(wxDataViewItem(0), cols); + projectsPerCategory.insert(std::make_pair(internalType, wxStringSet_t())); } wxString imgId = (*iter)->GetProjectIconName(); wxBitmap bmp = images.Bitmap(imgId); // Allow the user to override it - + + // Remove the entry + if(projectsPerCategory[internalType].count((*iter)->GetName())) { + // already exists + continue; + } + projectsPerCategory[internalType].insert((*iter)->GetName()); // add it to the unique list + cols.clear(); wxIcon icn; icn.CopyFromBitmap(bmp); @@ -225,7 +244,7 @@ m_choiceCompiler->SetSelection(0); } - m_textCtrlProjectPath->SetValue(WorkspaceST::Get()->GetWorkspaceFileName().GetPath()); + m_textCtrlProjectPath->SetValue(clCxxWorkspaceST::Get()->GetWorkspaceFileName().GetPath()); // Get list of debuggers wxArrayString knownDebuggers = DebuggerMgr::Get().GetAvailableDebuggers(); @@ -247,7 +266,7 @@ m_projectData.m_srcProject = cd->getProject(); } } - + UpdateProjectPage(); } @@ -256,7 +275,10 @@ // Keep the options NewProjectDlgData info; size_t flags(0); - + + clConfig::Get().Write("CxxWizard/Compiler", m_choiceCompiler->GetStringSelection()); + clConfig::Get().Write("CxxWizard/Debugger", m_choiceDebugger->GetStringSelection()); + if(m_cbSeparateDir->IsChecked()) flags |= NewProjectDlgData::NpSeparateDirectory; info.SetFlags(flags); @@ -309,7 +331,6 @@ wxString desc = m_projectData.m_srcProject->GetDescription(); desc = desc.Trim().Trim(false); desc.Replace(wxT("\t"), wxT(" ")); - // m_txtDescription->SetValue( desc ); // select the correct compiler ProjectSettingsPtr settings = m_projectData.m_srcProject->GetSettings(); @@ -318,10 +339,28 @@ BuildConfigPtr buildConf = settings->GetFirstBuildConfiguration(ck); if(buildConf) { m_choiceCompiler->SetStringSelection(buildConf->GetCompilerType()); - m_choiceCompiler->SetStringSelection(buildConf->GetDebuggerType()); + m_choiceDebugger->SetStringSelection(buildConf->GetDebuggerType()); } } } + + // Restore previous selections + wxString lastCompiler = clConfig::Get().Read("CxxWizard/Compiler", wxString()); + wxString lastDebugger = clConfig::Get().Read("CxxWizard/Debugger", wxString()); + + if(!lastDebugger.IsEmpty()) { + int where = m_choiceDebugger->FindString(lastDebugger); + if(where != wxNOT_FOUND) { + m_choiceDebugger->SetSelection(where); + } + } + + if(!lastCompiler.IsEmpty()) { + int where = m_choiceCompiler->FindString(lastCompiler); + if(where != wxNOT_FOUND) { + m_choiceCompiler->SetSelection(where); + } + } } void NewProjectWizard::OnBrowseProjectPath(wxCommandEvent& event) @@ -443,39 +482,33 @@ event.Veto(); return; } - } + } else if(event.GetPage() == m_wizardPageToolchain) { + wxFileName fn(m_stxtFullFileName->GetLabel()); - // Try to offer a sensible toolchain/debugger combination as default - if(!m_selectionMade) { - wxString defaultDebugger; - if(cd && cd->GetTemplate().Lower().Contains("php")) { - for(size_t n = 0; n < m_choiceCompiler->GetCount(); ++n) { - if(m_choiceCompiler->GetString(n).Lower().Contains("php")) { - m_choiceCompiler->SetSelection(n); - break; + // make sure that there is no conflict in files between the template project and the selected path + if(m_projectData.m_srcProject) { + ProjectPtr p = m_projectData.m_srcProject; + wxString base_dir(fn.GetPath()); + std::vector files; + p->GetFiles(files); + + for(size_t i = 0; i < files.size(); ++i) { + wxFileName f = files.at(i); + wxString new_file = base_dir + wxT("/") + f.GetFullName(); + + if(wxFileName::FileExists(new_file)) { + // this file already - notify the user + wxString msg; + msg << _("The File '") << f.GetFullName() << _("' already exists at the target directory '") + << base_dir << wxT("'\n"); + msg << _("Please select a different project path\n"); + msg << _("The file '") << f.GetFullName() << _("' is part of the template project [") + << p->GetName() << wxT("]"); + wxMessageBox(msg, _("CodeLite"), wxOK | wxICON_HAND); + event.Veto(); + return; } } - defaultDebugger = "XDebug"; - - } else { - // If it's not a PHP project we can't be sure of anything except we don't want php tools; so select the - // first that isn't - for(size_t n = 0; n < m_choiceCompiler->GetCount(); ++n) { - if(!m_choiceCompiler->GetString(n).Lower().Contains("php")) { - m_choiceCompiler->SetSelection(n); - break; - } - } -#if defined(__WXMAC__) - defaultDebugger = "LLDB Debugger"; -#else - defaultDebugger = "GNU gdb debugger"; -#endif - } - - int index = m_choiceDebugger->FindString(defaultDebugger); - if(index != wxNOT_FOUND) { - m_choiceDebugger->SetSelection(index); } } } diff -Nru codelite-8.0.1+dfsg2/LiteEditor/newquickwatch.cpp codelite-9.0+dfsg/LiteEditor/newquickwatch.cpp --- codelite-8.0.1+dfsg2/LiteEditor/newquickwatch.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/newquickwatch.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -147,6 +147,8 @@ #if wxVERSION_NUMBER >= 2900 if(!wxPersistenceManager::Get().Find(this)) { wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); } #endif } diff -Nru codelite-8.0.1+dfsg2/LiteEditor/newquickwatch.h codelite-9.0+dfsg/LiteEditor/newquickwatch.h --- codelite-8.0.1+dfsg2/LiteEditor/newquickwatch.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/newquickwatch.h 2015-10-11 13:56:07.000000000 +0000 @@ -4,8 +4,8 @@ // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// -#ifndef NEWQUICKWATCH_BASE_CLASSES_H -#define NEWQUICKWATCH_BASE_CLASSES_H +#ifndef CODELITE_LITEEDITOR_NEWQUICKWATCH_BASE_CLASSES_H +#define CODELITE_LITEEDITOR_NEWQUICKWATCH_BASE_CLASSES_H #include #include diff -Nru codelite-8.0.1+dfsg2/LiteEditor/newquickwatch_liteeditor_bitmaps.cpp codelite-9.0+dfsg/LiteEditor/newquickwatch_liteeditor_bitmaps.cpp --- codelite-8.0.1+dfsg2/LiteEditor/newquickwatch_liteeditor_bitmaps.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/newquickwatch_liteeditor_bitmaps.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,83 +1,66 @@ -// -// This file was automatically generated by wxrc, do not edit by hand. -// - -#include - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#include -#include -#include -#include - -#if wxCHECK_VERSION(2,8,5) && wxABI_VERSION >= 20805 - #define XRC_ADD_FILE(name, data, size, mime) \ - wxMemoryFSHandler::AddFileWithMimeType(name, data, size, mime) -#else - #define XRC_ADD_FILE(name, data, size, mime) \ - wxMemoryFSHandler::AddFile(name, data, size) -#endif - -static size_t xml_res_size_0 = 520; -static unsigned char xml_res_file_0[] = { -137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, -0,31,243,255,97,0,0,0,25,116,69,88,116,83,111,102,116,119,97,114,101,0, -65,100,111,98,101,32,73,109,97,103,101,82,101,97,100,121,113,201,101,60, -0,0,1,170,73,68,65,84,120,218,98,252,255,255,63,3,37,128,137,129,66,192, -2,99,56,206,127,53,19,72,25,35,75,2,93,151,14,164,206,162,107,186,115,241, -34,195,147,137,110,168,6,252,249,243,199,56,214,91,202,248,246,131,159, -95,84,21,216,121,182,29,126,115,235,221,231,223,24,54,62,191,127,31,187, -11,126,255,252,201,112,249,250,151,47,18,34,156,60,27,86,156,96,120,199, -42,182,230,247,175,95,103,127,253,248,193,240,243,251,119,134,95,63,190, -3,233,31,12,204,44,44,216,195,0,100,128,166,42,55,207,145,221,167,24,140, -172,12,24,184,217,153,66,128,94,40,32,58,16,65,54,45,91,127,243,214,211, -95,92,109,7,78,62,184,101,160,42,162,198,197,202,152,73,200,16,184,123, -254,254,249,147,254,238,195,23,144,19,207,190,126,243,225,245,161,147,63, -50,45,245,101,213,78,92,124,148,249,19,18,213,19,8,69,227,89,88,136,3,109, -157,240,230,237,251,233,135,78,222,186,101,172,33,174,198,141,234,18,99, -228,216,98,193,229,52,144,33,175,222,124,96,216,127,226,71,166,153,169, -154,218,201,179,119,50,129,129,40,202,205,205,30,242,233,227,215,207,64, -37,38,4,19,18,216,37,175,223,79,63,120,244,218,45,101,83,77,53,22,46,142, -16,15,63,99,181,95,192,88,193,233,130,183,207,159,51,252,249,253,27,20, -38,16,252,251,247,132,31,223,191,139,158,218,127,46,68,206,213,70,109,221, -133,55,95,126,1,99,12,107,82,6,105,126,243,236,25,195,135,215,175,25,62, -191,127,207,240,237,243,103,134,159,63,126,24,255,17,18,10,49,139,116,85, -187,249,252,227,23,93,125,89,158,223,72,6,176,160,27,128,13,252,125,244, -232,243,206,246,57,224,0,222,185,133,129,129,145,145,17,158,188,25,7,60, -55,2,4,24,0,102,229,224,119,239,71,189,20,0,0,0,0,73,69,78,68,174,66,96, -130}; - -static size_t xml_res_size_1 = 208; -static unsigned char xml_res_file_1[] = { -60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, -110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, -115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, -47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, -47,119,120,120,114,99,34,62,10,32,32,60,111,98,106,101,99,116,32,99,108, -97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61, -34,114,101,115,105,122,101,34,62,110,101,119,113,117,105,99,107,119,97, -116,99,104,95,108,105,116,101,101,100,105,116,111,114,95,98,105,116,109, -97,112,115,46,99,112,112,36,46,46,95,105,99,111,110,115,95,114,101,115, -105,122,101,46,112,110,103,60,47,111,98,106,101,99,116,62,10,60,47,114, -101,115,111,117,114,99,101,62,10}; - -void wxCB786InitBitmapResources() -{ - - // Check for memory FS. If not present, load the handler: - { - wxMemoryFSHandler::AddFile(wxT("XRC_resource/dummy_file"), wxT("dummy one")); - wxFileSystem fsys; - wxFSFile *f = fsys.OpenFile(wxT("memory:XRC_resource/dummy_file")); - wxMemoryFSHandler::RemoveFile(wxT("XRC_resource/dummy_file")); - if (f) delete f; - else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase); - } - - XRC_ADD_FILE(wxT("XRC_resource/newquickwatch_liteeditor_bitmaps.cpp$.._icons_resize.png"), xml_res_file_0, xml_res_size_0, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/newquickwatch_liteeditor_bitmaps.cpp$_home_david_devel_git_CL_LiteEditor_newquickwatch_liteeditor_bitmaps.xrc"), xml_res_file_1, xml_res_size_1, wxT("text/xml")); - wxXmlResource::Get()->Load(wxT("memory:XRC_resource/newquickwatch_liteeditor_bitmaps.cpp$_home_david_devel_git_CL_LiteEditor_newquickwatch_liteeditor_bitmaps.xrc")); -} +// +// This file was automatically generated by wxrc, do not edit by hand. +// + +#include + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +#include +#include +#include +#include + +#if wxCHECK_VERSION(2,8,5) && wxABI_VERSION >= 20805 + #define XRC_ADD_FILE(name, data, size, mime) \ + wxMemoryFSHandler::AddFileWithMimeType(name, data, size, mime) +#else + #define XRC_ADD_FILE(name, data, size, mime) \ + wxMemoryFSHandler::AddFile(name, data, size) +#endif + +static size_t xml_res_size_0 = 203; +static unsigned char xml_res_file_0[] = { +137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, +0,31,243,255,97,0,0,0,6,98,75,71,68,0,255,0,255,0,255,160,189,167,147,0, +0,0,9,112,72,89,115,0,0,18,116,0,0,18,116,1,222,102,31,120,0,0,0,7,116, +73,77,69,7,223,9,15,5,4,24,11,4,233,196,0,0,0,88,73,68,65,84,56,203,229, +146,49,14,192,48,8,3,173,254,255,91,188,5,130,152,248,128,59,117,201,66, +137,212,102,136,71,15,150,238,100,224,172,144,164,169,82,68,248,116,87, +103,32,51,49,220,97,170,88,26,136,8,152,25,134,251,38,230,182,131,153,185, +237,96,102,254,222,65,197,92,58,168,152,75,7,21,243,255,63,120,147,27,79, +4,165,19,44,104,199,124,0,0,0,0,73,69,78,68,174,66,96,130}; + +static size_t xml_res_size_1 = 208; +static unsigned char xml_res_file_1[] = { +60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, +110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, +115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, +47,47,119,119,119,46,119,120,119,105,100,103,101,116,115,46,111,114,103, +47,119,120,120,114,99,34,62,10,32,32,60,111,98,106,101,99,116,32,99,108, +97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61, +34,114,101,115,105,122,101,34,62,110,101,119,113,117,105,99,107,119,97, +116,99,104,95,108,105,116,101,101,100,105,116,111,114,95,98,105,116,109, +97,112,115,46,99,112,112,36,46,46,95,105,99,111,110,115,95,114,101,115, +105,122,101,46,112,110,103,60,47,111,98,106,101,99,116,62,10,60,47,114, +101,115,111,117,114,99,101,62,10}; + +void wxCB786InitBitmapResources() +{ + + // Check for memory FS. If not present, load the handler: + { + wxMemoryFSHandler::AddFile(wxT("XRC_resource/dummy_file"), wxT("dummy one")); + wxFileSystem fsys; + wxFSFile *f = fsys.OpenFile(wxT("memory:XRC_resource/dummy_file")); + wxMemoryFSHandler::RemoveFile(wxT("XRC_resource/dummy_file")); + if (f) delete f; + else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase); + } + + XRC_ADD_FILE(wxT("XRC_resource/newquickwatch_liteeditor_bitmaps.cpp$.._icons_resize.png"), xml_res_file_0, xml_res_size_0, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/newquickwatch_liteeditor_bitmaps.cpp$C__src_codelite_LiteEditor_newquickwatch_liteeditor_bitmaps.xrc"), xml_res_file_1, xml_res_size_1, wxT("text/xml")); + wxXmlResource::Get()->Load(wxT("memory:XRC_resource/newquickwatch_liteeditor_bitmaps.cpp$C__src_codelite_LiteEditor_newquickwatch_liteeditor_bitmaps.xrc")); +} diff -Nru codelite-8.0.1+dfsg2/LiteEditor/new_virtual_folder.cpp codelite-9.0+dfsg/LiteEditor/new_virtual_folder.cpp --- codelite-8.0.1+dfsg2/LiteEditor/new_virtual_folder.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/new_virtual_folder.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,30 +1,6 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2014 The CodeLite Team -// file name : new_virtual_folder.cpp -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - ////////////////////////////////////////////////////////////////////// // This file was auto-generated by codelite's wxCrafter Plugin +// wxCrafter project file: new_virtual_folder.wxcp // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// @@ -47,10 +23,10 @@ bBitmapLoaded = true; } - boxSizer2 = new wxBoxSizer(wxVERTICAL); + wxBoxSizer* boxSizer2 = new wxBoxSizer(wxVERTICAL); this->SetSizer(boxSizer2); - flexGridSizer10 = new wxFlexGridSizer( 0, 2, 0, 0); + wxFlexGridSizer* flexGridSizer10 = new wxFlexGridSizer(0, 2, 0, 0); flexGridSizer10->SetFlexibleDirection( wxBOTH ); flexGridSizer10->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); flexGridSizer10->AddGrowableCol(1); @@ -63,6 +39,9 @@ m_textCtrlName = new wxTextCtrl(this, wxID_ANY, wxT(""), wxDefaultPosition, wxSize(-1,-1), 0); m_textCtrlName->SetFocus(); + #if wxVERSION_NUMBER >= 3000 + m_textCtrlName->SetHint(wxT("")); + #endif flexGridSizer10->Add(m_textCtrlName, 0, wxALL|wxEXPAND, 5); @@ -76,10 +55,13 @@ flexGridSizer10->Add(0, 0, 1, wxALL, 5); m_textCtrlPath = new wxTextCtrl(this, wxID_ANY, wxT(""), wxDefaultPosition, wxSize(-1,-1), wxTE_READONLY); + #if wxVERSION_NUMBER >= 3000 + m_textCtrlPath->SetHint(wxT("")); + #endif flexGridSizer10->Add(m_textCtrlPath, 0, wxALL|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5); - boxSizer4 = new wxBoxSizer(wxHORIZONTAL); + wxBoxSizer* boxSizer4 = new wxBoxSizer(wxHORIZONTAL); boxSizer2->Add(boxSizer4, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 5); @@ -92,11 +74,19 @@ boxSizer4->Add(m_button8, 0, wxALL, 5); + SetName(wxT("NewVirtualFolderDlgBase")); SetSizeHints(-1,-1); if ( GetSizer() ) { GetSizer()->Fit(this); } - Centre(wxBOTH); + CentreOnParent(wxBOTH); +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(this)) { + wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); + } +#endif // Connect events m_textCtrlName->Connect(wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler(NewVirtualFolderDlgBase::OnNameUpdated), NULL, this); m_checkBoxCreateOnDisk->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(NewVirtualFolderDlgBase::OnCreateOnFolderChecked), NULL, this); diff -Nru codelite-8.0.1+dfsg2/LiteEditor/NewVirtualFolderDlg.cpp codelite-9.0+dfsg/LiteEditor/NewVirtualFolderDlg.cpp --- codelite-8.0.1+dfsg2/LiteEditor/NewVirtualFolderDlg.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/NewVirtualFolderDlg.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -36,7 +36,7 @@ wxString vd_path = currentVD.AfterFirst(':'); vd_path.Replace(":", wxFILE_SEP_PATH); wxString errmsg; - ProjectPtr proj = WorkspaceST::Get()->FindProjectByName(project_name, errmsg); + ProjectPtr proj = clCxxWorkspaceST::Get()->FindProjectByName(project_name, errmsg); wxString projectPath = proj->GetFileName().GetPath(); m_basePath = wxFileName(projectPath + wxFILE_SEP_PATH + vd_path, "").GetPath(); diff -Nru codelite-8.0.1+dfsg2/LiteEditor/new_virtual_folder.h codelite-9.0+dfsg/LiteEditor/new_virtual_folder.h --- codelite-8.0.1+dfsg2/LiteEditor/new_virtual_folder.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/new_virtual_folder.h 2015-10-11 13:56:07.000000000 +0000 @@ -1,35 +1,11 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2014 The CodeLite Team -// file name : new_virtual_folder.h -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - ////////////////////////////////////////////////////////////////////// // This file was auto-generated by codelite's wxCrafter Plugin +// wxCrafter project file: new_virtual_folder.wxcp // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// -#ifndef NEW_VIRTUAL_FOLDER_BASE_CLASSES_H -#define NEW_VIRTUAL_FOLDER_BASE_CLASSES_H +#ifndef CODELITE_LITEEDITOR_NEW_VIRTUAL_FOLDER_BASE_CLASSES_H +#define CODELITE_LITEEDITOR_NEW_VIRTUAL_FOLDER_BASE_CLASSES_H #include #include @@ -42,17 +18,20 @@ #include #include #include +#if wxVERSION_NUMBER >= 2900 +#include +#include +#include +#include +#endif class NewVirtualFolderDlgBase : public wxDialog { protected: - wxBoxSizer* boxSizer2; - wxFlexGridSizer* flexGridSizer10; wxStaticText* m_staticText12; wxTextCtrl* m_textCtrlName; wxCheckBox* m_checkBoxCreateOnDisk; wxTextCtrl* m_textCtrlPath; - wxBoxSizer* boxSizer4; wxButton* m_button6; wxButton* m_button8; @@ -63,6 +42,12 @@ virtual void OnOkUI(wxUpdateUIEvent& event) { event.Skip(); } public: + wxStaticText* GetStaticText12() { return m_staticText12; } + wxTextCtrl* GetTextCtrlName() { return m_textCtrlName; } + wxCheckBox* GetCheckBoxCreateOnDisk() { return m_checkBoxCreateOnDisk; } + wxTextCtrl* GetTextCtrlPath() { return m_textCtrlPath; } + wxButton* GetButton6() { return m_button6; } + wxButton* GetButton8() { return m_button8; } NewVirtualFolderDlgBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("New Virtual Folder"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER); virtual ~NewVirtualFolderDlgBase(); }; diff -Nru codelite-8.0.1+dfsg2/LiteEditor/new_virtual_folder_liteeditor_bitmaps.cpp codelite-9.0+dfsg/LiteEditor/new_virtual_folder_liteeditor_bitmaps.cpp --- codelite-8.0.1+dfsg2/LiteEditor/new_virtual_folder_liteeditor_bitmaps.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/new_virtual_folder_liteeditor_bitmaps.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,28 +1,3 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2014 The CodeLite Team -// file name : new_virtual_folder_liteeditor_bitmaps.cpp -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - // // This file was automatically generated by wxrc, do not edit by hand. // @@ -46,14 +21,13 @@ wxMemoryFSHandler::AddFile(name, data, size) #endif -static size_t xml_res_size_0 = 108; +static size_t xml_res_size_0 = 90; static unsigned char xml_res_file_0[] = { 60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, 110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, 115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, 47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, -47,119,120,120,114,99,34,32,118,101,114,115,105,111,110,61,34,50,46,51, -46,48,46,49,34,47,62,10}; +47,119,120,120,114,99,34,47,62,10}; void wxCD0C8InitBitmapResources() { @@ -68,6 +42,6 @@ else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase); } - XRC_ADD_FILE(wxT("XRC_resource/new_virtual_folder_liteeditor_bitmaps.cpp$C__src_codelitegit_LiteEditor_new_virtual_folder_liteeditor_bitmaps.xrc"), xml_res_file_0, xml_res_size_0, wxT("text/xml")); - wxXmlResource::Get()->Load(wxT("memory:XRC_resource/new_virtual_folder_liteeditor_bitmaps.cpp$C__src_codelitegit_LiteEditor_new_virtual_folder_liteeditor_bitmaps.xrc")); + XRC_ADD_FILE(wxT("XRC_resource/new_virtual_folder_liteeditor_bitmaps.cpp$C__src_codelite_LiteEditor_new_virtual_folder_liteeditor_bitmaps.xrc"), xml_res_file_0, xml_res_size_0, wxT("text/xml")); + wxXmlResource::Get()->Load(wxT("memory:XRC_resource/new_virtual_folder_liteeditor_bitmaps.cpp$C__src_codelite_LiteEditor_new_virtual_folder_liteeditor_bitmaps.xrc")); } diff -Nru codelite-8.0.1+dfsg2/LiteEditor/new_virtual_folder.wxcp codelite-9.0+dfsg/LiteEditor/new_virtual_folder.wxcp --- codelite-8.0.1+dfsg2/LiteEditor/new_virtual_folder.wxcp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/new_virtual_folder.wxcp 2015-10-11 13:56:07.000000000 +0000 @@ -1,758 +1,796 @@ { - "metadata": { - "m_generatedFilesDir": ".", - "m_objCounter": 28, - "m_includeFiles": [], - "m_bitmapFunction": "wxCD0C8InitBitmapResources", - "m_bitmapsFile": "new_virtual_folder_liteeditor_bitmaps.cpp", - "m_GenerateCodeTypes": 1, - "m_outputFileName": "new_virtual_folder", - "m_firstWindowId": 1000, - "m_useEnum": false, - "m_templateClasses": [] - }, - "windows": [{ - "m_type": 4421, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": ["wxDEFAULT_DIALOG_STYLE", "wxRESIZE_BORDER"], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "NewVirtualFolderDlgBase" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Title:", - "m_value": "New Virtual Folder" - }, { - "type": "virtualFolderPicker", - "m_label": "Virtual Folder:", - "m_path": "CodeLiteIDE:Dialogs:ProjectManagement" - }, { - "type": "choice", - "m_label": "Centre:", - "m_selection": 1, - "m_options": ["", "wxBOTH", "wxVERTICAL", "wxHORIZONTAL"] - }, { - "type": "string", - "m_label": "File:", - "m_value": "NewVirtualFolderDlg" - }, { - "type": "string", - "m_label": "Inherited Class", - "m_value": "NewVirtualFolderDlg" - }, { - "type": "string", - "m_label": "Class Decorator", - "m_value": "" - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File (16x16) :", - "m_path": "" - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File (32x32) :", - "m_path": "" - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File (64x64) :", - "m_path": "" - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File (128x128):", - "m_path": "" - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File (256x256):", - "m_path": "" - }], - "m_events": [], - "m_children": [{ - "m_type": 4401, - "proportion": 1, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "boxSizer2" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4403, - "proportion": 1, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "flexGridSizer10" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "# Columns:", - "m_value": "2" - }, { - "type": "string", - "m_label": "# Rows:", - "m_value": "0" - }, { - "type": "string", - "m_label": "Growable columns:", - "m_value": "1" - }, { - "type": "string", - "m_label": "Growable rows:", - "m_value": "" - }, { - "type": "string", - "m_label": "Horizontal gap:", - "m_value": "0" - }, { - "type": "string", - "m_label": "Vertical gap:", - "m_value": "0" - }], - "m_events": [], - "m_children": [{ - "m_type": 4405, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT", "wxALIGN_CENTER_VERTICAL"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_staticText12" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Label:", - "m_value": "Name:" - }, { - "type": "string", - "m_label": "Wrap:", - "m_value": "-1" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4406, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_textCtrlName" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": true - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Value:", - "m_value": "" - }, { - "type": "string", - "m_label": "Max Length:", - "m_value": "0" - }, { - "type": "bool", - "m_label": "Auto Complete Directories:", - "m_value": false - }, { - "type": "bool", - "m_label": "Auto Complete Files:", - "m_value": false - }], - "m_events": [{ - "m_eventName": "wxEVT_COMMAND_TEXT_UPDATED", - "m_eventClass": "wxCommandEvent", - "m_eventHandler": "wxCommandEventHandler", - "m_functionNameAndSignature": "OnNameUpdated(wxCommandEvent& event)", - "m_description": "Respond to a wxEVT_COMMAND_TEXT_UPDATED event, generated when the text changes.\nNotice that this event will be sent when the text controls contents changes\n - whether this is due to user input or comes from the program itself\n(for example, if SetValue() is called); see ChangeValue() for a function which does not send this event." - }], - "m_children": [] - }, { - "m_type": 4454, - "proportion": 1, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "Spacer28" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "0,0" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4415, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_checkBoxCreateOnDisk" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "Create the folder on the file system as well" - }, { - "type": "bool", - "m_label": "Value:", - "m_value": false - }], - "m_events": [{ - "m_eventName": "wxEVT_COMMAND_CHECKBOX_CLICKED", - "m_eventClass": "wxCommandEvent", - "m_eventHandler": "wxCommandEventHandler", - "m_functionNameAndSignature": "OnCreateOnFolderChecked(wxCommandEvent& event)", - "m_description": "Process a wxEVT_COMMAND_CHECKBOX_CLICKED event, when the checkbox is clicked." - }], - "m_children": [] - }, { - "m_type": 4454, - "proportion": 1, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "Spacer16" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "0,0" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4406, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": ["wxTE_READONLY"], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND", "wxALIGN_CENTER_VERTICAL"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_textCtrlPath" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Value:", - "m_value": "" - }, { - "type": "string", - "m_label": "Max Length:", - "m_value": "0" - }, { - "type": "bool", - "m_label": "Auto Complete Directories:", - "m_value": false - }, { - "type": "bool", - "m_label": "Auto Complete Files:", - "m_value": false - }], - "m_events": [{ - "m_eventName": "wxEVT_UPDATE_UI", - "m_eventClass": "wxUpdateUIEvent", - "m_eventHandler": "wxUpdateUIEventHandler", - "m_functionNameAndSignature": "OnCreateOnDiskUI(wxUpdateUIEvent& event)", - "m_description": "Process a wxEVT_UPDATE_UI event" - }], - "m_children": [] - }] - }, { - "m_type": 4401, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_HORIZONTAL"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "boxSizer4" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 1, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4400, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_CANCEL" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_button6" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "&Cancel" - }, { - "type": "bool", - "m_label": "Default Button", - "m_value": false - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File:", - "m_path": "" - }, { - "type": "string", - "m_label": "Margins:", - "m_value": "2,2" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4400, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_OK" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_button8" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "&OK" - }, { - "type": "bool", - "m_label": "Default Button", - "m_value": true - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File:", - "m_path": "" - }, { - "type": "string", - "m_label": "Margins:", - "m_value": "2,2" - }], - "m_events": [{ - "m_eventName": "wxEVT_UPDATE_UI", - "m_eventClass": "wxUpdateUIEvent", - "m_eventHandler": "wxUpdateUIEventHandler", - "m_functionNameAndSignature": "OnOkUI(wxUpdateUIEvent& event)", - "m_description": "Process a wxEVT_UPDATE_UI event" - }], - "m_children": [] - }] - }] - }] - }] + "metadata": { + "m_generatedFilesDir": ".", + "m_objCounter": 28, + "m_includeFiles": [], + "m_bitmapFunction": "wxCD0C8InitBitmapResources", + "m_bitmapsFile": "new_virtual_folder_liteeditor_bitmaps.cpp", + "m_GenerateCodeTypes": 1, + "m_outputFileName": "new_virtual_folder", + "m_firstWindowId": 1000, + "m_useEnum": false, + "m_templateClasses": [] + }, + "windows": [{ + "m_type": 4421, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxDEFAULT_DIALOG_STYLE", "wxRESIZE_BORDER"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "NewVirtualFolderDlgBase" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Enable Window Persistency:", + "m_value": true + }, { + "type": "string", + "m_label": "Title:", + "m_value": "New Virtual Folder" + }, { + "type": "virtualFolderPicker", + "m_label": "Virtual Folder:", + "m_path": "CodeLiteIDE:Dialogs:ProjectManagement" + }, { + "type": "choice", + "m_label": "Centre:", + "m_selection": 1, + "m_options": ["", "wxBOTH", "wxVERTICAL", "wxHORIZONTAL"] + }, { + "type": "string", + "m_label": "Inherited Class", + "m_value": "NewVirtualFolderDlg" + }, { + "type": "string", + "m_label": "File:", + "m_value": "NewVirtualFolderDlg" + }, { + "type": "string", + "m_label": "Class Decorator", + "m_value": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (16x16) :", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (32x32) :", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (64x64) :", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (128x128):", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (256x256):", + "m_path": "" + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "boxSizer2" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4403, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "flexGridSizer10" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "# Columns:", + "m_value": "2" + }, { + "type": "string", + "m_label": "# Rows:", + "m_value": "0" + }, { + "type": "string", + "m_label": "Growable columns:", + "m_value": "1" + }, { + "type": "string", + "m_label": "Growable rows:", + "m_value": "" + }, { + "type": "string", + "m_label": "Horizontal gap:", + "m_value": "0" + }, { + "type": "string", + "m_label": "Vertical gap:", + "m_value": "0" + }], + "m_events": [], + "m_children": [{ + "m_type": 4405, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT", "wxALIGN_CENTER_VERTICAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_staticText12" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Label:", + "m_value": "Name:" + }, { + "type": "string", + "m_label": "Wrap:", + "m_value": "-1" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4406, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_textCtrlName" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": true + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Value:", + "m_value": "" + }, { + "type": "string", + "m_label": "Text Hint", + "m_value": "" + }, { + "type": "string", + "m_label": "Max Length:", + "m_value": "0" + }, { + "type": "bool", + "m_label": "Auto Complete Directories:", + "m_value": false + }, { + "type": "bool", + "m_label": "Auto Complete Files:", + "m_value": false + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_TEXT_UPDATED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnNameUpdated(wxCommandEvent& event)", + "m_description": "Respond to a wxEVT_COMMAND_TEXT_UPDATED event, generated when the text changes.\nNotice that this event will be sent when the text controls contents changes\n - whether this is due to user input or comes from the program itself\n(for example, if SetValue() is called); see ChangeValue() for a function which does not send this event.", + "m_noBody": false + }], + "m_children": [] + }, { + "m_type": 4454, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "Spacer28" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "0,0" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4415, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_checkBoxCreateOnDisk" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Create the folder on the file system as well" + }, { + "type": "bool", + "m_label": "Value:", + "m_value": false + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_CHECKBOX_CLICKED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnCreateOnFolderChecked(wxCommandEvent& event)", + "m_description": "Process a wxEVT_COMMAND_CHECKBOX_CLICKED event, when the checkbox is clicked.", + "m_noBody": false + }], + "m_children": [] + }, { + "m_type": 4454, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "Spacer16" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "0,0" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4406, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxTE_READONLY"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND", "wxALIGN_CENTER_VERTICAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_textCtrlPath" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Value:", + "m_value": "" + }, { + "type": "string", + "m_label": "Text Hint", + "m_value": "" + }, { + "type": "string", + "m_label": "Max Length:", + "m_value": "0" + }, { + "type": "bool", + "m_label": "Auto Complete Directories:", + "m_value": false + }, { + "type": "bool", + "m_label": "Auto Complete Files:", + "m_value": false + }], + "m_events": [{ + "m_eventName": "wxEVT_UPDATE_UI", + "m_eventClass": "wxUpdateUIEvent", + "m_eventHandler": "wxUpdateUIEventHandler", + "m_functionNameAndSignature": "OnCreateOnDiskUI(wxUpdateUIEvent& event)", + "m_description": "Process a wxEVT_UPDATE_UI event", + "m_noBody": false + }], + "m_children": [] + }] + }, { + "m_type": 4401, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_HORIZONTAL"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "boxSizer4" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 1, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4400, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_CANCEL" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_button6" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "&Cancel" + }, { + "type": "bool", + "m_label": "Default Button", + "m_value": false + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Direction", + "m_selection": 0, + "m_options": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"] + }, { + "type": "string", + "m_label": "Margins:", + "m_value": "2,2" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4400, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_OK" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_button8" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "&OK" + }, { + "type": "bool", + "m_label": "Default Button", + "m_value": true + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Direction", + "m_selection": 0, + "m_options": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"] + }, { + "type": "string", + "m_label": "Margins:", + "m_value": "2,2" + }], + "m_events": [{ + "m_eventName": "wxEVT_UPDATE_UI", + "m_eventClass": "wxUpdateUIEvent", + "m_eventHandler": "wxUpdateUIEventHandler", + "m_functionNameAndSignature": "OnOkUI(wxUpdateUIEvent& event)", + "m_description": "Process a wxEVT_UPDATE_UI event", + "m_noBody": false + }], + "m_children": [] + }] + }] + }] + }] } \ No newline at end of file diff -Nru codelite-8.0.1+dfsg2/LiteEditor/newworkspacebasedlg.cpp codelite-9.0+dfsg/LiteEditor/newworkspacebasedlg.cpp --- codelite-8.0.1+dfsg2/LiteEditor/newworkspacebasedlg.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/newworkspacebasedlg.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -26,20 +26,23 @@ wxBoxSizer* bSizer1 = new wxBoxSizer(wxVERTICAL); this->SetSizer(bSizer1); - m_panelWorkspace = new wxPanel(this, wxID_ANY, wxDefaultPosition, wxSize(-1, -1), wxTAB_TRAVERSAL); + m_panelWorkspace = new wxPanel(this, wxID_ANY, wxDefaultPosition, wxSize(400,-1), wxTAB_TRAVERSAL); bSizer1->Add(m_panelWorkspace, 1, wxALL|wxEXPAND, 5); wxBoxSizer* bSizer2 = new wxBoxSizer(wxVERTICAL); m_panelWorkspace->SetSizer(bSizer2); - wxBoxSizer* bSizer4 = new wxBoxSizer(wxVERTICAL); + wxFlexGridSizer* flexGridSizer9 = new wxFlexGridSizer(0, 2, 0, 0); + flexGridSizer9->SetFlexibleDirection( wxBOTH ); + flexGridSizer9->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); + flexGridSizer9->AddGrowableCol(1); - bSizer2->Add(bSizer4, 1, wxEXPAND, 5); + bSizer2->Add(flexGridSizer9, 0, wxALL|wxEXPAND, 5); m_staticText1 = new wxStaticText(m_panelWorkspace, wxID_ANY, _("Workspace Name:"), wxDefaultPosition, wxSize(-1, -1), 0); - bSizer4->Add(m_staticText1, 0, wxALL, 5); + flexGridSizer9->Add(m_staticText1, 0, wxALL|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5); m_textCtrlWorkspaceName = new wxTextCtrl(m_panelWorkspace, wxID_ANY, wxT(""), wxDefaultPosition, wxSize(-1, -1), 0); m_textCtrlWorkspaceName->SetFocus(); @@ -47,15 +50,15 @@ m_textCtrlWorkspaceName->SetHint(wxT("")); #endif - bSizer4->Add(m_textCtrlWorkspaceName, 0, wxALL|wxEXPAND, 5); + flexGridSizer9->Add(m_textCtrlWorkspaceName, 0, wxALL|wxEXPAND, 5); m_staticText3 = new wxStaticText(m_panelWorkspace, wxID_ANY, _("Workspace Path:"), wxDefaultPosition, wxSize(-1, -1), 0); - bSizer4->Add(m_staticText3, 0, wxALL, 5); + flexGridSizer9->Add(m_staticText3, 0, wxALL|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5); wxBoxSizer* bSizer3 = new wxBoxSizer(wxHORIZONTAL); - bSizer4->Add(bSizer3, 0, wxEXPAND, 5); + flexGridSizer9->Add(bSizer3, 0, wxEXPAND, 5); m_textCtrlWorkspacePath = new wxTextCtrl(m_panelWorkspace, wxID_ANY, wxT(""), wxDefaultPosition, wxSize(-1, -1), 0); #if wxVERSION_NUMBER >= 3000 @@ -65,23 +68,26 @@ bSizer3->Add(m_textCtrlWorkspacePath, 1, wxALL|wxALIGN_CENTER_VERTICAL, 5); - m_buttonWorkspaceDirPicker = new wxButton(m_panelWorkspace, wxID_ANY, _("..."), wxDefaultPosition, wxSize(-1, -1), 0); + m_buttonWorkspaceDirPicker = new wxButton(m_panelWorkspace, wxID_ANY, _("..."), wxDefaultPosition, wxSize(-1, -1), wxBU_EXACTFIT); + m_buttonWorkspaceDirPicker->SetToolTip(_("Browse for folder")); - bSizer3->Add(m_buttonWorkspaceDirPicker, 0, wxALL, 5); + bSizer3->Add(m_buttonWorkspaceDirPicker, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5); - m_checkBoxCreateSeparateDir = new wxCheckBox(m_panelWorkspace, wxID_ANY, _("Create the workspace under a separate directory"), wxDefaultPosition, wxSize(-1, -1), 0); - m_checkBoxCreateSeparateDir->SetValue(true); - - bSizer4->Add(m_checkBoxCreateSeparateDir, 0, wxALL|wxEXPAND, 5); + wxStaticBoxSizer* sbSizer1 = new wxStaticBoxSizer( new wxStaticBox(m_panelWorkspace, wxID_ANY, _("Generated File:")), wxVERTICAL); - wxStaticBoxSizer* sbSizer1 = new wxStaticBoxSizer( new wxStaticBox(m_panelWorkspace, wxID_ANY, _("File Name:")), wxVERTICAL); - - bSizer4->Add(sbSizer1, 0, wxLEFT|wxRIGHT|wxEXPAND, 5); + bSizer2->Add(sbSizer1, 0, wxALL|wxEXPAND, 5); m_staticTextWorkspaceFileName = new wxStaticText(m_panelWorkspace, wxID_ANY, wxT(""), wxDefaultPosition, wxSize(-1, -1), 0); sbSizer1->Add(m_staticTextWorkspaceFileName, 0, wxALL|wxEXPAND, 5); + bSizer2->Add(0, 0, 1, wxALL, 5); + + m_checkBoxCreateSeparateDir = new wxCheckBox(m_panelWorkspace, wxID_ANY, _("Create the workspace under a separate directory"), wxDefaultPosition, wxSize(-1, -1), 0); + m_checkBoxCreateSeparateDir->SetValue(true); + + bSizer2->Add(m_checkBoxCreateSeparateDir, 0, wxALL|wxEXPAND, 5); + m_stdBtnSizer2 = new wxStdDialogButtonSizer(); bSizer2->Add(m_stdBtnSizer2, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 5); @@ -94,11 +100,23 @@ m_stdBtnSizer2->AddButton(m_buttonCancel); m_stdBtnSizer2->Realize(); + SetName(wxT("NewWorkspaceBase")); SetSizeHints(-1,-1); - if ( GetSizer() ) { + if (GetSizer()) { GetSizer()->Fit(this); } - Centre(); + if(GetParent()) { + CentreOnParent(); + } else { + CentreOnScreen(); + } +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(this)) { + wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); + } +#endif // Connect events m_textCtrlWorkspaceName->Connect(wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler(NewWorkspaceBase::OnWorkspacePathUpdated), NULL, this); m_textCtrlWorkspacePath->Connect(wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler(NewWorkspaceBase::OnWorkspacePathUpdated), NULL, this); diff -Nru codelite-8.0.1+dfsg2/LiteEditor/newworkspacebasedlg.h codelite-9.0+dfsg/LiteEditor/newworkspacebasedlg.h --- codelite-8.0.1+dfsg2/LiteEditor/newworkspacebasedlg.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/newworkspacebasedlg.h 2015-10-11 13:56:07.000000000 +0000 @@ -4,8 +4,8 @@ // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// -#ifndef NEW_WORKSPACE_DLG_BASE_CLASSES_H -#define NEW_WORKSPACE_DLG_BASE_CLASSES_H +#ifndef CODELITE_LITEEDITOR_NEW_WORKSPACE_DLG_BASE_CLASSES_H +#define CODELITE_LITEEDITOR_NEW_WORKSPACE_DLG_BASE_CLASSES_H #include #include @@ -18,8 +18,14 @@ #include #include #include -#include #include +#include +#if wxVERSION_NUMBER >= 2900 +#include +#include +#include +#include +#endif class NewWorkspaceBase : public wxDialog { @@ -30,8 +36,8 @@ wxStaticText* m_staticText3; wxTextCtrl* m_textCtrlWorkspacePath; wxButton* m_buttonWorkspaceDirPicker; - wxCheckBox* m_checkBoxCreateSeparateDir; wxStaticText* m_staticTextWorkspaceFileName; + wxCheckBox* m_checkBoxCreateSeparateDir; wxStdDialogButtonSizer* m_stdBtnSizer2; wxButton* m_buttonOK; wxButton* m_buttonCancel; @@ -48,8 +54,8 @@ wxStaticText* GetStaticText3() { return m_staticText3; } wxTextCtrl* GetTextCtrlWorkspacePath() { return m_textCtrlWorkspacePath; } wxButton* GetButtonWorkspaceDirPicker() { return m_buttonWorkspaceDirPicker; } - wxCheckBox* GetCheckBoxCreateSeparateDir() { return m_checkBoxCreateSeparateDir; } wxStaticText* GetStaticTextWorkspaceFileName() { return m_staticTextWorkspaceFileName; } + wxCheckBox* GetCheckBoxCreateSeparateDir() { return m_checkBoxCreateSeparateDir; } wxPanel* GetPanelWorkspace() { return m_panelWorkspace; } NewWorkspaceBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("New Workspace"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER); virtual ~NewWorkspaceBase(); diff -Nru codelite-8.0.1+dfsg2/LiteEditor/newworkspacedlg.cpp codelite-9.0+dfsg/LiteEditor/newworkspacedlg.cpp --- codelite-8.0.1+dfsg2/LiteEditor/newworkspacedlg.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/newworkspacedlg.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -28,18 +28,19 @@ #include "wx/msgdlg.h" #include "wx/dirdlg.h" #include "wx/filename.h" +#include "cl_standard_paths.h" NewWorkspaceDlg::NewWorkspaceDlg(wxWindow* parent) : NewWorkspaceBase(parent) { - m_textCtrlWorkspacePath->SetValue(wxGetCwd()); + m_textCtrlWorkspacePath->ChangeValue(clStandardPaths::Get().GetDocumentsDir()); m_textCtrlWorkspaceName->SetFocus(); CentreOnParent(); SetName("NewWorkspaceDlg"); WindowAttrManager::Load(this); } -NewWorkspaceDlg::~NewWorkspaceDlg() { } +NewWorkspaceDlg::~NewWorkspaceDlg() {} void NewWorkspaceDlg::OnWorkspacePathUpdated(wxCommandEvent& event) { @@ -72,7 +73,7 @@ void NewWorkspaceDlg::OnWorkspaceDirPicker(wxCommandEvent& event) { - const wxString& dir = wxDirSelector(_("Choose a folder:")); + const wxString& dir = ::wxDirSelector(_("Choose a folder:"), m_textCtrlWorkspacePath->GetValue()); if(!dir.empty()) { static wxString INVALID_CHARS = " ,'()"; @@ -86,7 +87,7 @@ return; } } - + // Use SetValue to ensure that an TEXT_UPDATE event is fired m_textCtrlWorkspacePath->SetValue(dir); } @@ -109,7 +110,4 @@ } EndModal(wxID_OK); } -void NewWorkspaceDlg::OnOKUI(wxUpdateUIEvent& event) -{ - event.Enable(!m_textCtrlWorkspaceName->IsEmpty()); -} +void NewWorkspaceDlg::OnOKUI(wxUpdateUIEvent& event) { event.Enable(!m_textCtrlWorkspaceName->IsEmpty()); } diff -Nru codelite-8.0.1+dfsg2/LiteEditor/newworkspacedlg.h codelite-9.0+dfsg/LiteEditor/newworkspacedlg.h --- codelite-8.0.1+dfsg2/LiteEditor/newworkspacedlg.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/newworkspacedlg.h 2015-10-11 13:56:07.000000000 +0000 @@ -1,55 +1,55 @@ ////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// // -// copyright : (C) 2008 by Eran Ifrah -// file name : newworkspacedlg.h -// +// copyright : (C) 2008 by Eran Ifrah +// file name : newworkspacedlg.h +// // ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// +// A +// _____ _ _ _ _ +// / __ \ | | | | (_) | +// | / \/ ___ __| | ___| | _| |_ ___ +// | | / _ \ / _ |/ _ \ | | | __/ _ ) +// | \__/\ (_) | (_| | __/ |___| | || __/ +// \____/\___/ \__,_|\___\_____/_|\__\___| +// +// F i l e +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// ////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// - #ifndef __newworkspacedlg__ -#define __newworkspacedlg__ - -/** -@file -Subclass of NewWorkspaceBase, which is generated by wxFormBuilder. -*/ - -#include "newworkspacebasedlg.h" - -/** Implementing NewWorkspaceBase */ -class NewWorkspaceDlg : public NewWorkspaceBase +#ifndef __newworkspacedlg__ +#define __newworkspacedlg__ + +/** +@file +Subclass of NewWorkspaceBase, which is generated by wxFormBuilder. +*/ + +#include "newworkspacebasedlg.h" + +/** Implementing NewWorkspaceBase */ +class NewWorkspaceDlg : public NewWorkspaceBase { - wxString m_workspacePath; - -protected: + wxString m_workspacePath; + +protected: virtual void OnOKUI(wxUpdateUIEvent& event); - // Handlers for NewWorkspaceBase events. - void OnWorkspacePathUpdated( wxCommandEvent& event ); - void OnWorkspaceDirPicker( wxCommandEvent& event ); - void OnButtonCreate( wxCommandEvent& event ); - -public: - /** Constructor */ - NewWorkspaceDlg( wxWindow* parent ); - virtual ~NewWorkspaceDlg(); - - wxString GetFilePath() const {return m_workspacePath;} -}; - -#endif // __newworkspacedlg__ + // Handlers for NewWorkspaceBase events. + void OnWorkspacePathUpdated(wxCommandEvent& event); + void OnWorkspaceDirPicker(wxCommandEvent& event); + void OnButtonCreate(wxCommandEvent& event); + +public: + /** Constructor */ + NewWorkspaceDlg(wxWindow* parent); + virtual ~NewWorkspaceDlg(); + + wxString GetFilePath() const { return m_workspacePath; } +}; + +#endif // __newworkspacedlg__ diff -Nru codelite-8.0.1+dfsg2/LiteEditor/new_workspace_dlg_liteeditor_bitmaps.cpp codelite-9.0+dfsg/LiteEditor/new_workspace_dlg_liteeditor_bitmaps.cpp --- codelite-8.0.1+dfsg2/LiteEditor/new_workspace_dlg_liteeditor_bitmaps.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/new_workspace_dlg_liteeditor_bitmaps.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -21,14 +21,13 @@ wxMemoryFSHandler::AddFile(name, data, size) #endif -static size_t xml_res_size_0 = 108; +static size_t xml_res_size_0 = 90; static unsigned char xml_res_file_0[] = { 60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, 110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, 115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, -47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, -47,119,120,120,114,99,34,32,118,101,114,115,105,111,110,61,34,50,46,51, -46,48,46,49,34,47,62,10}; +47,47,119,119,119,46,119,120,119,105,100,103,101,116,115,46,111,114,103, +47,119,120,120,114,99,34,47,62,10}; void wxCE428InitBitmapResources() { diff -Nru codelite-8.0.1+dfsg2/LiteEditor/new_workspace_dlg.wxcp codelite-9.0+dfsg/LiteEditor/new_workspace_dlg.wxcp --- codelite-8.0.1+dfsg2/LiteEditor/new_workspace_dlg.wxcp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/new_workspace_dlg.wxcp 2015-10-11 13:56:07.000000000 +0000 @@ -1,7 +1,7 @@ { "metadata": { "m_generatedFilesDir": ".", - "m_objCounter": 6, + "m_objCounter": 11, "m_includeFiles": [], "m_bitmapFunction": "wxCE428InitBitmapResources", "m_bitmapsFile": "new_workspace_dlg_liteeditor_bitmaps.cpp", @@ -72,6 +72,10 @@ "m_label": "Style:", "m_value": "" }, { + "type": "bool", + "m_label": "Enable Window Persistency:", + "m_value": true + }, { "type": "string", "m_label": "Title:", "m_value": "New Workspace" @@ -128,6 +132,10 @@ "m_sizerFlags": [], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer1" }, { @@ -156,7 +164,7 @@ }, { "type": "string", "m_label": "Size:", - "m_value": "" + "m_value": "400,-1" }, { "type": "string", "m_label": "Minimum Size:", @@ -217,6 +225,10 @@ "m_sizerFlags": [], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer2" }, { @@ -231,26 +243,49 @@ }], "m_events": [], "m_children": [{ - "m_type": 4401, - "proportion": 1, + "m_type": 4403, + "proportion": 0, "border": 5, - "gbSpan": ",", - "gbPosition": ",", + "gbSpan": "1,1", + "gbPosition": "0,0", "m_styles": [], - "m_sizerFlags": ["wxEXPAND"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", - "m_value": "bSizer4" + "m_value": "flexGridSizer9" }, { "type": "string", "m_label": "Style:", "m_value": "" }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + "type": "string", + "m_label": "# Columns:", + "m_value": "2" + }, { + "type": "string", + "m_label": "# Rows:", + "m_value": "0" + }, { + "type": "string", + "m_label": "Growable columns:", + "m_value": "1" + }, { + "type": "string", + "m_label": "Growable rows:", + "m_value": "" + }, { + "type": "string", + "m_label": "Horizontal gap:", + "m_value": "0" + }, { + "type": "string", + "m_label": "Vertical gap:", + "m_value": "0" }], "m_events": [], "m_children": [{ @@ -260,7 +295,7 @@ "gbSpan": ",", "gbPosition": ",", "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT", "wxALIGN_CENTER_VERTICAL"], "m_properties": [{ "type": "winid", "m_label": "ID:", @@ -429,7 +464,7 @@ "gbSpan": ",", "gbPosition": ",", "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT", "wxALIGN_CENTER_VERTICAL"], "m_properties": [{ "type": "winid", "m_label": "ID:", @@ -507,6 +542,10 @@ "m_sizerFlags": ["wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer3" }, { @@ -620,8 +659,8 @@ "border": 5, "gbSpan": ",", "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_styles": ["wxBU_EXACTFIT"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_VERTICAL"], "m_properties": [{ "type": "winid", "m_label": "ID:", @@ -641,7 +680,7 @@ }, { "type": "multi-string", "m_label": "Tooltip:", - "m_value": "" + "m_value": "Browse for folder" }, { "type": "colour", "m_label": "Bg Colour:", @@ -710,8 +749,40 @@ }], "m_children": [] }] + }] + }, { + "m_type": 4449, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "sbSizer1" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["Vertical", "Horizontal"] }, { - "m_type": 4415, + "type": "string", + "m_label": "Label:", + "m_value": "Generated File:" + }], + "m_events": [], + "m_children": [{ + "m_type": 4405, "proportion": 0, "border": 5, "gbSpan": ",", @@ -733,7 +804,7 @@ }, { "type": "string", "m_label": "Name:", - "m_value": "m_checkBoxCreateSeparateDir" + "m_value": "m_staticTextWorkspaceFileName" }, { "type": "multi-string", "m_label": "Tooltip:", @@ -775,128 +846,119 @@ "m_label": "Style:", "m_value": "" }, { - "type": "string", + "type": "multi-string", "m_label": "Label:", - "m_value": "Create the workspace under a separate directory" - }, { - "type": "bool", - "m_label": "Value:", - "m_value": true - }], - "m_events": [{ - "m_eventName": "wxEVT_COMMAND_CHECKBOX_CLICKED", - "m_eventClass": "wxCommandEvent", - "m_eventHandler": "wxCommandEventHandler", - "m_functionNameAndSignature": "OnWorkspacePathUpdated(wxCommandEvent& event)", - "m_description": "Process a wxEVT_COMMAND_CHECKBOX_CLICKED event, when the checkbox is clicked.", - "m_noBody": false - }], - "m_children": [] - }, { - "m_type": 4449, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxLEFT", "wxRIGHT", "wxEXPAND"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "sbSizer1" - }, { - "type": "string", - "m_label": "Style:", "m_value": "" }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["Vertical", "Horizontal"] - }, { "type": "string", - "m_label": "Label:", - "m_value": "File Name:" + "m_label": "Wrap:", + "m_value": "-1" }], "m_events": [], - "m_children": [{ - "m_type": 4405, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_staticTextWorkspaceFileName" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Label:", - "m_value": "" - }, { - "type": "string", - "m_label": "Wrap:", - "m_value": "-1" - }], - "m_events": [], - "m_children": [] - }] + "m_children": [] }] }, { + "m_type": 4454, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "Spacer11" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "0,0" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4415, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_checkBoxCreateSeparateDir" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Create the workspace under a separate directory" + }, { + "type": "bool", + "m_label": "Value:", + "m_value": true + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_CHECKBOX_CLICKED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnWorkspacePathUpdated(wxCommandEvent& event)", + "m_description": "Process a wxEVT_COMMAND_CHECKBOX_CLICKED event, when the checkbox is clicked.", + "m_noBody": false + }], + "m_children": [] + }, { "m_type": 4467, "proportion": 0, "border": 5, diff -Nru codelite-8.0.1+dfsg2/LiteEditor/openwindowspanelbase.cpp codelite-9.0+dfsg/LiteEditor/openwindowspanelbase.cpp --- codelite-8.0.1+dfsg2/LiteEditor/openwindowspanelbase.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/openwindowspanelbase.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -40,11 +40,12 @@ m_dvListCtrl->AppendIconTextColumn(_("Path"), wxDATAVIEW_CELL_INERT, -2, wxALIGN_LEFT); + SetName(wxT("OpenWindowsPanelBase")); SetSizeHints(500,300); if ( GetSizer() ) { GetSizer()->Fit(this); } - Centre(wxBOTH); + CentreOnParent(wxBOTH); // Connect events this->Connect(XRCID("TabsSortTool"), wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler(OpenWindowsPanelBase::OnSortItems), NULL, this); this->Connect(XRCID("TabsSortTool"), wxEVT_UPDATE_UI, wxUpdateUIEventHandler(OpenWindowsPanelBase::OnSortItemsUpdateUI), NULL, this); diff -Nru codelite-8.0.1+dfsg2/LiteEditor/openwindowspanelbase.h codelite-9.0+dfsg/LiteEditor/openwindowspanelbase.h --- codelite-8.0.1+dfsg2/LiteEditor/openwindowspanelbase.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/openwindowspanelbase.h 2015-10-11 13:56:07.000000000 +0000 @@ -4,8 +4,8 @@ // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// -#ifndef OPENWINDOWSPANELBASE_BASE_CLASSES_H -#define OPENWINDOWSPANELBASE_BASE_CLASSES_H +#ifndef CODELITE_LITEEDITOR_OPENWINDOWSPANELBASE_BASE_CLASSES_H +#define CODELITE_LITEEDITOR_OPENWINDOWSPANELBASE_BASE_CLASSES_H #include #include @@ -19,6 +19,12 @@ #include #include #include +#if wxVERSION_NUMBER >= 2900 +#include +#include +#include +#include +#endif class OpenWindowsPanelBase : public wxPanel { diff -Nru codelite-8.0.1+dfsg2/LiteEditor/OpenWindowsPanelBase.wxcp codelite-9.0+dfsg/LiteEditor/OpenWindowsPanelBase.wxcp --- codelite-8.0.1+dfsg2/LiteEditor/OpenWindowsPanelBase.wxcp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/OpenWindowsPanelBase.wxcp 2015-10-11 13:56:07.000000000 +0000 @@ -108,6 +108,10 @@ "m_sizerFlags": [], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "mainSizer" }, { diff -Nru codelite-8.0.1+dfsg2/LiteEditor/openwindowspanel.cpp codelite-9.0+dfsg/LiteEditor/openwindowspanel.cpp --- codelite-8.0.1+dfsg2/LiteEditor/openwindowspanel.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/openwindowspanel.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -35,6 +35,7 @@ #include #include #include +#include "imanager.h" BEGIN_EVENT_TABLE(OpenWindowsPanel, OpenWindowsPanelBase) EVT_MENU(XRCID("wxID_CLOSE_SELECTED"), OpenWindowsPanel::OnCloseSelectedFiles) diff -Nru codelite-8.0.1+dfsg2/LiteEditor/openwindowspanel.h codelite-9.0+dfsg/LiteEditor/openwindowspanel.h --- codelite-8.0.1+dfsg2/LiteEditor/openwindowspanel.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/openwindowspanel.h 2015-10-11 13:56:07.000000000 +0000 @@ -28,9 +28,10 @@ #include "openwindowspanelbase.h" #include "theme_handler_helper.h" #include "bitmap_loader.h" -#include "notebook_ex.h" +#include "Notebook.h" #include #include "cl_command_event.h" +#include "imanager.h" class IEditor; class OpenWindowsPanel : public OpenWindowsPanelBase diff -Nru codelite-8.0.1+dfsg2/LiteEditor/options_base_dlg2.cpp codelite-9.0+dfsg/LiteEditor/options_base_dlg2.cpp --- codelite-8.0.1+dfsg2/LiteEditor/options_base_dlg2.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/options_base_dlg2.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -57,6 +57,8 @@ #if wxVERSION_NUMBER >= 2900 if(!wxPersistenceManager::Get().Find(m_treeBook)){ wxPersistenceManager::Get().RegisterAndRestore(m_treeBook); + } else { + wxPersistenceManager::Get().Restore(m_treeBook); } #endif @@ -69,6 +71,8 @@ #if wxVERSION_NUMBER >= 2900 if(!wxPersistenceManager::Get().Find(this)) { wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); } #endif // Connect events diff -Nru codelite-8.0.1+dfsg2/LiteEditor/options_base_dlg2.h codelite-9.0+dfsg/LiteEditor/options_base_dlg2.h --- codelite-8.0.1+dfsg2/LiteEditor/options_base_dlg2.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/options_base_dlg2.h 2015-10-11 13:56:07.000000000 +0000 @@ -4,8 +4,8 @@ // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// -#ifndef OPTIONSDIALOGBASE2_BASE_CLASSES_H -#define OPTIONSDIALOGBASE2_BASE_CLASSES_H +#ifndef CODELITE_LITEEDITOR_OPTIONSDIALOGBASE2_BASE_CLASSES_H +#define CODELITE_LITEEDITOR_OPTIONSDIALOGBASE2_BASE_CLASSES_H #include #include diff -Nru codelite-8.0.1+dfsg2/LiteEditor/optionsdialogbase2_liteeditor_bitmaps.cpp codelite-9.0+dfsg/LiteEditor/optionsdialogbase2_liteeditor_bitmaps.cpp --- codelite-8.0.1+dfsg2/LiteEditor/optionsdialogbase2_liteeditor_bitmaps.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/optionsdialogbase2_liteeditor_bitmaps.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,47 +1,47 @@ -// -// This file was automatically generated by wxrc, do not edit by hand. -// - -#include - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#include -#include -#include -#include - -#if wxCHECK_VERSION(2,8,5) && wxABI_VERSION >= 20805 - #define XRC_ADD_FILE(name, data, size, mime) \ - wxMemoryFSHandler::AddFileWithMimeType(name, data, size, mime) -#else - #define XRC_ADD_FILE(name, data, size, mime) \ - wxMemoryFSHandler::AddFile(name, data, size) -#endif - -static size_t xml_res_size_0 = 90; -static unsigned char xml_res_file_0[] = { -60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, -110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, -115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, -47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, -47,119,120,120,114,99,34,47,62,10}; - -void wxCrafterx2PVqnInitBitmapResources() -{ - - // Check for memory FS. If not present, load the handler: - { - wxMemoryFSHandler::AddFile(wxT("XRC_resource/dummy_file"), wxT("dummy one")); - wxFileSystem fsys; - wxFSFile *f = fsys.OpenFile(wxT("memory:XRC_resource/dummy_file")); - wxMemoryFSHandler::RemoveFile(wxT("XRC_resource/dummy_file")); - if (f) delete f; - else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase); - } - - XRC_ADD_FILE(wxT("XRC_resource/optionsdialogbase2_liteeditor_bitmaps.cpp$_home_david_devel_git_CL_LiteEditor_optionsdialogbase2_liteeditor_bitmaps.xrc"), xml_res_file_0, xml_res_size_0, wxT("text/xml")); - wxXmlResource::Get()->Load(wxT("memory:XRC_resource/optionsdialogbase2_liteeditor_bitmaps.cpp$_home_david_devel_git_CL_LiteEditor_optionsdialogbase2_liteeditor_bitmaps.xrc")); -} +// +// This file was automatically generated by wxrc, do not edit by hand. +// + +#include + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +#include +#include +#include +#include + +#if wxCHECK_VERSION(2,8,5) && wxABI_VERSION >= 20805 + #define XRC_ADD_FILE(name, data, size, mime) \ + wxMemoryFSHandler::AddFileWithMimeType(name, data, size, mime) +#else + #define XRC_ADD_FILE(name, data, size, mime) \ + wxMemoryFSHandler::AddFile(name, data, size) +#endif + +static size_t xml_res_size_0 = 90; +static unsigned char xml_res_file_0[] = { +60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, +110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, +115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, +47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, +47,119,120,120,114,99,34,47,62,10}; + +void wxCrafterx2PVqnInitBitmapResources() +{ + + // Check for memory FS. If not present, load the handler: + { + wxMemoryFSHandler::AddFile(wxT("XRC_resource/dummy_file"), wxT("dummy one")); + wxFileSystem fsys; + wxFSFile *f = fsys.OpenFile(wxT("memory:XRC_resource/dummy_file")); + wxMemoryFSHandler::RemoveFile(wxT("XRC_resource/dummy_file")); + if (f) delete f; + else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase); + } + + XRC_ADD_FILE(wxT("XRC_resource/optionsdialogbase2_liteeditor_bitmaps.cpp$C__src_codelite_LiteEditor_optionsdialogbase2_liteeditor_bitmaps.xrc"), xml_res_file_0, xml_res_size_0, wxT("text/xml")); + wxXmlResource::Get()->Load(wxT("memory:XRC_resource/optionsdialogbase2_liteeditor_bitmaps.cpp$C__src_codelite_LiteEditor_optionsdialogbase2_liteeditor_bitmaps.xrc")); +} diff -Nru codelite-8.0.1+dfsg2/LiteEditor/output_pane.cpp codelite-9.0+dfsg/LiteEditor/output_pane.cpp --- codelite-8.0.1+dfsg2/LiteEditor/output_pane.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/output_pane.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -38,9 +38,10 @@ #include "shelltab.h" #include "taskpanel.h" #include "wxcl_log_text_ctrl.h" +#include #if HAS_LIBCLANG -# include "ClangOutputTab.h" +#include "ClangOutputTab.h" #endif const wxString OutputPane::FIND_IN_FILES_WIN = _("Search"); @@ -63,6 +64,7 @@ EventNotifier::Get()->Connect(wxEVT_EDITOR_CLICKED, wxCommandEventHandler(OutputPane::OnEditorFocus), NULL, this); EventNotifier::Get()->Connect(wxEVT_BUILD_STARTED, clBuildEventHandler(OutputPane::OnBuildStarted), NULL, this); EventNotifier::Get()->Connect(wxEVT_BUILD_ENDED, clBuildEventHandler(OutputPane::OnBuildEnded), NULL, this); + EventNotifier::Get()->Bind(wxEVT_EDITOR_CONFIG_CHANGED, &OutputPane::OnSettingsChanged, this); SetSize(-1, 250); } @@ -73,6 +75,7 @@ wxEVT_EDITOR_CLICKED, wxCommandEventHandler(OutputPane::OnEditorFocus), NULL, this); EventNotifier::Get()->Disconnect(wxEVT_BUILD_STARTED, clBuildEventHandler(OutputPane::OnBuildStarted), NULL, this); EventNotifier::Get()->Disconnect(wxEVT_BUILD_ENDED, clBuildEventHandler(OutputPane::OnBuildEnded), NULL, this); + EventNotifier::Get()->Unbind(wxEVT_EDITOR_CONFIG_CHANGED, &OutputPane::OnSettingsChanged, this); } void OutputPane::CreateGUIControls() @@ -80,7 +83,16 @@ wxBoxSizer* mainSizer = new wxBoxSizer(wxVERTICAL); SetSizer(mainSizer); - m_book = new Notebook(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxNO_BORDER | wxAUI_NB_WINDOWLIST_BUTTON); + long style = (kNotebook_Default | kNotebook_AllowDnD); + if(EditorConfigST::Get()->GetOptions()->GetWorkspaceTabsDirection() == wxBOTTOM) { + style |= kNotebook_BottomTabs; + } else if(EditorConfigST::Get()->GetOptions()->GetWorkspaceTabsDirection() == wxLEFT) { + style |= kNotebook_LeftTabs; + } else if(EditorConfigST::Get()->GetOptions()->GetWorkspaceTabsDirection() == wxRIGHT) { + style |= kNotebook_RightTabs; + } + + m_book = new Notebook(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, style); BitmapLoader* bmpLoader = PluginManager::Get()->GetStdIcons(); @@ -99,12 +111,7 @@ m_book->AddPage( m_buildWin, wxGetTranslation(BUILD_WIN), true, bmpLoader->LoadBitmap(wxT("toolbars/16/build/build"))); -#ifdef __WXMAC__ - m_findResultsTab = new FindResultsTab(m_book, wxID_ANY, wxGetTranslation(FIND_IN_FILES_WIN), false); -#else - m_findResultsTab = new FindResultsTab(m_book, wxID_ANY, wxGetTranslation(FIND_IN_FILES_WIN), true); -#endif - + m_findResultsTab = new FindResultsTab(m_book, wxID_ANY, wxGetTranslation(FIND_IN_FILES_WIN)); m_book->AddPage(m_findResultsTab, wxGetTranslation(FIND_IN_FILES_WIN), false, @@ -120,15 +127,14 @@ m_book->AddPage( m_showUsageTab, wxGetTranslation(SHOW_USAGE), false, bmpLoader->LoadBitmap(wxT("toolbars/16/search/find"))); - m_outputWind = new ShellTab(m_book, wxID_ANY, wxGetTranslation(OUTPUT_WIN)); + m_outputWind = new OutputTab(m_book, wxID_ANY, wxGetTranslation(OUTPUT_WIN)); m_book->AddPage( m_outputWind, wxGetTranslation(OUTPUT_WIN), false, bmpLoader->LoadBitmap(wxT("output-pane/16/terminal"))); #if HAS_LIBCLANG NewProjImgList images; m_clangOutputTab = new ClangOutputTab(m_book); - m_book->AddPage( - m_clangOutputTab, wxGetTranslation(CLANG_TAB), false, images.Bitmap("clang16")); + m_book->AddPage(m_clangOutputTab, wxGetTranslation(CLANG_TAB), false, images.Bitmap("clang16")); #endif wxTextCtrl* text = new wxTextCtrl(m_book, wxID_ANY, @@ -159,13 +165,12 @@ if(EditorConfigST::Get()->GetOptions()->GetHideOutpuPaneOnUserClick()) { // Optionally don't hide the various panes (sometimes it's irritating, you click to do something and...) - size_t cursel(m_book->GetSelection()); - if(cursel != Notebook::npos && EditorConfigST::Get()->GetPaneStickiness(m_book->GetPageText(cursel))) { + int cursel(m_book->GetSelection()); + if(cursel != wxNOT_FOUND && EditorConfigST::Get()->GetPaneStickiness(m_book->GetPageText(cursel))) { return; } - if(m_buildInProgress) - return; + if(m_buildInProgress) return; wxAuiPaneInfo& info = PluginManager::Get()->GetDockingManager()->GetPane(wxT("Output View")); DockablePaneMenuManager::HackHidePane(true, info, PluginManager::Get()->GetDockingManager()); @@ -183,3 +188,72 @@ e.Skip(); m_buildInProgress = false; } + +void OutputPane::SaveTabOrder() +{ + wxArrayString panes; + clTabInfo::Vec_t tabs; + m_book->GetAllTabs(tabs); + std::for_each(tabs.begin(), tabs.end(), [&](clTabInfo::Ptr_t t) { panes.Add(t->GetLabel()); }); + clConfig::Get().SetOutputTabOrder(panes, m_book->GetSelection()); +} + +typedef struct { + wxString text; + wxWindow* win; + wxBitmap bmp; +} tagTabInfo; + +void OutputPane::ApplySavedTabOrder() const +{ + + wxArrayString tabs; + int index = -1; + if(!clConfig::Get().GetOutputTabOrder(tabs, index)) return; + + std::vector vTempstore; + for(size_t t = 0; t < tabs.GetCount(); ++t) { + wxString title = tabs.Item(t); + if(title.empty()) { + continue; + } + for(size_t n = 0; n < m_book->GetPageCount(); ++n) { + if(title == m_book->GetPageText(n)) { + tagTabInfo Tab; + Tab.text = title; + Tab.win = m_book->GetPage(n); + Tab.bmp = m_book->GetPageBitmap(n); + + vTempstore.push_back(Tab); + m_book->RemovePage(n); + break; + } + } + // If we reach here without finding title, presumably that tab is no longer available and will just be ignored + } + + // All the matched tabs are now stored in the vector. Any left in m_book are presumably new additions + // Now prepend the ordered tabs, so that any additions will effectively be appended + for(size_t n = 0; n < vTempstore.size(); ++n) { + m_book->InsertPage(n, vTempstore.at(n).win, vTempstore.at(n).text, false, vTempstore.at(n).bmp); + } + + // wxPrintf("After load");for (size_t n=0; n < m_book->GetPageCount(); ++n) CL_DEBUG1(wxString::Format("Tab %i: + // %zs",(int)n,m_book->GetPageText(n))); + + // Restore any saved last selection + // NB: this doesn't actually work atm: the selection is set correctly, but presumably something else changes is + // later + // I've left the code in case anyone ever has time/inclination to fix it + if((index >= 0) && (index < (int)m_book->GetPageCount())) { + m_book->SetSelection(index); + } else if(m_book->GetPageCount()) { + m_book->SetSelection(0); + } +} + +void OutputPane::OnSettingsChanged(wxCommandEvent& event) +{ + event.Skip(); + m_book->SetTabDirection(EditorConfigST::Get()->GetOptions()->GetOutputTabsDirection()); +} diff -Nru codelite-8.0.1+dfsg2/LiteEditor/output_pane.h codelite-9.0+dfsg/LiteEditor/output_pane.h --- codelite-8.0.1+dfsg2/LiteEditor/output_pane.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/output_pane.h 2015-10-11 13:56:07.000000000 +0000 @@ -71,7 +71,7 @@ static const wxString TRACE_TAB; static const wxString SHOW_USAGE; static const wxString CLANG_TAB; - + private: wxString m_caption; wxLog* m_logTargetOld; @@ -89,18 +89,19 @@ ShellTab* m_outputWind; TaskPanel* m_taskPanel; FindUsageTab* m_showUsageTab; - + #if HAS_LIBCLANG ClangOutputTab* m_clangOutputTab; #endif bool m_buildInProgress; - + protected: void CreateGUIControls(); void OnEditorFocus(wxCommandEvent& e); void OnBuildStarted(clBuildEvent& e); void OnBuildEnded(clBuildEvent& e); + void OnSettingsChanged(wxCommandEvent& event); public: /** @@ -111,6 +112,11 @@ OutputPane(wxWindow* parent, const wxString& caption); /** + * @brief save the tab order + */ + void SaveTabOrder(); + + /** * Destructor */ virtual ~OutputPane(); @@ -118,6 +124,11 @@ Notebook* GetNotebook() { return m_book; } const wxString& GetCaption() const { return m_caption; } + /** + * @brief restore the tab order from the configuration file + */ + void ApplySavedTabOrder() const; + FindResultsTab* GetFindResultsTab() { return m_findResultsTab; } ReplaceInFilesPanel* GetReplaceResultsTab() { return m_replaceResultsTab; } NewBuildTab* GetBuildTab() { return m_buildWin; } diff -Nru codelite-8.0.1+dfsg2/LiteEditor/outputtabwindow.cpp codelite-9.0+dfsg/LiteEditor/outputtabwindow.cpp --- codelite-8.0.1+dfsg2/LiteEditor/outputtabwindow.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/outputtabwindow.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -168,15 +168,14 @@ wxBoxSizer* mainSizer = new wxBoxSizer(wxVERTICAL); SetSizer(mainSizer); - m_hSizer = new wxBoxSizer(wxHORIZONTAL); + m_vSizer = new wxBoxSizer(wxVERTICAL); -// Create the default scintilla control + // Create the default scintilla control #ifdef __WXGTK__ m_sci = new wxStyledTextCtrl(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxRAISED_BORDER); #else m_sci = new wxStyledTextCtrl(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxBORDER_NONE); #endif - ::clRecalculateSTCHScrollBar(m_sci); // We dont really want to collect undo in the output tabs... m_sci->SetUndoCollection(false); @@ -185,12 +184,12 @@ InitStyle(m_sci, wxSTC_LEX_CONTAINER, false); // Add the find bar - mainSizer->Add(m_hSizer, 1, wxEXPAND | wxALL, 0); + mainSizer->Add(m_vSizer, 1, wxEXPAND | wxALL, 0); BitmapLoader* bmpLoader = PluginManager::Get()->GetStdIcons(); // Create the toolbar m_tb = new wxAuiToolBar( - this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxAUI_TB_PLAIN_BACKGROUND | wxAUI_TB_VERTICAL); + this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxAUI_TB_PLAIN_BACKGROUND); m_tb->AddTool(XRCID("hold_pane_open"), _("Keep open"), @@ -224,16 +223,11 @@ m_tb->Realize(); -#ifdef __WXMAC__ - m_hSizer->Add(m_sci, 1, wxEXPAND); - m_hSizer->Add(m_tb, 0, wxEXPAND); -#else - m_hSizer->Add(m_tb, 0, wxEXPAND); - m_hSizer->Add(m_sci, 1, wxEXPAND); -#endif + m_vSizer->Add(m_tb, 0, wxEXPAND); + m_vSizer->Add(m_sci, 1, wxEXPAND); // Hide the find bar by default - m_hSizer->Layout(); + m_vSizer->Layout(); } void OutputTabWindow::Clear() @@ -242,7 +236,6 @@ m_sci->SetReadOnly(false); m_sci->ClearAll(); m_sci->EmptyUndoBuffer(); - m_sci->SetScrollWidth(1); m_sci->SetReadOnly(true); } } @@ -281,8 +274,6 @@ // enable readonly mode m_sci->SetReadOnly(true); - - ::clRecalculateSTCHScrollBar(m_sci); } } @@ -388,9 +379,9 @@ void OutputTabWindow::OnToggleHoldOpen(wxCommandEvent& e) { - size_t sel; + int sel = wxNOT_FOUND; Notebook* book = clMainFrame::Get()->GetOutputPane()->GetNotebook(); - if(book && (sel = book->GetSelection()) != Notebook::npos) { + if(book && (sel = book->GetSelection()) != wxNOT_FOUND) { EditorConfigST::Get()->SetPaneStickiness(book->GetPageText(sel), e.IsChecked()); } } diff -Nru codelite-8.0.1+dfsg2/LiteEditor/outputtabwindow.h codelite-9.0+dfsg/LiteEditor/outputtabwindow.h --- codelite-8.0.1+dfsg2/LiteEditor/outputtabwindow.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/outputtabwindow.h 2015-10-11 13:56:07.000000000 +0000 @@ -43,7 +43,7 @@ bool m_autoAppear; bool m_autoAppearErrors; bool m_errorsFirstLine; - wxBoxSizer* m_hSizer; + wxBoxSizer* m_vSizer; ThemeHandlerHelper* m_themeHelper; static void DefineMarker(wxStyledTextCtrl* sci, int marker, int markerType, wxColor fore, wxColor back); diff -Nru codelite-8.0.1+dfsg2/LiteEditor/packages.json codelite-9.0+dfsg/LiteEditor/packages.json --- codelite-8.0.1+dfsg2/LiteEditor/packages.json 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/packages.json 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,40 @@ +{ + "platforms": [{ + "os": "msw", + "codename": "Windows", + "arch": "x86_64", + "version": 825, + "url": "http://codelite.org/LiteEditor/ReleaseNotesCodeLite83" + }, { + "os": "msw", + "codename": "Windows", + "arch": "i386", + "version": 825, + "url": "http://codelite.org/LiteEditor/ReleaseNotesCodeLite83" + }, { + "os": "osx", + "codename": "10.8", + "arch": "x86_64", + "version": 825, + "url": "http://codelite.org/LiteEditor/ReleaseNotesCodeLite83" + }, { + "os": "linux", + "codename": "Debian GNU/Linux 8", + "arch": "x86_64", + "version": 825, + "url": "http://codelite.org/LiteEditor/ReleaseNotesCodeLite83" + }, { + "os": "linux", + "codename": "Ubuntu 14.04", + "arch": "x86_64", + "version": 825, + "url": "http://codelite.org/LiteEditor/ReleaseNotesCodeLite83" + }, { + "os": "linux", + "codename": "others", + "arch": "N/A", + "version": 824, + "url": "http://codelite.org/LiteEditor/ReleaseNotesCodeLite83" + } + ] +} diff -Nru codelite-8.0.1+dfsg2/LiteEditor/plugindlgbase.cpp codelite-9.0+dfsg/LiteEditor/plugindlgbase.cpp --- codelite-8.0.1+dfsg2/LiteEditor/plugindlgbase.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/plugindlgbase.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -30,44 +30,27 @@ bSizer1->Add(boxSizer16, 1, wxEXPAND, 5); - m_splitter2 = new wxSplitterWindow(this, wxID_ANY, wxDefaultPosition, wxSize(500,300), wxSP_LIVE_UPDATE|wxSP_3DSASH); - m_splitter2->SetSashGravity(0.5); - m_splitter2->SetMinimumPaneSize(10); - - boxSizer16->Add(m_splitter2, 1, wxALL|wxEXPAND, 5); - - m_splitterPage6 = new wxPanel(m_splitter2, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxTAB_TRAVERSAL); - wxBoxSizer* boxSizer12 = new wxBoxSizer(wxVERTICAL); - m_splitterPage6->SetSizer(boxSizer12); - m_staticText1 = new wxStaticText(m_splitterPage6, wxID_ANY, _("Available Plugins:"), wxDefaultPosition, wxSize(-1, -1), 0); - - boxSizer12->Add(m_staticText1, 0, wxLEFT|wxRIGHT|wxTOP, 5); + boxSizer16->Add(boxSizer12, 0, wxALL|wxEXPAND, 5); wxArrayString m_checkListPluginsListArr; - m_checkListPluginsList = new wxCheckListBox(m_splitterPage6, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), m_checkListPluginsListArr, wxLB_SINGLE); + m_checkListPluginsList = new wxCheckListBox(this, wxID_ANY, wxDefaultPosition, wxSize(200,-1), m_checkListPluginsListArr, wxLB_SINGLE); boxSizer12->Add(m_checkListPluginsList, 1, wxALL|wxEXPAND, 5); - m_splitterPage10 = new wxPanel(m_splitter2, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxTAB_TRAVERSAL); - m_splitter2->SplitVertically(m_splitterPage6, m_splitterPage10, 0); - wxBoxSizer* boxSizer14 = new wxBoxSizer(wxVERTICAL); - m_splitterPage10->SetSizer(boxSizer14); - m_staticText2 = new wxStaticText(m_splitterPage10, wxID_ANY, _("Description:"), wxDefaultPosition, wxSize(-1, -1), 0); + boxSizer16->Add(boxSizer14, 1, wxALL|wxEXPAND, 5); - boxSizer14->Add(m_staticText2, 0, wxLEFT|wxRIGHT|wxTOP, 5); - - m_htmlWinDesc = new wxHtmlWindow(m_splitterPage10, wxID_ANY, wxDefaultPosition, wxSize(-1, -1), wxHW_SCROLLBAR_AUTO|wxBORDER_THEME); + m_htmlWinDesc = new wxHtmlWindow(this, wxID_ANY, wxDefaultPosition, wxSize(300,300), wxHW_SCROLLBAR_AUTO|wxBORDER_THEME); m_htmlWinDesc->SetPage(wxT("wxHtmlWindow control!")); boxSizer14->Add(m_htmlWinDesc, 1, wxALL|wxEXPAND, 5); wxBoxSizer* boxSizer18 = new wxBoxSizer(wxVERTICAL); - boxSizer16->Add(boxSizer18, 0, wxEXPAND, 5); + boxSizer16->Add(boxSizer18, 0, wxALL|wxEXPAND, 5); m_button20 = new wxButton(this, wxID_ANY, _("Check &All"), wxDefaultPosition, wxSize(-1,-1), 0); @@ -77,31 +60,42 @@ boxSizer18->Add(m_button22, 0, wxALL|wxEXPAND, 5); - wxBoxSizer* bSizer2 = new wxBoxSizer(wxHORIZONTAL); - - bSizer1->Add(bSizer2, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 5); - - m_buttonOk = new wxButton(this, wxID_OK, _("&OK"), wxDefaultPosition, wxSize(-1, -1), 0); - m_buttonOk->SetDefault(); + m_stdBtnSizer26 = new wxStdDialogButtonSizer(); - bSizer2->Add(m_buttonOk, 0, wxALL, 5); + bSizer1->Add(m_stdBtnSizer26, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 10); - m_buttonCancel = new wxButton(this, wxID_CANCEL, _("&Cancel"), wxDefaultPosition, wxSize(-1, -1), 0); + m_buttonOK = new wxButton(this, wxID_OK, wxT(""), wxDefaultPosition, wxSize(-1, -1), 0); + m_buttonOK->SetDefault(); + m_stdBtnSizer26->AddButton(m_buttonOK); - bSizer2->Add(m_buttonCancel, 0, wxALL, 5); + m_button30 = new wxButton(this, wxID_CANCEL, wxT(""), wxDefaultPosition, wxSize(-1, -1), 0); + m_stdBtnSizer26->AddButton(m_button30); + m_stdBtnSizer26->Realize(); + SetName(wxT("PluginMgrDlgBase")); SetSizeHints(-1,-1); - if ( GetSizer() ) { + if (GetSizer()) { GetSizer()->Fit(this); } - Centre(wxBOTH); + if(GetParent()) { + CentreOnParent(wxBOTH); + } else { + CentreOnScreen(wxBOTH); + } +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(this)) { + wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); + } +#endif // Connect events m_checkListPluginsList->Connect(wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler(PluginMgrDlgBase::OnItemSelected), NULL, this); m_button20->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(PluginMgrDlgBase::OnCheckAll), NULL, this); m_button20->Connect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(PluginMgrDlgBase::OnCheckAllUI), NULL, this); m_button22->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(PluginMgrDlgBase::OnUncheckAll), NULL, this); m_button22->Connect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(PluginMgrDlgBase::OnUncheckAllUI), NULL, this); - m_buttonOk->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(PluginMgrDlgBase::OnButtonOK), NULL, this); + m_buttonOK->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(PluginMgrDlgBase::OnButtonOK), NULL, this); } @@ -112,6 +106,6 @@ m_button20->Disconnect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(PluginMgrDlgBase::OnCheckAllUI), NULL, this); m_button22->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(PluginMgrDlgBase::OnUncheckAll), NULL, this); m_button22->Disconnect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(PluginMgrDlgBase::OnUncheckAllUI), NULL, this); - m_buttonOk->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(PluginMgrDlgBase::OnButtonOK), NULL, this); + m_buttonOK->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(PluginMgrDlgBase::OnButtonOK), NULL, this); } diff -Nru codelite-8.0.1+dfsg2/LiteEditor/plugindlgbase.h codelite-9.0+dfsg/LiteEditor/plugindlgbase.h --- codelite-8.0.1+dfsg2/LiteEditor/plugindlgbase.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/plugindlgbase.h 2015-10-11 13:56:07.000000000 +0000 @@ -4,8 +4,8 @@ // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// -#ifndef PLUGINDLGBASE_BASE_CLASSES_H -#define PLUGINDLGBASE_BASE_CLASSES_H +#ifndef CODELITE_LITEEDITOR_PLUGINDLGBASE_BASE_CLASSES_H +#define CODELITE_LITEEDITOR_PLUGINDLGBASE_BASE_CLASSES_H #include #include @@ -14,27 +14,26 @@ #include #include #include -#include -#include -#include #include #include #include +#if wxVERSION_NUMBER >= 2900 +#include +#include +#include +#include +#endif class PluginMgrDlgBase : public wxDialog { protected: - wxSplitterWindow* m_splitter2; - wxPanel* m_splitterPage6; - wxStaticText* m_staticText1; wxCheckListBox* m_checkListPluginsList; - wxPanel* m_splitterPage10; - wxStaticText* m_staticText2; wxHtmlWindow* m_htmlWinDesc; wxButton* m_button20; wxButton* m_button22; - wxButton* m_buttonOk; - wxButton* m_buttonCancel; + wxStdDialogButtonSizer* m_stdBtnSizer26; + wxButton* m_buttonOK; + wxButton* m_button30; protected: virtual void OnItemSelected(wxCommandEvent& event) { event.Skip(); } @@ -45,18 +44,11 @@ virtual void OnButtonOK(wxCommandEvent& event) { event.Skip(); } public: - wxStaticText* GetStaticText1() { return m_staticText1; } wxCheckListBox* GetCheckListPluginsList() { return m_checkListPluginsList; } - wxPanel* GetSplitterPage6() { return m_splitterPage6; } - wxStaticText* GetStaticText2() { return m_staticText2; } wxHtmlWindow* GetHtmlWinDesc() { return m_htmlWinDesc; } - wxPanel* GetSplitterPage10() { return m_splitterPage10; } - wxSplitterWindow* GetSplitter2() { return m_splitter2; } wxButton* GetButton20() { return m_button20; } wxButton* GetButton22() { return m_button22; } - wxButton* GetButtonOk() { return m_buttonOk; } - wxButton* GetButtonCancel() { return m_buttonCancel; } - PluginMgrDlgBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Manage Plugins:"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER); + PluginMgrDlgBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Manage Plugins"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER); virtual ~PluginMgrDlgBase(); }; diff -Nru codelite-8.0.1+dfsg2/LiteEditor/plugindlgbase_liteeditor_bitmaps.cpp codelite-9.0+dfsg/LiteEditor/plugindlgbase_liteeditor_bitmaps.cpp --- codelite-8.0.1+dfsg2/LiteEditor/plugindlgbase_liteeditor_bitmaps.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/plugindlgbase_liteeditor_bitmaps.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -26,7 +26,7 @@ 60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, 110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, 115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, -47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, +47,47,119,119,119,46,119,120,119,105,100,103,101,116,115,46,111,114,103, 47,119,120,120,114,99,34,47,62,10}; void wxCEF4InitBitmapResources() diff -Nru codelite-8.0.1+dfsg2/LiteEditor/plugindlgbase.wxcp codelite-9.0+dfsg/LiteEditor/plugindlgbase.wxcp --- codelite-8.0.1+dfsg2/LiteEditor/plugindlgbase.wxcp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/plugindlgbase.wxcp 2015-10-11 13:56:07.000000000 +0000 @@ -1,7 +1,7 @@ { "metadata": { "m_generatedFilesDir": ".", - "m_objCounter": 22, + "m_objCounter": 30, "m_includeFiles": [], "m_bitmapFunction": "wxCEF4InitBitmapResources", "m_bitmapsFile": "plugindlgbase_liteeditor_bitmaps.cpp", @@ -72,6 +72,10 @@ "m_label": "Style:", "m_value": "" }, { + "type": "bool", + "m_label": "Enable Window Persistency:", + "m_value": true + }, { "type": "string", "m_label": "Title:", "m_value": "Manage Plugins" @@ -128,6 +132,10 @@ "m_sizerFlags": [], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer1" }, { @@ -151,6 +159,10 @@ "m_sizerFlags": ["wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "boxSizer16" }, { @@ -165,96 +177,40 @@ }], "m_events": [], "m_children": [{ - "m_type": 4447, - "proportion": 1, + "m_type": 4401, + "proportion": 0, "border": 5, "gbSpan": "1,1", "gbPosition": "0,0", - "m_styles": ["wxSP_LIVE_UPDATE", "wxSP_3DSASH"], + "m_styles": [], "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "500,300" - }, { "type": "string", "m_label": "Minimum Size:", "m_value": "-1,-1" }, { "type": "string", "m_label": "Name:", - "m_value": "m_splitter2" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" + "m_value": "boxSizer12" }, { "type": "string", "m_label": "Style:", "m_value": "" }, { "type": "choice", - "m_label": "Split Mode:", + "m_label": "Orientation:", "m_selection": 0, - "m_options": ["wxSPLIT_VERTICAL", "wxSPLIT_HORIZONTAL"] - }, { - "type": "string", - "m_label": "Sash Gravity:", - "m_value": "0.5" - }, { - "type": "string", - "m_label": "Minimum Pane Size:", - "m_value": "10" - }, { - "type": "string", - "m_label": "Sash Position:", - "m_value": "0" + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] }], "m_events": [], "m_children": [{ - "m_type": 4448, - "proportion": 0, + "m_type": 4425, + "proportion": 1, "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": ["wxTAB_TRAVERSAL"], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "gbSpan": ",", + "gbPosition": ",", + "m_styles": ["wxLB_SINGLE"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "winid", "m_label": "ID:", @@ -262,7 +218,7 @@ }, { "type": "string", "m_label": "Size:", - "m_value": "-1,-1" + "m_value": "200,-1" }, { "type": "string", "m_label": "Minimum Size:", @@ -270,7 +226,7 @@ }, { "type": "string", "m_label": "Name:", - "m_value": "m_splitterPage6" + "m_value": "m_checkListPluginsList" }, { "type": "multi-string", "m_label": "Tooltip:", @@ -311,194 +267,56 @@ "type": "string", "m_label": "Style:", "m_value": "" + }, { + "type": "multi-string", + "m_label": "Choices:", + "m_value": "" }], - "m_events": [], - "m_children": [{ - "m_type": 4401, - "proportion": 1, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "boxSizer12" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4405, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxLEFT", "wxRIGHT", "wxTOP"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_staticText1" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Label:", - "m_value": "Available Plugins:" - }, { - "type": "string", - "m_label": "Wrap:", - "m_value": "-1" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4425, - "proportion": 1, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": ["wxLB_SINGLE"], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_checkListPluginsList" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Choices:", - "m_value": "" - }], - "m_events": [{ - "m_eventName": "wxEVT_COMMAND_LISTBOX_SELECTED", - "m_eventClass": "wxCommandEvent", - "m_eventHandler": "wxCommandEventHandler", - "m_functionNameAndSignature": "OnItemSelected(wxCommandEvent& event)", - "m_description": "Process a wxEVT_COMMAND_LISTBOX_SELECTED event\nwhen an item on the list is selected or the selection changes.", - "m_noBody": false - }], - "m_children": [] - }] - }] + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_LISTBOX_SELECTED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnItemSelected(wxCommandEvent& event)", + "m_description": "Process a wxEVT_COMMAND_LISTBOX_SELECTED event\nwhen an item on the list is selected or the selection changes.", + "m_noBody": false + }], + "m_children": [] + }] + }, { + "m_type": 4401, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" }, { - "m_type": 4448, - "proportion": 0, + "type": "string", + "m_label": "Name:", + "m_value": "boxSizer14" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4423, + "proportion": 1, "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": ["wxTAB_TRAVERSAL"], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "gbSpan": ",", + "gbPosition": ",", + "m_styles": ["wxHW_SCROLLBAR_AUTO", "wxBORDER_THEME"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "winid", "m_label": "ID:", @@ -506,15 +324,15 @@ }, { "type": "string", "m_label": "Size:", - "m_value": "-1,-1" + "m_value": "300,300" }, { "type": "string", "m_label": "Minimum Size:", - "m_value": "-1,-1" + "m_value": "" }, { "type": "string", "m_label": "Name:", - "m_value": "m_splitterPage10" + "m_value": "m_htmlWinDesc" }, { "type": "multi-string", "m_label": "Tooltip:", @@ -555,183 +373,17 @@ "type": "string", "m_label": "Style:", "m_value": "" + }, { + "type": "string", + "m_label": "HTML Code:", + "m_value": "wxHtmlWindow control!" + }, { + "type": "string", + "m_label": "URL:", + "m_value": "" }], "m_events": [], - "m_children": [{ - "m_type": 4401, - "proportion": 1, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "boxSizer14" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4405, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxLEFT", "wxRIGHT", "wxTOP"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_staticText2" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Label:", - "m_value": "Description:" - }, { - "type": "string", - "m_label": "Wrap:", - "m_value": "-1" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4423, - "proportion": 1, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": ["wxHW_SCROLLBAR_AUTO", "wxBORDER_THEME"], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_htmlWinDesc" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "HTML Code:", - "m_value": "wxHtmlWindow control!" - }, { - "type": "string", - "m_label": "URL:", - "m_value": "" - }], - "m_events": [], - "m_children": [] - }] - }] + "m_children": [] }] }, { "m_type": 4401, @@ -740,9 +392,13 @@ "gbSpan": "1,1", "gbPosition": "0,0", "m_styles": [], - "m_sizerFlags": ["wxEXPAND"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "boxSizer18" }, { @@ -963,113 +619,96 @@ }] }] }, { - "m_type": 4401, + "m_type": 4467, "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", + "border": 10, + "gbSpan": "1,1", + "gbPosition": "0,0", "m_styles": [], "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_HORIZONTAL"], "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { "type": "string", "m_label": "Name:", - "m_value": "bSizer2" + "m_value": "m_stdBtnSizer26" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false }, { "type": "string", - "m_label": "Style:", + "m_label": "Class Name:", "m_value": "" }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 1, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" }], "m_events": [], "m_children": [{ - "m_type": 4400, + "m_type": 4468, "proportion": 0, "border": 5, - "gbSpan": ",", - "gbPosition": ",", + "gbSpan": "1,1", + "gbPosition": "0,0", "m_styles": [], "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], "m_properties": [{ - "type": "winid", + "type": "choice", "m_label": "ID:", - "m_winid": "wxID_OK" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" + "m_selection": 0, + "m_options": ["wxID_OK", "wxID_YES", "wxID_SAVE", "wxID_APPLY", "wxID_CLOSE", "wxID_NO", "wxID_CANCEL", "wxID_HELP", "wxID_CONTEXT_HELP"] }, { "type": "string", "m_label": "Name:", - "m_value": "m_buttonOk" + "m_value": "m_buttonOK" }, { "type": "multi-string", "m_label": "Tooltip:", "m_value": "" }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "&OK" - }, { "type": "bool", "m_label": "Default Button", "m_value": true - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File:", - "m_path": "" - }, { - "type": "choice", - "m_label": "Direction", - "m_selection": 0, - "m_options": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"] - }, { - "type": "string", - "m_label": "Margins:", - "m_value": "2,2" }], "m_events": [{ "m_eventName": "wxEVT_COMMAND_BUTTON_CLICKED", @@ -1081,90 +720,30 @@ }], "m_children": [] }, { - "m_type": 4400, + "m_type": 4468, "proportion": 0, "border": 5, - "gbSpan": ",", - "gbPosition": ",", + "gbSpan": "1,1", + "gbPosition": "0,0", "m_styles": [], "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], "m_properties": [{ - "type": "winid", + "type": "choice", "m_label": "ID:", - "m_winid": "wxID_CANCEL" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" + "m_selection": 6, + "m_options": ["wxID_OK", "wxID_YES", "wxID_SAVE", "wxID_APPLY", "wxID_CLOSE", "wxID_NO", "wxID_CANCEL", "wxID_HELP", "wxID_CONTEXT_HELP"] }, { "type": "string", "m_label": "Name:", - "m_value": "m_buttonCancel" + "m_value": "m_button30" }, { "type": "multi-string", "m_label": "Tooltip:", "m_value": "" }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "&Cancel" - }, { "type": "bool", "m_label": "Default Button", "m_value": false - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File:", - "m_path": "" - }, { - "type": "choice", - "m_label": "Direction", - "m_selection": 0, - "m_options": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"] - }, { - "type": "string", - "m_label": "Margins:", - "m_value": "2,2" }], "m_events": [], "m_children": [] diff -Nru codelite-8.0.1+dfsg2/LiteEditor/pluginmanager.cpp codelite-9.0+dfsg/LiteEditor/pluginmanager.cpp --- codelite-8.0.1+dfsg2/LiteEditor/pluginmanager.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/pluginmanager.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -57,6 +57,7 @@ #include "new_build_tab.h" #include "clKeyboardManager.h" #include "sessionmanager.h" +#include "event_notifier.h" PluginManager* PluginManager::Get() { @@ -67,6 +68,24 @@ void PluginManager::UnLoad() { + // Before we unload the plugins, store the list of visible workspace tabs + { + wxArrayString visibleTabs; + for(size_t i = 0; i < GetWorkspacePaneNotebook()->GetPageCount(); ++i) { + visibleTabs.Add(GetWorkspacePaneNotebook()->GetPageText(i)); + } + clConfig::Get().Write("VisibleWorkspaceTabs", visibleTabs); + } + + // Now do the same for the output view + { + wxArrayString visibleTabs; + for(size_t i = 0; i < GetOutputPaneNotebook()->GetPageCount(); ++i) { + visibleTabs.Add(GetOutputPaneNotebook()->GetPageText(i)); + } + clConfig::Get().Write("VisibleOutputTabs", visibleTabs); + } + std::map::iterator plugIter = m_plugins.begin(); for(; plugIter != m_plugins.end(); plugIter++) { IPlugin* plugin = plugIter->second; @@ -297,6 +316,42 @@ // save the plugins data conf.WriteItem(&m_pluginsData); } + + // Now that all the plugins are loaded, load from the configuration file + // list of visible tabs + static wxArrayString DefaultArray; + if(DefaultArray.IsEmpty()) { + DefaultArray.Add("NOT-FOUND"); + } + { + const wxArrayString& tabs = GetWorkspaceTabs(); + wxArrayString visibleTabs = clConfig::Get().Read("VisibleWorkspaceTabs", DefaultArray); + if(!((visibleTabs.size() == 1) && (visibleTabs.Item(0) == "NOT-FOUND"))) { + for(size_t i = 0; i < tabs.size(); ++i) { + if(visibleTabs.Index(tabs.Item(i)) == wxNOT_FOUND) { + // hidden tab - post an event + clCommandEvent eventHide(wxEVT_SHOW_WORKSPACE_TAB); + eventHide.SetSelected(false).SetString(tabs.Item(i)); + EventNotifier::Get()->AddPendingEvent(eventHide); + } + } + } + } + + { + const wxArrayString& tabs = GetOutputTabs(); + wxArrayString visibleTabs = clConfig::Get().Read("VisibleOutputTabs", DefaultArray); + if(!((visibleTabs.size() == 1) && (visibleTabs.Item(0) == "NOT-FOUND"))) { + for(size_t i = 0; i < tabs.size(); ++i) { + if(visibleTabs.Index(tabs.Item(i)) == wxNOT_FOUND) { + // hidden tab - post an event + clCommandEvent eventHide(wxEVT_SHOW_OUTPUT_TAB); + eventHide.SetSelected(false).SetString(tabs.Item(i)); + EventNotifier::Get()->AddPendingEvent(eventHide); + } + } + } + } } IEditor* PluginManager::GetActiveEditor() @@ -322,7 +377,7 @@ TreeItemInfo info; switch(type) { case TreeFileExplorer: - return clMainFrame::Get()->GetFileExplorer()->GetFileTree()->GetSelectedItemInfo(); + return clMainFrame::Get()->GetFileExplorer()->GetItemInfo(); case TreeFileView: return clMainFrame::Get()->GetWorkspaceTab()->GetFileView()->GetSelectedItemInfo(); default: @@ -334,7 +389,7 @@ { switch(type) { case TreeFileExplorer: - return clMainFrame::Get()->GetFileExplorer()->GetFileTree()->Tree()->GetTreeCtrl(); + return clMainFrame::Get()->GetFileExplorer()->GetTree(); case TreeFileView: return clMainFrame::Get()->GetWorkspaceTab()->GetFileView(); default: @@ -346,16 +401,13 @@ Notebook* PluginManager::GetWorkspacePaneNotebook() { return clMainFrame::Get()->GetWorkspacePane()->GetNotebook(); } -bool PluginManager::OpenFile(const wxString& fileName, const wxString& projectName, int lineno) +IEditor* PluginManager::OpenFile(const wxString& fileName, const wxString& projectName, int lineno) { - if(clMainFrame::Get()->GetMainBook()->OpenFile(fileName, projectName, lineno)) { - LEditor* editor = clMainFrame::Get()->GetMainBook()->GetActiveEditor(); - if(editor) { - editor->SetActive(); - } - return true; + IEditor* editor = clMainFrame::Get()->GetMainBook()->OpenFile(fileName, projectName, lineno); + if(editor) { + editor->SetActive(); } - return false; + return editor; } wxString PluginManager::GetStartupDirectory() const { return ManagerST::Get()->GetStartupDirectory(); } @@ -366,7 +418,7 @@ TagsManager* PluginManager::GetTagsManager() { return TagsManagerST::Get(); } -Workspace* PluginManager::GetWorkspace() { return WorkspaceST::Get(); } +clCxxWorkspace* PluginManager::GetWorkspace() { return clCxxWorkspaceST::Get(); } bool PluginManager::AddFilesToVirtualFolder(wxTreeItemId& item, wxArrayString& paths) { @@ -529,7 +581,7 @@ bool PluginManager::SelectPage(wxWindow* win) { return clMainFrame::Get()->GetMainBook()->SelectPage(win); } -bool PluginManager::OpenFile(const BrowseRecord& rec) { return clMainFrame::Get()->GetMainBook()->OpenFile(rec); } +IEditor* PluginManager::OpenFile(const BrowseRecord& rec) { return clMainFrame::Get()->GetMainBook()->OpenFile(rec); } NavMgr* PluginManager::GetNavigationMgr() { return NavMgr::Get(); } @@ -814,7 +866,13 @@ return tabs.size(); } -clStatusBar* PluginManager::GetStatusBar() { return static_cast(clMainFrame::Get()->GetStatusBar()); } +clStatusBar* PluginManager::GetStatusBar() +{ + if(clMainFrame::m_initCompleted) { + return clMainFrame::Get()->GetStatusBar(); + } + return NULL; +} void PluginManager::ToggleOutputPane(const wxString& selectedWindow) { @@ -824,3 +882,21 @@ ManagerST::Get()->ShowOutputPane(selectedWindow); } } + +clWorkspaceView* PluginManager::GetWorkspaceView() { return clMainFrame::Get()->GetWorkspaceTab()->GetView(); } + +void PluginManager::ShowToolBar(bool show) +{ + wxCommandEvent event(wxEVT_MENU, XRCID("hide_tool_bar")); + event.SetInt(show ? 1 : 0); + event.SetEventObject(clMainFrame::Get()); + clMainFrame::Get()->GetEventHandler()->AddPendingEvent(event); +} +bool PluginManager::IsToolBarShown() const +{ + if(clMainFrame::Get()->GetToolBar()) { + // we have native toolbar + return clMainFrame::Get()->GetToolBar()->IsShown(); + } + return false; +} diff -Nru codelite-8.0.1+dfsg2/LiteEditor/pluginmanager.h codelite-9.0+dfsg/LiteEditor/pluginmanager.h --- codelite-8.0.1+dfsg2/LiteEditor/pluginmanager.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/pluginmanager.h 2015-10-11 13:56:07.000000000 +0000 @@ -44,6 +44,7 @@ class BuildSettingsConfig; class BuildManager; class BitmapLoader; +class clWorkspaceView; class PluginManager : public IManager { @@ -80,14 +81,14 @@ virtual wxTreeCtrl* GetTree(TreeType type); virtual Notebook* GetOutputPaneNotebook(); virtual Notebook* GetWorkspacePaneNotebook(); - virtual bool + virtual IEditor* OpenFile(const wxString& fileName, const wxString& projectName = wxEmptyString, int lineno = wxNOT_FOUND); - virtual bool OpenFile(const BrowseRecord& rec); + virtual IEditor* OpenFile(const BrowseRecord& rec); virtual wxString GetStartupDirectory() const; virtual void AddProject(const wxString& path); virtual bool IsWorkspaceOpen() const; virtual TagsManager* GetTagsManager(); - virtual Workspace* GetWorkspace(); + virtual clCxxWorkspace* GetWorkspace(); virtual bool AddFilesToVirtualFolder(wxTreeItemId& item, wxArrayString& paths); virtual bool AddFilesToVirtualFolder(const wxString& vdFullPath, wxArrayString& paths); virtual bool AddFilesToVirtualFolderIntelligently(const wxString& vdFullPath, wxArrayString& paths); @@ -119,15 +120,18 @@ virtual bool ClosePage(const wxString& title); virtual bool ClosePage(const wxFileName& filename); virtual wxWindow* FindPage(const wxString& text); - virtual bool - AddPage(wxWindow* win, const wxString& text, const wxString& tooltip = wxEmptyString, const wxBitmap& bmp = wxNullBitmap, bool selected = false); + virtual bool AddPage(wxWindow* win, + const wxString& text, + const wxString& tooltip = wxEmptyString, + const wxBitmap& bmp = wxNullBitmap, + bool selected = false); virtual bool SelectPage(wxWindow* win); virtual NavMgr* GetNavigationMgr(); virtual IEditor* NewEditor(); virtual bool IsShutdownInProgress() const; virtual BitmapLoader* GetStdIcons(); virtual wxArrayString GetProjectCompileFlags(const wxString& projectName, bool isCppFile); - virtual void AddEditorPage(wxWindow* page, const wxString& name,const wxString& tooltip = wxEmptyString); + virtual void AddEditorPage(wxWindow* page, const wxString& name, const wxString& tooltip = wxEmptyString); virtual wxPanel* GetEditorPaneNotebook(); virtual wxWindow* GetActivePage(); virtual wxWindow* GetPage(size_t page); @@ -150,11 +154,14 @@ virtual void AddWorkspaceToRecentlyUsedList(const wxFileName& filename); virtual void StoreWorkspaceSession(const wxFileName& workspaceFile); virtual void LoadWorkspaceSession(const wxFileName& workspaceFile); - virtual void OpenFindInFileForPath(const wxString &path); - virtual void OpenFindInFileForPaths(const wxArrayString &paths); - virtual void ShowOutputPane(const wxString &selectedWindow = ""); - virtual void ToggleOutputPane(const wxString &selectedWindow = ""); + virtual void OpenFindInFileForPath(const wxString& path); + virtual void OpenFindInFileForPaths(const wxArrayString& paths); + virtual void ShowOutputPane(const wxString& selectedWindow = ""); + virtual void ToggleOutputPane(const wxString& selectedWindow = ""); virtual clStatusBar* GetStatusBar(); + virtual clWorkspaceView* GetWorkspaceView(); + virtual bool IsToolBarShown() const; + virtual void ShowToolBar(bool show = true); //------------------------------------ // End of IManager interface diff -Nru codelite-8.0.1+dfsg2/LiteEditor/pluginmgrdlg.cpp codelite-9.0+dfsg/LiteEditor/pluginmgrdlg.cpp --- codelite-8.0.1+dfsg2/LiteEditor/pluginmgrdlg.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/pluginmgrdlg.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -34,7 +34,6 @@ this->Initialize(); SetName("PluginMgrDlg"); WindowAttrManager::Load(this); - this->PostSizeEvent(); } PluginMgrDlg::~PluginMgrDlg() {} @@ -168,8 +167,10 @@ content << wxT(""); m_htmlWinDesc->SetPage(content); + m_htmlWinDesc->Refresh(); } } + void PluginMgrDlg::OnCheckAll(wxCommandEvent& event) { for(size_t i = 0; i < m_checkListPluginsList->GetCount(); ++i) { diff -Nru codelite-8.0.1+dfsg2/LiteEditor/pluginmgrdlg.h codelite-9.0+dfsg/LiteEditor/pluginmgrdlg.h --- codelite-8.0.1+dfsg2/LiteEditor/pluginmgrdlg.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/pluginmgrdlg.h 2015-10-11 13:56:07.000000000 +0000 @@ -27,24 +27,24 @@ #include "plugindlgbase.h" -/** Implementing PluginMgrDlgBase */ class PluginMgrDlg : public PluginMgrDlgBase { wxArrayString m_initialDisabledPlugins; + protected: virtual void OnCheckAll(wxCommandEvent& event); virtual void OnCheckAllUI(wxUpdateUIEvent& event); virtual void OnUncheckAll(wxCommandEvent& event); virtual void OnUncheckAllUI(wxUpdateUIEvent& event); void Initialize(); - void OnItemSelected(wxCommandEvent &event); - void OnButtonOK(wxCommandEvent &event); + void OnItemSelected(wxCommandEvent& event); + void OnButtonOK(wxCommandEvent& event); void CreateInfoPage(unsigned int index); public: /** Constructor */ - PluginMgrDlg( wxWindow* parent ); + PluginMgrDlg(wxWindow* parent); virtual ~PluginMgrDlg(); }; -#endif // __pluginmgrdlg__ +#endif // __pluginmgrdlg__ diff -Nru codelite-8.0.1+dfsg2/LiteEditor/project_settings_base_dlg.cpp codelite-9.0+dfsg/LiteEditor/project_settings_base_dlg.cpp --- codelite-8.0.1+dfsg2/LiteEditor/project_settings_base_dlg.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/project_settings_base_dlg.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -75,6 +75,8 @@ #if wxVERSION_NUMBER >= 2900 if(!wxPersistenceManager::Get().Find(m_treebook)){ wxPersistenceManager::Get().RegisterAndRestore(m_treebook); + } else { + wxPersistenceManager::Get().Restore(m_treebook); } #endif @@ -87,6 +89,8 @@ #if wxVERSION_NUMBER >= 2900 if(!wxPersistenceManager::Get().Find(this)) { wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); } #endif // Connect events @@ -1254,6 +1258,8 @@ #if wxVERSION_NUMBER >= 2900 if(!wxPersistenceManager::Get().Find(this)) { wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); } #endif // Connect events diff -Nru codelite-8.0.1+dfsg2/LiteEditor/project_settings_base_dlg.h codelite-9.0+dfsg/LiteEditor/project_settings_base_dlg.h --- codelite-8.0.1+dfsg2/LiteEditor/project_settings_base_dlg.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/project_settings_base_dlg.h 2015-10-11 13:56:07.000000000 +0000 @@ -4,8 +4,8 @@ // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// -#ifndef PROJECT_SETTINGS_BASE_CLASSES_H -#define PROJECT_SETTINGS_BASE_CLASSES_H +#ifndef CODELITE_LITEEDITOR_PROJECT_SETTINGS_BASE_CLASSES_H +#define CODELITE_LITEEDITOR_PROJECT_SETTINGS_BASE_CLASSES_H #include #include diff -Nru codelite-8.0.1+dfsg2/LiteEditor/project_settings_dlg.cpp codelite-9.0+dfsg/LiteEditor/project_settings_dlg.cpp --- codelite-8.0.1+dfsg2/LiteEditor/project_settings_dlg.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/project_settings_dlg.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -126,14 +126,13 @@ } PSGeneralPage* gp = new PSGeneralPage(m_treebook, m_projectName, m_choiceConfig->GetStringSelection(), this); - m_treebook->AddPage(0, _("Common Settings")); - m_treebook->AddSubPage(gp, _("General"), selectedPage == _("General")); - m_treebook->AddSubPage( + m_treebook->AddPage(gp, _("General"), selectedPage == _("General")); + m_treebook->AddPage( new PSCompilerPage(m_treebook, m_projectName, this, gp), _("Compiler"), selectedPage == _("Compiler")); - m_treebook->AddSubPage(new PSLinkerPage(m_treebook, this, gp), _("Linker"), selectedPage == _("Linker")); - m_treebook->AddSubPage(new PSEnvironmentPage(m_treebook, this), _("Environment"), selectedPage == _("Environment")); - m_treebook->AddSubPage(new PSDebuggerPage(m_treebook, this), _("Debugger"), selectedPage == _("Debugger")); - m_treebook->AddSubPage(new PSResourcesPage(m_treebook, this), _("Resources"), selectedPage == _("Resources")); + m_treebook->AddPage(new PSLinkerPage(m_treebook, this, gp), _("Linker"), selectedPage == _("Linker")); + m_treebook->AddPage(new PSEnvironmentPage(m_treebook, this), _("Environment"), selectedPage == _("Environment")); + m_treebook->AddPage(new PSDebuggerPage(m_treebook, this), _("Debugger"), selectedPage == _("Debugger")); + m_treebook->AddPage(new PSResourcesPage(m_treebook, this), _("Resources"), selectedPage == _("Resources")); m_treebook->AddPage(0, _("Pre / Post Build Commands")); m_treebook->AddSubPage( @@ -308,7 +307,7 @@ // Make sure we know which configuration to load for the new project - BuildConfigPtr bldConf = WorkspaceST::Get()->GetProjBuildConf(e.GetString(), ""); + BuildConfigPtr bldConf = clCxxWorkspaceST::Get()->GetProjBuildConf(e.GetString(), ""); CHECK_PTR_RET(bldConf); if(m_isDirty) { @@ -396,13 +395,12 @@ void ProjectSettingsDlg::ShowCustomProjectMessage(bool show) { if(show) { - m_infobar->ShowMessage( - _("Settings on this page are disabled because this project is setup as \"Custom Build\" project"), - wxICON_INFORMATION); + m_infobar->ShowMessage(_("The settings on this page are ignored during build"), wxICON_INFORMATION); } else { m_infobar->Dismiss(); } } + void ProjectSettingsDlg::OnPageChanged(wxTreebookEvent& event) { event.Skip(); diff -Nru codelite-8.0.1+dfsg2/LiteEditor/ps_compiler_page.cpp codelite-9.0+dfsg/LiteEditor/ps_compiler_page.cpp --- codelite-8.0.1+dfsg2/LiteEditor/ps_compiler_page.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/ps_compiler_page.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -91,10 +91,7 @@ void PSCompilerPage::OnPropertyChanged(wxPropertyGridEvent& event) { m_dlg->SetIsDirty(true); } -void PSCompilerPage::OnUpdateUI(wxUpdateUIEvent& event) -{ - event.Enable(!m_dlg->IsCustomBuildEnabled() && !m_checkCompilerNeeded->IsChecked()); -} +void PSCompilerPage::OnUpdateUI(wxUpdateUIEvent& event) { event.Enable(true); } void PSCompilerPage::OnCustomEditorClicked(wxCommandEvent& event) { diff -Nru codelite-8.0.1+dfsg2/LiteEditor/ps_compiler_page.h codelite-9.0+dfsg/LiteEditor/ps_compiler_page.h --- codelite-8.0.1+dfsg2/LiteEditor/ps_compiler_page.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/ps_compiler_page.h 2015-10-11 13:56:07.000000000 +0000 @@ -42,9 +42,9 @@ /** Implementing PSCompilerPageBase */ class PSCompilerPage : public PSCompilerPageBase, public IProjectSettingsPage { - ProjectSettingsDlg *m_dlg; - wxString m_projectName; - PSGeneralPage * m_gp; + ProjectSettingsDlg* m_dlg; + wxString m_projectName; + PSGeneralPage* m_gp; protected: virtual void OnCompilerNeeded(wxCommandEvent& event); @@ -52,10 +52,10 @@ virtual void OnUpdateUI(wxUpdateUIEvent& event); virtual void OnPropertyChanged(wxPropertyGridEvent& event); virtual void OnProjectEnabledUI(wxUpdateUIEvent& event); - + public: /** Constructor */ - PSCompilerPage( wxWindow* parent, const wxString &projectName, ProjectSettingsDlg *dlg, PSGeneralPage *gp ); + PSCompilerPage(wxWindow* parent, const wxString& projectName, ProjectSettingsDlg* dlg, PSGeneralPage* gp); //// end generated class members virtual void Load(BuildConfigPtr buildConf); diff -Nru codelite-8.0.1+dfsg2/LiteEditor/ps_debugger_page.cpp codelite-9.0+dfsg/LiteEditor/ps_debugger_page.cpp --- codelite-8.0.1+dfsg2/LiteEditor/ps_debugger_page.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/ps_debugger_page.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -107,7 +107,7 @@ if ( !debugger_path.IsEmpty() ) { wxString errMsg; - ProjectPtr proj = WorkspaceST::Get()->FindProjectByName(m_dlg->GetProjectName(), errMsg); + ProjectPtr proj = clCxxWorkspaceST::Get()->FindProjectByName(m_dlg->GetProjectName(), errMsg); if ( proj ) { wxFileName fnDebuggerPath( debugger_path ); wxString project_path = proj->GetFileName().GetPath(); diff -Nru codelite-8.0.1+dfsg2/LiteEditor/ps_environment_page.cpp codelite-9.0+dfsg/LiteEditor/ps_environment_page.cpp --- codelite-8.0.1+dfsg2/LiteEditor/ps_environment_page.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/ps_environment_page.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,41 +1,40 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2014 The CodeLite Team -// file name : ps_environment_page.cpp -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - +////////////////////////////////////////////////////////////////////////////// +////////////////////////////////////////////////////////////////////////////// +// +// copyright : (C) 2014 The CodeLite Team +// file name : ps_environment_page.cpp +// +// ------------------------------------------------------------------------- +// A +// _____ _ _ _ _ +// / __ \ | | | | (_) | +// | / \/ ___ __| | ___| | _| |_ ___ +// | | / _ \ / _ |/ _ \ | | | __/ _ ) +// | \__/\ (_) | (_| | __/ |___| | || __/ +// \____/\___/ \__,_|\___\_____/_|\__\___| +// +// F i l e +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// +////////////////////////////////////////////////////////////////////////////// +////////////////////////////////////////////////////////////////////////////// + #include "ps_environment_page.h" #include "environmentconfig.h" #include "debuggersettings.h" #include "debuggerconfigtool.h" -PSEnvironmentPage::PSEnvironmentPage( wxWindow* parent, ProjectSettingsDlg* dlg ) - : PSEnvironmentBasePage( parent ) +PSEnvironmentPage::PSEnvironmentPage(wxWindow* parent, ProjectSettingsDlg* dlg) + : PSEnvironmentBasePage(parent) , m_dlg(dlg) { - } -void PSEnvironmentPage::OnCmdEvtVModified( wxCommandEvent& event ) +void PSEnvironmentPage::OnCmdEvtVModified(wxCommandEvent& event) { wxUnusedVar(event); m_dlg->SetIsDirty(true); @@ -51,10 +50,10 @@ std::map::const_iterator iterI = envSets.begin(); int useActiveSetIndex = m_choiceEnv->Append(wxGetTranslation(USE_WORKSPACE_ENV_VAR_SET)); - for (; iterI != envSets.end(); iterI++) { + for(; iterI != envSets.end(); iterI++) { m_choiceEnv->Append(iterI->first); } - int selEnv = m_choiceEnv->FindString( buildConf->GetEnvVarSet() ); + int selEnv = m_choiceEnv->FindString(buildConf->GetEnvVarSet()); m_choiceEnv->SetSelection(selEnv == wxNOT_FOUND ? useActiveSetIndex : selEnv); m_choiceDbgEnv->Clear(); @@ -68,7 +67,7 @@ m_choiceDbgEnv->Append(iterB->first); } - int selDbg = m_choiceDbgEnv->FindString( buildConf->GetDbgEnvSet() ); + int selDbg = m_choiceDbgEnv->FindString(buildConf->GetDbgEnvSet()); m_choiceDbgEnv->SetSelection(selEnv == wxNOT_FOUND ? useActiveSetIndex : selDbg); m_textCtrlEnvvars->SetValue(buildConf->GetEnvvars()); } @@ -76,14 +75,14 @@ void PSEnvironmentPage::Save(BuildConfigPtr buildConf, ProjectSettingsPtr projSettingsPtr) { wxString env = m_choiceDbgEnv->GetStringSelection(); - if (env == wxGetTranslation(USE_GLOBAL_SETTINGS)) { + if(env == wxGetTranslation(USE_GLOBAL_SETTINGS)) { // Save it untranslated env = USE_GLOBAL_SETTINGS; } buildConf->SetDbgEnvSet(env); env = m_choiceEnv->GetStringSelection(); - if (env == wxGetTranslation(USE_WORKSPACE_ENV_VAR_SET)) { + if(env == wxGetTranslation(USE_WORKSPACE_ENV_VAR_SET)) { env = USE_WORKSPACE_ENV_VAR_SET; } buildConf->SetEnvVarSet(env); @@ -96,7 +95,4 @@ m_choiceEnv->Clear(); } -void PSEnvironmentPage::OnProjectEnabledUI(wxUpdateUIEvent& event) -{ - event.Enable( m_dlg->IsProjectEnabled() ); -} +void PSEnvironmentPage::OnProjectEnabledUI(wxUpdateUIEvent& event) { event.Enable(m_dlg->IsProjectEnabled()); } diff -Nru codelite-8.0.1+dfsg2/LiteEditor/ps_linker_page.cpp codelite-9.0+dfsg/LiteEditor/ps_linker_page.cpp --- codelite-8.0.1+dfsg2/LiteEditor/ps_linker_page.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/ps_linker_page.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,70 +1,67 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2014 The CodeLite Team -// file name : ps_linker_page.cpp -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - +////////////////////////////////////////////////////////////////////////////// +////////////////////////////////////////////////////////////////////////////// +// +// copyright : (C) 2014 The CodeLite Team +// file name : ps_linker_page.cpp +// +// ------------------------------------------------------------------------- +// A +// _____ _ _ _ _ +// / __ \ | | | | (_) | +// | / \/ ___ __| | ___| | _| |_ ___ +// | | / _ \ / _ |/ _ \ | | | __/ _ ) +// | \__/\ (_) | (_| | __/ |___| | || __/ +// \____/\___/ \__,_|\___\_____/_|\__\___| +// +// F i l e +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// +////////////////////////////////////////////////////////////////////////////// +////////////////////////////////////////////////////////////////////////////// + #include "ps_linker_page.h" #include "compiler.h" #include "build_settings_config.h" #include "ps_general_page.h" -#include "globals.h" +#include "globals.h" -PSLinkerPage::PSLinkerPage( wxWindow* parent, ProjectSettingsDlg *dlg, PSGeneralPage *gp ) - : PSLinkPageBase( parent ) +PSLinkerPage::PSLinkerPage(wxWindow* parent, ProjectSettingsDlg* dlg, PSGeneralPage* gp) + : PSLinkPageBase(parent) , m_dlg(dlg) , m_gp(gp) -{ - ::wxPGPropertyBooleanUseCheckbox(m_pgMgr->GetGrid()); -} - -void PSLinkerPage::OnLinkerNotNeededUI( wxUpdateUIEvent& event ) { - event.Enable( !m_checkLinkerNeeded->IsChecked() && !m_dlg->IsCustomBuildEnabled() ); + ::wxPGPropertyBooleanUseCheckbox(m_pgMgr->GetGrid()); } +void PSLinkerPage::OnLinkerNotNeededUI(wxUpdateUIEvent& event) { event.Enable(!m_checkLinkerNeeded->IsChecked()); } + void PSLinkerPage::Load(BuildConfigPtr buildConf) { - m_checkLinkerNeeded->SetValue( !buildConf->IsLinkerRequired() ); + m_checkLinkerNeeded->SetValue(!buildConf->IsLinkerRequired()); SelectChoiceWithGlobalSettings(m_pgPropBehaviorWithGlobalSettings, buildConf->GetBuildLnkWithGlobalSettings()); - m_pgPropLibraries->SetValue( buildConf->GetLibraries() ); - m_pgPropLibraryPaths->SetValue( buildConf->GetLibPath() ); - m_pgPropOptions->SetValue( buildConf->GetLinkOptions() ); + m_pgPropLibraries->SetValue(buildConf->GetLibraries()); + m_pgPropLibraryPaths->SetValue(buildConf->GetLibPath()); + m_pgPropOptions->SetValue(buildConf->GetLinkOptions()); } void PSLinkerPage::Save(BuildConfigPtr buildConf, ProjectSettingsPtr projSettingsPtr) { buildConf->SetLinkerRequired(!m_checkLinkerNeeded->IsChecked()); - buildConf->SetLibPath( m_pgPropLibraryPaths->GetValueAsString() ); - buildConf->SetLibraries( m_pgPropLibraries->GetValueAsString() ); - buildConf->SetLinkOptions( m_pgPropOptions->GetValueAsString() ); + buildConf->SetLibPath(m_pgPropLibraryPaths->GetValueAsString()); + buildConf->SetLibraries(m_pgPropLibraries->GetValueAsString()); + buildConf->SetLinkOptions(m_pgPropOptions->GetValueAsString()); buildConf->SetBuildLnkWithGlobalSettings(m_pgPropBehaviorWithGlobalSettings->GetValueAsString()); } void PSLinkerPage::Clear() { wxPropertyGridIterator iter = m_pgMgr->GetGrid()->GetIterator(); - for( ; !iter.AtEnd(); ++iter ) { - if ( iter.GetProperty() && !iter.GetProperty()->IsCategory() ) { + for(; !iter.AtEnd(); ++iter) { + if(iter.GetProperty() && !iter.GetProperty()->IsCategory()) { iter.GetProperty()->SetValueToUnspecified(); } } @@ -77,18 +74,18 @@ CHECK_PTR_RET(prop); m_dlg->SetIsDirty(true); - if ( prop == m_pgPropLibraries || prop == m_pgPropLibraryPaths ) { + if(prop == m_pgPropLibraries || prop == m_pgPropLibraryPaths) { wxString value = prop->GetValueAsString(); - if ( PopupAddOptionDlg(value) ) { - prop->SetValueFromString( value ); + if(PopupAddOptionDlg(value)) { + prop->SetValueFromString(value); } - } else if ( prop == m_pgPropOptions ) { + } else if(prop == m_pgPropOptions) { wxString value = prop->GetValueAsString(); wxString cmpName = m_gp->GetCompiler(); CompilerPtr cmp = BuildSettingsConfigST::Get()->GetCompiler(cmpName); - if (PopupAddOptionCheckDlg(value, _("Linker options"), cmp->GetLinkerOptions())) { - prop->SetValueFromString( value ); + if(PopupAddOptionCheckDlg(value, _("Linker options"), cmp->GetLinkerOptions())) { + prop->SetValueFromString(value); } } } @@ -98,18 +95,12 @@ m_dlg->SetIsDirty(true); } -void PSLinkerPage::OnProjectCustumBuildUI(wxUpdateUIEvent& event) +void PSLinkerPage::OnProjectCustumBuildUI(wxUpdateUIEvent& event) { event.Enable(!m_dlg->IsCustomBuildEnabled()); } + +void PSLinkerPage::OnProjectEnabledUI(wxUpdateUIEvent& event) { event.Enable(m_dlg->IsProjectEnabled()); } + +void PSLinkerPage::OnPropertyChanged(wxPropertyGridEvent& event) { - event.Enable( !m_dlg->IsCustomBuildEnabled() ); -} - -void PSLinkerPage::OnProjectEnabledUI(wxUpdateUIEvent& event) -{ - event.Enable( m_dlg->IsProjectEnabled() ); -} - -void PSLinkerPage::OnPropertyChanged(wxPropertyGridEvent& event) -{ event.Skip(); m_dlg->SetIsDirty(true); -} +} diff -Nru codelite-8.0.1+dfsg2/LiteEditor/quickdebugbase.cpp codelite-9.0+dfsg/LiteEditor/quickdebugbase.cpp --- codelite-8.0.1+dfsg2/LiteEditor/quickdebugbase.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/quickdebugbase.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -130,11 +130,19 @@ m_stdBtnSizer2->AddButton(m_buttonCancel1); m_stdBtnSizer2->Realize(); + SetName(wxT("QuickDebugBase")); SetSizeHints(-1,-1); if ( GetSizer() ) { GetSizer()->Fit(this); } - Centre(wxBOTH); + CentreOnParent(wxBOTH); +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(this)) { + wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); + } +#endif // Connect events m_buttonBrowseExe->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(QuickDebugBase::OnButtonBrowseExe), NULL, this); m_buttonBrowseWD->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(QuickDebugBase::OnButtonBrowseWD), NULL, this); diff -Nru codelite-8.0.1+dfsg2/LiteEditor/quickdebugbase.h codelite-9.0+dfsg/LiteEditor/quickdebugbase.h --- codelite-8.0.1+dfsg2/LiteEditor/quickdebugbase.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/quickdebugbase.h 2015-10-11 13:56:07.000000000 +0000 @@ -4,8 +4,8 @@ // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// -#ifndef QUICKDEBUG_BASE_CLASSES_H -#define QUICKDEBUG_BASE_CLASSES_H +#ifndef CODELITE_FORMBUILDER_QUICKDEBUG_BASE_CLASSES_H +#define CODELITE_FORMBUILDER_QUICKDEBUG_BASE_CLASSES_H #include #include @@ -21,6 +21,12 @@ #include #include #include +#if wxVERSION_NUMBER >= 2900 +#include +#include +#include +#include +#endif class QuickDebugBase : public wxDialog { @@ -50,6 +56,20 @@ virtual void OnButtonCancel(wxCommandEvent& event) { event.Skip(); } public: + wxStaticText* GetStaticText2() { return m_staticText2; } + wxComboBox* GetExeFilepath() { return m_ExeFilepath; } + wxButton* GetButtonBrowseExe() { return m_buttonBrowseExe; } + wxStaticText* GetStaticText5() { return m_staticText5; } + wxComboBox* GetWD() { return m_WD; } + wxButton* GetButtonBrowseWD() { return m_buttonBrowseWD; } + wxStaticText* GetStaticText4() { return m_staticText4; } + wxTextCtrl* GetTextCtrlArgs() { return m_textCtrlArgs; } + wxPanel* GetPanel1() { return m_panel1; } + wxStaticText* GetStaticText3() { return m_staticText3; } + wxChoice* GetChoiceDebuggers() { return m_choiceDebuggers; } + wxPanel* GetPanel2() { return m_panel2; } + wxStaticText* GetStaticText6() { return m_staticText6; } + wxTextCtrl* GetTextCtrlCmds() { return m_textCtrlCmds; } QuickDebugBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Quick Debug"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER); virtual ~QuickDebugBase(); }; diff -Nru codelite-8.0.1+dfsg2/LiteEditor/quickdebug_formbuilder_bitmaps.cpp codelite-9.0+dfsg/LiteEditor/quickdebug_formbuilder_bitmaps.cpp --- codelite-8.0.1+dfsg2/LiteEditor/quickdebug_formbuilder_bitmaps.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/quickdebug_formbuilder_bitmaps.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,48 +1,47 @@ -// -// This file was automatically generated by wxrc, do not edit by hand. -// - -#include - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#include -#include -#include -#include - -#if wxCHECK_VERSION(2,8,5) && wxABI_VERSION >= 20805 - #define XRC_ADD_FILE(name, data, size, mime) \ - wxMemoryFSHandler::AddFileWithMimeType(name, data, size, mime) -#else - #define XRC_ADD_FILE(name, data, size, mime) \ - wxMemoryFSHandler::AddFile(name, data, size) -#endif - -static size_t xml_res_size_0 = 108; -static unsigned char xml_res_file_0[] = { -60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, -110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, -115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, -47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, -47,119,120,120,114,99,34,32,118,101,114,115,105,111,110,61,34,50,46,51, -46,48,46,49,34,47,62,10}; - -void wxCrafterSFKMcrInitBitmapResources() -{ - - // Check for memory FS. If not present, load the handler: - { - wxMemoryFSHandler::AddFile(wxT("XRC_resource/dummy_file"), wxT("dummy one")); - wxFileSystem fsys; - wxFSFile *f = fsys.OpenFile(wxT("memory:XRC_resource/dummy_file")); - wxMemoryFSHandler::RemoveFile(wxT("XRC_resource/dummy_file")); - if (f) delete f; - else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase); - } - - XRC_ADD_FILE(wxT("XRC_resource/quickdebug_formbuilder_bitmaps.cpp$_home_eran_devl_codelite_formbuilder_quickdebug_formbuilder_bitmaps.xrc"), xml_res_file_0, xml_res_size_0, wxT("text/xml")); - wxXmlResource::Get()->Load(wxT("memory:XRC_resource/quickdebug_formbuilder_bitmaps.cpp$_home_eran_devl_codelite_formbuilder_quickdebug_formbuilder_bitmaps.xrc")); -} +// +// This file was automatically generated by wxrc, do not edit by hand. +// + +#include + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +#include +#include +#include +#include + +#if wxCHECK_VERSION(2,8,5) && wxABI_VERSION >= 20805 + #define XRC_ADD_FILE(name, data, size, mime) \ + wxMemoryFSHandler::AddFileWithMimeType(name, data, size, mime) +#else + #define XRC_ADD_FILE(name, data, size, mime) \ + wxMemoryFSHandler::AddFile(name, data, size) +#endif + +static size_t xml_res_size_0 = 90; +static unsigned char xml_res_file_0[] = { +60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, +110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, +115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, +47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, +47,119,120,120,114,99,34,47,62,10}; + +void wxCrafterSFKMcrInitBitmapResources() +{ + + // Check for memory FS. If not present, load the handler: + { + wxMemoryFSHandler::AddFile(wxT("XRC_resource/dummy_file"), wxT("dummy one")); + wxFileSystem fsys; + wxFSFile *f = fsys.OpenFile(wxT("memory:XRC_resource/dummy_file")); + wxMemoryFSHandler::RemoveFile(wxT("XRC_resource/dummy_file")); + if (f) delete f; + else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase); + } + + XRC_ADD_FILE(wxT("XRC_resource/quickdebug_formbuilder_bitmaps.cpp$C__src_codelite_formbuilder_quickdebug_formbuilder_bitmaps.xrc"), xml_res_file_0, xml_res_size_0, wxT("text/xml")); + wxXmlResource::Get()->Load(wxT("memory:XRC_resource/quickdebug_formbuilder_bitmaps.cpp$C__src_codelite_formbuilder_quickdebug_formbuilder_bitmaps.xrc")); +} diff -Nru codelite-8.0.1+dfsg2/LiteEditor/quickfindbarbase.cpp codelite-9.0+dfsg/LiteEditor/quickfindbarbase.cpp --- codelite-8.0.1+dfsg2/LiteEditor/quickfindbarbase.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/quickfindbarbase.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -26,11 +26,11 @@ wxBoxSizer* mainSizer = new wxBoxSizer(wxHORIZONTAL); this->SetSizer(mainSizer); + SetName(wxT("QuickFindBarBase")); SetSizeHints(400,-1); - if ( GetSizer() ) { + if (GetSizer()) { GetSizer()->Fit(this); } - Centre(wxBOTH); } QuickFindBarBase::~QuickFindBarBase() @@ -87,11 +87,11 @@ gridSizer49->Add(m_checkBoxMultipleSelections, 0, wxALL|wxALIGN_LEFT, 3); + SetName(wxT("QuickFindBarOptionsMenuBase")); SetSizeHints(-1,-1); - if ( GetSizer() ) { + if (GetSizer()) { GetSizer()->Fit(this); } - Centre(wxBOTH); // Connect events m_checkBoxRegex->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(QuickFindBarOptionsMenuBase::OnCheckBoxRegex), NULL, this); m_checkBoxWildcard->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(QuickFindBarOptionsMenuBase::OnCheckWild), NULL, this); diff -Nru codelite-8.0.1+dfsg2/LiteEditor/quickfindbarbase.h codelite-9.0+dfsg/LiteEditor/quickfindbarbase.h --- codelite-8.0.1+dfsg2/LiteEditor/quickfindbarbase.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/quickfindbarbase.h 2015-10-11 13:56:07.000000000 +0000 @@ -4,8 +4,8 @@ // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// -#ifndef QUICKFINDBARBASE_BASE_CLASSES_H -#define QUICKFINDBARBASE_BASE_CLASSES_H +#ifndef CODELITE_LITEEDITOR_QUICKFINDBARBASE_BASE_CLASSES_H +#define CODELITE_LITEEDITOR_QUICKFINDBARBASE_BASE_CLASSES_H #include #include @@ -19,6 +19,12 @@ #include #include #include +#if wxVERSION_NUMBER >= 2900 +#include +#include +#include +#include +#endif class QuickFindBarBase : public wxPanel { @@ -27,7 +33,7 @@ protected: public: - QuickFindBarBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(400,-1), long style = wxTAB_TRAVERSAL|wxTRANSPARENT_WINDOW|wxBORDER_STATIC); + QuickFindBarBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(400,-1), long style = wxTAB_TRAVERSAL|wxTRANSPARENT_WINDOW); virtual ~QuickFindBarBase(); }; @@ -47,6 +53,12 @@ virtual void OnCheckWild(wxCommandEvent& event) { event.Skip(); } public: + wxCheckBox* GetCheckBoxCase() { return m_checkBoxCase; } + wxCheckBox* GetCheckBoxRegex() { return m_checkBoxRegex; } + wxCheckBox* GetCheckBoxWord() { return m_checkBoxWord; } + wxCheckBox* GetCheckBoxWildcard() { return m_checkBoxWildcard; } + wxCheckBox* GetCheckBoxMultipleSelections() { return m_checkBoxMultipleSelections; } + wxPanel* GetPanel71() { return m_panel71; } QuickFindBarOptionsMenuBase(wxWindow* parent, long style = wxBORDER_NONE); virtual ~QuickFindBarOptionsMenuBase(); }; diff -Nru codelite-8.0.1+dfsg2/LiteEditor/quickfindbarbase_liteeditor_bitmaps.cpp codelite-9.0+dfsg/LiteEditor/quickfindbarbase_liteeditor_bitmaps.cpp --- codelite-8.0.1+dfsg2/LiteEditor/quickfindbarbase_liteeditor_bitmaps.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/quickfindbarbase_liteeditor_bitmaps.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -164,58 +164,57 @@ 242,228,201,255,225,15,133,156,52,184,43,51,58,221,0,0,0,0,73,69,78,68, 174,66,96,130}; -static size_t xml_res_size_7 = 995; +static size_t xml_res_size_7 = 977; static unsigned char xml_res_file_7[] = { 60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, 110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, 115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, -47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, -47,119,120,120,114,99,34,32,118,101,114,115,105,111,110,61,34,50,46,51, -46,48,46,49,34,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, -61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,99,97,115, -101,45,115,101,110,115,105,116,105,118,101,34,62,113,117,105,99,107,102, -105,110,100,98,97,114,98,97,115,101,95,108,105,116,101,101,100,105,116, -111,114,95,98,105,116,109,97,112,115,46,99,112,112,36,114,101,115,95,113, -117,105,99,107,102,105,110,100,98,97,114,95,99,97,115,101,45,115,101,110, -115,105,116,105,118,101,46,112,110,103,60,47,111,98,106,101,99,116,62,10, -32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105, -116,109,97,112,34,32,110,97,109,101,61,34,102,105,110,100,45,98,97,114, -45,99,108,111,115,101,45,49,54,34,62,113,117,105,99,107,102,105,110,100, -98,97,114,98,97,115,101,95,108,105,116,101,101,100,105,116,111,114,95,98, -105,116,109,97,112,115,46,99,112,112,36,114,101,115,95,113,117,105,99,107, -102,105,110,100,98,97,114,95,99,108,111,115,101,45,49,54,46,112,110,103, -60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99, -108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101, -61,34,109,95,98,109,112,77,101,110,117,34,62,113,117,105,99,107,102,105, -110,100,98,97,114,98,97,115,101,95,108,105,116,101,101,100,105,116,111, -114,95,98,105,116,109,97,112,115,46,99,112,112,36,114,101,115,95,113,117, -105,99,107,102,105,110,100,98,97,114,95,109,101,110,117,46,112,110,103, -60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99, -108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101, -61,34,109,97,114,107,101,114,45,49,54,34,62,113,117,105,99,107,102,105, +47,47,119,119,119,46,119,120,119,105,100,103,101,116,115,46,111,114,103, +47,119,120,120,114,99,34,62,10,32,32,60,111,98,106,101,99,116,32,99,108, +97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61, +34,99,97,115,101,45,115,101,110,115,105,116,105,118,101,34,62,113,117,105, +99,107,102,105,110,100,98,97,114,98,97,115,101,95,108,105,116,101,101,100, +105,116,111,114,95,98,105,116,109,97,112,115,46,99,112,112,36,114,101,115, +95,113,117,105,99,107,102,105,110,100,98,97,114,95,99,97,115,101,45,115, +101,110,115,105,116,105,118,101,46,112,110,103,60,47,111,98,106,101,99, +116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119, +120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,102,105,110,100,45, +98,97,114,45,99,108,111,115,101,45,49,54,34,62,113,117,105,99,107,102,105, 110,100,98,97,114,98,97,115,101,95,108,105,116,101,101,100,105,116,111, 114,95,98,105,116,109,97,112,115,46,99,112,112,36,114,101,115,95,113,117, -105,99,107,102,105,110,100,98,97,114,95,109,97,114,107,101,114,45,49,54, -46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101, -99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110, -97,109,101,61,34,114,101,103,101,120,34,62,113,117,105,99,107,102,105,110, -100,98,97,114,98,97,115,101,95,108,105,116,101,101,100,105,116,111,114, -95,98,105,116,109,97,112,115,46,99,112,112,36,114,101,115,95,113,117,105, -99,107,102,105,110,100,98,97,114,95,114,101,103,101,120,46,112,110,103, +105,99,107,102,105,110,100,98,97,114,95,99,108,111,115,101,45,49,54,46, +112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99, +116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110, +97,109,101,61,34,109,95,98,109,112,77,101,110,117,34,62,113,117,105,99, +107,102,105,110,100,98,97,114,98,97,115,101,95,108,105,116,101,101,100, +105,116,111,114,95,98,105,116,109,97,112,115,46,99,112,112,36,114,101,115, +95,113,117,105,99,107,102,105,110,100,98,97,114,95,109,101,110,117,46,112, +110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116, +32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109, +101,61,34,109,97,114,107,101,114,45,49,54,34,62,113,117,105,99,107,102, +105,110,100,98,97,114,98,97,115,101,95,108,105,116,101,101,100,105,116, +111,114,95,98,105,116,109,97,112,115,46,99,112,112,36,114,101,115,95,113, +117,105,99,107,102,105,110,100,98,97,114,95,109,97,114,107,101,114,45,49, +54,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106, +101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34, +32,110,97,109,101,61,34,114,101,103,101,120,34,62,113,117,105,99,107,102, +105,110,100,98,97,114,98,97,115,101,95,108,105,116,101,101,100,105,116, +111,114,95,98,105,116,109,97,112,115,46,99,112,112,36,114,101,115,95,113, +117,105,99,107,102,105,110,100,98,97,114,95,114,101,103,101,120,46,112, +110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116, +32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109, +101,61,34,114,101,112,108,97,99,101,45,99,111,110,116,114,111,108,115,34, +62,113,117,105,99,107,102,105,110,100,98,97,114,98,97,115,101,95,108,105, +116,101,101,100,105,116,111,114,95,98,105,116,109,97,112,115,46,99,112, +112,36,114,101,115,95,113,117,105,99,107,102,105,110,100,98,97,114,95,114, +101,112,108,97,99,101,45,99,111,110,116,114,111,108,115,46,112,110,103, 60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99, 108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101, -61,34,114,101,112,108,97,99,101,45,99,111,110,116,114,111,108,115,34,62, -113,117,105,99,107,102,105,110,100,98,97,114,98,97,115,101,95,108,105,116, -101,101,100,105,116,111,114,95,98,105,116,109,97,112,115,46,99,112,112, -36,114,101,115,95,113,117,105,99,107,102,105,110,100,98,97,114,95,114,101, -112,108,97,99,101,45,99,111,110,116,114,111,108,115,46,112,110,103,60,47, -111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97, -115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34, -119,111,114,100,34,62,113,117,105,99,107,102,105,110,100,98,97,114,98,97, -115,101,95,108,105,116,101,101,100,105,116,111,114,95,98,105,116,109,97, -112,115,46,99,112,112,36,114,101,115,95,113,117,105,99,107,102,105,110, -100,98,97,114,95,119,111,114,100,46,112,110,103,60,47,111,98,106,101,99, -116,62,10,60,47,114,101,115,111,117,114,99,101,62,10}; +61,34,119,111,114,100,34,62,113,117,105,99,107,102,105,110,100,98,97,114, +98,97,115,101,95,108,105,116,101,101,100,105,116,111,114,95,98,105,116, +109,97,112,115,46,99,112,112,36,114,101,115,95,113,117,105,99,107,102,105, +110,100,98,97,114,95,119,111,114,100,46,112,110,103,60,47,111,98,106,101, +99,116,62,10,60,47,114,101,115,111,117,114,99,101,62,10}; void wxCrafteryhjh4ZInitBitmapResources() { diff -Nru codelite-8.0.1+dfsg2/LiteEditor/quickfindbarbase.wxcp codelite-9.0+dfsg/LiteEditor/quickfindbarbase.wxcp --- codelite-8.0.1+dfsg2/LiteEditor/quickfindbarbase.wxcp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/quickfindbarbase.wxcp 2015-10-11 13:56:07.000000000 +0000 @@ -17,7 +17,7 @@ "border": 0, "gbSpan": ",", "gbPosition": ",", - "m_styles": ["wxTAB_TRAVERSAL", "wxTRANSPARENT_WINDOW", "wxBORDER_STATIC"], + "m_styles": ["wxTAB_TRAVERSAL", "wxTRANSPARENT_WINDOW"], "m_sizerFlags": [], "m_properties": [{ "type": "string", @@ -108,6 +108,10 @@ "m_sizerFlags": [], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "mainSizer" }, { @@ -220,6 +224,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "boxSizer60" }, { @@ -309,6 +317,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_HORIZONTAL", "wxALIGN_CENTER_VERTICAL"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "gridSizer49" }, { diff -Nru codelite-8.0.1+dfsg2/LiteEditor/quickfindbar.cpp codelite-9.0+dfsg/LiteEditor/quickfindbar.cpp --- codelite-8.0.1+dfsg2/LiteEditor/quickfindbar.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/quickfindbar.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -76,7 +76,7 @@ , m_regexType(kRegexNone) { m_bar = new wxFlatButtonBar(this, wxFlatButton::kThemeNormal, 0, 9); - + //------------------------------------------------------------- // Find / Replace bar //------------------------------------------------------------- @@ -86,13 +86,13 @@ m_bar->SetExpandableColumn(5); GetSizer()->Add(m_bar, 1, wxEXPAND | wxALL, 2); QuickFindBarImages images; - + // Add the 'close' button m_closeButton = m_bar->AddButton("", images.Bitmap("find-bar-close-16"), wxSize(24, -1)); m_closeButton->SetToolTip(_("Close")); m_closeButton->Bind(wxEVT_KEY_DOWN, &QuickFindBar::OnKeyDown, this); m_closeButton->Bind(wxEVT_CMD_FLATBUTTON_CLICK, &QuickFindBar::OnHideBar, this); - + // Add the 'case sensitive' button m_caseSensitive = m_bar->AddButton("", images.Bitmap("case-sensitive"), wxSize(24, -1)); m_caseSensitive->SetTogglable(true); @@ -120,7 +120,7 @@ m_regexOrWildMenu->Bind(wxEVT_COMMAND_MENU_SELECTED, &QuickFindBar::OnUseRegex, this, ID_MENU_REGEX); m_regexOrWildMenu->Bind(wxEVT_COMMAND_MENU_SELECTED, &QuickFindBar::OnUseWildcards, this, ID_MENU_WILDCARD); m_regexOrWildMenu->Bind(wxEVT_COMMAND_MENU_SELECTED, &QuickFindBar::OnNoRegex, this, ID_MENU_NO_REGEX); - + // Marker button wxFlatButton* btnMarker = m_bar->AddButton("", images.Bitmap("marker-16"), wxSize(24, -1)); btnMarker->SetTogglable(true); @@ -128,39 +128,39 @@ btnMarker->Bind(wxEVT_UPDATE_UI, &QuickFindBar::OnHighlightMatchesUI, this); btnMarker->Bind(wxEVT_KEY_DOWN, &QuickFindBar::OnKeyDown, this); btnMarker->SetToolTip(_("Highlight Occurences")); - + //=======---------------------- // Find what: //=======---------------------- wxArrayString m_findWhatArr; - m_findWhat = new wxComboBox( - m_bar, wxID_ANY, wxT(""), wxDefaultPosition, wxSize(-1, -1), m_findWhatArr, wxTE_PROCESS_ENTER); + m_findWhat = + new wxComboBox(m_bar, wxID_ANY, wxT(""), wxDefaultPosition, wxSize(-1, -1), m_findWhatArr, wxTE_PROCESS_ENTER); m_findWhat->SetToolTip(_("Hit ENTER to search, or Shift + ENTER to search backward")); m_findWhat->SetFocus(); m_findWhat->SetHint(_("Type to start a search...")); m_bar->AddControl(m_findWhat, 1, wxEXPAND | wxALL | wxALIGN_CENTER_VERTICAL); - - // Find + + // Find wxFlatButton* btnNext = m_bar->AddButton(_("Find"), wxNullBitmap, wxSize(100, -1), wxBORDER_SIMPLE); btnNext->Bind(wxEVT_CMD_FLATBUTTON_CLICK, &QuickFindBar::OnButtonNext, this); btnNext->Bind(wxEVT_KEY_DOWN, &QuickFindBar::OnKeyDown, this); btnNext->Bind(wxEVT_UPDATE_UI, &QuickFindBar::OnButtonNextUI, this); btnNext->SetToolTip(_("Find Next")); - + // Find Prev wxFlatButton* btnPrev = m_bar->AddButton(_("Find Prev"), wxNullBitmap, wxSize(100, -1), wxBORDER_SIMPLE); btnPrev->Bind(wxEVT_CMD_FLATBUTTON_CLICK, &QuickFindBar::OnButtonPrev, this); btnPrev->Bind(wxEVT_KEY_DOWN, &QuickFindBar::OnKeyDown, this); btnPrev->Bind(wxEVT_UPDATE_UI, &QuickFindBar::OnButtonPrevUI, this); btnPrev->SetToolTip(_("Find Previous")); - + // Find All wxFlatButton* btnAll = m_bar->AddButton(_("Find All"), wxNullBitmap, wxSize(100, -1), wxBORDER_SIMPLE); btnAll->Bind(wxEVT_CMD_FLATBUTTON_CLICK, &QuickFindBar::OnFindAll, this); btnAll->Bind(wxEVT_UPDATE_UI, &QuickFindBar::OnButtonPrevUI, this); btnAll->SetToolTip(_("Find and select all occurrences")); - + //=======---------------------- // Replace with (new row) //=======---------------------- @@ -170,20 +170,20 @@ m_bar->AddSpacer(0); m_bar->AddSpacer(0); m_bar->AddSpacer(0); - + wxArrayString m_replaceWithArr; m_replaceWith = new wxComboBox( m_bar, wxID_ANY, wxT(""), wxDefaultPosition, wxSize(-1, -1), m_replaceWithArr, wxTE_PROCESS_ENTER); m_replaceWith->SetToolTip(_("Type the replacement string and hit ENTER to perform the replacement")); m_replaceWith->SetHint(_("Type any replacement string...")); m_bar->AddControl(m_replaceWith, 1, wxEXPAND | wxALL | wxALIGN_CENTER_VERTICAL); - + m_buttonReplace = m_bar->AddButton(_("Replace"), wxNullBitmap, wxSize(100, -1), wxBORDER_SIMPLE); m_buttonReplace->SetToolTip(_("Replace the current selection")); m_buttonReplace->Bind(wxEVT_CMD_FLATBUTTON_CLICK, &QuickFindBar::OnButtonReplace, this); m_buttonReplace->Bind(wxEVT_UPDATE_UI, &QuickFindBar::OnButtonReplaceUI, this); m_buttonReplace->Bind(wxEVT_KEY_DOWN, &QuickFindBar::OnKeyDown, this); - + bool showreplace = EditorConfigST::Get()->GetOptions()->GetShowReplaceBar(); m_replaceWith->Show(showreplace); // Hide the replace-bar if desired m_buttonReplace->Show(showreplace); @@ -263,11 +263,10 @@ void QuickFindBar::DoSearch(size_t searchFlags, int posToSearchFrom) { - if(!m_sci || m_sci->GetLength() == 0 || m_findWhat->GetValue().IsEmpty()) - return; + if(!m_sci || m_sci->GetLength() == 0 || m_findWhat->GetValue().IsEmpty()) return; // Clear all search markers if desired - if (EditorConfigST::Get()->GetOptions()->GetClearHighlitWordsOnFind()) { + if(EditorConfigST::Get()->GetOptions()->GetClearHighlitWordsOnFind()) { m_sci->SetIndicatorCurrent(MARKER_WORD_HIGHLIGHT); m_sci->IndicatorClearRange(0, m_sci->GetLength()); } @@ -276,8 +275,7 @@ wxString find = m_findWhat->GetValue(); wchar_t* pinput = DoGetSearchStringPtr(); - if(!pinput) - return; + if(!pinput) return; int start = -1, stop = -1; m_sci->GetSelection(&start, &stop); @@ -333,18 +331,24 @@ void QuickFindBar::OnNext(wxCommandEvent& e) { wxUnusedVar(e); + if(!m_findWhat->GetValue().IsEmpty()) { + clConfig::Get().AddQuickFindSearchItem(m_findWhat->GetValue()); + // Update the search history + DoUpdateSearchHistory(); + } size_t flags = kSearchForward; - // if(GetOptionsMenu()->GetCheckBoxMultipleSelections()->IsChecked()) - // flags |= kSearchMultiSelect; DoSearch(flags); } void QuickFindBar::OnPrev(wxCommandEvent& e) { wxUnusedVar(e); + if(!m_findWhat->GetValue().IsEmpty()) { + clConfig::Get().AddQuickFindSearchItem(m_findWhat->GetValue()); + // Update the search history + DoUpdateSearchHistory(); + } size_t flags = 0; - // if(GetOptionsMenu()->GetCheckBoxMultipleSelections()->IsChecked()) - // flags |= kSearchMultiSelect; DoSearch(flags); } @@ -440,8 +444,7 @@ void QuickFindBar::OnReplace(wxCommandEvent& event) { wxUnusedVar(event); - if(!m_sci) - return; + if(!m_sci) return; // if there is no selection, invoke search int nNumSelections = m_sci->GetSelections(); @@ -460,8 +463,7 @@ selectionText = DoGetSelectedText(); } - if(selectionText.IsEmpty()) - return; + if(selectionText.IsEmpty()) return; wxString find = m_findWhat->GetValue(); wxString replaceWith = m_replaceWith->GetValue(); @@ -471,8 +473,7 @@ find.MakeLower(); } - if(find.IsEmpty()) - return; + if(find.IsEmpty()) return; if(!replaceWith.IsEmpty()) { clConfig::Get().AddQuickFindReplaceItem(replaceWith); @@ -567,8 +568,7 @@ bool QuickFindBar::Show(const wxString& findWhat) { // Same as Show() but set the 'findWhat' field with findWhat - if(!m_sci) - return false; + if(!m_sci) return false; return DoShow(true, findWhat); } @@ -589,7 +589,7 @@ m_sci->SetIndicatorCurrent(1); m_sci->IndicatorClearRange(0, m_sci->GetLength()); - if (EditorConfigST::Get()->GetOptions()->GetClearHighlitWordsOnFind()) { + if(EditorConfigST::Get()->GetOptions()->GetClearHighlitWordsOnFind()) { m_sci->SetIndicatorCurrent(MARKER_WORD_HIGHLIGHT); m_sci->IndicatorClearRange(0, m_sci->GetLength()); } @@ -635,7 +635,7 @@ options->SetShowReplaceBar(show); EditorConfigST::Get()->SetOptions(options); - + ShowReplacebar(show); } @@ -644,7 +644,7 @@ m_replaceWith->Show(show); m_buttonReplace->Show(show); m_bar->GetSizer()->Layout(); - if (IsShown()) { + if(IsShown()) { clMainFrame::Get()->SendSizeEvent(); // Needed to show/hide the 'replace' bar itself } } @@ -689,12 +689,10 @@ long end = m_sci->WordEndPosition(pos, true); selection = m_sci->GetTextRange(start, end); - if(selection.IsEmpty() == false) - m_sci->SetCurrentPos(start); + if(selection.IsEmpty() == false) m_sci->SetCurrentPos(start); } - if(selection.IsEmpty()) - return; + if(selection.IsEmpty()) return; m_findWhat->ChangeValue(selection); DoSearch(kSearchForward); @@ -712,12 +710,10 @@ long end = m_sci->WordEndPosition(pos, true); selection = m_sci->GetTextRange(start, end); - if(selection.IsEmpty() == false) - m_sci->SetCurrentPos(start); + if(selection.IsEmpty() == false) m_sci->SetCurrentPos(start); } - if(selection.IsEmpty()) - return; + if(selection.IsEmpty()) return; m_findWhat->ChangeValue(selection); DoSearch(0); @@ -725,12 +721,10 @@ void QuickFindBar::DoMarkAll(bool useIndicators) { - if(!m_sci) - return; + if(!m_sci) return; LEditor* editor = dynamic_cast(m_sci); - if(!editor) - return; + if(!editor) return; wxString findWhat = m_findWhat->GetValue(); @@ -750,8 +744,7 @@ int offset(0); wchar_t* pinput = DoGetSearchStringPtr(); - if(!pinput) - return; + if(!pinput) return; int fixed_offset(0); @@ -860,9 +853,9 @@ void QuickFindBar::OnQuickFindCommandEvent(wxCommandEvent& event) { - if (event.GetInt() > 0) { + if(event.GetInt() > 0) { // We need to delay further, or focus might be set too soon - event.SetInt(event.GetInt()-1); + event.SetInt(event.GetInt() - 1); wxPostEvent(this, event); } @@ -1020,12 +1013,10 @@ void QuickFindBar::DoUpdateSearchHistory() { wxString findWhat = m_findWhat->GetValue(); - if(findWhat.IsEmpty()) - return; - int where = m_findWhat->FindString(findWhat); - if(where == wxNOT_FOUND) { - m_findWhat->Insert(findWhat, 0); - } + if(findWhat.IsEmpty()) return; + m_findWhat->Clear(); + m_findWhat->ChangeValue(findWhat); + m_findWhat->Append(clConfig::Get().GetQuickFindSearchItems()); } void QuickFindBar::DoUpdateReplaceHistory() @@ -1059,41 +1050,33 @@ size_t QuickFindBar::DoGetSearchFlags() { m_flags = 0; - if(m_caseSensitive->IsChecked()) - m_flags |= wxSD_MATCHCASE; - if(m_regexType == kRegexPosix) - m_flags |= wxSD_REGULAREXPRESSION; - if(m_regexType == kRegexWildcard) - m_flags |= wxSD_WILDCARD; - if(m_wholeWord->IsChecked()) - m_flags |= wxSD_MATCHWHOLEWORD; + if(m_caseSensitive->IsChecked()) m_flags |= wxSD_MATCHCASE; + if(m_regexType == kRegexPosix) m_flags |= wxSD_REGULAREXPRESSION; + if(m_regexType == kRegexWildcard) m_flags |= wxSD_WILDCARD; + if(m_wholeWord->IsChecked()) m_flags |= wxSD_MATCHWHOLEWORD; return m_flags; } void QuickFindBar::OnFindAll(wxFlatButtonEvent& e) { wxUnusedVar(e); + if(!m_findWhat->GetValue().IsEmpty()) { + clConfig::Get().AddQuickFindSearchItem(m_findWhat->GetValue()); + // Update the search history + DoUpdateSearchHistory(); + } DoMarkAll(false); } - -void QuickFindBar::OnButtonReplace(wxFlatButtonEvent& e) -{ - OnReplace(e); -} - -void QuickFindBar::OnButtonReplaceUI(wxUpdateUIEvent& e) -{ - e.Enable(!m_findWhat->GetValue().IsEmpty()); -} - -void QuickFindBar::OnHideBar(wxFlatButtonEvent& e) -{ - OnHide(e); -} - -void QuickFindBar::OnFindMouseWheel(wxMouseEvent& e) + +void QuickFindBar::OnButtonReplace(wxFlatButtonEvent& e) { OnReplace(e); } + +void QuickFindBar::OnButtonReplaceUI(wxUpdateUIEvent& e) { e.Enable(!m_findWhat->GetValue().IsEmpty()); } + +void QuickFindBar::OnHideBar(wxFlatButtonEvent& e) { OnHide(e); } + +void QuickFindBar::OnFindMouseWheel(wxMouseEvent& e) { // Do nothing and disable the mouse wheel // by not calling 'skip' - wxUnusedVar(e); -} + wxUnusedVar(e); +} diff -Nru codelite-8.0.1+dfsg2/LiteEditor/reconcileprojectbase.cpp codelite-9.0+dfsg/LiteEditor/reconcileprojectbase.cpp --- codelite-8.0.1+dfsg2/LiteEditor/reconcileprojectbase.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/reconcileprojectbase.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -187,6 +187,8 @@ #if wxVERSION_NUMBER >= 2900 if(!wxPersistenceManager::Get().Find(m_notebook214)){ wxPersistenceManager::Get().RegisterAndRestore(m_notebook214); + } else { + wxPersistenceManager::Get().Restore(m_notebook214); } #endif @@ -199,6 +201,8 @@ #if wxVERSION_NUMBER >= 2900 if(!wxPersistenceManager::Get().Find(this)) { wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); } #endif // Connect events @@ -397,6 +401,8 @@ #if wxVERSION_NUMBER >= 2900 if(!wxPersistenceManager::Get().Find(this)) { wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); } #endif // Connect events @@ -507,6 +513,8 @@ #if wxVERSION_NUMBER >= 2900 if(!wxPersistenceManager::Get().Find(this)) { wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); } #endif // Connect events diff -Nru codelite-8.0.1+dfsg2/LiteEditor/reconcileprojectbase.h codelite-9.0+dfsg/LiteEditor/reconcileprojectbase.h --- codelite-8.0.1+dfsg2/LiteEditor/reconcileprojectbase.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/reconcileprojectbase.h 2015-10-11 13:56:07.000000000 +0000 @@ -4,8 +4,8 @@ // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// -#ifndef RECONCILEPROJECT_BASE_CLASSES_H -#define RECONCILEPROJECT_BASE_CLASSES_H +#ifndef CODELITE_LITEEDITOR_RECONCILEPROJECT_BASE_CLASSES_H +#define CODELITE_LITEEDITOR_RECONCILEPROJECT_BASE_CLASSES_H #include #include diff -Nru codelite-8.0.1+dfsg2/LiteEditor/reconcileproject.cpp codelite-9.0+dfsg/LiteEditor/reconcileproject.cpp --- codelite-8.0.1+dfsg2/LiteEditor/reconcileproject.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/reconcileproject.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -330,7 +330,7 @@ if(VD.empty()) { // If we were called from the root panel (so the user is trying to add unallocated files, or all files at once) // we need to know which VD to use - VirtualDirectorySelectorDlg selector(this, WorkspaceST::Get(), "", m_projname); + VirtualDirectorySelectorDlg selector(this, clCxxWorkspaceST::Get(), "", m_projname); selector.SetText("Please choose the Virtual Directory to which to add the files"); if(selector.ShowModal() == wxID_OK) { VD = selector.GetVirtualDirectoryPath(); @@ -398,7 +398,7 @@ { wxString suggestedPath, suggestedName; bool guessed = GuessNewVirtualDirName(suggestedPath, suggestedName); - VirtualDirectorySelectorDlg selector(this, WorkspaceST::Get(), suggestedPath, m_projname); + VirtualDirectorySelectorDlg selector(this, clCxxWorkspaceST::Get(), suggestedPath, m_projname); if(guessed) { selector.SetSuggestedName(suggestedName); } @@ -897,7 +897,7 @@ void ReconcileByRegexDlg::OnVDBrowse(wxCommandEvent& WXUNUSED(event)) { - VirtualDirectorySelectorDlg selector(this, WorkspaceST::Get(), m_textCtrlVirtualFolder->GetValue(), m_projname); + VirtualDirectorySelectorDlg selector(this, clCxxWorkspaceST::Get(), m_textCtrlVirtualFolder->GetValue(), m_projname); if(selector.ShowModal() == wxID_OK) { m_textCtrlVirtualFolder->ChangeValue(selector.GetVirtualDirectoryPath()); } diff -Nru codelite-8.0.1+dfsg2/LiteEditor/reconcileproject_liteeditor_bitmaps.cpp codelite-9.0+dfsg/LiteEditor/reconcileproject_liteeditor_bitmaps.cpp --- codelite-8.0.1+dfsg2/LiteEditor/reconcileproject_liteeditor_bitmaps.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/reconcileproject_liteeditor_bitmaps.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,207 +1,177 @@ -// -// This file was automatically generated by wxrc, do not edit by hand. -// - -#include - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#include -#include -#include -#include - -#if wxCHECK_VERSION(2,8,5) && wxABI_VERSION >= 20805 - #define XRC_ADD_FILE(name, data, size, mime) \ - wxMemoryFSHandler::AddFileWithMimeType(name, data, size, mime) -#else - #define XRC_ADD_FILE(name, data, size, mime) \ - wxMemoryFSHandler::AddFile(name, data, size) -#endif - -static size_t xml_res_size_0 = 507; -static unsigned char xml_res_file_0[] = { -137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, -0,31,243,255,97,0,0,0,6,98,75,71,68,0,255,0,255,0,255,160,189,167,147,0, -0,1,176,73,68,65,84,56,141,181,147,203,75,91,65,24,197,207,55,115,111,213, -235,5,41,106,162,226,139,44,20,114,161,34,34,62,226,194,231,66,80,144,162, -27,23,173,238,116,165,216,127,64,68,252,11,220,185,81,196,189,143,133,27, -69,178,80,162,17,68,69,16,241,209,118,35,129,80,73,201,85,147,155,153,113, -209,90,197,230,6,4,61,48,12,124,223,153,195,239,44,6,120,79,133,198,26, -188,251,19,117,75,153,60,204,109,17,30,253,84,173,145,60,84,9,49,248,234, -128,240,136,21,0,233,225,210,214,174,66,229,136,140,148,218,203,65,104, -216,234,135,202,90,168,232,237,49,140,226,18,200,164,68,104,200,82,233, -30,55,206,159,16,61,31,236,125,245,127,163,236,156,41,223,64,159,161,155, -58,88,246,71,128,105,0,49,16,113,128,113,128,56,0,224,104,122,18,77,75, -167,164,1,128,154,4,11,157,91,179,60,215,252,82,57,208,99,112,158,130,176, -99,16,118,52,45,246,7,111,45,164,35,159,42,236,28,87,237,230,20,154,254, -178,238,118,67,198,34,16,206,93,198,222,204,180,161,146,226,41,64,57,41, -37,238,29,136,223,49,40,39,6,153,188,205,24,160,229,199,161,254,18,48,0, -8,172,94,54,220,70,162,115,223,151,183,236,148,77,80,9,66,234,215,141,235, -145,113,27,210,121,70,64,128,194,250,207,241,96,71,249,213,143,181,237, -153,138,150,26,35,75,207,3,207,243,0,92,7,113,237,223,77,76,3,226,247,80, -201,63,4,244,18,47,24,40,254,76,156,47,86,214,251,141,92,175,7,71,43,155, -174,85,218,182,175,233,191,0,0,216,172,247,52,19,103,235,62,203,103,94, -28,95,176,142,189,72,90,95,90,130,71,109,212,20,84,49,142,160,84,40,234, -60,136,186,250,92,255,66,231,97,244,140,18,84,171,28,177,232,230,121,19, -61,0,184,161,162,175,17,230,24,13,0,0,0,0,73,69,78,68,174,66,96,130}; - -static size_t xml_res_size_1 = 498; -static unsigned char xml_res_file_1[] = { -137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, -0,31,243,255,97,0,0,0,6,98,75,71,68,0,255,0,255,0,255,160,189,167,147,0, -0,1,167,73,68,65,84,56,141,181,146,207,75,84,81,20,199,63,119,156,17,116, -104,19,132,4,225,162,9,11,166,6,10,52,97,192,137,172,133,171,92,10,22,182, -44,144,126,109,139,176,63,160,69,251,32,138,118,70,8,21,173,204,22,249, -3,158,32,18,227,98,22,131,26,37,14,226,32,188,247,154,121,247,157,115,91, -148,34,229,188,69,212,119,115,23,231,123,63,247,124,207,185,240,63,181, -120,239,220,203,133,219,231,187,146,60,169,164,162,107,234,104,218,232, -178,119,179,112,242,239,0,86,56,118,225,242,17,76,198,243,110,228,139,7, -121,12,192,194,245,188,107,5,57,125,231,22,225,198,55,214,166,222,132,18, -53,199,250,159,149,95,253,1,152,31,61,229,10,15,38,126,61,43,160,130,115, -2,78,65,99,180,81,199,250,150,234,228,84,232,26,223,31,246,61,95,121,188, -11,72,3,168,85,16,33,218,92,106,25,167,173,61,203,241,145,225,206,213,201, -183,143,230,175,230,115,253,39,202,227,102,2,77,3,184,72,136,131,0,187, -93,79,152,72,29,147,233,160,123,232,98,246,203,187,15,99,115,159,123,122, -161,210,251,19,96,21,9,124,108,125,59,1,0,169,246,78,76,70,145,134,197, -217,216,237,139,32,168,31,16,39,116,208,150,61,76,108,13,95,63,206,4,77, -63,120,58,240,126,253,238,30,192,69,74,202,111,112,168,187,136,211,24,39, -49,136,221,59,101,167,134,221,81,214,62,205,134,98,229,126,105,122,253, -201,46,216,0,204,20,143,182,92,99,225,202,32,193,102,141,85,111,37,116, -34,215,74,179,27,175,247,215,77,82,230,233,190,46,151,59,147,211,106,185, -234,59,209,161,65,175,54,247,187,39,157,4,112,86,168,46,85,106,42,148,46, -45,111,85,14,242,36,127,229,72,94,152,166,57,219,234,242,63,209,15,99,239, -209,86,3,110,246,131,0,0,0,0,73,69,78,68,174,66,96,130}; - -static size_t xml_res_size_2 = 781; -static unsigned char xml_res_file_2[] = { -137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, -0,31,243,255,97,0,0,0,25,116,69,88,116,83,111,102,116,119,97,114,101,0, -65,100,111,98,101,32,73,109,97,103,101,82,101,97,100,121,113,201,101,60, -0,0,2,175,73,68,65,84,120,218,116,147,81,72,83,97,20,199,207,221,238,174, -45,177,36,27,229,32,111,206,50,31,84,170,141,106,20,61,248,80,98,172,160, -151,193,156,62,24,181,151,37,11,76,193,167,144,32,168,8,243,41,179,40,152, -15,74,200,192,69,107,145,3,97,204,32,174,200,86,195,124,240,33,135,15,51, -37,221,118,119,239,118,175,183,243,221,216,212,181,14,28,190,239,220,251, -253,206,255,156,243,221,75,5,222,80,80,106,140,14,160,234,128,186,181,163, -79,10,89,0,73,86,99,255,151,111,167,108,145,232,137,234,245,245,245,223, -232,64,67,25,203,229,1,54,55,161,133,97,160,51,151,131,184,36,65,44,177, -118,24,18,201,26,219,252,143,147,141,162,40,180,43,138,242,9,143,46,106, -100,204,92,198,187,68,17,158,182,88,110,219,200,74,226,213,181,26,32,176, -32,8,237,62,159,239,249,224,224,224,164,44,203,103,105,141,118,175,58,141, -53,209,90,240,242,89,136,5,253,47,245,12,67,13,188,11,192,66,6,118,224, -80,40,20,237,237,237,157,194,4,243,52,233,183,52,129,126,31,216,243,121, -152,76,103,192,235,247,43,11,211,51,112,29,219,31,73,167,211,108,1,110, -50,241,67,15,239,173,1,77,250,45,233,191,11,213,59,201,44,151,87,168,177, -233,25,5,97,24,233,239,239,103,173,86,171,152,74,165,166,36,73,26,234,184, -188,5,91,41,240,211,56,164,61,134,202,94,158,87,152,229,4,229,125,244,226, -47,220,215,215,199,6,2,1,49,22,139,165,12,6,195,144,78,167,131,186,90,145, -36,176,209,19,239,255,73,64,252,117,65,217,227,241,176,193,96,80,133,49, -54,28,106,115,193,209,43,110,88,145,110,194,49,152,3,10,202,155,10,187, -221,110,118,118,118,182,8,159,30,240,65,117,211,69,80,182,183,65,204,102, -225,130,244,4,180,255,131,93,46,23,27,14,135,139,112,235,253,41,56,216, -104,29,197,253,3,252,6,120,89,146,162,75,153,86,208,148,131,123,122,122, -216,72,36,162,194,85,13,231,12,103,30,127,7,166,182,25,114,130,96,118,180, -31,49,227,234,193,36,78,2,104,75,225,238,238,110,150,227,56,21,174,172, -183,24,234,111,141,141,42,168,138,119,126,103,49,26,5,125,165,222,120,181, -173,222,248,149,75,176,216,10,79,237,134,29,14,7,139,96,177,108,163,99, -4,26,58,110,172,94,187,84,87,187,132,79,210,210,142,90,221,126,0,223,219, -48,71,18,152,208,67,118,187,157,141,199,227,69,152,28,50,222,253,8,88,234, -40,42,153,73,156,202,100,160,185,205,108,54,182,152,96,238,213,7,142,210, -104,134,201,12,150,209,61,165,112,193,16,118,225,192,44,121,81,180,144, -31,39,115,220,4,159,159,77,112,124,58,61,140,239,198,11,51,88,76,38,147, -63,113,117,238,134,171,206,59,73,5,234,181,109,109,108,128,156,203,153, -127,205,205,131,156,207,15,107,117,186,113,166,162,2,254,8,48,0,209,89, -128,160,35,189,211,201,0,0,0,0,73,69,78,68,174,66,96,130}; - -static size_t xml_res_size_3 = 632; -static unsigned char xml_res_file_3[] = { -137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, -0,31,243,255,97,0,0,0,25,116,69,88,116,83,111,102,116,119,97,114,101,0, -65,100,111,98,101,32,73,109,97,103,101,82,101,97,100,121,113,201,101,60, -0,0,2,26,73,68,65,84,120,218,164,83,61,111,19,65,16,125,179,187,103,7,131, -81,8,4,10,155,68,20,72,161,224,67,73,68,75,19,104,41,40,144,16,162,129, -34,5,13,255,0,209,210,128,132,172,132,134,6,148,54,13,66,164,65,66,162, -76,224,226,2,100,36,7,35,36,155,96,130,125,150,239,156,203,221,46,179,119, -206,23,208,32,143,116,186,189,157,153,247,102,222,204,145,49,6,131,152, -192,128,166,202,243,51,139,58,10,175,26,29,39,23,36,36,72,170,50,145,56, -199,95,251,163,169,127,67,132,109,159,178,201,231,103,159,1,91,81,26,36, -37,86,158,220,56,203,32,134,232,15,0,78,34,33,32,84,230,19,19,157,73,0, -140,214,156,188,137,176,242,16,198,16,156,194,53,76,206,62,231,230,250, -201,22,100,27,200,190,148,130,91,186,53,33,73,76,241,253,178,74,28,166, -203,142,3,236,151,136,214,95,241,197,203,36,150,24,196,196,26,65,199,239, -151,110,144,41,92,231,120,131,142,31,94,204,31,204,90,0,118,197,62,132, -51,196,71,105,139,220,97,214,172,75,229,157,139,160,213,177,44,236,225, -137,209,125,8,169,144,115,156,18,235,246,32,5,160,77,75,135,160,29,32,233, -59,165,67,109,165,130,209,177,17,28,191,89,2,18,145,77,250,88,191,147,129, -59,119,251,152,178,101,34,242,240,249,173,139,238,47,111,87,47,214,99,124, -234,52,142,20,142,98,171,250,136,171,214,73,233,22,64,230,138,8,197,4,154, -237,112,73,89,102,191,190,198,202,2,211,247,22,184,157,184,175,150,68,252, -181,4,109,120,85,40,147,150,159,0,107,6,24,71,235,227,42,190,172,247,94, -40,158,55,58,245,26,14,23,121,42,221,42,116,115,137,67,69,10,34,179,124, -218,187,107,172,3,49,211,208,33,252,172,186,184,243,248,195,98,210,66,187, -241,13,197,233,75,220,74,29,148,205,115,170,216,29,225,62,99,0,103,4,126, -99,13,223,27,205,215,171,243,51,158,178,65,193,70,11,185,83,39,129,94,139, -7,49,140,191,54,112,175,101,135,177,177,252,30,181,31,189,133,19,163,76, -230,206,93,246,120,96,121,29,197,176,75,101,118,54,230,223,102,139,50,36, -218,147,119,223,140,149,159,94,241,108,228,133,68,177,255,51,187,247,110, -186,91,3,254,206,191,5,24,0,171,203,191,162,234,194,67,169,0,0,0,0,73,69, -78,68,174,66,96,130}; - -static size_t xml_res_size_4 = 630; -static unsigned char xml_res_file_4[] = { -60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, -110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, -115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, -47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, -47,119,120,120,114,99,34,62,10,32,32,60,111,98,106,101,99,116,32,99,108, -97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61, -34,98,97,99,107,34,62,114,101,99,111,110,99,105,108,101,112,114,111,106, -101,99,116,95,108,105,116,101,101,100,105,116,111,114,95,98,105,116,109, -97,112,115,46,99,112,112,36,46,46,95,99,111,100,101,108,105,116,101,45, -105,99,111,110,115,95,116,111,111,108,98,97,114,115,95,49,54,95,115,116, -97,110,100,97,114,100,95,98,97,99,107,46,112,110,103,60,47,111,98,106,101, -99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34, -119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,102,111,114,119, -97,114,100,34,62,114,101,99,111,110,99,105,108,101,112,114,111,106,101, -99,116,95,108,105,116,101,101,100,105,116,111,114,95,98,105,116,109,97, -112,115,46,99,112,112,36,46,46,95,99,111,100,101,108,105,116,101,45,105, -99,111,110,115,95,116,111,111,108,98,97,114,115,95,49,54,95,115,116,97, -110,100,97,114,100,95,102,111,114,119,97,114,100,46,112,110,103,60,47,111, -98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115, -115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,119, -97,110,100,34,62,114,101,99,111,110,99,105,108,101,112,114,111,106,101, -99,116,95,108,105,116,101,101,100,105,116,111,114,95,98,105,116,109,97, -112,115,46,99,112,112,36,46,46,95,105,99,111,110,115,95,119,97,110,100, -46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101, -99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110, -97,109,101,61,34,119,120,100,105,114,112,105,99,107,101,114,99,116,114, -108,34,62,114,101,99,111,110,99,105,108,101,112,114,111,106,101,99,116, -95,108,105,116,101,101,100,105,116,111,114,95,98,105,116,109,97,112,115, -46,99,112,112,36,46,46,95,46,46,95,119,120,99,114,97,102,116,101,114,95, -114,101,115,111,117,114,99,101,115,95,119,120,100,105,114,112,105,99,107, -101,114,99,116,114,108,46,112,110,103,60,47,111,98,106,101,99,116,62,10, -60,47,114,101,115,111,117,114,99,101,62,10}; - -void wxCrafterjdrz3kInitBitmapResources() -{ - - // Check for memory FS. If not present, load the handler: - { - wxMemoryFSHandler::AddFile(wxT("XRC_resource/dummy_file"), wxT("dummy one")); - wxFileSystem fsys; - wxFSFile *f = fsys.OpenFile(wxT("memory:XRC_resource/dummy_file")); - wxMemoryFSHandler::RemoveFile(wxT("XRC_resource/dummy_file")); - if (f) delete f; - else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase); - } - - XRC_ADD_FILE(wxT("XRC_resource/reconcileproject_liteeditor_bitmaps.cpp$.._codelite-icons_toolbars_16_standard_back.png"), xml_res_file_0, xml_res_size_0, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/reconcileproject_liteeditor_bitmaps.cpp$.._codelite-icons_toolbars_16_standard_forward.png"), xml_res_file_1, xml_res_size_1, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/reconcileproject_liteeditor_bitmaps.cpp$.._icons_wand.png"), xml_res_file_2, xml_res_size_2, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/reconcileproject_liteeditor_bitmaps.cpp$.._.._wxcrafter_resources_wxdirpickerctrl.png"), xml_res_file_3, xml_res_size_3, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/reconcileproject_liteeditor_bitmaps.cpp$_home_david_devel_git_CL_LiteEditor_reconcileproject_liteeditor_bitmaps.xrc"), xml_res_file_4, xml_res_size_4, wxT("text/xml")); - wxXmlResource::Get()->Load(wxT("memory:XRC_resource/reconcileproject_liteeditor_bitmaps.cpp$_home_david_devel_git_CL_LiteEditor_reconcileproject_liteeditor_bitmaps.xrc")); -} +// +// This file was automatically generated by wxrc, do not edit by hand. +// + +#include + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +#include +#include +#include +#include + +#if wxCHECK_VERSION(2,8,5) && wxABI_VERSION >= 20805 + #define XRC_ADD_FILE(name, data, size, mime) \ + wxMemoryFSHandler::AddFileWithMimeType(name, data, size, mime) +#else + #define XRC_ADD_FILE(name, data, size, mime) \ + wxMemoryFSHandler::AddFile(name, data, size) +#endif + +static size_t xml_res_size_0 = 507; +static unsigned char xml_res_file_0[] = { +137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, +0,31,243,255,97,0,0,0,6,98,75,71,68,0,255,0,255,0,255,160,189,167,147,0, +0,1,176,73,68,65,84,56,141,181,147,203,75,91,65,24,197,207,55,115,111,213, +235,5,41,106,162,226,139,44,20,114,161,34,34,62,226,194,231,66,80,144,162, +27,23,173,238,116,165,216,127,64,68,252,11,220,185,81,196,189,143,133,27, +69,178,80,162,17,68,69,16,241,209,118,35,129,80,73,201,85,147,155,153,113, +209,90,197,230,6,4,61,48,12,124,223,153,195,239,44,6,120,79,133,198,26, +188,251,19,117,75,153,60,204,109,17,30,253,84,173,145,60,84,9,49,248,234, +128,240,136,21,0,233,225,210,214,174,66,229,136,140,148,218,203,65,104, +216,234,135,202,90,168,232,237,49,140,226,18,200,164,68,104,200,82,233, +30,55,206,159,16,61,31,236,125,245,127,163,236,156,41,223,64,159,161,155, +58,88,246,71,128,105,0,49,16,113,128,113,128,56,0,224,104,122,18,77,75, +167,164,1,128,154,4,11,157,91,179,60,215,252,82,57,208,99,112,158,130,176, +99,16,118,52,45,246,7,111,45,164,35,159,42,236,28,87,237,230,20,154,254, +178,238,118,67,198,34,16,206,93,198,222,204,180,161,146,226,41,64,57,41, +37,238,29,136,223,49,40,39,6,153,188,205,24,160,229,199,161,254,18,48,0, +8,172,94,54,220,70,162,115,223,151,183,236,148,77,80,9,66,234,215,141,235, +145,113,27,210,121,70,64,128,194,250,207,241,96,71,249,213,143,181,237, +153,138,150,26,35,75,207,3,207,243,0,92,7,113,237,223,77,76,3,226,247,80, +201,63,4,244,18,47,24,40,254,76,156,47,86,214,251,141,92,175,7,71,43,155, +174,85,218,182,175,233,191,0,0,216,172,247,52,19,103,235,62,203,103,94, +28,95,176,142,189,72,90,95,90,130,71,109,212,20,84,49,142,160,84,40,234, +60,136,186,250,92,255,66,231,97,244,140,18,84,171,28,177,232,230,121,19, +61,0,184,161,162,175,17,230,24,13,0,0,0,0,73,69,78,68,174,66,96,130}; + +static size_t xml_res_size_1 = 498; +static unsigned char xml_res_file_1[] = { +137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, +0,31,243,255,97,0,0,0,6,98,75,71,68,0,255,0,255,0,255,160,189,167,147,0, +0,1,167,73,68,65,84,56,141,181,146,207,75,84,81,20,199,63,119,156,17,116, +104,19,132,4,225,162,9,11,166,6,10,52,97,192,137,172,133,171,92,10,22,182, +44,144,126,109,139,176,63,160,69,251,32,138,118,70,8,21,173,204,22,249, +3,158,32,18,227,98,22,131,26,37,14,226,32,188,247,154,121,247,157,115,91, +148,34,229,188,69,212,119,115,23,231,123,63,247,124,207,185,240,63,181, +120,239,220,203,133,219,231,187,146,60,169,164,162,107,234,104,218,232, +178,119,179,112,242,239,0,86,56,118,225,242,17,76,198,243,110,228,139,7, +121,12,192,194,245,188,107,5,57,125,231,22,225,198,55,214,166,222,132,18, +53,199,250,159,149,95,253,1,152,31,61,229,10,15,38,126,61,43,160,130,115, +2,78,65,99,180,81,199,250,150,234,228,84,232,26,223,31,246,61,95,121,188, +11,72,3,168,85,16,33,218,92,106,25,167,173,61,203,241,145,225,206,213,201, +183,143,230,175,230,115,253,39,202,227,102,2,77,3,184,72,136,131,0,187, +93,79,152,72,29,147,233,160,123,232,98,246,203,187,15,99,115,159,123,122, +161,210,251,19,96,21,9,124,108,125,59,1,0,169,246,78,76,70,145,134,197, +217,216,237,139,32,168,31,16,39,116,208,150,61,76,108,13,95,63,206,4,77, +63,120,58,240,126,253,238,30,192,69,74,202,111,112,168,187,136,211,24,39, +49,136,221,59,101,167,134,221,81,214,62,205,134,98,229,126,105,122,253, +201,46,216,0,204,20,143,182,92,99,225,202,32,193,102,141,85,111,37,116, +34,215,74,179,27,175,247,215,77,82,230,233,190,46,151,59,147,211,106,185, +234,59,209,161,65,175,54,247,187,39,157,4,112,86,168,46,85,106,42,148,46, +45,111,85,14,242,36,127,229,72,94,152,166,57,219,234,242,63,209,15,99,239, +209,86,3,110,246,131,0,0,0,0,73,69,78,68,174,66,96,130}; + +static size_t xml_res_size_2 = 781; +static unsigned char xml_res_file_2[] = { +137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, +0,31,243,255,97,0,0,0,25,116,69,88,116,83,111,102,116,119,97,114,101,0, +65,100,111,98,101,32,73,109,97,103,101,82,101,97,100,121,113,201,101,60, +0,0,2,175,73,68,65,84,120,218,116,147,81,72,83,97,20,199,207,221,238,174, +45,177,36,27,229,32,111,206,50,31,84,170,141,106,20,61,248,80,98,172,160, +151,193,156,62,24,181,151,37,11,76,193,167,144,32,168,8,243,41,179,40,152, +15,74,200,192,69,107,145,3,97,204,32,174,200,86,195,124,240,33,135,15,51, +37,221,118,119,239,118,175,183,243,221,216,212,181,14,28,190,239,220,251, +253,206,255,156,243,221,75,5,222,80,80,106,140,14,160,234,128,186,181,163, +79,10,89,0,73,86,99,255,151,111,167,108,145,232,137,234,245,245,245,223, +232,64,67,25,203,229,1,54,55,161,133,97,160,51,151,131,184,36,65,44,177, +118,24,18,201,26,219,252,143,147,141,162,40,180,43,138,242,9,143,46,106, +100,204,92,198,187,68,17,158,182,88,110,219,200,74,226,213,181,26,32,176, +32,8,237,62,159,239,249,224,224,224,164,44,203,103,105,141,118,175,58,141, +53,209,90,240,242,89,136,5,253,47,245,12,67,13,188,11,192,66,6,118,224, +80,40,20,237,237,237,157,194,4,243,52,233,183,52,129,126,31,216,243,121, +152,76,103,192,235,247,43,11,211,51,112,29,219,31,73,167,211,108,1,110, +50,241,67,15,239,173,1,77,250,45,233,191,11,213,59,201,44,151,87,168,177, +233,25,5,97,24,233,239,239,103,173,86,171,152,74,165,166,36,73,26,234,184, +188,5,91,41,240,211,56,164,61,134,202,94,158,87,152,229,4,229,125,244,226, +47,220,215,215,199,6,2,1,49,22,139,165,12,6,195,144,78,167,131,186,90,145, +36,176,209,19,239,255,73,64,252,117,65,217,227,241,176,193,96,80,133,49, +54,28,106,115,193,209,43,110,88,145,110,194,49,152,3,10,202,155,10,187, +221,110,118,118,118,182,8,159,30,240,65,117,211,69,80,182,183,65,204,102, +225,130,244,4,180,255,131,93,46,23,27,14,135,139,112,235,253,41,56,216, +104,29,197,253,3,252,6,120,89,146,162,75,153,86,208,148,131,123,122,122, +216,72,36,162,194,85,13,231,12,103,30,127,7,166,182,25,114,130,96,118,180, +31,49,227,234,193,36,78,2,104,75,225,238,238,110,150,227,56,21,174,172, +183,24,234,111,141,141,42,168,138,119,126,103,49,26,5,125,165,222,120,181, +173,222,248,149,75,176,216,10,79,237,134,29,14,7,139,96,177,108,163,99, +4,26,58,110,172,94,187,84,87,187,132,79,210,210,142,90,221,126,0,223,219, +48,71,18,152,208,67,118,187,157,141,199,227,69,152,28,50,222,253,8,88,234, +40,42,153,73,156,202,100,160,185,205,108,54,182,152,96,238,213,7,142,210, +104,134,201,12,150,209,61,165,112,193,16,118,225,192,44,121,81,180,144, +31,39,115,220,4,159,159,77,112,124,58,61,140,239,198,11,51,88,76,38,147, +63,113,117,238,134,171,206,59,73,5,234,181,109,109,108,128,156,203,153, +127,205,205,131,156,207,15,107,117,186,113,166,162,2,254,8,48,0,209,89, +128,160,35,189,211,201,0,0,0,0,73,69,78,68,174,66,96,130}; + +static size_t xml_res_size_3 = 0; +static unsigned char xml_res_file_3[] = { +}; + +static size_t xml_res_size_4 = 630; +static unsigned char xml_res_file_4[] = { +60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, +110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, +115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, +47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, +47,119,120,120,114,99,34,62,10,32,32,60,111,98,106,101,99,116,32,99,108, +97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61, +34,98,97,99,107,34,62,114,101,99,111,110,99,105,108,101,112,114,111,106, +101,99,116,95,108,105,116,101,101,100,105,116,111,114,95,98,105,116,109, +97,112,115,46,99,112,112,36,46,46,95,99,111,100,101,108,105,116,101,45, +105,99,111,110,115,95,116,111,111,108,98,97,114,115,95,49,54,95,115,116, +97,110,100,97,114,100,95,98,97,99,107,46,112,110,103,60,47,111,98,106,101, +99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34, +119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,102,111,114,119, +97,114,100,34,62,114,101,99,111,110,99,105,108,101,112,114,111,106,101, +99,116,95,108,105,116,101,101,100,105,116,111,114,95,98,105,116,109,97, +112,115,46,99,112,112,36,46,46,95,99,111,100,101,108,105,116,101,45,105, +99,111,110,115,95,116,111,111,108,98,97,114,115,95,49,54,95,115,116,97, +110,100,97,114,100,95,102,111,114,119,97,114,100,46,112,110,103,60,47,111, +98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115, +115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,119, +97,110,100,34,62,114,101,99,111,110,99,105,108,101,112,114,111,106,101, +99,116,95,108,105,116,101,101,100,105,116,111,114,95,98,105,116,109,97, +112,115,46,99,112,112,36,46,46,95,105,99,111,110,115,95,119,97,110,100, +46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101, +99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110, +97,109,101,61,34,119,120,100,105,114,112,105,99,107,101,114,99,116,114, +108,34,62,114,101,99,111,110,99,105,108,101,112,114,111,106,101,99,116, +95,108,105,116,101,101,100,105,116,111,114,95,98,105,116,109,97,112,115, +46,99,112,112,36,46,46,95,46,46,95,119,120,99,114,97,102,116,101,114,95, +114,101,115,111,117,114,99,101,115,95,119,120,100,105,114,112,105,99,107, +101,114,99,116,114,108,46,112,110,103,60,47,111,98,106,101,99,116,62,10, +60,47,114,101,115,111,117,114,99,101,62,10}; + +void wxCrafterjdrz3kInitBitmapResources() +{ + + // Check for memory FS. If not present, load the handler: + { + wxMemoryFSHandler::AddFile(wxT("XRC_resource/dummy_file"), wxT("dummy one")); + wxFileSystem fsys; + wxFSFile *f = fsys.OpenFile(wxT("memory:XRC_resource/dummy_file")); + wxMemoryFSHandler::RemoveFile(wxT("XRC_resource/dummy_file")); + if (f) delete f; + else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase); + } + + XRC_ADD_FILE(wxT("XRC_resource/reconcileproject_liteeditor_bitmaps.cpp$.._codelite-icons_toolbars_16_standard_back.png"), xml_res_file_0, xml_res_size_0, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/reconcileproject_liteeditor_bitmaps.cpp$.._codelite-icons_toolbars_16_standard_forward.png"), xml_res_file_1, xml_res_size_1, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/reconcileproject_liteeditor_bitmaps.cpp$.._icons_wand.png"), xml_res_file_2, xml_res_size_2, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/reconcileproject_liteeditor_bitmaps.cpp$.._.._wxcrafter_resources_wxdirpickerctrl.png"), xml_res_file_3, xml_res_size_3, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/reconcileproject_liteeditor_bitmaps.cpp$C__src_codelite_LiteEditor_reconcileproject_liteeditor_bitmaps.xrc"), xml_res_file_4, xml_res_size_4, wxT("text/xml")); + wxXmlResource::Get()->Load(wxT("memory:XRC_resource/reconcileproject_liteeditor_bitmaps.cpp$C__src_codelite_LiteEditor_reconcileproject_liteeditor_bitmaps.xrc")); +} diff -Nru codelite-8.0.1+dfsg2/LiteEditor/renamesymboldlg.cpp codelite-9.0+dfsg/LiteEditor/renamesymboldlg.cpp --- codelite-8.0.1+dfsg2/LiteEditor/renamesymboldlg.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/renamesymboldlg.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -71,7 +71,7 @@ void RenameSymbol::AddMatch(const CppToken& token, bool check) { - wxString relativeTo = WorkspaceST::Get()->GetWorkspaceFileName().GetPath(); + wxString relativeTo = clCxxWorkspaceST::Get()->GetWorkspaceFileName().GetPath(); wxFileName fn( token.getFilename() ); fn.MakeRelativeTo( relativeTo ); diff -Nru codelite-8.0.1+dfsg2/LiteEditor/rename_symbool_dlg.cpp codelite-9.0+dfsg/LiteEditor/rename_symbool_dlg.cpp --- codelite-8.0.1+dfsg2/LiteEditor/rename_symbool_dlg.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/rename_symbool_dlg.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,28 +1,3 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2014 The CodeLite Team -// file name : rename_symbool_dlg.cpp -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - ////////////////////////////////////////////////////////////////////// // This file was auto-generated by codelite's wxCrafter Plugin // wxCrafter project file: rename_symbool_dlg.wxcp @@ -61,6 +36,9 @@ m_textCtrlNewName = new wxTextCtrl(this, wxID_ANY, wxT(""), wxDefaultPosition, wxSize(-1, -1), 0); m_textCtrlNewName->SetFocus(); + #if wxVERSION_NUMBER >= 3000 + m_textCtrlNewName->SetHint(wxT("")); + #endif bSizer4->Add(m_textCtrlNewName, 1, wxALL, 5); @@ -156,11 +134,19 @@ bSizer3->Add(m_buttonCancel, 0, wxALL|wxALIGN_RIGHT, 5); + SetName(wxT("RenameSymbolBase")); SetSizeHints(-1,-1); if ( GetSizer() ) { GetSizer()->Fit(this); } - Centre(); + CentreOnParent(); +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(this)) { + wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); + } +#endif // Connect events m_dvListCtrl->Connect(wxEVT_COMMAND_DATAVIEW_SELECTION_CHANGED, wxDataViewEventHandler(RenameSymbolBase::OnSelection), NULL, this); m_buttonCheckAll->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(RenameSymbolBase::OnCheckAll), NULL, this); @@ -233,11 +219,19 @@ boxSizer27->Add(m_button31, 0, wxALL, 5); + SetName(wxT("SelectProjectsDlgBase")); SetSizeHints(-1,-1); if ( GetSizer() ) { GetSizer()->Fit(this); } - Centre(wxBOTH); + CentreOnParent(wxBOTH); +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(this)) { + wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); + } +#endif // Connect events m_button37->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SelectProjectsDlgBase::OnSelectAll), NULL, this); m_button39->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SelectProjectsDlgBase::OnUnSelectAll), NULL, this); diff -Nru codelite-8.0.1+dfsg2/LiteEditor/rename_symbool_dlg_formbuilder_bitmaps.cpp codelite-9.0+dfsg/LiteEditor/rename_symbool_dlg_formbuilder_bitmaps.cpp --- codelite-8.0.1+dfsg2/LiteEditor/rename_symbool_dlg_formbuilder_bitmaps.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/rename_symbool_dlg_formbuilder_bitmaps.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,28 +1,3 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2014 The CodeLite Team -// file name : rename_symbool_dlg_formbuilder_bitmaps.cpp -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - // // This file was automatically generated by wxrc, do not edit by hand. // @@ -46,14 +21,13 @@ wxMemoryFSHandler::AddFile(name, data, size) #endif -static size_t xml_res_size_0 = 108; +static size_t xml_res_size_0 = 90; static unsigned char xml_res_file_0[] = { 60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, 110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, 115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, 47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, -47,119,120,120,114,99,34,32,118,101,114,115,105,111,110,61,34,50,46,51, -46,48,46,49,34,47,62,10}; +47,119,120,120,114,99,34,47,62,10}; void wxCF5E0InitBitmapResources() { diff -Nru codelite-8.0.1+dfsg2/LiteEditor/rename_symbool_dlg.h codelite-9.0+dfsg/LiteEditor/rename_symbool_dlg.h --- codelite-8.0.1+dfsg2/LiteEditor/rename_symbool_dlg.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/rename_symbool_dlg.h 2015-10-11 13:56:07.000000000 +0000 @@ -1,36 +1,11 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2014 The CodeLite Team -// file name : rename_symbool_dlg.h -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - ////////////////////////////////////////////////////////////////////// // This file was auto-generated by codelite's wxCrafter Plugin // wxCrafter project file: rename_symbool_dlg.wxcp // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// -#ifndef RENAME_SYMBOOL_DLG_BASE_CLASSES_H -#define RENAME_SYMBOOL_DLG_BASE_CLASSES_H +#ifndef CODELITE_FORMBUILDER_RENAME_SYMBOOL_DLG_BASE_CLASSES_H +#define CODELITE_FORMBUILDER_RENAME_SYMBOOL_DLG_BASE_CLASSES_H #include #include @@ -49,10 +24,16 @@ #include #include #include +#if wxVERSION_NUMBER >= 2900 +#include +#include +#include +#include +#endif class RenameSymbolBase : public wxDialog { -protected: +public: enum { ID_CHECK_ALL = 1001, ID_UNCHECK_ALL = 1002, @@ -78,6 +59,18 @@ virtual void OnButtonOK(wxCommandEvent& event) { event.Skip(); } public: + wxStaticText* GetStaticText31() { return m_staticText31; } + wxTextCtrl* GetTextCtrlNewName() { return m_textCtrlNewName; } + wxDataViewListCtrl* GetDvListCtrl() { return m_dvListCtrl; } + wxButton* GetButtonCheckAll() { return m_buttonCheckAll; } + wxButton* GetButtonUncheckAll() { return m_buttonUncheckAll; } + wxPanel* GetSplitterPage11() { return m_splitterPage11; } + wxStyledTextCtrl* GetPreview() { return m_preview; } + wxPanel* GetSplitterPage15() { return m_splitterPage15; } + wxSplitterWindow* GetSplitter7() { return m_splitter7; } + wxStaticLine* GetStaticLine55() { return m_staticLine55; } + wxButton* GetButtonOk() { return m_buttonOk; } + wxButton* GetButtonCancel() { return m_buttonCancel; } RenameSymbolBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Rename Symbol"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER); virtual ~RenameSymbolBase(); }; @@ -85,7 +78,7 @@ class SelectProjectsDlgBase : public wxDialog { -protected: +public: enum { ID_CHECK_ALL = 1001, ID_UNCHECK_ALL = 1002, @@ -103,6 +96,12 @@ virtual void OnUnSelectAll(wxCommandEvent& event) { event.Skip(); } public: + wxBannerWindow* GetBanner45() { return m_banner45; } + wxCheckListBox* GetCheckListBoxProjects() { return m_checkListBoxProjects; } + wxButton* GetButton37() { return m_button37; } + wxButton* GetButton39() { return m_button39; } + wxButton* GetButton29() { return m_button29; } + wxButton* GetButton31() { return m_button31; } SelectProjectsDlgBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Rename Symbol Scope"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxDEFAULT_DIALOG_STYLE|wxCAPTION|wxRESIZE_BORDER); virtual ~SelectProjectsDlgBase(); }; diff -Nru codelite-8.0.1+dfsg2/LiteEditor/replaceinfilespanel.cpp codelite-9.0+dfsg/LiteEditor/replaceinfilespanel.cpp --- codelite-8.0.1+dfsg2/LiteEditor/replaceinfilespanel.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/replaceinfilespanel.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -32,6 +32,9 @@ #include "cl_editor.h" #include "manager.h" #include "replaceinfilespanel.h" +#include "clFileSystemEvent.h" +#include "event_notifier.h" +#include "macros.h" BEGIN_EVENT_TABLE(ReplaceInFilesPanel, FindResultsTab) EVT_BUTTON(XRCID("unmark_all"), ReplaceInFilesPanel::OnUnmarkAll) @@ -74,11 +77,12 @@ vertSizer->Add(horzSizer, 0, wxEXPAND | wxTOP | wxBOTTOM); // grab the base class scintilla and put our sizer in its place - wxSizer* mainSizer = m_hSizer; + wxSizer* mainSizer = m_vSizer; mainSizer->Detach(m_sci); vertSizer->Add(m_sci, 1, wxEXPAND | wxALL, 1); m_tb->DeleteTool(XRCID("repeat_output")); + m_tb->DeleteTool(XRCID("recent_searches")); m_tb->Realize(); #ifdef __WXMAC__ @@ -114,25 +118,32 @@ void ReplaceInFilesPanel::OnSearchMatch(wxCommandEvent& e) { FindResultsTab::OnSearchMatch(e); - const MatchInfo& matchInfo = GetMatchInfo(); - if(matchInfo.size() != 1 || !m_replaceWith->GetValue().IsEmpty()) return; - m_replaceWith->SetValue(matchInfo.begin()->second.GetFindWhat()); - m_replaceWith->SetSelection(-1, -1); + if(m_matchInfo.size() != 1 || !m_replaceWith->GetValue().IsEmpty()) return; + m_replaceWith->SetValue(m_matchInfo.begin()->second.GetFindWhat()); m_replaceWith->SetFocus(); } void ReplaceInFilesPanel::OnSearchEnded(wxCommandEvent& e) { + SearchSummary* summary = (SearchSummary*)e.GetClientData(); + CHECK_PTR_RET(summary); + + // set the "Replace With" field with the user value + m_replaceWith->ChangeValue(summary->GetReplaceWith()); + FindResultsTab::OnSearchEnded(e); OnMarkAll(e); + + // Set the focus to the "Replace With" field + m_replaceWith->CallAfter(&wxComboBox::SetFocus); } void ReplaceInFilesPanel::OnMarginClick(wxStyledTextEvent& e) { int line = m_sci->LineFromPosition(e.GetPosition()); - const MatchInfo& matchInfo = GetMatchInfo(); - if(matchInfo.find(line) == matchInfo.end()) { + if(m_matchInfo.find(line) == m_matchInfo.end()) { FindResultsTab::OnMarginClick(e); + } else if(m_sci->MarkerGet(line) & 7 << 0x7) { m_sci->MarkerDelete(line, 0x7); } else { @@ -142,8 +153,8 @@ void ReplaceInFilesPanel::OnMarkAll(wxCommandEvent& e) { - const MatchInfo& matchInfo = GetMatchInfo(); - for(MatchInfo::const_iterator i = matchInfo.begin(); i != matchInfo.end(); ++i) { + MatchInfo_t::const_iterator i = m_matchInfo.begin(); + for(; i != m_matchInfo.end(); ++i) { if(m_sci->MarkerGet(i->first) & 7 << 0x7) continue; m_sci->MarkerAdd(i->first, 0x7); } @@ -170,6 +181,12 @@ wxLogMessage(wxT("Replace: Failed to write file ") + begin->second.GetFileName()); ok = false; } + + if(sci && ok) { + // Keep the modified file name + m_filesModified.Add(begin->second.GetFileName()); + } + delete sci; } for(; begin != end; begin++) { @@ -204,6 +221,7 @@ void ReplaceInFilesPanel::OnReplace(wxCommandEvent& e) { + m_filesModified.clear(); // FIX bug#2770561 int lineNumber(0); LEditor* activeEditor = clMainFrame::Get()->GetMainBook()->GetActiveEditor(); @@ -224,14 +242,14 @@ long delta = 0; // remembers first entry in the file being updated - MatchInfo& matchInfo = GetMatchInfo(); - MatchInfo::iterator firstInFile = matchInfo.begin(); + MatchInfo_t::iterator firstInFile = m_matchInfo.begin(); - m_progress->SetRange(matchInfo.size()); + m_progress->SetRange(m_matchInfo.size()); // Disable the 'buffer limit' feature during replace clMainFrame::Get()->GetMainBook()->SetUseBuffereLimit(false); - for(MatchInfo::iterator i = firstInFile; i != matchInfo.end(); i++) { + MatchInfo_t::iterator i = firstInFile; + for(; i != m_matchInfo.end(); ++i) { m_progress->SetValue(m_progress->GetValue() + 1); m_progress->Update(); @@ -292,7 +310,7 @@ i->second.SetLen(m_replaceWith->GetValue().Length()); } m_progress->SetValue(0); - DoSaveResults(sci, firstInFile, matchInfo.end()); + DoSaveResults(sci, firstInFile, m_matchInfo.end()); // Disable the 'buffer limit' feature during replace clMainFrame::Get()->GetMainBook()->SetUseBuffereLimit(true); @@ -307,7 +325,8 @@ m_sci->SetReadOnly(false); std::vector itemsToRemove; - for(MatchInfo::iterator i = matchInfo.begin(); i != matchInfo.end(); i++) { + i = m_matchInfo.begin(); + for(; i != m_matchInfo.end(); i++) { int line = i->first + delta; if(i->second.GetFileName() != lastFile) { if(lastLine == line - 2) { @@ -335,27 +354,26 @@ delta--; } else if(line != i->first) { // need to adjust line number - matchInfo[line] = i->second; + m_matchInfo[line] = i->second; itemsToRemove.push_back(i->first); } } // update the match info map for(std::vector::size_type i = 0; i < itemsToRemove.size(); i++) { - MatchInfo::iterator iter = matchInfo.find(itemsToRemove.at(i)); - if(iter != matchInfo.end()) { - matchInfo.erase(iter); + MatchInfo_t::iterator iter = m_matchInfo.find(itemsToRemove.at(i)); + if(iter != m_matchInfo.end()) { + m_matchInfo.erase(iter); } } m_sci->SetReadOnly(true); m_sci->GotoLine(0); - if(matchInfo.empty()) { + if(m_matchInfo.empty()) { Clear(); } // Step 3: Notify user of changes to already opened files, ask to save - std::vector > filesToSave; for(std::set::iterator i = updatedEditors.begin(); i != updatedEditors.end(); i++) { filesToSave.push_back(std::make_pair(wxFileName(*i), true)); @@ -384,6 +402,14 @@ // restore the line activeEditor->GotoLine(lineNumber); } + + if(!m_filesModified.IsEmpty()) { + // Some files were modified directly on the file system, notify about it to the plugins + clFileSystemEvent event(wxEVT_FILES_MODIFIED_REPLACE_IN_FILES); + event.SetStrings(m_filesModified); + EventNotifier::Get()->AddPendingEvent(event); + m_filesModified.clear(); + } } void ReplaceInFilesPanel::OnReplaceUI(wxUpdateUIEvent& e) { e.Enable(m_sci->GetLength() > 0); } diff -Nru codelite-8.0.1+dfsg2/LiteEditor/replaceinfilespanel.h codelite-9.0+dfsg/LiteEditor/replaceinfilespanel.h --- codelite-8.0.1+dfsg2/LiteEditor/replaceinfilespanel.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/replaceinfilespanel.h 2015-10-11 13:56:07.000000000 +0000 @@ -27,37 +27,38 @@ #include "findresultstab.h" - class ReplaceInFilesPanel : public FindResultsTab { - wxComboBox *m_replaceWith; - wxGauge *m_progress; - wxStaticText *m_replaceWithText; - - void DoSaveResults(wxStyledTextCtrl *sci, std::map::iterator begin, - std::map::iterator end); + wxComboBox* m_replaceWith; + wxGauge* m_progress; + wxStaticText* m_replaceWithText; + wxArrayString m_filesModified; + + void DoSaveResults(wxStyledTextCtrl* sci, + std::map::iterator begin, + std::map::iterator end); - wxStyledTextCtrl *DoGetEditor(const wxString &fileName); + wxStyledTextCtrl* DoGetEditor(const wxString& fileName); // Event handlers - virtual void OnSearchStart(wxCommandEvent &e); - virtual void OnSearchMatch(wxCommandEvent &e); - virtual void OnSearchEnded(wxCommandEvent &e); - virtual void OnMarginClick(wxStyledTextEvent &e); - - virtual void OnMarkAll (wxCommandEvent &e); - virtual void OnUnmarkAll (wxCommandEvent &e); - virtual void OnReplace (wxCommandEvent &e); - - virtual void OnMarkAllUI (wxUpdateUIEvent &e); - virtual void OnUnmarkAllUI (wxUpdateUIEvent &e); - virtual void OnReplaceUI (wxUpdateUIEvent &e); - virtual void OnReplaceWithComboUI (wxUpdateUIEvent &e); - virtual void OnHoldOpenUpdateUI (wxUpdateUIEvent& e); + virtual void OnSearchStart(wxCommandEvent& e); + virtual void OnSearchMatch(wxCommandEvent& e); + virtual void OnSearchEnded(wxCommandEvent& e); + virtual void OnMarginClick(wxStyledTextEvent& e); + + virtual void OnMarkAll(wxCommandEvent& e); + virtual void OnUnmarkAll(wxCommandEvent& e); + virtual void OnReplace(wxCommandEvent& e); + + virtual void OnMarkAllUI(wxUpdateUIEvent& e); + virtual void OnUnmarkAllUI(wxUpdateUIEvent& e); + virtual void OnReplaceUI(wxUpdateUIEvent& e); + virtual void OnReplaceWithComboUI(wxUpdateUIEvent& e); + virtual void OnHoldOpenUpdateUI(wxUpdateUIEvent& e); DECLARE_EVENT_TABLE() public: - ReplaceInFilesPanel(wxWindow* parent, wxWindowID id, const wxString &name); + ReplaceInFilesPanel(wxWindow* parent, wxWindowID id, const wxString& name); }; #endif // __replaceinfilespanel__ Binary files /tmp/0wlVVhsoFK/codelite-8.0.1+dfsg2/LiteEditor/res/aui-close.png and /tmp/qKeBoHmecl/codelite-9.0+dfsg/LiteEditor/res/aui-close.png differ Binary files /tmp/0wlVVhsoFK/codelite-8.0.1+dfsg2/LiteEditor/res/aui-expand.png and /tmp/qKeBoHmecl/codelite-9.0+dfsg/LiteEditor/res/aui-expand.png differ Binary files /tmp/0wlVVhsoFK/codelite-8.0.1+dfsg2/LiteEditor/res/aui-minimize.png and /tmp/qKeBoHmecl/codelite-9.0+dfsg/LiteEditor/res/aui-minimize.png differ Binary files /tmp/0wlVVhsoFK/codelite-8.0.1+dfsg2/LiteEditor/res/aui-more.png and /tmp/qKeBoHmecl/codelite-9.0+dfsg/LiteEditor/res/aui-more.png differ Binary files /tmp/0wlVVhsoFK/codelite-8.0.1+dfsg2/LiteEditor/res/target-200.png and /tmp/qKeBoHmecl/codelite-9.0+dfsg/LiteEditor/res/target-200.png differ diff -Nru codelite-8.0.1+dfsg2/LiteEditor/resources.cpp codelite-9.0+dfsg/LiteEditor/resources.cpp --- codelite-8.0.1+dfsg2/LiteEditor/resources.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/resources.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -7054,8 +7054,70 @@ 150,209,232,82,84,208,173,176,163,75,113,141,12,164,24,24,24,54,143,214, 187,68,1,0,21,56,108,102,233,219,163,48,0,0,0,0,73,69,78,68,174,66,96,130}; -static size_t xml_res_size_29 = 705; +static size_t xml_res_size_29 = 347; static unsigned char xml_res_file_29[] = { +137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,12,0,0,0,12,8,6,0,0, +0,86,117,92,231,0,0,0,6,98,75,71,68,0,255,0,255,0,255,160,189,167,147,0, +0,0,9,112,72,89,115,0,0,13,215,0,0,13,215,1,66,40,155,120,0,0,0,7,116,73, +77,69,7,223,10,10,14,29,0,255,67,189,137,0,0,0,232,73,68,65,84,40,207,125, +145,65,74,3,65,16,69,95,207,160,57,195,95,102,225,78,20,234,26,130,72,130, +24,81,162,224,185,92,132,8,6,197,140,3,158,163,119,158,161,14,161,227,184, +169,145,70,39,254,85,243,251,87,117,213,235,100,102,51,224,20,184,203,57, +119,140,200,204,106,224,30,104,43,96,14,220,0,235,184,24,11,63,68,102,94, +1,75,96,13,92,2,79,102,182,87,132,39,64,11,44,34,179,76,69,151,21,112,5, +108,35,80,1,47,192,73,188,112,155,115,238,82,209,109,31,120,142,125,30, +129,20,133,45,112,158,115,254,32,204,177,121,23,97,109,128,235,18,70,197, +255,234,127,27,245,142,238,27,224,61,206,7,146,94,221,189,255,41,8,26,13, +48,27,104,196,242,211,0,113,40,169,113,247,175,20,225,63,52,118,209,171, +37,173,226,243,218,88,240,115,24,211,221,123,73,111,192,49,112,6,76,107, +73,147,24,237,98,64,87,202,221,59,73,91,224,8,104,190,1,0,84,84,58,224, +174,194,137,0,0,0,0,73,69,78,68,174,66,96,130}; + +static size_t xml_res_size_30 = 228; +static unsigned char xml_res_file_30[] = { +137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,12,0,0,0,12,8,6,0,0, +0,86,117,92,231,0,0,0,6,98,75,71,68,0,255,0,255,0,255,160,189,167,147,0, +0,0,9,112,72,89,115,0,0,13,215,0,0,13,215,1,66,40,155,120,0,0,0,7,116,73, +77,69,7,223,10,10,14,29,4,248,46,121,144,0,0,0,113,73,68,65,84,40,207,99, +102,64,3,70,70,70,93,146,146,146,43,37,37,37,5,158,63,127,190,23,93,158, +137,1,19,100,50,48,48,8,50,48,48,100,99,145,195,170,97,58,3,3,195,79,6, +6,134,169,12,212,0,140,88,252,160,200,192,192,224,207,192,192,176,225,220, +185,115,15,208,229,89,176,24,178,147,129,129,65,149,129,129,33,157,129, +129,65,147,24,63,48,226,178,29,151,13,110,48,39,81,197,211,204,131,47,226, +0,241,4,25,165,194,156,36,92,0,0,0,0,73,69,78,68,174,66,96,130}; + +static size_t xml_res_size_31 = 254; +static unsigned char xml_res_file_31[] = { +137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,12,0,0,0,12,8,6,0,0, +0,86,117,92,231,0,0,0,6,98,75,71,68,0,255,0,255,0,255,160,189,167,147,0, +0,0,9,112,72,89,115,0,0,13,215,0,0,13,215,1,66,40,155,120,0,0,0,7,116,73, +77,69,7,223,10,10,14,29,8,241,152,53,187,0,0,0,139,73,68,65,84,40,207,181, +145,203,13,132,48,12,68,95,34,74,128,74,76,17,64,79,156,210,1,197,0,69, +224,74,178,61,192,197,72,6,137,207,174,180,239,146,81,44,37,227,153,32, +34,43,71,58,85,157,0,68,164,5,70,63,44,236,252,0,139,233,236,230,25,152, +77,215,64,25,236,135,89,85,91,110,16,145,9,104,34,95,82,0,221,201,198,21, +61,48,240,119,130,69,151,85,117,121,88,186,6,170,104,57,167,23,143,39,96, +140,191,88,90,79,197,245,187,61,179,145,124,113,123,211,37,208,152,246, +209,85,238,30,128,13,30,107,38,80,86,177,85,180,0,0,0,0,73,69,78,68,174, +66,96,130}; + +static size_t xml_res_size_32 = 268; +static unsigned char xml_res_file_32[] = { +137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,12,0,0,0,12,8,6,0,0, +0,86,117,92,231,0,0,0,6,98,75,71,68,0,255,0,255,0,255,160,189,167,147,0, +0,0,9,112,72,89,115,0,0,13,215,0,0,13,215,1,66,40,155,120,0,0,0,7,116,73, +77,69,7,223,10,10,14,28,56,206,90,52,86,0,0,0,153,73,68,65,84,40,207,189, +145,61,10,2,81,12,132,63,245,29,193,102,174,17,216,118,251,221,118,239, +177,158,69,239,97,171,253,86,254,64,46,160,253,107,4,175,96,97,4,125,224, +226,54,14,4,134,36,147,132,201,130,128,153,245,146,14,146,78,57,231,107, +228,26,73,23,73,247,156,243,17,96,206,68,36,51,235,131,215,35,125,181,153, +61,5,192,250,135,193,93,4,9,104,139,226,185,224,45,127,197,204,204,154, +242,36,119,191,133,173,75,160,250,112,9,216,21,130,22,216,7,175,202,122, +2,86,111,182,118,95,46,217,2,3,64,114,247,77,172,103,68,48,188,250,38,127, +250,1,208,146,37,165,203,229,152,131,0,0,0,0,73,69,78,68,174,66,96,130}; + +static size_t xml_res_size_33 = 705; +static unsigned char xml_res_file_33[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,22,0,0,0,22,8,3,0,0, 0,243,106,156,9,0,0,0,3,115,66,73,84,8,8,8,219,225,79,224,0,0,0,9,112,72, 89,115,0,0,3,118,0,0,3,118,1,125,213,130,204,0,0,0,25,116,69,88,116,83, @@ -7091,8 +7153,8 @@ 178,57,61,220,152,70,76,194,152,227,56,190,15,67,5,0,0,0,0,0,252,3,117, 159,97,32,249,119,37,12,0,0,0,0,73,69,78,68,174,66,96,130}; -static size_t xml_res_size_30 = 959; -static unsigned char xml_res_file_30[] = { +static size_t xml_res_size_34 = 959; +static unsigned char xml_res_file_34[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,22,0,0,0,22,8,6,0,0, 0,196,180,108,59,0,0,3,134,73,68,65,84,120,218,181,149,107,76,147,87,24, 199,155,104,116,198,104,162,115,102,153,82,47,195,180,165,64,21,105,49, @@ -7141,8 +7203,8 @@ 248,8,198,150,175,244,78,123,119,237,91,162,105,120,83,149,55,114,163,0, 0,0,0,73,69,78,68,174,66,96,130}; -static size_t xml_res_size_31 = 660; -static unsigned char xml_res_file_31[] = { +static size_t xml_res_size_35 = 660; +static unsigned char xml_res_file_35[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, 0,31,243,255,97,0,0,2,91,73,68,65,84,120,218,157,210,221,75,211,81,24,7, 240,243,31,216,69,86,4,213,50,82,39,249,182,108,195,156,47,108,211,77,242, @@ -7177,8 +7239,8 @@ 12,6,67,132,227,184,198,63,63,34,251,59,19,238,234,169,0,0,0,0,73,69,78, 68,174,66,96,130}; -static size_t xml_res_size_32 = 586; -static unsigned char xml_res_file_32[] = { +static size_t xml_res_size_36 = 586; +static unsigned char xml_res_file_36[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,3,0,0, 0,40,45,15,83,0,0,0,3,115,66,73,84,8,8,8,219,225,79,224,0,0,0,9,112,72, 89,115,0,0,1,187,0,0,1,187,1,58,236,227,226,0,0,0,25,116,69,88,116,83,111, @@ -7209,8 +7271,8 @@ 62,107,221,14,171,241,31,92,154,77,35,153,199,126,105,0,0,0,0,73,69,78, 68,174,66,96,130}; -static size_t xml_res_size_33 = 338; -static unsigned char xml_res_file_33[] = { +static size_t xml_res_size_37 = 338; +static unsigned char xml_res_file_37[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,12,0,0,0,12,8,6,0,0, 0,86,117,92,231,0,0,0,6,98,75,71,68,0,0,0,0,0,0,249,67,187,127,0,0,0,9, 112,72,89,115,0,0,13,215,0,0,13,215,1,66,40,155,120,0,0,0,7,116,73,77,69, @@ -7228,8 +7290,8 @@ 88,62,241,176,112,47,254,131,31,64,171,69,137,215,114,159,30,0,0,0,0,73, 69,78,68,174,66,96,130}; -static size_t xml_res_size_34 = 244; -static unsigned char xml_res_file_34[] = { +static size_t xml_res_size_38 = 244; +static unsigned char xml_res_file_38[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,12,0,0,0,12,8,6,0,0, 0,86,117,92,231,0,0,0,6,98,75,71,68,0,0,0,0,0,0,249,67,187,127,0,0,0,9, 112,72,89,115,0,0,13,215,0,0,13,215,1,66,40,155,120,0,0,0,7,116,73,77,69, @@ -7242,8 +7304,8 @@ 134,83,180,86,56,7,55,133,103,253,179,254,253,113,63,227,13,67,98,32,78, 10,176,145,24,0,0,0,0,73,69,78,68,174,66,96,130}; -static size_t xml_res_size_35 = 247; -static unsigned char xml_res_file_35[] = { +static size_t xml_res_size_39 = 247; +static unsigned char xml_res_file_39[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,12,0,0,0,12,8,6,0,0, 0,86,117,92,231,0,0,0,6,98,75,71,68,0,0,0,0,0,0,249,67,187,127,0,0,0,9, 112,72,89,115,0,0,13,215,0,0,13,215,1,66,40,155,120,0,0,0,7,116,73,77,69, @@ -7256,8 +7318,8 @@ 185,185,199,20,134,3,74,84,56,6,55,161,255,235,89,215,125,220,26,188,0, 172,66,241,124,65,212,118,25,0,0,0,0,73,69,78,68,174,66,96,130}; -static size_t xml_res_size_36 = 422; -static unsigned char xml_res_file_36[] = { +static size_t xml_res_size_40 = 422; +static unsigned char xml_res_file_40[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, 0,31,243,255,97,0,0,0,6,98,75,71,68,0,255,0,255,0,255,160,189,167,147,0, 0,0,9,112,72,89,115,0,0,13,215,0,0,13,215,1,66,40,155,120,0,0,0,7,116,73, @@ -7279,8 +7341,8 @@ 176,16,231,46,112,156,151,191,128,215,178,56,127,3,147,219,116,171,47,3, 146,196,0,0,0,0,73,69,78,68,174,66,96,130}; -static size_t xml_res_size_37 = 345; -static unsigned char xml_res_file_37[] = { +static size_t xml_res_size_41 = 345; +static unsigned char xml_res_file_41[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, 0,31,243,255,97,0,0,0,6,98,75,71,68,0,255,0,255,0,255,160,189,167,147,0, 0,0,9,112,72,89,115,0,0,13,215,0,0,13,215,1,66,40,155,120,0,0,0,7,116,73, @@ -7298,8 +7360,8 @@ 17,55,214,246,219,22,238,210,209,44,253,240,202,63,51,119,242,71,248,6, 220,208,46,161,188,94,194,94,0,0,0,0,73,69,78,68,174,66,96,130}; -static size_t xml_res_size_38 = 663; -static unsigned char xml_res_file_38[] = { +static size_t xml_res_size_42 = 663; +static unsigned char xml_res_file_42[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, 0,31,243,255,97,0,0,0,6,98,75,71,68,0,255,0,255,0,255,160,189,167,147,0, 0,0,9,112,72,89,115,0,0,13,215,0,0,13,215,1,66,40,155,120,0,0,0,7,116,73, @@ -7333,8 +7395,8 @@ 47,243,223,226,39,100,210,215,54,36,112,82,73,0,0,0,0,73,69,78,68,174,66, 96,130}; -static size_t xml_res_size_39 = 12410; -static unsigned char xml_res_file_39[] = { +static size_t xml_res_size_43 = 12410; +static unsigned char xml_res_file_43[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,11,144,0,0,0,7,8,6,0, 0,0,196,4,67,7,0,0,8,60,73,68,65,84,120,156,237,157,209,139,93,87,21,135, 191,117,25,134,48,72,169,50,20,21,25,34,212,34,33,168,51,167,17,20,218, @@ -7780,8 +7842,8 @@ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 49,48,50,52,48}; -static size_t xml_res_size_40 = 282; -static unsigned char xml_res_file_40[] = { +static size_t xml_res_size_44 = 282; +static unsigned char xml_res_file_44[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,10,0,0,0,10,8,6,0,0, 0,141,50,207,189,0,0,0,6,98,75,71,68,0,255,0,255,0,255,160,189,167,147, 0,0,0,9,112,72,89,115,0,0,13,215,0,0,13,215,1,66,40,155,120,0,0,0,7,116, @@ -7796,8 +7858,8 @@ 196,57,119,3,240,222,239,163,40,122,0,7,239,253,133,255,241,4,202,134,51, 140,251,44,179,206,0,0,0,0,73,69,78,68,174,66,96,130}; -static size_t xml_res_size_41 = 295; -static unsigned char xml_res_file_41[] = { +static size_t xml_res_size_45 = 295; +static unsigned char xml_res_file_45[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,10,0,0,0,10,8,6,0,0, 0,141,50,207,189,0,0,0,6,98,75,71,68,0,255,0,255,0,255,160,189,167,147, 0,0,0,9,112,72,89,115,0,0,13,215,0,0,13,215,1,66,40,155,120,0,0,0,7,116, @@ -7813,8 +7875,8 @@ 235,186,255,187,123,126,0,114,38,63,247,77,98,169,51,0,0,0,0,73,69,78,68, 174,66,96,130}; -static size_t xml_res_size_42 = 313; -static unsigned char xml_res_file_42[] = { +static size_t xml_res_size_46 = 313; +static unsigned char xml_res_file_46[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, 0,31,243,255,97,0,0,1,0,73,68,65,84,120,94,237,145,177,106,2,65,16,134, 255,221,179,203,99,24,72,159,74,75,65,176,78,175,144,194,206,70,188,67, @@ -7831,8 +7893,8 @@ 65,144,7,229,224,72,243,197,161,69,195,223,2,157,177,115,86,28,0,140,64, 161,88,155,245,166,61,0,0,0,0,73,69,78,68,174,66,96,130}; -static size_t xml_res_size_43 = 4576; -static unsigned char xml_res_file_43[] = { +static size_t xml_res_size_47 = 4950; +static unsigned char xml_res_file_47[] = { 60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, 110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,33,45,45, 32,119,120,114,99,32,47,99,32,47,118,32,47,111,32,114,101,115,111,117,114, @@ -7963,103 +8025,121 @@ 111,119,45,114,105,103,104,116,45,50,52,34,62,114,101,115,111,117,114,99, 101,115,46,99,112,112,36,114,101,115,95,97,114,114,111,119,45,108,101,102, 116,45,50,52,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60, -33,45,45,10,32,32,32,32,32,32,32,32,84,111,111,108,98,97,114,32,98,105, -116,109,97,112,115,32,40,50,52,120,50,52,41,10,32,32,32,32,45,45,62,10, -32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105, -116,109,97,112,34,32,110,97,109,101,61,34,99,111,100,101,95,102,111,114, -109,97,116,50,52,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112, -36,114,101,115,95,50,52,95,102,111,114,109,97,116,116,101,114,46,112,110, -103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32, -99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109, -101,61,34,99,111,100,101,95,102,111,114,109,97,116,95,111,112,116,105,111, -110,115,50,52,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,36, -114,101,115,95,50,52,95,102,111,114,109,97,116,116,101,114,95,115,101,116, -116,105,110,103,115,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32, -32,60,33,45,45,10,32,32,32,32,32,32,32,32,84,111,111,108,98,97,114,32,98, -105,116,109,97,112,115,32,40,49,54,120,49,54,41,10,32,32,32,32,45,45,62, -10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66, -105,116,109,97,112,34,32,110,97,109,101,61,34,99,111,100,101,95,102,111, -114,109,97,116,95,111,112,116,105,111,110,115,49,54,34,62,114,101,115,111, -117,114,99,101,115,46,99,112,112,36,114,101,115,95,49,54,95,102,111,114, -109,97,116,116,101,114,95,115,101,116,116,105,110,103,115,46,112,110,103, -60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99, -108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101, -61,34,99,111,100,101,95,102,111,114,109,97,116,49,54,34,62,114,101,115, -111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,49,54,95,102,111, -114,109,97,116,116,101,114,46,112,110,103,60,47,111,98,106,101,99,116,62, -10,32,32,60,33,45,45,32,78,111,116,101,98,111,111,107,32,105,99,111,110, -115,32,45,45,62,10,32,32,60,33,45,45,32,108,105,103,104,116,32,116,104, -101,109,101,32,98,117,116,116,111,110,115,32,45,45,62,10,32,32,60,111,98, +33,45,45,32,97,117,105,32,100,111,99,107,97,98,108,101,112,97,110,101,32, +45,45,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119, +120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,97,117,105,45,99,108, +111,115,101,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,114, +101,115,95,97,117,105,45,99,108,111,115,101,46,112,110,103,60,47,111,98, +106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, +61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,97,117,105, +45,109,111,114,101,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112, +36,114,101,115,95,97,117,105,45,109,111,114,101,46,112,110,103,60,47,111, +98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115, +115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,97,117, +105,45,101,120,112,97,110,100,34,62,114,101,115,111,117,114,99,101,115, +46,99,112,112,36,114,101,115,95,97,117,105,45,101,120,112,97,110,100,46, +112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99, +116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110, +97,109,101,61,34,97,117,105,45,109,105,110,105,109,105,122,101,34,62,114, +101,115,111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,97,117,105, +45,109,105,110,105,109,105,122,101,46,112,110,103,60,47,111,98,106,101, +99,116,62,10,32,32,60,33,45,45,10,32,32,32,32,32,32,32,32,84,111,111,108, +98,97,114,32,98,105,116,109,97,112,115,32,40,50,52,120,50,52,41,10,32,32, +32,32,45,45,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61, +34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,99,111,100, +101,95,102,111,114,109,97,116,50,52,34,62,114,101,115,111,117,114,99,101, +115,46,99,112,112,36,114,101,115,95,50,52,95,102,111,114,109,97,116,116, +101,114,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98, 106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112, -34,32,110,97,109,101,61,34,116,97,98,95,120,95,99,108,111,115,101,34,62, -114,101,115,111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,110, -111,116,101,98,111,111,107,95,102,105,108,101,99,108,111,115,101,45,100, -97,114,107,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111, +34,32,110,97,109,101,61,34,99,111,100,101,95,102,111,114,109,97,116,95, +111,112,116,105,111,110,115,50,52,34,62,114,101,115,111,117,114,99,101, +115,46,99,112,112,36,114,101,115,95,50,52,95,102,111,114,109,97,116,116, +101,114,95,115,101,116,116,105,110,103,115,46,112,110,103,60,47,111,98, +106,101,99,116,62,10,32,32,60,33,45,45,10,32,32,32,32,32,32,32,32,84,111, +111,108,98,97,114,32,98,105,116,109,97,112,115,32,40,49,54,120,49,54,41, +10,32,32,32,32,45,45,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97, +115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34, +99,111,100,101,95,102,111,114,109,97,116,95,111,112,116,105,111,110,115, +49,54,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,114,101, +115,95,49,54,95,102,111,114,109,97,116,116,101,114,95,115,101,116,116,105, +110,103,115,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111, 98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97, -112,34,32,110,97,109,101,61,34,116,97,98,95,120,95,99,108,111,115,101,95, -112,114,101,115,115,101,100,34,62,114,101,115,111,117,114,99,101,115,46, -99,112,112,36,114,101,115,95,110,111,116,101,98,111,111,107,95,102,105, -108,101,99,108,111,115,101,46,112,110,103,60,47,111,98,106,101,99,116,62, -10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66, -105,116,109,97,112,34,32,110,97,109,101,61,34,116,97,98,95,120,95,99,108, -111,115,101,95,104,111,118,101,114,34,62,114,101,115,111,117,114,99,101, -115,46,99,112,112,36,114,101,115,95,110,111,116,101,98,111,111,107,95,102, -105,108,101,99,108,111,115,101,45,100,97,114,107,46,112,110,103,60,47,111, -98,106,101,99,116,62,10,32,32,60,33,45,45,32,100,97,114,107,32,116,104, -101,109,101,32,98,117,116,116,111,110,115,32,45,45,62,10,32,32,60,111,98, -106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112, -34,32,110,97,109,101,61,34,116,97,98,95,120,95,99,108,111,115,101,95,100, -97,114,107,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,114, -101,115,95,110,111,116,101,98,111,111,107,95,102,105,108,101,99,108,111, -115,101,45,119,104,105,116,101,46,112,110,103,60,47,111,98,106,101,99,116, -62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120, -66,105,116,109,97,112,34,32,110,97,109,101,61,34,116,97,98,95,120,95,99, -108,111,115,101,95,100,97,114,107,95,112,114,101,115,115,101,100,34,62, -114,101,115,111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,110, -111,116,101,98,111,111,107,95,102,105,108,101,99,108,111,115,101,46,112, -110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116, -32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109, -101,61,34,116,97,98,95,120,95,99,108,111,115,101,95,100,97,114,107,95,104, -111,118,101,114,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112, +112,34,32,110,97,109,101,61,34,99,111,100,101,95,102,111,114,109,97,116, +49,54,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,114,101, +115,95,49,54,95,102,111,114,109,97,116,116,101,114,46,112,110,103,60,47, +111,98,106,101,99,116,62,10,32,32,60,33,45,45,32,78,111,116,101,98,111, +111,107,32,105,99,111,110,115,32,45,45,62,10,32,32,60,33,45,45,32,108,105, +103,104,116,32,116,104,101,109,101,32,98,117,116,116,111,110,115,32,45, +45,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119, +120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,116,97,98,95,120,95, +99,108,111,115,101,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112, 36,114,101,115,95,110,111,116,101,98,111,111,107,95,102,105,108,101,99, -108,111,115,101,45,119,104,105,116,101,46,112,110,103,60,47,111,98,106, -101,99,116,62,10,32,32,60,33,45,45,32,100,97,114,107,32,116,104,101,109, -101,32,98,117,116,116,111,110,115,32,45,45,62,10,32,32,60,111,98,106,101, -99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110, -97,109,101,61,34,98,117,105,108,100,45,101,114,114,111,114,34,62,114,101, -115,111,117,114,99,101,115,46,99,112,112,36,46,46,95,105,99,111,110,115, -95,98,117,105,108,100,45,101,114,114,111,114,46,112,110,103,60,47,111,98, -106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, -61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,98,117,105, -108,100,45,119,97,114,110,105,110,103,34,62,114,101,115,111,117,114,99, -101,115,46,99,112,112,36,46,46,95,105,99,111,110,115,95,98,117,105,108, -100,45,119,97,114,110,105,110,103,46,112,110,103,60,47,111,98,106,101,99, +108,111,115,101,45,100,97,114,107,46,112,110,103,60,47,111,98,106,101,99, 116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119, -120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,98,117,105,108,100, -45,98,117,105,108,100,105,110,103,34,62,114,101,115,111,117,114,99,101, -115,46,99,112,112,36,46,46,95,105,99,111,110,115,95,99,111,103,115,46,112, -110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116, -32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109, -101,61,34,98,117,105,108,100,45,97,110,105,109,97,116,105,111,110,45,115, -112,114,105,116,101,34,62,114,101,115,111,117,114,99,101,115,46,99,112, -112,36,46,46,95,105,99,111,110,115,95,98,117,105,108,100,45,97,110,105, -109,97,116,105,111,110,45,115,112,114,105,116,101,46,112,110,103,60,47, -111,98,106,101,99,116,62,10,32,32,60,33,45,45,32,99,111,100,101,32,99,111, -109,112,108,101,116,105,111,110,32,98,111,120,32,117,112,47,100,111,119, -110,32,98,105,116,109,97,112,115,32,45,45,62,10,32,32,60,111,98,106,101, +120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,116,97,98,95,120,95, +99,108,111,115,101,95,112,114,101,115,115,101,100,34,62,114,101,115,111, +117,114,99,101,115,46,99,112,112,36,114,101,115,95,110,111,116,101,98,111, +111,107,95,102,105,108,101,99,108,111,115,101,46,112,110,103,60,47,111, +98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115, +115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,116, +97,98,95,120,95,99,108,111,115,101,95,104,111,118,101,114,34,62,114,101, +115,111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,110,111,116, +101,98,111,111,107,95,102,105,108,101,99,108,111,115,101,45,100,97,114, +107,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,33,45,45, +32,100,97,114,107,32,116,104,101,109,101,32,98,117,116,116,111,110,115, +32,45,45,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34, +119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,116,97,98,95,120, +95,99,108,111,115,101,95,100,97,114,107,34,62,114,101,115,111,117,114,99, +101,115,46,99,112,112,36,114,101,115,95,110,111,116,101,98,111,111,107, +95,102,105,108,101,99,108,111,115,101,45,119,104,105,116,101,46,112,110, +103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32, +99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109, +101,61,34,116,97,98,95,120,95,99,108,111,115,101,95,100,97,114,107,95,112, +114,101,115,115,101,100,34,62,114,101,115,111,117,114,99,101,115,46,99, +112,112,36,114,101,115,95,110,111,116,101,98,111,111,107,95,102,105,108, +101,99,108,111,115,101,46,112,110,103,60,47,111,98,106,101,99,116,62,10, +32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105, +116,109,97,112,34,32,110,97,109,101,61,34,116,97,98,95,120,95,99,108,111, +115,101,95,100,97,114,107,95,104,111,118,101,114,34,62,114,101,115,111, +117,114,99,101,115,46,99,112,112,36,114,101,115,95,110,111,116,101,98,111, +111,107,95,102,105,108,101,99,108,111,115,101,45,119,104,105,116,101,46, +112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,33,45,45,32,100, +97,114,107,32,116,104,101,109,101,32,98,117,116,116,111,110,115,32,45,45, +62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120, +66,105,116,109,97,112,34,32,110,97,109,101,61,34,98,117,105,108,100,45, +101,114,114,111,114,34,62,114,101,115,111,117,114,99,101,115,46,99,112, +112,36,46,46,95,105,99,111,110,115,95,98,117,105,108,100,45,101,114,114, +111,114,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98, +106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112, +34,32,110,97,109,101,61,34,98,117,105,108,100,45,119,97,114,110,105,110, +103,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,46,46,95, +105,99,111,110,115,95,98,117,105,108,100,45,119,97,114,110,105,110,103, +46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101, 99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110, -97,109,101,61,34,99,99,45,98,111,120,45,117,112,34,62,114,101,115,111,117, -114,99,101,115,46,99,112,112,36,114,101,115,95,117,112,45,49,48,46,112, -110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116, -32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109, -101,61,34,99,99,45,98,111,120,45,100,111,119,110,34,62,114,101,115,111, -117,114,99,101,115,46,99,112,112,36,114,101,115,95,100,111,119,110,45,49, -48,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106, -101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34, -32,110,97,109,101,61,34,99,111,100,101,45,116,97,103,115,34,62,114,101, -115,111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,104,116,109, -108,46,112,110,103,60,47,111,98,106,101,99,116,62,10,60,47,114,101,115, -111,117,114,99,101,62,10}; +97,109,101,61,34,98,117,105,108,100,45,98,117,105,108,100,105,110,103,34, +62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,46,46,95,105,99, +111,110,115,95,99,111,103,115,46,112,110,103,60,47,111,98,106,101,99,116, +62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120, +66,105,116,109,97,112,34,32,110,97,109,101,61,34,98,117,105,108,100,45, +97,110,105,109,97,116,105,111,110,45,115,112,114,105,116,101,34,62,114, +101,115,111,117,114,99,101,115,46,99,112,112,36,46,46,95,105,99,111,110, +115,95,98,117,105,108,100,45,97,110,105,109,97,116,105,111,110,45,115,112, +114,105,116,101,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32, +60,33,45,45,32,99,111,100,101,32,99,111,109,112,108,101,116,105,111,110, +32,98,111,120,32,117,112,47,100,111,119,110,32,98,105,116,109,97,112,115, +32,45,45,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34, +119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,99,99,45,98,111, +120,45,117,112,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,36, +114,101,115,95,117,112,45,49,48,46,112,110,103,60,47,111,98,106,101,99, +116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119, +120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,99,99,45,98,111,120, +45,100,111,119,110,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112, +36,114,101,115,95,100,111,119,110,45,49,48,46,112,110,103,60,47,111,98, +106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, +61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,99,111,100, +101,45,116,97,103,115,34,62,114,101,115,111,117,114,99,101,115,46,99,112, +112,36,114,101,115,95,104,116,109,108,46,112,110,103,60,47,111,98,106,101, +99,116,62,10,60,47,114,101,115,111,117,114,99,101,62,10}; void InitXmlResource() { @@ -8103,20 +8183,24 @@ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_cursor.png"), xml_res_file_26, xml_res_size_26, wxT("image/png")); XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_quickfindbar_next-16.png"), xml_res_file_27, xml_res_size_27, wxT("image/png")); XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_arrow-left-24.png"), xml_res_file_28, xml_res_size_28, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_formatter.png"), xml_res_file_29, xml_res_size_29, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_formatter_settings.png"), xml_res_file_30, xml_res_size_30, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_formatter_settings.png"), xml_res_file_31, xml_res_size_31, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_formatter.png"), xml_res_file_32, xml_res_size_32, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_notebook_fileclose-dark.png"), xml_res_file_33, xml_res_size_33, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_notebook_fileclose.png"), xml_res_file_34, xml_res_size_34, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_notebook_fileclose-white.png"), xml_res_file_35, xml_res_size_35, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$.._icons_build-error.png"), xml_res_file_36, xml_res_size_36, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$.._icons_build-warning.png"), xml_res_file_37, xml_res_size_37, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$.._icons_cogs.png"), xml_res_file_38, xml_res_size_38, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$.._icons_build-animation-sprite.png"), xml_res_file_39, xml_res_size_39, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_up-10.png"), xml_res_file_40, xml_res_size_40, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_down-10.png"), xml_res_file_41, xml_res_size_41, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_html.png"), xml_res_file_42, xml_res_size_42, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$._resources.xrc"), xml_res_file_43, xml_res_size_43, wxT("text/xml")); + XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_aui-close.png"), xml_res_file_29, xml_res_size_29, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_aui-more.png"), xml_res_file_30, xml_res_size_30, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_aui-expand.png"), xml_res_file_31, xml_res_size_31, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_aui-minimize.png"), xml_res_file_32, xml_res_size_32, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_formatter.png"), xml_res_file_33, xml_res_size_33, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_formatter_settings.png"), xml_res_file_34, xml_res_size_34, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_formatter_settings.png"), xml_res_file_35, xml_res_size_35, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_formatter.png"), xml_res_file_36, xml_res_size_36, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_notebook_fileclose-dark.png"), xml_res_file_37, xml_res_size_37, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_notebook_fileclose.png"), xml_res_file_38, xml_res_size_38, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_notebook_fileclose-white.png"), xml_res_file_39, xml_res_size_39, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$.._icons_build-error.png"), xml_res_file_40, xml_res_size_40, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$.._icons_build-warning.png"), xml_res_file_41, xml_res_size_41, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$.._icons_cogs.png"), xml_res_file_42, xml_res_size_42, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$.._icons_build-animation-sprite.png"), xml_res_file_43, xml_res_size_43, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_up-10.png"), xml_res_file_44, xml_res_size_44, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_down-10.png"), xml_res_file_45, xml_res_size_45, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_html.png"), xml_res_file_46, xml_res_size_46, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$._resources.xrc"), xml_res_file_47, xml_res_size_47, wxT("text/xml")); wxXmlResource::Get()->Load(wxT("memory:XRC_resource/resources.cpp$._resources.xrc")); } diff -Nru codelite-8.0.1+dfsg2/LiteEditor/resources.xrc codelite-9.0+dfsg/LiteEditor/resources.xrc --- codelite-8.0.1+dfsg2/LiteEditor/resources.xrc 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/resources.xrc 2015-10-11 13:56:07.000000000 +0000 @@ -30,6 +30,12 @@ res/quickfindbar/next-16.png res/arrow-left-24.png + + res/aui-close.png + res/aui-more.png + res/aui-expand.png + res/aui-minimize.png + diff -Nru codelite-8.0.1+dfsg2/LiteEditor/SelectDropTargetDlg.cpp codelite-9.0+dfsg/LiteEditor/SelectDropTargetDlg.cpp --- codelite-8.0.1+dfsg2/LiteEditor/SelectDropTargetDlg.cpp 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/SelectDropTargetDlg.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,54 @@ +#include "SelectDropTargetDlg.h" +#include "imanager.h" +#include "globals.h" +#include "clWorkspaceView.h" +#include +#include "codelite_events.h" + +SelectDropTargetDlg::SelectDropTargetDlg(wxWindow* parent, const wxArrayString& folders) + : SelectDropTargetBaseDlg(parent) + , m_folders(folders) + , m_selectedView(NULL) +{ + Initialize(); +} + +SelectDropTargetDlg::~SelectDropTargetDlg() {} + +void SelectDropTargetDlg::Initialize() +{ + m_views = clGetManager()->GetWorkspaceView()->GetAllPages(); + std::for_each(m_views.begin(), m_views.end(), [&](const std::pair& p) { + wxVector cols; + cols.push_back(p.first); + m_dvListCtrl->AppendItem(cols, (wxUIntPtr)p.second); + }); +} + +void SelectDropTargetDlg::OnOKUI(wxUpdateUIEvent& event) { event.Enable(m_dvListCtrl->HasSelection()); } + +void SelectDropTargetDlg::OnOK(wxCommandEvent& event) +{ + event.Skip(); + ActivateSelection(); + EndModal(wxID_OK); +} + +void SelectDropTargetDlg::OnSelectionActivated(wxDataViewEvent& event) +{ + ActivateSelection(); + EndModal(wxID_OK); +} + +void SelectDropTargetDlg::ActivateSelection() +{ + wxDataViewItem item = m_dvListCtrl->GetSelection(); + if(item.IsOk()) { + wxWindow* page = reinterpret_cast(m_dvListCtrl->GetItemData(item)); + if(page) { + clCommandEvent event(wxEVT_DND_FOLDER_DROPPED); + event.SetStrings(m_folders); + page->GetEventHandler()->AddPendingEvent(event); + } + } +} diff -Nru codelite-8.0.1+dfsg2/LiteEditor/SelectDropTargetDlg.h codelite-9.0+dfsg/LiteEditor/SelectDropTargetDlg.h --- codelite-8.0.1+dfsg2/LiteEditor/SelectDropTargetDlg.h 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/SelectDropTargetDlg.h 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,23 @@ +#ifndef SELECTDROPTARGETDLG_H +#define SELECTDROPTARGETDLG_H +#include "wxcrafter.h" +#include + +class SelectDropTargetDlg : public SelectDropTargetBaseDlg +{ + std::map m_views; + wxArrayString m_folders; + wxWindow* m_selectedView; + +public: + SelectDropTargetDlg(wxWindow* parent, const wxArrayString& folders); + virtual ~SelectDropTargetDlg(); + +protected: + virtual void OnSelectionActivated(wxDataViewEvent& event); + virtual void OnOK(wxCommandEvent& event); + virtual void OnOKUI(wxUpdateUIEvent& event); + void Initialize(); + void ActivateSelection(); +}; +#endif // SELECTDROPTARGETDLG_H diff -Nru codelite-8.0.1+dfsg2/LiteEditor/setters_getters.cpp codelite-9.0+dfsg/LiteEditor/setters_getters.cpp --- codelite-8.0.1+dfsg2/LiteEditor/setters_getters.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/setters_getters.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,30 +1,6 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2014 The CodeLite Team -// file name : setters_getters.cpp -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - ////////////////////////////////////////////////////////////////////// // This file was auto-generated by codelite's wxCrafter Plugin +// wxCrafter project file: setters_getters.wxcp // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// @@ -47,10 +23,10 @@ bBitmapLoaded = true; } - bSizer1 = new wxBoxSizer(wxVERTICAL); + wxBoxSizer* bSizer1 = new wxBoxSizer(wxVERTICAL); this->SetSizer(bSizer1); - bSizer3 = new wxBoxSizer(wxVERTICAL); + wxBoxSizer* bSizer3 = new wxBoxSizer(wxVERTICAL); bSizer1->Add(bSizer3, 1, wxALL|wxEXPAND, 5); @@ -62,7 +38,15 @@ bSizer3->Add(m_banner6, 0, wxALL|wxEXPAND, 5); - bSizer4 = new wxBoxSizer(wxHORIZONTAL); + m_searchCtrl = new wxSearchCtrl(this, wxID_ANY, wxT(""), wxDefaultPosition, wxSize(-1,-1), wxTE_PROCESS_ENTER); + m_searchCtrl->SetToolTip(_("Type to filter the options")); + m_searchCtrl->SetFocus(); + m_searchCtrl->ShowSearchButton(true); + m_searchCtrl->ShowCancelButton(false); + + bSizer3->Add(m_searchCtrl, 0, wxALL|wxEXPAND, 5); + + wxBoxSizer* bSizer4 = new wxBoxSizer(wxHORIZONTAL); bSizer3->Add(bSizer4, 1, wxEXPAND, 5); @@ -74,9 +58,9 @@ bSizer4->Add(m_dataview, 1, wxALL|wxEXPAND, 5); - m_dataview->AppendIconTextColumn(_("Name"), m_dataview->GetColumnCount(), wxDATAVIEW_CELL_INERT, 400, wxALIGN_LEFT); - m_dataview->AppendToggleColumn(_("?"), m_dataview->GetColumnCount(), wxDATAVIEW_CELL_ACTIVATABLE, -2, wxALIGN_LEFT); - bSizer5 = new wxBoxSizer(wxVERTICAL); + m_dataview->AppendToggleColumn(_("X"), m_dataview->GetColumnCount(), wxDATAVIEW_CELL_ACTIVATABLE, 50, wxALIGN_LEFT); + m_dataview->AppendIconTextColumn(_("Function"), m_dataview->GetColumnCount(), wxDATAVIEW_CELL_INERT, 400, wxALIGN_LEFT); + wxBoxSizer* bSizer5 = new wxBoxSizer(wxVERTICAL); bSizer4->Add(bSizer5, 0, wxEXPAND, 5); @@ -89,47 +73,68 @@ bSizer5->Add(m_buttonUncheckAll, 0, wxALL|wxEXPAND, 5); + wxGridSizer* gridSizer12 = new wxGridSizer(0, 2, 0, 0); + + bSizer3->Add(gridSizer12, 0, wxALL|wxEXPAND, 5); + m_checkStartWithUppercase = new wxCheckBox(this, wxID_ANY, _("Function name starts with an upper case letter"), wxDefaultPosition, wxSize(-1, -1), 0); m_checkStartWithUppercase->SetValue(false); - bSizer3->Add(m_checkStartWithUppercase, 0, wxALL, 5); + gridSizer12->Add(m_checkStartWithUppercase, 0, wxALL, 5); m_checkBoxForamtFileWhenDone = new wxCheckBox(this, wxID_ANY, _("Format the file when done"), wxDefaultPosition, wxSize(-1,-1), 0); m_checkBoxForamtFileWhenDone->SetValue(false); - bSizer3->Add(m_checkBoxForamtFileWhenDone, 0, wxALL, 5); + gridSizer12->Add(m_checkBoxForamtFileWhenDone, 0, wxALL, 5); - bSizer2 = new wxBoxSizer(wxHORIZONTAL); + m_checkBoxReturnSelf = new wxCheckBox(this, wxID_ANY, _("Setter returns a reference to the object"), wxDefaultPosition, wxSize(-1,-1), 0); + m_checkBoxReturnSelf->SetValue(false); + m_checkBoxReturnSelf->SetToolTip(_("A setter function will return a reference to the object, for example:\nFoo& SetFoo(const Obj& foo) {this->m_foo = foo; return *this;}")); - bSizer1->Add(bSizer2, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 5); + gridSizer12->Add(m_checkBoxReturnSelf, 0, wxALL, 5); - m_buttonOK = new wxButton(this, wxID_OK, _("&OK"), wxDefaultPosition, wxSize(-1, -1), 0); - m_buttonOK->SetDefault(); + m_stdBtnSizer16 = new wxStdDialogButtonSizer(); - bSizer2->Add(m_buttonOK, 0, wxALL, 5); + bSizer1->Add(m_stdBtnSizer16, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 5); - m_buttonCancel = new wxButton(this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize(-1, -1), 0); + m_button18 = new wxButton(this, wxID_OK, wxT(""), wxDefaultPosition, wxSize(-1, -1), 0); + m_button18->SetDefault(); + m_stdBtnSizer16->AddButton(m_button18); - bSizer2->Add(m_buttonCancel, 0, wxALL, 5); + m_button20 = new wxButton(this, wxID_CANCEL, wxT(""), wxDefaultPosition, wxSize(-1, -1), 0); + m_stdBtnSizer16->AddButton(m_button20); + m_stdBtnSizer16->Realize(); + SetName(wxT("SettersGettersBaseDlg")); SetSizeHints(-1,-1); if ( GetSizer() ) { GetSizer()->Fit(this); } - Centre(); + CentreOnParent(); +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(this)) { + wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); + } +#endif // Connect events + m_searchCtrl->Connect(wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler(SettersGettersBaseDlg::OnFilter), NULL, this); m_dataview->Connect(wxEVT_COMMAND_DATAVIEW_ITEM_VALUE_CHANGED, wxDataViewEventHandler(SettersGettersBaseDlg::OnValueChanged), NULL, this); m_buttonCheckAll->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SettersGettersBaseDlg::OnCheckAll), NULL, this); m_buttonUncheckAll->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SettersGettersBaseDlg::OnUncheckAll), NULL, this); m_checkStartWithUppercase->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(SettersGettersBaseDlg::OnCheckStartWithUpperCase), NULL, this); + m_checkBoxReturnSelf->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(SettersGettersBaseDlg::OnSettersReturnReference), NULL, this); } SettersGettersBaseDlg::~SettersGettersBaseDlg() { + m_searchCtrl->Disconnect(wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler(SettersGettersBaseDlg::OnFilter), NULL, this); m_dataview->Disconnect(wxEVT_COMMAND_DATAVIEW_ITEM_VALUE_CHANGED, wxDataViewEventHandler(SettersGettersBaseDlg::OnValueChanged), NULL, this); m_buttonCheckAll->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SettersGettersBaseDlg::OnCheckAll), NULL, this); m_buttonUncheckAll->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SettersGettersBaseDlg::OnUncheckAll), NULL, this); m_checkStartWithUppercase->Disconnect(wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(SettersGettersBaseDlg::OnCheckStartWithUpperCase), NULL, this); + m_checkBoxReturnSelf->Disconnect(wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(SettersGettersBaseDlg::OnSettersReturnReference), NULL, this); } diff -Nru codelite-8.0.1+dfsg2/LiteEditor/setters_getters_dlg.cpp codelite-9.0+dfsg/LiteEditor/setters_getters_dlg.cpp --- codelite-8.0.1+dfsg2/LiteEditor/setters_getters_dlg.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/setters_getters_dlg.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -33,6 +33,7 @@ #include "bitmap_loader.h" #include "windowattrmanager.h" #include "cl_config.h" +#include "fileutils.h" //---------------------------------------------------- @@ -41,22 +42,23 @@ , m_checkForDuplicateEntries(false) { clConfig::Get().ReadItem(&m_settings); - m_checkStartWithUppercase->SetValue( m_settings.GetFlags() & SettersGetterData::FunctionStartWithUpperCase ); - m_checkBoxForamtFileWhenDone->SetValue( m_settings.GetFlags() & SettersGetterData::FormatFileWhenDone ); + m_checkStartWithUppercase->SetValue(m_settings.GetFlags() & SettersGetterData::FunctionStartWithUpperCase); + m_checkBoxForamtFileWhenDone->SetValue(m_settings.GetFlags() & SettersGetterData::FormatFileWhenDone); + m_checkBoxReturnSelf->SetValue(m_settings.GetFlags() & SettersGetterData::SettersReturnReferenceToSelf); SetName("SettersGettersDlg"); WindowAttrManager::Load(this); } -bool SettersGettersDlg::Init(const std::vector &tags, const wxFileName &file, int lineno) +bool SettersGettersDlg::Init(const std::vector& tags, const wxFileName& file, int lineno) { - //convert the tags to string array + // convert the tags to string array m_file = file; m_lineno = lineno; m_members = tags; return BuildTree() > 0; } -void SettersGettersDlg::OnCheckStartWithUpperCase(wxCommandEvent &event) +void SettersGettersDlg::OnCheckStartWithUpperCase(wxCommandEvent& event) { wxUnusedVar(event); UpdateTree(); @@ -68,82 +70,73 @@ m_checkForDuplicateEntries = true; wxString code; GenerateSetters(code); - if (code.IsEmpty() == false) { + if(code.IsEmpty() == false) { code << wxT("\n\n"); } wxString settersCode; GenerateGetters(settersCode); - if (settersCode.IsEmpty() == false) { + if(settersCode.IsEmpty() == false) { code << settersCode << wxT("\n"); } m_checkForDuplicateEntries = old_value; return code; } -void SettersGettersDlg::GenerateGetters(wxString &code) +void SettersGettersDlg::GenerateGetters(wxString& code) { - wxDataViewItemArray members; - m_dataviewModel->GetChildren(wxDataViewItem(0), members); + wxDataViewItemArray funcs; + m_dataviewModel->GetChildren(wxDataViewItem(0), funcs); - for(size_t i=0; iGetChildren(member, funcs); - - for(size_t j=0; jGetClientObject(funcs.Item(j)); - if ( data->m_kind == SettersGettersTreeData::Kind_Getter && data->m_checked ) { - wxString getter_code = GenerateGetter(data->m_tag, already_exists, display_name); - if ( !already_exists ) { - code << getter_code << "\n"; - } - break; + for(size_t i = 0; i < funcs.GetCount(); ++i) { + bool already_exists = false; + wxString display_name; + SettersGettersTreeData* data = (SettersGettersTreeData*)m_dataviewModel->GetClientObject(funcs.Item(i)); + if(data->m_kind == SettersGettersTreeData::Kind_Getter && data->m_checked) { + wxString getter_code = GenerateGetter(data->m_tag, already_exists, display_name); + if(!already_exists) { + code << getter_code << "\n"; } } } } -void SettersGettersDlg::GenerateSetters(wxString &code) +void SettersGettersDlg::GenerateSetters(wxString& code) { - wxDataViewItemArray members; - m_dataviewModel->GetChildren(wxDataViewItem(0), members); + wxDataViewItemArray funcs; + m_dataviewModel->GetChildren(wxDataViewItem(0), funcs); - for(size_t i=0; iGetChildren(member, funcs); - - for(size_t j=0; jGetClientObject(funcs.Item(j)); - if ( data->m_kind == SettersGettersTreeData::Kind_Setter && data->m_checked ) { - wxString setter_code = GenerateSetter(data->m_tag, already_exists, display_name); - if ( !already_exists ) { - code << setter_code << "\n"; - } - break; + for(size_t i = 0; i < funcs.GetCount(); ++i) { + bool already_exists = false; + wxString display_name; + SettersGettersTreeData* data = (SettersGettersTreeData*)m_dataviewModel->GetClientObject(funcs.Item(i)); + if((data->m_kind == SettersGettersTreeData::Kind_Setter) && data->m_checked) { + wxString setter_code = GenerateSetter(data->m_tag, already_exists, display_name); + if(!already_exists) { + code << setter_code << "\n"; } } } } -wxString SettersGettersDlg::GenerateSetter(TagEntryPtr tag, bool &alreadyExist, wxString &displayName) +wxString SettersGettersDlg::GenerateSetter(TagEntryPtr tag, bool& alreadyExist, wxString& displayName) { alreadyExist = false; - bool startWithUpper = m_checkStartWithUppercase->IsChecked(); + bool startWithUpper = m_checkStartWithUppercase->IsChecked(); + bool returnSelf = m_checkBoxReturnSelf->IsChecked(); Variable var; wxString method_name, method_signature; - if (LanguageST::Get()->VariableFromPattern(tag->GetPattern(), tag->GetName(), var)) { + if(LanguageST::Get()->VariableFromPattern(tag->GetPattern(), tag->GetName(), var)) { wxString func; wxString scope = _U(var.m_typeScope.c_str()); - func << wxT("void "); + if(returnSelf) { + func << tag->GetParent() << "& "; + } else { + func << wxT("void "); + } - if (startWithUpper) { + if(startWithUpper) { method_name << wxT("Set"); } else { method_name << wxT("set"); @@ -157,18 +150,17 @@ func << method_name; // add the signature - if( var.m_isBasicType ) { + if(var.m_isBasicType) { method_signature << wxT("("); - } else if (!var.m_isPtr) { + } else if(!var.m_isPtr) { method_signature << wxT("(const "); } else { method_signature << wxT("("); - } - if (!scope.IsEmpty() && !(scope == wxT(""))) { + if(!scope.IsEmpty() && !(scope == wxT(""))) { method_signature << scope << wxT("::"); } @@ -176,12 +168,11 @@ if(var.m_isBasicType) { method_signature << wxT(" "); - } else if (!var.m_isPtr) { + } else if(!var.m_isPtr) { method_signature << wxT("& "); } else { method_signature << wxT(" "); - } wxString tmpName = _U(var.m_name.c_str()); @@ -194,9 +185,13 @@ displayName << func; // add the implementation - func << wxT(" {this->") << _U(var.m_name.c_str()) << wxT(" = ") << tmpName << wxT(";}"); + func << wxT(" {this->") << _U(var.m_name.c_str()) << wxT(" = ") << tmpName << wxT(";"); + if(returnSelf) { + func << " return *this;"; + } + func << "}"; - if ( m_checkForDuplicateEntries ) { + if(m_checkForDuplicateEntries) { alreadyExist = DoCheckExistance(tag->GetScope(), method_name, method_signature); } @@ -205,46 +200,43 @@ return wxEmptyString; } -wxString SettersGettersDlg::GenerateGetter(TagEntryPtr tag, bool &alreadyExist, wxString &displayName) +wxString SettersGettersDlg::GenerateGetter(TagEntryPtr tag, bool& alreadyExist, wxString& displayName) { alreadyExist = false; - bool startWithUpper = m_checkStartWithUppercase->IsChecked(); + bool startWithUpper = m_checkStartWithUppercase->IsChecked(); Variable var; int midFrom(0); wxString method_name, method_signature; - if (LanguageST::Get()->VariableFromPattern(tag->GetPattern(), tag->GetName(), var)) { + if(LanguageST::Get()->VariableFromPattern(tag->GetPattern(), tag->GetName(), var)) { wxString func; wxString scope = _U(var.m_typeScope.c_str()); wxString tagName = tag->GetName(); tagName.MakeLower(); - bool isBool = (var.m_isBasicType && (var.m_type.find("bool") != std::string::npos)); // Incase the member is named 'isXX' // disable the "isBool" functionality if(isBool && tagName.StartsWith(wxT("is"))) { isBool = false; - } else if( isBool && (tagName.StartsWith(wxT("m_is")) || tagName.StartsWith(wxT("_is"))) ) { + } else if(isBool && (tagName.StartsWith(wxT("m_is")) || tagName.StartsWith(wxT("_is")))) { midFrom = 2; } - if (!var.m_isPtr && !var.m_isBasicType) { + if(!var.m_isPtr && !var.m_isBasicType) { func << wxT("const "); - if (!scope.IsEmpty() && !(scope == wxT(""))) { - func << scope - << wxT("::"); + if(!scope.IsEmpty() && !(scope == wxT(""))) { + func << scope << wxT("::"); } func << _U(var.m_type.c_str()) << _U(var.m_templateDecl.c_str()) << _U(var.m_starAmp.c_str()) << wxT("& "); } else { // generate different code for pointer - if (!scope.IsEmpty() && !(scope == wxT(""))) { - func << scope - << wxT("::"); + if(!scope.IsEmpty() && !(scope == wxT(""))) { + func << scope << wxT("::"); } func << _U(var.m_type.c_str()) << _U(var.m_templateDecl.c_str()) << _U(var.m_starAmp.c_str()) << wxT(" "); } @@ -270,22 +262,21 @@ if(midFrom) { name = name.Mid(midFrom); } - method_name << name; // Add the name + method_name << name; // Add the name // add the method name func << method_name; - if (!var.m_isPtr) { + if(!var.m_isPtr) { method_signature << wxT("() const"); } else { method_signature << wxT("()"); - } // add the signature func << method_signature; - if (m_checkForDuplicateEntries) { + if(m_checkForDuplicateEntries) { alreadyExist = DoCheckExistance(tag->GetScope(), method_name, method_signature); } @@ -299,7 +290,7 @@ return wxEmptyString; } -void SettersGettersDlg::FormatName(wxString &name) +void SettersGettersDlg::FormatName(wxString& name) { if(name.StartsWith(wxT("m_"))) { name = name.Mid(2); @@ -310,7 +301,7 @@ wxStringTokenizer tkz(name, wxT("_")); name.Clear(); - while (tkz.HasMoreTokens()) { + while(tkz.HasMoreTokens()) { wxString token = tkz.NextToken(); wxString pre = token.Mid(0, 1); token.Remove(0, 1); @@ -326,40 +317,26 @@ m_code = GenerateFunctions(); } -void SettersGettersDlg::OnCheckAll(wxCommandEvent &e) +void SettersGettersDlg::OnCheckAll(wxCommandEvent& e) { - wxDataViewItemArray members; - m_dataviewModel->GetChildren(wxDataViewItem(0), members); - - for(size_t i=0; iGetChildren(member, funcs); - - for(size_t j=0; jGetClientObject(funcs.Item(j)); - data->m_checked = true; - } + wxDataViewItemArray funcs; + m_dataviewModel->GetChildren(wxDataViewItem(0), funcs); + for(size_t i = 0; i < funcs.GetCount(); ++i) { + wxVector cols = m_dataviewModel->GetItemColumnsData(funcs.Item(i)); + cols.at(0) = true; + m_dataviewModel->UpdateItem(funcs.Item(i), cols); } - UpdateTree(); } -void SettersGettersDlg::OnUncheckAll(wxCommandEvent &e) +void SettersGettersDlg::OnUncheckAll(wxCommandEvent& e) { - wxDataViewItemArray members; - m_dataviewModel->GetChildren(wxDataViewItem(0), members); - - for(size_t i=0; iGetChildren(member, funcs); - - for(size_t j=0; jGetClientObject(funcs.Item(j)); - data->m_checked = false; - } + wxDataViewItemArray funcs; + m_dataviewModel->GetChildren(wxDataViewItem(0), funcs); + for(size_t i = 0; i < funcs.GetCount(); ++i) { + wxVector cols = m_dataviewModel->GetItemColumnsData(funcs.Item(i)); + cols.at(0) = false; + m_dataviewModel->UpdateItem(funcs.Item(i), cols); } - UpdateTree(); } void SettersGettersDlg::OnUpdatePreview(wxCommandEvent& e) @@ -372,11 +349,11 @@ { std::vector tmp_tags; TagsManagerST::Get()->FindByNameAndScope(name, scope.IsEmpty() ? wxT("") : scope, tmp_tags); - for ( size_t i=0; iNormalizeFunctionSig(t->GetSignature()); - wxString sig_two = TagsManagerST::Get()->NormalizeFunctionSig( method_signature ); - if ( sig_one == sig_two ) { + wxString sig_two = TagsManagerST::Get()->NormalizeFunctionSig(method_signature); + if(sig_one == sig_two) { return true; } } @@ -390,7 +367,6 @@ return GenerateSetter(tag, dummy, s_dummy); } - wxString SettersGettersDlg::GenerateGetter(TagEntryPtr tag) { bool dummy; @@ -398,57 +374,68 @@ return GenerateGetter(tag, dummy, s_dummy); } - int SettersGettersDlg::BuildTree() { m_dataviewModel->Clear(); wxBitmap memberBmp = PluginManager::Get()->GetStdIcons()->LoadBitmap("cc/16/member_public"); - wxBitmap funcBmp = PluginManager::Get()->GetStdIcons()->LoadBitmap("cc/16/function_public"); - + wxBitmap funcBmp = PluginManager::Get()->GetStdIcons()->LoadBitmap("cc/16/function_public"); + m_checkForDuplicateEntries = true; - + std::vector tmpTags = m_members; m_members.clear(); - for (size_t i=0; i cols; - cols.push_back( SettersGettersModel::CreateIconTextVariant(tmpTags.at(i)->GetName(), memberBmp) ); - cols.push_back( false ); - wxDataViewItem memberItem = m_dataviewModel->AppendItem(wxDataViewItem(0), cols); + if(getter_exist && setter_exist) continue; + + m_members.push_back(tmpTags.at(i)); + Candidate candidate; + candidate.tag = tmpTags.at(i); + if(!getter_exist) { + candidate.suggestGetter = true; + candidate.getterName = getter_display_name; + } + if(!setter_exist) { + candidate.suggestSetter = true; + candidate.setterName = setter_display_name; + } - if ( !setter_exist ) { + m_candidates.push_back(candidate); + wxVector cols; + if(!setter_exist) { cols.clear(); - cols.push_back( SettersGettersModel::CreateIconTextVariant(setter_display_name, funcBmp) ); - cols.push_back( false ); - m_dataviewModel->AppendItem(memberItem, cols, new SettersGettersTreeData(tmpTags.at(i), SettersGettersTreeData::Kind_Setter, false)); + cols.push_back(false); + cols.push_back(SettersGettersModel::CreateIconTextVariant(setter_display_name, funcBmp)); + m_dataviewModel->AppendItem( + wxDataViewItem(0), + cols, + new SettersGettersTreeData(tmpTags.at(i), SettersGettersTreeData::Kind_Setter, false)); } - - if ( !getter_exist ) { + + if(!getter_exist) { cols.clear(); - cols.push_back( SettersGettersModel::CreateIconTextVariant(getter_display_name, funcBmp) ); - cols.push_back( false ); - m_dataviewModel->AppendItem(memberItem, cols, new SettersGettersTreeData(tmpTags.at(i), SettersGettersTreeData::Kind_Getter, false)); + cols.push_back(false); + cols.push_back(SettersGettersModel::CreateIconTextVariant(getter_display_name, funcBmp)); + m_dataviewModel->AppendItem( + wxDataViewItem(0), + cols, + new SettersGettersTreeData(tmpTags.at(i), SettersGettersTreeData::Kind_Getter, false)); } - - m_dataview->Expand( memberItem ); } m_checkForDuplicateEntries = false; - if (m_members.empty() == false) { + if(m_members.empty() == false) { wxString msg, title; msg << _("Select the functions to generate from the list below"); title << _("Generate Setters/Getters for class '") << m_members.at(0)->GetParent() << _("'"); @@ -459,54 +446,70 @@ void SettersGettersDlg::UpdateTree() { - wxDataViewItemArray members; - m_dataviewModel->GetChildren(wxDataViewItem(0), members); - - wxBitmap memberBmp = PluginManager::Get()->GetStdIcons()->LoadBitmap("cc/16/member_public"); - wxBitmap funcBmp = PluginManager::Get()->GetStdIcons()->LoadBitmap("cc/16/function_public"); - - for(size_t i=0; iGetChildren(member, funcs); - - for(size_t j=0; jGetClientObject(funcs.Item(j)); - wxString display_name; - bool dummy; - if ( data->m_kind == SettersGettersTreeData::Kind_Getter ) { - GenerateGetter(data->m_tag, dummy, display_name); + m_dataviewModel->Clear(); + std::vector candidates; + if(m_searchCtrl->GetValue().IsEmpty()) { + // show all + candidates = m_candidates; + } else { + // Filter the matches according to the search criteria + for(size_t i = 0; i < m_candidates.size(); ++i) { + Candidate tmpCandidate; + + const Candidate& candidate = m_candidates.at(i); + if(candidate.suggestGetter && FileUtils::FuzzyMatch(m_searchCtrl->GetValue(), candidate.getterName)) { + tmpCandidate.suggestGetter = true; + tmpCandidate.getterName = candidate.getterName; + } - } else if ( data->m_kind == SettersGettersTreeData::Kind_Setter ) { - GenerateSetter(data->m_tag, dummy, display_name); + if(candidate.suggestSetter && FileUtils::FuzzyMatch(m_searchCtrl->GetValue(), candidate.setterName)) { + tmpCandidate.suggestSetter = true; + tmpCandidate.setterName = candidate.setterName; + } + if(tmpCandidate.suggestGetter || tmpCandidate.suggestSetter) { + tmpCandidate.tag = candidate.tag; + candidates.push_back(tmpCandidate); } + } + } + + wxBitmap funcBmp = PluginManager::Get()->GetStdIcons()->LoadBitmap("cc/16/function_public"); + for(size_t i = 0; i < candidates.size(); ++i) { + const Candidate& candidate = candidates.at(i); + if(candidate.suggestSetter) { + wxVector cols; + cols.push_back(false); + cols.push_back(SettersGettersModel::CreateIconTextVariant(candidate.setterName, funcBmp)); + m_dataviewModel->AppendItem( + wxDataViewItem(0), + cols, + new SettersGettersTreeData(candidate.tag, SettersGettersTreeData::Kind_Setter, false)); + } + if(candidate.suggestGetter) { wxVector cols; - cols.push_back( SettersGettersModel::CreateIconTextVariant(display_name, funcBmp) ); - cols.push_back( data->m_checked ); - m_dataviewModel->UpdateItem( funcs.Item(j), cols ); + cols.push_back(false); + cols.push_back(SettersGettersModel::CreateIconTextVariant(candidate.getterName, funcBmp)); + m_dataviewModel->AppendItem( + wxDataViewItem(0), + cols, + new SettersGettersTreeData(candidate.tag, SettersGettersTreeData::Kind_Getter, false)); } } } -void SettersGettersDlg::OnButtonOk(wxCommandEvent& e) -{ - e.Skip(); -} +void SettersGettersDlg::OnButtonOk(wxCommandEvent& e) { e.Skip(); } SettersGettersDlg::~SettersGettersDlg() { - size_t flags (0); - if ( m_checkStartWithUppercase->IsChecked() ) - flags |= SettersGetterData::FunctionStartWithUpperCase; - - if ( m_checkBoxForamtFileWhenDone->IsChecked() ) - flags |= SettersGetterData::FormatFileWhenDone; - m_settings.SetFlags( flags ); + size_t flags(0); + if(m_checkStartWithUppercase->IsChecked()) flags |= SettersGetterData::FunctionStartWithUpperCase; + if(m_checkBoxForamtFileWhenDone->IsChecked()) flags |= SettersGetterData::FormatFileWhenDone; + if(m_checkBoxReturnSelf->IsChecked()) flags |= SettersGetterData::SettersReturnReferenceToSelf; + + m_settings.SetFlags(flags); clConfig::Get().WriteItem(&m_settings); - - } wxString SettersGettersDlg::GetGenCode() @@ -517,33 +520,32 @@ void SettersGettersDlg::OnValueChanged(wxDataViewEvent& event) { - SettersGettersTreeData *data = (SettersGettersTreeData *) m_dataviewModel->GetClientObject(event.GetItem()); - wxVariant v; - m_dataviewModel->GetValue(v, event.GetItem(), 1); - data->m_checked = v.GetBool(); + wxVector cols = m_dataviewModel->GetItemColumnsData(event.GetItem()); + SettersGettersTreeData* data = (SettersGettersTreeData*)m_dataviewModel->GetClientObject(event.GetItem()); + data->m_checked = cols.at(0).GetBool(); } //---------------------------------------------------- //---------------------------------------------------- - + SettersGetterData::SettersGetterData() : clConfigItem("SettersGetterData") - , m_flags(FormatFileWhenDone|FunctionStartWithUpperCase) -{ -} - -SettersGetterData::~SettersGetterData() -{ -} -void SettersGetterData::FromJSON(const JSONElement& json) -{ - m_flags = json.namedObject("m_flags").toSize_t(m_flags); -} - -JSONElement SettersGetterData::ToJSON() const + , m_flags(FormatFileWhenDone | FunctionStartWithUpperCase | SettersReturnReferenceToSelf) +{ +} + +SettersGetterData::~SettersGetterData() {} +void SettersGetterData::FromJSON(const JSONElement& json) { m_flags = json.namedObject("m_flags").toSize_t(m_flags); } + +JSONElement SettersGetterData::ToJSON() const { JSONElement element = JSONElement::createObject(GetName()); element.addProperty("m_flags", m_flags); - return element; -} - + return element; +} +void SettersGettersDlg::OnFilter(wxCommandEvent& event) { UpdateTree(); } +void SettersGettersDlg::OnSettersReturnReference(wxCommandEvent& event) +{ + wxUnusedVar(event); + UpdateTree(); +} diff -Nru codelite-8.0.1+dfsg2/LiteEditor/setters_getters_dlg.h codelite-9.0+dfsg/LiteEditor/setters_getters_dlg.h --- codelite-8.0.1+dfsg2/LiteEditor/setters_getters_dlg.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/setters_getters_dlg.h 2015-10-11 13:56:07.000000000 +0000 @@ -34,25 +34,23 @@ class SettersGetterData : public clConfigItem { size_t m_flags; + public: enum { - FunctionStartWithUpperCase = 0x00000001, - FormatFileWhenDone = 0x00000002, + FunctionStartWithUpperCase = (1 << 0), + FormatFileWhenDone = (1 << 1), + SettersReturnReferenceToSelf = (1 << 2), }; - + public: virtual void FromJSON(const JSONElement& json); virtual JSONElement ToJSON() const; - + SettersGetterData(); virtual ~SettersGetterData(); - void SetFlags(size_t flags) { - this->m_flags = flags; - } - size_t GetFlags() const { - return m_flags; - } + void SetFlags(size_t flags) { this->m_flags = flags; } + size_t GetFlags() const { return m_flags; } }; //---------------------------------------------------- @@ -62,54 +60,75 @@ enum { Kind_Getter = 0, Kind_Setter, Kind_Parent, Kind_Root }; TagEntryPtr m_tag; - int m_kind; - bool m_checked; - + int m_kind; + bool m_checked; + public: - SettersGettersTreeData(TagEntryPtr tag, int kind, bool checked) : m_tag(tag), m_kind(kind), m_checked(checked) {} + SettersGettersTreeData(TagEntryPtr tag, int kind, bool checked) + : m_tag(tag) + , m_kind(kind) + , m_checked(checked) + { + } virtual ~SettersGettersTreeData() {} }; class SettersGettersDlg : public SettersGettersBaseDlg { - std::vector m_members; - wxFileName m_file; - int m_lineno; + struct Candidate { + TagEntryPtr tag; + bool suggestGetter; + bool suggestSetter; + wxString setterName; + wxString getterName; + + Candidate() + : suggestGetter(false) + , suggestSetter(false) + { + } + }; + + std::vector m_candidates; + std::vector m_members; + wxFileName m_file; + int m_lineno; std::map m_tagsMap; - wxString m_code; - bool m_checkForDuplicateEntries; - SettersGetterData m_settings; - + wxString m_code; + bool m_checkForDuplicateEntries; + SettersGetterData m_settings; + protected: + virtual void OnSettersReturnReference(wxCommandEvent& event); + virtual void OnFilter(wxCommandEvent& event); virtual void OnValueChanged(wxDataViewEvent& event); - void OnCheckStartWithUpperCase(wxCommandEvent &event); - void OnCheckAll(wxCommandEvent &e); - void OnUncheckAll(wxCommandEvent &e); - void OnUpdatePreview(wxCommandEvent &e); - void OnButtonOk(wxCommandEvent &e); - int BuildTree (); + void OnCheckStartWithUpperCase(wxCommandEvent& event); + void OnCheckAll(wxCommandEvent& e); + void OnUncheckAll(wxCommandEvent& e); + void OnUpdatePreview(wxCommandEvent& e); + void OnButtonOk(wxCommandEvent& e); + int BuildTree(); void UpdateTree(); wxString GenerateFunctions(); - wxString GenerateSetter(TagEntryPtr tag, bool &alreadyExist, wxString &displayName); + wxString GenerateSetter(TagEntryPtr tag, bool& alreadyExist, wxString& displayName); wxString GenerateSetter(TagEntryPtr tag); - wxString GenerateGetter(TagEntryPtr tag, bool &alreadyExist, wxString &displayName); + wxString GenerateGetter(TagEntryPtr tag, bool& alreadyExist, wxString& displayName); wxString GenerateGetter(TagEntryPtr tag); - void FormatName(wxString &name); + void FormatName(wxString& name); void UpdatePreview(); - void GenerateGetters(wxString &code); - void GenerateSetters(wxString &code); - bool DoCheckExistance(const wxString &scope, const wxString &name, const wxString &method_signature); + void GenerateGetters(wxString& code); + void GenerateSetters(wxString& code); + bool DoCheckExistance(const wxString& scope, const wxString& name, const wxString& method_signature); + public: /** Constructor */ SettersGettersDlg(wxWindow* parent); virtual ~SettersGettersDlg(); - wxString GetGenCode() ; - bool GetFormatText() const { - return m_checkBoxForamtFileWhenDone->IsChecked(); - } - - bool Init(const std::vector &tags, const wxFileName &file, int lineno); + wxString GetGenCode(); + bool GetFormatText() const { return m_checkBoxForamtFileWhenDone->IsChecked(); } + + bool Init(const std::vector& tags, const wxFileName& file, int lineno); }; #endif // __setters_getters_dlg__ diff -Nru codelite-8.0.1+dfsg2/LiteEditor/setters_getters_formbuilder_bitmaps.cpp codelite-9.0+dfsg/LiteEditor/setters_getters_formbuilder_bitmaps.cpp --- codelite-8.0.1+dfsg2/LiteEditor/setters_getters_formbuilder_bitmaps.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/setters_getters_formbuilder_bitmaps.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,28 +1,3 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2014 The CodeLite Team -// file name : setters_getters_formbuilder_bitmaps.cpp -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - // // This file was automatically generated by wxrc, do not edit by hand. // @@ -46,14 +21,13 @@ wxMemoryFSHandler::AddFile(name, data, size) #endif -static size_t xml_res_size_0 = 108; +static size_t xml_res_size_0 = 90; static unsigned char xml_res_file_0[] = { 60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, 110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, 115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, 47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, -47,119,120,120,114,99,34,32,118,101,114,115,105,111,110,61,34,50,46,51, -46,48,46,49,34,47,62,10}; +47,119,120,120,114,99,34,47,62,10}; void wxC8861InitBitmapResources() { @@ -68,6 +42,6 @@ else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase); } - XRC_ADD_FILE(wxT("XRC_resource/setters_getters_formbuilder_bitmaps.cpp$C__src_codelitegit_formbuilder_setters_getters_formbuilder_bitmaps.xrc"), xml_res_file_0, xml_res_size_0, wxT("text/xml")); - wxXmlResource::Get()->Load(wxT("memory:XRC_resource/setters_getters_formbuilder_bitmaps.cpp$C__src_codelitegit_formbuilder_setters_getters_formbuilder_bitmaps.xrc")); + XRC_ADD_FILE(wxT("XRC_resource/setters_getters_formbuilder_bitmaps.cpp$C__src_codelite_formbuilder_setters_getters_formbuilder_bitmaps.xrc"), xml_res_file_0, xml_res_size_0, wxT("text/xml")); + wxXmlResource::Get()->Load(wxT("memory:XRC_resource/setters_getters_formbuilder_bitmaps.cpp$C__src_codelite_formbuilder_setters_getters_formbuilder_bitmaps.xrc")); } diff -Nru codelite-8.0.1+dfsg2/LiteEditor/setters_getters.h codelite-9.0+dfsg/LiteEditor/setters_getters.h --- codelite-8.0.1+dfsg2/LiteEditor/setters_getters.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/setters_getters.h 2015-10-11 13:56:07.000000000 +0000 @@ -1,73 +1,66 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2013 by Eran Ifrah -// file name : setters_getters.h -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - ////////////////////////////////////////////////////////////////////// // This file was auto-generated by codelite's wxCrafter Plugin +// wxCrafter project file: setters_getters.wxcp // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// -#ifndef SETTERS_GETTERS_BASE_CLASSES_H -#define SETTERS_GETTERS_BASE_CLASSES_H +#ifndef CODELITE_FORMBUILDER_SETTERS_GETTERS_BASE_CLASSES_H +#define CODELITE_FORMBUILDER_SETTERS_GETTERS_BASE_CLASSES_H #include #include #include #include +#include +#include #include #include +#include #include #include "settersgettersmodel.h" #include #include +#if wxVERSION_NUMBER >= 2900 +#include +#include +#include +#include +#endif class SettersGettersBaseDlg : public wxDialog { protected: - wxBoxSizer* bSizer1; - wxBoxSizer* bSizer3; wxBannerWindow* m_banner6; - wxBoxSizer* bSizer4; + wxSearchCtrl* m_searchCtrl; wxDataViewCtrl* m_dataview; wxObjectDataPtr m_dataviewModel; - wxBoxSizer* bSizer5; wxButton* m_buttonCheckAll; wxButton* m_buttonUncheckAll; wxCheckBox* m_checkStartWithUppercase; wxCheckBox* m_checkBoxForamtFileWhenDone; - wxBoxSizer* bSizer2; - wxButton* m_buttonOK; - wxButton* m_buttonCancel; + wxCheckBox* m_checkBoxReturnSelf; + wxStdDialogButtonSizer* m_stdBtnSizer16; + wxButton* m_button18; + wxButton* m_button20; protected: + virtual void OnFilter(wxCommandEvent& event) { event.Skip(); } virtual void OnValueChanged(wxDataViewEvent& event) { event.Skip(); } virtual void OnCheckAll(wxCommandEvent& event) { event.Skip(); } virtual void OnUncheckAll(wxCommandEvent& event) { event.Skip(); } virtual void OnCheckStartWithUpperCase(wxCommandEvent& event) { event.Skip(); } + virtual void OnSettersReturnReference(wxCommandEvent& event) { event.Skip(); } public: + wxBannerWindow* GetBanner6() { return m_banner6; } + wxSearchCtrl* GetSearchCtrl() { return m_searchCtrl; } + wxDataViewCtrl* GetDataview() { return m_dataview; } + wxButton* GetButtonCheckAll() { return m_buttonCheckAll; } + wxButton* GetButtonUncheckAll() { return m_buttonUncheckAll; } + wxCheckBox* GetCheckStartWithUppercase() { return m_checkStartWithUppercase; } + wxCheckBox* GetCheckBoxForamtFileWhenDone() { return m_checkBoxForamtFileWhenDone; } + wxCheckBox* GetCheckBoxReturnSelf() { return m_checkBoxReturnSelf; } SettersGettersBaseDlg(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Generate Setters/Getters for class"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER); virtual ~SettersGettersBaseDlg(); }; diff -Nru codelite-8.0.1+dfsg2/LiteEditor/settersgettersmodel.cpp codelite-9.0+dfsg/LiteEditor/settersgettersmodel.cpp --- codelite-8.0.1+dfsg2/LiteEditor/settersgettersmodel.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/settersgettersmodel.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,28 +1,3 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2014 The CodeLite Team -// file name : settersgettersmodel.cpp -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - ////////////////////////////////////////////////////////////////////// // This file was auto-generated by codelite's wxCrafter Plugin // Do not modify this file by hand! @@ -61,7 +36,7 @@ SettersGettersModel::~SettersGettersModel() { for(size_t i=0; i(item.m_pItem); if ( node ) { return wxDataViewItem(node->GetParent()); @@ -228,7 +207,7 @@ if ( parent && parent->GetChildren().empty() ) DoChangeItemType(parentItem, false); - delete node; + wxDELETE(node); } if ( IsEmpty() ) @@ -253,6 +232,7 @@ for(; iter != roots.end(); ++iter) { DeleteItem( wxDataViewItem(*iter) ); } + m_data.clear(); Cleared(); } diff -Nru codelite-8.0.1+dfsg2/LiteEditor/settersgettersmodel.h codelite-9.0+dfsg/LiteEditor/settersgettersmodel.h --- codelite-8.0.1+dfsg2/LiteEditor/settersgettersmodel.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/settersgettersmodel.h 2015-10-11 13:56:07.000000000 +0000 @@ -1,28 +1,3 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2013 by Eran Ifrah -// file name : settersgettersmodel.h -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - ////////////////////////////////////////////////////////////////////// // This file was auto-generated by codelite's wxCrafter Plugin // Do not modify this file by hand! diff -Nru codelite-8.0.1+dfsg2/LiteEditor/shelltab.cpp codelite-9.0+dfsg/LiteEditor/shelltab.cpp --- codelite-8.0.1+dfsg2/LiteEditor/shelltab.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/shelltab.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -33,23 +33,20 @@ #include "pluginmanager.h" #include "editor_config.h" #include "lexer_configuration.h" - +#include "ColoursAndFontsManager.h" BEGIN_EVENT_TABLE(ShellTab, OutputTabWindow) - EVT_COMMAND(wxID_ANY, wxEVT_ASYNC_PROC_STARTED, ShellTab::OnProcStarted) - EVT_COMMAND(wxID_ANY, wxEVT_ASYNC_PROC_ADDLINE, ShellTab::OnProcOutput) - EVT_COMMAND(wxID_ANY, wxEVT_ASYNC_PROC_ADDERRLINE, ShellTab::OnProcError) - EVT_COMMAND(wxID_ANY, wxEVT_ASYNC_PROC_ENDED, ShellTab::OnProcEnded) - EVT_BUTTON(XRCID("send_input"), ShellTab::OnSendInput) - EVT_BUTTON(XRCID("stop_process"), ShellTab::OnStopProc) - EVT_BUTTON(XRCID("stop_process"), ShellTab::OnStopProc) - - EVT_UPDATE_UI(XRCID("send_input"), ShellTab::OnUpdateUI) - EVT_UPDATE_UI(XRCID("stop_process"), ShellTab::OnUpdateUI) - EVT_UPDATE_UI(XRCID("hold_pane_open"), ShellTab::OnHoldOpenUpdateUI) +EVT_COMMAND(wxID_ANY, wxEVT_ASYNC_PROC_STARTED, ShellTab::OnProcStarted) +EVT_COMMAND(wxID_ANY, wxEVT_ASYNC_PROC_ADDLINE, ShellTab::OnProcOutput) +EVT_COMMAND(wxID_ANY, wxEVT_ASYNC_PROC_ADDERRLINE, ShellTab::OnProcError) +EVT_COMMAND(wxID_ANY, wxEVT_ASYNC_PROC_ENDED, ShellTab::OnProcEnded) +EVT_BUTTON(XRCID("send_input"), ShellTab::OnSendInput) +EVT_BUTTON(XRCID("stop_process"), ShellTab::OnStopProc) +EVT_UPDATE_UI(XRCID("send_input"), ShellTab::OnUpdateUI) +EVT_UPDATE_UI(XRCID("stop_process"), ShellTab::OnUpdateUI) +EVT_UPDATE_UI(XRCID("hold_pane_open"), ShellTab::OnHoldOpenUpdateUI) END_EVENT_TABLE() - ShellTab::ShellTab(wxWindow* parent, wxWindowID id, const wxString& name) : OutputTabWindow(parent, id, name) , m_inputSizer(NULL) @@ -58,31 +55,31 @@ { m_inputSizer = new wxBoxSizer(wxHORIZONTAL); - wxStaticText *text = new wxStaticText(this, wxID_ANY, _("Send:")); - m_inputSizer->Add(text, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 0); + wxStaticText* text = new wxStaticText(this, wxID_ANY, _("Send:")); + m_inputSizer->Add(text, 0, wxRIGHT | wxLEFT | wxALIGN_CENTER_VERTICAL, 0); - m_input = new wxComboBox(this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, wxTE_PROCESS_ENTER); - m_input->SetMinSize(wxSize(200,-1)); + m_input = + new wxComboBox(this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, wxTE_PROCESS_ENTER); + m_input->SetMinSize(wxSize(200, -1)); m_input->Connect(wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler(ShellTab::OnEnter), NULL, this); m_input->Connect(wxEVT_KEY_DOWN, wxKeyEventHandler(ShellTab::OnKeyDown), NULL, this); - m_inputSizer->Add(m_input, 1, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5); + m_inputSizer->Add(m_input, 1, wxRIGHT | wxLEFT | wxALIGN_CENTER_VERTICAL, 5); - wxButton *btn; + wxButton* btn; btn = new wxButton(this, XRCID("send_input"), _("Send"), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT); - m_inputSizer->Add(btn, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5); + m_inputSizer->Add(btn, 0, wxRIGHT | wxLEFT | wxALIGN_CENTER_VERTICAL, 5); btn = new wxButton(this, XRCID("stop_process"), _("Stop"), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT); - m_inputSizer->Add(btn, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5); - + m_inputSizer->Add(btn, 0, wxRIGHT | wxLEFT | wxALIGN_CENTER_VERTICAL, 5); // grab the base class scintilla and put our sizer in its place - wxSizer *mainSizer = m_hSizer; + wxSizer* mainSizer = m_vSizer; mainSizer->Detach(m_sci); m_vertSizer = new wxBoxSizer(wxVERTICAL); - m_vertSizer->Add(m_sci, 1, wxEXPAND | wxALL, 1); - m_vertSizer->Add(m_inputSizer, 0, wxEXPAND | wxALL, 1); + m_vertSizer->Add(m_sci, 1, wxEXPAND | wxALL, 1); + m_vertSizer->Add(m_inputSizer, 0, wxEXPAND | wxALL, 1); #ifdef __WXMAC__ mainSizer->Insert(0, m_vertSizer, 1, wxEXPAND | wxALL, 1); @@ -94,9 +91,7 @@ InitStyle(m_sci); } -ShellTab::~ShellTab() -{ -} +ShellTab::~ShellTab() {} void ShellTab::InitStyle(wxStyledTextCtrl* sci) { @@ -104,18 +99,18 @@ text->Apply(sci); } -bool ShellTab::DoSendInput(const wxString &line) +bool ShellTab::DoSendInput(const wxString& line) { - return m_cmd && m_cmd->IsBusy() && m_cmd->GetProcess()->Write(line+wxT('\n')); + return m_cmd && m_cmd->IsBusy() && m_cmd->GetProcess()->Write(line + wxT('\n')); } void ShellTab::OnProcStarted(wxCommandEvent& e) { - if (m_cmd && m_cmd->IsBusy()) { + if(m_cmd && m_cmd->IsBusy()) { // TODO: log message: already running a process return; } - m_cmd = (AsyncExeCmd*) e.GetEventObject(); + m_cmd = (AsyncExeCmd*)e.GetEventObject(); Clear(); AppendText(e.GetString()); m_input->Clear(); @@ -123,8 +118,8 @@ void ShellTab::OnProcOutput(wxCommandEvent& e) { - AsyncExeCmd *cmd = (AsyncExeCmd*) e.GetEventObject(); - if (cmd != m_cmd) { + AsyncExeCmd* cmd = (AsyncExeCmd*)e.GetEventObject(); + if(cmd != m_cmd) { // TODO: log message return; } @@ -133,8 +128,8 @@ void ShellTab::OnProcError(wxCommandEvent& e) { - AsyncExeCmd *cmd = (AsyncExeCmd*) e.GetEventObject(); - if (cmd != m_cmd) { + AsyncExeCmd* cmd = (AsyncExeCmd*)e.GetEventObject(); + if(cmd != m_cmd) { // TODO: log message return; } @@ -144,8 +139,8 @@ void ShellTab::OnProcEnded(wxCommandEvent& e) { - AsyncExeCmd *cmd = (AsyncExeCmd*) e.GetEventObject(); - if (cmd != m_cmd) { + AsyncExeCmd* cmd = (AsyncExeCmd*)e.GetEventObject(); + if(cmd != m_cmd) { // TODO: log message return; } @@ -158,8 +153,8 @@ wxUnusedVar(e); wxString line = m_input->GetValue(); - if (DoSendInput(line)) { - if (m_input->FindString(line) == wxNOT_FOUND) { + if(DoSendInput(line)) { + if(m_input->FindString(line) == wxNOT_FOUND) { m_input->Append(line); } m_input->SetValue(wxEmptyString); @@ -171,23 +166,20 @@ { wxUnusedVar(e); - if (m_cmd && m_cmd->IsBusy()) { + if(m_cmd && m_cmd->IsBusy()) { m_cmd->Terminate(); } } -void ShellTab::OnUpdateUI(wxUpdateUIEvent& e) -{ - e.Enable(m_cmd && m_cmd->IsBusy()); -} +void ShellTab::OnUpdateUI(wxUpdateUIEvent& e) { e.Enable(m_cmd && m_cmd->IsBusy()); } void ShellTab::OnKeyDown(wxKeyEvent& e) { wxCommandEvent dummy; - switch (e.GetKeyCode()) { + switch(e.GetKeyCode()) { case wxT('c'): case wxT('C'): - if (e.GetModifiers() == wxMOD_CONTROL) { + if(e.GetModifiers() == wxMOD_CONTROL) { OnStopProc(dummy); } else { e.Skip(); @@ -199,7 +191,6 @@ } } - void ShellTab::OnEnter(wxCommandEvent& e) { wxUnusedVar(e); @@ -207,15 +198,14 @@ OnSendInput(dummy); } - DebugTab::DebugTab(wxWindow* parent, wxWindowID id, const wxString& name) : ShellTab(parent, id, name) { - if (m_sci) { + if(m_sci) { m_sci->SetMarginType(0, wxSTC_MARGIN_NUMBER); m_sci->SetMarginType(1, wxSTC_MARGIN_FORE); - //int pixelWidth = 4 + 4 * m_sci->TextWidth(wxSTC_STYLE_LINENUMBER, wxT("9")); + // int pixelWidth = 4 + 4 * m_sci->TextWidth(wxSTC_STYLE_LINENUMBER, wxT("9")); // Show number margin according to settings. m_sci->SetMarginWidth(0, 0); @@ -231,18 +221,15 @@ Connect(XRCID("hold_pane_open"), wxEVT_UPDATE_UI, wxUpdateUIEventHandler(DebugTab::OnHoldOpenUpdateUI), NULL, this); } -DebugTab::~DebugTab() -{ -} +DebugTab::~DebugTab() {} -bool DebugTab::DoSendInput(const wxString &cmd) +bool DebugTab::DoSendInput(const wxString& cmd) { - IDebugger *dbgr = DebuggerMgr::Get().GetActiveDebugger(); - if (!dbgr || !dbgr->IsRunning()) - return false; + IDebugger* dbgr = DebuggerMgr::Get().GetActiveDebugger(); + if(!dbgr || !dbgr->IsRunning()) return false; bool contIsNeeded = ManagerST::Get()->GetBreakpointsMgr()->PauseDebuggerIfNeeded(); dbgr->ExecuteCmd(cmd); - if (contIsNeeded) { + if(contIsNeeded) { ManagerST::Get()->DbgContinue(); } return true; @@ -252,20 +239,20 @@ { wxUnusedVar(e); - IDebugger *dbgr = DebuggerMgr::Get().GetActiveDebugger(); - if (dbgr && dbgr->IsRunning()) { + IDebugger* dbgr = DebuggerMgr::Get().GetActiveDebugger(); + if(dbgr && dbgr->IsRunning()) { ManagerST::Get()->DbgDoSimpleCommand(DBG_PAUSE); } } void DebugTab::AppendLine(const wxString& line) { - if ( m_sci->GetLineCount() > 2 ) { - wxString lineBefore = m_sci->GetLine(m_sci->GetLineCount()-2); - wxString newLine (line); + if(m_sci->GetLineCount() > 2) { + wxString lineBefore = m_sci->GetLine(m_sci->GetLineCount() - 2); + wxString newLine(line); newLine.Trim().Trim(false); lineBefore.Trim().Trim(false); - if ( (lineBefore == newLine) && (newLine == _("Continuing...")) ) { + if((lineBefore == newLine) && (newLine == _("Continuing..."))) { // Dont add this line... } else { AppendText(line); @@ -277,40 +264,45 @@ void DebugTab::OnUpdateUI(wxUpdateUIEvent& e) { - IDebugger *dbgr = DebuggerMgr::Get().GetActiveDebugger(); + IDebugger* dbgr = DebuggerMgr::Get().GetActiveDebugger(); e.Enable(dbgr && dbgr->IsRunning()); } /////////////////////////////////////////////////////////////////////////////////////////////// -DebugTabPanel::DebugTabPanel( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style ) : wxPanel( parent, id, pos, size, style ) +DebugTabPanel::DebugTabPanel(wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style) + : wxPanel(parent, id, pos, size, style) { wxBoxSizer* bSizer1; - bSizer1 = new wxBoxSizer( wxVERTICAL ); + bSizer1 = new wxBoxSizer(wxVERTICAL); - m_checkBoxEnableLog = new wxCheckBox( this, wxID_ANY, _("Enable debugger full logging"), wxDefaultPosition, wxDefaultSize, 0 ); - bSizer1->Add( m_checkBoxEnableLog, 0, wxALL|wxEXPAND, 0 ); + m_checkBoxEnableLog = + new wxCheckBox(this, wxID_ANY, _("Enable debugger full logging"), wxDefaultPosition, wxDefaultSize, 0); + bSizer1->Add(m_checkBoxEnableLog, 0, wxALL | wxEXPAND, 0); - this->SetSizer( bSizer1 ); + this->SetSizer(bSizer1); this->Layout(); // The next line is needed in >=wx2.9 to prevent this panel taking up most of its containing sizer :/ SetMinSize(m_checkBoxEnableLog->GetSize()); // Connect Events - m_checkBoxEnableLog->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DebugTabPanel::OnEnableDbgLog ), NULL, this ); - m_checkBoxEnableLog->Connect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( DebugTabPanel::OnEnableDbgLogUI ), NULL, this ); + m_checkBoxEnableLog->Connect( + wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(DebugTabPanel::OnEnableDbgLog), NULL, this); + m_checkBoxEnableLog->Connect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(DebugTabPanel::OnEnableDbgLogUI), NULL, this); } DebugTabPanel::~DebugTabPanel() { // Disconnect Events - m_checkBoxEnableLog->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DebugTabPanel::OnEnableDbgLog ), NULL, this ); - m_checkBoxEnableLog->Disconnect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( DebugTabPanel::OnEnableDbgLogUI ), NULL, this ); + m_checkBoxEnableLog->Disconnect( + wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(DebugTabPanel::OnEnableDbgLog), NULL, this); + m_checkBoxEnableLog->Disconnect( + wxEVT_UPDATE_UI, wxUpdateUIEventHandler(DebugTabPanel::OnEnableDbgLogUI), NULL, this); } void DebugTabPanel::OnEnableDbgLog(wxCommandEvent& event) { - IDebugger *dbgr = DebuggerMgr::Get().GetActiveDebugger(); + IDebugger* dbgr = DebuggerMgr::Get().GetActiveDebugger(); if(dbgr) { dbgr->EnableLogging(event.IsChecked()); @@ -322,42 +314,60 @@ void DebugTabPanel::OnEnableDbgLogUI(wxUpdateUIEvent& event) { - IDebugger *dbgr = DebuggerMgr::Get().GetActiveDebugger(); + IDebugger* dbgr = DebuggerMgr::Get().GetActiveDebugger(); if(dbgr) { DebuggerInformation info = dbgr->GetDebuggerInformation(); - event.Check( info.enableDebugLog ); + event.Check(info.enableDebugLog); } } void ShellTab::OnHoldOpenUpdateUI(wxUpdateUIEvent& e) { int sel = clMainFrame::Get()->GetOutputPane()->GetNotebook()->GetSelection(); - if (clMainFrame::Get()->GetOutputPane()->GetNotebook()->GetPage(sel) != this) { + if(clMainFrame::Get()->GetOutputPane()->GetNotebook()->GetPage(sel) != this) { return; } if(EditorConfigST::Get()->GetOptions()->GetHideOutpuPaneOnUserClick()) { e.Enable(true); - e.Check( EditorConfigST::Get()->GetOptions()->GetHideOutputPaneNotIfOutput() ); + e.Check(EditorConfigST::Get()->GetOptions()->GetHideOutputPaneNotIfOutput()); } else { e.Enable(false); e.Check(false); } } + +void ShellTab::OnThemeChanged(wxCommandEvent& e) +{ + e.Skip(); + LexerConf::Ptr_t l = ColoursAndFontsManager::Get().GetLexer("text"); + l->Apply(m_sci); +} void DebugTab::OnHoldOpenUpdateUI(wxUpdateUIEvent& e) { int sel = clMainFrame::Get()->GetOutputPane()->GetNotebook()->GetSelection(); - if (clMainFrame::Get()->GetOutputPane()->GetNotebook()->GetPage(sel) != this) { + if(clMainFrame::Get()->GetOutputPane()->GetNotebook()->GetPage(sel) != this) { return; } if(EditorConfigST::Get()->GetOptions()->GetHideOutpuPaneOnUserClick()) { e.Enable(true); - e.Check( EditorConfigST::Get()->GetOptions()->GetHideOutputPaneNotIfDebug() ); + e.Check(EditorConfigST::Get()->GetOptions()->GetHideOutputPaneNotIfDebug()); } else { e.Enable(false); e.Check(false); } } + +OutputTab::OutputTab(wxWindow* parent, wxWindowID id, const wxString& name) + : ShellTab(parent, id, name) +{ + m_inputSizer->Show(false); + GetSizer()->Layout(); +} + +OutputTab::~OutputTab() +{ +} diff -Nru codelite-8.0.1+dfsg2/LiteEditor/shelltab.h codelite-9.0+dfsg/LiteEditor/shelltab.h --- codelite-8.0.1+dfsg2/LiteEditor/shelltab.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/shelltab.h 2015-10-11 13:56:07.000000000 +0000 @@ -32,63 +32,74 @@ class ShellTab : public OutputTabWindow { protected: - wxSizer *m_inputSizer; - wxSizer *m_vertSizer; - wxComboBox *m_input; - AsyncExeCmd *m_cmd; - - static void InitStyle (wxStyledTextCtrl *sci); - - virtual bool DoSendInput (const wxString &line); - - virtual void OnProcStarted(wxCommandEvent &e); - virtual void OnProcOutput (wxCommandEvent &e); - virtual void OnProcError (wxCommandEvent &e); - virtual void OnProcEnded (wxCommandEvent &e); - - virtual void OnSendInput (wxCommandEvent &e); - virtual void OnStopProc (wxCommandEvent &e); - virtual void OnKeyDown (wxKeyEvent &e); - virtual void OnEnter (wxCommandEvent &e); - virtual void OnUpdateUI (wxUpdateUIEvent &e); - virtual void OnHoldOpenUpdateUI(wxUpdateUIEvent &e); + wxSizer* m_inputSizer; + wxSizer* m_vertSizer; + wxComboBox* m_input; + AsyncExeCmd* m_cmd; +protected: + static void InitStyle(wxStyledTextCtrl* sci); + + virtual bool DoSendInput(const wxString& line); + + virtual void OnProcStarted(wxCommandEvent& e); + virtual void OnProcOutput(wxCommandEvent& e); + virtual void OnProcError(wxCommandEvent& e); + virtual void OnProcEnded(wxCommandEvent& e); + + virtual void OnSendInput(wxCommandEvent& e); + virtual void OnStopProc(wxCommandEvent& e); + virtual void OnKeyDown(wxKeyEvent& e); + virtual void OnEnter(wxCommandEvent& e); + virtual void OnUpdateUI(wxUpdateUIEvent& e); + virtual void OnHoldOpenUpdateUI(wxUpdateUIEvent& e); + void OnThemeChanged(wxCommandEvent& e); + DECLARE_EVENT_TABLE() public: - ShellTab(wxWindow *parent, wxWindowID id, const wxString &name); - ~ShellTab(); + ShellTab(wxWindow* parent, wxWindowID id, const wxString& name); + virtual ~ShellTab(); }; +class OutputTab : public ShellTab +{ +public: + OutputTab(wxWindow* parent, wxWindowID id, const wxString& name); + virtual ~OutputTab(); +}; class DebugTab : public ShellTab { protected: - bool DoSendInput(const wxString &line); - void OnStopProc (wxCommandEvent &e); - void OnUpdateUI (wxUpdateUIEvent &e); - virtual void OnHoldOpenUpdateUI(wxUpdateUIEvent &e); + bool DoSendInput(const wxString& line); + void OnStopProc(wxCommandEvent& e); + void OnUpdateUI(wxUpdateUIEvent& e); + virtual void OnHoldOpenUpdateUI(wxUpdateUIEvent& e); public: - DebugTab(wxWindow *parent, wxWindowID id, const wxString &name); - ~DebugTab(); + DebugTab(wxWindow* parent, wxWindowID id, const wxString& name); + virtual ~DebugTab(); - void AppendLine(const wxString &line); + void AppendLine(const wxString& line); }; class DebugTabPanel : public wxPanel { private: - protected: wxCheckBox* m_checkBoxEnableLog; // Virtual event handlers, overide them in your derived class - virtual void OnEnableDbgLog( wxCommandEvent& event ); - virtual void OnEnableDbgLogUI( wxUpdateUIEvent& event ); -public: + virtual void OnEnableDbgLog(wxCommandEvent& event); + virtual void OnEnableDbgLogUI(wxUpdateUIEvent& event); - DebugTabPanel( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 500,300 ), long style = wxTAB_TRAVERSAL ); +public: + DebugTabPanel(wxWindow* parent, + wxWindowID id = wxID_ANY, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxSize(500, 300), + long style = wxTAB_TRAVERSAL); ~DebugTabPanel(); }; -#endif //SHELLTAB_H +#endif // SHELLTAB_H diff -Nru codelite-8.0.1+dfsg2/LiteEditor/simpletablebase.cpp codelite-9.0+dfsg/LiteEditor/simpletablebase.cpp --- codelite-8.0.1+dfsg2/LiteEditor/simpletablebase.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/simpletablebase.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,28 +1,28 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2014 The CodeLite Team -// file name : simpletablebase.cpp -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - +////////////////////////////////////////////////////////////////////////////// +////////////////////////////////////////////////////////////////////////////// +// +// copyright : (C) 2014 The CodeLite Team +// file name : simpletablebase.cpp +// +// ------------------------------------------------------------------------- +// A +// _____ _ _ _ _ +// / __ \ | | | | (_) | +// | / \/ ___ __| | ___| | _| |_ ___ +// | | / _ \ / _ |/ _ \ | | | __/ _ ) +// | \__/\ (_) | (_| | __/ |___| | || __/ +// \____/\___/ \__,_|\___\_____/_|\__\___| +// +// F i l e +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// +////////////////////////////////////////////////////////////////////////////// +////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////// // C++ code generated with wxFormBuilder (version Apr 16 2008) // http://www.wxformbuilder.org/ @@ -40,37 +40,39 @@ /////////////////////////////////////////////////////////////////////////// -DebuggerTreeListCtrlBase::DebuggerTreeListCtrlBase( wxWindow* parent, - wxWindowID id, - bool withButtonsPane, - const wxPoint& pos, - const wxSize& size, - long style ) - : LocalsTableBase( parent, id, pos, size, style ) +DebuggerTreeListCtrlBase::DebuggerTreeListCtrlBase(wxWindow* parent, + wxWindowID id, + bool withButtonsPane, + const wxPoint& pos, + const wxSize& size, + long style) + : LocalsTableBase(parent, id, pos, size, style) , m_withButtons(withButtonsPane) { m_listTable->SetForegroundColour(DrawingUtils::GetTextCtrlTextColour()); - if ( !m_withButtons ) { - m_auibar31->DeleteByIndex(1); // separator - m_auibar31->DeleteTool( wxID_DELETE ); - m_auibar31->DeleteTool( wxID_NEW ); - m_auibar31->Realize(); + if(!m_withButtons) { + m_auibar31->DeleteTool(wxID_DELETE); + m_auibar31->DeleteTool(wxID_NEW); + } else { + m_auibar31->DeleteTool(ID_SORT_LOCALS); } + m_auibar31->Realize(); - EventNotifier::Get()->Connect(wxEVT_CL_THEME_CHANGED, wxCommandEventHandler(DebuggerTreeListCtrlBase::OnThemeColourChanged), NULL, this); + EventNotifier::Get()->Connect( + wxEVT_CL_THEME_CHANGED, wxCommandEventHandler(DebuggerTreeListCtrlBase::OnThemeColourChanged), NULL, this); } DebuggerTreeListCtrlBase::~DebuggerTreeListCtrlBase() { // Disconnect Events - EventNotifier::Get()->Disconnect(wxEVT_CL_THEME_CHANGED, wxCommandEventHandler(DebuggerTreeListCtrlBase::OnThemeColourChanged), NULL, this); + EventNotifier::Get()->Disconnect( + wxEVT_CL_THEME_CHANGED, wxCommandEventHandler(DebuggerTreeListCtrlBase::OnThemeColourChanged), NULL, this); } IDebugger* DebuggerTreeListCtrlBase::DoGetDebugger() { - if(!ManagerST::Get()->DbgCanInteract()) - return NULL; + if(!ManagerST::Get()->DbgCanInteract()) return NULL; IDebugger* dbgr = DebuggerMgr::Get().GetActiveDebugger(); return dbgr; @@ -83,8 +85,8 @@ wxTreeItemIdValue cookieOne; wxTreeItemId child = m_listTable->GetFirstChild(item, cookieOne); - while( child.IsOk() ) { - DbgTreeItemData *data = (DbgTreeItemData *) m_listTable->GetItemData(child); + while(child.IsOk()) { + DbgTreeItemData* data = (DbgTreeItemData*)m_listTable->GetItemData(child); bool resetColor = ((itemKind == 0) || (data && (data->_kind & itemKind))); if(resetColor) { @@ -106,13 +108,12 @@ wxString value = event.m_evaluated; std::map::iterator iter = m_gdbIdToTreeId.find(gdbId); - if( iter != m_gdbIdToTreeId.end() ) { + if(iter != m_gdbIdToTreeId.end()) { wxString newValue = value; wxString curValue = m_listTable->GetItemText(iter->second, 1); - if(!(newValue == curValue || curValue.IsEmpty())) - m_listTable->SetItemTextColour(iter->second, *wxRED); + if(!(newValue == curValue || curValue.IsEmpty())) m_listTable->SetItemTextColour(iter->second, *wxRED); m_listTable->SetItemText(iter->second, 1, value); @@ -121,14 +122,15 @@ } } -void DebuggerTreeListCtrlBase::DoRefreshItemRecursively(IDebugger *dbgr, const wxTreeItemId &item, wxArrayString &itemsToRefresh) +void DebuggerTreeListCtrlBase::DoRefreshItemRecursively(IDebugger* dbgr, + const wxTreeItemId& item, + wxArrayString& itemsToRefresh) { - if(itemsToRefresh.IsEmpty()) - return; + if(itemsToRefresh.IsEmpty()) return; wxTreeItemIdValue cookieOne; wxTreeItemId exprItem = m_listTable->GetFirstChild(item, cookieOne); - while( exprItem.IsOk() ) { + while(exprItem.IsOk()) { DbgTreeItemData* data = static_cast(m_listTable->GetItemData(exprItem)); if(data) { @@ -172,8 +174,7 @@ void DebuggerTreeListCtrlBase::DoRefreshItem(IDebugger* dbgr, const wxTreeItemId& item, bool forceCreate) { - if(!dbgr || !item.IsOk()) - return; + if(!dbgr || !item.IsOk()) return; DbgTreeItemData* data = static_cast(m_listTable->GetItemData(item)); if(data && data->_gdbId.IsEmpty() == false) { @@ -198,10 +199,9 @@ wxString DebuggerTreeListCtrlBase::DoGetGdbId(const wxTreeItemId& item) { wxString gdbId; - if(!item.IsOk()) - return gdbId; + if(!item.IsOk()) return gdbId; - DbgTreeItemData *data = (DbgTreeItemData*) m_listTable->GetItemData(item); + DbgTreeItemData* data = (DbgTreeItemData*)m_listTable->GetItemData(item); if(data) { return data->_gdbId; } @@ -213,11 +213,10 @@ wxTreeItemId root = m_listTable->GetRootItem(); wxTreeItemIdValue cookieOne; wxTreeItemId item = m_listTable->GetFirstChild(root, cookieOne); - while( item.IsOk() ) { + while(item.IsOk()) { wxString id = DoGetGdbId(item); - if(id.IsEmpty() == false && id == gdbId) - return item; + if(id.IsEmpty() == false && id == gdbId) return item; item = m_listTable->GetNextChild(root, cookieOne); } @@ -226,7 +225,7 @@ void DebuggerTreeListCtrlBase::DoDeleteWatch(const wxTreeItemId& item) { - IDebugger *dbgr = DoGetDebugger(); + IDebugger* dbgr = DoGetDebugger(); if(!dbgr || !item.IsOk()) { return; } @@ -259,7 +258,6 @@ } } #endif - } wxTreeItemId DebuggerTreeListCtrlBase::DoFindItemByExpression(const wxString& expr) @@ -267,27 +265,22 @@ wxTreeItemId root = m_listTable->GetRootItem(); wxTreeItemIdValue cookieOne; wxTreeItemId item = m_listTable->GetFirstChild(root, cookieOne); - while( item.IsOk() ) { + while(item.IsOk()) { - if(m_listTable->GetItemText(item) == expr) - return item; + if(m_listTable->GetItemText(item) == expr) return item; item = m_listTable->GetNextChild(root, cookieOne); } return wxTreeItemId(); } -void DebuggerTreeListCtrlBase::ResetTableColors() -{ - DoResetItemColour(m_listTable->GetRootItem(), 0); -} +void DebuggerTreeListCtrlBase::ResetTableColors() { DoResetItemColour(m_listTable->GetRootItem(), 0); } -wxString DebuggerTreeListCtrlBase::GetItemPath(const wxTreeItemId &item) +wxString DebuggerTreeListCtrlBase::GetItemPath(const wxTreeItemId& item) { wxArrayString pathArr; - if(item.IsOk() == false) - return wxT(""); + if(item.IsOk() == false) return wxT(""); - DbgTreeItemData* data = (DbgTreeItemData*) m_listTable->GetItemData(item); + DbgTreeItemData* data = (DbgTreeItemData*)m_listTable->GetItemData(item); if(data && data->_gdbId.IsEmpty()) { // not a variable object item return m_listTable->GetItemText(item); @@ -295,18 +288,17 @@ wxTreeItemId parent = item; while(parent.IsOk() && m_listTable->GetRootItem() != parent) { - DbgTreeItemData* itemData = (DbgTreeItemData*) m_listTable->GetItemData(parent); + DbgTreeItemData* itemData = (DbgTreeItemData*)m_listTable->GetItemData(parent); if(itemData && !itemData->_isFake) { pathArr.Add(m_listTable->GetItemText(parent)); } parent = m_listTable->GetItemParent(parent); } - if(pathArr.IsEmpty()) - return wxT(""); + if(pathArr.IsEmpty()) return wxT(""); wxString itemPath; - for(int i=(int)pathArr.GetCount()-1; i>=0; i--) { + for(int i = (int)pathArr.GetCount() - 1; i >= 0; i--) { itemPath << pathArr.Item(i) << wxT("."); } itemPath.RemoveLast(); @@ -320,7 +312,7 @@ wxTreeItemId root = m_listTable->GetRootItem(); wxTreeItemIdValue cookieOne; wxTreeItemId item = m_listTable->GetFirstChild(root, cookieOne); - while( item.IsOk() ) { + while(item.IsOk()) { if(event.m_expression == m_listTable->GetItemText(item)) { m_listTable->Delete(item); @@ -330,24 +322,6 @@ } } -void DebuggerTreeListCtrlBase::UpdateVariableObjects() -{ - IDebugger *debugger = DebuggerMgr::Get().GetActiveDebugger(); - if(!debugger) - return; - - wxTreeItemId root = m_listTable->GetRootItem(); - wxTreeItemIdValue cookieOne; - wxTreeItemId item = m_listTable->GetFirstChild(root, cookieOne); - while( item.IsOk() ) { - wxString gdbID = DoGetGdbId(item); - if(gdbID.IsEmpty() == false) { - debugger->UpdateVariableObject(gdbID, m_DBG_USERR); - } - item = m_listTable->GetNextChild(root, cookieOne); - } -} - void DebuggerTreeListCtrlBase::OnThemeColourChanged(wxCommandEvent& e) { e.Skip(); @@ -363,57 +337,25 @@ Refresh(); } -void DebuggerTreeListCtrlBase::OnDeleteWatch(wxCommandEvent& event) -{ - event.Skip(); -} +void DebuggerTreeListCtrlBase::OnDeleteWatch(wxCommandEvent& event) { event.Skip(); } -void DebuggerTreeListCtrlBase::OnDeleteWatchUI(wxUpdateUIEvent& event) -{ - event.Enable( !m_withButtons ); -} +void DebuggerTreeListCtrlBase::OnDeleteWatchUI(wxUpdateUIEvent& event) { event.Enable(!m_withButtons); } -void DebuggerTreeListCtrlBase::OnItemExpanding(wxTreeEvent& event) -{ - event.Skip(); -} +void DebuggerTreeListCtrlBase::OnItemExpanding(wxTreeEvent& event) { event.Skip(); } -void DebuggerTreeListCtrlBase::OnItemRightClick(wxTreeEvent& event) -{ - event.Skip(); -} +void DebuggerTreeListCtrlBase::OnItemRightClick(wxTreeEvent& event) { event.Skip(); } -void DebuggerTreeListCtrlBase::OnListEditLabelBegin(wxTreeEvent& event) -{ - event.Skip(); -} +void DebuggerTreeListCtrlBase::OnListEditLabelBegin(wxTreeEvent& event) { event.Skip(); } -void DebuggerTreeListCtrlBase::OnListEditLabelEnd(wxTreeEvent& event) -{ - event.Skip(); -} +void DebuggerTreeListCtrlBase::OnListEditLabelEnd(wxTreeEvent& event) { event.Skip(); } -void DebuggerTreeListCtrlBase::OnListKeyDown(wxTreeEvent& event) -{ - event.Skip(); -} +void DebuggerTreeListCtrlBase::OnListKeyDown(wxTreeEvent& event) { event.Skip(); } -void DebuggerTreeListCtrlBase::OnNewWatch(wxCommandEvent& event) -{ - event.Skip(); -} +void DebuggerTreeListCtrlBase::OnNewWatch(wxCommandEvent& event) { event.Skip(); } -void DebuggerTreeListCtrlBase::OnNewWatchUI(wxUpdateUIEvent& event) -{ - event.Enable( m_withButtons ); -} +void DebuggerTreeListCtrlBase::OnNewWatchUI(wxUpdateUIEvent& event) { event.Enable(m_withButtons); } -void DebuggerTreeListCtrlBase::OnRefresh(wxCommandEvent& event) -{ - event.Skip(); -} +void DebuggerTreeListCtrlBase::OnRefresh(wxCommandEvent& event) { event.Skip(); } -void DebuggerTreeListCtrlBase::OnRefreshUI(wxUpdateUIEvent& event) -{ - event.Skip(); -} +void DebuggerTreeListCtrlBase::OnRefreshUI(wxUpdateUIEvent& event) { event.Skip(); } +void DebuggerTreeListCtrlBase::OnSortItems(wxCommandEvent& event) {} diff -Nru codelite-8.0.1+dfsg2/LiteEditor/simpletablebase.h codelite-9.0+dfsg/LiteEditor/simpletablebase.h --- codelite-8.0.1+dfsg2/LiteEditor/simpletablebase.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/simpletablebase.h 2015-10-11 13:56:07.000000000 +0000 @@ -1,28 +1,28 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2013 by Eran Ifrah -// file name : simpletablebase.h -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - +////////////////////////////////////////////////////////////////////////////// +////////////////////////////////////////////////////////////////////////////// +// +// copyright : (C) 2013 by Eran Ifrah +// file name : simpletablebase.h +// +// ------------------------------------------------------------------------- +// A +// _____ _ _ _ _ +// / __ \ | | | | (_) | +// | / \/ ___ __| | ___| | _| |_ ___ +// | | / _ \ / _ |/ _ \ | | | __/ _ ) +// | \__/\ (_) | (_| | __/ |___| | || __/ +// \____/\___/ \__,_|\___\_____/_|\__\___| +// +// F i l e +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// +////////////////////////////////////////////////////////////////////////////// +////////////////////////////////////////////////////////////////////////////// + #ifndef __simpletablebase__ #define __simpletablebase__ @@ -50,35 +50,35 @@ { public: wxString _gdbId; - size_t _kind; - bool _isFake; + size_t _kind; + bool _isFake; wxString _retValueGdbValue; public: enum { - Locals = 0x00000001, - FuncArgs = 0x00000002, + Locals = 0x00000001, + FuncArgs = 0x00000002, VariableObject = 0x00000004, - Watch = 0x00000010, - FuncRetValue = 0x00000020 + Watch = 0x00000010, + FuncRetValue = 0x00000020 }; public: DbgTreeItemData() : _kind(Locals) , _isFake(false) - {} + { + } - DbgTreeItemData(const wxString &gdbId) + DbgTreeItemData(const wxString& gdbId) : _gdbId(gdbId) , _isFake(false) - {} + { + } - virtual ~DbgTreeItemData() - {} + virtual ~DbgTreeItemData() {} }; - /////////////////////////////////////////////////////////////////////////////// /// Class SimpleTableBase /////////////////////////////////////////////////////////////////////////////// @@ -88,6 +88,7 @@ bool m_withButtons; protected: + virtual void OnSortItems(wxCommandEvent& event); virtual void OnRefreshUI(wxUpdateUIEvent& event); virtual void OnDeleteWatch(wxCommandEvent& event); virtual void OnDeleteWatchUI(wxUpdateUIEvent& event); @@ -103,43 +104,41 @@ std::map m_gdbIdToTreeId; std::map m_listChildItemId; std::map m_createVarItemId; - DbgStackInfo m_curStackInfo; + DbgStackInfo m_curStackInfo; protected: - int m_DBG_USERR; - int m_QUERY_NUM_CHILDS; - int m_LIST_CHILDS; + int m_DBG_USERR; + int m_QUERY_NUM_CHILDS; + int m_LIST_CHILDS; protected: - void OnThemeColourChanged(wxCommandEvent &e); + void OnThemeColourChanged(wxCommandEvent& e); public: - DebuggerTreeListCtrlBase( wxWindow* parent, - wxWindowID id = wxID_ANY, - bool withButtonsPane = true, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxSize( 500,300 ), - long style = wxTAB_TRAVERSAL ); + DebuggerTreeListCtrlBase(wxWindow* parent, + wxWindowID id = wxID_ANY, + bool withButtonsPane = true, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxSize(500, 300), + long style = wxTAB_TRAVERSAL); ~DebuggerTreeListCtrlBase(); ////////////////////////////////////////////// // Common to both Locals / Watches ////////////////////////////////////////////// - virtual IDebugger* DoGetDebugger (); - virtual void DoResetItemColour (const wxTreeItemId& item, size_t itemKind); - virtual void OnEvaluateVariableObj (const DebuggerEventData& event); - virtual void OnCreateVariableObjError(const DebuggerEventData& event); - virtual void DoRefreshItemRecursively(IDebugger *dbgr, const wxTreeItemId &item, wxArrayString &itemsToRefresh); - virtual void Clear (); - virtual void DoRefreshItem (IDebugger *dbgr, const wxTreeItemId &item, bool forceCreate); - virtual wxString DoGetGdbId (const wxTreeItemId& item); - virtual wxTreeItemId DoFindItemByGdbId (const wxString& gdbId); - virtual void DoDeleteWatch (const wxTreeItemId& item); - virtual wxTreeItemId DoFindItemByExpression (const wxString &expr); - virtual void ResetTableColors (); - virtual wxString GetItemPath (const wxTreeItemId &item); - virtual void UpdateVariableObjects (); - + virtual IDebugger* DoGetDebugger(); + virtual void DoResetItemColour(const wxTreeItemId& item, size_t itemKind); + virtual void OnEvaluateVariableObj(const DebuggerEventData& event); + virtual void OnCreateVariableObjError(const DebuggerEventData& event); + virtual void DoRefreshItemRecursively(IDebugger* dbgr, const wxTreeItemId& item, wxArrayString& itemsToRefresh); + virtual void Clear(); + virtual void DoRefreshItem(IDebugger* dbgr, const wxTreeItemId& item, bool forceCreate); + virtual wxString DoGetGdbId(const wxTreeItemId& item); + virtual wxTreeItemId DoFindItemByGdbId(const wxString& gdbId); + virtual void DoDeleteWatch(const wxTreeItemId& item); + virtual wxTreeItemId DoFindItemByExpression(const wxString& expr); + virtual void ResetTableColors(); + virtual wxString GetItemPath(const wxTreeItemId& item); }; -#endif //__simpletablebase__ +#endif //__simpletablebase__ diff -Nru codelite-8.0.1+dfsg2/LiteEditor/simpletable.cpp codelite-9.0+dfsg/LiteEditor/simpletable.cpp --- codelite-8.0.1+dfsg2/LiteEditor/simpletable.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/simpletable.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -36,42 +36,85 @@ ///////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// -WatchesTable::WatchesTable( wxWindow* parent ) - : DebuggerTreeListCtrlBase( parent ) +WatchesTable::WatchesTable(wxWindow* parent) + : DebuggerTreeListCtrlBase(parent) { InitTable(); - m_DBG_USERR = DBG_USERR_WATCHTABLE; + m_DBG_USERR = DBG_USERR_WATCHTABLE; m_QUERY_NUM_CHILDS = QUERY_NUM_CHILDS; - m_LIST_CHILDS = LIST_WATCH_CHILDS; + m_LIST_CHILDS = LIST_WATCH_CHILDS; - //Load the right click menu + // Load the right click menu m_rclickMenu = wxXmlResource::Get()->LoadMenu(wxT("dbg_watch_rmenu")); - Connect(XRCID("del_expr"), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( WatchesTable::OnDeleteWatch), NULL, this); - Connect(XRCID("del_expr_all"), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( WatchesTable::OnDeleteAll), NULL, this); - Connect(XRCID("edit_expr"), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( WatchesTable::OnMenuEditExpr), NULL, this); - Connect(XRCID("copy_value"), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( WatchesTable::OnMenuCopyValue), NULL, this); - Connect(XRCID("add_watch"), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( WatchesTable::OnNewWatch_Internal), NULL, this); - Connect(XRCID("copy_both"), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( WatchesTable::OnMenuCopyBoth), NULL, this); - - Connect(XRCID("watches_df_natural"),wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( WatchesTable::OnMenuDisplayFormat), NULL, this); - Connect(XRCID("watches_df_hex"), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( WatchesTable::OnMenuDisplayFormat), NULL, this); - Connect(XRCID("watches_df_bin"), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( WatchesTable::OnMenuDisplayFormat), NULL, this); - Connect(XRCID("watches_df_octal"), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( WatchesTable::OnMenuDisplayFormat), NULL, this); - Connect(XRCID("watches_df_decimal"),wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( WatchesTable::OnMenuDisplayFormat), NULL, this); + Connect( + XRCID("del_expr"), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(WatchesTable::OnDeleteWatch), NULL, this); + Connect(XRCID("del_expr_all"), + wxEVT_COMMAND_MENU_SELECTED, + wxCommandEventHandler(WatchesTable::OnDeleteAll), + NULL, + this); + Connect(XRCID("edit_expr"), + wxEVT_COMMAND_MENU_SELECTED, + wxCommandEventHandler(WatchesTable::OnMenuEditExpr), + NULL, + this); + Connect(XRCID("copy_value"), + wxEVT_COMMAND_MENU_SELECTED, + wxCommandEventHandler(WatchesTable::OnMenuCopyValue), + NULL, + this); + Connect(XRCID("add_watch"), + wxEVT_COMMAND_MENU_SELECTED, + wxCommandEventHandler(WatchesTable::OnNewWatch_Internal), + NULL, + this); + Connect(XRCID("copy_both"), + wxEVT_COMMAND_MENU_SELECTED, + wxCommandEventHandler(WatchesTable::OnMenuCopyBoth), + NULL, + this); + + Connect(XRCID("watches_df_natural"), + wxEVT_COMMAND_MENU_SELECTED, + wxCommandEventHandler(WatchesTable::OnMenuDisplayFormat), + NULL, + this); + Connect(XRCID("watches_df_hex"), + wxEVT_COMMAND_MENU_SELECTED, + wxCommandEventHandler(WatchesTable::OnMenuDisplayFormat), + NULL, + this); + Connect(XRCID("watches_df_bin"), + wxEVT_COMMAND_MENU_SELECTED, + wxCommandEventHandler(WatchesTable::OnMenuDisplayFormat), + NULL, + this); + Connect(XRCID("watches_df_octal"), + wxEVT_COMMAND_MENU_SELECTED, + wxCommandEventHandler(WatchesTable::OnMenuDisplayFormat), + NULL, + this); + Connect(XRCID("watches_df_decimal"), + wxEVT_COMMAND_MENU_SELECTED, + wxCommandEventHandler(WatchesTable::OnMenuDisplayFormat), + NULL, + this); // UI events - Connect(XRCID("edit_expr"),wxEVT_UPDATE_UI, wxUpdateUIEventHandler( WatchesTable::OnMenuEditExprUI), NULL, this); - Connect(XRCID("del_expr"),wxEVT_UPDATE_UI, wxUpdateUIEventHandler( WatchesTable::OnDeleteWatchUI), NULL, this); - - EventNotifier::Get()->Connect(wxEVT_DEBUGGER_TYPE_RESOLVE_ERROR, clCommandEventHandler(WatchesTable::OnTypeResolveError), NULL, this); - SetDropTarget( new WatchDropTarget(this) ); + Connect(XRCID("edit_expr"), wxEVT_UPDATE_UI, wxUpdateUIEventHandler(WatchesTable::OnMenuEditExprUI), NULL, this); + Connect(XRCID("del_expr"), wxEVT_UPDATE_UI, wxUpdateUIEventHandler(WatchesTable::OnDeleteWatchUI), NULL, this); + + EventNotifier::Get()->Connect( + wxEVT_DEBUGGER_TYPE_RESOLVE_ERROR, clCommandEventHandler(WatchesTable::OnTypeResolveError), NULL, this); + SetDropTarget(new WatchDropTarget(this)); } WatchesTable::~WatchesTable() { - EventNotifier::Get()->Connect(wxEVT_DEBUGGER_TYPE_RESOLVE_ERROR, clCommandEventHandler(WatchesTable::OnTypeResolveError), NULL, this); - - if (m_rclickMenu) { + EventNotifier::Get()->Connect( + wxEVT_DEBUGGER_TYPE_RESOLVE_ERROR, clCommandEventHandler(WatchesTable::OnTypeResolveError), NULL, this); + + if(m_rclickMenu) { delete m_rclickMenu; m_rclickMenu = NULL; } @@ -93,59 +136,53 @@ void WatchesTable::InitTable() { m_listTable->AddColumn(_("Expression"), 150); - m_listTable->AddColumn(_("Value"), 500); - m_listTable->AddColumn(_("Type"), 200); + m_listTable->AddColumn(_("Value"), 500); + m_listTable->AddColumn(_("Type"), 200); m_listTable->AddRoot(_("Watches")); } -void WatchesTable::OnListKeyDown( wxTreeEvent& event ) +void WatchesTable::OnListKeyDown(wxTreeEvent& event) { - if (event.GetKeyCode() == WXK_DELETE || event.GetKeyCode() == WXK_NUMPAD_DELETE) { + if(event.GetKeyCode() == WXK_DELETE || event.GetKeyCode() == WXK_NUMPAD_DELETE) { wxTreeItemId item = m_listTable->GetSelection(); - if(item.IsOk() == false) - return; + if(item.IsOk() == false) return; DoDeleteWatch(item); m_listTable->Delete(item); } else { event.Skip(); - } } -void WatchesTable::OnItemRightClick(wxTreeEvent &event) +void WatchesTable::OnItemRightClick(wxTreeEvent& event) { wxUnusedVar(event); - if (m_rclickMenu) { + if(m_rclickMenu) { PopupMenu(m_rclickMenu); } } -void WatchesTable::OnNewWatch(wxCommandEvent &event) +void WatchesTable::OnNewWatch(wxCommandEvent& event) { wxUnusedVar(event); wxString expr = wxGetTextFromUser(_("Expression to watch:"), _("New watch")); - if (expr.IsEmpty() == false) { + if(expr.IsEmpty() == false) { AddExpression(expr); RefreshValues(false); } } -void WatchesTable::OnNewWatchUI(wxUpdateUIEvent &event) -{ - event.Enable(true); -} - +void WatchesTable::OnNewWatchUI(wxUpdateUIEvent& event) { event.Enable(true); } -void WatchesTable::OnDeleteAll(wxCommandEvent &event) +void WatchesTable::OnDeleteAll(wxCommandEvent& event) { wxUnusedVar(event); Clear(); } -void WatchesTable::OnDeleteAllUI(wxUpdateUIEvent &event) +void WatchesTable::OnDeleteAllUI(wxUpdateUIEvent& event) { wxTreeItemId root = m_listTable->GetRootItem(); @@ -155,51 +192,66 @@ event.Enable(root.IsOk() && child.IsOk()); } -void WatchesTable::OnDeleteWatch(wxCommandEvent &event) +void WatchesTable::OnDeleteWatch(wxCommandEvent& event) { wxUnusedVar(event); wxTreeItemId item = m_listTable->GetSelection(); - if(item.IsOk() == false) - return; + if(item.IsOk() == false) return; DoDeleteWatch(item); m_listTable->Delete(item); } -void WatchesTable::OnDeleteWatchUI(wxUpdateUIEvent &event) +void WatchesTable::OnDeleteWatchUI(wxUpdateUIEvent& event) { wxTreeItemId item = m_listTable->GetSelection(); event.Enable(item.IsOk() && m_listTable->GetItemParent(item) == m_listTable->GetRootItem()); } -void WatchesTable::AddExpression(const wxString &expr) +void WatchesTable::AddExpression(const wxString& expr) { - IDebugger *dbgr = DebuggerMgr::Get().GetActiveDebugger(); - if( dbgr && ManagerST::Get()->DbgCanInteract() ) { + IDebugger* dbgr = DebuggerMgr::Get().GetActiveDebugger(); + if(dbgr && ManagerST::Get()->DbgCanInteract()) { dbgr->ResolveType(expr, DBG_USERR_WATCHTABLE); } else { DebuggerEventData dummy; dummy.m_expression = expr; - dummy.m_evaluated = expr; + dummy.m_evaluated = expr; OnTypeResolved(dummy); } } +void WatchesTable::UpdateVariableObjects() +{ + IDebugger *debugger = DebuggerMgr::Get().GetActiveDebugger(); + CHECK_PTR_RET(debugger); + + wxTreeItemId root = m_listTable->GetRootItem(); + wxTreeItemIdValue cookieOne; + wxTreeItemId item = m_listTable->GetFirstChild(root, cookieOne); + while( item.IsOk() ) { + wxString gdbID = DoGetGdbId(item); + if(!gdbID.IsEmpty()) { + debugger->UpdateWatch(gdbID); + } + item = m_listTable->GetNextChild(root, cookieOne); + } +} + void WatchesTable::RefreshValues(bool repositionEditor) { - //indicate in the global manager if we want to actually reposition the editor's position after the dbgr->QueryFileLine() refresh + // indicate in the global manager if we want to actually reposition the editor's position after the + // dbgr->QueryFileLine() refresh ManagerST::Get()->SetRepositionEditor(repositionEditor); // loop over the childrens, if we got a valid variable object, re-evaluate it wxTreeItemId root = m_listTable->GetRootItem(); - if(root.IsOk() == false) - return; + if(root.IsOk() == false) return; // Obtain the debugger and make sure that we can interact with it - IDebugger *dbgr = DoGetDebugger(); - if(!dbgr) - return; + IDebugger* dbgr = DoGetDebugger(); + if(!dbgr) return; // rese tree items colour to black DoResetItemColour(root, 0); @@ -211,11 +263,11 @@ // for those items, create a variable object wxTreeItemIdValue cookieOne; wxTreeItemId item = m_listTable->GetFirstChild(root, cookieOne); - while( item.IsOk() ) { + while(item.IsOk()) { DbgTreeItemData* data = static_cast(m_listTable->GetItemData(item)); if(data && data->_gdbId.IsEmpty()) { - dbgr->CreateVariableObject(m_listTable->GetItemText(item), true, m_DBG_USERR); + dbgr->CreateVariableObject(m_listTable->GetItemText(item), false, m_DBG_USERR); m_createVarItemId[m_listTable->GetItemText(item)] = item; } @@ -232,7 +284,7 @@ wxTreeItemIdValue cookie; wxTreeItemId item = m_listTable->GetFirstChild(root, cookie); while(item.IsOk()) { - expressions.Add( m_listTable->GetItemText(item) ) ; + expressions.Add(m_listTable->GetItemText(item)); item = m_listTable->GetNextChild(root, cookie); } } @@ -240,28 +292,26 @@ return expressions; } -void WatchesTable::OnMenuEditExpr(wxCommandEvent &event) +void WatchesTable::OnMenuEditExpr(wxCommandEvent& event) { wxUnusedVar(event); wxTreeItemId item = m_listTable->GetSelection(); - if(item.IsOk() == false) - return; + if(item.IsOk() == false) return; - IDebugger *dbgr = DoGetDebugger(); + IDebugger* dbgr = DoGetDebugger(); if(!dbgr) { return; } wxString newExpr = wxGetTextFromUser(_("Update expression:"), _("Update Watch"), m_listTable->GetItemText(item)); - if(newExpr.IsEmpty()) - return; + if(newExpr.IsEmpty()) return; DoUpdateExpression(item, newExpr); } -void WatchesTable::DoUpdateExpression(const wxTreeItemId& item, const wxString &newExpr) +void WatchesTable::DoUpdateExpression(const wxTreeItemId& item, const wxString& newExpr) { - IDebugger *dbgr = DoGetDebugger(); + IDebugger* dbgr = DoGetDebugger(); if(!dbgr) { return; } @@ -275,7 +325,7 @@ { wxTreeItemId item = m_listTable->GetSelection(); if(item.IsOk()) { - CopyToClipboard( m_listTable->GetItemText(item) + wxT(" ") + m_listTable->GetItemText(item, 1) ); + CopyToClipboard(m_listTable->GetItemText(item) + wxT(" ") + m_listTable->GetItemText(item, 1)); } } @@ -283,14 +333,14 @@ { wxTreeItemId item = m_listTable->GetSelection(); if(item.IsOk()) { - CopyToClipboard( m_listTable->GetItemText(item, 1) ); + CopyToClipboard(m_listTable->GetItemText(item, 1)); } } void WatchesTable::OnNewWatch_Internal(wxCommandEvent& event) { wxString expr = event.GetString(); - if( expr.empty() == false ) { + if(expr.empty() == false) { AddExpression(expr); RefreshValues(false); } @@ -299,9 +349,9 @@ void WatchesTable::OnCreateVariableObject(const DebuggerEventData& event) { wxString expr = event.m_expression; - IDebugger *dbgr = DoGetDebugger(); + IDebugger* dbgr = DoGetDebugger(); std::map::iterator iter = m_createVarItemId.find(expr); - if( iter != m_createVarItemId.end() ) { + if(iter != m_createVarItemId.end()) { wxTreeItemId item = iter->second; m_createVarItemId.erase(iter); @@ -314,8 +364,7 @@ // set the type m_listTable->SetItemText(item, 2, event.m_variableObject.typeName); // refresh this item only - if(dbgr) - DoRefreshItem(dbgr, item, true); + if(dbgr) DoRefreshItem(dbgr, item, true); // Query the debugger to see if this node has a children // In case it does, we add a dummy node so we will get the [+] sign @@ -330,7 +379,6 @@ DoRefreshItem(dbgr, item, true); } } - } } @@ -338,22 +386,19 @@ { wxString gdbId = event.m_expression; std::map::iterator iter = m_listChildItemId.find(gdbId); - if(iter == m_listChildItemId.end()) - return; + if(iter == m_listChildItemId.end()) return; wxTreeItemId item = iter->second; m_listChildItemId.erase(iter); if(event.m_userReason == m_QUERY_NUM_CHILDS) { - if(event.m_varObjChildren.empty() == false) - m_listTable->AppendItem(item, wxT("")); + if(event.m_varObjChildren.empty() == false) m_listTable->AppendItem(item, wxT("")); } else if(event.m_userReason == m_LIST_CHILDS) { if(event.m_varObjChildren.empty() == false) { - for(size_t i=0; iDbgCanInteract()) - return; + for(size_t i = 0; i < event.m_varObjChildren.size(); i++) { + IDebugger* dbgr = DebuggerMgr::Get().GetActiveDebugger(); + if(!dbgr || !ManagerST::Get()->DbgCanInteract()) return; VariableObjChild ch = event.m_varObjChildren.at(i); if(ch.varName == wxT("public") || ch.varName == wxT("private") || ch.varName == wxT("protected")) { @@ -364,7 +409,7 @@ } else { - DbgTreeItemData *data = new DbgTreeItemData(); + DbgTreeItemData* data = new DbgTreeItemData(); data->_gdbId = ch.gdbId; wxTreeItemId child = m_listTable->AppendItem(item, ch.varName, -1, -1, data); m_listTable->SetItemText(child, 2, ch.type); @@ -378,7 +423,6 @@ dbgr->EvaluateVariableObject(data->_gdbId, m_DBG_USERR); // ask the value for this node m_gdbIdToTreeId[data->_gdbId] = child; - } } } @@ -390,7 +434,7 @@ wxTreeItemIdValue cookie; wxTreeItemId child = m_listTable->GetFirstChild(event.GetItem(), cookie); - IDebugger *dbgr = DoGetDebugger(); + IDebugger* dbgr = DoGetDebugger(); if(!dbgr) { // dont allow the expansion of this item event.Veto(); @@ -401,7 +445,7 @@ // a dummy node, replace it with the real node content m_listTable->Delete(child); - DbgTreeItemData *data = (DbgTreeItemData*) m_listTable->GetItemData(event.GetItem()); + DbgTreeItemData* data = (DbgTreeItemData*)m_listTable->GetItemData(event.GetItem()); if(data) { if(data->_gdbId.IsEmpty() == false) { dbgr->UpdateVariableObject(data->_gdbId, m_DBG_USERR); @@ -458,7 +502,7 @@ } wxTreeItemId item = m_listTable->GetSelection(); - IDebugger * dbgr = DoGetDebugger(); + IDebugger* dbgr = DoGetDebugger(); if(!dbgr || !item.IsOk()) { return; } @@ -473,11 +517,10 @@ void WatchesTable::OnUpdateVariableObject(const DebuggerEventData& event) { - if(event.m_varObjUpdateInfo.refreshIds.IsEmpty()) - return; + if(event.m_varObjUpdateInfo.refreshIds.IsEmpty()) return; wxArrayString itemsToRefresh = event.m_varObjUpdateInfo.refreshIds; - IDebugger *dbgr = DoGetDebugger(); + IDebugger* dbgr = DoGetDebugger(); if(dbgr) { DoRefreshItemRecursively(dbgr, m_listTable->GetRootItem(), itemsToRefresh); } @@ -487,31 +530,30 @@ { wxString expr = ::DbgPrependCharPtrCastIfNeeded(event.m_expression, event.m_evaluated); - //make sure that the expression does not exist + // make sure that the expression does not exist wxTreeItemId root = m_listTable->GetRootItem(); if(!root.IsOk()) { return; } - IDebugger *dbgr = DebuggerMgr::Get().GetActiveDebugger(); + IDebugger* dbgr = DebuggerMgr::Get().GetActiveDebugger(); if(!dbgr) { return; } // Obtain the debugger and make sure that we can interact with it - if( !ManagerST::Get()->DbgCanInteract() ) - return; + if(!ManagerST::Get()->DbgCanInteract()) return; // Append the new item and call the debugger to create a new variable object for this // expression wxTreeItemId item = m_listTable->AppendItem(root, expr, -1, -1, new DbgTreeItemData()); - dbgr->CreateVariableObject(expr, true, m_DBG_USERR); + dbgr->CreateVariableObject(expr, false, m_DBG_USERR); m_createVarItemId[expr] = item; } void WatchesTable::OnRefresh(wxCommandEvent& event) { - IDebugger *dbgr = DebuggerMgr::Get().GetActiveDebugger(); + IDebugger* dbgr = DebuggerMgr::Get().GetActiveDebugger(); if(!dbgr || !ManagerST::Get()->DbgCanInteract()) { return; } @@ -524,9 +566,9 @@ wxTreeItemIdValue cookieOne; wxTreeItemId root = m_listTable->GetRootItem(); wxTreeItemId item = m_listTable->GetFirstChild(root, cookieOne); - while( item.IsOk() ) { + while(item.IsOk()) { - watches.Add( m_listTable->GetItemText(item) ); + watches.Add(m_listTable->GetItemText(item)); DbgTreeItemData* data = static_cast(m_listTable->GetItemData(item)); if(data && data->_gdbId.IsEmpty()) { dbgr->DeleteVariableObject(data->_gdbId); @@ -535,25 +577,25 @@ } m_createVarItemId.clear(); Clear(); - for(size_t i=0; iDbgCanInteract() ); + IDebugger* dbgr = DebuggerMgr::Get().GetActiveDebugger(); + event.Enable(dbgr && ManagerST::Get()->DbgCanInteract()); } -void WatchesTable::OnTypeResolveError(clCommandEvent& event) +void WatchesTable::OnTypeResolveError(clCommandEvent& event) { DebuggerEventData* ded = dynamic_cast(event.GetClientObject()); - if ( ded && ded->m_userReason == m_DBG_USERR) { + if(ded && ded->m_userReason == m_DBG_USERR) { // this event was meant for us // could not resolve type wxTreeItemId id = DoFindItemByExpression(ded->m_expression); - if ( id.IsOk() ) { + if(id.IsOk()) { // update m_listTable->SetItemText(id, 1, ded->m_text); } else { @@ -563,14 +605,13 @@ } } else { event.Skip(); - - } -} + } +} // ---------------------------------------------------------------- bool WatchDropTarget::OnDropText(wxCoord x, wxCoord y, const wxString& text) { - m_parent->AddExpression( text ); + m_parent->AddExpression(text); return false; // so the text won't get cut from the editor... -} +} diff -Nru codelite-8.0.1+dfsg2/LiteEditor/simpletable.h codelite-9.0+dfsg/LiteEditor/simpletable.h --- codelite-8.0.1+dfsg2/LiteEditor/simpletable.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/simpletable.h 2015-10-11 13:56:07.000000000 +0000 @@ -35,7 +35,7 @@ #include "debuggerobserver.h" #include "cl_command_event.h" -#define QUERY_NUM_CHILDS 500 +#define QUERY_NUM_CHILDS 500 #define LIST_WATCH_CHILDS 501 class IDebugger; @@ -44,8 +44,12 @@ class WatchDropTarget : public wxTextDropTarget { WatchesTable* m_parent; + public: - WatchDropTarget(WatchesTable* parent) : m_parent(parent) {} + WatchDropTarget(WatchesTable* parent) + : m_parent(parent) + { + } virtual ~WatchDropTarget() {} virtual bool OnDropText(wxCoord x, wxCoord y, const wxString& text); }; @@ -53,32 +57,33 @@ /** Implementing SimpleTableBase */ class WatchesTable : public DebuggerTreeListCtrlBase { - wxMenu *m_rclickMenu; + wxMenu* m_rclickMenu; + protected: // Handlers for SimpleTableBase events. - void OnListKeyDown( wxTreeEvent& event ); + void OnListKeyDown(wxTreeEvent& event); void OnItemRightClick(wxTreeEvent& event); void OnItemExpanding(wxTreeEvent& event); void OnListEditLabelBegin(wxTreeEvent& event); void OnListEditLabelEnd(wxTreeEvent& event); // Menu events - void OnNewWatch (wxCommandEvent &event); - void OnNewWatchUI (wxUpdateUIEvent &event); - void OnDeleteAll (wxCommandEvent &event); - void OnDeleteAllUI (wxUpdateUIEvent &event); - void OnDeleteWatch (wxCommandEvent &event); - void OnDeleteWatchUI (wxUpdateUIEvent &event); - void OnMenuEditExpr (wxCommandEvent &event); - void OnMenuEditExprUI (wxUpdateUIEvent &event); - void OnMenuCopyValue (wxCommandEvent &event); - void OnMenuCopyBoth (wxCommandEvent &event); - void OnMenuDisplayFormat(wxCommandEvent &event); - void OnNewWatch_Internal(wxCommandEvent &event); + void OnNewWatch(wxCommandEvent& event); + void OnNewWatchUI(wxUpdateUIEvent& event); + void OnDeleteAll(wxCommandEvent& event); + void OnDeleteAllUI(wxUpdateUIEvent& event); + void OnDeleteWatch(wxCommandEvent& event); + void OnDeleteWatchUI(wxUpdateUIEvent& event); + void OnMenuEditExpr(wxCommandEvent& event); + void OnMenuEditExprUI(wxUpdateUIEvent& event); + void OnMenuCopyValue(wxCommandEvent& event); + void OnMenuCopyBoth(wxCommandEvent& event); + void OnMenuDisplayFormat(wxCommandEvent& event); + void OnNewWatch_Internal(wxCommandEvent& event); protected: void InitTable(); - void DoUpdateExpression(const wxTreeItemId& item, const wxString &newExpr); + void DoUpdateExpression(const wxTreeItemId& item, const wxString& newExpr); public: virtual void OnTypeResolveError(clCommandEvent& event); @@ -89,29 +94,31 @@ * responded for our CreateVariableObject call * @param event */ - void OnCreateVariableObject (const DebuggerEventData &event); + void OnCreateVariableObject(const DebuggerEventData& event); /** * @brief a type resolving is completed, we can now add the watch */ - void OnTypeResolved(const DebuggerEventData &event); + void OnTypeResolved(const DebuggerEventData& event); /** * @brief a callback called from the global manager when the debugger * responded for our ListChildren call * @param event */ - void OnListChildren( const DebuggerEventData &event ); - - void OnUpdateVariableObject(const DebuggerEventData &event); + void OnListChildren(const DebuggerEventData& event); + void OnUpdateVariableObject(const DebuggerEventData& event); + + void UpdateVariableObjects(); + public: /** Constructor */ - WatchesTable( wxWindow* parent ); + WatchesTable(wxWindow* parent); virtual ~WatchesTable(); - void AddExpression(const wxString &expr); + void AddExpression(const wxString& expr); wxArrayString GetExpressions(); void Clear(); void RefreshValues(bool repositionEditor = true); }; -#endif // __simpletable__ +#endif // __simpletable__ diff -Nru codelite-8.0.1+dfsg2/LiteEditor/syntaxhighlightbasedlg.h codelite-9.0+dfsg/LiteEditor/syntaxhighlightbasedlg.h --- codelite-8.0.1+dfsg2/LiteEditor/syntaxhighlightbasedlg.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/syntaxhighlightbasedlg.h 2015-10-11 13:56:07.000000000 +0000 @@ -4,8 +4,8 @@ // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// -#ifndef SYNTAXHIGHLIGHTBASEDLG_BASE_CLASSES_H -#define SYNTAXHIGHLIGHTBASEDLG_BASE_CLASSES_H +#ifndef CODELITE_LITEEDITOR_SYNTAXHIGHLIGHTBASEDLG_BASE_CLASSES_H +#define CODELITE_LITEEDITOR_SYNTAXHIGHLIGHTBASEDLG_BASE_CLASSES_H #include #include diff -Nru codelite-8.0.1+dfsg2/LiteEditor/tabgroupmanager.cpp codelite-9.0+dfsg/LiteEditor/tabgroupmanager.cpp --- codelite-8.0.1+dfsg2/LiteEditor/tabgroupmanager.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/tabgroupmanager.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -69,7 +69,7 @@ void TabgroupManager::SetTabgroupDirectory() { - wxFileName TabgrpPath = wxFileName::DirName(WorkspaceST::Get()->GetPrivateFolder() + wxT("/tabgroups/")); + wxFileName TabgrpPath = wxFileName::DirName(clCxxWorkspaceST::Get()->GetPrivateFolder() + wxT("/tabgroups/")); if (!TabgrpPath.DirExists()) { TabgrpPath.Mkdir(0777, wxPATH_MKDIR_FULL); } diff -Nru codelite-8.0.1+dfsg2/LiteEditor/tags_options_base_dlg.cpp codelite-9.0+dfsg/LiteEditor/tags_options_base_dlg.cpp --- codelite-8.0.1+dfsg2/LiteEditor/tags_options_base_dlg.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/tags_options_base_dlg.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -541,6 +541,8 @@ #if wxVERSION_NUMBER >= 2900 if(!wxPersistenceManager::Get().Find(m_treebook2)){ wxPersistenceManager::Get().RegisterAndRestore(m_treebook2); + } else { + wxPersistenceManager::Get().Restore(m_treebook2); } #endif m_treebook2->ExpandNode( 0, true ); @@ -552,6 +554,8 @@ #if wxVERSION_NUMBER >= 2900 if(!wxPersistenceManager::Get().Find(m_notebook36)){ wxPersistenceManager::Get().RegisterAndRestore(m_notebook36); + } else { + wxPersistenceManager::Get().Restore(m_notebook36); } #endif m_treebook2->ExpandNode( 5, true ); @@ -559,6 +563,8 @@ #if wxVERSION_NUMBER >= 2900 if(!wxPersistenceManager::Get().Find(m_notebook2)){ wxPersistenceManager::Get().RegisterAndRestore(m_notebook2); + } else { + wxPersistenceManager::Get().Restore(m_notebook2); } #endif m_treebook2->ExpandNode( 6, true ); @@ -566,6 +572,8 @@ #if wxVERSION_NUMBER >= 2900 if(!wxPersistenceManager::Get().Find(m_notebookClang)){ wxPersistenceManager::Get().RegisterAndRestore(m_notebookClang); + } else { + wxPersistenceManager::Get().Restore(m_notebookClang); } #endif @@ -578,6 +586,8 @@ #if wxVERSION_NUMBER >= 2900 if(!wxPersistenceManager::Get().Find(this)) { wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); } #endif // Connect events diff -Nru codelite-8.0.1+dfsg2/LiteEditor/tags_options_base_dlg_formbuilder_bitmaps.cpp codelite-9.0+dfsg/LiteEditor/tags_options_base_dlg_formbuilder_bitmaps.cpp --- codelite-8.0.1+dfsg2/LiteEditor/tags_options_base_dlg_formbuilder_bitmaps.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/tags_options_base_dlg_formbuilder_bitmaps.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,47 +1,47 @@ -// -// This file was automatically generated by wxrc, do not edit by hand. -// - -#include - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#include -#include -#include -#include - -#if wxCHECK_VERSION(2,8,5) && wxABI_VERSION >= 20805 - #define XRC_ADD_FILE(name, data, size, mime) \ - wxMemoryFSHandler::AddFileWithMimeType(name, data, size, mime) -#else - #define XRC_ADD_FILE(name, data, size, mime) \ - wxMemoryFSHandler::AddFile(name, data, size) -#endif - -static size_t xml_res_size_0 = 90; -static unsigned char xml_res_file_0[] = { -60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, -110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, -115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, -47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, -47,119,120,120,114,99,34,47,62,10}; - -void wxC6B32InitBitmapResources() -{ - - // Check for memory FS. If not present, load the handler: - { - wxMemoryFSHandler::AddFile(wxT("XRC_resource/dummy_file"), wxT("dummy one")); - wxFileSystem fsys; - wxFSFile *f = fsys.OpenFile(wxT("memory:XRC_resource/dummy_file")); - wxMemoryFSHandler::RemoveFile(wxT("XRC_resource/dummy_file")); - if (f) delete f; - else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase); - } - - XRC_ADD_FILE(wxT("XRC_resource/tags_options_base_dlg_formbuilder_bitmaps.cpp$_home_david_devel_git_CL_formbuilder_tags_options_base_dlg_formbuilder_bitmaps.xrc"), xml_res_file_0, xml_res_size_0, wxT("text/xml")); - wxXmlResource::Get()->Load(wxT("memory:XRC_resource/tags_options_base_dlg_formbuilder_bitmaps.cpp$_home_david_devel_git_CL_formbuilder_tags_options_base_dlg_formbuilder_bitmaps.xrc")); -} +// +// This file was automatically generated by wxrc, do not edit by hand. +// + +#include + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +#include +#include +#include +#include + +#if wxCHECK_VERSION(2,8,5) && wxABI_VERSION >= 20805 + #define XRC_ADD_FILE(name, data, size, mime) \ + wxMemoryFSHandler::AddFileWithMimeType(name, data, size, mime) +#else + #define XRC_ADD_FILE(name, data, size, mime) \ + wxMemoryFSHandler::AddFile(name, data, size) +#endif + +static size_t xml_res_size_0 = 90; +static unsigned char xml_res_file_0[] = { +60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, +110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, +115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, +47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, +47,119,120,120,114,99,34,47,62,10}; + +void wxC6B32InitBitmapResources() +{ + + // Check for memory FS. If not present, load the handler: + { + wxMemoryFSHandler::AddFile(wxT("XRC_resource/dummy_file"), wxT("dummy one")); + wxFileSystem fsys; + wxFSFile *f = fsys.OpenFile(wxT("memory:XRC_resource/dummy_file")); + wxMemoryFSHandler::RemoveFile(wxT("XRC_resource/dummy_file")); + if (f) delete f; + else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase); + } + + XRC_ADD_FILE(wxT("XRC_resource/tags_options_base_dlg_formbuilder_bitmaps.cpp$C__src_codelite_formbuilder_tags_options_base_dlg_formbuilder_bitmaps.xrc"), xml_res_file_0, xml_res_size_0, wxT("text/xml")); + wxXmlResource::Get()->Load(wxT("memory:XRC_resource/tags_options_base_dlg_formbuilder_bitmaps.cpp$C__src_codelite_formbuilder_tags_options_base_dlg_formbuilder_bitmaps.xrc")); +} diff -Nru codelite-8.0.1+dfsg2/LiteEditor/tags_options_base_dlg.h codelite-9.0+dfsg/LiteEditor/tags_options_base_dlg.h --- codelite-8.0.1+dfsg2/LiteEditor/tags_options_base_dlg.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/tags_options_base_dlg.h 2015-10-11 13:56:07.000000000 +0000 @@ -4,8 +4,8 @@ // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// -#ifndef TAGS_OPTIONS_BASE_DLG_BASE_CLASSES_H -#define TAGS_OPTIONS_BASE_DLG_BASE_CLASSES_H +#ifndef CODELITE_FORMBUILDER_TAGS_OPTIONS_BASE_DLG_BASE_CLASSES_H +#define CODELITE_FORMBUILDER_TAGS_OPTIONS_BASE_DLG_BASE_CLASSES_H #include #include diff -Nru codelite-8.0.1+dfsg2/LiteEditor/tags_options_dlg.cpp codelite-9.0+dfsg/LiteEditor/tags_options_dlg.cpp --- codelite-8.0.1+dfsg2/LiteEditor/tags_options_dlg.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/tags_options_dlg.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -41,6 +41,7 @@ #include #include #include +#include "clSingleChoiceDialog.h" //--------------------------------------------------------- @@ -124,10 +125,7 @@ } } -TagsOptionsDlg::~TagsOptionsDlg() -{ - -} +TagsOptionsDlg::~TagsOptionsDlg() {} void TagsOptionsDlg::OnButtonOK(wxCommandEvent& event) { @@ -234,8 +232,7 @@ // Clear the PreProcessor table PPTable::Instance()->Clear(); - for(size_t i = 0; i < fullpathsArr.size(); i++) - PPScan(fullpathsArr.Item(i), true); + for(size_t i = 0; i < fullpathsArr.size(); i++) PPScan(fullpathsArr.Item(i), true); // Open an editor and print out the results IEditor* editor = PluginManager::Get()->NewEditor(); @@ -286,15 +283,9 @@ } } -void TagsOptionsDlg::OnAutoShowWordAssitUI(wxUpdateUIEvent& event) -{ - event.Enable(m_checkWordAssist->IsChecked()); -} +void TagsOptionsDlg::OnAutoShowWordAssitUI(wxUpdateUIEvent& event) { event.Enable(m_checkWordAssist->IsChecked()); } -void TagsOptionsDlg::OnClangCCEnabledUI(wxUpdateUIEvent& event) -{ - event.Enable(m_checkBoxEnableClangCC->IsChecked()); -} +void TagsOptionsDlg::OnClangCCEnabledUI(wxUpdateUIEvent& event) { event.Enable(m_checkBoxEnableClangCC->IsChecked()); } void TagsOptionsDlg::OnClearClangCache(wxCommandEvent& event) { @@ -343,18 +334,39 @@ void TagsOptionsDlg::DoSuggest(wxTextCtrl* textCtrl) { -#ifdef __WXMSW__ - // Use MinGW compiler for Windows by default - CompilerPtr comp = BuildSettingsConfigST::Get()->GetDefaultCompiler(COMPILER_FAMILY_MINGW); -#else - // Otherwise, use GCC - CompilerPtr comp = BuildSettingsConfigST::Get()->GetDefaultCompiler(COMPILER_FAMILY_GCC); -#endif - wxArrayString paths; - if(comp) { - paths = comp->GetDefaultIncludePaths(); + CompilerPtrVec_t allCompilers = BuildSettingsConfigST::Get()->GetAllCompilers(); + + // We only support auto retrieval of compilers from the GCC family + wxArrayString compilerNames; + std::for_each(allCompilers.begin(), allCompilers.end(), [&](CompilerPtr c) { + if(c->GetCompilerFamily() == COMPILER_FAMILY_CLANG || c->GetCompilerFamily() == COMPILER_FAMILY_MINGW || + c->GetCompilerFamily() == COMPILER_FAMILY_GCC) { + compilerNames.Add(c->GetName()); + } else if(::clIsCygwinEnvironment() && c->GetCompilerFamily() == COMPILER_FAMILY_CYGWIN) { + compilerNames.Add(c->GetName()); + } + }); + + wxString selection; + if(compilerNames.size() > 1) { + // we have more than one compiler defined, ask the user which one to use + clSingleChoiceDialog dlg(this, compilerNames, 0); + dlg.SetTitle(_("Select the compiler to use:")); + + if(dlg.ShowModal() != wxID_OK) return; + selection = dlg.GetSelection(); + } else if(compilerNames.size() == 1) { + selection = compilerNames.Item(0); } + if(selection.IsEmpty()) return; + + CompilerPtr comp = BuildSettingsConfigST::Get()->GetCompiler(selection); + CHECK_PTR_RET(comp); + + wxArrayString paths; + paths = comp->GetDefaultIncludePaths(); + wxString suggestedPaths; for(size_t i = 0; i < paths.GetCount(); i++) { suggestedPaths << paths.Item(i) << wxT("\n"); @@ -375,13 +387,13 @@ { // Enable the local variables colouring feature SetFlag(CC_COLOUR_VARS, m_pgPropColourLocalVariables->GetValue().GetBool()); - + // if any of the types is selected, enable this feature - size_t ccColourFlags (0); + size_t ccColourFlags(0); ccColourFlags = m_pgPropColourWorkspaceSymbols->GetValue().GetInteger(); m_data.SetCcColourFlags(ccColourFlags); SetFlag(CC_COLOUR_WORKSPACE_TAGS, (ccColourFlags > 0)); - + // Enable pre processor tracking (must come after we set the flags above) SetColouringFlag(CC_COLOUR_MACRO_BLOCKS, m_pgPropTrackPreProcessors->GetValue().GetBool()); } diff -Nru codelite-8.0.1+dfsg2/LiteEditor/taskpanel.cpp codelite-9.0+dfsg/LiteEditor/taskpanel.cpp --- codelite-8.0.1+dfsg2/LiteEditor/taskpanel.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/taskpanel.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -34,13 +34,13 @@ #include "taskpanel.h" BEGIN_EVENT_TABLE(TaskPanel, FindResultsTab) - EVT_BUTTON (wxID_FIND, TaskPanel::OnSearch) - EVT_BUTTON (XRCID("find_what"), TaskPanel::OnFindWhat) - EVT_UPDATE_UI (wxID_FIND, TaskPanel::OnSearchUI) - EVT_UPDATE_UI (XRCID("hold_pane_open"), TaskPanel::OnHoldOpenUpdateUI) +EVT_BUTTON(wxID_FIND, TaskPanel::OnSearch) +EVT_BUTTON(XRCID("find_what"), TaskPanel::OnFindWhat) +EVT_UPDATE_UI(wxID_FIND, TaskPanel::OnSearchUI) +EVT_UPDATE_UI(XRCID("hold_pane_open"), TaskPanel::OnHoldOpenUpdateUI) END_EVENT_TABLE() -TaskPanel::TaskPanel(wxWindow* parent, wxWindowID id, const wxString &name) +TaskPanel::TaskPanel(wxWindow* parent, wxWindowID id, const wxString& name) : FindResultsTab(parent, id, name) , m_scope(NULL) { @@ -50,80 +50,80 @@ scopes.Add(wxGetTranslation(SEARCH_IN_CURR_FILE_PROJECT)); wxArrayString filters; - filters.Add( wxString(wxT("C/C++ ")) + _("Sources")); + filters.Add(wxString(wxT("C/C++ ")) + _("Sources")); m_extensions.Add(wxT("*.c;*.cpp;*.cxx;*.cc;*.h;*.hpp;*.hxx;*.hh;*.inl;*.inc;*.hh")); filters.Add(_("All Files")); m_extensions.Add(wxT("*.*")); + + m_tb->DeleteTool(XRCID("repeat_output")); + m_tb->DeleteTool(XRCID("recent_searches")); + m_tb->Realize(); + + wxBoxSizer* verticalPanelSizer = new wxBoxSizer(wxVERTICAL); + + wxButton* btn = new wxButton(this, wxID_FIND, _("&Search")); + verticalPanelSizer->Add(btn, 0, wxEXPAND | wxALL, 5); + + m_findWhat = new wxButton(this, XRCID("find_what"), _("Find What...")); + verticalPanelSizer->Add(m_findWhat, 0, wxEXPAND | wxALL, 5); + verticalPanelSizer->Add(new wxStaticLine(this), 0, wxEXPAND | wxALL, 5); - wxBoxSizer *verticalPanelSizer = new wxBoxSizer(wxVERTICAL); - - wxButton *btn = new wxButton(this, wxID_FIND, _("&Search")); - verticalPanelSizer->Add(btn, 0, wxEXPAND|wxALL, 5); - - m_findWhat = new wxButton(this, XRCID("find_what"), _("Find What...")); - verticalPanelSizer->Add(m_findWhat, 0, wxEXPAND|wxALL, 5); - verticalPanelSizer->Add(new wxStaticLine(this), 0, wxEXPAND|wxALL, 5); - m_scope = new wxChoice(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, scopes); m_scope->SetSelection(0); - m_scope->SetToolTip(_("Select the scope of the search")); - verticalPanelSizer->Add(m_scope, 0, wxEXPAND|wxALL, 5); - + m_scope->SetToolTip(_("Select the scope of the search")); + verticalPanelSizer->Add(m_scope, 0, wxEXPAND | wxALL, 5); + m_choiceEncoding = new wxChoice(this, wxID_ANY); - verticalPanelSizer->Add(m_choiceEncoding, 0, wxEXPAND|wxALL, 5); + verticalPanelSizer->Add(m_choiceEncoding, 0, wxEXPAND | wxALL, 5); m_choiceEncoding->SetToolTip(_("Encoding to use for the search")); - + TasksPanelData d; - EditorConfigST::Get()->ReadObject(wxT("TasksPanelData"), &d); - + EditorConfigST::Get()->ReadObject(wxT("TasksPanelData"), &d); + // Set encoding - wxArrayString astrEncodings; - wxFontEncoding fontEnc; - int selection(0); - - size_t iEncCnt = wxFontMapper::GetSupportedEncodingsCount(); - for (size_t i = 0; i < iEncCnt; i++) { - fontEnc = wxFontMapper::GetEncoding(i); - if (wxFONTENCODING_SYSTEM == fontEnc) { // skip system, it is changed to UTF-8 in optionsconfig - continue; - } - wxString encodingName = wxFontMapper::GetEncodingName(fontEnc); - size_t pos = astrEncodings.Add(encodingName); - - if(d.GetEncoding() == encodingName) - selection = static_cast(pos); - } - - m_choiceEncoding->Append(astrEncodings); - if(m_choiceEncoding->IsEmpty() == false) - m_choiceEncoding->SetSelection(selection); - - m_choiceEncoding->Connect(wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler(TaskPanel::OnEncodingSelected), NULL, this); - - wxBoxSizer *hSizer = new wxBoxSizer(wxHORIZONTAL); - - // grab the base class scintilla and put our sizer in its place - wxSizer *mainSizer = m_hSizer; - mainSizer->Detach(m_sci); - hSizer->Add(m_sci, 1, wxEXPAND | wxALL, 1); - hSizer->Add(verticalPanelSizer, 0, wxEXPAND|wxALL, 1); - -#ifdef __WXMAC__ - mainSizer->Insert(0, hSizer, 1, wxEXPAND | wxALL, 1); -#else - mainSizer->Add(hSizer, 1, wxEXPAND | wxALL, 1); -#endif - mainSizer->Layout(); + wxArrayString astrEncodings; + wxFontEncoding fontEnc; + int selection(0); + + size_t iEncCnt = wxFontMapper::GetSupportedEncodingsCount(); + for(size_t i = 0; i < iEncCnt; i++) { + fontEnc = wxFontMapper::GetEncoding(i); + if(wxFONTENCODING_SYSTEM == fontEnc) { // skip system, it is changed to UTF-8 in optionsconfig + continue; + } + wxString encodingName = wxFontMapper::GetEncodingName(fontEnc); + size_t pos = astrEncodings.Add(encodingName); + + if(d.GetEncoding() == encodingName) selection = static_cast(pos); + } + + m_choiceEncoding->Append(astrEncodings); + if(m_choiceEncoding->IsEmpty() == false) m_choiceEncoding->SetSelection(selection); + + m_choiceEncoding->Connect( + wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler(TaskPanel::OnEncodingSelected), NULL, this); + + wxBoxSizer* hSizer = new wxBoxSizer(wxHORIZONTAL); + + // grab the base class scintilla and put our sizer in its place + wxSizer* mainSizer = m_vSizer; + mainSizer->Detach(m_sci); + hSizer->Add(m_sci, 1, wxEXPAND | wxALL, 1); + hSizer->Add(verticalPanelSizer, 0, wxEXPAND | wxALL, 1); + + mainSizer->Add(hSizer, 1, wxEXPAND | wxALL, 1); + mainSizer->Layout(); } TaskPanel::~TaskPanel() { - m_choiceEncoding->Disconnect(wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler(TaskPanel::OnEncodingSelected), NULL, this); + m_choiceEncoding->Disconnect( + wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler(TaskPanel::OnEncodingSelected), NULL, this); } SearchData TaskPanel::DoGetSearchData() { - SearchData data; + SearchData data; data.SetDisplayScope(true); data.SetRegularExpression(true); data.SetMatchCase(false); @@ -131,99 +131,89 @@ data.SetEncoding(m_choiceEncoding->GetStringSelection()); data.SetOwner(this); - wxString sfind; + wxString sfind; - // Load all info from disk - TasksPanelData d; - EditorConfigST::Get()->ReadObject(wxT("TasksPanelData"), &d); - - std::map::const_iterator iter = d.GetTasks().begin(); - for(; iter != d.GetTasks().end(); iter++){ - wxString name = iter->first; - wxString regex = iter->second; - bool enabled = (d.GetEnabledItems().Index(iter->first) != wxNOT_FOUND); - - regex.Trim().Trim(false); - wxRegEx re(regex); - if(enabled && !regex.IsEmpty() && re.IsValid()) - sfind << wxT("(") << regex << wxT(")|"); - } + // Load all info from disk + TasksPanelData d; + EditorConfigST::Get()->ReadObject(wxT("TasksPanelData"), &d); + + std::map::const_iterator iter = d.GetTasks().begin(); + for(; iter != d.GetTasks().end(); iter++) { + wxString name = iter->first; + wxString regex = iter->second; + bool enabled = (d.GetEnabledItems().Index(iter->first) != wxNOT_FOUND); + + regex.Trim().Trim(false); + wxRegEx re(regex); + if(enabled && !regex.IsEmpty() && re.IsValid()) sfind << wxT("(") << regex << wxT(")|"); + } - if(sfind.empty() == false) - sfind.RemoveLast(); + if(sfind.empty() == false) sfind.RemoveLast(); data.SetFindString(sfind); - wxString rootDir = m_scope->GetStringSelection(); - wxArrayString rootDirs; - rootDirs.push_back(rootDir); + wxString rootDir = m_scope->GetStringSelection(); + wxArrayString rootDirs; + rootDirs.push_back(rootDir); data.SetRootDirs(rootDirs); - + wxArrayString files; - if (rootDir == wxGetTranslation(SEARCH_IN_WORKSPACE)) { - ManagerST::Get()->GetWorkspaceFiles(files); - - } else if (rootDir == wxGetTranslation(SEARCH_IN_PROJECT)) { - ManagerST::Get()->GetActiveProjectFiles(files); - - } else if (rootDir == wxGetTranslation(SEARCH_IN_CURR_FILE_PROJECT)) { - ManagerST::Get()->GetActiveFileProjectFiles(files); - - } + if(rootDir == wxGetTranslation(SEARCH_IN_WORKSPACE)) { + ManagerST::Get()->GetWorkspaceFiles(files); + + } else if(rootDir == wxGetTranslation(SEARCH_IN_PROJECT)) { + ManagerST::Get()->GetActiveProjectFiles(files); + + } else if(rootDir == wxGetTranslation(SEARCH_IN_CURR_FILE_PROJECT)) { + ManagerST::Get()->GetActiveFileProjectFiles(files); + } data.SetFiles(files); data.SetExtensions(wxT("*.*")); - return data; + return data; } void TaskPanel::OnSearch(wxCommandEvent& e) { - wxUnusedVar(e); + wxUnusedVar(e); SearchData sd = DoGetSearchData(); SearchThreadST::Get()->PerformSearch(sd); } -void TaskPanel::OnSearchUI(wxUpdateUIEvent& e) -{ - e.Enable(true); -} +void TaskPanel::OnSearchUI(wxUpdateUIEvent& e) { e.Enable(true); } -void TaskPanel::OnRepeatOutput(wxCommandEvent& e) -{ - OnSearch(e); -} +void TaskPanel::OnRepeatOutput(wxCommandEvent& e) { OnSearch(e); } void TaskPanel::OnFindWhat(wxCommandEvent& e) { - TasksFindWhatDlg dlg(wxTheApp->GetTopWindow()); - dlg.ShowModal(); + TasksFindWhatDlg dlg(wxTheApp->GetTopWindow()); + dlg.ShowModal(); } void TaskPanel::OnHoldOpenUpdateUI(wxUpdateUIEvent& e) { - int sel = clMainFrame::Get()->GetOutputPane()->GetNotebook()->GetSelection(); - if (clMainFrame::Get()->GetOutputPane()->GetNotebook()->GetPage(sel) != this) { - return; - } - - if(EditorConfigST::Get()->GetOptions()->GetHideOutpuPaneOnUserClick()) { - e.Enable(true); - e.Check( EditorConfigST::Get()->GetOptions()->GetHideOutputPaneNotIfTasks() ); - - } else { - e.Enable(false); - e.Check(false); - } + int sel = clMainFrame::Get()->GetOutputPane()->GetNotebook()->GetSelection(); + if(clMainFrame::Get()->GetOutputPane()->GetNotebook()->GetPage(sel) != this) { + return; + } + + if(EditorConfigST::Get()->GetOptions()->GetHideOutpuPaneOnUserClick()) { + e.Enable(true); + e.Check(EditorConfigST::Get()->GetOptions()->GetHideOutputPaneNotIfTasks()); + + } else { + e.Enable(false); + e.Check(false); + } } -void TaskPanel::OnEncodingSelected(wxCommandEvent& e) +void TaskPanel::OnEncodingSelected(wxCommandEvent& e) { wxUnusedVar(e); - + TasksPanelData d; - EditorConfigST::Get()->ReadObject(wxT("TasksPanelData"), &d); - + EditorConfigST::Get()->ReadObject(wxT("TasksPanelData"), &d); + d.SetEncoding(m_choiceEncoding->GetStringSelection()); EditorConfigST::Get()->WriteObject(wxT("TasksPanelData"), &d); -} - +} diff -Nru codelite-8.0.1+dfsg2/LiteEditor/threadlistbasepanel.cpp codelite-9.0+dfsg/LiteEditor/threadlistbasepanel.cpp --- codelite-8.0.1+dfsg2/LiteEditor/threadlistbasepanel.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/threadlistbasepanel.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,57 +0,0 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2014 The CodeLite Team -// file name : threadlistbasepanel.cpp -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - - /////////////////////////////////////////////////////////////////////////// -// C++ code generated with wxFormBuilder (version Nov 18 2010) -// http://www.wxformbuilder.org/ -// -// PLEASE DO "NOT" EDIT THIS FILE! -/////////////////////////////////////////////////////////////////////////// - -#include "threadlistbasepanel.h" - -/////////////////////////////////////////////////////////////////////////// - -ThreadListBasePanel::ThreadListBasePanel( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style ) : wxPanel( parent, id, pos, size, style ) -{ - wxBoxSizer* mainSizer; - mainSizer = new wxBoxSizer( wxVERTICAL ); - - m_list = new wxListCtrl( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLC_HRULES|wxLC_REPORT|wxLC_VRULES ); - mainSizer->Add( m_list, 1, wxALL|wxEXPAND, 5 ); - - this->SetSizer( mainSizer ); - this->Layout(); - - // Connect Events - m_list->Connect( wxEVT_COMMAND_LIST_ITEM_ACTIVATED, wxListEventHandler( ThreadListBasePanel::OnItemActivated ), NULL, this ); -} - -ThreadListBasePanel::~ThreadListBasePanel() -{ - // Disconnect Events - m_list->Disconnect( wxEVT_COMMAND_LIST_ITEM_ACTIVATED, wxListEventHandler( ThreadListBasePanel::OnItemActivated ), NULL, this ); - -} diff -Nru codelite-8.0.1+dfsg2/LiteEditor/threadlistbasepanel.h codelite-9.0+dfsg/LiteEditor/threadlistbasepanel.h --- codelite-8.0.1+dfsg2/LiteEditor/threadlistbasepanel.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/threadlistbasepanel.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,71 +0,0 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2013 by Eran Ifrah -// file name : threadlistbasepanel.h -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - - /////////////////////////////////////////////////////////////////////////// -// C++ code generated with wxFormBuilder (version Nov 18 2010) -// http://www.wxformbuilder.org/ -// -// PLEASE DO "NOT" EDIT THIS FILE! -/////////////////////////////////////////////////////////////////////////// - -#ifndef __threadlistbasepanel__ -#define __threadlistbasepanel__ - -#include - -#include -#include -#include -#include -#include -#include -#include -#include - -/////////////////////////////////////////////////////////////////////////// - - -/////////////////////////////////////////////////////////////////////////////// -/// Class ThreadListBasePanel -/////////////////////////////////////////////////////////////////////////////// -class ThreadListBasePanel : public wxPanel -{ - private: - - protected: - wxListCtrl* m_list; - - // Virtual event handlers, overide them in your derived class - virtual void OnItemActivated( wxListEvent& event ){ event.Skip(); } - - - public: - - ThreadListBasePanel( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 500,300 ), long style = wxTAB_TRAVERSAL ); - ~ThreadListBasePanel(); - -}; - -#endif //__threadlistbasepanel__ diff -Nru codelite-8.0.1+dfsg2/LiteEditor/ThreadListPanelBase.cpp codelite-9.0+dfsg/LiteEditor/ThreadListPanelBase.cpp --- codelite-8.0.1+dfsg2/LiteEditor/ThreadListPanelBase.cpp 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/ThreadListPanelBase.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,54 @@ +////////////////////////////////////////////////////////////////////// +// This file was auto-generated by codelite's wxCrafter Plugin +// wxCrafter project file: ThreadListPanelBase.wxcp +// Do not modify this file by hand! +////////////////////////////////////////////////////////////////////// + +#include "ThreadListPanelBase.h" + + +// Declare the bitmap loading function +extern void wxC15DCInitBitmapResources(); + +static bool bBitmapLoaded = false; + + +ThreadListBasePanel::ThreadListBasePanel(wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style) + : wxPanel(parent, id, pos, size, style) +{ + if ( !bBitmapLoaded ) { + // We need to initialise the default bitmap handler + wxXmlResource::Get()->AddHandler(new wxBitmapXmlHandler); + wxC15DCInitBitmapResources(); + bBitmapLoaded = true; + } + + wxBoxSizer* mainSizer = new wxBoxSizer(wxVERTICAL); + this->SetSizer(mainSizer); + + m_dvListCtrl = new wxDataViewListCtrl(this, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxDV_VERT_RULES|wxDV_HORIZ_RULES|wxDV_ROW_LINES|wxDV_SINGLE); + + mainSizer->Add(m_dvListCtrl, 1, wxALL|wxEXPAND, 2); + + m_dvListCtrl->AppendTextColumn(_("ID"), wxDATAVIEW_CELL_INERT, 30, wxALIGN_LEFT); + m_dvListCtrl->AppendTextColumn(_("Active?"), wxDATAVIEW_CELL_INERT, 50, wxALIGN_LEFT); + m_dvListCtrl->AppendTextColumn(_("Function"), wxDATAVIEW_CELL_INERT, 250, wxALIGN_LEFT); + m_dvListCtrl->AppendTextColumn(_("File"), wxDATAVIEW_CELL_INERT, 250, wxALIGN_LEFT); + m_dvListCtrl->AppendTextColumn(_("Line"), wxDATAVIEW_CELL_INERT, 100, wxALIGN_LEFT); + + SetName(wxT("ThreadListBasePanel")); + SetSizeHints(500,300); + if ( GetSizer() ) { + GetSizer()->Fit(this); + } + CentreOnParent(wxBOTH); + // Connect events + m_dvListCtrl->Connect(wxEVT_COMMAND_DATAVIEW_ITEM_ACTIVATED, wxDataViewEventHandler(ThreadListBasePanel::OnItemActivated), NULL, this); + +} + +ThreadListBasePanel::~ThreadListBasePanel() +{ + m_dvListCtrl->Disconnect(wxEVT_COMMAND_DATAVIEW_ITEM_ACTIVATED, wxDataViewEventHandler(ThreadListBasePanel::OnItemActivated), NULL, this); + +} diff -Nru codelite-8.0.1+dfsg2/LiteEditor/ThreadListPanelBase.h codelite-9.0+dfsg/LiteEditor/ThreadListPanelBase.h --- codelite-8.0.1+dfsg2/LiteEditor/ThreadListPanelBase.h 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/ThreadListPanelBase.h 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,38 @@ +////////////////////////////////////////////////////////////////////// +// This file was auto-generated by codelite's wxCrafter Plugin +// wxCrafter project file: ThreadListPanelBase.wxcp +// Do not modify this file by hand! +////////////////////////////////////////////////////////////////////// + +#ifndef CODELITE_LITEEDITOR_THREADLISTPANELBASE_BASE_CLASSES_H +#define CODELITE_LITEEDITOR_THREADLISTPANELBASE_BASE_CLASSES_H + +#include +#include +#include +#include +#include +#include +#include +#if wxVERSION_NUMBER >= 2900 +#include +#include +#include +#include +#endif + +class ThreadListBasePanel : public wxPanel +{ +protected: + wxDataViewListCtrl* m_dvListCtrl; + +protected: + virtual void OnItemActivated(wxDataViewEvent& event) { event.Skip(); } + +public: + wxDataViewListCtrl* GetDvListCtrl() { return m_dvListCtrl; } + ThreadListBasePanel(wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(500,300), long style = wxTAB_TRAVERSAL); + virtual ~ThreadListBasePanel(); +}; + +#endif diff -Nru codelite-8.0.1+dfsg2/LiteEditor/ThreadListPanelBase_liteeditor_bitmaps.cpp codelite-9.0+dfsg/LiteEditor/ThreadListPanelBase_liteeditor_bitmaps.cpp --- codelite-8.0.1+dfsg2/LiteEditor/ThreadListPanelBase_liteeditor_bitmaps.cpp 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/ThreadListPanelBase_liteeditor_bitmaps.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,47 @@ +// +// This file was automatically generated by wxrc, do not edit by hand. +// + +#include + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +#include +#include +#include +#include + +#if wxCHECK_VERSION(2,8,5) && wxABI_VERSION >= 20805 + #define XRC_ADD_FILE(name, data, size, mime) \ + wxMemoryFSHandler::AddFileWithMimeType(name, data, size, mime) +#else + #define XRC_ADD_FILE(name, data, size, mime) \ + wxMemoryFSHandler::AddFile(name, data, size) +#endif + +static size_t xml_res_size_0 = 90; +static unsigned char xml_res_file_0[] = { +60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, +110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, +115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, +47,47,119,119,119,46,119,120,119,105,100,103,101,116,115,46,111,114,103, +47,119,120,120,114,99,34,47,62,10}; + +void wxC15DCInitBitmapResources() +{ + + // Check for memory FS. If not present, load the handler: + { + wxMemoryFSHandler::AddFile(wxT("XRC_resource/dummy_file"), wxT("dummy one")); + wxFileSystem fsys; + wxFSFile *f = fsys.OpenFile(wxT("memory:XRC_resource/dummy_file")); + wxMemoryFSHandler::RemoveFile(wxT("XRC_resource/dummy_file")); + if (f) delete f; + else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase); + } + + XRC_ADD_FILE(wxT("XRC_resource/ThreadListPanelBase_liteeditor_bitmaps.cpp$C__src_codelite_LiteEditor_ThreadListPanelBase_liteeditor_bitmaps.xrc"), xml_res_file_0, xml_res_size_0, wxT("text/xml")); + wxXmlResource::Get()->Load(wxT("memory:XRC_resource/ThreadListPanelBase_liteeditor_bitmaps.cpp$C__src_codelite_LiteEditor_ThreadListPanelBase_liteeditor_bitmaps.xrc")); +} diff -Nru codelite-8.0.1+dfsg2/LiteEditor/ThreadListPanelBase.wxcp codelite-9.0+dfsg/LiteEditor/ThreadListPanelBase.wxcp --- codelite-8.0.1+dfsg2/LiteEditor/ThreadListPanelBase.wxcp 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/ThreadListPanelBase.wxcp 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,395 @@ +{ + "metadata": { + "m_generatedFilesDir": ".", + "m_objCounter": 2, + "m_includeFiles": [], + "m_bitmapFunction": "wxC15DCInitBitmapResources", + "m_bitmapsFile": "ThreadListPanelBase_liteeditor_bitmaps.cpp", + "m_GenerateCodeTypes": -43248687, + "m_outputFileName": "", + "m_firstWindowId": 10000, + "m_useEnum": true, + "m_templateClasses": [] + }, + "windows": [{ + "m_type": 4407, + "proportion": 0, + "border": 0, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": ["wxTAB_TRAVERSAL"], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Size:", + "m_value": "500,300" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "ThreadListBasePanel" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Title:", + "m_value": "" + }, { + "type": "virtualFolderPicker", + "m_label": "Virtual Folder:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Centre:", + "m_selection": 1, + "m_options": ["", "wxBOTH", "wxVERTICAL", "wxHORIZONTAL"] + }, { + "type": "string", + "m_label": "Inherited Class", + "m_value": "ThreadListPanel" + }, { + "type": "string", + "m_label": "File:", + "m_value": "threadlistpanel" + }, { + "type": "string", + "m_label": "Class Decorator", + "m_value": "" + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 0, + "border": 0, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "mainSizer" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4469, + "proportion": 1, + "border": 2, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxDV_VERT_RULES", "wxDV_HORIZ_RULES", "wxDV_ROW_LINES", "wxDV_SINGLE"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_dvListCtrl" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_DATAVIEW_ITEM_ACTIVATED", + "m_eventClass": "wxDataViewEvent", + "m_eventHandler": "wxDataViewEventHandler", + "m_functionNameAndSignature": "OnItemActivated(wxDataViewEvent& event)", + "m_description": "Process a wxEVT_COMMAND_DATAVIEW_ITEM_ACTIVATED event.\nThis event is triggered by double clicking an item or pressing some special key (usually \"Enter\") when it is focused", + "m_noBody": false + }], + "m_children": [{ + "m_type": 4472, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "ID" + }, { + "type": "string", + "m_label": "Width:", + "m_value": "30" + }, { + "type": "choice", + "m_label": "Column Type", + "m_selection": 2, + "m_options": ["bitmap", "check", "text", "icontext", "progress", "choice"] + }, { + "type": "multi-string", + "m_label": "Choices:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Alignment", + "m_selection": 0, + "m_options": ["wxALIGN_LEFT", "wxALIGN_RIGHT", "wxALIGN_CENTER"] + }, { + "type": "choice", + "m_label": "Cell Mode", + "m_selection": 0, + "m_options": ["wxDATAVIEW_CELL_INERT", "wxDATAVIEW_CELL_ACTIVATABLE", "wxDATAVIEW_CELL_EDITABLE"] + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4472, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "Active?" + }, { + "type": "string", + "m_label": "Width:", + "m_value": "50" + }, { + "type": "choice", + "m_label": "Column Type", + "m_selection": 2, + "m_options": ["bitmap", "check", "text", "icontext", "progress", "choice"] + }, { + "type": "multi-string", + "m_label": "Choices:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Alignment", + "m_selection": 0, + "m_options": ["wxALIGN_LEFT", "wxALIGN_RIGHT", "wxALIGN_CENTER"] + }, { + "type": "choice", + "m_label": "Cell Mode", + "m_selection": 0, + "m_options": ["wxDATAVIEW_CELL_INERT", "wxDATAVIEW_CELL_ACTIVATABLE", "wxDATAVIEW_CELL_EDITABLE"] + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4472, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "Function" + }, { + "type": "string", + "m_label": "Width:", + "m_value": "250" + }, { + "type": "choice", + "m_label": "Column Type", + "m_selection": 2, + "m_options": ["bitmap", "check", "text", "icontext", "progress", "choice"] + }, { + "type": "multi-string", + "m_label": "Choices:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Alignment", + "m_selection": 0, + "m_options": ["wxALIGN_LEFT", "wxALIGN_RIGHT", "wxALIGN_CENTER"] + }, { + "type": "choice", + "m_label": "Cell Mode", + "m_selection": 0, + "m_options": ["wxDATAVIEW_CELL_INERT", "wxDATAVIEW_CELL_ACTIVATABLE", "wxDATAVIEW_CELL_EDITABLE"] + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4472, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "File" + }, { + "type": "string", + "m_label": "Width:", + "m_value": "250" + }, { + "type": "choice", + "m_label": "Column Type", + "m_selection": 2, + "m_options": ["bitmap", "check", "text", "icontext", "progress", "choice"] + }, { + "type": "multi-string", + "m_label": "Choices:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Alignment", + "m_selection": 0, + "m_options": ["wxALIGN_LEFT", "wxALIGN_RIGHT", "wxALIGN_CENTER"] + }, { + "type": "choice", + "m_label": "Cell Mode", + "m_selection": 0, + "m_options": ["wxDATAVIEW_CELL_INERT", "wxDATAVIEW_CELL_ACTIVATABLE", "wxDATAVIEW_CELL_EDITABLE"] + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4472, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "Line" + }, { + "type": "string", + "m_label": "Width:", + "m_value": "100" + }, { + "type": "choice", + "m_label": "Column Type", + "m_selection": 2, + "m_options": ["bitmap", "check", "text", "icontext", "progress", "choice"] + }, { + "type": "multi-string", + "m_label": "Choices:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Alignment", + "m_selection": 0, + "m_options": ["wxALIGN_LEFT", "wxALIGN_RIGHT", "wxALIGN_CENTER"] + }, { + "type": "choice", + "m_label": "Cell Mode", + "m_selection": 0, + "m_options": ["wxDATAVIEW_CELL_INERT", "wxDATAVIEW_CELL_ACTIVATABLE", "wxDATAVIEW_CELL_EDITABLE"] + }], + "m_events": [], + "m_children": [] + }] + }] + }] + }] +} \ No newline at end of file diff -Nru codelite-8.0.1+dfsg2/LiteEditor/threadlistpanel.cpp codelite-9.0+dfsg/LiteEditor/threadlistpanel.cpp --- codelite-8.0.1+dfsg2/LiteEditor/threadlistpanel.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/threadlistpanel.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -25,70 +25,140 @@ #include "threadlistpanel.h" #include "globals.h" #include "manager.h" +#include -ThreadListPanel::ThreadListPanel( wxWindow* parent ) - : ThreadListBasePanel( parent ) +class ThreadListClientData : public wxClientData +{ + ThreadEntry m_threadEntry; + +public: + ThreadListClientData(const ThreadEntry& te) { m_threadEntry = te; } + + virtual ~ThreadListClientData() {} + const ThreadEntry& GetThreadEntry() const { return m_threadEntry; } + ThreadEntry& GetThreadEntry() { return m_threadEntry; } +}; + +ThreadListPanel::ThreadListPanel(wxWindow* parent) + : ThreadListBasePanel(parent) { - InitList(); } -void ThreadListPanel::OnItemActivated( wxListEvent& event ) +ThreadListPanel::~ThreadListPanel() {} + +void ThreadListPanel::OnItemActivated(wxDataViewEvent& event) { - long threadId(wxNOT_FOUND); - int index = event.m_itemIndex; - if(index != wxNOT_FOUND) { - wxString str_id = GetColumnText(m_list, index, 0); - str_id.ToLong(&threadId); - Manager *mgr = ManagerST::Get(); + if(!event.GetItem().IsOk()) return; + + wxVariant v; + long threadId; + m_dvListCtrl->GetValue(v, m_dvListCtrl->ItemToRow(event.GetItem()), 0); + wxString str_id = v.GetString(); + if(str_id.ToCLong(&threadId)) { + Manager* mgr = ManagerST::Get(); mgr->DbgSetThread(threadId); } } -void ThreadListPanel::InitList() +void ThreadListPanel::PopulateList(const ThreadEntryArray& threads) { - //add two columns to the list ctrl - m_list->InsertColumn(0, _("Thread ID")); - m_list->InsertColumn(1, _("Active")); - m_list->InsertColumn(2, _("Function")); - m_list->InsertColumn(3, _("File")); - m_list->InsertColumn(4, _("Line")); + // Check if the new thread list is the same as the current one + if(IsTheSame(m_threads, threads)) { + // No need to repopulate the list, just set the active thread indicator + + // Loop over the table and set all threads to "NO" + for(int i = 0; i < m_dvListCtrl->GetItemCount(); ++i) { + ThreadListClientData* d = (ThreadListClientData*)m_dvListCtrl->GetItemData(m_dvListCtrl->RowToItem(i)); + d->GetThreadEntry().active = false; + wxVariant v = "NO"; + m_dvListCtrl->SetValue(v, i, 1); + } + + // Replace the current thread stack with the new one + m_threads.clear(); + m_threads.insert(m_threads.end(), threads.begin(), threads.end()); + + long threadID = wxNOT_FOUND; + for(size_t i = 0; i < m_threads.size(); ++i) { + if(m_threads.at(i).active) { + threadID = m_threads.at(i).dbgid; + break; + } + } + + if(threadID != wxNOT_FOUND) { + // Update the new active thread + for(int i = 0; i < m_dvListCtrl->GetItemCount(); ++i) { + ThreadListClientData* d = (ThreadListClientData*)m_dvListCtrl->GetItemData(m_dvListCtrl->RowToItem(i)); + if(d->GetThreadEntry().dbgid == threadID) { + d->GetThreadEntry().active = true; + wxVariant v = "YES"; + m_dvListCtrl->SetValue(v, i, 1); + } + } + } + + } else { + wxWindowUpdateLocker locker(m_dvListCtrl); + Clear(); + + // Replace the thread list + m_threads.clear(); + m_threads.insert(m_threads.end(), threads.begin(), threads.end()); + + int sel = wxNOT_FOUND; + if(m_threads.empty()) return; + + for(int i = (int)(m_threads.size() - 1); i >= 0; --i) { + const ThreadEntry& entry = m_threads.at(i); + + wxString str_id; + wxString str_active; + + str_id << entry.dbgid; + str_active = entry.active ? "YES" : "NO"; + if(entry.active) { + sel = i; + } + + wxVector cols; + cols.push_back(str_id); + cols.push_back(str_active); + cols.push_back(entry.function); + cols.push_back(entry.file); + cols.push_back(entry.line); + m_dvListCtrl->AppendItem(cols, (wxUIntPtr) new ThreadListClientData(entry)); + } + + // Ensure that the active thread is visible + if(sel != wxNOT_FOUND) { + wxDataViewItem item = m_dvListCtrl->RowToItem(sel); + m_dvListCtrl->EnsureVisible(item, 0); + } + } } -void ThreadListPanel::PopulateList(const ThreadEntryArray &threads) +void ThreadListPanel::Clear() { - m_list->Freeze(); - m_list->DeleteAllItems(); - for(ThreadEntryArray::size_type i=0; i< threads.size(); i++) { - ThreadEntry entry = threads.at(i); - - long item; - wxListItem info; - - //insert new item (row) - info.SetColumn(0); - info.SetId(0); - item = m_list->InsertItem(info); - - wxString str_id; - wxString str_active; - - str_id << entry.dbgid; - str_active = entry.active ? _("Yes") : _("No"); - - SetColumnText(m_list, item, 0, str_id); - SetColumnText(m_list, item, 1, str_active); - SetColumnText(m_list, item, 2, entry.function); - SetColumnText(m_list, item, 3, entry.file); - SetColumnText(m_list, item, 4, entry.line); + for(int i = 0; i < m_dvListCtrl->GetItemCount(); ++i) { + ThreadListClientData* d = (ThreadListClientData*)m_dvListCtrl->GetItemData(m_dvListCtrl->RowToItem(i)); + delete d; } - - m_list->SetColumnWidth(2, wxLIST_AUTOSIZE); - m_list->SetColumnWidth(3, wxLIST_AUTOSIZE); - m_list->SetColumnWidth(4, wxLIST_AUTOSIZE); - m_list->Thaw(); + m_dvListCtrl->DeleteAllItems(); } -void ThreadListPanel::Clear() +bool ThreadListPanel::IsTheSame(const ThreadEntryArray& threads1, const ThreadEntryArray& threads2) { - m_list->DeleteAllItems(); + if(threads1.size() != threads2.size()) { + return false; + } + + for(size_t i = 0; i < threads1.size(); ++i) { + const ThreadEntry& entry1 = threads1.at(i); + const ThreadEntry& entry2 = threads2.at(i); + if((entry1.file != entry2.file) || (entry1.function != entry2.function) || (entry1.line != entry2.line)) { + return false; + } + } + return true; } diff -Nru codelite-8.0.1+dfsg2/LiteEditor/threadlistpanel.h codelite-9.0+dfsg/LiteEditor/threadlistpanel.h --- codelite-8.0.1+dfsg2/LiteEditor/threadlistpanel.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/threadlistpanel.h 2015-10-11 13:56:07.000000000 +0000 @@ -1,51 +1,48 @@ ////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// // -// copyright : (C) 2008 by Eran Ifrah -// file name : threadlistpanel.h -// +// copyright : (C) 2008 by Eran Ifrah +// file name : threadlistpanel.h +// // ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// +// A +// _____ _ _ _ _ +// / __ \ | | | | (_) | +// | / \/ ___ __| | ___| | _| |_ ___ +// | | / _ \ / _ |/ _ \ | | | __/ _ ) +// | \__/\ (_) | (_| | __/ |___| | || __/ +// \____/\___/ \__,_|\___\_____/_|\__\___| +// +// F i l e +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// ////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// - #ifndef __threadlistpanel__ +#ifndef __threadlistpanel__ #define __threadlistpanel__ -/** -@file -Subclass of ThreadListBasePanel, which is generated by wxFormBuilder. -*/ - -#include "threadlistbasepanel.h" #include "debugger.h" +#include "ThreadListPanelBase.h" -/** Implementing ThreadListBasePanel */ class ThreadListPanel : public ThreadListBasePanel { protected: - // Handlers for ThreadListBasePanel events. - void OnItemActivated( wxListEvent& event ); - void InitList(); - + ThreadEntryArray m_threads; + +protected: + // Handlers for ThreadListBasePanel events. + void OnItemActivated(wxDataViewEvent& event); + bool IsTheSame(const ThreadEntryArray& threads1, const ThreadEntryArray& threads2); + public: - /** Constructor */ - ThreadListPanel( wxWindow* parent ); - void PopulateList(const ThreadEntryArray &threads); - void Clear(); + ThreadListPanel(wxWindow* parent); + virtual ~ThreadListPanel(); + void PopulateList(const ThreadEntryArray& threads); + void Clear(); }; #endif // __threadlistpanel__ diff -Nru codelite-8.0.1+dfsg2/LiteEditor/webupdatethread.cpp codelite-9.0+dfsg/LiteEditor/webupdatethread.cpp --- codelite-8.0.1+dfsg2/LiteEditor/webupdatethread.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/webupdatethread.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -24,88 +24,108 @@ ////////////////////////////////////////////////////////////////////////////// #include "precompiled_header.h" +#include "autoversion.h" #include #include #include "webupdatethread.h" #include "procutils.h" -//#include - -extern const wxChar *clGitRevision; +#include "json_node.h" const wxEventType wxEVT_CMD_NEW_VERSION_AVAILABLE = wxNewEventType(); const wxEventType wxEVT_CMD_VERSION_UPTODATE = wxNewEventType(); static const size_t DLBUFSIZE = 4096; -static long version_string_to_number( const wxString &versionString ) -{ - wxString major = versionString.BeforeFirst('.'); - wxString minor = versionString.AfterFirst('.'); - long nMajor, nMinor, nVersionNumber; - major.ToCLong(&nMajor); - minor.ToCLong(&nMinor); - nVersionNumber = nMajor*1000 + nMinor*100; // 5.1=>5100 - return nVersionNumber; -} +struct CodeLiteVersion { + wxString m_os; + wxString m_codename; + wxString m_arch; + wxString m_url; + int m_version; + + CodeLiteVersion(const JSONElement& json) + : m_version(wxNOT_FOUND) + { + m_os = json.namedObject("os").toString(); + m_codename = json.namedObject("codename").toString(); + m_arch = json.namedObject("arch").toString(); + m_url = json.namedObject("url").toString(); + m_version = json.namedObject("version").toInt(); + } + + /** + * @brief return true of this codelite version object is newer than the provided input + */ + bool IsNewer(const wxString& os, const wxString& codename, const wxString& arch) const + { + if((m_os == os) && (m_arch == arch) && (m_codename == codename)) { + return (m_version > CODELITE_VERSION_NUMBER); + } + return false; + } + + const wxString& GetArch() const { return m_arch; } + const wxString& GetCodename() const { return m_codename; } + const wxString& GetOs() const { return m_os; } + const wxString& GetUrl() const { return m_url; } + int GetVersion() const { return m_version; } +}; -WebUpdateJob::WebUpdateJob(wxEvtHandler *parent, bool userRequest) +WebUpdateJob::WebUpdateJob(wxEvtHandler* parent, bool userRequest) : Job(parent) , m_userRequest(userRequest) { } -WebUpdateJob::~WebUpdateJob() -{ -} +WebUpdateJob::~WebUpdateJob() {} void WebUpdateJob::Process(wxThread* thread) { #ifndef __WXMSW__ - - wxFileName fn(wxT("/tmp/codelite-packages-new.txt")); + wxFileName fn(wxT("/tmp/codelite-packages.json")); wxString command; #ifdef __WXMAC__ - command << wxT("curl http://codelite.org/packages-new.txt --output ") << fn.GetFullPath() << wxT(" > /dev/null 2>&1"); + command << wxT("curl http://codelite.org/packages.json --output ") << fn.GetFullPath() << wxT(" > /dev/null 2>&1"); #else - command << "wget http://codelite.org/packages-new.txt --output-file=/dev/null -O " << fn.GetFullPath() << wxT(" > /dev/null 2>&1"); + command << "wget http://codelite.org/packages.json --output-file=/dev/null -O " << fn.GetFullPath() + << wxT(" > /dev/null 2>&1"); #endif { wxLogNull noLog; - ::wxRemoveFile( fn.GetFullPath() ); + ::wxRemoveFile(fn.GetFullPath()); } wxArrayString outputArr; ProcUtils::SafeExecuteCommand(command, outputArr); - if ( fn.FileExists() ) { + if(fn.FileExists()) { wxFFile fp(fn.GetFullPath(), wxT("rb")); - if ( fp.IsOpened() ) { + if(fp.IsOpened()) { m_dataRead.Clear(); fp.ReadAll(&m_dataRead, wxConvUTF8); ParseFile(); - } } #else - wxURL url(wxT("http://codelite.org/packages-new.txt")); - if (url.GetError() == wxURL_NOERR) { + wxURL url(wxT("http://codelite.org/packages.json")); + if(url.GetError() == wxURL_NOERR) { - wxInputStream *in_stream = url.GetInputStream(); - if (!in_stream) { + wxInputStream* in_stream = url.GetInputStream(); + if(!in_stream) { return; } bool shutdownRequest(false); - unsigned char buffer[DLBUFSIZE+1]; + unsigned char buffer[DLBUFSIZE + 1]; do { in_stream->Read(buffer, DLBUFSIZE); size_t bytes_read = in_stream->LastRead(); - if (bytes_read > 0) { + if(bytes_read > 0) { buffer[bytes_read] = 0; wxString buffRead((const char*)buffer, wxConvUTF8); @@ -118,8 +138,7 @@ break; } - } while ( !in_stream->Eof() ); - + } while(!in_stream->Eof()); if(shutdownRequest == false) { delete in_stream; @@ -131,14 +150,14 @@ size_t WebUpdateJob::WriteData(void* buffer, size_t size, size_t nmemb, void* obj) { - WebUpdateJob *job = reinterpret_cast(obj); - if (job) { - char *data = new char[size*nmemb+1]; - memcpy(data, buffer, size*nmemb); - data[size*nmemb] = 0; + WebUpdateJob* job = reinterpret_cast(obj); + if(job) { + char* data = new char[size * nmemb + 1]; + memcpy(data, buffer, size * nmemb); + data[size * nmemb] = 0; job->m_dataRead.Append(_U(data)); - delete [] data; + delete[] data; return size * nmemb; } return static_cast(-1); @@ -146,61 +165,70 @@ void WebUpdateJob::ParseFile() { - wxString packageName(wxT("MSW")); -#if defined(__WXGTK__) - packageName = wxT("GTK"); -#elif defined(__WXMAC__) - packageName = wxT("MAC"); -#endif - - // diffrentiate between the 64bit and the 32bit packages -#ifdef ON_64_BIT - packageName << wxT("_64"); -#endif - - wxArrayString lines = wxStringTokenize(m_dataRead, wxT("\n")); - for (size_t i=0; i 3) { - // find the entry with our package name - if (tokens.Item(0).Trim().Trim(false) == packageName) { - wxString url = tokens.Item(2).Trim().Trim(false); - wxString rev = tokens.Item(1).Trim().Trim(false); - wxString releaseNotesUrl = tokens.Item(3).Trim().Trim(false); - - // convert strings to long - wxString sCurRev(clGitRevision); - wxString sNewRev(rev); - long nCurrentVersion, nWebSiteVersion; - - nCurrentVersion = version_string_to_number( sCurRev ); - nWebSiteVersion = version_string_to_number( sNewRev ); - - if ( nWebSiteVersion > nCurrentVersion ) { - - // notify the user that a new version is available - wxCommandEvent e(wxEVT_CMD_NEW_VERSION_AVAILABLE); - e.SetClientData(new WebUpdateJobData(url.c_str(), releaseNotesUrl.c_str(), sCurRev, sNewRev, false, m_userRequest)); - wxPostEvent(m_parent, e); - - } else { - - // version is up to date, notify the main thread about it - wxCommandEvent e(wxEVT_CMD_VERSION_UPTODATE); - e.SetClientData(new WebUpdateJobData(url.c_str(), releaseNotesUrl.c_str(), sCurRev, sNewRev, true, m_userRequest)); - wxPostEvent(m_parent, e); - - } - break; - } + JSONRoot root(m_dataRead); + JSONElement platforms = root.toElement().namedObject("platforms"); + + int count = platforms.arraySize(); + for(int i = 0; i < count; ++i) { + CodeLiteVersion v(platforms.arrayItem(i)); + if(v.IsNewer(os, codename, arch)) { + wxCommandEvent event(wxEVT_CMD_NEW_VERSION_AVAILABLE); + event.SetClientData( + new WebUpdateJobData("http://codelite.org/support.php", v.GetUrl(), CODELITE_VERSION_STRING, "", false, true)); + m_parent->AddPendingEvent(event); + return; } } + + if(m_userRequest) { + // If we got here, then the version is up to date + wxCommandEvent event(wxEVT_CMD_VERSION_UPTODATE); + m_parent->AddPendingEvent(event); + } +} + +void WebUpdateJob::GetPlatformDetails(wxString& os, wxString& codename, wxString& arch) const +{ +#ifdef __WXMSW__ + os = "msw"; + codename = "Windows"; +#ifndef NDEBUG + os << "-dbg"; +#endif + +#ifdef _WIN64 + arch = "x86_64"; +#else + arch = "i386"; +#endif +#elif defined(__WXOSX__) + os = "osx"; + arch = "x86_64"; + codename = "10.8"; +#else + os = "linux"; + wxFFile fp("/etc/issue", "rb"); + wxString content; + if(fp.IsOpened()) { + fp.ReadAll(&content, wxConvUTF8); + fp.Close(); + } + // Test for common code names that we support on Linux + if(content.Contains("Ubuntu 14.04")) { + codename = "Ubuntu 14.04"; + } else if(content.Contains("Debian GNU/Linux 8")) { + codename = "Debian GNU/Linux 8"; + } else { + codename = "others"; + } + +#if __LP64__ + arch = "x86_64"; +#else + arch = "i386"; +#endif +#endif } diff -Nru codelite-8.0.1+dfsg2/LiteEditor/webupdatethread.h codelite-9.0+dfsg/LiteEditor/webupdatethread.h --- codelite-8.0.1+dfsg2/LiteEditor/webupdatethread.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/webupdatethread.h 2015-10-11 13:56:07.000000000 +0000 @@ -33,62 +33,61 @@ class WebUpdateJobData { - wxString m_url; wxString m_curVersion; wxString m_newVersion; - bool m_upToDate; + bool m_upToDate; wxString m_releaseNotes; - bool m_showMessage; + bool m_showMessage; public: - WebUpdateJobData(const wxString &url, const wxString &releaseNotes, wxString curVersion, wxString newVersion, bool upToDate, bool showMessage) + WebUpdateJobData(const wxString& url, + const wxString& releaseNotes, + wxString curVersion, + wxString newVersion, + bool upToDate, + bool showMessage) : m_url(url.c_str()) , m_curVersion(curVersion) , m_newVersion(newVersion) , m_upToDate(upToDate) , m_releaseNotes(releaseNotes) - , m_showMessage(showMessage) {} - - ~WebUpdateJobData() {} - - const wxString& GetCurVersion() const { - return m_curVersion; - } - const wxString& GetNewVersion() const { - return m_newVersion; - } - const wxString& GetUrl() const { - return m_url; + , m_showMessage(showMessage) + { } - bool IsUpToDate() const { - return m_upToDate; - } + ~WebUpdateJobData() {} - void SetReleaseNotes(const wxString& releaseNotes) { - this->m_releaseNotes = releaseNotes; - } - const wxString& GetReleaseNotes() const { - return m_releaseNotes; - } - bool GetShowMessage() const { - return m_showMessage; - } + const wxString& GetCurVersion() const { return m_curVersion; } + const wxString& GetNewVersion() const { return m_newVersion; } + const wxString& GetUrl() const { return m_url; } + + bool IsUpToDate() const { return m_upToDate; } + + void SetReleaseNotes(const wxString& releaseNotes) { this->m_releaseNotes = releaseNotes; } + const wxString& GetReleaseNotes() const { return m_releaseNotes; } + bool GetShowMessage() const { return m_showMessage; } }; class WebUpdateJob : public Job { wxString m_dataRead; - bool m_userRequest; + bool m_userRequest; + +protected: + /** + * @brief get the current platform details + */ + void GetPlatformDetails(wxString& os, wxString& codename, wxString& arch) const; + public: - WebUpdateJob(wxEvtHandler *parent, bool userRequest); + WebUpdateJob(wxEvtHandler* parent, bool userRequest); virtual ~WebUpdateJob(); void ParseFile(); - static size_t WriteData(void *buffer, size_t size, size_t nmemb, void *obj); + static size_t WriteData(void* buffer, size_t size, size_t nmemb, void* obj); public: - virtual void Process(wxThread *thread); + virtual void Process(wxThread* thread); }; #endif // __webupdatethread__ diff -Nru codelite-8.0.1+dfsg2/LiteEditor/WelcomePage.cpp codelite-9.0+dfsg/LiteEditor/WelcomePage.cpp --- codelite-8.0.1+dfsg2/LiteEditor/WelcomePage.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/WelcomePage.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -70,7 +70,6 @@ { wxArrayString recentFiles; clMainFrame::Get()->GetMainBook()->GetRecentlyOpenedFiles(recentFiles); - recentFiles.Sort(); int id = DoGetPopupMenuSelection(m_cmdLnkBtnFilesMenu, recentFiles, _("Select file to open")); if(id != wxID_NONE) { @@ -86,8 +85,8 @@ // files.Sort(); wxArrayString recentWorkspaces; - for(size_t i = files.GetCount(); i > 0; --i) { - wxFileName fn(files.Item(i - 1)); + for(size_t i = 0; i < files.size(); ++i) { + wxFileName fn(files.Item(i)); recentWorkspaces.Add(fn.GetName() + " @ " + fn.GetFullPath()); } @@ -115,7 +114,7 @@ wxUnusedVar(menuTitle); wxMenu menu; - for(size_t i = 0; i < strings.GetCount(); i++) { + for(size_t i = 0; i < strings.GetCount(); ++i) { wxBitmap bmp = bmps[FileExtManager::TypeText]; wxString filename = strings.Item(i); @@ -166,10 +165,7 @@ event.Enable(!files.IsEmpty()); } -void WelcomePage::OnThemeChanged(wxCommandEvent& e) -{ - e.Skip(); -} +void WelcomePage::OnThemeChanged(wxCommandEvent& e) { e.Skip(); } void WelcomePage::OnNewWorkspace(wxCommandEvent& event) { diff -Nru codelite-8.0.1+dfsg2/LiteEditor/workspace_pane.cpp codelite-9.0+dfsg/LiteEditor/workspace_pane.cpp --- codelite-8.0.1+dfsg2/LiteEditor/workspace_pane.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/workspace_pane.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -34,7 +34,7 @@ #include "manager.h" #include "frame.h" #include "cl_editor.h" -#include "notebook_ex.h" +#include "Notebook.h" #include "cpp_symbol_tree.h" #include "windowstack.h" #include "macros.h" @@ -48,6 +48,9 @@ #include "cl_aui_dock_art.h" #include "event_notifier.h" #include "codelite_events.h" +#include "clWorkspaceView.h" +#include +#include "pluginmanager.h" #ifdef __WXGTK20__ // We need this ugly hack to workaround a gtk2-wxGTK name-clash @@ -64,9 +67,16 @@ { CreateGUIControls(); EventNotifier::Get()->Bind(wxEVT_INIT_DONE, &WorkspacePane::OnInitDone, this); + EventNotifier::Get()->Bind(wxEVT_EDITOR_CONFIG_CHANGED, &WorkspacePane::OnSettingsChanged, this); + EventNotifier::Get()->Bind(wxEVT_SHOW_WORKSPACE_TAB, &WorkspacePane::OnToggleWorkspaceTab, this); } -WorkspacePane::~WorkspacePane() { EventNotifier::Get()->Unbind(wxEVT_INIT_DONE, &WorkspacePane::OnInitDone, this); } +WorkspacePane::~WorkspacePane() +{ + EventNotifier::Get()->Unbind(wxEVT_INIT_DONE, &WorkspacePane::OnInitDone, this); + EventNotifier::Get()->Unbind(wxEVT_EDITOR_CONFIG_CHANGED, &WorkspacePane::OnSettingsChanged, this); + EventNotifier::Get()->Unbind(wxEVT_SHOW_WORKSPACE_TAB, &WorkspacePane::OnToggleWorkspaceTab, this); +} #define IS_DETACHED(name) (detachedPanes.Index(name) != wxNOT_FOUND) ? true : false @@ -76,9 +86,10 @@ SetSizer(mainSizer); // add notebook for tabs - long bookStyle = wxVB_LEFT | wxAUI_NB_WINDOWLIST_BUTTON | wxBORDER_NONE; - m_book = new Notebook(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, bookStyle); - + long style = (kNotebook_Default | kNotebook_AllowDnD | kNotebook_LeftTabs); + m_book = new Notebook(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, style); + m_book->SetTabDirection(EditorConfigST::Get()->GetOptions()->GetWorkspaceTabsDirection()); + // Calculate the widest tab (the one with the 'Workspace' label) int xx, yy; wxFont fnt = wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT); @@ -105,7 +116,10 @@ // Add the workspace tab wxString name; - + + // the IManager instance + IManager* mgr = PluginManager::Get(); + name = _("Workspace"); if(IS_DETACHED(name)) { DockablePane* cp = new DockablePane(GetParent(), m_book, name, wxNullBitmap, wxSize(200, 200)); @@ -115,7 +129,9 @@ m_workspaceTab = new WorkspaceTab(m_book, name); m_book->AddPage(m_workspaceTab, name, true, wxNullBitmap); } - + m_tabs.insert(std::make_pair(name, Tab(name, m_workspaceTab))); + mgr->AddWorkspaceTab(name); + // Add the explorer tab name = _("Explorer"); if(IS_DETACHED(name)) { @@ -126,6 +142,11 @@ m_explorer = new FileExplorer(m_book, name); m_book->AddPage(m_explorer, name, false); } + m_tabs.insert(std::make_pair(name, Tab(name, m_explorer))); + mgr->AddWorkspaceTab(name); + + // Add the "File Explorer" view to the list of files managed by the workspace-view + m_workspaceTab->GetView()->AddPage(m_explorer, _("File Explorer"), false); // Add the Open Windows Panel (Tabs) #ifndef __WXOSX__ @@ -138,6 +159,8 @@ m_openWindowsPane = new OpenWindowsPanel(m_book, name); m_book->AddPage(m_openWindowsPane, name, false); } + m_tabs.insert(std::make_pair(name, Tab(name, m_openWindowsPane))); + mgr->AddWorkspaceTab(name); #endif // Add the Tabgroups tab @@ -150,11 +173,12 @@ m_TabgroupsPane = new TabgroupsPane(m_book, name); m_book->AddPage(m_TabgroupsPane, name, false); } - + m_tabs.insert(std::make_pair(name, Tab(name, m_TabgroupsPane))); + mgr->AddWorkspaceTab(name); + if(m_book->GetPageCount() > 0) { m_book->SetSelection((size_t)0); } - UpdateTabs(); m_mgr->Update(); } @@ -181,16 +205,6 @@ m_parsingProgress->Update(); } -void WorkspacePane::UpdateTabs() -{ - long flags = EditorConfigST::Get()->GetInteger(wxT("view_workspace_view"), View_Show_Default); - - DoShowTab(flags & View_Show_Workspace_Tab, _("Workspace")); - DoShowTab(flags & View_Show_Explorer_Tab, _("Explorer")); - DoShowTab(flags & View_Show_Tabs_Tab, _("Tabs")); - DoShowTab(flags & View_Show_Tabgroups_Tab, _("Tabgroups")); -} - typedef struct { wxString text; wxWindow* win; @@ -244,14 +258,18 @@ // I've left the code in case anyone ever has time/inclination to fix it if((index >= 0) && (index < (int)m_book->GetPageCount())) { m_book->SetSelection(index); + } else if(m_book->GetPageCount()) { + m_book->SetSelection(0); } - m_mgr->Update(); } void WorkspacePane::SaveWorkspaceViewTabOrder() const { - wxArrayString panes = m_book->GetPagesTextInOrder(); + wxArrayString panes; + clTabInfo::Vec_t tabs; + m_book->GetAllTabs(tabs); + std::for_each(tabs.begin(), tabs.end(), [&](clTabInfo::Ptr_t t) { panes.Add(t->GetLabel()); }); clConfig::Get().SetWorkspaceTabOrder(panes, m_book->GetSelection()); } @@ -355,3 +373,40 @@ event.Skip(); m_captionEnabler.Initialize(this, "Workspace View", &clMainFrame::Get()->GetDockingManager()); } + +void WorkspacePane::SelectTab(const wxString& tabTitle) +{ + for(size_t i = 0; i < m_book->GetPageCount(); i++) { + if(m_book->GetPageText(i) == tabTitle) { + // requested to add a page which already exists + m_book->SetSelection(i); + } + } +} + +void WorkspacePane::OnSettingsChanged(wxCommandEvent& event) +{ + event.Skip(); + m_book->SetTabDirection(EditorConfigST::Get()->GetOptions()->GetWorkspaceTabsDirection()); +} + +void WorkspacePane::OnToggleWorkspaceTab(clCommandEvent& event) +{ + // Handle the core tabs + if(m_tabs.count(event.GetString()) == 0) { + event.Skip(); + return; + } + + const Tab& t = m_tabs.find(event.GetString())->second; + if(event.IsSelected()) { + // Insert the page + GetNotebook()->InsertPage(0, t.m_window, t.m_label, true, t.m_bmp); + } else { + // hide the tab + int where = GetNotebook()->GetPageIndex(t.m_label); + if(where != wxNOT_FOUND) { + GetNotebook()->RemovePage(where); + } + } +} diff -Nru codelite-8.0.1+dfsg2/LiteEditor/workspace_pane.h codelite-9.0+dfsg/LiteEditor/workspace_pane.h --- codelite-8.0.1+dfsg2/LiteEditor/workspace_pane.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/workspace_pane.h 2015-10-11 13:56:07.000000000 +0000 @@ -26,10 +26,12 @@ #define WORKSPACE_PANE_H #include -#include "notebook_ex.h" +#include "Notebook.h" #include #include #include "clAuiCaptionEnabler.h" +#include +#include // Forward Declarations class FileViewTree; @@ -58,10 +60,34 @@ clAuiCaptionEnabler m_captionEnabler; protected: + struct Tab { + wxString m_label; + wxWindow* m_window; + wxBitmap m_bmp; + + Tab(const wxString& label, wxWindow* win, const wxBitmap& bmp = wxNullBitmap) + : m_label(label) + , m_window(win) + , m_bmp(bmp) + { + } + + Tab() + : m_window(NULL) + { + } + }; + +protected: + std::map m_tabs; + +protected: void CreateGUIControls(); void DoShowTab(bool show, const wxString& title); wxWindow* DoGetControlByName(const wxString& title); void OnInitDone(wxCommandEvent& event); + void OnSettingsChanged(wxCommandEvent& event); + void OnToggleWorkspaceTab(clCommandEvent& event); public: WorkspacePane(wxWindow* parent, const wxString& caption, wxAuiManager* mgr); @@ -69,7 +95,6 @@ void UpdateProgress(int val); void ClearProgress(); - void UpdateTabs(); void ApplySavedTabOrder() const; void SaveWorkspaceViewTabOrder() const; bool IsTabVisible(int flag); @@ -80,6 +105,11 @@ WorkspaceTab* GetWorkspaceTab() { return m_workspaceTab; } FileExplorer* GetFileExplorer() { return m_explorer; } TabgroupsPane* GetTabgroupsTab() { return m_TabgroupsPane; } + /** + * @brief set an active tab by its title + * @param tabTitle the tab to select + */ + void SelectTab(const wxString& tabTitle); }; #endif // WORKSPACE_PANE_H diff -Nru codelite-8.0.1+dfsg2/LiteEditor/workspacesettingsbase.cpp codelite-9.0+dfsg/LiteEditor/workspacesettingsbase.cpp --- codelite-8.0.1+dfsg2/LiteEditor/workspacesettingsbase.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/workspacesettingsbase.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -91,6 +91,8 @@ #if wxVERSION_NUMBER >= 2900 if(!wxPersistenceManager::Get().Find(m_notebook1)){ wxPersistenceManager::Get().RegisterAndRestore(m_notebook1); + } else { + wxPersistenceManager::Get().Restore(m_notebook1); } #endif @@ -103,6 +105,8 @@ #if wxVERSION_NUMBER >= 2900 if(!wxPersistenceManager::Get().Find(this)) { wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); } #endif // Connect events @@ -180,6 +184,12 @@ boxSizer3->Add(m_checkBoxCpp14, 0, wxALL, 5); + m_checkBoxSWTLW = new wxCheckBox(m_panel6, wxID_ANY, _("Sync to Workspace File"), wxDefaultPosition, wxSize(-1,-1), 0); + m_checkBoxSWTLW->SetValue(false); + m_checkBoxSWTLW->SetToolTip(_("When enabled search paths folders for Code Completion will be synced between the Workspace file and the local search paths database.")); + + boxSizer3->Add(m_checkBoxSWTLW, 0, wxALL, 5); + SetName(wxT("CodeCompletionBasePage")); SetSizeHints(500,300); if ( GetSizer() ) { diff -Nru codelite-8.0.1+dfsg2/LiteEditor/workspacesettingsbase.h codelite-9.0+dfsg/LiteEditor/workspacesettingsbase.h --- codelite-8.0.1+dfsg2/LiteEditor/workspacesettingsbase.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/workspacesettingsbase.h 2015-10-11 13:56:07.000000000 +0000 @@ -4,8 +4,8 @@ // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// -#ifndef WORKSPACESETTINGSBASE_BASE_CLASSES_H -#define WORKSPACESETTINGSBASE_BASE_CLASSES_H +#ifndef CODELITE_LITEEDITOR_WORKSPACESETTINGSBASE_BASE_CLASSES_H +#define CODELITE_LITEEDITOR_WORKSPACESETTINGSBASE_BASE_CLASSES_H #include #include @@ -81,6 +81,7 @@ wxTextCtrl* m_textCtrlMacros; wxCheckBox* m_checkBoxCpp11; wxCheckBox* m_checkBoxCpp14; + wxCheckBox* m_checkBoxSWTLW; protected: virtual void OnCCContentModified(wxCommandEvent& event) { event.Skip(); } @@ -93,6 +94,7 @@ wxTextCtrl* GetTextCtrlMacros() { return m_textCtrlMacros; } wxCheckBox* GetCheckBoxCpp11() { return m_checkBoxCpp11; } wxCheckBox* GetCheckBoxCpp14() { return m_checkBoxCpp14; } + wxCheckBox* GetCheckBoxSWTLW() { return m_checkBoxSWTLW; } wxPanel* GetPanel6() { return m_panel6; } wxSplitterWindow* GetSplitter1() { return m_splitter1; } CodeCompletionBasePage(wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(500,300), long style = wxTAB_TRAVERSAL); diff -Nru codelite-8.0.1+dfsg2/LiteEditor/workspacesettingsbase_liteeditor_bitmaps.cpp codelite-9.0+dfsg/LiteEditor/workspacesettingsbase_liteeditor_bitmaps.cpp --- codelite-8.0.1+dfsg2/LiteEditor/workspacesettingsbase_liteeditor_bitmaps.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/workspacesettingsbase_liteeditor_bitmaps.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,47 +1,47 @@ -// -// This file was automatically generated by wxrc, do not edit by hand. -// - -#include - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#include -#include -#include -#include - -#if wxCHECK_VERSION(2,8,5) && wxABI_VERSION >= 20805 - #define XRC_ADD_FILE(name, data, size, mime) \ - wxMemoryFSHandler::AddFileWithMimeType(name, data, size, mime) -#else - #define XRC_ADD_FILE(name, data, size, mime) \ - wxMemoryFSHandler::AddFile(name, data, size) -#endif - -static size_t xml_res_size_0 = 90; -static unsigned char xml_res_file_0[] = { -60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, -110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, -115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, -47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, -47,119,120,120,114,99,34,47,62,10}; - -void wxC3C39InitBitmapResources() -{ - - // Check for memory FS. If not present, load the handler: - { - wxMemoryFSHandler::AddFile(wxT("XRC_resource/dummy_file"), wxT("dummy one")); - wxFileSystem fsys; - wxFSFile *f = fsys.OpenFile(wxT("memory:XRC_resource/dummy_file")); - wxMemoryFSHandler::RemoveFile(wxT("XRC_resource/dummy_file")); - if (f) delete f; - else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase); - } - - XRC_ADD_FILE(wxT("XRC_resource/workspacesettingsbase_liteeditor_bitmaps.cpp$_home_david_devel_git_CL_LiteEditor_workspacesettingsbase_liteeditor_bitmaps.xrc"), xml_res_file_0, xml_res_size_0, wxT("text/xml")); - wxXmlResource::Get()->Load(wxT("memory:XRC_resource/workspacesettingsbase_liteeditor_bitmaps.cpp$_home_david_devel_git_CL_LiteEditor_workspacesettingsbase_liteeditor_bitmaps.xrc")); -} +// +// This file was automatically generated by wxrc, do not edit by hand. +// + +#include + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +#include +#include +#include +#include + +#if wxCHECK_VERSION(2,8,5) && wxABI_VERSION >= 20805 + #define XRC_ADD_FILE(name, data, size, mime) \ + wxMemoryFSHandler::AddFileWithMimeType(name, data, size, mime) +#else + #define XRC_ADD_FILE(name, data, size, mime) \ + wxMemoryFSHandler::AddFile(name, data, size) +#endif + +static size_t xml_res_size_0 = 90; +static unsigned char xml_res_file_0[] = { +60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, +110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, +115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, +47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, +47,119,120,120,114,99,34,47,62,10}; + +void wxC3C39InitBitmapResources() +{ + + // Check for memory FS. If not present, load the handler: + { + wxMemoryFSHandler::AddFile(wxT("XRC_resource/dummy_file"), wxT("dummy one")); + wxFileSystem fsys; + wxFSFile *f = fsys.OpenFile(wxT("memory:XRC_resource/dummy_file")); + wxMemoryFSHandler::RemoveFile(wxT("XRC_resource/dummy_file")); + if (f) delete f; + else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase); + } + + XRC_ADD_FILE(wxT("XRC_resource/workspacesettingsbase_liteeditor_bitmaps.cpp$C__src_codelite_LiteEditor_workspacesettingsbase_liteeditor_bitmaps.xrc"), xml_res_file_0, xml_res_size_0, wxT("text/xml")); + wxXmlResource::Get()->Load(wxT("memory:XRC_resource/workspacesettingsbase_liteeditor_bitmaps.cpp$C__src_codelite_LiteEditor_workspacesettingsbase_liteeditor_bitmaps.xrc")); +} diff -Nru codelite-8.0.1+dfsg2/LiteEditor/workspacesettingsbase.wxcp codelite-9.0+dfsg/LiteEditor/workspacesettingsbase.wxcp --- codelite-8.0.1+dfsg2/LiteEditor/workspacesettingsbase.wxcp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/workspacesettingsbase.wxcp 2015-10-11 13:56:07.000000000 +0000 @@ -1,7 +1,7 @@ { "metadata": { "m_generatedFilesDir": ".", - "m_objCounter": 5, + "m_objCounter": 7, "m_includeFiles": [], "m_bitmapFunction": "wxC3C39InitBitmapResources", "m_bitmapsFile": "workspacesettingsbase_liteeditor_bitmaps.cpp", @@ -1996,6 +1996,81 @@ }, { "type": "bool", "m_label": "Value:", + "m_value": false + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4415, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_checkBoxSWTLW" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "When enabled search paths folders for Code Completion will be synced between the Workspace file and the local search paths database." + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Sync to Workspace File" + }, { + "type": "bool", + "m_label": "Value:", "m_value": false }], "m_events": [], diff -Nru codelite-8.0.1+dfsg2/LiteEditor/workspacesettingsdlg.cpp codelite-9.0+dfsg/LiteEditor/workspacesettingsdlg.cpp --- codelite-8.0.1+dfsg2/LiteEditor/workspacesettingsdlg.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/workspacesettingsdlg.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -77,7 +77,7 @@ EnvironmentConfig::Instance()->SetSettings(vars); } - wxString envvars = WorkspaceST::Get()->GetEnvironmentVariabels(); + wxString envvars = clCxxWorkspaceST::Get()->GetEnvironmentVariabels(); envvars.Trim().Trim(false); m_textCtrlWspEnvVars->SetValue(envvars); @@ -126,7 +126,7 @@ void WorkspaceSettingsDlg::OnButtonOK(wxCommandEvent& event) { m_localWorkspace->SetActiveEnvironmentSet(m_choiceEnvSets->GetStringSelection()); - WorkspaceST::Get()->SetEnvironmentVariabels(m_textCtrlWspEnvVars->GetValue()); + clCxxWorkspaceST::Get()->SetEnvironmentVariabels(m_textCtrlWspEnvVars->GetValue()); m_ccPage->Save(); event.Skip(); } diff -Nru codelite-8.0.1+dfsg2/LiteEditor/workspacetab.cpp codelite-9.0+dfsg/LiteEditor/workspacetab.cpp --- codelite-8.0.1+dfsg2/LiteEditor/workspacetab.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/workspacetab.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -41,6 +41,10 @@ #include "event_notifier.h" #include "plugin.h" #include +#include "clWorkspaceView.h" +#include "DefaultWorkspacePage.h" +#include "clFileOrFolderDropTarget.h" +#include "clTreeCtrlPanel.h" #define OPEN_CONFIG_MGR_STR _("") @@ -49,17 +53,20 @@ , m_caption(caption) , m_isLinkedToEditor(true) , m_dlg(NULL) + , m_view(NULL) { long link = EditorConfigST::Get()->GetInteger(wxT("LinkWorkspaceViewToEditor"), 1); m_isLinkedToEditor = link ? true : false; CreateGUIControls(); ConnectEvents(); - m_themeHelper = NULL;//new ThemeHandlerHelper(this); + m_themeHelper = NULL; // new ThemeHandlerHelper(this); int sashPos = clConfig::Get().Read(kConfigWorkspaceTabSashPosition, wxNOT_FOUND); if(sashPos != wxNOT_FOUND) { m_splitter->SetSashPosition(sashPos); } + SetDropTarget(new clFileOrFolderDropTarget(this)); + Bind(wxEVT_DND_FOLDER_DROPPED, &WorkspaceTab::OnFolderDropped, this); } WorkspaceTab::~WorkspaceTab() @@ -104,14 +111,20 @@ void WorkspaceTab::CreateGUIControls() { - wxSizer* sz = GetSizer(); #ifdef __WXMAC__ m_workspaceConfig->SetWindowVariant(wxWINDOW_VARIANT_SMALL); m_choiceActiveProject->SetWindowVariant(wxWINDOW_VARIANT_SMALL); #endif - // Construct the tree - m_fileView = new FileViewTree(this, wxID_ANY); - sz->Add(m_fileView, 1, wxEXPAND | wxALL, 2); + //// Construct the tree + int index = m_simpleBook->FindPage(m_panelCxx); + if(index != wxNOT_FOUND) { + // set the C++ workspace view name to fit its workspace type + m_simpleBook->SetPageText(index, clCxxWorkspaceST::Get()->GetWorkspaceType()); + } + m_view = new clWorkspaceView(m_simpleBook); + m_view->AddPage(new DefaultWorkspacePage(m_simpleBook), _("Default")); + m_view->SelectPage(_("Default")); + m_view->SetDefaultPage(_("Default")); } void WorkspaceTab::FreezeThaw(bool freeze /*=true*/) @@ -202,10 +215,7 @@ } } -void WorkspaceTab::OnCollapseAllUI(wxUpdateUIEvent& e) -{ - e.Enable(ManagerST::Get()->IsWorkspaceOpen()); -} +void WorkspaceTab::OnCollapseAllUI(wxUpdateUIEvent& e) { e.Enable(ManagerST::Get()->IsWorkspaceOpen()); } void WorkspaceTab::OnGoHome(wxCommandEvent& e) { @@ -224,10 +234,7 @@ ManagerST::Get()->ShowWorkspacePane(m_caption); } -void WorkspaceTab::OnGoHomeUI(wxUpdateUIEvent& e) -{ - e.Enable(!ManagerST::Get()->GetActiveProjectName().IsEmpty()); -} +void WorkspaceTab::OnGoHomeUI(wxUpdateUIEvent& e) { e.Enable(!ManagerST::Get()->GetActiveProjectName().IsEmpty()); } void WorkspaceTab::OnProjectSettings(wxCommandEvent& e) { @@ -241,10 +248,7 @@ e.Enable(!ManagerST::Get()->GetActiveProjectName().IsEmpty()); } -static int wxStringCmpFunc(const wxString& item1, const wxString& item2) -{ - return item1.CmpNoCase(item2); -} +static int wxStringCmpFunc(const wxString& item1, const wxString& item2) { return item1.CmpNoCase(item2); } void WorkspaceTab::OnShowFile(wxCommandEvent& e) { @@ -296,10 +300,7 @@ } } -void WorkspaceTab::OnEditorClosing(wxCommandEvent& e) -{ - e.Skip(); -} +void WorkspaceTab::OnEditorClosing(wxCommandEvent& e) { e.Skip(); } void WorkspaceTab::OnWorkspaceClosed(wxCommandEvent& e) { @@ -332,8 +333,7 @@ SendCmdEvent(wxEVT_FILE_VIEW_REFRESHED); } -struct wxStringSorter -{ +struct wxStringSorter { bool operator()(WorkspaceConfigurationPtr one, WorkspaceConfigurationPtr two) const { return one->GetName().Lower().CmpNoCase(two->GetName().Lower()) < 0; @@ -343,15 +343,15 @@ void WorkspaceTab::DoWorkspaceConfig() { // Update the workspace configuration - BuildMatrixPtr matrix = WorkspaceST::Get()->GetBuildMatrix(); + BuildMatrixPtr matrix = clCxxWorkspaceST::Get()->GetBuildMatrix(); std::list confs = matrix->GetConfigurations(); m_workspaceConfig->Freeze(); m_workspaceConfig->Enable(true); m_workspaceConfig->Clear(); - + confs.sort(wxStringSorter()); - + for(std::list::iterator iter = confs.begin(); iter != confs.end(); iter++) { m_workspaceConfig->Append((*iter)->GetName()); } @@ -381,7 +381,7 @@ ProcessEvent(e); return; } - + CallAfter(&WorkspaceTab::DoConfigChanged); } @@ -420,7 +420,7 @@ wxWindowUpdateLocker locker(m_choiceActiveProject); m_choiceActiveProject->Clear(); - if(WorkspaceST::Get()->IsOpen()) { + if(clCxxWorkspaceST::Get()->IsOpen()) { m_choiceActiveProject->Append(projects); m_choiceActiveProject->SetStringSelection(ManagerST::Get()->GetActiveProjectName()); } @@ -431,10 +431,7 @@ event.Enable(ManagerST::Get()->IsWorkspaceOpen()); } -void WorkspaceTab::OnWorkspaceOpenUI(wxUpdateUIEvent& event) -{ - event.Enable(ManagerST::Get()->IsWorkspaceOpen()); -} +void WorkspaceTab::OnWorkspaceOpenUI(wxUpdateUIEvent& event) { event.Enable(ManagerST::Get()->IsWorkspaceOpen()); } void WorkspaceTab::OpenProjectSettings(const wxString& project) { @@ -486,10 +483,7 @@ } } -void WorkspaceTab::ProjectSettingsDlgClosed() -{ - m_dlg = NULL; -} +void WorkspaceTab::ProjectSettingsDlgClosed() { m_dlg = NULL; } void WorkspaceTab::OnActiveProjectChanged(clProjectSettingsEvent& e) { @@ -512,7 +506,7 @@ wxTreeItemId sel = arr.Item(0); if(sel.IsOk() && m_fileView->ItemHasChildren(sel)) m_fileView->Expand(sel); } - ManagerST::Get()->ShowWorkspacePane(m_caption); + //ManagerST::Get()->ShowWorkspacePane(m_caption); } void WorkspaceTab::DoConfigChanged() @@ -529,3 +523,9 @@ ManagerST::Get()->UpdateParserPaths(true); } + +void WorkspaceTab::OnFolderDropped(clCommandEvent& event) +{ + // pass it on to the tree view + m_fileView->CallAfter(&FileViewTree::FolderDropped, event.GetStrings()); +} diff -Nru codelite-8.0.1+dfsg2/LiteEditor/workspacetab.h codelite-9.0+dfsg/LiteEditor/workspacetab.h --- codelite-8.0.1+dfsg2/LiteEditor/workspacetab.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/workspacetab.h 2015-10-11 13:56:07.000000000 +0000 @@ -30,24 +30,23 @@ #include "wxcrafter.h" #include "cl_command_event.h" +class clWorkspaceView; class ProjectSettingsDlg; -class FileViewTree; - class WorkspaceTab : public WorkspaceTabBase { friend class ProjectSettingsDlg; - FileViewTree* m_fileView; wxString m_caption; bool m_isLinkedToEditor; ThemeHandlerHelper* m_themeHelper; ProjectSettingsDlg* m_dlg; + clWorkspaceView* m_view; protected: void ProjectSettingsDlgClosed(); void DoGoHome(); void DoConfigChanged(); - + protected: virtual void OnWorkspaceOpenUI(wxUpdateUIEvent& event); virtual void OnConfigurationManagerChoiceUI(wxUpdateUIEvent& event); @@ -55,6 +54,8 @@ virtual void OnChoiceActiveProjectUI(wxUpdateUIEvent& event); virtual void OnLinkEditorUI(wxUpdateUIEvent& event); + void OnFolderDropped(clCommandEvent& event); + void CreateGUIControls(); void ConnectEvents(); void DoWorkspaceConfig(); @@ -87,14 +88,14 @@ void OpenProjectSettings(const wxString& project = ""); - FileViewTree* GetFileView() - { - return m_fileView; - } - const wxString& GetCaption() const - { - return m_caption; - } + FileViewTree* GetFileView() { return m_fileView; } + const wxString& GetCaption() const { return m_caption; } void FreezeThaw(bool freeze = true); + + /** + * @brief return the workspace view class + * @return + */ + clWorkspaceView* GetView() { return m_view; } }; #endif // __workspacetab__ diff -Nru codelite-8.0.1+dfsg2/LiteEditor/wxcAboutDlg.cpp codelite-9.0+dfsg/LiteEditor/wxcAboutDlg.cpp --- codelite-8.0.1+dfsg2/LiteEditor/wxcAboutDlg.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/wxcAboutDlg.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -23,7 +23,7 @@ bBitmapLoaded = true; } - wxBoxSizer* mainSizer = new wxBoxSizer(wxVERTICAL); + mainSizer = new wxBoxSizer(wxVERTICAL); this->SetSizer(mainSizer); m_notebook1 = new wxNotebook(this, wxID_ANY, wxDefaultPosition, wxSize(-1, -1), 0); @@ -34,7 +34,7 @@ m_panel1 = new wxPanel(m_notebook1, wxID_ANY, wxDefaultPosition, wxSize(-1, -1), wxTAB_TRAVERSAL); m_notebook1->AddPage(m_panel1, _("About"), false); - wxBoxSizer* bSizer3 = new wxBoxSizer(wxVERTICAL); + bSizer3 = new wxBoxSizer(wxVERTICAL); m_panel1->SetSizer(bSizer3); m_bitmap = new wxStaticBitmap(m_panel1, wxID_ANY, wxXmlResource::Get()->LoadBitmap(wxT("splashscreen")), wxDefaultPosition, wxSize(-1, -1), 0 ); @@ -44,7 +44,7 @@ m_panel4 = new wxPanel(m_notebook1, wxID_ANY, wxDefaultPosition, wxSize(-1, -1), wxTAB_TRAVERSAL); m_notebook1->AddPage(m_panel4, _("Credits"), false); - wxBoxSizer* bSizer4 = new wxBoxSizer(wxVERTICAL); + bSizer4 = new wxBoxSizer(wxVERTICAL); m_panel4->SetSizer(bSizer4); m_htmlWin3 = new wxHtmlWindow(m_panel4, wxID_ANY, wxDefaultPosition, wxSize(-1, -1), wxHW_SCROLLBAR_AUTO); @@ -55,18 +55,18 @@ m_panel3 = new wxPanel(m_notebook1, wxID_ANY, wxDefaultPosition, wxSize(-1, -1), wxTAB_TRAVERSAL); m_notebook1->AddPage(m_panel3, _("License"), false); - wxBoxSizer* bSizer5 = new wxBoxSizer(wxVERTICAL); + bSizer5 = new wxBoxSizer(wxVERTICAL); m_panel3->SetSizer(bSizer5); m_textCtrlLicense = new wxTextCtrl(m_panel3, wxID_ANY, wxT(""), wxDefaultPosition, wxSize(-1, -1), wxTE_RICH2|wxTE_READONLY|wxTE_MULTILINE|wxTE_DONTWRAP); bSizer5->Add(m_textCtrlLicense, 1, wxALL|wxEXPAND, 5); - wxStaticBoxSizer* sbSizer1 = new wxStaticBoxSizer( new wxStaticBox(this, wxID_ANY, wxT("")), wxVERTICAL); + sbSizer1 = new wxStaticBoxSizer( new wxStaticBox(this, wxID_ANY, wxT("")), wxVERTICAL); mainSizer->Add(sbSizer1, 0, wxALL|wxEXPAND, 5); - wxFlexGridSizer* fgSizer1 = new wxFlexGridSizer(0, 2, 0, 0); + fgSizer1 = new wxFlexGridSizer(0, 2, 0, 0); fgSizer1->SetFlexibleDirection( wxBOTH ); fgSizer1->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); @@ -104,7 +104,7 @@ fgSizer1->Add(m_hyperlink3, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5); - wxBoxSizer* buttonSizer = new wxBoxSizer(wxHORIZONTAL); + buttonSizer = new wxBoxSizer(wxHORIZONTAL); mainSizer->Add(buttonSizer, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 5); @@ -118,6 +118,8 @@ #if wxVERSION_NUMBER >= 2900 if(!wxPersistenceManager::Get().Find(m_notebook1)){ wxPersistenceManager::Get().RegisterAndRestore(m_notebook1); + } else { + wxPersistenceManager::Get().Restore(m_notebook1); } #endif @@ -130,6 +132,8 @@ #if wxVERSION_NUMBER >= 2900 if(!wxPersistenceManager::Get().Find(this)) { wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); } #endif // Connect events diff -Nru codelite-8.0.1+dfsg2/LiteEditor/wxcAboutDlg.h codelite-9.0+dfsg/LiteEditor/wxcAboutDlg.h --- codelite-8.0.1+dfsg2/LiteEditor/wxcAboutDlg.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/wxcAboutDlg.h 2015-10-11 13:56:07.000000000 +0000 @@ -4,8 +4,8 @@ // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// -#ifndef ABOUTDLG_BASE_CLASSES_H -#define ABOUTDLG_BASE_CLASSES_H +#ifndef CODELITE_LITEEDITOR_ABOUTDLG_BASE_CLASSES_H +#define CODELITE_LITEEDITOR_ABOUTDLG_BASE_CLASSES_H #include #include @@ -34,13 +34,19 @@ class AboutDlgBase : public wxDialog { protected: + wxBoxSizer* mainSizer; wxNotebook* m_notebook1; wxPanel* m_panel1; + wxBoxSizer* bSizer3; wxStaticBitmap* m_bitmap; wxPanel* m_panel4; + wxBoxSizer* bSizer4; wxHtmlWindow* m_htmlWin3; wxPanel* m_panel3; + wxBoxSizer* bSizer5; wxTextCtrl* m_textCtrlLicense; + wxStaticBoxSizer* sbSizer1; + wxFlexGridSizer* fgSizer1; wxStaticText* m_staticTextHomePage; wxHyperlinkCtrl* m_hyperlink1; wxStaticText* m_staticText2; @@ -49,6 +55,7 @@ wxStaticText* m_staticTextInformation; wxStaticBitmap* m_bitmapPayPal; wxHyperlinkCtrl* m_hyperlink3; + wxBoxSizer* buttonSizer; wxButton* m_buttonOk; protected: diff -Nru codelite-8.0.1+dfsg2/LiteEditor/wxcDownloadDlg.cpp codelite-9.0+dfsg/LiteEditor/wxcDownloadDlg.cpp --- codelite-8.0.1+dfsg2/LiteEditor/wxcDownloadDlg.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/wxcDownloadDlg.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,47 +0,0 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2014 The CodeLite Team -// file name : wxcDownloadDlg.cpp -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - -#include "wxcDownloadDlg.h" -#include - -wxcDownloadDlg::wxcDownloadDlg(wxWindow* parent) - : wxcDownloadDlgBaseClass(parent) -{ - m_cmdLnkBtnDownload->SetDefault(); -} - -wxcDownloadDlg::~wxcDownloadDlg() -{ -} -void wxcDownloadDlg::OnDownloadWxCrafterPlugin(wxCommandEvent& event) -{ - ::wxLaunchDefaultBrowser("http://wxcrafter.codelite.org"); - this->EndModal(wxID_OK); -} - -void wxcDownloadDlg::OnIgnoreTheError(wxCommandEvent& event) -{ - this->EndModal(wxID_OK); -} diff -Nru codelite-8.0.1+dfsg2/LiteEditor/wxcDownloadDlg.h codelite-9.0+dfsg/LiteEditor/wxcDownloadDlg.h --- codelite-8.0.1+dfsg2/LiteEditor/wxcDownloadDlg.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/wxcDownloadDlg.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,39 +0,0 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2013 by Eran Ifrah -// file name : wxcDownloadDlg.h -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - -#ifndef WXCDOWNLOADDLG_H -#define WXCDOWNLOADDLG_H -#include "wxcrafter.h" - -class wxcDownloadDlg : public wxcDownloadDlgBaseClass -{ -public: - wxcDownloadDlg(wxWindow* parent); - virtual ~wxcDownloadDlg(); -protected: - virtual void OnDownloadWxCrafterPlugin(wxCommandEvent& event); - virtual void OnIgnoreTheError(wxCommandEvent& event); -}; -#endif // WXCDOWNLOADDLG_H diff -Nru codelite-8.0.1+dfsg2/LiteEditor/wxcrafter.cpp codelite-9.0+dfsg/LiteEditor/wxcrafter.cpp --- codelite-8.0.1+dfsg2/LiteEditor/wxcrafter.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/wxcrafter.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -55,10 +55,9 @@ SetName(wxT("NavBarControlBaseClass")); SetSizeHints(-1,-1); - if ( GetSizer() ) { + if (GetSizer()) { GetSizer()->Fit(this); } - CentreOnParent(wxBOTH); // Connect events m_scope->Connect(wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler(NavBarControlBaseClass::OnScope), NULL, this); m_func->Connect(wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler(NavBarControlBaseClass::OnFunction), NULL, this); @@ -85,7 +84,7 @@ wxBoxSizer* boxSizer47 = new wxBoxSizer(wxVERTICAL); this->SetSizer(boxSizer47); - m_auibar48 = new wxAuiToolBar(this, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxAUI_TB_PLAIN_BACKGROUND|wxAUI_TB_DEFAULT_STYLE|wxAUI_TB_VERTICAL); + m_auibar48 = new wxAuiToolBar(this, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxAUI_TB_PLAIN_BACKGROUND|wxAUI_TB_DEFAULT_STYLE); m_auibar48->SetToolBitmapSize(wxSize(16,16)); boxSizer47->Add(m_auibar48, 1, wxEXPAND, 5); @@ -107,10 +106,9 @@ SetName(wxT("BuildTabTopPanelBaseClass")); SetSizeHints(-1,-1); - if ( GetSizer() ) { + if (GetSizer()) { GetSizer()->Fit(this); } - CentreOnParent(wxBOTH); // Connect events this->Connect(XRCID("stick_build_pane"), wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler(BuildTabTopPanelBaseClass::OnToolPinCommandToolClicked), NULL, this); this->Connect(XRCID("build-auto-scroll"), wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler(BuildTabTopPanelBaseClass::OnAutoScroll), NULL, this); @@ -275,70 +273,6 @@ { } -wxcDownloadDlgBaseClass::wxcDownloadDlgBaseClass(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style) - : wxDialog(parent, id, title, pos, size, style) -{ - if ( !bBitmapLoaded ) { - // We need to initialise the default bitmap handler - wxXmlResource::Get()->AddHandler(new wxBitmapXmlHandler); - wxC3F25InitBitmapResources(); - bBitmapLoaded = true; - } - - wxBoxSizer* boxSizer71 = new wxBoxSizer(wxVERTICAL); - this->SetSizer(boxSizer71); - - m_panel81 = new wxPanel(this, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxTAB_TRAVERSAL); - - boxSizer71->Add(m_panel81, 1, wxALL|wxEXPAND, 5); - - wxBoxSizer* boxSizer82 = new wxBoxSizer(wxVERTICAL); - m_panel81->SetSizer(boxSizer82); - - m_banner76 = new wxBannerWindow(m_panel81, wxID_ANY, wxTOP, wxDefaultPosition, wxSize(-1,-1), wxBORDER_THEME); - m_banner76->SetBitmap(wxNullBitmap); - m_banner76->SetText(_("Plugin is not installed"), _("It seems that the wxCrafter plugin is not installed\nWhat would you like to do?")); - m_banner76->SetGradient(wxSystemSettings::GetColour(wxSYS_COLOUR_INFOBK), wxSystemSettings::GetColour(wxSYS_COLOUR_INFOBK)); - m_banner76->SetForegroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_INFOTEXT)); - - boxSizer82->Add(m_banner76, 0, wxALL|wxEXPAND, 10); - - m_panel75 = new wxPanel(m_panel81, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxTAB_TRAVERSAL); - - boxSizer82->Add(m_panel75, 1, wxALL|wxEXPAND, 5); - - wxBoxSizer* boxSizer79 = new wxBoxSizer(wxVERTICAL); - m_panel75->SetSizer(boxSizer79); - - m_cmdLnkBtnDownload = new wxCommandLinkButton(m_panel75, wxID_ANY, _("Install"), _("Download wxCrafter plugin from codelite's website"), wxDefaultPosition, wxSize(-1,-1), wxBU_LEFT); - m_cmdLnkBtnDownload->SetDefault(); - m_cmdLnkBtnDownload->SetFocus(); - - boxSizer79->Add(m_cmdLnkBtnDownload, 1, wxALL|wxEXPAND, 5); - - m_cmdLnkBtnContinue = new wxCommandLinkButton(m_panel75, wxID_ANY, _("Continue"), _("Ignore the missing plugin and create the project anyway"), wxDefaultPosition, wxSize(-1,-1), wxBU_LEFT); - - boxSizer79->Add(m_cmdLnkBtnContinue, 1, wxALL|wxEXPAND, 5); - - SetName(wxT("wxcDownloadDlgBaseClass")); - SetSizeHints(500,300); - if ( GetSizer() ) { - GetSizer()->Fit(this); - } - CentreOnParent(wxBOTH); - // Connect events - m_cmdLnkBtnDownload->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(wxcDownloadDlgBaseClass::OnDownloadWxCrafterPlugin), NULL, this); - m_cmdLnkBtnContinue->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(wxcDownloadDlgBaseClass::OnIgnoreTheError), NULL, this); - -} - -wxcDownloadDlgBaseClass::~wxcDownloadDlgBaseClass() -{ - m_cmdLnkBtnDownload->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(wxcDownloadDlgBaseClass::OnDownloadWxCrafterPlugin), NULL, this); - m_cmdLnkBtnContinue->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(wxcDownloadDlgBaseClass::OnIgnoreTheError), NULL, this); - -} - AddFunctionsImplBaseDlg::AddFunctionsImplBaseDlg(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style) : wxDialog(parent, id, title, pos, size, style) { @@ -406,10 +340,14 @@ SetName(wxT("AddFunctionsImplBaseDlg")); SetSizeHints(500,300); - if ( GetSizer() ) { + if (GetSizer()) { GetSizer()->Fit(this); } - CentreOnParent(wxBOTH); + if(GetParent()) { + CentreOnParent(wxBOTH); + } else { + CentreOnScreen(wxBOTH); + } // Connect events m_button133->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(AddFunctionsImplBaseDlg::OnCheckAll), NULL, this); m_button135->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(AddFunctionsImplBaseDlg::OnUncheckAll), NULL, this); @@ -495,10 +433,9 @@ SetName(wxT("WelcomePageBase")); SetSizeHints(-1,-1); - if ( GetSizer() ) { + if (GetSizer()) { GetSizer()->Fit(this); } - CentreOnParent(wxBOTH); // Connect events this->Connect(wxEVT_SIZE, wxSizeEventHandler(WelcomePageBase::OnSize), NULL, this); m_cmdLnkBtnNewWorkspace->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(WelcomePageBase::OnNewWorkspace), NULL, this); @@ -546,10 +483,9 @@ SetName(wxT("FileExplorerBase")); SetSizeHints(500,300); - if ( GetSizer() ) { + if (GetSizer()) { GetSizer()->Fit(this); } - CentreOnParent(wxBOTH); // Connect events m_genericDirCtrl->Connect(wxEVT_COMMAND_TREE_ITEM_ACTIVATED, wxTreeEventHandler(FileExplorerBase::OnItemActivated), NULL, this); m_genericDirCtrl->Connect(wxEVT_COMMAND_TREE_ITEM_MENU, wxTreeEventHandler(FileExplorerBase::OnContextMenu), NULL, this); @@ -578,10 +514,22 @@ wxBoxSizer* mainSizer = new wxBoxSizer(wxVERTICAL); this->SetSizer(mainSizer); - m_auibar = new wxAuiToolBar(this, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxAUI_TB_PLAIN_BACKGROUND|wxAUI_TB_DEFAULT_STYLE); + m_simpleBook = new wxSimplebook(this, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxBK_DEFAULT|wxBORDER_NONE); + m_simpleBook->SetName(wxT("m_simpleBook")); + m_simpleBook->SetEffect(wxSHOW_EFFECT_NONE); + + mainSizer->Add(m_simpleBook, 1, wxEXPAND, 5); + + m_panelCxx = new wxPanel(m_simpleBook, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxTAB_TRAVERSAL); + m_simpleBook->AddPage(m_panelCxx, _("C++ Workspace"), true); + + wxBoxSizer* boxSizer505 = new wxBoxSizer(wxVERTICAL); + m_panelCxx->SetSizer(boxSizer505); + + m_auibar = new wxAuiToolBar(m_panelCxx, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxAUI_TB_PLAIN_BACKGROUND|wxAUI_TB_DEFAULT_STYLE); m_auibar->SetToolBitmapSize(wxSize(16,16)); - mainSizer->Add(m_auibar, 0, wxEXPAND, 5); + boxSizer505->Add(m_auibar, 0, wxEXPAND, 5); m_auibar->AddTool(ID_TOOL_COLLAPSE_ALL, _("Collapse All"), wxXmlResource::Get()->LoadBitmap(wxT("collapse")), wxNullBitmap, wxITEM_NORMAL, _("Collapse All"), _("Collapse All"), NULL); @@ -591,21 +539,15 @@ m_auibar->AddStretchSpacer(1); - m_auibar->AddStretchSpacer(1); - m_auibar->AddTool(ID_TOOL_LINK_EDITOR, _("Link Editor"), wxXmlResource::Get()->LoadBitmap(wxT("link_editor")), wxNullBitmap, wxITEM_CHECK, _("Link Editor"), _("Link Editor"), NULL); m_auibar->Realize(); - wxBoxSizer* boxSizer302 = new wxBoxSizer(wxHORIZONTAL); - - mainSizer->Add(boxSizer302, 0, wxEXPAND, 5); - - m_splitter = new wxSplitterWindow(this, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxSP_LIVE_UPDATE|wxSP_3DSASH); + m_splitter = new wxSplitterWindow(m_panelCxx, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxSP_LIVE_UPDATE|wxSP_3DSASH); m_splitter->SetToolTip(_("Resize the configuration bar")); m_splitter->SetSashGravity(0); - m_splitter->SetMinimumPaneSize(10); + m_splitter->SetMinimumPaneSize(100); - boxSizer302->Add(m_splitter, 1, 0, 5); + boxSizer505->Add(m_splitter, 0, wxEXPAND, 2); m_splitterPage308 = new wxPanel(m_splitter, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxTAB_TRAVERSAL); @@ -619,7 +561,7 @@ boxSizer314->Add(m_choiceActiveProject, 0, wxALL|wxEXPAND, 2); m_splitterPage312 = new wxPanel(m_splitter, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxTAB_TRAVERSAL); - m_splitter->SplitVertically(m_splitterPage308, m_splitterPage312, 100); + m_splitter->SplitVertically(m_splitterPage308, m_splitterPage312, 0); wxBoxSizer* boxSizer316 = new wxBoxSizer(wxVERTICAL); m_splitterPage312->SetSizer(boxSizer316); @@ -630,12 +572,15 @@ boxSizer316->Add(m_workspaceConfig, 0, wxALL|wxEXPAND, 2); + m_fileView = new FileViewTree(m_panelCxx, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxTR_MULTIPLE|wxTR_FULL_ROW_HIGHLIGHT|wxTR_NO_LINES|wxTR_HAS_BUTTONS|wxBORDER_NONE); + + boxSizer505->Add(m_fileView, 1, wxALL|wxEXPAND, 2); + SetName(wxT("WorkspaceTabBase")); SetSizeHints(-1,-1); - if ( GetSizer() ) { + if (GetSizer()) { GetSizer()->Fit(this); } - CentreOnParent(wxBOTH); // Connect events this->Connect(ID_TOOL_COLLAPSE_ALL, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler(WorkspaceTabBase::OnCollapseAll), NULL, this); this->Connect(ID_TOOL_COLLAPSE_ALL, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(WorkspaceTabBase::OnCollapseAllUI), NULL, this); @@ -709,10 +654,14 @@ SetName(wxT("EditorFrameBase")); SetSizeHints(-1,-1); - if ( GetSizer() ) { + if (GetSizer()) { GetSizer()->Fit(this); } - CentreOnParent(wxBOTH); + if(GetParent()) { + CentreOnParent(wxBOTH); + } else { + CentreOnScreen(wxBOTH); + } #if wxVERSION_NUMBER >= 2900 if(!wxPersistenceManager::Get().Find(this)) { wxPersistenceManager::Get().RegisterAndRestore(this); @@ -885,10 +834,14 @@ SetName(wxT("NewProjectWizardBase")); SetSizeHints(500,400); - if ( GetSizer() ) { + if (GetSizer()) { GetSizer()->Fit(this); } - CentreOnParent(wxBOTH); + if(GetParent()) { + CentreOnParent(wxBOTH); + } else { + CentreOnScreen(wxBOTH); + } #if wxVERSION_NUMBER >= 2900 if(!wxPersistenceManager::Get().Find(this)) { wxPersistenceManager::Get().RegisterAndRestore(this); @@ -951,20 +904,12 @@ m_checkBoxShowErrors->SetToolTip(_("Display Clang errors as text annotations inside the editor (i.e. as an inline messages)")); m_auibar->AddControl(m_checkBoxShowErrors); - m_auibar->AddStretchSpacer(1); - - m_auibar->AddLabel(wxID_ANY, _("Cache policy:"), -1); - - wxArrayString m_choiceCacheArr; - m_choiceCache = new wxChoice(m_auibar, wxID_ANY, wxDefaultPosition, wxSize(200,-1), m_choiceCacheArr, 0); - m_auibar->AddControl(m_choiceCache); - m_auibar->AddTool(ID_TOOL_CLEAR_ALL, _("Clear Clang Cache"), wxXmlResource::Get()->LoadBitmap(wxT("clean")), wxNullBitmap, wxITEM_NORMAL, _("Clear Clang Cache"), _("Clear Clang Cache"), NULL); m_auibar->AddTool(ID_TOOL_CLEAR_LOG, _("Clear Log"), wxXmlResource::Get()->LoadBitmap(wxT("clear")), wxNullBitmap, wxITEM_NORMAL, _("Clear Log"), _("Clear Log"), NULL); m_auibar->Realize(); - m_stc = new wxStyledTextCtrl(this, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), 0); + m_stc = new wxStyledTextCtrl(this, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxBORDER_STATIC); // Configure the fold margin m_stc->SetMarginType (4, wxSTC_MARGIN_SYMBOL); m_stc->SetMarginMask (4, wxSTC_MASK_FOLDERS); @@ -1004,17 +949,14 @@ SetName(wxT("ClangOutputTabBase")); SetSizeHints(-1,-1); - if ( GetSizer() ) { + if (GetSizer()) { GetSizer()->Fit(this); } - CentreOnParent(wxBOTH); // Connect events m_checkBoxEnableClang->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(ClangOutputTabBase::OnEnableClang), NULL, this); m_checkBoxEnableClang->Connect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(ClangOutputTabBase::OnEnableClangUI), NULL, this); m_checkBoxShowErrors->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(ClangOutputTabBase::OnShowAnnotations), NULL, this); m_checkBoxShowErrors->Connect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(ClangOutputTabBase::OnShowAnnotationsUI), NULL, this); - m_choiceCache->Connect(wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler(ClangOutputTabBase::OnPolicy), NULL, this); - m_choiceCache->Connect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(ClangOutputTabBase::OnPolicyUI), NULL, this); this->Connect(ID_TOOL_CLEAR_ALL, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler(ClangOutputTabBase::OnClearCache), NULL, this); this->Connect(ID_TOOL_CLEAR_ALL, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(ClangOutputTabBase::OnClearCacheUI), NULL, this); this->Connect(ID_TOOL_CLEAR_LOG, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler(ClangOutputTabBase::OnClearText), NULL, this); @@ -1028,8 +970,6 @@ m_checkBoxEnableClang->Disconnect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(ClangOutputTabBase::OnEnableClangUI), NULL, this); m_checkBoxShowErrors->Disconnect(wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(ClangOutputTabBase::OnShowAnnotations), NULL, this); m_checkBoxShowErrors->Disconnect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(ClangOutputTabBase::OnShowAnnotationsUI), NULL, this); - m_choiceCache->Disconnect(wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler(ClangOutputTabBase::OnPolicy), NULL, this); - m_choiceCache->Disconnect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(ClangOutputTabBase::OnPolicyUI), NULL, this); this->Disconnect(ID_TOOL_CLEAR_ALL, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler(ClangOutputTabBase::OnClearCache), NULL, this); this->Disconnect(ID_TOOL_CLEAR_ALL, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(ClangOutputTabBase::OnClearCacheUI), NULL, this); this->Disconnect(ID_TOOL_CLEAR_LOG, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler(ClangOutputTabBase::OnClearText), NULL, this); @@ -1103,7 +1043,7 @@ flexGridSizer483->Add(m_staticText479, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5); - m_textCtrlFolder = new wxTextCtrl(this, wxID_ANY, wxT(""), wxDefaultPosition, wxSize(-1,-1), 0); + m_textCtrlFolder = new wxTextCtrl(this, wxID_ANY, wxT(""), wxDefaultPosition, wxSize(400,-1), 0); m_textCtrlFolder->SetFocus(); #if wxVERSION_NUMBER >= 3000 m_textCtrlFolder->SetHint(_("Type the folder path")); @@ -1126,10 +1066,14 @@ SetName(wxT("OpenFolderDlgBase")); SetSizeHints(-1,-1); - if ( GetSizer() ) { + if (GetSizer()) { GetSizer()->Fit(this); } - CentreOnParent(wxBOTH); + if(GetParent()) { + CentreOnParent(wxBOTH); + } else { + CentreOnScreen(wxBOTH); + } #if wxVERSION_NUMBER >= 2900 if(!wxPersistenceManager::Get().Find(this)) { wxPersistenceManager::Get().RegisterAndRestore(this); @@ -1142,3 +1086,115 @@ OpenFolderDlgBase::~OpenFolderDlgBase() { } + +DefaultWorkspacePageBase::DefaultWorkspacePageBase(wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style) + : wxPanel(parent, id, pos, size, style) +{ + if ( !bBitmapLoaded ) { + // We need to initialise the default bitmap handler + wxXmlResource::Get()->AddHandler(new wxBitmapXmlHandler); + wxC3F25InitBitmapResources(); + bBitmapLoaded = true; + } + + wxBoxSizer* boxSizer515 = new wxBoxSizer(wxVERTICAL); + this->SetSizer(boxSizer515); + + boxSizer515->Add(0, 0, 1, wxALL|wxEXPAND, 5); + + m_staticText523 = new wxStaticText(this, wxID_ANY, _("DRAG AND DROP\nA FOLDER HERE"), wxDefaultPosition, wxSize(-1,-1), wxALIGN_CENTRE); + m_staticText523->SetForegroundColour(wxColour(wxT("rgb(128,128,128)"))); + wxFont m_staticText523Font = wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT); + m_staticText523Font.SetWeight(wxFONTWEIGHT_BOLD); + m_staticText523->SetFont(m_staticText523Font); + + boxSizer515->Add(m_staticText523, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 5); + + m_staticBitmap521 = new wxStaticBitmap(this, wxID_ANY, wxXmlResource::Get()->LoadBitmap(wxT("target-200")), wxDefaultPosition, wxSize(-1,-1), 0 ); + m_staticBitmap521->Hide(); + + boxSizer515->Add(m_staticBitmap521, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 5); + + boxSizer515->Add(0, 0, 1, wxALL|wxEXPAND, 5); + + SetBackgroundColour(wxColour(wxT("rgb(220,220,220)"))); + SetName(wxT("DefaultWorkspacePageBase")); + SetSizeHints(500,300); + if (GetSizer()) { + GetSizer()->Fit(this); + } +} + +DefaultWorkspacePageBase::~DefaultWorkspacePageBase() +{ +} + +SelectDropTargetBaseDlg::SelectDropTargetBaseDlg(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style) + : wxDialog(parent, id, title, pos, size, style) +{ + if ( !bBitmapLoaded ) { + // We need to initialise the default bitmap handler + wxXmlResource::Get()->AddHandler(new wxBitmapXmlHandler); + wxC3F25InitBitmapResources(); + bBitmapLoaded = true; + } + + wxBoxSizer* boxSizer527 = new wxBoxSizer(wxVERTICAL); + this->SetSizer(boxSizer527); + + m_banner = new wxBannerWindow(this, wxID_ANY, wxTOP, wxDefaultPosition, wxSize(-1,-1), 0); + m_banner->SetBitmap(wxNullBitmap); + m_banner->SetText(_("Select View"), _("Choose the view to use for this folder from the list below")); + m_banner->SetGradient(wxSystemSettings::GetColour(wxSYS_COLOUR_ACTIVECAPTION), wxSystemSettings::GetColour(wxSYS_COLOUR_ACTIVECAPTION)); + m_banner->SetForegroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_CAPTIONTEXT)); + + boxSizer527->Add(m_banner, 0, wxALL|wxEXPAND, 5); + + m_dvListCtrl = new wxDataViewListCtrl(this, wxID_ANY, wxDefaultPosition, wxSize(400,200), wxDV_NO_HEADER|wxDV_ROW_LINES|wxDV_SINGLE); + + boxSizer527->Add(m_dvListCtrl, 1, wxALL|wxEXPAND, 5); + + m_dvListCtrl->AppendTextColumn(_("View"), wxDATAVIEW_CELL_INERT, 400, wxALIGN_LEFT); + m_stdBtnSizer543 = new wxStdDialogButtonSizer(); + + boxSizer527->Add(m_stdBtnSizer543, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 5); + + m_button545 = new wxButton(this, wxID_CANCEL, wxT(""), wxDefaultPosition, wxSize(-1, -1), 0); + m_stdBtnSizer543->AddButton(m_button545); + + m_button547 = new wxButton(this, wxID_OK, wxT(""), wxDefaultPosition, wxSize(-1, -1), 0); + m_button547->SetDefault(); + m_stdBtnSizer543->AddButton(m_button547); + m_stdBtnSizer543->Realize(); + + SetName(wxT("SelectDropTargetBaseDlg")); + SetSizeHints(-1,-1); + if (GetSizer()) { + GetSizer()->Fit(this); + } + if(GetParent()) { + CentreOnParent(wxBOTH); + } else { + CentreOnScreen(wxBOTH); + } +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(this)) { + wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); + } +#endif + // Connect events + m_dvListCtrl->Connect(wxEVT_COMMAND_DATAVIEW_ITEM_ACTIVATED, wxDataViewEventHandler(SelectDropTargetBaseDlg::OnSelectionActivated), NULL, this); + m_button547->Connect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(SelectDropTargetBaseDlg::OnOKUI), NULL, this); + m_button547->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SelectDropTargetBaseDlg::OnOK), NULL, this); + +} + +SelectDropTargetBaseDlg::~SelectDropTargetBaseDlg() +{ + m_dvListCtrl->Disconnect(wxEVT_COMMAND_DATAVIEW_ITEM_ACTIVATED, wxDataViewEventHandler(SelectDropTargetBaseDlg::OnSelectionActivated), NULL, this); + m_button547->Disconnect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(SelectDropTargetBaseDlg::OnOKUI), NULL, this); + m_button547->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SelectDropTargetBaseDlg::OnOK), NULL, this); + +} diff -Nru codelite-8.0.1+dfsg2/LiteEditor/wxcrafter.h codelite-9.0+dfsg/LiteEditor/wxcrafter.h --- codelite-8.0.1+dfsg2/LiteEditor/wxcrafter.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/wxcrafter.h 2015-10-11 13:56:07.000000000 +0000 @@ -4,8 +4,8 @@ // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// -#ifndef WXCRAFTER_BASE_CLASSES_H -#define WXCRAFTER_BASE_CLASSES_H +#ifndef CODELITE_LITEEDITOR_WXCRAFTER_BASE_CLASSES_H +#define CODELITE_LITEEDITOR_WXCRAFTER_BASE_CLASSES_H #include #include @@ -27,14 +27,17 @@ #include #include #include -#include #include #include #include "addfunctionsmodel.h" #include #include #include +#include #include +#include +#include +#include "fileview.h" #include #include #include @@ -119,30 +122,6 @@ }; -class wxcDownloadDlgBaseClass : public wxDialog -{ -protected: - wxPanel* m_panel81; - wxBannerWindow* m_banner76; - wxPanel* m_panel75; - wxCommandLinkButton* m_cmdLnkBtnDownload; - wxCommandLinkButton* m_cmdLnkBtnContinue; - -protected: - virtual void OnDownloadWxCrafterPlugin(wxCommandEvent& event) { event.Skip(); } - virtual void OnIgnoreTheError(wxCommandEvent& event) { event.Skip(); } - -public: - wxBannerWindow* GetBanner76() { return m_banner76; } - wxCommandLinkButton* GetCmdLnkBtnDownload() { return m_cmdLnkBtnDownload; } - wxCommandLinkButton* GetCmdLnkBtnContinue() { return m_cmdLnkBtnContinue; } - wxPanel* GetPanel75() { return m_panel75; } - wxPanel* GetPanel81() { return m_panel81; } - wxcDownloadDlgBaseClass(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Plugin is missing"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(500,300), long style = wxDEFAULT_DIALOG_STYLE); - virtual ~wxcDownloadDlgBaseClass(); -}; - - class AddFunctionsImplBaseDlg : public wxDialog { protected: @@ -240,12 +219,15 @@ ID_TOOL_LINK_EDITOR = 8004, }; protected: + wxSimplebook* m_simpleBook; + wxPanel* m_panelCxx; wxAuiToolBar* m_auibar; wxSplitterWindow* m_splitter; wxPanel* m_splitterPage308; wxChoice* m_choiceActiveProject; wxPanel* m_splitterPage312; wxChoice* m_workspaceConfig; + FileViewTree* m_fileView; protected: virtual void OnCollapseAll(wxCommandEvent& event) { event.Skip(); } @@ -268,6 +250,9 @@ wxChoice* GetWorkspaceConfig() { return m_workspaceConfig; } wxPanel* GetSplitterPage312() { return m_splitterPage312; } wxSplitterWindow* GetSplitter() { return m_splitter; } + FileViewTree* GetFileView() { return m_fileView; } + wxPanel* GetPanelCxx() { return m_panelCxx; } + wxSimplebook* GetSimpleBook() { return m_simpleBook; } WorkspaceTabBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxTAB_TRAVERSAL); virtual ~WorkspaceTabBase(); }; @@ -365,7 +350,6 @@ wxAuiToolBar* m_auibar; wxCheckBox* m_checkBoxEnableClang; wxCheckBox* m_checkBoxShowErrors; - wxChoice* m_choiceCache; wxStyledTextCtrl* m_stc; protected: @@ -373,8 +357,6 @@ virtual void OnEnableClangUI(wxUpdateUIEvent& event) { event.Skip(); } virtual void OnShowAnnotations(wxCommandEvent& event) { event.Skip(); } virtual void OnShowAnnotationsUI(wxUpdateUIEvent& event) { event.Skip(); } - virtual void OnPolicy(wxCommandEvent& event) { event.Skip(); } - virtual void OnPolicyUI(wxUpdateUIEvent& event) { event.Skip(); } virtual void OnClearCache(wxCommandEvent& event) { event.Skip(); } virtual void OnClearCacheUI(wxUpdateUIEvent& event) { event.Skip(); } virtual void OnClearText(wxCommandEvent& event) { event.Skip(); } @@ -383,7 +365,6 @@ public: wxCheckBox* GetCheckBoxEnableClang() { return m_checkBoxEnableClang; } wxCheckBox* GetCheckBoxShowErrors() { return m_checkBoxShowErrors; } - wxChoice* GetChoiceCache() { return m_choiceCache; } wxAuiToolBar* GetAuibar() { return m_auibar; } wxStyledTextCtrl* GetStc() { return m_stc; } ClangOutputTabBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxTAB_TRAVERSAL); @@ -428,4 +409,42 @@ virtual ~OpenFolderDlgBase(); }; + +class DefaultWorkspacePageBase : public wxPanel +{ +protected: + wxStaticText* m_staticText523; + wxStaticBitmap* m_staticBitmap521; + +protected: + +public: + wxStaticText* GetStaticText523() { return m_staticText523; } + wxStaticBitmap* GetStaticBitmap521() { return m_staticBitmap521; } + DefaultWorkspacePageBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(500,300), long style = wxTAB_TRAVERSAL|wxBORDER_NONE); + virtual ~DefaultWorkspacePageBase(); +}; + + +class SelectDropTargetBaseDlg : public wxDialog +{ +protected: + wxBannerWindow* m_banner; + wxDataViewListCtrl* m_dvListCtrl; + wxStdDialogButtonSizer* m_stdBtnSizer543; + wxButton* m_button545; + wxButton* m_button547; + +protected: + virtual void OnSelectionActivated(wxDataViewEvent& event) { event.Skip(); } + virtual void OnOKUI(wxUpdateUIEvent& event) { event.Skip(); } + virtual void OnOK(wxCommandEvent& event) { event.Skip(); } + +public: + wxBannerWindow* GetBanner() { return m_banner; } + wxDataViewListCtrl* GetDvListCtrl() { return m_dvListCtrl; } + SelectDropTargetBaseDlg(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Select View"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxDEFAULT_DIALOG_STYLE|wxSTAY_ON_TOP); + virtual ~SelectDropTargetBaseDlg(); +}; + #endif diff -Nru codelite-8.0.1+dfsg2/LiteEditor/wxcrafter_liteeditor_bitmaps.cpp codelite-9.0+dfsg/LiteEditor/wxcrafter_liteeditor_bitmaps.cpp --- codelite-8.0.1+dfsg2/LiteEditor/wxcrafter_liteeditor_bitmaps.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/wxcrafter_liteeditor_bitmaps.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -2500,8 +2500,303 @@ 233,58,198,209,212,141,27,0,0,34,218,11,7,37,125,139,36,0,0,0,0,73,69,78, 68,174,66,96,130}; -static size_t xml_res_size_32 = 754; +static size_t xml_res_size_32 = 5989; static unsigned char xml_res_file_32[] = { +137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,150,0,0,0,150,8,6,0, +0,0,60,1,113,226,0,0,0,6,98,75,71,68,0,255,0,255,0,255,160,189,167,147, +0,0,0,9,112,72,89,115,0,0,13,215,0,0,13,215,1,66,40,155,120,0,0,0,7,116, +73,77,69,7,223,5,11,14,52,42,90,82,27,0,0,0,22,242,73,68,65,84,120,218, +237,93,123,124,84,213,181,254,214,158,57,19,32,9,45,130,183,87,171,182, +120,91,73,52,138,138,60,234,147,68,16,44,72,253,249,170,180,136,82,21,155, +228,156,61,193,99,5,189,40,34,122,43,234,92,50,231,76,18,69,43,42,189,69, +180,247,86,33,90,75,53,60,20,48,241,117,149,167,183,122,107,189,182,214, +22,170,146,68,200,156,153,179,238,31,25,169,21,132,36,236,115,102,38,57, +223,239,151,191,146,172,253,250,206,90,107,175,189,247,90,132,62,132,202, +202,202,130,112,56,60,140,153,74,132,160,18,102,46,5,48,12,192,99,182,109, +221,173,162,13,195,144,55,1,184,4,192,91,0,182,2,244,22,17,111,119,28,231, +127,26,26,26,58,250,202,92,135,123,243,224,116,93,31,0,136,51,133,160,10, +102,62,23,192,41,0,66,68,0,51,127,254,79,87,40,108,118,0,128,83,51,63,0, +24,204,64,56,172,165,117,93,190,74,132,231,137,208,164,105,218,250,88,44, +182,59,32,86,158,160,186,58,58,60,20,194,247,152,185,2,192,24,0,5,95,32, +81,182,16,34,194,40,0,163,152,113,83,50,233,236,49,140,232,70,128,155,136, +240,148,101,89,155,2,98,229,24,164,148,35,92,23,211,137,112,33,192,199, +228,6,143,14,138,126,0,151,3,40,103,198,2,41,229,31,92,23,79,17,241,195, +182,109,191,30,16,43,75,136,70,163,131,153,121,186,235,226,114,102,140, +34,202,239,133,96,198,55,136,32,1,50,12,67,54,19,209,178,84,202,89,90,95, +95,255,81,64,44,95,252,166,154,145,68,238,79,92,151,191,7,32,146,239,132, +218,15,8,192,24,102,30,19,10,133,239,145,82,46,79,165,232,238,250,250,248, +230,128,88,138,81,86,86,70,21,21,21,147,153,49,27,112,207,232,67,27,217, +8,51,174,8,133,248,10,195,144,235,137,176,176,169,169,169,113,243,230,205, +57,111,236,69,238,107,40,121,94,121,121,69,11,51,86,0,232,75,164,250,34, +206,96,198,138,242,242,138,141,186,30,173,8,52,86,15,97,24,198,217,0,45, +204,236,236,2,252,29,163,137,248,121,41,229,70,0,179,45,203,122,33,32,86, +215,8,117,18,64,49,0,227,2,14,29,208,217,255,14,128,117,134,33,27,93,55, +116,125,93,221,162,223,5,196,218,15,76,211,140,36,147,206,92,0,179,1,68, +2,234,116,25,147,133,72,143,55,12,121,231,144,33,131,239,154,55,111,158, +19,248,88,25,72,41,199,38,147,206,54,0,183,4,164,234,17,10,0,220,190,99, +199,206,255,150,82,142,238,243,26,203,52,205,162,100,210,137,49,227,218, +204,54,59,192,161,225,120,102,108,48,12,249,96,71,199,158,235,23,47,94, +220,222,231,52,150,97,24,167,36,147,78,51,128,153,1,169,148,175,233,204, +130,130,126,27,165,148,39,246,41,98,25,134,140,2,244,18,128,227,3,30,120, +134,19,153,241,178,97,68,175,237,245,166,80,215,245,1,68,226,126,0,211, +130,117,247,203,247,226,197,82,202,179,52,77,187,206,207,219,20,194,71, +82,13,37,18,235,3,82,101,37,52,113,69,50,233,188,40,165,252,102,175,34, +86,231,249,158,216,8,224,228,96,153,179,134,83,153,177,222,48,140,83,122, +5,177,12,35,122,17,145,251,2,128,175,5,107,155,117,28,9,208,11,134,17,157, +152,215,196,50,140,232,165,0,255,162,211,214,231,12,92,128,222,36,194,195, +204,144,128,56,179,163,99,207,61,170,132,71,34,218,66,102,58,139,136,162, +0,30,33,194,230,206,54,115,6,133,0,255,74,215,229,133,94,54,226,217,54, +95,215,229,13,68,184,59,71,66,9,31,0,88,73,132,198,61,123,246,52,249,29, +223,169,170,170,26,20,10,105,227,0,30,7,96,10,128,127,206,5,215,139,8,166, +101,89,139,242,134,88,134,33,111,4,176,48,203,19,231,0,212,200,140,135, +10,10,194,171,98,177,88,50,23,212,69,230,65,199,4,102,186,134,8,231,35, +187,65,106,207,200,69,30,144,106,38,128,251,179,56,89,111,3,180,24,112, +31,181,109,251,195,92,118,120,12,195,56,18,160,43,1,92,11,96,104,22,201, +117,181,101,89,75,114,150,88,186,46,175,34,194,67,89,50,127,27,136,112, +87,190,92,132,251,60,234,235,235,197,246,237,219,39,49,227,102,100,231, +154,144,203,140,169,137,132,245,120,206,17,75,215,163,21,68,252,140,223, +142,58,17,54,50,211,237,182,29,127,54,223,183,108,101,101,101,52,118,236, +185,147,136,248,86,0,35,125,110,126,55,192,19,109,219,94,151,51,196,210, +245,232,153,68,188,10,64,127,31,41,181,133,136,107,44,203,122,174,55,198, +5,164,148,23,48,99,17,128,127,241,177,217,79,93,151,198,213,213,197,55, +102,157,88,25,63,225,85,31,119,58,109,204,184,163,189,125,96,124,201,146, +59,246,160,23,35,115,4,102,2,184,201,199,143,246,125,128,79,59,84,255,244, +144,136,101,154,102,255,100,210,89,143,206,23,198,126,152,189,231,93,215, +253,81,34,145,120,15,125,8,82,202,111,186,46,150,16,97,172,79,77,190,20, +137,104,231,28,202,78,58,116,40,173,143,24,49,170,129,8,147,124,24,104, +59,0,99,245,234,166,154,198,198,198,79,208,199,208,220,220,252,241,167, +159,182,63,58,116,232,208,143,0,148,251,16,162,56,42,157,118,15,107,105, +105,126,198,119,141,37,165,156,206,140,71,124,152,215,119,92,151,46,174, +171,139,191,129,0,208,245,154,145,66,184,79,48,227,27,62,216,136,169,182, +29,127,204,55,98,117,30,100,210,122,31,236,254,211,233,116,234,138,124, +125,13,236,161,239,53,132,72,44,131,247,15,78,218,211,105,26,211,147,199, +178,221,62,43,172,172,172,44,0,196,82,143,73,197,0,230,151,150,150,76,9, +72,181,47,18,137,196,142,72,68,155,72,68,11,51,115,229,21,10,67,33,94,58, +127,254,124,173,187,255,216,109,91,29,14,107,11,0,62,193,195,193,236,201, +4,235,158,12,40,244,229,136,197,98,105,0,115,12,35,186,9,224,37,0,52,143, +154,58,121,199,142,157,183,162,243,161,139,55,166,208,48,106,206,0,220, +117,240,238,86,68,43,51,93,152,72,196,155,2,234,116,199,52,70,39,19,241, +227,30,90,145,20,17,198,88,150,245,170,114,83,104,154,102,4,112,235,60, +36,213,46,102,186,32,32,85,79,76,99,188,145,8,83,50,187,103,47,16,102,198, +125,51,102,204,8,43,39,86,50,233,220,4,96,184,119,230,143,166,36,18,241, +181,1,77,122,6,203,178,158,99,198,69,0,188,186,197,113,90,97,97,177,169, +212,20,26,134,241,45,128,182,122,100,199,59,136,48,185,183,30,205,248,13, +195,48,166,0,244,159,240,38,214,181,135,217,29,214,149,0,117,23,53,22,45, +240,136,84,46,51,102,4,164,82,7,219,182,87,48,227,71,30,237,22,251,17,137, +219,149,104,172,234,234,232,112,33,248,53,143,124,171,5,182,109,221,154, +173,69,48,77,243,43,29,29,206,4,33,240,137,101,89,191,81,227,72,203,243, +133,64,161,227,56,171,26,26,26,118,101,79,115,201,123,1,152,30,136,78,19, +225,36,203,178,182,30,82,184,65,8,142,123,65,42,102,44,95,179,166,105,94, +22,200,212,223,113,156,41,204,152,150,76,58,19,136,160,49,99,62,0,37,196, +34,194,233,204,152,27,14,107,73,195,136,62,75,196,75,91,91,7,54,250,125, +96,94,90,90,114,227,182,109,219,135,1,152,172,88,116,136,25,247,2,248,110, +143,77,161,148,114,2,128,115,212,15,155,222,76,38,247,92,237,231,133,188, +154,154,154,163,116,93,198,147,73,231,67,102,60,150,153,112,205,195,38, +35,0,79,97,198,19,69,69,187,62,212,117,25,239,188,9,226,15,170,170,170, +92,128,127,0,96,171,7,226,207,151,82,142,235,49,177,92,23,183,123,208,169, +79,1,247,50,191,30,52,68,163,209,193,134,33,23,166,211,238,246,206,228, +177,40,206,130,101,26,152,73,92,187,93,215,229,29,85,85,85,131,124,242, +183,90,1,158,10,64,121,225,2,102,220,214,35,98,117,222,8,197,40,229,186, +138,112,189,109,219,111,249,96,242,66,186,46,107,92,151,127,15,224,70,0, +133,57,224,91,23,19,225,95,67,161,240,255,74,25,173,174,175,175,23,62,144, +235,77,128,110,246,64,244,25,82,202,179,186,77,44,34,158,229,65,103,126, +221,212,212,180,216,235,201,148,82,158,152,76,58,45,68,88,148,37,13,117, +48,124,149,153,19,219,182,109,95,175,235,179,74,188,247,183,134,213,2,80, +30,35,100,166,89,221,34,86,117,245,172,111,31,204,57,235,1,90,137,80,229, +165,95,85,86,86,70,82,70,171,153,209,130,189,37,71,114,26,99,136,210,175, +72,41,175,241,193,223,186,14,128,226,164,32,60,229,203,242,65,136,253,107, +43,215,84,189,19,100,198,173,150,101,189,235,161,150,250,106,121,121,197, +74,102,78,0,232,135,252,65,33,51,30,48,12,185,124,230,204,153,158,153,107, +219,182,223,34,162,59,85,239,16,1,92,223,37,98,117,222,245,225,233,138, +59,240,214,225,135,15,174,243,144,84,71,51,99,29,224,203,109,86,175,112, +89,65,65,191,181,149,149,166,103,111,7,90,91,139,99,0,222,85,172,48,174, +142,70,163,131,15,74,44,34,241,67,40,63,37,167,155,189,74,186,170,235,250, +9,204,104,6,112,34,242,31,35,52,205,121,169,243,8,77,61,50,177,180,91,20, +139,29,224,186,124,89,87,76,225,229,138,73,181,206,182,227,255,229,141, +239,48,235,88,162,208,111,0,28,129,94,130,206,43,199,244,91,41,229,209, +94,200,95,189,186,233,63,50,62,168,74,76,61,32,177,162,209,232,113,80,252, +18,151,136,231,122,164,169,134,134,66,233,181,0,127,29,189,15,223,100,198, +139,186,174,31,163,90,112,102,243,164,90,107,157,249,69,39,254,31,136,229, +186,252,125,197,13,190,224,69,229,4,211,52,139,136,66,79,2,56,10,189,23, +199,0,226,137,25,51,230,42,223,136,36,18,214,42,0,47,171,212,31,174,139, +239,31,200,20,254,64,177,90,255,169,23,33,5,199,113,30,6,248,36,244,114, +16,97,84,81,209,174,7,60,146,126,151,226,190,78,221,47,177,170,170,162, +101,0,84,6,235,54,173,89,211,164,60,159,66,121,121,197,79,152,113,49,250, +14,166,73,25,173,86,45,52,18,9,63,5,64,101,153,148,225,134,97,12,219,135, +88,66,240,20,197,125,95,172,58,24,42,165,60,25,192,2,244,49,48,243,189, +153,15,95,25,50,143,49,30,84,219,83,49,101,31,98,17,225,92,133,45,236,142, +68,180,165,138,253,170,16,51,22,163,111,150,68,233,23,10,161,174,172,172, +76,105,122,40,33,232,97,0,202,194,64,68,60,238,31,136,101,154,102,127,0, +167,43,236,243,147,177,88,76,233,83,248,142,14,199,128,255,169,125,114, +73,111,157,93,94,94,161,180,24,64,60,30,255,11,17,158,86,232,83,159,217, +249,238,52,67,44,199,113,70,67,225,49,8,51,84,107,171,195,136,48,15,1,238, +48,12,67,233,161,58,51,169,92,171,1,225,112,193,105,123,137,197,172,212, +12,126,212,222,222,250,91,149,131,79,38,157,91,0,124,53,224,21,14,39,18, +115,84,10,76,165,146,79,3,104,83,39,209,29,255,121,31,171,66,221,23,128, +85,75,150,44,73,169,146,87,83,83,115,4,128,31,7,156,218,235,200,27,166, +105,30,166,74,94,67,67,67,7,64,10,223,114,82,57,0,136,204,35,196,17,10, +199,174,52,196,144,78,187,179,144,95,183,21,188,70,113,50,233,72,197,116, +85,184,102,60,210,52,205,144,40,46,46,62,14,234,242,134,166,1,183,81,85, +23,51,215,72,174,9,184,180,15,42,63,115,146,85,32,20,18,43,161,238,185, +88,255,100,50,249,45,1,165,165,221,104,75,34,145,216,161,74,90,65,65,255, +75,0,12,10,120,180,15,254,41,20,210,190,167,74,88,109,109,237,251,0,222, +86,23,118,160,227,5,51,20,6,222,184,89,229,236,17,241,21,1,135,190,108, +110,48,93,177,188,151,20,74,59,81,0,164,48,37,17,41,59,216,52,77,243,48, +102,223,114,110,230,35,198,171,12,61,184,174,186,67,105,102,62,65,48,171, +203,117,69,196,202,58,151,76,58,223,197,33,230,72,237,229,136,16,209,4, +85,194,132,80,122,71,171,44,76,68,15,50,179,146,135,155,67,134,12,222,162, +240,11,250,128,8,115,252,89,35,90,175,208,164,172,114,93,149,113,161,3, +182,165,204,159,109,109,29,248,70,97,225,174,57,138,72,154,12,190,251,0, +1,2,4,8,16,32,64,128,0,1,2,4,8,16,32,64,128,0,1,2,4,8,16,32,64,128,0,1, +2,4,8,16,32,64,128,0,1,2,4,8,16,32,64,128,190,6,50,12,185,128,136,148,92, +77,30,60,248,176,91,84,37,177,53,12,99,10,145,56,221,159,105,224,231,84, +149,182,211,117,121,158,16,84,225,83,191,215,89,150,245,140,10,73,51,102, +204,237,87,92,220,122,155,146,94,49,39,195,68,184,144,153,149,60,1,219, +177,99,199,47,1,188,162,132,241,68,253,153,121,182,79,31,216,30,0,207,169, +233,55,206,242,171,223,204,180,81,149,172,226,226,93,167,50,67,85,191,55, +9,215,197,22,117,67,37,101,105,134,52,77,251,45,128,116,96,84,190,20,73, +34,87,89,206,5,215,85,90,55,105,179,32,82,71,44,102,117,196,138,197,98, +127,99,86,83,67,176,87,250,48,132,149,157,213,189,148,201,27,165,78,22, +109,17,68,216,166,78,32,159,166,114,242,132,192,146,128,66,95,246,17,11, +213,115,163,112,237,120,171,96,230,77,10,59,87,86,93,93,173,44,239,122, +107,235,192,70,0,127,13,104,180,207,39,252,199,33,67,6,173,82,37,77,215, +245,161,0,190,173,142,244,188,73,180,181,181,189,3,117,133,18,41,20,10, +157,167,170,131,153,18,29,117,1,145,246,65,92,101,9,25,34,49,81,97,223, +118,71,34,145,223,139,76,146,180,151,212,177,149,46,80,57,131,169,148,118, +127,102,215,22,32,163,200,35,145,240,207,20,203,188,64,29,73,177,33,22, +139,165,63,203,232,183,90,161,125,29,175,50,119,83,67,67,236,207,0,22,5, +124,218,139,187,99,177,216,223,20,154,193,1,0,202,21,154,233,213,64,38, +85,36,145,210,234,155,69,154,166,169,204,105,138,72,68,187,23,192,199,1, +167,240,87,128,227,106,119,151,161,137,80,154,216,152,214,236,37,150,166, +105,27,0,180,171,19,142,153,42,7,159,249,66,103,7,188,162,89,42,67,12,153, +213,82,185,86,187,218,218,62,105,222,75,172,88,44,150,36,194,122,133,13, +76,202,36,165,85,169,181,126,6,181,133,133,242,141,84,235,86,175,126,254, +23,42,37,86,86,214,124,3,192,120,133,34,95,248,44,177,241,222,202,20,174, +171,212,28,134,211,105,87,105,193,167,88,44,150,102,14,77,7,240,105,31, +100,213,46,230,244,85,170,75,200,104,26,79,131,210,18,205,180,151,67,159, +35,22,173,80,60,25,51,235,235,235,149,214,149,78,36,22,109,7,112,67,31, +212,86,50,145,72,252,94,165,196,206,108,217,124,173,218,126,186,43,246, +33,86,125,125,124,51,128,55,20,182,114,220,182,109,111,93,166,122,138,87, +175,110,186,15,192,227,125,134,82,132,135,109,59,254,136,106,185,133,133, +197,211,58,171,185,42,195,203,182,109,191,181,15,177,50,78,247,50,197,142, +225,28,213,133,133,54,111,222,204,145,136,118,21,128,230,62,192,171,181, +154,166,93,167,90,104,125,125,189,32,82,187,25,34,250,71,238,124,193,84, +185,203,160,46,223,55,0,12,47,47,63,119,130,234,137,137,197,98,187,35,17, +109,130,98,13,155,107,120,13,224,11,98,177,152,242,180,139,91,183,110,159, +2,181,181,41,211,66,136,199,190,148,88,137,68,226,61,245,154,128,111,246, +98,214,99,177,216,39,68,184,16,192,251,189,144,84,239,186,110,122,138,250, +208,66,103,133,90,0,55,41,22,187,161,182,182,246,131,3,104,44,0,192,99, +138,27,61,75,215,165,39,21,81,45,203,122,55,20,18,163,0,122,179,23,145, +234,117,128,199,212,213,213,253,209,11,225,229,229,21,63,84,121,69,38,131, +125,92,168,125,136,149,74,57,75,0,236,82,108,127,107,51,71,7,202,81,91, +91,251,129,16,24,223,75,124,174,23,34,17,109,156,109,219,31,122,33,188, +178,178,114,32,128,123,21,139,253,24,224,159,31,148,88,13,13,13,187,0,229, +247,160,142,18,34,52,203,171,213,136,199,227,127,105,107,107,61,19,121, +124,19,130,136,22,70,34,90,185,202,115,192,47,34,20,210,110,4,240,53,197, +98,31,216,159,201,222,111,156,201,117,67,117,0,92,165,158,22,243,156,170, +170,89,199,122,53,105,75,150,44,73,173,94,221,100,16,145,142,252,186,13, +209,78,132,107,45,43,62,39,83,167,217,19,68,163,209,82,34,92,175,88,108, +154,8,245,251,251,197,126,137,85,87,183,232,119,68,248,149,226,78,20,133, +66,233,199,231,207,159,175,121,53,121,155,55,111,102,203,138,215,101,124, +136,215,242,128,84,47,49,135,78,179,44,235,65,47,27,49,77,51,226,186,188, +12,64,127,197,162,31,183,44,235,221,46,19,43,131,127,247,96,140,35,118, +236,216,233,249,97,178,101,89,155,34,17,109,20,51,102,1,104,205,65,66,125, +76,68,122,105,105,201,25,153,211,4,79,225,56,169,121,0,134,171,55,223,136, +125,217,239,196,1,22,103,3,179,210,250,42,159,97,174,148,242,100,175,39, +51,22,139,165,19,9,171,86,8,26,10,224,110,40,188,189,113,8,104,101,198, +157,233,116,234,88,203,138,215,85,85,85,185,94,55,40,165,28,205,204,55, +122,32,122,189,101,89,175,118,155,88,0,32,132,39,231,114,5,204,88,81,89, +105,30,238,199,74,198,227,241,157,182,109,205,6,248,8,0,53,200,78,220,235, +255,0,212,68,34,218,145,137,132,53,183,190,190,254,35,63,26,173,174,174, +254,58,51,158,2,16,86,44,154,15,230,175,137,131,152,148,23,0,60,229,193, +152,143,14,135,83,203,51,101,131,125,129,109,219,173,182,109,197,35,17, +237,56,34,92,14,160,17,128,227,97,147,73,128,86,16,225,210,182,182,129, +199,217,182,21,143,197,98,109,126,141,215,52,205,136,16,161,95,122,176, +11,4,128,95,90,150,117,64,107,118,208,133,77,167,105,110,40,196,147,161, +188,196,27,151,23,22,22,223,6,96,174,159,170,35,22,139,237,6,176,28,192, +114,211,52,191,210,209,225,76,16,2,159,168,219,253,98,131,16,184,212,113, +156,85,153,208,77,86,208,209,145,186,139,8,99,188,112,217,0,190,229,160, +254,87,87,36,25,134,108,128,119,149,228,107,108,219,138,35,128,50,232,186, +188,129,8,247,120,229,93,216,182,85,115,176,63,234,226,125,41,94,0,239, +46,216,221,171,235,242,194,128,14,202,156,245,239,19,97,161,71,226,119, +9,65,255,214,149,63,236,146,121,107,105,105,105,29,51,102,76,27,128,243, +61,232,172,32,194,197,163,71,143,121,185,165,165,249,237,128,26,61,135, +97,68,47,66,231,89,175,39,149,105,137,16,181,44,107,93,151,22,181,171,66, +53,45,92,7,239,206,227,52,128,151,235,122,244,156,128,30,61,214,84,227, +0,126,20,158,149,59,166,117,37,37,37,15,116,89,91,116,195,233,77,11,65, +211,1,236,246,104,110,6,18,241,42,93,151,151,5,52,233,54,169,102,48,227, +89,0,133,30,53,209,74,196,87,118,39,238,214,45,118,55,55,55,239,28,53,106, +116,7,17,206,243,104,0,33,34,92,52,122,244,232,63,183,180,52,191,26,80, +166,75,230,239,122,116,30,190,11,15,155,185,193,182,173,110,229,138,232, +118,28,169,189,189,181,182,168,168,248,114,0,35,188,34,23,128,251,12,67, +30,89,90,90,114,187,31,209,233,124,132,105,154,33,199,73,221,153,137,170, +147,87,237,16,97,163,166,105,13,221,254,191,158,109,103,103,149,16,165, +91,0,20,123,60,127,79,167,211,169,43,252,138,84,231,79,56,65,31,66,36,150, +1,24,231,113,83,159,0,124,154,109,219,221,222,84,245,72,125,118,30,156, +210,213,80,123,63,126,127,152,20,10,133,95,174,174,142,14,15,232,244,25, +169,106,70,10,33,94,241,129,84,204,76,87,246,132,84,61,214,88,127,31,164, +252,41,17,230,248,48,159,41,34,138,105,90,248,86,47,30,23,228,3,42,43,43, +11,66,33,237,110,34,232,30,251,83,159,97,190,109,91,183,245,244,159,15, +169,131,199,31,95,242,175,68,88,229,195,32,195,204,60,59,153,116,94,212, +245,89,37,125,141,84,134,97,156,162,105,218,43,68,144,62,145,234,215,165, +165,37,183,31,146,111,118,168,61,168,169,169,57,34,157,118,95,5,112,132, +79,243,220,198,140,59,218,219,7,198,51,137,217,122,179,47,53,128,72,152, +232,124,85,211,223,167,102,223,23,130,70,196,227,241,191,100,149,88,0,80, +85,21,45,11,133,120,29,128,65,62,206,251,159,0,204,143,68,180,159,121,121, +165,55,91,59,190,100,210,209,1,220,2,96,176,143,77,239,36,194,217,150,101, +109,61,228,221,164,186,175,43,90,65,196,207,0,40,240,115,17,136,176,145, +153,110,183,237,248,179,249,78,168,178,178,50,26,59,246,220,73,68,124,43, +128,145,62,55,191,27,224,137,182,109,175,83,178,46,106,85,119,116,50,17, +255,10,234,47,150,117,5,239,0,176,83,41,231,190,134,134,134,142,124,34, +212,140,25,115,251,21,21,237,186,14,128,4,112,108,22,186,208,225,186,152, +84,87,103,61,175,236,131,87,239,104,202,153,0,238,207,226,58,189,13,208, +98,192,125,212,171,247,121,10,157,242,35,1,186,18,192,181,0,134,102,169, +27,76,132,171,45,203,82,250,228,143,188,153,48,121,35,224,217,213,141,174, +194,1,168,145,25,15,21,20,132,87,229,74,152,162,178,178,178,32,28,14,79, +96,166,107,136,112,126,150,180,251,231,73,101,90,150,165,60,199,43,121, +247,53,202,105,0,30,2,160,229,192,122,166,0,52,51,99,165,16,120,174,169, +169,233,53,213,73,204,14,228,55,85,84,84,156,234,186,24,71,132,11,0,140, +206,50,153,246,126,120,68,184,202,178,172,95,120,33,156,188,236,185,97, +68,47,5,120,169,223,14,125,23,240,30,64,45,204,220,76,196,45,145,72,228, +53,85,247,209,77,211,44,234,232,72,141,32,226,209,68,24,197,140,81,0,142, +206,177,241,239,97,198,212,68,194,122,210,171,6,60,13,182,217,118,252,9, +128,207,3,212,221,41,87,132,99,0,190,164,243,250,46,173,77,38,29,101,175, +145,146,73,103,54,17,175,1,176,144,25,23,231,32,169,118,48,139,179,189, +36,149,231,196,234,36,151,189,142,89,140,7,144,211,142,116,31,193,159,0, +62,47,145,168,245,60,73,176,31,199,3,72,36,106,95,102,118,203,160,168,38, +96,128,30,248,60,132,85,66,208,73,182,109,191,238,71,123,194,175,129,37, +18,137,29,145,136,54,145,136,22,194,251,91,17,1,254,14,23,192,124,77,211, +190,27,143,199,119,250,213,168,175,187,147,204,209,203,28,93,143,110,36, +226,71,1,12,12,214,221,83,124,76,132,233,150,101,173,244,187,97,145,141, +209,38,18,241,167,0,30,11,208,150,96,237,61,51,126,111,102,206,253,86,102, +163,117,145,173,97,219,182,253,122,91,219,174,147,209,153,79,161,61,32, +130,50,180,1,184,174,180,116,216,41,150,101,109,202,86,39,178,26,168,203, +148,199,136,75,41,27,153,233,1,128,203,3,94,28,18,158,99,118,103,170,46, +54,144,87,26,235,243,176,44,235,157,72,36,60,30,157,85,39,218,2,126,116, +27,173,68,20,45,45,45,153,144,11,164,202,186,198,218,143,99,31,51,77,115, +137,227,164,110,100,230,26,228,94,196,62,215,176,135,136,226,169,148,179, +48,215,30,156,132,115,109,166,50,201,93,231,84,86,214,52,104,154,187,128, +25,211,224,241,209,83,30,130,137,240,115,215,117,231,218,118,226,189,92, +236,96,56,87,103,174,161,161,246,15,0,166,87,87,203,71,132,192,93,80,90, +101,61,175,209,76,132,57,150,101,173,201,229,78,134,115,125,22,51,151,207, +70,234,122,205,169,66,184,53,204,152,154,15,253,86,12,135,8,143,49,243, +34,191,34,231,189,158,88,159,33,145,168,125,13,192,116,41,229,173,0,253, +152,153,103,194,223,59,246,254,219,59,198,223,136,96,167,82,218,125,153, +218,216,121,131,188,251,242,51,233,159,231,68,163,209,123,152,121,186,235, +226,114,15,74,120,100,149,79,157,230,142,150,165,211,206,210,124,125,5, +158,183,38,37,115,238,181,8,192,162,234,234,234,175,11,17,186,4,192,165, +0,78,207,67,103,159,1,108,0,240,4,192,79,216,182,253,167,124,255,58,122, +133,175,146,41,104,20,7,16,175,174,142,14,23,130,167,16,225,28,102,124, +7,192,128,28,237,118,59,128,13,68,180,22,224,21,217,140,146,7,196,234,18, +201,226,111,160,179,142,225,2,211,52,35,29,29,169,81,68,60,150,8,99,153, +49,26,64,81,150,186,214,10,224,37,102,172,33,18,107,135,12,25,212,50,111, +222,60,7,189,20,189,122,119,149,121,64,241,98,230,231,14,0,168,170,170, +26,36,132,118,2,17,143,0,112,60,128,19,152,213,37,147,35,162,61,204,188, +30,192,22,0,91,153,233,85,215,117,182,244,181,140,57,255,15,192,243,159, +91,235,48,202,170,0,0,0,0,73,69,78,68,174,66,96,130}; + +static size_t xml_res_size_33 = 754; +static unsigned char xml_res_file_33[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, 0,31,243,255,97,0,0,0,1,115,82,71,66,0,174,206,28,233,0,0,0,6,98,75,71, 68,0,255,0,255,0,255,160,189,167,147,0,0,0,9,112,72,89,115,0,0,14,196,0, @@ -2539,8 +2834,8 @@ 242,8,71,71,147,76,30,213,113,22,22,0,44,41,202,137,79,178,136,255,196, 79,228,32,70,226,205,90,253,124,0,0,0,0,73,69,78,68,174,66,96,130}; -static size_t xml_res_size_33 = 702; -static unsigned char xml_res_file_33[] = { +static size_t xml_res_size_34 = 702; +static unsigned char xml_res_file_34[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, 0,31,243,255,97,0,0,0,6,98,75,71,68,0,255,0,255,0,255,160,189,167,147,0, 0,0,9,112,72,89,115,0,0,13,215,0,0,13,215,1,66,40,155,120,0,0,0,7,116,73, @@ -2576,12 +2871,12 @@ 38,39,7,60,231,44,96,0,220,189,123,36,255,253,140,252,0,40,62,87,91,205, 65,102,164,0,0,0,0,73,69,78,68,174,66,96,130}; -static size_t xml_res_size_34 = 4245; -static unsigned char xml_res_file_34[] = { +static size_t xml_res_size_35 = 4351; +static unsigned char xml_res_file_35[] = { 60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, 110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, 115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, -47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, +47,47,119,119,119,46,119,120,119,105,100,103,101,116,115,46,111,114,103, 47,119,120,120,114,99,34,62,10,32,32,60,111,98,106,101,99,116,32,99,108, 97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61, 34,84,111,111,108,80,105,110,34,62,119,120,99,114,97,102,116,101,114,95, @@ -2780,16 +3075,21 @@ 99,112,112,36,46,46,95,105,99,111,110,115,95,99,108,111,115,101,46,112, 110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116, 32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109, -101,61,34,119,120,49,54,34,62,119,120,99,114,97,102,116,101,114,95,108, -105,116,101,101,100,105,116,111,114,95,98,105,116,109,97,112,115,46,99, -112,112,36,114,101,115,95,119,120,46,112,110,103,60,47,111,98,106,101,99, -116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119, -120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,119,120,99,34,62,119, -120,99,114,97,102,116,101,114,95,108,105,116,101,101,100,105,116,111,114, -95,98,105,116,109,97,112,115,46,99,112,112,36,46,46,95,119,120,99,114,97, -102,116,101,114,95,114,101,115,111,117,114,99,101,115,95,119,120,99,45, -108,111,103,111,45,49,54,46,112,110,103,60,47,111,98,106,101,99,116,62, -10,60,47,114,101,115,111,117,114,99,101,62,10}; +101,61,34,116,97,114,103,101,116,45,50,48,48,34,62,119,120,99,114,97,102, +116,101,114,95,108,105,116,101,101,100,105,116,111,114,95,98,105,116,109, +97,112,115,46,99,112,112,36,114,101,115,95,116,97,114,103,101,116,45,50, +48,48,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98, +106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112, +34,32,110,97,109,101,61,34,119,120,49,54,34,62,119,120,99,114,97,102,116, +101,114,95,108,105,116,101,101,100,105,116,111,114,95,98,105,116,109,97, +112,115,46,99,112,112,36,114,101,115,95,119,120,46,112,110,103,60,47,111, +98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115, +115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,119, +120,99,34,62,119,120,99,114,97,102,116,101,114,95,108,105,116,101,101,100, +105,116,111,114,95,98,105,116,109,97,112,115,46,99,112,112,36,46,46,95, +119,120,99,114,97,102,116,101,114,95,114,101,115,111,117,114,99,101,115, +95,119,120,99,45,108,111,103,111,45,49,54,46,112,110,103,60,47,111,98,106, +101,99,116,62,10,60,47,114,101,115,111,117,114,99,101,62,10}; void wxC3F25InitBitmapResources() { @@ -2836,8 +3136,9 @@ XRC_ADD_FILE(wxT("XRC_resource/wxcrafter_liteeditor_bitmaps.cpp$res_makefile.png"), xml_res_file_29, xml_res_size_29, wxT("image/png")); XRC_ADD_FILE(wxT("XRC_resource/wxcrafter_liteeditor_bitmaps.cpp$res_qt.png"), xml_res_file_30, xml_res_size_30, wxT("image/png")); XRC_ADD_FILE(wxT("XRC_resource/wxcrafter_liteeditor_bitmaps.cpp$.._icons_close.png"), xml_res_file_31, xml_res_size_31, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/wxcrafter_liteeditor_bitmaps.cpp$res_wx.png"), xml_res_file_32, xml_res_size_32, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/wxcrafter_liteeditor_bitmaps.cpp$.._wxcrafter_resources_wxc-logo-16.png"), xml_res_file_33, xml_res_size_33, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/wxcrafter_liteeditor_bitmaps.cpp$C__src_codelite_LiteEditor_wxcrafter_liteeditor_bitmaps.xrc"), xml_res_file_34, xml_res_size_34, wxT("text/xml")); + XRC_ADD_FILE(wxT("XRC_resource/wxcrafter_liteeditor_bitmaps.cpp$res_target-200.png"), xml_res_file_32, xml_res_size_32, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/wxcrafter_liteeditor_bitmaps.cpp$res_wx.png"), xml_res_file_33, xml_res_size_33, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/wxcrafter_liteeditor_bitmaps.cpp$.._wxcrafter_resources_wxc-logo-16.png"), xml_res_file_34, xml_res_size_34, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/wxcrafter_liteeditor_bitmaps.cpp$C__src_codelite_LiteEditor_wxcrafter_liteeditor_bitmaps.xrc"), xml_res_file_35, xml_res_size_35, wxT("text/xml")); wxXmlResource::Get()->Load(wxT("memory:XRC_resource/wxcrafter_liteeditor_bitmaps.cpp$C__src_codelite_LiteEditor_wxcrafter_liteeditor_bitmaps.xrc")); } diff -Nru codelite-8.0.1+dfsg2/LiteEditor/wxcrafter.wxcp codelite-9.0+dfsg/LiteEditor/wxcrafter.wxcp --- codelite-8.0.1+dfsg2/LiteEditor/wxcrafter.wxcp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor/wxcrafter.wxcp 2015-10-11 13:56:07.000000000 +0000 @@ -1,7 +1,7 @@ { "metadata": { "m_generatedFilesDir": ".", - "m_objCounter": 499, + "m_objCounter": 551, "m_includeFiles": [], "m_bitmapFunction": "wxC3F25InitBitmapResources", "m_bitmapsFile": "wxcrafter_liteeditor_bitmaps.cpp", @@ -685,7 +685,7 @@ "border": 5, "gbSpan": "1,1", "gbPosition": "0,0", - "m_styles": ["wxAUI_TB_PLAIN_BACKGROUND", "wxAUI_TB_DEFAULT_STYLE", "wxAUI_TB_VERTICAL"], + "m_styles": ["wxAUI_TB_PLAIN_BACKGROUND", "wxAUI_TB_DEFAULT_STYLE"], "m_sizerFlags": ["wxEXPAND"], "m_properties": [{ "type": "winid", @@ -1389,7 +1389,7 @@ "border": 5, "gbSpan": "1,1", "gbPosition": "0,0", - "m_styles": ["wxDEFAULT_DIALOG_STYLE"], + "m_styles": ["wxDEFAULT_DIALOG_STYLE", "wxRESIZE_BORDER"], "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], "m_properties": [{ "type": "string", @@ -1402,7 +1402,7 @@ }, { "type": "string", "m_label": "Name:", - "m_value": "wxcDownloadDlgBaseClass" + "m_value": "AddFunctionsImplBaseDlg" }, { "type": "multi-string", "m_label": "Tooltip:", @@ -1450,11 +1450,11 @@ }, { "type": "string", "m_label": "Title:", - "m_value": "Plugin is missing" + "m_value": "Add function implementation" }, { "type": "virtualFolderPicker", "m_label": "Virtual Folder:", - "m_path": "CodeLiteIDE:Dialogs:ProjectManagement" + "m_path": "CodeLiteIDE:Dialogs" }, { "type": "choice", "m_label": "Centre:", @@ -1463,11 +1463,11 @@ }, { "type": "string", "m_label": "Inherited Class", - "m_value": "wxcDownloadDlg" + "m_value": "AddFunctionsImpDlg" }, { "type": "string", "m_label": "File:", - "m_value": "wxcDownloadDlg" + "m_value": "AddFunctionsImpDlg" }, { "type": "string", "m_label": "Class Decorator", @@ -1509,7 +1509,7 @@ }, { "type": "string", "m_label": "Name:", - "m_value": "boxSizer71" + "m_value": "boxSizer117" }, { "type": "string", "m_label": "Style:", @@ -1522,12 +1522,12 @@ }], "m_events": [], "m_children": [{ - "m_type": 4408, - "proportion": 1, + "m_type": 4471, + "proportion": 0, "border": 5, "gbSpan": "1,1", "gbPosition": "0,0", - "m_styles": ["wxTAB_TRAVERSAL"], + "m_styles": ["wxBORDER_THEME"], "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "winid", @@ -1544,7 +1544,7 @@ }, { "type": "string", "m_label": "Name:", - "m_value": "m_panel81" + "m_value": "m_banner125" }, { "type": "multi-string", "m_label": "Tooltip:", @@ -1556,6 +1556,98 @@ }, { "type": "colour", "m_label": "Fg Colour:", + "colour": "CaptionText" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Title:", + "m_value": "Implement functions" + }, { + "type": "multi-string", + "m_label": "Message:", + "m_value": "Select the functions you want to implement" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxTOP", "wxBOTTOM", "wxLEFT", "wxRIGHT"] + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "colour", + "m_label": "Gradient Start", + "colour": "ActiveCaption" + }, { + "type": "colour", + "m_label": "Gradient End", + "colour": "ActiveCaption" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4431, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxFLP_DEFAULT_STYLE"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_filePicker" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "The functions will be placed into this file" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", "colour": "" }, { "type": "font", @@ -1585,83 +1677,274 @@ "type": "string", "m_label": "Style:", "m_value": "" + }, { + "type": "string", + "m_label": "Value:", + "m_value": "" + }, { + "type": "string", + "m_label": "Message:", + "m_value": "Select a file" + }, { + "type": "string", + "m_label": "Wildcard:", + "m_value": "*" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4401, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "boxSizer129" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 1, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] }], "m_events": [], "m_children": [{ - "m_type": 4401, + "m_type": 4473, "proportion": 1, "border": 5, "gbSpan": "1,1", "gbPosition": "0,0", - "m_styles": [], + "m_styles": ["wxDV_ROW_LINES", "wxDV_SINGLE"], "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { "type": "string", "m_label": "Minimum Size:", "m_value": "-1,-1" }, { "type": "string", "m_label": "Name:", - "m_value": "boxSizer82" + "m_value": "m_dataview" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" }, { "type": "string", "m_label": "Style:", "m_value": "" }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + "type": "string", + "m_label": "Generated Model Class Name", + "m_value": "AddFunctionsModel" + }, { + "type": "bool", + "m_label": "Container Item Has Columns", + "m_value": true }], "m_events": [], "m_children": [{ - "m_type": 4471, + "m_type": 4472, "proportion": 0, - "border": 10, + "border": 5, "gbSpan": "1,1", "gbPosition": "0,0", - "m_styles": ["wxBORDER_THEME"], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_styles": [], + "m_sizerFlags": [], "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" + "m_label": "Name:", + "m_value": "?" }, { "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" + "m_label": "Width:", + "m_value": "50" }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_banner76" + "type": "choice", + "m_label": "Column Type", + "m_selection": 1, + "m_options": ["bitmap", "check", "text", "icontext", "progress", "choice"] }, { "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "TooltipText" - }, { - "type": "font", - "m_label": "Font:", + "m_label": "Choices:", "m_value": "" }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false + "type": "choice", + "m_label": "Alignment", + "m_selection": 2, + "m_options": ["wxALIGN_LEFT", "wxALIGN_RIGHT", "wxALIGN_CENTER"] + }, { + "type": "choice", + "m_label": "Cell Mode", + "m_selection": 1, + "m_options": ["wxDATAVIEW_CELL_INERT", "wxDATAVIEW_CELL_ACTIVATABLE", "wxDATAVIEW_CELL_EDITABLE"] + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4472, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "Function" + }, { + "type": "string", + "m_label": "Width:", + "m_value": "300" + }, { + "type": "choice", + "m_label": "Column Type", + "m_selection": 2, + "m_options": ["bitmap", "check", "text", "icontext", "progress", "choice"] + }, { + "type": "multi-string", + "m_label": "Choices:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Alignment", + "m_selection": 0, + "m_options": ["wxALIGN_LEFT", "wxALIGN_RIGHT", "wxALIGN_CENTER"] + }, { + "type": "choice", + "m_label": "Cell Mode", + "m_selection": 0, + "m_options": ["wxDATAVIEW_CELL_INERT", "wxDATAVIEW_CELL_ACTIVATABLE", "wxDATAVIEW_CELL_EDITABLE"] + }], + "m_events": [], + "m_children": [] + }] + }, { + "m_type": 4401, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "boxSizer131" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4400, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_button133" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false }, { "type": "bool", "m_label": "Focused", @@ -1679,40 +1962,43 @@ "m_label": "Style:", "m_value": "" }, { - "type": "multi-string", - "m_label": "Title:", - "m_value": "Plugin is not installed" - }, { - "type": "multi-string", - "m_label": "Message:", - "m_value": "It seems that the wxCrafter plugin is not installed\\nWhat would you like to do?" + "type": "string", + "m_label": "Label:", + "m_value": "Check all" }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["wxTOP", "wxBOTTOM", "wxLEFT", "wxRIGHT"] + "type": "bool", + "m_label": "Default Button", + "m_value": false }, { "type": "bitmapPicker", "m_label": "Bitmap File:", "m_path": "" }, { - "type": "colour", - "m_label": "Gradient Start", - "colour": "Tooltip" + "type": "choice", + "m_label": "Direction", + "m_selection": 0, + "m_options": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"] }, { - "type": "colour", - "m_label": "Gradient End", - "colour": "Tooltip" + "type": "string", + "m_label": "Margins:", + "m_value": "2,2" + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_BUTTON_CLICKED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnCheckAll(wxCommandEvent& event)", + "m_description": "Process a wxEVT_COMMAND_BUTTON_CLICKED event, when the button is clicked.", + "m_noBody": false }], - "m_events": [], "m_children": [] }, { - "m_type": 4408, - "proportion": 1, + "m_type": 4400, + "proportion": 0, "border": 5, "gbSpan": "1,1", "gbPosition": "0,0", - "m_styles": ["wxTAB_TRAVERSAL"], + "m_styles": [], "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "winid", @@ -1729,7 +2015,7 @@ }, { "type": "string", "m_label": "Name:", - "m_value": "m_panel75" + "m_value": "m_button135" }, { "type": "multi-string", "m_label": "Tooltip:", @@ -1770,538 +2056,47 @@ "type": "string", "m_label": "Style:", "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Uncheck all" + }, { + "type": "bool", + "m_label": "Default Button", + "m_value": false + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Direction", + "m_selection": 0, + "m_options": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"] + }, { + "type": "string", + "m_label": "Margins:", + "m_value": "2,2" }], - "m_events": [], - "m_children": [{ - "m_type": 4401, - "proportion": 1, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "boxSizer79" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4474, - "proportion": 1, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": ["wxBU_LEFT"], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_cmdLnkBtnDownload" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": true - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "Install" - }, { - "type": "string", - "m_label": "Note", - "m_value": "Download wxCrafter plugin from codelite's website" - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File:", - "m_path": "" - }, { - "type": "bool", - "m_label": "Default Button", - "m_value": true - }], - "m_events": [{ - "m_eventName": "wxEVT_COMMAND_BUTTON_CLICKED", - "m_eventClass": "wxCommandEvent", - "m_eventHandler": "wxCommandEventHandler", - "m_functionNameAndSignature": "OnDownloadWxCrafterPlugin(wxCommandEvent& event)", - "m_description": "Process a wxEVT_COMMAND_BUTTON_CLICKED event, when the button is clicked.", - "m_noBody": false - }], - "m_children": [] - }, { - "m_type": 4474, - "proportion": 1, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": ["wxBU_LEFT"], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_cmdLnkBtnContinue" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "Continue" - }, { - "type": "string", - "m_label": "Note", - "m_value": "Ignore the missing plugin and create the project anyway" - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File:", - "m_path": "" - }, { - "type": "bool", - "m_label": "Default Button", - "m_value": false - }], - "m_events": [{ - "m_eventName": "wxEVT_COMMAND_BUTTON_CLICKED", - "m_eventClass": "wxCommandEvent", - "m_eventHandler": "wxCommandEventHandler", - "m_functionNameAndSignature": "OnIgnoreTheError(wxCommandEvent& event)", - "m_description": "Process a wxEVT_COMMAND_BUTTON_CLICKED event, when the button is clicked.", - "m_noBody": false - }], - "m_children": [] - }] - }] + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_BUTTON_CLICKED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnUncheckAll(wxCommandEvent& event)", + "m_description": "Process a wxEVT_COMMAND_BUTTON_CLICKED event, when the button is clicked.", + "m_noBody": false + }], + "m_children": [] }] }] - }] - }] - }, { - "m_type": 4421, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": ["wxDEFAULT_DIALOG_STYLE", "wxRESIZE_BORDER"], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "string", - "m_label": "Size:", - "m_value": "500,300" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "AddFunctionsImplBaseDlg" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Enable Window Persistency:", - "m_value": false - }, { - "type": "string", - "m_label": "Title:", - "m_value": "Add function implementation" - }, { - "type": "virtualFolderPicker", - "m_label": "Virtual Folder:", - "m_path": "CodeLiteIDE:Dialogs" - }, { - "type": "choice", - "m_label": "Centre:", - "m_selection": 1, - "m_options": ["", "wxBOTH", "wxVERTICAL", "wxHORIZONTAL"] - }, { - "type": "string", - "m_label": "Inherited Class", - "m_value": "AddFunctionsImpDlg" - }, { - "type": "string", - "m_label": "File:", - "m_value": "AddFunctionsImpDlg" - }, { - "type": "string", - "m_label": "Class Decorator", - "m_value": "" - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File (16x16) :", - "m_path": "" - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File (32x32) :", - "m_path": "" - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File (64x64) :", - "m_path": "" - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File (128x128):", - "m_path": "" - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File (256x256):", - "m_path": "" - }], - "m_events": [], - "m_children": [{ - "m_type": 4401, - "proportion": 1, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "boxSizer117" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4471, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": ["wxBORDER_THEME"], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_banner125" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "CaptionText" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Title:", - "m_value": "Implement functions" - }, { - "type": "multi-string", - "m_label": "Message:", - "m_value": "Select the functions you want to implement" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["wxTOP", "wxBOTTOM", "wxLEFT", "wxRIGHT"] - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File:", - "m_path": "" - }, { - "type": "colour", - "m_label": "Gradient Start", - "colour": "ActiveCaption" - }, { - "type": "colour", - "m_label": "Gradient End", - "colour": "ActiveCaption" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4431, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": ["wxFLP_DEFAULT_STYLE"], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_filePicker" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "The functions will be placed into this file" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Value:", - "m_value": "" - }, { - "type": "string", - "m_label": "Message:", - "m_value": "Select a file" - }, { - "type": "string", - "m_label": "Wildcard:", - "m_value": "*" - }], - "m_events": [], - "m_children": [] }, { "m_type": 4401, - "proportion": 1, + "proportion": 0, "border": 5, "gbSpan": "1,1", "gbPosition": "0,0", "m_styles": [], - "m_sizerFlags": ["wxEXPAND"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_HORIZONTAL"], "m_properties": [{ "type": "string", "m_label": "Minimum Size:", @@ -2309,7 +2104,7 @@ }, { "type": "string", "m_label": "Name:", - "m_value": "boxSizer129" + "m_value": "boxSizer119" }, { "type": "string", "m_label": "Style:", @@ -2322,17 +2117,17 @@ }], "m_events": [], "m_children": [{ - "m_type": 4473, - "proportion": 1, + "m_type": 4400, + "proportion": 0, "border": 5, "gbSpan": "1,1", "gbPosition": "0,0", - "m_styles": ["wxDV_ROW_LINES", "wxDV_SINGLE"], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], "m_properties": [{ "type": "winid", "m_label": "ID:", - "m_winid": "wxID_ANY" + "m_winid": "wxID_OK" }, { "type": "string", "m_label": "Size:", @@ -2344,7 +2139,7 @@ }, { "type": "string", "m_label": "Name:", - "m_value": "m_dataview" + "m_value": "m_button121" }, { "type": "multi-string", "m_label": "Tooltip:", @@ -2387,743 +2182,346 @@ "m_value": "" }, { "type": "string", - "m_label": "Generated Model Class Name", - "m_value": "AddFunctionsModel" + "m_label": "Label:", + "m_value": "&OK" }, { "type": "bool", - "m_label": "Container Item Has Columns", + "m_label": "Default Button", "m_value": true - }], - "m_events": [], - "m_children": [{ - "m_type": 4472, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "?" - }, { - "type": "string", - "m_label": "Width:", - "m_value": "50" - }, { - "type": "choice", - "m_label": "Column Type", - "m_selection": 1, - "m_options": ["bitmap", "check", "text", "icontext", "progress", "choice"] - }, { - "type": "multi-string", - "m_label": "Choices:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Alignment", - "m_selection": 2, - "m_options": ["wxALIGN_LEFT", "wxALIGN_RIGHT", "wxALIGN_CENTER"] - }, { - "type": "choice", - "m_label": "Cell Mode", - "m_selection": 1, - "m_options": ["wxDATAVIEW_CELL_INERT", "wxDATAVIEW_CELL_ACTIVATABLE", "wxDATAVIEW_CELL_EDITABLE"] - }], - "m_events": [], - "m_children": [] }, { - "m_type": 4472, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "Function" - }, { - "type": "string", - "m_label": "Width:", - "m_value": "300" - }, { - "type": "choice", - "m_label": "Column Type", - "m_selection": 2, - "m_options": ["bitmap", "check", "text", "icontext", "progress", "choice"] - }, { - "type": "multi-string", - "m_label": "Choices:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Alignment", - "m_selection": 0, - "m_options": ["wxALIGN_LEFT", "wxALIGN_RIGHT", "wxALIGN_CENTER"] - }, { - "type": "choice", - "m_label": "Cell Mode", - "m_selection": 0, - "m_options": ["wxDATAVIEW_CELL_INERT", "wxDATAVIEW_CELL_ACTIVATABLE", "wxDATAVIEW_CELL_EDITABLE"] - }], - "m_events": [], - "m_children": [] - }] + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Direction", + "m_selection": 0, + "m_options": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"] + }, { + "type": "string", + "m_label": "Margins:", + "m_value": "2,2" + }], + "m_events": [{ + "m_eventName": "wxEVT_UPDATE_UI", + "m_eventClass": "wxUpdateUIEvent", + "m_eventHandler": "wxUpdateUIEventHandler", + "m_functionNameAndSignature": "OnOKUI(wxUpdateUIEvent& event)", + "m_description": "Process a wxEVT_UPDATE_UI event", + "m_noBody": false + }], + "m_children": [] }, { - "m_type": 4401, + "m_type": 4400, "proportion": 0, "border": 5, "gbSpan": "1,1", "gbPosition": "0,0", "m_styles": [], - "m_sizerFlags": ["wxEXPAND"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_CANCEL" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { "type": "string", "m_label": "Minimum Size:", "m_value": "-1,-1" }, { "type": "string", "m_label": "Name:", - "m_value": "boxSizer131" + "m_value": "m_button123" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" }, { "type": "string", "m_label": "Style:", "m_value": "" }, { + "type": "string", + "m_label": "Label:", + "m_value": "&Cancel" + }, { + "type": "bool", + "m_label": "Default Button", + "m_value": false + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { "type": "choice", - "m_label": "Orientation:", + "m_label": "Direction", "m_selection": 0, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + "m_options": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"] + }, { + "type": "string", + "m_label": "Margins:", + "m_value": "2,2" }], "m_events": [], - "m_children": [{ - "m_type": 4400, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_button133" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "Check all" - }, { - "type": "bool", - "m_label": "Default Button", - "m_value": false - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File:", - "m_path": "" - }, { - "type": "choice", - "m_label": "Direction", - "m_selection": 0, - "m_options": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"] - }, { - "type": "string", - "m_label": "Margins:", - "m_value": "2,2" - }], - "m_events": [{ - "m_eventName": "wxEVT_COMMAND_BUTTON_CLICKED", - "m_eventClass": "wxCommandEvent", - "m_eventHandler": "wxCommandEventHandler", - "m_functionNameAndSignature": "OnCheckAll(wxCommandEvent& event)", - "m_description": "Process a wxEVT_COMMAND_BUTTON_CLICKED event, when the button is clicked.", - "m_noBody": false - }], - "m_children": [] - }, { - "m_type": 4400, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_button135" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "Uncheck all" - }, { - "type": "bool", - "m_label": "Default Button", - "m_value": false - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File:", - "m_path": "" - }, { - "type": "choice", - "m_label": "Direction", - "m_selection": 0, - "m_options": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"] - }, { - "type": "string", - "m_label": "Margins:", - "m_value": "2,2" - }], - "m_events": [{ - "m_eventName": "wxEVT_COMMAND_BUTTON_CLICKED", - "m_eventClass": "wxCommandEvent", - "m_eventHandler": "wxCommandEventHandler", - "m_functionNameAndSignature": "OnUncheckAll(wxCommandEvent& event)", - "m_description": "Process a wxEVT_COMMAND_BUTTON_CLICKED event, when the button is clicked.", - "m_noBody": false - }], - "m_children": [] - }] + "m_children": [] }] + }] + }] + }, { + "m_type": 4407, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxTAB_TRAVERSAL"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "WelcomePageBase" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Title:", + "m_value": "" + }, { + "type": "virtualFolderPicker", + "m_label": "Virtual Folder:", + "m_path": "CodeLiteIDE:wxcrafter" + }, { + "type": "choice", + "m_label": "Centre:", + "m_selection": 1, + "m_options": ["", "wxBOTH", "wxVERTICAL", "wxHORIZONTAL"] + }, { + "type": "string", + "m_label": "Inherited Class", + "m_value": "WelcomePage" + }, { + "type": "string", + "m_label": "File:", + "m_value": "WelcomePage" + }, { + "type": "string", + "m_label": "Class Decorator", + "m_value": "" + }], + "m_events": [{ + "m_eventName": "wxEVT_SIZE", + "m_eventClass": "wxSizeEvent", + "m_eventHandler": "wxSizeEventHandler", + "m_functionNameAndSignature": "OnSize(wxSizeEvent& event)", + "m_description": "Process a wxEVT_SIZE event", + "m_noBody": false + }], + "m_children": [{ + "m_type": 4401, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" }, { - "m_type": 4401, - "proportion": 0, + "type": "string", + "m_label": "Name:", + "m_value": "boxSizer149" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4440, + "proportion": 1, "border": 5, "gbSpan": "1,1", "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_HORIZONTAL"], + "m_styles": ["wxHSCROLL", "wxVSCROLL"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "600,600" + }, { "type": "string", "m_label": "Minimum Size:", "m_value": "-1,-1" }, { "type": "string", "m_label": "Name:", - "m_value": "boxSizer119" + "m_value": "m_scrollWin247" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" }, { "type": "string", "m_label": "Style:", "m_value": "" }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 1, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + "type": "string", + "m_label": "Scroll Rate X:", + "m_value": "5" + }, { + "type": "string", + "m_label": "Scroll Rate Y:", + "m_value": "5" }], "m_events": [], "m_children": [{ - "m_type": 4400, - "proportion": 0, + "m_type": 4401, + "proportion": 1, "border": 5, "gbSpan": "1,1", "gbPosition": "0,0", "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_OK" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { "type": "string", "m_label": "Minimum Size:", "m_value": "-1,-1" }, { "type": "string", "m_label": "Name:", - "m_value": "m_button121" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "&OK" - }, { - "type": "bool", - "m_label": "Default Button", - "m_value": true - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File:", - "m_path": "" - }, { - "type": "choice", - "m_label": "Direction", - "m_selection": 0, - "m_options": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"] - }, { - "type": "string", - "m_label": "Margins:", - "m_value": "2,2" - }], - "m_events": [{ - "m_eventName": "wxEVT_UPDATE_UI", - "m_eventClass": "wxUpdateUIEvent", - "m_eventHandler": "wxUpdateUIEventHandler", - "m_functionNameAndSignature": "OnOKUI(wxUpdateUIEvent& event)", - "m_description": "Process a wxEVT_UPDATE_UI event", - "m_noBody": false - }], - "m_children": [] - }, { - "m_type": 4400, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_CANCEL" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_button123" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" + "m_value": "boxSizer249" }, { "type": "string", "m_label": "Style:", "m_value": "" }, { - "type": "string", - "m_label": "Label:", - "m_value": "&Cancel" - }, { - "type": "bool", - "m_label": "Default Button", - "m_value": false - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File:", - "m_path": "" - }, { "type": "choice", - "m_label": "Direction", + "m_label": "Orientation:", "m_selection": 0, - "m_options": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"] - }, { - "type": "string", - "m_label": "Margins:", - "m_value": "2,2" - }], - "m_events": [], - "m_children": [] - }] - }] - }] - }, { - "m_type": 4407, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": ["wxTAB_TRAVERSAL"], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "WelcomePageBase" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Title:", - "m_value": "" - }, { - "type": "virtualFolderPicker", - "m_label": "Virtual Folder:", - "m_path": "CodeLiteIDE:wxcrafter" - }, { - "type": "choice", - "m_label": "Centre:", - "m_selection": 1, - "m_options": ["", "wxBOTH", "wxVERTICAL", "wxHORIZONTAL"] - }, { - "type": "string", - "m_label": "Inherited Class", - "m_value": "WelcomePage" - }, { - "type": "string", - "m_label": "File:", - "m_value": "WelcomePage" - }, { - "type": "string", - "m_label": "Class Decorator", - "m_value": "" - }], - "m_events": [{ - "m_eventName": "wxEVT_SIZE", - "m_eventClass": "wxSizeEvent", - "m_eventHandler": "wxSizeEventHandler", - "m_functionNameAndSignature": "OnSize(wxSizeEvent& event)", - "m_description": "Process a wxEVT_SIZE event", - "m_noBody": false - }], - "m_children": [{ - "m_type": 4401, - "proportion": 1, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "boxSizer149" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4440, - "proportion": 1, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": ["wxHSCROLL", "wxVSCROLL"], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "600,600" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_scrollWin247" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Scroll Rate X:", - "m_value": "5" - }, { - "type": "string", - "m_label": "Scroll Rate Y:", - "m_value": "5" - }], - "m_events": [], - "m_children": [{ - "m_type": 4401, - "proportion": 1, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "boxSizer249" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] }], "m_events": [], "m_children": [{ @@ -4243,12 +3641,12 @@ }], "m_events": [], "m_children": [{ - "m_type": 4463, - "proportion": 0, + "m_type": 4511, + "proportion": 1, "border": 5, "gbSpan": "1,1", "gbPosition": "0,0", - "m_styles": ["wxAUI_TB_PLAIN_BACKGROUND", "wxAUI_TB_DEFAULT_STYLE"], + "m_styles": ["wxBK_DEFAULT", "wxBORDER_NONE"], "m_sizerFlags": ["wxEXPAND"], "m_properties": [{ "type": "winid", @@ -4260,724 +3658,581 @@ "m_value": "-1,-1" }, { "type": "string", - "m_label": "Name:", - "m_value": "m_auibar" + "m_label": "Minimum Size:", + "m_value": "-1,-1" }, { "type": "string", + "m_label": "Name:", + "m_value": "m_simpleBook" + }, { + "type": "multi-string", "m_label": "Tooltip:", "m_value": "" }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { "type": "string", - "m_label": "Bitmap Size:", - "m_value": "16,16" + "m_label": "Class Name:", + "m_value": "" }, { "type": "string", - "m_label": "Margins:", - "m_value": "-1,-1" + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Show Effect", + "m_selection": 0, + "m_options": ["wxSHOW_EFFECT_NONE", "wxSHOW_EFFECT_ROLL_TO_LEFT", "wxSHOW_EFFECT_ROLL_TO_RIGHT", "wxSHOW_EFFECT_ROLL_TO_TOP", "wxSHOW_EFFECT_ROLL_TO_BOTTOM", "wxSHOW_EFFECT_SLIDE_TO_LEFT", "wxSHOW_EFFECT_SLIDE_TO_RIGHT", "wxSHOW_EFFECT_SLIDE_TO_TOP", "wxSHOW_EFFECT_SLIDE_TO_BOTTOM", "wxSHOW_EFFECT_BLEND", "wxSHOW_EFFECT_EXPAND"] }], "m_events": [], "m_children": [{ - "m_type": 4462, + "m_type": 4441, "proportion": 0, "border": 5, "gbSpan": "1,1", "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": [], + "m_styles": ["wxTAB_TRAVERSAL"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], "m_properties": [{ "type": "winid", "m_label": "ID:", - "m_winid": "ID_TOOL_COLLAPSE_ALL" + "m_winid": "wxID_ANY" }, { "type": "string", - "m_label": "Name:", - "m_value": "m_toolbarItemCollapseAll" + "m_label": "Size:", + "m_value": "-1,-1" }, { "type": "string", - "m_label": "Label:", - "m_value": "Collapse All" + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_panelCxx" }, { "type": "multi-string", "m_label": "Tooltip:", - "m_value": "Collapse All" + "m_value": "" }, { - "type": "string", - "m_label": "Help String:", - "m_value": "Collapse All" + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" }, { - "type": "bitmapPicker", - "m_label": "Bitmap File:", - "m_path": "res/collapse.png" + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" }, { - "type": "filePicker", - "m_label": "Disabled-Bitmap File", - "m_path": "" + "type": "font", + "m_label": "Font:", + "m_value": "" }, { - "type": "choice", - "m_label": "Kind:", - "m_selection": 0, - "m_options": ["normal", "checkable", "radio", "separator", "dropdown"] + "type": "bool", + "m_label": "Hidden", + "m_value": false }, { "type": "bool", - "m_label": "Construct the Dropdown Menu:", - "m_value": true - }], - "m_events": [{ - "m_eventName": "wxEVT_COMMAND_TOOL_CLICKED", - "m_eventClass": "wxCommandEvent", - "m_eventHandler": "wxCommandEventHandler", - "m_functionNameAndSignature": "OnCollapseAll(wxCommandEvent& event)", - "m_description": "Process a wxEVT_COMMAND_TOOL_CLICKED event (a synonym for wxEVT_COMMAND_MENU_SELECTED). Pass the id of the tool", - "m_noBody": false + "m_label": "Disabled", + "m_value": false }, { - "m_eventName": "wxEVT_UPDATE_UI", - "m_eventClass": "wxUpdateUIEvent", - "m_eventHandler": "wxUpdateUIEventHandler", - "m_functionNameAndSignature": "OnCollapseAllUI(wxUpdateUIEvent& event)", - "m_description": "Process a wxEVT_UPDATE_UI event", - "m_noBody": false - }], - "m_children": [] - }, { - "m_type": 4462, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "ID_TOOL_GOTO_ACTIVE_PROJECT" + "type": "bool", + "m_label": "Focused", + "m_value": false }, { "type": "string", - "m_label": "Name:", - "m_value": "m_toolbarItemGotoActiveProject" + "m_label": "Class Name:", + "m_value": "" }, { "type": "string", - "m_label": "Label:", - "m_value": "Goto Active Project" + "m_label": "Include File:", + "m_value": "" }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "Goto Active Project" + "type": "string", + "m_label": "Style:", + "m_value": "" }, { "type": "string", - "m_label": "Help String:", - "m_value": "Goto Active Project" + "m_label": "Label:", + "m_value": "C++ Workspace" }, { "type": "bitmapPicker", "m_label": "Bitmap File:", - "m_path": "res/gohome.png" - }, { - "type": "filePicker", - "m_label": "Disabled-Bitmap File", "m_path": "" }, { - "type": "choice", - "m_label": "Kind:", - "m_selection": 0, - "m_options": ["normal", "checkable", "radio", "separator", "dropdown"] - }, { - "type": "bool", - "m_label": "Construct the Dropdown Menu:", - "m_value": true - }], - "m_events": [{ - "m_eventName": "wxEVT_COMMAND_TOOL_CLICKED", - "m_eventClass": "wxCommandEvent", - "m_eventHandler": "wxCommandEventHandler", - "m_functionNameAndSignature": "OnGoHome(wxCommandEvent& event)", - "m_description": "Process a wxEVT_COMMAND_TOOL_CLICKED event (a synonym for wxEVT_COMMAND_MENU_SELECTED). Pass the id of the tool", - "m_noBody": false - }, { - "m_eventName": "wxEVT_UPDATE_UI", - "m_eventClass": "wxUpdateUIEvent", - "m_eventHandler": "wxUpdateUIEventHandler", - "m_functionNameAndSignature": "OnGoHomeUI(wxUpdateUIEvent& event)", - "m_description": "Process a wxEVT_UPDATE_UI event", - "m_noBody": false - }], - "m_children": [] - }, { - "m_type": 4462, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "ID_TOOL_ACTIVE_PROJECT_SETTINGS" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_toolbarItemProjectSettings" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "Project Settings" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "Open selected project settings. If there is no project selected, open the parent project of the seleced item in the tree" - }, { - "type": "string", - "m_label": "Help String:", - "m_value": "Open selected project settings. If there is no project selected, open the parent project of the seleced item in the tree" - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File:", - "m_path": "res/configure.png" - }, { - "type": "filePicker", - "m_label": "Disabled-Bitmap File", - "m_path": "" - }, { - "type": "choice", - "m_label": "Kind:", - "m_selection": 0, - "m_options": ["normal", "checkable", "radio", "separator", "dropdown"] - }, { - "type": "bool", - "m_label": "Construct the Dropdown Menu:", - "m_value": true - }], - "m_events": [{ - "m_eventName": "wxEVT_COMMAND_TOOL_CLICKED", - "m_eventClass": "wxCommandEvent", - "m_eventHandler": "wxCommandEventHandler", - "m_functionNameAndSignature": "OnProjectSettings(wxCommandEvent& event)", - "m_description": "Process a wxEVT_COMMAND_TOOL_CLICKED event (a synonym for wxEVT_COMMAND_MENU_SELECTED). Pass the id of the tool", - "m_noBody": false - }, { - "m_eventName": "wxEVT_UPDATE_UI", - "m_eventClass": "wxUpdateUIEvent", - "m_eventHandler": "wxUpdateUIEventHandler", - "m_functionNameAndSignature": "OnProjectSettingsUI(wxUpdateUIEvent& event)", - "m_description": "Process a wxEVT_UPDATE_UI event", - "m_noBody": false - }], - "m_children": [] - }, { - "m_type": 4516, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "m_auitbarStretchSpace287" - }, { - "type": "string", - "m_label": "Proportion:", - "m_value": "1" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4516, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "m_auitbarStretchSpace491" - }, { - "type": "string", - "m_label": "Proportion:", - "m_value": "1" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4462, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "ID_TOOL_LINK_EDITOR" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_toolbarItemLinkEditor" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "Link Editor" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "Link Editor" - }, { - "type": "string", - "m_label": "Help String:", - "m_value": "Link Editor" - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File:", - "m_path": "res/link_editor.png" - }, { - "type": "filePicker", - "m_label": "Disabled-Bitmap File", - "m_path": "" - }, { - "type": "choice", - "m_label": "Kind:", - "m_selection": 1, - "m_options": ["normal", "checkable", "radio", "separator", "dropdown"] - }, { "type": "bool", - "m_label": "Construct the Dropdown Menu:", + "m_label": "Selected", "m_value": true - }], - "m_events": [{ - "m_eventName": "wxEVT_COMMAND_TOOL_CLICKED", - "m_eventClass": "wxCommandEvent", - "m_eventHandler": "wxCommandEventHandler", - "m_functionNameAndSignature": "OnLinkEditor(wxCommandEvent& event)", - "m_description": "Process a wxEVT_COMMAND_TOOL_CLICKED event (a synonym for wxEVT_COMMAND_MENU_SELECTED). Pass the id of the tool", - "m_noBody": false - }, { - "m_eventName": "wxEVT_UPDATE_UI", - "m_eventClass": "wxUpdateUIEvent", - "m_eventHandler": "wxUpdateUIEventHandler", - "m_functionNameAndSignature": "OnLinkEditorUI(wxUpdateUIEvent& event)", - "m_description": "Process a wxEVT_UPDATE_UI event", - "m_noBody": false - }], - "m_children": [] - }] - }, { - "m_type": 4401, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxEXPAND"], - "m_properties": [{ - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "boxSizer302" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 1, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4447, - "proportion": 1, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": ["wxSP_LIVE_UPDATE", "wxSP_3DSASH"], - "m_sizerFlags": [], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_splitter" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "Resize the configuration bar" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false }, { "type": "bool", - "m_label": "Focused", + "m_label": "Null Page", "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Split Mode:", - "m_selection": 0, - "m_options": ["wxSPLIT_VERTICAL", "wxSPLIT_HORIZONTAL"] - }, { - "type": "string", - "m_label": "Sash Gravity:", - "m_value": "0" - }, { - "type": "string", - "m_label": "Minimum Pane Size:", - "m_value": "10" - }, { - "type": "string", - "m_label": "Sash Position:", - "m_value": "100" }], "m_events": [], "m_children": [{ - "m_type": 4448, - "proportion": 0, - "border": 5, + "m_type": 4401, + "proportion": 1, + "border": 5, "gbSpan": "1,1", "gbPosition": "0,0", - "m_styles": ["wxTAB_TRAVERSAL"], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { "type": "string", "m_label": "Minimum Size:", "m_value": "-1,-1" }, { "type": "string", "m_label": "Name:", - "m_value": "m_splitterPage308" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" + "m_value": "boxSizer505" }, { "type": "string", "m_label": "Style:", "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] }], "m_events": [], "m_children": [{ - "m_type": 4401, - "proportion": 1, + "m_type": 4463, + "proportion": 0, "border": 5, "gbSpan": "1,1", "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_styles": ["wxAUI_TB_PLAIN_BACKGROUND", "wxAUI_TB_DEFAULT_STYLE"], + "m_sizerFlags": ["wxEXPAND"], "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { "type": "string", - "m_label": "Minimum Size:", + "m_label": "Size:", "m_value": "-1,-1" }, { "type": "string", "m_label": "Name:", - "m_value": "boxSizer314" + "m_value": "m_auibar" }, { "type": "string", - "m_label": "Style:", + "m_label": "Tooltip:", "m_value": "" }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + "type": "string", + "m_label": "Bitmap Size:", + "m_value": "16,16" + }, { + "type": "string", + "m_label": "Margins:", + "m_value": "-1,-1" }], "m_events": [], "m_children": [{ - "m_type": 4411, + "m_type": 4462, "proportion": 0, - "border": 2, + "border": 5, "gbSpan": "1,1", "gbPosition": "0,0", "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_sizerFlags": [], "m_properties": [{ "type": "winid", "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" + "m_winid": "ID_TOOL_COLLAPSE_ALL" }, { "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" + "m_label": "Name:", + "m_value": "m_toolbarItemCollapseAll" }, { "type": "string", - "m_label": "Name:", - "m_value": "m_choiceActiveProject" + "m_label": "Label:", + "m_value": "Collapse All" }, { "type": "multi-string", "m_label": "Tooltip:", - "m_value": "Select the active project" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" + "m_value": "Collapse All" }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" + "type": "string", + "m_label": "Help String:", + "m_value": "Collapse All" }, { - "type": "font", - "m_label": "Font:", - "m_value": "" + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "res/collapse.png" }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false + "type": "filePicker", + "m_label": "Disabled-Bitmap File", + "m_path": "" }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false + "type": "choice", + "m_label": "Kind:", + "m_selection": 0, + "m_options": ["normal", "checkable", "radio", "separator", "dropdown"] }, { "type": "bool", - "m_label": "Focused", - "m_value": false + "m_label": "Construct the Dropdown Menu:", + "m_value": true + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_TOOL_CLICKED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnCollapseAll(wxCommandEvent& event)", + "m_description": "Process a wxEVT_COMMAND_TOOL_CLICKED event (a synonym for wxEVT_COMMAND_MENU_SELECTED). Pass the id of the tool", + "m_noBody": false }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" + "m_eventName": "wxEVT_UPDATE_UI", + "m_eventClass": "wxUpdateUIEvent", + "m_eventHandler": "wxUpdateUIEventHandler", + "m_functionNameAndSignature": "OnCollapseAllUI(wxUpdateUIEvent& event)", + "m_description": "Process a wxEVT_UPDATE_UI event", + "m_noBody": false + }], + "m_children": [] + }, { + "m_type": 4462, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "ID_TOOL_GOTO_ACTIVE_PROJECT" }, { "type": "string", - "m_label": "Include File:", - "m_value": "" + "m_label": "Name:", + "m_value": "m_toolbarItemGotoActiveProject" }, { "type": "string", - "m_label": "Style:", - "m_value": "" + "m_label": "Label:", + "m_value": "Goto Active Project" }, { "type": "multi-string", - "m_label": "Choices:", - "m_value": "" + "m_label": "Tooltip:", + "m_value": "Goto Active Project" }, { "type": "string", - "m_label": "Selection:", - "m_value": "" + "m_label": "Help String:", + "m_value": "Goto Active Project" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "res/gohome.png" + }, { + "type": "filePicker", + "m_label": "Disabled-Bitmap File", + "m_path": "" + }, { + "type": "choice", + "m_label": "Kind:", + "m_selection": 0, + "m_options": ["normal", "checkable", "radio", "separator", "dropdown"] + }, { + "type": "bool", + "m_label": "Construct the Dropdown Menu:", + "m_value": true }], "m_events": [{ - "m_eventName": "wxEVT_COMMAND_CHOICE_SELECTED", + "m_eventName": "wxEVT_COMMAND_TOOL_CLICKED", "m_eventClass": "wxCommandEvent", "m_eventHandler": "wxCommandEventHandler", - "m_functionNameAndSignature": "OnChoiceActiveProject(wxCommandEvent& event)", - "m_description": "Process a wxEVT_COMMAND_CHOICE_SELECTED event, when an item on the list is selected.", + "m_functionNameAndSignature": "OnGoHome(wxCommandEvent& event)", + "m_description": "Process a wxEVT_COMMAND_TOOL_CLICKED event (a synonym for wxEVT_COMMAND_MENU_SELECTED). Pass the id of the tool", "m_noBody": false }, { "m_eventName": "wxEVT_UPDATE_UI", "m_eventClass": "wxUpdateUIEvent", "m_eventHandler": "wxUpdateUIEventHandler", - "m_functionNameAndSignature": "OnChoiceActiveProjectUI(wxUpdateUIEvent& event)", + "m_functionNameAndSignature": "OnGoHomeUI(wxUpdateUIEvent& event)", "m_description": "Process a wxEVT_UPDATE_UI event", "m_noBody": false }], "m_children": [] - }] - }] - }, { - "m_type": 4448, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": ["wxTAB_TRAVERSAL"], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_splitterPage312" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }], - "m_events": [], - "m_children": [{ - "m_type": 4401, - "proportion": 1, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "boxSizer316" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4411, + "m_type": 4462, "proportion": 0, - "border": 2, + "border": 5, "gbSpan": "1,1", "gbPosition": "0,0", "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_sizerFlags": [], "m_properties": [{ "type": "winid", "m_label": "ID:", - "m_winid": "wxID_ANY" + "m_winid": "ID_TOOL_ACTIVE_PROJECT_SETTINGS" }, { "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" + "m_label": "Name:", + "m_value": "m_toolbarItemProjectSettings" }, { "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" + "m_label": "Label:", + "m_value": "Project Settings" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "Open selected project settings. If there is no project selected, open the parent project of the seleced item in the tree" + }, { + "type": "string", + "m_label": "Help String:", + "m_value": "Open selected project settings. If there is no project selected, open the parent project of the seleced item in the tree" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "res/configure.png" + }, { + "type": "filePicker", + "m_label": "Disabled-Bitmap File", + "m_path": "" + }, { + "type": "choice", + "m_label": "Kind:", + "m_selection": 0, + "m_options": ["normal", "checkable", "radio", "separator", "dropdown"] + }, { + "type": "bool", + "m_label": "Construct the Dropdown Menu:", + "m_value": true + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_TOOL_CLICKED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnProjectSettings(wxCommandEvent& event)", + "m_description": "Process a wxEVT_COMMAND_TOOL_CLICKED event (a synonym for wxEVT_COMMAND_MENU_SELECTED). Pass the id of the tool", + "m_noBody": false + }, { + "m_eventName": "wxEVT_UPDATE_UI", + "m_eventClass": "wxUpdateUIEvent", + "m_eventHandler": "wxUpdateUIEventHandler", + "m_functionNameAndSignature": "OnProjectSettingsUI(wxUpdateUIEvent& event)", + "m_description": "Process a wxEVT_UPDATE_UI event", + "m_noBody": false + }], + "m_children": [] + }, { + "m_type": 4516, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "m_auitbarStretchSpace551" + }, { + "type": "string", + "m_label": "Proportion:", + "m_value": "1" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4462, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "ID_TOOL_LINK_EDITOR" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_toolbarItemLinkEditor" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Link Editor" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "Link Editor" + }, { + "type": "string", + "m_label": "Help String:", + "m_value": "Link Editor" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "res/link_editor.png" + }, { + "type": "filePicker", + "m_label": "Disabled-Bitmap File", + "m_path": "" + }, { + "type": "choice", + "m_label": "Kind:", + "m_selection": 1, + "m_options": ["normal", "checkable", "radio", "separator", "dropdown"] + }, { + "type": "bool", + "m_label": "Construct the Dropdown Menu:", + "m_value": true + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_TOOL_CLICKED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnLinkEditor(wxCommandEvent& event)", + "m_description": "Process a wxEVT_COMMAND_TOOL_CLICKED event (a synonym for wxEVT_COMMAND_MENU_SELECTED). Pass the id of the tool", + "m_noBody": false + }, { + "m_eventName": "wxEVT_UPDATE_UI", + "m_eventClass": "wxUpdateUIEvent", + "m_eventHandler": "wxUpdateUIEventHandler", + "m_functionNameAndSignature": "OnLinkEditorUI(wxUpdateUIEvent& event)", + "m_description": "Process a wxEVT_UPDATE_UI event", + "m_noBody": false + }], + "m_children": [] + }] + }, { + "m_type": 4447, + "proportion": 0, + "border": 2, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxSP_LIVE_UPDATE", "wxSP_3DSASH"], + "m_sizerFlags": ["wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_splitter" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "Resize the configuration bar" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Split Mode:", + "m_selection": 0, + "m_options": ["wxSPLIT_VERTICAL", "wxSPLIT_HORIZONTAL"] + }, { + "type": "string", + "m_label": "Sash Gravity:", + "m_value": "0" + }, { + "type": "string", + "m_label": "Minimum Pane Size:", + "m_value": "100" + }, { + "type": "string", + "m_label": "Sash Position:", + "m_value": "0" + }], + "m_events": [], + "m_children": [{ + "m_type": 4448, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxTAB_TRAVERSAL"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" }, { "type": "string", "m_label": "Name:", - "m_value": "m_workspaceConfig" + "m_value": "m_splitterPage308" }, { "type": "multi-string", "m_label": "Tooltip:", - "m_value": "Select the workspace build configuration" + "m_value": "" }, { "type": "colour", "m_label": "Bg Colour:", @@ -5014,35 +4269,381 @@ "type": "string", "m_label": "Style:", "m_value": "" + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "boxSizer314" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4411, + "proportion": 0, + "border": 2, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_choiceActiveProject" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "Select the active project" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Choices:", + "m_value": "" + }, { + "type": "string", + "m_label": "Selection:", + "m_value": "" + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_CHOICE_SELECTED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnChoiceActiveProject(wxCommandEvent& event)", + "m_description": "Process a wxEVT_COMMAND_CHOICE_SELECTED event, when an item on the list is selected.", + "m_noBody": false + }, { + "m_eventName": "wxEVT_UPDATE_UI", + "m_eventClass": "wxUpdateUIEvent", + "m_eventHandler": "wxUpdateUIEventHandler", + "m_functionNameAndSignature": "OnChoiceActiveProjectUI(wxUpdateUIEvent& event)", + "m_description": "Process a wxEVT_UPDATE_UI event", + "m_noBody": false + }], + "m_children": [] + }] + }] + }, { + "m_type": 4448, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxTAB_TRAVERSAL"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_splitterPage312" }, { "type": "multi-string", - "m_label": "Choices:", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", "m_value": "" }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { "type": "string", - "m_label": "Selection:", + "m_label": "Class Name:", "m_value": "" - }], - "m_events": [{ - "m_eventName": "wxEVT_COMMAND_CHOICE_SELECTED", - "m_eventClass": "wxCommandEvent", - "m_eventHandler": "wxCommandEventHandler", - "m_functionNameAndSignature": "OnConfigurationManagerChoice(wxCommandEvent& event)", - "m_description": "Process a wxEVT_COMMAND_CHOICE_SELECTED event, when an item on the list is selected.", - "m_noBody": false }, { - "m_eventName": "wxEVT_UPDATE_UI", - "m_eventClass": "wxUpdateUIEvent", - "m_eventHandler": "wxUpdateUIEventHandler", - "m_functionNameAndSignature": "OnConfigurationManagerChoiceUI(wxUpdateUIEvent& event)", - "m_description": "Process a wxEVT_UPDATE_UI event", - "m_noBody": false - }], - "m_children": [] - }] - }] - }] - }] + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "boxSizer316" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4411, + "proportion": 0, + "border": 2, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_workspaceConfig" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "Select the workspace build configuration" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Choices:", + "m_value": "" + }, { + "type": "string", + "m_label": "Selection:", + "m_value": "" + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_CHOICE_SELECTED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnConfigurationManagerChoice(wxCommandEvent& event)", + "m_description": "Process a wxEVT_COMMAND_CHOICE_SELECTED event, when an item on the list is selected.", + "m_noBody": false + }, { + "m_eventName": "wxEVT_UPDATE_UI", + "m_eventClass": "wxUpdateUIEvent", + "m_eventHandler": "wxUpdateUIEventHandler", + "m_functionNameAndSignature": "OnConfigurationManagerChoiceUI(wxUpdateUIEvent& event)", + "m_description": "Process a wxEVT_UPDATE_UI event", + "m_noBody": false + }], + "m_children": [] + }] + }] + }] + }, { + "m_type": 4422, + "proportion": 1, + "border": 2, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxTR_MULTIPLE", "wxTR_FULL_ROW_HIGHLIGHT", "wxTR_NO_LINES", "wxTR_HAS_BUTTONS", "wxBORDER_NONE"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_fileView" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "FileViewTree" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "fileview.h" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }], + "m_events": [], + "m_children": [] + }] + }] + }] }] }] }, { @@ -7561,12 +7162,949 @@ }] }] }, { - "m_type": 4407, + "m_type": 4407, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxTAB_TRAVERSAL"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "ClangOutputTabBase" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Title:", + "m_value": "" + }, { + "type": "virtualFolderPicker", + "m_label": "Virtual Folder:", + "m_path": "CodeLiteIDE:Docking Windows" + }, { + "type": "choice", + "m_label": "Centre:", + "m_selection": 1, + "m_options": ["", "wxBOTH", "wxVERTICAL", "wxHORIZONTAL"] + }, { + "type": "string", + "m_label": "Inherited Class", + "m_value": "ClangOutputTab" + }, { + "type": "string", + "m_label": "File:", + "m_value": "ClangOutputTab" + }, { + "type": "string", + "m_label": "Class Decorator", + "m_value": "" + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "boxSizer424" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4463, + "proportion": 0, + "border": 0, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxAUI_TB_PLAIN_BACKGROUND", "wxAUI_TB_DEFAULT_STYLE"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_auibar" + }, { + "type": "string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "string", + "m_label": "Bitmap Size:", + "m_value": "16,16" + }, { + "type": "string", + "m_label": "Margins:", + "m_value": "-1,-1" + }], + "m_events": [], + "m_children": [{ + "m_type": 4415, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_checkBoxEnableClang" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "Enable Clang code completion" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Enable Clang" + }, { + "type": "bool", + "m_label": "Value:", + "m_value": false + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_CHECKBOX_CLICKED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnEnableClang(wxCommandEvent& event)", + "m_description": "Process a wxEVT_COMMAND_CHECKBOX_CLICKED event, when the checkbox is clicked.", + "m_noBody": false + }, { + "m_eventName": "wxEVT_UPDATE_UI", + "m_eventClass": "wxUpdateUIEvent", + "m_eventHandler": "wxUpdateUIEventHandler", + "m_functionNameAndSignature": "OnEnableClangUI(wxUpdateUIEvent& event)", + "m_description": "Process a wxEVT_UPDATE_UI event", + "m_noBody": false + }], + "m_children": [] + }, { + "m_type": 4415, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_checkBoxShowErrors" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "Display Clang errors as text annotations inside the editor (i.e. as an inline messages)" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Inline Errors" + }, { + "type": "bool", + "m_label": "Value:", + "m_value": false + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_CHECKBOX_CLICKED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnShowAnnotations(wxCommandEvent& event)", + "m_description": "Process a wxEVT_COMMAND_CHECKBOX_CLICKED event, when the checkbox is clicked.", + "m_noBody": false + }, { + "m_eventName": "wxEVT_UPDATE_UI", + "m_eventClass": "wxUpdateUIEvent", + "m_eventHandler": "wxUpdateUIEventHandler", + "m_functionNameAndSignature": "OnShowAnnotationsUI(wxUpdateUIEvent& event)", + "m_description": "Process a wxEVT_UPDATE_UI event", + "m_noBody": false + }], + "m_children": [] + }, { + "m_type": 4462, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "ID_TOOL_CLEAR_ALL" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_toolbarItem430" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Clear Clang Cache" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "Clear Clang Cache" + }, { + "type": "string", + "m_label": "Help String:", + "m_value": "Clear Clang Cache" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "../codelite-icons/toolbars/16/build/clean.png" + }, { + "type": "filePicker", + "m_label": "Disabled-Bitmap File", + "m_path": "" + }, { + "type": "choice", + "m_label": "Kind:", + "m_selection": 0, + "m_options": ["normal", "checkable", "radio", "separator", "dropdown"] + }, { + "type": "bool", + "m_label": "Construct the Dropdown Menu:", + "m_value": true + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_TOOL_CLICKED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnClearCache(wxCommandEvent& event)", + "m_description": "Process a wxEVT_COMMAND_TOOL_CLICKED event (a synonym for wxEVT_COMMAND_MENU_SELECTED). Pass the id of the tool", + "m_noBody": false + }, { + "m_eventName": "wxEVT_UPDATE_UI", + "m_eventClass": "wxUpdateUIEvent", + "m_eventHandler": "wxUpdateUIEventHandler", + "m_functionNameAndSignature": "OnClearCacheUI(wxUpdateUIEvent& event)", + "m_description": "Process a wxEVT_UPDATE_UI event", + "m_noBody": false + }], + "m_children": [] + }, { + "m_type": 4462, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "ID_TOOL_CLEAR_LOG" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_toolbarItem446" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Clear Log" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "Clear Log" + }, { + "type": "string", + "m_label": "Help String:", + "m_value": "Clear Log" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "../codelite-icons/output-pane/16/clear.png" + }, { + "type": "filePicker", + "m_label": "Disabled-Bitmap File", + "m_path": "" + }, { + "type": "choice", + "m_label": "Kind:", + "m_selection": 0, + "m_options": ["normal", "checkable", "radio", "separator", "dropdown"] + }, { + "type": "bool", + "m_label": "Construct the Dropdown Menu:", + "m_value": true + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_TOOL_CLICKED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnClearText(wxCommandEvent& event)", + "m_description": "Process a wxEVT_COMMAND_TOOL_CLICKED event (a synonym for wxEVT_COMMAND_MENU_SELECTED). Pass the id of the tool", + "m_noBody": false + }, { + "m_eventName": "wxEVT_UPDATE_UI", + "m_eventClass": "wxUpdateUIEvent", + "m_eventHandler": "wxUpdateUIEventHandler", + "m_functionNameAndSignature": "OnClearTextUI(wxUpdateUIEvent& event)", + "m_description": "Process a wxEVT_UPDATE_UI event", + "m_noBody": false + }], + "m_children": [] + }] + }, { + "m_type": 4466, + "proportion": 1, + "border": 2, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxBORDER_STATIC"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_stc" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Fold Margin", + "m_value": false + }, { + "type": "bool", + "m_label": "Line Number Margin", + "m_value": false + }, { + "type": "bool", + "m_label": "Separator Margin", + "m_value": false + }, { + "type": "bool", + "m_label": "Symbol Margin", + "m_value": false + }, { + "type": "choice", + "m_label": "Wrap Text", + "m_selection": 0, + "m_options": ["None", "Word", "Char"] + }, { + "type": "choice", + "m_label": "Indentation Guides", + "m_selection": 0, + "m_options": ["None", "Real", "Look Forward", "Look Both"] + }, { + "type": "choice", + "m_label": "EOL Mode", + "m_selection": 3, + "m_options": ["CRLF", "CR", "LF", "Default"] + }, { + "type": "bool", + "m_label": "Display EOL Markers", + "m_value": false + }, { + "type": "choice", + "m_label": "Lexer", + "m_selection": 58, + "m_options": ["wxSTC_LEX_ABAQUS", "wxSTC_LEX_ADA", "wxSTC_LEX_APDL", "wxSTC_LEX_ASM", "wxSTC_LEX_ASN1", "wxSTC_LEX_ASYMPTOTE", "wxSTC_LEX_AUTOMATIC", "wxSTC_LEX_AVE", "wxSTC_LEX_BAAN", "wxSTC_LEX_BASH", "wxSTC_LEX_BATCH", "wxSTC_LEX_BLITZBASIC", "wxSTC_LEX_BULLANT", "wxSTC_LEX_CAML", "wxSTC_LEX_CLW", "wxSTC_LEX_CLWNOCASE", "wxSTC_LEX_CMAKE", "wxSTC_LEX_COBOL", "wxSTC_LEX_CONF", "wxSTC_LEX_CONTAINER", "wxSTC_LEX_CPP", "wxSTC_LEX_CPPNOCASE", "wxSTC_LEX_CSOUND", "wxSTC_LEX_CSS", "wxSTC_LEX_D", "wxSTC_LEX_DIFF", "wxSTC_LEX_EIFFEL", "wxSTC_LEX_EIFFELKW", "wxSTC_LEX_ERLANG", "wxSTC_LEX_ERRORLIST", "wxSTC_LEX_ESCRIPT", "wxSTC_LEX_F77", "wxSTC_LEX_FLAGSHIP", "wxSTC_LEX_FORTH", "wxSTC_LEX_FORTRAN", "wxSTC_LEX_FREEBASIC", "wxSTC_LEX_GAP", "wxSTC_LEX_GUI4CLI", "wxSTC_LEX_HASKELL", "wxSTC_LEX_HTML", "wxSTC_LEX_INNOSETUP", "wxSTC_LEX_KIX", "wxSTC_LEX_LATEX", "wxSTC_LEX_LISP", "wxSTC_LEX_LOT", "wxSTC_LEX_LOUT", "wxSTC_LEX_LUA", "wxSTC_LEX_MAGIK", "wxSTC_LEX_MAKEFILE", "wxSTC_LEX_MARKDOWN", "wxSTC_LEX_MATLAB", "wxSTC_LEX_METAPOST", "wxSTC_LEX_MMIXAL", "wxSTC_LEX_MSSQL", "wxSTC_LEX_MYSQL", "wxSTC_LEX_NIMROD", "wxSTC_LEX_NNCRONTAB", "wxSTC_LEX_NSIS", "wxSTC_LEX_NULL", "wxSTC_LEX_OCTAVE", "wxSTC_LEX_OPAL", "wxSTC_LEX_PASCAL", "wxSTC_LEX_PERL", "wxSTC_LEX_PHPSCRIPT", "wxSTC_LEX_PLM", "wxSTC_LEX_PO", "wxSTC_LEX_POV", "wxSTC_LEX_POWERBASIC", "wxSTC_LEX_POWERPRO", "wxSTC_LEX_POWERSHELL", "wxSTC_LEX_PROGRESS", "wxSTC_LEX_PROPERTIES", "wxSTC_LEX_PS", "wxSTC_LEX_PUREBASIC", "wxSTC_LEX_PYTHON", "wxSTC_LEX_R", "wxSTC_LEX_REBOL", "wxSTC_LEX_RUBY", "wxSTC_LEX_SCRIPTOL", "wxSTC_LEX_SMALLTALK", "wxSTC_LEX_SML", "wxSTC_LEX_SORCUS", "wxSTC_LEX_SPECMAN", "wxSTC_LEX_SPICE", "wxSTC_LEX_SQL", "wxSTC_LEX_TACL", "wxSTC_LEX_TADS3", "wxSTC_LEX_TAL", "wxSTC_LEX_TCL", "wxSTC_LEX_TEX", "wxSTC_LEX_VB", "wxSTC_LEX_VBSCRIPT", "wxSTC_LEX_VERILOG", "wxSTC_LEX_VHDL", "wxSTC_LEX_XCODE", "wxSTC_LEX_XML", "wxSTC_LEX_YAML"] + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Keywords Set 1", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Keywords Set 2", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Keywords Set 3", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Keywords Set 4", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Keywords Set 5", + "m_value": "" + }], + "m_events": [], + "m_children": [] + }] + }] + }, { + "m_type": 4518, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxAUI_TB_PLAIN_BACKGROUND", "wxAUI_TB_DEFAULT_STYLE"], + "m_sizerFlags": [], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "FileExplorerTabToolBarBase" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "string", + "m_label": "Inherited Class", + "m_value": "FileExplorerTabToolBar" + }, { + "type": "string", + "m_label": "File:", + "m_value": "FileExplorerTabToolBar" + }, { + "type": "string", + "m_label": "Class Decorator", + "m_value": "" + }, { + "type": "virtualFolderPicker", + "m_label": "Virtual Folder:", + "m_path": "CodeLiteIDE:Docking Windows" + }, { + "type": "string", + "m_label": "Bitmap Size:", + "m_value": "16,16" + }, { + "type": "string", + "m_label": "Margins:", + "m_value": "-1,-1" + }], + "m_events": [], + "m_children": [{ + "m_type": 4462, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "XRCID(\"collapse_all\")" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_toolbarItemCollaps" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Collapse All" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "Collapse All" + }, { + "type": "string", + "m_label": "Help String:", + "m_value": "Collapse All" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "res/collapse.png" + }, { + "type": "filePicker", + "m_label": "Disabled-Bitmap File", + "m_path": "" + }, { + "type": "choice", + "m_label": "Kind:", + "m_selection": 0, + "m_options": ["normal", "checkable", "radio", "separator", "dropdown"] + }, { + "type": "bool", + "m_label": "Construct the Dropdown Menu:", + "m_value": true + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4462, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "XRCID(\"go_home\")" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_toolbarItemGoHome" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Go Home" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "Go Home" + }, { + "type": "string", + "m_label": "Help String:", + "m_value": "Go Home" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "res/gohome.png" + }, { + "type": "filePicker", + "m_label": "Disabled-Bitmap File", + "m_path": "" + }, { + "type": "choice", + "m_label": "Kind:", + "m_selection": 0, + "m_options": ["normal", "checkable", "radio", "separator", "dropdown"] + }, { + "type": "bool", + "m_label": "Construct the Dropdown Menu:", + "m_value": true + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4462, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "ID_TOOL_EXPLORER_BOOKMARKS" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_toolbarItemBookmark" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Bookmark" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "Bookmark Selected Folder" + }, { + "type": "string", + "m_label": "Help String:", + "m_value": "Bookmark Selected Folder" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "../codelite-icons/toolbars/16/standard/bookmark.png" + }, { + "type": "filePicker", + "m_label": "Disabled-Bitmap File", + "m_path": "" + }, { + "type": "choice", + "m_label": "Kind:", + "m_selection": 4, + "m_options": ["normal", "checkable", "radio", "separator", "dropdown"] + }, { + "type": "bool", + "m_label": "Construct the Dropdown Menu:", + "m_value": false + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4462, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "ID_TOOL_GOTO_FOLDER" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_toolbarItem467" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "GoTo" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "Goto Folder" + }, { + "type": "string", + "m_label": "Help String:", + "m_value": "Goto Folder" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "res/goto.png" + }, { + "type": "filePicker", + "m_label": "Disabled-Bitmap File", + "m_path": "" + }, { + "type": "choice", + "m_label": "Kind:", + "m_selection": 0, + "m_options": ["normal", "checkable", "radio", "separator", "dropdown"] + }, { + "type": "bool", + "m_label": "Construct the Dropdown Menu:", + "m_value": true + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4462, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "ID_TOOL_FIND_IN_FILES" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_toolbarItemFindInFiles" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Find In Files" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "Find In Files" + }, { + "type": "string", + "m_label": "Help String:", + "m_value": "Find In Files" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "../codelite-icons/toolbars/16/search/find-in-files.png" + }, { + "type": "filePicker", + "m_label": "Disabled-Bitmap File", + "m_path": "" + }, { + "type": "choice", + "m_label": "Kind:", + "m_selection": 0, + "m_options": ["normal", "checkable", "radio", "separator", "dropdown"] + }, { + "type": "bool", + "m_label": "Construct the Dropdown Menu:", + "m_value": true + }], + "m_events": [{ + "m_eventName": "wxEVT_UPDATE_UI", + "m_eventClass": "wxUpdateUIEvent", + "m_eventHandler": "wxUpdateUIEventHandler", + "m_functionNameAndSignature": "OnFindInFilesUI(wxUpdateUIEvent& event)", + "m_description": "Process a wxEVT_UPDATE_UI event", + "m_noBody": false + }], + "m_children": [] + }, { + "m_type": 4516, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "m_auitbarStretchSpace497" + }, { + "type": "string", + "m_label": "Proportion:", + "m_value": "1" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4462, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "XRCID(\"link_editor\")" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_toolbarItemLinkEditor" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Link Editor" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "Link Editor" + }, { + "type": "string", + "m_label": "Help String:", + "m_value": "Link Editor" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "res/link_editor.png" + }, { + "type": "filePicker", + "m_label": "Disabled-Bitmap File", + "m_path": "" + }, { + "type": "choice", + "m_label": "Kind:", + "m_selection": 1, + "m_options": ["normal", "checkable", "radio", "separator", "dropdown"] + }, { + "type": "bool", + "m_label": "Construct the Dropdown Menu:", + "m_value": true + }], + "m_events": [], + "m_children": [] + }] + }, { + "m_type": 4421, "proportion": 0, "border": 5, "gbSpan": "1,1", "gbPosition": "0,0", - "m_styles": ["wxTAB_TRAVERSAL"], + "m_styles": ["wxDEFAULT_DIALOG_STYLE", "wxRESIZE_BORDER"], "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], "m_properties": [{ "type": "string", @@ -7579,7 +8117,7 @@ }, { "type": "string", "m_label": "Name:", - "m_value": "ClangOutputTabBase" + "m_value": "OpenFolderDlgBase" }, { "type": "multi-string", "m_label": "Tooltip:", @@ -7621,13 +8159,17 @@ "m_label": "Style:", "m_value": "" }, { + "type": "bool", + "m_label": "Enable Window Persistency:", + "m_value": true + }, { "type": "string", "m_label": "Title:", - "m_value": "" + "m_value": "Open Folder" }, { "type": "virtualFolderPicker", "m_label": "Virtual Folder:", - "m_path": "CodeLiteIDE:Docking Windows" + "m_path": "CodeLiteIDE:Dialogs" }, { "type": "choice", "m_label": "Centre:", @@ -7636,15 +8178,35 @@ }, { "type": "string", "m_label": "Inherited Class", - "m_value": "ClangOutputTab" + "m_value": "OpenFolderDlg" }, { "type": "string", "m_label": "File:", - "m_value": "ClangOutputTab" + "m_value": "OpenFolderDlg" }, { "type": "string", "m_label": "Class Decorator", "m_value": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (16x16) :", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (32x32) :", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (64x64) :", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (128x128):", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (256x256):", + "m_path": "" }], "m_events": [], "m_children": [{ @@ -7662,7 +8224,7 @@ }, { "type": "string", "m_label": "Name:", - "m_value": "boxSizer424" + "m_value": "boxSizer471" }, { "type": "string", "m_label": "Style:", @@ -7675,271 +8237,59 @@ }], "m_events": [], "m_children": [{ - "m_type": 4463, - "proportion": 0, - "border": 0, + "m_type": 4403, + "proportion": 1, + "border": 5, "gbSpan": "1,1", "gbPosition": "0,0", - "m_styles": ["wxAUI_TB_PLAIN_BACKGROUND", "wxAUI_TB_DEFAULT_STYLE"], + "m_styles": [], "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { "type": "string", - "m_label": "Size:", + "m_label": "Minimum Size:", "m_value": "-1,-1" }, { "type": "string", "m_label": "Name:", - "m_value": "m_auibar" + "m_value": "flexGridSizer483" }, { "type": "string", - "m_label": "Tooltip:", + "m_label": "Style:", "m_value": "" }, { "type": "string", - "m_label": "Bitmap Size:", - "m_value": "16,16" + "m_label": "# Columns:", + "m_value": "2" }, { "type": "string", - "m_label": "Margins:", - "m_value": "-1,-1" - }], - "m_events": [], - "m_children": [{ - "m_type": 4415, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_checkBoxEnableClang" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "Enable Clang code completion" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "Enable Clang" - }, { - "type": "bool", - "m_label": "Value:", - "m_value": false - }], - "m_events": [{ - "m_eventName": "wxEVT_COMMAND_CHECKBOX_CLICKED", - "m_eventClass": "wxCommandEvent", - "m_eventHandler": "wxCommandEventHandler", - "m_functionNameAndSignature": "OnEnableClang(wxCommandEvent& event)", - "m_description": "Process a wxEVT_COMMAND_CHECKBOX_CLICKED event, when the checkbox is clicked.", - "m_noBody": false - }, { - "m_eventName": "wxEVT_UPDATE_UI", - "m_eventClass": "wxUpdateUIEvent", - "m_eventHandler": "wxUpdateUIEventHandler", - "m_functionNameAndSignature": "OnEnableClangUI(wxUpdateUIEvent& event)", - "m_description": "Process a wxEVT_UPDATE_UI event", - "m_noBody": false - }], - "m_children": [] + "m_label": "# Rows:", + "m_value": "0" }, { - "m_type": 4415, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_checkBoxShowErrors" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "Display Clang errors as text annotations inside the editor (i.e. as an inline messages)" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "Inline Errors" - }, { - "type": "bool", - "m_label": "Value:", - "m_value": false - }], - "m_events": [{ - "m_eventName": "wxEVT_COMMAND_CHECKBOX_CLICKED", - "m_eventClass": "wxCommandEvent", - "m_eventHandler": "wxCommandEventHandler", - "m_functionNameAndSignature": "OnShowAnnotations(wxCommandEvent& event)", - "m_description": "Process a wxEVT_COMMAND_CHECKBOX_CLICKED event, when the checkbox is clicked.", - "m_noBody": false - }, { - "m_eventName": "wxEVT_UPDATE_UI", - "m_eventClass": "wxUpdateUIEvent", - "m_eventHandler": "wxUpdateUIEventHandler", - "m_functionNameAndSignature": "OnShowAnnotationsUI(wxUpdateUIEvent& event)", - "m_description": "Process a wxEVT_UPDATE_UI event", - "m_noBody": false - }], - "m_children": [] + "type": "string", + "m_label": "Growable columns:", + "m_value": "1" }, { - "m_type": 4516, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "m_auitbarStretchSpace442" - }, { - "type": "string", - "m_label": "Proportion:", - "m_value": "1" - }], - "m_events": [], - "m_children": [] + "type": "string", + "m_label": "Growable rows:", + "m_value": "" }, { - "m_type": 4514, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_auitbarLabel436" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "Cache policy:" - }, { - "type": "string", - "m_label": "Width:", - "m_value": "-1" - }], - "m_events": [], - "m_children": [] + "type": "string", + "m_label": "Horizontal gap:", + "m_value": "0" }, { - "m_type": 4411, + "type": "string", + "m_label": "Vertical gap:", + "m_value": "0" + }], + "m_events": [], + "m_children": [{ + "m_type": 4405, "proportion": 0, "border": 5, "gbSpan": "1,1", "gbPosition": "0,0", "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_VERTICAL"], "m_properties": [{ "type": "winid", "m_label": "ID:", @@ -7947,7 +8297,7 @@ }, { "type": "string", "m_label": "Size:", - "m_value": "200,-1" + "m_value": "-1,-1" }, { "type": "string", "m_label": "Minimum Size:", @@ -7955,7 +8305,7 @@ }, { "type": "string", "m_label": "Name:", - "m_value": "m_choiceCache" + "m_value": "m_staticText479" }, { "type": "multi-string", "m_label": "Tooltip:", @@ -7998,162 +8348,111 @@ "m_value": "" }, { "type": "multi-string", - "m_label": "Choices:", - "m_value": "" + "m_label": "Label:", + "m_value": "Goto Folder:" }, { "type": "string", - "m_label": "Selection:", - "m_value": "" - }], - "m_events": [{ - "m_eventName": "wxEVT_COMMAND_CHOICE_SELECTED", - "m_eventClass": "wxCommandEvent", - "m_eventHandler": "wxCommandEventHandler", - "m_functionNameAndSignature": "OnPolicy(wxCommandEvent& event)", - "m_description": "Process a wxEVT_COMMAND_CHOICE_SELECTED event, when an item on the list is selected.", - "m_noBody": false - }, { - "m_eventName": "wxEVT_UPDATE_UI", - "m_eventClass": "wxUpdateUIEvent", - "m_eventHandler": "wxUpdateUIEventHandler", - "m_functionNameAndSignature": "OnPolicyUI(wxUpdateUIEvent& event)", - "m_description": "Process a wxEVT_UPDATE_UI event", - "m_noBody": false + "m_label": "Wrap:", + "m_value": "-1" }], + "m_events": [], "m_children": [] }, { - "m_type": 4462, + "m_type": 4406, "proportion": 0, "border": 5, "gbSpan": "1,1", "gbPosition": "0,0", "m_styles": [], - "m_sizerFlags": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "winid", "m_label": "ID:", - "m_winid": "ID_TOOL_CLEAR_ALL" + "m_winid": "wxID_ANY" }, { "type": "string", - "m_label": "Name:", - "m_value": "m_toolbarItem430" + "m_label": "Size:", + "m_value": "400,-1" }, { "type": "string", - "m_label": "Label:", - "m_value": "Clear Clang Cache" + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_textCtrlFolder" }, { "type": "multi-string", "m_label": "Tooltip:", - "m_value": "Clear Clang Cache" + "m_value": "" }, { - "type": "string", - "m_label": "Help String:", - "m_value": "Clear Clang Cache" + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" }, { - "type": "bitmapPicker", - "m_label": "Bitmap File:", - "m_path": "../codelite-icons/toolbars/16/build/clean.png" + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" }, { - "type": "filePicker", - "m_label": "Disabled-Bitmap File", - "m_path": "" + "type": "font", + "m_label": "Font:", + "m_value": "" }, { - "type": "choice", - "m_label": "Kind:", - "m_selection": 0, - "m_options": ["normal", "checkable", "radio", "separator", "dropdown"] + "type": "bool", + "m_label": "Hidden", + "m_value": false }, { "type": "bool", - "m_label": "Construct the Dropdown Menu:", - "m_value": true - }], - "m_events": [{ - "m_eventName": "wxEVT_COMMAND_TOOL_CLICKED", - "m_eventClass": "wxCommandEvent", - "m_eventHandler": "wxCommandEventHandler", - "m_functionNameAndSignature": "OnClearCache(wxCommandEvent& event)", - "m_description": "Process a wxEVT_COMMAND_TOOL_CLICKED event (a synonym for wxEVT_COMMAND_MENU_SELECTED). Pass the id of the tool", - "m_noBody": false + "m_label": "Disabled", + "m_value": false }, { - "m_eventName": "wxEVT_UPDATE_UI", - "m_eventClass": "wxUpdateUIEvent", - "m_eventHandler": "wxUpdateUIEventHandler", - "m_functionNameAndSignature": "OnClearCacheUI(wxUpdateUIEvent& event)", - "m_description": "Process a wxEVT_UPDATE_UI event", - "m_noBody": false - }], - "m_children": [] - }, { - "m_type": 4462, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "ID_TOOL_CLEAR_LOG" + "type": "bool", + "m_label": "Focused", + "m_value": true }, { "type": "string", - "m_label": "Name:", - "m_value": "m_toolbarItem446" + "m_label": "Class Name:", + "m_value": "" }, { "type": "string", - "m_label": "Label:", - "m_value": "Clear Log" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "Clear Log" + "m_label": "Include File:", + "m_value": "" }, { "type": "string", - "m_label": "Help String:", - "m_value": "Clear Log" + "m_label": "Style:", + "m_value": "" }, { - "type": "bitmapPicker", - "m_label": "Bitmap File:", - "m_path": "../codelite-icons/output-pane/16/clear.png" + "type": "string", + "m_label": "Value:", + "m_value": "" }, { - "type": "filePicker", - "m_label": "Disabled-Bitmap File", - "m_path": "" + "type": "string", + "m_label": "Text Hint", + "m_value": "Type the folder path" }, { - "type": "choice", - "m_label": "Kind:", - "m_selection": 0, - "m_options": ["normal", "checkable", "radio", "separator", "dropdown"] + "type": "string", + "m_label": "Max Length:", + "m_value": "0" }, { "type": "bool", - "m_label": "Construct the Dropdown Menu:", + "m_label": "Auto Complete Directories:", "m_value": true - }], - "m_events": [{ - "m_eventName": "wxEVT_COMMAND_TOOL_CLICKED", - "m_eventClass": "wxCommandEvent", - "m_eventHandler": "wxCommandEventHandler", - "m_functionNameAndSignature": "OnClearText(wxCommandEvent& event)", - "m_description": "Process a wxEVT_COMMAND_TOOL_CLICKED event (a synonym for wxEVT_COMMAND_MENU_SELECTED). Pass the id of the tool", - "m_noBody": false }, { - "m_eventName": "wxEVT_UPDATE_UI", - "m_eventClass": "wxUpdateUIEvent", - "m_eventHandler": "wxUpdateUIEventHandler", - "m_functionNameAndSignature": "OnClearTextUI(wxUpdateUIEvent& event)", - "m_description": "Process a wxEVT_UPDATE_UI event", - "m_noBody": false + "type": "bool", + "m_label": "Auto Complete Files:", + "m_value": false }], + "m_events": [], "m_children": [] }] }, { - "m_type": 4466, - "proportion": 1, - "border": 2, + "m_type": 4467, + "proportion": 0, + "border": 5, "gbSpan": "1,1", "gbPosition": "0,0", "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_HORIZONTAL"], "m_properties": [{ "type": "winid", "m_label": "ID:", @@ -8164,473 +8463,412 @@ "m_value": "-1,-1" }, { "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_stc" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Fold Margin", - "m_value": false - }, { - "type": "bool", - "m_label": "Line Number Margin", - "m_value": false - }, { - "type": "bool", - "m_label": "Separator Margin", - "m_value": false - }, { - "type": "bool", - "m_label": "Symbol Margin", - "m_value": false - }, { - "type": "choice", - "m_label": "Wrap Text", - "m_selection": 0, - "m_options": ["None", "Word", "Char"] + "m_label": "Minimum Size:", + "m_value": "-1,-1" }, { - "type": "choice", - "m_label": "Indentation Guides", - "m_selection": 0, - "m_options": ["None", "Real", "Look Forward", "Look Both"] + "type": "string", + "m_label": "Name:", + "m_value": "m_stdBtnSizer473" }, { - "type": "choice", - "m_label": "EOL Mode", - "m_selection": 3, - "m_options": ["CRLF", "CR", "LF", "Default"] + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" }, { - "type": "bool", - "m_label": "Display EOL Markers", - "m_value": false + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" }, { - "type": "choice", - "m_label": "Lexer", - "m_selection": 58, - "m_options": ["wxSTC_LEX_ABAQUS", "wxSTC_LEX_ADA", "wxSTC_LEX_APDL", "wxSTC_LEX_ASM", "wxSTC_LEX_ASN1", "wxSTC_LEX_ASYMPTOTE", "wxSTC_LEX_AUTOMATIC", "wxSTC_LEX_AVE", "wxSTC_LEX_BAAN", "wxSTC_LEX_BASH", "wxSTC_LEX_BATCH", "wxSTC_LEX_BLITZBASIC", "wxSTC_LEX_BULLANT", "wxSTC_LEX_CAML", "wxSTC_LEX_CLW", "wxSTC_LEX_CLWNOCASE", "wxSTC_LEX_CMAKE", "wxSTC_LEX_COBOL", "wxSTC_LEX_CONF", "wxSTC_LEX_CONTAINER", "wxSTC_LEX_CPP", "wxSTC_LEX_CPPNOCASE", "wxSTC_LEX_CSOUND", "wxSTC_LEX_CSS", "wxSTC_LEX_D", "wxSTC_LEX_DIFF", "wxSTC_LEX_EIFFEL", "wxSTC_LEX_EIFFELKW", "wxSTC_LEX_ERLANG", "wxSTC_LEX_ERRORLIST", "wxSTC_LEX_ESCRIPT", "wxSTC_LEX_F77", "wxSTC_LEX_FLAGSHIP", "wxSTC_LEX_FORTH", "wxSTC_LEX_FORTRAN", "wxSTC_LEX_FREEBASIC", "wxSTC_LEX_GAP", "wxSTC_LEX_GUI4CLI", "wxSTC_LEX_HASKELL", "wxSTC_LEX_HTML", "wxSTC_LEX_INNOSETUP", "wxSTC_LEX_KIX", "wxSTC_LEX_LATEX", "wxSTC_LEX_LISP", "wxSTC_LEX_LOT", "wxSTC_LEX_LOUT", "wxSTC_LEX_LUA", "wxSTC_LEX_MAGIK", "wxSTC_LEX_MAKEFILE", "wxSTC_LEX_MARKDOWN", "wxSTC_LEX_MATLAB", "wxSTC_LEX_METAPOST", "wxSTC_LEX_MMIXAL", "wxSTC_LEX_MSSQL", "wxSTC_LEX_MYSQL", "wxSTC_LEX_NIMROD", "wxSTC_LEX_NNCRONTAB", "wxSTC_LEX_NSIS", "wxSTC_LEX_NULL", "wxSTC_LEX_OCTAVE", "wxSTC_LEX_OPAL", "wxSTC_LEX_PASCAL", "wxSTC_LEX_PERL", "wxSTC_LEX_PHPSCRIPT", "wxSTC_LEX_PLM", "wxSTC_LEX_PO", "wxSTC_LEX_POV", "wxSTC_LEX_POWERBASIC", "wxSTC_LEX_POWERPRO", "wxSTC_LEX_POWERSHELL", "wxSTC_LEX_PROGRESS", "wxSTC_LEX_PROPERTIES", "wxSTC_LEX_PS", "wxSTC_LEX_PUREBASIC", "wxSTC_LEX_PYTHON", "wxSTC_LEX_R", "wxSTC_LEX_REBOL", "wxSTC_LEX_RUBY", "wxSTC_LEX_SCRIPTOL", "wxSTC_LEX_SMALLTALK", "wxSTC_LEX_SML", "wxSTC_LEX_SORCUS", "wxSTC_LEX_SPECMAN", "wxSTC_LEX_SPICE", "wxSTC_LEX_SQL", "wxSTC_LEX_TACL", "wxSTC_LEX_TADS3", "wxSTC_LEX_TAL", "wxSTC_LEX_TCL", "wxSTC_LEX_TEX", "wxSTC_LEX_VB", "wxSTC_LEX_VBSCRIPT", "wxSTC_LEX_VERILOG", "wxSTC_LEX_VHDL", "wxSTC_LEX_XCODE", "wxSTC_LEX_XML", "wxSTC_LEX_YAML"] + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" }, { "type": "font", "m_label": "Font:", "m_value": "" }, { - "type": "multi-string", - "m_label": "Keywords Set 1", - "m_value": "" + "type": "bool", + "m_label": "Hidden", + "m_value": false }, { - "type": "multi-string", - "m_label": "Keywords Set 2", - "m_value": "" + "type": "bool", + "m_label": "Disabled", + "m_value": false }, { - "type": "multi-string", - "m_label": "Keywords Set 3", + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", "m_value": "" }, { - "type": "multi-string", - "m_label": "Keywords Set 4", + "type": "string", + "m_label": "Include File:", "m_value": "" }, { - "type": "multi-string", - "m_label": "Keywords Set 5", + "type": "string", + "m_label": "Style:", "m_value": "" }], "m_events": [], - "m_children": [] + "m_children": [{ + "m_type": 4468, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "choice", + "m_label": "ID:", + "m_selection": 0, + "m_options": ["wxID_OK", "wxID_YES", "wxID_SAVE", "wxID_APPLY", "wxID_CLOSE", "wxID_NO", "wxID_CANCEL", "wxID_HELP", "wxID_CONTEXT_HELP"] + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_button475" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Default Button", + "m_value": true + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4468, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "choice", + "m_label": "ID:", + "m_selection": 6, + "m_options": ["wxID_OK", "wxID_YES", "wxID_SAVE", "wxID_APPLY", "wxID_CLOSE", "wxID_NO", "wxID_CANCEL", "wxID_HELP", "wxID_CONTEXT_HELP"] + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_button477" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Default Button", + "m_value": false + }], + "m_events": [], + "m_children": [] + }] }] }] }, { - "m_type": 4518, + "m_type": 4407, "proportion": 0, "border": 5, "gbSpan": "1,1", "gbPosition": "0,0", - "m_styles": ["wxAUI_TB_PLAIN_BACKGROUND", "wxAUI_TB_DEFAULT_STYLE"], - "m_sizerFlags": [], + "m_styles": ["wxTAB_TRAVERSAL", "wxBORDER_NONE"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "FileExplorerTabToolBarBase" - }, { "type": "string", "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Tooltip:", - "m_value": "" + "m_value": "500,300" }, { "type": "string", - "m_label": "Inherited Class", - "m_value": "FileExplorerTabToolBar" + "m_label": "Minimum Size:", + "m_value": "-1,-1" }, { "type": "string", - "m_label": "File:", - "m_value": "FileExplorerTabToolBar" + "m_label": "Name:", + "m_value": "DefaultWorkspacePageBase" }, { - "type": "string", - "m_label": "Class Decorator", + "type": "multi-string", + "m_label": "Tooltip:", "m_value": "" }, { - "type": "virtualFolderPicker", - "m_label": "Virtual Folder:", - "m_path": "CodeLiteIDE:Docking Windows" - }, { - "type": "string", - "m_label": "Bitmap Size:", - "m_value": "16,16" - }, { - "type": "string", - "m_label": "Margins:", - "m_value": "-1,-1" - }], - "m_events": [], - "m_children": [{ - "m_type": 4462, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "XRCID(\"collapse_all\")" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_toolbarItemCollaps" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "Collapse All" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "Collapse All" - }, { - "type": "string", - "m_label": "Help String:", - "m_value": "Collapse All" - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File:", - "m_path": "res/collapse.png" - }, { - "type": "filePicker", - "m_label": "Disabled-Bitmap File", - "m_path": "" - }, { - "type": "choice", - "m_label": "Kind:", - "m_selection": 0, - "m_options": ["normal", "checkable", "radio", "separator", "dropdown"] - }, { - "type": "bool", - "m_label": "Construct the Dropdown Menu:", - "m_value": true - }], - "m_events": [], - "m_children": [] + "type": "colour", + "m_label": "Bg Colour:", + "colour": "(220,220,220)" }, { - "m_type": 4462, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "XRCID(\"go_home\")" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_toolbarItemGoHome" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "Go Home" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "Go Home" - }, { - "type": "string", - "m_label": "Help String:", - "m_value": "Go Home" - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File:", - "m_path": "res/gohome.png" - }, { - "type": "filePicker", - "m_label": "Disabled-Bitmap File", - "m_path": "" - }, { - "type": "choice", - "m_label": "Kind:", - "m_selection": 0, - "m_options": ["normal", "checkable", "radio", "separator", "dropdown"] - }, { - "type": "bool", - "m_label": "Construct the Dropdown Menu:", - "m_value": true - }], - "m_events": [], - "m_children": [] + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" }, { - "m_type": 4462, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "ID_TOOL_EXPLORER_BOOKMARKS" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_toolbarItemBookmark" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "Bookmark" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "Bookmark Selected Folder" - }, { - "type": "string", - "m_label": "Help String:", - "m_value": "Bookmark Selected Folder" - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File:", - "m_path": "../codelite-icons/toolbars/16/standard/bookmark.png" - }, { - "type": "filePicker", - "m_label": "Disabled-Bitmap File", - "m_path": "" - }, { - "type": "choice", - "m_label": "Kind:", - "m_selection": 4, - "m_options": ["normal", "checkable", "radio", "separator", "dropdown"] - }, { - "type": "bool", - "m_label": "Construct the Dropdown Menu:", - "m_value": false - }], - "m_events": [], - "m_children": [] + "type": "font", + "m_label": "Font:", + "m_value": "" }, { - "m_type": 4462, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "ID_TOOL_GOTO_FOLDER" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_toolbarItem467" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "GoTo" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "Goto Folder" - }, { - "type": "string", - "m_label": "Help String:", - "m_value": "Goto Folder" - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File:", - "m_path": "res/goto.png" - }, { - "type": "filePicker", - "m_label": "Disabled-Bitmap File", - "m_path": "" - }, { - "type": "choice", - "m_label": "Kind:", - "m_selection": 0, - "m_options": ["normal", "checkable", "radio", "separator", "dropdown"] - }, { - "type": "bool", - "m_label": "Construct the Dropdown Menu:", - "m_value": true - }], - "m_events": [], - "m_children": [] + "type": "bool", + "m_label": "Hidden", + "m_value": false }, { - "m_type": 4462, - "proportion": 0, + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Title:", + "m_value": "" + }, { + "type": "virtualFolderPicker", + "m_label": "Virtual Folder:", + "m_path": "CodeLiteIDE:Controls" + }, { + "type": "choice", + "m_label": "Centre:", + "m_selection": 1, + "m_options": ["", "wxBOTH", "wxVERTICAL", "wxHORIZONTAL"] + }, { + "type": "string", + "m_label": "Inherited Class", + "m_value": "DefaultWorkspacePage" + }, { + "type": "string", + "m_label": "File:", + "m_value": "DefaultWorkspacePage" + }, { + "type": "string", + "m_label": "Class Decorator", + "m_value": "" + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 1, "border": 5, "gbSpan": "1,1", "gbPosition": "0,0", "m_styles": [], - "m_sizerFlags": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "ID_TOOL_FIND_IN_FILES" - }, { "type": "string", - "m_label": "Name:", - "m_value": "m_toolbarItemFindInFiles" + "m_label": "Minimum Size:", + "m_value": "-1,-1" }, { "type": "string", - "m_label": "Label:", - "m_value": "Find In Files" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "Find In Files" + "m_label": "Name:", + "m_value": "boxSizer515" }, { "type": "string", - "m_label": "Help String:", - "m_value": "Find In Files" - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File:", - "m_path": "../codelite-icons/toolbars/16/search/find-in-files.png" - }, { - "type": "filePicker", - "m_label": "Disabled-Bitmap File", - "m_path": "" + "m_label": "Style:", + "m_value": "" }, { "type": "choice", - "m_label": "Kind:", + "m_label": "Orientation:", "m_selection": 0, - "m_options": ["normal", "checkable", "radio", "separator", "dropdown"] - }, { - "type": "bool", - "m_label": "Construct the Dropdown Menu:", - "m_value": true - }], - "m_events": [{ - "m_eventName": "wxEVT_UPDATE_UI", - "m_eventClass": "wxUpdateUIEvent", - "m_eventHandler": "wxUpdateUIEventHandler", - "m_functionNameAndSignature": "OnFindInFilesUI(wxUpdateUIEvent& event)", - "m_description": "Process a wxEVT_UPDATE_UI event", - "m_noBody": false - }], - "m_children": [] - }, { - "m_type": 4516, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "m_auitbarStretchSpace497" - }, { - "type": "string", - "m_label": "Proportion:", - "m_value": "1" + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] }], "m_events": [], - "m_children": [] - }, { - "m_type": 4462, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "XRCID(\"link_editor\")" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_toolbarItemLinkEditor" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "Link Editor" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "Link Editor" - }, { - "type": "string", - "m_label": "Help String:", - "m_value": "Link Editor" - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File:", - "m_path": "res/link_editor.png" + "m_children": [{ + "m_type": 4454, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "Spacer517" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "0,0" + }], + "m_events": [], + "m_children": [] }, { - "type": "filePicker", - "m_label": "Disabled-Bitmap File", - "m_path": "" + "m_type": 4405, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxALIGN_CENTRE"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_HORIZONTAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_staticText523" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "(128,128,128)" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "wxSYS_DEFAULT_GUI_FONT,normal,bold,normal" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Label:", + "m_value": "DRAG AND DROP\\nA FOLDER HERE" + }, { + "type": "string", + "m_label": "Wrap:", + "m_value": "-1" + }], + "m_events": [], + "m_children": [] }, { - "type": "choice", - "m_label": "Kind:", - "m_selection": 1, - "m_options": ["normal", "checkable", "radio", "separator", "dropdown"] + "m_type": 4409, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_HORIZONTAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_staticBitmap521" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": true + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "res/target-200.png" + }], + "m_events": [], + "m_children": [] }, { - "type": "bool", - "m_label": "Construct the Dropdown Menu:", - "m_value": true - }], - "m_events": [], - "m_children": [] + "m_type": 4454, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "Spacer519" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "0,0" + }], + "m_events": [], + "m_children": [] + }] }] }, { "m_type": 4421, @@ -8638,7 +8876,7 @@ "border": 5, "gbSpan": "1,1", "gbPosition": "0,0", - "m_styles": ["wxDEFAULT_DIALOG_STYLE", "wxRESIZE_BORDER"], + "m_styles": ["wxDEFAULT_DIALOG_STYLE", "wxSTAY_ON_TOP"], "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], "m_properties": [{ "type": "string", @@ -8651,7 +8889,7 @@ }, { "type": "string", "m_label": "Name:", - "m_value": "OpenFolderDlgBase" + "m_value": "SelectDropTargetBaseDlg" }, { "type": "multi-string", "m_label": "Tooltip:", @@ -8699,11 +8937,11 @@ }, { "type": "string", "m_label": "Title:", - "m_value": "Open Folder" + "m_value": "Select View" }, { "type": "virtualFolderPicker", "m_label": "Virtual Folder:", - "m_path": "CodeLiteIDE:Dialogs" + "m_path": "CodeLiteIDE:Dialogs:ProjectManagement" }, { "type": "choice", "m_label": "Centre:", @@ -8712,11 +8950,11 @@ }, { "type": "string", "m_label": "Inherited Class", - "m_value": "OpenFolderDlg" + "m_value": "SelectDropTargetDlg" }, { "type": "string", "m_label": "File:", - "m_value": "OpenFolderDlg" + "m_value": "SelectDropTargetDlg" }, { "type": "string", "m_label": "Class Decorator", @@ -8758,223 +8996,218 @@ }, { "type": "string", "m_label": "Name:", - "m_value": "boxSizer471" + "m_value": "boxSizer527" }, { "type": "string", "m_label": "Style:", "m_value": "" }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4403, + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4471, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_banner" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "CaptionText" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Title:", + "m_value": "Select View" + }, { + "type": "multi-string", + "m_label": "Message:", + "m_value": "Choose the view to use for this folder from the list below" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxTOP", "wxBOTTOM", "wxLEFT", "wxRIGHT"] + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "colour", + "m_label": "Gradient Start", + "colour": "ActiveCaption" + }, { + "type": "colour", + "m_label": "Gradient End", + "colour": "ActiveCaption" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4469, "proportion": 1, "border": 5, "gbSpan": "1,1", "gbPosition": "0,0", - "m_styles": [], + "m_styles": ["wxDV_NO_HEADER", "wxDV_ROW_LINES", "wxDV_SINGLE"], "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "400,200" + }, { "type": "string", "m_label": "Minimum Size:", "m_value": "-1,-1" }, { "type": "string", "m_label": "Name:", - "m_value": "flexGridSizer483" + "m_value": "m_dvListCtrl" }, { - "type": "string", - "m_label": "Style:", + "type": "multi-string", + "m_label": "Tooltip:", "m_value": "" }, { - "type": "string", - "m_label": "# Columns:", - "m_value": "2" + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" }, { - "type": "string", - "m_label": "# Rows:", - "m_value": "0" + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" }, { - "type": "string", - "m_label": "Growable columns:", - "m_value": "1" + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false }, { "type": "string", - "m_label": "Growable rows:", + "m_label": "Class Name:", "m_value": "" }, { "type": "string", - "m_label": "Horizontal gap:", - "m_value": "0" + "m_label": "Include File:", + "m_value": "" }, { "type": "string", - "m_label": "Vertical gap:", - "m_value": "0" + "m_label": "Style:", + "m_value": "" + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_DATAVIEW_ITEM_ACTIVATED", + "m_eventClass": "wxDataViewEvent", + "m_eventHandler": "wxDataViewEventHandler", + "m_functionNameAndSignature": "OnSelectionActivated(wxDataViewEvent& event)", + "m_description": "Process a wxEVT_COMMAND_DATAVIEW_ITEM_ACTIVATED event.\nThis event is triggered by double clicking an item or pressing some special key (usually \"Enter\") when it is focused", + "m_noBody": false }], - "m_events": [], "m_children": [{ - "m_type": 4405, + "m_type": 4472, "proportion": 0, "border": 5, "gbSpan": "1,1", "gbPosition": "0,0", "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_VERTICAL"], + "m_sizerFlags": [], "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { "type": "string", "m_label": "Name:", - "m_value": "m_staticText479" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Label:", - "m_value": "Goto Folder:" - }, { - "type": "string", - "m_label": "Wrap:", - "m_value": "-1" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4406, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" + "m_value": "View" }, { "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" + "m_label": "Width:", + "m_value": "400" }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_textCtrlFolder" + "type": "choice", + "m_label": "Column Type", + "m_selection": 2, + "m_options": ["bitmap", "check", "text", "icontext", "progress", "choice"] }, { "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": true - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Value:", + "m_label": "Choices:", "m_value": "" }, { - "type": "string", - "m_label": "Text Hint", - "m_value": "Type the folder path" - }, { - "type": "string", - "m_label": "Max Length:", - "m_value": "0" - }, { - "type": "bool", - "m_label": "Auto Complete Directories:", - "m_value": true + "type": "choice", + "m_label": "Alignment", + "m_selection": 0, + "m_options": ["wxALIGN_LEFT", "wxALIGN_RIGHT", "wxALIGN_CENTER"] }, { - "type": "bool", - "m_label": "Auto Complete Files:", - "m_value": false + "type": "choice", + "m_label": "Cell Mode", + "m_selection": 0, + "m_options": ["wxDATAVIEW_CELL_INERT", "wxDATAVIEW_CELL_ACTIVATABLE", "wxDATAVIEW_CELL_EDITABLE"] }], "m_events": [], "m_children": [] @@ -9002,7 +9235,7 @@ }, { "type": "string", "m_label": "Name:", - "m_value": "m_stdBtnSizer473" + "m_value": "m_stdBtnSizer543" }, { "type": "multi-string", "m_label": "Tooltip:", @@ -9056,12 +9289,12 @@ "m_properties": [{ "type": "choice", "m_label": "ID:", - "m_selection": 0, + "m_selection": 6, "m_options": ["wxID_OK", "wxID_YES", "wxID_SAVE", "wxID_APPLY", "wxID_CLOSE", "wxID_NO", "wxID_CANCEL", "wxID_HELP", "wxID_CONTEXT_HELP"] }, { "type": "string", "m_label": "Name:", - "m_value": "m_button475" + "m_value": "m_button545" }, { "type": "multi-string", "m_label": "Tooltip:", @@ -9069,7 +9302,7 @@ }, { "type": "bool", "m_label": "Default Button", - "m_value": true + "m_value": false }], "m_events": [], "m_children": [] @@ -9084,12 +9317,12 @@ "m_properties": [{ "type": "choice", "m_label": "ID:", - "m_selection": 6, + "m_selection": 0, "m_options": ["wxID_OK", "wxID_YES", "wxID_SAVE", "wxID_APPLY", "wxID_CLOSE", "wxID_NO", "wxID_CANCEL", "wxID_HELP", "wxID_CONTEXT_HELP"] }, { "type": "string", "m_label": "Name:", - "m_value": "m_button477" + "m_value": "m_button547" }, { "type": "multi-string", "m_label": "Tooltip:", @@ -9097,9 +9330,23 @@ }, { "type": "bool", "m_label": "Default Button", - "m_value": false + "m_value": true + }], + "m_events": [{ + "m_eventName": "wxEVT_UPDATE_UI", + "m_eventClass": "wxUpdateUIEvent", + "m_eventHandler": "wxUpdateUIEventHandler", + "m_functionNameAndSignature": "OnOKUI(wxUpdateUIEvent& event)", + "m_description": "Process a wxEVT_UPDATE_UI event", + "m_noBody": false + }, { + "m_eventName": "wxEVT_COMMAND_BUTTON_CLICKED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnOK(wxCommandEvent& event)", + "m_description": "Process a wxEVT_COMMAND_BUTTON_CLICKED event, when the button is clicked.", + "m_noBody": false }], - "m_events": [], "m_children": [] }] }] diff -Nru codelite-8.0.1+dfsg2/LiteEditor.workspace codelite-9.0+dfsg/LiteEditor.workspace --- codelite-8.0.1+dfsg2/LiteEditor.workspace 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LiteEditor.workspace 2015-10-11 13:56:07.000000000 +0000 @@ -49,10 +49,10 @@ + - diff -Nru codelite-8.0.1+dfsg2/LLDBDebugger/CMakeLists.txt codelite-9.0+dfsg/LLDBDebugger/CMakeLists.txt --- codelite-8.0.1+dfsg2/LLDBDebugger/CMakeLists.txt 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LLDBDebugger/CMakeLists.txt 2015-10-11 13:56:07.000000000 +0000 @@ -71,11 +71,6 @@ add_definitions(-DWXUSINGDLL_CL) add_definitions(-DWXUSINGDLL_SDK) - # Add RPATH - if (UNIX) - set (LINKER_OPTIONS -Wl,-rpath,"${PLUGINS_DIR}") - endif (UNIX) - ## By default, use the sources under the current folder FILE(GLOB PLUGIN_SRCS "*.cpp") @@ -83,19 +78,15 @@ add_library(${PLUGIN_NAME} SHARED ${PLUGIN_SRCS}) target_link_libraries(LLDBDebugger LLDBProtocol) -if (APPLE) - link_directories(${LLDB_LIB_PATH}) - target_link_libraries(${PLUGIN_NAME} ${LIBLLDB}) -endif() + # Codelite plugins doesn't use the "lib" prefix. set_target_properties(${PLUGIN_NAME} PROPERTIES PREFIX "") target_link_libraries(${PLUGIN_NAME} ${LINKER_OPTIONS} ${wxWidgets_LIBRARIES} + ${LIBLLDB} libcodelite plugin - wxsqlite3 - sqlite3lib ) # Installation destination CL_INSTALL_PLUGIN(${PLUGIN_NAME}) diff -Nru codelite-8.0.1+dfsg2/LLDBDebugger/codelite-lldb/CMakeLists.txt codelite-9.0+dfsg/LLDBDebugger/codelite-lldb/CMakeLists.txt --- codelite-8.0.1+dfsg2/LLDBDebugger/codelite-lldb/CMakeLists.txt 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LLDBDebugger/codelite-lldb/CMakeLists.txt 2015-10-11 13:56:07.000000000 +0000 @@ -8,11 +8,6 @@ find_package(wxWidgets COMPONENTS std aui propgrid stc richtext ribbon REQUIRED) endif ( APPLE ) -# Add RPATH -if (UNIX) -set (LINKER_OPTIONS -Wl,-rpath,"${PLUGINS_DIR}") -endif (UNIX) - FILE(GLOB SRC "*.cpp") include_directories(${CL_SRC_ROOT}/LLDBDebugger) @@ -26,8 +21,6 @@ LLDBProtocol libcodelite plugin - wxsqlite3 - sqlite3lib ) CL_INSTALL_EXECUTABLE(codelite-lldb) diff -Nru codelite-8.0.1+dfsg2/LLDBDebugger/LLDBPlugin.cpp codelite-9.0+dfsg/LLDBDebugger/LLDBPlugin.cpp --- codelite-8.0.1+dfsg2/LLDBDebugger/LLDBPlugin.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LLDBDebugger/LLDBPlugin.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -79,7 +79,7 @@ PluginInfo info; info.SetAuthor(wxT("eran")); info.SetName(wxT("LLDBDebuggerPlugin")); - info.SetDescription(wxT("LLDB Debugger for CodeLite")); + info.SetDescription(_("LLDB Debugger for CodeLite")); info.SetVersion(wxT("v1.0")); return info; } @@ -97,7 +97,7 @@ , m_raisOnBpHit(false) , m_tooltip(NULL) { - m_longName = wxT("LLDB Debugger for CodeLite"); + m_longName = _("LLDB Debugger for CodeLite"); m_shortName = wxT("LLDBDebuggerPlugin"); m_connector.Bind(wxEVT_LLDB_STARTED, &LLDBPlugin::OnLLDBStarted, this); @@ -305,7 +305,7 @@ { // Get the executable to debug wxString errMsg; - ProjectPtr pProject = WorkspaceST::Get()->FindProjectByName(event.GetProjectName(), errMsg); + ProjectPtr pProject = clCxxWorkspaceST::Get()->FindProjectByName(event.GetProjectName(), errMsg); if(!pProject) { ::wxMessageBox(wxString() << _("Could not locate project: ") << event.GetProjectName(), "LLDB Debugger", @@ -320,7 +320,7 @@ LLDBSettings settings; settings.Load(); - BuildConfigPtr bldConf = WorkspaceST::Get()->GetProjBuildConf(pProject->GetName(), wxEmptyString); + BuildConfigPtr bldConf = clCxxWorkspaceST::Get()->GetProjBuildConf(pProject->GetName(), wxEmptyString); if(!bldConf) { ::wxMessageBox(wxString() << _("Could not locate the requested buid configuration"), "LLDB Debugger", @@ -382,7 +382,6 @@ ::LaunchTerminalForDebugger(execToDebug.GetFullPath(), m_terminalTTY, realPts, m_terminalPID); wxUnusedVar(realPts); - if(!m_terminalTTY.IsEmpty()) { CL_DEBUG("Successfully launched terminal %s", m_terminalTTY); @@ -394,11 +393,11 @@ return; } } - + if(!isWindows) { workingDirectory = ::wxGetCwd(); } - + CL_DEBUG("LLDB: Using executable : " + execToDebug.GetFullPath()); CL_DEBUG("LLDB: Working directory: " + workingDirectory); @@ -472,7 +471,7 @@ CL_DEBUG("CODELITE>> LLDB exited"); // Also notify codelite's event - wxCommandEvent e2(wxEVT_DEBUG_ENDED); + clDebugEvent e2(wxEVT_DEBUG_ENDED); EventNotifier::Get()->AddPendingEvent(e2); } @@ -506,8 +505,12 @@ } } - wxCommandEvent e2(wxEVT_DEBUG_STARTED); - EventNotifier::Get()->AddPendingEvent(e2); + // notify plugins that the debugger just started + { + clDebugEvent eventStarted(wxEVT_DEBUG_STARTED); + eventStarted.SetClientData(NULL); + EventNotifier::Get()->ProcessEvent(eventStarted); + } } void LLDBPlugin::OnLLDBStopped(LLDBEvent& event) @@ -883,8 +886,7 @@ // FIXME: use the function ::GetCppExpressionFromPos() to get a better expression wxString expression = event.GetString(); - if(expression.IsEmpty()) - return; + if(expression.IsEmpty()) return; m_connector.EvaluateExpression(expression); } @@ -927,10 +929,10 @@ // In 'Quick Debug' we stop on main m_connector.AddBreakpoint("main"); m_connector.AddBreakpoints(gdbBps); - + // Setup pivot folder if needed SetupPivotFolder(retObj); - + LLDBCommand startCommand; startCommand.FillEnvFromMemory(); startCommand.SetExecutable(event.GetExecutableName()); @@ -939,7 +941,7 @@ startCommand.SetStartupCommands(event.GetStartupCommands()); startCommand.SetRedirectTTY(m_terminalTTY); m_connector.Start(startCommand); - + } else { // Failed to connect, notify and perform cleanup DoCleanup(); @@ -1058,8 +1060,7 @@ wxString terminalTitle; terminalTitle << "Console PID " << event.GetInt(); - if(!DoInitializeDebugger(event, true, terminalTitle)) - return; + if(!DoInitializeDebugger(event, true, terminalTitle)) return; LLDBConnectReturnObject retObj; LLDBSettings settings; diff -Nru codelite-8.0.1+dfsg2/LLDBDebugger/LLDBProtocol/LLDBConnector.cpp codelite-9.0+dfsg/LLDBDebugger/LLDBProtocol/LLDBConnector.cpp --- codelite-8.0.1+dfsg2/LLDBDebugger/LLDBProtocol/LLDBConnector.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LLDBDebugger/LLDBProtocol/LLDBConnector.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -45,11 +45,7 @@ #include #endif -wxBEGIN_EVENT_TABLE(LLDBConnector, wxEvtHandler) - EVT_COMMAND(wxID_ANY, wxEVT_PROC_DATA_READ, LLDBConnector::OnProcessOutput) - EVT_COMMAND(wxID_ANY, wxEVT_PROC_TERMINATED, LLDBConnector::OnProcessTerminated) wxEND_EVENT_TABLE() - - LLDBConnector::LLDBConnector() +LLDBConnector::LLDBConnector() : m_thread(NULL) , m_process(NULL) , m_isRunning(false) @@ -58,6 +54,9 @@ { Bind(wxEVT_LLDB_EXITED, &LLDBConnector::OnLLDBExited, this); Bind(wxEVT_LLDB_STARTED, &LLDBConnector::OnLLDBStarted, this); + + Bind(wxEVT_ASYNC_PROCESS_OUTPUT, &LLDBConnector::OnProcessOutput, this); + Bind(wxEVT_ASYNC_PROCESS_TERMINATED, &LLDBConnector::OnProcessTerminated, this); } LLDBConnector::~LLDBConnector() @@ -65,6 +64,8 @@ StopDebugServer(); Unbind(wxEVT_LLDB_EXITED, &LLDBConnector::OnLLDBExited, this); Unbind(wxEVT_LLDB_STARTED, &LLDBConnector::OnLLDBStarted, this); + Unbind(wxEVT_ASYNC_PROCESS_OUTPUT, &LLDBConnector::OnProcessOutput, this); + Unbind(wxEVT_ASYNC_PROCESS_TERMINATED, &LLDBConnector::OnProcessTerminated, this); Cleanup(); } @@ -434,24 +435,18 @@ const LLDBBreakpoint::Vec_t& LLDBConnector::GetAllBreakpoints() const { return m_breakpoints; } -void LLDBConnector::OnProcessOutput(wxCommandEvent& event) +void LLDBConnector::OnProcessOutput(clProcessEvent& event) { - ProcessEventData* ped = (ProcessEventData*)event.GetClientData(); - wxString output = ped->GetData(); - wxDELETE(ped); - + wxString output = event.GetOutput(); + wxArrayString lines = ::wxStringTokenize(output, "\n", wxTOKEN_STRTOK); for(size_t i = 0; i < lines.GetCount(); ++i) { CL_DEBUG("%s", lines.Item(i).Trim()); } } -void LLDBConnector::OnProcessTerminated(wxCommandEvent& event) +void LLDBConnector::OnProcessTerminated(clProcessEvent& event) { - ProcessEventData* ped = (ProcessEventData*)event.GetClientData(); - if(ped) { - wxDELETE(ped); - } wxDELETE(m_process); Cleanup(); } diff -Nru codelite-8.0.1+dfsg2/LLDBDebugger/LLDBProtocol/LLDBConnector.h codelite-9.0+dfsg/LLDBDebugger/LLDBProtocol/LLDBConnector.h --- codelite-8.0.1+dfsg2/LLDBDebugger/LLDBProtocol/LLDBConnector.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LLDBDebugger/LLDBProtocol/LLDBConnector.h 2015-10-11 13:56:07.000000000 +0000 @@ -82,9 +82,8 @@ bool m_goingDown; LLDBPivot m_pivot; - wxDECLARE_EVENT_TABLE(); - void OnProcessOutput(wxCommandEvent& event); - void OnProcessTerminated(wxCommandEvent& event); + void OnProcessOutput(clProcessEvent& event); + void OnProcessTerminated(clProcessEvent& event); protected: bool IsBreakpointExists(LLDBBreakpoint::Ptr_t bp) const; diff -Nru codelite-8.0.1+dfsg2/LLDBDebugger/UI.h codelite-9.0+dfsg/LLDBDebugger/UI.h --- codelite-8.0.1+dfsg2/LLDBDebugger/UI.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/LLDBDebugger/UI.h 2015-10-11 13:56:07.000000000 +0000 @@ -4,8 +4,8 @@ // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// -#ifndef UI_BASE_CLASSES_H -#define UI_BASE_CLASSES_H +#ifndef CODELITE_LLDBDEBUGGER_UI_BASE_CLASSES_H +#define CODELITE_LLDBDEBUGGER_UI_BASE_CLASSES_H #include #include diff -Nru codelite-8.0.1+dfsg2/MacBundler/CMakeLists.txt codelite-9.0+dfsg/MacBundler/CMakeLists.txt --- codelite-8.0.1+dfsg2/MacBundler/CMakeLists.txt 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/MacBundler/CMakeLists.txt 2015-10-11 13:56:07.000000000 +0000 @@ -30,11 +30,6 @@ add_definitions(-Winvalid-pch) endif ( USE_PCH ) -# Add RPATH -if (UNIX) -set (LINKER_OPTIONS -Wl,-rpath,"${PLUGINS_DIR}") -endif (UNIX) - FILE(GLOB SRCS "*.cpp") # Define the output @@ -45,8 +40,6 @@ target_link_libraries(${PLUGIN_NAME} ${LINKER_OPTIONS} ${wxWidgets_LIBRARIES} - wxsqlite3 - sqlite3lib libcodelite plugin) diff -Nru codelite-8.0.1+dfsg2/MacBundler/macbundler.cpp codelite-9.0+dfsg/MacBundler/macbundler.cpp --- codelite-8.0.1+dfsg2/MacBundler/macbundler.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/MacBundler/macbundler.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -28,6 +28,8 @@ #include "wx/textfile.h" #include "workspace.h" #include "windowattrmanager.h" +#include "wx/msgdlg.h" +#include "wx/wx.h" static MacBundler* thePlugin = NULL; diff -Nru codelite-8.0.1+dfsg2/MemCheck/CMakeLists.txt codelite-9.0+dfsg/MemCheck/CMakeLists.txt --- codelite-8.0.1+dfsg2/MemCheck/CMakeLists.txt 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/MemCheck/CMakeLists.txt 2015-10-11 13:56:07.000000000 +0000 @@ -43,11 +43,6 @@ add_definitions(-fPIC) endif() - - - # Add RPATH - set (LINKER_OPTIONS -Wl,-rpath,"${PLUGINS_DIR}") - FILE(GLOB SRCS "*.cpp") # Define the output @@ -55,10 +50,10 @@ # Remove the "lib" prefix from the plugin name set_target_properties(${PLUGIN_NAME} PROPERTIES PREFIX "") - target_link_libraries(${PLUGIN_NAME} ${LINKER_OPTIONS} ${wxWidgets_LIBRARIES} -L"${CL_LIBPATH}" -lwxsqlite3 -lsqlite3lib -llibcodelite -lplugin) + target_link_libraries(${PLUGIN_NAME} ${LINKER_OPTIONS} ${wxWidgets_LIBRARIES} -L"${CL_LIBPATH}" libcodelite plugin) # Make sure that the plugin will not start build before 'plugin.so' is ready add_dependencies(${PLUGIN_NAME} plugin) install(TARGETS ${PLUGIN_NAME} DESTINATION ${PLUGINS_DIR}) -endif() \ No newline at end of file +endif() diff -Nru codelite-8.0.1+dfsg2/MemCheck/memcheck.cpp codelite-9.0+dfsg/MemCheck/memcheck.cpp --- codelite-8.0.1+dfsg2/MemCheck/memcheck.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/MemCheck/memcheck.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -41,25 +41,22 @@ PluginInfo info; info.SetAuthor(wxT("pavel.iqx")); info.SetName(wxT("MemCheck")); - info.SetDescription(wxT("MemCheck plugin detects memory leaks. Uses Valgrind (memcheck tool) as backend.")); - info.SetVersion(wxT("0.4")); + info.SetDescription(_("MemCheck plugin detects memory leaks. Uses Valgrind (memcheck tool) as backend.")); + info.SetVersion(wxT("0.5")); return info; } extern "C" EXPORT int GetPluginInterfaceVersion() { return PLUGIN_INTERFACE_VERSION; } -BEGIN_EVENT_TABLE(MemCheckPlugin, wxEvtHandler) -EVT_COMMAND(wxID_ANY, wxEVT_PROC_DATA_READ, MemCheckPlugin::OnProcessOutput) -EVT_COMMAND(wxID_ANY, wxEVT_PROC_TERMINATED, MemCheckPlugin::OnProcessTerminated) -END_EVENT_TABLE() - MemCheckPlugin::MemCheckPlugin(IManager* manager) : IPlugin(manager) , m_memcheckProcessor(NULL) - , m_process(NULL) { + m_terminal.Bind(wxEVT_TERMINAL_COMMAND_EXIT, &MemCheckPlugin::OnProcessTerminated, this); + m_terminal.Bind(wxEVT_TERMINAL_COMMAND_OUTPUT, &MemCheckPlugin::OnProcessOutput, this); + // CL_DEBUG1(PLUGIN_PREFIX("MemCheckPlugin constructor")); - m_longName = wxT("Detects memory management problems. Uses Valgrind - memcheck skin."); + m_longName = _("Detects memory management problems. Uses Valgrind - memcheck skin."); m_shortName = wxT("MemCheck"); // menu File and OutputView controls @@ -139,7 +136,7 @@ // CL_DEBUG1(PLUGIN_PREFIX("adding 'Output View' notebook pane")); m_outputView = new MemCheckOutputView(m_mgr->GetOutputPaneNotebook(), this, m_mgr); m_mgr->GetOutputPaneNotebook()->AddPage( - m_outputView, wxT("MemCheck"), false, wxXmlResource::Get()->LoadBitmap(wxT("check"))); + m_outputView, _("MemCheck"), false, wxXmlResource::Get()->LoadBitmap(wxT("check"))); m_settings = new MemCheckSettings(); GetSettings()->LoadFromConfig(); @@ -154,7 +151,6 @@ // CL_DEBUG1(PLUGIN_PREFIX("MemCheckPlugin destroyed")); wxDELETE(m_memcheckProcessor); wxDELETE(m_settings); - wxDELETE(m_process); } clToolBar* MemCheckPlugin::CreateToolBar(wxWindow* parent) @@ -334,8 +330,9 @@ void MemCheckPlugin::UnPlug() { - // CL_DEBUG1(PLUGIN_PREFIX("MemCheckPlugin::UnPlug()")); - + m_terminal.Unbind(wxEVT_TERMINAL_COMMAND_EXIT, &MemCheckPlugin::OnProcessTerminated, this); + m_terminal.Unbind(wxEVT_TERMINAL_COMMAND_OUTPUT, &MemCheckPlugin::OnProcessOutput, this); + m_mgr->GetTheApp()->Disconnect(XRCID("memcheck_check_active_project"), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(MemCheckPlugin::OnCheckAtiveProject), @@ -424,7 +421,7 @@ bool MemCheckPlugin::IsReady(wxUpdateUIEvent& event) { - bool ready = !m_mgr->IsBuildInProgress() && m_process == NULL; + bool ready = !m_mgr->IsBuildInProgress() && !m_terminal.IsRunning(); int id = event.GetId(); if(id == XRCID("memcheck_check_active_project")) { ready &= !m_mgr->GetWorkspace()->GetActiveProjectName().IsEmpty(); @@ -457,7 +454,7 @@ void MemCheckPlugin::OnCheckAtiveProject(wxCommandEvent& event) { CHECK_CL_SHUTDOWN() - Workspace* workspace = m_mgr->GetWorkspace(); + clCxxWorkspace* workspace = m_mgr->GetWorkspace(); if(workspace) { CheckProject(workspace->GetActiveProjectName()); } @@ -483,8 +480,12 @@ void MemCheckPlugin::CheckProject(const wxString& projectName) { - if(m_process) - return; // a process is already running + if( m_terminal.IsRunning() ) { + ::wxMessageBox(_("Another instance is already running. Please stop it before executing another one"), + "CodeLite", + wxICON_WARNING | wxCENTER | wxOK); + return; + } wxString errMsg; ProjectPtr project = m_mgr->GetWorkspace()->FindProjectByName(projectName, errMsg); @@ -503,7 +504,9 @@ m_mgr->AppendOutputTabText(kOutputTab_Output, wxString() << "MemCheck command: " << m_memcheckProcessor->GetExecutionCommand(command) << "\n"); - m_process = ::CreateAsyncProcess(this, m_memcheckProcessor->GetExecutionCommand(command)); + + wxString cmd = m_memcheckProcessor->GetExecutionCommand(command); + m_terminal.ExecuteConsole(cmd, "", true, wxString::Format("MemCheck: %s", projectName)); } void MemCheckPlugin::OnImportLog(wxCommandEvent& event) @@ -546,25 +549,16 @@ void MemCheckPlugin::StopProcess() { - if(m_process) { - wxKill(m_process->GetPid(), wxSIGINT); - // m_process->Terminate(); - } + if( m_terminal.IsRunning() ) m_terminal.Terminate(); } -void MemCheckPlugin::OnProcessOutput(wxCommandEvent& event) +void MemCheckPlugin::OnProcessOutput(clCommandEvent& event) { - ProcessEventData* ped = (ProcessEventData*)event.GetClientData(); - m_mgr->AppendOutputTabText(kOutputTab_Output, ped->GetData()); - wxDELETE(ped); + m_mgr->AppendOutputTabText(kOutputTab_Output, event.GetString()); } -void MemCheckPlugin::OnProcessTerminated(wxCommandEvent& event) +void MemCheckPlugin::OnProcessTerminated(clCommandEvent& event) { - ProcessEventData* ped = (ProcessEventData*)event.GetClientData(); - wxDELETE(ped); - wxDELETE(m_process); - m_mgr->AppendOutputTabText(kOutputTab_Output, _("\n-- MemCheck process completed\n")); wxWindowDisabler disableAll; wxBusyInfo wait(wxT(BUSY_MESSAGE)); @@ -581,4 +575,7 @@ StopProcess(); } -void MemCheckPlugin::OnStopProcessUI(wxUpdateUIEvent& event) { event.Enable(IsRunning()); } +void MemCheckPlugin::OnStopProcessUI(wxUpdateUIEvent& event) +{ + event.Enable(IsRunning()); +} diff -Nru codelite-8.0.1+dfsg2/MemCheck/memcheck.h codelite-9.0+dfsg/MemCheck/memcheck.h --- codelite-8.0.1+dfsg2/MemCheck/memcheck.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/MemCheck/memcheck.h 2015-10-11 13:56:07.000000000 +0000 @@ -14,8 +14,8 @@ #include "memcheckui.h" #include "imemcheckprocessor.h" +#include "TerminalEmulator.h" -class IProcess; class AsyncExeCmd; class MemCheckOutputView; @@ -23,7 +23,7 @@ { public: MemCheckPlugin(IManager* manager); - ~MemCheckPlugin(); + virtual ~MemCheckPlugin(); //-------------------------------------------- // Abstract methods @@ -55,7 +55,8 @@ * @brief return true if a test is currently running * @return */ - bool IsRunning() const { return m_process != NULL; } +// bool IsRunning() const { return m_process != NULL; } + bool IsRunning() const { return m_terminal.IsRunning(); } protected: MemCheckIcons16 m_icons16; @@ -63,7 +64,7 @@ IMemCheckProcessor* m_memcheckProcessor; MemCheckSettings* m_settings; - IProcess* m_process; ///< Test is run as external tool. + TerminalEmulator m_terminal; MemCheckOutputView* m_outputView; ///< Main plugin UI pane. void OnWorkspaceLoaded(wxCommandEvent& event); @@ -110,8 +111,8 @@ */ void CheckProject(const wxString& projectName); - void OnProcessOutput(wxCommandEvent& event); - void OnProcessTerminated(wxCommandEvent& event); + void OnProcessOutput(clCommandEvent& event); + void OnProcessTerminated(clCommandEvent& event); /** * @brief Analyse can be made independent of CodeLite and log can be load from file. @@ -125,8 +126,6 @@ */ void OnSettings(wxCommandEvent& event); void OnMemCheckUI(wxUpdateUIEvent& event); - - DECLARE_EVENT_TABLE(); }; #endif // memcheck diff -Nru codelite-8.0.1+dfsg2/MemCheck/memcheckoutputview.cpp codelite-9.0+dfsg/MemCheck/memcheckoutputview.cpp --- codelite-8.0.1+dfsg2/MemCheck/memcheckoutputview.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/MemCheck/memcheckoutputview.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -25,7 +25,11 @@ , m_mgr(mgr) , pageValidator(&m_currentPage) { - m_dataViewCtrlErrors->SetExpanderColumn(m_dataViewCtrlErrors->GetColumn(GetColumnByName(wxT("Label")))); + int col = GetColumnByName(_("Label")); + if (col == wxNOT_FOUND) { + return; + } + m_dataViewCtrlErrors->SetExpanderColumn(m_dataViewCtrlErrors->GetColumn(col)); m_listCtrlErrors->SetData(&m_filterResults); m_searchMenu = new wxMenu(); @@ -389,9 +393,14 @@ // CL_DEBUG1(PLUGIN_PREFIX("MemCheckOutputView::SetCurrentItem()")); wxVariant variantBitmap; + int col = GetColumnByName(_("Current")); + if (col == wxNOT_FOUND) { + return; + } + if(m_currentItem.IsOk()) { variantBitmap << wxXmlResource::Get()->LoadBitmap(wxT("memcheck_transparent")); - m_dataViewCtrlErrorsModel->ChangeValue(variantBitmap, m_currentItem, GetColumnByName(wxT("Current"))); + m_dataViewCtrlErrorsModel->ChangeValue(variantBitmap, m_currentItem, col); } m_dataViewCtrlErrors->SetCurrentItem(item); @@ -399,7 +408,7 @@ m_currentItem = item; variantBitmap << wxXmlResource::Get()->LoadBitmap(wxT("memcheck_current")); - m_dataViewCtrlErrorsModel->ChangeValue(variantBitmap, item, GetColumnByName(wxT("Current"))); + m_dataViewCtrlErrorsModel->ChangeValue(variantBitmap, item, col); } wxDataViewItem MemCheckOutputView::GetAdjacentItem(const wxDataViewItem& item, bool forward = true) @@ -473,8 +482,12 @@ } void MemCheckOutputView::MarkTree(const wxDataViewItem& item, bool checked) -{ - m_dataViewCtrlErrorsModel->ChangeValue(wxVariant(checked), item, GetColumnByName(wxT("Suppress"))); +{ + int col = GetColumnByName(_("Suppress")); + if (col == wxNOT_FOUND) { + return; + } + m_dataViewCtrlErrorsModel->ChangeValue(wxVariant(checked), item, col); if(m_dataViewCtrlErrorsModel->IsContainer(item)) { wxDataViewItemArray subItems; @@ -491,14 +504,17 @@ void MemCheckOutputView::OnValueChanged(wxDataViewEvent& event) { // CL_DEBUG1(PLUGIN_PREFIX("MemCheckOutputView::OnValueChanged()")); - - if(m_onValueChangedLocked || event.GetColumn() != (int)GetColumnByName(wxT("Suppress"))) + int col = GetColumnByName(_("Suppress")); + if (col == wxNOT_FOUND) { + return; + } + if(m_onValueChangedLocked || event.GetColumn() != col) return; m_onValueChangedLocked = true; wxVariant variant; - m_dataViewCtrlErrorsModel->GetValue(variant, event.GetItem(), GetColumnByName(wxT("Suppress"))); + m_dataViewCtrlErrorsModel->GetValue(variant, event.GetItem(), col); MarkTree(GetTopParent(event.GetItem()), variant.GetBool()); variant.GetBool() ? ++m_markedErrorsCount : --m_markedErrorsCount; @@ -655,8 +671,10 @@ wxVariant variant; wxDataViewItemArray items; m_dataViewCtrlErrorsModel->GetChildren(wxDataViewItem(0), items); - int supColumn = GetColumnByName(wxT("Suppress")); - + int supColumn = GetColumnByName(_("Suppress")); + if (supColumn == wxNOT_FOUND) { + return; + } MemCheckErrorReferrer* errorRef; for(wxDataViewItemArray::iterator it = items.begin(); it != items.end(); ++it) { m_dataViewCtrlErrorsModel->GetValue(variant, *it, supColumn); @@ -745,7 +763,10 @@ wxVariant variant; wxDataViewItemArray items; m_dataViewCtrlErrorsModel->GetChildren(wxDataViewItem(0), items); - int supColumn = GetColumnByName(wxT("Suppress")); + int supColumn = GetColumnByName(_("Suppress")); + if (supColumn == wxNOT_FOUND) { + return; + } MemCheckErrorReferrer* errorRef; for(wxDataViewItemArray::iterator it = items.begin(); it != items.end(); ++it) { diff -Nru codelite-8.0.1+dfsg2/MemCheck/memcheckui_bitmaps.cpp codelite-9.0+dfsg/MemCheck/memcheckui_bitmaps.cpp --- codelite-8.0.1+dfsg2/MemCheck/memcheckui_bitmaps.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/MemCheck/memcheckui_bitmaps.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1052,7 +1052,7 @@ 60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, 110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, 115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, -47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, +47,47,119,119,119,46,119,120,119,105,100,103,101,116,115,46,111,114,103, 47,119,120,120,114,99,34,62,10,32,32,60,111,98,106,101,99,116,32,99,108, 97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61, 34,97,114,114,111,119,95,100,111,119,110,34,62,109,101,109,99,104,101,99, @@ -1227,33 +1227,33 @@ else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase); } - XRC_ADD_FILE(wxT("XRC_resource/memcheckui_bitmaps.cpp$icons_16_arrow_down.png"), xml_res_file_0, xml_res_size_0, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/memcheckui_bitmaps.cpp$icons_16_arrow_up.png"), xml_res_file_1, xml_res_size_1, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/memcheckui_bitmaps.cpp$icons_16_broom.png"), xml_res_file_2, xml_res_size_2, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/memcheckui_bitmaps.cpp$icons_16_check.png"), xml_res_file_3, xml_res_size_3, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/memcheckui_bitmaps.cpp$.._codelite-icons-fresh-farm_toolbars_16_external-tools_cog.png"), xml_res_file_4, xml_res_size_4, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/memcheckui_bitmaps.cpp$icons_16_document_import.png"), xml_res_file_5, xml_res_size_5, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/memcheckui_bitmaps.cpp$.._LiteEditor_res_expand.png"), xml_res_file_6, xml_res_size_6, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/memcheckui_bitmaps.cpp$icons_16_list.png"), xml_res_file_7, xml_res_size_7, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/memcheckui_bitmaps.cpp$icons_16_auxiliary.png"), xml_res_file_8, xml_res_size_8, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/memcheckui_bitmaps.cpp$icons_24_check.png"), xml_res_file_9, xml_res_size_9, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/memcheckui_bitmaps.cpp$icons_16_arrow_right.png"), xml_res_file_10, xml_res_size_10, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/memcheckui_bitmaps.cpp$icons_16_error.png"), xml_res_file_11, xml_res_size_11, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/memcheckui_bitmaps.cpp$icons_24_document_import.png"), xml_res_file_12, xml_res_size_12, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/memcheckui_bitmaps.cpp$icons_16_location.png"), xml_res_file_13, xml_res_size_13, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/memcheckui_bitmaps.cpp$icons_16_setting_tools.png"), xml_res_file_14, xml_res_size_14, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/memcheckui_bitmaps.cpp$.._codelite-icons_toolbars_16_build_stop.png"), xml_res_file_15, xml_res_size_15, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/memcheckui_bitmaps.cpp$.._codelite-icons_toolbars_24_build_stop.png"), xml_res_file_16, xml_res_size_16, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/memcheckui_bitmaps.cpp$icons_16_transparent.png"), xml_res_file_17, xml_res_size_17, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/memcheckui_bitmaps.cpp$icons_16_node-tree.png"), xml_res_file_18, xml_res_size_18, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/memcheckui_bitmaps.cpp$icons_16_page_first.png"), xml_res_file_19, xml_res_size_19, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/memcheckui_bitmaps.cpp$icons_16_page_last.png"), xml_res_file_20, xml_res_size_20, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/memcheckui_bitmaps.cpp$icons_16_page_next.png"), xml_res_file_21, xml_res_size_21, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/memcheckui_bitmaps.cpp$icons_16_page_previous.png"), xml_res_file_22, xml_res_size_22, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/memcheckui_bitmaps.cpp$icons_16_plain.png"), xml_res_file_23, xml_res_size_23, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/memcheckui_bitmaps.cpp$.._codelite-icons-fresh-farm_output-pane_16_reload.png"), xml_res_file_24, xml_res_size_24, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/memcheckui_bitmaps.cpp$icons_16_st-george_sm.png"), xml_res_file_25, xml_res_size_25, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/memcheckui_bitmaps.cpp$.._codelite-icons_subversion_16_stop.png"), xml_res_file_26, xml_res_size_26, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/memcheckui_bitmaps.cpp$_home_david_devel_git_CL_MemCheck_memcheckui_bitmaps.xrc"), xml_res_file_27, xml_res_size_27, wxT("text/xml")); - wxXmlResource::Get()->Load(wxT("memory:XRC_resource/memcheckui_bitmaps.cpp$_home_david_devel_git_CL_MemCheck_memcheckui_bitmaps.xrc")); + XRC_ADD_FILE(wxT("XRC_resource/memcheckui_bitmaps.cpp$icons_16_arrow_down.png"), xml_res_file_0, xml_res_size_0, wxT("image/x-apple-ios-png")); + XRC_ADD_FILE(wxT("XRC_resource/memcheckui_bitmaps.cpp$icons_16_arrow_up.png"), xml_res_file_1, xml_res_size_1, wxT("image/x-apple-ios-png")); + XRC_ADD_FILE(wxT("XRC_resource/memcheckui_bitmaps.cpp$icons_16_broom.png"), xml_res_file_2, xml_res_size_2, wxT("image/x-apple-ios-png")); + XRC_ADD_FILE(wxT("XRC_resource/memcheckui_bitmaps.cpp$icons_16_check.png"), xml_res_file_3, xml_res_size_3, wxT("image/x-apple-ios-png")); + XRC_ADD_FILE(wxT("XRC_resource/memcheckui_bitmaps.cpp$.._codelite-icons-fresh-farm_toolbars_16_external-tools_cog.png"), xml_res_file_4, xml_res_size_4, wxT("image/x-apple-ios-png")); + XRC_ADD_FILE(wxT("XRC_resource/memcheckui_bitmaps.cpp$icons_16_document_import.png"), xml_res_file_5, xml_res_size_5, wxT("image/x-apple-ios-png")); + XRC_ADD_FILE(wxT("XRC_resource/memcheckui_bitmaps.cpp$.._LiteEditor_res_expand.png"), xml_res_file_6, xml_res_size_6, wxT("image/x-apple-ios-png")); + XRC_ADD_FILE(wxT("XRC_resource/memcheckui_bitmaps.cpp$icons_16_list.png"), xml_res_file_7, xml_res_size_7, wxT("image/x-apple-ios-png")); + XRC_ADD_FILE(wxT("XRC_resource/memcheckui_bitmaps.cpp$icons_16_auxiliary.png"), xml_res_file_8, xml_res_size_8, wxT("image/x-apple-ios-png")); + XRC_ADD_FILE(wxT("XRC_resource/memcheckui_bitmaps.cpp$icons_24_check.png"), xml_res_file_9, xml_res_size_9, wxT("image/x-apple-ios-png")); + XRC_ADD_FILE(wxT("XRC_resource/memcheckui_bitmaps.cpp$icons_16_arrow_right.png"), xml_res_file_10, xml_res_size_10, wxT("image/x-apple-ios-png")); + XRC_ADD_FILE(wxT("XRC_resource/memcheckui_bitmaps.cpp$icons_16_error.png"), xml_res_file_11, xml_res_size_11, wxT("image/x-apple-ios-png")); + XRC_ADD_FILE(wxT("XRC_resource/memcheckui_bitmaps.cpp$icons_24_document_import.png"), xml_res_file_12, xml_res_size_12, wxT("image/x-apple-ios-png")); + XRC_ADD_FILE(wxT("XRC_resource/memcheckui_bitmaps.cpp$icons_16_location.png"), xml_res_file_13, xml_res_size_13, wxT("image/x-apple-ios-png")); + XRC_ADD_FILE(wxT("XRC_resource/memcheckui_bitmaps.cpp$icons_16_setting_tools.png"), xml_res_file_14, xml_res_size_14, wxT("image/x-apple-ios-png")); + XRC_ADD_FILE(wxT("XRC_resource/memcheckui_bitmaps.cpp$.._codelite-icons_toolbars_16_build_stop.png"), xml_res_file_15, xml_res_size_15, wxT("image/x-apple-ios-png")); + XRC_ADD_FILE(wxT("XRC_resource/memcheckui_bitmaps.cpp$.._codelite-icons_toolbars_24_build_stop.png"), xml_res_file_16, xml_res_size_16, wxT("image/x-apple-ios-png")); + XRC_ADD_FILE(wxT("XRC_resource/memcheckui_bitmaps.cpp$icons_16_transparent.png"), xml_res_file_17, xml_res_size_17, wxT("image/x-apple-ios-png")); + XRC_ADD_FILE(wxT("XRC_resource/memcheckui_bitmaps.cpp$icons_16_node-tree.png"), xml_res_file_18, xml_res_size_18, wxT("image/x-apple-ios-png")); + XRC_ADD_FILE(wxT("XRC_resource/memcheckui_bitmaps.cpp$icons_16_page_first.png"), xml_res_file_19, xml_res_size_19, wxT("image/x-apple-ios-png")); + XRC_ADD_FILE(wxT("XRC_resource/memcheckui_bitmaps.cpp$icons_16_page_last.png"), xml_res_file_20, xml_res_size_20, wxT("image/x-apple-ios-png")); + XRC_ADD_FILE(wxT("XRC_resource/memcheckui_bitmaps.cpp$icons_16_page_next.png"), xml_res_file_21, xml_res_size_21, wxT("image/x-apple-ios-png")); + XRC_ADD_FILE(wxT("XRC_resource/memcheckui_bitmaps.cpp$icons_16_page_previous.png"), xml_res_file_22, xml_res_size_22, wxT("image/x-apple-ios-png")); + XRC_ADD_FILE(wxT("XRC_resource/memcheckui_bitmaps.cpp$icons_16_plain.png"), xml_res_file_23, xml_res_size_23, wxT("image/x-apple-ios-png")); + XRC_ADD_FILE(wxT("XRC_resource/memcheckui_bitmaps.cpp$.._codelite-icons-fresh-farm_output-pane_16_reload.png"), xml_res_file_24, xml_res_size_24, wxT("image/x-apple-ios-png")); + XRC_ADD_FILE(wxT("XRC_resource/memcheckui_bitmaps.cpp$icons_16_st-george_sm.png"), xml_res_file_25, xml_res_size_25, wxT("image/x-apple-ios-png")); + XRC_ADD_FILE(wxT("XRC_resource/memcheckui_bitmaps.cpp$.._codelite-icons_subversion_16_stop.png"), xml_res_file_26, xml_res_size_26, wxT("image/x-apple-ios-png")); + XRC_ADD_FILE(wxT("XRC_resource/memcheckui_bitmaps.cpp$_home_michalbliznak_Src_Projekty_CodeLite_MemCheck_memcheckui_bitmaps.xrc"), xml_res_file_27, xml_res_size_27, wxT("text/xml")); + wxXmlResource::Get()->Load(wxT("memory:XRC_resource/memcheckui_bitmaps.cpp$_home_michalbliznak_Src_Projekty_CodeLite_MemCheck_memcheckui_bitmaps.xrc")); } diff -Nru codelite-8.0.1+dfsg2/MemCheck/memcheckui.cpp codelite-9.0+dfsg/MemCheck/memcheckui.cpp --- codelite-8.0.1+dfsg2/MemCheck/memcheckui.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/MemCheck/memcheckui.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -163,10 +163,10 @@ bBitmapLoaded = true; } - wxBoxSizer* boxSizer221 = new wxBoxSizer(wxHORIZONTAL); + wxBoxSizer* boxSizer221 = new wxBoxSizer(wxVERTICAL); this->SetSizer(boxSizer221); - m_auibar223 = new wxAuiToolBar(this, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxAUI_TB_PLAIN_BACKGROUND|wxAUI_TB_DEFAULT_STYLE|wxAUI_TB_VERTICAL); + m_auibar223 = new wxAuiToolBar(this, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxAUI_TB_PLAIN_BACKGROUND|wxAUI_TB_DEFAULT_STYLE); m_auibar223->SetToolBitmapSize(wxSize(16,16)); boxSizer221->Add(m_auibar223, 0, wxALL|wxEXPAND, 0); diff -Nru codelite-8.0.1+dfsg2/MemCheck/memcheckui.h codelite-9.0+dfsg/MemCheck/memcheckui.h --- codelite-8.0.1+dfsg2/MemCheck/memcheckui.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/MemCheck/memcheckui.h 2015-10-11 13:56:07.000000000 +0000 @@ -4,8 +4,8 @@ // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// -#ifndef MEMCHECKUI_BASE_CLASSES_H -#define MEMCHECKUI_BASE_CLASSES_H +#ifndef CODELITE_MEMCHECK_MEMCHECKUI_BASE_CLASSES_H +#define CODELITE_MEMCHECK_MEMCHECKUI_BASE_CLASSES_H #include #include diff -Nru codelite-8.0.1+dfsg2/MemCheck/memcheckui.wxcp codelite-9.0+dfsg/MemCheck/memcheckui.wxcp --- codelite-8.0.1+dfsg2/MemCheck/memcheckui.wxcp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/MemCheck/memcheckui.wxcp 2015-10-11 13:56:07.000000000 +0000 @@ -419,7 +419,7 @@ }, { "type": "choice", "m_label": "Orientation:", - "m_selection": 1, + "m_selection": 0, "m_options": ["wxVERTICAL", "wxHORIZONTAL"] }], "m_events": [], @@ -429,7 +429,7 @@ "border": 0, "gbSpan": "1,1", "gbPosition": "0,0", - "m_styles": ["wxAUI_TB_PLAIN_BACKGROUND", "wxAUI_TB_DEFAULT_STYLE", "wxAUI_TB_VERTICAL"], + "m_styles": ["wxAUI_TB_PLAIN_BACKGROUND", "wxAUI_TB_DEFAULT_STYLE"], "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "winid", diff -Nru codelite-8.0.1+dfsg2/MemCheck/valgrindprocessor.cpp codelite-9.0+dfsg/MemCheck/valgrindprocessor.cpp --- codelite-8.0.1+dfsg2/MemCheck/valgrindprocessor.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/MemCheck/valgrindprocessor.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -24,8 +24,8 @@ wxArrayString ValgrindMemcheckProcessor::GetSuppressionFiles() { wxArrayString suppFiles = m_settings->GetValgrindSettings().GetSuppFiles(); - if (WorkspaceST::Get()->IsOpen() && m_settings->GetValgrindSettings().GetSuppFileInPrivateFolder()) { - wxTextFile defaultSupp(wxFileName(WorkspaceST::Get()->GetPrivateFolder(), + if (clCxxWorkspaceST::Get()->IsOpen() && m_settings->GetValgrindSettings().GetSuppFileInPrivateFolder()) { + wxTextFile defaultSupp(wxFileName(clCxxWorkspaceST::Get()->GetPrivateFolder(), "valgrind.memcheck.supp").GetFullPath()); if (!defaultSupp.Exists()) defaultSupp.Create(); @@ -42,11 +42,11 @@ if (m_settings->GetValgrindSettings().GetOutputInPrivateFolder() && m_outputLogFileName.IsEmpty()) CL_ERROR(PLUGIN_PREFIX("Valgrind output file is not set properly. Using default - file in private folder")); if (m_settings->GetValgrindSettings().GetOutputInPrivateFolder() || m_outputLogFileName.IsEmpty()) { - if (WorkspaceST::Get()->IsOpen()) - m_outputLogFileName = wxFileName(WorkspaceST::Get()->GetPrivateFolder(), + if (clCxxWorkspaceST::Get()->IsOpen()) + m_outputLogFileName = wxFileName(clCxxWorkspaceST::Get()->GetPrivateFolder(), "valgrind.memcheck.log.xml").GetFullPath(); else - m_outputLogFileName = wxFileName(wxStandardPaths::Get().GetTempDir(), + m_outputLogFileName = wxFileName(clStandardPaths::Get().GetTempDir(), "valgrind.memcheck.log.xml").GetFullPath(); } diff -Nru codelite-8.0.1+dfsg2/Outline/CMakeLists.txt codelite-9.0+dfsg/Outline/CMakeLists.txt --- codelite-8.0.1+dfsg2/Outline/CMakeLists.txt 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Outline/CMakeLists.txt 2015-10-11 13:56:07.000000000 +0000 @@ -36,13 +36,6 @@ add_definitions(-fPIC) endif() - - -# Add RPATH -if (UNIX) -set (LINKER_OPTIONS -Wl,-rpath,"${PLUGINS_DIR}") -endif (UNIX) - FILE(GLOB SRCS "*.cpp") # Define the output @@ -55,8 +48,6 @@ ${wxWidgets_LIBRARIES} libcodelite plugin - wxsqlite3 - sqlite3lib ) # Installation destination -CL_INSTALL_PLUGIN(${PLUGIN_NAME}) \ No newline at end of file +CL_INSTALL_PLUGIN(${PLUGIN_NAME}) diff -Nru codelite-8.0.1+dfsg2/Outline/outline.cpp codelite-9.0+dfsg/Outline/outline.cpp --- codelite-8.0.1+dfsg2/Outline/outline.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Outline/outline.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -44,17 +44,19 @@ #include #include "parse_thread.h" #include "outline_symbol_tree.h" +#include "codelite_events.h" +#include "cl_command_event.h" //-------------------------------------------- -//Plugin Interface +// Plugin Interface //-------------------------------------------- static SymbolViewPlugin* thePlugin = NULL; -//Define the plugin entry point -extern "C" EXPORT IPlugin *CreatePlugin(IManager *manager) +// Define the plugin entry point +extern "C" EXPORT IPlugin* CreatePlugin(IManager* manager) { - if (thePlugin == 0) { + if(thePlugin == 0) { thePlugin = new SymbolViewPlugin(manager); } return thePlugin; @@ -70,57 +72,48 @@ return info; } -extern "C" EXPORT int GetPluginInterfaceVersion() -{ - return PLUGIN_INTERFACE_VERSION; -} - +extern "C" EXPORT int GetPluginInterfaceVersion() { return PLUGIN_INTERFACE_VERSION; } //-------------------------------------------- -//Constructors/Destructors +// Constructors/Destructors //-------------------------------------------- -SymbolViewPlugin::SymbolViewPlugin(IManager *manager) +SymbolViewPlugin::SymbolViewPlugin(IManager* manager) : IPlugin(manager) { m_longName = _("Outline Plugin"); m_shortName = wxT("Outline"); - + OutlineSettings os; os.Load(); - - Notebook *book = m_mgr->GetWorkspacePaneNotebook(); - if( IsPaneDetached() ) { + + Notebook* book = m_mgr->GetWorkspacePaneNotebook(); + if(IsPaneDetached()) { // Make the window child of the main panel (which is the grand parent of the notebook) - DockablePane *cp = new DockablePane(book->GetParent()->GetParent(), book, wxT("Outline"), wxNullBitmap, wxSize(200, 200)); + DockablePane* cp = + new DockablePane(book->GetParent()->GetParent(), book, _("Outline"), wxNullBitmap, wxSize(200, 200)); m_view = new OutlineTab(cp, m_mgr); cp->SetChildNoReparent(m_view); } else { m_view = new OutlineTab(book, m_mgr); - book->AddPage(m_view, wxT("Outline"), false); + book->AddPage(m_view, _("Outline"), false); } + EventNotifier::Get()->Bind(wxEVT_SHOW_WORKSPACE_TAB, &SymbolViewPlugin::OnToggleTab, this); + m_mgr->AddWorkspaceTab(_("Outline")); } -SymbolViewPlugin::~SymbolViewPlugin() -{ - thePlugin = NULL; -} +SymbolViewPlugin::~SymbolViewPlugin() { thePlugin = NULL; } -clToolBar *SymbolViewPlugin::CreateToolBar(wxWindow *parent) -{ - return NULL; -} +clToolBar* SymbolViewPlugin::CreateToolBar(wxWindow* parent) { return NULL; } -void SymbolViewPlugin::CreatePluginMenu(wxMenu *pluginsMenu) -{ - wxUnusedVar(pluginsMenu); -} +void SymbolViewPlugin::CreatePluginMenu(wxMenu* pluginsMenu) { wxUnusedVar(pluginsMenu); } void SymbolViewPlugin::UnPlug() { - size_t where = m_mgr->GetWorkspacePaneNotebook()->GetPageIndex(m_view); - if ( where != Notebook::npos ) { + EventNotifier::Get()->Unbind(wxEVT_SHOW_WORKSPACE_TAB, &SymbolViewPlugin::OnToggleTab, this); + int where = m_mgr->GetWorkspacePaneNotebook()->GetPageIndex(m_view); + if(where != wxNOT_FOUND) { // this window might be floating m_mgr->GetWorkspacePaneNotebook()->RemovePage(where); } @@ -129,33 +122,30 @@ m_view = NULL; } -bool SymbolViewPlugin::IsPaneDetached() +bool SymbolViewPlugin::IsPaneDetached() { DetachedPanesInfo dpi; m_mgr->GetConfigTool()->ReadObject(wxT("DetachedPanesList"), &dpi); wxArrayString detachedPanes = dpi.GetPanes(); - return detachedPanes.Index(wxT("Outline")) != wxNOT_FOUND; -} + return detachedPanes.Index(_("Outline")) != wxNOT_FOUND; +} -int SymbolViewPlugin::DoFindTabIndex() +int SymbolViewPlugin::DoFindTabIndex() { return m_mgr->GetWorkspacePaneNotebook()->GetPageIndex(m_view); } + +void SymbolViewPlugin::OnToggleTab(clCommandEvent& event) { - std::vector windows; - Notebook *book = m_mgr->GetWorkspacePaneNotebook(); - -#if !CL_USE_NATIVEBOOK - - book->GetEditorsInOrder(windows); - -#else - - for(size_t i=0; iGetPageCount(); i++) { - windows.push_back( book->GetPage(i) ); + if(event.GetString() != _("Outline")) { + event.Skip(); + return; } - -#endif - for(size_t i=0; iGetWorkspacePaneNotebook()->InsertPage(0, m_view, _("Outline"), true); + } else { + int where = m_mgr->GetWorkspacePaneNotebook()->GetPageIndex(_("Outline")); + if(where != wxNOT_FOUND) { + m_mgr->GetWorkspacePaneNotebook()->RemovePage(where); + } } - return wxNOT_FOUND; -} +} diff -Nru codelite-8.0.1+dfsg2/Outline/outline.h codelite-9.0+dfsg/Outline/outline.h --- codelite-8.0.1+dfsg2/Outline/outline.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Outline/outline.h 2015-10-11 13:56:07.000000000 +0000 @@ -37,27 +37,28 @@ #include "dockablepane.h" #include "windowstack.h" #include "globals.h" +#include "cl_command_event.h" class SymbolViewPlugin : public IPlugin { protected: - OutlineTab *m_view; + OutlineTab* m_view; bool IsPaneDetached(); int DoFindTabIndex(); - + void OnToggleTab(clCommandEvent& event); + public: //-------------------------------------------- - //Constructors/Destructors + // Constructors/Destructors //-------------------------------------------- - SymbolViewPlugin(IManager *manager); + SymbolViewPlugin(IManager* manager); ~SymbolViewPlugin(); //-------------------------------------------- - //Abstract methods + // Abstract methods //-------------------------------------------- - virtual clToolBar *CreateToolBar(wxWindow *parent); - virtual void CreatePluginMenu(wxMenu *pluginsMenu); + virtual clToolBar* CreateToolBar(wxWindow* parent); + virtual void CreatePluginMenu(wxMenu* pluginsMenu); virtual void UnPlug(); }; -#endif //Outline - +#endif // Outline diff -Nru codelite-8.0.1+dfsg2/Outline/outline_tab.cpp codelite-9.0+dfsg/Outline/outline_tab.cpp --- codelite-8.0.1+dfsg2/Outline/outline_tab.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Outline/outline_tab.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -31,6 +31,9 @@ #include #include #include "fileextmanager.h" +#include "fileutils.h" +#include "lexer_configuration.h" +#include "ColoursAndFontsManager.h" const wxEventType wxEVT_SV_GOTO_DEFINITION = wxNewEventType(); const wxEventType wxEVT_SV_GOTO_DECLARATION = wxNewEventType(); @@ -103,18 +106,33 @@ void OutlineTab::OnSearchSymbol(wxCommandEvent& event) { event.Skip(); - wxString name = m_textCtrlSearch->GetValue(); - name.Trim().Trim(false); - m_tree->SelectItemByName(name); + if(m_simpleBook->GetSelection() == OUTLINE_TAB_PHP) { + // PHP + m_treeCtrlPhp->Select(m_textCtrlSearch->GetValue()); + + } else { + // C++ + wxString name = m_textCtrlSearch->GetValue(); + name.Trim().Trim(false); + m_tree->SelectItemByName(name); + } } void OutlineTab::OnSearchEnter(wxCommandEvent& event) { event.Skip(); - wxString name = m_textCtrlSearch->GetValue(); - name.Trim().Trim(false); - if(name.IsEmpty() == false) { - m_tree->ActivateSelectedItem(); + if(m_simpleBook->GetSelection() == OUTLINE_TAB_PHP) { + wxTreeItemId selection = m_treeCtrlPhp->GetSelection(); + if(selection.IsOk()) { + m_treeCtrlPhp->ItemSelected(selection, true); + } + + } else { + wxString name = m_textCtrlSearch->GetValue(); + name.Trim().Trim(false); + if(name.IsEmpty() == false) { + m_tree->ActivateSelectedItem(); + } } } @@ -122,13 +140,16 @@ { e.Skip(); IEditor* editor = m_mgr->GetActiveEditor(); - - if(editor && FileExtManager::IsCxxFile(editor->GetFileName())) { + LexerConf::Ptr_t phpLexer = ColoursAndFontsManager::Get().GetLexer("php"); + LexerConf::Ptr_t cxxLexer = ColoursAndFontsManager::Get().GetLexer("c++"); + + // Use the lexer to determine if we can show outline + if(editor && cxxLexer && FileUtils::WildMatch(cxxLexer->GetFileSpec(), editor->GetFileName())) { m_tree->BuildTree(editor->GetFileName()); m_simpleBook->SetSelection(OUTLINE_TAB_CXX); m_textCtrlSearch->Enable(true); - } else if(editor && FileExtManager::IsPHPFile(editor->GetFileName())) { + } else if(editor && phpLexer && FileUtils::WildMatch(phpLexer->GetFileSpec(), editor->GetFileName())) { m_treeCtrlPhp->BuildTree(editor->GetFileName()); m_simpleBook->SetSelection(OUTLINE_TAB_PHP); m_textCtrlSearch->Enable(true); @@ -174,7 +195,7 @@ e.Skip(); IEditor* editor = m_mgr->GetActiveEditor(); if(editor) { - + wxWindow* oldFocusedWindow = wxWindow::FindFocus(); m_tree->BuildTree(editor->GetFileName()); wxWindow* focusedWindow = wxWindow::FindFocus(); @@ -274,7 +295,7 @@ void OutlineTab::OnPhpItemSelected(wxTreeEvent& event) { event.Skip(); - m_treeCtrlPhp->ItemSelected(event.GetItem()); + m_treeCtrlPhp->ItemSelected(event.GetItem(), false); } void OutlineTab::OnEditorSaved(clCommandEvent& event) @@ -285,3 +306,8 @@ m_treeCtrlPhp->BuildTree(filename); } } +void OutlineTab::OnPhpItemActivated(wxTreeEvent& event) +{ + event.Skip(); + m_treeCtrlPhp->ItemSelected(event.GetItem(), true); +} diff -Nru codelite-8.0.1+dfsg2/Outline/outline_tab.h codelite-9.0+dfsg/Outline/outline_tab.h --- codelite-8.0.1+dfsg2/Outline/outline_tab.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Outline/outline_tab.h 2015-10-11 13:56:07.000000000 +0000 @@ -36,6 +36,7 @@ class OutlineTab : public OutlineTabBaseClass { protected: + virtual void OnPhpItemActivated(wxTreeEvent& event); virtual void OnPhpItemSelected(wxTreeEvent& event); IManager* m_mgr; svSymbolTree* m_tree; diff -Nru codelite-8.0.1+dfsg2/Outline/PHPOutlineTree.cpp codelite-9.0+dfsg/Outline/PHPOutlineTree.cpp --- codelite-8.0.1+dfsg2/Outline/PHPOutlineTree.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Outline/PHPOutlineTree.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -9,6 +9,7 @@ #include "PHPSourceFile.h" #include "navigationmanager.h" #include "globals.h" +#include "fileutils.h" #ifndef __WXMSW__ #include @@ -134,25 +135,55 @@ } } -void PHPOutlineTree::ItemSelected(const wxTreeItemId& item) +void PHPOutlineTree::ItemSelected(const wxTreeItemId& item, bool focusEditor) { QItemData* itemData = dynamic_cast(GetItemData(item)); CHECK_PTR_RET(itemData); IEditor* editor = m_manager->GetActiveEditor(); CHECK_PTR_RET(editor); - + // Define the pattern to search - + editor->FindAndSelect(itemData->m_entry->GetShortName(), itemData->m_entry->GetShortName(), editor->PosFromLine(itemData->m_entry->GetLine()), NavMgr::Get()); // set the focus to the editor - CallAfter( &PHPOutlineTree::SetEditorActive, editor); + if(focusEditor) { + CallAfter(&PHPOutlineTree::SetEditorActive, editor); + } } -void PHPOutlineTree::SetEditorActive(IEditor* editor) +void PHPOutlineTree::SetEditorActive(IEditor* editor) { editor->SetActive(); } + +bool PHPOutlineTree::Select(const wxString& pattern) { - editor->SetActive(); + wxTreeItemId item = DoFind(pattern, GetRootItem()); + if(item.IsOk()) { + // select this item + EnsureVisible(item); + SelectItem(item); + return true; + } + return false; +} + +wxTreeItemId PHPOutlineTree::DoFind(const wxString& pattern, const wxTreeItemId& parent) +{ + if((GetRootItem() != parent) && FileUtils::FuzzyMatch(pattern, GetItemText(parent))) { + return parent; + } + if(ItemHasChildren(parent)) { + wxTreeItemIdValue cookie; + wxTreeItemId child = GetFirstChild(parent, cookie); + while(child.IsOk()) { + wxTreeItemId match = DoFind(pattern, child); + if(match.IsOk()) { + return match; + } + child = GetNextChild(parent, cookie); + } + } + return wxTreeItemId(); } diff -Nru codelite-8.0.1+dfsg2/Outline/PHPOutlineTree.h codelite-9.0+dfsg/Outline/PHPOutlineTree.h --- codelite-8.0.1+dfsg2/Outline/PHPOutlineTree.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Outline/PHPOutlineTree.h 2015-10-11 13:56:07.000000000 +0000 @@ -15,7 +15,8 @@ void BuildTree(wxTreeItemId parentTreeItem, PHPEntityBase::Ptr_t entity); int GetImageId(PHPEntityBase::Ptr_t entry); void SetEditorActive(IEditor* editor); - + wxTreeItemId DoFind(const wxString& pattern, const wxTreeItemId& parent); + public: PHPOutlineTree(wxWindow* parent, wxWindowID id = wxID_ANY, @@ -29,7 +30,8 @@ void Clear(); void SetManager(IManager* manager) { this->m_manager = manager; } IManager* GetManager() { return m_manager; } - void ItemSelected(const wxTreeItemId& item); + void ItemSelected(const wxTreeItemId& item, bool focusEditor); + bool Select(const wxString& pattern); }; #endif // PHPOUTLINETREE_H diff -Nru codelite-8.0.1+dfsg2/Outline/wxcrafter.cpp codelite-9.0+dfsg/Outline/wxcrafter.cpp --- codelite-8.0.1+dfsg2/Outline/wxcrafter.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Outline/wxcrafter.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -35,6 +35,7 @@ boxSizer1->Add(m_textCtrlSearch, 0, wxALL|wxEXPAND, 2); m_simpleBook = new wxSimplebook(this, wxID_ANY, wxDefaultPosition, wxSize(150,300), wxBK_DEFAULT); + m_simpleBook->SetName(wxT("m_simpleBook")); m_simpleBook->SetEffect(wxSHOW_EFFECT_NONE); boxSizer1->Add(m_simpleBook, 1, wxALL|wxEXPAND, 2); @@ -65,15 +66,16 @@ boxSizer19->Add(m_panelEmpty, 1, wxEXPAND, 5); + SetName(wxT("OutlineTabBaseClass")); SetSizeHints(-1,-1); - if ( GetSizer() ) { + if (GetSizer()) { GetSizer()->Fit(this); } - Centre(wxBOTH); // Connect events m_textCtrlSearch->Connect(wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler(OutlineTabBaseClass::OnSearchSymbol), NULL, this); m_textCtrlSearch->Connect(wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler(OutlineTabBaseClass::OnSearchEnter), NULL, this); m_treeCtrlPhp->Connect(wxEVT_COMMAND_TREE_SEL_CHANGED, wxTreeEventHandler(OutlineTabBaseClass::OnPhpItemSelected), NULL, this); + m_treeCtrlPhp->Connect(wxEVT_COMMAND_TREE_ITEM_ACTIVATED, wxTreeEventHandler(OutlineTabBaseClass::OnPhpItemActivated), NULL, this); } @@ -82,5 +84,6 @@ m_textCtrlSearch->Disconnect(wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler(OutlineTabBaseClass::OnSearchSymbol), NULL, this); m_textCtrlSearch->Disconnect(wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler(OutlineTabBaseClass::OnSearchEnter), NULL, this); m_treeCtrlPhp->Disconnect(wxEVT_COMMAND_TREE_SEL_CHANGED, wxTreeEventHandler(OutlineTabBaseClass::OnPhpItemSelected), NULL, this); + m_treeCtrlPhp->Disconnect(wxEVT_COMMAND_TREE_ITEM_ACTIVATED, wxTreeEventHandler(OutlineTabBaseClass::OnPhpItemActivated), NULL, this); } diff -Nru codelite-8.0.1+dfsg2/Outline/wxcrafter.h codelite-9.0+dfsg/Outline/wxcrafter.h --- codelite-8.0.1+dfsg2/Outline/wxcrafter.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Outline/wxcrafter.h 2015-10-11 13:56:07.000000000 +0000 @@ -4,8 +4,8 @@ // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// -#ifndef WXCRAFTER_BASE_CLASSES_H -#define WXCRAFTER_BASE_CLASSES_H +#ifndef CODELITE_OUTLINE_WXCRAFTER_BASE_CLASSES_H +#define CODELITE_OUTLINE_WXCRAFTER_BASE_CLASSES_H #include #include @@ -18,6 +18,12 @@ #include #include #include "PHPOutlineTree.h" +#if wxVERSION_NUMBER >= 2900 +#include +#include +#include +#include +#endif class OutlineTabBaseClass : public wxPanel { @@ -34,6 +40,7 @@ virtual void OnSearchSymbol(wxCommandEvent& event) { event.Skip(); } virtual void OnSearchEnter(wxCommandEvent& event) { event.Skip(); } virtual void OnPhpItemSelected(wxTreeEvent& event) { event.Skip(); } + virtual void OnPhpItemActivated(wxTreeEvent& event) { event.Skip(); } public: wxTextCtrl* GetTextCtrlSearch() { return m_textCtrlSearch; } diff -Nru codelite-8.0.1+dfsg2/Outline/wxcrafter_outline_bitmaps.cpp codelite-9.0+dfsg/Outline/wxcrafter_outline_bitmaps.cpp --- codelite-8.0.1+dfsg2/Outline/wxcrafter_outline_bitmaps.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Outline/wxcrafter_outline_bitmaps.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -26,7 +26,7 @@ 60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, 110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, 115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, -47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, +47,47,119,119,119,46,119,120,119,105,100,103,101,116,115,46,111,114,103, 47,119,120,120,114,99,34,47,62,10}; void wxC682BInitBitmapResources() diff -Nru codelite-8.0.1+dfsg2/Outline/wxcrafter.wxcp codelite-9.0+dfsg/Outline/wxcrafter.wxcp --- codelite-8.0.1+dfsg2/Outline/wxcrafter.wxcp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Outline/wxcrafter.wxcp 2015-10-11 13:56:07.000000000 +0000 @@ -108,6 +108,10 @@ "m_sizerFlags": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "boxSizer1" }, { @@ -385,6 +389,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "boxSizer11" }, { @@ -492,6 +500,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "boxSizer13" }, { @@ -577,6 +589,13 @@ "m_functionNameAndSignature": "OnPhpItemSelected(wxTreeEvent& event)", "m_description": "Selection has changed.", "m_noBody": false + }, { + "m_eventName": "wxEVT_COMMAND_TREE_ITEM_ACTIVATED", + "m_eventClass": "wxTreeEvent", + "m_eventHandler": "wxTreeEventHandler", + "m_functionNameAndSignature": "OnPhpItemActivated(wxTreeEvent& event)", + "m_description": "An item has been activated (e.g. double clicked).", + "m_noBody": false }], "m_children": [] }] @@ -673,6 +692,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "boxSizer19" }, { diff -Nru codelite-8.0.1+dfsg2/Plugin/bitmap_loader.cpp codelite-9.0+dfsg/Plugin/bitmap_loader.cpp --- codelite-8.0.1+dfsg2/Plugin/bitmap_loader.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/bitmap_loader.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -31,9 +31,11 @@ #include "editor_config.h" #include "optionsconfig.h" #include "cl_standard_paths.h" +#include std::map BitmapLoader::m_toolbarsBitmaps; std::map BitmapLoader::m_manifest; +BitmapLoader::BitmapMap_t BitmapLoader::m_userBitmaps; BitmapLoader::~BitmapLoader() {} @@ -42,21 +44,21 @@ { wxString zipname; wxFileName fn; - - // Set the defaul icon set + +// Set the defaul icon set #ifdef __WXOSX__ zipname = "codelite-icons-dark.zip"; #else zipname = "codelite-icons.zip"; #endif - + if(EditorConfigST::Get()->GetOptions()->GetOptions() & OptionsConfig::Opt_IconSet_FreshFarm) { zipname = wxT("codelite-icons-fresh-farm.zip"); - + } else if(EditorConfigST::Get()->GetOptions()->GetOptions() & OptionsConfig::Opt_IconSet_Classic_Dark) { zipname = wxT("codelite-icons-dark.zip"); - - } else if(EditorConfigST::Get()->GetOptions()->GetOptions() & OptionsConfig::Opt_IconSet_Classic){ + + } else if(EditorConfigST::Get()->GetOptions()->GetOptions() & OptionsConfig::Opt_IconSet_Classic) { zipname = wxT("codelite-icons.zip"); } @@ -66,10 +68,10 @@ fn = wxFileName(bitmapPath, zipname); #else #ifdef USE_POSIX_LAYOUT - wxString bitmapPath(wxStandardPaths::Get().GetDataDir() + wxT(INSTALL_DIR)); + wxString bitmapPath(clStandardPaths::Get().GetDataDir() + wxT(INSTALL_DIR)); fn = wxFileName(bitmapPath, zipname); #else - fn = wxFileName(wxStandardPaths::Get().GetDataDir(), zipname); + fn = wxFileName(clStandardPaths::Get().GetDataDir(), zipname); #endif #endif @@ -85,8 +87,7 @@ const wxBitmap& BitmapLoader::LoadBitmap(const wxString& name) { std::map::const_iterator iter = m_toolbarsBitmaps.find(name); - if(iter != m_toolbarsBitmaps.end()) - return iter->second; + if(iter != m_toolbarsBitmaps.end()) return iter->second; return wxNullBitmap; } @@ -111,12 +112,10 @@ entry.Trim().Trim(false); // empty? - if(entry.empty()) - continue; + if(entry.empty()) continue; // comment? - if(entry.StartsWith(wxT(";"))) - continue; + if(entry.StartsWith(wxT(";"))) continue; wxString key = entry.BeforeFirst(wxT('=')); wxString val = entry.AfterFirst(wxT('=')); @@ -169,24 +168,33 @@ } } -int BitmapLoader::GetMimeImageId(FileExtManager::FileType type) const +int BitmapLoader::GetMimeImageId(FileExtManager::FileType type) { FileExtManager::Init(); + if(m_fileIndexMap.empty()) { + // Allocate image list so we will populate the m_fileIndexMap + wxImageList* il = MakeStandardMimeImageList(); + wxDELETE(il); + } std::map::const_iterator iter = m_fileIndexMap.find(type); - if(iter == m_fileIndexMap.end()) - return wxNOT_FOUND; + if(iter == m_fileIndexMap.end()) return wxNOT_FOUND; return iter->second; } -int BitmapLoader::GetMimeImageId(const wxString& filename) const +int BitmapLoader::GetMimeImageId(const wxString& filename) { FileExtManager::Init(); - + if(m_fileIndexMap.empty()) { + // Allocate image list so we will populate the m_fileIndexMap + wxImageList* il = MakeStandardMimeImageList(); + wxDELETE(il); + } + FileExtManager::FileType type = FileExtManager::GetType(filename); std::map::const_iterator iter = m_fileIndexMap.find(type); - if(iter == m_fileIndexMap.end()) + if(iter == m_fileIndexMap.end()) { return wxNOT_FOUND; - + } return iter->second; } @@ -194,6 +202,7 @@ { wxImageList* imageList = new wxImageList(16, 16); + m_fileIndexMap.clear(); AddImage(imageList->Add(GetIcon(LoadBitmap(wxT("mime/16/exe")))), FileExtManager::TypeExe); AddImage(imageList->Add(GetIcon(LoadBitmap(wxT("mime/16/html")))), FileExtManager::TypeHtml); AddImage(imageList->Add(GetIcon(LoadBitmap(wxT("mime/16/zip")))), FileExtManager::TypeArchive); @@ -225,16 +234,20 @@ AddImage(imageList->Add(GetIcon(LoadBitmap(wxT("mime/16/cmake")))), FileExtManager::TypeCMake); AddImage(imageList->Add(GetIcon(LoadBitmap(wxT("mime/16/qmake")))), FileExtManager::TypeQMake); - m_bMapPopulated = true; + std::for_each( + m_userBitmaps.begin(), m_userBitmaps.end(), [&](const std::pair& p) { + AddImage(imageList->Add(GetIcon(p.second)), p.first); + }); return imageList; } void BitmapLoader::AddImage(int index, FileExtManager::FileType type) { - if(!m_bMapPopulated) { - m_fileIndexMap.insert(std::make_pair(type, index)); - } + std::map::iterator iter = m_fileIndexMap.find(type); + if(iter != m_fileIndexMap.end()) m_fileIndexMap.erase(iter); + m_fileIndexMap.insert(std::make_pair(type, index)); } + BitmapLoader::BitmapMap_t BitmapLoader::MakeStandardMimeMap() { BitmapLoader::BitmapMap_t images; @@ -269,7 +282,11 @@ images[FileExtManager::TypeAsm] = LoadBitmap(wxT("mime/16/asm")); images[FileExtManager::TypeCMake] = LoadBitmap(wxT("mime/16/cmake")); images[FileExtManager::TypeQMake] = LoadBitmap(wxT("mime/16/qmake")); - return images; + + BitmapLoader::BitmapMap_t merged; + merged.insert(m_userBitmaps.begin(), m_userBitmaps.end()); + merged.insert(images.begin(), images.end()); + return merged; } wxIcon BitmapLoader::GetIcon(const wxBitmap& bmp) const @@ -278,3 +295,12 @@ icn.CopyFromBitmap(bmp); return icn; } + +void BitmapLoader::RegisterImage(FileExtManager::FileType type, const wxBitmap& bmp) +{ + BitmapMap_t::iterator iter = m_userBitmaps.find(type); + if(iter != m_userBitmaps.end()) { + m_userBitmaps.erase(iter); + } + m_userBitmaps.insert(std::make_pair(type, bmp)); +} diff -Nru codelite-8.0.1+dfsg2/Plugin/bitmap_loader.h codelite-9.0+dfsg/Plugin/bitmap_loader.h --- codelite-8.0.1+dfsg2/Plugin/bitmap_loader.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/bitmap_loader.h 2015-10-11 13:56:07.000000000 +0000 @@ -38,50 +38,54 @@ { public: typedef std::map BitmapMap_t; - + protected: - wxFileName m_zipPath; - static std::map m_toolbarsBitmaps; - static std::map m_manifest; + wxFileName m_zipPath; + static std::map m_toolbarsBitmaps; + static std::map m_manifest; std::map m_fileIndexMap; - bool m_bMapPopulated; - - + bool m_bMapPopulated; + static BitmapMap_t m_userBitmaps; + protected: void AddImage(int index, FileExtManager::FileType type); wxIcon GetIcon(const wxBitmap& bmp) const; - + public: BitmapLoader(); ~BitmapLoader(); + + /** + * @brief register a user defined image to a given file type + */ + static void RegisterImage(FileExtManager::FileType type, const wxBitmap& bmp); /** * @brief prepare an image list allocated on the heap which is based on * the FileExtManager content. It is the CALLER responsibility for deleting the memory */ wxImageList* MakeStandardMimeImageList(); - BitmapMap_t MakeStandardMimeMap(); - + BitmapMap_t MakeStandardMimeMap(); + /** * @brief return the image index in the image list prepared by MakeStandardMimeImageList() * @return wxNOT_FOUND if no match is found, the index otherwise */ - int GetMimeImageId(const wxString &filename) const; + int GetMimeImageId(const wxString& filename); /** * @brief return the image index in the image list prepared by MakeStandardMimeImageList() * @return wxNOT_FOUND if no match is found, the index otherwise */ - int GetMimeImageId(FileExtManager::FileType type) const; + int GetMimeImageId(FileExtManager::FileType type); protected: - void doLoadManifest(); - void doLoadBitmaps(); - wxBitmap doLoadBitmap(const wxString &filepath); + void doLoadManifest(); + void doLoadBitmaps(); + wxBitmap doLoadBitmap(const wxString& filepath); public: - const wxBitmap& LoadBitmap(const wxString &name); - + const wxBitmap& LoadBitmap(const wxString& name); }; #endif // BITMAP_LOADER_H diff -Nru codelite-8.0.1+dfsg2/Plugin/BorlandCppBuilderImporter.cpp codelite-9.0+dfsg/Plugin/BorlandCppBuilderImporter.cpp --- codelite-8.0.1+dfsg2/Plugin/BorlandCppBuilderImporter.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/BorlandCppBuilderImporter.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,4 +1,6 @@ #include "BorlandCppBuilderImporter.h" +#include +#include #include #include @@ -45,6 +47,7 @@ GenericProjectPtr genericProject = std::make_shared(); genericProject->name = wsInfo.GetName(); genericProject->path = wsInfo.GetPath(); + genericProject->createDefaultVirtualDir = true; GenericProjectCfgPtr genericProjectCfgDebug = std::make_shared(); GenericProjectCfgPtr genericProjectCfgRelease = std::make_shared(); @@ -84,6 +87,44 @@ genericProjectCfgRelease->libPath = projectLibs; } + if(macrosChild->GetName() == wxT("USERDEFINES")) { + wxString projectUserDefines = macrosChild->GetAttribute(wxT("value")); + + genericProjectCfgDebug->preprocessor = projectUserDefines; + genericProjectCfgRelease->preprocessor = projectUserDefines; + } + + if(macrosChild->GetName() == wxT("MAINSOURCE")) { + wxString projectMainSource = macrosChild->GetAttribute(wxT("value")); + projectMainSource.Replace(wxT("\""), wxT("")); + + wxFileName fnMainSource(wsInfo.GetPath() + wxFileName::GetPathSeparator() + + projectMainSource); + + if(fnMainSource.GetExt().Lower() == wxT("bpf")) { + wxFileInputStream fis(fnMainSource.GetFullPath()); + wxTextInputStream tis(fis); + + while(!fis.Eof()) { + wxString line = tis.ReadLine(); + + int index = line.Find(wxT("USEUNIT(\"")); + if(index != wxNOT_FOUND) { + int begin = index + 9; + int end = line.Find(wxT("\");")) - 1; + + wxString projectFilename = line.SubString(begin, end).Trim().Trim(false); + projectFilename.Replace(wxT("\\"), wxT("/")); + + GenericProjectFilePtr genericProjectFile = + std::make_shared(); + genericProjectFile->name = projectFilename; + genericProject->files.push_back(genericProjectFile); + } + } + } + } + macrosChild = macrosChild->GetNext(); } } diff -Nru codelite-8.0.1+dfsg2/Plugin/builder_gnumake.cpp codelite-9.0+dfsg/Plugin/builder_gnumake.cpp --- codelite-8.0.1+dfsg2/Plugin/builder_gnumake.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/builder_gnumake.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -96,7 +96,7 @@ if(project.IsEmpty()) { return false; } - ProjectPtr proj = WorkspaceST::Get()->FindProjectByName(project, errMsg); + ProjectPtr proj = clCxxWorkspaceST::Get()->FindProjectByName(project, errMsg); if(!proj) { errMsg << _("Cant open project '") << project << wxT("'"); return false; @@ -106,7 +106,7 @@ wxString bld_conf_name(confToBuild); if(confToBuild.IsEmpty()) { - BuildConfigPtr bldConf = WorkspaceST::Get()->GetProjBuildConf(project, confToBuild); + BuildConfigPtr bldConf = clCxxWorkspaceST::Get()->GetProjBuildConf(project, confToBuild); if(!bldConf) { errMsg << _("Cant find build configuration for project '") << project << wxT("'"); return false; @@ -114,7 +114,7 @@ bld_conf_name = bldConf->GetName(); } - BuildConfigPtr bldConf = WorkspaceST::Get()->GetProjBuildConf(project, bld_conf_name); + BuildConfigPtr bldConf = clCxxWorkspaceST::Get()->GetProjBuildConf(project, bld_conf_name); if(!bldConf) { errMsg << _("Cant find build configuration for project '") << project << wxT("'"); return false; @@ -131,14 +131,14 @@ wxArrayString updatedDepsArr; for(size_t i = 0; i < depsArr.GetCount(); ++i) { wxString errmsg; - ProjectPtr dependProj = WorkspaceST::Get()->FindProjectByName(depsArr.Item(i), errmsg); + ProjectPtr dependProj = clCxxWorkspaceST::Get()->FindProjectByName(depsArr.Item(i), errmsg); if(!dependProj) { continue; } - wxString projectSelConf = WorkspaceST::Get()->GetBuildMatrix()->GetProjectSelectedConf( - WorkspaceST::Get()->GetBuildMatrix()->GetSelectedConfigurationName(), dependProj->GetName()); - BuildConfigPtr dependProjbldConf = WorkspaceST::Get()->GetProjBuildConf(dependProj->GetName(), projectSelConf); + wxString projectSelConf = clCxxWorkspaceST::Get()->GetBuildMatrix()->GetProjectSelectedConf( + clCxxWorkspaceST::Get()->GetBuildMatrix()->GetSelectedConfigurationName(), dependProj->GetName()); + BuildConfigPtr dependProjbldConf = clCxxWorkspaceST::Get()->GetProjBuildConf(dependProj->GetName(), projectSelConf); if(dependProjbldConf && dependProjbldConf->IsProjectEnabled()) { updatedDepsArr.Add(depsArr.Item(i)); } @@ -152,7 +152,7 @@ // this function assumes that the working directory is located at the workspace path // make sure that all dependencies exists for(size_t i = 0; i < depsArr.GetCount(); i++) { - ProjectPtr dependProj = WorkspaceST::Get()->FindProjectByName(depsArr.Item(i), errMsg); + ProjectPtr dependProj = clCxxWorkspaceST::Get()->FindProjectByName(depsArr.Item(i), errMsg); // Missing dependencies project? // this can happen if a project was removed from the workspace, but // is still on the depdendencie list of this project @@ -194,7 +194,7 @@ fn << "Makefile"; wxString text; - wxFileName wspfile(WorkspaceST::Get()->GetWorkspaceFileName()); + wxFileName wspfile(clCxxWorkspaceST::Get()->GetWorkspaceFileName()); text << wxT(".PHONY: clean All\n\n"); text << wxT("All:\n"); @@ -207,20 +207,20 @@ buildTool.Replace(wxT("\\"), wxT("/")); // generate the makefile for the selected workspace configuration - BuildMatrixPtr matrix = WorkspaceST::Get()->GetBuildMatrix(); + BuildMatrixPtr matrix = clCxxWorkspaceST::Get()->GetBuildMatrix(); wxString workspaceSelConf = matrix->GetSelectedConfigurationName(); wxArrayString depsProjs; if(!isProjectOnly) { for(size_t i = 0; i < depsArr.GetCount(); ++i) { bool isCustom(false); - ProjectPtr dependProj = WorkspaceST::Get()->FindProjectByName(depsArr.Item(i), errMsg); + ProjectPtr dependProj = clCxxWorkspaceST::Get()->FindProjectByName(depsArr.Item(i), errMsg); if(!dependProj) { continue; } wxString projectSelConf = matrix->GetProjectSelectedConf(workspaceSelConf, dependProj->GetName()); BuildConfigPtr dependProjbldConf = - WorkspaceST::Get()->GetProjBuildConf(dependProj->GetName(), projectSelConf); + clCxxWorkspaceST::Get()->GetProjBuildConf(dependProj->GetName(), projectSelConf); if(dependProjbldConf && dependProjbldConf->IsCustomBuild()) { isCustom = true; } @@ -266,9 +266,9 @@ wxString customWdCmd; customWd = ExpandAllVariables( - customWd, WorkspaceST::Get(), dependProj->GetName(), dependProjbldConf->GetName(), wxEmptyString); + customWd, clCxxWorkspaceST::Get(), dependProj->GetName(), dependProjbldConf->GetName(), wxEmptyString); build_cmd = ExpandAllVariables( - build_cmd, WorkspaceST::Get(), dependProj->GetName(), dependProjbldConf->GetName(), wxEmptyString); + build_cmd, clCxxWorkspaceST::Get(), dependProj->GetName(), dependProjbldConf->GetName(), wxEmptyString); build_cmd.Trim().Trim(false); @@ -349,7 +349,7 @@ bool isCustom(false); wxString projectSelConf = matrix->GetProjectSelectedConf(workspaceSelConf, depsArr.Item(i)); - ProjectPtr dependProj = WorkspaceST::Get()->FindProjectByName(depsArr.Item(i), errMsg); + ProjectPtr dependProj = clCxxWorkspaceST::Get()->FindProjectByName(depsArr.Item(i), errMsg); // Missing dependencies project? just skip it if(!dependProj) { continue; @@ -365,7 +365,7 @@ // if the dependencie project is project of type 'Custom Build' - do the custom build instead // of the geenrated makefile BuildConfigPtr dependProjbldConf = - WorkspaceST::Get()->GetProjBuildConf(dependProj->GetName(), projectSelConf); + clCxxWorkspaceST::Get()->GetProjBuildConf(dependProj->GetName(), projectSelConf); if(dependProjbldConf && dependProjbldConf->IsCustomBuild()) { isCustom = true; } @@ -397,9 +397,9 @@ wxString clean_cmd = dependProjbldConf->GetCustomCleanCmd(); customWd = ExpandAllVariables( - customWd, WorkspaceST::Get(), dependProj->GetName(), dependProjbldConf->GetName(), wxEmptyString); + customWd, clCxxWorkspaceST::Get(), dependProj->GetName(), dependProjbldConf->GetName(), wxEmptyString); clean_cmd = ExpandAllVariables( - clean_cmd, WorkspaceST::Get(), dependProj->GetName(), dependProjbldConf->GetName(), wxEmptyString); + clean_cmd, clCxxWorkspaceST::Get(), dependProj->GetName(), dependProjbldConf->GetName(), wxEmptyString); wxString customWdCmd; @@ -465,7 +465,7 @@ wxString pname(proj->GetName()); wxString tmpConfigName(confToBuild.c_str()); if(confToBuild.IsEmpty()) { - BuildMatrixPtr matrix = WorkspaceST::Get()->GetBuildMatrix(); + BuildMatrixPtr matrix = clCxxWorkspaceST::Get()->GetBuildMatrix(); tmpConfigName = matrix->GetProjectSelectedConf(matrix->GetSelectedConfigurationName(), proj->GetName()); } @@ -486,7 +486,7 @@ } // get the selected build configuration for this project - BuildConfigPtr bldConf = WorkspaceST::Get()->GetProjBuildConf(proj->GetName(), confToBuild); + BuildConfigPtr bldConf = clCxxWorkspaceST::Get()->GetProjBuildConf(proj->GetName(), confToBuild); if(!bldConf) { return; } @@ -589,6 +589,10 @@ void BuilderGnuMake::CreateMakeDirsTarget(BuildConfigPtr bldConf, const wxString& targetName, wxString& text) { + text << "\n"; + text << "MakeIntermediateDirs:\n"; + text << "\t" << GetMakeDirCmd(bldConf) << "\n\n"; + text << wxT("\n"); text << targetName << wxT(":\n"); text << wxT("\t") << GetMakeDirCmd(bldConf) << wxT("\n"); @@ -608,7 +612,7 @@ text << wxT("Srcs="); - BuildConfigPtr bldConf = WorkspaceST::Get()->GetProjBuildConf(proj->GetName(), confToBuild); + BuildConfigPtr bldConf = clCxxWorkspaceST::Get()->GetProjBuildConf(proj->GetName(), confToBuild); wxString cmpType = bldConf->GetCompilerType(); wxString relPath; @@ -659,7 +663,7 @@ } } - BuildConfigPtr bldConf = WorkspaceST::Get()->GetProjBuildConf(proj->GetName(), confToBuild); + BuildConfigPtr bldConf = clCxxWorkspaceST::Get()->GetProjBuildConf(proj->GetName(), confToBuild); wxString cmpType = bldConf->GetCompilerType(); // get the compiler settings @@ -737,7 +741,7 @@ { // get the project specific build configuration for the workspace active // configuration - BuildConfigPtr bldConf = WorkspaceST::Get()->GetProjBuildConf(proj->GetName(), confToBuild); + BuildConfigPtr bldConf = clCxxWorkspaceST::Get()->GetProjBuildConf(proj->GetName(), confToBuild); wxString cmpType = bldConf->GetCompilerType(); // get the compiler settings CompilerPtr cmp = BuildSettingsConfigST::Get()->GetCompiler(cmpType); @@ -888,7 +892,7 @@ { // get the project specific build configuration for the workspace active // configuration - BuildConfigPtr bldConf = WorkspaceST::Get()->GetProjBuildConf(proj->GetName(), confToBuild); + BuildConfigPtr bldConf = clCxxWorkspaceST::Get()->GetProjBuildConf(proj->GetName(), confToBuild); wxString cmpType = bldConf->GetCompilerType(); // get the compiler settings CompilerPtr cmp = BuildSettingsConfigST::Get()->GetCompiler(cmpType); @@ -978,13 +982,13 @@ // this is to workaround bug in the generated makefiles // which causes the makefile to report 'nothing to be done' // even when a dependency was modified - text << wxT(".PHONY: all clean PreBuild PrePreBuild PostBuild\n"); + text << wxT(".PHONY: all clean PreBuild PrePreBuild PostBuild MakeIntermediateDirs\n"); wxString extraDeps; wxString depsRules; wxString errMsg; - ProjectPtr proj = WorkspaceST::Get()->FindProjectByName(projName, errMsg); + ProjectPtr proj = clCxxWorkspaceST::Get()->FindProjectByName(projName, errMsg); for(size_t i = 0; i < depsProj.GetCount(); i++) { wxFileName fn(depsProj.Item(i)); @@ -1195,7 +1199,7 @@ wxString projectName = proj->GetName(); text << wxT("ProjectName :=") << projectName << wxT("\n"); text << wxT("ConfigurationName :=") << name << wxT("\n"); - text << wxT("WorkspacePath := \"") << WorkspaceST::Get()->GetWorkspaceFileName().GetPath() << wxT("\"\n"); + text << wxT("WorkspacePath := \"") << clCxxWorkspaceST::Get()->GetWorkspaceFileName().GetPath() << wxT("\"\n"); text << wxT("ProjectPath := \"") << proj->GetFileName().GetPath() << wxT("\"\n"); text << wxT("IntermediateDirectory :=") << bldConf->GetIntermediateDirectory() << wxT("\n"); text << wxT("OutDir := $(IntermediateDirectory)\n"); @@ -1204,7 +1208,7 @@ text << wxT("CurrentFileFullPath :=\n"); // TODO:: Need implementation text << wxT("User :=") << wxGetUserName() << wxT("\n"); text << wxT("Date :=") << wxDateTime::Now().FormatDate() << wxT("\n"); - text << wxT("CodeLitePath :=\"") << WorkspaceST::Get()->GetStartupDir() << wxT("\"\n"); + text << wxT("CodeLitePath :=\"") << clCxxWorkspaceST::Get()->GetStartupDir() << wxT("\"\n"); text << wxT("LinkerName :=") << cmp->GetTool(wxT("LinkerName")) << wxT("\n"); text << wxT("SharedObjectLinkerName :=") << cmp->GetTool(wxT("SharedObjectLinkerName")) << wxT("\n"); text << wxT("ObjectSuffix :=") << cmp->GetObjectSuffix() << wxT("\n"); @@ -1417,7 +1421,7 @@ wxString BuilderGnuMake::GetBuildCommand(const wxString& project, const wxString& confToBuild) { wxString errMsg, cmd; - BuildConfigPtr bldConf = WorkspaceST::Get()->GetProjBuildConf(project, confToBuild); + BuildConfigPtr bldConf = clCxxWorkspaceST::Get()->GetProjBuildConf(project, confToBuild); if(!bldConf) { return wxEmptyString; } @@ -1437,7 +1441,7 @@ wxString BuilderGnuMake::GetCleanCommand(const wxString& project, const wxString& confToBuild) { wxString errMsg, cmd; - BuildConfigPtr bldConf = WorkspaceST::Get()->GetProjBuildConf(project, confToBuild); + BuildConfigPtr bldConf = clCxxWorkspaceST::Get()->GetProjBuildConf(project, confToBuild); if(!bldConf) { return wxEmptyString; } @@ -1451,7 +1455,7 @@ // fix: replace all Windows like slashes to POSIX buildTool.Replace(wxT("\\"), wxT("/")); - BuildMatrixPtr matrix = WorkspaceST::Get()->GetBuildMatrix(); + BuildMatrixPtr matrix = clCxxWorkspaceST::Get()->GetBuildMatrix(); wxString type = Builder::NormalizeConfigName(matrix->GetSelectedConfigurationName()); cmd << buildTool << wxT(" Makefile clean"); return cmd; @@ -1460,7 +1464,7 @@ wxString BuilderGnuMake::GetPOBuildCommand(const wxString& project, const wxString& confToBuild) { wxString errMsg, cmd; - ProjectPtr proj = WorkspaceST::Get()->FindProjectByName(project, errMsg); + ProjectPtr proj = clCxxWorkspaceST::Get()->FindProjectByName(project, errMsg); if(!proj) { return wxEmptyString; } @@ -1474,7 +1478,7 @@ wxString BuilderGnuMake::GetPOCleanCommand(const wxString& project, const wxString& confToBuild) { wxString errMsg, cmd; - ProjectPtr proj = WorkspaceST::Get()->FindProjectByName(project, errMsg); + ProjectPtr proj = clCxxWorkspaceST::Get()->FindProjectByName(project, errMsg); if(!proj) { return wxEmptyString; } @@ -1489,7 +1493,7 @@ BuilderGnuMake::GetSingleFileCmd(const wxString& project, const wxString& confToBuild, const wxString& fileName) { wxString errMsg, cmd; - ProjectPtr proj = WorkspaceST::Get()->FindProjectByName(project, errMsg); + ProjectPtr proj = clCxxWorkspaceST::Get()->FindProjectByName(project, errMsg); if(!proj) { return wxEmptyString; } @@ -1502,7 +1506,7 @@ wxString cmpType; wxFileName fn(fileName); - BuildConfigPtr bldConf = WorkspaceST::Get()->GetProjBuildConf(project, confToBuild); + BuildConfigPtr bldConf = clCxxWorkspaceST::Get()->GetProjBuildConf(project, confToBuild); if(!bldConf) { return wxEmptyString; } @@ -1516,7 +1520,7 @@ target << bldConf->GetIntermediateDirectory() << wxT("/") << objNamePrefix << fn.GetFullName() << cmp->GetObjectSuffix(); - target = ExpandAllVariables(target, WorkspaceST::Get(), proj->GetName(), confToBuild, wxEmptyString); + target = ExpandAllVariables(target, clCxxWorkspaceST::Get(), proj->GetName(), confToBuild, wxEmptyString); cmd = GetProjectMakeCommand(proj, confToBuild, target, false, false); return EnvironmentConfig::Instance()->ExpandVariables(cmd, true); @@ -1527,13 +1531,13 @@ const wxString& fileName, wxString& errMsg) { - ProjectPtr proj = WorkspaceST::Get()->FindProjectByName(project, errMsg); + ProjectPtr proj = clCxxWorkspaceST::Get()->FindProjectByName(project, errMsg); if(!proj) { return wxEmptyString; } wxString cmd; - BuildConfigPtr bldConf = WorkspaceST::Get()->GetProjBuildConf(project, confToBuild); + BuildConfigPtr bldConf = clCxxWorkspaceST::Get()->GetProjBuildConf(project, confToBuild); if(!bldConf) { return wxEmptyString; } @@ -1541,7 +1545,7 @@ // generate the makefile Export(project, confToBuild, true, false, errMsg); - BuildMatrixPtr matrix = WorkspaceST::Get()->GetBuildMatrix(); + BuildMatrixPtr matrix = clCxxWorkspaceST::Get()->GetBuildMatrix(); wxString buildTool = GetBuildToolCommand(project, confToBuild, true); wxString type = matrix->GetProjectSelectedConf(matrix->GetSelectedConfigurationName(), project); @@ -1560,7 +1564,7 @@ target << bldConf->GetIntermediateDirectory() << wxT("/") << objNamePrefix << fn.GetFullName() << cmp->GetPreprocessSuffix(); - target = ExpandAllVariables(target, WorkspaceST::Get(), proj->GetName(), confToBuild, wxEmptyString); + target = ExpandAllVariables(target, clCxxWorkspaceST::Get(), proj->GetName(), confToBuild, wxEmptyString); cmd = GetProjectMakeCommand(proj, confToBuild, target, false, false); return EnvironmentConfig::Instance()->ExpandVariables(cmd, true); } @@ -1633,7 +1637,7 @@ ProjectPtr proj, const wxString& confToBuild) { - BuildConfigPtr bldConf = WorkspaceST::Get()->GetProjBuildConf(proj->GetName(), confToBuild); + BuildConfigPtr bldConf = clCxxWorkspaceST::Get()->GetProjBuildConf(proj->GetName(), confToBuild); // iterate over the dependencies projects and generate makefile wxString makeCommand; @@ -1682,7 +1686,7 @@ bool addCleanTarget, bool cleanOnly) { - BuildConfigPtr bldConf = WorkspaceST::Get()->GetProjBuildConf(proj->GetName(), confToBuild); + BuildConfigPtr bldConf = clCxxWorkspaceST::Get()->GetProjBuildConf(proj->GetName(), confToBuild); // iterate over the dependencies projects and generate makefile wxString makeCommand; @@ -1701,7 +1705,9 @@ wxString precmpheader = bldConf->GetPrecompiledHeader(); precmpheader.Trim().Trim(false); preprebuild.Trim().Trim(false); - + + makeCommand << basicMakeCommand << " MakeIntermediateDirs && "; + if(preprebuild.IsEmpty() == false) { makeCommand << basicMakeCommand << wxT(" PrePreBuild && "); } @@ -1750,7 +1756,7 @@ wxString BuilderGnuMake::GetPORebuildCommand(const wxString& project, const wxString& confToBuild) { wxString errMsg, cmd; - ProjectPtr proj = WorkspaceST::Get()->FindProjectByName(project, errMsg); + ProjectPtr proj = clCxxWorkspaceST::Get()->FindProjectByName(project, errMsg); if(!proj) { return wxEmptyString; } @@ -1768,7 +1774,7 @@ wxString jobsCmd; wxString buildTool; - BuildConfigPtr bldConf = WorkspaceST::Get()->GetProjBuildConf(project, confToBuild); + BuildConfigPtr bldConf = clCxxWorkspaceST::Get()->GetProjBuildConf(project, confToBuild); if(!bldConf) return wxEmptyString; @@ -1781,7 +1787,7 @@ } else { jobsCmd = wxEmptyString; - buildTool = wxT("$(MAKE)"); + buildTool = wxT("\"$(MAKE)\""); } if(isCommandlineCommand) { @@ -1844,7 +1850,7 @@ wxString BuilderGnuMake::DoGetMarkerFileDir(const wxString& projname, const wxString& projectPath) { - BuildMatrixPtr matrix = WorkspaceST::Get()->GetBuildMatrix(); + BuildMatrixPtr matrix = clCxxWorkspaceST::Get()->GetBuildMatrix(); wxString workspaceSelConf = matrix->GetSelectedConfigurationName(); workspaceSelConf = NormalizeConfigName(workspaceSelConf); @@ -1852,10 +1858,10 @@ wxString path; if(projname.IsEmpty()) { - path << WorkspaceST::Get()->GetWorkspaceFileName().GetPath() << "/" << wxT(".build-") << workspaceSelConf; + path << clCxxWorkspaceST::Get()->GetWorkspaceFileName().GetPath() << "/" << wxT(".build-") << workspaceSelConf; } else { - path << WorkspaceST::Get()->GetWorkspaceFileName().GetPath() << "/" << wxT(".build-") << workspaceSelConf << "/" + path << clCxxWorkspaceST::Get()->GetWorkspaceFileName().GetPath() << "/" << wxT(".build-") << workspaceSelConf << "/" << projname; } diff -Nru codelite-8.0.1+dfsg2/Plugin/build_settings_config.cpp codelite-9.0+dfsg/Plugin/build_settings_config.cpp --- codelite-8.0.1+dfsg2/Plugin/build_settings_config.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/build_settings_config.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -35,6 +35,7 @@ #include #include #include "ICompilerLocator.h" +#include BuildSettingsConfig::BuildSettingsConfig() { @@ -287,7 +288,7 @@ EventNotifier::Get()->AddPendingEvent(event); } -wxArrayString BuildSettingsConfig::GetAllCompilers() const +wxArrayString BuildSettingsConfig::GetAllCompilersNames() const { wxArrayString allCompilers; wxXmlNode* compilersNode = XmlUtils::FindFirstByTagName(m_doc->GetRoot(), "Compilers"); @@ -306,7 +307,7 @@ void BuildSettingsConfig::DoUpdateCompilers() { m_compilers.clear(); - wxArrayString compilers = GetAllCompilers(); + wxArrayString compilers = GetAllCompilersNames(); for(size_t i = 0; i < compilers.GetCount(); ++i) { CompilerPtr pCompiler(new Compiler(GetCompilerNode(compilers.Item(i)))); m_compilers.insert(std::make_pair(compilers.Item(i), pCompiler)); @@ -355,3 +356,16 @@ } return defaultComp; } + +CompilerPtrVec_t BuildSettingsConfig::GetAllCompilers(const wxString& family) const +{ + CompilerPtrVec_t all; + std::for_each(m_compilers.begin(), m_compilers.end(), [&](const std::pair& p) { + if(!family.IsEmpty() && p.second->GetCompilerFamily() == family) { + all.push_back(p.second); + } else if(family.IsEmpty()) { + all.push_back(p.second); + } + }); + return all; +} diff -Nru codelite-8.0.1+dfsg2/Plugin/build_settings_config.h codelite-9.0+dfsg/Plugin/build_settings_config.h --- codelite-8.0.1+dfsg2/Plugin/build_settings_config.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/build_settings_config.h 2015-10-11 13:56:07.000000000 +0000 @@ -91,8 +91,15 @@ /** * @brief return list of all compiler names */ - wxArrayString GetAllCompilers() const; - + wxArrayString GetAllCompilersNames() const; + + /** + * @brief return vector with all compilers defined + * @param family the compiler family. Leave empty to get list of + * all compilers regardless their family + */ + CompilerPtrVec_t GetAllCompilers(const wxString& family = "") const; + /** * @brief replace the current compilers list with a new one */ diff -Nru codelite-8.0.1+dfsg2/Plugin/cc_box_tip_window.cpp codelite-9.0+dfsg/Plugin/cc_box_tip_window.cpp --- codelite-8.0.1+dfsg2/Plugin/cc_box_tip_window.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/cc_box_tip_window.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -65,9 +65,10 @@ } str.swap(tip); str.Trim().Trim(false); - + // strip double empty lines - while(str.Replace("\n\n", "\n")) {} + while(str.Replace("\n\n", "\n")) { + } } CCBoxTipWindow::CCBoxTipWindow(wxWindow* parent, const wxString& tip) @@ -99,7 +100,7 @@ m_useLightColours = true; } } - + m_tip = tip; m_numOfTips = numOfTips; @@ -115,7 +116,7 @@ wxMemoryDC dc(bmp); wxSize size; - + m_codeFont = DrawingUtils::GetDefaultFixedFont(); m_commentFont = wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT); @@ -144,8 +145,8 @@ int codeWidth = 0; // Use bold font for measurements - m_codeFont.SetWeight(wxFONTWEIGHT_BOLD); - m_commentFont.SetWeight(wxFONTWEIGHT_BOLD); + // m_codeFont.SetWeight(wxFONTWEIGHT_BOLD); + // m_commentFont.SetWeight(wxFONTWEIGHT_BOLD); if(!simpleTip) { dc.GetMultiLineTextExtent(codePart, &codeWidth, NULL, NULL, &m_codeFont); @@ -172,6 +173,12 @@ size.y = nLineCount * m_lineHeight; size.y += (hr_count * 10) + 10; // each
uses 10 pixels height size.x += 40; + + size_t maxWidth(0); + + // Calc the width + DoDrawTip(dc, maxWidth); + size.x = maxWidth; SetSize(size); Connect(wxEVT_PAINT, wxPaintEventHandler(CCBoxTipWindow::OnPaint), NULL, this); @@ -239,19 +246,109 @@ { m_links.clear(); wxBufferedPaintDC dc(this); - + size_t maxWidth(0); + DoDrawTip(dc, maxWidth); +} + +wxRect CCBoxTipWindow::DoPrintText(wxDC& dc, wxString& text, wxPoint& pt, size_t& maxWidth) +{ + if(text.IsEmpty() == false) { + wxSize sz = dc.GetTextExtent(text); + wxRect rect(pt, sz); + dc.DrawText(text, pt); + pt.x += sz.x; + maxWidth = wxMax(maxWidth, pt.x); + text.Clear(); + return rect; + } + return wxRect(); +} + +void CCBoxTipWindow::OnMouseLeft(wxMouseEvent& e) +{ + if(m_leftTipRect.Contains(e.GetPosition())) { + wxCommandEvent evt(wxEVT_TIP_BTN_CLICKED_UP); + EventNotifier::Get()->AddPendingEvent(evt); + + } else if(m_rightTipRect.Contains(e.GetPosition())) { + wxCommandEvent evt(wxEVT_TIP_BTN_CLICKED_DOWN); + EventNotifier::Get()->AddPendingEvent(evt); + + } else { + for(size_t i = 0; i < m_links.size(); ++i) { + if(m_links.at(i).m_rect.Contains(e.GetPosition())) { + ::wxLaunchDefaultBrowser(m_links.at(i).m_url); + break; + } + } + } +} + +wxString CCBoxTipWindow::DoStripMarkups() +{ + MarkupParser parser(m_tip); + wxString text; + while(parser.Next()) { + int type = parser.GetType(); + switch(type) { + case BOLD_START: + case BOLD_END: + case CODE_START: + case CODE_END: + case COLOR_START: + case COLOR_END: + break; + case HORIZONTAL_LINE: + text << "
"; + case NEW_LINE: + text << "\n"; + break; + default: + text << parser.GetToken(); + break; + } + } + return text; +} + +void CCBoxTipWindow::PositionAt(const wxPoint& pt, IEditor* focusEdior) +{ + SetSize(wxRect(pt, GetSize())); + Show(); + + if(focusEdior) { + focusEdior->SetActive(); + } +} + +void CCBoxTipWindow::PositionLeftTo(wxWindow* win, IEditor* focusEditor) +{ + // Move the tip to the left + wxPoint pt = win->GetScreenPosition(); + pt.x -= GetSize().x; + + SetSize(wxRect(pt, GetSize())); + Show(); + + if(focusEditor) { + focusEditor->SetActive(); + } +} + +void CCBoxTipWindow::DoDrawTip(wxDC& dc, size_t& max_width) +{ clColourPalette colors = DrawingUtils::GetColourPalette(); - + wxColour penColour = colors.penColour; wxColour brushColour = colors.bgColour; wxColour textColour = colors.textColour; wxColour linkColour("rgb(204, 153, 255)"); - + if(m_useLightColours) { // Use different colours to match the editor theme linkColour = wxColour("rgb(51, 153, 255)"); } - + dc.SetBrush(brushColour); dc.SetPen(wxPen(penColour, 1)); @@ -274,7 +371,7 @@ case LINK_URL: { // Found URL // Before we change the font, draw the buffer - DoPrintText(dc, curtext, pt); + DoPrintText(dc, curtext, pt, max_width); curtext = parser.GetToken(); wxString link_url = curtext; @@ -284,7 +381,7 @@ f.SetUnderlined(true); dc.SetFont(f); dc.SetTextForeground(linkColour); - wxRect url_rect = DoPrintText(dc, curtext, pt); + wxRect url_rect = DoPrintText(dc, curtext, pt, max_width); // keep info about this URL CCBoxTipWindow::Links link_info; @@ -301,7 +398,8 @@ } case BOLD_START: { // Before we change the font, draw the buffer - DoPrintText(dc, curtext, pt); + DoPrintText(dc, curtext, pt, max_width); + wxFont f = dc.GetFont(); f.SetWeight(wxFONTWEIGHT_BOLD); dc.SetFont(f); @@ -310,7 +408,7 @@ } case BOLD_END: { // Before we change the font, draw the buffer - DoPrintText(dc, curtext, pt); + DoPrintText(dc, curtext, pt, max_width); wxFont f = dc.GetFont(); f.SetWeight(wxFONTWEIGHT_NORMAL); @@ -320,7 +418,8 @@ } case ITALIC_START: { // Before we change the font, draw the buffer - DoPrintText(dc, curtext, pt); + DoPrintText(dc, curtext, pt, max_width); + wxFont f = dc.GetFont(); f.SetStyle(wxFONTSTYLE_ITALIC); dc.SetFont(f); @@ -328,7 +427,7 @@ } case ITALIC_END: { // Before we change the font, draw the buffer - DoPrintText(dc, curtext, pt); + DoPrintText(dc, curtext, pt, max_width); wxFont f = dc.GetFont(); f.SetStyle(wxFONTSTYLE_NORMAL); @@ -337,20 +436,23 @@ } case CODE_START: { // Before we change the font, draw the buffer - DoPrintText(dc, curtext, pt); + DoPrintText(dc, curtext, pt, max_width); + dc.SetFont(m_codeFont); break; } case CODE_END: { // Before we change the font, draw the buffer - DoPrintText(dc, curtext, pt); + DoPrintText(dc, curtext, pt, max_width); + dc.SetFont(m_commentFont); break; } case NEW_LINE: { // New line, print the content - DoPrintText(dc, curtext, pt); + DoPrintText(dc, curtext, pt, max_width); + pt.y += m_lineHeight; // reset the drawing point to the start of the next line @@ -367,7 +469,8 @@ break; } case COLOR_START: { - DoPrintText(dc, curtext, pt); + DoPrintText(dc, curtext, pt, max_width); + wxString colorname = parser.GetToken(); colorname = colorname.AfterFirst(wxT('"')); colorname = colorname.BeforeLast(wxT('"')); @@ -375,7 +478,8 @@ break; } case COLOR_END: { - DoPrintText(dc, curtext, pt); + DoPrintText(dc, curtext, pt, max_width); + // restore default colour dc.SetTextForeground(textColour); break; @@ -390,90 +494,7 @@ } if(curtext.IsEmpty() == false) { - DoPrintText(dc, curtext, pt); - } -} - -wxRect CCBoxTipWindow::DoPrintText(wxDC& dc, wxString& text, wxPoint& pt) -{ - if(text.IsEmpty() == false) { - wxSize sz = dc.GetTextExtent(text); - wxRect rect(pt, sz); - dc.DrawText(text, pt); - pt.x += sz.x; - text.Clear(); - return rect; - } - return wxRect(); -} - -void CCBoxTipWindow::OnMouseLeft(wxMouseEvent& e) -{ - if(m_leftTipRect.Contains(e.GetPosition())) { - wxCommandEvent evt(wxEVT_TIP_BTN_CLICKED_UP); - EventNotifier::Get()->AddPendingEvent(evt); - - } else if(m_rightTipRect.Contains(e.GetPosition())) { - wxCommandEvent evt(wxEVT_TIP_BTN_CLICKED_DOWN); - EventNotifier::Get()->AddPendingEvent(evt); - - } else { - for(size_t i = 0; i < m_links.size(); ++i) { - if(m_links.at(i).m_rect.Contains(e.GetPosition())) { - ::wxLaunchDefaultBrowser(m_links.at(i).m_url); - break; - } - } - } -} - -wxString CCBoxTipWindow::DoStripMarkups() -{ - MarkupParser parser(m_tip); - wxString text; - while(parser.Next()) { - int type = parser.GetType(); - switch(type) { - case BOLD_START: - case BOLD_END: - case CODE_START: - case CODE_END: - case COLOR_START: - case COLOR_END: - break; - case HORIZONTAL_LINE: - text << "
"; - case NEW_LINE: - text << "\n"; - break; - default: - text << parser.GetToken(); - break; - } - } - return text; -} - -void CCBoxTipWindow::PositionAt(const wxPoint& pt, IEditor* focusEdior) -{ - SetSize(wxRect(pt, GetSize())); - Show(); - - if(focusEdior) { - focusEdior->SetActive(); - } -} - -void CCBoxTipWindow::PositionLeftTo(wxWindow* win, IEditor* focusEditor) -{ - // Move the tip to the left - wxPoint pt = win->GetScreenPosition(); - pt.x -= GetSize().x; - - SetSize(wxRect(pt, GetSize())); - Show(); - - if(focusEditor) { - focusEditor->SetActive(); + DoPrintText(dc, curtext, pt, max_width); } + max_width += 5; // right side margin } diff -Nru codelite-8.0.1+dfsg2/Plugin/cc_box_tip_window.h codelite-9.0+dfsg/Plugin/cc_box_tip_window.h --- codelite-8.0.1+dfsg2/Plugin/cc_box_tip_window.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/cc_box_tip_window.h 2015-10-11 13:56:07.000000000 +0000 @@ -61,10 +61,11 @@ void OnPaint(wxPaintEvent& e); void OnEraseBG(wxEraseEvent& e); void OnMouseLeft(wxMouseEvent& e); - wxRect DoPrintText(wxDC& dc, wxString& text, wxPoint& pt); + wxRect DoPrintText(wxDC& dc, wxString& text, wxPoint& pt, size_t &maxWidth); wxString DoStripMarkups(); void DoInitialize(const wxString& tip, size_t numOfTips, bool simpleTip); - + void DoDrawTip(wxDC& dc, size_t &max_width); + public: CCBoxTipWindow(wxWindow* parent, const wxString& tip, size_t numOfTips, bool simpleTip = false); CCBoxTipWindow(wxWindow* parent, const wxString& tip); diff -Nru codelite-8.0.1+dfsg2/Plugin/cl_aui_dock_art.cpp codelite-9.0+dfsg/Plugin/cl_aui_dock_art.cpp --- codelite-8.0.1+dfsg2/Plugin/cl_aui_dock_art.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/cl_aui_dock_art.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -32,6 +32,9 @@ #include "cl_command_event.h" #include "event_notifier.h" #include "drawingutils.h" +#include "imanager.h" +#include "clStatusBar.h" +#include // -------------------------------------------- @@ -65,10 +68,15 @@ clAuiDockArt::clAuiDockArt(IManager* manager) : m_manager(manager) { + m_dockCloseBmp = wxXmlResource::Get()->LoadBitmap("aui-close"); + m_dockMoreBmp = wxXmlResource::Get()->LoadBitmap("aui-more"); + m_dockExpandeBmp = wxXmlResource::Get()->LoadBitmap("aui-expand"); + m_dockMinimizeBmp = wxXmlResource::Get()->LoadBitmap("aui-minimize"); } clAuiDockArt::~clAuiDockArt() {} +#define AUI_BUTTON_SIZE 12 void clAuiDockArt::DrawPaneButton(wxDC& dc, wxWindow* window, int button, @@ -76,7 +84,26 @@ const wxRect& _rect, wxAuiPaneInfo& pane) { - wxAuiDefaultDockArt::DrawPaneButton(dc, window, button, button_state, _rect, pane); + int xx = _rect.GetTopLeft().x + ((_rect.GetWidth() - AUI_BUTTON_SIZE) / 2); + int yy = _rect.GetTopLeft().y + ((_rect.GetHeight() - AUI_BUTTON_SIZE) / 2); + switch(button) { + case wxAUI_BUTTON_CLOSE: + dc.DrawBitmap(m_dockCloseBmp, xx, yy); + break; + case wxAUI_BUTTON_MAXIMIZE_RESTORE: + if(pane.IsMaximized()) { + dc.DrawBitmap(m_dockMinimizeBmp, xx, yy); + } else { + dc.DrawBitmap(m_dockExpandeBmp, xx, yy); + } + break; + case wxAUI_BUTTON_PIN: + dc.DrawBitmap(m_dockMoreBmp, xx, yy); + break; + default: + wxAuiDefaultDockArt::DrawPaneButton(dc, window, button, button_state, _rect, pane); + break; + } } void @@ -89,66 +116,62 @@ if(tmpRect.GetWidth() == 0) tmpRect.SetWidth(1); wxBitmap bmp(tmpRect.GetSize()); - wxMemoryDC memDc; - memDc.SelectObject(bmp); - memDc.SetFont(m_captionFont); - - // Prepare the colours - wxColour bgColour, penColour, textColour; -#if 0 -#ifdef __WXMAC__ - bgColour = wxColour("rgb(162, 162, 162)"); - penColour = wxColour("rgb(102, 102, 102)"); - textColour = wxColour("rgb(56, 62, 78)"); -#else - wxColour baseColour = DrawingUtils::GetCaptionColour(); - bgColour = baseColour.ChangeLightness(130); - penColour = baseColour.ChangeLightness(80); - if (DrawingUtils::IsDark(bgColour)) { - textColour = *wxWHITE; - } else { - textColour = *wxBLACK; - } -#endif -#else - clColourPalette colours = DrawingUtils::GetColourPalette(); - textColour = colours.textColour; - bgColour = colours.bgColour; - penColour = colours.penColour; -#endif - - memDc.SetPen(penColour); - memDc.SetBrush(bgColour); - memDc.DrawRectangle(tmpRect); - - memDc.SetPen(penColour); - memDc.SetBrush(*wxTRANSPARENT_BRUSH); - memDc.DrawRectangle(tmpRect); - - int caption_offset = 0; - if(pane.icon.IsOk()) { - DrawIcon(memDc, tmpRect, pane); - caption_offset += pane.icon.GetWidth() + 3; - } else { - caption_offset = 3; + { + wxMemoryDC memDc; + memDc.SelectObject(bmp); + + wxGCDC gdc; + wxDC* pDC = NULL; + if(!DrawingUtils::GetGCDC(memDc, gdc)) { + pDC = &memDc; + } else { + pDC = &gdc; + } + + // Prepare the colours + wxColour bgColour, penColour, textColour; + textColour = wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOWTEXT); + bgColour = DrawingUtils::DarkColour(wxSystemSettings::GetColour(wxSYS_COLOUR_3DFACE), 2.0); + ; // Same as the notebook background colour + penColour = wxSystemSettings::GetColour(wxSYS_COLOUR_3DSHADOW); + penColour = bgColour; + + wxFont f = wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT); + pDC->SetFont(f); + pDC->SetPen(penColour); + pDC->SetBrush(bgColour); + pDC->DrawRectangle(tmpRect); + + pDC->SetPen(penColour); + pDC->SetBrush(*wxTRANSPARENT_BRUSH); + pDC->DrawRectangle(tmpRect); + + int caption_offset = 0; + if(pane.icon.IsOk()) { + DrawIcon(gdc, tmpRect, pane); + caption_offset += pane.icon.GetWidth() + 3; + } else { + caption_offset = 3; + } + pDC->SetTextForeground(textColour); + wxCoord w, h; + pDC->GetTextExtent(wxT("ABCDEFHXfgkj"), &w, &h); + + wxRect clip_rect = tmpRect; + clip_rect.width -= 3; // text offset + clip_rect.width -= 2; // button padding + if(pane.HasCloseButton()) clip_rect.width -= m_buttonSize; + if(pane.HasPinButton()) clip_rect.width -= m_buttonSize; + if(pane.HasMaximizeButton()) clip_rect.width -= m_buttonSize; + + wxString draw_text = wxAuiChopText(gdc, text, clip_rect.width); + + wxSize textSize = pDC->GetTextExtent(draw_text); + pDC->SetTextForeground(textColour); + pDC->DrawText(draw_text, tmpRect.x + 3 + caption_offset, tmpRect.y + ((tmpRect.height - textSize.y) / 2)); + memDc.SelectObject(wxNullBitmap); } - memDc.SetTextForeground(textColour); - - wxCoord w, h; - memDc.GetTextExtent(wxT("ABCDEFHXfgkj"), &w, &h); - wxRect clip_rect = tmpRect; - clip_rect.width -= 3; // text offset - clip_rect.width -= 2; // button padding - if(pane.HasCloseButton()) clip_rect.width -= m_buttonSize; - if(pane.HasPinButton()) clip_rect.width -= m_buttonSize; - if(pane.HasMaximizeButton()) clip_rect.width -= m_buttonSize; - - wxString draw_text = wxAuiChopText(memDc, text, clip_rect.width); - - wxSize textSize = memDc.GetTextExtent(draw_text); - memDc.DrawText(draw_text, tmpRect.x + 3 + caption_offset, tmpRect.y + ((tmpRect.height - textSize.y) / 2)); - memDc.SelectObject(wxNullBitmap); dc.DrawBitmap(bmp, rect.x, rect.y, true); } @@ -163,31 +186,28 @@ void clAuiDockArt::DrawBorder(wxDC& dc, wxWindow* window, const wxRect& rect, wxAuiPaneInfo& pane) { - wxColour penColour, textColour; + wxColour penColour; #ifdef __WXMAC__ - penColour = wxColour("rgb(102, 102, 102)"); - + penColour = DrawingUtils::GetAUIPaneBGColour(); #else - wxColour baseColour = DrawingUtils::GetPanelBgColour(); -#if 0 - if(DrawingUtils::IsDark(baseColour)) { - baseColour = wxSystemSettings::GetColour(wxSYS_COLOUR_3DSHADOW); - } - penColour = baseColour.ChangeLightness(110); -#endif - penColour = baseColour; + penColour = wxSystemSettings::GetColour(wxSYS_COLOUR_3DSHADOW); #endif - - dc.SetPen(penColour); + dc.SetPen(DrawingUtils::DarkColour(wxSystemSettings::GetColour(wxSYS_COLOUR_3DFACE), 2.0)); dc.SetBrush(*wxTRANSPARENT_BRUSH); dc.DrawRectangle(rect); } void clAuiDockArt::DrawSash(wxDC& dc, wxWindow* window, int orientation, const wxRect& rect) { + wxColour sashColour = wxSystemSettings::GetColour(wxSYS_COLOUR_3DFACE); +#if 0 + if(clGetManager() && clGetManager()->GetStatusBar() && clGetManager()->GetStatusBar()->GetArt()) { + sashColour = clGetManager()->GetStatusBar()->GetArt()->GetBgColour(); + } +#endif wxUnusedVar(window); wxUnusedVar(orientation); dc.SetPen(*wxTRANSPARENT_PEN); - dc.SetBrush(wxSystemSettings::GetColour(wxSYS_COLOUR_3DFACE)); + dc.SetBrush(sashColour); dc.DrawRectangle(rect); } diff -Nru codelite-8.0.1+dfsg2/Plugin/cl_aui_dock_art.h codelite-9.0+dfsg/Plugin/cl_aui_dock_art.h --- codelite-8.0.1+dfsg2/Plugin/cl_aui_dock_art.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/cl_aui_dock_art.h 2015-10-11 13:56:07.000000000 +0000 @@ -38,7 +38,11 @@ class WXDLLIMPEXP_SDK clAuiDockArt : public wxAuiDefaultDockArt { IManager *m_manager; - + wxBitmap m_dockCloseBmp; + wxBitmap m_dockMoreBmp; + wxBitmap m_dockExpandeBmp; + wxBitmap m_dockMinimizeBmp; + public: clAuiDockArt(IManager *manager); virtual ~clAuiDockArt(); diff -Nru codelite-8.0.1+dfsg2/Plugin/clAuiMainNotebookTabArt.cpp codelite-9.0+dfsg/Plugin/clAuiMainNotebookTabArt.cpp --- codelite-8.0.1+dfsg2/Plugin/clAuiMainNotebookTabArt.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/clAuiMainNotebookTabArt.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -67,7 +67,7 @@ #ifdef __WXMSW__ m_tabRadius = 1.0; #elif defined(__WXGTK__) - m_tabRadius = 0.0; + m_tabRadius = 1.0; #else m_tabRadius = 0.0; #endif diff -Nru codelite-8.0.1+dfsg2/Plugin/clBoostrapWizardBase.cpp codelite-9.0+dfsg/Plugin/clBoostrapWizardBase.cpp --- codelite-8.0.1+dfsg2/Plugin/clBoostrapWizardBase.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/clBoostrapWizardBase.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -26,7 +26,7 @@ m_wizardPageWelcome = new clBoostrapWizardPageWelcome(this, NULL, NULL, wxNullBitmap); m_pages.push_back(m_wizardPageWelcome); - wxBoxSizer* boxSizer79 = new wxBoxSizer(wxVERTICAL); + boxSizer79 = new wxBoxSizer(wxVERTICAL); m_wizardPageWelcome->SetSizer(boxSizer79); m_banner81 = new wxBannerWindow(m_wizardPageWelcome, wxID_ANY, wxTOP, wxDefaultPosition, wxSize(-1,-1), 0); @@ -37,7 +37,7 @@ boxSizer79->Add(m_banner81, 0, wxALL|wxEXPAND, 5); - wxBoxSizer* boxSizer105 = new wxBoxSizer(wxVERTICAL); + boxSizer105 = new wxBoxSizer(wxVERTICAL); boxSizer79->Add(boxSizer105, 1, wxALL|wxEXPAND, 5); @@ -52,7 +52,7 @@ m_wizardPagePlugins = new clBoostrapWizardPagePlugins(this, NULL, NULL, wxNullBitmap); m_pages.push_back(m_wizardPagePlugins); - wxBoxSizer* boxSizer89 = new wxBoxSizer(wxVERTICAL); + boxSizer89 = new wxBoxSizer(wxVERTICAL); m_wizardPagePlugins->SetSizer(boxSizer89); m_banner811 = new wxBannerWindow(m_wizardPagePlugins, wxID_ANY, wxTOP, wxDefaultPosition, wxSize(-1,-1), 0); @@ -63,7 +63,7 @@ boxSizer89->Add(m_banner811, 0, wxALL|wxEXPAND, 5); - wxBoxSizer* boxSizer93 = new wxBoxSizer(wxHORIZONTAL); + boxSizer93 = new wxBoxSizer(wxHORIZONTAL); boxSizer89->Add(boxSizer93, 1, wxEXPAND, 5); @@ -74,7 +74,7 @@ m_dvListCtrlPlugins->AppendToggleColumn(_("X"), wxDATAVIEW_CELL_ACTIVATABLE, 30, wxALIGN_LEFT); m_dvListCtrlPlugins->AppendTextColumn(_("Name"), wxDATAVIEW_CELL_INERT, 100, wxALIGN_LEFT); m_dvListCtrlPlugins->AppendTextColumn(_("Description"), wxDATAVIEW_CELL_INERT, 500, wxALIGN_LEFT); - wxBoxSizer* boxSizer97 = new wxBoxSizer(wxVERTICAL); + boxSizer97 = new wxBoxSizer(wxVERTICAL); boxSizer93->Add(boxSizer97, 0, wxEXPAND, 5); @@ -96,7 +96,7 @@ m_wizardPageCompilers = new clBoostrapWizardPageCompilers(this, NULL, NULL, wxNullBitmap); m_pages.push_back(m_wizardPageCompilers); - wxBoxSizer* boxSizer52 = new wxBoxSizer(wxVERTICAL); + boxSizer52 = new wxBoxSizer(wxVERTICAL); m_wizardPageCompilers->SetSizer(boxSizer52); m_banner69 = new wxBannerWindow(m_wizardPageCompilers, wxID_ANY, wxTOP, wxDefaultPosition, wxSize(-1,-1), 0); @@ -125,7 +125,7 @@ m_wizardPageColoursAndFonts = new clBoostrapWizardPageColours(this, NULL, NULL, wxNullBitmap); m_pages.push_back(m_wizardPageColoursAndFonts); - wxBoxSizer* boxSizer12 = new wxBoxSizer(wxVERTICAL); + boxSizer12 = new wxBoxSizer(wxVERTICAL); m_wizardPageColoursAndFonts->SetSizer(boxSizer12); m_banner71 = new wxBannerWindow(m_wizardPageColoursAndFonts, wxID_ANY, wxTOP, wxDefaultPosition, wxSize(-1,-1), 0); @@ -199,7 +199,7 @@ } GetPageAreaSizer()->Add(m_pages.at(0)); - wxBoxSizer* boxSizer30 = new wxBoxSizer(wxVERTICAL); + boxSizer30 = new wxBoxSizer(wxVERTICAL); m_wizardPageWhitespace->SetSizer(boxSizer30); m_banner73 = new wxBannerWindow(m_wizardPageWhitespace, wxID_ANY, wxTOP, wxDefaultPosition, wxSize(-1,-1), 0); @@ -240,6 +240,8 @@ #if wxVERSION_NUMBER >= 2900 if(!wxPersistenceManager::Get().Find(this)) { wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); } #endif // Connect events diff -Nru codelite-8.0.1+dfsg2/Plugin/clBoostrapWizardBase.h codelite-9.0+dfsg/Plugin/clBoostrapWizardBase.h --- codelite-8.0.1+dfsg2/Plugin/clBoostrapWizardBase.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/clBoostrapWizardBase.h 2015-10-11 13:56:07.000000000 +0000 @@ -4,8 +4,8 @@ // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// -#ifndef CLBOOSTRAPWIZARDBASE_BASE_CLASSES_H -#define CLBOOSTRAPWIZARDBASE_BASE_CLASSES_H +#ifndef CODELITE_PLUGIN_CLBOOSTRAPWIZARDBASE_BASE_CLASSES_H +#define CODELITE_PLUGIN_CLBOOSTRAPWIZARDBASE_BASE_CLASSES_H #include #include @@ -37,24 +37,32 @@ std::vector m_pages; clBoostrapWizardPageWelcome* m_wizardPageWelcome; + wxBoxSizer* boxSizer79; wxBannerWindow* m_banner81; + wxBoxSizer* boxSizer105; wxCommandLinkButton* m_cmdLnkBtn107; clBoostrapWizardPagePlugins* m_wizardPagePlugins; + wxBoxSizer* boxSizer89; wxBannerWindow* m_banner811; + wxBoxSizer* boxSizer93; wxDataViewListCtrl* m_dvListCtrlPlugins; + wxBoxSizer* boxSizer97; wxButton* m_button99; wxButton* m_button101; wxButton* m_button103; clBoostrapWizardPageCompilers* m_wizardPageCompilers; + wxBoxSizer* boxSizer52; wxBannerWindow* m_banner69; wxCommandLinkButton* m_cmdLnkBtnScanForCompilers; wxCommandLinkButton* m_cmdLnkBtnDownloadCompiler; wxDataViewListCtrl* m_dvListCtrlCompilers; clBoostrapWizardPageColours* m_wizardPageColoursAndFonts; + wxBoxSizer* boxSizer12; wxBannerWindow* m_banner71; wxChoice* m_choiceTheme; wxStyledTextCtrl* m_stc24; clBoostrapWizardPageWhitespace* m_wizardPageWhitespace; + wxBoxSizer* boxSizer30; wxBannerWindow* m_banner73; wxRadioBox* m_radioBoxSpacesVsTabs; wxRadioBox* m_radioBoxWhitespaceVisibility; diff -Nru codelite-8.0.1+dfsg2/Plugin/clBoostrapWizardBase.wxcp codelite-9.0+dfsg/Plugin/clBoostrapWizardBase.wxcp --- codelite-8.0.1+dfsg2/Plugin/clBoostrapWizardBase.wxcp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/clBoostrapWizardBase.wxcp 2015-10-11 13:56:07.000000000 +0000 @@ -2517,4 +2517,4 @@ }] }] }] -} +} \ No newline at end of file diff -Nru codelite-8.0.1+dfsg2/Plugin/clBootstrapWizard.cpp codelite-9.0+dfsg/Plugin/clBootstrapWizard.cpp --- codelite-8.0.1+dfsg2/Plugin/clBootstrapWizard.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/clBootstrapWizard.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -94,7 +94,10 @@ { wxBusyCursor bc; m_compilers.clear(); + +#ifndef __WXGTK__ wxWindowUpdateLocker locker(m_wizardPageCompilers); +#endif CompilersDetectorManager detector; if(detector.Locate()) { diff -Nru codelite-8.0.1+dfsg2/Plugin/clDockingManager.cpp codelite-9.0+dfsg/Plugin/clDockingManager.cpp --- codelite-8.0.1+dfsg2/Plugin/clDockingManager.cpp 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/clDockingManager.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,94 @@ +#include "clDockingManager.h" +#include "imanager.h" +#include "globals.h" +#include "Notebook.h" +#include +#include +#include "codelite_events.h" +#include "event_notifier.h" +#include "detachedpanesinfo.h" +#include "editor_config.h" + +#define WORKSPACE_VIEW "Workspace View" +#define OUTPUT_VIEW "Output View" + +clDockingManager::clDockingManager() +{ + Bind(wxEVT_AUI_PANE_BUTTON, &clDockingManager::OnButtonClicked, this); + Bind(wxEVT_AUI_RENDER, &clDockingManager::OnRender, this); +} + +clDockingManager::~clDockingManager() +{ + Unbind(wxEVT_AUI_PANE_BUTTON, &clDockingManager::OnButtonClicked, this); + Unbind(wxEVT_AUI_RENDER, &clDockingManager::OnRender, this); +} + +void clDockingManager::OnRender(wxAuiManagerEvent& event) { event.Skip(); } + +void clDockingManager::OnButtonClicked(wxAuiManagerEvent& event) +{ + if(event.GetButton() != wxAUI_BUTTON_PIN) { + event.Skip(); + return; + } + event.Veto(); + event.Skip(false); + + if(event.GetPane()->name == OUTPUT_VIEW) { + CallAfter(&clDockingManager::ShowOutputViewOpenTabMenu); + } else { + CallAfter(&clDockingManager::ShowWorkspaceOpenTabMenu); + } +} + +void clDockingManager::ShowWorkspaceOpenTabMenu() +{ + // Override the "pin" button to show a window list + bool show; + wxString selection = ShowMenu(GetPane(WORKSPACE_VIEW).window, + clGetManager()->GetWorkspaceTabs(), + clGetManager()->GetWorkspacePaneNotebook(), + show); + CHECK_COND_RET(!selection.IsEmpty()); + clCommandEvent event(wxEVT_SHOW_WORKSPACE_TAB); + event.SetSelected(show).SetString(selection); + EventNotifier::Get()->AddPendingEvent(event); +} + +void clDockingManager::ShowOutputViewOpenTabMenu() +{ + bool show; + wxString selection = ShowMenu( + GetPane(OUTPUT_VIEW).window, clGetManager()->GetWorkspaceTabs(), clGetManager()->GetOutputPaneNotebook(), show); + CHECK_COND_RET(!selection.IsEmpty()); + clCommandEvent event(wxEVT_SHOW_OUTPUT_TAB); + event.SetSelected(show).SetString(selection); + EventNotifier::Get()->AddPendingEvent(event); +} + +wxString clDockingManager::ShowMenu(wxWindow* win, const wxArrayString& tabs, Notebook* book, bool& checked) +{ + DetachedPanesInfo dpi; + EditorConfigST::Get()->ReadObject("DetachedPanesList", &dpi); + + std::map tabsIds; + wxMenu menu; + for(size_t i = 0; i < tabs.size(); ++i) { + int tabId = ::wxNewId(); + const wxString& label = tabs.Item(i); + tabsIds.insert(std::make_pair(tabId, label)); + wxMenuItem* item = new wxMenuItem(&menu, tabId, label, "", wxITEM_CHECK); + menu.Append(item); + item->Check((book->GetPageIndex(label) != wxNOT_FOUND)); + if(dpi.GetPanes().Index(label) != wxNOT_FOUND) { + item->Enable(false); + } + } + + int sel = win->GetPopupMenuSelectionFromUser(menu); + if(sel == wxID_NONE) return ""; + const wxString& label = tabsIds.find(sel)->second; + checked = (book->GetPageIndex(label) == wxNOT_FOUND); + return label; +} diff -Nru codelite-8.0.1+dfsg2/Plugin/clDockingManager.h codelite-9.0+dfsg/Plugin/clDockingManager.h --- codelite-8.0.1+dfsg2/Plugin/clDockingManager.h 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/clDockingManager.h 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,28 @@ +#ifndef CLDOCKINGMANAGER_H +#define CLDOCKINGMANAGER_H + +#include "codelite_exports.h" +#include + +class Notebook; +class WXDLLIMPEXP_SDK clDockingManager : public wxAuiManager +{ +protected: + void OnRender(wxAuiManagerEvent& event); + void OnButtonClicked(wxAuiManagerEvent& event); + + void ShowWorkspaceOpenTabMenu(); + void ShowOutputViewOpenTabMenu(); + + /** + * @brief show a popup menu and return the selected string + * return an empty string if no selection was made + */ + wxString ShowMenu(wxWindow* win, const wxArrayString& tabs, Notebook* book, bool& checked); + +public: + clDockingManager(); + virtual ~clDockingManager(); +}; + +#endif // CLDOCKINGMANAGER_H diff -Nru codelite-8.0.1+dfsg2/Plugin/clean_request.cpp codelite-9.0+dfsg/Plugin/clean_request.cpp --- codelite-8.0.1+dfsg2/Plugin/clean_request.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/clean_request.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -60,7 +60,7 @@ BuildSettingsConfig* bsc(manager ? manager->GetBuildSettingsConfigManager() : BuildSettingsConfigST::Get()); BuildManager* bm(manager ? manager->GetBuildManager() : BuildManagerST::Get()); - Workspace* w(manager ? manager->GetWorkspace() : WorkspaceST::Get()); + clCxxWorkspace* w(manager ? manager->GetWorkspace() : clCxxWorkspaceST::Get()); ProjectPtr proj = w->FindProjectByName(m_info.GetProject(), errMsg); if(!proj) { @@ -90,7 +90,12 @@ CompilerPtr cmp = bsc->GetCompiler(cmpType); if(cmp) { // Add the 'bin' folder of the compiler to the PATH environment variable - wxFileName cxx = cmp->GetTool("CXX"); + wxString scxx = cmp->GetTool("CXX"); + scxx.Trim().Trim(false); + scxx.StartsWith("\"", &scxx); + scxx.EndsWith("\"", &scxx); + // Strip the double quotes + wxFileName cxx(scxx); wxString pathvar; pathvar << cxx.GetPath() << clPATH_SEPARATOR; diff -Nru codelite-8.0.1+dfsg2/Plugin/clEditorStateLocker.cpp codelite-9.0+dfsg/Plugin/clEditorStateLocker.cpp --- codelite-8.0.1+dfsg2/Plugin/clEditorStateLocker.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/clEditorStateLocker.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -18,8 +18,6 @@ clEditorStateLocker::~clEditorStateLocker() { - m_ctrl->SetFirstVisibleLine(m_firstVisibleLine); - // restore the position. if(m_position > m_ctrl->GetLastPosition()) { m_position = m_ctrl->GetLastPosition(); @@ -42,6 +40,8 @@ ApplyBookmarks(); ApplyBreakpoints(); ApplyFolds(); + + m_ctrl->SetFirstVisibleLine(m_firstVisibleLine); // We must do this _after_ ApplyFolds() or the display may scroll down } void clEditorStateLocker::ApplyBookmarks() { ApplyBookmarks(m_ctrl, m_bookmarks); } @@ -89,7 +89,13 @@ // If we cared enough, we could have saved a fold-level too, and/or the function name +/- the line's // displacement within the function. But for now... if(ctrl->GetFoldLevel(line) & wxSTC_FOLDLEVELHEADERFLAG) { - ctrl->ToggleFold(line); +#if wxVERSION_NUMBER >= 3100 + ctrl->FoldLine(line, wxSTC_FOLDACTION_CONTRACT); +#else + if (ctrl->GetFoldExpanded(line)) { // For ToggleFold(line); + } +#endif } } } diff -Nru codelite-8.0.1+dfsg2/Plugin/cl_editor_tip_window.cpp codelite-9.0+dfsg/Plugin/cl_editor_tip_window.cpp --- codelite-8.0.1+dfsg2/Plugin/cl_editor_tip_window.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/cl_editor_tip_window.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -216,10 +216,31 @@ { clCallTipPtr tip = GetTip(); if(tip) { - m_tipText = tip->Current(); - DoMakeMultipleLineTip(); - m_highlighIndex = argIdxToHilight; - DoLayoutTip(); + if(argIdxToHilight == wxNOT_FOUND) { + Remove(); + } else { + m_tipText = tip->Current(); + DoMakeMultipleLineTip(); + if((int)m_args.size() <= argIdxToHilight) { + // The current tip does not match the requested arg to highlight + // try to find a better tip + if(!tip->SelectTipToMatchArgCount(argIdxToHilight)) { + Deactivate(); + return; + } + + // Update the tip text + tip = GetTip(); + if(!tip) { + Deactivate(); + return; + } + m_tipText = tip->Current(); + DoMakeMultipleLineTip(); + } + m_highlighIndex = argIdxToHilight; + DoLayoutTip(); + } } else { Deactivate(); } diff -Nru codelite-8.0.1+dfsg2/Plugin/clFileViwerTreeCtrl.cpp codelite-9.0+dfsg/Plugin/clFileViwerTreeCtrl.cpp --- codelite-8.0.1+dfsg2/Plugin/clFileViwerTreeCtrl.cpp 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/clFileViwerTreeCtrl.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,37 @@ +#include "clFileViwerTreeCtrl.h" + +IMPLEMENT_DYNAMIC_CLASS(clFileViewerTreeCtrl, wxTreeCtrl) + +clFileViewerTreeCtrl::clFileViewerTreeCtrl(wxWindow* parent, + wxWindowID id, + const wxPoint& pos, + const wxSize& size, + long style) + : wxTreeCtrl(parent, id, pos, size, style) +{ +} + +clFileViewerTreeCtrl::clFileViewerTreeCtrl() {} + +clFileViewerTreeCtrl::~clFileViewerTreeCtrl() {} + +int clFileViewerTreeCtrl::OnCompareItems(const clTreeCtrlData* a, const clTreeCtrlData* b) +{ + // if dir and other is not, dir has preference + if(a->IsFolder() && b->IsFile()) + return -1; + else if(b->IsFolder() && a->IsFile()) + return 1; + return a->GetName().CmpNoCase(b->GetName()); +} + +int clFileViewerTreeCtrl::OnCompareItems(const wxTreeItemId& item1, const wxTreeItemId& item2) +{ + if(!item1.IsOk() || !item2.IsOk()) + return wxTreeCtrl::OnCompareItems(item1, item2); + + clTreeCtrlData *a = static_cast(GetItemData(item1)); + clTreeCtrlData *b = static_cast(GetItemData(item2)); + + return OnCompareItems(a, b); +} diff -Nru codelite-8.0.1+dfsg2/Plugin/clFileViwerTreeCtrl.h codelite-9.0+dfsg/Plugin/clFileViwerTreeCtrl.h --- codelite-8.0.1+dfsg2/Plugin/clFileViwerTreeCtrl.h 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/clFileViwerTreeCtrl.h 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,119 @@ +#ifndef CLFILEVIWERTREECTRL_H +#define CLFILEVIWERTREECTRL_H + +#include +#include "codelite_exports.h" +#include +#include + +/** + * @class clTreeNodeIndex + * @brief a helper class for fast searching a folder in the tree view + */ +class WXDLLIMPEXP_SDK clTreeNodeIndex +{ + std::map m_children; + +public: + clTreeNodeIndex() {} + virtual ~clTreeNodeIndex() {} + + wxTreeItemId Find(const wxString& path) + { + if(m_children.count(path)) { + return m_children.find(path)->second; + } + return wxTreeItemId(); + } + void Add(const wxString& path, const wxTreeItemId& item) { m_children.insert(std::make_pair(path, item)); } + void Delete(const wxString& name) { m_children.erase(name); } +}; + +// Item data class +class WXDLLIMPEXP_SDK clTreeCtrlData : public wxTreeItemData +{ +public: + enum eKind { + kDummy = -1, + kRoot, // the hidden root folder + kFile, // a file + kFolder, // a folder + }; + eKind m_kind; + // If file, contains the fullpath otherwise, contains the path + wxString m_path; + wxString m_name; + clTreeNodeIndex* m_index; + +public: + clTreeCtrlData(eKind kind) + : m_kind(kind) + , m_index(NULL) + { + if(IsFolder()) { + m_index = new clTreeNodeIndex(); + } + } + virtual ~clTreeCtrlData() { wxDELETE(m_index); } + + clTreeNodeIndex* GetIndex() { return m_index; } + + void SetKind(const eKind& kind) { this->m_kind = kind; } + const eKind& GetKind() const { return m_kind; } + + /** + * @brief set the path and update the display name + */ + void SetPath(const wxString& path) + { + this->m_path = path; + if(IsFolder()) { + wxFileName fn(m_path, ""); + if(fn.GetDirCount()) { + m_name = fn.GetDirs().Last(); + } else { + m_name = m_path; + } + } else if(IsFile()) { + wxFileName fn(m_path); + m_name = fn.GetFullName(); + } else { + m_name = wxEmptyString; + } + } + + /** + * @brief return the item's path. if it is a folder, return the folder path. If it is a file + * return the file's fullpath + */ + const wxString& GetPath() const { return m_path; } + + /** + * @brief return the display name + */ + const wxString& GetName() const { return m_name; } + + // Aliases + bool IsFolder() const { return m_kind == kFolder; } + bool IsFile() const { return m_kind == kFile; } + bool IsDummy() const { return m_kind == kDummy; } +}; + +class WXDLLIMPEXP_SDK clFileViewerTreeCtrl : public wxTreeCtrl +{ + wxDECLARE_DYNAMIC_CLASS(clFileViewerTreeCtrl); + +public: + clFileViewerTreeCtrl(); + clFileViewerTreeCtrl(wxWindow* parent, + wxWindowID id = wxID_ANY, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = wxTR_DEFAULT_STYLE | wxTR_MULTIPLE | wxTR_HIDE_ROOT | wxBORDER_STATIC); + virtual ~clFileViewerTreeCtrl(); + + virtual int OnCompareItems(const clTreeCtrlData* a, const clTreeCtrlData* b); + virtual int OnCompareItems(const wxTreeItemId& item1, const wxTreeItemId& item2); +}; + +#endif // CLFILEVIWERTREECTRL_H diff -Nru codelite-8.0.1+dfsg2/Plugin/clGetTextFromUserDialog.cpp codelite-9.0+dfsg/Plugin/clGetTextFromUserDialog.cpp --- codelite-8.0.1+dfsg2/Plugin/clGetTextFromUserDialog.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/clGetTextFromUserDialog.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,11 +1,8 @@ #include "clGetTextFromUserDialog.h" #include "windowattrmanager.h" -clGetTextFromUserDialog::clGetTextFromUserDialog(wxWindow* parent, - const wxString& title, - const wxString& message, - const wxString& initialValue, - int charsToSelect) +clGetTextFromUserDialog::clGetTextFromUserDialog( + wxWindow* parent, const wxString& title, const wxString& message, const wxString& initialValue, int charsToSelect) : clGetTextFromUserBaseDialog(parent) { SetTitle(title); @@ -16,9 +13,9 @@ } else { m_textCtrl->SelectAll(); } + //WindowAttrManager::Load(this); CenterOnParent(); SetName("clGetTextFromUserDialog"); - WindowAttrManager::Load(this); } clGetTextFromUserDialog::~clGetTextFromUserDialog() {} diff -Nru codelite-8.0.1+dfsg2/Plugin/clImageViewer.cpp codelite-9.0+dfsg/Plugin/clImageViewer.cpp --- codelite-8.0.1+dfsg2/Plugin/clImageViewer.cpp 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/clImageViewer.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,17 @@ +#include "clImageViewer.h" +#include +#include + +clImageViewer::clImageViewer(wxWindow* parent, const wxFileName& filename) + : clImageViewerBase(parent) + , m_filename(filename) +{ + // Consruct a bitmap + wxBitmap bmp; + if(bmp.LoadFile(filename.GetFullPath(), wxBITMAP_TYPE_ANY)) { + m_bitmap = bmp; + m_staticBitmap->SetBitmap(m_bitmap); + } +} + +clImageViewer::~clImageViewer() {} \ No newline at end of file diff -Nru codelite-8.0.1+dfsg2/Plugin/clImageViewer.h codelite-9.0+dfsg/Plugin/clImageViewer.h --- codelite-8.0.1+dfsg2/Plugin/clImageViewer.h 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/clImageViewer.h 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,17 @@ +#ifndef CLIMAGEVIEWER_H +#define CLIMAGEVIEWER_H +#include "wxcrafter_plugin.h" +#include + +class WXDLLIMPEXP_SDK clImageViewer : public clImageViewerBase +{ + wxFileName m_filename; + wxBitmap m_bitmap; + +public: + clImageViewer(wxWindow* parent, const wxFileName& filename); + virtual ~clImageViewer(); + void DoLayout(); +}; + +#endif // CLIMAGEVIEWER_H diff -Nru codelite-8.0.1+dfsg2/Plugin/clResizableTooltip.cpp codelite-9.0+dfsg/Plugin/clResizableTooltip.cpp --- codelite-8.0.1+dfsg2/Plugin/clResizableTooltip.cpp 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/clResizableTooltip.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,149 @@ +#include "clResizableTooltip.h" +#include +#include "event_notifier.h" +#include + +wxDEFINE_EVENT(wxEVT_TOOLTIP_DESTROY, clCommandEvent); +wxDEFINE_EVENT(wxEVT_TOOLTIP_ITEM_EXPANDING, clCommandEvent); + +clResizableTooltip::clResizableTooltip(wxEvtHandler* owner) + : clResizableTooltipBase(EventNotifier::Get()->TopFrame()) + , m_dragging(false) + , m_owner(owner) +{ +} + +clResizableTooltip::~clResizableTooltip() +{ + if(m_panelStatus->HasCapture()) { + m_panelStatus->ReleaseMouse(); + } +} + +void clResizableTooltip::OnCheckMousePosition(wxTimerEvent& event) +{ +#ifdef __WXMSW__ + // On Windows, wxPopupWindow does not return a correct position + // in screen coordinates. So we use the inside tree-ctrl to + // calc our position and size + wxPoint tipPoint = m_treeCtrl->GetPosition(); + tipPoint = m_treeCtrl->ClientToScreen(tipPoint); + wxSize tipSize = GetSize(); + // Construct a wxRect from the tip size/position + wxRect rect(tipPoint, tipSize); +#else + // Linux and OSX it works + wxRect rect(GetRect()); +#endif + + // and increase it by 15 pixels + rect.Inflate(15, 15); + if(!rect.Contains(::wxGetMousePosition())) { + if(m_panelStatus->HasCapture()) { + m_panelStatus->ReleaseMouse(); + } + + // Notify to the owner that this tooltip should be destroyed + clCommandEvent destroyEvent(wxEVT_TOOLTIP_DESTROY); + destroyEvent.SetEventObject(this); + m_owner->AddPendingEvent(destroyEvent); + } +} + +void clResizableTooltip::OnStatusBarLeftDown(wxMouseEvent& event) +{ + m_dragging = true; +#ifndef __WXGTK__ + wxSetCursor(wxCURSOR_SIZING); +#endif + m_panelStatus->CaptureMouse(); +} + +void clResizableTooltip::OnStatusBarLeftUp(wxMouseEvent& event) +{ + event.Skip(); + DoUpdateSize(true); +} + +void clResizableTooltip::OnStatusBarMotion(wxMouseEvent& event) +{ + event.Skip(); + if(m_dragging) { + wxRect curect = GetScreenRect(); + wxPoint curpos = ::wxGetMousePosition(); + + int xDiff = curect.GetBottomRight().x - curpos.x; + int yDiff = curect.GetBottomRight().y - curpos.y; + + if((abs(xDiff) > 3) || (abs(yDiff) > 3)) { + DoUpdateSize(false); + } + } +} + +void clResizableTooltip::OnStatusEnterWindow(wxMouseEvent& event) +{ + event.Skip(); +#ifndef __WXGTK__ + ::wxSetCursor(wxCURSOR_SIZING); +#endif +} + +void clResizableTooltip::OnStatusLeaveWindow(wxMouseEvent& event) +{ + event.Skip(); +#ifndef __WXGTK__ + ::wxSetCursor(wxNullCursor); +#endif +} + +void clResizableTooltip::OnItemExpanding(wxTreeEvent& event) { event.Skip(); } + +void clResizableTooltip::Clear() { m_treeCtrl->DeleteAllItems(); } + +void clResizableTooltip::DoUpdateSize(bool performClean) +{ + if(m_dragging) { + wxCoord ww, hh; + wxPoint mousePt = ::wxGetMousePosition(); + ww = mousePt.x - m_topLeft.x; + hh = mousePt.y - m_topLeft.y; + + wxRect curect(m_topLeft, wxSize(ww, hh)); + if(curect.GetHeight() > 100 && curect.GetWidth() > 100) { +#ifdef __WXMSW__ + wxWindowUpdateLocker locker(EventNotifier::Get()->TopFrame()); +#endif + SetSize(curect); + } + } + + if(performClean) { + m_dragging = false; + if(m_panelStatus->HasCapture()) { + m_panelStatus->ReleaseMouse(); + } +#ifndef __WXGTK__ + wxSetCursor(wxNullCursor); +#endif + } +} +void clResizableTooltip::OnCaptureLost(wxMouseCaptureLostEvent& event) +{ + event.Skip(); + if(m_panelStatus->HasCapture()) { + m_panelStatus->ReleaseMouse(); + m_dragging = true; + } +} + +void clResizableTooltip::ShowTip() +{ + m_topLeft = ::wxGetMousePosition(); + Move(m_topLeft); + wxPopupWindow::Show(); + if(GetTreeCtrl() && GetTreeCtrl()->IsShown()) { + GetTreeCtrl()->SetFocus(); + } + +} diff -Nru codelite-8.0.1+dfsg2/Plugin/clResizableTooltip.h codelite-9.0+dfsg/Plugin/clResizableTooltip.h --- codelite-8.0.1+dfsg2/Plugin/clResizableTooltip.h 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/clResizableTooltip.h 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,52 @@ +#ifndef CLRESIZABLETOOLTIP_H +#define CLRESIZABLETOOLTIP_H +#include "wxcrafter_plugin.h" +#include "cl_command_event.h" + +wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_SDK, wxEVT_TOOLTIP_DESTROY, clCommandEvent); +wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_SDK, wxEVT_TOOLTIP_ITEM_EXPANDING, clCommandEvent); + +class WXDLLIMPEXP_SDK clResizableTooltip : public clResizableTooltipBase +{ + bool m_dragging; + wxEvtHandler* m_owner; + wxPoint m_topLeft; + +protected: + virtual void OnCaptureLost(wxMouseCaptureLostEvent& event); + void DoUpdateSize(bool performClean); + +public: + clResizableTooltip(wxEvtHandler* owner); + virtual ~clResizableTooltip(); + + /** + * @brief return the event owner for this tooltip + * @return + */ + wxEvtHandler* GetOwner() { return m_owner; } + + /** + * @brief delete all items in the tree control + */ + virtual void Clear(); + + /** + * @brief move the tooltip to the mouse position and show it + */ + virtual void ShowTip(); + +protected: + /** + * @brief user is expanding a tree item + * @param event + */ + virtual void OnItemExpanding(wxTreeEvent& event); + virtual void OnStatusBarLeftDown(wxMouseEvent& event); + virtual void OnStatusBarLeftUp(wxMouseEvent& event); + virtual void OnStatusBarMotion(wxMouseEvent& event); + virtual void OnStatusEnterWindow(wxMouseEvent& event); + virtual void OnStatusLeaveWindow(wxMouseEvent& event); + virtual void OnCheckMousePosition(wxTimerEvent& event); +}; +#endif // CLRESIZABLETOOLTIP_H diff -Nru codelite-8.0.1+dfsg2/Plugin/clSelectSymbolDialogBase.cpp codelite-9.0+dfsg/Plugin/clSelectSymbolDialogBase.cpp --- codelite-8.0.1+dfsg2/Plugin/clSelectSymbolDialogBase.cpp 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/clSelectSymbolDialogBase.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,77 @@ +////////////////////////////////////////////////////////////////////// +// This file was auto-generated by codelite's wxCrafter Plugin +// wxCrafter project file: clSelectSymbolDialogBase.wxcp +// Do not modify this file by hand! +////////////////////////////////////////////////////////////////////// + +#include "clSelectSymbolDialogBase.h" +#include "codelite_exports.h" + + +// Declare the bitmap loading function +extern void wxCrafterWmuZfdInitBitmapResources(); + +static bool bBitmapLoaded = false; + + +clSelectSymbolDialogBase::clSelectSymbolDialogBase(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style) + : wxDialog(parent, id, title, pos, size, style) +{ + if ( !bBitmapLoaded ) { + // We need to initialise the default bitmap handler + wxXmlResource::Get()->AddHandler(new wxBitmapXmlHandler); + wxCrafterWmuZfdInitBitmapResources(); + bBitmapLoaded = true; + } + + boxSizer2 = new wxBoxSizer(wxVERTICAL); + this->SetSizer(boxSizer2); + + boxSizer10 = new wxBoxSizer(wxVERTICAL); + + boxSizer2->Add(boxSizer10, 1, wxALL|wxEXPAND, 5); + + m_dvListCtrl = new wxDataViewListCtrl(this, wxID_ANY, wxDefaultPosition, wxSize(500,200), wxDV_VERT_RULES|wxDV_ROW_LINES|wxDV_SINGLE); + m_dvListCtrl->SetFocus(); + + boxSizer10->Add(m_dvListCtrl, 1, wxALL|wxEXPAND, 5); + + m_dvListCtrl->AppendIconTextColumn(_("Name"), wxDATAVIEW_CELL_INERT, 500, wxALIGN_LEFT); + m_dvListCtrl->AppendTextColumn(_("Ext"), wxDATAVIEW_CELL_INERT, 200, wxALIGN_LEFT); + m_stdBtnSizer4 = new wxStdDialogButtonSizer(); + + boxSizer2->Add(m_stdBtnSizer4, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 5); + + m_buttonOK = new wxButton(this, wxID_OK, wxT(""), wxDefaultPosition, wxSize(-1, -1), 0); + m_buttonOK->SetDefault(); + m_stdBtnSizer4->AddButton(m_buttonOK); + + m_buttonCancel = new wxButton(this, wxID_CANCEL, wxT(""), wxDefaultPosition, wxSize(-1, -1), 0); + m_stdBtnSizer4->AddButton(m_buttonCancel); + m_stdBtnSizer4->Realize(); + + SetName(wxT("clSelectSymbolDialogBase")); + SetSizeHints(-1,-1); + if ( GetSizer() ) { + GetSizer()->Fit(this); + } + CentreOnParent(wxBOTH); +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(this)) { + wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); + } +#endif + // Connect events + m_dvListCtrl->Connect(wxEVT_COMMAND_DATAVIEW_ITEM_ACTIVATED, wxDataViewEventHandler(clSelectSymbolDialogBase::OnItemActivated), NULL, this); + m_buttonOK->Connect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(clSelectSymbolDialogBase::OnOKUI), NULL, this); + +} + +clSelectSymbolDialogBase::~clSelectSymbolDialogBase() +{ + m_dvListCtrl->Disconnect(wxEVT_COMMAND_DATAVIEW_ITEM_ACTIVATED, wxDataViewEventHandler(clSelectSymbolDialogBase::OnItemActivated), NULL, this); + m_buttonOK->Disconnect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(clSelectSymbolDialogBase::OnOKUI), NULL, this); + +} diff -Nru codelite-8.0.1+dfsg2/Plugin/clSelectSymbolDialogBase.h codelite-9.0+dfsg/Plugin/clSelectSymbolDialogBase.h --- codelite-8.0.1+dfsg2/Plugin/clSelectSymbolDialogBase.h 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/clSelectSymbolDialogBase.h 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,47 @@ +////////////////////////////////////////////////////////////////////// +// This file was auto-generated by codelite's wxCrafter Plugin +// wxCrafter project file: clSelectSymbolDialogBase.wxcp +// Do not modify this file by hand! +////////////////////////////////////////////////////////////////////// + +#ifndef CODELITE_PLUGIN_CLSELECTSYMBOLDIALOGBASE_BASE_CLASSES_H +#define CODELITE_PLUGIN_CLSELECTSYMBOLDIALOGBASE_BASE_CLASSES_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#if wxVERSION_NUMBER >= 2900 +#include +#include +#include +#include +#endif +#include "codelite_exports.h" + +class WXDLLIMPEXP_SDK clSelectSymbolDialogBase : public wxDialog +{ +protected: + wxBoxSizer* boxSizer2; + wxBoxSizer* boxSizer10; + wxDataViewListCtrl* m_dvListCtrl; + wxStdDialogButtonSizer* m_stdBtnSizer4; + wxButton* m_buttonOK; + wxButton* m_buttonCancel; + +protected: + virtual void OnItemActivated(wxDataViewEvent& event) { event.Skip(); } + virtual void OnOKUI(wxUpdateUIEvent& event) { event.Skip(); } + +public: + wxDataViewListCtrl* GetDvListCtrl() { return m_dvListCtrl; } + clSelectSymbolDialogBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Select Symbol"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER); + virtual ~clSelectSymbolDialogBase(); +}; + +#endif diff -Nru codelite-8.0.1+dfsg2/Plugin/clSelectSymbolDialogBase_plugin_bitmaps.cpp codelite-9.0+dfsg/Plugin/clSelectSymbolDialogBase_plugin_bitmaps.cpp --- codelite-8.0.1+dfsg2/Plugin/clSelectSymbolDialogBase_plugin_bitmaps.cpp 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/clSelectSymbolDialogBase_plugin_bitmaps.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,47 @@ +// +// This file was automatically generated by wxrc, do not edit by hand. +// + +#include + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +#include +#include +#include +#include + +#if wxCHECK_VERSION(2,8,5) && wxABI_VERSION >= 20805 + #define XRC_ADD_FILE(name, data, size, mime) \ + wxMemoryFSHandler::AddFileWithMimeType(name, data, size, mime) +#else + #define XRC_ADD_FILE(name, data, size, mime) \ + wxMemoryFSHandler::AddFile(name, data, size) +#endif + +static size_t xml_res_size_0 = 90; +static unsigned char xml_res_file_0[] = { +60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, +110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, +115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, +47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, +47,119,120,120,114,99,34,47,62,10}; + +void wxCrafterWmuZfdInitBitmapResources() +{ + + // Check for memory FS. If not present, load the handler: + { + wxMemoryFSHandler::AddFile(wxT("XRC_resource/dummy_file"), wxT("dummy one")); + wxFileSystem fsys; + wxFSFile *f = fsys.OpenFile(wxT("memory:XRC_resource/dummy_file")); + wxMemoryFSHandler::RemoveFile(wxT("XRC_resource/dummy_file")); + if (f) delete f; + else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase); + } + + XRC_ADD_FILE(wxT("XRC_resource/clSelectSymbolDialogBase_plugin_bitmaps.cpp$C__src_codelite_Plugin_clSelectSymbolDialogBase_plugin_bitmaps.xrc"), xml_res_file_0, xml_res_size_0, wxT("text/xml")); + wxXmlResource::Get()->Load(wxT("memory:XRC_resource/clSelectSymbolDialogBase_plugin_bitmaps.cpp$C__src_codelite_Plugin_clSelectSymbolDialogBase_plugin_bitmaps.xrc")); +} diff -Nru codelite-8.0.1+dfsg2/Plugin/clSelectSymbolDialogBase.wxcp codelite-9.0+dfsg/Plugin/clSelectSymbolDialogBase.wxcp --- codelite-8.0.1+dfsg2/Plugin/clSelectSymbolDialogBase.wxcp 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/clSelectSymbolDialogBase.wxcp 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,463 @@ +{ + "metadata": { + "m_generatedFilesDir": ".", + "m_objCounter": 12, + "m_includeFiles": ["codelite_exports.h"], + "m_bitmapFunction": "wxCrafterWmuZfdInitBitmapResources", + "m_bitmapsFile": "clSelectSymbolDialogBase_plugin_bitmaps.cpp", + "m_GenerateCodeTypes": 1, + "m_outputFileName": "clSelectSymbolDialogBase", + "m_firstWindowId": 1000, + "m_useEnum": true, + "m_templateClasses": [] + }, + "windows": [{ + "m_type": 4421, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxDEFAULT_DIALOG_STYLE", "wxRESIZE_BORDER"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "clSelectSymbolDialogBase" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Enable Window Persistency:", + "m_value": true + }, { + "type": "string", + "m_label": "Title:", + "m_value": "Select Symbol" + }, { + "type": "virtualFolderPicker", + "m_label": "Virtual Folder:", + "m_path": "plugin_sdk:GUI:Dialogs" + }, { + "type": "choice", + "m_label": "Centre:", + "m_selection": 1, + "m_options": ["", "wxBOTH", "wxVERTICAL", "wxHORIZONTAL"] + }, { + "type": "string", + "m_label": "Inherited Class", + "m_value": "clSelectSymbolDialog" + }, { + "type": "string", + "m_label": "File:", + "m_value": "clSelectSymbolDialog" + }, { + "type": "string", + "m_label": "Class Decorator", + "m_value": "WXDLLIMPEXP_SDK" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (16x16) :", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (32x32) :", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (64x64) :", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (128x128):", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (256x256):", + "m_path": "" + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "boxSizer2" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "boxSizer10" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4469, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxDV_VERT_RULES", "wxDV_ROW_LINES", "wxDV_SINGLE"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "500,200" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_dvListCtrl" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": true + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_DATAVIEW_ITEM_ACTIVATED", + "m_eventClass": "wxDataViewEvent", + "m_eventHandler": "wxDataViewEventHandler", + "m_functionNameAndSignature": "OnItemActivated(wxDataViewEvent& event)", + "m_description": "Process a wxEVT_COMMAND_DATAVIEW_ITEM_ACTIVATED event.\nThis event is triggered by double clicking an item or pressing some special key (usually \"Enter\") when it is focused", + "m_noBody": false + }], + "m_children": [{ + "m_type": 4472, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "Name" + }, { + "type": "string", + "m_label": "Width:", + "m_value": "500" + }, { + "type": "choice", + "m_label": "Column Type", + "m_selection": 3, + "m_options": ["bitmap", "check", "text", "icontext", "progress", "choice"] + }, { + "type": "multi-string", + "m_label": "Choices:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Alignment", + "m_selection": 0, + "m_options": ["wxALIGN_LEFT", "wxALIGN_RIGHT", "wxALIGN_CENTER"] + }, { + "type": "choice", + "m_label": "Cell Mode", + "m_selection": 0, + "m_options": ["wxDATAVIEW_CELL_INERT", "wxDATAVIEW_CELL_ACTIVATABLE", "wxDATAVIEW_CELL_EDITABLE"] + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4472, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "Ext" + }, { + "type": "string", + "m_label": "Width:", + "m_value": "200" + }, { + "type": "choice", + "m_label": "Column Type", + "m_selection": 2, + "m_options": ["bitmap", "check", "text", "icontext", "progress", "choice"] + }, { + "type": "multi-string", + "m_label": "Choices:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Alignment", + "m_selection": 0, + "m_options": ["wxALIGN_LEFT", "wxALIGN_RIGHT", "wxALIGN_CENTER"] + }, { + "type": "choice", + "m_label": "Cell Mode", + "m_selection": 0, + "m_options": ["wxDATAVIEW_CELL_INERT", "wxDATAVIEW_CELL_ACTIVATABLE", "wxDATAVIEW_CELL_EDITABLE"] + }], + "m_events": [], + "m_children": [] + }] + }] + }, { + "m_type": 4467, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_HORIZONTAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_stdBtnSizer4" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }], + "m_events": [], + "m_children": [{ + "m_type": 4468, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "choice", + "m_label": "ID:", + "m_selection": 0, + "m_options": ["wxID_OK", "wxID_YES", "wxID_SAVE", "wxID_APPLY", "wxID_CLOSE", "wxID_NO", "wxID_CANCEL", "wxID_HELP", "wxID_CONTEXT_HELP"] + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_buttonOK" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Default Button", + "m_value": true + }], + "m_events": [{ + "m_eventName": "wxEVT_UPDATE_UI", + "m_eventClass": "wxUpdateUIEvent", + "m_eventHandler": "wxUpdateUIEventHandler", + "m_functionNameAndSignature": "OnOKUI(wxUpdateUIEvent& event)", + "m_description": "Process a wxEVT_UPDATE_UI event", + "m_noBody": false + }], + "m_children": [] + }, { + "m_type": 4468, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "choice", + "m_label": "ID:", + "m_selection": 6, + "m_options": ["wxID_OK", "wxID_YES", "wxID_SAVE", "wxID_APPLY", "wxID_CLOSE", "wxID_NO", "wxID_CANCEL", "wxID_HELP", "wxID_CONTEXT_HELP"] + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_buttonCancel" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Default Button", + "m_value": false + }], + "m_events": [], + "m_children": [] + }] + }] + }] + }] +} \ No newline at end of file diff -Nru codelite-8.0.1+dfsg2/Plugin/clSelectSymbolDialog.cpp codelite-9.0+dfsg/Plugin/clSelectSymbolDialog.cpp --- codelite-8.0.1+dfsg2/Plugin/clSelectSymbolDialog.cpp 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/clSelectSymbolDialog.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,49 @@ +#include "clSelectSymbolDialog.h" +#include "globals.h" +#include + +wxDEFINE_EVENT(wxEVT_SYMBOL_SELECTED, clCommandEvent); + +clSelectSymbolDialog::clSelectSymbolDialog(wxWindow* parent, const clSelectSymbolDialogEntry::List_t& entries) + : clSelectSymbolDialogBase(parent) +{ + CenterOnParent(); + std::for_each(entries.begin(), entries.end(), [&](const clSelectSymbolDialogEntry& entry) { + AddSymbol(entry.name, entry.bmp, entry.help, entry.clientData); + }); + + if(m_dvListCtrl->GetItemCount()) { + m_dvListCtrl->Select(m_dvListCtrl->RowToItem(0)); + } +} + +clSelectSymbolDialog::~clSelectSymbolDialog() +{ + for(int i = 0; i < m_dvListCtrl->GetItemCount(); ++i) { + wxClientData* cd = reinterpret_cast(m_dvListCtrl->GetItemData(m_dvListCtrl->RowToItem(i))); + wxDELETE(cd); + } +} + +void clSelectSymbolDialog::AddSymbol(const wxString& name, + const wxBitmap& bmp, + const wxString& help, + wxClientData* clientData) +{ + wxVector cols; + cols.push_back(::MakeIconText(name, bmp)); + cols.push_back(help); + m_dvListCtrl->AppendItem(cols, (wxUIntPtr)clientData); +} + +void clSelectSymbolDialog::OnOKUI(wxUpdateUIEvent& event) { event.Enable(m_dvListCtrl->GetSelection().IsOk()); } + +wxClientData* clSelectSymbolDialog::GetSelection() const +{ + wxDataViewItem item = m_dvListCtrl->GetSelection(); + if(!item) return NULL; + + wxClientData* cd = reinterpret_cast(m_dvListCtrl->GetItemData(item)); + return cd; +} +void clSelectSymbolDialog::OnItemActivated(wxDataViewEvent& event) { EndModal(wxID_OK); } diff -Nru codelite-8.0.1+dfsg2/Plugin/clSelectSymbolDialog.h codelite-9.0+dfsg/Plugin/clSelectSymbolDialog.h --- codelite-8.0.1+dfsg2/Plugin/clSelectSymbolDialog.h 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/clSelectSymbolDialog.h 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,49 @@ +#ifndef CLSELECTSYMBOLDIALOG_H +#define CLSELECTSYMBOLDIALOG_H + +#include "clSelectSymbolDialogBase.h" +#include "codelite_exports.h" +#include +#include "cl_command_event.h" +#include + +wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_SDK, wxEVT_SYMBOL_SELECTED, clCommandEvent); + +struct WXDLLIMPEXP_SDK clSelectSymbolDialogEntry { + wxString name; + wxBitmap bmp; + wxString help; + wxClientData* clientData; + + clSelectSymbolDialogEntry() + : bmp(wxNullBitmap) + , clientData(NULL) + { + } + + typedef std::list List_t; +}; + +class WXDLLIMPEXP_SDK clSelectSymbolDialog : public clSelectSymbolDialogBase +{ +public: + clSelectSymbolDialog(wxWindow* parent, const clSelectSymbolDialogEntry::List_t& entries); + virtual ~clSelectSymbolDialog(); + +protected: + void AddSymbol(const wxString& name, + const wxBitmap& bmp = wxNullBitmap, + const wxString& help = "", + wxClientData* clientData = NULL); + +public: + /** + * @brief return the selected item client data + */ + wxClientData* GetSelection() const; + +protected: + virtual void OnItemActivated(wxDataViewEvent& event); + virtual void OnOKUI(wxUpdateUIEvent& event); +}; +#endif // CLSELECTSYMBOLDIALOG_H diff -Nru codelite-8.0.1+dfsg2/Plugin/clSingleChoiceDialog.cpp codelite-9.0+dfsg/Plugin/clSingleChoiceDialog.cpp --- codelite-8.0.1+dfsg2/Plugin/clSingleChoiceDialog.cpp 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/clSingleChoiceDialog.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,32 @@ +#include "clSingleChoiceDialog.h" +#include "globals.h" + +clSingleChoiceDialog::clSingleChoiceDialog(wxWindow* parent, const wxArrayString& options, int initialSelection) + : clSingleChoiceDialogBase(parent) +{ + MSWSetNativeTheme(m_listBox); + if(!options.IsEmpty()) { + m_listBox->Append(options); + if(initialSelection >= 0 && initialSelection < (int)options.size()) { + m_listBox->Select(initialSelection); + } + } + CenterOnParent(); +} + +clSingleChoiceDialog::~clSingleChoiceDialog() {} + +void clSingleChoiceDialog::OnOKUI(wxUpdateUIEvent& event) { event.Enable(m_listBox->GetSelection() != -1); } + +wxString clSingleChoiceDialog::GetSelection() const +{ + if(m_listBox->GetSelection() != wxNOT_FOUND) { + return m_listBox->GetStringSelection(); + } + return ""; +} + +void clSingleChoiceDialog::OnItemActivated(wxCommandEvent& event) +{ + EndModal(wxID_OK); +} diff -Nru codelite-8.0.1+dfsg2/Plugin/clSingleChoiceDialog.h codelite-9.0+dfsg/Plugin/clSingleChoiceDialog.h --- codelite-8.0.1+dfsg2/Plugin/clSingleChoiceDialog.h 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/clSingleChoiceDialog.h 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,16 @@ +#ifndef CLSINGLECHOICEDIALOG_H +#define CLSINGLECHOICEDIALOG_H +#include "wxcrafter_plugin.h" +#include "codelite_exports.h" + +class WXDLLIMPEXP_SDK clSingleChoiceDialog : public clSingleChoiceDialogBase +{ +public: + clSingleChoiceDialog(wxWindow* parent, const wxArrayString& options, int initialSelection = 0); + virtual ~clSingleChoiceDialog(); + wxString GetSelection() const; +protected: + virtual void OnItemActivated(wxCommandEvent& event); + virtual void OnOKUI(wxUpdateUIEvent& event); +}; +#endif // CLSINGLECHOICEDIALOG_H diff -Nru codelite-8.0.1+dfsg2/Plugin/clStatusBar.cpp codelite-9.0+dfsg/Plugin/clStatusBar.cpp --- codelite-8.0.1+dfsg2/Plugin/clStatusBar.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/clStatusBar.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -13,6 +13,7 @@ #include "ColoursAndFontsManager.h" #include #include "globals.h" +#include #define STATUSBAR_LINE_COL_IDX 0 #define STATUSBAR_ANIMATION_COL_IDX 1 @@ -50,7 +51,7 @@ EventNotifier::Get()->Bind(wxEVT_WORKSPACE_CLOSED, &clStatusBar::OnWorkspaceClosed, this); Bind(wxEVT_STATUSBAR_CLICKED, &clStatusBar::OnFieldClicked, this); - wxCustomStatusBarField::Ptr_t lineCol(new wxCustomStatusBarFieldText(this, 200)); + wxCustomStatusBarField::Ptr_t lineCol(new wxCustomStatusBarFieldText(this, 250)); AddField(lineCol); wxCustomStatusBarField::Ptr_t buildAnimation(new wxCustomStatusBarAnimationField( diff -Nru codelite-8.0.1+dfsg2/Plugin/clTreeCtrlPanel.cpp codelite-9.0+dfsg/Plugin/clTreeCtrlPanel.cpp --- codelite-8.0.1+dfsg2/Plugin/clTreeCtrlPanel.cpp 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/clTreeCtrlPanel.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,833 @@ +#include "clTreeCtrlPanel.h" +#include "clFileOrFolderDropTarget.h" +#include "codelite_events.h" +#include "macros.h" +#include +#include +#include "clWorkspaceView.h" +#include +#include "globals.h" +#include +#include +#include +#include "event_notifier.h" +#include "fileutils.h" +#include "ieditor.h" +#include "imanager.h" +#include +#include +#include "cl_config.h" +#include "clTreeCtrlPanelDefaultPage.h" +#include + +clTreeCtrlPanel::clTreeCtrlPanel(wxWindow* parent) + : clTreeCtrlPanelBase(parent) + , m_config(NULL) + , m_newfileTemplate("Untitled.txt") + , m_newfileTemplateHighlightLen(wxStrlen("Untitled")) + , m_options(kShowHiddenFiles | kShowHiddenFolders) +{ + ::MSWSetNativeTheme(GetTreeCtrl()); + // Allow DnD + SetDropTarget(new clFileOrFolderDropTarget(this)); + GetTreeCtrl()->SetDropTarget(new clFileOrFolderDropTarget(this)); + Bind(wxEVT_DND_FOLDER_DROPPED, &clTreeCtrlPanel::OnFolderDropped, this); + GetTreeCtrl()->AddRoot(_("Folders"), wxNOT_FOUND, wxNOT_FOUND, new clTreeCtrlData(clTreeCtrlData::kRoot)); + GetTreeCtrl()->AssignImageList(m_bmpLoader.MakeStandardMimeImageList()); + + EventNotifier::Get()->Bind(wxEVT_ACTIVE_EDITOR_CHANGED, &clTreeCtrlPanel::OnActiveEditorChanged, this); + EventNotifier::Get()->Bind(wxEVT_INIT_DONE, &clTreeCtrlPanel::OnInitDone, this); + + m_defaultView = new clTreeCtrlPanelDefaultPage(this); + GetSizer()->Add(m_defaultView, 1, wxEXPAND); + GetTreeCtrl()->Hide(); +} + +clTreeCtrlPanel::~clTreeCtrlPanel() +{ + Unbind(wxEVT_DND_FOLDER_DROPPED, &clTreeCtrlPanel::OnFolderDropped, this); + EventNotifier::Get()->Unbind(wxEVT_ACTIVE_EDITOR_CHANGED, &clTreeCtrlPanel::OnActiveEditorChanged, this); + EventNotifier::Get()->Unbind(wxEVT_INIT_DONE, &clTreeCtrlPanel::OnInitDone, this); +} + +void clTreeCtrlPanel::OnContextMenu(wxTreeEvent& event) +{ + wxTreeItemId item = GetTreeCtrl()->GetFocusedItem(); + clTreeCtrlData* cd = GetItemData(item); + + if(cd && cd->IsFolder()) { + // Prepare a folder context menu + wxMenu menu; + + if(IsTopLevelFolder(item)) { + menu.Append(wxID_REFRESH, _("Refresh")); + menu.AppendSeparator(); + } + + menu.Append(XRCID("tree_ctrl_new_folder"), _("New Folder")); + menu.Append(XRCID("tree_ctrl_new_file"), _("New File")); + if(!IsTopLevelFolder(item)) { + menu.AppendSeparator(); + menu.Append(XRCID("tree_ctrl_delete_folder"), _("Delete")); + } + menu.AppendSeparator(); + menu.Append(XRCID("tree_ctrl_find_in_files_folder"), _("Find in Files")); + menu.AppendSeparator(); + menu.Append(XRCID("tree_ctrl_open_containig_folder"), _("Open Containing Folder")); + menu.Append(XRCID("tree_ctrl_open_shell_folder"), _("Open Shell")); + + if(IsTopLevelFolder(item)) { + menu.AppendSeparator(); + menu.Append(XRCID("tree_ctrl_close_folder"), _("Close")); + } + + // Now that we added the basic menu, let the plugin + // adjust it + wxArrayString files, folders; + GetSelections(folders, files); + + clContextMenuEvent dirMenuEvent(wxEVT_CONTEXT_MENU_FOLDER); + dirMenuEvent.SetEventObject(this); + dirMenuEvent.SetMenu(&menu); + dirMenuEvent.SetPath(cd->GetPath()); + EventNotifier::Get()->ProcessEvent(dirMenuEvent); + + // Connect events + menu.Bind(wxEVT_MENU, &clTreeCtrlPanel::OnCloseFolder, this, XRCID("tree_ctrl_close_folder")); + menu.Bind(wxEVT_MENU, &clTreeCtrlPanel::OnNewFolder, this, XRCID("tree_ctrl_new_folder")); + menu.Bind(wxEVT_MENU, &clTreeCtrlPanel::OnNewFile, this, XRCID("tree_ctrl_new_file")); + menu.Bind(wxEVT_MENU, &clTreeCtrlPanel::OnDeleteSelections, this, XRCID("tree_ctrl_delete_folder")); + menu.Bind(wxEVT_MENU, &clTreeCtrlPanel::OnFindInFilesFolder, this, XRCID("tree_ctrl_find_in_files_folder")); + menu.Bind(wxEVT_MENU, &clTreeCtrlPanel::OnOpenContainingFolder, this, XRCID("tree_ctrl_open_containig_folder")); + menu.Bind(wxEVT_MENU, &clTreeCtrlPanel::OnOpenShellFolder, this, XRCID("tree_ctrl_open_shell_folder")); + menu.Bind(wxEVT_MENU, &clTreeCtrlPanel::OnRefresh, this, wxID_REFRESH); + PopupMenu(&menu); + + } else if(cd && cd->IsFile()) { + // File context menu + // Prepare a folder context menu + wxMenu menu; + + menu.Append(XRCID("tree_ctrl_open_file"), _("Open")); + menu.Append(XRCID("tree_ctrl_rename_file"), _("Rename")); + menu.AppendSeparator(); + menu.Append(XRCID("tree_ctrl_open_with_default_app"), _("Open with default application")); + menu.AppendSeparator(); + menu.Append(XRCID("tree_ctrl_delete_file"), _("Delete")); + + menu.AppendSeparator(); + menu.Append(XRCID("tree_ctrl_open_containig_folder"), _("Open Containing Folder")); + menu.Append(XRCID("tree_ctrl_open_shell_folder"), _("Open Shell")); + + // Now that we added the basic menu, let the plugin + // adjust it + wxArrayString files, folders; + GetSelections(folders, files); + + clContextMenuEvent fileMenuEvent(wxEVT_CONTEXT_MENU_FILE); + fileMenuEvent.SetEventObject(this); + fileMenuEvent.SetMenu(&menu); + fileMenuEvent.SetStrings(files); + EventNotifier::Get()->ProcessEvent(fileMenuEvent); + + // Connect events + menu.Bind(wxEVT_MENU, &clTreeCtrlPanel::OnOpenFile, this, XRCID("tree_ctrl_open_file")); + menu.Bind(wxEVT_MENU, &clTreeCtrlPanel::OnRenameFile, this, XRCID("tree_ctrl_rename_file")); + menu.Bind(wxEVT_MENU, &clTreeCtrlPanel::OnDeleteSelections, this, XRCID("tree_ctrl_delete_file")); + menu.Bind( + wxEVT_MENU, &clTreeCtrlPanel::OnOpenWithDefaultApplication, this, XRCID("tree_ctrl_open_with_default_app")); + menu.Bind(wxEVT_MENU, &clTreeCtrlPanel::OnOpenContainingFolder, this, XRCID("tree_ctrl_open_containig_folder")); + menu.Bind(wxEVT_MENU, &clTreeCtrlPanel::OnOpenShellFolder, this, XRCID("tree_ctrl_open_shell_folder")); + + PopupMenu(&menu); + } else { + // context menu elsewhere + wxMenu menu; + menu.Append(XRCID("open_folder_default_page"), _("Open Folder...")); + menu.Bind(wxEVT_MENU, &clTreeCtrlPanel::OnOpenFolder, this, XRCID("open_folder_default_page")); + PopupMenu(&menu); + } +} + +void clTreeCtrlPanel::OnItemActivated(wxTreeEvent& event) +{ + event.Skip(); + wxCommandEvent dummy; + OnOpenFile(dummy); +} + +void clTreeCtrlPanel::OnItemExpanding(wxTreeEvent& event) +{ + event.Skip(); + wxTreeItemId item = event.GetItem(); + CHECK_ITEM_RET(item); + DoExpandItem(item, true); +} + +void clTreeCtrlPanel::OnFolderDropped(clCommandEvent& event) +{ + const wxArrayString& folders = event.GetStrings(); + for(size_t i = 0; i < folders.size(); ++i) { + AddFolder(folders.Item(i)); + } + ::clGetManager()->GetWorkspaceView()->SelectPage(GetViewName()); +} + +void clTreeCtrlPanel::DoExpandItem(const wxTreeItemId& parent, bool expand) +{ + clTreeCtrlData* cd = GetItemData(parent); + CHECK_PTR_RET(cd); + + // we only know how to expand folders... + if(!cd->IsFolder()) return; + wxString folderPath = cd->GetPath(); + + if(!m_treeCtrl->ItemHasChildren(parent)) return; + // Test the first item for dummy + + wxTreeItemIdValue cookie; + wxTreeItemId child = m_treeCtrl->GetFirstChild(parent, cookie); + CHECK_ITEM_RET(child); + + cd = GetItemData(child); + CHECK_PTR_RET(cd); + + // If not dummy - already expanded do nothing here + if(!cd->IsDummy()) return; + + m_treeCtrl->Delete(child); + cd = NULL; + + // Get the top level folders + wxDir dir(folderPath); + if(!dir.IsOpened()) return; + wxBusyCursor bc; + wxString filename; + bool cont = dir.GetFirst(&filename, wxEmptyString); + while(cont) { + wxFileName fullpath(folderPath, filename); + if(wxFileName::DirExists(fullpath.GetFullPath())) { + // a folder + if(!(m_options & kShowHiddenFolders) && FileUtils::IsHidden(fullpath)) { + cont = dir.GetNext(&filename); + continue; + } + DoAddFolder(parent, fullpath.GetFullPath()); + } else { + if(!(m_options & kShowHiddenFiles) && FileUtils::IsHidden(fullpath)) { + cont = dir.GetNext(&filename); + continue; + } + DoAddFile(parent, fullpath.GetFullPath()); + } + cont = dir.GetNext(&filename); + } + + // Sort the parent + if(GetTreeCtrl()->ItemHasChildren(parent)) { + GetTreeCtrl()->SortChildren(parent); + if(expand) { + GetTreeCtrl()->Expand(parent); + } + SelectItem(parent); + } +} + +clTreeCtrlData* clTreeCtrlPanel::GetItemData(const wxTreeItemId& item) +{ + CHECK_ITEM_RET_NULL(item); + clTreeCtrlData* cd = dynamic_cast(m_treeCtrl->GetItemData(item)); + return cd; +} + +void clTreeCtrlPanel::AddFolder(const wxString& path) +{ + wxTreeItemId itemFolder = DoAddFolder(GetTreeCtrl()->GetRootItem(), path); + DoExpandItem(itemFolder, false); + ToggleView(); + GetTreeCtrl()->SortChildren(GetTreeCtrl()->GetRootItem()); +} + +wxTreeItemId clTreeCtrlPanel::DoAddFile(const wxTreeItemId& parent, const wxString& path) +{ + wxFileName filename(path); + clTreeCtrlData* cd = new clTreeCtrlData(clTreeCtrlData::kFile); + cd->SetPath(filename.GetFullPath()); + + int imgIdx = m_bmpLoader.GetMimeImageId(filename.GetFullName()); + if(imgIdx == wxNOT_FOUND) { + imgIdx = m_bmpLoader.GetMimeImageId(FileExtManager::TypeText); + } + wxTreeItemId fileItem = GetTreeCtrl()->AppendItem(parent, filename.GetFullName(), imgIdx, imgIdx, cd); + // Add this entry to the index + clTreeCtrlData* parentData = GetItemData(parent); + if(parentData->GetIndex()) { + parentData->GetIndex()->Add(filename.GetFullName(), fileItem); + } + return fileItem; +} + +wxTreeItemId clTreeCtrlPanel::DoAddFolder(const wxTreeItemId& parent, const wxString& path) +{ + // If we already have this folder opened, dont re-add it + wxArrayString topFolders; + wxArrayTreeItemIds topFoldersItems; + GetTopLevelFolders(topFolders, topFoldersItems); + int where = topFolders.Index(path); + if(where != wxNOT_FOUND) { + return topFoldersItems.Item(where); + } + + // Add the folder + clTreeCtrlData* cd = new clTreeCtrlData(clTreeCtrlData::kFolder); + cd->SetPath(path); + + wxFileName filename(path, ""); + + wxString displayName; + if(filename.GetDirCount() && GetTreeCtrl()->GetRootItem() != parent) { + displayName << filename.GetDirs().Last(); + } else { + displayName << path; + } + int imgIdx = m_bmpLoader.GetMimeImageId(FileExtManager::TypeFolder); + wxTreeItemId itemFolder = GetTreeCtrl()->AppendItem(parent, displayName, imgIdx, imgIdx, cd); + + // Add this entry to the index + clTreeCtrlData* parentData = GetItemData(parent); + if(parentData->GetIndex()) { + parentData->GetIndex()->Add(displayName, itemFolder); + } + + // Append the dummy item + GetTreeCtrl()->AppendItem(itemFolder, "Dummy", -1, -1, new clTreeCtrlData(clTreeCtrlData::kDummy)); + + // Pin this folder + if(GetConfig() && IsTopLevelFolder(itemFolder)) { + wxArrayString pinnedFolders; + pinnedFolders = GetConfig()->Read("ExplorerFolders", pinnedFolders); + int where = pinnedFolders.Index(cd->GetPath()); + if(where == wxNOT_FOUND) { + pinnedFolders.Add(cd->GetPath()); + } + GetConfig()->Write("ExplorerFolders", pinnedFolders); + } + return itemFolder; +} + +void clTreeCtrlPanel::GetSelections(wxArrayString& folders, wxArrayString& files) +{ + wxArrayTreeItemIds d1, d2; + GetSelections(folders, d1, files, d2); +} + +TreeItemInfo clTreeCtrlPanel::GetSelectedItemInfo() +{ + TreeItemInfo info; + wxArrayString folders, files; + GetSelections(folders, files); + + folders.insert(folders.end(), files.begin(), files.end()); + if(folders.empty()) return info; + + info.m_paths = folders; + info.m_item = wxTreeItemId(); + return info; +} + +void clTreeCtrlPanel::OnCloseFolder(wxCommandEvent& event) +{ + wxArrayString paths, files; + wxArrayTreeItemIds items, fileItems; + GetSelections(paths, items, files, fileItems); + + if(items.IsEmpty()) return; + for(size_t i = 0; i < items.GetCount(); ++i) { + DoCloseFolder(items.Item(i)); + } +} + +bool clTreeCtrlPanel::IsTopLevelFolder(const wxTreeItemId& item) +{ + clTreeCtrlData* cd = GetItemData(item); + return (cd && cd->IsFolder() && GetTreeCtrl()->GetItemParent(item) == GetTreeCtrl()->GetRootItem()); +} + +void clTreeCtrlPanel::OnNewFile(wxCommandEvent& event) +{ + wxTreeItemId item = GetTreeCtrl()->GetFocusedItem(); + clTreeCtrlData* cd = GetItemData(item); + CHECK_PTR_RET(cd); + CHECK_COND_RET(cd->IsFolder()); + + wxString filename = + ::clGetTextFromUser(_("New File"), _("Set the file name:"), m_newfileTemplate); + if(filename.IsEmpty()) return; // user cancelled + + wxFileName file(cd->GetPath(), filename); + + // Write the file content + if(!FileUtils::WriteFileContent(file, "")) return; + wxTreeItemId newFile = DoAddFile(item, file.GetFullPath()); + GetTreeCtrl()->SortChildren(item); + // Open the file in the editor + clGetManager()->OpenFile(file.GetFullPath()); + CallAfter(&clTreeCtrlPanel::SelectItem, newFile); +} + +void clTreeCtrlPanel::OnNewFolder(wxCommandEvent& event) +{ + wxTreeItemId item = GetTreeCtrl()->GetFocusedItem(); + clTreeCtrlData* cd = GetItemData(item); + CHECK_PTR_RET(cd); + CHECK_COND_RET(cd->IsFolder()); + + wxString foldername = ::clGetTextFromUser(_("New Folder"), _("Set the folder name:"), "New Folder"); + if(foldername.IsEmpty()) return; // user cancelled + + wxFileName file(cd->GetPath(), ""); + file.AppendDir(foldername); + + // Create the folder + wxFileName::Mkdir(file.GetPath(), wxS_DIR_DEFAULT, wxPATH_MKDIR_FULL); + + // Add it to the tree view + wxTreeItemId newFile = DoAddFolder(item, file.GetPath()); + GetTreeCtrl()->SortChildren(item); + CallAfter(&clTreeCtrlPanel::SelectItem, newFile); +} + +void clTreeCtrlPanel::GetSelections(wxArrayString& folders, + wxArrayTreeItemIds& folderItems, + wxArrayString& files, + wxArrayTreeItemIds& fileItems) +{ + folders.clear(); + files.clear(); + folderItems.clear(); + fileItems.clear(); + + wxArrayTreeItemIds items; + if(GetTreeCtrl()->GetSelections(items)) { + for(size_t i = 0; i < items.size(); ++i) { + clTreeCtrlData* cd = GetItemData(items.Item(i)); + if(cd) { + if(cd->IsFile()) { + files.Add(cd->GetPath()); + fileItems.Add(items.Item(i)); + } else if(cd->IsFolder()) { + folders.Add(cd->GetPath()); + folderItems.Add(items.Item(i)); + } + } + } + } +} + +void clTreeCtrlPanel::SelectItem(const wxTreeItemId& item) +{ + CHECK_ITEM_RET(item); + wxArrayTreeItemIds items; + if(GetTreeCtrl()->GetSelections(items)) { + for(size_t i = 0; i < items.size(); ++i) { + GetTreeCtrl()->SelectItem(items.Item(i), false); + } + } + + GetTreeCtrl()->SelectItem(item); + GetTreeCtrl()->EnsureVisible(item); +} + +struct FileOrFolder { + wxTreeItemId item; + bool folder; + wxString path; +}; + +void clTreeCtrlPanel::OnDeleteSelections(wxCommandEvent& event) +{ + wxArrayString folders, files; + wxArrayTreeItemIds folderItems, fileItems; + GetSelections(folders, folderItems, files, fileItems); + if(files.empty() && folders.empty()) return; + + std::set selectedItems; + std::vector v; + + selectedItems.insert(folderItems.begin(), folderItems.end()); + selectedItems.insert(fileItems.begin(), fileItems.end()); + + // loop over the selections and remove all items that their parents + // also exists in the selected items list + for(size_t i = 0; i < folderItems.size(); ++i) { + wxTreeItemId item = folderItems.Item(i); + bool foundParent = false; + wxTreeItemId itemParent = GetTreeCtrl()->GetItemParent(item); + while(itemParent.IsOk()) { + if(selectedItems.count(itemParent)) { + // item's parent is in the list, don't delete it as it will get deleted + // by its parent + foundParent = true; + break; + } + itemParent = GetTreeCtrl()->GetItemParent(itemParent); + } + + if(!foundParent) { + FileOrFolder fof; + fof.folder = true; + fof.item = item; + fof.path = folders.Item(i); + v.push_back(fof); + } + } + + for(size_t i = 0; i < fileItems.size(); ++i) { + wxTreeItemId item = fileItems.Item(i); + bool foundParent = false; + wxTreeItemId itemParent = GetTreeCtrl()->GetItemParent(item); + while(itemParent.IsOk()) { + if(selectedItems.count(itemParent)) { + // item's parent is in the list, don't delete it as it will get deleted + // by its parent + foundParent = true; + break; + } + itemParent = GetTreeCtrl()->GetItemParent(itemParent); + } + + if(!foundParent) { + FileOrFolder fof; + fof.folder = false; + fof.item = item; + fof.path = files.Item(i); + v.push_back(fof); + } + } + + // At this point "v" contains a unique list of items to delete + // the items in "v" have no common parent + wxString message; + message << _("Are you sure you want to delete the selected items?"); + + wxRichMessageDialog dialog(EventNotifier::Get()->TopFrame(), + message, + _("Confirm"), + wxYES_NO | wxCANCEL | wxNO_DEFAULT | wxCENTER | wxICON_WARNING); + + wxWindowUpdateLocker locker(GetTreeCtrl()); + wxArrayTreeItemIds deletedItems; + if(dialog.ShowModal() == wxID_YES) { + wxLogNull nl; + for(size_t i = 0; i < v.size(); ++i) { + if(v.at(i).folder) { + if(wxFileName::Rmdir(v.at(i).path, wxPATH_RMDIR_RECURSIVE)) { + deletedItems.Add(v.at(i).item); + } + } else { + if(::wxRemoveFile(v.at(i).path)) { + deletedItems.Add(v.at(i).item); + } + } + } + } + + // Update the UI + for(size_t i = 0; i < deletedItems.size(); ++i) { + // Before we delete the item from the tree, update the parent cache + UpdateItemDeleted(deletedItems.Item(i)); + // And now remove the item from the tree + GetTreeCtrl()->Delete(deletedItems.Item(i)); + } +} + +void clTreeCtrlPanel::OnOpenFile(wxCommandEvent& event) +{ + wxArrayString folders, files; + GetSelections(folders, files); + + for(size_t i = 0; i < files.size(); ++i) { + clGetManager()->OpenFile(files.Item(i)); + } +} + +void clTreeCtrlPanel::OnRenameFile(wxCommandEvent& event) +{ + wxArrayString files, folders; + wxArrayTreeItemIds fileItems, folderItems; + GetSelections(folders, folderItems, files, fileItems); + + if(files.empty()) return; + + // Prompt and rename each file + for(size_t i = 0; i < files.size(); ++i) { + wxFileName oldname(files.Item(i)); + + wxString newname = + ::clGetTextFromUser(_("Rename File"), _("New Name:"), oldname.GetFullName(), wxStrlen(oldname.GetName())); + if(!newname.IsEmpty() && (newname != oldname.GetFullName())) { + clTreeCtrlData* d = GetItemData(fileItems.Item(i)); + if(d) { + wxFileName oldpath = d->GetPath(); + wxFileName newpath = oldpath; + newpath.SetFullName(newname); + if(::wxRenameFile(oldpath.GetFullPath(), newpath.GetFullPath(), false)) { + DoRenameItem(fileItems.Item(i), oldname.GetFullName(), newname); + } + } + } + } +} + +bool clTreeCtrlPanel::ExpandToFile(const wxFileName& filename) +{ + wxArrayString topFolders; + wxArrayTreeItemIds topFoldersItems; + GetTopLevelFolders(topFolders, topFoldersItems); + + int where = wxNOT_FOUND; + wxString fullpath = filename.GetFullPath(); + for(size_t i = 0; i < topFolders.size(); ++i) { + if(fullpath.StartsWith(topFolders.Item(i))) { + where = i; + break; + } + } + + // Could not find a folder that matches the filename + if(where == wxNOT_FOUND) return false; + wxString topFolder = topFolders.Item(where); + wxTreeItemId closestItem = topFoldersItems.Item(where); + fullpath.Remove(0, topFolder.length()); + wxFileName left(fullpath); + + wxArrayString parts = left.GetDirs(); + parts.Add(filename.GetFullName()); + clTreeCtrlData* d = GetItemData(closestItem); + while(!parts.IsEmpty()) { + if(!d->GetIndex()) return false; // ?? + wxTreeItemId child = d->GetIndex()->Find(parts.Item(0)); + if(!child.IsOk()) { + // Probably the this folder was not expanded just yet... + if(d->IsFolder()) { + DoExpandItem(closestItem, true); + // Try again + child = d->GetIndex()->Find(parts.Item(0)); + if(!child.IsOk()) { + return false; + } + } + } + closestItem = child; + d = GetItemData(closestItem); + parts.RemoveAt(0); + } + + if(parts.IsEmpty()) { + // we found our file! + SelectItem(closestItem); + return true; + } + return false; +} + +void clTreeCtrlPanel::GetTopLevelFolders(wxArrayString& paths, wxArrayTreeItemIds& items) +{ + wxTreeItemIdValue cookie; + wxTreeItemId child = GetTreeCtrl()->GetFirstChild(GetTreeCtrl()->GetRootItem(), cookie); + while(child.IsOk()) { + clTreeCtrlData* clientData = GetItemData(child); + paths.Add(clientData->GetPath()); + items.Add(child); + child = GetTreeCtrl()->GetNextChild(GetTreeCtrl()->GetRootItem(), cookie); + } +} + +void clTreeCtrlPanel::OnActiveEditorChanged(wxCommandEvent& event) +{ + event.Skip(); + if(clGetManager()->GetActiveEditor()) { + ExpandToFile(clGetManager()->GetActiveEditor()->GetFileName()); + } +} + +void clTreeCtrlPanel::UpdateItemDeleted(const wxTreeItemId& item) +{ + wxTreeItemId parent = GetTreeCtrl()->GetItemParent(item); + CHECK_ITEM_RET(parent); + + clTreeCtrlData* parentData = GetItemData(parent); + wxString text = GetTreeCtrl()->GetItemText(item); + + // Update the parent cache + if(parentData->GetIndex()) { + parentData->GetIndex()->Delete(text); + } +} + +void clTreeCtrlPanel::DoRenameItem(const wxTreeItemId& item, const wxString& oldname, const wxString& newname) +{ + // Update the UI + client data + clTreeCtrlData* d = GetItemData(item); + if(d->IsFile()) { + wxFileName fn(d->GetPath()); + fn.SetFullName(newname); + d->SetPath(fn.GetFullPath()); + } else if(d->IsFolder()) { + // FIXME: + } + + GetTreeCtrl()->SetItemText(item, newname); + + // Update the parent's cache + wxTreeItemId parent = GetTreeCtrl()->GetItemParent(item); + CHECK_ITEM_RET(parent); + clTreeCtrlData* parentData = GetItemData(parent); + + // Update the parent cache + if(parentData->GetIndex()) { + parentData->GetIndex()->Delete(oldname); + parentData->GetIndex()->Add(newname, item); + } +} + +void clTreeCtrlPanel::OnFindInFilesFolder(wxCommandEvent& event) +{ + wxArrayString folders, files; + GetSelections(folders, files); + + if(folders.IsEmpty()) return; + clGetManager()->OpenFindInFileForPaths(folders); +} + +void clTreeCtrlPanel::OnOpenContainingFolder(wxCommandEvent& event) +{ + wxTreeItemId item = GetTreeCtrl()->GetFocusedItem(); + clTreeCtrlData* cd = GetItemData(item); + + if(cd && cd->IsFolder()) { + FileUtils::OpenFileExplorer(cd->GetPath()); + } else if(cd && cd->IsFile()) { + wxFileName fn(cd->GetPath()); + FileUtils::OpenFileExplorerAndSelect(fn); + } +} + +void clTreeCtrlPanel::OnOpenShellFolder(wxCommandEvent& event) +{ + wxTreeItemId item = GetTreeCtrl()->GetFocusedItem(); + clTreeCtrlData* cd = GetItemData(item); + + if(cd && cd->IsFolder()) { + FileUtils::OpenTerminal(cd->GetPath()); + } else if(cd && cd->IsFile()) { + wxFileName fn(cd->GetPath()); + FileUtils::OpenTerminal(fn.GetPath()); + } +} + +void clTreeCtrlPanel::OnInitDone(wxCommandEvent& event) +{ + event.Skip(); + + if(GetConfig()) { + wxArrayString pinnedFolders; + pinnedFolders = GetConfig()->Read("ExplorerFolders", pinnedFolders); + for(size_t i = 0; i < pinnedFolders.size(); ++i) { + AddFolder(pinnedFolders.Item(i)); + } + } +} + +void clTreeCtrlPanel::Clear() +{ + wxTreeItemIdValue cookie; + wxTreeItemId item = GetTreeCtrl()->GetFirstChild(GetTreeCtrl()->GetRootItem(), cookie); + while(item.IsOk()) { + DoCloseFolder(item); + item = GetTreeCtrl()->GetNextChild(GetTreeCtrl()->GetRootItem(), cookie); + } +} + +void clTreeCtrlPanel::DoCloseFolder(const wxTreeItemId& item) +{ + CHECK_ITEM_RET(item); + if(!IsTopLevelFolder(item)) return; + + if(GetConfig()) { + // If this folder is a pinned one, remove it + wxArrayString pinnedFolders; + pinnedFolders = GetConfig()->Read("ExplorerFolders", pinnedFolders); + clTreeCtrlData* d = GetItemData(item); + int where = pinnedFolders.Index(d->GetPath()); + if(where != wxNOT_FOUND) { + pinnedFolders.RemoveAt(where); + } + GetConfig()->Write("ExplorerFolders", pinnedFolders); + } + // Now, delete the item + GetTreeCtrl()->Delete(item); + + ToggleView(); +} + +void clTreeCtrlPanel::ToggleView() +{ + wxArrayString paths; + wxArrayTreeItemIds items; + GetTopLevelFolders(paths, items); + + if(paths.IsEmpty()) { + GetTreeCtrl()->Hide(); + m_defaultView->Show(); + } else { + GetTreeCtrl()->Show(); + m_defaultView->Hide(); + } + GetSizer()->Layout(); +} + +void clTreeCtrlPanel::OnRefresh(wxCommandEvent& event) +{ + wxArrayString paths, files; + wxArrayTreeItemIds items, fileItems; + GetSelections(paths, items, files, fileItems); + if(items.IsEmpty()) return; + + // Close the selected folders + std::vector > topFolders; + for(size_t i = 0; i < items.GetCount(); ++i) { + topFolders.push_back(std::make_pair(paths.Item(i), GetTreeCtrl()->IsExpanded(items.Item(i)))); + DoCloseFolder(items.Item(i)); + } + + // Re-add them + for(size_t i = 0; i < topFolders.size(); ++i) { + wxTreeItemId itemFolder = DoAddFolder(GetTreeCtrl()->GetRootItem(), topFolders.at(i).first); + DoExpandItem(itemFolder, topFolders.at(i).second); + } + GetTreeCtrl()->SortChildren(GetTreeCtrl()->GetRootItem()); + ToggleView(); +} + +void clTreeCtrlPanel::SetNewFileTemplate(const wxString& newfile, size_t charsToHighlight) +{ + m_newfileTemplate = newfile; + m_newfileTemplateHighlightLen = charsToHighlight; +} + +void clTreeCtrlPanel::OnOpenFolder(wxCommandEvent& event) +{ + wxCommandEvent eventOpenFolder(wxEVT_MENU, XRCID("open_folder")); + wxTheApp->GetTopWindow()->GetEventHandler()->AddPendingEvent(eventOpenFolder); +} + +void clTreeCtrlPanel::OnOpenWithDefaultApplication(wxCommandEvent& event) +{ + wxArrayString folders, files; + GetSelections(folders, files); + + for(size_t i = 0; i < files.size(); ++i) { + ::wxLaunchDefaultApplication(files.Item(i)); + } +} diff -Nru codelite-8.0.1+dfsg2/Plugin/clTreeCtrlPanelDefaultPage.cpp codelite-9.0+dfsg/Plugin/clTreeCtrlPanelDefaultPage.cpp --- codelite-8.0.1+dfsg2/Plugin/clTreeCtrlPanelDefaultPage.cpp 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/clTreeCtrlPanelDefaultPage.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,26 @@ +#include "clTreeCtrlPanelDefaultPage.h" +#include "clFileOrFolderDropTarget.h" +#include +#include + +clTreeCtrlPanelDefaultPage::clTreeCtrlPanelDefaultPage(wxWindow* parent) + : clTreeCtrlPanelDefaultPageBase(parent) +{ + SetDropTarget(new clFileOrFolderDropTarget(parent)); +} + +clTreeCtrlPanelDefaultPage::~clTreeCtrlPanelDefaultPage() {} + +void clTreeCtrlPanelDefaultPage::OnDefaultPageContextMenu(wxContextMenuEvent& event) +{ + wxMenu menu; + menu.Append(XRCID("open_folder_default_page"), _("Open Folder...")); + menu.Bind(wxEVT_MENU, &clTreeCtrlPanelDefaultPage::OnOpenFolder, this, XRCID("open_folder_default_page")); + PopupMenu(&menu); +} + +void clTreeCtrlPanelDefaultPage::OnOpenFolder(wxCommandEvent& event) +{ + wxCommandEvent eventOpenFolder(wxEVT_MENU, XRCID("open_folder")); + wxTheApp->GetTopWindow()->GetEventHandler()->AddPendingEvent(eventOpenFolder); +} diff -Nru codelite-8.0.1+dfsg2/Plugin/clTreeCtrlPanelDefaultPage.h codelite-9.0+dfsg/Plugin/clTreeCtrlPanelDefaultPage.h --- codelite-8.0.1+dfsg2/Plugin/clTreeCtrlPanelDefaultPage.h 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/clTreeCtrlPanelDefaultPage.h 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,15 @@ +#ifndef CLTREECTRLPANELDEFAULTPAGE_H +#define CLTREECTRLPANELDEFAULTPAGE_H +#include "wxcrafter_plugin.h" + +class clTreeCtrlPanelDefaultPage : public clTreeCtrlPanelDefaultPageBase +{ +public: + clTreeCtrlPanelDefaultPage(wxWindow* parent); + virtual ~clTreeCtrlPanelDefaultPage(); + +protected: + virtual void OnDefaultPageContextMenu(wxContextMenuEvent& event); + void OnOpenFolder(wxCommandEvent& event); +}; +#endif // CLTREECTRLPANELDEFAULTPAGE_H diff -Nru codelite-8.0.1+dfsg2/Plugin/clTreeCtrlPanel.h codelite-9.0+dfsg/Plugin/clTreeCtrlPanel.h --- codelite-8.0.1+dfsg2/Plugin/clTreeCtrlPanel.h 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/clTreeCtrlPanel.h 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,134 @@ +#ifndef CLTREECTRLPANEL_H +#define CLTREECTRLPANEL_H + +#include "wxcrafter_plugin.h" +#include "bitmap_loader.h" +#include "cl_command_event.h" +#include "clFileViwerTreeCtrl.h" +#include +#include "cl_config.h" + +class clTreeCtrlPanelDefaultPage; +class WXDLLIMPEXP_SDK clTreeCtrlPanel : public clTreeCtrlPanelBase +{ +protected: + BitmapLoader m_bmpLoader; + clConfig* m_config; + wxString m_viewName; + clTreeCtrlPanelDefaultPage* m_defaultView; + wxString m_newfileTemplate; + size_t m_newfileTemplateHighlightLen; + size_t m_options; + +public: + enum { + kShowHiddenFiles = (1 << 0), + kShowHiddenFolders = (1 << 1), + }; + +protected: + void ToggleView(); + +public: + clTreeCtrlPanel(wxWindow* parent); + virtual ~clTreeCtrlPanel(); + + /** + * @brief set the tree options + */ + void SetOptions(size_t options) { m_options = options; } + + /** + * @brief set the new file template (default is "Untitled.txt") + */ + void SetNewFileTemplate(const wxString& newfile, size_t charsToHighlight); + + void SetViewName(const wxString& viewName) { this->m_viewName = viewName; } + const wxString& GetViewName() const { return m_viewName; } + + clConfig* GetConfig() { return m_config; } + + /** + * @brief clear the view (i.e. close all top level folders) + */ + void Clear(); + + /** + * @brief return the configuration tool used for storing information about + * this tree. Override it to provide a custom configuration tool + */ + void SetConfig(clConfig* config) { this->m_config = config; } + + /** + * @brief add top level folder + */ + void AddFolder(const wxString& path); + + /** + * @brief return an info about the selected items in the tree + * @return + */ + TreeItemInfo GetSelectedItemInfo(); + + /** + * @brief return 2 arrays of the selected items + * @param folders [output] + * @param files [output] + */ + void GetSelections(wxArrayString& folders, wxArrayString& files); + + /** + * @brief select a given filename in the tree. Expand the tree if needed + */ + bool ExpandToFile(const wxFileName& filename); + +protected: + void UpdateItemDeleted(const wxTreeItemId& item); + void GetTopLevelFolders(wxArrayString& paths, wxArrayTreeItemIds& items); + + /** + * @brief ensure that item is selected (single selection) + */ + void SelectItem(const wxTreeItemId& item); + /** + * @brief return list of selected files and folders. In addition return the + * tree ctrl items. You can always assume that the folders and the folderItems are of the same + * size. Same for the file arrays + */ + void GetSelections(wxArrayString& folders, + wxArrayTreeItemIds& folderItems, + wxArrayString& files, + wxArrayTreeItemIds& fileItems); + + // Make the event handler functions virtual + // so any subclass could override them + virtual void OnActiveEditorChanged(wxCommandEvent& event); + virtual void OnInitDone(wxCommandEvent& event); + virtual void OnContextMenu(wxTreeEvent& event); + virtual void OnItemActivated(wxTreeEvent& event); + virtual void OnItemExpanding(wxTreeEvent& event); + virtual void OnCloseFolder(wxCommandEvent& event); + virtual void OnNewFolder(wxCommandEvent& event); + virtual void OnNewFile(wxCommandEvent& event); + virtual void OnOpenFile(wxCommandEvent& event); + virtual void OnOpenWithDefaultApplication(wxCommandEvent& event); + virtual void OnRenameFile(wxCommandEvent& event); + virtual void OnDeleteSelections(wxCommandEvent& event); + virtual void OnFindInFilesFolder(wxCommandEvent& event); + virtual void OnOpenContainingFolder(wxCommandEvent& event); + virtual void OnOpenShellFolder(wxCommandEvent& event); + virtual void OnFolderDropped(clCommandEvent& event); + virtual void OnRefresh(wxCommandEvent& event); + void OnOpenFolder(wxCommandEvent& event); + // Helpers + void DoExpandItem(const wxTreeItemId& parent, bool expand); + void DoRenameItem(const wxTreeItemId& item, const wxString& oldname, const wxString& newname); + + bool IsTopLevelFolder(const wxTreeItemId& item); + + clTreeCtrlData* GetItemData(const wxTreeItemId& item); + wxTreeItemId DoAddFolder(const wxTreeItemId& parent, const wxString& path); + wxTreeItemId DoAddFile(const wxTreeItemId& parent, const wxString& path); + void DoCloseFolder(const wxTreeItemId& item); +}; +#endif // CLTREECTRLPANEL_H diff -Nru codelite-8.0.1+dfsg2/Plugin/cl_treelistctrl.cpp codelite-9.0+dfsg/Plugin/cl_treelistctrl.cpp --- codelite-8.0.1+dfsg2/Plugin/cl_treelistctrl.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/cl_treelistctrl.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,28 +1,28 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2014 The CodeLite Team -// file name : cl_treelistctrl.cpp -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - +////////////////////////////////////////////////////////////////////////////// +////////////////////////////////////////////////////////////////////////////// +// +// copyright : (C) 2014 The CodeLite Team +// file name : cl_treelistctrl.cpp +// +// ------------------------------------------------------------------------- +// A +// _____ _ _ _ _ +// / __ \ | | | | (_) | +// | / \/ ___ __| | ___| | _| |_ ___ +// | | / _ \ / _ |/ _ \ | | | __/ _ ) +// | \__/\ (_) | (_| | __/ |___| | || __/ +// \____/\___/ \__,_|\___\_____/_|\__\___| +// +// F i l e +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// +////////////////////////////////////////////////////////////////////////////// +////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////////////// // Name: cl_treelistctrl.cpp (was treelistctrl.cpp pre-nameclash) // Purpose: multi column tree control implementation @@ -60,6 +60,10 @@ #include "codelite_exports.h" #include "drawingutils.h" +#ifdef __WXMSW__ +#include +#endif + #ifdef __WXMAC__ #if wxVERSION_NUMBER < 2900 #include "wx/mac/private.h" @@ -68,23 +72,21 @@ #include "cl_treelistctrl.h" -#include // only required for debugging purpose - +#include // only required for debugging purpose // --------------------------------------------------------------------------- // array types // --------------------------------------------------------------------------- -class clTreeListItem; +class clTreeListItem; -WX_DEFINE_ARRAY_PTR(clTreeListItem *, clArrayTreeListItems); +WX_DEFINE_ARRAY_PTR(clTreeListItem*, clArrayTreeListItems); #include WX_DECLARE_OBJARRAY(clTreeListColumnInfo, clArrayTreeListColumnInfo); #include WX_DEFINE_OBJARRAY(clArrayTreeListColumnInfo); - // -------------------------------------------------------------------------- // constants // -------------------------------------------------------------------------- @@ -99,11 +101,11 @@ static const int BTNHEIGHT = 9; static const int EXTRA_WIDTH = 4; static const int EXTRA_HEIGHT = 4; -static const int HEADER_OFFSET_X = 0; // changed from 1 to 0 on 2009.03.10 for Windows (other OS untested) +static const int HEADER_OFFSET_X = 0; // changed from 1 to 0 on 2009.03.10 for Windows (other OS untested) static const int HEADER_OFFSET_Y = 1; -static const int DRAG_TIMER_TICKS = 250; // minimum drag wait time in ms -static const int FIND_TIMER_TICKS = 500; // minimum find wait time in ms +static const int DRAG_TIMER_TICKS = 250; // minimum drag wait time in ms +static const int FIND_TIMER_TICKS = 500; // minimum find wait time in ms static const int RENAME_TIMER_TICKS = 250; // minimum rename wait time in ms const wxChar* clTreeListCtrlNameStr = _T("treelistctrl"); @@ -123,9 +125,9 @@ class WXDLLIMPEXP_SDK clTreeListHeaderWindow : public wxWindow { protected: - clTreeListMainWindow *m_owner; - const wxCursor *m_currentCursor; - const wxCursor *m_resizeCursor; + clTreeListMainWindow* m_owner; + const wxCursor* m_currentCursor; + const wxCursor* m_resizeCursor; bool m_isDragging; // column being resized @@ -153,24 +155,28 @@ public: clTreeListHeaderWindow(); - clTreeListHeaderWindow( wxWindow *win, - wxWindowID id, - clTreeListMainWindow *owner, - const wxPoint &pos = wxDefaultPosition, - const wxSize &size = wxDefaultSize, - long style = 0, - const wxString &name = _T("wxtreelistctrlcolumntitles") ); + clTreeListHeaderWindow(wxWindow* win, + wxWindowID id, + clTreeListMainWindow* owner, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = 0, + const wxString& name = _T("wxtreelistctrlcolumntitles")); virtual ~clTreeListHeaderWindow(); - void DoDrawRect( wxDC *dc, int x, int y, int w, int h ); + void DoDrawRect(wxDC* dc, int x, int y, int w, int h); void DrawCurrent(); void AdjustDC(wxDC& dc); - void OnPaint( wxPaintEvent &event ); - void OnEraseBackground(wxEraseEvent& WXUNUSED(event)) { ;; } // reduce flicker - void OnMouse( wxMouseEvent &event ); - void OnSetFocus( wxFocusEvent &event ); + void OnPaint(wxPaintEvent& event); + void OnEraseBackground(wxEraseEvent& WXUNUSED(event)) + { + ; + ; + } // reduce flicker + void OnMouse(wxMouseEvent& event); + void OnSetFocus(wxFocusEvent& event); // total width of all columns int GetWidth() const { return m_total_col_width; } @@ -178,63 +184,63 @@ // column manipulation int GetColumnCount() const { return (int)m_columns.GetCount(); } - void AddColumn (const clTreeListColumnInfo& colInfo); + void AddColumn(const clTreeListColumnInfo& colInfo); - void InsertColumn (int before, const clTreeListColumnInfo& colInfo); + void InsertColumn(int before, const clTreeListColumnInfo& colInfo); - void RemoveColumn (int column); + void RemoveColumn(int column); // column information manipulation - const clTreeListColumnInfo& GetColumn (int column) const{ - wxCHECK_MSG ((column >= 0) && (column < GetColumnCount()), - wxInvalidTreeListColumnInfo, _T("Invalid column")); + const clTreeListColumnInfo& GetColumn(int column) const + { + wxCHECK_MSG((column >= 0) && (column < GetColumnCount()), wxInvalidTreeListColumnInfo, _T("Invalid column")); return m_columns[column]; } - clTreeListColumnInfo& GetColumn (int column) { - wxCHECK_MSG ((column >= 0) && (column < GetColumnCount()), - wxInvalidTreeListColumnInfo, _T("Invalid column")); + clTreeListColumnInfo& GetColumn(int column) + { + wxCHECK_MSG((column >= 0) && (column < GetColumnCount()), wxInvalidTreeListColumnInfo, _T("Invalid column")); return m_columns[column]; } - void SetColumn (int column, const clTreeListColumnInfo& info); + void SetColumn(int column, const clTreeListColumnInfo& info); - wxString GetColumnText (int column) const { - wxCHECK_MSG ((column >= 0) && (column < GetColumnCount()), - wxEmptyString, _T("Invalid column")); + wxString GetColumnText(int column) const + { + wxCHECK_MSG((column >= 0) && (column < GetColumnCount()), wxEmptyString, _T("Invalid column")); return m_columns[column].GetText(); } - void SetColumnText (int column, const wxString& text) { - wxCHECK_RET ((column >= 0) && (column < GetColumnCount()), - _T("Invalid column")); - m_columns[column].SetText (text); + void SetColumnText(int column, const wxString& text) + { + wxCHECK_RET((column >= 0) && (column < GetColumnCount()), _T("Invalid column")); + m_columns[column].SetText(text); } - int GetColumnAlignment (int column) const { - wxCHECK_MSG ((column >= 0) && (column < GetColumnCount()), - wxALIGN_LEFT, _T("Invalid column")); + int GetColumnAlignment(int column) const + { + wxCHECK_MSG((column >= 0) && (column < GetColumnCount()), wxALIGN_LEFT, _T("Invalid column")); return m_columns[column].GetAlignment(); } - void SetColumnAlignment (int column, int flag) { - wxCHECK_RET ((column >= 0) && (column < GetColumnCount()), - _T("Invalid column")); - m_columns[column].SetAlignment (flag); + void SetColumnAlignment(int column, int flag) + { + wxCHECK_RET((column >= 0) && (column < GetColumnCount()), _T("Invalid column")); + m_columns[column].SetAlignment(flag); } - int GetColumnWidth (int column) const { - wxCHECK_MSG ((column >= 0) && (column < GetColumnCount()), - -1, _T("Invalid column")); + int GetColumnWidth(int column) const + { + wxCHECK_MSG((column >= 0) && (column < GetColumnCount()), -1, _T("Invalid column")); return m_columns[column].GetWidth(); } - void SetColumnWidth (int column, int width); + void SetColumnWidth(int column, int width); - bool IsColumnEditable (int column) const { - wxCHECK_MSG ((column >= 0) && (column < GetColumnCount()), - false, _T("Invalid column")); + bool IsColumnEditable(int column) const + { + wxCHECK_MSG((column >= 0) && (column < GetColumnCount()), false, _T("Invalid column")); return m_columns[column].IsEditable(); } - bool IsColumnShown (int column) const { - wxCHECK_MSG ((column >= 0) && (column < GetColumnCount()), - true, _T("Invalid column")); + bool IsColumnShown(int column) const + { + wxCHECK_MSG((column >= 0) && (column < GetColumnCount()), true, _T("Invalid column")); return m_columns[column].IsShown(); } @@ -250,40 +256,40 @@ DECLARE_EVENT_TABLE() }; - //----------------------------------------------------------------------------- // wxTreeListMainWindow (internal) //----------------------------------------------------------------------------- class clEditTextCtrl; - // this is the "true" control -class WXDLLIMPEXP_SDK clTreeListMainWindow: public wxScrolledWindow +class WXDLLIMPEXP_SDK clTreeListMainWindow : public wxScrolledWindow { public: // creation // -------- clTreeListMainWindow() { Init(); } - clTreeListMainWindow (clTreeListCtrl *parent, wxWindowID id = -1, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxTR_DEFAULT_STYLE, - const wxValidator &validator = wxDefaultValidator, - const wxString& name = _T("wxtreelistmainwindow")) + clTreeListMainWindow(clTreeListCtrl* parent, + wxWindowID id = -1, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = wxTR_DEFAULT_STYLE, + const wxValidator& validator = wxDefaultValidator, + const wxString& name = _T("wxtreelistmainwindow")) { Init(); - Create (parent, id, pos, size, style, validator, name); + Create(parent, id, pos, size, style, validator, name); } virtual ~clTreeListMainWindow(); - bool Create(clTreeListCtrl *parent, wxWindowID id = -1, + bool Create(clTreeListCtrl* parent, + wxWindowID id = -1, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxTR_DEFAULT_STYLE, - const wxValidator &validator = wxDefaultValidator, + const wxValidator& validator = wxDefaultValidator, const wxString& name = _T("wxtreelistctrl")); // accessors @@ -317,20 +323,20 @@ // Additionally, the application might choose to show a state icon // which corresponds to an app-defined item state (for example, // checked/unchecked) which are taken from the state image list. - wxImageList *GetImageList() const { return m_imageListNormal; } - wxImageList *GetStateImageList() const { return m_imageListState; } - wxImageList *GetButtonsImageList() const { return m_imageListButtons; } - - void SetImageList(wxImageList *imageList); - void SetStateImageList(wxImageList *imageList); - void SetButtonsImageList(wxImageList *imageList); - void AssignImageList(wxImageList *imageList); - void AssignStateImageList(wxImageList *imageList); - void AssignButtonsImageList(wxImageList *imageList); + wxImageList* GetImageList() const { return m_imageListNormal; } + wxImageList* GetStateImageList() const { return m_imageListState; } + wxImageList* GetButtonsImageList() const { return m_imageListButtons; } + + void SetImageList(wxImageList* imageList); + void SetStateImageList(wxImageList* imageList); + void SetButtonsImageList(wxImageList* imageList); + void AssignImageList(wxImageList* imageList); + void AssignStateImageList(wxImageList* imageList); + void AssignButtonsImageList(wxImageList* imageList); void SetToolTip(const wxString& tip); - void SetToolTip(wxToolTip *tip); - void SetItemToolTip(const wxTreeItemId& item, const wxString &tip); + void SetToolTip(wxToolTip* tip); + void SetItemToolTip(const wxTreeItemId& item, const wxString& tip); // Functions to work with tree ctrl items. @@ -338,20 +344,19 @@ // --------- // retrieve item's label - const wxString& GetItemText (const wxTreeItemId& item) const - { return GetItemText (item, GetMainColumn()); } - const wxString& GetItemText (const wxTreeItemId& item, int column) const; - const wxString& GetItemText (wxTreeItemData* item, int column) const; + const wxString& GetItemText(const wxTreeItemId& item) const { return GetItemText(item, GetMainColumn()); } + const wxString& GetItemText(const wxTreeItemId& item, int column) const; + const wxString& GetItemText(wxTreeItemData* item, int column) const; // get one of the images associated with the item (normal by default) - int GetItemImage (const wxTreeItemId& item, - wxTreeItemIcon which = wxTreeItemIcon_Normal) const - { return GetItemImage (item, GetMainColumn(), which); } - int GetItemImage (const wxTreeItemId& item, int column, - wxTreeItemIcon which = wxTreeItemIcon_Normal) const; + int GetItemImage(const wxTreeItemId& item, wxTreeItemIcon which = wxTreeItemIcon_Normal) const + { + return GetItemImage(item, GetMainColumn(), which); + } + int GetItemImage(const wxTreeItemId& item, int column, wxTreeItemIcon which = wxTreeItemIcon_Normal) const; // get the data associated with the item - wxTreeItemData *GetItemData(const wxTreeItemId& item) const; + wxTreeItemData* GetItemData(const wxTreeItemId& item) const; bool GetItemBold(const wxTreeItemId& item) const; wxColour GetItemTextColour(const wxTreeItemId& item) const; @@ -362,19 +367,18 @@ // --------- // set item's label - void SetItemText (const wxTreeItemId& item, const wxString& text) - { SetItemText (item, GetMainColumn(), text); } - void SetItemText (const wxTreeItemId& item, int column, const wxString& text); + void SetItemText(const wxTreeItemId& item, const wxString& text) { SetItemText(item, GetMainColumn(), text); } + void SetItemText(const wxTreeItemId& item, int column, const wxString& text); // get one of the images associated with the item (normal by default) - void SetItemImage (const wxTreeItemId& item, int image, - wxTreeItemIcon which = wxTreeItemIcon_Normal) - { SetItemImage (item, GetMainColumn(), image, which); } - void SetItemImage (const wxTreeItemId& item, int column, int image, - wxTreeItemIcon which = wxTreeItemIcon_Normal); + void SetItemImage(const wxTreeItemId& item, int image, wxTreeItemIcon which = wxTreeItemIcon_Normal) + { + SetItemImage(item, GetMainColumn(), image, which); + } + void SetItemImage(const wxTreeItemId& item, int column, int image, wxTreeItemIcon which = wxTreeItemIcon_Normal); // associate some data with the item - void SetItemData(const wxTreeItemId& item, wxTreeItemData *data); + void SetItemData(const wxTreeItemId& item, wxTreeItemData* data); // force appearance of [+] button near the item. This is useful to // allow the user to expand the items which don't have any children now @@ -395,7 +399,7 @@ void SetItemFont(const wxTreeItemId& item, const wxFont& font); // set the window font - virtual bool SetFont( const wxFont &font ); + virtual bool SetFont(const wxFont& font); // set the styles. No need to specify a GetWindowStyle here since // the base wxWindow member function will do it for us @@ -414,7 +418,7 @@ bool IsSelected(const wxTreeItemId& item) const; // is item text in bold font? bool IsBold(const wxTreeItemId& item) const; - // does the layout include space for a button? + // does the layout include space for a button? // number of children // ------------------ @@ -429,7 +433,7 @@ // wxTreeItemId.IsOk() will return false if there is no such item // get the root tree item - wxTreeItemId GetRootItem() const { return m_rootItem; } // implict cast from wxTreeListItem * + wxTreeItemId GetRootItem() const { return m_rootItem; } // implict cast from wxTreeListItem * // get the item currently selected, only if a single item is selected wxTreeItemId GetSelection() const { return m_selectItem; } @@ -440,14 +444,14 @@ // get the parent of this item (may return NULL if root) wxTreeItemId GetItemParent(const wxTreeItemId& item) const; - // for this enumeration function you must pass in a "cookie" parameter - // which is opaque for the application but is necessary for the library - // to make these functions reentrant (i.e. allow more than one - // enumeration on one and the same object simultaneously). Of course, - // the "cookie" passed to GetFirstChild() and GetNextChild() should be - // the same! +// for this enumeration function you must pass in a "cookie" parameter +// which is opaque for the application but is necessary for the library +// to make these functions reentrant (i.e. allow more than one +// enumeration on one and the same object simultaneously). Of course, +// the "cookie" passed to GetFirstChild() and GetNextChild() should be +// the same! - // get child of this item +// get child of this item #if !wxCHECK_VERSION(2, 5, 0) wxTreeItemId GetFirstChild(const wxTreeItemId& item, long& cookie) const; wxTreeItemId GetNextChild(const wxTreeItemId& item, long& cookie) const; @@ -474,44 +478,46 @@ wxTreeItemId GetPrevExpanded(const wxTreeItemId& item) const; // get visible item, see IsVisible() - wxTreeItemId GetFirstVisible( bool fullRow, bool within) const; - wxTreeItemId GetNextVisible (const wxTreeItemId& item, bool fullRow, bool within) const; - wxTreeItemId GetPrevVisible (const wxTreeItemId& item, bool fullRow, bool within) const; - wxTreeItemId GetLastVisible ( bool fullRow, bool within) const; + wxTreeItemId GetFirstVisible(bool fullRow, bool within) const; + wxTreeItemId GetNextVisible(const wxTreeItemId& item, bool fullRow, bool within) const; + wxTreeItemId GetPrevVisible(const wxTreeItemId& item, bool fullRow, bool within) const; + wxTreeItemId GetLastVisible(bool fullRow, bool within) const; // operations // ---------- // add the root node to the tree - wxTreeItemId AddRoot (const wxString& text, - int image = -1, int selectedImage = -1, - wxTreeItemData *data = NULL); + wxTreeItemId AddRoot(const wxString& text, int image = -1, int selectedImage = -1, wxTreeItemData* data = NULL); // insert a new item in as the first child of the parent wxTreeItemId PrependItem(const wxTreeItemId& parent, const wxString& text, - int image = -1, int selectedImage = -1, - wxTreeItemData *data = NULL); + int image = -1, + int selectedImage = -1, + wxTreeItemData* data = NULL); // insert a new item after a given one wxTreeItemId InsertItem(const wxTreeItemId& parent, const wxTreeItemId& idPrevious, const wxString& text, - int image = -1, int selectedImage = -1, - wxTreeItemData *data = NULL); + int image = -1, + int selectedImage = -1, + wxTreeItemData* data = NULL); // insert a new item before the one with the given index wxTreeItemId InsertItem(const wxTreeItemId& parent, size_t index, const wxString& text, - int image = -1, int selectedImage = -1, - wxTreeItemData *data = NULL); + int image = -1, + int selectedImage = -1, + wxTreeItemData* data = NULL); // insert a new item in as the last child of the parent wxTreeItemId AppendItem(const wxTreeItemId& parent, const wxString& text, - int image = -1, int selectedImage = -1, - wxTreeItemData *data = NULL); + int image = -1, + int selectedImage = -1, + wxTreeItemData* data = NULL); // delete this item and associated data if any void Delete(const wxTreeItemId& item); @@ -537,8 +543,8 @@ void Unselect(); void UnselectAll(); // select this item - bool SelectItem(const wxTreeItemId& item, const wxTreeItemId& prev = (wxTreeItemId*)NULL, - bool unselect_others = true); + bool + SelectItem(const wxTreeItemId& item, const wxTreeItemId& prev = (wxTreeItemId*)NULL, bool unselect_others = true); void SelectAll(); // make sure this item is visible (expanding the parent item and/or // scrolling to this item if necessary) @@ -549,37 +555,40 @@ // The first function is more portable (because easier to implement // on other platforms), but the second one returns some extra info. - wxTreeItemId HitTest (const wxPoint& point) - { int flags; int column; return HitTest (point, flags, column); } - wxTreeItemId HitTest (const wxPoint& point, int& flags) - { int column; return HitTest (point, flags, column); } - wxTreeItemId HitTest (const wxPoint& point, int& flags, int& column); - + wxTreeItemId HitTest(const wxPoint& point) + { + int flags; + int column; + return HitTest(point, flags, column); + } + wxTreeItemId HitTest(const wxPoint& point, int& flags) + { + int column; + return HitTest(point, flags, column); + } + wxTreeItemId HitTest(const wxPoint& point, int& flags, int& column); // get the bounding rectangle of the item (or of its label only) - bool GetBoundingRect(const wxTreeItemId& item, - wxRect& rect, - bool textOnly = false) const; + bool GetBoundingRect(const wxTreeItemId& item, wxRect& rect, bool textOnly = false) const; // Start editing the item label: this (temporarily) replaces the item // with a one line edit control. The item will be selected if it hadn't // been before. - void EditLabel (const wxTreeItemId& item, int column); + void EditLabel(const wxTreeItemId& item, int column); // sorting // this function is called to compare 2 items and should return -1, 0 // or +1 if the first item is less than, equal to or greater than the // second one. The base class version performs alphabetic comparaison // of item labels (GetText) - virtual int OnCompareItems(const wxTreeItemId& item1, - const wxTreeItemId& item2); + virtual int OnCompareItems(const wxTreeItemId& item1, const wxTreeItemId& item2); // sort the children of this item using OnCompareItems // // NB: this function is not reentrant and not MT-safe (FIXME)! void SortChildren(const wxTreeItemId& item); // searching - wxTreeItemId FindItem (const wxTreeItemId& item, const wxString& str, int mode = 0); + wxTreeItemId FindItem(const wxTreeItemId& item, const wxString& str, int mode = 0); // implementation only from now on @@ -588,31 +597,40 @@ virtual bool SetForegroundColour(const wxColour& colour); // drop over item - void SetDragItem (const wxTreeItemId& item = (wxTreeItemId*)NULL); + void SetDragItem(const wxTreeItemId& item = (wxTreeItemId*)NULL); // callbacks - void OnPaint( wxPaintEvent &event ); - void OnEraseBackground(wxEraseEvent& WXUNUSED(event)) { ;; } // to reduce flicker - void OnSetFocus( wxFocusEvent &event ); - void OnKillFocus( wxFocusEvent &event ); - void OnChar( wxKeyEvent &event ); - void OnMouse( wxMouseEvent &event ); - void OnIdle( wxIdleEvent &event ); + void OnPaint(wxPaintEvent& event); + void OnEraseBackground(wxEraseEvent& WXUNUSED(event)) + { + ; + ; + } // to reduce flicker + void OnSetFocus(wxFocusEvent& event); + void OnKillFocus(wxFocusEvent& event); + void OnChar(wxKeyEvent& event); + void OnMouse(wxMouseEvent& event); + void OnIdle(wxIdleEvent& event); void OnScroll(wxScrollWinEvent& event); - void OnCaptureLost(wxMouseCaptureLostEvent & WXUNUSED(event)) { ;; } + void OnCaptureLost(wxMouseCaptureLostEvent& WXUNUSED(event)) + { + ; + ; + } // implementation helpers - int GetColumnCount() const - { return m_owner->GetHeaderWindow()->GetColumnCount(); } + int GetColumnCount() const { return m_owner->GetHeaderWindow()->GetColumnCount(); } - void SetMainColumn (int column) - { if ((column >= 0) && (column < GetColumnCount())) m_main_column = column; } + void SetMainColumn(int column) + { + if((column >= 0) && (column < GetColumnCount())) m_main_column = column; + } int GetMainColumn() const { return m_main_column; } - int GetBestColumnWidth (int column, wxTreeItemId parent = wxTreeItemId()); - int GetItemWidth (int column, clTreeListItem *item); - wxFont GetItemFont (clTreeListItem *item); + int GetBestColumnWidth(int column, wxTreeItemId parent = wxTreeItemId()); + int GetItemWidth(int column, clTreeListItem* item); + wxFont GetItemFont(clTreeListItem* item); void SetFocus(); @@ -625,60 +643,57 @@ friend class clTreeListRenameTimer; friend class clEditTextCtrl; - wxFont m_normalFont; - wxFont m_boldFont; + wxFont m_normalFont; + wxFont m_boldFont; + + clTreeListItem* m_rootItem; // root item + clTreeListItem* m_curItem; // current item, either selected or marked + clTreeListItem* m_shiftItem; // item, where the shift key was pressed + clTreeListItem* m_selectItem; // current selected item, not with wxTR_MULTIPLE + + int m_curColumn; + + int m_btnWidth, m_btnWidth2; + int m_btnHeight, m_btnHeight2; + int m_imgWidth, m_imgWidth2; + int m_imgHeight, m_imgHeight2; + unsigned short m_indent; + int m_lineHeight; + unsigned short m_linespacing; + wxPen m_dottedPen; + wxBrush* m_hilightBrush, *m_hilightUnfocusedBrush; + bool m_hasFocus; - clTreeListItem *m_rootItem; // root item - clTreeListItem *m_curItem; // current item, either selected or marked - clTreeListItem *m_shiftItem; // item, where the shift key was pressed - clTreeListItem *m_selectItem; // current selected item, not with wxTR_MULTIPLE - - int m_curColumn; - - int m_btnWidth, m_btnWidth2; - int m_btnHeight, m_btnHeight2; - int m_imgWidth, m_imgWidth2; - int m_imgHeight, m_imgHeight2; - unsigned short m_indent; - int m_lineHeight; - unsigned short m_linespacing; - wxPen m_dottedPen; - wxBrush *m_hilightBrush, - *m_hilightUnfocusedBrush; - bool m_hasFocus; public: - bool m_dirty; + bool m_dirty; + protected: - bool m_ownsImageListNormal, - m_ownsImageListState, - m_ownsImageListButtons; - bool m_lastOnSame; // last click on the same item as prev - bool m_left_down_selection; - - wxImageList *m_imageListNormal, - *m_imageListState, - *m_imageListButtons; - - bool m_isDragStarted; // set at the very beginning of dragging - bool m_isDragging; // set once a drag begin event was fired - wxPoint m_dragStartPos; // set whenever m_isDragStarted is set to true - clTreeListItem *m_dragItem; - int m_dragCol; - - clTreeListItem *m_editItem; // item, which is currently edited - wxTimer *m_editTimer; - bool m_editAccept; // currently unused, OnRenameAccept() argument makes it redundant - wxString m_editRes; - int m_editCol; - clEditTextCtrl *m_editControl; + bool m_ownsImageListNormal, m_ownsImageListState, m_ownsImageListButtons; + bool m_lastOnSame; // last click on the same item as prev + bool m_left_down_selection; + + wxImageList* m_imageListNormal, *m_imageListState, *m_imageListButtons; + + bool m_isDragStarted; // set at the very beginning of dragging + bool m_isDragging; // set once a drag begin event was fired + wxPoint m_dragStartPos; // set whenever m_isDragStarted is set to true + clTreeListItem* m_dragItem; + int m_dragCol; + + clTreeListItem* m_editItem; // item, which is currently edited + wxTimer* m_editTimer; + bool m_editAccept; // currently unused, OnRenameAccept() argument makes it redundant + wxString m_editRes; + int m_editCol; + clEditTextCtrl* m_editControl; // char navigation - wxTimer *m_findTimer; - wxString m_findStr; + wxTimer* m_findTimer; + wxString m_findStr; - bool m_isItemToolTip; // true if individual item tooltips were set (disable global tooltip) - wxString m_toolTip; // global tooltip - clTreeListItem *m_toolTipItem; // item whose tip is currently shown (NULL==global, -1==not displayed) + bool m_isItemToolTip; // true if individual item tooltips were set (disable global tooltip) + wxString m_toolTip; // global tooltip + clTreeListItem* m_toolTipItem; // item whose tip is currently shown (NULL==global, -1==not displayed) // the common part of all ctors void Init(); @@ -687,175 +702,175 @@ wxTreeItemId DoInsertItem(const wxTreeItemId& parent, size_t previous, const wxString& text, - int image, int selectedImage, - wxTreeItemData *data); - void DoDeleteItem (clTreeListItem *item); - void SetCurrentItem(clTreeListItem *item); - bool HasButtons(void) const - { return (m_imageListButtons) || HasFlag (wxTR_TWIST_BUTTONS|wxTR_HAS_BUTTONS); } + int image, + int selectedImage, + wxTreeItemData* data); + void DoDeleteItem(clTreeListItem* item); + void SetCurrentItem(clTreeListItem* item); + bool HasButtons(void) const { return (m_imageListButtons) || HasFlag(wxTR_TWIST_BUTTONS | wxTR_HAS_BUTTONS); } void CalculateLineHeight(); - int GetLineHeight(clTreeListItem *item) const; - void PaintLevel( clTreeListItem *item, wxDC& dc, int level, int &y, - int x_maincol); - void PaintItem( clTreeListItem *item, wxDC& dc); + int GetLineHeight(clTreeListItem* item) const; + void PaintLevel(clTreeListItem* item, wxDC& dc, int level, int& y, int x_maincol); + void PaintItem(clTreeListItem* item, wxDC& dc); - void CalculateLevel( clTreeListItem *item, wxDC &dc, int level, int &y, - int x_maincol); + void CalculateLevel(clTreeListItem* item, wxDC& dc, int level, int& y, int x_maincol); void CalculatePositions(); - void CalculateSize( clTreeListItem *item, wxDC &dc ); + void CalculateSize(clTreeListItem* item, wxDC& dc); - void RefreshSubtree (clTreeListItem *item); - void RefreshLine (clTreeListItem *item); + void RefreshSubtree(clTreeListItem* item); + void RefreshLine(clTreeListItem* item); // redraw all selected items void RefreshSelected(); // RefreshSelected() recursive helper - void RefreshSelectedUnder (clTreeListItem *item); + void RefreshSelectedUnder(clTreeListItem* item); void OnRenameTimer(); void OnRenameAccept(bool isCancelled); void FillArray(clTreeListItem*, wxArrayTreeItemIds&) const; - bool TagAllChildrenUntilLast (clTreeListItem *crt_item, clTreeListItem *last_item); - bool TagNextChildren (clTreeListItem *crt_item, clTreeListItem *last_item); - void UnselectAllChildren (clTreeListItem *item ); - bool SendEvent(wxEventType event_type, clTreeListItem *item = NULL, wxTreeEvent *event = NULL); // returns true if processed + bool TagAllChildrenUntilLast(clTreeListItem* crt_item, clTreeListItem* last_item); + bool TagNextChildren(clTreeListItem* crt_item, clTreeListItem* last_item); + void UnselectAllChildren(clTreeListItem* item); + bool SendEvent(wxEventType event_type, + clTreeListItem* item = NULL, + wxTreeEvent* event = NULL); // returns true if processed private: DECLARE_EVENT_TABLE() }; - // timer used for enabling in-place edit -class clTreeListRenameTimer: public wxTimer +class clTreeListRenameTimer : public wxTimer { public: - clTreeListRenameTimer( clTreeListMainWindow *owner ); + clTreeListRenameTimer(clTreeListMainWindow* owner); void Notify(); private: - clTreeListMainWindow *m_owner; + clTreeListMainWindow* m_owner; }; // control used for in-place edit -class clEditTextCtrl: public wxTextCtrl +class clEditTextCtrl : public wxTextCtrl { public: - clEditTextCtrl (wxWindow *parent, - const wxWindowID id, - bool *accept, - wxString *res, - clTreeListMainWindow *owner, - const wxString &value = wxEmptyString, - const wxPoint &pos = wxDefaultPosition, - const wxSize &size = wxDefaultSize, - int style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString &name = wxTextCtrlNameStr ); + clEditTextCtrl(wxWindow* parent, + const wxWindowID id, + bool* accept, + wxString* res, + clTreeListMainWindow* owner, + const wxString& value = wxEmptyString, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + int style = 0, + const wxValidator& validator = wxDefaultValidator, + const wxString& name = wxTextCtrlNameStr); ~clEditTextCtrl(); - virtual bool Destroy(); // wxWindow override + virtual bool Destroy(); // wxWindow override void EndEdit(bool isCancelled); - void SetOwner(clTreeListMainWindow *owner) { m_owner = owner; } - - void OnChar( wxKeyEvent &event ); - void OnKeyUp( wxKeyEvent &event ); - void OnKillFocus( wxFocusEvent &event ); + void SetOwner(clTreeListMainWindow* owner) { m_owner = owner; } + void OnChar(wxKeyEvent& event); + void OnKeyUp(wxKeyEvent& event); + void OnKillFocus(wxFocusEvent& event); private: - clTreeListMainWindow *m_owner; - bool *m_accept; - wxString *m_res; - wxString m_startValue; - bool m_finished; // true==deleting, don't process events anymore + clTreeListMainWindow* m_owner; + bool* m_accept; + wxString* m_res; + wxString m_startValue; + bool m_finished; // true==deleting, don't process events anymore DECLARE_EVENT_TABLE() }; - // a tree item (NOTE: this class is storage only, does not generate events) -class clTreeListItem +class clTreeListItem { public: // ctors & dtor - clTreeListItem() { m_data = NULL; m_toolTip = NULL; } - clTreeListItem( clTreeListMainWindow *owner, - clTreeListItem *parent, - const wxArrayString& text, - int image, - int selImage, - wxTreeItemData *data ); + clTreeListItem() + { + m_data = NULL; + m_toolTip = NULL; + } + clTreeListItem(clTreeListMainWindow* owner, + clTreeListItem* parent, + const wxArrayString& text, + int image, + int selImage, + wxTreeItemData* data); ~clTreeListItem(); // trivial accessors clArrayTreeListItems& GetChildren() { return m_children; } - const wxString& GetText() const - { - return GetText(0); - } - const wxString& GetText (int column) const + const wxString& GetText() const { return GetText(0); } + const wxString& GetText(int column) const { - if(m_text.GetCount() > 0) - { - if( IsVirtual() ) return m_owner->GetItemText( m_data, column ); - else return m_text[column]; + if(m_text.GetCount() > 0) { + if(IsVirtual()) + return m_owner->GetItemText(m_data, column); + else + return m_text[column]; } return g_emptyString; } - int GetImage (wxTreeItemIcon which = wxTreeItemIcon_Normal) const - { return m_images[which]; } - int GetImage (int column, wxTreeItemIcon which=wxTreeItemIcon_Normal) const + int GetImage(wxTreeItemIcon which = wxTreeItemIcon_Normal) const { return m_images[which]; } + int GetImage(int column, wxTreeItemIcon which = wxTreeItemIcon_Normal) const { if(column == m_owner->GetMainColumn()) return m_images[which]; if(column < (int)m_col_images.GetCount()) return m_col_images[column]; return NO_IMAGE; } - wxTreeItemData *GetData() const { return m_data; } + wxTreeItemData* GetData() const { return m_data; } - const wxString * GetToolTip() const { return m_toolTip; } + const wxString* GetToolTip() const { return m_toolTip; } // returns the current image for the item (depending on its // selected/expanded/whatever state) int GetCurrentImage() const; - void SetText (const wxString &text ); - void SetText (int column, const wxString& text) + void SetText(const wxString& text); + void SetText(int column, const wxString& text) { - if (column < (int)m_text.GetCount()) { + if(column < (int)m_text.GetCount()) { m_text[column] = text; - }else if (column < m_owner->GetColumnCount()) { + } else if(column < m_owner->GetColumnCount()) { int howmany = m_owner->GetColumnCount(); - for (int i = (int)m_text.GetCount(); i < howmany; ++i) m_text.Add (wxEmptyString); + for(int i = (int)m_text.GetCount(); i < howmany; ++i) m_text.Add(wxEmptyString); m_text[column] = text; } } - void SetImage (int image, wxTreeItemIcon which) { m_images[which] = image; } - void SetImage (int column, int image, wxTreeItemIcon which) + void SetImage(int image, wxTreeItemIcon which) { m_images[which] = image; } + void SetImage(int column, int image, wxTreeItemIcon which) { - if (column == m_owner->GetMainColumn()) { + if(column == m_owner->GetMainColumn()) { m_images[which] = image; - }else if (column < (int)m_col_images.GetCount()) { + } else if(column < (int)m_col_images.GetCount()) { m_col_images[column] = image; - }else if (column < m_owner->GetColumnCount()) { + } else if(column < m_owner->GetColumnCount()) { int howmany = m_owner->GetColumnCount(); - for (int i = (int)m_col_images.GetCount(); i < howmany; ++i) m_col_images.Add (NO_IMAGE); + for(int i = (int)m_col_images.GetCount(); i < howmany; ++i) m_col_images.Add(NO_IMAGE); m_col_images[column] = image; } } - void SetData(wxTreeItemData *data) { m_data = data; } + void SetData(wxTreeItemData* data) { m_data = data; } - void SetToolTip(const wxString &tip) { - if (m_toolTip) { - delete m_toolTip; m_toolTip = NULL; + void SetToolTip(const wxString& tip) + { + if(m_toolTip) { + delete m_toolTip; + m_toolTip = NULL; } - if (tip.length() > 0) { + if(tip.length() > 0) { m_toolTip = new wxString(tip); } } @@ -867,19 +882,19 @@ int GetX() const { return m_x; } int GetY() const { return m_y; } - void SetX (int x) { m_x = x; } - void SetY (int y) { m_y = y; } + void SetX(int x) { m_x = x; } + void SetY(int y) { m_y = y; } - int GetHeight() const { return m_height; } - int GetWidth() const { return m_width; } + int GetHeight() const { return m_height; } + int GetWidth() const { return m_width; } - void SetHeight (int height) { m_height = height; } - void SetWidth (int width) { m_width = width; } + void SetHeight(int height) { m_height = height; } + void SetWidth(int width) { m_width = width; } int GetTextX() const { return m_text_x; } - void SetTextX (int text_x) { m_text_x = text_x; } + void SetTextX(int text_x) { m_text_x = text_x; } - clTreeListItem *GetItemParent() const { return m_parent; } + clTreeListItem* GetItemParent() const { return m_parent; } // operations // deletes all children @@ -888,94 +903,90 @@ // get count of all children (and grand children if 'recursively') size_t GetChildrenCount(bool recursively = true) const; - void Insert(clTreeListItem *child, size_t index) - { m_children.Insert(child, index); } + void Insert(clTreeListItem* child, size_t index) { m_children.Insert(child, index); } - void GetSize( int &x, int &y, const clTreeListMainWindow* ); + void GetSize(int& x, int& y, const clTreeListMainWindow*); // return the item at given position (or NULL if no item), onButton is // true if the point belongs to the item's button, otherwise it lies // on the button's label - clTreeListItem *HitTest (const wxPoint& point, - const clTreeListMainWindow *, - int &flags, int& column, int level); + clTreeListItem* HitTest(const wxPoint& point, const clTreeListMainWindow*, int& flags, int& column, int level); void Expand() { m_isCollapsed = false; } void Collapse() { m_isCollapsed = true; } - void SetHilight( bool set = true ) { m_hasHilight = set; } + void SetHilight(bool set = true) { m_hasHilight = set; } // status inquiries bool HasChildren() const { return !m_children.IsEmpty(); } - bool IsSelected() const { return m_hasHilight != 0; } - bool IsExpanded() const { return !m_isCollapsed; } - bool HasPlus() const { return m_hasPlus || HasChildren(); } - bool IsBold() const { return m_isBold != 0; } - bool IsVirtual() const { return m_owner->IsVirtual(); } + bool IsSelected() const { return m_hasHilight != 0; } + bool IsExpanded() const { return !m_isCollapsed; } + bool HasPlus() const { return m_hasPlus || HasChildren(); } + bool IsBold() const { return m_isBold != 0; } + bool IsVirtual() const { return m_owner->IsVirtual(); } // attributes // get them - may be NULL - wxTreeItemAttr *GetAttributes() const { return m_attr; } + wxTreeItemAttr* GetAttributes() const { return m_attr; } // get them ensuring that the pointer is not NULL wxTreeItemAttr& Attr() { - if ( !m_attr ) - { + if(!m_attr) { m_attr = new wxTreeItemAttr; m_ownsAttr = true; } return *m_attr; } // set them - void SetAttributes(wxTreeItemAttr *attr) + void SetAttributes(wxTreeItemAttr* attr) { - if ( m_ownsAttr ) delete m_attr; + if(m_ownsAttr) delete m_attr; m_attr = attr; m_ownsAttr = false; } // set them and delete when done - void AssignAttributes(wxTreeItemAttr *attr) + void AssignAttributes(wxTreeItemAttr* attr) { SetAttributes(attr); m_ownsAttr = true; } private: - clTreeListMainWindow *m_owner; // control the item belongs to + clTreeListMainWindow* m_owner; // control the item belongs to // since there can be very many of these, we save size by chosing // the smallest representation for the elements and by ordering // the members to avoid padding. - wxArrayString m_text; // labels to be rendered for item + wxArrayString m_text; // labels to be rendered for item - wxTreeItemData *m_data; // user-provided data + wxTreeItemData* m_data; // user-provided data - wxString *m_toolTip; + wxString* m_toolTip; clArrayTreeListItems m_children; // list of children - clTreeListItem *m_parent; // parent of this item + clTreeListItem* m_parent; // parent of this item - wxTreeItemAttr *m_attr; // attributes??? + wxTreeItemAttr* m_attr; // attributes??? // tree ctrl images for the normal, selected, expanded and // expanded+selected states - short m_images[wxTreeItemIcon_Max]; - wxArrayShort m_col_images; // images for the various columns (!= main) + short m_images[wxTreeItemIcon_Max]; + wxArrayShort m_col_images; // images for the various columns (!= main) // main column item positions - wxCoord m_x; // (virtual) offset from left (vertical line) - wxCoord m_y; // (virtual) offset from top - wxCoord m_text_x; // item offset from left - short m_width; // width of this item - unsigned char m_height; // height of this item + wxCoord m_x; // (virtual) offset from left (vertical line) + wxCoord m_y; // (virtual) offset from top + wxCoord m_text_x; // item offset from left + short m_width; // width of this item + unsigned char m_height; // height of this item // use bitfields to save size - int m_isCollapsed :1; - int m_hasHilight :1; // same as focused - int m_hasPlus :1; // used for item which doesn't have - // children but has a [+] button - int m_isBold :1; // render the label in bold font - int m_ownsAttr :1; // delete attribute when done + int m_isCollapsed : 1; + int m_hasHilight : 1; // same as focused + int m_hasPlus : 1; // used for item which doesn't have + // children but has a [+] button + int m_isBold : 1; // render the label in bold font + int m_ownsAttr : 1; // delete attribute when done }; // =========================================================================== @@ -986,38 +997,32 @@ // wxTreeListRenameTimer (internal) // --------------------------------------------------------------------------- -clTreeListRenameTimer::clTreeListRenameTimer( clTreeListMainWindow *owner ) -{ - m_owner = owner; -} +clTreeListRenameTimer::clTreeListRenameTimer(clTreeListMainWindow* owner) { m_owner = owner; } -void clTreeListRenameTimer::Notify() -{ - m_owner->OnRenameTimer(); -} +void clTreeListRenameTimer::Notify() { m_owner->OnRenameTimer(); } //----------------------------------------------------------------------------- // wxEditTextCtrl (internal) //----------------------------------------------------------------------------- -BEGIN_EVENT_TABLE (clEditTextCtrl,wxTextCtrl) - EVT_CHAR (clEditTextCtrl::OnChar) - EVT_KEY_UP (clEditTextCtrl::OnKeyUp) - EVT_KILL_FOCUS (clEditTextCtrl::OnKillFocus) +BEGIN_EVENT_TABLE(clEditTextCtrl, wxTextCtrl) +EVT_CHAR(clEditTextCtrl::OnChar) +EVT_KEY_UP(clEditTextCtrl::OnKeyUp) +EVT_KILL_FOCUS(clEditTextCtrl::OnKillFocus) END_EVENT_TABLE() -clEditTextCtrl::clEditTextCtrl (wxWindow *parent, - const wxWindowID id, - bool *accept, - wxString *res, - clTreeListMainWindow *owner, - const wxString &value, - const wxPoint &pos, - const wxSize &size, - int style, - const wxValidator& validator, - const wxString &name) - : wxTextCtrl (parent, id, value, pos, size, style | wxSIMPLE_BORDER, validator, name) +clEditTextCtrl::clEditTextCtrl(wxWindow* parent, + const wxWindowID id, + bool* accept, + wxString* res, + clTreeListMainWindow* owner, + const wxString& value, + const wxPoint& pos, + const wxSize& size, + int style, + const wxValidator& validator, + const wxString& name) + : wxTextCtrl(parent, id, value, pos, size, style | wxSIMPLE_BORDER, validator, name) { m_res = res; m_accept = accept; @@ -1028,16 +1033,18 @@ m_finished = false; } -clEditTextCtrl::~clEditTextCtrl() { +clEditTextCtrl::~clEditTextCtrl() +{ EndEdit(true); // cancelled } -void clEditTextCtrl::EndEdit(bool isCancelled) { - if (m_finished) return; +void clEditTextCtrl::EndEdit(bool isCancelled) +{ + if(m_finished) return; m_finished = true; - if (m_owner) { - (*m_accept) = ! isCancelled; + if(m_owner) { + (*m_accept) = !isCancelled; (*m_res) = isCancelled ? m_startValue : GetValue(); m_owner->OnRenameAccept(*m_res == m_startValue); m_owner->m_editControl = NULL; @@ -1049,39 +1056,36 @@ Destroy(); } -bool clEditTextCtrl::Destroy() { +bool clEditTextCtrl::Destroy() +{ Hide(); #if wxVERSION_NUMBER < 2900 - // I don't think this is needed any longer in >=2.9 (and it doesn't compile) + // I don't think this is needed any longer in >=2.9 (and it doesn't compile) wxTheApp->GetTraits()->ScheduleForDestroy(this); #endif return true; } -void clEditTextCtrl::OnChar( wxKeyEvent &event ) +void clEditTextCtrl::OnChar(wxKeyEvent& event) { - if (m_finished) - { + if(m_finished) { event.Skip(); return; } - if (event.GetKeyCode() == WXK_RETURN) - { - EndEdit(false); // not cancelled + if(event.GetKeyCode() == WXK_RETURN) { + EndEdit(false); // not cancelled return; } - if (event.GetKeyCode() == WXK_ESCAPE) - { - EndEdit(true); // cancelled + if(event.GetKeyCode() == WXK_ESCAPE) { + EndEdit(true); // cancelled return; } event.Skip(); } -void clEditTextCtrl::OnKeyUp( wxKeyEvent &event ) +void clEditTextCtrl::OnKeyUp(wxKeyEvent& event) { - if (m_finished) - { + if(m_finished) { event.Skip(); return; } @@ -1092,22 +1096,21 @@ wxSize mySize = GetSize(); int sx, sy; GetTextExtent(GetValue() + _T("M"), &sx, &sy); - if (myPos.x + sx > parentSize.x) sx = parentSize.x - myPos.x; - if (mySize.x > sx) sx = mySize.x; + if(myPos.x + sx > parentSize.x) sx = parentSize.x - myPos.x; + if(mySize.x > sx) sx = mySize.x; SetSize(sx, -1); event.Skip(); } -void clEditTextCtrl::OnKillFocus( wxFocusEvent &event ) +void clEditTextCtrl::OnKillFocus(wxFocusEvent& event) { - if (m_finished) - { + if(m_finished) { event.Skip(); return; } - EndEdit(false); // not cancelled + EndEdit(false); // not cancelled } //----------------------------------------------------------------------------- @@ -1115,16 +1118,15 @@ //----------------------------------------------------------------------------- BEGIN_EVENT_TABLE(clTreeListHeaderWindow, wxWindow) - EVT_PAINT (clTreeListHeaderWindow::OnPaint) - EVT_ERASE_BACKGROUND(clTreeListHeaderWindow::OnEraseBackground) // reduce flicker - EVT_MOUSE_EVENTS (clTreeListHeaderWindow::OnMouse) - EVT_SET_FOCUS (clTreeListHeaderWindow::OnSetFocus) +EVT_PAINT(clTreeListHeaderWindow::OnPaint) +EVT_ERASE_BACKGROUND(clTreeListHeaderWindow::OnEraseBackground) // reduce flicker +EVT_MOUSE_EVENTS(clTreeListHeaderWindow::OnMouse) +EVT_SET_FOCUS(clTreeListHeaderWindow::OnSetFocus) END_EVENT_TABLE() - void clTreeListHeaderWindow::Init() { - m_currentCursor = (wxCursor *) NULL; + m_currentCursor = (wxCursor*)NULL; m_isDragging = false; m_dirty = false; m_total_col_width = 0; @@ -1140,18 +1142,18 @@ { Init(); - m_owner = (clTreeListMainWindow *) NULL; - m_resizeCursor = (wxCursor *) NULL; + m_owner = (clTreeListMainWindow*)NULL; + m_resizeCursor = (wxCursor*)NULL; } -clTreeListHeaderWindow::clTreeListHeaderWindow( wxWindow *win, - wxWindowID id, - clTreeListMainWindow *owner, - const wxPoint& pos, - const wxSize& size, - long style, - const wxString &name ) - : wxWindow( win, id, pos, size, style, name ) +clTreeListHeaderWindow::clTreeListHeaderWindow(wxWindow* win, + wxWindowID id, + clTreeListMainWindow* owner, + const wxPoint& pos, + const wxSize& size, + long style, + const wxString& name) + : wxWindow(win, id, pos, size, style, name) { Init(); @@ -1159,48 +1161,45 @@ m_resizeCursor = new wxCursor(wxCURSOR_SIZEWE); #if !wxCHECK_VERSION(2, 5, 0) - SetBackgroundColour (wxSystemSettings::GetSystemColour (wxSYS_COLOUR_BTNFACE)); + SetBackgroundColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_BTNFACE)); #else - SetBackgroundColour (wxSystemSettings::GetColour (wxSYS_COLOUR_BTNFACE)); + SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_BTNFACE)); #endif } -clTreeListHeaderWindow::~clTreeListHeaderWindow() -{ - delete m_resizeCursor; -} +clTreeListHeaderWindow::~clTreeListHeaderWindow() { delete m_resizeCursor; } -void clTreeListHeaderWindow::DoDrawRect( wxDC *dc, int x, int y, int w, int h ) +void clTreeListHeaderWindow::DoDrawRect(wxDC* dc, int x, int y, int w, int h) { #if !wxCHECK_VERSION(2, 5, 0) - wxPen pen (wxSystemSettings::GetSystemColour (wxSYS_COLOUR_BTNSHADOW ), 1, wxSOLID); + wxPen pen(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_BTNSHADOW), 1, wxSOLID); #else - wxPen pen (wxSystemSettings::GetColour (wxSYS_COLOUR_BTNSHADOW ), 1, wxPENSTYLE_SOLID); + wxPen pen(wxSystemSettings::GetColour(wxSYS_COLOUR_BTNSHADOW), 1, wxPENSTYLE_SOLID); #endif const int m_corner = 1; - dc->SetBrush( *wxTRANSPARENT_BRUSH ); -#if defined( __WXMAC__ ) - dc->SetPen (pen); + dc->SetBrush(*wxTRANSPARENT_BRUSH); +#if defined(__WXMAC__) + dc->SetPen(pen); #else // !GTK, !Mac - dc->SetPen( *wxBLACK_PEN ); + dc->SetPen(*wxBLACK_PEN); #endif - dc->DrawLine( x+w-m_corner+1, y, x+w, y+h ); // right (outer) - dc->DrawRectangle( x, y+h, w+1, 1 ); // bottom (outer) + dc->DrawLine(x + w - m_corner + 1, y, x + w, y + h); // right (outer) + dc->DrawRectangle(x, y + h, w + 1, 1); // bottom (outer) -#if defined( __WXMAC__ ) - pen = wxPen( wxColour( 0x88 , 0x88 , 0x88 ), 1, wxSOLID ); +#if defined(__WXMAC__) + pen = wxPen(wxColour(0x88, 0x88, 0x88), 1, wxSOLID); #endif - dc->SetPen( pen ); - dc->DrawLine( x+w-m_corner, y, x+w-1, y+h ); // right (inner) - dc->DrawRectangle( x+1, y+h-1, w-2, 1 ); // bottom (inner) - - dc->SetPen( *wxWHITE_PEN ); - dc->DrawRectangle( x, y, w-m_corner+1, 1 ); // top (outer) - dc->DrawRectangle( x, y, 1, h ); // left (outer) - dc->DrawLine( x, y+h-1, x+1, y+h-1 ); - dc->DrawLine( x+w-1, y, x+w-1, y+1 ); + dc->SetPen(pen); + dc->DrawLine(x + w - m_corner, y, x + w - 1, y + h); // right (inner) + dc->DrawRectangle(x + 1, y + h - 1, w - 2, 1); // bottom (inner) + + dc->SetPen(*wxWHITE_PEN); + dc->DrawRectangle(x, y, w - m_corner + 1, 1); // top (outer) + dc->DrawRectangle(x, y, 1, h); // left (outer) + dc->DrawLine(x, y + h - 1, x + 1, y + h - 1); + dc->DrawLine(x + w - 1, y, x + w - 1, y + 1); } // shift the DC origin to match the position of the main window horz @@ -1208,37 +1207,35 @@ void clTreeListHeaderWindow::AdjustDC(wxDC& dc) { int xpix; - m_owner->GetScrollPixelsPerUnit( &xpix, NULL ); + m_owner->GetScrollPixelsPerUnit(&xpix, NULL); int x; - m_owner->GetViewStart( &x, NULL ); + m_owner->GetViewStart(&x, NULL); // account for the horz scrollbar offset - dc.SetDeviceOrigin( -x * xpix, 0 ); + dc.SetDeviceOrigin(-x * xpix, 0); } -void clTreeListHeaderWindow::OnPaint( wxPaintEvent &WXUNUSED(event) ) +void clTreeListHeaderWindow::OnPaint(wxPaintEvent& WXUNUSED(event)) { - wxAutoBufferedPaintDC dc( this ); - AdjustDC( dc ); + wxAutoBufferedPaintDC dc(this); + AdjustDC(dc); int x = HEADER_OFFSET_X; // width and height of the entire header window int w, h; - GetClientSize( &w, &h ); + GetClientSize(&w, &h); m_owner->CalcUnscrolledPosition(w, 0, &w, NULL); dc.SetBackgroundMode(wxTRANSPARENT); -#if wxCHECK_VERSION_FULL(2, 7, 0, 1) int numColumns = GetColumnCount(); - for ( int i = 0; i < numColumns && x < w; i++ ) - { - if (!IsColumnShown (i)) continue; // do next column if not shown + for(int i = 0; i < numColumns && x < w; i++) { + if(!IsColumnShown(i)) continue; // do next column if not shown wxHeaderButtonParams params; // TODO: columnInfo should have label colours... - params.m_labelColour = wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOWTEXT ); + params.m_labelColour = wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOWTEXT); params.m_labelFont = GetFont(); clTreeListColumnInfo& column = GetColumn(i); @@ -1247,140 +1244,48 @@ wxRect rect(x, 0, wCol, h); x += wCol; - if ( i == m_hotTrackCol) - flags |= wxCONTROL_CURRENT; + if(i == m_hotTrackCol) flags |= wxCONTROL_CURRENT; params.m_labelText = column.GetText(); params.m_labelAlignment = column.GetAlignment(); int image = column.GetImage(); wxImageList* imageList = m_owner->GetImageList(); - if ((image != -1) && imageList) - params.m_labelBitmap = imageList->GetBitmap(image); + if((image != -1) && imageList) params.m_labelBitmap = imageList->GetBitmap(image); wxRendererNative::Get().DrawHeaderButton(this, dc, rect, flags, wxHDR_SORT_ICON_NONE, ¶ms); } - if (x < w) { - wxRect rect(x, 0, w-x, h); + if(x < w) { + wxRect rect(x, 0, w - x, h); wxRendererNative::Get().DrawHeaderButton(this, dc, rect); } - -#else // not 2.7.0.1+ - - dc.SetFont( GetFont() ); - - // do *not* use the listctrl colour for headers - one day we will have a - // function to set it separately - //dc.SetTextForeground( *wxBLACK ); -#if !wxCHECK_VERSION(2, 5, 0) - dc.SetTextForeground (wxSystemSettings::GetSystemColour( wxSYS_COLOUR_WINDOWTEXT )); -#else - dc.SetTextForeground (wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOWTEXT )); -#endif - - int numColumns = GetColumnCount(); - for ( int i = 0; i < numColumns && x < w; i++ ) - { - if (!IsColumnShown (i)) continue; // do next column if not shown - - clTreeListColumnInfo& column = GetColumn(i); - int wCol = column.GetWidth(); - - // the width of the rect to draw: make it smaller to fit entirely - // inside the column rect - int cw = wCol - 2; - -#if !wxCHECK_VERSION(2, 7, 0) - dc.SetPen( *wxWHITE_PEN ); - DoDrawRect( &dc, x, HEADER_OFFSET_Y, cw, h-2 ); -#else - wxRect rect(x, HEADER_OFFSET_Y, cw, h-2); - wxRendererNative::GetDefault().DrawHeaderButton (this, dc, rect); -#endif - - // if we have an image, draw it on the right of the label - int image = column.GetImage(); //item.m_image; - int ix = -2, iy = 0; - wxImageList* imageList = m_owner->GetImageList(); - if ((image != -1) && imageList) { - imageList->GetSize (image, ix, iy); - } - - // extra margins around the text label - int text_width = 0; - int text_x = x; - int image_offset = cw - ix - 1; - - switch(column.GetAlignment()) { - case wxALIGN_LEFT: - text_x += EXTRA_WIDTH; - cw -= ix + 2; - break; - case wxALIGN_RIGHT: - dc.GetTextExtent (column.GetText(), &text_width, NULL); - text_x += cw - text_width - EXTRA_WIDTH - MARGIN; - image_offset = 0; - break; - case wxALIGN_CENTER: - dc.GetTextExtent(column.GetText(), &text_width, NULL); - text_x += (cw - text_width)/2 + ix + 2; - image_offset = (cw - text_width - ix - 2)/2 - MARGIN; - break; - } - - // draw the image - if ((image != -1) && imageList) { - imageList->Draw (image, dc, x + image_offset/*cw - ix - 1*/, - HEADER_OFFSET_Y + (h - 4 - iy)/2, - wxIMAGELIST_DRAW_TRANSPARENT); - } - - // draw the text clipping it so that it doesn't overwrite the column boundary - wxDCClipper clipper(dc, x, HEADER_OFFSET_Y, cw, h - 4 ); - dc.DrawText (column.GetText(), text_x, HEADER_OFFSET_Y + EXTRA_HEIGHT ); - - // next column - x += wCol; - } - - int more_w = m_owner->GetSize().x - x - HEADER_OFFSET_X; - if (more_w > 0) { -#if !wxCHECK_VERSION(2, 7, 0) - DoDrawRect (&dc, x, HEADER_OFFSET_Y, more_w, h-2 ); -#else - wxRect rect (x, HEADER_OFFSET_Y, more_w, h-2); - wxRendererNative::GetDefault().DrawHeaderButton (this, dc, rect); -#endif - } - -#endif // 2.7.0.1 } void clTreeListHeaderWindow::DrawCurrent() { int x1 = m_currentX; int y1 = 0; - ClientToScreen (&x1, &y1); + ClientToScreen(&x1, &y1); - int x2 = m_currentX-1; + int x2 = m_currentX - 1; #ifdef __WXMSW__ ++x2; // but why ???? #endif int y2 = 0; - m_owner->GetClientSize( NULL, &y2 ); - m_owner->ClientToScreen( &x2, &y2 ); + m_owner->GetClientSize(NULL, &y2); + m_owner->ClientToScreen(&x2, &y2); wxScreenDC dc; - dc.SetLogicalFunction (wxINVERT); - dc.SetPen (wxPen (*wxBLACK, 2, wxPENSTYLE_SOLID)); - dc.SetBrush (*wxTRANSPARENT_BRUSH); + dc.SetLogicalFunction(wxINVERT); + dc.SetPen(wxPen(*wxBLACK, 2, wxPENSTYLE_SOLID)); + dc.SetBrush(*wxTRANSPARENT_BRUSH); AdjustDC(dc); - dc.DrawLine (x1, y1, x2, y2); - dc.SetLogicalFunction (wxCOPY); - dc.SetPen (wxNullPen); - dc.SetBrush (wxNullBrush); + dc.DrawLine(x1, y1, x2, y2); + dc.SetLogicalFunction(wxCOPY); + dc.SetPen(wxNullPen); + dc.SetBrush(wxNullBrush); } #if wxCHECK_VERSION_FULL(2, 7, 0, 1) @@ -1388,13 +1293,11 @@ { int colLeft = 0; int numColumns = GetColumnCount(); - for ( int col = 0; col < numColumns; col++ ) - { - if (!IsColumnShown(col)) continue; + for(int col = 0; col < numColumns; col++) { + if(!IsColumnShown(col)) continue; clTreeListColumnInfo& column = GetColumn(col); - if ( x < (colLeft + column.GetWidth()) ) - return col; + if(x < (colLeft + column.GetWidth())) return col; colLeft += column.GetWidth(); } @@ -1403,85 +1306,81 @@ void clTreeListHeaderWindow::RefreshColLabel(int col) { - if ( col > GetColumnCount() ) - return; + if(col > GetColumnCount()) return; int x = 0; int width = 0; int idx = 0; do { - if (!IsColumnShown(idx)) continue; + if(!IsColumnShown(idx)) continue; clTreeListColumnInfo& column = GetColumn(idx); x += width; width = column.GetWidth(); - } while (++idx <= col); + } while(++idx <= col); m_owner->CalcScrolledPosition(x, 0, &x, NULL); RefreshRect(wxRect(x, 0, width, GetSize().GetHeight())); } #endif -void clTreeListHeaderWindow::OnMouse (wxMouseEvent &event) { +void clTreeListHeaderWindow::OnMouse(wxMouseEvent& event) +{ // we want to work with logical coords int x; m_owner->CalcUnscrolledPosition(event.GetX(), 0, &x, NULL); #if wxCHECK_VERSION_FULL(2, 7, 0, 1) - if ( event.Moving() ) - { + if(event.Moving()) { int col = XToCol(x); - if ( col != m_hotTrackCol ) - { + if(col != m_hotTrackCol) { // Refresh the col header so it will be painted with hot tracking // (if supported by the native renderer.) RefreshColLabel(col); // Also refresh the old hot header - if ( m_hotTrackCol >= 0 ) - RefreshColLabel(m_hotTrackCol); + if(m_hotTrackCol >= 0) RefreshColLabel(m_hotTrackCol); m_hotTrackCol = col; } } - if ( event.Leaving() && m_hotTrackCol >= 0 ) - { + if(event.Leaving() && m_hotTrackCol >= 0) { // Leaving the window so clear any hot tracking indicator that may be present RefreshColLabel(m_hotTrackCol); m_hotTrackCol = -1; } #endif - if (m_isDragging) { + if(m_isDragging) { - SendListEvent (wxEVT_COMMAND_LIST_COL_DRAGGING, event.GetPosition()); + SendListEvent(wxEVT_COMMAND_LIST_COL_DRAGGING, event.GetPosition()); // we don't draw the line beyond our window, but we allow dragging it // there int w = 0; - GetClientSize( &w, NULL ); + GetClientSize(&w, NULL); m_owner->CalcUnscrolledPosition(w, 0, &w, NULL); w -= 6; // erase the line if it was drawn - if (m_currentX < w) DrawCurrent(); + if(m_currentX < w) DrawCurrent(); - if (event.ButtonUp()) { + if(event.ButtonUp()) { m_isDragging = false; - if (HasCapture()) ReleaseMouse(); + if(HasCapture()) ReleaseMouse(); m_dirty = true; - SetColumnWidth (m_column, m_currentX - m_minX); + SetColumnWidth(m_column, m_currentX - m_minX); Refresh(); - SendListEvent (wxEVT_COMMAND_LIST_COL_END_DRAG, event.GetPosition()); - }else{ - m_currentX = wxMax (m_minX + 7, x); + SendListEvent(wxEVT_COMMAND_LIST_COL_END_DRAG, event.GetPosition()); + } else { + m_currentX = wxMax(m_minX + 7, x); // draw in the new location - if (m_currentX < w) DrawCurrent(); + if(m_currentX < w) DrawCurrent(); } - }else{ // not dragging + } else { // not dragging m_minX = 0; bool hit_border = false; @@ -1491,18 +1390,18 @@ // find the column where this event occured int countCol = GetColumnCount(); - for (int column = 0; column < countCol; column++) { - if (!IsColumnShown (column)) continue; // do next if not shown + for(int column = 0; column < countCol; column++) { + if(!IsColumnShown(column)) continue; // do next if not shown - xpos += GetColumnWidth (column); + xpos += GetColumnWidth(column); m_column = column; - if (abs (x-xpos) < 3) { + if(abs(x - xpos) < 3) { // near the column border hit_border = true; break; } - if (x < xpos) { + if(x < xpos) { // inside the column break; } @@ -1510,45 +1409,42 @@ m_minX = xpos; } - if (event.LeftDown() || event.RightUp()) { - if (hit_border && event.LeftDown()) { + if(event.LeftDown() || event.RightUp()) { + if(hit_border && event.LeftDown()) { m_isDragging = true; CaptureMouse(); m_currentX = x; DrawCurrent(); - SendListEvent (wxEVT_COMMAND_LIST_COL_BEGIN_DRAG, event.GetPosition()); - }else{ // click on a column - wxEventType evt = event.LeftDown()? wxEVT_COMMAND_LIST_COL_CLICK: - wxEVT_COMMAND_LIST_COL_RIGHT_CLICK; - SendListEvent (evt, event.GetPosition()); + SendListEvent(wxEVT_COMMAND_LIST_COL_BEGIN_DRAG, event.GetPosition()); + } else { // click on a column + wxEventType evt = event.LeftDown() ? wxEVT_COMMAND_LIST_COL_CLICK : wxEVT_COMMAND_LIST_COL_RIGHT_CLICK; + SendListEvent(evt, event.GetPosition()); } - }else if (event.LeftDClick() && hit_border) { - SetColumnWidth (m_column, m_owner->GetBestColumnWidth (m_column)); + } else if(event.LeftDClick() && hit_border) { + SetColumnWidth(m_column, m_owner->GetBestColumnWidth(m_column)); Refresh(); - }else if (event.Moving()) { + } else if(event.Moving()) { bool setCursor; - if (hit_border) { + if(hit_border) { setCursor = m_currentCursor == wxSTANDARD_CURSOR; m_currentCursor = m_resizeCursor; - }else{ + } else { setCursor = m_currentCursor != wxSTANDARD_CURSOR; m_currentCursor = wxSTANDARD_CURSOR; } - if (setCursor) SetCursor (*m_currentCursor); + if(setCursor) SetCursor(*m_currentCursor); } - } } -void clTreeListHeaderWindow::OnSetFocus (wxFocusEvent &WXUNUSED(event)) { - m_owner->SetFocus(); -} +void clTreeListHeaderWindow::OnSetFocus(wxFocusEvent& WXUNUSED(event)) { m_owner->SetFocus(); } -void clTreeListHeaderWindow::SendListEvent (wxEventType type, wxPoint pos) { - wxWindow *parent = GetParent(); - wxListEvent le (type, parent->GetId()); - le.SetEventObject (parent); +void clTreeListHeaderWindow::SendListEvent(wxEventType type, wxPoint pos) +{ + wxWindow* parent = GetParent(); + wxListEvent le(type, parent->GetId()); + le.SetEventObject(parent); le.m_pointDrag = pos; // the position should be relative to the parent window, not @@ -1557,18 +1453,20 @@ // window, so why should it get positions relative to it? le.m_pointDrag.y -= GetSize().y; le.m_col = m_column; - parent->GetEventHandler()->ProcessEvent (le); + parent->GetEventHandler()->ProcessEvent(le); } -void clTreeListHeaderWindow::AddColumn (const clTreeListColumnInfo& colInfo) { - m_columns.Add (colInfo); +void clTreeListHeaderWindow::AddColumn(const clTreeListColumnInfo& colInfo) +{ + m_columns.Add(colInfo); m_total_col_width += colInfo.GetWidth(); m_owner->AdjustMyScrollbars(); m_owner->m_dirty = true; } -void clTreeListHeaderWindow::SetColumnWidth (int column, int width) { - wxCHECK_RET ((column >= 0) && (column < GetColumnCount()), _T("Invalid column")); +void clTreeListHeaderWindow::SetColumnWidth(int column, int width) +{ + wxCHECK_RET((column >= 0) && (column < GetColumnCount()), _T("Invalid column")); m_total_col_width -= m_columns[column].GetWidth(); m_columns[column].SetWidth(width); m_total_col_width += width; @@ -1576,27 +1474,30 @@ m_owner->m_dirty = true; } -void clTreeListHeaderWindow::InsertColumn (int before, const clTreeListColumnInfo& colInfo) { - wxCHECK_RET ((before >= 0) && (before < GetColumnCount()), _T("Invalid column")); - m_columns.Insert (colInfo, before); +void clTreeListHeaderWindow::InsertColumn(int before, const clTreeListColumnInfo& colInfo) +{ + wxCHECK_RET((before >= 0) && (before < GetColumnCount()), _T("Invalid column")); + m_columns.Insert(colInfo, before); m_total_col_width += colInfo.GetWidth(); m_owner->AdjustMyScrollbars(); m_owner->m_dirty = true; } -void clTreeListHeaderWindow::RemoveColumn (int column) { - wxCHECK_RET ((column >= 0) && (column < GetColumnCount()), _T("Invalid column")); +void clTreeListHeaderWindow::RemoveColumn(int column) +{ + wxCHECK_RET((column >= 0) && (column < GetColumnCount()), _T("Invalid column")); m_total_col_width -= m_columns[column].GetWidth(); - m_columns.RemoveAt (column); + m_columns.RemoveAt(column); m_owner->AdjustMyScrollbars(); m_owner->m_dirty = true; } -void clTreeListHeaderWindow::SetColumn (int column, const clTreeListColumnInfo& info) { - wxCHECK_RET ((column >= 0) && (column < GetColumnCount()), _T("Invalid column")); +void clTreeListHeaderWindow::SetColumn(int column, const clTreeListColumnInfo& info) +{ + wxCHECK_RET((column >= 0) && (column < GetColumnCount()), _T("Invalid column")); int w = m_columns[column].GetWidth(); m_columns[column] = info; - if (w != info.GetWidth()) { + if(w != info.GetWidth()) { m_total_col_width += info.GetWidth() - w; m_owner->AdjustMyScrollbars(); } @@ -1607,12 +1508,14 @@ // wxTreeListItem // --------------------------------------------------------------------------- -clTreeListItem::clTreeListItem (clTreeListMainWindow *owner, - clTreeListItem *parent, - const wxArrayString& text, - int image, int selImage, - wxTreeItemData *data) - : m_text (text) { +clTreeListItem::clTreeListItem(clTreeListMainWindow* owner, + clTreeListItem* parent, + const wxArrayString& text, + int image, + int selImage, + wxTreeItemData* data) + : m_text(text) +{ m_images[wxTreeItemIcon_Normal] = image; m_images[wxTreeItemIcon_Selected] = selImage; @@ -1633,7 +1536,7 @@ m_owner = owner; m_parent = parent; - m_attr = (wxTreeItemAttr *)NULL; + m_attr = (wxTreeItemAttr*)NULL; m_ownsAttr = false; // We don't know the height here yet. @@ -1641,71 +1544,73 @@ m_height = 0; } -clTreeListItem::~clTreeListItem() { +clTreeListItem::~clTreeListItem() +{ delete m_data; - if (m_toolTip) delete m_toolTip; - if (m_ownsAttr) delete m_attr; + if(m_toolTip) delete m_toolTip; + if(m_ownsAttr) delete m_attr; - wxASSERT_MSG( m_children.IsEmpty(), _T("please call DeleteChildren() before destructor")); + wxASSERT_MSG(m_children.IsEmpty(), _T("please call DeleteChildren() before destructor")); } -void clTreeListItem::DeleteChildren () { - m_children.Empty(); -} +void clTreeListItem::DeleteChildren() { m_children.Empty(); } -void clTreeListItem::SetText (const wxString &text) { - if (m_text.GetCount() > 0) { +void clTreeListItem::SetText(const wxString& text) +{ + if(m_text.GetCount() > 0) { m_text[0] = text; - }else{ - m_text.Add (text); + } else { + m_text.Add(text); } } -size_t clTreeListItem::GetChildrenCount (bool recursively) const { +size_t clTreeListItem::GetChildrenCount(bool recursively) const +{ size_t count = m_children.Count(); - if (!recursively) return count; + if(!recursively) return count; size_t total = count; - for (size_t n = 0; n < count; ++n) { + for(size_t n = 0; n < count; ++n) { total += m_children[n]->GetChildrenCount(); } return total; } -void clTreeListItem::GetSize (int &x, int &y, const clTreeListMainWindow *theButton) { - int bottomY = m_y + theButton->GetLineHeight (this); - if (y < bottomY) y = bottomY; - int width = m_x + m_width; - if ( x < width ) x = width; +void clTreeListItem::GetSize(int& x, int& y, const clTreeListMainWindow* theButton) +{ + int bottomY = m_y + theButton->GetLineHeight(this); + if(y < bottomY) y = bottomY; + int width = m_x + m_width; + if(x < width) x = width; - if (IsExpanded()) { + if(IsExpanded()) { size_t count = m_children.Count(); - for (size_t n = 0; n < count; ++n ) { - m_children[n]->GetSize (x, y, theButton); + for(size_t n = 0; n < count; ++n) { + m_children[n]->GetSize(x, y, theButton); } } } -clTreeListItem *clTreeListItem::HitTest (const wxPoint& point, - const clTreeListMainWindow *theCtrl, - int &flags, int& column, int level) { +clTreeListItem* +clTreeListItem::HitTest(const wxPoint& point, const clTreeListMainWindow* theCtrl, int& flags, int& column, int level) +{ // reset any previous hit infos flags = 0; column = -1; // for a hidden root node, don't evaluate it, but do evaluate children - if (!theCtrl->HasFlag(wxTR_HIDE_ROOT) || (level > 0)) { + if(!theCtrl->HasFlag(wxTR_HIDE_ROOT) || (level > 0)) { clTreeListHeaderWindow* header_win = theCtrl->m_owner->GetHeaderWindow(); // check for right of all columns (outside) - if (point.x > header_win->GetWidth()) return (clTreeListItem*) NULL; + if(point.x > header_win->GetWidth()) return (clTreeListItem*)NULL; // else find column - for (int x = 0, j = 0; j < theCtrl->GetColumnCount(); ++j) { - if (!header_win->IsColumnShown(j)) continue; - int w = header_win->GetColumnWidth (j); - if (point.x >= x && point.x < x+w) { + for(int x = 0, j = 0; j < theCtrl->GetColumnCount(); ++j) { + if(!header_win->IsColumnShown(j)) continue; + int w = header_win->GetColumnWidth(j); + if(point.x >= x && point.x < x + w) { column = j; break; } @@ -1713,106 +1618,108 @@ } // evaluate if y-pos is okay - int h = theCtrl->GetLineHeight (this); - if ((point.y >= m_y) && (point.y <= m_y + h)) { + int h = theCtrl->GetLineHeight(this); + if((point.y >= m_y) && (point.y <= m_y + h)) { // check for above/below middle - int y_mid = m_y + h/2; - if (point.y < y_mid) { + int y_mid = m_y + h / 2; + if(point.y < y_mid) { flags |= wxTREE_HITTEST_ONITEMUPPERPART; - }else{ + } else { flags |= wxTREE_HITTEST_ONITEMLOWERPART; } // check for button hit - if (HasPlus() && theCtrl->HasButtons()) { + if(HasPlus() && theCtrl->HasButtons()) { int bntX = m_x - theCtrl->m_btnWidth2; int bntY = y_mid - theCtrl->m_btnHeight2; - if ((point.x >= bntX) && (point.x <= (bntX + theCtrl->m_btnWidth)) && - (point.y >= bntY) && (point.y <= (bntY + theCtrl->m_btnHeight))) { + if((point.x >= bntX) && (point.x <= (bntX + theCtrl->m_btnWidth)) && (point.y >= bntY) && + (point.y <= (bntY + theCtrl->m_btnHeight))) { flags |= wxTREE_HITTEST_ONITEMBUTTON; return this; } } // check for image hit - if (theCtrl->m_imgWidth > 0) { + if(theCtrl->m_imgWidth > 0) { int imgX = m_text_x - theCtrl->m_imgWidth - MARGIN; int imgY = y_mid - theCtrl->m_imgHeight2; - if ((point.x >= imgX) && (point.x <= (imgX + theCtrl->m_imgWidth)) && - (point.y >= imgY) && (point.y <= (imgY + theCtrl->m_imgHeight))) { + if((point.x >= imgX) && (point.x <= (imgX + theCtrl->m_imgWidth)) && (point.y >= imgY) && + (point.y <= (imgY + theCtrl->m_imgHeight))) { flags |= wxTREE_HITTEST_ONITEMICON; return this; } } // check for label hit - if ((point.x >= m_text_x) && (point.x <= (m_text_x + m_width))) { + if((point.x >= m_text_x) && (point.x <= (m_text_x + m_width))) { flags |= wxTREE_HITTEST_ONITEMLABEL; return this; } // check for indent hit after button and image hit - if (point.x < m_x) { + if(point.x < m_x) { flags |= wxTREE_HITTEST_ONITEMINDENT; -// Ronan, 2008.07.17: removed, not consistent column = -1; // considered not belonging to main column + // Ronan, 2008.07.17: removed, not consistent column = -1; // considered not belonging to + // main column return this; } // check for right of label int end = 0; - for (int i = 0; i <= theCtrl->GetMainColumn(); ++i) end += header_win->GetColumnWidth (i); - if ((point.x > (m_text_x + m_width)) && (point.x <= end)) { + for(int i = 0; i <= theCtrl->GetMainColumn(); ++i) end += header_win->GetColumnWidth(i); + if((point.x > (m_text_x + m_width)) && (point.x <= end)) { flags |= wxTREE_HITTEST_ONITEMRIGHT; -// Ronan, 2008.07.17: removed, not consistent column = -1; // considered not belonging to main column + // Ronan, 2008.07.17: removed, not consistent column = -1; // considered not belonging to + // main column return this; } // else check for each column except main - if (column >= 0 && column != theCtrl->GetMainColumn()) { + if(column >= 0 && column != theCtrl->GetMainColumn()) { flags |= wxTREE_HITTEST_ONITEMCOLUMN; return this; } // no special flag or column found return this; - } // if children not expanded, return no item - if (!IsExpanded()) return (clTreeListItem*) NULL; + if(!IsExpanded()) return (clTreeListItem*)NULL; } // in any case evaluate children - clTreeListItem *child; + clTreeListItem* child; size_t count = m_children.Count(); - for (size_t n = 0; n < count; n++) { - child = m_children[n]->HitTest (point, theCtrl, flags, column, level+1); - if (child) return child; + for(size_t n = 0; n < count; n++) { + child = m_children[n]->HitTest(point, theCtrl, flags, column, level + 1); + if(child) return child; } // not found - return (clTreeListItem*) NULL; + return (clTreeListItem*)NULL; } -int clTreeListItem::GetCurrentImage() const { +int clTreeListItem::GetCurrentImage() const +{ int image = NO_IMAGE; - if (IsExpanded()) { - if (IsSelected()) { - image = GetImage (wxTreeItemIcon_SelectedExpanded); - }else{ - image = GetImage (wxTreeItemIcon_Expanded); - } - }else{ // not expanded - if (IsSelected()) { - image = GetImage (wxTreeItemIcon_Selected); - }else{ - image = GetImage (wxTreeItemIcon_Normal); + if(IsExpanded()) { + if(IsSelected()) { + image = GetImage(wxTreeItemIcon_SelectedExpanded); + } else { + image = GetImage(wxTreeItemIcon_Expanded); + } + } else { // not expanded + if(IsSelected()) { + image = GetImage(wxTreeItemIcon_Selected); + } else { + image = GetImage(wxTreeItemIcon_Normal); } } // maybe it doesn't have the specific image, try the default one instead - if (image == NO_IMAGE) image = GetImage(); + if(image == NO_IMAGE) image = GetImage(); return image; } @@ -1822,24 +1729,23 @@ // --------------------------------------------------------------------------- BEGIN_EVENT_TABLE(clTreeListMainWindow, wxScrolledWindow) - EVT_PAINT (clTreeListMainWindow::OnPaint) - EVT_ERASE_BACKGROUND(clTreeListMainWindow::OnEraseBackground) // to reduce flicker - EVT_MOUSE_EVENTS (clTreeListMainWindow::OnMouse) - EVT_CHAR (clTreeListMainWindow::OnChar) - EVT_SET_FOCUS (clTreeListMainWindow::OnSetFocus) - EVT_KILL_FOCUS (clTreeListMainWindow::OnKillFocus) - EVT_IDLE (clTreeListMainWindow::OnIdle) - EVT_SCROLLWIN (clTreeListMainWindow::OnScroll) - EVT_MOUSE_CAPTURE_LOST(clTreeListMainWindow::OnCaptureLost) +EVT_PAINT(clTreeListMainWindow::OnPaint) +EVT_ERASE_BACKGROUND(clTreeListMainWindow::OnEraseBackground) // to reduce flicker +EVT_MOUSE_EVENTS(clTreeListMainWindow::OnMouse) +EVT_CHAR(clTreeListMainWindow::OnChar) +EVT_SET_FOCUS(clTreeListMainWindow::OnSetFocus) +EVT_KILL_FOCUS(clTreeListMainWindow::OnKillFocus) +EVT_IDLE(clTreeListMainWindow::OnIdle) +EVT_SCROLLWIN(clTreeListMainWindow::OnScroll) +EVT_MOUSE_CAPTURE_LOST(clTreeListMainWindow::OnCaptureLost) END_EVENT_TABLE() - // --------------------------------------------------------------------------- // construction/destruction // --------------------------------------------------------------------------- - -void clTreeListMainWindow::Init() { +void clTreeListMainWindow::Init() +{ m_rootItem = (clTreeListItem*)NULL; m_curItem = (clTreeListItem*)NULL; @@ -1856,19 +1762,13 @@ m_indent = MININDENT; // min. indent m_linespacing = 4; -#if !wxCHECK_VERSION(2, 5, 0) - m_hilightBrush = new wxBrush (wxSystemSettings::GetSystemColour (wxSYS_COLOUR_HIGHLIGHT), wxSOLID); - m_hilightUnfocusedBrush = new wxBrush (wxSystemSettings::GetSystemColour (wxSYS_COLOUR_BTNSHADOW), wxSOLID); -#else - m_hilightBrush = new wxBrush (wxSystemSettings::GetColour (wxSYS_COLOUR_HIGHLIGHT), wxBRUSHSTYLE_SOLID); - m_hilightUnfocusedBrush = new wxBrush (wxSystemSettings::GetColour (wxSYS_COLOUR_BTNSHADOW), wxBRUSHSTYLE_SOLID); -#endif + m_hilightBrush = new wxBrush(wxSystemSettings::GetColour(wxSYS_COLOUR_HIGHLIGHT)); + m_hilightUnfocusedBrush = new wxBrush(wxSystemSettings::GetColour(wxSYS_COLOUR_BTNSHADOW)); - m_imageListNormal = (wxImageList *) NULL; - m_imageListButtons = (wxImageList *) NULL; - m_imageListState = (wxImageList *) NULL; - m_ownsImageListNormal = m_ownsImageListButtons = - m_ownsImageListState = false; + m_imageListNormal = (wxImageList*)NULL; + m_imageListButtons = (wxImageList*)NULL; + m_imageListState = (wxImageList*)NULL; + m_ownsImageListNormal = m_ownsImageListButtons = m_ownsImageListState = false; m_imgWidth = 0, m_imgWidth2 = 0; m_imgHeight = 0, m_imgHeight2 = 0; @@ -1879,59 +1779,60 @@ m_dragItem = NULL; m_dragCol = -1; - m_editTimer = new clTreeListRenameTimer (this); + m_editTimer = new clTreeListRenameTimer(this); m_editControl = NULL; m_lastOnSame = false; m_left_down_selection = false; - m_findTimer = new wxTimer (this, -1); + m_findTimer = new wxTimer(this, -1); -#if defined( __WXMAC__ ) && defined(__WXMAC_CARBON__) - m_normalFont.MacCreateThemeFont (kThemeViewsFont); +#if defined(__WXMAC__) && defined(__WXMAC_CARBON__) + m_normalFont.MacCreateThemeFont(kThemeViewsFont); #else - m_normalFont = wxSystemSettings::GetFont (wxSYS_DEFAULT_GUI_FONT); + m_normalFont = wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT); #endif - m_boldFont = wxFont( m_normalFont.GetPointSize(), - m_normalFont.GetFamily(), - m_normalFont.GetStyle(), - wxFONTWEIGHT_BOLD, - m_normalFont.GetUnderlined(), - m_normalFont.GetFaceName(), - m_normalFont.GetEncoding()); + m_boldFont = wxFont(m_normalFont.GetPointSize(), + m_normalFont.GetFamily(), + m_normalFont.GetStyle(), + wxFONTWEIGHT_BOLD, + m_normalFont.GetUnderlined(), + m_normalFont.GetFaceName(), + m_normalFont.GetEncoding()); m_toolTip.clear(); - m_toolTipItem = (clTreeListItem *)-1; // no tooltip displayed - m_isItemToolTip = false; // so far no item-specific tooltip + m_toolTipItem = (clTreeListItem*)-1; // no tooltip displayed + m_isItemToolTip = false; // so far no item-specific tooltip } -bool clTreeListMainWindow::Create (clTreeListCtrl *parent, - wxWindowID id, - const wxPoint& pos, - const wxSize& size, - long style, - const wxValidator &validator, - const wxString& name) { - -//#ifdef __WXMAC__ -// if (style & wxTR_HAS_BUTTONS) style |= wxTR_MAC_BUTTONS; -// if (style & wxTR_HAS_BUTTONS) style &= ~wxTR_HAS_BUTTONS; -// style &= ~wxTR_LINES_AT_ROOT; -// style |= wxTR_NO_LINES; -// -// int major,minor; -// wxGetOsVersion( &major, &minor ); -// if (major < 10) style |= wxTR_ROW_LINES; -//#endif +bool clTreeListMainWindow::Create(clTreeListCtrl* parent, + wxWindowID id, + const wxPoint& pos, + const wxSize& size, + long style, + const wxValidator& validator, + const wxString& name) +{ + + //#ifdef __WXMAC__ + // if (style & wxTR_HAS_BUTTONS) style |= wxTR_MAC_BUTTONS; + // if (style & wxTR_HAS_BUTTONS) style &= ~wxTR_HAS_BUTTONS; + // style &= ~wxTR_LINES_AT_ROOT; + // style |= wxTR_NO_LINES; + // + // int major,minor; + // wxGetOsVersion( &major, &minor ); + // if (major < 10) style |= wxTR_ROW_LINES; + //#endif - wxScrolledWindow::Create (parent, id, pos, size, style|wxHSCROLL|wxVSCROLL, name); + wxScrolledWindow::Create(parent, id, pos, size, style | wxHSCROLL | wxVSCROLL, name); #if wxUSE_VALIDATORS SetValidator(validator); #endif - SetBackgroundColour(DrawingUtils::GetOutputPaneBgColour()); - + SetBackgroundColour(DrawingUtils::GetOutputPaneBgColour()); + // prevent any background repaint in order to reducing flicker SetBackgroundStyle(wxBG_STYLE_CUSTOM); @@ -1943,9 +1844,9 @@ bdc.SelectObject(bmp); bdc.SetPen(*wxGREY_PEN); bdc.DrawRectangle(-1, -1, 10, 10); - for (i = 0; i < 8; i++) { - for (j = 0; j < 8; j++) { - if (!((i + j) & 1)) { + for(i = 0; i < 8; i++) { + for(j = 0; j < 8; j++) { + if(!((i + j) & 1)) { bdc.DrawPoint(i, j); } } @@ -1954,8 +1855,8 @@ m_dottedPen = wxPen(bmp, 1); } #else -//? m_dottedPen = wxPen( *wxGREY_PEN, 1, wxDOT ); // too slow under XFree86 - m_dottedPen = wxPen( _T("grey"), 0, wxPENSTYLE_SOLID ); // Bitmap based pen is not supported by GTK! + //? m_dottedPen = wxPen( *wxGREY_PEN, 1, wxDOT ); // too slow under XFree86 + m_dottedPen = wxPen(_T("grey"), 0, wxPENSTYLE_SOLID); // Bitmap based pen is not supported by GTK! #endif m_owner = parent; @@ -1964,53 +1865,56 @@ return true; } -clTreeListMainWindow::~clTreeListMainWindow() { +clTreeListMainWindow::~clTreeListMainWindow() +{ delete m_hilightBrush; delete m_hilightUnfocusedBrush; delete m_editTimer; delete m_findTimer; - if (m_ownsImageListNormal) delete m_imageListNormal; - if (m_ownsImageListState) delete m_imageListState; - if (m_ownsImageListButtons) delete m_imageListButtons; + if(m_ownsImageListNormal) delete m_imageListNormal; + if(m_ownsImageListState) delete m_imageListState; + if(m_ownsImageListButtons) delete m_imageListButtons; - if (m_editControl) { - m_editControl->SetOwner(NULL); // prevent control from calling us during delete + if(m_editControl) { + m_editControl->SetOwner(NULL); // prevent control from calling us during delete delete m_editControl; } DeleteRoot(); } - //----------------------------------------------------------------------------- // accessors //----------------------------------------------------------------------------- -size_t clTreeListMainWindow::GetCount() const { - return m_rootItem == NULL? 0: m_rootItem->GetChildrenCount(); -} +size_t clTreeListMainWindow::GetCount() const { return m_rootItem == NULL ? 0 : m_rootItem->GetChildrenCount(); } -void clTreeListMainWindow::SetIndent (unsigned int indent) { - m_indent = wxMax ((unsigned)MININDENT, indent); +void clTreeListMainWindow::SetIndent(unsigned int indent) +{ + m_indent = wxMax((unsigned)MININDENT, indent); m_dirty = true; } -void clTreeListMainWindow::SetLineSpacing (unsigned int spacing) { +void clTreeListMainWindow::SetLineSpacing(unsigned int spacing) +{ m_linespacing = spacing; m_dirty = true; CalculateLineHeight(); } -size_t clTreeListMainWindow::GetChildrenCount (const wxTreeItemId& item, - bool recursively) { - wxCHECK_MSG (item.IsOk(), 0u, _T("invalid tree item")); - return ((clTreeListItem*)item.m_pItem)->GetChildrenCount (recursively); +size_t clTreeListMainWindow::GetChildrenCount(const wxTreeItemId& item, bool recursively) +{ + wxCHECK_MSG(item.IsOk(), 0u, _T("invalid tree item")); + return ((clTreeListItem*)item.m_pItem)->GetChildrenCount(recursively); } -void clTreeListMainWindow::SetWindowStyle (const long styles) { +void clTreeListMainWindow::SetWindowStyle(const long styles) +{ // change to selection mode, reset selection - if ((styles ^ m_windowStyle) & wxTR_MULTIPLE) { UnselectAll(); } + if((styles ^ m_windowStyle) & wxTR_MULTIPLE) { + UnselectAll(); + } // right now, just sets the styles. Eventually, we may // want to update the inherited styles, but right now // none of the parents has updatable styles @@ -2018,369 +1922,391 @@ m_dirty = true; } -void clTreeListMainWindow::SetToolTip(const wxString& tip) { +void clTreeListMainWindow::SetToolTip(const wxString& tip) +{ m_isItemToolTip = false; m_toolTip = tip; - m_toolTipItem = (clTreeListItem *)-1; // no tooltip displayed (force refresh) + m_toolTipItem = (clTreeListItem*)-1; // no tooltip displayed (force refresh) } -void clTreeListMainWindow::SetToolTip(wxToolTip *tip) { +void clTreeListMainWindow::SetToolTip(wxToolTip* tip) +{ m_isItemToolTip = false; m_toolTip = (tip == NULL) ? wxString() : tip->GetTip(); - m_toolTipItem = (clTreeListItem *)-1; // no tooltip displayed (force refresh) + m_toolTipItem = (clTreeListItem*)-1; // no tooltip displayed (force refresh) } -void clTreeListMainWindow::SetItemToolTip(const wxTreeItemId& item, const wxString &tip) { - wxCHECK_RET (item.IsOk(), _T("invalid tree item")); +void clTreeListMainWindow::SetItemToolTip(const wxTreeItemId& item, const wxString& tip) +{ + wxCHECK_RET(item.IsOk(), _T("invalid tree item")); m_isItemToolTip = true; - ((clTreeListItem*) item.m_pItem)->SetToolTip(tip); - m_toolTipItem = (clTreeListItem *)-1; // no tooltip displayed (force refresh) + ((clTreeListItem*)item.m_pItem)->SetToolTip(tip); + m_toolTipItem = (clTreeListItem*)-1; // no tooltip displayed (force refresh) } - //----------------------------------------------------------------------------- // functions to work with tree items //----------------------------------------------------------------------------- -int clTreeListMainWindow::GetItemImage (const wxTreeItemId& item, int column, - wxTreeItemIcon which) const { - wxCHECK_MSG (item.IsOk(), -1, _T("invalid tree item")); - return ((clTreeListItem*) item.m_pItem)->GetImage (column, which); +int clTreeListMainWindow::GetItemImage(const wxTreeItemId& item, int column, wxTreeItemIcon which) const +{ + wxCHECK_MSG(item.IsOk(), -1, _T("invalid tree item")); + return ((clTreeListItem*)item.m_pItem)->GetImage(column, which); } -wxTreeItemData *clTreeListMainWindow::GetItemData (const wxTreeItemId& item) const { - wxCHECK_MSG (item.IsOk(), NULL, _T("invalid tree item")); - return ((clTreeListItem*) item.m_pItem)->GetData(); +wxTreeItemData* clTreeListMainWindow::GetItemData(const wxTreeItemId& item) const +{ + wxCHECK_MSG(item.IsOk(), NULL, _T("invalid tree item")); + return ((clTreeListItem*)item.m_pItem)->GetData(); } -bool clTreeListMainWindow::GetItemBold (const wxTreeItemId& item) const { +bool clTreeListMainWindow::GetItemBold(const wxTreeItemId& item) const +{ wxCHECK_MSG(item.IsOk(), false, _T("invalid tree item")); - return ((clTreeListItem *)item.m_pItem)->IsBold(); + return ((clTreeListItem*)item.m_pItem)->IsBold(); } -wxColour clTreeListMainWindow::GetItemTextColour (const wxTreeItemId& item) const { - wxCHECK_MSG (item.IsOk(), wxNullColour, _T("invalid tree item")); - clTreeListItem *pItem = (clTreeListItem*) item.m_pItem; +wxColour clTreeListMainWindow::GetItemTextColour(const wxTreeItemId& item) const +{ + wxCHECK_MSG(item.IsOk(), wxNullColour, _T("invalid tree item")); + clTreeListItem* pItem = (clTreeListItem*)item.m_pItem; return pItem->Attr().GetTextColour(); } -wxColour clTreeListMainWindow::GetItemBackgroundColour (const wxTreeItemId& item) const { - wxCHECK_MSG (item.IsOk(), wxNullColour, _T("invalid tree item")); - clTreeListItem *pItem = (clTreeListItem*) item.m_pItem; +wxColour clTreeListMainWindow::GetItemBackgroundColour(const wxTreeItemId& item) const +{ + wxCHECK_MSG(item.IsOk(), wxNullColour, _T("invalid tree item")); + clTreeListItem* pItem = (clTreeListItem*)item.m_pItem; return pItem->Attr().GetBackgroundColour(); } -wxFont clTreeListMainWindow::GetItemFont (const wxTreeItemId& item) const { - wxCHECK_MSG (item.IsOk(), wxNullFont, _T("invalid tree item")); - clTreeListItem *pItem = (clTreeListItem*) item.m_pItem; +wxFont clTreeListMainWindow::GetItemFont(const wxTreeItemId& item) const +{ + wxCHECK_MSG(item.IsOk(), wxNullFont, _T("invalid tree item")); + clTreeListItem* pItem = (clTreeListItem*)item.m_pItem; return pItem->Attr().GetFont(); } -void clTreeListMainWindow::SetItemImage (const wxTreeItemId& item, int column, - int image, wxTreeItemIcon which) { - wxCHECK_RET (item.IsOk(), _T("invalid tree item")); - clTreeListItem *pItem = (clTreeListItem*) item.m_pItem; - pItem->SetImage (column, image, which); - wxClientDC dc (this); - CalculateSize (pItem, dc); - RefreshLine (pItem); +void clTreeListMainWindow::SetItemImage(const wxTreeItemId& item, int column, int image, wxTreeItemIcon which) +{ + wxCHECK_RET(item.IsOk(), _T("invalid tree item")); + clTreeListItem* pItem = (clTreeListItem*)item.m_pItem; + pItem->SetImage(column, image, which); + wxClientDC dc(this); + CalculateSize(pItem, dc); + RefreshLine(pItem); } -void clTreeListMainWindow::SetItemData (const wxTreeItemId& item, - wxTreeItemData *data) { - wxCHECK_RET (item.IsOk(), _T("invalid tree item")); - ((clTreeListItem*) item.m_pItem)->SetData(data); +void clTreeListMainWindow::SetItemData(const wxTreeItemId& item, wxTreeItemData* data) +{ + wxCHECK_RET(item.IsOk(), _T("invalid tree item")); + ((clTreeListItem*)item.m_pItem)->SetData(data); } -void clTreeListMainWindow::SetItemHasChildren (const wxTreeItemId& item, - bool has) { - wxCHECK_RET (item.IsOk(), _T("invalid tree item")); - clTreeListItem *pItem = (clTreeListItem*) item.m_pItem; - pItem->SetHasPlus (has); - RefreshLine (pItem); +void clTreeListMainWindow::SetItemHasChildren(const wxTreeItemId& item, bool has) +{ + wxCHECK_RET(item.IsOk(), _T("invalid tree item")); + clTreeListItem* pItem = (clTreeListItem*)item.m_pItem; + pItem->SetHasPlus(has); + RefreshLine(pItem); } -void clTreeListMainWindow::SetItemBold (const wxTreeItemId& item, bool bold) { - wxCHECK_RET (item.IsOk(), _T("invalid tree item")); - clTreeListItem *pItem = (clTreeListItem*) item.m_pItem; - if (pItem->IsBold() != bold) { // avoid redrawing if no real change - pItem->SetBold (bold); - RefreshLine (pItem); +void clTreeListMainWindow::SetItemBold(const wxTreeItemId& item, bool bold) +{ + wxCHECK_RET(item.IsOk(), _T("invalid tree item")); + clTreeListItem* pItem = (clTreeListItem*)item.m_pItem; + if(pItem->IsBold() != bold) { // avoid redrawing if no real change + pItem->SetBold(bold); + RefreshLine(pItem); } } -void clTreeListMainWindow::SetItemTextColour (const wxTreeItemId& item, - const wxColour& colour) { - wxCHECK_RET (item.IsOk(), _T("invalid tree item")); - clTreeListItem *pItem = (clTreeListItem*) item.m_pItem; - pItem->Attr().SetTextColour (colour); - RefreshLine (pItem); +void clTreeListMainWindow::SetItemTextColour(const wxTreeItemId& item, const wxColour& colour) +{ + wxCHECK_RET(item.IsOk(), _T("invalid tree item")); + clTreeListItem* pItem = (clTreeListItem*)item.m_pItem; + pItem->Attr().SetTextColour(colour); + RefreshLine(pItem); } -void clTreeListMainWindow::SetItemBackgroundColour (const wxTreeItemId& item, - const wxColour& colour) { - wxCHECK_RET (item.IsOk(), _T("invalid tree item")); - clTreeListItem *pItem = (clTreeListItem*) item.m_pItem; - pItem->Attr().SetBackgroundColour (colour); - RefreshLine (pItem); +void clTreeListMainWindow::SetItemBackgroundColour(const wxTreeItemId& item, const wxColour& colour) +{ + wxCHECK_RET(item.IsOk(), _T("invalid tree item")); + clTreeListItem* pItem = (clTreeListItem*)item.m_pItem; + pItem->Attr().SetBackgroundColour(colour); + RefreshLine(pItem); } -void clTreeListMainWindow::SetItemFont (const wxTreeItemId& item, - const wxFont& font) { - wxCHECK_RET (item.IsOk(), _T("invalid tree item")); - clTreeListItem *pItem = (clTreeListItem*) item.m_pItem; - pItem->Attr().SetFont (font); - RefreshLine (pItem); +void clTreeListMainWindow::SetItemFont(const wxTreeItemId& item, const wxFont& font) +{ + wxCHECK_RET(item.IsOk(), _T("invalid tree item")); + clTreeListItem* pItem = (clTreeListItem*)item.m_pItem; + pItem->Attr().SetFont(font); + RefreshLine(pItem); } -bool clTreeListMainWindow::SetFont (const wxFont &font) { - wxScrolledWindow::SetFont (font); +bool clTreeListMainWindow::SetFont(const wxFont& font) +{ + wxScrolledWindow::SetFont(font); m_normalFont = font; - m_boldFont = wxFont (m_normalFont.GetPointSize(), - m_normalFont.GetFamily(), - m_normalFont.GetStyle(), - wxFONTWEIGHT_BOLD, - m_normalFont.GetUnderlined(), - m_normalFont.GetFaceName()); + m_boldFont = wxFont(m_normalFont.GetPointSize(), + m_normalFont.GetFamily(), + m_normalFont.GetStyle(), + wxFONTWEIGHT_BOLD, + m_normalFont.GetUnderlined(), + m_normalFont.GetFaceName()); CalculateLineHeight(); return true; } - // ---------------------------------------------------------------------------- // item status inquiries // ---------------------------------------------------------------------------- -bool clTreeListMainWindow::IsVisible (const wxTreeItemId& item, bool fullRow, bool within) const { - wxCHECK_MSG (item.IsOk(), false, _T("invalid tree item")); +bool clTreeListMainWindow::IsVisible(const wxTreeItemId& item, bool fullRow, bool within) const +{ + wxCHECK_MSG(item.IsOk(), false, _T("invalid tree item")); // An item is only visible if it's not a descendant of a collapsed item - clTreeListItem *pItem = (clTreeListItem*) item.m_pItem; + clTreeListItem* pItem = (clTreeListItem*)item.m_pItem; clTreeListItem* parent = pItem->GetItemParent(); - while (parent) { - if (parent == m_rootItem && HasFlag(wxTR_HIDE_ROOT)) break; - if (!parent->IsExpanded()) return false; + while(parent) { + if(parent == m_rootItem && HasFlag(wxTR_HIDE_ROOT)) break; + if(!parent->IsExpanded()) return false; parent = parent->GetItemParent(); } // and the item is only visible if it is currently (fully) within the view - if (within) { + if(within) { wxSize clientSize = GetClientSize(); wxRect rect; - if ((!GetBoundingRect (item, rect)) || - ((!fullRow && rect.GetWidth() == 0) || rect.GetHeight() == 0) || - (rect.GetTop() < 0 || rect.GetBottom() >= clientSize.y) || - (!fullRow && (rect.GetLeft() < 0 || rect.GetRight() >= clientSize.x))) return false; + if((!GetBoundingRect(item, rect)) || ((!fullRow && rect.GetWidth() == 0) || rect.GetHeight() == 0) || + (rect.GetTop() < 0 || rect.GetBottom() >= clientSize.y) || + (!fullRow && (rect.GetLeft() < 0 || rect.GetRight() >= clientSize.x))) + return false; } return true; } -bool clTreeListMainWindow::HasChildren (const wxTreeItemId& item) const { - wxCHECK_MSG (item.IsOk(), false, _T("invalid tree item")); +bool clTreeListMainWindow::HasChildren(const wxTreeItemId& item) const +{ + wxCHECK_MSG(item.IsOk(), false, _T("invalid tree item")); // consider that the item does have children if it has the "+" button: it // might not have them (if it had never been expanded yet) but then it // could have them as well and it's better to err on this side rather than // disabling some operations which are restricted to the items with // children for an item which does have them - return ((clTreeListItem*) item.m_pItem)->HasPlus(); + return ((clTreeListItem*)item.m_pItem)->HasPlus(); } -bool clTreeListMainWindow::IsExpanded (const wxTreeItemId& item) const { - wxCHECK_MSG (item.IsOk(), false, _T("invalid tree item")); - return ((clTreeListItem*) item.m_pItem)->IsExpanded(); +bool clTreeListMainWindow::IsExpanded(const wxTreeItemId& item) const +{ + wxCHECK_MSG(item.IsOk(), false, _T("invalid tree item")); + return ((clTreeListItem*)item.m_pItem)->IsExpanded(); } -bool clTreeListMainWindow::IsSelected (const wxTreeItemId& item) const { - wxCHECK_MSG (item.IsOk(), false, _T("invalid tree item")); - return ((clTreeListItem*) item.m_pItem)->IsSelected(); +bool clTreeListMainWindow::IsSelected(const wxTreeItemId& item) const +{ + wxCHECK_MSG(item.IsOk(), false, _T("invalid tree item")); + return ((clTreeListItem*)item.m_pItem)->IsSelected(); } -bool clTreeListMainWindow::IsBold (const wxTreeItemId& item) const { - wxCHECK_MSG (item.IsOk(), false, _T("invalid tree item")); - return ((clTreeListItem*) item.m_pItem)->IsBold(); +bool clTreeListMainWindow::IsBold(const wxTreeItemId& item) const +{ + wxCHECK_MSG(item.IsOk(), false, _T("invalid tree item")); + return ((clTreeListItem*)item.m_pItem)->IsBold(); } // ---------------------------------------------------------------------------- // navigation // ---------------------------------------------------------------------------- -wxTreeItemId clTreeListMainWindow::GetItemParent (const wxTreeItemId& item) const { - wxCHECK_MSG (item.IsOk(), wxTreeItemId(), _T("invalid tree item")); - return ((clTreeListItem*) item.m_pItem)->GetItemParent(); +wxTreeItemId clTreeListMainWindow::GetItemParent(const wxTreeItemId& item) const +{ + wxCHECK_MSG(item.IsOk(), wxTreeItemId(), _T("invalid tree item")); + return ((clTreeListItem*)item.m_pItem)->GetItemParent(); } #if !wxCHECK_VERSION(2, 5, 0) -wxTreeItemId clTreeListMainWindow::GetFirstChild (const wxTreeItemId& item, - long& cookie) const { +wxTreeItemId clTreeListMainWindow::GetFirstChild(const wxTreeItemId& item, long& cookie) const +{ #else -wxTreeItemId clTreeListMainWindow::GetFirstChild (const wxTreeItemId& item, - wxTreeItemIdValue& cookie) const { +wxTreeItemId clTreeListMainWindow::GetFirstChild(const wxTreeItemId& item, wxTreeItemIdValue& cookie) const +{ #endif - wxCHECK_MSG (item.IsOk(), wxTreeItemId(), _T("invalid tree item")); - clArrayTreeListItems& children = ((clTreeListItem*) item.m_pItem)->GetChildren(); + wxCHECK_MSG(item.IsOk(), wxTreeItemId(), _T("invalid tree item")); + clArrayTreeListItems& children = ((clTreeListItem*)item.m_pItem)->GetChildren(); cookie = 0; - return (!children.IsEmpty())? wxTreeItemId(children.Item(0)): wxTreeItemId(); + return (!children.IsEmpty()) ? wxTreeItemId(children.Item(0)) : wxTreeItemId(); } #if !wxCHECK_VERSION(2, 5, 0) -wxTreeItemId clTreeListMainWindow::GetNextChild (const wxTreeItemId& item, - long& cookie) const { +wxTreeItemId clTreeListMainWindow::GetNextChild(const wxTreeItemId& item, long& cookie) const +{ #else -wxTreeItemId clTreeListMainWindow::GetNextChild (const wxTreeItemId& item, - wxTreeItemIdValue& cookie) const { +wxTreeItemId clTreeListMainWindow::GetNextChild(const wxTreeItemId& item, wxTreeItemIdValue& cookie) const +{ #endif - wxCHECK_MSG (item.IsOk(), wxTreeItemId(), _T("invalid tree item")); - clArrayTreeListItems& children = ((clTreeListItem*) item.m_pItem)->GetChildren(); + wxCHECK_MSG(item.IsOk(), wxTreeItemId(), _T("invalid tree item")); + clArrayTreeListItems& children = ((clTreeListItem*)item.m_pItem)->GetChildren(); // it's ok to cast cookie to long, we never have indices which overflow "void*" - long *pIndex = ((long*)&cookie); - return ((*pIndex)+1 < (long)children.Count())? wxTreeItemId(children.Item(++(*pIndex))): wxTreeItemId(); + long* pIndex = ((long*)&cookie); + return ((*pIndex) + 1 < (long)children.Count()) ? wxTreeItemId(children.Item(++(*pIndex))) : wxTreeItemId(); } #if !wxCHECK_VERSION(2, 5, 0) -wxTreeItemId clTreeListMainWindow::GetPrevChild (const wxTreeItemId& item, - long& cookie) const { +wxTreeItemId clTreeListMainWindow::GetPrevChild(const wxTreeItemId& item, long& cookie) const +{ #else -wxTreeItemId clTreeListMainWindow::GetPrevChild (const wxTreeItemId& item, - wxTreeItemIdValue& cookie) const { +wxTreeItemId clTreeListMainWindow::GetPrevChild(const wxTreeItemId& item, wxTreeItemIdValue& cookie) const +{ #endif - wxCHECK_MSG (item.IsOk(), wxTreeItemId(), _T("invalid tree item")); - clArrayTreeListItems& children = ((clTreeListItem*) item.m_pItem)->GetChildren(); + wxCHECK_MSG(item.IsOk(), wxTreeItemId(), _T("invalid tree item")); + clArrayTreeListItems& children = ((clTreeListItem*)item.m_pItem)->GetChildren(); // it's ok to cast cookie to long, we never have indices which overflow "void*" - long *pIndex = (long*)&cookie; - return ((*pIndex)-1 >= 0)? wxTreeItemId(children.Item(--(*pIndex))): wxTreeItemId(); + long* pIndex = (long*)&cookie; + return ((*pIndex) - 1 >= 0) ? wxTreeItemId(children.Item(--(*pIndex))) : wxTreeItemId(); } #if !wxCHECK_VERSION(2, 5, 0) -wxTreeItemId clTreeListMainWindow::GetLastChild (const wxTreeItemId& item, - long& cookie) const { +wxTreeItemId clTreeListMainWindow::GetLastChild(const wxTreeItemId& item, long& cookie) const +{ #else -wxTreeItemId clTreeListMainWindow::GetLastChild (const wxTreeItemId& item, - wxTreeItemIdValue& cookie) const { +wxTreeItemId clTreeListMainWindow::GetLastChild(const wxTreeItemId& item, wxTreeItemIdValue& cookie) const +{ #endif - wxCHECK_MSG (item.IsOk(), wxTreeItemId(), _T("invalid tree item")); - clArrayTreeListItems& children = ((clTreeListItem*) item.m_pItem)->GetChildren(); + wxCHECK_MSG(item.IsOk(), wxTreeItemId(), _T("invalid tree item")); + clArrayTreeListItems& children = ((clTreeListItem*)item.m_pItem)->GetChildren(); // it's ok to cast cookie to long, we never have indices which overflow "void*" - long *pIndex = ((long*)&cookie); + long* pIndex = ((long*)&cookie); (*pIndex) = (long)children.Count(); - return (!children.IsEmpty())? wxTreeItemId(children.Last()): wxTreeItemId(); + return (!children.IsEmpty()) ? wxTreeItemId(children.Last()) : wxTreeItemId(); } -wxTreeItemId clTreeListMainWindow::GetNextSibling (const wxTreeItemId& item) const { - wxCHECK_MSG (item.IsOk(), wxTreeItemId(), _T("invalid tree item")); +wxTreeItemId clTreeListMainWindow::GetNextSibling(const wxTreeItemId& item) const +{ + wxCHECK_MSG(item.IsOk(), wxTreeItemId(), _T("invalid tree item")); // get parent - clTreeListItem *i = (clTreeListItem*) item.m_pItem; - clTreeListItem *parent = i->GetItemParent(); - if (!parent) return wxTreeItemId(); // root item doesn't have any siblings + clTreeListItem* i = (clTreeListItem*)item.m_pItem; + clTreeListItem* parent = i->GetItemParent(); + if(!parent) return wxTreeItemId(); // root item doesn't have any siblings // get index clArrayTreeListItems& siblings = parent->GetChildren(); - size_t index = siblings.Index (i); - wxASSERT (index != (size_t)wxNOT_FOUND); // I'm not a child of my parent? - return (index < siblings.Count()-1)? wxTreeItemId(siblings[index+1]): wxTreeItemId(); + size_t index = siblings.Index(i); + wxASSERT(index != (size_t)wxNOT_FOUND); // I'm not a child of my parent? + return (index < siblings.Count() - 1) ? wxTreeItemId(siblings[index + 1]) : wxTreeItemId(); } -wxTreeItemId clTreeListMainWindow::GetPrevSibling (const wxTreeItemId& item) const { - wxCHECK_MSG (item.IsOk(), wxTreeItemId(), _T("invalid tree item")); +wxTreeItemId clTreeListMainWindow::GetPrevSibling(const wxTreeItemId& item) const +{ + wxCHECK_MSG(item.IsOk(), wxTreeItemId(), _T("invalid tree item")); // get parent - clTreeListItem *i = (clTreeListItem*) item.m_pItem; - clTreeListItem *parent = i->GetItemParent(); - if (!parent) return wxTreeItemId(); // root item doesn't have any siblings + clTreeListItem* i = (clTreeListItem*)item.m_pItem; + clTreeListItem* parent = i->GetItemParent(); + if(!parent) return wxTreeItemId(); // root item doesn't have any siblings // get index clArrayTreeListItems& siblings = parent->GetChildren(); size_t index = siblings.Index(i); - wxASSERT (index != (size_t)wxNOT_FOUND); // I'm not a child of my parent? - return (index >= 1)? wxTreeItemId(siblings[index-1]): wxTreeItemId(); + wxASSERT(index != (size_t)wxNOT_FOUND); // I'm not a child of my parent? + return (index >= 1) ? wxTreeItemId(siblings[index - 1]) : wxTreeItemId(); } // Only for internal use right now, but should probably be public -wxTreeItemId clTreeListMainWindow::GetNext (const wxTreeItemId& item, bool fulltree) const { - wxCHECK_MSG (item.IsOk(), wxTreeItemId(), _T("invalid tree item")); +wxTreeItemId clTreeListMainWindow::GetNext(const wxTreeItemId& item, bool fulltree) const +{ + wxCHECK_MSG(item.IsOk(), wxTreeItemId(), _T("invalid tree item")); // if there are any children, return first child - if (fulltree || ((clTreeListItem*)item.m_pItem)->IsExpanded()) { + if(fulltree || ((clTreeListItem*)item.m_pItem)->IsExpanded()) { clArrayTreeListItems& children = ((clTreeListItem*)item.m_pItem)->GetChildren(); - if (children.GetCount() > 0) return children.Item (0); + if(children.GetCount() > 0) return children.Item(0); } // get sibling of this item or of the ancestors instead wxTreeItemId next; wxTreeItemId parent = item; do { - next = GetNextSibling (parent); - parent = GetItemParent (parent); - } while (!next.IsOk() && parent.IsOk()); + next = GetNextSibling(parent); + parent = GetItemParent(parent); + } while(!next.IsOk() && parent.IsOk()); return next; } // Only for internal use right now, but should probably be public -wxTreeItemId clTreeListMainWindow::GetPrev (const wxTreeItemId& item, bool fulltree) const { - wxCHECK_MSG (item.IsOk(), wxTreeItemId(), _T("invalid tree item")); +wxTreeItemId clTreeListMainWindow::GetPrev(const wxTreeItemId& item, bool fulltree) const +{ + wxCHECK_MSG(item.IsOk(), wxTreeItemId(), _T("invalid tree item")); // if there are no previous sibling get parent - wxTreeItemId prev = GetPrevSibling (item); - if (! prev.IsOk()) return GetItemParent (item); + wxTreeItemId prev = GetPrevSibling(item); + if(!prev.IsOk()) return GetItemParent(item); // while previous sibling has children, return last - while (fulltree || ((clTreeListItem*)prev.m_pItem)->IsExpanded()) { + while(fulltree || ((clTreeListItem*)prev.m_pItem)->IsExpanded()) { clArrayTreeListItems& children = ((clTreeListItem*)prev.m_pItem)->GetChildren(); - if (children.GetCount() == 0) break; - prev = children.Item (children.GetCount() - 1); + if(children.GetCount() == 0) break; + prev = children.Item(children.GetCount() - 1); } return prev; } -wxTreeItemId clTreeListMainWindow::GetFirstExpandedItem() const { - return GetNextExpanded (GetRootItem()); -} +wxTreeItemId clTreeListMainWindow::GetFirstExpandedItem() const { return GetNextExpanded(GetRootItem()); } -wxTreeItemId clTreeListMainWindow::GetNextExpanded (const wxTreeItemId& item) const { - wxCHECK_MSG (item.IsOk(), wxTreeItemId(), _T("invalid tree item")); - return GetNext (item, false); +wxTreeItemId clTreeListMainWindow::GetNextExpanded(const wxTreeItemId& item) const +{ + wxCHECK_MSG(item.IsOk(), wxTreeItemId(), _T("invalid tree item")); + return GetNext(item, false); } -wxTreeItemId clTreeListMainWindow::GetPrevExpanded (const wxTreeItemId& item) const { - wxCHECK_MSG (item.IsOk(), wxTreeItemId(), _T("invalid tree item")); - return GetPrev (item, false); +wxTreeItemId clTreeListMainWindow::GetPrevExpanded(const wxTreeItemId& item) const +{ + wxCHECK_MSG(item.IsOk(), wxTreeItemId(), _T("invalid tree item")); + return GetPrev(item, false); } -wxTreeItemId clTreeListMainWindow::GetFirstVisible(bool fullRow, bool within) const { - if (HasFlag(wxTR_HIDE_ROOT) || ! IsVisible(GetRootItem(), fullRow, within)) { - return GetNextVisible (GetRootItem(), fullRow, within); +wxTreeItemId clTreeListMainWindow::GetFirstVisible(bool fullRow, bool within) const +{ + if(HasFlag(wxTR_HIDE_ROOT) || !IsVisible(GetRootItem(), fullRow, within)) { + return GetNextVisible(GetRootItem(), fullRow, within); } else { return GetRootItem(); } } -wxTreeItemId clTreeListMainWindow::GetNextVisible (const wxTreeItemId& item, bool fullRow, bool within) const { - wxCHECK_MSG (item.IsOk(), wxTreeItemId(), _T("invalid tree item")); - wxTreeItemId id = GetNext (item, false); - while (id.IsOk()) { - if (IsVisible (id, fullRow, within)) return id; - id = GetNext (id, false); +wxTreeItemId clTreeListMainWindow::GetNextVisible(const wxTreeItemId& item, bool fullRow, bool within) const +{ + wxCHECK_MSG(item.IsOk(), wxTreeItemId(), _T("invalid tree item")); + wxTreeItemId id = GetNext(item, false); + while(id.IsOk()) { + if(IsVisible(id, fullRow, within)) return id; + id = GetNext(id, false); } return wxTreeItemId(); } -wxTreeItemId clTreeListMainWindow::GetLastVisible ( bool fullRow, bool within) const { - wxCHECK_MSG (GetRootItem().IsOk(), wxTreeItemId(), _T("invalid tree item")); +wxTreeItemId clTreeListMainWindow::GetLastVisible(bool fullRow, bool within) const +{ + wxCHECK_MSG(GetRootItem().IsOk(), wxTreeItemId(), _T("invalid tree item")); wxTreeItemId id = GetRootItem(); wxTreeItemId res = id; - while ((id = GetNext (id, false)).IsOk()) { - if (IsVisible (id, fullRow, within)) res = id; + while((id = GetNext(id, false)).IsOk()) { + if(IsVisible(id, fullRow, within)) res = id; } return res; } -wxTreeItemId clTreeListMainWindow::GetPrevVisible (const wxTreeItemId& item, bool fullRow, bool within) const { - wxCHECK_MSG (item.IsOk(), wxTreeItemId(), _T("invalid tree item")); - wxTreeItemId id = GetPrev (item, true); - while (id.IsOk()) { - if (IsVisible (id, fullRow, within)) return id; +wxTreeItemId clTreeListMainWindow::GetPrevVisible(const wxTreeItemId& item, bool fullRow, bool within) const +{ + wxCHECK_MSG(item.IsOk(), wxTreeItemId(), _T("invalid tree item")); + wxTreeItemId id = GetPrev(item, true); + while(id.IsOk()) { + if(IsVisible(id, fullRow, within)) return id; id = GetPrev(id, true); } return wxTreeItemId(); @@ -2392,52 +2318,53 @@ // ---------------------------- ADD OPERATION ------------------------------- -wxTreeItemId clTreeListMainWindow::DoInsertItem (const wxTreeItemId& parentId, - size_t previous, - const wxString& text, - int image, int selImage, - wxTreeItemData *data) { - clTreeListItem *parent = (clTreeListItem*)parentId.m_pItem; - wxCHECK_MSG (parent, wxTreeItemId(), _T("item must have a parent, at least root!") ); +wxTreeItemId clTreeListMainWindow::DoInsertItem(const wxTreeItemId& parentId, + size_t previous, + const wxString& text, + int image, + int selImage, + wxTreeItemData* data) +{ + clTreeListItem* parent = (clTreeListItem*)parentId.m_pItem; + wxCHECK_MSG(parent, wxTreeItemId(), _T("item must have a parent, at least root!")); m_dirty = true; // do this first so stuff below doesn't cause flicker wxArrayString arr; - arr.Alloc (GetColumnCount()); - for (int i = 0; i < (int)GetColumnCount(); ++i) arr.Add (wxEmptyString); + arr.Alloc(GetColumnCount()); + for(int i = 0; i < (int)GetColumnCount(); ++i) arr.Add(wxEmptyString); arr[m_main_column] = text; - clTreeListItem *item = new clTreeListItem (this, parent, arr, image, selImage, data); - if (data != NULL) { + clTreeListItem* item = new clTreeListItem(this, parent, arr, image, selImage, data); + if(data != NULL) { #if !wxCHECK_VERSION(2, 5, 0) - data->SetId ((long)item); + data->SetId((long)item); #else - data->SetId (item); + data->SetId(item); #endif } - parent->Insert (item, previous); + parent->Insert(item, previous); return item; } -wxTreeItemId clTreeListMainWindow::AddRoot (const wxString& text, - int image, int selImage, - wxTreeItemData *data) { +wxTreeItemId clTreeListMainWindow::AddRoot(const wxString& text, int image, int selImage, wxTreeItemData* data) +{ wxCHECK_MSG(!m_rootItem, wxTreeItemId(), _T("tree can have only one root")); wxCHECK_MSG(GetColumnCount(), wxTreeItemId(), _T("Add column(s) before adding the root item")); m_dirty = true; // do this first so stuff below doesn't cause flicker wxArrayString arr; - arr.Alloc (GetColumnCount()); - for (int i = 0; i < (int)GetColumnCount(); ++i) arr.Add (wxEmptyString); + arr.Alloc(GetColumnCount()); + for(int i = 0; i < (int)GetColumnCount(); ++i) arr.Add(wxEmptyString); arr[m_main_column] = text; - m_rootItem = new clTreeListItem (this, (clTreeListItem *)NULL, arr, image, selImage, data); - if (data != NULL) { + m_rootItem = new clTreeListItem(this, (clTreeListItem*)NULL, arr, image, selImage, data); + if(data != NULL) { #if !wxCHECK_VERSION(2, 5, 0) data->SetId((long)m_rootItem); #else data->SetId(m_rootItem); #endif } - if (HasFlag(wxTR_HIDE_ROOT)) { + if(HasFlag(wxTR_HIDE_ROOT)) { // if we will hide the root, make sure children are visible m_rootItem->SetHasPlus(); m_rootItem->Expand(); @@ -2448,148 +2375,156 @@ #endif // TODO: suspect that deleting and recreating a root can leave a number of members dangling // (here m_curItem should actually be set via SetCurrentItem() ) - m_curItem = (clTreeListItem*)GetFirstChild (m_rootItem, cookie).m_pItem; + m_curItem = (clTreeListItem*)GetFirstChild(m_rootItem, cookie).m_pItem; } return m_rootItem; } -wxTreeItemId clTreeListMainWindow::PrependItem (const wxTreeItemId& parent, - const wxString& text, - int image, int selImage, - wxTreeItemData *data) { - return DoInsertItem (parent, 0u, text, image, selImage, data); +wxTreeItemId clTreeListMainWindow::PrependItem(const wxTreeItemId& parent, + const wxString& text, + int image, + int selImage, + wxTreeItemData* data) +{ + return DoInsertItem(parent, 0u, text, image, selImage, data); } -wxTreeItemId clTreeListMainWindow::InsertItem (const wxTreeItemId& parentId, - const wxTreeItemId& idPrevious, - const wxString& text, - int image, int selImage, - wxTreeItemData *data) { - clTreeListItem *parent = (clTreeListItem*)parentId.m_pItem; - wxCHECK_MSG (parent, wxTreeItemId(), _T("item must have a parent, at least root!") ); +wxTreeItemId clTreeListMainWindow::InsertItem(const wxTreeItemId& parentId, + const wxTreeItemId& idPrevious, + const wxString& text, + int image, + int selImage, + wxTreeItemData* data) +{ + clTreeListItem* parent = (clTreeListItem*)parentId.m_pItem; + wxCHECK_MSG(parent, wxTreeItemId(), _T("item must have a parent, at least root!")); - int index = parent->GetChildren().Index((clTreeListItem*) idPrevious.m_pItem); - wxASSERT_MSG( index != wxNOT_FOUND, - _T("previous item in wxTreeListMainWindow::InsertItem() is not a sibling") ); + int index = parent->GetChildren().Index((clTreeListItem*)idPrevious.m_pItem); + wxASSERT_MSG(index != wxNOT_FOUND, _T("previous item in wxTreeListMainWindow::InsertItem() is not a sibling")); - return DoInsertItem (parentId, ++index, text, image, selImage, data); + return DoInsertItem(parentId, ++index, text, image, selImage, data); } -wxTreeItemId clTreeListMainWindow::InsertItem (const wxTreeItemId& parentId, - size_t before, - const wxString& text, - int image, int selImage, - wxTreeItemData *data) { - clTreeListItem *parent = (clTreeListItem*)parentId.m_pItem; - wxCHECK_MSG (parent, wxTreeItemId(), _T("item must have a parent, at least root!") ); +wxTreeItemId clTreeListMainWindow::InsertItem(const wxTreeItemId& parentId, + size_t before, + const wxString& text, + int image, + int selImage, + wxTreeItemData* data) +{ + clTreeListItem* parent = (clTreeListItem*)parentId.m_pItem; + wxCHECK_MSG(parent, wxTreeItemId(), _T("item must have a parent, at least root!")); - return DoInsertItem (parentId, before, text, image, selImage, data); + return DoInsertItem(parentId, before, text, image, selImage, data); } -wxTreeItemId clTreeListMainWindow::AppendItem (const wxTreeItemId& parentId, - const wxString& text, - int image, int selImage, - wxTreeItemData *data) { - clTreeListItem *parent = (clTreeListItem*) parentId.m_pItem; - wxCHECK_MSG (parent, wxTreeItemId(), _T("item must have a parent, at least root!") ); +wxTreeItemId clTreeListMainWindow::AppendItem(const wxTreeItemId& parentId, + const wxString& text, + int image, + int selImage, + wxTreeItemData* data) +{ + clTreeListItem* parent = (clTreeListItem*)parentId.m_pItem; + wxCHECK_MSG(parent, wxTreeItemId(), _T("item must have a parent, at least root!")); - return DoInsertItem (parent, parent->GetChildren().Count(), text, image, selImage, data); + return DoInsertItem(parent, parent->GetChildren().Count(), text, image, selImage, data); } - // -------------------------- DELETE OPERATION ------------------------------ -void clTreeListMainWindow::Delete (const wxTreeItemId& itemId) { - if (! itemId.IsOk()) return; - clTreeListItem *item = (clTreeListItem*) itemId.m_pItem; - clTreeListItem *parent = item->GetItemParent(); - wxCHECK_RET (item != m_rootItem, _T("invalid item, root may not be deleted this way!")); +void clTreeListMainWindow::Delete(const wxTreeItemId& itemId) +{ + if(!itemId.IsOk()) return; + clTreeListItem* item = (clTreeListItem*)itemId.m_pItem; + clTreeListItem* parent = item->GetItemParent(); + wxCHECK_RET(item != m_rootItem, _T("invalid item, root may not be deleted this way!")); // recursive delete DoDeleteItem(item); // update parent --CAUTION: must come after delete itself, so that item's // siblings may be found - if (parent) { - parent->GetChildren().Remove (item); // remove by value + if(parent) { + parent->GetChildren().Remove(item); // remove by value } } - -void clTreeListMainWindow::DeleteRoot() { - if (! m_rootItem) return; +void clTreeListMainWindow::DeleteRoot() +{ + if(!m_rootItem) return; SetCurrentItem((clTreeListItem*)NULL); m_selectItem = (clTreeListItem*)NULL; m_shiftItem = (clTreeListItem*)NULL; - DeleteChildren (m_rootItem); + DeleteChildren(m_rootItem); SendEvent(wxEVT_COMMAND_TREE_DELETE_ITEM, m_rootItem); - delete m_rootItem; m_rootItem = NULL; + delete m_rootItem; + m_rootItem = NULL; } - -void clTreeListMainWindow::DeleteChildren (const wxTreeItemId& itemId) { - if (! itemId.IsOk()) return; - clTreeListItem *item = (clTreeListItem*) itemId.m_pItem; +void clTreeListMainWindow::DeleteChildren(const wxTreeItemId& itemId) +{ + if(!itemId.IsOk()) return; + clTreeListItem* item = (clTreeListItem*)itemId.m_pItem; // recursive delete on all children, starting from the right to prevent // multiple selection changes (see m_curItem handling in DoDeleteItem() ) clArrayTreeListItems& children = item->GetChildren(); - for (size_t n = children.GetCount(); n>0; n--) { - DoDeleteItem(children[n-1]); + for(size_t n = children.GetCount(); n > 0; n--) { + DoDeleteItem(children[n - 1]); // immediately remove child from array, otherwise it might get selected // as current item (see m_curItem handling in DoDeleteItem() ) - children.RemoveAt(n-1); + children.RemoveAt(n - 1); } } - -void clTreeListMainWindow::DoDeleteItem(clTreeListItem *item) { - wxCHECK_RET (item, _T("invalid item for delete!")); +void clTreeListMainWindow::DoDeleteItem(clTreeListItem* item) +{ + wxCHECK_RET(item, _T("invalid item for delete!")); m_dirty = true; // do this first so stuff below doesn't cause flicker // cancel any editing - if (m_editControl) { - m_editControl->EndEdit(true); // cancelled + if(m_editControl) { + m_editControl->EndEdit(true); // cancelled } // cancel any dragging - if (item == m_dragItem) { + if(item == m_dragItem) { // stop dragging m_isDragStarted = m_isDragging = false; - if (HasCapture()) ReleaseMouse(); + if(HasCapture()) ReleaseMouse(); } // don't stay with invalid m_curItem: take next sibling or reset to NULL // NOTE: this might be slighty inefficient when deleting a whole tree // but has the advantage that all deletion side-effects are handled here - if (item == m_curItem) { + if(item == m_curItem) { SetCurrentItem(item->GetItemParent()); - if (m_curItem) { + if(m_curItem) { clArrayTreeListItems& siblings = m_curItem->GetChildren(); - size_t index = siblings.Index (item); - wxASSERT (index != (size_t)wxNOT_FOUND); // I'm not a child of my parent? - SetCurrentItem(index < siblings.Count()-1 ? siblings[index+1]: (clTreeListItem*)NULL); + size_t index = siblings.Index(item); + wxASSERT(index != (size_t)wxNOT_FOUND); // I'm not a child of my parent? + SetCurrentItem(index < siblings.Count() - 1 ? siblings[index + 1] : (clTreeListItem*)NULL); } } // don't stay with invalid m_shiftItem: reset it to NULL - if (item == m_shiftItem) m_shiftItem = (clTreeListItem*)NULL; + if(item == m_shiftItem) m_shiftItem = (clTreeListItem*)NULL; // don't stay with invalid m_selectItem: default to current item - if (item == m_selectItem) { + if(item == m_selectItem) { m_selectItem = m_curItem; - SelectItem(m_selectItem, (wxTreeItemId*)NULL, true); // unselect others + SelectItem(m_selectItem, (wxTreeItemId*)NULL, true); // unselect others } // recurse children, starting from the right to prevent multiple selection // changes (see m_curItem handling above) clArrayTreeListItems& children = item->GetChildren(); - for (size_t n = children.GetCount(); n>0; n--) { - DoDeleteItem(children[n-1]); + for(size_t n = children.GetCount(); n > 0; n--) { + DoDeleteItem(children[n - 1]); // immediately remove child from array, otherwise it might get selected // as current item (see m_curItem handling above) - children.RemoveAt(n-1); + children.RemoveAt(n - 1); } // delete item itself @@ -2597,124 +2532,129 @@ delete item; } - // ---------------------------------------------------------------------------- -void clTreeListMainWindow::SetCurrentItem(clTreeListItem *item) { -clTreeListItem *old_item; +void clTreeListMainWindow::SetCurrentItem(clTreeListItem* item) +{ + clTreeListItem* old_item; - old_item = m_curItem; m_curItem = item; + old_item = m_curItem; + m_curItem = item; // change of item, redraw previous - if (old_item != NULL && old_item != item) { + if(old_item != NULL && old_item != item) { RefreshLine(old_item); } - } // ---------------------------------------------------------------------------- -void clTreeListMainWindow::Expand (const wxTreeItemId& itemId) { - clTreeListItem *item = (clTreeListItem*) itemId.m_pItem; - wxCHECK_RET (item, _T("invalid item in wxTreeListMainWindow::Expand") ); +void clTreeListMainWindow::Expand(const wxTreeItemId& itemId) +{ + clTreeListItem* item = (clTreeListItem*)itemId.m_pItem; + wxCHECK_RET(item, _T("invalid item in wxTreeListMainWindow::Expand")); - if (!item->HasPlus() || item->IsExpanded()) return; + if(!item->HasPlus() || item->IsExpanded()) return; // send event to user code wxTreeEvent event(wxEVT_COMMAND_TREE_ITEM_EXPANDING, 0); event.SetInt(m_curColumn); - if (SendEvent(0, item, &event) && !event.IsAllowed()) return; // expand canceled + if(SendEvent(0, item, &event) && !event.IsAllowed()) return; // expand canceled item->Expand(); m_dirty = true; // send event to user code - event.SetEventType (wxEVT_COMMAND_TREE_ITEM_EXPANDED); + event.SetEventType(wxEVT_COMMAND_TREE_ITEM_EXPANDED); SendEvent(0, NULL, &event); } -void clTreeListMainWindow::ExpandAll (const wxTreeItemId& itemId) { - wxCHECK_RET (itemId.IsOk(), _T("invalid tree item")); +void clTreeListMainWindow::ExpandAll(const wxTreeItemId& itemId) +{ + wxCHECK_RET(itemId.IsOk(), _T("invalid tree item")); - Expand (itemId); - if (!IsExpanded (itemId)) return; + Expand(itemId); + if(!IsExpanded(itemId)) return; #if !wxCHECK_VERSION(2, 5, 0) long cookie; #else wxTreeItemIdValue cookie; #endif - wxTreeItemId child = GetFirstChild (itemId, cookie); - while (child.IsOk()) { - ExpandAll (child); - child = GetNextChild (itemId, cookie); + wxTreeItemId child = GetFirstChild(itemId, cookie); + while(child.IsOk()) { + ExpandAll(child); + child = GetNextChild(itemId, cookie); } } -void clTreeListMainWindow::Collapse (const wxTreeItemId& itemId) { - clTreeListItem *item = (clTreeListItem*) itemId.m_pItem; - wxCHECK_RET (item, _T("invalid item in wxTreeListMainWindow::Collapse") ); +void clTreeListMainWindow::Collapse(const wxTreeItemId& itemId) +{ + clTreeListItem* item = (clTreeListItem*)itemId.m_pItem; + wxCHECK_RET(item, _T("invalid item in wxTreeListMainWindow::Collapse")); - if (!item->HasPlus() || !item->IsExpanded()) return; + if(!item->HasPlus() || !item->IsExpanded()) return; // send event to user code - wxTreeEvent event (wxEVT_COMMAND_TREE_ITEM_COLLAPSING, 0 ); + wxTreeEvent event(wxEVT_COMMAND_TREE_ITEM_COLLAPSING, 0); event.SetInt(m_curColumn); - if (SendEvent(0, item, &event) && !event.IsAllowed()) return; // collapse canceled + if(SendEvent(0, item, &event) && !event.IsAllowed()) return; // collapse canceled item->Collapse(); m_dirty = true; // send event to user code - event.SetEventType (wxEVT_COMMAND_TREE_ITEM_COLLAPSED); + event.SetEventType(wxEVT_COMMAND_TREE_ITEM_COLLAPSED); SendEvent(0, NULL, &event); } -void clTreeListMainWindow::CollapseAndReset (const wxTreeItemId& item) { - wxCHECK_RET (item.IsOk(), _T("invalid tree item")); +void clTreeListMainWindow::CollapseAndReset(const wxTreeItemId& item) +{ + wxCHECK_RET(item.IsOk(), _T("invalid tree item")); - Collapse (item); - DeleteChildren (item); + Collapse(item); + DeleteChildren(item); } -void clTreeListMainWindow::Toggle (const wxTreeItemId& itemId) { - wxCHECK_RET (itemId.IsOk(), _T("invalid tree item")); +void clTreeListMainWindow::Toggle(const wxTreeItemId& itemId) +{ + wxCHECK_RET(itemId.IsOk(), _T("invalid tree item")); - if (IsExpanded (itemId)) { - Collapse (itemId); - }else{ - Expand (itemId); + if(IsExpanded(itemId)) { + Collapse(itemId); + } else { + Expand(itemId); } } -void clTreeListMainWindow::Unselect() { - if (m_selectItem) { - m_selectItem->SetHilight (false); - RefreshLine (m_selectItem); +void clTreeListMainWindow::Unselect() +{ + if(m_selectItem) { + m_selectItem->SetHilight(false); + RefreshLine(m_selectItem); m_selectItem = (clTreeListItem*)NULL; } } -void clTreeListMainWindow::UnselectAllChildren (clTreeListItem *item) { - wxCHECK_RET (item, _T("invalid tree item")); +void clTreeListMainWindow::UnselectAllChildren(clTreeListItem* item) +{ + wxCHECK_RET(item, _T("invalid tree item")); - if (item->IsSelected()) { - item->SetHilight (false); - RefreshLine (item); - if (item == m_selectItem) m_selectItem = (clTreeListItem*)NULL; - if (item != m_curItem) m_lastOnSame = false; // selection change, so reset edit marker + if(item->IsSelected()) { + item->SetHilight(false); + RefreshLine(item); + if(item == m_selectItem) m_selectItem = (clTreeListItem*)NULL; + if(item != m_curItem) m_lastOnSame = false; // selection change, so reset edit marker } - if (item->HasChildren()) { + if(item->HasChildren()) { clArrayTreeListItems& children = item->GetChildren(); size_t count = children.Count(); - for (size_t n = 0; n < count; ++n) { - UnselectAllChildren (children[n]); + for(size_t n = 0; n < count; ++n) { + UnselectAllChildren(children[n]); } } } -void clTreeListMainWindow::UnselectAll() { - UnselectAllChildren ((clTreeListItem*)GetRootItem().m_pItem); -} +void clTreeListMainWindow::UnselectAll() { UnselectAllChildren((clTreeListItem*)GetRootItem().m_pItem); } // Recursive function ! // To stop we must have crt_itemGetItemParent(); +bool clTreeListMainWindow::TagNextChildren(clTreeListItem* crt_item, clTreeListItem* last_item) +{ + clTreeListItem* parent = crt_item->GetItemParent(); - if (!parent) {// This is root item - return TagAllChildrenUntilLast (crt_item, last_item); + if(!parent) { // This is root item + return TagAllChildrenUntilLast(crt_item, last_item); } clArrayTreeListItems& children = parent->GetChildren(); int index = children.Index(crt_item); - wxASSERT (index != wxNOT_FOUND); // I'm not a child of my parent? + wxASSERT(index != wxNOT_FOUND); // I'm not a child of my parent? - if ((parent->HasChildren() && parent->IsExpanded()) || - ((parent == (clTreeListItem*)GetRootItem().m_pItem) && HasFlag(wxTR_HIDE_ROOT))) { + if((parent->HasChildren() && parent->IsExpanded()) || + ((parent == (clTreeListItem*)GetRootItem().m_pItem) && HasFlag(wxTR_HIDE_ROOT))) { size_t count = children.Count(); - for (size_t n = (index+1); n < count; ++n) { - if (TagAllChildrenUntilLast (children[n], last_item)) return true; + for(size_t n = (index + 1); n < count; ++n) { + if(TagAllChildrenUntilLast(children[n], last_item)) return true; } } - return TagNextChildren (parent, last_item); + return TagNextChildren(parent, last_item); } -bool clTreeListMainWindow::TagAllChildrenUntilLast (clTreeListItem *crt_item, - clTreeListItem *last_item) { - crt_item->SetHilight (true); +bool clTreeListMainWindow::TagAllChildrenUntilLast(clTreeListItem* crt_item, clTreeListItem* last_item) +{ + crt_item->SetHilight(true); RefreshLine(crt_item); - if (crt_item==last_item) return true; + if(crt_item == last_item) return true; - if (crt_item->HasChildren() && crt_item->IsExpanded()) { + if(crt_item->HasChildren() && crt_item->IsExpanded()) { clArrayTreeListItems& children = crt_item->GetChildren(); size_t count = children.Count(); - for (size_t n = 0; n < count; ++n) { - if (TagAllChildrenUntilLast (children[n], last_item)) return true; + for(size_t n = 0; n < count; ++n) { + if(TagAllChildrenUntilLast(children[n], last_item)) return true; } } return false; } -bool clTreeListMainWindow::SelectItem (const wxTreeItemId& itemId, - const wxTreeItemId& lastId, - bool unselect_others) { +bool clTreeListMainWindow::SelectItem(const wxTreeItemId& itemId, const wxTreeItemId& lastId, bool unselect_others) +{ - clTreeListItem *item = itemId.IsOk() ? (clTreeListItem*) itemId.m_pItem : NULL; + clTreeListItem* item = itemId.IsOk() ? (clTreeListItem*)itemId.m_pItem : NULL; // send selecting event to the user code - wxTreeEvent event( wxEVT_COMMAND_TREE_SEL_CHANGING, 0); + wxTreeEvent event(wxEVT_COMMAND_TREE_SEL_CHANGING, 0); event.SetInt(m_curColumn); #if !wxCHECK_VERSION(2, 5, 0) - event.SetOldItem ((long)m_curItem); + event.SetOldItem((long)m_curItem); #else - event.SetOldItem (m_curItem); + event.SetOldItem(m_curItem); #endif - if (SendEvent(0, item, &event) && !event.IsAllowed()) return false; // veto on selection change + if(SendEvent(0, item, &event) && !event.IsAllowed()) return false; // veto on selection change // unselect all if unselect other items bool bUnselectedAll = false; // see that UnselectAll is done only once - if (unselect_others) { - if (HasFlag(wxTR_MULTIPLE)) { - UnselectAll(); bUnselectedAll = true; - }else{ + if(unselect_others) { + if(HasFlag(wxTR_MULTIPLE)) { + UnselectAll(); + bUnselectedAll = true; + } else { Unselect(); // to speed up thing } } // select item range - if (lastId.IsOk() && itemId.IsOk() && (itemId != lastId)) { + if(lastId.IsOk() && itemId.IsOk() && (itemId != lastId)) { - if (! bUnselectedAll) UnselectAll(); - clTreeListItem *last = (clTreeListItem*) lastId.m_pItem; + if(!bUnselectedAll) UnselectAll(); + clTreeListItem* last = (clTreeListItem*)lastId.m_pItem; // ensure that the position of the item it calculated in any case - if (m_dirty) CalculatePositions(); + if(m_dirty) CalculatePositions(); // select item range according Y-position - if (last->GetY() < item->GetY()) { - if (!TagAllChildrenUntilLast (last, item)) { - TagNextChildren (last, item); + if(last->GetY() < item->GetY()) { + if(!TagAllChildrenUntilLast(last, item)) { + TagNextChildren(last, item); } - }else{ - if (!TagAllChildrenUntilLast (item, last)) { - TagNextChildren (item, last); + } else { + if(!TagAllChildrenUntilLast(item, last)) { + TagNextChildren(item, last); } } - // or select single item - }else if (itemId.IsOk()) { + // or select single item + } else if(itemId.IsOk()) { // select item according its old selection - item->SetHilight (!item->IsSelected()); - RefreshLine (item); - if (unselect_others) { - m_selectItem = (item->IsSelected())? item: (clTreeListItem*)NULL; + item->SetHilight(!item->IsSelected()); + RefreshLine(item); + if(unselect_others) { + m_selectItem = (item->IsSelected()) ? item : (clTreeListItem*)NULL; } - // or select nothing + // or select nothing } else { - if (! bUnselectedAll) UnselectAll(); + if(!bUnselectedAll) UnselectAll(); } // send event to user code @@ -2831,136 +2771,143 @@ return true; } -void clTreeListMainWindow::SelectAll() { +void clTreeListMainWindow::SelectAll() +{ wxTreeItemId root = GetRootItem(); - wxCHECK_RET (HasFlag(wxTR_MULTIPLE), _T("invalid tree style")); - wxCHECK_RET (root.IsOk(), _T("no tree")); + wxCHECK_RET(HasFlag(wxTR_MULTIPLE), _T("invalid tree style")); + wxCHECK_RET(root.IsOk(), _T("no tree")); // send event to user code - wxTreeEvent event (wxEVT_COMMAND_TREE_SEL_CHANGING, 0); + wxTreeEvent event(wxEVT_COMMAND_TREE_SEL_CHANGING, 0); #if !wxCHECK_VERSION(2, 5, 0) - event.SetOldItem ((long)m_curItem); + event.SetOldItem((long)m_curItem); #else - event.SetOldItem (m_curItem); + event.SetOldItem(m_curItem); #endif - event.SetInt (-1); // no colum clicked - if (SendEvent(0, m_rootItem, &event) && !event.IsAllowed()) return; // selection change vetoed + event.SetInt(-1); // no colum clicked + if(SendEvent(0, m_rootItem, &event) && !event.IsAllowed()) return; // selection change vetoed #if !wxCHECK_VERSION(2, 5, 0) long cookie = 0; #else wxTreeItemIdValue cookie = 0; #endif - clTreeListItem *first = (clTreeListItem *)GetFirstChild (root, cookie).m_pItem; - clTreeListItem *last = (clTreeListItem *)GetLastChild (root, cookie).m_pItem; - if (!TagAllChildrenUntilLast (first, last)) { - TagNextChildren (first, last); + clTreeListItem* first = (clTreeListItem*)GetFirstChild(root, cookie).m_pItem; + clTreeListItem* last = (clTreeListItem*)GetLastChild(root, cookie).m_pItem; + if(!TagAllChildrenUntilLast(first, last)) { + TagNextChildren(first, last); } // send event to user code - event.SetEventType (wxEVT_COMMAND_TREE_SEL_CHANGED); + event.SetEventType(wxEVT_COMMAND_TREE_SEL_CHANGED); SendEvent(0, NULL, &event); } -void clTreeListMainWindow::FillArray (clTreeListItem *item, - wxArrayTreeItemIds &array) const { - if (item->IsSelected()) array.Add (wxTreeItemId(item)); +void clTreeListMainWindow::FillArray(clTreeListItem* item, wxArrayTreeItemIds& array) const +{ + if(item->IsSelected()) array.Add(wxTreeItemId(item)); - if (item->HasChildren()) { + if(item->HasChildren()) { clArrayTreeListItems& children = item->GetChildren(); size_t count = children.GetCount(); - for (size_t n = 0; n < count; ++n) FillArray (children[n], array); + for(size_t n = 0; n < count; ++n) FillArray(children[n], array); } } -size_t clTreeListMainWindow::GetSelections (wxArrayTreeItemIds &array) const { +size_t clTreeListMainWindow::GetSelections(wxArrayTreeItemIds& array) const +{ array.Empty(); wxTreeItemId idRoot = GetRootItem(); - if (idRoot.IsOk()) FillArray ((clTreeListItem*) idRoot.m_pItem, array); + if(idRoot.IsOk()) FillArray((clTreeListItem*)idRoot.m_pItem, array); return array.Count(); } -void clTreeListMainWindow::EnsureVisible (const wxTreeItemId& item) { - if (!item.IsOk()) return; // do nothing if no item +void clTreeListMainWindow::EnsureVisible(const wxTreeItemId& item) +{ + if(!item.IsOk()) return; // do nothing if no item // first expand all parent branches - clTreeListItem *gitem = (clTreeListItem*) item.m_pItem; - clTreeListItem *parent = gitem->GetItemParent(); - while (parent) { - Expand (parent); + clTreeListItem* gitem = (clTreeListItem*)item.m_pItem; + clTreeListItem* parent = gitem->GetItemParent(); + while(parent) { + Expand(parent); parent = parent->GetItemParent(); } - ScrollTo (item); - RefreshLine (gitem); + ScrollTo(item); + RefreshLine(gitem); } -void clTreeListMainWindow::ScrollTo (const wxTreeItemId &item) { - if (!item.IsOk()) return; // do nothing if no item +void clTreeListMainWindow::ScrollTo(const wxTreeItemId& item) +{ + if(!item.IsOk()) return; // do nothing if no item // ensure that the position of the item it calculated in any case - if (m_dirty) CalculatePositions(); + if(m_dirty) CalculatePositions(); - clTreeListItem *gitem = (clTreeListItem*) item.m_pItem; + clTreeListItem* gitem = (clTreeListItem*)item.m_pItem; // now scroll to the item int item_y = gitem->GetY(); int xUnit, yUnit; - GetScrollPixelsPerUnit (&xUnit, &yUnit); + GetScrollPixelsPerUnit(&xUnit, &yUnit); int start_x = 0; int start_y = 0; - GetViewStart (&start_x, &start_y); + GetViewStart(&start_x, &start_y); start_y *= yUnit; int client_h = 0; int client_w = 0; - GetClientSize (&client_w, &client_h); + GetClientSize(&client_w, &client_h); int x = 0; int y = 0; - m_rootItem->GetSize (x, y, this); + m_rootItem->GetSize(x, y, this); x = m_owner->GetHeaderWindow()->GetWidth(); y += yUnit + 2; // one more scrollbar unit + 2 pixels - int x_pos = GetScrollPos( wxHORIZONTAL ); + int x_pos = GetScrollPos(wxHORIZONTAL); - if (item_y < start_y+3) { + if(item_y < start_y + 3) { // going down, item should appear at top - SetScrollbars (xUnit, yUnit, xUnit ? x/xUnit : 0, yUnit ? y/yUnit : 0, x_pos, yUnit ? item_y/yUnit : 0); - }else if (item_y+GetLineHeight(gitem) > start_y+client_h) { + SetScrollbars(xUnit, yUnit, xUnit ? x / xUnit : 0, yUnit ? y / yUnit : 0, x_pos, yUnit ? item_y / yUnit : 0); + } else if(item_y + GetLineHeight(gitem) > start_y + client_h) { // going up, item should appear at bottom item_y += yUnit + 2; - SetScrollbars (xUnit, yUnit, xUnit ? x/xUnit : 0, yUnit ? y/yUnit : 0, x_pos, yUnit ? (item_y+GetLineHeight(gitem)-client_h)/yUnit : 0 ); + SetScrollbars(xUnit, + yUnit, + xUnit ? x / xUnit : 0, + yUnit ? y / yUnit : 0, + x_pos, + yUnit ? (item_y + GetLineHeight(gitem) - client_h) / yUnit : 0); } } // FIXME: tree sorting functions are not reentrant and not MT-safe! -static clTreeListMainWindow *s_treeBeingSorted = NULL; +static clTreeListMainWindow* s_treeBeingSorted = NULL; -static int LINKAGEMODE tree_ctrl_compare_func(clTreeListItem **item1, - clTreeListItem **item2) +static int LINKAGEMODE tree_ctrl_compare_func(clTreeListItem** item1, clTreeListItem** item2) { - wxCHECK_MSG (s_treeBeingSorted, 0, _T("bug in wxTreeListMainWindow::SortChildren()") ); + wxCHECK_MSG(s_treeBeingSorted, 0, _T("bug in wxTreeListMainWindow::SortChildren()")); return s_treeBeingSorted->OnCompareItems(*item1, *item2); } -int clTreeListMainWindow::OnCompareItems(const wxTreeItemId& item1, - const wxTreeItemId& item2) +int clTreeListMainWindow::OnCompareItems(const wxTreeItemId& item1, const wxTreeItemId& item2) { - return m_owner->OnCompareItems (item1, item2); + return m_owner->OnCompareItems(item1, item2); } -void clTreeListMainWindow::SortChildren (const wxTreeItemId& itemId) { - wxCHECK_RET (itemId.IsOk(), _T("invalid tree item")); +void clTreeListMainWindow::SortChildren(const wxTreeItemId& itemId) +{ + wxCHECK_RET(itemId.IsOk(), _T("invalid tree item")); - clTreeListItem *item = (clTreeListItem*) itemId.m_pItem; + clTreeListItem* item = (clTreeListItem*)itemId.m_pItem; - wxCHECK_RET (!s_treeBeingSorted, - _T("wxTreeListMainWindow::SortChildren is not reentrant") ); + wxCHECK_RET(!s_treeBeingSorted, _T("wxTreeListMainWindow::SortChildren is not reentrant")); clArrayTreeListItems& children = item->GetChildren(); - if ( children.Count() > 1 ) { + if(children.Count() > 1) { m_dirty = true; s_treeBeingSorted = this; children.Sort(tree_ctrl_compare_func); @@ -2968,19 +2915,20 @@ } } -wxTreeItemId clTreeListMainWindow::FindItem (const wxTreeItemId& item, const wxString& str, int mode) { +wxTreeItemId clTreeListMainWindow::FindItem(const wxTreeItemId& item, const wxString& str, int mode) +{ wxString itemText; // determine start item wxTreeItemId next = item; - if (next.IsOk()) { - if (mode & wxTL_MODE_NAV_LEVEL) { - next = GetNextSibling (next); - }else if (mode & wxTL_MODE_NAV_VISIBLE) { // - next = GetNextVisible (next, false, true); - }else if (mode & wxTL_MODE_NAV_EXPANDED) { - next = GetNextExpanded (next); - }else{ // (mode & wxTL_MODE_NAV_FULLTREE) default - next = GetNext (next, true); + if(next.IsOk()) { + if(mode & wxTL_MODE_NAV_LEVEL) { + next = GetNextSibling(next); + } else if(mode & wxTL_MODE_NAV_VISIBLE) { // + next = GetNextVisible(next, false, true); + } else if(mode & wxTL_MODE_NAV_EXPANDED) { + next = GetNextExpanded(next); + } else { // (mode & wxTL_MODE_NAV_FULLTREE) default + next = GetNext(next, true); } } @@ -2989,121 +2937,129 @@ #else wxTreeItemIdValue cookie = 0; #endif - if (!next.IsOk()) { + if(!next.IsOk()) { next = GetRootItem(); - if (next.IsOk() && HasFlag(wxTR_HIDE_ROOT)) { - next = GetFirstChild (GetRootItem(), cookie); + if(next.IsOk() && HasFlag(wxTR_HIDE_ROOT)) { + next = GetFirstChild(GetRootItem(), cookie); } } - if (!next.IsOk()) return (wxTreeItemId*)NULL; + if(!next.IsOk()) return (wxTreeItemId*)NULL; // start checking the next items - while (next.IsOk() && (next != item)) { - if (mode & wxTL_MODE_FIND_PARTIAL) { - itemText = GetItemText (next).Mid (0, str.Length()); - }else{ - itemText = GetItemText (next); - } - if (mode & wxTL_MODE_FIND_NOCASE) { - if (itemText.CmpNoCase (str) == 0) return next; - }else{ - if (itemText.Cmp (str) == 0) return next; - } - if (mode & wxTL_MODE_NAV_LEVEL) { - next = GetNextSibling (next); - }else if (mode & wxTL_MODE_NAV_VISIBLE) { // - next = GetNextVisible (next, false, true); - }else if (mode & wxTL_MODE_NAV_EXPANDED) { - next = GetNextExpanded (next); - }else{ // (mode & wxTL_MODE_NAV_FULLTREE) default - next = GetNext (next, true); + while(next.IsOk() && (next != item)) { + if(mode & wxTL_MODE_FIND_PARTIAL) { + itemText = GetItemText(next).Mid(0, str.Length()); + } else { + itemText = GetItemText(next); + } + if(mode & wxTL_MODE_FIND_NOCASE) { + if(itemText.CmpNoCase(str) == 0) return next; + } else { + if(itemText.Cmp(str) == 0) return next; + } + if(mode & wxTL_MODE_NAV_LEVEL) { + next = GetNextSibling(next); + } else if(mode & wxTL_MODE_NAV_VISIBLE) { // + next = GetNextVisible(next, false, true); + } else if(mode & wxTL_MODE_NAV_EXPANDED) { + next = GetNextExpanded(next); + } else { // (mode & wxTL_MODE_NAV_FULLTREE) default + next = GetNext(next, true); } - if (!next.IsOk() && item.IsOk()) { + if(!next.IsOk() && item.IsOk()) { next = (clTreeListItem*)GetRootItem().m_pItem; - if (HasFlag(wxTR_HIDE_ROOT)) { - next = (clTreeListItem*)GetNextChild (GetRootItem().m_pItem, cookie).m_pItem; + if(HasFlag(wxTR_HIDE_ROOT)) { + next = (clTreeListItem*)GetNextChild(GetRootItem().m_pItem, cookie).m_pItem; } } } return (wxTreeItemId*)NULL; } -void clTreeListMainWindow::SetDragItem (const wxTreeItemId& item) { - clTreeListItem *prevItem = m_dragItem; - m_dragItem = (clTreeListItem*) item.m_pItem; - if (prevItem) RefreshLine (prevItem); - if (m_dragItem) RefreshLine (m_dragItem); +void clTreeListMainWindow::SetDragItem(const wxTreeItemId& item) +{ + clTreeListItem* prevItem = m_dragItem; + m_dragItem = (clTreeListItem*)item.m_pItem; + if(prevItem) RefreshLine(prevItem); + if(m_dragItem) RefreshLine(m_dragItem); } -void clTreeListMainWindow::CalculateLineHeight() { - wxClientDC dc (this); - dc.SetFont (m_normalFont); +void clTreeListMainWindow::CalculateLineHeight() +{ + wxClientDC dc(this); + dc.SetFont(m_normalFont); m_lineHeight = (int)(dc.GetCharHeight() + m_linespacing); - if (m_imageListNormal) { + if(m_imageListNormal) { // Calculate a m_lineHeight value from the normal Image sizes. // May be toggle off. Then wxTreeListMainWindow will spread when // necessary (which might look ugly). int n = m_imageListNormal->GetImageCount(); - for (int i = 0; i < n ; i++) { + for(int i = 0; i < n; i++) { int width = 0, height = 0; m_imageListNormal->GetSize(i, width, height); - if (height > m_lineHeight) m_lineHeight = height + m_linespacing; + if(height > m_lineHeight) m_lineHeight = height + m_linespacing; } } - if (m_imageListButtons) { + if(m_imageListButtons) { // Calculate a m_lineHeight value from the Button image sizes. // May be toggle off. Then wxTreeListMainWindow will spread when // necessary (which might look ugly). int n = m_imageListButtons->GetImageCount(); - for (int i = 0; i < n ; i++) { + for(int i = 0; i < n; i++) { int width = 0, height = 0; m_imageListButtons->GetSize(i, width, height); - if (height > m_lineHeight) m_lineHeight = height + m_linespacing; + if(height > m_lineHeight) m_lineHeight = height + m_linespacing; } } - if (m_lineHeight < 30) { // add 10% space if greater than 30 pixels - m_lineHeight += 2; // minimal 2 pixel space - }else{ + if(m_lineHeight < 30) { // add 10% space if greater than 30 pixels + m_lineHeight += 2; // minimal 2 pixel space + } else { m_lineHeight += m_lineHeight / 10; // otherwise 10% space } } -void clTreeListMainWindow::SetImageList (wxImageList *imageList) { - if (m_ownsImageListNormal) delete m_imageListNormal; +void clTreeListMainWindow::SetImageList(wxImageList* imageList) +{ + if(m_ownsImageListNormal) delete m_imageListNormal; m_imageListNormal = imageList; m_ownsImageListNormal = false; m_dirty = true; CalculateLineHeight(); } -void clTreeListMainWindow::SetStateImageList (wxImageList *imageList) { - if (m_ownsImageListState) delete m_imageListState; +void clTreeListMainWindow::SetStateImageList(wxImageList* imageList) +{ + if(m_ownsImageListState) delete m_imageListState; m_imageListState = imageList; m_ownsImageListState = false; } -void clTreeListMainWindow::SetButtonsImageList (wxImageList *imageList) { - if (m_ownsImageListButtons) delete m_imageListButtons; +void clTreeListMainWindow::SetButtonsImageList(wxImageList* imageList) +{ + if(m_ownsImageListButtons) delete m_imageListButtons; m_imageListButtons = imageList; m_ownsImageListButtons = false; m_dirty = true; CalculateLineHeight(); } -void clTreeListMainWindow::AssignImageList (wxImageList *imageList) { +void clTreeListMainWindow::AssignImageList(wxImageList* imageList) +{ SetImageList(imageList); m_ownsImageListNormal = true; } -void clTreeListMainWindow::AssignStateImageList (wxImageList *imageList) { +void clTreeListMainWindow::AssignStateImageList(wxImageList* imageList) +{ SetStateImageList(imageList); m_ownsImageListState = true; } -void clTreeListMainWindow::AssignButtonsImageList (wxImageList *imageList) { +void clTreeListMainWindow::AssignButtonsImageList(wxImageList* imageList) +{ SetButtonsImageList(imageList); m_ownsImageListButtons = true; } @@ -3112,335 +3068,301 @@ // helpers // ---------------------------------------------------------------------------- -void clTreeListMainWindow::AdjustMyScrollbars() { - if (m_rootItem) { +void clTreeListMainWindow::AdjustMyScrollbars() +{ + if(m_rootItem) { int xUnit, yUnit; - GetScrollPixelsPerUnit (&xUnit, &yUnit); - if (xUnit == 0) xUnit = GetCharWidth(); - if (yUnit == 0) yUnit = m_lineHeight; + GetScrollPixelsPerUnit(&xUnit, &yUnit); + if(xUnit == 0) xUnit = GetCharWidth(); + if(yUnit == 0) yUnit = m_lineHeight; int x = 0, y = 0; - m_rootItem->GetSize (x, y, this); + m_rootItem->GetSize(x, y, this); y += yUnit + 2; // one more scrollbar unit + 2 pixels - int x_pos = GetScrollPos (wxHORIZONTAL); - int y_pos = GetScrollPos (wxVERTICAL); + int x_pos = GetScrollPos(wxHORIZONTAL); + int y_pos = GetScrollPos(wxVERTICAL); x = m_owner->GetHeaderWindow()->GetWidth() + 2; - if (x < GetClientSize().GetWidth()) x_pos = 0; - SetScrollbars (xUnit, yUnit, x/xUnit, y/yUnit, x_pos, y_pos); - }else{ - SetScrollbars (0, 0, 0, 0); + if(x < GetClientSize().GetWidth()) x_pos = 0; + SetScrollbars(xUnit, yUnit, x / xUnit, y / yUnit, x_pos, y_pos); + } else { + SetScrollbars(0, 0, 0, 0); } } -int clTreeListMainWindow::GetLineHeight (clTreeListItem *item) const { - if (GetWindowStyleFlag() & wxTR_HAS_VARIABLE_ROW_HEIGHT) { +int clTreeListMainWindow::GetLineHeight(clTreeListItem* item) const +{ + if(GetWindowStyleFlag() & wxTR_HAS_VARIABLE_ROW_HEIGHT) { return item->GetHeight(); - }else{ + } else { return m_lineHeight; } } -void clTreeListMainWindow::PaintItem (clTreeListItem *item, wxDC& dc) { +void clTreeListMainWindow::PaintItem(clTreeListItem* item, wxDC& dc) +{ - wxTreeItemAttr *attr = item->GetAttributes(); + wxTreeItemAttr* attr = item->GetAttributes(); - dc.SetFont (GetItemFont (item)); + dc.SetFont(GetItemFont(item)); wxColour colText; - if (attr && attr->HasTextColour()) { + if(attr && attr->HasTextColour()) { colText = attr->GetTextColour(); - }else{ + } else { colText = GetForegroundColour(); } #if !wxCHECK_VERSION(2, 5, 0) - wxColour colTextHilight = wxSystemSettings::GetSystemColour (wxSYS_COLOUR_HIGHLIGHTTEXT); + wxColour colTextHilight = wxSystemSettings::GetSystemColour(wxSYS_COLOUR_HIGHLIGHTTEXT); #else - wxColour colTextHilight = wxSystemSettings::GetColour (wxSYS_COLOUR_HIGHLIGHTTEXT); + wxColour colTextHilight = wxSystemSettings::GetColour(wxSYS_COLOUR_HIGHLIGHTTEXT); #endif int total_w = m_owner->GetHeaderWindow()->GetWidth(); int total_h = GetLineHeight(item); int off_h = HasFlag(wxTR_ROW_LINES) ? 1 : 0; int off_w = HasFlag(wxTR_COLUMN_LINES) ? 1 : 0; - wxDCClipper clipper (dc, 0, item->GetY(), total_w, total_h); // only within line + wxDCClipper clipper(dc, 0, item->GetY(), total_w, total_h); // only within line + wxPen darkPen(wxSystemSettings::GetColour(wxSYS_COLOUR_3DSHADOW)); int text_w = 0, text_h = 0; - dc.GetTextExtent( item->GetText(GetMainColumn()).size() > 0 - ? item->GetText(GetMainColumn()) - : _T(" "), // dummy text to avoid zero height and no highlight width - &text_w, &text_h ); + dc.GetTextExtent(item->GetText(GetMainColumn()).size() > 0 ? + item->GetText(GetMainColumn()) : + _T(" "), // dummy text to avoid zero height and no highlight width + &text_w, + &text_h); // determine background and show it wxColour colBg; - if (attr && attr->HasBackgroundColour()) { + if(attr && attr->HasBackgroundColour()) { colBg = attr->GetBackgroundColour(); - }else{ + } else { colBg = m_backgroundColour; } - dc.SetBrush (wxBrush (colBg, wxBRUSHSTYLE_SOLID)); - dc.SetPen (*wxTRANSPARENT_PEN); - if (HasFlag (wxTR_FULL_ROW_HIGHLIGHT)) { - if (item->IsSelected()) { - if (! m_isDragging && m_hasFocus) { - dc.SetBrush (*m_hilightBrush); -#ifndef __WXMAC__ // don't draw rect outline if we already have the background color - dc.SetPen (*wxBLACK_PEN); -#endif // !__WXMAC__ - }else{ - dc.SetBrush (*m_hilightUnfocusedBrush); -#ifndef __WXMAC__ // don't draw rect outline if we already have the background color - dc.SetPen (*wxTRANSPARENT_PEN); -#endif // !__WXMAC__ + dc.SetBrush(wxBrush(colBg, wxBRUSHSTYLE_SOLID)); + dc.SetPen(*wxTRANSPARENT_PEN); + if(HasFlag(wxTR_FULL_ROW_HIGHLIGHT)) { + if(item->IsSelected()) { + if(!m_isDragging && m_hasFocus) { + dc.SetBrush(*m_hilightBrush); + } else { + dc.SetBrush(*m_hilightUnfocusedBrush); } - dc.SetTextForeground (colTextHilight); - }else if (item == m_curItem) { - dc.SetPen (m_hasFocus? *wxBLACK_PEN: *wxTRANSPARENT_PEN); - }else{ - dc.SetTextForeground (colText); - } - dc.DrawRectangle (0, item->GetY() + off_h, total_w, total_h - off_h); - }else{ - dc.SetTextForeground (colText); + dc.SetTextForeground(colTextHilight); + } else if(item == m_curItem) { + dc.SetPen(m_hasFocus ? darkPen : *wxTRANSPARENT_PEN); + } else { + dc.SetTextForeground(colText); + } + dc.DrawRectangle(0, item->GetY() + off_h, total_w, total_h - off_h); + } else { + dc.SetTextForeground(colText); } - int text_extraH = (total_h > text_h) ? (total_h - text_h)/2 : 0; - int img_extraH = (total_h > m_imgHeight)? (total_h-m_imgHeight)/2: 0; + int text_extraH = (total_h > text_h) ? (total_h - text_h) / 2 : 0; + int img_extraH = (total_h > m_imgHeight) ? (total_h - m_imgHeight) / 2 : 0; int x_colstart = 0; - for (int i = 0; i < GetColumnCount(); ++i ) { - if (!m_owner->GetHeaderWindow()->IsColumnShown(i)) continue; + for(int i = 0; i < GetColumnCount(); ++i) { + if(!m_owner->GetHeaderWindow()->IsColumnShown(i)) continue; int col_w = m_owner->GetHeaderWindow()->GetColumnWidth(i); - wxDCClipper clipper (dc, x_colstart, item->GetY(), col_w, total_h); // only within column + wxDCClipper clipper(dc, x_colstart, item->GetY(), col_w, total_h); // only within column int x = 0; int image = NO_IMAGE; int image_w = 0; if(i == GetMainColumn()) { x = item->GetX() + MARGIN; - if (HasButtons()) { - x += (m_btnWidth-m_btnWidth2) + LINEATROOT; - }else{ - x -= m_indent/2; + if(HasButtons()) { + x += (m_btnWidth - m_btnWidth2) + LINEATROOT; + } else { + x -= m_indent / 2; } - if (m_imageListNormal) image = item->GetCurrentImage(); - }else{ + if(m_imageListNormal) image = item->GetCurrentImage(); + } else { x = x_colstart + MARGIN; image = item->GetImage(i); } - if (image != NO_IMAGE) image_w = m_imgWidth + MARGIN; + if(image != NO_IMAGE) image_w = m_imgWidth + MARGIN; // honor text alignment wxString text = item->GetText(i); int w = 0; - switch ( m_owner->GetHeaderWindow()->GetColumn(i).GetAlignment() ) { + switch(m_owner->GetHeaderWindow()->GetColumn(i).GetAlignment()) { case wxALIGN_LEFT: // nothing to do, already left aligned break; case wxALIGN_RIGHT: - dc.GetTextExtent (text, &text_w, NULL); + dc.GetTextExtent(text, &text_w, NULL); w = col_w - (image_w + text_w + off_w + MARGIN); - x += (w > 0)? w: 0; + x += (w > 0) ? w : 0; break; case wxALIGN_CENTER: dc.GetTextExtent(text, &text_w, NULL); - w = (col_w - (image_w + text_w + off_w + MARGIN))/2; - x += (w > 0)? w: 0; + w = (col_w - (image_w + text_w + off_w + MARGIN)) / 2; + x += (w > 0) ? w : 0; break; } int text_x = x + image_w; - if (i == GetMainColumn()) item->SetTextX (text_x); + if(i == GetMainColumn()) item->SetTextX(text_x); - if (!HasFlag (wxTR_FULL_ROW_HIGHLIGHT)) { - if (i == GetMainColumn()) { - if (item->IsSelected()) { - if (!m_isDragging && m_hasFocus) { - dc.SetBrush (*m_hilightBrush); -#ifndef __WXMAC__ // don't draw rect outline if we already have the background color - dc.SetPen (*wxBLACK_PEN); -#endif // !__WXMAC__ - }else{ - dc.SetBrush (*m_hilightUnfocusedBrush); -#ifndef __WXMAC__ // don't draw rect outline if we already have the background color - dc.SetPen (*wxTRANSPARENT_PEN); -#endif // !__WXMAC__ + if(!HasFlag(wxTR_FULL_ROW_HIGHLIGHT)) { + if(i == GetMainColumn()) { + if(item->IsSelected()) { + if(!m_isDragging && m_hasFocus) { + dc.SetBrush(*m_hilightBrush); + } else { + dc.SetBrush(*m_hilightUnfocusedBrush); } - dc.SetTextForeground (colTextHilight); - }else if (item == m_curItem) { - dc.SetPen (m_hasFocus? *wxBLACK_PEN: *wxTRANSPARENT_PEN); - }else{ - dc.SetTextForeground (colText); + dc.SetTextForeground(colTextHilight); + } else if(item == m_curItem) { + dc.SetPen(m_hasFocus ? darkPen : *wxTRANSPARENT_PEN); + } else { + dc.SetTextForeground(colText); } - dc.DrawRectangle (text_x, item->GetY() + off_h, text_w, total_h - off_h); - }else{ - dc.SetTextForeground (colText); + dc.DrawRectangle(text_x, item->GetY() + off_h, text_w, total_h - off_h); + } else { + dc.SetTextForeground(colText); } } - if (HasFlag(wxTR_COLUMN_LINES)) { // vertical lines between columns + if(HasFlag(wxTR_COLUMN_LINES)) { // vertical lines between columns wxPen pen(wxSystemSettings::GetColour(wxSYS_COLOUR_3DSHADOW), 1, wxPENSTYLE_SOLID); - dc.SetPen (pen); - dc.DrawLine (x_colstart+col_w-1, item->GetY(), x_colstart+col_w-1, item->GetY()+total_h); + dc.SetPen(pen); + dc.DrawLine(x_colstart + col_w - 1, item->GetY(), x_colstart + col_w - 1, item->GetY() + total_h); } - dc.SetBackgroundMode (wxTRANSPARENT); + dc.SetBackgroundMode(wxTRANSPARENT); - if (image != NO_IMAGE) { + if(image != NO_IMAGE) { int y = item->GetY() + img_extraH; - m_imageListNormal->Draw (image, dc, x, y, wxIMAGELIST_DRAW_TRANSPARENT ); + m_imageListNormal->Draw(image, dc, x, y, wxIMAGELIST_DRAW_TRANSPARENT); } int text_y = item->GetY() + text_extraH; - dc.DrawText (text, (wxCoord)text_x, (wxCoord)text_y); + dc.DrawText(text, (wxCoord)text_x, (wxCoord)text_y); x_colstart += col_w; } // restore normal font - dc.SetFont( m_normalFont ); + dc.SetFont(m_normalFont); } // Now y stands for the top of the item, whereas it used to stand for middle ! -void clTreeListMainWindow::PaintLevel (clTreeListItem *item, wxDC &dc, - int level, int &y, int x_maincol) { +void clTreeListMainWindow::PaintLevel(clTreeListItem* item, wxDC& dc, int level, int& y, int x_maincol) +{ // Handle hide root (only level 0) - if (HasFlag(wxTR_HIDE_ROOT) && (level == 0)) { + if(HasFlag(wxTR_HIDE_ROOT) && (level == 0)) { clArrayTreeListItems& children = item->GetChildren(); - for (size_t n = 0; n < children.Count(); n++) { - PaintLevel (children[n], dc, 1, y, x_maincol); + for(size_t n = 0; n < children.Count(); n++) { + PaintLevel(children[n], dc, 1, y, x_maincol); } // end after expanding root return; } // calculate position of vertical lines - int x = x_maincol + MARGIN; // start of column - if (HasFlag(wxTR_LINES_AT_ROOT)) x += LINEATROOT; // space for lines at root - if (HasButtons()) { - x += (m_btnWidth-m_btnWidth2); // half button space - }else{ - x += (m_indent-m_indent/2); - } - if (HasFlag(wxTR_HIDE_ROOT)) { - x += m_indent * (level-1); // indent but not level 1 - }else{ + int x = x_maincol + MARGIN; // start of column + if(HasFlag(wxTR_LINES_AT_ROOT)) x += LINEATROOT; // space for lines at root + if(HasButtons()) { + x += (m_btnWidth - m_btnWidth2); // half button space + } else { + x += (m_indent - m_indent / 2); + } + if(HasFlag(wxTR_HIDE_ROOT)) { + x += m_indent * (level - 1); // indent but not level 1 + } else { x += m_indent * level; // indent according to level } // set position of vertical line - item->SetX (x); - item->SetY (y); + item->SetX(x); + item->SetY(y); - int h = GetLineHeight (item); + int h = GetLineHeight(item); int y_top = y; - int y_mid = y_top + (h/2); + int y_mid = y_top + (h / 2); y += h; int exposed_x = dc.LogicalToDeviceX(0); int exposed_y = dc.LogicalToDeviceY(y_top); - if (IsExposed(exposed_x, exposed_y, 10000, h)) { // 10000 = very much + if(IsExposed(exposed_x, exposed_y, 10000, h)) { // 10000 = very much - if (HasFlag(wxTR_ROW_LINES)) { // horizontal lines between rows - //dc.DestroyClippingRegion(); + if(HasFlag(wxTR_ROW_LINES)) { // horizontal lines between rows + // dc.DestroyClippingRegion(); int total_width = m_owner->GetHeaderWindow()->GetWidth(); // if the background colour is white, choose a // contrasting color for the lines - wxPen pen (wxSystemSettings::GetColour(wxSYS_COLOUR_3DSHADOW), 1, wxPENSTYLE_SOLID); - - dc.SetPen (pen); - dc.DrawLine (0, y_top, total_width, y_top); - dc.DrawLine (0, y_top+h, total_width, y_top+h); + wxPen pen(wxSystemSettings::GetColour(wxSYS_COLOUR_3DSHADOW), 1, wxPENSTYLE_SOLID); + + dc.SetPen(pen); + dc.DrawLine(0, y_top, total_width, y_top); + dc.DrawLine(0, y_top + h, total_width, y_top + h); } // draw item - PaintItem (item, dc); + PaintItem(item, dc); // restore DC objects dc.SetBrush(*wxWHITE_BRUSH); dc.SetPen(m_dottedPen); // clip to the column width - int clip_width = m_owner->GetHeaderWindow()-> - GetColumn(m_main_column).GetWidth(); + int clip_width = m_owner->GetHeaderWindow()->GetColumn(m_main_column).GetWidth(); wxDCClipper clipper(dc, x_maincol, y_top, clip_width, 10000); - if (!HasFlag(wxTR_NO_LINES)) { // connection lines + if(!HasFlag(wxTR_NO_LINES) && false) { // connection lines // draw the horizontal line here dc.SetPen(m_dottedPen); int x2 = x - m_indent; - if (x2 < (x_maincol + MARGIN)) x2 = x_maincol + MARGIN; - int x3 = x + (m_btnWidth-m_btnWidth2); - if (HasButtons()) { - if (item->HasPlus()) { - dc.DrawLine (x2, y_mid, x - m_btnWidth2, y_mid); - dc.DrawLine (x3, y_mid, x3 + LINEATROOT, y_mid); - }else{ - dc.DrawLine (x2, y_mid, x3 + LINEATROOT, y_mid); + if(x2 < (x_maincol + MARGIN)) x2 = x_maincol + MARGIN; + int x3 = x + (m_btnWidth - m_btnWidth2); + if(HasButtons()) { + if(item->HasPlus()) { + dc.DrawLine(x2, y_mid, x - m_btnWidth2, y_mid); + dc.DrawLine(x3, y_mid, x3 + LINEATROOT, y_mid); + } else { + dc.DrawLine(x2, y_mid, x3 + LINEATROOT, y_mid); } - }else{ - dc.DrawLine (x2, y_mid, x - m_indent/2, y_mid); + } else { + dc.DrawLine(x2, y_mid, x - m_indent / 2, y_mid); } } - if (item->HasPlus() && HasButtons()) { // should the item show a button? + const int BTN_MARGIN = 0; + if(item->HasPlus() && HasButtons()) { // should the item show a button? - if (m_imageListButtons) { + if(m_imageListButtons) { // draw the image button here int image = wxTreeItemIcon_Normal; - if (item->IsExpanded()) image = wxTreeItemIcon_Expanded; - if (item->IsSelected()) image += wxTreeItemIcon_Selected - wxTreeItemIcon_Normal; + if(item->IsExpanded()) image = wxTreeItemIcon_Expanded; + if(item->IsSelected()) image += wxTreeItemIcon_Selected - wxTreeItemIcon_Normal; int xx = x - m_btnWidth2 + MARGIN; int yy = y_mid - m_btnHeight2; dc.SetClippingRegion(xx, yy, m_btnWidth, m_btnHeight); - m_imageListButtons->Draw (image, dc, xx, yy, wxIMAGELIST_DRAW_TRANSPARENT); + m_imageListButtons->Draw(image, dc, xx, yy, wxIMAGELIST_DRAW_TRANSPARENT); dc.DestroyClippingRegion(); - }else if (HasFlag (wxTR_TWIST_BUTTONS)) { - - // draw the twisty button here - dc.SetPen(*wxBLACK_PEN); - dc.SetBrush(*m_hilightBrush); - wxPoint button[3]; - if (item->IsExpanded()) { - button[0].x = x - (m_btnWidth2+1); - button[0].y = y_mid - (m_btnHeight/3); - button[1].x = x + (m_btnWidth2+1); - button[1].y = button[0].y; - button[2].x = x; - button[2].y = button[0].y + (m_btnHeight2+1); - }else{ - button[0].x = x - (m_btnWidth/3); - button[0].y = y_mid - (m_btnHeight2+1); - button[1].x = button[0].x; - button[1].y = y_mid + (m_btnHeight2+1); - button[2].x = button[0].x + (m_btnWidth2+1); - button[2].y = y_mid; - } - dc.DrawPolygon(3, button); - - }else{ // if (HasFlag(wxTR_HAS_BUTTONS)) - - // draw the plus sign here -#if !wxCHECK_VERSION(2, 7, 0) - dc.SetPen(*wxGREY_PEN); - dc.SetBrush(*wxWHITE_BRUSH); - dc.DrawRectangle (x-m_btnWidth2, y_mid-m_btnHeight2, m_btnWidth, m_btnHeight); - dc.SetPen(*wxBLACK_PEN); - dc.DrawLine (x-(m_btnWidth2-2), y_mid, x+(m_btnWidth2-1), y_mid); - if (!item->IsExpanded()) { // change "-" to "+" - dc.DrawLine (x, y_mid-(m_btnHeight2-2), x, y_mid+(m_btnHeight2-1)); - } -#else - wxRect rect (x-m_btnWidth2, y_mid-m_btnHeight2, m_btnWidth, m_btnHeight); - int flag = item->IsExpanded()? wxCONTROL_EXPANDED: 0; - wxRendererNative::GetDefault().DrawTreeItemButton (this, dc, rect, flag); -#endif + } else if(HasFlag(wxTR_TWIST_BUTTONS)) { + int xx = x - m_btnWidth2 + MARGIN; + int yy = y_mid - m_btnHeight2; + wxRect btnRect( + xx - (BTN_MARGIN / 2), yy - (BTN_MARGIN / 2), m_btnWidth + BTN_MARGIN, m_btnHeight + BTN_MARGIN); + wxRendererNative::GetDefault().DrawTreeItemButton( + this, dc, btnRect, item->IsExpanded() ? wxCONTROL_EXPANDED : 0); + } else { // if (HasFlag(wxTR_HAS_BUTTONS)) + + wxRect rect(x - m_btnWidth2 - (BTN_MARGIN / 2), + y_mid - m_btnHeight2 - (BTN_MARGIN / 2), + m_btnWidth + BTN_MARGIN, + m_btnHeight + BTN_MARGIN); + int flag = item->IsExpanded() ? wxCONTROL_EXPANDED : 0; + wxRendererNative::GetDefault().DrawTreeItemButton(this, dc, rect, flag); } - } - } // restore DC objects @@ -3448,358 +3370,354 @@ dc.SetPen(m_dottedPen); dc.SetTextForeground(*wxBLACK); - if (item->IsExpanded()) - { + if(item->IsExpanded()) { clArrayTreeListItems& children = item->GetChildren(); // clip to the column width - int clip_width = m_owner->GetHeaderWindow()-> - GetColumn(m_main_column).GetWidth(); + int clip_width = m_owner->GetHeaderWindow()->GetColumn(m_main_column).GetWidth(); // process lower levels int oldY; - if (m_imgWidth > 0) { + if(m_imgWidth > 0) { oldY = y_mid + m_imgHeight2; - }else{ - oldY = y_mid + h/2; + } else { + oldY = y_mid + h / 2; } int y2; - for (size_t n = 0; n < children.Count(); ++n) { + for(size_t n = 0; n < children.Count(); ++n) { - y2 = y + h/2; - PaintLevel (children[n], dc, level+1, y, x_maincol); + y2 = y + h / 2; + PaintLevel(children[n], dc, level + 1, y, x_maincol); // draw vertical line wxDCClipper clipper(dc, x_maincol, y_top, clip_width, 10000); - if (!HasFlag (wxTR_NO_LINES)) { + if(!HasFlag(wxTR_NO_LINES) && false) { x = item->GetX(); - dc.DrawLine (x, oldY, x, y2); + dc.DrawLine(x, oldY, x, y2); oldY = y2; } } } } - // ---------------------------------------------------------------------------- // wxWindows callbacks // ---------------------------------------------------------------------------- -void clTreeListMainWindow::OnPaint (wxPaintEvent &WXUNUSED(event)) { +void clTreeListMainWindow::OnPaint(wxPaintEvent& WXUNUSED(event)) +{ // init device context, clear background (BEFORE changing DC origin...) - wxAutoBufferedPaintDC dc (this); + wxAutoBufferedPaintDC dc(this); wxBrush brush(GetBackgroundColour(), wxBRUSHSTYLE_SOLID); dc.SetBackground(brush); dc.Clear(); - DoPrepareDC (dc); + DoPrepareDC(dc); - if (!m_rootItem || (GetColumnCount() <= 0)) return; + if(!m_rootItem || (GetColumnCount() <= 0)) return; // calculate button size - if (m_imageListButtons) { - m_imageListButtons->GetSize (0, m_btnWidth, m_btnHeight); - }else if (HasButtons()) { + if(m_imageListButtons) { + m_imageListButtons->GetSize(0, m_btnWidth, m_btnHeight); + } else if(HasButtons()) { m_btnWidth = BTNWIDTH; m_btnHeight = BTNHEIGHT; } - m_btnWidth2 = m_btnWidth/2; - m_btnHeight2 = m_btnHeight/2; + m_btnWidth2 = m_btnWidth / 2; + m_btnHeight2 = m_btnHeight / 2; // calculate image size - if (m_imageListNormal) { - m_imageListNormal->GetSize (0, m_imgWidth, m_imgHeight); + if(m_imageListNormal) { + m_imageListNormal->GetSize(0, m_imgWidth, m_imgHeight); } - m_imgWidth2 = m_imgWidth/2; - m_imgHeight2 = m_imgHeight/2; + m_imgWidth2 = m_imgWidth / 2; + m_imgHeight2 = m_imgHeight / 2; // calculate indent size - if (m_imageListButtons) { - m_indent = wxMax (MININDENT, m_btnWidth + MARGIN); - }else if (HasButtons()) { - m_indent = wxMax (MININDENT, m_btnWidth + LINEATROOT); + if(m_imageListButtons) { + m_indent = wxMax(MININDENT, m_btnWidth + MARGIN); + } else if(HasButtons()) { + m_indent = wxMax(MININDENT, m_btnWidth + LINEATROOT); } // set default values - dc.SetFont( m_normalFont ); - dc.SetPen( m_dottedPen ); + dc.SetFont(m_normalFont); + dc.SetPen(m_dottedPen); // calculate column start and paint int x_maincol = 0; int i = 0; - for (i = 0; i < (int)GetMainColumn(); ++i) { - if (!m_owner->GetHeaderWindow()->IsColumnShown(i)) continue; - x_maincol += m_owner->GetHeaderWindow()->GetColumnWidth (i); + for(i = 0; i < (int)GetMainColumn(); ++i) { + if(!m_owner->GetHeaderWindow()->IsColumnShown(i)) continue; + x_maincol += m_owner->GetHeaderWindow()->GetColumnWidth(i); } int y = 0; - PaintLevel (m_rootItem, dc, 0, y, x_maincol); + PaintLevel(m_rootItem, dc, 0, y, x_maincol); } -void clTreeListMainWindow::OnSetFocus (wxFocusEvent &event) { +void clTreeListMainWindow::OnSetFocus(wxFocusEvent& event) +{ m_hasFocus = true; RefreshSelected(); - if (m_curItem) RefreshLine (m_curItem); + if(m_curItem) RefreshLine(m_curItem); event.Skip(); } -void clTreeListMainWindow::OnKillFocus( wxFocusEvent &event ) +void clTreeListMainWindow::OnKillFocus(wxFocusEvent& event) { m_hasFocus = false; RefreshSelected(); - if (m_curItem) RefreshLine (m_curItem); + if(m_curItem) RefreshLine(m_curItem); event.Skip(); } -void clTreeListMainWindow::OnChar (wxKeyEvent &event) { +void clTreeListMainWindow::OnChar(wxKeyEvent& event) +{ // send event to user code - wxTreeEvent nevent (wxEVT_COMMAND_TREE_KEY_DOWN, 0 ); + wxTreeEvent nevent(wxEVT_COMMAND_TREE_KEY_DOWN, 0); nevent.SetInt(m_curColumn); - nevent.SetKeyEvent (event); - if (SendEvent(0, NULL, &nevent)) return; // char event handled in user code + nevent.SetKeyEvent(event); + if(SendEvent(0, NULL, &nevent)) return; // char event handled in user code // if no item current, select root bool curItemSet = false; - if (!m_curItem) { - if (! GetRootItem().IsOk()) return; + if(!m_curItem) { + if(!GetRootItem().IsOk()) return; SetCurrentItem((clTreeListItem*)GetRootItem().m_pItem); - if (HasFlag(wxTR_HIDE_ROOT)) { + if(HasFlag(wxTR_HIDE_ROOT)) { #if !wxCHECK_VERSION(2, 5, 0) long cookie = 0; #else wxTreeItemIdValue cookie = 0; #endif - SetCurrentItem((clTreeListItem*)GetFirstChild (m_curItem, cookie).m_pItem); + SetCurrentItem((clTreeListItem*)GetFirstChild(m_curItem, cookie).m_pItem); } - SelectItem(m_curItem, (wxTreeItemId*)NULL, true); // unselect others + SelectItem(m_curItem, (wxTreeItemId*)NULL, true); // unselect others curItemSet = true; } // remember item at shift down - if (HasFlag(wxTR_MULTIPLE) && event.ShiftDown()) { - if (!m_shiftItem) m_shiftItem = m_curItem; - }else{ + if(HasFlag(wxTR_MULTIPLE) && event.ShiftDown()) { + if(!m_shiftItem) m_shiftItem = m_curItem; + } else { m_shiftItem = (clTreeListItem*)NULL; } - if (curItemSet) return; // if no item was current until now, do nothing more + if(curItemSet) return; // if no item was current until now, do nothing more // process all cases wxTreeItemId newItem = (wxTreeItemId*)NULL; - switch (event.GetKeyCode()) { - - // '+': Expand subtree - case '+': - case WXK_ADD: { - if (m_curItem->HasPlus() && !IsExpanded (m_curItem)) Expand (m_curItem); - }break; - - // '-': collapse subtree - case '-': - case WXK_SUBTRACT: { - if (m_curItem->HasPlus() && IsExpanded (m_curItem)) Collapse (m_curItem); - }break; - - // '*': expand/collapse all subtrees // TODO: Mak it more useful - case '*': - case WXK_MULTIPLY: { - if (m_curItem->HasPlus() && !IsExpanded (m_curItem)) { - ExpandAll (m_curItem); - }else if (m_curItem->HasPlus()) { - Collapse (m_curItem); // TODO: CollapseAll - } - }break; - - // ' ': toggle current item - case ' ': { - SelectItem (m_curItem, (clTreeListItem*)NULL, false); - }break; - - // : activate current item - case WXK_RETURN: { - if (! SendEvent(wxEVT_COMMAND_TREE_ITEM_ACTIVATED, m_curItem)) { - - // if the user code didn't process the activate event, - // handle it ourselves by toggling the item when it is - // double clicked - if (m_curItem && m_curItem->HasPlus()) Toggle(m_curItem); - } - }break; - - // : go to the parent without collapsing - case WXK_BACK: { - newItem = GetItemParent (m_curItem); - if ((newItem == GetRootItem()) && HasFlag(wxTR_HIDE_ROOT)) { - newItem = GetPrevSibling (m_curItem); // get sibling instead of root - } - }break; + switch(event.GetKeyCode()) { - // : go to first visible - case WXK_HOME: { - newItem = GetFirstVisible(false, false); - }break; + // '+': Expand subtree + case '+': + case WXK_ADD: { + if(m_curItem->HasPlus() && !IsExpanded(m_curItem)) Expand(m_curItem); + } break; + + // '-': collapse subtree + case '-': + case WXK_SUBTRACT: { + if(m_curItem->HasPlus() && IsExpanded(m_curItem)) Collapse(m_curItem); + } break; + + // '*': expand/collapse all subtrees // TODO: Mak it more useful + case '*': + case WXK_MULTIPLY: { + if(m_curItem->HasPlus() && !IsExpanded(m_curItem)) { + ExpandAll(m_curItem); + } else if(m_curItem->HasPlus()) { + Collapse(m_curItem); // TODO: CollapseAll + } + } break; + + // ' ': toggle current item + case ' ': { + SelectItem(m_curItem, (clTreeListItem*)NULL, false); + } break; + + // : activate current item + case WXK_RETURN: { + if(!SendEvent(wxEVT_COMMAND_TREE_ITEM_ACTIVATED, m_curItem)) { + + // if the user code didn't process the activate event, + // handle it ourselves by toggling the item when it is + // double clicked + if(m_curItem && m_curItem->HasPlus()) Toggle(m_curItem); + } + } break; + + // : go to the parent without collapsing + case WXK_BACK: { + newItem = GetItemParent(m_curItem); + if((newItem == GetRootItem()) && HasFlag(wxTR_HIDE_ROOT)) { + newItem = GetPrevSibling(m_curItem); // get sibling instead of root + } + } break; + + // : go to first visible + case WXK_HOME: { + newItem = GetFirstVisible(false, false); + } break; - // : go to the top of the page, or if we already are then one page back - case WXK_PAGEUP: { + // : go to the top of the page, or if we already are then one page back + case WXK_PAGEUP: { int flags = 0; int col = 0; - wxPoint abs_p = CalcUnscrolledPosition (wxPoint(1,1)); + wxPoint abs_p = CalcUnscrolledPosition(wxPoint(1, 1)); // PAGE-UP: first go the the first visible row - newItem = m_rootItem->HitTest(abs_p, this, flags, col, 0); - newItem = GetFirstVisible(false, true); + newItem = m_rootItem->HitTest(abs_p, this, flags, col, 0); + newItem = GetFirstVisible(false, true); // if we are already there then scroll back one page - if (newItem == m_curItem) { - abs_p.y -= GetClientSize().GetHeight() - m_curItem->GetHeight(); - if (abs_p.y < 0) abs_p.y = 0; - newItem = m_rootItem->HitTest(abs_p, this, flags, col, 0); - } - // newItem should never be NULL - } break; + if(newItem == m_curItem) { + abs_p.y -= GetClientSize().GetHeight() - m_curItem->GetHeight(); + if(abs_p.y < 0) abs_p.y = 0; + newItem = m_rootItem->HitTest(abs_p, this, flags, col, 0); + } + // newItem should never be NULL + } break; - // : go to the previous sibling or for the last of its children, to the parent - case WXK_UP: { - newItem = GetPrevSibling (m_curItem); - if (newItem) { + // : go to the previous sibling or for the last of its children, to the parent + case WXK_UP: { + newItem = GetPrevSibling(m_curItem); + if(newItem) { #if !wxCHECK_VERSION(2, 5, 0) - long cookie = 0; + long cookie = 0; #else - wxTreeItemIdValue cookie = 0; + wxTreeItemIdValue cookie = 0; #endif - while (IsExpanded (newItem) && HasChildren (newItem)) { - newItem = GetLastChild (newItem, cookie); - } - }else { - newItem = GetItemParent (m_curItem); - if ((newItem == GetRootItem()) && HasFlag(wxTR_HIDE_ROOT)) { - newItem = (wxTreeItemId*)NULL; // don't go to root if it is hidden - } + while(IsExpanded(newItem) && HasChildren(newItem)) { + newItem = GetLastChild(newItem, cookie); + } + } else { + newItem = GetItemParent(m_curItem); + if((newItem == GetRootItem()) && HasFlag(wxTR_HIDE_ROOT)) { + newItem = (wxTreeItemId*)NULL; // don't go to root if it is hidden } - }break; + } + } break; - // : if expanded collapse subtree, else go to the parent - case WXK_LEFT: { - if (IsExpanded (m_curItem)) { - Collapse (m_curItem); - }else{ - newItem = GetItemParent (m_curItem); - if ((newItem == GetRootItem()) && HasFlag(wxTR_HIDE_ROOT)) { - newItem = GetPrevSibling (m_curItem); // go to sibling if it is hidden - } + // : if expanded collapse subtree, else go to the parent + case WXK_LEFT: { + if(IsExpanded(m_curItem)) { + Collapse(m_curItem); + } else { + newItem = GetItemParent(m_curItem); + if((newItem == GetRootItem()) && HasFlag(wxTR_HIDE_ROOT)) { + newItem = GetPrevSibling(m_curItem); // go to sibling if it is hidden } - }break; + } + } break; - // : if possible expand subtree, else go go to the first child - case WXK_RIGHT: { - if (m_curItem->HasPlus() && !IsExpanded (m_curItem)) { - Expand (m_curItem); - }else{ - if (IsExpanded (m_curItem) && HasChildren (m_curItem)) { + // : if possible expand subtree, else go go to the first child + case WXK_RIGHT: { + if(m_curItem->HasPlus() && !IsExpanded(m_curItem)) { + Expand(m_curItem); + } else { + if(IsExpanded(m_curItem) && HasChildren(m_curItem)) { #if !wxCHECK_VERSION(2, 5, 0) - long cookie = 0; + long cookie = 0; #else - wxTreeItemIdValue cookie = 0; + wxTreeItemIdValue cookie = 0; #endif - newItem = GetFirstChild (m_curItem, cookie); - } + newItem = GetFirstChild(m_curItem, cookie); } - }break; + } + } break; - // : if expanded go to the first child, else to the next sibling, ect - case WXK_DOWN: { - if (IsExpanded (m_curItem) && HasChildren (m_curItem)) { + // : if expanded go to the first child, else to the next sibling, ect + case WXK_DOWN: { + if(IsExpanded(m_curItem) && HasChildren(m_curItem)) { #if !wxCHECK_VERSION(2, 5, 0) - long cookie = 0; + long cookie = 0; #else - wxTreeItemIdValue cookie = 0; + wxTreeItemIdValue cookie = 0; #endif - newItem = GetFirstChild( m_curItem, cookie ); - } - if (!newItem) { - wxTreeItemId parent = m_curItem; - do { - newItem = GetNextSibling (parent); - parent = GetItemParent (parent); - } while (!newItem && parent); - } - }break; + newItem = GetFirstChild(m_curItem, cookie); + } + if(!newItem) { + wxTreeItemId parent = m_curItem; + do { + newItem = GetNextSibling(parent); + parent = GetItemParent(parent); + } while(!newItem && parent); + } + } break; - // : go to the bottom of the page, or if we already are then one page further - case WXK_PAGEDOWN: { + // : go to the bottom of the page, or if we already are then one page further + case WXK_PAGEDOWN: { int flags = 0; int col = 0; - wxPoint abs_p = CalcUnscrolledPosition (wxPoint(1,GetClientSize().GetHeight() - m_curItem->GetHeight())); + wxPoint abs_p = CalcUnscrolledPosition(wxPoint(1, GetClientSize().GetHeight() - m_curItem->GetHeight())); // PAGE-UP: first go the the first visible row - newItem = m_rootItem->HitTest(abs_p, this, flags, col, 0); - newItem = GetLastVisible(false, true); + newItem = m_rootItem->HitTest(abs_p, this, flags, col, 0); + newItem = GetLastVisible(false, true); // if we are already there then scroll down one page - if (newItem == m_curItem) { - abs_p.y += GetClientSize().GetHeight() - m_curItem->GetHeight(); -// if (abs_p.y >= GetVirtualSize().GetHeight()) abs_p.y = GetVirtualSize().GetHeight() - 1; - newItem = m_rootItem->HitTest(abs_p, this, flags, col, 0); - } + if(newItem == m_curItem) { + abs_p.y += GetClientSize().GetHeight() - m_curItem->GetHeight(); + // if (abs_p.y >= GetVirtualSize().GetHeight()) abs_p.y = GetVirtualSize().GetHeight() - 1; + newItem = m_rootItem->HitTest(abs_p, this, flags, col, 0); + } // if we reached the empty area below the rows, return last item instead - if (! newItem) newItem = GetLastVisible(false, false); - } break; - - // : go to last item of the root - case WXK_END: { - newItem = GetLastVisible (false, false); - }break; - - // any char: go to the next matching string - default: - if (event.GetKeyCode() >= (int)' ') { - if (!m_findTimer->IsRunning()) m_findStr.Clear(); - m_findStr << event.GetKeyCode(); - m_findTimer->Start (FIND_TIMER_TICKS, wxTIMER_ONE_SHOT); - wxTreeItemId prev = m_curItem? (wxTreeItemId*)m_curItem: (wxTreeItemId*)NULL; - while (true) { - newItem = FindItem (prev, m_findStr, wxTL_MODE_NAV_EXPANDED | - wxTL_MODE_FIND_PARTIAL | - wxTL_MODE_FIND_NOCASE); - if (newItem || (m_findStr.Length() <= 1)) break; - m_findStr.RemoveLast(); - }; - } - event.Skip(); + if(!newItem) newItem = GetLastVisible(false, false); + } break; + // : go to last item of the root + case WXK_END: { + newItem = GetLastVisible(false, false); + } break; + + // any char: go to the next matching string + default: + if(event.GetKeyCode() >= (int)' ') { + if(!m_findTimer->IsRunning()) m_findStr.Clear(); + m_findStr << event.GetKeyCode(); + m_findTimer->Start(FIND_TIMER_TICKS, wxTIMER_ONE_SHOT); + wxTreeItemId prev = m_curItem ? (wxTreeItemId*)m_curItem : (wxTreeItemId*)NULL; + while(true) { + newItem = + FindItem(prev, m_findStr, wxTL_MODE_NAV_EXPANDED | wxTL_MODE_FIND_PARTIAL | wxTL_MODE_FIND_NOCASE); + if(newItem || (m_findStr.Length() <= 1)) break; + m_findStr.RemoveLast(); + }; + } + event.Skip(); } // select and show the new item - if (newItem) { - if (!event.ControlDown()) { - bool unselect_others = !((event.ShiftDown() || event.ControlDown()) && - HasFlag(wxTR_MULTIPLE)); - SelectItem (newItem, m_shiftItem, unselect_others); + if(newItem) { + if(!event.ControlDown()) { + bool unselect_others = !((event.ShiftDown() || event.ControlDown()) && HasFlag(wxTR_MULTIPLE)); + SelectItem(newItem, m_shiftItem, unselect_others); } - EnsureVisible (newItem); - clTreeListItem *oldItem = m_curItem; + EnsureVisible(newItem); + clTreeListItem* oldItem = m_curItem; SetCurrentItem((clTreeListItem*)newItem.m_pItem); // make the new item the current item - RefreshLine (oldItem); + RefreshLine(oldItem); } - } -wxTreeItemId clTreeListMainWindow::HitTest (const wxPoint& point, int& flags, int& column) { +wxTreeItemId clTreeListMainWindow::HitTest(const wxPoint& point, int& flags, int& column) +{ int w, h; GetSize(&w, &h); - flags=0; + flags = 0; column = -1; - if (point.x<0) flags |= wxTREE_HITTEST_TOLEFT; - if (point.x>w) flags |= wxTREE_HITTEST_TORIGHT; - if (point.y<0) flags |= wxTREE_HITTEST_ABOVE; - if (point.y>h) flags |= wxTREE_HITTEST_BELOW; - if (flags) return wxTreeItemId(); + if(point.x < 0) flags |= wxTREE_HITTEST_TOLEFT; + if(point.x > w) flags |= wxTREE_HITTEST_TORIGHT; + if(point.y < 0) flags |= wxTREE_HITTEST_ABOVE; + if(point.y > h) flags |= wxTREE_HITTEST_BELOW; + if(flags) return wxTreeItemId(); - if (!m_rootItem) { + if(!m_rootItem) { flags = wxTREE_HITTEST_NOWHERE; column = -1; return wxTreeItemId(); } - clTreeListItem *hit = m_rootItem->HitTest (CalcUnscrolledPosition(point), - this, flags, column, 0); - if (!hit) { + clTreeListItem* hit = m_rootItem->HitTest(CalcUnscrolledPosition(point), this, flags, column, 0); + if(!hit) { flags = wxTREE_HITTEST_NOWHERE; column = -1; return wxTreeItemId(); @@ -3808,266 +3726,275 @@ } // get the bounding rectangle of the item (or of its label only) -bool clTreeListMainWindow::GetBoundingRect (const wxTreeItemId& itemId, wxRect& rect, - bool WXUNUSED(textOnly)) const { - wxCHECK_MSG (itemId.IsOk(), false, _T("invalid item in wxTreeListMainWindow::GetBoundingRect") ); +bool clTreeListMainWindow::GetBoundingRect(const wxTreeItemId& itemId, wxRect& rect, bool WXUNUSED(textOnly)) const +{ + wxCHECK_MSG(itemId.IsOk(), false, _T("invalid item in wxTreeListMainWindow::GetBoundingRect")); - clTreeListItem *item = (clTreeListItem*) itemId.m_pItem; + clTreeListItem* item = (clTreeListItem*)itemId.m_pItem; int xUnit, yUnit; - GetScrollPixelsPerUnit (&xUnit, &yUnit); + GetScrollPixelsPerUnit(&xUnit, &yUnit); int startX, startY; - GetViewStart(& startX, & startY); + GetViewStart(&startX, &startY); rect.x = item->GetX() - startX * xUnit; rect.y = item->GetY() - startY * yUnit; rect.width = item->GetWidth(); - rect.height = GetLineHeight (item); + rect.height = GetLineHeight(item); return true; } /* **** */ -void clTreeListMainWindow::EditLabel (const wxTreeItemId& item, int column) { +void clTreeListMainWindow::EditLabel(const wxTreeItemId& item, int column) +{ -// validate - if (!item.IsOk()) return; - if (!((column >= 0) && (column < GetColumnCount()))) return; + // validate + if(!item.IsOk()) return; + if(!((column >= 0) && (column < GetColumnCount()))) return; -// cancel any editing - if (m_editControl) { - m_editControl->EndEdit(true); // cancelled + // cancel any editing + if(m_editControl) { + m_editControl->EndEdit(true); // cancelled } -// prepare edit (position) - m_editItem = (clTreeListItem*) item.m_pItem; + // prepare edit (position) + m_editItem = (clTreeListItem*)item.m_pItem; - wxTreeEvent te( wxEVT_COMMAND_TREE_BEGIN_LABEL_EDIT, 0 ); - te.SetInt (column); - SendEvent(0, m_editItem, &te); if (!te.IsAllowed()) return; + wxTreeEvent te(wxEVT_COMMAND_TREE_BEGIN_LABEL_EDIT, 0); + te.SetInt(column); + SendEvent(0, m_editItem, &te); + if(!te.IsAllowed()) return; // ensure that the position of the item it calculated in any case - if (m_dirty) CalculatePositions(); + if(m_dirty) CalculatePositions(); clTreeListHeaderWindow* header_win = m_owner->GetHeaderWindow(); // position & size are rather unpredictable (tsssk, tssssk) so were // set by trial & error (on Win 2003 pre-XP style) int x = 0; - int w = +4; // +4 is necessary, don't know why (simple border erronously counted somewhere ?) - int y = m_editItem->GetY() + 1; // this is cell, not text - int h = m_editItem->GetHeight() - 1; // consequence from above + int w = +4; // +4 is necessary, don't know why (simple border erronously counted somewhere ?) + int y = m_editItem->GetY() + 1; // this is cell, not text + int h = m_editItem->GetHeight() - 1; // consequence from above long style = 0; - if (column == GetMainColumn()) { - x += m_editItem->GetTextX() - 2; // wrong by 2, don't know why + if(column == GetMainColumn()) { + x += m_editItem->GetTextX() - 2; // wrong by 2, don't know why w += m_editItem->GetWidth(); } else { - for (int i = 0; i < column; ++i) x += header_win->GetColumnWidth (i); // start of column - w += header_win->GetColumnWidth (column); // currently non-main column width not pre-computed + for(int i = 0; i < column; ++i) x += header_win->GetColumnWidth(i); // start of column + w += header_win->GetColumnWidth(column); // currently non-main column width not pre-computed } - switch (header_win->GetColumnAlignment (column)) { - case wxALIGN_LEFT: {style = wxTE_LEFT; x -= 1; break;} - case wxALIGN_CENTER: {style = wxTE_CENTER; x -= 1; break;} - case wxALIGN_RIGHT: {style = wxTE_RIGHT; x += 0; break;} // yes, strange but that's the way it is + switch(header_win->GetColumnAlignment(column)) { + case wxALIGN_LEFT: { + style = wxTE_LEFT; + x -= 1; + break; + } + case wxALIGN_CENTER: { + style = wxTE_CENTER; + x -= 1; + break; + } + case wxALIGN_RIGHT: { + style = wxTE_RIGHT; + x += 0; + break; + } // yes, strange but that's the way it is } // wxTextCtrl simple border style requires 2 extra pixels before and after // (measured by changing to style wxNO_BORDER in wxEditTextCtrl::wxEditTextCtrl() ) - y -= 2; x -= 2; - w += 4; h += 4; + y -= 2; + x -= 2; + w += 4; + h += 4; - wxClientDC dc (this); - PrepareDC (dc); - x = dc.LogicalToDeviceX (x); - y = dc.LogicalToDeviceY (y); - -// now do edit (change state, show control) - m_editCol = column; // only used in OnRenameAccept() - m_editControl = new clEditTextCtrl (this, -1, &m_editAccept, &m_editRes, - this, m_editItem->GetText (column), - wxPoint (x, y), wxSize (w, h), style); + wxClientDC dc(this); + PrepareDC(dc); + x = dc.LogicalToDeviceX(x); + y = dc.LogicalToDeviceY(y); + + // now do edit (change state, show control) + m_editCol = column; // only used in OnRenameAccept() + m_editControl = new clEditTextCtrl( + this, -1, &m_editAccept, &m_editRes, this, m_editItem->GetText(column), wxPoint(x, y), wxSize(w, h), style); m_editControl->SetFocus(); } -void clTreeListMainWindow::OnRenameTimer() { - EditLabel (m_curItem, m_curColumn); -} +void clTreeListMainWindow::OnRenameTimer() { EditLabel(m_curItem, m_curColumn); } -void clTreeListMainWindow::OnRenameAccept(bool isCancelled) { +void clTreeListMainWindow::OnRenameAccept(bool isCancelled) +{ // TODO if the validator fails this causes a crash - wxTreeEvent le( wxEVT_COMMAND_TREE_END_LABEL_EDIT, 0 ); - le.SetLabel( m_editRes ); + wxTreeEvent le(wxEVT_COMMAND_TREE_END_LABEL_EDIT, 0); + le.SetLabel(m_editRes); le.SetEditCanceled(isCancelled); le.SetInt(m_editCol); - SendEvent(0, m_editItem, &le); if (! isCancelled && le.IsAllowed()) - { - SetItemText (m_editItem, le.GetInt(), le.GetLabel()); + SendEvent(0, m_editItem, &le); + if(!isCancelled && le.IsAllowed()) { + SetItemText(m_editItem, le.GetInt(), le.GetLabel()); } } -void clTreeListMainWindow::OnMouse (wxMouseEvent &event) { -bool mayDrag = true; -bool maySelect = true; // may change selection -bool mayClick = true; // may process DOWN clicks to expand, send click events -bool mayDoubleClick = true; // implies mayClick -bool bSkip = true; +void clTreeListMainWindow::OnMouse(wxMouseEvent& event) +{ + bool mayDrag = true; + bool maySelect = true; // may change selection + bool mayClick = true; // may process DOWN clicks to expand, send click events + bool mayDoubleClick = true; // implies mayClick + bool bSkip = true; // send event to user code - if (m_owner->GetEventHandler()->ProcessEvent(event)) return; // handled (and not skipped) in user code - if (!m_rootItem) return; - + if(m_owner->GetEventHandler()->ProcessEvent(event)) return; // handled (and not skipped) in user code + if(!m_rootItem) return; -// ---------- DETERMINE EVENT ---------- -/* -wxLogMessage("OnMouse: LMR down=<%d, %d, %d> up=<%d, %d, %d> LDblClick=<%d> dragging=<%d>", - event.LeftDown(), event.MiddleDown(), event.RightDown(), - event.LeftUp(), event.MiddleUp(), event.RightUp(), - event.LeftDClick(), event.Dragging()); -*/ - wxPoint p = wxPoint (event.GetX(), event.GetY()); + // ---------- DETERMINE EVENT ---------- + /* + wxLogMessage("OnMouse: LMR down=<%d, %d, %d> up=<%d, %d, %d> LDblClick=<%d> dragging=<%d>", + event.LeftDown(), event.MiddleDown(), event.RightDown(), + event.LeftUp(), event.MiddleUp(), event.RightUp(), + event.LeftDClick(), event.Dragging()); + */ + wxPoint p = wxPoint(event.GetX(), event.GetY()); int flags = 0; - clTreeListItem *item = m_rootItem->HitTest (CalcUnscrolledPosition (p), - this, flags, m_curColumn, 0); + clTreeListItem* item = m_rootItem->HitTest(CalcUnscrolledPosition(p), this, flags, m_curColumn, 0); bool bCrosshair = (item && item->HasPlus() && (flags & wxTREE_HITTEST_ONITEMBUTTON)); // we were dragging - if (m_isDragging) { + if(m_isDragging) { maySelect = mayDoubleClick = false; } // we are starting or continuing to drag - if (event.Dragging()) { + if(event.Dragging()) { maySelect = mayDoubleClick = mayClick = false; } // crosshair area is special - if (bCrosshair) { + if(bCrosshair) { // left click does not select - if (event.LeftDown()) maySelect = false; + if(event.LeftDown()) maySelect = false; // double click is ignored mayDoubleClick = false; } // double click only if simple click - if (mayDoubleClick) mayDoubleClick = mayClick; + if(mayDoubleClick) mayDoubleClick = mayClick; // selection conditions --remember also that selection exludes editing - if (maySelect) maySelect = mayClick; // yes, select/unselect requires a click - if (maySelect) { + if(maySelect) maySelect = mayClick; // yes, select/unselect requires a click + if(maySelect) { // multiple selection mode complicates things, sometimes we // select on button-up instead of down: - if (HasFlag(wxTR_MULTIPLE)) { + if(HasFlag(wxTR_MULTIPLE)) { // CONTROL/SHIFT key used, don't care about anything else, will // toggle on key down - if (event.ControlDown() || event.ShiftDown()) { + if(event.ControlDown() || event.ShiftDown()) { maySelect = maySelect && (event.LeftDown() || event.RightDown()); - m_lastOnSame = false; // prevent editing when keys are used + m_lastOnSame = false; // prevent editing when keys are used - // already selected item: to allow drag or contextual menu for multiple - // items, we only select/unselect on click-up --and only on LEFT - // click, right is reserved for contextual menu - } else if ((item != NULL && item->IsSelected())) { + // already selected item: to allow drag or contextual menu for multiple + // items, we only select/unselect on click-up --and only on LEFT + // click, right is reserved for contextual menu + } else if((item != NULL && item->IsSelected())) { maySelect = maySelect && event.LeftUp(); - // non-selected items: select on click-down like simple select (so - // that a right-click contextual menu may be chained) + // non-selected items: select on click-down like simple select (so + // that a right-click contextual menu may be chained) } else { maySelect = maySelect && (event.LeftDown() || event.RightDown()); } - // single-select is simply on left or right click-down + // single-select is simply on left or right click-down } else { maySelect = maySelect && (event.LeftDown() || event.RightDown()); } } - -// ---------- GENERAL ACTIONS ---------- + // ---------- GENERAL ACTIONS ---------- // set focus if window clicked - if (event.LeftDown() || event.MiddleDown() || event.RightDown()) SetFocus(); -/* - // tooltip change ? - if (item != m_toolTipItem) { - - // not over an item, use global tip - if (item == NULL) { - m_toolTipItem = NULL; - wxScrolledWindow::SetToolTip(m_toolTip); - - // over an item - } else { - const wxString *tip = item->GetToolTip(); - - // is there an item-specific tip ? - if (tip) { - m_toolTipItem = item; - wxScrolledWindow::SetToolTip(*tip); - - // no item tip, but we are in item-specific mode (SetItemToolTip() - // was called after SetToolTip() ) - } else if (m_isItemToolTip) { - m_toolTipItem = item; - wxScrolledWindow::SetToolTip(wxString()); + if(event.LeftDown() || event.MiddleDown() || event.RightDown()) SetFocus(); + /* + // tooltip change ? + if (item != m_toolTipItem) { - // no item tip, display global tip instead; item change ignored - } else if (m_toolTipItem != NULL) { + // not over an item, use global tip + if (item == NULL) { m_toolTipItem = NULL; wxScrolledWindow::SetToolTip(m_toolTip); + + // over an item + } else { + const wxString *tip = item->GetToolTip(); + + // is there an item-specific tip ? + if (tip) { + m_toolTipItem = item; + wxScrolledWindow::SetToolTip(*tip); + + // no item tip, but we are in item-specific mode (SetItemToolTip() + // was called after SetToolTip() ) + } else if (m_isItemToolTip) { + m_toolTipItem = item; + wxScrolledWindow::SetToolTip(wxString()); + + // no item tip, display global tip instead; item change ignored + } else if (m_toolTipItem != NULL) { + m_toolTipItem = NULL; + wxScrolledWindow::SetToolTip(m_toolTip); + } } } - } -*/ + */ -// ---------- HANDLE SIMPLE-CLICKS (selection change, contextual menu) ---------- - if (mayClick) { + // ---------- HANDLE SIMPLE-CLICKS (selection change, contextual menu) ---------- + if(mayClick) { // 2nd left-click on an item might trigger edit - if (event.LeftDown()) m_lastOnSame = (item == m_curItem); + if(event.LeftDown()) m_lastOnSame = (item == m_curItem); // left-click on haircross is expand (and no select) - if (bCrosshair && event.LeftDown()) { + if(bCrosshair && event.LeftDown()) { bSkip = false; // note that we only toggle the item for a single click, double // click on the button doesn't do anything - Toggle (item); + Toggle(item); } - if (maySelect) { + if(maySelect) { bSkip = false; // set / remember item at shift down before current item gets changed - if (event.LeftDown() && HasFlag(wxTR_MULTIPLE) && event.ShiftDown()) { - if (!m_shiftItem) m_shiftItem = m_curItem; - }else{ + if(event.LeftDown() && HasFlag(wxTR_MULTIPLE) && event.ShiftDown()) { + if(!m_shiftItem) m_shiftItem = m_curItem; + } else { m_shiftItem = (clTreeListItem*)NULL; } // how is selection altered // keep or discard already selected ? - bool unselect_others = ! (HasFlag(wxTR_MULTIPLE) && ( - event.ShiftDown() - || event.ControlDown() - )); + bool unselect_others = !(HasFlag(wxTR_MULTIPLE) && (event.ShiftDown() || event.ControlDown())); // check is selection change is not vetoed - if (SelectItem(item, m_shiftItem, unselect_others)) { + if(SelectItem(item, m_shiftItem, unselect_others)) { // make the new item the current item - EnsureVisible (item); + EnsureVisible(item); SetCurrentItem(item); } } // generate click & menu events - if (event.MiddleDown()) { + if(event.MiddleDown()) { bSkip = false; SendEvent(wxEVT_COMMAND_TREE_ITEM_MIDDLE_CLICK, item); } - if (event.RightDown()) { + if(event.RightDown()) { bSkip = false; SendEvent(wxEVT_COMMAND_TREE_ITEM_RIGHT_CLICK, item); } - if (event.RightUp()) { + if(event.RightUp()) { wxTreeEvent nevent(wxEVT_COMMAND_TREE_ITEM_MENU, 0); nevent.SetPoint(p); nevent.SetInt(m_curColumn); @@ -4075,21 +4002,19 @@ } // if 2nd left click finishes on same item, will edit it - if (m_lastOnSame && event.LeftUp()) { - if ((item == m_curItem) && (m_curColumn != -1) && - (m_owner->GetHeaderWindow()->IsColumnEditable (m_curColumn)) && - (flags & (wxTREE_HITTEST_ONITEMLABEL | wxTREE_HITTEST_ONITEMCOLUMN)) - ){ - m_editTimer->Start (RENAME_TIMER_TICKS, wxTIMER_ONE_SHOT); + if(m_lastOnSame && event.LeftUp()) { + if((item == m_curItem) && (m_curColumn != -1) && + (m_owner->GetHeaderWindow()->IsColumnEditable(m_curColumn)) && + (flags & (wxTREE_HITTEST_ONITEMLABEL | wxTREE_HITTEST_ONITEMCOLUMN))) { + m_editTimer->Start(RENAME_TIMER_TICKS, wxTIMER_ONE_SHOT); bSkip = false; } m_lastOnSame = false; } } - -// ---------- HANDLE DOUBLE-CLICKS ---------- - if (mayDoubleClick && event.LeftDClick()) { + // ---------- HANDLE DOUBLE-CLICKS ---------- + if(mayDoubleClick && event.LeftDClick()) { bSkip = false; @@ -4098,50 +4023,50 @@ m_lastOnSame = false; // selection reset to that single item which was double-clicked - if (SelectItem(item, (wxTreeItemId*)NULL, true)) { // unselect others --return false if vetoed + if(SelectItem(item, (wxTreeItemId*)NULL, true)) { // unselect others --return false if vetoed // selection change not vetoed, send activate event - if (! SendEvent(wxEVT_COMMAND_TREE_ITEM_ACTIVATED, item)) { + if(!SendEvent(wxEVT_COMMAND_TREE_ITEM_ACTIVATED, item)) { // if the user code didn't process the activate event, // handle it ourselves by toggling the item when it is // double clicked - if (item && item->HasPlus()) Toggle(item); + if(item && item->HasPlus()) Toggle(item); } } } - -// ---------- HANDLE DRAGGING ---------- -// NOTE: drag itself makes no change to selection - if (mayDrag) { // actually this is always true + // ---------- HANDLE DRAGGING ---------- + // NOTE: drag itself makes no change to selection + if(mayDrag) { // actually this is always true // CASE 1: we were dragging => continue, end, abort - if (m_isDragging) { + if(m_isDragging) { // CASE 1.1: click aborts drag: - if (event.LeftDown() || event.MiddleDown() || event.RightDown()) { + if(event.LeftDown() || event.MiddleDown() || event.RightDown()) { bSkip = false; // stop dragging m_isDragStarted = m_isDragging = false; - if (HasCapture()) ReleaseMouse(); + if(HasCapture()) ReleaseMouse(); RefreshSelected(); - // CASE 1.2: still dragging - } else if (event.Dragging()) { + // CASE 1.2: still dragging + } else if(event.Dragging()) { - ;; // nothing to do + ; + ; // nothing to do - // CASE 1.3: dragging now ends normally + // CASE 1.3: dragging now ends normally } else { bSkip = false; // stop dragging m_isDragStarted = m_isDragging = false; - if (HasCapture()) ReleaseMouse(); + if(HasCapture()) ReleaseMouse(); RefreshSelected(); // send drag end event @@ -4151,17 +4076,16 @@ SendEvent(0, item, &event); } - // CASE 2: not were not dragging => continue, start - } else if (event.Dragging()) { + // CASE 2: not were not dragging => continue, start + } else if(event.Dragging()) { // We will really start dragging if we've moved beyond a few pixels - if (m_isDragStarted) { + if(m_isDragStarted) { const int tolerance = 3; int dx = abs(p.x - m_dragStartPos.x); int dy = abs(p.y - m_dragStartPos.y); - if (dx <= tolerance && dy <= tolerance) - return; - // determine drag start + if(dx <= tolerance && dy <= tolerance) return; + // determine drag start } else { m_dragStartPos = p; m_dragCol = m_curColumn; @@ -4177,9 +4101,7 @@ RefreshSelected(); CaptureMouse(); // TODO: usefulness unclear - wxTreeEvent nevent(event.LeftIsDown() - ? wxEVT_COMMAND_TREE_BEGIN_DRAG - : wxEVT_COMMAND_TREE_BEGIN_RDRAG, 0); + wxTreeEvent nevent(event.LeftIsDown() ? wxEVT_COMMAND_TREE_BEGIN_DRAG : wxEVT_COMMAND_TREE_BEGIN_RDRAG, 0); nevent.SetPoint(p); nevent.SetInt(m_dragCol); nevent.Veto(); @@ -4187,16 +4109,15 @@ } } - - if (bSkip) event.Skip(); + if(bSkip) event.Skip(); } - -void clTreeListMainWindow::OnIdle (wxIdleEvent &WXUNUSED(event)) { +void clTreeListMainWindow::OnIdle(wxIdleEvent& WXUNUSED(event)) +{ /* after all changes have been done to the tree control, * we actually redraw the tree when everything is over */ - if (!m_dirty) return; + if(!m_dirty) return; m_dirty = false; @@ -4205,12 +4126,13 @@ AdjustMyScrollbars(); } -void clTreeListMainWindow::OnScroll (wxScrollWinEvent& event) { - // FIXME +void clTreeListMainWindow::OnScroll(wxScrollWinEvent& event) +{ +// FIXME #if defined(__WXGTK__) && !defined(__WXUNIVERSAL__) && wxVERSION_NUMBER < 2900 wxScrolledWindow::OnScroll(event); #else - HandleOnScroll( event ); + HandleOnScroll(event); #endif if(event.GetOrientation() == wxHORIZONTAL) { @@ -4219,147 +4141,154 @@ } } -void clTreeListMainWindow::CalculateSize (clTreeListItem *item, wxDC &dc) { +void clTreeListMainWindow::CalculateSize(clTreeListItem* item, wxDC& dc) +{ wxCoord text_w = 0; wxCoord text_h = 0; - dc.SetFont (GetItemFont (item)); - dc.GetTextExtent (item->GetText(m_main_column).size() > 0 - ? item->GetText (m_main_column) - : _T(" "), // blank to avoid zero height and no highlight width - &text_w, &text_h); + dc.SetFont(GetItemFont(item)); + dc.GetTextExtent(item->GetText(m_main_column).size() > 0 ? + item->GetText(m_main_column) : + _T(" "), // blank to avoid zero height and no highlight width + &text_w, + &text_h); // restore normal font - dc.SetFont (m_normalFont); + dc.SetFont(m_normalFont); int max_h = (m_imgHeight > text_h) ? m_imgHeight : text_h; - if (max_h < 30) { // add 10% space if greater than 30 pixels - max_h += 2; // minimal 2 pixel space - }else{ + if(max_h < 30) { // add 10% space if greater than 30 pixels + max_h += 2; // minimal 2 pixel space + } else { max_h += max_h / 10; // otherwise 10% space } - item->SetHeight (max_h); - if (max_h > m_lineHeight) m_lineHeight = max_h; - item->SetWidth(m_imgWidth + text_w+2); + item->SetHeight(max_h); + if(max_h > m_lineHeight) m_lineHeight = max_h; + item->SetWidth(m_imgWidth + text_w + 2); } // ----------------------------------------------------------------------------- -void clTreeListMainWindow::CalculateLevel (clTreeListItem *item, wxDC &dc, - int level, int &y, int x_colstart) { +void clTreeListMainWindow::CalculateLevel(clTreeListItem* item, wxDC& dc, int level, int& y, int x_colstart) +{ // calculate position of vertical lines - int x = x_colstart + MARGIN; // start of column - if (HasFlag(wxTR_LINES_AT_ROOT)) x += LINEATROOT; // space for lines at root - if (HasButtons()) { - x += (m_btnWidth-m_btnWidth2); // half button space - }else{ - x += (m_indent-m_indent/2); - } - if (HasFlag(wxTR_HIDE_ROOT)) { - x += m_indent * (level-1); // indent but not level 1 - }else{ + int x = x_colstart + MARGIN; // start of column + if(HasFlag(wxTR_LINES_AT_ROOT)) x += LINEATROOT; // space for lines at root + if(HasButtons()) { + x += (m_btnWidth - m_btnWidth2); // half button space + } else { + x += (m_indent - m_indent / 2); + } + if(HasFlag(wxTR_HIDE_ROOT)) { + x += m_indent * (level - 1); // indent but not level 1 + } else { x += m_indent * level; // indent according to level } // a hidden root is not evaluated, but its children are always - if (HasFlag(wxTR_HIDE_ROOT) && (level == 0)) goto Recurse; + if(HasFlag(wxTR_HIDE_ROOT) && (level == 0)) goto Recurse; - CalculateSize( item, dc ); + CalculateSize(item, dc); // set its position - item->SetX (x); - item->SetY (y); + item->SetX(x); + item->SetY(y); y += GetLineHeight(item); // we don't need to calculate collapsed branches - if ( !item->IsExpanded() ) return; + if(!item->IsExpanded()) return; Recurse: clArrayTreeListItems& children = item->GetChildren(); long n, count = (long)children.Count(); ++level; - for (n = 0; n < count; ++n) { - CalculateLevel( children[n], dc, level, y, x_colstart ); // recurse + for(n = 0; n < count; ++n) { + CalculateLevel(children[n], dc, level, y, x_colstart); // recurse } } -void clTreeListMainWindow::CalculatePositions() { - if ( !m_rootItem ) return; +void clTreeListMainWindow::CalculatePositions() +{ + if(!m_rootItem) return; wxClientDC dc(this); - PrepareDC( dc ); + PrepareDC(dc); - dc.SetFont( m_normalFont ); + dc.SetFont(m_normalFont); - dc.SetPen( m_dottedPen ); - //if(GetImageList() == NULL) + dc.SetPen(m_dottedPen); + // if(GetImageList() == NULL) // m_lineHeight = (int)(dc.GetCharHeight() + 4); int y = 2; int x_colstart = 0; - for (int i = 0; i < (int)GetMainColumn(); ++i) { - if (!m_owner->GetHeaderWindow()->IsColumnShown(i)) continue; + for(int i = 0; i < (int)GetMainColumn(); ++i) { + if(!m_owner->GetHeaderWindow()->IsColumnShown(i)) continue; x_colstart += m_owner->GetHeaderWindow()->GetColumnWidth(i); } - CalculateLevel( m_rootItem, dc, 0, y, x_colstart ); // start recursion + CalculateLevel(m_rootItem, dc, 0, y, x_colstart); // start recursion } -void clTreeListMainWindow::RefreshSubtree (clTreeListItem *item) { - if (m_dirty) return; +void clTreeListMainWindow::RefreshSubtree(clTreeListItem* item) +{ + if(m_dirty) return; wxClientDC dc(this); PrepareDC(dc); int cw = 0; int ch = 0; - GetVirtualSize( &cw, &ch ); + GetVirtualSize(&cw, &ch); wxRect rect; - rect.x = dc.LogicalToDeviceX( 0 ); + rect.x = dc.LogicalToDeviceX(0); rect.width = cw; - rect.y = dc.LogicalToDeviceY( item->GetY() - 2 ); + rect.y = dc.LogicalToDeviceY(item->GetY() - 2); rect.height = ch; - Refresh (true, &rect ); + Refresh(true, &rect); AdjustMyScrollbars(); } -void clTreeListMainWindow::RefreshLine (clTreeListItem *item) { - if (m_dirty) return; +void clTreeListMainWindow::RefreshLine(clTreeListItem* item) +{ + if(m_dirty) return; wxClientDC dc(this); - PrepareDC( dc ); + PrepareDC(dc); int cw = 0; int ch = 0; - GetVirtualSize( &cw, &ch ); + GetVirtualSize(&cw, &ch); wxRect rect; - rect.x = dc.LogicalToDeviceX( 0 ); - rect.y = dc.LogicalToDeviceY( item->GetY() ); + rect.x = dc.LogicalToDeviceX(0); + rect.y = dc.LogicalToDeviceY(item->GetY()); rect.width = cw; - rect.height = GetLineHeight(item); //dc.GetCharHeight() + 6; + rect.height = GetLineHeight(item); // dc.GetCharHeight() + 6; - Refresh (true, &rect); + Refresh(true, &rect); } -void clTreeListMainWindow::RefreshSelected() { +void clTreeListMainWindow::RefreshSelected() +{ // TODO: this is awfully inefficient, we should keep the list of all // selected items internally, should be much faster - if (m_rootItem) { - RefreshSelectedUnder (m_rootItem); + if(m_rootItem) { + RefreshSelectedUnder(m_rootItem); } } -void clTreeListMainWindow::RefreshSelectedUnder (clTreeListItem *item) { - if (item->IsSelected()) { - RefreshLine (item); +void clTreeListMainWindow::RefreshSelectedUnder(clTreeListItem* item) +{ + if(item->IsSelected()) { + RefreshLine(item); } const clArrayTreeListItems& children = item->GetChildren(); long count = (long)children.GetCount(); - for (long n = 0; n < count; n++ ) { - RefreshSelectedUnder (children[n]); + for(long n = 0; n < count; n++) { + RefreshSelectedUnder(children[n]); } } @@ -4367,202 +4296,219 @@ // changing colours: we need to refresh the tree control // ---------------------------------------------------------------------------- -bool clTreeListMainWindow::SetBackgroundColour (const wxColour& colour) { - if (!wxWindow::SetBackgroundColour(colour)) return false; +bool clTreeListMainWindow::SetBackgroundColour(const wxColour& colour) +{ + if(!wxWindow::SetBackgroundColour(colour)) return false; Refresh(); return true; } -bool clTreeListMainWindow::SetForegroundColour (const wxColour& colour) { - if (!wxWindow::SetForegroundColour(colour)) return false; +bool clTreeListMainWindow::SetForegroundColour(const wxColour& colour) +{ + if(!wxWindow::SetForegroundColour(colour)) return false; Refresh(); return true; } -void clTreeListMainWindow::SetItemText (const wxTreeItemId& itemId, int column, - const wxString& text) { - wxCHECK_RET (itemId.IsOk(), _T("invalid tree item")); +void clTreeListMainWindow::SetItemText(const wxTreeItemId& itemId, int column, const wxString& text) +{ + wxCHECK_RET(itemId.IsOk(), _T("invalid tree item")); - wxClientDC dc (this); - clTreeListItem *item = (clTreeListItem*) itemId.m_pItem; - item->SetText (column, text); - CalculateSize (item, dc); - RefreshLine (item); + wxClientDC dc(this); + clTreeListItem* item = (clTreeListItem*)itemId.m_pItem; + item->SetText(column, text); + CalculateSize(item, dc); + RefreshLine(item); } -const wxString& clTreeListMainWindow::GetItemText (const wxTreeItemId& itemId, - int column) const { - wxCHECK_MSG (itemId.IsOk(), g_emptyString, _T("invalid tree item") ); +const wxString& clTreeListMainWindow::GetItemText(const wxTreeItemId& itemId, int column) const +{ + wxCHECK_MSG(itemId.IsOk(), g_emptyString, _T("invalid tree item")); - if( IsVirtual() ) return m_owner->OnGetItemText(((clTreeListItem*) itemId.m_pItem)->GetData(),column); - else return ((clTreeListItem*) itemId.m_pItem)->GetText (column); + if(IsVirtual()) + return m_owner->OnGetItemText(((clTreeListItem*)itemId.m_pItem)->GetData(), column); + else + return ((clTreeListItem*)itemId.m_pItem)->GetText(column); } -const wxString& clTreeListMainWindow::GetItemText (wxTreeItemData* item, -int column) const { - wxASSERT_MSG( IsVirtual(), _T("can be used only with virtual control") ); - return m_owner->OnGetItemText(item,column); +const wxString& clTreeListMainWindow::GetItemText(wxTreeItemData* item, int column) const +{ + wxASSERT_MSG(IsVirtual(), _T("can be used only with virtual control")); + return m_owner->OnGetItemText(item, column); } -void clTreeListMainWindow::SetFocus() { - wxWindow::SetFocus(); -} +void clTreeListMainWindow::SetFocus() { wxWindow::SetFocus(); } -wxFont clTreeListMainWindow::GetItemFont (clTreeListItem *item) { - wxTreeItemAttr *attr = item->GetAttributes(); +wxFont clTreeListMainWindow::GetItemFont(clTreeListItem* item) +{ + wxTreeItemAttr* attr = item->GetAttributes(); - if (attr && attr->HasFont()) { + if(attr && attr->HasFont()) { return attr->GetFont(); - }else if (item->IsBold()) { + } else if(item->IsBold()) { return m_boldFont; - }else{ + } else { return m_normalFont; - } + } } -int clTreeListMainWindow::GetItemWidth (int column, clTreeListItem *item) { - if (!item) return 0; +int clTreeListMainWindow::GetItemWidth(int column, clTreeListItem* item) +{ + if(!item) return 0; // determine item width int w = 0, h = 0; - wxFont font = GetItemFont (item); - GetTextExtent (item->GetText (column), &w, &h, NULL, NULL, font.Ok()? &font: NULL); - w += 2*MARGIN; + wxFont font = GetItemFont(item); + GetTextExtent(item->GetText(column), &w, &h, NULL, NULL, font.Ok() ? &font : NULL); + w += 2 * MARGIN; // calculate width - int width = w + 2*MARGIN; - if (column == GetMainColumn()) { + int width = w + 2 * MARGIN; + if(column == GetMainColumn()) { width += MARGIN; - if (HasFlag(wxTR_LINES_AT_ROOT)) width += LINEATROOT; - if (HasButtons()) width += m_btnWidth + LINEATROOT; - if (item->GetCurrentImage() != NO_IMAGE) width += m_imgWidth; + if(HasFlag(wxTR_LINES_AT_ROOT)) width += LINEATROOT; + if(HasButtons()) width += m_btnWidth + LINEATROOT; + if(item->GetCurrentImage() != NO_IMAGE) width += m_imgWidth; // count indent level int level = 0; - clTreeListItem *parent = item->GetItemParent(); - clTreeListItem *root = (clTreeListItem*)GetRootItem().m_pItem; - while (parent && (!HasFlag(wxTR_HIDE_ROOT) || (parent != root))) { + clTreeListItem* parent = item->GetItemParent(); + clTreeListItem* root = (clTreeListItem*)GetRootItem().m_pItem; + while(parent && (!HasFlag(wxTR_HIDE_ROOT) || (parent != root))) { level++; parent = parent->GetItemParent(); } - if (level) width += level * GetIndent(); + if(level) width += level * GetIndent(); } return width; } -int clTreeListMainWindow::GetBestColumnWidth (int column, wxTreeItemId parent) { +int clTreeListMainWindow::GetBestColumnWidth(int column, wxTreeItemId parent) +{ int maxWidth, h; - GetClientSize (&maxWidth, &h); + GetClientSize(&maxWidth, &h); int width = 0; // get root if on item - if (!parent.IsOk()) parent = GetRootItem(); + if(!parent.IsOk()) parent = GetRootItem(); // add root width - if (!HasFlag(wxTR_HIDE_ROOT)) { - int w = GetItemWidth (column, (clTreeListItem*)parent.m_pItem); - if (width < w) width = w; - if (width > maxWidth) return maxWidth; + if(!HasFlag(wxTR_HIDE_ROOT)) { + int w = GetItemWidth(column, (clTreeListItem*)parent.m_pItem); + if(width < w) width = w; + if(width > maxWidth) return maxWidth; } wxTreeItemIdValue cookie = 0; - wxTreeItemId item = GetFirstChild (parent, cookie); - while (item.IsOk()) { - int w = GetItemWidth (column, (clTreeListItem*)item.m_pItem); - if (width < w) width = w; - if (width > maxWidth) return maxWidth; + wxTreeItemId item = GetFirstChild(parent, cookie); + while(item.IsOk()) { + int w = GetItemWidth(column, (clTreeListItem*)item.m_pItem); + if(width < w) width = w; + if(width > maxWidth) return maxWidth; // check the children of this item - if (((clTreeListItem*)item.m_pItem)->IsExpanded()) { - int w = GetBestColumnWidth (column, item); - if (width < w) width = w; - if (width > maxWidth) return maxWidth; + if(((clTreeListItem*)item.m_pItem)->IsExpanded()) { + int w = GetBestColumnWidth(column, item); + if(width < w) width = w; + if(width > maxWidth) return maxWidth; } // next sibling - item = GetNextChild (parent, cookie); + item = GetNextChild(parent, cookie); } return width; } +bool clTreeListMainWindow::SendEvent(wxEventType event_type, clTreeListItem* item, wxTreeEvent* event) +{ + wxTreeEvent nevent(event_type, 0); -bool clTreeListMainWindow::SendEvent(wxEventType event_type, clTreeListItem *item, wxTreeEvent *event) { -wxTreeEvent nevent (event_type, 0); - - if (event == NULL) { + if(event == NULL) { event = &nevent; - event->SetInt (m_curColumn); // the mouse colum + event->SetInt(m_curColumn); // the mouse colum } - event->SetEventObject (m_owner); + event->SetEventObject(m_owner); event->SetId(m_owner->GetId()); - if (item) { + if(item) { #if !wxCHECK_VERSION(2, 5, 0) - event->SetItem ((long)item); + event->SetItem((long)item); #else - event->SetItem (item); + event->SetItem(item); #endif } - return m_owner->GetEventHandler()->ProcessEvent (*event); + return m_owner->GetEventHandler()->ProcessEvent(*event); } - //----------------------------------------------------------------------------- // wxTreeListCtrl //----------------------------------------------------------------------------- BEGIN_EVENT_TABLE(clTreeListCtrl, wxControl) - EVT_SIZE(clTreeListCtrl::OnSize) +EVT_SIZE(clTreeListCtrl::OnSize) END_EVENT_TABLE(); -bool clTreeListCtrl::Create(wxWindow *parent, wxWindowID id, +bool clTreeListCtrl::Create(wxWindow* parent, + wxWindowID id, const wxPoint& pos, const wxSize& size, - long style, const wxValidator &validator, + long style, + const wxValidator& validator, const wxString& name) { - long main_style = style & ~(wxSIMPLE_BORDER|wxSUNKEN_BORDER|wxDOUBLE_BORDER| - wxRAISED_BORDER|wxSTATIC_BORDER); - main_style |= wxWANTS_CHARS ; - long ctrl_style = style & ~(wxVSCROLL|wxHSCROLL); - - if (!wxControl::Create(parent, id, pos, size, ctrl_style, validator, name)) { - return false; - } - m_main_win = new clTreeListMainWindow (this, -1, wxPoint(0, 0), size, - main_style, validator); - m_header_win = new clTreeListHeaderWindow (this, -1, m_main_win, - wxPoint(0, 0), wxDefaultSize, - wxTAB_TRAVERSAL); + long main_style = + style & ~(wxSIMPLE_BORDER | wxSUNKEN_BORDER | wxDOUBLE_BORDER | wxRAISED_BORDER | wxSTATIC_BORDER); + main_style |= wxWANTS_CHARS; + long ctrl_style = style & ~(wxVSCROLL | wxHSCROLL); + + if(!wxControl::Create(parent, id, pos, size, ctrl_style, validator, name)) { + return false; + } +#ifdef __WXMSW__ + wxUxThemeEngine* theme = /*wxUxThemeEngine::GetIfActive()*/ NULL; +#endif + +#ifdef __WXMSW__ + if(theme) { + theme->SetWindowTheme(GetHwndOf(this), L"EXPLORER", NULL); + } +#endif + + m_main_win = new clTreeListMainWindow(this, -1, wxPoint(0, 0), size, main_style, validator); +#ifdef __WXMSW__ + if(theme) { + theme->SetWindowTheme(GetHwndOf(m_main_win), L"EXPLORER", NULL); + } +#endif + + m_header_win = new clTreeListHeaderWindow(this, -1, m_main_win, wxPoint(0, 0), wxDefaultSize, wxTAB_TRAVERSAL); +#ifdef __WXMSW__ + if(theme) { + theme->SetWindowTheme(GetHwndOf(m_header_win), L"EXPLORER", NULL); + } +#endif CalculateAndSetHeaderHeight(); return true; } void clTreeListCtrl::CalculateAndSetHeaderHeight() { - if (m_header_win) { + if(m_header_win) { // we use 'g' to get the descent, too int h; -#if wxCHECK_VERSION_FULL(2, 7, 0, 1) #ifdef __WXMSW__ h = (int)(wxRendererNative::Get().GetHeaderButtonHeight(m_header_win) * 0.8) + 2; #else h = wxRendererNative::Get().GetHeaderButtonHeight(m_header_win); #endif -#else - int w, d; - m_header_win->GetTextExtent(_T("Hg"), &w, &h, &d); - h += d + 2 * HEADER_OFFSET_Y + EXTRA_HEIGHT; -#endif - // only update if changed - if (h != m_headerHeight) { + if(h != m_headerHeight) { m_headerHeight = h; DoHeaderLayout(); } @@ -4573,138 +4519,125 @@ { int w, h; GetClientSize(&w, &h); - if (m_header_win) { - m_header_win->SetSize (0, 0, w, m_headerHeight); + if(m_header_win) { + m_header_win->SetSize(0, 0, w, m_headerHeight); m_header_win->Refresh(); } - if (m_main_win) { - // Protect against trying to set a negative height (occurs in wx >=2.9) - if (h > m_headerHeight) { - m_main_win->SetSize (0, m_headerHeight, w, h - m_headerHeight); + if(m_main_win) { + // Protect against trying to set a negative height (occurs in wx >=2.9) + if(h > m_headerHeight) { + m_main_win->SetSize(0, m_headerHeight, w, h - m_headerHeight); + } } } -} -void clTreeListCtrl::OnSize(wxSizeEvent& WXUNUSED(event)) -{ - DoHeaderLayout(); -} +void clTreeListCtrl::OnSize(wxSizeEvent& WXUNUSED(event)) { DoHeaderLayout(); } size_t clTreeListCtrl::GetCount() const { return m_main_win->GetCount(); } -unsigned int clTreeListCtrl::GetIndent() const -{ return m_main_win->GetIndent(); } +unsigned int clTreeListCtrl::GetIndent() const { return m_main_win->GetIndent(); } -void clTreeListCtrl::SetIndent(unsigned int indent) -{ m_main_win->SetIndent(indent); } +void clTreeListCtrl::SetIndent(unsigned int indent) { m_main_win->SetIndent(indent); } -unsigned int clTreeListCtrl::GetLineSpacing() const -{ return m_main_win->GetLineSpacing(); } +unsigned int clTreeListCtrl::GetLineSpacing() const { return m_main_win->GetLineSpacing(); } -void clTreeListCtrl::SetLineSpacing(unsigned int spacing) -{ m_main_win->SetLineSpacing(spacing); } +void clTreeListCtrl::SetLineSpacing(unsigned int spacing) { m_main_win->SetLineSpacing(spacing); } -wxImageList* clTreeListCtrl::GetImageList() const -{ return m_main_win->GetImageList(); } +wxImageList* clTreeListCtrl::GetImageList() const { return m_main_win->GetImageList(); } -wxImageList* clTreeListCtrl::GetStateImageList() const -{ return m_main_win->GetStateImageList(); } +wxImageList* clTreeListCtrl::GetStateImageList() const { return m_main_win->GetStateImageList(); } -wxImageList* clTreeListCtrl::GetButtonsImageList() const -{ return m_main_win->GetButtonsImageList(); } +wxImageList* clTreeListCtrl::GetButtonsImageList() const { return m_main_win->GetButtonsImageList(); } -void clTreeListCtrl::SetImageList(wxImageList* imageList) -{ m_main_win->SetImageList(imageList); } +void clTreeListCtrl::SetImageList(wxImageList* imageList) { m_main_win->SetImageList(imageList); } -void clTreeListCtrl::SetStateImageList(wxImageList* imageList) -{ m_main_win->SetStateImageList(imageList); } +void clTreeListCtrl::SetStateImageList(wxImageList* imageList) { m_main_win->SetStateImageList(imageList); } -void clTreeListCtrl::SetButtonsImageList(wxImageList* imageList) -{ m_main_win->SetButtonsImageList(imageList); } +void clTreeListCtrl::SetButtonsImageList(wxImageList* imageList) { m_main_win->SetButtonsImageList(imageList); } -void clTreeListCtrl::AssignImageList(wxImageList* imageList) -{ m_main_win->AssignImageList(imageList); } +void clTreeListCtrl::AssignImageList(wxImageList* imageList) { m_main_win->AssignImageList(imageList); } -void clTreeListCtrl::AssignStateImageList(wxImageList* imageList) -{ m_main_win->AssignStateImageList(imageList); } +void clTreeListCtrl::AssignStateImageList(wxImageList* imageList) { m_main_win->AssignStateImageList(imageList); } -void clTreeListCtrl::AssignButtonsImageList(wxImageList* imageList) -{ m_main_win->AssignButtonsImageList(imageList); } +void clTreeListCtrl::AssignButtonsImageList(wxImageList* imageList) { m_main_win->AssignButtonsImageList(imageList); } wxString clTreeListCtrl::GetItemText(const wxTreeItemId& item, int column) const -{ return m_main_win->GetItemText (item, column); } +{ + return m_main_win->GetItemText(item, column); +} -int clTreeListCtrl::GetItemImage(const wxTreeItemId& item, int column, - wxTreeItemIcon which) const -{ return m_main_win->GetItemImage(item, column, which); } +int clTreeListCtrl::GetItemImage(const wxTreeItemId& item, int column, wxTreeItemIcon which) const +{ + return m_main_win->GetItemImage(item, column, which); +} -wxTreeItemData* clTreeListCtrl::GetItemData(const wxTreeItemId& item) const -{ return m_main_win->GetItemData(item); } +wxTreeItemData* clTreeListCtrl::GetItemData(const wxTreeItemId& item) const { return m_main_win->GetItemData(item); } -bool clTreeListCtrl::GetItemBold(const wxTreeItemId& item) const -{ return m_main_win->GetItemBold(item); } +bool clTreeListCtrl::GetItemBold(const wxTreeItemId& item) const { return m_main_win->GetItemBold(item); } wxColour clTreeListCtrl::GetItemTextColour(const wxTreeItemId& item) const -{ return m_main_win->GetItemTextColour(item); } - -wxColour clTreeListCtrl::GetItemBackgroundColour(const wxTreeItemId& item) - const -{ return m_main_win->GetItemBackgroundColour(item); } +{ + return m_main_win->GetItemTextColour(item); +} -wxFont clTreeListCtrl::GetItemFont(const wxTreeItemId& item) const -{ return m_main_win->GetItemFont(item); } +wxColour clTreeListCtrl::GetItemBackgroundColour(const wxTreeItemId& item) const +{ + return m_main_win->GetItemBackgroundColour(item); +} +wxFont clTreeListCtrl::GetItemFont(const wxTreeItemId& item) const { return m_main_win->GetItemFont(item); } -void clTreeListCtrl::SetItemText(const wxTreeItemId& item, int column, - const wxString& text) -{ m_main_win->SetItemText (item, column, text); } +void clTreeListCtrl::SetItemText(const wxTreeItemId& item, int column, const wxString& text) +{ + m_main_win->SetItemText(item, column, text); +} -void clTreeListCtrl::SetItemImage(const wxTreeItemId& item, - int column, - int image, - wxTreeItemIcon which) -{ m_main_win->SetItemImage(item, column, image, which); } +void clTreeListCtrl::SetItemImage(const wxTreeItemId& item, int column, int image, wxTreeItemIcon which) +{ + m_main_win->SetItemImage(item, column, image, which); +} -void clTreeListCtrl::SetItemData(const wxTreeItemId& item, - wxTreeItemData* data) -{ m_main_win->SetItemData(item, data); } +void clTreeListCtrl::SetItemData(const wxTreeItemId& item, wxTreeItemData* data) +{ + m_main_win->SetItemData(item, data); +} void clTreeListCtrl::SetItemHasChildren(const wxTreeItemId& item, bool has) -{ m_main_win->SetItemHasChildren(item, has); } +{ + m_main_win->SetItemHasChildren(item, has); +} + +void clTreeListCtrl::SetItemBold(const wxTreeItemId& item, bool bold) { m_main_win->SetItemBold(item, bold); } + +void clTreeListCtrl::SetItemTextColour(const wxTreeItemId& item, const wxColour& colour) +{ + m_main_win->SetItemTextColour(item, colour); +} -void clTreeListCtrl::SetItemBold(const wxTreeItemId& item, bool bold) -{ m_main_win->SetItemBold(item, bold); } +void clTreeListCtrl::SetItemBackgroundColour(const wxTreeItemId& item, const wxColour& colour) +{ + m_main_win->SetItemBackgroundColour(item, colour); +} -void clTreeListCtrl::SetItemTextColour(const wxTreeItemId& item, - const wxColour& colour) -{ m_main_win->SetItemTextColour(item, colour); } - -void clTreeListCtrl::SetItemBackgroundColour(const wxTreeItemId& item, - const wxColour& colour) -{ m_main_win->SetItemBackgroundColour(item, colour); } - -void clTreeListCtrl::SetItemFont(const wxTreeItemId& item, - const wxFont& font) -{ m_main_win->SetItemFont(item, font); } +void clTreeListCtrl::SetItemFont(const wxTreeItemId& item, const wxFont& font) { m_main_win->SetItemFont(item, font); } bool clTreeListCtrl::SetFont(const wxFont& font) { - if (m_header_win) { + if(m_header_win) { m_header_win->SetFont(font); CalculateAndSetHeaderHeight(); m_header_win->Refresh(); } - if (m_main_win) { + if(m_main_win) { return m_main_win->SetFont(font); - }else{ + } else { return false; } } void clTreeListCtrl::SetWindowStyle(const long style) { - if(m_main_win) - m_main_win->SetWindowStyle(style); + if(m_main_win) m_main_win->SetWindowStyle(style); m_windowStyle = style; // TODO: provide something like wxTL_NO_HEADERS to hide m_header_win } @@ -4712,366 +4645,343 @@ long clTreeListCtrl::GetWindowStyle() const { long style = m_windowStyle; - if(m_main_win) - style |= m_main_win->GetWindowStyle(); + if(m_main_win) style |= m_main_win->GetWindowStyle(); return style; } bool clTreeListCtrl::IsVisible(const wxTreeItemId& item, bool fullRow, bool within) const -{ return m_main_win->IsVisible(item, fullRow, within); } +{ + return m_main_win->IsVisible(item, fullRow, within); +} -bool clTreeListCtrl::HasChildren(const wxTreeItemId& item) const -{ return m_main_win->HasChildren(item); } +bool clTreeListCtrl::HasChildren(const wxTreeItemId& item) const { return m_main_win->HasChildren(item); } -bool clTreeListCtrl::IsExpanded(const wxTreeItemId& item) const -{ return m_main_win->IsExpanded(item); } +bool clTreeListCtrl::IsExpanded(const wxTreeItemId& item) const { return m_main_win->IsExpanded(item); } -bool clTreeListCtrl::IsSelected(const wxTreeItemId& item) const -{ return m_main_win->IsSelected(item); } +bool clTreeListCtrl::IsSelected(const wxTreeItemId& item) const { return m_main_win->IsSelected(item); } -bool clTreeListCtrl::IsBold(const wxTreeItemId& item) const -{ return m_main_win->IsBold(item); } +bool clTreeListCtrl::IsBold(const wxTreeItemId& item) const { return m_main_win->IsBold(item); } size_t clTreeListCtrl::GetChildrenCount(const wxTreeItemId& item, bool rec) -{ return m_main_win->GetChildrenCount(item, rec); } +{ + return m_main_win->GetChildrenCount(item, rec); +} -wxTreeItemId clTreeListCtrl::GetRootItem() const -{ return m_main_win->GetRootItem(); } +wxTreeItemId clTreeListCtrl::GetRootItem() const { return m_main_win->GetRootItem(); } -wxTreeItemId clTreeListCtrl::GetSelection() const -{ return m_main_win->GetSelection(); } +wxTreeItemId clTreeListCtrl::GetSelection() const { return m_main_win->GetSelection(); } -size_t clTreeListCtrl::GetSelections(wxArrayTreeItemIds& arr) const -{ return m_main_win->GetSelections(arr); } +size_t clTreeListCtrl::GetSelections(wxArrayTreeItemIds& arr) const { return m_main_win->GetSelections(arr); } -wxTreeItemId clTreeListCtrl::GetItemParent(const wxTreeItemId& item) const -{ return m_main_win->GetItemParent(item); } +wxTreeItemId clTreeListCtrl::GetItemParent(const wxTreeItemId& item) const { return m_main_win->GetItemParent(item); } #if !wxCHECK_VERSION(2, 5, 0) -wxTreeItemId clTreeListCtrl::GetFirstChild (const wxTreeItemId& item, - long& cookie) const +wxTreeItemId clTreeListCtrl::GetFirstChild(const wxTreeItemId& item, long& cookie) const #else -wxTreeItemId clTreeListCtrl::GetFirstChild (const wxTreeItemId& item, - wxTreeItemIdValue& cookie) const +wxTreeItemId clTreeListCtrl::GetFirstChild(const wxTreeItemId& item, wxTreeItemIdValue& cookie) const #endif -{ return m_main_win->GetFirstChild(item, cookie); } +{ + return m_main_win->GetFirstChild(item, cookie); +} #if !wxCHECK_VERSION(2, 5, 0) -wxTreeItemId clTreeListCtrl::GetNextChild (const wxTreeItemId& item, - long& cookie) const +wxTreeItemId clTreeListCtrl::GetNextChild(const wxTreeItemId& item, long& cookie) const #else -wxTreeItemId clTreeListCtrl::GetNextChild (const wxTreeItemId& item, - wxTreeItemIdValue& cookie) const +wxTreeItemId clTreeListCtrl::GetNextChild(const wxTreeItemId& item, wxTreeItemIdValue& cookie) const #endif -{ return m_main_win->GetNextChild(item, cookie); } +{ + return m_main_win->GetNextChild(item, cookie); +} #if !wxCHECK_VERSION(2, 5, 0) -wxTreeItemId clTreeListCtrl::GetPrevChild (const wxTreeItemId& item, - long& cookie) const +wxTreeItemId clTreeListCtrl::GetPrevChild(const wxTreeItemId& item, long& cookie) const #else -wxTreeItemId clTreeListCtrl::GetPrevChild (const wxTreeItemId& item, - wxTreeItemIdValue& cookie) const +wxTreeItemId clTreeListCtrl::GetPrevChild(const wxTreeItemId& item, wxTreeItemIdValue& cookie) const #endif -{ return m_main_win->GetPrevChild(item, cookie); } +{ + return m_main_win->GetPrevChild(item, cookie); +} #if !wxCHECK_VERSION(2, 5, 0) -wxTreeItemId clTreeListCtrl::GetLastChild (const wxTreeItemId& item, - long& cookie) const +wxTreeItemId clTreeListCtrl::GetLastChild(const wxTreeItemId& item, long& cookie) const #else -wxTreeItemId clTreeListCtrl::GetLastChild (const wxTreeItemId& item, - wxTreeItemIdValue& cookie) const +wxTreeItemId clTreeListCtrl::GetLastChild(const wxTreeItemId& item, wxTreeItemIdValue& cookie) const #endif -{ return m_main_win->GetLastChild(item, cookie); } - +{ + return m_main_win->GetLastChild(item, cookie); +} -wxTreeItemId clTreeListCtrl::GetNextSibling(const wxTreeItemId& item) const -{ return m_main_win->GetNextSibling(item); } +wxTreeItemId clTreeListCtrl::GetNextSibling(const wxTreeItemId& item) const { return m_main_win->GetNextSibling(item); } -wxTreeItemId clTreeListCtrl::GetPrevSibling(const wxTreeItemId& item) const -{ return m_main_win->GetPrevSibling(item); } +wxTreeItemId clTreeListCtrl::GetPrevSibling(const wxTreeItemId& item) const { return m_main_win->GetPrevSibling(item); } -wxTreeItemId clTreeListCtrl::GetNext(const wxTreeItemId& item) const -{ return m_main_win->GetNext(item, true); } +wxTreeItemId clTreeListCtrl::GetNext(const wxTreeItemId& item) const { return m_main_win->GetNext(item, true); } -wxTreeItemId clTreeListCtrl::GetPrev(const wxTreeItemId& item) const -{ return m_main_win->GetPrev(item, true); } +wxTreeItemId clTreeListCtrl::GetPrev(const wxTreeItemId& item) const { return m_main_win->GetPrev(item, true); } -wxTreeItemId clTreeListCtrl::GetFirstExpandedItem() const -{ return m_main_win->GetFirstExpandedItem(); } +wxTreeItemId clTreeListCtrl::GetFirstExpandedItem() const { return m_main_win->GetFirstExpandedItem(); } wxTreeItemId clTreeListCtrl::GetNextExpanded(const wxTreeItemId& item) const -{ return m_main_win->GetNextExpanded(item); } +{ + return m_main_win->GetNextExpanded(item); +} wxTreeItemId clTreeListCtrl::GetPrevExpanded(const wxTreeItemId& item) const -{ return m_main_win->GetPrevExpanded(item); } +{ + return m_main_win->GetPrevExpanded(item); +} -wxTreeItemId clTreeListCtrl::GetFirstVisibleItem(bool fullRow) const -{ return GetFirstVisible(fullRow); } +wxTreeItemId clTreeListCtrl::GetFirstVisibleItem(bool fullRow) const { return GetFirstVisible(fullRow); } wxTreeItemId clTreeListCtrl::GetFirstVisible(bool fullRow, bool within) const -{ return m_main_win->GetFirstVisible(fullRow, within); } +{ + return m_main_win->GetFirstVisible(fullRow, within); +} wxTreeItemId clTreeListCtrl::GetLastVisible(bool fullRow, bool within) const -{ return m_main_win->GetLastVisible(fullRow, within); } +{ + return m_main_win->GetLastVisible(fullRow, within); +} wxTreeItemId clTreeListCtrl::GetNextVisible(const wxTreeItemId& item, bool fullRow, bool within) const -{ return m_main_win->GetNextVisible(item, fullRow, within); } +{ + return m_main_win->GetNextVisible(item, fullRow, within); +} wxTreeItemId clTreeListCtrl::GetPrevVisible(const wxTreeItemId& item, bool fullRow, bool within) const -{ return m_main_win->GetPrevVisible(item, fullRow, within); } +{ + return m_main_win->GetPrevVisible(item, fullRow, within); +} -wxTreeItemId clTreeListCtrl::AddRoot (const wxString& text, int image, - int selectedImage, wxTreeItemData* data) -{ return m_main_win->AddRoot (text, image, selectedImage, data); } +wxTreeItemId clTreeListCtrl::AddRoot(const wxString& text, int image, int selectedImage, wxTreeItemData* data) +{ + return m_main_win->AddRoot(text, image, selectedImage, data); +} wxTreeItemId clTreeListCtrl::PrependItem(const wxTreeItemId& parent, - const wxString& text, int image, + const wxString& text, + int image, int selectedImage, wxTreeItemData* data) -{ return m_main_win->PrependItem(parent, text, image, selectedImage, data); } +{ + return m_main_win->PrependItem(parent, text, image, selectedImage, data); +} wxTreeItemId clTreeListCtrl::InsertItem(const wxTreeItemId& parent, const wxTreeItemId& previous, - const wxString& text, int image, + const wxString& text, + int image, int selectedImage, wxTreeItemData* data) { - return m_main_win->InsertItem(parent, previous, text, image, - selectedImage, data); + return m_main_win->InsertItem(parent, previous, text, image, selectedImage, data); } wxTreeItemId clTreeListCtrl::InsertItem(const wxTreeItemId& parent, size_t index, - const wxString& text, int image, + const wxString& text, + int image, int selectedImage, wxTreeItemData* data) { - return m_main_win->InsertItem(parent, index, text, image, - selectedImage, data); + return m_main_win->InsertItem(parent, index, text, image, selectedImage, data); } wxTreeItemId clTreeListCtrl::AppendItem(const wxTreeItemId& parent, - const wxString& text, int image, + const wxString& text, + int image, int selectedImage, wxTreeItemData* data) -{ return m_main_win->AppendItem(parent, text, image, selectedImage, data); } +{ + return m_main_win->AppendItem(parent, text, image, selectedImage, data); +} -void clTreeListCtrl::Delete(const wxTreeItemId& item) -{ m_main_win->Delete(item); } +void clTreeListCtrl::Delete(const wxTreeItemId& item) { m_main_win->Delete(item); } -void clTreeListCtrl::DeleteChildren(const wxTreeItemId& item) -{ m_main_win->DeleteChildren(item); } +void clTreeListCtrl::DeleteChildren(const wxTreeItemId& item) { m_main_win->DeleteChildren(item); } -void clTreeListCtrl::DeleteRoot() -{ m_main_win->DeleteRoot(); } +void clTreeListCtrl::DeleteRoot() { m_main_win->DeleteRoot(); } -void clTreeListCtrl::Expand(const wxTreeItemId& item) -{ m_main_win->Expand(item); } +void clTreeListCtrl::Expand(const wxTreeItemId& item) { m_main_win->Expand(item); } -void clTreeListCtrl::ExpandAll(const wxTreeItemId& item) -{ m_main_win->ExpandAll(item); } +void clTreeListCtrl::ExpandAll(const wxTreeItemId& item) { m_main_win->ExpandAll(item); } -void clTreeListCtrl::Collapse(const wxTreeItemId& item) -{ m_main_win->Collapse(item); } +void clTreeListCtrl::Collapse(const wxTreeItemId& item) { m_main_win->Collapse(item); } -void clTreeListCtrl::CollapseAndReset(const wxTreeItemId& item) -{ m_main_win->CollapseAndReset(item); } +void clTreeListCtrl::CollapseAndReset(const wxTreeItemId& item) { m_main_win->CollapseAndReset(item); } -void clTreeListCtrl::Toggle(const wxTreeItemId& item) -{ m_main_win->Toggle(item); } +void clTreeListCtrl::Toggle(const wxTreeItemId& item) { m_main_win->Toggle(item); } -void clTreeListCtrl::Unselect() -{ m_main_win->Unselect(); } +void clTreeListCtrl::Unselect() { m_main_win->Unselect(); } -void clTreeListCtrl::UnselectAll() -{ m_main_win->UnselectAll(); } +void clTreeListCtrl::UnselectAll() { m_main_win->UnselectAll(); } -bool clTreeListCtrl::SelectItem(const wxTreeItemId& item, const wxTreeItemId& last, - bool unselect_others) -{ return m_main_win->SelectItem (item, last, unselect_others); } +bool clTreeListCtrl::SelectItem(const wxTreeItemId& item, const wxTreeItemId& last, bool unselect_others) +{ + return m_main_win->SelectItem(item, last, unselect_others); +} -void clTreeListCtrl::SelectAll() -{ m_main_win->SelectAll(); } +void clTreeListCtrl::SelectAll() { m_main_win->SelectAll(); } -void clTreeListCtrl::EnsureVisible(const wxTreeItemId& item) -{ m_main_win->EnsureVisible(item); } +void clTreeListCtrl::EnsureVisible(const wxTreeItemId& item) { m_main_win->EnsureVisible(item); } -void clTreeListCtrl::ScrollTo(const wxTreeItemId& item) -{ m_main_win->ScrollTo(item); } +void clTreeListCtrl::ScrollTo(const wxTreeItemId& item) { m_main_win->ScrollTo(item); } wxTreeItemId clTreeListCtrl::HitTest(const wxPoint& pos, int& flags, int& column) { - wxPoint p = m_main_win->ScreenToClient (ClientToScreen (pos)); - return m_main_win->HitTest (p, flags, column); + wxPoint p = m_main_win->ScreenToClient(ClientToScreen(pos)); + return m_main_win->HitTest(p, flags, column); } -bool clTreeListCtrl::GetBoundingRect(const wxTreeItemId& item, wxRect& rect, - bool textOnly) const -{ return m_main_win->GetBoundingRect(item, rect, textOnly); } +bool clTreeListCtrl::GetBoundingRect(const wxTreeItemId& item, wxRect& rect, bool textOnly) const +{ + return m_main_win->GetBoundingRect(item, rect, textOnly); +} -void clTreeListCtrl::EditLabel (const wxTreeItemId& item, int column) -{ m_main_win->EditLabel (item, column); } +void clTreeListCtrl::EditLabel(const wxTreeItemId& item, int column) { m_main_win->EditLabel(item, column); } -int clTreeListCtrl::OnCompareItems(const wxTreeItemId& item1, - const wxTreeItemId& item2) +int clTreeListCtrl::OnCompareItems(const wxTreeItemId& item1, const wxTreeItemId& item2) { // do the comparison here, and not delegate to m_main_win, in order // to let the user override it - //return m_main_win->OnCompareItems(item1, item2); + // return m_main_win->OnCompareItems(item1, item2); return wxStrcmp(GetItemText(item1), GetItemText(item2)); } -void clTreeListCtrl::SortChildren(const wxTreeItemId& item) -{ m_main_win->SortChildren(item); } +void clTreeListCtrl::SortChildren(const wxTreeItemId& item) { m_main_win->SortChildren(item); } -wxTreeItemId clTreeListCtrl::FindItem (const wxTreeItemId& item, const wxString& str, int mode) -{ return m_main_win->FindItem (item, str, mode); } +wxTreeItemId clTreeListCtrl::FindItem(const wxTreeItemId& item, const wxString& str, int mode) +{ + return m_main_win->FindItem(item, str, mode); +} -void clTreeListCtrl::SetDragItem (const wxTreeItemId& item) -{ m_main_win->SetDragItem (item); } +void clTreeListCtrl::SetDragItem(const wxTreeItemId& item) { m_main_win->SetDragItem(item); } bool clTreeListCtrl::SetBackgroundColour(const wxColour& colour) { - if (!m_main_win) return false; + if(!m_main_win) return false; return m_main_win->SetBackgroundColour(colour); } bool clTreeListCtrl::SetForegroundColour(const wxColour& colour) { - if (!m_main_win) return false; + if(!m_main_win) return false; return m_main_win->SetForegroundColour(colour); } -int clTreeListCtrl::GetColumnCount() const -{ return m_main_win->GetColumnCount(); } +int clTreeListCtrl::GetColumnCount() const { return m_main_win->GetColumnCount(); } void clTreeListCtrl::SetColumnWidth(int column, int width) { - m_header_win->SetColumnWidth (column, width); + m_header_win->SetColumnWidth(column, width); m_header_win->Refresh(); } -int clTreeListCtrl::GetColumnWidth(int column) const -{ return m_header_win->GetColumnWidth(column); } +int clTreeListCtrl::GetColumnWidth(int column) const { return m_header_win->GetColumnWidth(column); } -void clTreeListCtrl::SetMainColumn(int column) -{ m_main_win->SetMainColumn(column); } +void clTreeListCtrl::SetMainColumn(int column) { m_main_win->SetMainColumn(column); } -int clTreeListCtrl::GetMainColumn() const -{ return m_main_win->GetMainColumn(); } +int clTreeListCtrl::GetMainColumn() const { return m_main_win->GetMainColumn(); } void clTreeListCtrl::SetColumnText(int column, const wxString& text) { - m_header_win->SetColumnText (column, text); + m_header_win->SetColumnText(column, text); m_header_win->Refresh(); } -wxString clTreeListCtrl::GetColumnText(int column) const -{ return m_header_win->GetColumnText(column); } +wxString clTreeListCtrl::GetColumnText(int column) const { return m_header_win->GetColumnText(column); } void clTreeListCtrl::AddColumn(const clTreeListColumnInfo& colInfo) { - m_header_win->AddColumn (colInfo); + m_header_win->AddColumn(colInfo); DoHeaderLayout(); } void clTreeListCtrl::InsertColumn(int before, const clTreeListColumnInfo& colInfo) { - m_header_win->InsertColumn (before, colInfo); + m_header_win->InsertColumn(before, colInfo); m_header_win->Refresh(); } void clTreeListCtrl::RemoveColumn(int column) { - m_header_win->RemoveColumn (column); + m_header_win->RemoveColumn(column); m_header_win->Refresh(); } void clTreeListCtrl::SetColumn(int column, const clTreeListColumnInfo& colInfo) { - m_header_win->SetColumn (column, colInfo); + m_header_win->SetColumn(column, colInfo); m_header_win->Refresh(); } -const clTreeListColumnInfo& clTreeListCtrl::GetColumn(int column) const -{ return m_header_win->GetColumn(column); } +const clTreeListColumnInfo& clTreeListCtrl::GetColumn(int column) const { return m_header_win->GetColumn(column); } -clTreeListColumnInfo& clTreeListCtrl::GetColumn(int column) -{ return m_header_win->GetColumn(column); } +clTreeListColumnInfo& clTreeListCtrl::GetColumn(int column) { return m_header_win->GetColumn(column); } void clTreeListCtrl::SetColumnImage(int column, int image) { - m_header_win->SetColumn (column, GetColumn(column).SetImage(image)); + m_header_win->SetColumn(column, GetColumn(column).SetImage(image)); m_header_win->Refresh(); } -int clTreeListCtrl::GetColumnImage(int column) const -{ - return m_header_win->GetColumn(column).GetImage(); -} +int clTreeListCtrl::GetColumnImage(int column) const { return m_header_win->GetColumn(column).GetImage(); } void clTreeListCtrl::SetColumnEditable(int column, bool shown) { - m_header_win->SetColumn (column, GetColumn(column).SetEditable(shown)); + m_header_win->SetColumn(column, GetColumn(column).SetEditable(shown)); } void clTreeListCtrl::SetColumnShown(int column, bool shown) { - wxASSERT_MSG (column != GetMainColumn(), _T("The main column may not be hidden") ); - m_header_win->SetColumn (column, GetColumn(column).SetShown(GetMainColumn()==column? true: shown)); + wxASSERT_MSG(column != GetMainColumn(), _T("The main column may not be hidden")); + m_header_win->SetColumn(column, GetColumn(column).SetShown(GetMainColumn() == column ? true : shown)); m_header_win->Refresh(); } -bool clTreeListCtrl::IsColumnEditable(int column) const -{ - return m_header_win->GetColumn(column).IsEditable(); -} +bool clTreeListCtrl::IsColumnEditable(int column) const { return m_header_win->GetColumn(column).IsEditable(); } -bool clTreeListCtrl::IsColumnShown(int column) const -{ - return m_header_win->GetColumn(column).IsShown(); -} +bool clTreeListCtrl::IsColumnShown(int column) const { return m_header_win->GetColumn(column).IsShown(); } -void clTreeListCtrl::SetColumnAlignment (int column, int flag) +void clTreeListCtrl::SetColumnAlignment(int column, int flag) { m_header_win->SetColumn(column, GetColumn(column).SetAlignment(flag)); m_header_win->Refresh(); } -int clTreeListCtrl::GetColumnAlignment(int column) const -{ - return m_header_win->GetColumn(column).GetAlignment(); -} +int clTreeListCtrl::GetColumnAlignment(int column) const { return m_header_win->GetColumn(column).GetAlignment(); } void clTreeListCtrl::Refresh(bool erase, const wxRect* rect) { - m_main_win->Refresh (erase, rect); - m_header_win->Refresh (erase, rect); + m_main_win->Refresh(erase, rect); + m_header_win->Refresh(erase, rect); } -void clTreeListCtrl::SetFocus() -{ m_main_win->SetFocus(); } +void clTreeListCtrl::SetFocus() { m_main_win->SetFocus(); } wxSize clTreeListCtrl::DoGetBestSize() const { // something is better than nothing... - return wxSize (200,200); // but it should be specified values! FIXME + return wxSize(200, 200); // but it should be specified values! FIXME } -const wxString& clTreeListCtrl::OnGetItemText( wxTreeItemData* WXUNUSED(item), long WXUNUSED(column)) const +const wxString& clTreeListCtrl::OnGetItemText(wxTreeItemData* WXUNUSED(item), long WXUNUSED(column)) const { - static wxString sEmptyString = wxT(""); + static wxString sEmptyString = wxT(""); return sEmptyString; } -void clTreeListCtrl::SetToolTip(const wxString& tip) { +void clTreeListCtrl::SetToolTip(const wxString& tip) +{ m_header_win->SetToolTip(tip); m_main_win->SetToolTip(tip); } -void clTreeListCtrl::SetToolTip(wxToolTip *tip) { +void clTreeListCtrl::SetToolTip(wxToolTip* tip) +{ m_header_win->SetToolTip(tip); m_main_win->SetToolTip(tip); } -void clTreeListCtrl::SetItemToolTip(const wxTreeItemId& item, const wxString &tip) { +void clTreeListCtrl::SetItemToolTip(const wxTreeItemId& item, const wxString& tip) +{ m_main_win->SetItemToolTip(item, tip); } diff -Nru codelite-8.0.1+dfsg2/Plugin/clWorkspaceManager.cpp codelite-9.0+dfsg/Plugin/clWorkspaceManager.cpp --- codelite-8.0.1+dfsg2/Plugin/clWorkspaceManager.cpp 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/clWorkspaceManager.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,48 @@ +#include "clWorkspaceManager.h" +#include +#include "codelite_events.h" +#include "event_notifier.h" + +clWorkspaceManager::clWorkspaceManager() + : m_workspace(NULL) +{ + EventNotifier::Get()->Bind(wxEVT_WORKSPACE_CLOSED, &clWorkspaceManager::OnWorkspaceClosed, this); +} + +clWorkspaceManager::~clWorkspaceManager() +{ + std::for_each(m_workspaces.begin(), m_workspaces.end(), [&](IWorkspace* workspace) { wxDELETE(workspace); }); + EventNotifier::Get()->Unbind(wxEVT_WORKSPACE_CLOSED, &clWorkspaceManager::OnWorkspaceClosed, this); +} + +clWorkspaceManager& clWorkspaceManager::Get() +{ + static clWorkspaceManager mgr; + return mgr; +} + +void clWorkspaceManager::RegisterWorkspace(IWorkspace* workspace) { m_workspaces.push_back(workspace); } + +void clWorkspaceManager::OnWorkspaceClosed(wxCommandEvent& e) +{ + e.Skip(); + SetWorkspace(NULL); +} + +wxArrayString clWorkspaceManager::GetAllWorkspaces() const +{ + wxArrayString all; + std::for_each(m_workspaces.begin(), m_workspaces.end(), [&](IWorkspace* workspace) { + all.Add(workspace->GetWorkspaceType()); + }); + return all; +} + +wxArrayString clWorkspaceManager::GetUnifiedFilesMask() const +{ + wxArrayString all; + std::for_each(m_workspaces.begin(), m_workspaces.end(), [&](IWorkspace* workspace) { + all.Add(workspace->GetFilesMask()); + }); + return all; +} diff -Nru codelite-8.0.1+dfsg2/Plugin/clWorkspaceManager.h codelite-9.0+dfsg/Plugin/clWorkspaceManager.h --- codelite-8.0.1+dfsg2/Plugin/clWorkspaceManager.h 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/clWorkspaceManager.h 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,47 @@ +#ifndef CLWORKSPACEMANAGER_H +#define CLWORKSPACEMANAGER_H + +#include +#include "codelite_exports.h" +#include "IWorkspace.h" + +class WXDLLIMPEXP_SDK clWorkspaceManager : public wxEvtHandler +{ + IWorkspace* m_workspace; + IWorkspace::List_t m_workspaces; + +protected: + clWorkspaceManager(); + virtual ~clWorkspaceManager(); + + void OnWorkspaceClosed(wxCommandEvent& e); + +public: + static clWorkspaceManager& Get(); + + void SetWorkspace(IWorkspace* workspace) { this->m_workspace = workspace; } + IWorkspace* GetWorkspace() { return m_workspace; } + + /** + * @brief return list of all supported workspaces + */ + wxArrayString GetAllWorkspaces() const; + + /** + * @brief return an array containing the files mask for all the workspace + * types + */ + wxArrayString GetUnifiedFilesMask() const; + + /** + * @brief do we have a workspace opened? + */ + bool IsWorkspaceOpened() const { return m_workspace != NULL; } + /** + * @brief register new workspace type + * @param workspace + */ + void RegisterWorkspace(IWorkspace* workspace); +}; + +#endif // CLWORKSPACEMANAGER_H diff -Nru codelite-8.0.1+dfsg2/Plugin/clWorkspaceView.cpp codelite-9.0+dfsg/Plugin/clWorkspaceView.cpp --- codelite-8.0.1+dfsg2/Plugin/clWorkspaceView.cpp 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/clWorkspaceView.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,85 @@ +#include "clWorkspaceView.h" +#include "macros.h" +#include "event_notifier.h" +#include "codelite_events.h" +#include + +clWorkspaceView::clWorkspaceView(wxSimplebook* book) + : m_simpleBook(book) + , m_defaultPage(_("Default")) +{ + EventNotifier::Get()->Bind(wxEVT_WORKSPACE_CLOSED, &clWorkspaceView::OnWorkspaceClosed, this); +} + +clWorkspaceView::~clWorkspaceView() +{ + EventNotifier::Get()->Unbind(wxEVT_WORKSPACE_CLOSED, &clWorkspaceView::OnWorkspaceClosed, this); +} + +size_t clWorkspaceView::GetPageIndex(const wxString& name) const +{ + for(size_t i = 0; i < m_simpleBook->GetPageCount(); ++i) { + if(m_simpleBook->GetPageText(i) == name) { + return i; + } + } + return wxString::npos; +} + +wxWindow* clWorkspaceView::GetPage(const wxString& name) const +{ + size_t index = GetPageIndex(name); + if(index != wxString::npos) { + return m_simpleBook->GetPage(index); + } else if(m_windows.count(name)) { + return m_windows.find(name)->second; + } + return NULL; +} + +void clWorkspaceView::AddPage(wxWindow* page, const wxString& name, bool addToBook) +{ + if(addToBook) { + m_simpleBook->AddPage(page, name); + } else { + m_windows.insert(std::make_pair(name, page)); + } +} + +void clWorkspaceView::SelectPage(const wxString& name) +{ + size_t index = GetPageIndex(name); + if(index != wxString::npos) { + m_simpleBook->ChangeSelection(index); + } +} + +void clWorkspaceView::RemovePage(const wxString& name) +{ + size_t index = GetPageIndex(name); + if(index != wxString::npos) { + m_simpleBook->RemovePage(index); + } else { + // try to locate it in the internal map + if(m_windows.count(name)) { + m_windows.erase(name); + } + } +} + +void clWorkspaceView::OnWorkspaceClosed(wxCommandEvent& event) +{ + event.Skip(); + SelectPage(GetDefaultPage()); +} + +std::map clWorkspaceView::GetAllPages() const +{ + std::map pages; + for(size_t i = 0; i < m_simpleBook->GetPageCount(); ++i) { + if(m_simpleBook->GetPageText(i) == _("Default")) continue; + pages.insert(std::make_pair(m_simpleBook->GetPageText(i), m_simpleBook->GetPage(i))); + } + pages.insert(m_windows.begin(), m_windows.end()); + return pages; +} diff -Nru codelite-8.0.1+dfsg2/Plugin/clWorkspaceView.h codelite-9.0+dfsg/Plugin/clWorkspaceView.h --- codelite-8.0.1+dfsg2/Plugin/clWorkspaceView.h 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/clWorkspaceView.h 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,81 @@ +#ifndef CLWORKSPACEVIEW_H +#define CLWORKSPACEVIEW_H + +#include "codelite_exports.h" +#include +#include +#include +#include + +class WXDLLIMPEXP_SDK clWorkspaceView : public wxEvtHandler +{ + wxSimplebook* m_simpleBook; + wxString m_defaultPage; + std::map m_windows; + +protected: + /** + * @brief return the index of a give page by its name. + * @param name the page name + * @return page index or wxString::npos on failure + */ + size_t GetPageIndex(const wxString& name) const; + + /** + * @brief a workspace was closed + */ + void OnWorkspaceClosed(wxCommandEvent &event); + +public: + clWorkspaceView(wxSimplebook* book); + virtual ~clWorkspaceView(); + + /** + * @brief return the default page to show + */ + const wxString& GetDefaultPage() const { + return m_defaultPage; + } + + /** + * @brief set the default page to show + */ + void SetDefaultPage(const wxString& page) { + m_defaultPage = page; + } + + /** + * @brief add custom page to the inner notebook + * @note adding a page does not select it + */ + void AddPage(wxWindow* page, const wxString& name, bool addToBook = true); + + /** + * @brief return page with given name + */ + wxWindow* GetPage(const wxString& name) const; + + /** + * @brief select the current page to display + * @param name + */ + void SelectPage(const wxString& name); + + /** + * @brief remove page from the inner notebook + * @note if page with name does not exist, do nothing + */ + void RemovePage(const wxString& name); + + /** + * @brief return the underlying book control mananged by the view + */ + wxSimplebook* GetBook() { return m_simpleBook; } + + /** + * @brief return all pages + */ + std::map GetAllPages() const; +}; + +#endif // CLWORKSPACEVIEW_H diff -Nru codelite-8.0.1+dfsg2/Plugin/clZipReader.cpp codelite-9.0+dfsg/Plugin/clZipReader.cpp --- codelite-8.0.1+dfsg2/Plugin/clZipReader.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/clZipReader.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -20,20 +20,29 @@ wxZipEntry* entry(NULL); entry = m_zip->GetNextEntry(); while(entry) { - if ( ::wxMatchWild(filename, entry->GetName()) ) { + if(::wxMatchWild(filename, entry->GetName())) { // Incase the entry name has a directory prefix, remove it wxString fullpath; fullpath << directory << "/" << entry->GetName(); + // Change to posix style - fullpath.Replace("\\", "/"); + fullpath.Replace("\\", "/"); // Remove any duplicate double slashes while(fullpath.Replace("//", "/")) {} - wxFileName outfile(fullpath); - // ensure that the path to the file exists - outfile.Mkdir(wxS_DIR_DEFAULT, wxPATH_MKDIR_FULL); - wxFFileOutputStream out(outfile.GetFullPath()); - m_zip->Read(out); - out.Close(); + + if(entry->IsDir()) { + // a folder + wxFileName::Mkdir(fullpath, wxS_DIR_DEFAULT, wxPATH_MKDIR_FULL); + } else { + wxFileName outfile(fullpath); + // ensure that the path to the file exists + outfile.Mkdir(wxS_DIR_DEFAULT, wxPATH_MKDIR_FULL); + wxFFileOutputStream out(outfile.GetFullPath()); + if(out.IsOk()) { + m_zip->Read(out); + out.Close(); + } + } } wxDELETE(entry); entry = m_zip->GetNextEntry(); diff -Nru codelite-8.0.1+dfsg2/Plugin/CMakeLists.txt codelite-9.0+dfsg/Plugin/CMakeLists.txt --- codelite-8.0.1+dfsg2/Plugin/CMakeLists.txt 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/CMakeLists.txt 2015-10-11 13:56:07.000000000 +0000 @@ -77,15 +77,10 @@ add_definitions(-DWXUSINGDLL_CL) # Add RPATH -if(NOT MINGW) -if ( WXC_APP ) +if(NOT MINGW AND WXC_APP) string( REPLACE "codelite" "wxcrafter" WXC_LIBS_DIR ${PLUGINS_DIR}) - set (LINKER_OPTIONS -Wl,-rpath,"${WXC_LIBS_DIR}:${PLUGINS_DIR}") - message( "-- libplugin.so is using RPATH set to ${WXC_LIBS_DIR}:${PLUGINS_DIR}") -else ( WXC_APP ) - set (LINKER_OPTIONS -Wl,-rpath,"${PLUGINS_DIR}") - message( "-- libplugin.so is using RPATH set to ${PLUGINS_DIR}") -endif ( WXC_APP ) + set (LINKER_OPTIONS -Wl,-rpath,"${WXC_LIBS_DIR}") + message( "-- libplugin.so is using RPATH set to ${WXC_LIBS_DIR}") endif() FILE(GLOB SRCS "*.cpp") @@ -93,11 +88,11 @@ # Define the output add_library(plugin SHARED ${SRCS}) if(GTK2_FOUND) - target_link_libraries(plugin ${LINKER_OPTIONS} ${ADDITIONAL_LIBRARIES} ${GTK2_LIBRARIES} ${wxWidgets_LIBRARIES} -L"${CL_LIBPATH}" -lwxsqlite3 -lsqlite3lib -llibcodelite) + target_link_libraries(plugin ${LINKER_OPTIONS} ${ADDITIONAL_LIBRARIES} ${GTK2_LIBRARIES} ${wxWidgets_LIBRARIES} -L"${CL_LIBPATH}" libcodelite) elseif (GTK3_FOUND) - target_link_libraries(plugin ${LINKER_OPTIONS} ${ADDITIONAL_LIBRARIES} ${GTK3_LIBRARIES} ${wxWidgets_LIBRARIES} -L"${CL_LIBPATH}" -lwxsqlite3 -lsqlite3lib -llibcodelite) + target_link_libraries(plugin ${LINKER_OPTIONS} ${ADDITIONAL_LIBRARIES} ${GTK3_LIBRARIES} ${wxWidgets_LIBRARIES} -L"${CL_LIBPATH}" libcodelite) else() - target_link_libraries(plugin ${LINKER_OPTIONS} ${ADDITIONAL_LIBRARIES} ${wxWidgets_LIBRARIES} -L"${CL_LIBPATH}" -lwxsqlite3 -lsqlite3lib -llibcodelite) + target_link_libraries(plugin ${LINKER_OPTIONS} ${ADDITIONAL_LIBRARIES} ${wxWidgets_LIBRARIES} -L"${CL_LIBPATH}" libcodelite) endif() if (NOT MINGW) diff -Nru codelite-8.0.1+dfsg2/Plugin/CodeBlocksImporter.cpp codelite-9.0+dfsg/Plugin/CodeBlocksImporter.cpp --- codelite-8.0.1+dfsg2/Plugin/CodeBlocksImporter.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/CodeBlocksImporter.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -146,6 +146,7 @@ wxFileName projectInfo(genericProjectData[wxT("projectFullPath")]); GenericProjectPtr genericProject = std::make_shared(); genericProject->path = projectInfo.GetPath(); + genericProject->createDefaultVirtualDir = true; wxStringTokenizer deps(genericProjectData[wxT("projectDeps")], wxT(";")); @@ -177,12 +178,16 @@ if(targetChild->GetName() == wxT("Option") && targetChild->HasAttribute(wxT("output"))) { wxString output = targetChild->GetAttribute(wxT("output")); + if(output.Contains(wxT("#"))) + output.Replace(wxT("#"), wxT("")); genericProjectCfg->outputFilename = output; } if(targetChild->GetName() == wxT("Option") && targetChild->HasAttribute(wxT("working_dir"))) { wxString working_dir = targetChild->GetAttribute(wxT("working_dir")); + if(working_dir.Contains(wxT("#"))) + working_dir.Replace(wxT("#"), wxT("")); genericProjectCfg->workingDirectory = working_dir; } @@ -256,11 +261,63 @@ if(libPath.Contains(wxT("#"))) libPath.Replace(wxT("#"), wxT("")); + if(libraries.Contains(wxT("#"))) + libraries.Replace(wxT("#"), wxT("")); + genericProjectCfg->linkerOptions = linkerOptions; genericProjectCfg->libPath = libPath; genericProjectCfg->libraries = libraries; } + if(targetChild->GetName() == wxT("ExtraCommands")) { + wxXmlNode* extraCommandsChild = targetChild->GetChildren(); + while(extraCommandsChild) { + if(extraCommandsChild->GetName() == wxT("Add") && + extraCommandsChild->HasAttribute(wxT("before"))) { + wxString command = extraCommandsChild->GetAttribute(wxT("before")); + if(command.Contains(wxT("#"))) + command.Replace(wxT("#"), wxT("")); + genericProjectCfg->preBuildCommands.push_back(command); + } + + if(extraCommandsChild->GetName() == wxT("Add") && + extraCommandsChild->HasAttribute(wxT("after"))) { + wxString command = extraCommandsChild->GetAttribute(wxT("after")); + if(command.Contains(wxT("#"))) + command.Replace(wxT("#"), wxT("")); + genericProjectCfg->postBuildCommands.push_back(command); + } + + extraCommandsChild = extraCommandsChild->GetNext(); + } + } + + if(targetChild->GetName() == wxT("MakeCommands")) { + wxXmlNode* makeCommandsChild = targetChild->GetChildren(); + + while(makeCommandsChild) { + if(makeCommandsChild->GetName() == wxT("Build") && + makeCommandsChild->HasAttribute(wxT("command"))) { + wxString buildCommand = makeCommandsChild->GetAttribute(wxT("command")); + + if(!genericProjectCfg->enableCustomBuild) + genericProjectCfg->enableCustomBuild = true; + + genericProjectCfg->customBuildCmd = buildCommand; + } else if(makeCommandsChild->GetName() == wxT("Clean") && + makeCommandsChild->HasAttribute(wxT("command"))) { + wxString cleanCommand = makeCommandsChild->GetAttribute(wxT("command")); + + if(!genericProjectCfg->enableCustomBuild) + genericProjectCfg->enableCustomBuild = true; + + genericProjectCfg->customCleanCmd = cleanCommand; + } + + makeCommandsChild = makeCommandsChild->GetNext(); + } + } + targetChild = targetChild->GetNext(); } } @@ -333,7 +390,7 @@ projectChild = projectChild->GetNext(); } - + for(GenericProjectCfgPtr genericProjectCfg : genericProject->cfgs) { genericProjectCfg->cCompilerOptions += globalCompilerOptions; genericProjectCfg->cppCompilerOptions += globalCompilerOptions; diff -Nru codelite-8.0.1+dfsg2/Plugin/ColoursAndFontsManager.cpp codelite-9.0+dfsg/Plugin/ColoursAndFontsManager.cpp --- codelite-8.0.1+dfsg2/Plugin/ColoursAndFontsManager.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/ColoursAndFontsManager.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -231,7 +231,12 @@ if(lexer->GetName() == "javascript" && !lexer->GetFileSpec().Contains(".wxcp")) { lexer->SetFileSpec(lexer->GetFileSpec() + ";*.wxcp"); } - + + // Add *.scss file extension to the css lexer + if(lexer->GetName() == "css" && !lexer->GetFileSpec().Contains(".scss")) { + lexer->SetFileSpec(lexer->GetFileSpec() + ";*.scss"); + } + // Upgrade the lexer colours UpdateLexerColours(lexer, false); @@ -533,7 +538,10 @@ #endif defaultLexersFileName.AppendDir("lexers"); defaultLexersFileName.SetFullName("lexers.json"); - + + wxString str_defaultLexersFileName = defaultLexersFileName.GetFullPath(); + wxUnusedVar(str_defaultLexersFileName); + m_allLexers.clear(); m_lexersMap.clear(); diff -Nru codelite-8.0.1+dfsg2/Plugin/compilation_database.cpp codelite-9.0+dfsg/Plugin/compilation_database.cpp --- codelite-8.0.1+dfsg2/Plugin/compilation_database.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/compilation_database.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -39,8 +39,7 @@ const wxString DB_VERSION = "2.0"; -struct wxFileNameSorter -{ +struct wxFileNameSorter { bool operator()(const wxFileName& one, const wxFileName& two) const { return one.GetModificationTime().GetTicks() > two.GetModificationTime().GetTicks(); @@ -58,10 +57,7 @@ { } -CompilationDatabase::~CompilationDatabase() -{ - Close(); -} +CompilationDatabase::~CompilationDatabase() { Close(); } void CompilationDatabase::Open() { @@ -74,7 +70,7 @@ try { m_db = new wxSQLite3Database(); - wxFileName dbfile(WorkspaceST::Get()->GetPrivateFolder(), "compilation.db"); + wxFileName dbfile(clCxxWorkspaceST::Get()->GetPrivateFolder(), "compilation.db"); m_db->Open(dbfile.GetFullPath()); CreateDatabase(); @@ -89,7 +85,7 @@ { wxFileName dbfile; if(!m_filename.IsOk()) { - dbfile = wxFileName(WorkspaceST::Get()->GetPrivateFolder(), "compilation.db"); + dbfile = wxFileName(clCxxWorkspaceST::Get()->GetPrivateFolder(), "compilation.db"); } else { dbfile = m_filename; @@ -186,7 +182,7 @@ try { if(GetDbVersion() != DB_VERSION) DropTables(); - + // Create the schema m_db->ExecuteUpdate("CREATE TABLE IF NOT EXISTS COMPILATION_TABLE (FILE_NAME TEXT, FILE_PATH TEXT, CWD TEXT, " "COMPILE_FLAGS TEXT)"); @@ -282,33 +278,36 @@ // Since we can have multiple "compile_commands.json" files, we take the most updated file // Prepare a list of files to check FileNameVector_t files; - std::queue dirs; + std::queue > dirs; // we start with the current path - dirs.push(fn.GetPath()); + dirs.push(std::make_pair(fn.GetPath(), 0)); + + const int MAX_DEPTH = 2; // If no files were found, scan 2 levels only while(!dirs.empty()) { - wxString curdir = dirs.front(); + std::pair curdir = dirs.front(); dirs.pop(); + if(files.empty() && (curdir.second > MAX_DEPTH)) { + CL_DEBUG("Could not find compile_commands.json files while reaching depth 2, aborting"); + break; + } - wxFileName fn(curdir, "compile_commands.json"); - if(fn.Exists() /*&& // file exists - (fn.GetModificationTime().GetTicks() > - databaseFile.GetModificationTime().GetTicks())*/) // and its newer than the database file - { + wxFileName fn(curdir.first, "compile_commands.json"); + if(fn.Exists()) { CL_DEBUGS("CompilationDatabase: found file: " + fn.GetFullPath()); files.push_back(fn); } // Check to see if there are more directories to recurse wxDir dir; - if(dir.Open(curdir)) { + if(dir.Open(curdir.first)) { wxString dirname; bool cont = dir.GetFirst(&dirname, "", wxDIR_DIRS); while(cont) { wxString new_dir; - new_dir << curdir << wxFileName::GetPathSeparator() << dirname; - dirs.push(new_dir); + new_dir << curdir.first << wxFileName::GetPathSeparator() << dirname; + dirs.push(std::make_pair(new_dir, curdir.second + 1)); dirname.Clear(); cont = dir.GetNext(&dirname); } diff -Nru codelite-8.0.1+dfsg2/Plugin/CompileCommandsCreateor.cpp codelite-9.0+dfsg/Plugin/CompileCommandsCreateor.cpp --- codelite-8.0.1+dfsg2/Plugin/CompileCommandsCreateor.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/CompileCommandsCreateor.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -42,7 +42,7 @@ { wxString errMsg; wxUnusedVar(thread); - Workspace workspace; + clCxxWorkspace workspace; workspace.OpenReadOnly(m_filename.GetFullPath(), errMsg); JSONRoot json(cJSON_Array); @@ -51,6 +51,12 @@ // Save the file wxFileName compileCommandsFile(m_filename.GetPath(), "compile_commands.json"); + compileCommandsFile.AppendDir(".codelite"); + + // Make sure that the folder exists + compileCommandsFile.Mkdir(wxS_DIR_DEFAULT, wxPATH_MKDIR_FULL); + + // Save the file json.save( compileCommandsFile ); clCommandEvent eventCompileCommandsGenerated(wxEVT_COMPILE_COMMANDS_JSON_GENERATED); diff -Nru codelite-8.0.1+dfsg2/Plugin/compiler.cpp codelite-9.0+dfsg/Plugin/compiler.cpp --- codelite-8.0.1+dfsg2/Plugin/compiler.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/compiler.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -36,6 +36,7 @@ #include #include "file_logger.h" #include "CxxPreProcessor.h" +#include "asyncprocess.h" Compiler::Compiler(wxXmlNode* node, Compiler::eRegexType regexType) : m_objectNameIdenticalToFileName(false) @@ -638,39 +639,18 @@ wxArrayString Compiler::GetDefaultIncludePaths() { wxArrayString defaultPaths; - if(GetCompilerFamily() == COMPILER_FAMILY_MINGW) { - wxString ver = GetGCCVersion(); - if(ver.IsEmpty()) { - return defaultPaths; - } - - const wxArrayString& macros = GetBuiltinMacros(); - bool is64Bit = macros.Index("_WIN64=1") != wxNOT_FOUND; - - if(!is64Bit) { - defaultPaths.Add(GetIncludePath("lib/gcc/mingw32/" + ver + "/include/c++")); - defaultPaths.Add(GetIncludePath("lib/gcc/mingw32/" + ver + "/include/c++/mingw32")); - defaultPaths.Add(GetIncludePath("lib/gcc/mingw32/" + ver + "/include/c++/backward")); - defaultPaths.Add(GetIncludePath("lib/gcc/mingw32/" + ver + "/include")); - defaultPaths.Add(GetIncludePath("include")); - defaultPaths.Add(GetIncludePath("lib/gcc/mingw32/" + ver + "/include-fixed")); - } else { - // for 64 bits, the include paths are a bit different - // G:\mingw64\x86_64-w64-mingw32\include\c++ - // G:\mingw64\x86_64-w64-mingw32\include - // G:\mingw64\lib\gcc\x86_64-w64-mingw32\4.9.2\include - defaultPaths.Add(GetIncludePath("x86_64-w64-mingw32/include/c++")); - defaultPaths.Add(GetIncludePath("x86_64-w64-mingw32/include")); - defaultPaths.Add(GetIncludePath("include")); - defaultPaths.Add(GetIncludePath("lib/gcc/x86_64-w64-mingw32/" + ver + "/include")); - defaultPaths.Add(GetIncludePath("lib/gcc/x86_64-w64-mingw32/" + ver + "/include/c++")); - defaultPaths.Add(GetIncludePath("lib/gcc/x86_64-w64-mingw32/" + ver + "/include/c++/x86_64-w64-mingw32")); - } - - } else if(GetCompilerFamily() == COMPILER_FAMILY_CLANG || GetCompilerFamily() == COMPILER_FAMILY_GCC) { -#ifndef __WXMSW__ + wxArrayString gccCompilers; + gccCompilers.Add(COMPILER_FAMILY_MINGW); + gccCompilers.Add(COMPILER_FAMILY_CLANG); + gccCompilers.Add(COMPILER_FAMILY_GCC); + + // Only add the cygwin + if(::clIsCygwinEnvironment()) { + gccCompilers.Add(COMPILER_FAMILY_CYGWIN); + } + + if(gccCompilers.Index(GetCompilerFamily()) != wxNOT_FOUND) { defaultPaths = POSIXGetIncludePaths(); -#endif } return defaultPaths; } @@ -704,9 +684,19 @@ wxArrayString Compiler::POSIXGetIncludePaths() const { wxString command; +#ifdef __WXMSW__ + if(::clIsCygwinEnvironment()) { + command << GetTool("CXX") << " -v -x c++ /dev/null -fsyntax-only"; + } else { + command << GetTool("CXX") << " -v -x c++ nul -fsyntax-only"; + } +#else command << GetTool("CXX") << " -v -x c++ /dev/null -fsyntax-only"; - - wxString outputStr = ::wxShellExec(command, wxEmptyString); +#endif + + wxString outputStr; + IProcess::Ptr_t proc(::CreateSyncProcess(command)); + proc->WaitForTerminate(outputStr); wxArrayString arr; wxArrayString outputArr = ::wxStringTokenize(outputStr, wxT("\n\r"), wxTOKEN_STRTOK); @@ -731,10 +721,25 @@ // but it is harmless to use it under all OSs file.Replace(wxT("(framework directory)"), wxT("")); file.Trim().Trim(false); + + // Fix cygwin paths to use Windows native paths +#ifdef __WXMSW__ + if(GetCompilerFamily() == COMPILER_FAMILY_CYGWIN) { + const wxString& cygdriveRoot = GetInstallationPath(); + + // For reasons beyond me, /usr/lib is mapped to /lib + if(file.StartsWith("/usr/lib")) { + file.Replace("/usr/lib", "/lib"); + } + file.Prepend(cygdriveRoot + "/"); + } +#endif wxFileName includePath(file, ""); includePath.Normalize(); + + arr.Add(includePath.GetPath()); } } diff -Nru codelite-8.0.1+dfsg2/Plugin/compile_request.cpp codelite-9.0+dfsg/Plugin/compile_request.cpp --- codelite-8.0.1+dfsg2/Plugin/compile_request.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/compile_request.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -67,7 +67,7 @@ BuildSettingsConfig* bsc(manager ? manager->GetBuildSettingsConfigManager() : BuildSettingsConfigST::Get()); BuildManager* bm(manager ? manager->GetBuildManager() : BuildManagerST::Get()); - Workspace* w(manager ? manager->GetWorkspace() : WorkspaceST::Get()); + clCxxWorkspace* w(manager ? manager->GetWorkspace() : clCxxWorkspaceST::Get()); EnvironmentConfig* env(manager ? manager->GetEnv() : EnvironmentConfig::Instance()); ProjectPtr proj = w->FindProjectByName(m_info.GetProject(), errMsg); @@ -131,7 +131,12 @@ CompilerPtr cmp = bsc->GetCompiler(cmpType); if(cmp) { // Add the 'bin' folder of the compiler to the PATH environment variable - wxFileName cxx = cmp->GetTool("CXX"); + wxString scxx = cmp->GetTool("CXX"); + scxx.Trim().Trim(false); + scxx.StartsWith("\"", &scxx); + scxx.EndsWith("\"", &scxx); + // Strip the double quotes + wxFileName cxx(scxx); wxString pathvar; pathvar << cxx.GetPath() << clPATH_SEPARATOR; @@ -187,7 +192,10 @@ } AppendLine(text); } - + + // Avoid Unicode chars coming from the compiler by setting LC_ALL to "C" + om["LC_ALL"] = "C"; + EnvSetter envir(env, &om, proj->GetName()); m_proc = CreateAsyncProcess(this, cmd); if(!m_proc) { diff -Nru codelite-8.0.1+dfsg2/Plugin/compiler.h codelite-9.0+dfsg/Plugin/compiler.h --- codelite-8.0.1+dfsg2/Plugin/compiler.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/compiler.h 2015-10-11 13:56:07.000000000 +0000 @@ -31,6 +31,7 @@ #include #include #include +#include /** * \ingroup LiteEditor @@ -210,4 +211,6 @@ }; typedef SmartPtr CompilerPtr; +typedef std::vector CompilerPtrVec_t; + #endif // COMPILER_H diff -Nru codelite-8.0.1+dfsg2/Plugin/CompilerLocatorCrossGCC.cpp codelite-9.0+dfsg/Plugin/CompilerLocatorCrossGCC.cpp --- codelite-8.0.1+dfsg2/Plugin/CompilerLocatorCrossGCC.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/CompilerLocatorCrossGCC.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -133,7 +133,7 @@ toolFile.SetFullName(prefix + "-g++"); toolFile.SetExt(suffix); - AddTool(compiler, "CXX", toolFile.GetFullPath(), suffix); + AddTool(compiler, "CXX", toolFile.GetFullPath()); AddTool(compiler, "LinkerName", toolFile.GetFullPath()); AddTool(compiler, "SharedObjectLinkerName", toolFile.GetFullPath(), "-shared -fPIC"); diff -Nru codelite-8.0.1+dfsg2/Plugin/CompilersDetectorManager.cpp codelite-9.0+dfsg/Plugin/CompilersDetectorManager.cpp --- codelite-8.0.1+dfsg2/Plugin/CompilersDetectorManager.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/CompilersDetectorManager.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -41,6 +41,9 @@ #include #include "includepathlocator.h" #include "build_settings_config.h" +#include "json_node.h" +#include +#include CompilersDetectorManager::CompilersDetectorManager() { @@ -109,6 +112,7 @@ return false; } +#define DLBUFSIZE 1024 void CompilersDetectorManager::MSWSuggestToDownloadMinGW(bool prompt) { #ifdef __WXMSW__ @@ -120,37 +124,64 @@ // No MinGW compiler detected!, offer the user to download one wxStringMap_t mingwCompilers; wxArrayString options; - mingwCompilers.insert(std::make_pair("MinGW 4.9.2 - 32 Bit", - "http://sourceforge.net/projects/" - "tdm-gcc/files/TDM-GCC%20Installer/" - "tdm-gcc-4.9.2.exe/download")); - mingwCompilers.insert(std::make_pair("MinGW 4.9.2 - 64 Bit", - "http://sourceforge.net/projects/" - "tdm-gcc/files/TDM-GCC%20Installer/" - "tdm64-gcc-4.9.2-3.exe/download")); - wxStringMap_t::iterator iter = mingwCompilers.begin(); - for(; iter != mingwCompilers.end(); ++iter) { - options.Add(iter->first); - } -#ifdef _WIN64 - int sel = 1; -#else - int sel = 0; -#endif - wxString selection = - ::wxGetSingleChoice(_("Select a compiler to download"), _("Choose compiler"), options, sel); - if(!selection.IsEmpty()) { - // Reset the compiler detection flag so next time codelite is restarted, it will - // rescan the machine - clConfig::Get().Write(kConfigBootstrapCompleted, false); - - // Open the browser to start downloading the compiler - ::wxLaunchDefaultBrowser(mingwCompilers.find(selection)->second); - ::wxMessageBox(_("After install is completed, click the 'Scan' button"), - "CodeLite", - wxOK | wxCENTER | wxICON_INFORMATION); + + // Load the compilers list from the website + wxURL url("http://codelite.org/compilers.json"); + + if(url.GetError() == wxURL_NOERR) { + + wxInputStream* in_stream = url.GetInputStream(); + if(!in_stream) { + return; + } + unsigned char buffer[DLBUFSIZE + 1]; + wxString dataRead; + do { + in_stream->Read(buffer, DLBUFSIZE); + size_t bytes_read = in_stream->LastRead(); + if(bytes_read > 0) { + buffer[bytes_read] = 0; + wxString buffRead((const char*)buffer, wxConvUTF8); + dataRead.Append(buffRead); + } + + } while(!in_stream->Eof()); + + JSONRoot root(dataRead); + JSONElement compilers = root.toElement().namedObject("Compilers"); + JSONElement arr = compilers.namedObject("MinGW"); + int count = arr.arraySize(); + for(int i = 0; i < count; ++i) { + JSONElement compiler = arr.arrayItem(i); + mingwCompilers.insert( + std::make_pair(compiler.namedObject("Name").toString(), compiler.namedObject("URL").toString())); + options.Add(compiler.namedObject("Name").toString()); + } + + if(options.IsEmpty()) { + ::wxMessageBox(_("Unable to fetch compilers list from the website\nhttp://codelite.org/compilers.json"), + "CodeLite", + wxOK | wxCENTER | wxICON_WARNING); + return; + } + int sel = 0; + + wxString selection = + ::wxGetSingleChoice(_("Select a compiler to download"), _("Choose compiler"), options, sel); + if(!selection.IsEmpty()) { + // Reset the compiler detection flag so next time codelite is restarted, it will + // rescan the machine + clConfig::Get().Write(kConfigBootstrapCompleted, false); + + // Open the browser to start downloading the compiler + ::wxLaunchDefaultBrowser(mingwCompilers.find(selection)->second); + ::wxMessageBox(_("After install is completed, click the 'Scan' button"), + "CodeLite", + wxOK | wxCENTER | wxICON_INFORMATION); + } } } + #endif // __WXMSW__ } diff -Nru codelite-8.0.1+dfsg2/Plugin/console_frame.cpp codelite-9.0+dfsg/Plugin/console_frame.cpp --- codelite-8.0.1+dfsg2/Plugin/console_frame.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/console_frame.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -41,28 +41,28 @@ /////////////////////////////////////////////////////////////////////////// -ConsoleFrame::ConsoleFrame( wxWindow* parent, IManager* manager, wxWindowID id ) - : wxPanel( parent, id, wxDefaultPosition, wxSize(300, 200)) +ConsoleFrame::ConsoleFrame(wxWindow* parent, IManager* manager, wxWindowID id) + : wxPanel(parent, id, wxDefaultPosition, wxSize(300, 200)) , m_manager(manager) { wxBoxSizer* bSizer1; - bSizer1 = new wxBoxSizer( wxVERTICAL ); + bSizer1 = new wxBoxSizer(wxVERTICAL); SetBackgroundColour(DrawingUtils::GetOutputPaneBgColour()); m_terminal = new wxTerminal(this); - bSizer1->Add(m_terminal, 1, wxEXPAND|wxALL); + bSizer1->Add(m_terminal, 1, wxEXPAND | wxALL); - this->SetSizer( bSizer1 ); + this->SetSizer(bSizer1); this->Layout(); // Connect Events - EventNotifier::Get()->Connect(wxEVT_DEBUG_ENDED, wxCommandEventHandler(ConsoleFrame::OnDebuggerEnded), NULL, this); + EventNotifier::Get()->Bind(wxEVT_DEBUG_ENDED, &ConsoleFrame::OnDebuggerEnded, this); } ConsoleFrame::~ConsoleFrame() { // Disconnect Events - EventNotifier::Get()->Disconnect(wxEVT_DEBUG_ENDED, wxCommandEventHandler(ConsoleFrame::OnDebuggerEnded), NULL, this); + EventNotifier::Get()->Unbind(wxEVT_DEBUG_ENDED, &ConsoleFrame::OnDebuggerEnded, this); } wxString ConsoleFrame::StartTTY() @@ -75,7 +75,7 @@ #endif } -void ConsoleFrame::OnDebuggerEnded(wxCommandEvent& e) +void ConsoleFrame::OnDebuggerEnded(clDebugEvent& e) { #ifndef __WXMSW__ m_manager->GetDockingManager()->DetachPane(this); diff -Nru codelite-8.0.1+dfsg2/Plugin/console_frame.h codelite-9.0+dfsg/Plugin/console_frame.h --- codelite-8.0.1+dfsg2/Plugin/console_frame.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/console_frame.h 2015-10-11 13:56:07.000000000 +0000 @@ -37,10 +37,10 @@ #include #include #include "codelite_exports.h" +#include "cl_command_event.h" /////////////////////////////////////////////////////////////////////////// - /////////////////////////////////////////////////////////////////////////////// /// Class ConsoleFrame /////////////////////////////////////////////////////////////////////////////// @@ -49,13 +49,12 @@ { private: IManager* m_manager; - wxTerminal *m_terminal; + wxTerminal* m_terminal; protected: - // Virtual event handlers, overide them in your derived class - virtual void OnDebuggerEnded(wxCommandEvent &e); - + virtual void OnDebuggerEnded(clDebugEvent& e); + public: ConsoleFrame(wxWindow* parent, IManager* manager, wxWindowID id = wxNOT_FOUND); ~ConsoleFrame(); diff -Nru codelite-8.0.1+dfsg2/Plugin/custombuildrequest.cpp codelite-9.0+dfsg/Plugin/custombuildrequest.cpp --- codelite-8.0.1+dfsg2/Plugin/custombuildrequest.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/custombuildrequest.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -66,7 +66,7 @@ wxString errMsg; wxStringMap_t om; - Workspace* w(manager->GetWorkspace()); + clCxxWorkspace* w(manager->GetWorkspace()); EnvironmentConfig* env(manager->GetEnv()); ProjectPtr proj = w->FindProjectByName(m_info.GetProject(), errMsg); @@ -159,7 +159,7 @@ } else { // expand macros from the working directory - wd = ExpandAllVariables(wd, WorkspaceST::Get(), proj->GetName(), bldConf->GetName(), filename); + wd = ExpandAllVariables(wd, clCxxWorkspaceST::Get(), proj->GetName(), bldConf->GetName(), filename); } { @@ -215,6 +215,9 @@ text << m_info.GetProject() << wxT(" - ") << configName << wxT(" ]----------\n"); AppendLine(text); + + // Avoid Unicode chars coming from the compiler by setting LC_ALL to "C" + om["LC_ALL"] = "C"; EnvSetter environment(env, &om, proj->GetName()); m_proc = CreateAsyncProcess(this, cmd); diff -Nru codelite-8.0.1+dfsg2/Plugin/DevCppImporter.cpp codelite-9.0+dfsg/Plugin/DevCppImporter.cpp --- codelite-8.0.1+dfsg2/Plugin/DevCppImporter.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/DevCppImporter.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -18,7 +18,18 @@ bool DevCppImporter::isSupportedWorkspace() { - return true; + wxFileInputStream fis(wsInfo.GetFullPath()); + wxTextInputStream tis(fis); + + while(!fis.Eof()) { + wxString line = tis.ReadLine(); + + if(line.Contains(wxT("[Project]"))) { + return true; + } + } + + return false; } GenericWorkspacePtr DevCppImporter::PerformImport() @@ -50,6 +61,7 @@ genericProject = std::make_shared(); genericProject->name = projectName; genericProject->path = wsInfo.GetPath(); + genericProject->createDefaultVirtualDir = true; genericProjectCfgDebug = std::make_shared(); genericProjectCfgRelease = std::make_shared(); diff -Nru codelite-8.0.1+dfsg2/Plugin/DiffSideBySidePanel.cpp codelite-9.0+dfsg/Plugin/DiffSideBySidePanel.cpp --- codelite-8.0.1+dfsg2/Plugin/DiffSideBySidePanel.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/DiffSideBySidePanel.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -36,15 +36,15 @@ #include "DiffConfig.h" #include -#define RED_MARKER 5 -#define GREEN_MARKER 6 +#define RED_MARKER 5 +#define GREEN_MARKER 6 #define PLACE_HOLDER_MARKER 7 -#define RED_MARKER_MASK (1 << RED_MARKER) -#define GREEN_MARKER_MASK (1 << GREEN_MARKER) +#define RED_MARKER_MASK (1 << RED_MARKER) +#define GREEN_MARKER_MASK (1 << GREEN_MARKER) #define PLACE_HOLDER_MARKER_MASK (1 << PLACE_HOLDER_MARKER) -#define MARKER_SEQUENCE 8 +#define MARKER_SEQUENCE 8 #define MARKER_SEQUENCE_VERTICAL 9 DiffSideBySidePanel::DiffSideBySidePanel(wxWindow* parent) @@ -54,44 +54,58 @@ m_config.Load(); #ifdef __WXMSW__ - m_ribbonBar->SetArtProvider( new wxRibbonMetroArtProvider ); + m_ribbonBar->SetArtProvider(new wxRibbonMetroArtProvider); #endif - EventNotifier::Get()->Connect(wxEVT_NOTIFY_PAGE_CLOSING, wxNotifyEventHandler(DiffSideBySidePanel::OnPageClosing), NULL, this); + EventNotifier::Get()->Connect( + wxEVT_NOTIFY_PAGE_CLOSING, wxNotifyEventHandler(DiffSideBySidePanel::OnPageClosing), NULL, this); - Connect(ID_COPY_LEFT_TO_RIGHT, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(DiffSideBySidePanel::OnMenuCopyLeft2Right)); - Connect(ID_COPY_LEFT_TO_RIGHT_AND_MOVE, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(DiffSideBySidePanel::OnMenuCopyLeft2Right)); - Connect(ID_COPY_RIGHT_TO_LEFT, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(DiffSideBySidePanel::OnMenuCopyRight2Left)); - Connect(ID_COPY_RIGHT_TO_LEFT_AND_MOVE, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(DiffSideBySidePanel::OnMenuCopyRight2Left)); - CallAfter( &DiffSideBySidePanel::DoLayout ); + Connect(ID_COPY_LEFT_TO_RIGHT, + wxEVT_COMMAND_MENU_SELECTED, + wxCommandEventHandler(DiffSideBySidePanel::OnMenuCopyLeft2Right)); + Connect(ID_COPY_LEFT_TO_RIGHT_AND_MOVE, + wxEVT_COMMAND_MENU_SELECTED, + wxCommandEventHandler(DiffSideBySidePanel::OnMenuCopyLeft2Right)); + Connect(ID_COPY_RIGHT_TO_LEFT, + wxEVT_COMMAND_MENU_SELECTED, + wxCommandEventHandler(DiffSideBySidePanel::OnMenuCopyRight2Left)); + Connect(ID_COPY_RIGHT_TO_LEFT_AND_MOVE, + wxEVT_COMMAND_MENU_SELECTED, + wxCommandEventHandler(DiffSideBySidePanel::OnMenuCopyRight2Left)); + CallAfter(&DiffSideBySidePanel::DoLayout); } DiffSideBySidePanel::~DiffSideBySidePanel() { - if ( m_flags & kDeleteLeftOnExit ) { - ::wxRemoveFile( m_filePickerLeft->GetPath() ); + if(m_flags & kDeleteLeftOnExit) { + ::wxRemoveFile(m_filePickerLeft->GetPath()); } - if ( m_flags & kDeleteRightOnExit ) { - ::wxRemoveFile( m_filePickerRight->GetPath() ); + if(m_flags & kDeleteRightOnExit) { + ::wxRemoveFile(m_filePickerRight->GetPath()); } - + // save the configuration m_config.Save(); - - EventNotifier::Get()->Disconnect(wxEVT_NOTIFY_PAGE_CLOSING, wxNotifyEventHandler(DiffSideBySidePanel::OnPageClosing), NULL, this); + + EventNotifier::Get()->Disconnect( + wxEVT_NOTIFY_PAGE_CLOSING, wxNotifyEventHandler(DiffSideBySidePanel::OnPageClosing), NULL, this); } void DiffSideBySidePanel::Diff() { - wxFileName fnLeft (m_filePickerLeft->GetPath()); + wxFileName fnLeft(m_filePickerLeft->GetPath()); wxFileName fnRIght(m_filePickerRight->GetPath()); - if ( !fnLeft.Exists( ) ) { - ::wxMessageBox(wxString() << _("Left Side File:\n") << fnLeft.GetFullPath() << _(" does not exist!"), "CodeLite", wxICON_ERROR|wxCENTER|wxOK); + if(!fnLeft.Exists()) { + ::wxMessageBox(wxString() << _("Left Side File:\n") << fnLeft.GetFullPath() << _(" does not exist!"), + "CodeLite", + wxICON_ERROR | wxCENTER | wxOK); return; } - if ( !fnRIght.Exists( ) ) { - ::wxMessageBox(wxString() << _("Right Side File:\n") << fnRIght.GetFullPath() << _(" does not exist!"), "CodeLite", wxICON_ERROR|wxCENTER|wxOK); + if(!fnRIght.Exists()) { + ::wxMessageBox(wxString() << _("Right Side File:\n") << fnRIght.GetFullPath() << _(" does not exist!"), + "CodeLite", + wxICON_ERROR | wxCENTER | wxOK); return; } @@ -103,18 +117,20 @@ // Prepare the diff clDTL d; - d.Diff(m_filePickerLeft->GetPath(), m_filePickerRight->GetPath(), m_config.IsSingleViewMode() ? clDTL::kOnePane : clDTL::kTwoPanes); - const clDTL::LineInfoVec_t &resultLeft = d.GetResultLeft(); - const clDTL::LineInfoVec_t &resultRight = d.GetResultRight(); + d.Diff(m_filePickerLeft->GetPath(), + m_filePickerRight->GetPath(), + m_config.IsSingleViewMode() ? clDTL::kOnePane : clDTL::kTwoPanes); + const clDTL::LineInfoVec_t& resultLeft = d.GetResultLeft(); + const clDTL::LineInfoVec_t& resultRight = d.GetResultRight(); m_sequences = d.GetSequences(); - if ( m_sequences.empty() ) { + if(m_sequences.empty()) { // Files are the same ! m_stcLeft->SetReadOnly(false); m_stcRight->SetReadOnly(false); - m_stcLeft->LoadFile( fnLeft.GetFullPath() ); - m_stcRight->LoadFile( fnRIght.GetFullPath() ); + m_stcLeft->LoadFile(fnLeft.GetFullPath()); + m_stcRight->LoadFile(fnRIght.GetFullPath()); m_stcLeft->SetSavePoint(); m_stcRight->SetSavePoint(); @@ -130,43 +146,43 @@ wxString leftContent, rightContent; // The left pane is always the one with the deletions "-" - for (size_t i=0; iGetPath()); bool useRightSideLexer = false; - if ( fnLeft.GetExt() == "svn-base" ) { + if(fnLeft.GetExt() == "svn-base") { // doing svn diff, use the lexer for the right side file useRightSideLexer = true; } - LexerConf::Ptr_t leftLexer = EditorConfigST::Get()->GetLexerForFile(useRightSideLexer ? fnRight.GetFullName() : fnLeft.GetFullName()); + LexerConf::Ptr_t leftLexer = + EditorConfigST::Get()->GetLexerForFile(useRightSideLexer ? fnRight.GetFullName() : fnLeft.GetFullName()); wxASSERT(leftLexer); LexerConf::Ptr_t rightLexer = EditorConfigST::Get()->GetLexerForFile(fnRight.GetFullName()); wxASSERT(rightLexer); - leftLexer->Apply( m_stcLeft, true ); - rightLexer->Apply( m_stcRight, true ); + leftLexer->Apply(m_stcLeft, true); + rightLexer->Apply(m_stcRight, true); // Create the markers we need - DefineMarkers( m_stcLeft ); - DefineMarkers( m_stcRight ); + DefineMarkers(m_stcLeft); + DefineMarkers(m_stcRight); // Turn off PP highlighting - m_stcLeft->SetProperty("lexer.cpp.track.preprocessor", "0"); + m_stcLeft->SetProperty("lexer.cpp.track.preprocessor", "0"); m_stcLeft->SetProperty("lexer.cpp.update.preprocessor", "0"); - m_stcRight->SetProperty("lexer.cpp.track.preprocessor", "0"); + m_stcRight->SetProperty("lexer.cpp.track.preprocessor", "0"); m_stcRight->SetProperty("lexer.cpp.update.preprocessor", "0"); } void DiffSideBySidePanel::DefineMarkers(wxStyledTextCtrl* ctrl) { wxColour red, green, grey, sideMarker; - if ( DrawingUtils::IsThemeDark() ) { - red = "RED"; + if(DrawingUtils::IsThemeDark()) { + red = "RED"; green = "GREEN"; - grey = "dark grey"; + grey = "dark grey"; sideMarker = "CYAN"; } else { - red = "RED"; + red = "RED"; green = "GREEN"; - grey = "LIGHT GREY"; + grey = "LIGHT GREY"; sideMarker = "BLUE"; } @@ -252,38 +269,38 @@ m_stcLeft->SetEditable(true); m_stcRight->SetEditable(true); - m_stcLeft->SetText( left ); + m_stcLeft->SetText(left); m_stcLeft->MarkerDeleteAll(RED_MARKER); - m_stcRight->SetText( right ); + m_stcRight->SetText(right); m_stcRight->MarkerDeleteAll(GREEN_MARKER); // Show whitespaces - m_stcRight->SetViewWhiteSpace( wxSTC_WS_VISIBLEALWAYS ); - m_stcLeft->SetViewWhiteSpace( wxSTC_WS_VISIBLEALWAYS ); + m_stcRight->SetViewWhiteSpace(wxSTC_WS_VISIBLEALWAYS); + m_stcLeft->SetViewWhiteSpace(wxSTC_WS_VISIBLEALWAYS); // apply the markers - for(size_t i=0; iMarkerAdd(line, RED_MARKER); } - for(size_t i=0; iMarkerAdd(line, GREEN_MARKER); } - for(size_t i=0; iMarkerAdd(line, PLACE_HOLDER_MARKER); } - for(size_t i=0; iMarkerAdd(line, GREEN_MARKER); } - for(size_t i=0; iMarkerAdd(line, RED_MARKER); } - for(size_t i=0; iMarkerAdd(line, PLACE_HOLDER_MARKER); } @@ -297,15 +314,15 @@ { wxUnusedVar(event); int rightFirstLine = m_stcRight->GetFirstVisibleLine(); - int leftFirsLine = m_stcLeft->GetFirstVisibleLine(); - if ( rightFirstLine != leftFirsLine ) { - m_stcRight->SetFirstVisibleLine( leftFirsLine ); + int leftFirsLine = m_stcLeft->GetFirstVisibleLine(); + if(rightFirstLine != leftFirsLine) { + m_stcRight->SetFirstVisibleLine(leftFirsLine); } int rightScrollPos = m_stcRight->GetXOffset(); - int leftScrollPos = m_stcLeft->GetXOffset(); - if ( leftScrollPos != rightScrollPos ) { - m_stcRight->SetXOffset( leftScrollPos ); + int leftScrollPos = m_stcLeft->GetXOffset(); + if(leftScrollPos != rightScrollPos) { + m_stcRight->SetXOffset(leftScrollPos); } } @@ -313,39 +330,40 @@ { wxUnusedVar(event); int rightFirstLine = m_stcRight->GetFirstVisibleLine(); - int leftFirsLine = m_stcLeft->GetFirstVisibleLine(); - if ( rightFirstLine != leftFirsLine ) { - m_stcLeft->SetFirstVisibleLine( rightFirstLine ); + int leftFirsLine = m_stcLeft->GetFirstVisibleLine(); + if(rightFirstLine != leftFirsLine) { + m_stcLeft->SetFirstVisibleLine(rightFirstLine); } int rightScrollPos = m_stcRight->GetXOffset(); - int leftScrollPos = m_stcLeft->GetXOffset(); - if ( leftScrollPos != rightScrollPos ) { - m_stcLeft->SetXOffset( rightScrollPos ); + int leftScrollPos = m_stcLeft->GetXOffset(); + if(leftScrollPos != rightScrollPos) { + m_stcLeft->SetXOffset(rightScrollPos); } } -void DiffSideBySidePanel::SetFilesDetails(const DiffSideBySidePanel::FileInfo& leftFile, const DiffSideBySidePanel::FileInfo& rightFile) +void DiffSideBySidePanel::SetFilesDetails(const DiffSideBySidePanel::FileInfo& leftFile, + const DiffSideBySidePanel::FileInfo& rightFile) { // left file - m_filePickerLeft->SetPath( leftFile.filename.GetFullPath() ); - m_staticTextLeft->SetLabel( leftFile.title ); + m_filePickerLeft->SetPath(leftFile.filename.GetFullPath()); + m_staticTextLeft->SetLabel(leftFile.title); - m_filePickerRight->SetPath( rightFile.filename.GetFullPath() ); - m_staticTextRight->SetLabel( rightFile.title ); + m_filePickerRight->SetPath(rightFile.filename.GetFullPath()); + m_staticTextRight->SetLabel(rightFile.title); m_flags = 0x0; - if ( leftFile.readOnly ) m_flags |= kLeftReadOnly; - if ( leftFile.deleteOnExit ) m_flags |= kDeleteLeftOnExit; - if ( rightFile.readOnly ) m_flags |= kRightReadOnly; - if ( rightFile.deleteOnExit ) m_flags |= kDeleteRightOnExit; + if(leftFile.readOnly) m_flags |= kLeftReadOnly; + if(leftFile.deleteOnExit) m_flags |= kDeleteLeftOnExit; + if(rightFile.readOnly) m_flags |= kRightReadOnly; + if(rightFile.deleteOnExit) m_flags |= kDeleteRightOnExit; } void DiffSideBySidePanel::OnNextDiffSequence(wxRibbonButtonBarEvent& event) { m_cur_sequence++; // advance the sequence int firstLine = m_sequences.at(m_cur_sequence).first; - int lastLine = m_sequences.at(m_cur_sequence).second; + int lastLine = m_sequences.at(m_cur_sequence).second; DoDrawSequenceMarkers(firstLine, lastLine, m_stcLeft); DoDrawSequenceMarkers(firstLine, lastLine, m_stcRight); } @@ -354,16 +372,20 @@ { m_cur_sequence--; int firstLine = m_sequences.at(m_cur_sequence).first; - int lastLine = m_sequences.at(m_cur_sequence).second; + int lastLine = m_sequences.at(m_cur_sequence).second; DoDrawSequenceMarkers(firstLine, lastLine, m_stcLeft); DoDrawSequenceMarkers(firstLine, lastLine, m_stcRight); } void DiffSideBySidePanel::OnRefreshDiff(wxRibbonButtonBarEvent& event) { - if ( m_stcLeft->IsModified() || m_stcRight->IsModified() ) { - wxStandardID res = ::PromptForYesNoDialogWithCheckbox(_("Refreshing the view will lose all your changes\nDo you want to continue?"), "DiffRefreshViewDlg", _("Refresh"), _("Don't refresh")); - if ( res != wxID_YES ) { + if(m_stcLeft->IsModified() || m_stcRight->IsModified()) { + wxStandardID res = ::PromptForYesNoDialogWithCheckbox( + _("Refreshing the view will lose all your changes\nDo you want to continue?"), + "DiffRefreshViewDlg", + _("Refresh"), + _("Don't refresh")); + if(res != wxID_YES) { return; } } @@ -376,7 +398,7 @@ m_leftRedMarkers.clear(); m_leftPlaceholdersMarkers.clear(); m_leftGreenMarkers.clear(); - + m_rightGreenMarkers.clear(); m_rightRedMarkers.clear(); m_rightPlaceholdersMarkers.clear(); @@ -402,46 +424,40 @@ int line1 = firstLine; int line2 = lastLine; - for(int i=line1; iMarkerAdd(i, MARKER_SEQUENCE); } // Make sure that the seq lines are visible - int visibleLine = firstLine-5; - if ( visibleLine < 0 ) { + int visibleLine = firstLine - 5; + if(visibleLine < 0) { visibleLine = 0; } ctrl->ScrollToLine(visibleLine); } -void DiffSideBySidePanel::OnNextDiffUI(wxUpdateUIEvent& event) -{ - event.Enable( CanNextDiff() ); -} +void DiffSideBySidePanel::OnNextDiffUI(wxUpdateUIEvent& event) { event.Enable(CanNextDiff()); } -void DiffSideBySidePanel::OnPrevDiffUI(wxUpdateUIEvent& event) -{ - event.Enable( CanPrevDiff() ); -} +void DiffSideBySidePanel::OnPrevDiffUI(wxUpdateUIEvent& event) { event.Enable(CanPrevDiff()); } void DiffSideBySidePanel::OnCopyLeftToRightUI(wxUpdateUIEvent& event) { - event.Enable( !IsRightReadOnly() && !m_config.IsSingleViewMode()); + event.Enable(!IsRightReadOnly() && !m_config.IsSingleViewMode()); } void DiffSideBySidePanel::OnCopyRightToLeftUI(wxUpdateUIEvent& event) { - event.Enable( !IsLeftReadOnly() && !m_config.IsSingleViewMode() ); + event.Enable(!IsLeftReadOnly() && !m_config.IsSingleViewMode()); } void DiffSideBySidePanel::OnCopyLeftToRight(wxRibbonButtonBarEvent& event) { bool moveToNext = m_config.GetFlags() & DiffConfig::kCopyLeftToRightAndMove; DoCopyCurrentSequence(m_stcLeft, m_stcRight); - if ( moveToNext && CanNextDiff() ) { + if(moveToNext && CanNextDiff()) { wxRibbonButtonBarEvent dummy; - OnNextDiffSequence( dummy ); + OnNextDiffSequence(dummy); } } @@ -449,38 +465,35 @@ { bool moveToNext = m_config.GetFlags() & DiffConfig::kCopyRightToLeftAndMove; DoCopyCurrentSequence(m_stcRight, m_stcLeft); - if ( moveToNext && CanNextDiff() ) { + if(moveToNext && CanNextDiff()) { wxRibbonButtonBarEvent dummy; - OnNextDiffSequence( dummy ); + OnNextDiffSequence(dummy); } } void DiffSideBySidePanel::DoCopyCurrentSequence(wxStyledTextCtrl* from, wxStyledTextCtrl* to) { - if ( m_cur_sequence == wxNOT_FOUND ) - return; + if(m_cur_sequence == wxNOT_FOUND) return; to->SetReadOnly(false); int fromStartPos = wxNOT_FOUND; - int fromEndPos = wxNOT_FOUND; + int fromEndPos = wxNOT_FOUND; int toStartPos = wxNOT_FOUND; - int toEndPos = wxNOT_FOUND; + int toEndPos = wxNOT_FOUND; int placeHolderMarkerFirstLine = wxNOT_FOUND; - int placeHolderMarkerLastLine = wxNOT_FOUND; + int placeHolderMarkerLastLine = wxNOT_FOUND; int dummy; DoGetPositionsToCopy(from, fromStartPos, fromEndPos, placeHolderMarkerFirstLine, placeHolderMarkerLastLine); - if ( fromStartPos == wxNOT_FOUND || fromEndPos == wxNOT_FOUND ) - return; + if(fromStartPos == wxNOT_FOUND || fromEndPos == wxNOT_FOUND) return; DoGetPositionsToCopy(to, toStartPos, toEndPos, dummy, dummy); - if ( toStartPos == wxNOT_FOUND || toEndPos == wxNOT_FOUND ) - return; + if(toStartPos == wxNOT_FOUND || toEndPos == wxNOT_FOUND) return; // remove the old markers from the range of lines int toLine1 = to->LineFromPosition(toStartPos); int toLine2 = to->LineFromPosition(toEndPos); - for(int i=toLine1; iMarkerDelete(i, RED_MARKER); to->MarkerDelete(i, GREEN_MARKER); to->MarkerDelete(i, PLACE_HOLDER_MARKER); @@ -494,86 +507,85 @@ wxString textToCopy = from->GetTextRange(fromStartPos, fromEndPos); to->SetSelection(toStartPos, toEndPos); to->ReplaceSelection(textToCopy); - for(int i=placeHolderMarkerFirstLine; iMarkerAdd(i, PLACE_HOLDER_MARKER); from->MarkerAdd(i, PLACE_HOLDER_MARKER); } // Restore the MARKER_SEQUENCE - for(int i=toLine1; iMarkerAdd(i, MARKER_SEQUENCE); } to->SetReadOnly(true); } void DiffSideBySidePanel::DoGetPositionsToCopy(wxStyledTextCtrl* stc, - int& startPos, - int& endPos, - int& placeHolderMarkerFirstLine, - int& placeHolderMarkerLastLine) + int& startPos, + int& endPos, + int& placeHolderMarkerFirstLine, + int& placeHolderMarkerLastLine) { startPos = wxNOT_FOUND; - endPos = wxNOT_FOUND; + endPos = wxNOT_FOUND; placeHolderMarkerFirstLine = wxNOT_FOUND; int from_line = m_sequences.at(m_cur_sequence).first; - int to_line = m_sequences.at(m_cur_sequence).second; + int to_line = m_sequences.at(m_cur_sequence).second; - for(int i=from_line; iMarkerGet(i) & PLACE_HOLDER_MARKER_MASK) ) { - placeHolderMarkerFirstLine = i; // first line of the placholder marker - placeHolderMarkerLastLine = to_line; // last line of the placholder marker + for(int i = from_line; i < to_line; ++i) { + if((stc->MarkerGet(i) & PLACE_HOLDER_MARKER_MASK)) { + placeHolderMarkerFirstLine = i; // first line of the placholder marker + placeHolderMarkerLastLine = to_line; // last line of the placholder marker break; } } startPos = stc->PositionFromLine(from_line); - endPos = stc->PositionFromLine(to_line) + stc->LineLength(to_line); + endPos = stc->PositionFromLine(to_line) + stc->LineLength(to_line); } void DiffSideBySidePanel::DoSave(wxStyledTextCtrl* stc, const wxFileName& fn) { - if ( !stc->IsModified() ) - return; + if(!stc->IsModified()) return; // remove all lines that have the 'placeholder' markers wxString newContent = DoGetContentNoPlaceholders(stc); stc->SetReadOnly(false); stc->SetText(newContent); - stc->SaveFile( fn.GetFullPath() ); + stc->SaveFile(fn.GetFullPath()); stc->SetReadOnly(true); stc->SetSavePoint(); stc->SetModified(false); // Emit a file-saved event - EventNotifier::Get()->PostFileSavedEvent( fn.GetFullPath() ); + EventNotifier::Get()->PostFileSavedEvent(fn.GetFullPath()); // Reload any file opened in codelite - EventNotifier::Get()->PostReloadExternallyModifiedEvent( false ); + EventNotifier::Get()->PostReloadExternallyModifiedEvent(false); } void DiffSideBySidePanel::OnSaveChanges(wxRibbonButtonBarEvent& event) { - DoSave( m_stcLeft, m_filePickerLeft->GetPath() ); - DoSave( m_stcRight, m_filePickerRight->GetPath() ); + DoSave(m_stcLeft, m_filePickerLeft->GetPath()); + DoSave(m_stcRight, m_filePickerRight->GetPath()); Diff(); } void DiffSideBySidePanel::OnSaveChangesUI(wxUpdateUIEvent& event) { - event.Enable( (m_stcLeft->IsModified() || m_stcRight->IsModified()) && !m_config.IsSingleViewMode() ); + event.Enable((m_stcLeft->IsModified() || m_stcRight->IsModified()) && !m_config.IsSingleViewMode()); } bool DiffSideBySidePanel::CanNextDiff() { - bool canNext = ((m_cur_sequence+1) < (int)m_sequences.size()); + bool canNext = ((m_cur_sequence + 1) < (int)m_sequences.size()); return !m_sequences.empty() && canNext; } bool DiffSideBySidePanel::CanPrevDiff() { - bool canPrev = ( (m_cur_sequence-1) >= 0 ); + bool canPrev = ((m_cur_sequence - 1) >= 0); return !m_sequences.empty() && canPrev; } @@ -590,23 +602,24 @@ void DiffSideBySidePanel::DoCopyFileContent(wxStyledTextCtrl* from, wxStyledTextCtrl* to) { to->SetReadOnly(false); - wxString newContent = DoGetContentNoPlaceholders( from ); - to->SetText( newContent ); + wxString newContent = DoGetContentNoPlaceholders(from); + to->SetText(newContent); to->SetReadOnly(true); // Clear RED and GREEN markers - to->MarkerDeleteAll( RED_MARKER ); - to->MarkerDeleteAll( GREEN_MARKER ); + to->MarkerDeleteAll(RED_MARKER); + to->MarkerDeleteAll(GREEN_MARKER); - from->MarkerDeleteAll( RED_MARKER ); - from->MarkerDeleteAll( GREEN_MARKER ); + from->MarkerDeleteAll(RED_MARKER); + from->MarkerDeleteAll(GREEN_MARKER); } void DiffSideBySidePanel::OnPageClosing(wxNotifyEvent& event) { - if ( m_stcLeft->IsModified() || m_stcRight->IsModified() ) { - wxStandardID res = ::PromptForYesNoDialogWithCheckbox(_("Closing the diff viewer, will lose all your changes.\nContinue?"), "PromptDiffViewClose"); - if ( res != wxID_YES ) { + if(m_stcLeft->IsModified() || m_stcRight->IsModified()) { + wxStandardID res = ::PromptForYesNoDialogWithCheckbox( + _("Closing the diff viewer, will lose all your changes.\nContinue?"), "PromptDiffViewClose"); + if(res != wxID_YES) { event.Veto(); } else { event.Skip(); @@ -614,64 +627,47 @@ } else { event.Skip(); - } - } void DiffSideBySidePanel::OnHorizontal(wxRibbonButtonBarEvent& event) { m_splitter->Unsplit(); m_splitter->SplitHorizontally(m_splitterPageLeft, m_splitterPageRight); - m_config.SetViewMode( DiffConfig::kViewHorizontalSplit ); + m_config.SetViewMode(DiffConfig::kViewHorizontalSplit); Diff(); } -void DiffSideBySidePanel::OnHorizontalUI(wxUpdateUIEvent& event) -{ - event.Check( m_config.IsSplitHorizontal() ); -} +void DiffSideBySidePanel::OnHorizontalUI(wxUpdateUIEvent& event) { event.Check(m_config.IsSplitHorizontal()); } void DiffSideBySidePanel::OnVertical(wxRibbonButtonBarEvent& event) { m_splitter->Unsplit(); m_splitter->SplitVertically(m_splitterPageLeft, m_splitterPageRight); - m_config.SetViewMode( DiffConfig::kViewVerticalSplit); + m_config.SetViewMode(DiffConfig::kViewVerticalSplit); Diff(); } -void DiffSideBySidePanel::OnVerticalUI(wxUpdateUIEvent& event) -{ - event.Check( m_config.IsSplitVertical() ); -} +void DiffSideBySidePanel::OnVerticalUI(wxUpdateUIEvent& event) { event.Check(m_config.IsSplitVertical()); } void DiffSideBySidePanel::DiffNew() { m_flags = 0x0; - m_config.SetViewMode( DiffConfig::kViewVerticalSplit ); + m_config.SetViewMode(DiffConfig::kViewVerticalSplit); m_splitter->Unsplit(); m_splitter->SplitVertically(m_splitterPageLeft, m_splitterPageRight); } -void DiffSideBySidePanel::OnRefreshDiffUI(wxUpdateUIEvent& event) -{ - wxUnusedVar(event); -} -void DiffSideBySidePanel::OnLeftPickerUI(wxUpdateUIEvent& event) -{ - event.Enable( !IsOriginSourceControl() ); -} +void DiffSideBySidePanel::OnRefreshDiffUI(wxUpdateUIEvent& event) { wxUnusedVar(event); } +void DiffSideBySidePanel::OnLeftPickerUI(wxUpdateUIEvent& event) { event.Enable(!IsOriginSourceControl()); } -void DiffSideBySidePanel::OnRightPickerUI(wxUpdateUIEvent& event) -{ - event.Enable( !IsOriginSourceControl() ); -} +void DiffSideBySidePanel::OnRightPickerUI(wxUpdateUIEvent& event) { event.Enable(!IsOriginSourceControl()); } wxString DiffSideBySidePanel::DoGetContentNoPlaceholders(wxStyledTextCtrl* stc) const { wxString newContent; - for(int i=0; iGetLineCount(); ++i) { - if ( !(stc->MarkerGet(i) & PLACE_HOLDER_MARKER_MASK) ) { + for(int i = 0; i < stc->GetLineCount(); ++i) { + if(!(stc->MarkerGet(i) & PLACE_HOLDER_MARKER_MASK)) { newContent << stc->GetLine(i); } } @@ -687,10 +683,11 @@ menu.Append(ID_COPY_LEFT_TO_RIGHT, _("Copy to the right"), wxEmptyString, wxITEM_RADIO); menu.Check(ID_COPY_LEFT_TO_RIGHT, !copyAndMove); - menu.Append(ID_COPY_LEFT_TO_RIGHT_AND_MOVE, _("Copy to the right and move to the next diff"), wxEmptyString, wxITEM_RADIO); + menu.Append( + ID_COPY_LEFT_TO_RIGHT_AND_MOVE, _("Copy to the right and move to the next diff"), wxEmptyString, wxITEM_RADIO); menu.Check(ID_COPY_LEFT_TO_RIGHT_AND_MOVE, copyAndMove); - event.PopupMenu( &menu ); + event.PopupMenu(&menu); } void DiffSideBySidePanel::OnCopyRightToLeftMenu(wxRibbonButtonBarEvent& event) @@ -702,9 +699,10 @@ menu.Append(ID_COPY_RIGHT_TO_LEFT, _("Copy to the left"), wxEmptyString, wxITEM_RADIO); menu.Check(ID_COPY_RIGHT_TO_LEFT, !copyAndMove); - menu.Append(ID_COPY_RIGHT_TO_LEFT_AND_MOVE, _("Copy to the left and move to the next diff"), wxEmptyString, wxITEM_RADIO); + menu.Append( + ID_COPY_RIGHT_TO_LEFT_AND_MOVE, _("Copy to the left and move to the next diff"), wxEmptyString, wxITEM_RADIO); menu.Check(ID_COPY_RIGHT_TO_LEFT_AND_MOVE, copyAndMove); - event.PopupMenu( &menu ); + event.PopupMenu(&menu); } void DiffSideBySidePanel::OnMenuCopyLeft2Right(wxCommandEvent& event) @@ -713,11 +711,11 @@ flags &= ~DiffConfig::kCopyLeftToRightAndMove; - if ( event.IsChecked() && event.GetId() == ID_COPY_LEFT_TO_RIGHT_AND_MOVE ) { + if(event.IsChecked() && event.GetId() == ID_COPY_LEFT_TO_RIGHT_AND_MOVE) { // save the new settings flags |= DiffConfig::kCopyLeftToRightAndMove; } - m_config.SetFlags( flags ); + m_config.SetFlags(flags); } void DiffSideBySidePanel::OnMenuCopyRight2Left(wxCommandEvent& event) @@ -726,30 +724,35 @@ flags &= ~DiffConfig::kCopyRightToLeftAndMove; - if ( event.IsChecked() && event.GetId() == ID_COPY_RIGHT_TO_LEFT_AND_MOVE ) { + if(event.IsChecked() && event.GetId() == ID_COPY_RIGHT_TO_LEFT_AND_MOVE) { // save the new settings flags |= DiffConfig::kCopyRightToLeftAndMove; } - m_config.SetFlags( flags ); + m_config.SetFlags(flags); } -void DiffSideBySidePanel::OnSingleUI(wxUpdateUIEvent& event) -{ - event.Check( m_config.IsSingleViewMode() ); -} +void DiffSideBySidePanel::OnSingleUI(wxUpdateUIEvent& event) { event.Check(m_config.IsSingleViewMode()); } void DiffSideBySidePanel::OnSingleView(wxRibbonButtonBarEvent& event) { - m_config.SetViewMode( DiffConfig::kViewSingle ); + m_config.SetViewMode(DiffConfig::kViewSingle); m_splitter->Unsplit(); Diff(); } void DiffSideBySidePanel::DoLayout() { - if ( m_config.IsSingleViewMode() ) { + if(m_config.IsSingleViewMode()) { m_splitter->Unsplit(); } GetSizer()->Layout(); Refresh(); } +void DiffSideBySidePanel::OnMouseWheel(wxMouseEvent& event) +{ + event.Skip(); + if(::wxGetKeyState(WXK_CONTROL) && !EditorConfigST::Get()->GetOptions()->IsMouseZoomEnabled()) { + event.Skip(false); + return; + } +} diff -Nru codelite-8.0.1+dfsg2/Plugin/DiffSideBySidePanel.h codelite-9.0+dfsg/Plugin/DiffSideBySidePanel.h --- codelite-8.0.1+dfsg2/Plugin/DiffSideBySidePanel.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/DiffSideBySidePanel.h 2015-10-11 13:56:07.000000000 +0000 @@ -41,7 +41,8 @@ ID_COPY_RIGHT_TO_LEFT_AND_MOVE, }; - typedef std::vector< int > Markers_t; + typedef std::vector Markers_t; + public: struct FileInfo { wxFileName filename; @@ -49,19 +50,30 @@ bool readOnly; bool deleteOnExit; - FileInfo(const wxFileName& fn, const wxString &caption, bool ro) : filename(fn), title(caption), readOnly(ro), deleteOnExit(false) {} - FileInfo() : readOnly(true), deleteOnExit(false) {} + FileInfo(const wxFileName& fn, const wxString& caption, bool ro) + : filename(fn) + , title(caption) + , readOnly(ro) + , deleteOnExit(false) + { + } + FileInfo() + : readOnly(true) + , deleteOnExit(false) + { + } }; enum { - kDeleteLeftOnExit = 0x00000001, - kDeleteRightOnExit = 0x00000002, - kLeftReadOnly = 0x00000004, - kRightReadOnly = 0x00000008, - kOriginSourceControl = 0x00000010, + kDeleteLeftOnExit = (1 << 0), + kDeleteRightOnExit = (1 << 1), + kLeftReadOnly = (1 << 2), + kRightReadOnly = (1 << 3), + kOriginSourceControl = (1 << 4), }; protected: + virtual void OnMouseWheel(wxMouseEvent& event); virtual void OnSingleUI(wxUpdateUIEvent& event); virtual void OnSingleView(wxRibbonButtonBarEvent& event); virtual void OnCopyLeftToRightMenu(wxRibbonButtonBarEvent& event); @@ -69,8 +81,8 @@ virtual void OnLeftPickerUI(wxUpdateUIEvent& event); virtual void OnRightPickerUI(wxUpdateUIEvent& event); - void OnMenuCopyLeft2Right(wxCommandEvent &event); - void OnMenuCopyRight2Left(wxCommandEvent &event); + void OnMenuCopyLeft2Right(wxCommandEvent& event); + void OnMenuCopyRight2Left(wxCommandEvent& event); Markers_t m_leftRedMarkers; Markers_t m_leftGreenMarkers; @@ -80,31 +92,21 @@ Markers_t m_rightRedMarkers; Markers_t m_rightPlaceholdersMarkers; - std::vector< std::pair > m_sequences; // start-line - end-line pairs + std::vector > m_sequences; // start-line - end-line pairs int m_cur_sequence; size_t m_flags; wxString m_leftCaption; wxString m_rightCaption; DiffConfig m_config; - + protected: - wxString DoGetContentNoPlaceholders(wxStyledTextCtrl *stc) const; - bool IsLeftReadOnly() const { - return m_flags & kLeftReadOnly; - } - bool IsRightReadOnly() const { - return m_flags & kRightReadOnly; - } - bool IsDeleteLeftOnExit() const { - return m_flags & kDeleteLeftOnExit; - } - bool IsDeleteRightOnExit() const { - return m_flags & kDeleteRightOnExit; - } - bool IsOriginSourceControl() const { - return m_flags & kOriginSourceControl; - } + wxString DoGetContentNoPlaceholders(wxStyledTextCtrl* stc) const; + bool IsLeftReadOnly() const { return m_flags & kLeftReadOnly; } + bool IsRightReadOnly() const { return m_flags & kRightReadOnly; } + bool IsDeleteLeftOnExit() const { return m_flags & kDeleteLeftOnExit; } + bool IsDeleteRightOnExit() const { return m_flags & kDeleteRightOnExit; } + bool IsOriginSourceControl() const { return m_flags & kOriginSourceControl; } protected: virtual void OnRefreshDiffUI(wxUpdateUIEvent& event); @@ -127,25 +129,29 @@ virtual void OnRefreshDiff(wxRibbonButtonBarEvent& event); virtual void OnLeftStcPainted(wxStyledTextEvent& event); virtual void OnRightStcPainted(wxStyledTextEvent& event); - void OnPageClosing(wxNotifyEvent &event); + void OnPageClosing(wxNotifyEvent& event); void PrepareViews(); - void UpdateViews(const wxString &left, const wxString &right); + void UpdateViews(const wxString& left, const wxString& right); void DoClean(); void DoDrawSequenceMarkers(int firstLine, int lastLine, wxStyledTextCtrl* ctrl); void DoCopyCurrentSequence(wxStyledTextCtrl* from, wxStyledTextCtrl* to); void DoCopyFileContent(wxStyledTextCtrl* from, wxStyledTextCtrl* to); - void DoGetPositionsToCopy(wxStyledTextCtrl* stc, int& startPos, int& endPos, int& placeHolderMarkerFirstLine, int& placeHolderMarkerLastLine); + void DoGetPositionsToCopy(wxStyledTextCtrl* stc, + int& startPos, + int& endPos, + int& placeHolderMarkerFirstLine, + int& placeHolderMarkerLastLine); void DoSave(wxStyledTextCtrl* stc, const wxFileName& fn); bool CanNextDiff(); bool CanPrevDiff(); - void DefineMarkers( wxStyledTextCtrl* ctrl ); + void DefineMarkers(wxStyledTextCtrl* ctrl); public: DiffSideBySidePanel(wxWindow* parent); virtual ~DiffSideBySidePanel(); - + void DoLayout(); /** * @brief display a diff view for 2 files left and right @@ -155,9 +161,7 @@ /** * @brief mark the current diff origin from source control */ - void SetOriginSourceControl() { - m_flags |= kOriginSourceControl; - } + void SetOriginSourceControl() { m_flags |= kOriginSourceControl; } /** * @brief start a new empty diff diff -Nru codelite-8.0.1+dfsg2/Plugin/dirpicker.cpp codelite-9.0+dfsg/Plugin/dirpicker.cpp --- codelite-8.0.1+dfsg2/Plugin/dirpicker.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/dirpicker.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -22,7 +22,7 @@ // ////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// - #include "wx/dir.h" +#include "wx/dir.h" #include "wx/filename.h" #include "dirpicker.h" #include "wx/sizer.h" @@ -31,144 +31,146 @@ #include BEGIN_EVENT_TABLE(DirPicker, wxPanel) - EVT_TEXT(wxID_ANY, DirPicker::OnText) +EVT_TEXT(wxID_ANY, DirPicker::OnText) END_EVENT_TABLE() -DirPicker::DirPicker(wxWindow *parent, wxWindowID id, const wxString &buttonCaption, const wxString &defaultPos, const wxString &message, const wxPoint& pos, const wxSize& size, long style) - : wxPanel(parent, id, pos, size, wxTAB_TRAVERSAL | wxNO_BORDER) - , m_path(NULL) - , m_combo(NULL) - , m_buttonCaption(buttonCaption) - , m_dlgCaption(message) - , m_style(style) - , m_defaultPos(defaultPos) +DirPicker::DirPicker(wxWindow* parent, + wxWindowID id, + const wxString& buttonCaption, + const wxString& defaultPos, + const wxString& message, + const wxPoint& pos, + const wxSize& size, + long style) + : wxPanel(parent, id, pos, size, wxTAB_TRAVERSAL | wxNO_BORDER) + , m_path(NULL) + , m_combo(NULL) + , m_buttonCaption(buttonCaption) + , m_dlgCaption(message) + , m_style(style) + , m_defaultPos(defaultPos) { - CreateControls(); - ConnectEvents(); + CreateControls(); + ConnectEvents(); } -DirPicker::~DirPicker() -{ -} +DirPicker::~DirPicker() {} -void DirPicker::OnText(wxCommandEvent &event) -{ - GetParent()->GetEventHandler()->ProcessEvent(event); -} +void DirPicker::OnText(wxCommandEvent& event) { GetParent()->GetEventHandler()->ProcessEvent(event); } void DirPicker::CreateControls() { - wxBoxSizer *mainSizer = new wxBoxSizer(wxHORIZONTAL); - SetSizer(mainSizer); + wxBoxSizer* mainSizer = new wxBoxSizer(wxHORIZONTAL); + SetSizer(mainSizer); - size_t flags = wxRIGHT | wxTOP | wxBOTTOM | wxEXPAND; + size_t flags = wxRIGHT | wxTOP | wxBOTTOM | wxEXPAND; - if (m_style & wxDP_USE_TEXTCTRL) { - m_path = new wxTextCtrl(this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize); - mainSizer->Add(m_path, 1, flags, 5); - } else { - m_combo = new wxComboBox(this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize); - mainSizer->Add(m_combo, 1, flags , 5); - } - - m_button = new wxButton(this, wxID_ANY, m_buttonCaption, wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT); - mainSizer->Add(m_button, 0, wxEXPAND | wxALL, 5); - - Layout(); -} - -void DirPicker::ConnectEvents() -{ - ConnectButton(m_button, DirPicker::OnButtonClicked); -} - -void DirPicker::OnButtonClicked(wxCommandEvent &event) -{ - wxUnusedVar(event); - - //no default position was provided by the user - //try to take it from the text control - wxString work_dir = GetPath(); - m_defaultPos.Empty(); - if (work_dir.IsEmpty() == false) { - if( wxDir::Exists(work_dir) ){ - wxFileName fn(work_dir, wxEmptyString); - wxLogMessage(work_dir + wxT(" exists")); - fn.MakeAbsolute(); - m_defaultPos = fn.GetFullPath(); - } - } - - if (m_defaultPos.IsEmpty()) { - m_defaultPos = wxGetCwd(); - } - - wxLogMessage(wxT("setting working dir to : ") + m_defaultPos ); - - wxDirDialog *dlg = new wxDirDialog(this, m_dlgCaption, m_defaultPos); - if (dlg->ShowModal() == wxID_OK) { - // Get the dirname - wxString path = dlg->GetPath(); - SetPath(path); - } - dlg->Destroy(); + if(m_style & wxDP_USE_TEXTCTRL) { + m_path = new wxTextCtrl(this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize); + mainSizer->Add(m_path, 1, flags, 5); + } else { + m_combo = new wxComboBox(this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize); + mainSizer->Add(m_combo, 1, flags, 5); + } + + m_button = new wxButton(this, wxID_ANY, m_buttonCaption, wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT); + m_button->SetToolTip(_("Browse for folder...")); + mainSizer->Add(m_button, 0, wxEXPAND | wxALL, 5); + + Layout(); +} + +void DirPicker::ConnectEvents() { ConnectButton(m_button, DirPicker::OnButtonClicked); } + +void DirPicker::OnButtonClicked(wxCommandEvent& event) +{ + wxUnusedVar(event); + + // no default position was provided by the user + // try to take it from the text control + wxString work_dir = GetPath(); + m_defaultPos.Empty(); + if(work_dir.IsEmpty() == false) { + if(wxDir::Exists(work_dir)) { + wxFileName fn(work_dir, wxEmptyString); + wxLogMessage(work_dir + wxT(" exists")); + fn.MakeAbsolute(); + m_defaultPos = fn.GetFullPath(); + } + } + + if(m_defaultPos.IsEmpty()) { + m_defaultPos = wxGetCwd(); + } + + wxLogMessage(wxT("setting working dir to : ") + m_defaultPos); + + wxDirDialog* dlg = new wxDirDialog(this, m_dlgCaption, m_defaultPos); + if(dlg->ShowModal() == wxID_OK) { + // Get the dirname + wxString path = dlg->GetPath(); + SetPath(path); + } + dlg->Destroy(); } wxString DirPicker::GetPath() { - if (m_style & wxDP_USE_TEXTCTRL) - return m_path->GetValue(); - else { - wxString path(m_combo->GetValue()); - //if the path is not whitin the combobox list, add it - if (m_combo->FindString(path) == wxNOT_FOUND) { - SetPath(path); - } - return path; - } -} - -void DirPicker::SetPath(const wxString &path) -{ - if (m_style & wxDP_USE_TEXTCTRL) - m_path->SetValue(path); - else { - int where = m_combo->FindString(path); - if (where != wxNOT_FOUND) { - m_combo->SetSelection(where); - } else { - where = m_combo->Append(path); - m_combo->SetSelection(where); - } - } -} - -void DirPicker::SetValues(const wxArrayString &values, int sel) -{ - wxASSERT_MSG(m_style & wxDP_USE_COMBOBOX, wxT("SetValues is available only for wxDP_USE_COMBOBOX style")); - m_combo->Append(values); - m_combo->SetSelection(sel); + if(m_style & wxDP_USE_TEXTCTRL) + return m_path->GetValue(); + else { + wxString path(m_combo->GetValue()); + // if the path is not whitin the combobox list, add it + if(m_combo->FindString(path) == wxNOT_FOUND) { + SetPath(path); + } + return path; + } +} + +void DirPicker::SetPath(const wxString& path) +{ + if(m_style & wxDP_USE_TEXTCTRL) + m_path->SetValue(path); + else { + int where = m_combo->FindString(path); + if(where != wxNOT_FOUND) { + m_combo->SetSelection(where); + } else { + where = m_combo->Append(path); + m_combo->SetSelection(where); + } + } +} + +void DirPicker::SetValues(const wxArrayString& values, int sel) +{ + wxASSERT_MSG(m_style & wxDP_USE_COMBOBOX, wxT("SetValues is available only for wxDP_USE_COMBOBOX style")); + m_combo->Append(values); + m_combo->SetSelection(sel); } wxArrayString DirPicker::GetValues() const { - wxArrayString dummy; - if(m_style & wxDP_USE_COMBOBOX){ - return m_combo->GetStrings(); - } else { - return dummy; - } + wxArrayString dummy; + if(m_style & wxDP_USE_COMBOBOX) { + return m_combo->GetStrings(); + } else { + return dummy; + } } int DirPicker::GetCurrentSelection() const { - wxCHECK_MSG(m_style & wxDP_USE_COMBOBOX, wxNOT_FOUND, wxT("GetCurrentSelection is available only for wxDP_USE_COMBOBOX style")); + wxCHECK_MSG(m_style & wxDP_USE_COMBOBOX, + wxNOT_FOUND, + wxT("GetCurrentSelection is available only for wxDP_USE_COMBOBOX style")); + + int index = wxNOT_FOUND; + wxString stringsel = m_combo->GetValue(); + if(!stringsel.empty()) { + index = m_combo->FindString(stringsel); + } - int index = wxNOT_FOUND; - wxString stringsel = m_combo->GetValue(); - if (!stringsel.empty()) { - index = m_combo->FindString(stringsel); - } - - return index; + return index; } diff -Nru codelite-8.0.1+dfsg2/Plugin/dirpicker.h codelite-9.0+dfsg/Plugin/dirpicker.h --- codelite-8.0.1+dfsg2/Plugin/dirpicker.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/dirpicker.h 2015-10-11 13:56:07.000000000 +0000 @@ -22,7 +22,7 @@ // ////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// - #ifndef DIRPICKER_H +#ifndef DIRPICKER_H #define DIRPICKER_H #include "wx/panel.h" @@ -31,72 +31,70 @@ #include "wx/textctrl.h" #include "wx/combobox.h" -enum { - wxDP_USE_TEXTCTRL = 1, - wxDP_USE_COMBOBOX = 2 -}; +enum { wxDP_USE_TEXTCTRL = 1, wxDP_USE_COMBOBOX = 2 }; /** * This control allows the user to select a directory. with a text control on its right side */ -class WXDLLIMPEXP_SDK DirPicker : public wxPanel { - wxTextCtrl *m_path; - wxComboBox *m_combo; - - wxButton *m_button; - wxString m_buttonCaption; - wxString m_dlgCaption; - long m_style; - wxString m_defaultPos; +class WXDLLIMPEXP_SDK DirPicker : public wxPanel +{ + wxTextCtrl* m_path; + wxComboBox* m_combo; + + wxButton* m_button; + wxString m_buttonCaption; + wxString m_dlgCaption; + long m_style; + wxString m_defaultPos; private: - void CreateControls(); - void ConnectEvents(); + void CreateControls(); + void ConnectEvents(); protected: - /** - * Handle button click event - * \param &event - */ - virtual void OnButtonClicked(wxCommandEvent &event); - virtual void OnText(wxCommandEvent &event); + /** + * Handle button click event + * \param &event + */ + virtual void OnButtonClicked(wxCommandEvent& event); + virtual void OnText(wxCommandEvent& event); public: - DirPicker( wxWindow *parent, - wxWindowID id = wxID_ANY, - const wxString &buttonCaption = wxT("..."), - const wxString &defaultPos = wxEmptyString, - const wxString &message = _("Select a folder:"), - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDP_USE_TEXTCTRL); - - virtual ~DirPicker(); - - /** - * \return the path - */ - wxString GetPath(); - - /** - * set a value into the text control - * \param path path to set - */ - void SetPath(const wxString &path); - - /** - * Set combobox values, this option is available only when using wxDP_USE_COMBOBOX - */ - void SetValues(const wxArrayString &values, int sel=0); - - /** - * Get combobox selection as int; this option is available only when using wxDP_USE_COMBOBOX - * \return the current selection's index, or wxNOT_FOUND if there's none - */ - int GetCurrentSelection() const; + DirPicker(wxWindow* parent, + wxWindowID id = wxID_ANY, + const wxString& buttonCaption = wxT("..."), + const wxString& defaultPos = wxEmptyString, + const wxString& message = _("Select a folder:"), + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = wxDP_USE_TEXTCTRL); + + virtual ~DirPicker(); + + /** + * \return the path + */ + wxString GetPath(); + + /** + * set a value into the text control + * \param path path to set + */ + void SetPath(const wxString& path); + + /** + * Set combobox values, this option is available only when using wxDP_USE_COMBOBOX + */ + void SetValues(const wxArrayString& values, int sel = 0); + + /** + * Get combobox selection as int; this option is available only when using wxDP_USE_COMBOBOX + * \return the current selection's index, or wxNOT_FOUND if there's none + */ + int GetCurrentSelection() const; - wxArrayString GetValues() const; - DECLARE_EVENT_TABLE() + wxArrayString GetValues() const; + DECLARE_EVENT_TABLE() }; #endif // DIRPICKER_H diff -Nru codelite-8.0.1+dfsg2/Plugin/dockablepane.cpp codelite-9.0+dfsg/Plugin/dockablepane.cpp --- codelite-8.0.1+dfsg2/Plugin/dockablepane.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/dockablepane.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,33 +1,33 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2008 by Eran Ifrah -// file name : dockablepane.cpp -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - +////////////////////////////////////////////////////////////////////////////// +////////////////////////////////////////////////////////////////////////////// +// +// copyright : (C) 2008 by Eran Ifrah +// file name : dockablepane.cpp +// +// ------------------------------------------------------------------------- +// A +// _____ _ _ _ _ +// / __ \ | | | | (_) | +// | / \/ ___ __| | ___| | _| |_ ___ +// | | / _ \ / _ |/ _ \ | | | __/ _ ) +// | \__/\ (_) | (_| | __/ |___| | || __/ +// \____/\___/ \__,_|\___\_____/_|\__\___| +// +// F i l e +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// +////////////////////////////////////////////////////////////////////////////// +////////////////////////////////////////////////////////////////////////////// + #include -#include +#include #include #include -#include "notebook_ex.h" +#include "Notebook.h" #include #include "dockablepane.h" @@ -40,74 +40,74 @@ END_EVENT_TABLE() DockablePane::DockablePane(wxWindow* parent, Notebook* book, const wxString& title, const wxBitmap& bmp, wxSize size) -: wxPanel(parent, wxID_ANY, wxDefaultPosition, size) -, m_child(NULL) -, m_book(book) -, m_text(title) -, m_bmp(bmp) -, m_notifiedDestroyed(false) + : wxPanel(parent, wxID_ANY, wxDefaultPosition, size) + , m_child(NULL) + , m_book(book) + , m_text(title) + , m_bmp(bmp) + , m_notifiedDestroyed(false) { - wxBoxSizer *sz = new wxBoxSizer(wxVERTICAL); - SetSizer(sz); - - Connect(XRCID("close_pane"), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( DockablePane::ClosePane )); + wxBoxSizer* sz = new wxBoxSizer(wxVERTICAL); + SetSizer(sz); + Connect(XRCID("close_pane"), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(DockablePane::ClosePane)); wxCommandEvent event(wxEVT_CMD_NEW_DOCKPANE); - event.SetClientData(this); - parent->GetEventHandler()->AddPendingEvent(event); + event.SetClientData(this); + parent->GetEventHandler()->AddPendingEvent(event); } -DockablePane::~DockablePane() -{ -} +DockablePane::~DockablePane() {} void DockablePane::ClosePane(wxCommandEvent& e) -{ - wxUnusedVar(e); - - if(!m_notifiedDestroyed) { - m_notifiedDestroyed = true; - - if (m_book) { - // first detach the child from this pane - wxSizer *sz = GetSizer(); - sz->Detach(m_child); - - // now we can add it to the noteook (it will be automatically be reparented to the notebook) - m_book->AddPage(m_child, m_text, false, m_bmp); - } - - wxCommandEvent event(wxEVT_CMD_DELETE_DOCKPANE); - event.SetClientData(this); - GetParent()->GetEventHandler()->AddPendingEvent(event); - } -} +{ + wxUnusedVar(e); + + if(!m_notifiedDestroyed) { + m_notifiedDestroyed = true; + + if(m_book) { + // first detach the child from this pane + wxSizer* sz = GetSizer(); + sz->Detach(m_child); + + // now we can add it to the noteook (it will be automatically be reparented to the notebook) + m_book->AddPage(m_child, m_text, false, m_bmp); + } + + wxCommandEvent event(wxEVT_CMD_DELETE_DOCKPANE); + event.SetClientData(this); + GetParent()->GetEventHandler()->AddPendingEvent(event); + } +} void DockablePane::OnPaint(wxPaintEvent& e) { - wxBufferedPaintDC dc(this); + wxBufferedPaintDC dc(this); - dc.SetPen(wxPen(wxSystemSettings::GetColour(wxSYS_COLOUR_3DFACE))); - dc.SetBrush(wxBrush(wxSystemSettings::GetColour(wxSYS_COLOUR_3DFACE))); + dc.SetPen(wxPen(wxSystemSettings::GetColour(wxSYS_COLOUR_3DFACE))); + dc.SetBrush(wxBrush(wxSystemSettings::GetColour(wxSYS_COLOUR_3DFACE))); - dc.DrawRectangle(GetClientSize()); + dc.DrawRectangle(GetClientSize()); +} + +void DockablePane::SetChild(wxWindow* child) +{ + m_child = child; + m_child->Reparent(this); + + wxSizer* sz = GetSizer(); + sz->Add(m_child, 1, wxEXPAND | wxALL, 2); + sz->Layout(); +} + +void DockablePane::SetChildNoReparent(wxWindow* child) +{ + m_child = child; + wxSizer* sz = GetSizer(); + if(!m_child->IsShown()) { + m_child->Show(); + } + sz->Add(m_child, 1, wxEXPAND | wxALL, 2); + sz->Layout(); } - -void DockablePane::SetChild(wxWindow *child) -{ - m_child = child; - m_child->Reparent(this); - - wxSizer *sz = GetSizer(); - sz->Add(m_child, 1, wxEXPAND|wxALL, 2); - sz->Layout(); -} - -void DockablePane::SetChildNoReparent(wxWindow* child) -{ - m_child = child; - wxSizer *sz = GetSizer(); - sz->Add(m_child, 1, wxEXPAND|wxALL, 2); - sz->Layout(); -} diff -Nru codelite-8.0.1+dfsg2/Plugin/EclipseCSSThemeImporter.cpp codelite-9.0+dfsg/Plugin/EclipseCSSThemeImporter.cpp --- codelite-8.0.1+dfsg2/Plugin/EclipseCSSThemeImporter.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/EclipseCSSThemeImporter.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -63,7 +63,7 @@ "column-count column-rule column-gap column-rule-color column-rule-style column-rule-width " "resize opacity word-wrap "); SetKeywords4("first-letter first-line before after selection"); - SetFileExtensions("*.css"); + SetFileExtensions("*.css;*.scss"); // Include css and scss files } EclipseCSSThemeImporter::~EclipseCSSThemeImporter() {} @@ -83,15 +83,15 @@ wxString operatorColour = isDark ? "WHITE" : "BLACK"; /// Lexical states for SCLEX_CSS - // Covnert to codelite's XML properties + // Convert to CodeLite's XML properties AddProperty(lexer, "0", "Default", m_foreground.colour, m_background.colour); AddProperty(lexer, "1", "Tag", m_foreground.colour, m_background.colour); AddProperty(lexer, "2", "Class", m_klass.colour, m_background.colour); AddProperty(lexer, "3", "Pseudo Class", m_klass.colour, m_background.colour); AddProperty(lexer, "4", "Unknown Pseudo Class", m_klass.colour, m_background.colour); AddProperty(lexer, "5", "Operator", operatorColour, m_background.colour); - AddProperty(lexer, "6", "Indentifier", m_variable.colour, m_background.colour); - AddProperty(lexer, "7", "Unknow Indentifier", m_variable.colour, m_background.colour); + AddProperty(lexer, "6", "Identifier", m_variable.colour, m_background.colour); + AddProperty(lexer, "7", "Unknown Identifier", m_variable.colour, m_background.colour); AddProperty(lexer, "8", "Value", m_foreground.colour, m_background.colour); AddProperty(lexer, "9", "Comment", m_multiLineComment.colour, m_background.colour); AddProperty(lexer, "10", "ID", m_variable.colour, m_background.colour); @@ -99,11 +99,11 @@ AddProperty(lexer, "12", "Directive", m_klass.colour, m_background.colour); AddProperty(lexer, "13", "String", m_string.colour, m_background.colour); AddProperty(lexer, "14", "Double String", m_string.colour, m_background.colour); - AddProperty(lexer, "15", "Indentifier 2", m_variable.colour, m_background.colour); + AddProperty(lexer, "15", "Identifier 2", m_variable.colour, m_background.colour); AddProperty(lexer, "16", "Attribute", m_foreground.colour, m_background.colour); - AddProperty(lexer, "17", "Indentifier 3", m_variable.colour, m_background.colour); + AddProperty(lexer, "17", "Identifier 3", m_variable.colour, m_background.colour); AddProperty(lexer, "18", "Pseudo Element", m_foreground.colour, m_background.colour); - AddProperty(lexer, "19", "Extended Indentifier", m_variable.colour, m_background.colour); + AddProperty(lexer, "19", "Extended Identifier", m_variable.colour, m_background.colour); AddProperty(lexer, "20", "Extended Pseudo Class", m_foreground.colour, m_background.colour); AddProperty(lexer, "21", "Extended Pseudo Element", m_foreground.colour, m_background.colour); AddProperty(lexer, "22", "Media", m_klass.colour, m_background.colour); diff -Nru codelite-8.0.1+dfsg2/Plugin/EclipseCXXThemeImporter.cpp codelite-9.0+dfsg/Plugin/EclipseCXXThemeImporter.cpp --- codelite-8.0.1+dfsg2/Plugin/EclipseCXXThemeImporter.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/EclipseCXXThemeImporter.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -181,7 +181,7 @@ } eclipseXML << "\n"; wxString xmlFile; - xmlFile << wxStandardPaths::Get().GetTempDir() << "/" + xmlFile << clStandardPaths::Get().GetTempDir() << "/" << "eclipse-theme-" << id << ".xml"; FileUtils::WriteFileContent(xmlFile, eclipseXML); return wxFileName(xmlFile); diff -Nru codelite-8.0.1+dfsg2/Plugin/EclipsePHPThemeImporter.cpp codelite-9.0+dfsg/Plugin/EclipsePHPThemeImporter.cpp --- codelite-8.0.1+dfsg2/Plugin/EclipsePHPThemeImporter.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/EclipsePHPThemeImporter.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -37,7 +37,7 @@ AddProperty(lexer, wxSTC_H_COMMENT, "HTML Comment", m_multiLineComment.colour, m_background.colour); AddProperty(lexer, wxSTC_H_ENTITY, "HTML Entity", m_foreground.colour, m_background.colour); - // Embedded Javascript + // Embedded JavaScript AddProperty(lexer, wxSTC_HJ_START, "JS Start", m_foreground.colour, m_background.colour); AddProperty(lexer, wxSTC_HJ_DEFAULT, "JS Default", m_foreground.colour, m_background.colour); AddProperty(lexer, wxSTC_HJ_COMMENT, "JS Comment", m_singleLineComment.colour, m_background.colour); diff -Nru codelite-8.0.1+dfsg2/Plugin/EditDlg.cpp codelite-9.0+dfsg/Plugin/EditDlg.cpp --- codelite-8.0.1+dfsg2/Plugin/EditDlg.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/EditDlg.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -27,13 +27,17 @@ #include "lexer_configuration.h" #include "editor_config.h" #include "windowattrmanager.h" +#include "ColoursAndFontsManager.h" EditDlg::EditDlg(wxWindow* parent, const wxString& text) : EditDlgBase(parent) { - LexerConf::Ptr_t lex = EditorConfigST::Get()->GetLexer("text"); + LexerConf::Ptr_t lex = ColoursAndFontsManager::Get().GetLexer("text", "Default"); lex->Apply(m_stc10); m_stc10->SetText(text); + m_stc10->SetMultiPaste(true); + m_stc10->SetMultipleSelection(true); + m_stc10->SetAdditionalSelectionTyping(true); SetName("EditDlg"); WindowAttrManager::Load(this); } diff -Nru codelite-8.0.1+dfsg2/Plugin/editor_config.cpp codelite-9.0+dfsg/Plugin/editor_config.cpp --- codelite-8.0.1+dfsg2/Plugin/editor_config.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/editor_config.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -81,7 +81,7 @@ { m_cacheLongValues.clear(); m_cacheStringValues.clear(); - + // first try to load the user's settings m_fileName = clStandardPaths::Get().GetUserDataDir() + wxFileName::GetPathSeparator() + wxT("config/codelite.xml"); wxString localFileName = m_fileName.GetFullPath(); @@ -132,10 +132,7 @@ return true; } -void EditorConfig::SaveLexers() -{ - ColoursAndFontsManager::Get().Save(); -} +void EditorConfig::SaveLexers() { ColoursAndFontsManager::Get().Save(); } wxXmlNode* EditorConfig::GetLexerNode(const wxString& lexerName) { @@ -234,11 +231,24 @@ } } -void EditorConfig::GetRecentItems(wxArrayString& files, const wxString nodeName) +int clSortStringsFunc(const wxString& first, const wxString& second) { + wxFileName f1(first); + wxFileName f2(second); + return f2.GetFullName().CmpNoCase(f1.GetFullName()); +} + +void EditorConfig::GetRecentItems(wxArrayString& files, const wxString& nodeName) { if(nodeName.IsEmpty()) { return; } + + if(m_cacheRecentItems.count(nodeName)) { + files = m_cacheRecentItems.find(nodeName)->second; + //files.Sort(clSortStringsFunc); + return; + } + // find the root node wxXmlNode* node = XmlUtils::FindFirstByTagName(m_doc->GetRoot(), nodeName); if(node) { @@ -247,19 +257,20 @@ if(child->GetName() == wxT("File")) { wxString fileName = XmlUtils::ReadString(child, wxT("Name")); // wxXmlDocument Saves/Loads items in reverse order, so prepend, not add. - if(wxFileExists(fileName)) - files.Insert(fileName, 0); + if(wxFileExists(fileName)) files.Insert(fileName, 0); } child = child->GetNext(); } } + //files.Sort(clSortStringsFunc); } -void EditorConfig::SetRecentItems(const wxArrayString& files, const wxString nodeName) +void EditorConfig::SetRecentItems(const wxArrayString& files, const wxString& nodeName) { if(nodeName.IsEmpty()) { return; } + // find the root node wxXmlNode* node = XmlUtils::FindFirstByTagName(m_doc->GetRoot(), nodeName); if(node) { @@ -276,6 +287,12 @@ node->AddChild(child); } + // Update the cache + if(m_cacheRecentItems.count(nodeName)) { + m_cacheRecentItems.erase(nodeName); + } + m_cacheRecentItems.insert(std::make_pair(nodeName, files)); + // save the data to disk DoSave(); wxCommandEvent evt(wxEVT_EDITOR_CONFIG_CHANGED); @@ -285,8 +302,7 @@ bool EditorConfig::WriteObject(const wxString& name, SerializedObject* obj) { - if(!XmlUtils::StaticWriteObject(m_doc->GetRoot(), name, obj)) - return false; + if(!XmlUtils::StaticWriteObject(m_doc->GetRoot(), name, obj)) return false; // save the archive bool res = DoSave(); @@ -331,28 +347,28 @@ // Check the cache first std::map::iterator iter = m_cacheLongValues.find(name); if(iter != m_cacheLongValues.end()) return iter->second; - + SimpleLongValue data; if(!ReadObject(name, &data)) { return defaultValue; } - + // update the cache m_cacheLongValues[name] = data.GetValue(); return data.GetValue(); } -wxString EditorConfig::GetString(const wxString& key, const wxString &defaultValue) +wxString EditorConfig::GetString(const wxString& key, const wxString& defaultValue) { // Check the cache first std::map::iterator iter = m_cacheStringValues.find(key); if(iter != m_cacheStringValues.end()) return iter->second; - + SimpleStringValue data; if(!ReadObject(key, &data)) { return defaultValue; } - + m_cacheStringValues[key] = data.GetValue(); return data.GetValue(); } @@ -379,7 +395,7 @@ if(m_transcation) { return true; } - + // Notify that the editor configuration was modified wxCommandEvent event(wxEVT_EDITOR_CONFIG_CHANGED); EventNotifier::Get()->AddPendingEvent(event); diff -Nru codelite-8.0.1+dfsg2/Plugin/editor_config.h codelite-9.0+dfsg/Plugin/editor_config.h --- codelite-8.0.1+dfsg2/Plugin/editor_config.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/editor_config.h 2015-10-11 13:56:07.000000000 +0000 @@ -112,10 +112,11 @@ wxString m_svnRevision; wxString m_version; wxString m_installDir; - + std::map m_cacheLongValues; std::map m_cacheStringValues; - + std::map m_cacheRecentItems; + private: bool DoSave() const; bool DoLoadDefaultSettings(); @@ -213,14 +214,14 @@ * \param files [output] a place holder for the output * \param nodename the type of item to get */ - void GetRecentItems(wxArrayString& files, const wxString nodeName); + void GetRecentItems(wxArrayString& files, const wxString& nodeName); /** * Set an array of recently opened items e.g. workspaces * \param files list of files to save * \param nodename the type of item to set */ - void SetRecentItems(const wxArrayString& files, const wxString nodeName); + void SetRecentItems(const wxArrayString& files, const wxString& nodeName); /** * \brief write an archived object to the xml configuration @@ -268,7 +269,7 @@ * \param key key identifiying the string * \return wxEmptyString or the value */ - wxString GetString(const wxString& key, const wxString &defaultValue = ""); + wxString GetString(const wxString& key, const wxString& defaultValue = ""); /** * \brief diff -Nru codelite-8.0.1+dfsg2/Plugin/evnvarlist.cpp codelite-9.0+dfsg/Plugin/evnvarlist.cpp --- codelite-8.0.1+dfsg2/Plugin/evnvarlist.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/evnvarlist.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -90,14 +90,14 @@ wxString currentValueStr = DoGetSetVariablesStr(setName, actualSetName); - if(includeWorkspaceEnvs && !WorkspaceST::Get()->GetName().IsEmpty()) { + if(includeWorkspaceEnvs && !clCxxWorkspaceST::Get()->GetName().IsEmpty()) { currentValueStr.Trim().Trim(false); currentValueStr << wxT("\n"); - currentValueStr << WorkspaceST::Get()->GetEnvironmentVariabels(); + currentValueStr << clCxxWorkspaceST::Get()->GetEnvironmentVariabels(); if(projectName.IsEmpty() == false) { currentValueStr.Trim().Trim(false); - BuildConfigPtr buildConf = WorkspaceST::Get()->GetProjBuildConf(projectName, wxT("")); + BuildConfigPtr buildConf = clCxxWorkspaceST::Get()->GetProjBuildConf(projectName, wxT("")); if(buildConf) { currentValueStr << wxT("\n"); currentValueStr << buildConf->GetEnvvars(); diff -Nru codelite-8.0.1+dfsg2/Plugin/GenericImporter.h codelite-9.0+dfsg/Plugin/GenericImporter.h --- codelite-8.0.1+dfsg2/Plugin/GenericImporter.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/GenericImporter.h 2015-10-11 13:56:07.000000000 +0000 @@ -24,6 +24,13 @@ enum class GenericCfgType { DYNAMIC_LIBRARY, STATIC_LIBRARY, EXECUTABLE }; +struct GenericProjectFile { + wxString name; + wxString vpath; +}; + +typedef std::shared_ptr GenericProjectFilePtr; + struct GenericProjectCfg { wxString name; wxString outputFilename; @@ -38,19 +45,19 @@ wxString preCompiledHeader; wxString command; wxString workingDirectory; + std::vector preBuildCommands; + std::vector postBuildCommands; + std::vector excludeFiles; GenericEnvVarsType envVars; GenericCfgType type; + bool enableCustomBuild; + wxString customBuildCmd; + wxString customCleanCmd; + wxString customRebuildCmd; }; typedef std::shared_ptr GenericProjectCfgPtr; -struct GenericProjectFile { - wxString name; - wxString vpath; -}; - -typedef std::shared_ptr GenericProjectFilePtr; - struct GenericProject { wxString name; wxString path; @@ -58,6 +65,7 @@ GenericCfgType cfgType; std::vector cfgs; std::vector files; + bool createDefaultVirtualDir = false; }; typedef std::shared_ptr GenericProjectPtr; diff -Nru codelite-8.0.1+dfsg2/Plugin/globals.cpp codelite-9.0+dfsg/Plugin/globals.cpp --- codelite-8.0.1+dfsg2/Plugin/globals.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/globals.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -112,23 +112,11 @@ { } - virtual ~clInternalEventHandlerData() - { - wxDELETE(m_arg); - } + virtual ~clInternalEventHandlerData() { wxDELETE(m_arg); } - wxClientData* GetArg() const - { - return m_arg; - } - clEventFunc_t GetFuncPtr() const - { - return m_funcPtr; - } - wxObject* GetThis() - { - return m_this; - } + wxClientData* GetArg() const { return m_arg; } + clEventFunc_t GetFuncPtr() const { return m_funcPtr; } + wxObject* GetThis() { return m_this; } }; class clInternalEventHandler : public wxEvtHandler @@ -200,7 +188,7 @@ // -------------------------------------------------------- static wxString DoExpandAllVariables(const wxString& expression, - Workspace* workspace, + clCxxWorkspace* workspace, const wxString& projectName, const wxString& confToBuild, const wxString& fileName); @@ -235,11 +223,9 @@ #include #endif -struct ProjListCompartor { - bool operator()(const ProjectPtr p1, const ProjectPtr p2) const - { - return p1->GetName() > p2->GetName(); - } +struct ProjListCompartor +{ + bool operator()(const ProjectPtr p1, const ProjectPtr p2) const { return p1->GetName() > p2->GetName(); } }; static bool IsBOMFile(const char* file_name) @@ -252,8 +238,7 @@ // Read the first 4 bytes (or less) size_t size = buff.st_size; - if(size > 4) - size = 4; + if(size > 4) size = 4; char* buffer = new char[size]; if(fread(buffer, sizeof(char), size, fp) == size) { @@ -283,8 +268,7 @@ wxFontEncoding encoding(wxFONTENCODING_SYSTEM); size_t bomSize(size); - if(bomSize > 4) - bomSize = 4; + if(bomSize > 4) bomSize = 4; bom.SetData(buffer, bomSize); encoding = bom.Encoding(); @@ -328,20 +312,14 @@ return content.IsEmpty() == false; } -bool SendCmdEvent(int eventId, void* clientData) -{ - return EventNotifier::Get()->SendCommandEvent(eventId, clientData); -} +bool SendCmdEvent(int eventId, void* clientData) { return EventNotifier::Get()->SendCommandEvent(eventId, clientData); } bool SendCmdEvent(int eventId, void* clientData, const wxString& str) { return EventNotifier::Get()->SendCommandEvent(eventId, clientData, str); } -void PostCmdEvent(int eventId, void* clientData) -{ - EventNotifier::Get()->PostCommandEvent(eventId, clientData); -} +void PostCmdEvent(int eventId, void* clientData) { EventNotifier::Get()->PostCommandEvent(eventId, clientData); } void SetColumnText(wxListCtrl* list, long indx, long column, const wxString& rText, int imgId) { @@ -378,8 +356,7 @@ return ReadBOMFile(name.data(), content, *bom); } - if(encoding == wxFONTENCODING_DEFAULT) - encoding = EditorConfigST::Get()->GetOptions()->GetFileFontEncoding(); + if(encoding == wxFONTENCODING_DEFAULT) encoding = EditorConfigST::Get()->GetOptions()->GetFileFontEncoding(); // first try the user defined encoding (except for UTF8: the UTF8 builtin appears to be faster) if(encoding != wxFONTENCODING_UTF8) { @@ -463,12 +440,12 @@ if(editor) { fileName = editor->GetFileName().GetFullPath(); } - return ExpandAllVariables(expression, WorkspaceST::Get(), project_name, wxEmptyString, fileName); + return ExpandAllVariables(expression, clCxxWorkspaceST::Get(), project_name, wxEmptyString, fileName); } // This functions accepts expression and expand all variables in it wxString ExpandAllVariables(const wxString& expression, - Workspace* workspace, + clCxxWorkspace* workspace, const wxString& projectName, const wxString& selConf, const wxString& fileName) @@ -521,7 +498,7 @@ } wxString DoExpandAllVariables(const wxString& expression, - Workspace* workspace, + clCxxWorkspace* workspace, const wxString& projectName, const wxString& confToBuild, const wxString& fileName) @@ -724,10 +701,7 @@ return ret; } -wxColour MakeColourLighter(wxColour color, float level) -{ - return DrawingUtils::LightColour(color, level); -} +wxColour MakeColourLighter(wxColour color, float level) { return DrawingUtils::LightColour(color, level); } bool IsFileReadOnly(const wxFileName& filename) { @@ -773,10 +747,7 @@ return result.BeforeLast(wxT(';')); } -void StripSemiColons(wxString& str) -{ - str.Replace(wxT(";"), wxT(" ")); -} +void StripSemiColons(wxString& str) { str.Replace(wxT(";"), wxT(" ")); } wxString NormalizePath(const wxString& path) { @@ -788,10 +759,7 @@ return normalized_path; } -time_t GetFileModificationTime(const wxFileName& filename) -{ - return GetFileModificationTime(filename.GetFullPath()); -} +time_t GetFileModificationTime(const wxFileName& filename) { return GetFileModificationTime(filename.GetFullPath()); } time_t GetFileModificationTime(const wxString& filename) { @@ -855,17 +823,19 @@ wxString command; #ifdef __WXMSW__ wxChar* shell = wxGetenv(wxT("COMSPEC")); - if(!shell) - shell = (wxChar*)wxT("CMD.EXE"); - + if(!shell) shell = (wxChar*)wxT("CMD.EXE"); command << shell << wxT(" /C "); - if(EditorConfigST::Get()->GetOptions()->MSWIsWrapCmdWithDoubleQuotes()) { - command << "\"" << cmd << "\""; +#if 0 + command << "\"" << cmd << "\""; +#else + if(cmd.StartsWith("\"")) { + command << "\"" << cmd << "\"\""; } else { command << cmd; } - cmd = command; +#endif + cmd = command; #else command << wxT("/bin/sh -c '"); // escape any single quoutes @@ -895,54 +865,61 @@ return (squashedname.IsEmpty() ? wxString(wxT("someone")) : squashedname); } -void GetProjectTemplateList(std::list& list) +static void +DoReadProjectTemplatesFromFolder(const wxString& folder, std::list& list, bool loadDefaults = true) { - wxString tmplateDir = clStandardPaths::Get().GetProjectTemplatesDir(); - // read all files under this directory - DirTraverser dt("*.project"); - - wxDir dir(tmplateDir); - dir.Traverse(dt); - - wxArrayString& files = dt.GetFiles(); - - if(files.GetCount() > 0) { - for(size_t i = 0; i < files.GetCount(); i++) { - ProjectPtr proj(new Project()); - if(!proj->Load(files.Item(i))) { - // corrupted xml file? - wxLogMessage(wxT("Failed to load template project: ") + files.Item(i) + wxT(" (corrupted XML?)")); - continue; - } - list.push_back(proj); + wxArrayString files; + if(wxFileName::DirExists(folder)) { + DirTraverser dt("*.project"); + + wxDir dir(folder); + dir.Traverse(dt); + + files = dt.GetFiles(); + if(files.GetCount() > 0) { + for(size_t i = 0; i < files.GetCount(); i++) { + ProjectPtr proj(new Project()); + if(!proj->Load(files.Item(i))) { + // corrupted xml file? + wxLogMessage(wxT("Failed to load template project: ") + files.Item(i) + wxT(" (corrupted XML?)")); + continue; + } + list.push_back(proj); - // load template icon - wxFileName fn(files.Item(i)); - fn.SetFullName("icon.png"); - if(fn.Exists()) { - wxBitmap bmp = wxBitmap(fn.GetFullPath(), wxBITMAP_TYPE_ANY); - if(bmp.IsOk() && bmp.GetWidth() == 16 && bmp.GetHeight() == 16) { - proj->SetIconPath(fn.GetFullPath()); + // load template icon + wxFileName fn(files.Item(i)); + fn.SetFullName("icon.png"); + if(fn.Exists()) { + wxBitmap bmp = wxBitmap(fn.GetFullPath(), wxBITMAP_TYPE_ANY); + if(bmp.IsOk() && bmp.GetWidth() == 16 && bmp.GetHeight() == 16) { + proj->SetIconPath(fn.GetFullPath()); + } } } } + } - } else { + if(loadDefaults && files.IsEmpty()) { // if we ended up here, it means the installation got screwed up since // there should be at least 8 project templates ! // create 3 default empty projects ProjectPtr exeProj(new Project()); ProjectPtr libProj(new Project()); ProjectPtr dllProj(new Project()); - libProj->Create(wxT("Static Library"), wxEmptyString, tmplateDir, Project::STATIC_LIBRARY); - dllProj->Create(wxT("Dynamic Library"), wxEmptyString, tmplateDir, Project::DYNAMIC_LIBRARY); - exeProj->Create(wxT("Executable"), wxEmptyString, tmplateDir, Project::EXECUTABLE); + libProj->Create(wxT("Static Library"), wxEmptyString, folder, Project::STATIC_LIBRARY); + dllProj->Create(wxT("Dynamic Library"), wxEmptyString, folder, Project::DYNAMIC_LIBRARY); + exeProj->Create(wxT("Executable"), wxEmptyString, folder, Project::EXECUTABLE); list.push_back(libProj); list.push_back(dllProj); list.push_back(exeProj); } +} +void GetProjectTemplateList(std::list& list) +{ + DoReadProjectTemplatesFromFolder(clStandardPaths::Get().GetProjectTemplatesDir(), list); + DoReadProjectTemplatesFromFolder(clStandardPaths::Get().GetUserProjectTemplatesDir(), list, false); list.sort(ProjListCompartor()); } @@ -1017,6 +994,7 @@ words.insert(wxT("using")); words.insert(wxT("throw")); words.insert(wxT("catch")); + words.insert(wxT("nullptr")); } return words.count(word) != 0; @@ -1208,8 +1186,7 @@ #else wxCharBuffer cb = filename.GetFullPath().mb_str(wxConvUTF8).data(); struct stat stat_buff; - if(::stat(cb.data(), &stat_buff) < 0) - return false; + if(::stat(cb.data(), &stat_buff) < 0) return false; return S_ISLNK(stat_buff.st_mode); #endif } @@ -1258,11 +1235,9 @@ return defval; } - if(minval != -1 && v < minval) - return defval; + if(minval != -1 && v < minval) return defval; - if(maxval != -1 && v > maxval) - return defval; + if(maxval != -1 && v > maxval) return defval; return v; } @@ -1278,18 +1253,11 @@ // BOM //////////////////////////////////////// -BOM::BOM(const char* buffer, size_t len) -{ - m_bom.AppendData(buffer, len); -} +BOM::BOM(const char* buffer, size_t len) { m_bom.AppendData(buffer, len); } -BOM::BOM() -{ -} +BOM::BOM() {} -BOM::~BOM() -{ -} +BOM::~BOM() {} wxFontEncoding BOM::Encoding() { @@ -1329,10 +1297,10 @@ wxFontEncoding encoding = wxFONTENCODING_SYSTEM; /* -1 */ static const char UTF32be[] = { 0x00, 0x00, (char)0xfe, (char)0xff }; - static const char UTF32le[] = { (char)0xff, (char)0xfe, 0x00, 0x00 }; - static const char UTF16be[] = { (char)0xfe, (char)0xff }; - static const char UTF16le[] = { (char)0xff, (char)0xfe }; - static const char UTF8[] = { (char)0xef, (char)0xbb, (char)0xbf }; + static const char UTF32le[] = {(char)0xff, (char)0xfe, 0x00, 0x00 }; + static const char UTF16be[] = {(char)0xfe, (char)0xff }; + static const char UTF16le[] = {(char)0xff, (char)0xfe }; + static const char UTF8[] = {(char)0xef, (char)0xbb, (char)0xbf }; if(memcmp(buff, UTF32be, sizeof(UTF32be)) == 0) { encoding = wxFONTENCODING_UTF32BE; @@ -1359,10 +1327,7 @@ m_bom.AppendData(buffer, len); } -int BOM::Len() const -{ - return m_bom.GetDataLen(); -} +int BOM::Len() const { return m_bom.GetDataLen(); } void BOM::Clear() { @@ -1372,15 +1337,9 @@ ///////////////////////////////////////////////////////////////// -clEventDisabler::clEventDisabler() -{ - EventNotifier::Get()->DisableEvents(true); -} +clEventDisabler::clEventDisabler() { EventNotifier::Get()->DisableEvents(true); } -clEventDisabler::~clEventDisabler() -{ - EventNotifier::Get()->DisableEvents(false); -} +clEventDisabler::~clEventDisabler() { EventNotifier::Get()->DisableEvents(false); } /////////////////////////////////////////////////////////////////////////////////////////////// // UTF8/16 conversions methods copied from wxScintilla @@ -1724,7 +1683,8 @@ #if defined(__WXMAC__) FileUtils::OSXOpenDebuggerTerminalAndGetTTY(::wxGetCwd(), tty, pid); - + realPts = tty; + #elif defined(__WXMSW__) // Windows wxUnusedVar(title); @@ -1742,7 +1702,6 @@ wxString SLEEP_COMMAND; SLEEP_COMMAND << "sleep " << secondsToSleep; - wxString consoleCommand = TERMINAL_CMD; consoleCommand.Replace("$(CMD)", SLEEP_COMMAND); consoleCommand.Replace("$(TITLE)", title); @@ -1785,7 +1744,7 @@ #else wxString command; - wxFileName fnCodeliteTerminal(wxStandardPaths::Get().GetExecutablePath()); + wxFileName fnCodeliteTerminal(clStandardPaths::Get().GetExecutablePath()); #if defined(__WXMAC__) command << "/usr/bin/open \"" << fnCodeliteTerminal.GetPath(true) << "codelite-terminal.app\" --args "; @@ -1814,7 +1773,7 @@ wxString title(cmd); OptionsConfigPtr opts = EditorConfigST::Get()->GetOptions(); - wxFileName fnCodeliteTerminal(wxStandardPaths::Get().GetExecutablePath()); + wxFileName fnCodeliteTerminal(clStandardPaths::Get().GetExecutablePath()); fnCodeliteTerminal.SetFullName("codelite-terminal"); // change directory to the working directory @@ -1847,7 +1806,7 @@ // build the command wxString command; wxString ld_lib_path; - wxFileName exePath(wxStandardPaths::Get().GetExecutablePath()); + wxFileName exePath(clStandardPaths::Get().GetExecutablePath()); wxFileName exeWrapper(exePath.GetPath(), wxT("codelite_exec")); if(wxGetEnv(wxT("LD_LIBRARY_PATH"), &ld_lib_path) && ld_lib_path.IsEmpty() == false) { @@ -1931,8 +1890,7 @@ long tmpPos = curpos; curpos = ctrl->PositionBefore(curpos); - if(curpos == 0 && tmpPos == curpos) - break; + if(curpos == 0 && tmpPos == curpos) break; } else { foundPos = curpos; return ch; @@ -2057,8 +2015,7 @@ } } - if(at < 0) - at = 0; + if(at < 0) at = 0; wxString expr = ctrl->GetTextRange(at, pos); if(!forCC) { // If we do not require the expression for CodeCompletion @@ -2127,8 +2084,7 @@ int maxPixel = 0; int startLine = ctrl->GetFirstVisibleLine(); int endLine = startLine + ctrl->LinesOnScreen(); - if(endLine >= (ctrl->GetLineCount() - 1)) - endLine--; + if(endLine >= (ctrl->GetLineCount() - 1)) endLine--; for(int i = startLine; i <= endLine; i++) { int visibleLine = (int)ctrl->DocLineFromVisible(i); // get actual visible line, folding may offset lines @@ -2144,8 +2100,7 @@ maxPixel = curLen; } - if(maxPixel == 0) - maxPixel++; // make sure maxPixel is valid + if(maxPixel == 0) maxPixel++; // make sure maxPixel is valid int currentLength = ctrl->GetScrollWidth(); // Get current scrollbar size if(currentLength != maxPixel) { @@ -2153,13 +2108,11 @@ ctrl->SetScrollWidth(maxPixel); } } -wxString clGetTextFromUser(const wxString& title, - const wxString& message, - const wxString& initialValue, - int charsToSelect, - wxWindow* parent) +wxString clGetTextFromUser( + const wxString& title, const wxString& message, const wxString& initialValue, int charsToSelect, wxWindow* parent) { - clGetTextFromUserDialog dialog(parent, title, message, initialValue, charsToSelect); + clGetTextFromUserDialog dialog( + parent == NULL ? EventNotifier::Get()->TopFrame() : parent, title, message, initialValue, charsToSelect); if(dialog.ShowModal() == wxID_OK) { return dialog.GetValue(); } @@ -2173,7 +2126,4 @@ return s_pluginManager; } -void clSetManager(IManager* manager) -{ - s_pluginManager = manager; -} +void clSetManager(IManager* manager) { s_pluginManager = manager; } diff -Nru codelite-8.0.1+dfsg2/Plugin/globals.h codelite-9.0+dfsg/Plugin/globals.h --- codelite-8.0.1+dfsg2/Plugin/globals.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/globals.h 2015-10-11 13:56:07.000000000 +0000 @@ -193,7 +193,7 @@ * \return an expanded string. If a macro is unknown it is replaced by empty string */ WXDLLIMPEXP_SDK wxString ExpandAllVariables(const wxString& expression, - Workspace* workspace, + clCxxWorkspace* workspace, const wxString& projectName, const wxString& selConf, const wxString& fileName); diff -Nru codelite-8.0.1+dfsg2/Plugin/gtk_notebook_ex.cpp codelite-9.0+dfsg/Plugin/gtk_notebook_ex.cpp --- codelite-8.0.1+dfsg2/Plugin/gtk_notebook_ex.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/gtk_notebook_ex.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,719 +0,0 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2014 The CodeLite Team -// file name : gtk_notebook_ex.cpp -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - -#include "cl_defs.h" - -#if CL_USE_NATIVEBOOK - -#include -#include -#include -#include "notebook_ex_nav_dlg.h" -#include "gtk_notebook_ex.h" -#include -#include "wx/sizer.h" -#include -#include -#include -#include - -#ifdef __WXGTK20__ -// We need this ugly hack to workaround a gtk2-wxGTK name-clash -// See http://trac.wxwidgets.org/ticket/10883 -#define GSocket GlibGSocket -#include -#undef GSocket -#endif - - -#if wxUSE_STD_CONTAINERS && wxVERSION_NUMBER >= 2900 -// The following avoids an undefined reference from m_pagesData.DeleteObject(data) in Notebook::GTKOnPageReordered - -// Copying this definition from wx/src/gtk/notebook.cpp prevents warnings from the WX_DEFINE_LIST below -class wxGtkNotebookPage: public wxObject -{ -public: - GtkWidget* m_box; - GtkWidget* m_label; - GtkWidget* m_image; - int m_imageIndex; -}; - -#include "wx/listimpl.cpp" -WX_DEFINE_LIST(wxGtkNotebookPagesList) -#endif // wxUSE_STD_CONTAINERS - -#include - -class MyNotebookPage: public wxObject -{ -public: -#if wxVERSION_NUMBER < 2900 - MyNotebookPage() { - m_image = -1; - m_page = NULL; - m_box = NULL; - } - - wxString m_text; - int m_image; - GtkWidget *m_page; - GtkLabel *m_label; - GtkWidget *m_box; // in which the label and image are packed -#else - GtkWidget* m_box; - GtkWidget* m_label; - GtkWidget* m_image; - int m_imageIndex; -#endif -}; - - -extern "C" { - static void OnPageReordered(GtkNotebook*, GtkWidget* page, guint new_pos, Notebook* notebk) - { - notebk->GTKOnPageReordered(page, new_pos); - } -} - - -// The close button callback -static void OnNotebookButtonClicked(GtkWidget *widget, gpointer data) -{ - MyGtkPageInfo* pgInfo = reinterpret_cast(data); - if(pgInfo) { - pgInfo->m_book->GTKHandleButtonCloseClicked(pgInfo); - } -} - -const wxEventType wxEVT_COMMAND_BOOK_PAGE_CHANGING = XRCID("notebook_page_changing"); -const wxEventType wxEVT_COMMAND_BOOK_PAGE_CHANGED = XRCID("notebook_page_changed"); -const wxEventType wxEVT_COMMAND_BOOK_PAGE_CLOSING = XRCID("notebook_page_closing"); -const wxEventType wxEVT_COMMAND_BOOK_PAGE_CLOSED = XRCID("notebook_page_closed"); -const wxEventType wxEVT_COMMAND_BOOK_PAGE_MIDDLE_CLICKED = XRCID("notebook_page_middle_clicked"); -const wxEventType wxEVT_COMMAND_BOOK_PAGE_X_CLICKED = XRCID("notebook_page_x_btn_clicked"); -const wxEventType wxEVT_COMMAND_BOOK_BG_DCLICK = XRCID("notebook_page_bg_dclick"); - -Notebook::Notebook(wxWindow *parent, wxWindowID id, const wxPoint &pos, const wxSize &size, long style) - : wxNotebook(parent, id, pos, size, wxNB_DEFAULT) - , m_popupWin(NULL) - , m_contextMenu(NULL) - , m_style(style) - , m_notify (true) - , m_imgList(NULL) - , m_startingTab(Notebook::npos) -{ - Initialize(); - SetPadding(wxSize(0, 0)); - Connect(wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED, wxNotebookEventHandler(Notebook::OnIternalPageChanged), NULL, this); - Connect(wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING, wxNotebookEventHandler(Notebook::OnIternalPageChanging), NULL, this); - Connect(wxEVT_NAVIGATION_KEY, wxNavigationKeyEventHandler(Notebook::OnNavigationKey), NULL, this); - Connect(wxEVT_MIDDLE_DOWN, wxMouseEventHandler(Notebook::OnMouseMiddle), NULL, this); - Connect(wxEVT_LEFT_DCLICK, wxMouseEventHandler(Notebook::OnMouseLeftDClick), NULL, this); - Connect(wxEVT_CONTEXT_MENU, wxContextMenuEventHandler(Notebook::OnMenu), NULL, this); -} - -Notebook::~Notebook() -{ - Disconnect(wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED, wxNotebookEventHandler(Notebook::OnIternalPageChanged), NULL, this); - Disconnect(wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING, wxNotebookEventHandler(Notebook::OnIternalPageChanging), NULL, this); - Disconnect(wxEVT_NAVIGATION_KEY, wxNavigationKeyEventHandler(Notebook::OnNavigationKey), NULL, this); - Disconnect(wxEVT_MIDDLE_DOWN, wxMouseEventHandler(Notebook::OnMouseMiddle), NULL, this); - Disconnect(wxEVT_LEFT_DCLICK, wxMouseEventHandler(Notebook::OnMouseLeftDClick), NULL, this); - Disconnect(wxEVT_CONTEXT_MENU, wxContextMenuEventHandler(Notebook::OnMenu), NULL, this); - - std::map::iterator iter = m_gtk_page_info.begin(); - for(; iter != m_gtk_page_info.end(); iter++) { - gtk_widget_destroy(iter->second->m_button); - delete iter->second; - } - m_gtk_page_info.clear(); - - if(m_imgList) { - delete m_imgList; - m_imgList = NULL; - } -} - -void Notebook::AddPage(wxWindow *win, const wxString &text, bool selected, const wxBitmap& bmp) -{ - if(win->GetParent() != this) { - win->Reparent(this); - } - - int imgid = DoGetBmpIdx(bmp); - if (wxNotebook::AddPage(win, text, selected, imgid)) { - win->Connect(wxEVT_KEY_DOWN, wxKeyEventHandler(Notebook::OnKeyDown), NULL, this); - PushPageHistory(win); - int idx = (int)GetPageCount(); - GTKAddCloseButtonAndReorderable(idx-1); - } -} - -void Notebook::Initialize() -{ - static bool style_applied = false; - if(!style_applied) { - gtk_rc_parse_string( - "style \"tab-close-button-style\" { " - " GtkWidget::focus-padding = 0 " - " GtkWidget::focus-line-width = 0 " - " xthickness = 0 " - " ythickness = 0 " - " } " - " widget \"*.tab-close-button\" style \"tab-close-button-style\"" - ); - style_applied = true; - } -} - -void Notebook::SetSelection(size_t page, bool notify) -{ - if (page >= GetPageCount()) - return; - - m_notify = notify; - wxNotebook::SetSelection(page); - m_notify = true; - - PushPageHistory(GetPage(page)); - GetPage(page)->SetFocus(); -} - - -wxWindow* Notebook::GetPage(size_t page) const -{ - if (page >= GetPageCount()) - return NULL; - - return wxNotebook::GetPage(page); -} - -bool Notebook::RemovePage(size_t page, bool notify) -{ - if (notify) { - //send event to noitfy that the page has changed - NotebookEvent event(wxEVT_COMMAND_BOOK_PAGE_CLOSING, GetId()); - event.SetSelection( page ); - event.SetEventObject( this ); - GetEventHandler()->ProcessEvent(event); - - if (!event.IsAllowed()) { - return false; - } - } - - wxWindow* win = GetPage(page); - win->Disconnect(wxEVT_KEY_DOWN, wxKeyEventHandler(Notebook::OnKeyDown), NULL, this); - - bool rc = wxNotebook::RemovePage(page); - if (rc) { - GTKDeletePgInfo(win); - PopPageHistory(win); - } - - if (rc && notify) { - //send event to noitfy that the page has been closed - NotebookEvent event(wxEVT_COMMAND_BOOK_PAGE_CLOSED, GetId()); - event.SetSelection( page ); - event.SetEventObject( this ); - GetEventHandler()->ProcessEvent(event); - } - - return rc; -} - -bool Notebook::DeletePage(size_t page, bool notify) -{ - if (page >= GetPageCount()) - return false; - - if (notify) { - //send event to noitfy that the page has changed - NotebookEvent event(wxEVT_COMMAND_BOOK_PAGE_CLOSING, GetId()); - event.SetSelection( page ); - event.SetEventObject( this ); - GetEventHandler()->ProcessEvent(event); - - if (!event.IsAllowed()) { - return false; - } - } - - wxWindow* win = GetPage(page); - win->Disconnect(wxEVT_KEY_DOWN, wxKeyEventHandler(Notebook::OnKeyDown), NULL, this); - GTKDeletePgInfo(win); - - bool rc = wxNotebook::DeletePage(page); - if (rc) { - PopPageHistory(win); - } - - if (rc && notify) { - //send event to noitfy that the page has been closed - NotebookEvent event(wxEVT_COMMAND_BOOK_PAGE_CLOSED, GetId()); - event.SetSelection( page ); - event.SetEventObject( this ); - GetEventHandler()->ProcessEvent(event); - } - - return rc; - -} - -wxString Notebook::GetPageText(size_t page) const -{ - if (page >= GetPageCount()) - return wxT(""); - - return wxNotebook::GetPageText(page); -} - -void Notebook::OnNavigationKey(wxNavigationKeyEvent &e) -{ - if ( e.IsWindowChange() ) { - if (DoNavigate()) - return; - } - - e.Skip(); -} - -const wxArrayPtrVoid& Notebook::GetHistory() const -{ - return m_history; -} - -void Notebook::InsertPage(size_t index, wxWindow* win, const wxString& text, bool selected, const wxBitmap& bmp) -{ - win->Reparent(this); - int imgId = DoGetBmpIdx(bmp); - if (wxNotebook::InsertPage(index, win, text, selected, imgId)) { - win->Connect(wxEVT_KEY_DOWN, wxKeyEventHandler(Notebook::OnKeyDown), NULL, this); - PushPageHistory(win); - GTKAddCloseButtonAndReorderable(index); - } -} - -void Notebook::SetRightClickMenu(wxMenu* menu) -{ - m_contextMenu = menu; -} - -wxWindow* Notebook::GetCurrentPage() const -{ - size_t selection = GetSelection(); - if (selection != Notebook::npos) { - return GetPage(selection); - } - return NULL; -} - -size_t Notebook::GetPageIndex(wxWindow *page) const -{ - if ( !page ) - return Notebook::npos; - - for (size_t i=0; i< GetPageCount(); i++) { - if (GetPage(i) == page) { - return i; - } - } - return Notebook::npos; -} - -size_t Notebook::GetPageIndex(const wxString& text) const -{ - for (size_t i=0; i< GetPageCount(); i++) { - - if (GetPageText(i) == text) { - return i; - } - } - return Notebook::npos; -} - -bool Notebook::SetPageText(size_t index, const wxString &text) -{ - if (index >= GetPageCount()) - return false; - return wxNotebook::SetPageText(index, text); -} - -bool Notebook::DeleteAllPages(bool notify) -{ - bool res = true; - size_t count = GetPageCount(); - for (size_t i=0; i(m_history.Item(where)); - m_history.Remove(tab); - - //remove all appearances of this page - where = m_history.Index(page); - } -} - -wxWindow* Notebook::GetPreviousSelection() -{ - if (m_history.empty()) { - return NULL; - } - //return the top of the heap - return static_cast( m_history.Item(0)); -} - -void Notebook::OnIternalPageChanged(wxNotebookEvent &e) -{ - if(e.GetEventObject() == this) { - DoPageChangedEvent(e); - - } else { - e.Skip(); - } -} - -void Notebook::OnIternalPageChanging(wxNotebookEvent &e) -{ - if(e.GetEventObject() == this) { - DoPageChangingEvent(e); - } else { - e.Skip(); - } -} - -void Notebook::OnMouseMiddle(wxMouseEvent &e) -{ - long flags(0); - int where = wxNotebook::HitTest( e.GetPosition(), &flags ); - - if (where != wxNOT_FOUND && HasCloseMiddle()) { - - //send event to noitfy that the page is changing - NotebookEvent event(wxEVT_COMMAND_BOOK_PAGE_MIDDLE_CLICKED, GetId()); - event.SetSelection ( where ); - event.SetOldSelection( wxNOT_FOUND ); - event.SetEventObject ( this ); - GetEventHandler()->AddPendingEvent(event); - } -} - -void Notebook::DoPageChangedEvent(wxBookCtrlBaseEvent& e) -{ - if (!m_notify) { - e.Skip(); - return; - } - - //send event to noitfy that the page is changing - NotebookEvent event(wxEVT_COMMAND_BOOK_PAGE_CHANGED, GetId()); - event.SetSelection ( e.GetSelection() ); - event.SetOldSelection( e.GetOldSelection() ); - event.SetEventObject ( this ); - GetEventHandler()->ProcessEvent(event); - PushPageHistory( GetPage(e.GetSelection()) ); - e.Skip(); -} - -void Notebook::DoPageChangingEvent(wxBookCtrlBaseEvent& e) -{ - if (!m_notify) { - e.Skip(); - return; - } - - - //send event to noitfy that the page is changing - NotebookEvent event(wxEVT_COMMAND_BOOK_PAGE_CHANGING, GetId()); - event.SetSelection ( e.GetSelection() ); - event.SetOldSelection( e.GetOldSelection() ); - event.SetEventObject ( this ); - GetEventHandler()->ProcessEvent(event); - - if ( !event.IsAllowed() ) { - e.Veto(); - } - e.Skip(); -} - -void Notebook::GetEditorsInOrder(std::vector &editors) -{ - editors.clear(); - for(size_t i=0; i 1) { - - m_popupWin = new NotebookNavDialog( this ); - m_popupWin->ShowModal(); - - wxWindow *page = m_popupWin->GetSelection(); - m_popupWin->Destroy(); - m_popupWin = NULL; - - SetSelection( GetPageIndex(page), true ); - return true; - } - return false; -} - -void Notebook::OnMenu(wxContextMenuEvent& e) -{ - int where = HitTest( ScreenToClient(::wxGetMousePosition()) ); - if(where != wxNOT_FOUND && m_contextMenu) { - SetSelection(where, false); - // dont notify the user about changes - PopupMenu(m_contextMenu); - } - e.Skip(); -} - -void Notebook::OnMouseLeftDClick(wxMouseEvent& e) -{ - long flags(0); - int where = HitTest( e.GetPosition(), &flags ); - - if (where == wxNOT_FOUND) { - - //send event to noitfy that the page is changing - NotebookEvent event(wxEVT_COMMAND_BOOK_BG_DCLICK, GetId()); - event.SetEventObject ( this ); - GetEventHandler()->AddPendingEvent(event); - } -} - -void Notebook::GTKAddCloseButtonAndReorderable(int idx) -{ - MyNotebookPage *pg = (MyNotebookPage*) wxNotebook::GetNotebookPage(idx); - wxWindow* page = GetPage((size_t)idx); - // Place a close button - if(HasCloseButton()) { - GtkWidget *image; - MyGtkPageInfo *pgInfo = new MyGtkPageInfo; - pgInfo->m_button = gtk_button_new(); - pgInfo->m_box = pg->m_box; - pgInfo->m_book = this; - - image = gtk_image_new_from_stock (GTK_STOCK_CLOSE, GTK_ICON_SIZE_MENU); - gtk_widget_set_size_request(image, 12, 12); - gtk_button_set_image (GTK_BUTTON(pgInfo->m_button), image); - gtk_widget_set_name (pgInfo->m_button, "tab-close-button"); - gtk_button_set_relief(GTK_BUTTON(pgInfo->m_button), GTK_RELIEF_NONE); - gtk_box_pack_end (GTK_BOX(pg->m_box), pgInfo->m_button, FALSE, FALSE, 0); - // wxGTK has already used gtk_box_pack_end for the tab's label, so atm the close button will be on the left - // so re-order it to position 0, which in a GTK_PACK_END box means the far right - gtk_box_reorder_child(GTK_BOX(pg->m_box), pgInfo->m_button, 0); - gtk_box_set_spacing (GTK_BOX(pg->m_box), 5); -#ifdef __WXGTK3__ - g_signal_connect (pgInfo->m_button, "clicked", G_CALLBACK (OnNotebookButtonClicked), pgInfo); -#else - gtk_signal_connect (GTK_OBJECT (pgInfo->m_button), "clicked", GTK_SIGNAL_FUNC (OnNotebookButtonClicked), pgInfo); -#endif - m_gtk_page_info[page] = pgInfo; - GTKShowCloseButton(idx); - } - - // Make this tab re-orderable - gtk_notebook_set_tab_reorderable(GTK_NOTEBOOK(this->m_widget), page->m_widget, true); - g_signal_connect(GTK_NOTEBOOK(this->m_widget), "page-reordered", G_CALLBACK(OnPageReordered), this); -} - -void Notebook::GTKDeletePgInfo(wxWindow* page) -{ - std::map::iterator iter = m_gtk_page_info.find(page); - if(iter != m_gtk_page_info.end()) { - delete iter->second; - m_gtk_page_info.erase(iter); - } -} - -MyGtkPageInfo* Notebook::GTKGetPgInfo(wxWindow* page) -{ - std::map::iterator iter = m_gtk_page_info.find(page); - if(iter == m_gtk_page_info.end()) - return NULL; - return iter->second; -} - -void Notebook::GTKShowCloseButton(int idx) -{ - if ((idx != wxNOT_FOUND) && (idx < (int)GetPageCount())) { - MyGtkPageInfo* pgInfo = GTKGetPgInfo(GetPage(idx)); - if(pgInfo) { - gtk_widget_show(pgInfo->m_button); - gtk_widget_show(pgInfo->m_box); - } - } -} - -void Notebook::GTKHandleButtonCloseClicked(MyGtkPageInfo* pgInfo) -{ - // Notebook button was clicked - int idx = GTKIndexFromPgInfo(pgInfo); - if(idx == wxNOT_FOUND) - return; - - NotebookEvent event(wxEVT_COMMAND_BOOK_PAGE_X_CLICKED, GetId()); - event.SetSelection ( idx ); - event.SetOldSelection( wxNOT_FOUND ); - event.SetEventObject ( this ); - GetEventHandler()->AddPendingEvent(event); -} - -int Notebook::GTKIndexFromPgInfo(MyGtkPageInfo* pgInfo) -{ - for(size_t i=0; iAdd(bmp); - } - return idx; -} - -int Notebook::GetPageindexFromWidget(GtkWidget* gtk_page) -{ - wxCHECK_MSG(gtk_page, wxNOT_FOUND, wxT("Null gtk widget page in notebook")); - - for (size_t n=0; n < GetPageCount(); ++n) { - wxWindow* page = GetPage(n); - wxCHECK_MSG(page, wxNOT_FOUND, wxT("Null page in notebook")); - if (page->m_widget == gtk_page) { - return (int)n; - } - } - - return wxNOT_FOUND; -} - -void Notebook::GTKOnPageReordered(GtkWidget* page, int new_pos) -{ - wxCHECK_RET(page, wxT("Null gtk widget page")); - - // gtk tells us the new position of the tab, but we need to deduce the old one - // As the wxGTK notebook hasn't been re-ordered yet, we can do so by finding the page's GtkWidget - int old_pos = GetPageindexFromWidget(page); - if (((size_t)new_pos) == Notebook::npos || ((size_t)new_pos) == Notebook::npos || new_pos == old_pos) { - return; - } - - // Now update the wxNotebook to match the new reality. First the wxNotebookPage array - wxWindow* win = m_pages[old_pos]; - m_pages.RemoveAt(old_pos); - m_pages.Insert(win, new_pos); - - // Then the 'extra' data list - wxGtkNotebookPage* data = m_pagesData.Item(old_pos)->GetData(); - m_pagesData.DeleteObject(data); - m_pagesData.Insert(new_pos, data); - - // In case the Workspace View 'Tabs' pane is being sorted by editor order, fire an event - // and make it the Aui equivalent, since that's being Connected() to already - wxAuiNotebookEvent event(wxEVT_COMMAND_AUINOTEBOOK_END_DRAG, GetId()); - wxPostEvent(this, event); -} - -wxBitmap Notebook::GetPageBitmap(size_t page) const -{ - if(page >= GetPageCount()) { - return wxNullBitmap; - } - - int imgIdx = wxNotebook::GetPageImage(page); - if (imgIdx == wxNOT_FOUND) { - return wxNullBitmap; - } - - return m_imgList->GetBitmap(imgIdx); -} - -wxArrayString Notebook::GetPagesTextInOrder() const -{ - wxArrayString labels; - for(size_t i=0; i -#include -#include -#include -#include - -enum { - wxVB_LEFT = wxNB_TOP, - wxVB_RIGHT = wxNB_TOP, - wxVB_TOP = wxNB_TOP, - wxVB_BOTTOM = wxNB_TOP, - wxVB_FIXED_WIDTH = wxNB_FIXEDWIDTH, - wxVB_HAS_X = 0x00010000, - wxVB_MOUSE_MIDDLE_CLOSE_TAB = 0x00020000, - wxVB_NODND = 0x00040000, - wxVB_NO_TABS = 0x00100000, - wxVB_CHOICE_CTRL = 0x00200000 -}; - -class NotebookNavDialog; -class wxMenu; -class wxButton; - -class Notebook; -class MyGtkPageInfo -{ -public: - GtkWidget *m_button; - GtkWidget *m_box; - Notebook *m_book; -}; - -class Notebook : public wxNotebook -{ - NotebookNavDialog * m_popupWin; - wxMenu* m_contextMenu; - wxArrayPtrVoid m_history; - long m_style; - size_t m_leftDownTabIdx; - wxButton* m_closeButton; - wxButton* m_menuButton; - bool m_notify; - std::map m_gtk_page_info; - wxImageList* m_imgList; - size_t m_startingTab; - -public: - - static const size_t npos = static_cast(wxNOT_FOUND); - -protected: - void Initialize(); - void PushPageHistory(wxWindow *page); - void PopPageHistory(wxWindow *page); - wxWindow* GetPreviousSelection(); - bool HasCloseButton() { - return m_style & wxVB_HAS_X; - } - bool HasCloseMiddle() { - return m_style & wxVB_MOUSE_MIDDLE_CLOSE_TAB; - } - int DoGetBmpIdx(const wxBitmap& bmp); - int GetPageindexFromWidget(GtkWidget* gtk_page); - -public: - void GTKAddCloseButtonAndReorderable(int idx); - void GTKDeletePgInfo(wxWindow* page); - MyGtkPageInfo* GTKGetPgInfo(wxWindow* page); - void GTKShowCloseButton(int idx); - void GTKHandleButtonCloseClicked(MyGtkPageInfo* pgInfo); - int GTKIndexFromPgInfo(MyGtkPageInfo* pgInfo); - void GTKOnPageReordered(GtkWidget* page, int new_pos); - -public: - Notebook(wxWindow *parent, wxWindowID id, const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize, long style = 0); - virtual ~Notebook(); - - /** - * \brief set page at given index to be the selected page. this function does not trigger an event - * \param page - */ - void SetSelection(size_t page, bool notify = false); - - /** - * \brief add page to the book - * \param win window to add, the window will be reparented to the book - * \param text page's caption - * \param selected set the page as the selected page - */ - void AddPage(wxWindow *win, const wxString &text, bool selected = false, const wxBitmap& bmp = wxNullBitmap); - void InsertPage(size_t index, wxWindow *win, const wxString &text, bool selected = false, const wxBitmap& bmp = wxNullBitmap); - - /** - * \brief return page at give position - * \param page page's index - * \return the page or NULL if index is out of bounds - */ - wxWindow *GetPage(size_t page) const ; - - /** - * \brief return the page caption - * \param page page index - * \return text or wxEmptyString if page index is invalid - */ - wxString GetPageText(size_t page) const; - - /** - * @brief return the page bitmap - */ - wxBitmap GetPageBitmap(size_t page) const; - - /** - * \brief remove page from the book without destroying it - * \param notify set this to true if you wish to receive wxEVT_COMMAND_BOOK_PAGE_CLOSING & wxEVT_COMMAND_BOOK_PAGE_CLOSED - */ - bool RemovePage(size_t page, bool notify = true); - - /** - * \brief delete page from the book and destroy it as well - * \param notify set this to true if you wish to receive wxEVT_COMMAND_BOOK_PAGE_CLOSING & wxEVT_COMMAND_BOOK_PAGE_CLOSED - */ - bool DeletePage(size_t page, bool notify = true); - - /** - * \brief delete all the pages in the notebook - */ - bool DeleteAllPages(bool notify = false); - - /** - * \brief return the tabbing history for this notebook - */ - const wxArrayPtrVoid& GetHistory() const; - - /** - *\param menu - right click menu object - */ - void SetRightClickMenu(wxMenu* menu); - - /** - * \brief return the active page - * \return active page or NULL if there are no pages in the book - */ - wxWindow *GetCurrentPage() const ; - - /** - * \brief return page index by window pointer - * \param page page to search - * \return page index, or Notebook::npos if page does not exist in the notebook - */ - size_t GetPageIndex(wxWindow *page) const; - - /** - * \brief return page index by page text - * \param text text to search for - * \return page index, or Notebook::npos if page does not exist in the notebook - */ - size_t GetPageIndex(const wxString &text) const; - - /** - * \brief set the text for page at a given index - * \param index page's index - * \param text new text - */ - bool SetPageText(size_t index, const wxString &text); - - /** - * @brief Sets the image list for the page control and takes ownership of the list. - */ - void AssignImageList(wxImageList* imageList); - /** - * @brief Sets the image list for the page control. It does not take ownership of the image list, you must delete it yourself. - */ - void SetImageList(wxImageList* imageList); - - void GetEditorsInOrder(std::vector &editors); - - /** - * @brief return an array of pages text in order - */ - wxArrayString GetPagesTextInOrder() const; - -protected: - // Event handlers - void OnNavigationKey (wxNavigationKeyEvent &e); - void OnMouseMiddle (wxMouseEvent &e); - void OnMouseLeftDClick (wxMouseEvent &e); - void OnKeyDown (wxKeyEvent &e); - void OnMenu (wxContextMenuEvent &e); - - // wxNotebook events - void OnIternalPageChanged (wxNotebookEvent &e); - void OnIternalPageChanging(wxNotebookEvent &e); - -protected: - void DoPageChangedEvent (wxBookCtrlBaseEvent &e); - void DoPageChangingEvent (wxBookCtrlBaseEvent &e); - bool DoNavigate(); - -}; - -class NotebookEvent : public wxNotifyEvent -{ - size_t sel, oldsel; - -public: - /** - * \param commandType - event type - * \param winid - window ID - * \param nSel - current selection - * \param nOldSel - old selection - */ - NotebookEvent(wxEventType commandType = wxEVT_NULL, int winid = 0, size_t nSel = (size_t)-1, size_t nOldSel = (size_t)-1) - : wxNotifyEvent(commandType, winid), sel(nSel), oldsel(nOldSel) {} - - /** - * \param s - index of currently selected page - */ - void SetSelection(size_t s) { - sel = s; - } - - /** - * \param s - index of previously selected page - */ - void SetOldSelection(size_t s) { - oldsel = s; - } - - /// Returns the index of currently selected page - size_t GetSelection() { - return sel; - } - - /// Returns the index of previously selected page - size_t GetOldSelection() { - return oldsel; - } - virtual wxEvent *Clone() const { - return new NotebookEvent(*this); - } -}; - -extern const wxEventType wxEVT_COMMAND_BOOK_PAGE_CHANGED; -extern const wxEventType wxEVT_COMMAND_BOOK_PAGE_CHANGING; -extern const wxEventType wxEVT_COMMAND_BOOK_PAGE_CLOSING; -extern const wxEventType wxEVT_COMMAND_BOOK_PAGE_CLOSED; -extern const wxEventType wxEVT_COMMAND_BOOK_PAGE_MIDDLE_CLICKED; -extern const wxEventType wxEVT_COMMAND_BOOK_PAGE_X_CLICKED; -extern const wxEventType wxEVT_COMMAND_BOOK_BG_DCLICK; - -typedef void (wxEvtHandler::*NotebookEventFunction)(NotebookEvent&); - -#define NotebookEventHandler(func) \ - (wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(NotebookEventFunction, &func) - -#define EVT_BOOK_PAGE_CHANGED(winid, fn) \ - wx__DECLARE_EVT1(wxEVT_COMMAND_BOOK_PAGE_CHANGED, winid, NotebookEventHandler(fn)) - -#define EVT_BOOK_PAGE_CHANGING(winid, fn) \ - wx__DECLARE_EVT1(wxEVT_COMMAND_BOOK_PAGE_CHANGING, winid, NotebookEventHandler(fn)) - -#define EVT_BOOK_PAGE_CLOSING(winid, fn) \ - wx__DECLARE_EVT1(wxEVT_COMMAND_BOOK_PAGE_CLOSING, winid, NotebookEventHandler(fn)) - -#define EVT_BOOK_PAGE_CLOSED(winid, fn) \ - wx__DECLARE_EVT1(wxEVT_COMMAND_BOOK_PAGE_CLOSED, winid, NotebookEventHandler(fn)) - -#define EVT_BOOK_PAGE_MIDDLE_CLICKED(winid, fn) \ - wx__DECLARE_EVT1(wxEVT_COMMAND_BOOK_PAGE_MIDDLE_CLICKED, winid, NotebookEventHandler(fn)) - -#define EVT_BOOK_PAGE_X_CLICKED(winid, fn) \ - wx__DECLARE_EVT1(wxEVT_COMMAND_BOOK_PAGE_X_CLICKED, winid, NotebookEventHandler(fn)) - -#define EVT_BOOK_BG_DCLICK(winid, fn) \ - wx__DECLARE_EVT1(wxEVT_COMMAND_BOOK_BG_DCLICK, winid, NotebookEventHandler(fn)) - -#endif // __GTK_Notebook__ -#endif /// __WXGTK__ diff -Nru codelite-8.0.1+dfsg2/Plugin/lexer_configuration.cpp codelite-9.0+dfsg/Plugin/lexer_configuration.cpp --- codelite-8.0.1+dfsg2/Plugin/lexer_configuration.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/lexer_configuration.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -290,8 +290,6 @@ ctrl->SetStyleBits(ctrl->GetStyleBitsNeeded()); OptionsConfigPtr options = EditorConfigST::Get()->GetOptions(); - ctrl->SetUseTabs(options->GetIndentUsesTabs()); - ctrl->SetIndent(options->GetIndentWidth()); bool tooltip(false); const StyleProperty::Map_t& styles = GetLexerProperties(); @@ -301,13 +299,15 @@ ctrl->SetProperty(wxT("lexer.cpp.track.preprocessor"), wxT("0")); ctrl->SetProperty(wxT("lexer.cpp.update.preprocessor"), wxT("0")); -#ifdef __WXOSX__ +//#ifdef __WXOSX__ ctrl->SetUseAntiAliasing(true); -#endif +//#endif // Find the default style wxFont defaultFont; bool foundDefaultStyle = false; + int nDefaultFontSize = DEFAULT_FONT_SIZE; + StyleProperty defaultStyle; StyleProperty::Map_t::const_iterator iter = styles.begin(); for(; iter != styles.end(); ++iter) { @@ -315,7 +315,10 @@ if(prop.GetId() == 0) { defaultStyle = prop; wxString fontFace = prop.GetFaceName().IsEmpty() ? DEFAULT_FACE_NAME : prop.GetFaceName(); - defaultFont = wxFont(prop.GetFontSize(), + if(!prop.GetFaceName().IsEmpty()) { + nDefaultFontSize = prop.GetFontSize(); + } + defaultFont = wxFont(nDefaultFontSize, wxFONTFAMILY_TELETYPE, prop.GetItalic() ? wxFONTSTYLE_ITALIC : wxFONTSTYLE_NORMAL, prop.IsBold() ? wxFONTWEIGHT_BOLD : wxFONTWEIGHT_NORMAL, @@ -344,7 +347,7 @@ for(; iter != styles.end(); ++iter) { StyleProperty sp = iter->second; - int size = sp.GetFontSize(); + int size = nDefaultFontSize; wxString face = sp.GetFaceName(); bool bold = sp.IsBold(); bool italic = sp.GetItalic(); @@ -394,7 +397,7 @@ int fontSize(size); if(face.IsEmpty()) { // defaults - fontSize = DEFAULT_FONT_SIZE; + fontSize = nDefaultFontSize; faceName = DEFAULT_FACE_NAME; } @@ -508,6 +511,11 @@ // Define the styles for the editing margin ctrl->StyleSetBackground(CL_LINE_SAVED_STYLE, wxColour(wxT("FOREST GREEN"))); ctrl->StyleSetBackground(CL_LINE_MODIFIED_STYLE, wxColour(wxT("ORANGE"))); + + // Indentation + ctrl->SetUseTabs(options->GetIndentUsesTabs()); + ctrl->SetTabWidth(options->GetIndentWidth()); + ctrl->SetIndent(options->GetIndentWidth()); } const StyleProperty& LexerConf::GetProperty(int propertyId) const diff -Nru codelite-8.0.1+dfsg2/Plugin/localworkspace.cpp codelite-9.0+dfsg/Plugin/localworkspace.cpp --- codelite-8.0.1+dfsg2/Plugin/localworkspace.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/localworkspace.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -306,24 +306,31 @@ return SaveXmlFile(); } -bool LocalWorkspace::SaveXmlFile() +bool LocalWorkspace::SaveXmlFile() { wxCommandEvent evt(wxEVT_EDITOR_CONFIG_CHANGED); EventNotifier::Get()->AddPendingEvent(evt); - return ::SaveXmlToFile(&m_doc, m_fileName.GetFullPath()); + return ::SaveXmlToFile(&m_doc, m_fileName.GetFullPath()); } bool LocalWorkspace::SanityCheck() { wxLogNull noLog; - wxString WorkspaceFullPath = WorkspaceST::Get()->GetWorkspaceFileName().GetFullPath(); - if(WorkspaceFullPath.IsEmpty()) { - return false; - } + if(!clCxxWorkspaceST::Get()->IsOpen()) return false; + + wxFileName workspaceFile(clCxxWorkspaceST::Get()->GetWorkspaceFileName().GetFullPath()); + + workspaceFile.AppendDir(".codelite"); + wxFileName localWspFile(m_fileName); + localWspFile.SetExt(""); // Check that the current workspace is the same as any previous Create() // If so, and assuming m_doc is valid, there's nothing more to do - if((WorkspaceFullPath == m_fileName.GetFullPath().BeforeLast(wxT('.'))) && m_doc.IsOk()) { + wxString localFile, globalFile; + localFile = localWspFile.GetFullPath(); + globalFile = workspaceFile.GetFullPath(); + + if((localFile == globalFile) && m_doc.IsOk()) { return true; } @@ -535,8 +542,9 @@ wxFileName LocalWorkspace::DoGetFilePath() const { - wxFileName localWorkspaceFile(WorkspaceST::Get()->GetPrivateFolder(), - WorkspaceST::Get()->GetWorkspaceFileName().GetFullName() + "." + ::clGetUserName()); + wxFileName localWorkspaceFile(clCxxWorkspaceST::Get()->GetPrivateFolder(), + clCxxWorkspaceST::Get()->GetWorkspaceFileName().GetFullName() + "." + + ::clGetUserName()); return localWorkspaceFile; } diff -Nru codelite-8.0.1+dfsg2/Plugin/localworkspace.h codelite-9.0+dfsg/Plugin/localworkspace.h --- codelite-8.0.1+dfsg2/Plugin/localworkspace.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/localworkspace.h 2015-10-11 13:56:07.000000000 +0000 @@ -270,8 +270,9 @@ { public: enum CC_FLAGS { - EnableCpp11 = 0x00000001, - EnableCpp14 = 0x00000002, + EnableCpp11 = 0x00000001, + EnableCpp14 = 0x00000002, + EnableSWTLW = 0x00000004 // Save Parse folders to Workspace file. }; private: diff -Nru codelite-8.0.1+dfsg2/Plugin/macromanager.cpp codelite-9.0+dfsg/Plugin/macromanager.cpp --- codelite-8.0.1+dfsg2/Plugin/macromanager.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/macromanager.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -47,7 +47,7 @@ const wxString& confToBuild) { wxString expandedString(expression); - Workspace* workspace = WorkspaceST::Get(); + clCxxWorkspace* workspace = clCxxWorkspaceST::Get(); DollarEscaper de(expandedString); @@ -107,6 +107,7 @@ fpath.Replace(wxT("\\"), wxT("/")); expandedString.Replace(wxT("$(CurrentFilePath)"), fpath); expandedString.Replace(wxT("$(CurrentFileExt)"), fn.GetExt()); + expandedString.Replace(wxT("$(CurrentFileFullName)"), fn.GetFullName()); wxString ffullpath(fn.GetFullPath()); ffullpath.Replace(wxT("\\"), wxT("/")); diff -Nru codelite-8.0.1+dfsg2/Plugin/macrosdlg.cpp codelite-9.0+dfsg/Plugin/macrosdlg.cpp --- codelite-8.0.1+dfsg2/Plugin/macrosdlg.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/macrosdlg.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -34,11 +34,11 @@ #include "ieditor.h" BEGIN_EVENT_TABLE(MacrosDlg, MacrosBaseDlg) - EVT_MENU(XRCID("copy_macro"), MacrosDlg::OnCopy) +EVT_MENU(XRCID("copy_macro"), MacrosDlg::OnCopy) END_EVENT_TABLE() -MacrosDlg::MacrosDlg( wxWindow* parent, int content, ProjectPtr project, IEditor *editor ) - : MacrosBaseDlg( parent ) +MacrosDlg::MacrosDlg(wxWindow* parent, int content, ProjectPtr project, IEditor* editor) + : MacrosBaseDlg(parent) , m_item(wxNOT_FOUND) , m_content(content) , m_project(project) @@ -50,7 +50,7 @@ GetSizer()->Fit(this); } -void MacrosDlg::OnItemRightClick( wxListEvent& event ) +void MacrosDlg::OnItemRightClick(wxListEvent& event) { m_item = event.m_itemIndex; wxMenu menu; @@ -64,69 +64,80 @@ m_listCtrlMacros->InsertColumn(1, _("Description")); // Only show third column if we can expand the macros - if (m_project && m_editor) { + if(m_project && m_editor) { m_listCtrlMacros->InsertColumn(2, wxT("Value")); } - switch ( m_content ) { + switch(m_content) { case MacrosExternalTools: - AddMacro(wxT("$(CurrentSelection)"), _("Expands to the selected text in the active editor")); - AddMacro(wxT("$(CurrentSelectionRange)"), _("Expands to the selected text range in bytes from beginning of file, eg. 150:200")); - AddMacro(wxT("$(ProjectOutputFile)"), _("Expands to the project binary output file")); - AddMacro(wxT("$(ProjectWorkingDirectory)"), _("Expands to the project's build working directory")); - AddMacro(wxT("$(ProjectRunWorkingDirectory)"), _("Expands to the project's run working directory")); - // fall ... + AddMacro(wxT("$(CurrentSelection)"), _("Expands to the selected text in the active editor")); + AddMacro(wxT("$(CurrentSelectionRange)"), + _("Expands to the selected text range in bytes from beginning of file, eg. 150:200")); + AddMacro(wxT("$(ProjectOutputFile)"), _("Expands to the project binary output file")); + AddMacro(wxT("$(ProjectWorkingDirectory)"), _("Expands to the project's build working directory")); + AddMacro(wxT("$(ProjectRunWorkingDirectory)"), _("Expands to the project's run working directory")); + // fall ... case MacrosProject: - AddMacro(wxT("$(ProjectPath)"), _("Expands to project's path")); - AddMacro(wxT("$(WorkspacePath)"), _("Expands to workspace's path")); - AddMacro(wxT("$(ProjectName)"), _("Expands to the current project name as appears in the 'File View'")); - AddMacro(wxT("$(IntermediateDirectory)"), _("Expands to the current project intermediate directory path, as set in the project settings")); - AddMacro(wxT("$(ConfigurationName)"), _("Expands to the current project selected configuration")); - AddMacro(wxT("$(OutDir)"), _("An alias to $(IntermediateDirectory)")); - AddMacro(wxT("$(CurrentFileName)"), _("Expands to current file name (without extension and path)")); - AddMacro(wxT("$(CurrentFilePath)"), _("Expands to current file path")); - AddMacro(wxT("$(CurrentFileFullPath)"), _("Expands to current file full path (path and full name)")); - AddMacro(wxT("$(User)"), _("Expands to logged-in user as defined by the OS")); - AddMacro(wxT("$(Date)"), _("Expands to current date")); - AddMacro(wxT("$(CodeLitePath)"), _("Expands to CodeLite's startup directory on (e.g. on Unix it expands to ~/.codelite/")); - AddMacro(wxT("$(ProjectFiles)"), _("A space delimited string containing all of the project files in a relative path to the project file")); - AddMacro(wxT("$(ProjectFilesAbs)"), _("A space delimited string containing all of the project files in an absolute path")); - AddMacro(wxT("`expression`"), _("backticks: evaluates the expression inside the backticks into a string")); + AddMacro(wxT("$(ProjectPath)"), _("Expands to project's path")); + AddMacro(wxT("$(WorkspacePath)"), _("Expands to workspace's path")); + AddMacro(wxT("$(ProjectName)"), _("Expands to the current project name as appears in the 'File View'")); + AddMacro(wxT("$(IntermediateDirectory)"), + _("Expands to the current project intermediate directory path, as set in the project settings")); + AddMacro(wxT("$(ConfigurationName)"), _("Expands to the current project selected configuration")); + AddMacro(wxT("$(OutDir)"), _("An alias to $(IntermediateDirectory)")); + AddMacro(wxT("$(CurrentFileName)"), _("Expands to current file name (without extension and path)")); + AddMacro(wxT("$(CurrentFilePath)"), _("Expands to current file path")); + AddMacro(wxT("$(CurrentFileFullPath)"), _("Expands to current file full path (path and full name)")); + AddMacro(wxT("$(CurrentFileFullName)"), _("Expands to current file full name (name and extension)")); + AddMacro(wxT("$(User)"), _("Expands to logged-in user as defined by the OS")); + AddMacro(wxT("$(Date)"), _("Expands to current date")); + AddMacro(wxT("$(CodeLitePath)"), + _("Expands to CodeLite's startup directory on (e.g. on Unix it expands to ~/.codelite/")); + AddMacro( + wxT("$(ProjectFiles)"), + _("A space delimited string containing all of the project files in a relative path to the project file")); + AddMacro(wxT("$(ProjectFilesAbs)"), + _("A space delimited string containing all of the project files in an absolute path")); + AddMacro(wxT("`expression`"), _("backticks: evaluates the expression inside the backticks into a string")); break; case MacrosCompiler: - AddMacro(wxT("$(CXX)"), _("Expands to the compiler name as set in the Tools tab")); - AddMacro(wxT("$(SourceSwitch)"), _("Expands to the source switch (usually, -c)")); - AddMacro(wxT("$(FileFullPath)"), _("The file full path (includes path+name+extension)")); - AddMacro(wxT("$(FileFullName)"), _("The file full name (includes name+extension)")); - AddMacro(wxT("$(FileName)"), _("The file name (name only)")); - AddMacro(wxT("$(FilePath)"), _("The file's path with UNIX slashes, including terminating separator")); - AddMacro(wxT("$(CXXFLAGS)"), _("Expands to the compiler options as set in the project settings")); - AddMacro(wxT("$(RcCompilerName)"), _("Expands to the resource compiler name")); - AddMacro(wxT("$(IntermediateDirectory)"), _("Expands to the current project intermediate directory path, as set in the project settings")); - AddMacro(wxT("$(ConfigurationName)"), _("Expands to the current project selected configuration")); - AddMacro(wxT("$(OutDir)"), _("An alias to $(IntermediateDirectory)")); - AddMacro(wxT("$(LinkerName)"), _("Expands to the linker name as set in the Tools tab")); - AddMacro(wxT("$(AR)"), _("Expands to the archive tool (e.g. ar) name as set in the Tools tab")); - AddMacro(wxT("$(SharedObjectLinkerName)"), _("Expands to the shared object linker name as set in the Tools tab")); - AddMacro(wxT("$(ObjectSuffix)"), _("Objects suffix (usually set to .o)")); - AddMacro(wxT("$(ObjectName)"), _("The object name (without the suffix)")); - AddMacro(wxT("$(DependSuffix)"), _("Objects suffix (usually set to .o.d)")); - AddMacro(wxT("$(PreprocessSuffix)"), _("Objects suffix (usually set to .o.i)")); - AddMacro(wxT("$(IncludeSwitch)"), _("The compiler include switch")); - AddMacro(wxT("$(LibrarySwitch)"), _("The library switch (e.g. -l)")); - AddMacro(wxT("$(OutputSwitch)"), _("The output switch (e.g. -o)")); - AddMacro(wxT("$(LibraryPathSwitch)"), _("Library switch (e.g. -L)")); - AddMacro(wxT("$(PreprocessorSwitch)"), _("Preprocessor switch (e.g. -D)")); - AddMacro(wxT("$(Preprocessors)"), _("Expands to all preprocessors set in the project setting where each entry is prefixed with $(PreprocessorSwitch)")); - AddMacro(wxT("$(ArchiveOutputSwitch)"), _("Archive switch, usually not needed (VC compiler sets it to /OUT:")); - AddMacro(wxT("$(PreprocessOnlySwitch)"), _("The compiler preprocess-only switch (e.g. -E)")); - AddMacro(wxT("$(LinkOptions)"), _("The linker options as set in the project settings")); - AddMacro(wxT("$(IncludePath)"), _("All include paths prefixed with $(IncludeSwitch)")); - AddMacro(wxT("$(RcIncludePath)"), _("Resource compiler include path as set in the project settings")); - AddMacro(wxT("$(Libs)"), _("List of libraries to link with. Each library is prefixed with $(LibrarySwitch)")); - AddMacro(wxT("$(LibPath)"), _("List of library paths to link with. Each library is prefixed with $(LibraryPathSwitch)")); - AddMacro(wxT("$(OutputFile)"), _("The output file")); + AddMacro(wxT("$(CXX)"), _("Expands to the compiler name as set in the Tools tab")); + AddMacro(wxT("$(SourceSwitch)"), _("Expands to the source switch (usually, -c)")); + AddMacro(wxT("$(FileFullPath)"), _("The file full path (includes path+name+extension)")); + AddMacro(wxT("$(FileFullName)"), _("The file full name (includes name+extension)")); + AddMacro(wxT("$(FileName)"), _("The file name (name only)")); + AddMacro(wxT("$(FilePath)"), _("The file's path with UNIX slashes, including terminating separator")); + AddMacro(wxT("$(CXXFLAGS)"), _("Expands to the compiler options as set in the project settings")); + AddMacro(wxT("$(RcCompilerName)"), _("Expands to the resource compiler name")); + AddMacro(wxT("$(IntermediateDirectory)"), + _("Expands to the current project intermediate directory path, as set in the project settings")); + AddMacro(wxT("$(ConfigurationName)"), _("Expands to the current project selected configuration")); + AddMacro(wxT("$(OutDir)"), _("An alias to $(IntermediateDirectory)")); + AddMacro(wxT("$(LinkerName)"), _("Expands to the linker name as set in the Tools tab")); + AddMacro(wxT("$(AR)"), _("Expands to the archive tool (e.g. ar) name as set in the Tools tab")); + AddMacro(wxT("$(SharedObjectLinkerName)"), + _("Expands to the shared object linker name as set in the Tools tab")); + AddMacro(wxT("$(ObjectSuffix)"), _("Objects suffix (usually set to .o)")); + AddMacro(wxT("$(ObjectName)"), _("The object name (without the suffix)")); + AddMacro(wxT("$(DependSuffix)"), _("Objects suffix (usually set to .o.d)")); + AddMacro(wxT("$(PreprocessSuffix)"), _("Objects suffix (usually set to .o.i)")); + AddMacro(wxT("$(IncludeSwitch)"), _("The compiler include switch")); + AddMacro(wxT("$(LibrarySwitch)"), _("The library switch (e.g. -l)")); + AddMacro(wxT("$(OutputSwitch)"), _("The output switch (e.g. -o)")); + AddMacro(wxT("$(LibraryPathSwitch)"), _("Library switch (e.g. -L)")); + AddMacro(wxT("$(PreprocessorSwitch)"), _("Preprocessor switch (e.g. -D)")); + AddMacro(wxT("$(Preprocessors)"), _("Expands to all preprocessors set in the project setting where each entry " + "is prefixed with $(PreprocessorSwitch)")); + AddMacro(wxT("$(ArchiveOutputSwitch)"), _("Archive switch, usually not needed (VC compiler sets it to /OUT:")); + AddMacro(wxT("$(PreprocessOnlySwitch)"), _("The compiler preprocess-only switch (e.g. -E)")); + AddMacro(wxT("$(LinkOptions)"), _("The linker options as set in the project settings")); + AddMacro(wxT("$(IncludePath)"), _("All include paths prefixed with $(IncludeSwitch)")); + AddMacro(wxT("$(RcIncludePath)"), _("Resource compiler include path as set in the project settings")); + AddMacro(wxT("$(Libs)"), _("List of libraries to link with. Each library is prefixed with $(LibrarySwitch)")); + AddMacro(wxT("$(LibPath)"), + _("List of library paths to link with. Each library is prefixed with $(LibraryPathSwitch)")); + AddMacro(wxT("$(OutputFile)"), _("The output file")); break; } @@ -135,7 +146,7 @@ m_listCtrlMacros->SetColumnWidth(1, wxLIST_AUTOSIZE); // Only resize third column if we can and may expand the macros - if (m_project && m_editor) { + if(m_project && m_editor) { // Do not autosize this column as it may grow very, very wide m_listCtrlMacros->SetColumnWidth(2, 220); } @@ -148,7 +159,7 @@ SetColumnText(m_listCtrlMacros, row, 1, desc); // Only fill third column if we can and may expand the macros - if (m_project && m_editor && name != "$(ProjectFiles)" && name != "$(ProjectFilesAbs)") { + if(m_project && m_editor && name != "$(ProjectFiles)" && name != "$(ProjectFilesAbs)") { wxString value = ExpandVariables(name, m_project, m_editor); SetColumnText(m_listCtrlMacros, row, 2, value); @@ -157,19 +168,17 @@ } } -MacrosDlg::~MacrosDlg() -{ -} +MacrosDlg::~MacrosDlg() {} void MacrosDlg::OnCopy(wxCommandEvent& e) { - if (m_item != wxNOT_FOUND) { - wxString value = GetColumnText(m_listCtrlMacros, m_item, 0); + if(m_item != wxNOT_FOUND) { + wxString value = GetColumnText(m_listCtrlMacros, m_item, 0); #if wxUSE_CLIPBOARD - if (wxTheClipboard->Open()) { + if(wxTheClipboard->Open()) { wxTheClipboard->UsePrimarySelection(false); - if (!wxTheClipboard->SetData(new wxTextDataObject(value))) { - //wxPrintf(wxT("Failed to insert data %s to clipboard"), textToCopy.GetData()); + if(!wxTheClipboard->SetData(new wxTextDataObject(value))) { + // wxPrintf(wxT("Failed to insert data %s to clipboard"), textToCopy.GetData()); } wxTheClipboard->Close(); } else { diff -Nru codelite-8.0.1+dfsg2/Plugin/macros.h codelite-9.0+dfsg/Plugin/macros.h --- codelite-8.0.1+dfsg2/Plugin/macros.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/macros.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,159 +0,0 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2008 by Eran Ifrah -// file name : macros.h -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -#ifndef MACROS_H -#define MACROS_H - -#include -#include -#include -#include - -//------------------------------------------------------- -// wxWidgets Connect macros -//------------------------------------------------------- - -#define ConnectChoice(ctrl, fn)\ - ctrl->Connect(ctrl->GetId(), wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler(fn), NULL, this); - -#define ConnectButton(ctrl, fn)\ - ctrl->Connect(ctrl->GetId(), wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(fn), NULL, this); - -#define ConnectListBoxDClick(ctrl, fn)\ - ctrl->Connect(ctrl->GetId(), wxEVT_COMMAND_LISTBOX_DOUBLECLICKED, wxCommandEventHandler(fn), NULL, this); - -#define ConnectCheckBox(ctrl, fn)\ - ctrl->Connect(ctrl->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(fn), NULL, this); - -#define ConnectListCtrlItemSelected(ctrl, fn)\ - ctrl->Connect(ctrl->GetId(), wxEVT_COMMAND_LIST_ITEM_SELECTED, wxListEventHandler(fn), NULL, this); - -#define ConnectListCtrlItemActivated(ctrl, fn)\ - ctrl->Connect(ctrl->GetId(), wxEVT_COMMAND_LIST_ITEM_ACTIVATED, wxListEventHandler(fn), NULL, this); - -#define ConnectKeyDown(ctrl, fn)\ - ctrl->Connect(ctrl->GetId(), wxEVT_KEY_DOWN, wxKeyEventHandler(fn), NULL, this); - -#define ConnectCharEvent(ctrl, fn)\ - ctrl->Connect(ctrl->GetId(), wxEVT_CHAR, wxKeyEventHandler(fn), NULL, this); - -#define ConnectCmdTextEntered(ctrl, fn)\ - ctrl->Connect(ctrl->GetId(), wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler(fn), NULL, this); - -#define ConnectCmdTextUpdated(ctrl, fn)\ - ctrl->Connect(ctrl->GetId(), wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler(fn), NULL, this); - -#define ConnectCombo(ctrl, fn)\ - ctrl->Connect(ctrl->GetId(), wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler(fn), NULL, this); - -#define ConnectCheckList(ctrl, fn)\ - ctrl->Connect(ctrl->GetId(), wxEVT_COMMAND_CHECKLISTBOX_TOGGLED, wxCommandEventHandler(fn), NULL, this); - -#define TrimString(str){\ - str = str.Trim();\ - str = str.Trim(false);\ - } - -#define IsSourceFile(ext)\ - (ext == wxT("cpp") || ext == wxT("cxx") || ext == wxT("c") || ext == wxT("c++") || ext == wxT("cc")) - -#define BoolToString(b) b ? wxT("yes") : wxT("no") - -//----------------------------------------------------- -// Constants -//----------------------------------------------------- - -const wxString clCMD_NEW = _(""); -const wxString clCMD_EDIT = _(""); -//const wxString clCMD_DELETE = _(""); Unused - -// constant message -const wxString BUILD_START_MSG = _("----------Build Started--------\n"); -const wxString BUILD_END_MSG = _("----------Build Ended----------\n"); -const wxString BUILD_PROJECT_PREFIX = _("----------Building project:[ "); -const wxString CLEAN_PROJECT_PREFIX = _("----------Cleaning project:[ "); -const wxString SEARCH_IN_WORKSPACE = _("Entire Workspace"); -const wxString SEARCH_IN_PROJECT = _("Active Project"); -const wxString SEARCH_IN_CURR_FILE_PROJECT = _("Current File's Project"); -const wxString SEARCH_IN_CURRENT_FILE = _("Current File"); -const wxString SEARCH_IN_OPEN_FILES = _("Open Files"); - -const wxString USE_WORKSPACE_ENV_VAR_SET = _(""); -const wxString USE_GLOBAL_SETTINGS = _(""); - -// terminal macro -#ifdef __WXGTK__ -#define TERMINAL_CMD wxString::Format(wxT("%s/codelite_xterm '$(TITLE)' '$(CMD)'"), wxFileName(wxStandardPaths::Get().GetExecutablePath()).GetPath().c_str()) -#elif defined(__WXMAC__) -#define TERMINAL_CMD wxString::Format(wxT("%s/OpenTerm '$(CMD)'"), wxStandardPaths::Get().GetDataDir().c_str()) -#else -const wxString TERMINAL_CMD = wxT(""); -#endif - -#if defined(__WXMSW__) && !defined(USE_POSIX_LAYOUT) -#define PATH_SEP wxT("\\") -#else -#define PATH_SEP wxT("/") -#endif - -#define ID_MENU_CUSTOM_TARGET_FIRST 15000 -#define ID_MENU_CUSTOM_TARGET_MAX 15100 - -#define viewAsMenuItemID 23500 -#define viewAsMenuItemMaxID 23500+100 - -#define viewAsSubMenuID 23499 -#define RecentFilesSubMenuID 23600 -#define RecentWorkspaceSubMenuID 23650 - - -// ----------------------------- usefule typedefs ------------------------------- -typedef std::map wxStringBoolMap_t; -typedef std::set wxStringSet_t; -typedef std::map wxStringMap_t; - -// Useful macros -#define CHECK_PTR_RET(p) if ( !p ) return -#define CHECK_PTR_RET_FALSE(p) if ( !p ) return false -#define CHECK_PTR_RET_NULL(p) if ( !p ) return NULL -#define CHECK_PTR_RET_EMPTY_STRING(p) if ( !p ) return wxEmptyString - -#define CHECK_COND_RET(p) if ( !(p) ) return -#define CHECK_COND_RET_FALSE(p) if ( !(p) ) return false -#define CHECK_COND_RET_NULL(p) if ( !(p) ) return NULL -#define CHECK_COND_RET_EMPTY_STRING(p) if ( !(p) ) return wxEmptyString - -#define CHECK_ITEM_RET(item) if ( !item.IsOk() ) return -#define CHECK_ITEM_RET_FALSE(item) if ( !item.IsOk() ) return false -#define CHECK_ITEM_RET_NULL(item) if ( !item.IsOk() ) return NULL -#define CHECK_ITEM_RET_EMPTY_STRING(item) if ( !item.IsOk() ) return wxEmptyString - -// PATH environment variable separator -#ifdef __WXMSW__ -#define clPATH_SEPARATOR ";" -#else -#define clPATH_SEPARATOR ":" -#endif - -#endif // MACROS_H diff -Nru codelite-8.0.1+dfsg2/Plugin/nameanddescbasedlg.cpp codelite-9.0+dfsg/Plugin/nameanddescbasedlg.cpp --- codelite-8.0.1+dfsg2/Plugin/nameanddescbasedlg.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/nameanddescbasedlg.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,109 +1,105 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2014 The CodeLite Team -// file name : nameanddescbasedlg.cpp -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - -/////////////////////////////////////////////////////////////////////////// -// C++ code generated with wxFormBuilder (version Nov 18 2010) -// http://www.wxformbuilder.org/ -// -// PLEASE DO "NOT" EDIT THIS FILE! -/////////////////////////////////////////////////////////////////////////// - -#include "nameanddescbasedlg.h" - -/////////////////////////////////////////////////////////////////////////// - -NameAndDescBaseDlg::NameAndDescBaseDlg( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style ) -{ - this->SetSizeHints( wxDefaultSize, wxDefaultSize ); - - wxBoxSizer* bSizer1; - bSizer1 = new wxBoxSizer( wxVERTICAL ); - - wxFlexGridSizer* fgSizer1; - fgSizer1 = new wxFlexGridSizer( 2, 2, 0, 0 ); - fgSizer1->AddGrowableCol( 1 ); - fgSizer1->SetFlexibleDirection( wxBOTH ); - fgSizer1->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); - - m_staticText3 = new wxStaticText( this, wxID_ANY, _("Project name:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText3->Wrap( -1 ); - fgSizer1->Add( m_staticText3, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); - - m_textCtrlName = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - fgSizer1->Add( m_textCtrlName, 0, wxALL|wxEXPAND, 5 ); - - m_staticText4 = new wxStaticText( this, wxID_ANY, _("Project category:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText4->Wrap( -1 ); - fgSizer1->Add( m_staticText4, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); - - m_choiceType = new wxComboBox( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 ); - fgSizer1->Add( m_choiceType, 0, wxALL|wxEXPAND, 5 ); - - bSizer1->Add( fgSizer1, 0, wxEXPAND, 5 ); - - wxBoxSizer* bSizer3; - bSizer3 = new wxBoxSizer( wxVERTICAL ); - - m_staticText2 = new wxStaticText( this, wxID_ANY, _("Description:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText2->Wrap( -1 ); - bSizer3->Add( m_staticText2, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); - - m_textCtrlDescription = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE ); - bSizer3->Add( m_textCtrlDescription, 1, wxALL|wxEXPAND, 5 ); - - bSizer1->Add( bSizer3, 1, wxEXPAND, 5 ); - - m_staticline1 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL ); - bSizer1->Add( m_staticline1, 0, wxEXPAND | wxALL, 5 ); - - wxBoxSizer* bSizer2; - bSizer2 = new wxBoxSizer( wxHORIZONTAL ); - - m_buttonOk = new wxButton( this, wxID_OK, _("&OK"), wxDefaultPosition, wxDefaultSize, 0 ); - m_buttonOk->SetDefault(); - bSizer2->Add( m_buttonOk, 0, wxALL, 5 ); - - m_buttonCancel = new wxButton( this, wxID_CANCEL, _("&Cancel"), wxDefaultPosition, wxDefaultSize, 0 ); - bSizer2->Add( m_buttonCancel, 0, wxALL, 5 ); - - bSizer1->Add( bSizer2, 0, wxALIGN_CENTER_HORIZONTAL, 5 ); - - this->SetSizer( bSizer1 ); - this->Layout(); - - this->Centre( wxBOTH ); - - // Connect Events - m_buttonOk->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( NameAndDescBaseDlg::OnButtonOK ), NULL, this ); - m_buttonCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( NameAndDescBaseDlg::OnButtonCancel ), NULL, this ); -} - -NameAndDescBaseDlg::~NameAndDescBaseDlg() -{ - // Disconnect Events - m_buttonOk->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( NameAndDescBaseDlg::OnButtonOK ), NULL, this ); - m_buttonCancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( NameAndDescBaseDlg::OnButtonCancel ), NULL, this ); - -} +////////////////////////////////////////////////////////////////////// +// This file was auto-generated by codelite's wxCrafter Plugin +// wxCrafter project file: nameanddescdlg.wxcp +// Do not modify this file by hand! +////////////////////////////////////////////////////////////////////// + +#include "nameanddescbasedlg.h" +#include "codelite_exports.h" + + +// Declare the bitmap loading function +extern void wxC934BInitBitmapResources(); + +static bool bBitmapLoaded = false; + + +NameAndDescBaseDlg::NameAndDescBaseDlg(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style) + : wxDialog(parent, id, title, pos, size, style) +{ + if ( !bBitmapLoaded ) { + // We need to initialise the default bitmap handler + wxXmlResource::Get()->AddHandler(new wxBitmapXmlHandler); + wxC934BInitBitmapResources(); + bBitmapLoaded = true; + } + + bSizer1 = new wxBoxSizer(wxVERTICAL); + this->SetSizer(bSizer1); + + fgSizer1 = new wxFlexGridSizer(2, 2, 0, 0); + fgSizer1->SetFlexibleDirection( wxBOTH ); + fgSizer1->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); + fgSizer1->AddGrowableCol(1); + + bSizer1->Add(fgSizer1, 0, wxALL|wxEXPAND, 5); + + m_staticText3 = new wxStaticText(this, wxID_ANY, _("Project name:"), wxDefaultPosition, wxSize(-1, -1), 0); + + fgSizer1->Add(m_staticText3, 0, wxALL|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5); + + m_textCtrlName = new wxTextCtrl(this, wxID_ANY, wxT(""), wxDefaultPosition, wxSize(-1, -1), 0); + m_textCtrlName->SetToolTip(_("Give a name to the template")); + m_textCtrlName->SetFocus(); + #if wxVERSION_NUMBER >= 3000 + m_textCtrlName->SetHint(wxT("")); + #endif + + fgSizer1->Add(m_textCtrlName, 0, wxALL|wxEXPAND, 5); + + m_staticText4 = new wxStaticText(this, wxID_ANY, _("Project category:"), wxDefaultPosition, wxSize(-1, -1), 0); + + fgSizer1->Add(m_staticText4, 0, wxALL|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5); + + wxArrayString m_choiceTypeArr; + m_choiceType = new wxComboBox(this, wxID_ANY, wxT(""), wxDefaultPosition, wxSize(-1, -1), m_choiceTypeArr, 0); + m_choiceType->SetToolTip(_("Choose a category for this template")); + #if wxVERSION_NUMBER >= 3000 + m_choiceType->SetHint(wxT("")); + #endif + + fgSizer1->Add(m_choiceType, 0, wxALL|wxEXPAND, 5); + + bSizer3 = new wxBoxSizer(wxVERTICAL); + + bSizer1->Add(bSizer3, 1, wxALL|wxEXPAND, 5); + + m_staticText2 = new wxStaticText(this, wxID_ANY, _("Description:"), wxDefaultPosition, wxSize(-1, -1), 0); + + bSizer3->Add(m_staticText2, 0, wxLEFT|wxRIGHT|wxTOP, 5); + + m_textCtrlDescription = new wxTextCtrl(this, wxID_ANY, wxT(""), wxDefaultPosition, wxSize(-1, -1), wxTE_RICH2|wxTE_MULTILINE); + m_textCtrlDescription->SetToolTip(_("Set a description to this template")); + + bSizer3->Add(m_textCtrlDescription, 1, wxALL|wxEXPAND, 5); + + m_stdBtnSizer2 = new wxStdDialogButtonSizer(); + + bSizer1->Add(m_stdBtnSizer2, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 5); + + m_buttonOK = new wxButton(this, wxID_OK, wxT(""), wxDefaultPosition, wxSize(-1, -1), 0); + m_buttonOK->SetDefault(); + m_stdBtnSizer2->AddButton(m_buttonOK); + + m_button6 = new wxButton(this, wxID_CANCEL, wxT(""), wxDefaultPosition, wxSize(-1, -1), 0); + m_stdBtnSizer2->AddButton(m_button6); + m_stdBtnSizer2->Realize(); + + SetName(wxT("NameAndDescBaseDlg")); + SetSizeHints(-1,-1); + if ( GetSizer() ) { + GetSizer()->Fit(this); + } + CentreOnParent(wxBOTH); +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(this)) { + wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); + } +#endif +} + +NameAndDescBaseDlg::~NameAndDescBaseDlg() +{ +} diff -Nru codelite-8.0.1+dfsg2/Plugin/nameanddescbasedlg.h codelite-9.0+dfsg/Plugin/nameanddescbasedlg.h --- codelite-8.0.1+dfsg2/Plugin/nameanddescbasedlg.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/nameanddescbasedlg.h 2015-10-11 13:56:07.000000000 +0000 @@ -1,85 +1,59 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2013 by Eran Ifrah -// file name : nameanddescbasedlg.h -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - -/////////////////////////////////////////////////////////////////////////// -// C++ code generated with wxFormBuilder (version Nov 18 2010) -// http://www.wxformbuilder.org/ -// -// PLEASE DO "NOT" EDIT THIS FILE! -/////////////////////////////////////////////////////////////////////////// - -#ifndef __nameanddescbasedlg__ -#define __nameanddescbasedlg__ - -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "codelite_exports.h" - -/////////////////////////////////////////////////////////////////////////// - - -/////////////////////////////////////////////////////////////////////////////// -/// Class NameAndDescBaseDlg -/////////////////////////////////////////////////////////////////////////////// -class WXDLLIMPEXP_SDK NameAndDescBaseDlg : public wxDialog -{ - private: - - protected: - wxStaticText* m_staticText3; - wxTextCtrl* m_textCtrlName; - wxStaticText* m_staticText4; - wxComboBox* m_choiceType; - wxStaticText* m_staticText2; - wxTextCtrl* m_textCtrlDescription; - wxStaticLine* m_staticline1; - wxButton* m_buttonOk; - wxButton* m_buttonCancel; - - // Virtual event handlers, overide them in your derived class - virtual void OnButtonOK( wxCommandEvent& event ) { event.Skip(); } - virtual void OnButtonCancel( wxCommandEvent& event ) { event.Skip(); } - - - public: - - NameAndDescBaseDlg( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Save Project As Template"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 594,220 ), long style = wxDEFAULT_DIALOG_STYLE ); - ~NameAndDescBaseDlg(); - -}; - -#endif //__nameanddescbasedlg__ +////////////////////////////////////////////////////////////////////// +// This file was auto-generated by codelite's wxCrafter Plugin +// wxCrafter project file: nameanddescdlg.wxcp +// Do not modify this file by hand! +////////////////////////////////////////////////////////////////////// + +#ifndef CODELITE_PLUGIN_NAMEANDDESCDLG_BASE_CLASSES_H +#define CODELITE_PLUGIN_NAMEANDDESCDLG_BASE_CLASSES_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#if wxVERSION_NUMBER >= 2900 +#include +#include +#include +#include +#endif +#include "codelite_exports.h" + +class WXDLLIMPEXP_SDK NameAndDescBaseDlg : public wxDialog +{ +protected: + wxBoxSizer* bSizer1; + wxFlexGridSizer* fgSizer1; + wxStaticText* m_staticText3; + wxTextCtrl* m_textCtrlName; + wxStaticText* m_staticText4; + wxComboBox* m_choiceType; + wxBoxSizer* bSizer3; + wxStaticText* m_staticText2; + wxTextCtrl* m_textCtrlDescription; + wxStdDialogButtonSizer* m_stdBtnSizer2; + wxButton* m_buttonOK; + wxButton* m_button6; + +protected: + +public: + wxStaticText* GetStaticText3() { return m_staticText3; } + wxTextCtrl* GetTextCtrlName() { return m_textCtrlName; } + wxStaticText* GetStaticText4() { return m_staticText4; } + wxComboBox* GetChoiceType() { return m_choiceType; } + wxStaticText* GetStaticText2() { return m_staticText2; } + wxTextCtrl* GetTextCtrlDescription() { return m_textCtrlDescription; } + NameAndDescBaseDlg(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Save Project As Template"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER); + virtual ~NameAndDescBaseDlg(); +}; + +#endif diff -Nru codelite-8.0.1+dfsg2/Plugin/nameanddescdlg.cpp codelite-9.0+dfsg/Plugin/nameanddescdlg.cpp --- codelite-8.0.1+dfsg2/Plugin/nameanddescdlg.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/nameanddescdlg.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -58,18 +58,4 @@ } m_choiceType->SetSelection(where); m_textCtrlName->SetValue(name); - m_textCtrlName->SetFocus(); - Centre(); -} - -void NameAndDescDlg::OnButtonOK(wxCommandEvent& event) -{ - wxUnusedVar(event); - EndModal(wxID_OK); -} - -void NameAndDescDlg::OnButtonCancel(wxCommandEvent& event) -{ - wxUnusedVar(event); - EndModal(wxID_CANCEL); } diff -Nru codelite-8.0.1+dfsg2/Plugin/nameanddescdlg.h codelite-9.0+dfsg/Plugin/nameanddescdlg.h --- codelite-8.0.1+dfsg2/Plugin/nameanddescdlg.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/nameanddescdlg.h 2015-10-11 13:56:07.000000000 +0000 @@ -22,33 +22,21 @@ // ////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// - #ifndef __nameanddescdlg__ -#define __nameanddescdlg__ - -/** -@file -Subclass of NameAndDescBaseDlg, which is generated by wxFormBuilder. -*/ - -#include "nameanddescbasedlg.h" +#ifndef __nameanddescdlg__ +#define __nameanddescdlg__ + +#include "nameanddescbasedlg.h" #include "codelite_exports.h" class IManager; - -/** Implementing NameAndDescBaseDlg */ -class WXDLLIMPEXP_SDK NameAndDescDlg : public NameAndDescBaseDlg -{ -protected: - // Handlers for NameAndDescBaseDlg events. - void OnButtonOK( wxCommandEvent& event ); - void OnButtonCancel( wxCommandEvent& event ); - -public: - /** Constructor */ - NameAndDescDlg( wxWindow* parent, IManager *manager, const wxString &name ); - wxString GetName() const {return m_textCtrlName->GetValue();} - wxString GetDescription() const {return m_textCtrlDescription->GetValue();} - wxString GetType() const {return m_choiceType->GetValue();} -}; - + +class WXDLLIMPEXP_SDK NameAndDescDlg : public NameAndDescBaseDlg +{ +public: + /** Constructor */ + NameAndDescDlg(wxWindow* parent, IManager* manager, const wxString& name); + wxString GetName() const { return m_textCtrlName->GetValue(); } + wxString GetDescription() const { return m_textCtrlDescription->GetValue(); } + wxString GetType() const { return m_choiceType->GetValue(); } +}; + #endif // __nameanddescdlg__ - diff -Nru codelite-8.0.1+dfsg2/Plugin/nameanddescdlg_plugin_bitmaps.cpp codelite-9.0+dfsg/Plugin/nameanddescdlg_plugin_bitmaps.cpp --- codelite-8.0.1+dfsg2/Plugin/nameanddescdlg_plugin_bitmaps.cpp 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/nameanddescdlg_plugin_bitmaps.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,47 @@ +// +// This file was automatically generated by wxrc, do not edit by hand. +// + +#include + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +#include +#include +#include +#include + +#if wxCHECK_VERSION(2,8,5) && wxABI_VERSION >= 20805 + #define XRC_ADD_FILE(name, data, size, mime) \ + wxMemoryFSHandler::AddFileWithMimeType(name, data, size, mime) +#else + #define XRC_ADD_FILE(name, data, size, mime) \ + wxMemoryFSHandler::AddFile(name, data, size) +#endif + +static size_t xml_res_size_0 = 90; +static unsigned char xml_res_file_0[] = { +60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, +110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, +115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, +47,47,119,119,119,46,119,120,119,105,100,103,101,116,115,46,111,114,103, +47,119,120,120,114,99,34,47,62,10}; + +void wxC934BInitBitmapResources() +{ + + // Check for memory FS. If not present, load the handler: + { + wxMemoryFSHandler::AddFile(wxT("XRC_resource/dummy_file"), wxT("dummy one")); + wxFileSystem fsys; + wxFSFile *f = fsys.OpenFile(wxT("memory:XRC_resource/dummy_file")); + wxMemoryFSHandler::RemoveFile(wxT("XRC_resource/dummy_file")); + if (f) delete f; + else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase); + } + + XRC_ADD_FILE(wxT("XRC_resource/nameanddescdlg_plugin_bitmaps.cpp$C__src_codelite_Plugin_nameanddescdlg_plugin_bitmaps.xrc"), xml_res_file_0, xml_res_size_0, wxT("text/xml")); + wxXmlResource::Get()->Load(wxT("memory:XRC_resource/nameanddescdlg_plugin_bitmaps.cpp$C__src_codelite_Plugin_nameanddescdlg_plugin_bitmaps.xrc")); +} diff -Nru codelite-8.0.1+dfsg2/Plugin/nameanddescdlg.wxcp codelite-9.0+dfsg/Plugin/nameanddescdlg.wxcp --- codelite-8.0.1+dfsg2/Plugin/nameanddescdlg.wxcp 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/nameanddescdlg.wxcp 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,835 @@ +{ + "metadata": { + "m_generatedFilesDir": ".", + "m_objCounter": 6, + "m_includeFiles": ["codelite_exports.h"], + "m_bitmapFunction": "wxC934BInitBitmapResources", + "m_bitmapsFile": "nameanddescdlg_plugin_bitmaps.cpp", + "m_GenerateCodeTypes": -13626415, + "m_outputFileName": "nameanddescbasedlg", + "m_firstWindowId": 10000, + "m_useEnum": true, + "m_templateClasses": [] + }, + "windows": [{ + "m_type": 4421, + "proportion": 0, + "border": 0, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": ["wxDEFAULT_DIALOG_STYLE", "wxRESIZE_BORDER"], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "NameAndDescBaseDlg" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Enable Window Persistency:", + "m_value": true + }, { + "type": "string", + "m_label": "Title:", + "m_value": "Save Project As Template" + }, { + "type": "virtualFolderPicker", + "m_label": "Virtual Folder:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Centre:", + "m_selection": 1, + "m_options": ["", "wxBOTH", "wxVERTICAL", "wxHORIZONTAL"] + }, { + "type": "string", + "m_label": "Inherited Class", + "m_value": "NameAndDescDlg" + }, { + "type": "string", + "m_label": "File:", + "m_value": "nameanddescdlg" + }, { + "type": "string", + "m_label": "Class Decorator", + "m_value": "WXDLLIMPEXP_SDK" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (16x16) :", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (32x32) :", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (64x64) :", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (128x128):", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (256x256):", + "m_path": "" + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 0, + "border": 0, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "bSizer1" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4403, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "fgSizer1" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "# Columns:", + "m_value": "2" + }, { + "type": "string", + "m_label": "# Rows:", + "m_value": "2" + }, { + "type": "string", + "m_label": "Growable columns:", + "m_value": "1" + }, { + "type": "string", + "m_label": "Growable rows:", + "m_value": "" + }, { + "type": "string", + "m_label": "Horizontal gap:", + "m_value": "0" + }, { + "type": "string", + "m_label": "Vertical gap:", + "m_value": "0" + }], + "m_events": [], + "m_children": [{ + "m_type": 4405, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT", "wxALIGN_CENTER_VERTICAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_staticText3" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Label:", + "m_value": "Project name:" + }, { + "type": "string", + "m_label": "Wrap:", + "m_value": "-1" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4406, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_textCtrlName" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "Give a name to the template" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": true + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Value:", + "m_value": "" + }, { + "type": "string", + "m_label": "Text Hint", + "m_value": "" + }, { + "type": "string", + "m_label": "Max Length:", + "m_value": "0" + }, { + "type": "bool", + "m_label": "Auto Complete Directories:", + "m_value": false + }, { + "type": "bool", + "m_label": "Auto Complete Files:", + "m_value": false + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4405, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT", "wxALIGN_CENTER_VERTICAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_staticText4" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Label:", + "m_value": "Project category:" + }, { + "type": "string", + "m_label": "Wrap:", + "m_value": "-1" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4410, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_choiceType" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "Choose a category for this template" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "ComboBox Choices:", + "m_value": "" + }, { + "type": "string", + "m_label": "Text Hint", + "m_value": "" + }, { + "type": "string", + "m_label": "Selection:", + "m_value": "-1" + }, { + "type": "string", + "m_label": "Value:", + "m_value": "" + }], + "m_events": [], + "m_children": [] + }] + }, { + "m_type": 4401, + "proportion": 1, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "bSizer3" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4405, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxLEFT", "wxRIGHT", "wxTOP"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_staticText2" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Label:", + "m_value": "Description:" + }, { + "type": "string", + "m_label": "Wrap:", + "m_value": "-1" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4406, + "proportion": 1, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": ["wxTE_RICH2", "wxTE_MULTILINE"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_textCtrlDescription" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "Set a description to this template" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Value:", + "m_value": "" + }, { + "type": "string", + "m_label": "Text Hint", + "m_value": "" + }, { + "type": "string", + "m_label": "Max Length:", + "m_value": "0" + }, { + "type": "bool", + "m_label": "Auto Complete Directories:", + "m_value": false + }, { + "type": "bool", + "m_label": "Auto Complete Files:", + "m_value": false + }], + "m_events": [], + "m_children": [] + }] + }, { + "m_type": 4467, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_HORIZONTAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_stdBtnSizer2" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }], + "m_events": [], + "m_children": [{ + "m_type": 4468, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "choice", + "m_label": "ID:", + "m_selection": 0, + "m_options": ["wxID_OK", "wxID_YES", "wxID_SAVE", "wxID_APPLY", "wxID_CLOSE", "wxID_NO", "wxID_CANCEL", "wxID_HELP", "wxID_CONTEXT_HELP"] + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_buttonOK" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Default Button", + "m_value": true + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4468, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "choice", + "m_label": "ID:", + "m_selection": 6, + "m_options": ["wxID_OK", "wxID_YES", "wxID_SAVE", "wxID_APPLY", "wxID_CLOSE", "wxID_NO", "wxID_CANCEL", "wxID_HELP", "wxID_CONTEXT_HELP"] + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_button6" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Default Button", + "m_value": false + }], + "m_events": [], + "m_children": [] + }] + }] + }] + }] +} \ No newline at end of file diff -Nru codelite-8.0.1+dfsg2/Plugin/navigationmanager.cpp codelite-9.0+dfsg/Plugin/navigationmanager.cpp --- codelite-8.0.1+dfsg2/Plugin/navigationmanager.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/navigationmanager.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -50,7 +50,7 @@ { // ATTN: lineno == 1 implies a file was just opened, but before the find-and-select has happened // TODO: don't allow records for non-source files (*.diff, *.i, etc) - return !rec.filename.IsEmpty() && rec.lineno > 1; + return (!rec.filename.IsEmpty()) && (rec.lineno > 1); } bool NavMgr::CanNext() const @@ -77,7 +77,7 @@ { if (ValidLocation(from)) { // keep previous location only if it's not at position 0, and it is not equal to from - if (m_cur > 0 && !(m_jumps[m_cur].filename == from.filename && m_jumps[m_cur].lineno == from.lineno)) { + if ( (m_cur > 0) && (!( (m_jumps[m_cur].filename == from.filename) && (m_jumps[m_cur].lineno == from.lineno)))) { m_cur++; } m_jumps.resize(m_cur); @@ -85,7 +85,7 @@ } if (ValidLocation(to)) { // only add if there's an actual jump - if (!m_jumps.empty() && !(m_jumps[m_cur].filename == to.filename && m_jumps[m_cur].lineno == to.lineno)) { + if ((!m_jumps.empty()) && (!( (m_jumps[m_cur].filename == to.filename) && (m_jumps[m_cur].lineno == to.lineno)))) { m_cur++; m_jumps.resize(m_cur); m_jumps.push_back(to); diff -Nru codelite-8.0.1+dfsg2/Plugin/NewKeyShortcutBaseDlg.cpp codelite-9.0+dfsg/Plugin/NewKeyShortcutBaseDlg.cpp --- codelite-8.0.1+dfsg2/Plugin/NewKeyShortcutBaseDlg.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/NewKeyShortcutBaseDlg.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -24,17 +24,17 @@ bBitmapLoaded = true; } - wxBoxSizer* bSizer3 = new wxBoxSizer(wxVERTICAL); + bSizer3 = new wxBoxSizer(wxVERTICAL); this->SetSizer(bSizer3); m_panel1 = new wxPanel(this, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxTAB_TRAVERSAL); bSizer3->Add(m_panel1, 1, wxALL|wxEXPAND, 5); - wxBoxSizer* bSizer5 = new wxBoxSizer(wxVERTICAL); + bSizer5 = new wxBoxSizer(wxVERTICAL); m_panel1->SetSizer(bSizer5); - wxFlexGridSizer* flexGridSizer8 = new wxFlexGridSizer(0, 3, 0, 0); + flexGridSizer8 = new wxFlexGridSizer(0, 3, 0, 0); flexGridSizer8->SetFlexibleDirection( wxBOTH ); flexGridSizer8->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); flexGridSizer8->AddGrowableCol(1); @@ -72,7 +72,7 @@ flexGridSizer8->Add(m_staticText12, 0, wxALL|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5); - wxBoxSizer* bSizer6 = new wxBoxSizer(wxHORIZONTAL); + bSizer6 = new wxBoxSizer(wxHORIZONTAL); flexGridSizer8->Add(bSizer6, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 5); @@ -91,7 +91,7 @@ bSizer6->Add(m_checkBoxShift, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5); - wxBoxSizer* bSizer4 = new wxBoxSizer(wxHORIZONTAL); + bSizer4 = new wxBoxSizer(wxHORIZONTAL); bSizer3->Add(bSizer4, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 5); @@ -104,11 +104,19 @@ bSizer4->Add(m_buttonCancel, 0, wxALL, 5); + SetName(wxT("NewKeyShortcutBaseDlg")); SetSizeHints(-1,-1); if ( GetSizer() ) { GetSizer()->Fit(this); } - Centre(); + CentreOnParent(); +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(this)) { + wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); + } +#endif // Connect events m_textCtrl1->Connect(wxEVT_KEY_DOWN, wxKeyEventHandler(NewKeyShortcutBaseDlg::OnKeyDown), NULL, this); m_buttonClear->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(NewKeyShortcutBaseDlg::OnClear), NULL, this); diff -Nru codelite-8.0.1+dfsg2/Plugin/NewKeyShortcutBaseDlg.h codelite-9.0+dfsg/Plugin/NewKeyShortcutBaseDlg.h --- codelite-8.0.1+dfsg2/Plugin/NewKeyShortcutBaseDlg.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/NewKeyShortcutBaseDlg.h 2015-10-11 13:56:07.000000000 +0000 @@ -4,8 +4,8 @@ // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// -#ifndef NEWKEYSHORTCUTBASEDLG_BASE_CLASSES_H -#define NEWKEYSHORTCUTBASEDLG_BASE_CLASSES_H +#ifndef CODELITE_PLUGIN_NEWKEYSHORTCUTBASEDLG_BASE_CLASSES_H +#define CODELITE_PLUGIN_NEWKEYSHORTCUTBASEDLG_BASE_CLASSES_H #include #include @@ -19,21 +19,32 @@ #include #include #include +#if wxVERSION_NUMBER >= 2900 +#include +#include +#include +#include +#endif #include "codelite_exports.h" class WXDLLIMPEXP_SDK NewKeyShortcutBaseDlg : public wxDialog { protected: + wxBoxSizer* bSizer3; wxPanel* m_panel1; + wxBoxSizer* bSizer5; + wxFlexGridSizer* flexGridSizer8; wxStaticText* m_staticTextActionLabel; wxStaticText* m_staticTextAction; wxStaticText* m_staticText10; wxTextCtrl* m_textCtrl1; wxButton* m_buttonClear; wxStaticText* m_staticText12; + wxBoxSizer* bSizer6; wxCheckBox* m_checkBoxCtrl; wxCheckBox* m_checkBoxAlt; wxCheckBox* m_checkBoxShift; + wxBoxSizer* bSizer4; wxButton* m_buttonOk; wxButton* m_buttonCancel; @@ -43,6 +54,18 @@ virtual void OnClearUI(wxUpdateUIEvent& event) { event.Skip(); } public: + wxStaticText* GetStaticTextActionLabel() { return m_staticTextActionLabel; } + wxStaticText* GetStaticTextAction() { return m_staticTextAction; } + wxStaticText* GetStaticText10() { return m_staticText10; } + wxTextCtrl* GetTextCtrl1() { return m_textCtrl1; } + wxButton* GetButtonClear() { return m_buttonClear; } + wxStaticText* GetStaticText12() { return m_staticText12; } + wxCheckBox* GetCheckBoxCtrl() { return m_checkBoxCtrl; } + wxCheckBox* GetCheckBoxAlt() { return m_checkBoxAlt; } + wxCheckBox* GetCheckBoxShift() { return m_checkBoxShift; } + wxPanel* GetPanel1() { return m_panel1; } + wxButton* GetButtonOk() { return m_buttonOk; } + wxButton* GetButtonCancel() { return m_buttonCancel; } NewKeyShortcutBaseDlg(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Set New Key Accelerator"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER); virtual ~NewKeyShortcutBaseDlg(); }; diff -Nru codelite-8.0.1+dfsg2/Plugin/NewKeyShortcutBaseDlg_liteeditor_bitmaps.cpp codelite-9.0+dfsg/Plugin/NewKeyShortcutBaseDlg_liteeditor_bitmaps.cpp --- codelite-8.0.1+dfsg2/Plugin/NewKeyShortcutBaseDlg_liteeditor_bitmaps.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/NewKeyShortcutBaseDlg_liteeditor_bitmaps.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,28 +1,3 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2014 The CodeLite Team -// file name : NewKeyShortcutBaseDlg_liteeditor_bitmaps.cpp -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - // // This file was automatically generated by wxrc, do not edit by hand. // @@ -46,14 +21,13 @@ wxMemoryFSHandler::AddFile(name, data, size) #endif -static size_t xml_res_size_0 = 108; +static size_t xml_res_size_0 = 90; static unsigned char xml_res_file_0[] = { 60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, 110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, 115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, 47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, -47,119,120,120,114,99,34,32,118,101,114,115,105,111,110,61,34,50,46,51, -46,48,46,49,34,47,62,10}; +47,119,120,120,114,99,34,47,62,10}; void wxC8418InitBitmapResources() { @@ -68,6 +42,6 @@ else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase); } - XRC_ADD_FILE(wxT("XRC_resource/NewKeyShortcutBaseDlg_liteeditor_bitmaps.cpp$C__src_codelite_LiteEditor_NewKeyShortcutBaseDlg_liteeditor_bitmaps.xrc"), xml_res_file_0, xml_res_size_0, wxT("text/xml")); - wxXmlResource::Get()->Load(wxT("memory:XRC_resource/NewKeyShortcutBaseDlg_liteeditor_bitmaps.cpp$C__src_codelite_LiteEditor_NewKeyShortcutBaseDlg_liteeditor_bitmaps.xrc")); + XRC_ADD_FILE(wxT("XRC_resource/NewKeyShortcutBaseDlg_liteeditor_bitmaps.cpp$C__src_codelite_Plugin_NewKeyShortcutBaseDlg_liteeditor_bitmaps.xrc"), xml_res_file_0, xml_res_size_0, wxT("text/xml")); + wxXmlResource::Get()->Load(wxT("memory:XRC_resource/NewKeyShortcutBaseDlg_liteeditor_bitmaps.cpp$C__src_codelite_Plugin_NewKeyShortcutBaseDlg_liteeditor_bitmaps.xrc")); } diff -Nru codelite-8.0.1+dfsg2/Plugin/NewKeyShortcutBaseDlg.wxcp codelite-9.0+dfsg/Plugin/NewKeyShortcutBaseDlg.wxcp --- codelite-8.0.1+dfsg2/Plugin/NewKeyShortcutBaseDlg.wxcp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/NewKeyShortcutBaseDlg.wxcp 2015-10-11 13:56:07.000000000 +0000 @@ -72,6 +72,10 @@ "m_label": "Style:", "m_value": "" }, { + "type": "bool", + "m_label": "Enable Window Persistency:", + "m_value": true + }, { "type": "string", "m_label": "Title:", "m_value": "Set New Key Accelerator" @@ -128,6 +132,10 @@ "m_sizerFlags": [], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer3" }, { @@ -217,6 +225,10 @@ "m_sizerFlags": [], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer5" }, { @@ -240,6 +252,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "flexGridSizer8" }, { @@ -797,6 +813,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_HORIZONTAL"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer6" }, { @@ -1049,6 +1069,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_HORIZONTAL"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer4" }, { diff -Nru codelite-8.0.1+dfsg2/Plugin/notebook_bitmaps.cpp codelite-9.0+dfsg/Plugin/notebook_bitmaps.cpp --- codelite-8.0.1+dfsg2/Plugin/notebook_bitmaps.cpp 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/notebook_bitmaps.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,130 @@ +// +// This file was automatically generated by wxrc, do not edit by hand. +// + +#include + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +#include +#include +#include +#include + +#if wxCHECK_VERSION(2,8,5) && wxABI_VERSION >= 20805 + #define XRC_ADD_FILE(name, data, size, mime) \ + wxMemoryFSHandler::AddFileWithMimeType(name, data, size, mime) +#else + #define XRC_ADD_FILE(name, data, size, mime) \ + wxMemoryFSHandler::AddFile(name, data, size) +#endif + +static size_t xml_res_size_0 = 338; +static unsigned char xml_res_file_0[] = { +137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,12,0,0,0,12,8,6,0,0, +0,86,117,92,231,0,0,0,6,98,75,71,68,0,0,0,0,0,0,249,67,187,127,0,0,0,9, +112,72,89,115,0,0,13,215,0,0,13,215,1,66,40,155,120,0,0,0,7,116,73,77,69, +7,223,1,2,15,12,16,2,139,253,52,0,0,0,223,73,68,65,84,40,207,157,209,59, +74,131,81,20,4,224,47,15,5,55,96,109,235,2,236,127,59,69,212,70,36,190, +64,196,206,77,204,54,108,84,136,79,208,16,181,176,253,55,225,38,92,130, +196,104,115,19,98,72,163,211,28,184,51,115,206,153,115,249,35,26,144,100, +17,235,184,73,50,152,20,36,105,227,0,111,73,62,154,229,125,27,87,232,38, +105,77,137,175,11,183,5,237,194,93,96,21,123,152,79,210,65,19,79,216,192, +45,46,199,43,149,110,243,120,196,38,238,10,215,193,43,118,146,124,254,50, +20,83,11,221,50,73,49,30,37,249,26,105,154,51,142,208,152,117,152,17,38, +3,206,149,142,187,165,190,151,73,203,85,85,245,235,186,30,142,13,73,22, +208,47,151,56,199,9,122,88,194,62,86,170,170,234,213,117,61,24,173,116, +136,53,220,227,44,201,119,146,33,78,241,80,184,131,201,12,207,56,158,14, +88,62,241,176,112,47,254,131,31,64,171,69,137,215,114,159,30,0,0,0,0,73, +69,78,68,174,66,96,130}; + +static size_t xml_res_size_1 = 244; +static unsigned char xml_res_file_1[] = { +137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,12,0,0,0,12,8,6,0,0, +0,86,117,92,231,0,0,0,6,98,75,71,68,0,0,0,0,0,0,249,67,187,127,0,0,0,9, +112,72,89,115,0,0,13,215,0,0,13,215,1,66,40,155,120,0,0,0,7,116,73,77,69, +7,223,1,2,15,9,26,159,41,224,111,0,0,0,129,73,68,65,84,40,207,157,209,75, +10,194,48,20,5,208,99,127,226,6,186,61,39,186,39,135,78,90,69,113,34,66, +151,87,39,79,72,67,4,237,133,76,238,239,189,36,172,68,143,61,154,130,214, +132,214,167,228,17,51,46,168,51,243,53,180,67,26,168,49,134,240,64,139, +45,94,193,13,89,17,232,240,12,195,24,211,230,224,186,111,119,73,39,125, +130,139,230,42,11,108,226,228,92,17,45,238,133,149,110,161,45,176,195,20, +134,83,180,86,56,7,55,133,103,253,179,254,253,113,63,227,13,67,98,32,78, +10,176,145,24,0,0,0,0,73,69,78,68,174,66,96,130}; + +static size_t xml_res_size_2 = 167; +static unsigned char xml_res_file_2[] = { +137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,10,0,0,0,16,8,6,0,0, +0,47,127,238,64,0,0,0,6,98,75,71,68,0,255,0,255,0,255,160,189,167,147,0, +0,0,9,112,72,89,115,0,0,11,19,0,0,11,19,1,0,154,156,24,0,0,0,7,116,73,77, +69,7,223,5,24,4,15,18,1,217,49,1,0,0,0,52,73,68,65,84,40,207,99,96,24,134, +160,1,138,241,138,55,48,48,48,252,135,226,6,52,69,112,113,22,52,19,234, +113,176,177,234,70,199,13,196,40,110,192,231,41,130,138,8,133,192,160,7, +0,163,64,24,243,19,201,130,249,0,0,0,0,73,69,78,68,174,66,96,130}; + +static size_t xml_res_size_3 = 174; +static unsigned char xml_res_file_3[] = { +137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,10,0,0,0,16,8,6,0,0, +0,47,127,238,64,0,0,0,6,98,75,71,68,0,255,0,255,0,255,160,189,167,147,0, +0,0,9,112,72,89,115,0,0,11,19,0,0,11,19,1,0,154,156,24,0,0,0,7,116,73,77, +69,7,223,9,28,6,15,45,254,169,178,4,0,0,0,59,73,68,65,84,40,207,99,96,24, +110,224,255,255,255,13,255,255,255,111,192,43,14,229,192,64,3,154,34,184, +56,11,154,33,245,255,255,255,135,179,113,89,141,11,52,16,163,184,1,159, +167,240,43,34,20,2,67,1,0,0,164,0,123,144,105,116,74,211,0,0,0,0,73,69, +78,68,174,66,96,130}; + +static size_t xml_res_size_4 = 590; +static unsigned char xml_res_file_4[] = { +60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, +110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,33,45,45, +32,10,119,120,114,99,32,47,110,32,78,111,116,101,98,111,111,107,95,73,110, +105,116,95,66,105,116,109,97,112,115,32,47,99,32,47,118,32,47,111,32,110, +111,116,101,98,111,111,107,95,98,105,116,109,97,112,115,46,99,112,112,32, +110,111,116,101,98,111,111,107,95,98,105,116,109,97,112,115,46,120,114, +99,32,10,45,45,62,10,60,114,101,115,111,117,114,99,101,62,10,32,32,60,111, +98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97, +112,34,32,110,97,109,101,61,34,110,111,116,101,98,111,111,107,45,100,97, +114,107,45,120,34,62,110,111,116,101,98,111,111,107,95,98,105,116,109,97, +112,115,46,99,112,112,36,98,105,116,109,97,112,115,95,102,105,108,101,99, +108,111,115,101,45,100,97,114,107,46,112,110,103,60,47,111,98,106,101,99, +116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119, +120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,110,111,116,101,98, +111,111,107,45,108,105,103,104,116,45,120,34,62,110,111,116,101,98,111, +111,107,95,98,105,116,109,97,112,115,46,99,112,112,36,98,105,116,109,97, +112,115,95,102,105,108,101,99,108,111,115,101,46,112,110,103,60,47,111, +98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115, +115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,99,104, +101,118,114,111,110,45,100,111,119,110,45,98,108,97,99,107,34,62,110,111, +116,101,98,111,111,107,95,98,105,116,109,97,112,115,46,99,112,112,36,98, +105,116,109,97,112,115,95,99,104,101,118,114,111,110,45,100,111,119,110, +45,98,108,97,99,107,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32, +32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116, +109,97,112,34,32,110,97,109,101,61,34,99,104,101,118,114,111,110,45,100, +111,119,110,45,103,114,101,121,34,62,110,111,116,101,98,111,111,107,95, +98,105,116,109,97,112,115,46,99,112,112,36,98,105,116,109,97,112,115,95, +99,104,101,118,114,111,110,45,100,111,119,110,45,103,114,101,121,46,112, +110,103,60,47,111,98,106,101,99,116,62,10,60,47,114,101,115,111,117,114, +99,101,62,10}; + +void Notebook_Init_Bitmaps() +{ + + // Check for memory FS. If not present, load the handler: + { + wxMemoryFSHandler::AddFile(wxT("XRC_resource/dummy_file"), wxT("dummy one")); + wxFileSystem fsys; + wxFSFile *f = fsys.OpenFile(wxT("memory:XRC_resource/dummy_file")); + wxMemoryFSHandler::RemoveFile(wxT("XRC_resource/dummy_file")); + if (f) delete f; + else wxFileSystem::AddHandler(new wxMemoryFSHandler); + } + + XRC_ADD_FILE(wxT("XRC_resource/notebook_bitmaps.cpp$bitmaps_fileclose-dark.png"), xml_res_file_0, xml_res_size_0, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/notebook_bitmaps.cpp$bitmaps_fileclose.png"), xml_res_file_1, xml_res_size_1, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/notebook_bitmaps.cpp$bitmaps_chevron-down-black.png"), xml_res_file_2, xml_res_size_2, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/notebook_bitmaps.cpp$bitmaps_chevron-down-grey.png"), xml_res_file_3, xml_res_size_3, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/notebook_bitmaps.cpp$._notebook_bitmaps.xrc"), xml_res_file_4, xml_res_size_4, wxT("text/xml")); + wxXmlResource::Get()->Load(wxT("memory:XRC_resource/notebook_bitmaps.cpp$._notebook_bitmaps.xrc")); +} diff -Nru codelite-8.0.1+dfsg2/Plugin/Notebook.cpp codelite-9.0+dfsg/Plugin/Notebook.cpp --- codelite-8.0.1+dfsg2/Plugin/Notebook.cpp 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/Notebook.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,1843 @@ +#include "Notebook.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#if defined(WXUSINGDLL_CL) || defined(USE_SFTP) || defined(PLUGINS_DIR) +#define CL_BUILD 1 +#endif + +#ifdef __WXMSW__ +int clTabInfo::Y_SPACER = 3; +#else +int clTabInfo::Y_SPACER = 3; +#endif + +int clTabInfo::X_SPACER = 5; +int clTabInfo::BOTTOM_AREA_HEIGHT = 3; +int clTabInfo::MAJOR_CURVE_WIDTH = 15; +int clTabInfo::SMALL_CURVE_WIDTH = 4; +// int clTabInfo::TAB_HEIGHT = 30; +static int OVERLAP_WIDTH = 20; +static int V_OVERLAP_WIDTH = 3; + +#if CL_BUILD +#include "cl_command_event.h" +#include "event_notifier.h" +#include "codelite_events.h" +#include "drawingutils.h" +#endif + +wxDEFINE_EVENT(wxEVT_BOOK_PAGE_CHANGING, wxBookCtrlEvent); +wxDEFINE_EVENT(wxEVT_BOOK_PAGE_CHANGED, wxBookCtrlEvent); +wxDEFINE_EVENT(wxEVT_BOOK_PAGE_CLOSING, wxBookCtrlEvent); +wxDEFINE_EVENT(wxEVT_BOOK_PAGE_CLOSED, wxBookCtrlEvent); +wxDEFINE_EVENT(wxEVT_BOOK_PAGE_CLOSE_BUTTON, wxBookCtrlEvent); +wxDEFINE_EVENT(wxEVT_BOOK_TAB_DCLICKED, wxBookCtrlEvent); +wxDEFINE_EVENT(wxEVT_BOOK_NAVIGATING, wxBookCtrlEvent); +wxDEFINE_EVENT(wxEVT_BOOK_TABAREA_DCLICKED, wxBookCtrlEvent); + +#define IS_VERTICAL_TABS(style) ((style & kNotebook_RightTabs) || (style & kNotebook_LeftTabs)) + +extern void Notebook_Init_Bitmaps(); + +Notebook::Notebook(wxWindow* parent, + wxWindowID id, + const wxPoint& pos, + const wxSize& size, + long style, + const wxString& name) + : wxPanel(parent, id, pos, size, wxNO_BORDER | wxWANTS_CHARS | wxTAB_TRAVERSAL, name) +{ + static bool once = false; + if(!once) { + // Add PNG and Bitmap handler + wxImage::AddHandler(new wxPNGHandler); + wxXmlResource::Get()->AddHandler(new wxBitmapXmlHandler); + Notebook_Init_Bitmaps(); + once = true; + } + + wxBoxSizer* sizer = new wxBoxSizer(wxVERTICAL); + SetSizer(sizer); + + m_tabCtrl = new clTabCtrl(this, style); + m_windows = new WindowStack(this); + + if(GetStyle() & kNotebook_BottomTabs) { + sizer->Add(m_windows, 1, wxEXPAND); + sizer->Add(m_tabCtrl, 0, wxEXPAND); + + } else { + sizer->Add(m_tabCtrl, 0, wxEXPAND); + sizer->Add(m_windows, 1, wxEXPAND); + } + Layout(); +} + +Notebook::~Notebook() {} + +void Notebook::AddPage(wxWindow* page, const wxString& label, bool selected, const wxBitmap& bmp) +{ + clTabInfo::Ptr_t tab(new clTabInfo(GetStyle(), page, label, bmp)); + tab->SetActive(selected, GetStyle()); + m_tabCtrl->AddPage(tab); +} + +void Notebook::DoChangeSelection(wxWindow* page) { m_windows->Select(page); } + +bool Notebook::InsertPage(size_t index, wxWindow* page, const wxString& label, bool selected, const wxBitmap& bmp) +{ + clTabInfo::Ptr_t tab(new clTabInfo(GetStyle(), page, label, bmp)); + tab->SetActive(selected, GetStyle()); + return m_tabCtrl->InsertPage(index, tab); +} + +void Notebook::SetStyle(size_t style) +{ + m_tabCtrl->SetStyle(style); + GetSizer()->Detach(m_windows); + GetSizer()->Detach(m_tabCtrl); + wxSizer* sz = NULL; + + // Replace the sizer + if(IsVerticalTabs()) { + sz = new wxBoxSizer(wxHORIZONTAL); + } else { + sz = new wxBoxSizer(wxVERTICAL); + } + + if((style & kNotebook_BottomTabs) || (style & kNotebook_RightTabs)) { + sz->Add(m_windows, 1, wxEXPAND); + sz->Add(m_tabCtrl, 0, wxEXPAND); + + } else { + sz->Add(m_tabCtrl, 0, wxEXPAND); + sz->Add(m_windows, 1, wxEXPAND); + } + SetSizer(sz); + Layout(); + m_tabCtrl->Refresh(); +} + +wxWindow* Notebook::GetCurrentPage() const +{ + if(m_tabCtrl->GetSelection() == wxNOT_FOUND) return NULL; + return m_tabCtrl->GetPage(m_tabCtrl->GetSelection()); +} + +int Notebook::FindPage(wxWindow* page) const { return m_tabCtrl->FindPage(page); } + +bool Notebook::RemovePage(size_t page, bool notify) { return m_tabCtrl->RemovePage(page, notify, false); } +bool Notebook::DeletePage(size_t page) { return m_tabCtrl->RemovePage(page, true, true); } +bool Notebook::DeleteAllPages() { return m_tabCtrl->DeleteAllPages(); } + +void Notebook::EnableStyle(NotebookStyle style, bool enable) +{ + size_t flags = GetStyle(); + if(enable) { + flags |= style; + } else { + flags &= ~style; + } + SetStyle(flags); +} + +void Notebook::SetTabDirection(wxDirection d) +{ + size_t flags = GetStyle(); + // Clear all direction styles + flags &= ~kNotebook_BottomTabs; + flags &= ~kNotebook_LeftTabs; + flags &= ~kNotebook_RightTabs; + + if(d == wxBOTTOM) { + flags |= kNotebook_BottomTabs; + } else if(d == wxRIGHT) { + flags |= kNotebook_RightTabs; + } else if(d == wxLEFT) { + flags |= kNotebook_LeftTabs; + } + SetStyle(flags); +} + +//---------------------------------------------------------- +// Tab label +//---------------------------------------------------------- +void clTabInfo::Draw(wxDC& dc, const clTabInfo::Colours& colours, size_t style) +{ + const int TOP_SMALL_HEIGHT = 2; + wxColour bgColour(IsActive() ? colours.activeTabBgColour : colours.inactiveTabBgColour); + wxColour penColour(IsActive() ? colours.activeTabPenColour : colours.inactiveTabPenColour); + wxFont font = wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT); + dc.SetTextForeground(IsActive() ? colours.activeTabTextColour : colours.inactiveTabTextColour); + dc.SetFont(font); + + if(style & kNotebook_BottomTabs) { + // Bottom tabs + { + wxPoint points[6]; + points[0] = m_rect.GetTopLeft(); + + points[1].x = points[0].x + MAJOR_CURVE_WIDTH; + points[1].y = m_rect.GetBottomLeft().y - TOP_SMALL_HEIGHT; + + points[2].x = points[1].x + SMALL_CURVE_WIDTH; + points[2].y = points[1].y + TOP_SMALL_HEIGHT; + + points[3].x = points[0].x + (m_rect.GetWidth() - (MAJOR_CURVE_WIDTH + SMALL_CURVE_WIDTH)); + points[3].y = points[2].y; + + points[4].x = points[3].x + SMALL_CURVE_WIDTH; + points[4].y = points[1].y; + + points[5] = m_rect.GetTopRight(); + + dc.SetPen(penColour); + dc.SetBrush(bgColour); + dc.DrawPolygon(6, points); + } + { + wxPoint points[6]; + points[0] = m_rect.GetTopLeft(); + points[0].x += 1; + + points[1].x = points[0].x + MAJOR_CURVE_WIDTH; + points[1].y = m_rect.GetBottomLeft().y - TOP_SMALL_HEIGHT - 1; + + points[2].x = points[1].x + SMALL_CURVE_WIDTH; + points[2].y = points[1].y + TOP_SMALL_HEIGHT; + + points[3].x = points[0].x + (m_rect.GetWidth() - 2 - (MAJOR_CURVE_WIDTH + SMALL_CURVE_WIDTH)); + points[3].y = points[2].y; + + points[4].x = points[3].x + SMALL_CURVE_WIDTH; + points[4].y = points[1].y; + + points[5] = m_rect.GetTopRight(); + points[5].x -= 2; + + dc.SetPen(IsActive() ? colours.activeTabInnerPenColour : colours.inactiveTabInnerPenColour); + dc.SetBrush(bgColour); + dc.DrawPolygon(6, points); + } + } else if(IS_VERTICAL_TABS(style)) { + + // Left side tabs + wxRect rotatedRect(0, 0, m_rect.GetHeight(), m_rect.GetWidth()); + wxBitmap b(rotatedRect.GetSize()); + + wxMemoryDC tmpDC(b); + tmpDC.SetPen(colours.tabAreaColour); + tmpDC.SetBrush(colours.tabAreaColour); + tmpDC.DrawRectangle(rotatedRect); + tmpDC.SetFont(font); + tmpDC.SetTextForeground(IsActive() ? colours.activeTabTextColour : colours.inactiveTabTextColour); + + tmpDC.SetPen(penColour); + tmpDC.SetBrush(bgColour); + if(IsActive()) { + { + wxPoint points[6]; + points[0] = rotatedRect.GetBottomLeft(); + + points[1].x = points[0].x + MAJOR_CURVE_WIDTH; + points[1].y = rotatedRect.GetLeftTop().y + TOP_SMALL_HEIGHT; + + points[2].x = points[1].x + SMALL_CURVE_WIDTH; + points[2].y = points[1].y - TOP_SMALL_HEIGHT; + + points[3].x = points[0].x + (rotatedRect.GetWidth() - (MAJOR_CURVE_WIDTH + SMALL_CURVE_WIDTH)); + points[3].y = points[2].y; + + points[4].x = points[3].x + SMALL_CURVE_WIDTH; + points[4].y = points[3].y + TOP_SMALL_HEIGHT; + + points[5] = rotatedRect.GetBottomRight(); + + tmpDC.SetPen(penColour); + tmpDC.SetBrush(bgColour); + tmpDC.DrawPolygon(6, points); + } + + { + wxPoint points[6]; + points[0] = rotatedRect.GetBottomLeft(); + points[0].x += 1; + + points[1].x = points[0].x + MAJOR_CURVE_WIDTH; + points[1].y = rotatedRect.GetLeftTop().y + TOP_SMALL_HEIGHT + 1; + + points[2].x = points[1].x + SMALL_CURVE_WIDTH; + points[2].y = points[1].y - TOP_SMALL_HEIGHT; + + points[3].x = points[0].x + (rotatedRect.GetWidth() - 2 - (MAJOR_CURVE_WIDTH + SMALL_CURVE_WIDTH)); + points[3].y = points[2].y; + + points[4].x = points[3].x + SMALL_CURVE_WIDTH; + points[4].y = points[3].y + TOP_SMALL_HEIGHT; + + points[5] = rotatedRect.GetBottomRight(); + points[5].x -= 2; + + tmpDC.SetPen(IsActive() ? colours.activeTabInnerPenColour : colours.inactiveTabInnerPenColour); + tmpDC.SetBrush(bgColour); + tmpDC.DrawPolygon(6, points); + } + } else { + // Inactive tabs + wxDirection direction = wxNORTH; + wxPoint basePoint = ((style & kNotebook_LeftTabs) ? rotatedRect.GetLeftTop() : rotatedRect.GetRightTop()); + { + wxPoint pt = basePoint; + pt.x -= 1; + wxRect gr(pt, wxSize(1, rotatedRect.GetHeight())); + tmpDC.SetPen(*wxTRANSPARENT_PEN); + tmpDC.GradientFillLinear(gr, colours.inactiveTabPenColour, bgColour, direction); + } + { + wxPoint pt = basePoint; + wxRect gr(pt, wxSize(1, rotatedRect.GetHeight())); + tmpDC.SetPen(*wxTRANSPARENT_PEN); + tmpDC.GradientFillLinear(gr, colours.inactiveTabInnerPenColour, bgColour, direction); + } + { + wxPoint pt = basePoint; + pt.x += 1; + wxRect gr(pt, wxSize(1, rotatedRect.GetHeight())); + tmpDC.SetPen(*wxTRANSPARENT_PEN); + tmpDC.GradientFillLinear(gr, colours.inactiveTabPenColour, bgColour, direction); + } + } + + // Vertical tabs + // Draw bitmap + if(m_bitmap.IsOk()) { + tmpDC.DrawBitmap(m_bitmap, m_bmpY, m_bmpX); + } + + tmpDC.DrawText(m_label, m_textY, m_textX); + if(IsActive() && (style & kNotebook_CloseButtonOnActiveTab)) { + tmpDC.DrawBitmap(colours.closeButton, m_bmpCloseY, m_bmpCloseX); + } + tmpDC.SelectObject(wxNullBitmap); + wxImage img = b.ConvertToImage(); + img = img.Rotate90((style & kNotebook_RightTabs)); + b = wxBitmap(img); + dc.DrawBitmap(b, m_rect.GetTopLeft()); + + } else { + // Default tabs (placed at the top) + { + wxPoint points[6]; + points[0] = m_rect.GetBottomLeft(); + + points[1].x = points[0].x + MAJOR_CURVE_WIDTH; + points[1].y = m_rect.GetLeftTop().y + TOP_SMALL_HEIGHT; + + points[2].x = points[1].x + SMALL_CURVE_WIDTH; + points[2].y = points[1].y - TOP_SMALL_HEIGHT; + + points[3].x = points[0].x + (m_rect.GetWidth() - (MAJOR_CURVE_WIDTH + SMALL_CURVE_WIDTH)); + points[3].y = points[2].y; + + points[4].x = points[3].x + SMALL_CURVE_WIDTH; + points[4].y = points[3].y + TOP_SMALL_HEIGHT; + + points[5] = m_rect.GetBottomRight(); + + dc.SetPen(penColour); + dc.SetBrush(bgColour); + dc.DrawPolygon(6, points); + } + + { + wxPoint points[6]; + points[0] = m_rect.GetBottomLeft(); + points[0].x += 1; + + points[1].x = points[0].x + MAJOR_CURVE_WIDTH; + points[1].y = m_rect.GetLeftTop().y + TOP_SMALL_HEIGHT + 1; + + points[2].x = points[1].x + SMALL_CURVE_WIDTH; + points[2].y = points[1].y - TOP_SMALL_HEIGHT; + + points[3].x = points[0].x + (m_rect.GetWidth() - 2 - (MAJOR_CURVE_WIDTH + SMALL_CURVE_WIDTH)); + points[3].y = points[2].y; + + points[4].x = points[3].x + SMALL_CURVE_WIDTH; + points[4].y = points[3].y + TOP_SMALL_HEIGHT; + + points[5] = m_rect.GetBottomRight(); + points[5].x -= 2; + + dc.SetPen(IsActive() ? colours.activeTabInnerPenColour : colours.inactiveTabInnerPenColour); + dc.SetBrush(bgColour); + dc.DrawPolygon(6, points); + } + } + + if(!IS_VERTICAL_TABS(style)) { + // Draw bitmap + if(m_bitmap.IsOk()) { + dc.DrawBitmap(m_bitmap, m_bmpX + m_rect.GetX(), m_bmpY); + } + dc.DrawText(m_label, m_textX + m_rect.GetX(), m_textY); + if(IsActive() && (style & kNotebook_CloseButtonOnActiveTab)) { + dc.DrawBitmap(colours.closeButton, m_bmpCloseX + m_rect.GetX(), m_bmpCloseY); + } + } +} + +clTabInfo::clTabInfo(size_t style, wxWindow* page, const wxString& text, const wxBitmap& bmp) + : m_label(text) + , m_bitmap(bmp) + , m_window(page) + , m_active(false) +{ + CalculateOffsets(style); +} + +clTabInfo::clTabInfo() + : m_window(NULL) + , m_active(false) + , m_textX(wxNOT_FOUND) + , m_textY(wxNOT_FOUND) + , m_bmpX(wxNOT_FOUND) + , m_bmpY(wxNOT_FOUND) + , m_bmpCloseX(wxNOT_FOUND) + , m_bmpCloseY(wxNOT_FOUND) +{ + + CalculateOffsets(0); +} + +void clTabInfo::CalculateOffsets(size_t style) +{ + wxBitmap b(1, 1); + wxMemoryDC memDC(b); + m_bmpCloseX = wxNOT_FOUND; + m_bmpCloseY = wxNOT_FOUND; + + wxFont font = wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT); + memDC.SetFont(font); + + wxSize sz = memDC.GetTextExtent(m_label); + wxSize fixedHeight = memDC.GetTextExtent("Tp"); + if(IS_VERTICAL_TABS(style)) { + m_height = fixedHeight.GetHeight() + (5 * Y_SPACER); + } else { + m_height = fixedHeight.GetHeight() + (4 * Y_SPACER); + } + +#ifdef __WXGTK__ + // On GTK, limit the tab height + if(m_height >= 30) { + m_height = 30; + } +#endif + + m_width = 0; + if(!IS_VERTICAL_TABS(style) || true) { + m_width += MAJOR_CURVE_WIDTH; + m_width += SMALL_CURVE_WIDTH; + } + m_width += X_SPACER; + + // bitmap + m_bmpX = wxNOT_FOUND; + m_bmpY = wxNOT_FOUND; + + if(m_bitmap.IsOk()) { + m_bmpX = m_width; + m_width += X_SPACER; + m_width += m_bitmap.GetWidth(); + m_bmpY = ((m_height - m_bitmap.GetHeight()) / 2); + } + + // Text + m_textX = m_width; + m_textY = ((m_height - sz.y) / 2); + m_width += sz.x; + + // x button + if((style & kNotebook_CloseButtonOnActiveTab)) { + m_width += X_SPACER; + m_bmpCloseX = m_width; + m_bmpCloseY = ((m_height - 12) / 2); + m_width += 12; // X button is 10 pixels in size + } + + m_width += X_SPACER; + if(!IS_VERTICAL_TABS(style) || true) { + m_width += MAJOR_CURVE_WIDTH; + m_width += SMALL_CURVE_WIDTH; + } + + // Update the rect width + m_rect.SetWidth(m_width); + + if((style & kNotebook_RightTabs) || (style & kNotebook_LeftTabs)) { + + // swap the x and y coordinates + wxSwap(m_height, m_width); + wxSwap(m_bmpCloseY, m_bmpCloseX); + wxSwap(m_bmpY, m_bmpX); + wxSwap(m_textX, m_textY); + + m_rect.SetWidth(m_width); + m_rect.SetHeight(m_height); + m_rect.SetX(0); + m_rect.SetY(0); + } +} + +void clTabInfo::SetBitmap(const wxBitmap& bitmap, size_t style) +{ + this->m_bitmap = bitmap; + CalculateOffsets(style); +} + +void clTabInfo::SetLabel(const wxString& label, size_t style) +{ + this->m_label = label; + CalculateOffsets(style); +} + +void clTabInfo::SetActive(bool active, size_t style) +{ + this->m_active = active; + CalculateOffsets(style); +} + +//---------------------------------------------------------- +// Notebook header +//---------------------------------------------------------- +// ------------------------------------------------------------------------------- +// clTabCtrl class. +// This is where things are actually getting done +// ------------------------------------------------------------------------------- +clTabCtrl::clTabCtrl(wxWindow* notebook, size_t style) + : wxPanel(notebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxNO_BORDER | wxWANTS_CHARS | wxTAB_TRAVERSAL) + , m_style(style) + , m_closeButtonClickedIndex(wxNOT_FOUND) + , m_contextMenu(NULL) +{ + wxBitmap bmp(1, 1); + wxMemoryDC memDC(bmp); + wxFont font = wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT); + memDC.SetFont(font); + + wxSize sz = memDC.GetTextExtent("Tp"); + m_height = sz.GetHeight() + (4 * clTabInfo::Y_SPACER); + m_vTabsWidth = sz.GetHeight() + (5 * clTabInfo::Y_SPACER); +#ifdef __WXGTK__ + // On GTK, limit the tab height + if(m_height >= 30) { + m_height = 30; + } +#endif + SetDropTarget(new clTabCtrlDropTarget(this)); + if(IsVerticalTabs()) { + SetSizeHints(wxSize(m_vTabsWidth, -1)); + SetSize(m_vTabsWidth, -1); + } else { + SetSizeHints(wxSize(-1, m_height)); + SetSize(-1, m_height); + } + + Bind(wxEVT_PAINT, &clTabCtrl::OnPaint, this); + Bind(wxEVT_ERASE_BACKGROUND, &clTabCtrl::OnEraseBG, this); + Bind(wxEVT_SIZE, &clTabCtrl::OnSize, this); + Bind(wxEVT_LEFT_DOWN, &clTabCtrl::OnLeftDown, this); + Bind(wxEVT_LEFT_UP, &clTabCtrl::OnLeftUp, this); + Bind(wxEVT_MOTION, &clTabCtrl::OnMouseMotion, this); + Bind(wxEVT_MIDDLE_UP, &clTabCtrl::OnMouseMiddleClick, this); + Bind(wxEVT_CONTEXT_MENU, &clTabCtrl::OnContextMenu, this); + Bind(wxEVT_KEY_DOWN, &clTabCtrl::OnWindowKeyDown, this); + Bind(wxEVT_LEFT_DCLICK, &clTabCtrl::OnLeftDClick, this); + + notebook->Bind(wxEVT_KEY_DOWN, &clTabCtrl::OnWindowKeyDown, this); + if(m_style & kNotebook_DarkTabs) { + m_colours.InitDarkColours(); + } else { + m_colours.InitLightColours(); + } + // The history object + m_history.reset(new clTabHistory()); +} + +bool clTabCtrl::ShiftRight(clTabInfo::Vec_t& tabs) +{ + // Move the first tab from the list and adjust the remainder + // of the tabs x coordiate + if(!tabs.empty()) { + clTabInfo::Ptr_t t = tabs.at(0); + int width = t->GetWidth(); + tabs.erase(tabs.begin() + 0); + + for(size_t i = 0; i < tabs.size(); ++i) { + clTabInfo::Ptr_t t = tabs.at(i); + t->GetRect().SetX(t->GetRect().x - width + OVERLAP_WIDTH); + } + return true; + } + return false; +} + +bool clTabCtrl::IsActiveTabInList(const clTabInfo::Vec_t& tabs) const +{ + for(size_t i = 0; i < tabs.size(); ++i) { + if(tabs.at(i)->IsActive()) return true; + } + return false; +} + +bool clTabCtrl::IsActiveTabVisible(const clTabInfo::Vec_t& tabs) const +{ + wxRect clientRect(GetClientRect()); + if((GetStyle() & kNotebook_ShowFileListButton) && !IsVerticalTabs()) { + clientRect.SetWidth(clientRect.GetWidth() - 30); + } else if((GetStyle() & kNotebook_ShowFileListButton) && IsVerticalTabs()) { + // Vertical tabs + clientRect.SetHeight(clientRect.GetHeight() - 30); + } + + for(size_t i = 0; i < tabs.size(); ++i) { + clTabInfo::Ptr_t t = tabs.at(i); + if(t->IsActive() && clientRect.Intersects(t->GetRect())) return true; + } + return false; +} + +clTabCtrl::~clTabCtrl() +{ + wxDELETE(m_contextMenu); + Unbind(wxEVT_PAINT, &clTabCtrl::OnPaint, this); + Unbind(wxEVT_ERASE_BACKGROUND, &clTabCtrl::OnEraseBG, this); + Unbind(wxEVT_SIZE, &clTabCtrl::OnSize, this); + Unbind(wxEVT_LEFT_DOWN, &clTabCtrl::OnLeftDown, this); + Unbind(wxEVT_LEFT_UP, &clTabCtrl::OnLeftUp, this); + Unbind(wxEVT_MOTION, &clTabCtrl::OnMouseMotion, this); + Unbind(wxEVT_MIDDLE_UP, &clTabCtrl::OnMouseMiddleClick, this); + Unbind(wxEVT_CONTEXT_MENU, &clTabCtrl::OnContextMenu, this); + Unbind(wxEVT_KEY_DOWN, &clTabCtrl::OnWindowKeyDown, this); + Unbind(wxEVT_LEFT_DCLICK, &clTabCtrl::OnLeftDClick, this); + GetParent()->Unbind(wxEVT_KEY_DOWN, &clTabCtrl::OnWindowKeyDown, this); +} + +void clTabCtrl::OnWindowKeyDown(wxKeyEvent& event) +{ + if(GetStyle() & kNotebook_EnableNavigationEvent) { + if(event.ControlDown()) { + switch(event.GetKeyCode()) { + case WXK_TAB: + case WXK_PAGEDOWN: + case WXK_PAGEUP: { + // Fire the navigation event + wxBookCtrlEvent e(wxEVT_BOOK_NAVIGATING); + e.SetEventObject(GetParent()); + GetParent()->GetEventHandler()->AddPendingEvent(e); + return; + } + default: + break; + } + } + } + event.Skip(); +} + +void clTabCtrl::OnSize(wxSizeEvent& event) +{ + event.Skip(); + m_visibleTabs.clear(); + Refresh(); +} + +void clTabCtrl::OnEraseBG(wxEraseEvent& e) { wxUnusedVar(e); } + +void clTabCtrl::OnPaint(wxPaintEvent& e) +{ + wxBufferedPaintDC dc(this); + wxRect clientRect(GetClientRect()); + if(clientRect.width <= 3) return; + if(clientRect.height <= 3) return; + + m_chevronRect = wxRect(); + wxRect rect(GetClientRect()); + + if((GetStyle() & kNotebook_ShowFileListButton)) { + if(IsVerticalTabs()) { + rect.SetHeight(rect.GetHeight() - 16); + m_chevronRect = wxRect(rect.GetBottomLeft(), wxSize(rect.GetWidth(), 20)); + if(GetStyle() & kNotebook_RightTabs) { + m_chevronRect.x += clTabInfo::BOTTOM_AREA_HEIGHT; + } else { + m_chevronRect.x -= 2; + } + m_chevronRect.SetWidth(m_chevronRect.GetWidth() - clTabInfo::BOTTOM_AREA_HEIGHT); + rect.SetHeight(rect.GetHeight() + 16); + } else { + // Reduce the length of the tabs bitmap by 16 pixels (we will draw there the drop down + // button) + rect.SetWidth(rect.GetWidth() - 16); + m_chevronRect = wxRect(rect.GetTopRight(), wxSize(20, rect.GetHeight())); + if(GetStyle() & kNotebook_BottomTabs) { + m_chevronRect.y += clTabInfo::BOTTOM_AREA_HEIGHT; + } + m_chevronRect.SetHeight(m_chevronRect.GetHeight() - clTabInfo::BOTTOM_AREA_HEIGHT); + rect.SetWidth(rect.GetWidth() + 16); + } + } + + if(m_tabs.empty()) { + // Draw the default bg colour + dc.SetPen(wxSystemSettings::GetColour(wxSYS_COLOUR_3DFACE)); + dc.SetBrush(wxSystemSettings::GetColour(wxSYS_COLOUR_3DFACE)); + dc.DrawRectangle(GetClientRect()); + return; + } + + // Draw the tab area background colours + clTabInfo::Ptr_t active_tab = GetActiveTabInfo(); + wxColour tabAreaBgCol = m_colours.tabAreaColour; + clTabInfo::Colours activeTabColours = m_colours; + +#if CL_BUILD + if(active_tab && (GetStyle() & kNotebook_EnableColourCustomization)) { + // the background colour is set according to the active tab colour + clColourEvent colourEvent(wxEVT_COLOUR_TAB); + colourEvent.SetPage(active_tab->GetWindow()); + if(EventNotifier::Get()->ProcessEvent(colourEvent)) { + tabAreaBgCol = colourEvent.GetBgColour(); + activeTabColours.InitFromColours(colourEvent.GetBgColour(), colourEvent.GetFgColour()); + } + } +#endif + + // Draw background + dc.SetPen(tabAreaBgCol); + dc.SetBrush(tabAreaBgCol); + dc.DrawRectangle(GetClientRect()); + + for(size_t i = 0; i < m_tabs.size(); ++i) { + m_tabs.at(i)->CalculateOffsets(GetStyle()); + } + + if(rect.GetSize().x > 0 && rect.GetSize().y > 0) { + // wxBitmap bmpTabs(rect.GetSize()); + // wxMemoryDC memDC(bmpTabs); + wxGCDC gcdc(dc); + + gcdc.SetPen(tabAreaBgCol); + gcdc.SetBrush(tabAreaBgCol); + gcdc.DrawRectangle(rect.GetSize()); + + UpdateVisibleTabs(); + + int activeTabInex = wxNOT_FOUND; + for(int i = (m_visibleTabs.size() - 1); i >= 0; --i) { + clTabInfo::Ptr_t tab = m_visibleTabs.at(i); + if(tab->IsActive()) { + activeTabInex = i; + } + +#if CL_BUILD + // send event per tab to get their colours + clColourEvent colourEvent(wxEVT_COLOUR_TAB); + colourEvent.SetPage(tab->GetWindow()); + if((GetStyle() & kNotebook_EnableColourCustomization) && EventNotifier::Get()->ProcessEvent(colourEvent)) { + clTabInfo::Colours colours; + colours.InitFromColours(colourEvent.GetBgColour(), colourEvent.GetFgColour()); + tab->Draw(gcdc, colours, m_style); + } else { + tab->Draw(gcdc, m_colours, m_style); + } +#else + tab->Draw(gcdc, m_colours, m_style); +#endif + } + + // Redraw the active tab + if(activeTabInex != wxNOT_FOUND) { + m_visibleTabs.at(activeTabInex)->Draw(gcdc, activeTabColours, m_style); + } + + if(activeTabInex != wxNOT_FOUND) { + clTabInfo::Ptr_t activeTab = m_visibleTabs.at(activeTabInex); + if(!(GetStyle() & kNotebook_VerticalButtons)) { + DoDrawBottomBox(activeTab, clientRect, gcdc, activeTabColours); + } + } + + if((GetStyle() & kNotebook_ShowFileListButton)) { + // Draw the chevron + wxCoord chevronX = + m_chevronRect.GetTopLeft().x + ((m_chevronRect.GetWidth() - m_colours.chevronDown.GetWidth()) / 2); + wxCoord chevronY = + m_chevronRect.GetTopLeft().y + ((m_chevronRect.GetHeight() - m_colours.chevronDown.GetHeight()) / 2); + // dc.SetPen(activeTabColours.tabAreaColour); + // dc.SetBrush(*wxTRANSPARENT_BRUSH); + // dc.DrawRectangle(m_chevronRect); + dc.DrawBitmap(m_colours.chevronDown, chevronX, chevronY); + } + + } else { + m_visibleTabs.clear(); + } +} + +void clTabCtrl::DoUpdateCoordiantes(clTabInfo::Vec_t& tabs) +{ + int majorDimension = 5; + if(IsVerticalTabs()) { + majorDimension = 0; + } + + for(size_t i = 0; i < tabs.size(); ++i) { + clTabInfo::Ptr_t tab = tabs.at(i); + if(IsVerticalTabs()) { + if(GetStyle() & kNotebook_VerticalButtons) { + tab->GetRect().SetX(0); + } else { + tab->GetRect().SetX(GetStyle() & kNotebook_LeftTabs ? 1 : 0); + } + tab->GetRect().SetY(majorDimension); + tab->GetRect().SetWidth(tab->GetWidth()); + tab->GetRect().SetHeight(tab->GetHeight()); + majorDimension += tab->GetHeight() - V_OVERLAP_WIDTH; + } else { + tab->GetRect().SetX(majorDimension); + tab->GetRect().SetY(0); + tab->GetRect().SetWidth(tab->GetWidth()); + tab->GetRect().SetHeight(tab->GetHeight()); + majorDimension += tab->GetWidth() - OVERLAP_WIDTH; + } + } +} + +void clTabCtrl::UpdateVisibleTabs() +{ + // don't update the list if we don't need to + if(!IsVerticalTabs()) { + if(IsActiveTabInList(m_visibleTabs) && IsActiveTabVisible(m_visibleTabs)) return; + } + + // set the physical coords for each tab (we do this for all the tabs) + DoUpdateCoordiantes(m_tabs); + + // Start shifting right tabs until the active tab is visible + m_visibleTabs = m_tabs; + if(!IsVerticalTabs()) { + while(!IsActiveTabVisible(m_visibleTabs)) { + if(!ShiftRight(m_visibleTabs)) break; + } + } else { + while(!IsActiveTabVisible(m_visibleTabs)) { + if(!ShiftBottom(m_visibleTabs)) break; + } + } +} + +void clTabCtrl::OnLeftDown(wxMouseEvent& event) +{ + event.Skip(); + m_closeButtonClickedIndex = wxNOT_FOUND; + + if((GetStyle() & kNotebook_ShowFileListButton) && m_chevronRect.Contains(event.GetPosition())) { + // we will handle this later in the "Mouse Up" event + return; + } + + int tabHit, realPos; + TestPoint(event.GetPosition(), realPos, tabHit); + if(tabHit == wxNOT_FOUND) return; + + // Did we hit the active tab? + bool clickWasOnActiveTab = (GetSelection() == realPos); + + // If the click was not on the active tab, set the clicked + // tab as the new selection and leave this function + if(!clickWasOnActiveTab) { + SetSelection(realPos); + return; + } + + // If we clicked on the active and we have a close button - handle it here + if((GetStyle() & kNotebook_CloseButtonOnActiveTab) && clickWasOnActiveTab) { + // we clicked on the selected index + clTabInfo::Ptr_t t = m_visibleTabs.at(tabHit); + wxRect xRect(t->GetRect().x + t->GetBmpCloseX(), t->GetRect().y + t->GetBmpCloseY(), 16, 16); + if(xRect.Contains(event.GetPosition())) { + m_closeButtonClickedIndex = tabHit; + return; + } + } + + // We clicked on the active tab, start DnD operation + if((m_style & kNotebook_AllowDnD) && clickWasOnActiveTab) { + // We simply drag the active tab index + wxString dragText; + dragText << "{Class:Notebook,TabIndex:" << GetSelection() << "}"; + wxTextDataObject dragContent(dragText); + wxDropSource dragSource(this); + dragSource.SetData(dragContent); + wxDragResult result = dragSource.DoDragDrop(true); + wxUnusedVar(result); + } +} + +int clTabCtrl::ChangeSelection(size_t tabIdx) +{ + wxWindowUpdateLocker locker(GetParent()); + int oldSelection = GetSelection(); + if(!IsIndexValid(tabIdx)) return oldSelection; + + for(size_t i = 0; i < m_tabs.size(); ++i) { + clTabInfo::Ptr_t tab = m_tabs.at(i); + tab->SetActive((i == tabIdx), GetStyle()); + } + + clTabInfo::Ptr_t activeTab = GetActiveTabInfo(); + if(activeTab) { + static_cast(GetParent())->DoChangeSelection(activeTab->GetWindow()); + activeTab->GetWindow()->CallAfter(&wxWindow::SetFocus); + } + + Refresh(); + return oldSelection; +} + +int clTabCtrl::SetSelection(size_t tabIdx) +{ +#ifdef __WXMSW__ + DoChangeSelection(tabIdx); +#else + CallAfter(&clTabCtrl::DoChangeSelection, tabIdx); +#endif + return wxNOT_FOUND; +} + +int clTabCtrl::GetSelection() const +{ + for(size_t i = 0; i < m_tabs.size(); ++i) { + clTabInfo::Ptr_t tab = m_tabs.at(i); + if(tab->IsActive()) return i; + } + return wxNOT_FOUND; +} + +clTabInfo::Ptr_t clTabCtrl::GetTabInfo(size_t index) +{ + if(!IsIndexValid(index)) return clTabInfo::Ptr_t(NULL); + return m_tabs.at(index); +} + +clTabInfo::Ptr_t clTabCtrl::GetTabInfo(size_t index) const +{ + if(!IsIndexValid(index)) return clTabInfo::Ptr_t(NULL); + return m_tabs.at(index); +} + +clTabInfo::Ptr_t clTabCtrl::GetTabInfo(wxWindow* page) +{ + for(size_t i = 0; i < m_tabs.size(); ++i) { + clTabInfo::Ptr_t tab = m_tabs.at(i); + if(tab->GetWindow() == page) return tab; + } + return clTabInfo::Ptr_t(NULL); +} + +bool clTabCtrl::SetPageText(size_t page, const wxString& text) +{ + clTabInfo::Ptr_t tab = GetTabInfo(page); + if(!tab) return false; + tab->SetLabel(text, GetStyle()); + Refresh(); + return true; +} + +clTabInfo::Ptr_t clTabCtrl::GetActiveTabInfo() +{ + for(size_t i = 0; i < m_tabs.size(); ++i) { + if(m_tabs.at(i)->IsActive()) { + return m_tabs.at(i); + } + } + return clTabInfo::Ptr_t(NULL); +} + +void clTabCtrl::AddPage(clTabInfo::Ptr_t tab) { InsertPage(m_tabs.size(), tab); } + +WindowStack* clTabCtrl::GetStack() { return reinterpret_cast(GetParent())->m_windows; } + +bool clTabCtrl::InsertPage(size_t index, clTabInfo::Ptr_t tab) +{ + int oldSelection = GetSelection(); + if(index > m_tabs.size()) return false; + m_tabs.insert(m_tabs.begin() + index, tab); + bool sendPageChangedEvent = (oldSelection == wxNOT_FOUND) || tab->IsActive(); + + int tabIndex = index; + GetStack()->Add(tab->GetWindow(), tab->IsActive()); + if(sendPageChangedEvent) { + ChangeSelection(tabIndex); + + // Send an event + wxBookCtrlEvent event(wxEVT_BOOK_PAGE_CHANGED); + event.SetEventObject(GetParent()); + event.SetSelection(GetSelection()); + event.SetOldSelection(oldSelection); + GetParent()->GetEventHandler()->ProcessEvent(event); + } + + tab->GetWindow()->Bind(wxEVT_KEY_DOWN, &clTabCtrl::OnWindowKeyDown, this); + m_history->Push(tab->GetWindow()); + Refresh(); + return true; +} + +wxString clTabCtrl::GetPageText(size_t page) const +{ + clTabInfo::Ptr_t tab = GetTabInfo(page); + if(tab) return tab->GetLabel(); + return ""; +} + +wxBitmap clTabCtrl::GetPageBitmap(size_t index) const +{ + clTabInfo::Ptr_t tab = GetTabInfo(index); + if(tab) return tab->GetBitmap(); + return wxNullBitmap; +} + +void clTabCtrl::SetPageBitmap(size_t index, const wxBitmap& bmp) +{ + clTabInfo::Ptr_t tab = GetTabInfo(index); + if(tab) { + + int oldWidth = tab->GetWidth(); + tab->SetBitmap(bmp, GetStyle()); + int newWidth = tab->GetWidth(); + int diff = (newWidth - oldWidth); + + // Update the coordinates starting from the current tab + clTabInfo::Vec_t tabsToUpdate; + bool foundActiveTab = false; + for(size_t i = 0; i < m_tabs.size(); ++i) { + if(!foundActiveTab && (m_tabs.at(i)->GetWindow() == tab->GetWindow())) { + foundActiveTab = true; + } else if(foundActiveTab) { + m_tabs.at(i)->GetRect().SetX(m_tabs.at(i)->GetRect().GetX() + diff); + } + } + Refresh(); + } +} + +void clTabCtrl::OnLeftUp(wxMouseEvent& event) +{ + event.Skip(); + + // First check if the chevron was clicked. We do this because the chevron could overlap the buttons drawing + // area + if((GetStyle() & kNotebook_ShowFileListButton) && m_chevronRect.Contains(event.GetPosition())) { + // Show the drop down list + CallAfter(&clTabCtrl::DoShowTabList); + + } else { + int tabHit, realPos; + TestPoint(event.GetPosition(), realPos, tabHit); + if(tabHit != wxNOT_FOUND) { + if((GetStyle() & kNotebook_CloseButtonOnActiveTab) && m_visibleTabs.at(tabHit)->IsActive()) { + // we clicked on the selected index + clTabInfo::Ptr_t t = m_visibleTabs.at(tabHit); + wxRect xRect(t->GetRect().x + t->GetBmpCloseX(), t->GetRect().y + t->GetBmpCloseY(), 16, 16); + xRect.Inflate(2); // don't be picky if we did not click exactly on the 16x16 bitmap... + + if(m_closeButtonClickedIndex == tabHit && xRect.Contains(event.GetPosition())) { + if(GetStyle() & kNotebook_CloseButtonOnActiveTabFireEvent) { + // let the user process this + wxBookCtrlEvent event(wxEVT_BOOK_PAGE_CLOSE_BUTTON); + event.SetEventObject(GetParent()); + event.SetSelection(realPos); + GetParent()->GetEventHandler()->AddPendingEvent(event); + } else { + CallAfter(&clTabCtrl::DoDeletePage, realPos); + } + } + } + } + } +} + +void clTabCtrl::OnMouseMotion(wxMouseEvent& event) +{ + event.Skip(); + int realPos, tabHit; + wxString curtip = GetToolTipText(); + TestPoint(event.GetPosition(), realPos, tabHit); + if(tabHit == wxNOT_FOUND || realPos == wxNOT_FOUND) { + if(!curtip.IsEmpty()) { + SetToolTip(""); + } + } else { + wxString pagetip = m_tabs.at(realPos)->GetTooltip(); + if(pagetip != curtip) { + SetToolTip(pagetip); + } + } +} + +void clTabCtrl::TestPoint(const wxPoint& pt, int& realPosition, int& tabHit) +{ + realPosition = wxNOT_FOUND; + tabHit = wxNOT_FOUND; + + if(m_visibleTabs.empty()) return; + + // Because the tabs are overlapping, we need to test + // the active tab first + clTabInfo::Ptr_t activeTab = GetActiveTabInfo(); + if(activeTab && activeTab->GetRect().Contains(pt)) { + for(size_t i = 0; i < m_visibleTabs.size(); ++i) { + if(m_visibleTabs.at(i)->GetWindow() == activeTab->GetWindow()) { + tabHit = i; + realPosition = DoGetPageIndex(m_visibleTabs.at(i)->GetWindow()); + return; + } + } + } + + for(size_t i = 0; i < m_visibleTabs.size(); ++i) { + clTabInfo::Ptr_t tab = m_visibleTabs.at(i); + if(tab->GetRect().Contains(pt)) { + tabHit = i; + realPosition = DoGetPageIndex(tab->GetWindow()); + return; + } + } +} + +void clTabCtrl::SetStyle(size_t style) +{ + this->m_style = style; + if(IsVerticalTabs()) { + SetSizeHints(wxSize(m_vTabsWidth, -1)); + SetSize(m_vTabsWidth, -1); + } else { + SetSizeHints(wxSize(-1, m_height)); + SetSize(-1, m_height); + } + + if(style & kNotebook_DarkTabs) { + m_colours.InitDarkColours(); + } else { + m_colours.InitLightColours(); + } + + for(size_t i = 0; i < m_tabs.size(); ++i) { + m_tabs.at(i)->CalculateOffsets(GetStyle()); + } + m_visibleTabs.clear(); + Layout(); + Refresh(); +} + +wxWindow* clTabCtrl::GetPage(size_t index) const +{ + clTabInfo::Ptr_t tab = GetTabInfo(index); + if(tab) return tab->GetWindow(); + return NULL; +} + +bool clTabCtrl::IsIndexValid(size_t index) const { return (index < m_tabs.size()); } + +clTabInfo::Colours::Colours() { InitDarkColours(); } + +void clTabInfo::Colours::InitFromColours(const wxColour& baseColour, const wxColour& textColour) +{ +#if CL_BUILD + if(DrawingUtils::IsDark(baseColour)) { + activeTabTextColour = "WHITE"; + activeTabBgColour = baseColour; + activeTabPenColour = baseColour.ChangeLightness(80); + activeTabInnerPenColour = baseColour.ChangeLightness(120); + + inactiveTabTextColour = "WHITE"; + inactiveTabBgColour = baseColour.ChangeLightness(110); + inactiveTabPenColour = inactiveTabBgColour.ChangeLightness(80); + inactiveTabInnerPenColour = inactiveTabBgColour.ChangeLightness(120); + + tabAreaColour = baseColour.ChangeLightness(130); + // 12x12 bitmap + closeButton = wxXmlResource::Get()->LoadBitmap("notebook-dark-x"); + chevronDown = wxXmlResource::Get()->LoadBitmap("chevron-down-grey"); + } else { + activeTabTextColour = "BLACK"; + activeTabBgColour = baseColour; + activeTabPenColour = baseColour.ChangeLightness(80); + activeTabInnerPenColour = "WHITE"; + + inactiveTabTextColour = "BLACK"; + inactiveTabBgColour = baseColour.ChangeLightness(90); + inactiveTabPenColour = inactiveTabBgColour.ChangeLightness(80); + inactiveTabInnerPenColour = baseColour; + + tabAreaColour = baseColour.ChangeLightness(130); + // 12x12 bitmap + closeButton = wxXmlResource::Get()->LoadBitmap("notebook-light-x"); + chevronDown = wxXmlResource::Get()->LoadBitmap("chevron-down-black"); + } +#else + wxUnusedVar(baseColour); + wxUnusedVar(textColour); +#endif +} + +void clTabInfo::Colours::InitDarkColours() +{ + activeTabTextColour = "WHITE"; + activeTabBgColour = wxColour("#211e1e"); + activeTabPenColour = wxColour("#0e0d0d"); + activeTabInnerPenColour = wxColour("#343131"); + + inactiveTabTextColour = wxColour("rgb(200, 200, 200)"); + inactiveTabBgColour = wxColour("#393838"); + inactiveTabPenColour = wxColour("#100f0f"); + inactiveTabInnerPenColour = wxColour("#535252"); + + tabAreaColour = wxColour("#131111").ChangeLightness(115); + // 12x12 bitmap + closeButton = wxXmlResource::Get()->LoadBitmap("notebook-dark-x"); + chevronDown = wxXmlResource::Get()->LoadBitmap("chevron-down-grey"); +} + +void clTabInfo::Colours::InitLightColours() +{ + activeTabTextColour = "#444444"; + activeTabPenColour = "#b9b9b9"; + activeTabInnerPenColour = "#ffffff"; + + inactiveTabTextColour = "#444444"; +//#ifdef __WXMSW__ +// activeTabBgColour = "#FBFBFB"; +//#else + activeTabBgColour = "#f0f0f0"; +//#endif + inactiveTabBgColour = "#e5e5e5"; + inactiveTabPenColour = "#b9b9b9"; + inactiveTabInnerPenColour = "#ffffff"; + + tabAreaColour = "#dcdcdc"; // wxColour("rgb(64, 64, 64)"); + // 12x12 bitmap + closeButton = wxXmlResource::Get()->LoadBitmap("notebook-light-x"); + chevronDown = wxXmlResource::Get()->LoadBitmap("chevron-down-black"); +} + +int clTabCtrl::FindPage(wxWindow* page) const +{ + for(size_t i = 0; i < m_tabs.size(); ++i) { + if(m_tabs.at(i)->GetWindow() == page) { + return i; + } + } + return wxNOT_FOUND; +} + +bool clTabCtrl::RemovePage(size_t page, bool notify, bool deletePage) +{ + wxWindow* nextSelection = NULL; + if(!IsIndexValid(page)) return false; + bool deletingSelection = ((int)page == GetSelection()); + + if(notify) { + wxBookCtrlEvent event(wxEVT_BOOK_PAGE_CLOSING); + event.SetEventObject(GetParent()); + event.SetSelection(page); + GetParent()->GetEventHandler()->ProcessEvent(event); + if(!event.IsAllowed()) { + // Vetoed + return false; + } + } + + // Remove the tab from the "all-tabs" list + clTabInfo::Ptr_t tab = m_tabs.at(page); + m_tabs.erase(m_tabs.begin() + page); + + // Remove this page from the history + m_history->Pop(tab->GetWindow()); + tab->GetWindow()->Unbind(wxEVT_KEY_DOWN, &clTabCtrl::OnWindowKeyDown, this); + + // Remove the tabs from the visible tabs list + clTabInfo::Vec_t::iterator iter = std::find_if(m_visibleTabs.begin(), m_visibleTabs.end(), [&](clTabInfo::Ptr_t t) { + if(t->GetWindow() == tab->GetWindow()) { + return true; + } + return false; + }); + if(iter != m_visibleTabs.end()) { + iter = m_visibleTabs.erase(iter); + + for(; iter != m_visibleTabs.end(); ++iter) { + // update the remainding tabs coordinates + if(IsVerticalTabs()) { + (*iter)->GetRect().SetY((*iter)->GetRect().GetY() - tab->GetHeight() + V_OVERLAP_WIDTH); + } else { + (*iter)->GetRect().SetX((*iter)->GetRect().GetX() - tab->GetWidth() + OVERLAP_WIDTH); + } + } + } + + // Choose a new selection, but only if we are deleting the active tab + nextSelection = NULL; + if(deletingSelection) { + while(!m_history->GetHistory().IsEmpty() && !nextSelection) { + nextSelection = m_history->PrevPage(); + if(!GetTabInfo(nextSelection)) { + // The history contains a tab that no longer exists + m_history->Pop(nextSelection); + nextSelection = NULL; + } + } + // It is OK to end up with a null next selection, we will handle it later + } + + // Now remove the page from the notebook. We will delete the page + // ourself, so there is no need to call DeletePage + GetStack()->Remove(tab->GetWindow()); + if(deletePage) { + // Destory the page + tab->GetWindow()->Destroy(); + } + + if(notify) { + wxBookCtrlEvent event(wxEVT_BOOK_PAGE_CLOSED); + event.SetEventObject(GetParent()); + event.SetSelection(GetSelection()); + GetParent()->GetEventHandler()->ProcessEvent(event); + if(!event.IsAllowed()) { + // Vetoed + return false; + } + } + + // Choose the next page + if(deletingSelection) { + // Always make sure we have something to select... + if(!nextSelection && !m_tabs.empty()) { + nextSelection = m_tabs.at(0)->GetWindow(); + } + + int nextSel = DoGetPageIndex(nextSelection); + if(nextSel != wxNOT_FOUND) { + ChangeSelection(nextSel); + if(notify) { + wxBookCtrlEvent event(wxEVT_BOOK_PAGE_CHANGED); + event.SetEventObject(GetParent()); + event.SetSelection(GetSelection()); + GetParent()->GetEventHandler()->ProcessEvent(event); + } + } else { + Refresh(); + } + } else { + Refresh(); + } + return true; +} + +int clTabCtrl::DoGetPageIndex(wxWindow* win) const +{ + if(!win) return wxNOT_FOUND; + for(size_t i = 0; i < m_tabs.size(); ++i) { + if(m_tabs.at(i)->GetWindow() == win) return i; + } + return wxNOT_FOUND; +} + +bool clTabCtrl::DeleteAllPages() +{ + GetStack()->Clear(); + m_tabs.clear(); + m_visibleTabs.clear(); + m_history->Clear(); + Refresh(); + return true; +} + +void clTabCtrl::OnMouseMiddleClick(wxMouseEvent& event) +{ + event.Skip(); + if(GetStyle() & kNotebook_MouseMiddleClickClosesTab) { + int realPos, tabHit; + TestPoint(event.GetPosition(), realPos, tabHit); + if(realPos != wxNOT_FOUND) { + CallAfter(&clTabCtrl::DoDeletePage, realPos); + } + } else if(GetStyle() & kNotebook_MouseMiddleClickFireEvent) { + int realPos, tabHit; + TestPoint(event.GetPosition(), realPos, tabHit); + if(realPos != wxNOT_FOUND) { + // Just fire an event + wxBookCtrlEvent e(wxEVT_BOOK_PAGE_CLOSE_BUTTON); + e.SetEventObject(GetParent()); + e.SetSelection(realPos); + GetParent()->GetEventHandler()->AddPendingEvent(e); + } + } +} + +void clTabCtrl::GetAllPages(std::vector& pages) +{ + std::for_each( + m_tabs.begin(), m_tabs.end(), [&](clTabInfo::Ptr_t tabInfo) { pages.push_back(tabInfo->GetWindow()); }); +} + +void clTabCtrl::SetMenu(wxMenu* menu) +{ + wxDELETE(m_contextMenu); + m_contextMenu = menu; +} + +void clTabCtrl::OnContextMenu(wxContextMenuEvent& event) +{ + event.Skip(); + if(!m_contextMenu) return; + + wxPoint pt = ::wxGetMousePosition(); + pt = ScreenToClient(pt); + int realPos, tabHit; + TestPoint(pt, realPos, tabHit); + + if((realPos != wxNOT_FOUND) && (realPos == GetSelection())) { + // Show context menu for active tabs only + PopupMenu(m_contextMenu); + } +} + +void clTabCtrl::DoShowTabList() +{ + if(m_tabs.empty()) return; + + int curselection = GetSelection(); + wxMenu menu; + const int firstTabPageID = 13457; + int pageMenuID = firstTabPageID; + for(size_t i = 0; i < m_tabs.size(); ++i) { + clTabInfo::Ptr_t tab = m_tabs.at(i); + wxMenuItem* item = new wxMenuItem(&menu, pageMenuID, tab->GetLabel(), "", wxITEM_CHECK); + menu.Append(item); + item->Check(tab->IsActive()); + pageMenuID++; + } + + int selection = GetPopupMenuSelectionFromUser(menu, m_chevronRect.GetBottomLeft()); + if(selection != wxID_NONE) { + selection -= firstTabPageID; + // don't change the selection unless the selection is really changing + if(curselection != selection) { + SetSelection(selection); + } + } +} + +bool clTabCtrl::SetPageToolTip(size_t page, const wxString& tooltip) +{ + clTabInfo::Ptr_t tab = GetTabInfo(page); + if(tab) { + tab->SetTooltip(tooltip); + return true; + } + return false; +} + +int clTabCtrl::DoGetPageIndex(const wxString& label) const +{ + for(size_t i = 0; i < m_tabs.size(); ++i) { + if(m_tabs.at(i)->GetLabel() == label) return i; + } + return wxNOT_FOUND; +} + +void clTabCtrl::DoChangeSelection(size_t index) +{ + // sanity + if(index >= m_tabs.size()) return; + + int oldSelection = GetSelection(); + /// Do nothing if the tab is already selected + if(oldSelection == (int)index) { + ChangeSelection(index); + return; + } + + { + wxBookCtrlEvent event(wxEVT_BOOK_PAGE_CHANGING); + event.SetEventObject(GetParent()); + event.SetSelection(oldSelection); + event.SetOldSelection(wxNOT_FOUND); + GetParent()->GetEventHandler()->ProcessEvent(event); + + if(!event.IsAllowed()) { + return; // Vetoed by the user + } + } + ChangeSelection(index); + + // Keep this page + m_history->Push(GetPage(index)); + + // Fire an event + { + wxBookCtrlEvent event(wxEVT_BOOK_PAGE_CHANGED); + event.SetEventObject(GetParent()); + event.SetSelection(GetSelection()); + event.SetOldSelection(oldSelection); + GetParent()->GetEventHandler()->ProcessEvent(event); + } +} + +bool clTabCtrl::MoveActiveToIndex(int newIndex) +{ + int activeTabInex = GetSelection(); + + // Sanity + if(newIndex == wxNOT_FOUND) return false; + if(activeTabInex == wxNOT_FOUND) return false; + + bool movingTabRight = (newIndex > activeTabInex); + + clTabInfo::Ptr_t movingTab = GetActiveTabInfo(); + clTabInfo::Ptr_t insertBeforeTab = m_tabs.at(newIndex); + + if(!movingTab) return false; + + // Step 1: + // Remove the tab from both the active and from the visible tabs array + clTabInfo::Vec_t::iterator iter = std::find_if(m_visibleTabs.begin(), m_visibleTabs.end(), [&](clTabInfo::Ptr_t t) { + if(t->GetWindow() == movingTab->GetWindow()) { + return true; + } + return false; + }); + if(iter != m_visibleTabs.end()) { + m_visibleTabs.erase(iter); + } + iter = std::find_if(m_tabs.begin(), m_tabs.end(), [&](clTabInfo::Ptr_t t) { + if(t->GetWindow() == movingTab->GetWindow()) { + return true; + } + return false; + }); + if(iter != m_tabs.end()) { + m_tabs.erase(iter); + } + + // Step 2: + // Insert 'tab' in its new position (in both arrays) + iter = std::find_if(m_tabs.begin(), m_tabs.end(), [&](clTabInfo::Ptr_t t) { + if(t->GetWindow() == insertBeforeTab->GetWindow()) { + return true; + } + return false; + }); + + if(movingTabRight) { + ++iter; + // inser the new tab _after_ + if(iter != m_tabs.end()) { + m_tabs.insert(iter, movingTab); + } else { + m_tabs.push_back(movingTab); + } + + iter = std::find_if(m_visibleTabs.begin(), m_visibleTabs.end(), [&](clTabInfo::Ptr_t t) { + if(t->GetWindow() == insertBeforeTab->GetWindow()) { + return true; + } + return false; + }); + ++iter; + if(iter != m_visibleTabs.end()) { + m_visibleTabs.insert(iter, movingTab); + } else { + m_visibleTabs.push_back(movingTab); + } + } else { + if(iter != m_tabs.end()) { + m_tabs.insert(iter, movingTab); + } + + iter = std::find_if(m_visibleTabs.begin(), m_visibleTabs.end(), [&](clTabInfo::Ptr_t t) { + if(t->GetWindow() == insertBeforeTab->GetWindow()) { + return true; + } + return false; + }); + if(iter != m_visibleTabs.end()) { + m_visibleTabs.insert(iter, movingTab); + } + } + // Step 3: + // Update the visible tabs coordinates + DoUpdateCoordiantes(m_visibleTabs); + + // And finally: Refresh + Refresh(); + return true; +} + +void clTabCtrl::OnLeftDClick(wxMouseEvent& event) +{ + event.Skip(); + int realPos, tabHit; + TestPoint(event.GetPosition(), realPos, tabHit); + if(tabHit == wxNOT_FOUND) { + // Fire background d-clicked event + wxBookCtrlEvent e(wxEVT_BOOK_TABAREA_DCLICKED); + e.SetEventObject(GetParent()); + GetParent()->GetEventHandler()->AddPendingEvent(e); + } else { + // a tab was hit + wxBookCtrlEvent e(wxEVT_BOOK_TAB_DCLICKED); + e.SetEventObject(GetParent()); + e.SetSelection(realPos); + GetParent()->GetEventHandler()->AddPendingEvent(e); + } +} + +void clTabCtrl::DoDrawBottomBox(clTabInfo::Ptr_t activeTab, + const wxRect& clientRect, + wxDC& dc, + const clTabInfo::Colours& colours) +{ + if(GetStyle() & kNotebook_LeftTabs) { + // Draw 3 lines on the right + dc.SetPen(colours.activeTabPenColour); + dc.SetBrush(colours.activeTabBgColour); + wxPoint topLeft = clientRect.GetTopRight(); + wxSize rectSize(clTabInfo::BOTTOM_AREA_HEIGHT + 2, clientRect.height); + topLeft.x -= clTabInfo::BOTTOM_AREA_HEIGHT; + wxRect bottomRect(topLeft, rectSize); + + // We intentionally move the rect out of the client rect + // so the top and bottom lines will be drawn out of screen + bottomRect.y -= 1; + bottomRect.height += 2; + dc.DrawRectangle(bottomRect); + + // Draw a line under the active tab + // that will erase the line drawn by the above rect + wxPoint from, to; + from = activeTab->GetRect().GetTopRight(); + to = activeTab->GetRect().GetBottomRight(); + from.x = bottomRect.GetTopLeft().x; + to.x = bottomRect.GetTopLeft().x; + from.y += 2; + to.y -= 2; + + dc.SetPen(colours.activeTabBgColour); + dc.DrawLine(from, to); +#ifdef __WXOSX__ + dc.DrawLine(from, to); + dc.DrawLine(from, to); + dc.DrawLine(from, to); +#endif + } else if(GetStyle() & kNotebook_RightTabs) { + // Draw 3 lines on the right + dc.SetPen(colours.activeTabPenColour); + dc.SetBrush(colours.activeTabBgColour); + wxPoint topLeft = clientRect.GetTopLeft(); + wxSize rectSize(clTabInfo::BOTTOM_AREA_HEIGHT + 2, clientRect.height); + wxRect bottomRect(topLeft, rectSize); + + // We intentionally move the rect out of the client rect + // so the top and bottom lines will be drawn out of screen + bottomRect.y -= 1; + bottomRect.height += 2; + dc.DrawRectangle(bottomRect); + + // Draw a line under the active tab + // that will erase the line drawn by the above rect + wxPoint from, to; + from = activeTab->GetRect().GetTopLeft(); + to = activeTab->GetRect().GetBottomLeft(); + from.x = bottomRect.GetTopRight().x; + to.x = bottomRect.GetTopRight().x; + from.y += 2; + to.y -= 2; + + dc.SetPen(colours.activeTabBgColour); + dc.DrawLine(from, to); +#ifdef __WXOSX__ + dc.DrawLine(from, to); + dc.DrawLine(from, to); + dc.DrawLine(from, to); +#endif + + } else if(GetStyle() & kNotebook_BottomTabs) { + // Draw 3 lines at the top + dc.SetPen(colours.activeTabPenColour); + dc.SetBrush(colours.activeTabBgColour); + wxPoint topLeft = clientRect.GetTopLeft(); + wxSize rectSize(clientRect.width, clTabInfo::BOTTOM_AREA_HEIGHT); + topLeft.y = 0; + wxRect bottomRect(topLeft, rectSize); + // We intentionally move the rect out of the client rect + // so the left and right lines will be drawn out of screen + bottomRect.x -= 1; + bottomRect.width += 2; + dc.DrawRectangle(bottomRect); + + // Draw a line under the active tab + // that will erase the line drawn by the above rect + wxPoint from, to; + from = activeTab->GetRect().GetTopLeft(); + to = activeTab->GetRect().GetTopRight(); + from.y += clTabInfo::BOTTOM_AREA_HEIGHT - 1; + from.x += 2; + to.y += clTabInfo::BOTTOM_AREA_HEIGHT - 1; + to.x -= 2; + + dc.SetPen(colours.activeTabBgColour); + dc.DrawLine(from, to); +#ifdef __WXOSX__ + dc.DrawLine(from, to); + dc.DrawLine(from, to); + dc.DrawLine(from, to); +#endif + + } else { + // Draw 3 lines at the bottom + dc.SetPen(colours.activeTabPenColour); + dc.SetBrush(colours.activeTabBgColour); + wxPoint topLeft = clientRect.GetBottomLeft(); + wxSize rectSize(clientRect.width, clTabInfo::BOTTOM_AREA_HEIGHT); + topLeft.y -= rectSize.GetHeight() - 1; + wxRect bottomRect(topLeft, rectSize); + // We intentionally move the rect out of the client rect + // so the left and right lines will be drawn out of screen + bottomRect.x -= 1; + bottomRect.width += 2; + dc.DrawRectangle(bottomRect); + + // Draw a line under the active tab + // that will erase the line drawn by the above rect + wxPoint from, to; + from = activeTab->GetRect().GetBottomLeft(); + to = activeTab->GetRect().GetBottomRight(); + from.y -= clTabInfo::BOTTOM_AREA_HEIGHT - 1; + from.x += 2; + to.y -= clTabInfo::BOTTOM_AREA_HEIGHT - 1; + to.x -= 2; + + dc.SetPen(colours.activeTabBgColour); + dc.DrawLine(from, to); +#ifdef __WXOSX__ + dc.DrawLine(from, to); + dc.DrawLine(from, to); + dc.DrawLine(from, to); +#endif + } +} + +bool clTabCtrl::IsVerticalTabs() const { return (m_style & kNotebook_RightTabs) || (m_style & kNotebook_LeftTabs); } + +bool clTabCtrl::ShiftBottom(clTabInfo::Vec_t& tabs) +{ + // Move the first tab from the list and adjust the remainder + // of the tabs y coordiate + if(!tabs.empty()) { + clTabInfo::Ptr_t t = tabs.at(0); + int height = t->GetHeight(); + tabs.erase(tabs.begin() + 0); + + for(size_t i = 0; i < tabs.size(); ++i) { + clTabInfo::Ptr_t t = tabs.at(i); + t->GetRect().SetY(t->GetRect().y - height + V_OVERLAP_WIDTH); + } + return true; + } + return false; +} + +// ---------------------------------------------------------------------- +// clTabHistory +// ---------------------------------------------------------------------- + +clTabHistory::clTabHistory() {} + +clTabHistory::~clTabHistory() {} + +void clTabHistory::Clear() { m_history.clear(); } + +void clTabHistory::Pop(wxWindow* page) +{ + if(!page) return; + + int where = m_history.Index(page); + if(where != wxNOT_FOUND) { + m_history.Remove((void*)page); + } +} + +wxWindow* clTabHistory::PrevPage() +{ + if(m_history.empty()) { + return NULL; + } + // return the top of the heap + return static_cast(m_history.Item(0)); +} + +void clTabHistory::Push(wxWindow* page) +{ + if(page == NULL) return; + Pop(page); + m_history.Insert((void*)page, 0); +} + +// --------------------------------------------------------------------------- +// DnD +// --------------------------------------------------------------------------- + +clTabCtrlDropTarget::clTabCtrlDropTarget(clTabCtrl* tabCtrl) + : m_tabCtrl(tabCtrl) +{ +} + +clTabCtrlDropTarget::~clTabCtrlDropTarget() {} + +bool clTabCtrlDropTarget::OnDropText(wxCoord x, wxCoord y, const wxString& data) +{ + // Extract the content dragged using regular expression + wxRegEx re("\\{Class:Notebook,TabIndex:([0-9]+)\\}"); + if(!re.Matches(data)) return false; + wxString tabIndex = re.GetMatch(data, 1); + long nTabIndex = wxNOT_FOUND; + tabIndex.ToCLong(&nTabIndex); + // Sanity + if(nTabIndex == wxNOT_FOUND) return false; + + // Test the drop tab index + int realPos, tabHit; + m_tabCtrl->TestPoint(wxPoint(x, y), realPos, tabHit); + + // if the tab being dragged and the one we drop it on are the same + // return false + if(nTabIndex == realPos) return false; + m_tabCtrl->MoveActiveToIndex(realPos); + return true; +} diff -Nru codelite-8.0.1+dfsg2/Plugin/notebook_ex.cpp codelite-9.0+dfsg/Plugin/notebook_ex.cpp --- codelite-8.0.1+dfsg2/Plugin/notebook_ex.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/notebook_ex.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,730 +0,0 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2014 The CodeLite Team -// file name : notebook_ex.cpp -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - -#include "cl_defs.h" - -#include "notebook_ex.h" -#include "clAuiMainNotebookTabArt.h" -#include "globals.h" - -#if !CL_USE_NATIVEBOOK - -#include -#include "cl_aui_notebook_art.h" -#include "cl_aui_dock_art.h" -#include "drawingutils.h" -#include -#include "editor_config.h" -#include -#include -#include "notebook_ex_nav_dlg.h" -#include -#include "wx/sizer.h" -#include -#include -#include - -#ifdef __WXMSW__ -#include -#include -#include -#elif defined(__WXGTK__) -#include -#endif - -const wxEventType wxEVT_COMMAND_BOOK_PAGE_CHANGING = XRCID("notebook_page_changing"); -const wxEventType wxEVT_COMMAND_BOOK_PAGE_CHANGED = XRCID("notebook_page_changed"); -const wxEventType wxEVT_COMMAND_BOOK_PAGE_CLOSING = XRCID("notebook_page_closing"); -const wxEventType wxEVT_COMMAND_BOOK_PAGE_CLOSED = XRCID("notebook_page_closed"); -const wxEventType wxEVT_COMMAND_BOOK_PAGE_MIDDLE_CLICKED = XRCID("notebook_page_middle_clicked"); -const wxEventType wxEVT_COMMAND_BOOK_PAGE_X_CLICKED = XRCID("notebook_page_x_btn_clicked"); -const wxEventType wxEVT_COMMAND_BOOK_BG_DCLICK = XRCID("notebook_page_bg_dclick"); - -#define SHOW_POPUP_MENU 1234534 - -#define X_IMG_NONE -1 -#define X_IMG_NORMAL 0 -#define X_IMG_PRESSED 1 -#define X_IMG_DISABLED 2 - -#define CHECK_OWNERSHIP(e) \ - { \ - if(e.GetEventObject() != this) { \ - e.Skip(); \ - return; \ - } \ - \ -} - -#ifdef __WXGTK__ -#define BK_DEFAULT_STYLE wxBORDER_STATIC -#else -#define BK_DEFAULT_STYLE wxNO_BORDER -#endif - -Notebook::Notebook(wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style) - : wxAuiNotebook(parent, id, pos, size, style | BK_DEFAULT_STYLE | wxAUI_NB_TAB_MOVE | wxAUI_NB_TAB_SPLIT) - , m_popupWin(NULL) - , m_contextMenu(NULL) - , m_style(style) - , m_leftDownTabIdx(npos) - , m_notify(true) -{ - Initialize(); - - // Set our docking art provider for this notebook - m_mgr.SetArtProvider(new clAuiDockArt(NULL)); - m_leftDownPos = wxPoint(); - - // Connect events - Connect( - wxEVT_COMMAND_AUINOTEBOOK_PAGE_CHANGED, wxAuiNotebookEventHandler(Notebook::OnInternalPageChanged), NULL, this); - Connect(wxEVT_COMMAND_AUINOTEBOOK_PAGE_CHANGING, - wxAuiNotebookEventHandler(Notebook::OnInternalPageChanging), - NULL, - this); - Connect( - wxEVT_COMMAND_AUINOTEBOOK_PAGE_CLOSED, wxAuiNotebookEventHandler(Notebook::OnInternalPageClosed), NULL, this); - Connect( - wxEVT_COMMAND_AUINOTEBOOK_PAGE_CLOSE, wxAuiNotebookEventHandler(Notebook::OnInternalPageClosing), NULL, this); - Connect(wxEVT_COMMAND_AUINOTEBOOK_TAB_MIDDLE_DOWN, wxAuiNotebookEventHandler(Notebook::OnTabMiddle), NULL, this); - Connect(wxEVT_COMMAND_AUINOTEBOOK_TAB_RIGHT_DOWN, wxAuiNotebookEventHandler(Notebook::OnTabRightDown), NULL, this); - Connect(wxEVT_COMMAND_AUINOTEBOOK_BUTTON, wxAuiNotebookEventHandler(Notebook::OnTabButton), NULL, this); - Connect(wxEVT_COMMAND_AUINOTEBOOK_TAB_RIGHT_UP, wxAuiNotebookEventHandler(Notebook::OnTabRightUp), NULL, this); - Connect(wxEVT_COMMAND_AUINOTEBOOK_BG_DCLICK, wxAuiNotebookEventHandler(Notebook::OnBgDclick), NULL, this); - Connect(wxEVT_COMMAND_AUINOTEBOOK_END_DRAG, wxAuiNotebookEventHandler(Notebook::OnEndDrag), NULL, this); - -#ifdef __WXMSW__ - Connect(wxEVT_SET_FOCUS, wxFocusEventHandler(Notebook::OnFocus), NULL, this); -#endif - Connect(wxEVT_NAVIGATION_KEY, wxNavigationKeyEventHandler(Notebook::OnNavigationKey), NULL, this); - Connect(SHOW_POPUP_MENU, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(Notebook::OnInternalMenu), NULL, this); - -#if 0 - // On Linux, we disable the transparent drag since it will lead to crash when used with compiz / KDE4 -#if defined(__WXGTK__) && defined(__WXDEBUG__) - m_mgr.SetFlags(wxAUI_MGR_ALLOW_FLOATING | wxAUI_MGR_ALLOW_ACTIVE_PANE | wxAUI_MGR_TRANSPARENT_DRAG | - wxAUI_MGR_RECTANGLE_HINT); - -#elif defined(__WXGTK__) - m_mgr.SetFlags((m_mgr.GetFlags() | wxAUI_MGR_VENETIAN_BLINDS_HINT) & ~wxAUI_MGR_TRANSPARENT_HINT); - -#endif // -#endif - m_mgr.GetArtProvider()->SetMetric(wxAUI_DOCKART_PANE_BORDER_SIZE, 0); - // Set the notebook theme - wxAuiTabArt* artProvider; - size_t flags = EditorConfigST::Get()->GetOptions()->GetOptions(); - if(flags & OptionsConfig::TabCurved) { - artProvider = new wxAuiSimpleTabArt; - } else { -#ifdef __WXGTK__ - SetTabCtrlHeight(TAB_CTRL_HEIGHT); -#endif - artProvider = new clAuiGlossyTabArt(); - } - SetArtProvider(artProvider); -} - -Notebook::~Notebook() -{ - Disconnect( - wxEVT_COMMAND_AUINOTEBOOK_PAGE_CHANGED, wxAuiNotebookEventHandler(Notebook::OnInternalPageChanged), NULL, this); - Disconnect(wxEVT_COMMAND_AUINOTEBOOK_PAGE_CHANGING, - wxAuiNotebookEventHandler(Notebook::OnInternalPageChanging), - NULL, - this); - Disconnect( - wxEVT_COMMAND_AUINOTEBOOK_PAGE_CLOSED, wxAuiNotebookEventHandler(Notebook::OnInternalPageClosed), NULL, this); - Disconnect( - wxEVT_COMMAND_AUINOTEBOOK_PAGE_CLOSE, wxAuiNotebookEventHandler(Notebook::OnInternalPageClosing), NULL, this); - Disconnect(wxEVT_COMMAND_AUINOTEBOOK_TAB_MIDDLE_DOWN, wxAuiNotebookEventHandler(Notebook::OnTabMiddle), NULL, this); - Disconnect( - wxEVT_COMMAND_AUINOTEBOOK_TAB_RIGHT_DOWN, wxAuiNotebookEventHandler(Notebook::OnTabRightDown), NULL, this); - Disconnect(wxEVT_COMMAND_AUINOTEBOOK_BG_DCLICK, wxAuiNotebookEventHandler(Notebook::OnBgDclick), NULL, this); - Disconnect(wxEVT_COMMAND_AUINOTEBOOK_TAB_RIGHT_UP, wxAuiNotebookEventHandler(Notebook::OnTabRightUp), NULL, this); - Disconnect(wxEVT_COMMAND_AUINOTEBOOK_END_DRAG, wxAuiNotebookEventHandler(Notebook::OnEndDrag), NULL, this); - - Disconnect(wxEVT_NAVIGATION_KEY, wxNavigationKeyEventHandler(Notebook::OnNavigationKey), NULL, this); -#ifdef __WXMSW__ - Disconnect(wxEVT_SET_FOCUS, wxFocusEventHandler(Notebook::OnFocus), NULL, this); -#endif - Disconnect( - SHOW_POPUP_MENU, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(Notebook::OnInternalMenu), NULL, this); -} - -bool Notebook::AddPage(wxWindow* win, const wxString& text, bool selected, const wxBitmap& bmp) -{ - if(wxAuiNotebook::AddPage(win, text, selected, bmp)) { - win->Connect(wxEVT_KEY_DOWN, wxKeyEventHandler(Notebook::OnKeyDown), NULL, this); - PushPageHistory(win); - return true; - } - return false; -} - -bool Notebook::InsertPage(size_t index, wxWindow* win, const wxString& text, bool selected, const wxBitmap& bmp) -{ - if(wxAuiNotebook::InsertPage(index, win, text, selected, bmp)) { - win->Connect(wxEVT_KEY_DOWN, wxKeyEventHandler(Notebook::OnKeyDown), NULL, this); - PushPageHistory(win); - return true; - } - return false; -} - -void Notebook::Initialize() {} - -void Notebook::SetSelection(size_t page, bool notify) -{ - if(page >= GetPageCount()) return; - - m_notify = notify; - wxAuiNotebook::SetSelection(page); - m_notify = true; - - PushPageHistory(GetPage(page)); -} - -wxWindow* Notebook::GetPage(size_t page) const -{ - if(page >= GetPageCount()) return NULL; - - return wxAuiNotebook::GetPage(page); -} - -bool Notebook::RemovePage(size_t page, bool notify) -{ - if(notify) { - // send event to noitfy that the page has changed - NotebookEvent event(wxEVT_COMMAND_BOOK_PAGE_CLOSING, GetId()); - event.SetSelection(page); - event.SetEventObject(this); - GetEventHandler()->ProcessEvent(event); - - if(!event.IsAllowed()) { - return false; - } - } - - wxWindow* win = GetPage(page); - win->Disconnect(wxEVT_KEY_DOWN, wxKeyEventHandler(Notebook::OnKeyDown), NULL, this); - - bool rc = wxAuiNotebook::RemovePage(page); - if(rc) { - PopPageHistory(win); - } - - if(rc && notify) { - // send event to noitfy that the page has been closed - NotebookEvent event(wxEVT_COMMAND_BOOK_PAGE_CLOSED, GetId()); - event.SetSelection(page); - event.SetEventObject(this); - GetEventHandler()->AddPendingEvent(event); - } - - return rc; -} - -bool Notebook::DeletePage(size_t page, bool notify) -{ - if(page >= GetPageCount()) return false; - - if(notify) { - // send event to noitfy that the page has changed - NotebookEvent event(wxEVT_COMMAND_BOOK_PAGE_CLOSING, GetId()); - event.SetSelection(page); - event.SetEventObject(this); - GetEventHandler()->ProcessEvent(event); - - if(!event.IsAllowed()) { - return false; - } - } - - wxWindow* win = GetPage(page); - win->Disconnect(wxEVT_KEY_DOWN, wxKeyEventHandler(Notebook::OnKeyDown), NULL, this); - PopPageHistory(win); - - // Prepare the next selection - wxWindow* pageToMove = GetPreviousSelection(); - if(pageToMove && (win != pageToMove)) { - size_t pageIndex = GetPageIndex(pageToMove); - if(pageIndex != Notebook::npos) { - SetSelection(pageIndex, true); - } - } - - // Now delete this page - bool rc = wxAuiNotebook::DeletePage(page); - if(rc && notify) { - // send event to noitfy that the page has been closed - NotebookEvent event(wxEVT_COMMAND_BOOK_PAGE_CLOSED, GetId()); - event.SetSelection(page); - event.SetEventObject(this); - GetEventHandler()->AddPendingEvent(event); - } - - return rc; -} - -wxString Notebook::GetPageText(size_t page) const -{ - if(page >= GetPageCount()) return wxT(""); - - return wxAuiNotebook::GetPageText(page); -} - -void Notebook::OnNavigationKey(wxNavigationKeyEvent& e) -{ - if(e.IsWindowChange()) { - if(DoNavigate()) return; - } - e.Skip(); -} - -const wxArrayPtrVoid& Notebook::GetHistory() const { return m_history; } - -void Notebook::SetRightClickMenu(wxMenu* menu) { m_contextMenu = menu; } - -wxWindow* Notebook::GetCurrentPage() const -{ - size_t selection = GetSelection(); - if(selection != Notebook::npos) { - return GetPage(selection); - } - return NULL; -} - -size_t Notebook::GetPageIndex(wxWindow* page) const -{ - if(!page) return Notebook::npos; - - for(size_t i = 0; i < GetPageCount(); i++) { - if(GetPage(i) == page) { - return i; - } - } - return Notebook::npos; -} - -size_t Notebook::GetPageIndex(const wxString& text) const -{ - for(size_t i = 0; i < GetPageCount(); i++) { - - if(GetPageText(i) == text) { - return i; - } - } - return Notebook::npos; -} - -// wxAuiNotebook provides an array of its contained pages, accessible with GetPages() -// However it doesn't update this array when the tab-order is altered using D'n'D -// So, if serialise used GetPages(), the user would lose his preferred order of tabs. -// GetEditorsInOrder() works around the problem -void Notebook::GetEditorsInOrder(std::vector& editors) -{ - editors.clear(); - if(GetPageCount() == 0) { - return; - } - std::vector all_pages; // Use a vector here: it's more hassle than a set, but retains the order - - // wxAuiNotebook stores its wxAuiTabCtrls in an internal class wxTabFrame, defined in the cpp file, and so - // unavailable - // The only way I can see to acquire them is to FindTab() on every page to find its wxAuiTabCtrl. Yuck! - std::set ctrls; - for(size_t pg = 0; pg < GetPageCount(); ++pg) { - wxAuiTabCtrl* ctrl; - int ctrl_idx; - wxWindow* win = GetPage(pg); - if(win && FindTab(win, &ctrl, &ctrl_idx)) { - ctrls.insert(ctrl); - all_pages.push_back(win); // Store in the all-pages vector: we may need it later - } - } - - // For every tabctrl that we found, iterate through its tabs using TabHitTest() - // This is the only way to get their current order within the tabcrl, afaict - std::set::const_iterator it; - for(it = ctrls.begin(); it != ctrls.end(); ++it) { - wxAuiTabCtrl* ctrl = *it; - // Aim for the centre of the tab ;) - int y = ctrl->GetRect().height / 2; - // 2 is arbitrary, to ensure we're within the first tab but shouldn't overshoot - int x_offset = ctrl->GetArtProvider()->GetIndentSize() + 2; - wxWindow* previouspage = NULL; - - // The elegant way to do this would be to add the width of each tab to the cumulative width - // However the value produced by GetArtProvider() is consistently too large, - // so eventually we overshoot a tab (or the whole ctrl!) - // Instead, keep hit-testing every 10 x-pixels until the page changes - do { - wxWindow* page; - int x = 0; - do { - page = NULL; - x += 10; // Another arbitrary value, but it's unlikely that there'll be a tab smaller than this - bool hit = ctrl->TabHitTest(x_offset + x, y, &page); - // If there's space between tabs, we might be hittesting this, returning hit==false - // Therefore ignore misses if we're still within the width of ctrl - if(!hit && x_offset + x >= ctrl->GetRect().width) { - break; - } - } while((!page) || page == previouspage); - - if(!page) { - // We've reached the end of the tabctrl - previouspage = NULL; - break; - } - editors.push_back(page); - // Remove it from the pages-not-yet-found vector - for(size_t p = 0; p < all_pages.size(); ++p) { - if(page == *(all_pages.begin() + p)) { - all_pages.erase(all_pages.begin() + p); - break; - } - wxCHECK_RET(p + 1 < all_pages.size(), wxT("Trying to erase a page not in the vector")); - } - - x_offset += x; - previouspage = page; - } while(x_offset < ctrl->GetRect().width); // Continue until we reach the end of the visible ctrl - } - - // If there are pages the hittest missed, they *might* be detached pages, or hitttest failure - // but they're most likely to be scrolled-off-the-screen tabs. - // I'd guess these are more likely to be from the beginning of the tabctrl, so prepend them to the vector - if(!all_pages.empty()) { - editors.insert(editors.begin(), all_pages.begin(), all_pages.end()); - } -} - -size_t Notebook::GetVisibleEditorIndex() -{ - wxAuiTabCtrl* ctrl = GetActiveTabCtrl(); - if(ctrl) { - return ctrl->GetIdxFromWindow(GetCurrentPage()); - } - return Notebook::npos; -} - -bool Notebook::SetPageText(size_t index, const wxString& text) -{ - if(index >= GetPageCount()) return false; - return wxAuiNotebook::SetPageText(index, text); -} - -bool Notebook::DeleteAllPages(bool notify) -{ - bool res = true; - size_t count = GetPageCount(); - for(size_t i = 0; i < count && res; i++) { - res = this->DeletePage(0, notify); - } - return res; -} - -void Notebook::PushPageHistory(wxWindow* page) -{ - if(page == NULL) return; - - int where = m_history.Index(page); - // remove old entry of this page and re-insert it as first - if(where != wxNOT_FOUND) { - m_history.Remove(page); - } - m_history.Insert(page, 0); -} - -void Notebook::PopPageHistory(wxWindow* page) -{ - if(!page) return; - - int where = m_history.Index(page); - while(where != wxNOT_FOUND) { - wxWindow* tab = static_cast(m_history.Item(where)); - m_history.Remove(tab); - - // remove all appearances of this page - where = m_history.Index(page); - } -} - -wxWindow* Notebook::GetPreviousSelection() -{ - if(m_history.empty()) { - return NULL; - } - // return the top of the heap - return static_cast(m_history.Item(0)); -} - -void Notebook::OnInternalPageChanged(wxAuiNotebookEvent& e) -{ - CHECK_OWNERSHIP(e); - DoPageChangedEvent(e); -} - -void Notebook::OnInternalPageChanging(wxAuiNotebookEvent& e) -{ - CHECK_OWNERSHIP(e); - DoPageChangingEvent(e); -} - -void Notebook::DoPageChangedEvent(wxAuiNotebookEvent& e) -{ - CHECK_OWNERSHIP(e); - - if(!m_notify) { - e.Skip(); - return; - } - - // send event to noitfy that the page is changing - NotebookEvent event(wxEVT_COMMAND_BOOK_PAGE_CHANGED, GetId()); - event.SetSelection(e.GetSelection()); - event.SetOldSelection(e.GetOldSelection()); - event.SetEventObject(this); - GetEventHandler()->ProcessEvent(event); - - PushPageHistory(GetPage(e.GetSelection())); - e.Skip(); -} - -void Notebook::DoPageChangingEvent(wxAuiNotebookEvent& e) -{ - CHECK_OWNERSHIP(e); - - if(!m_notify) { - e.Skip(); - return; - } - - // send event to noitfy that the page is changing - NotebookEvent event(wxEVT_COMMAND_BOOK_PAGE_CHANGING, GetId()); - event.SetSelection(e.GetSelection()); - event.SetOldSelection(e.GetOldSelection()); - event.SetEventObject(this); - GetEventHandler()->ProcessEvent(event); - - if(!event.IsAllowed()) { - e.Veto(); - } - e.Skip(); -} - -void Notebook::OnKeyDown(wxKeyEvent& e) -{ - if(e.m_controlDown) { - switch(e.GetKeyCode()) { - case WXK_TAB: - DoNavigate(); // smart tabbing - return; - - case WXK_PAGEDOWN: - AdvanceSelection(false); - return; - - case WXK_PAGEUP: - AdvanceSelection(true); - return; - - default: - break; - } - } - e.Skip(); -} - -bool Notebook::DoNavigate() -{ - if(!m_popupWin && GetPageCount() > 1) { - - m_popupWin = new NotebookNavDialog(this); - m_popupWin->ShowModal(); - - wxWindow* page = m_popupWin->GetSelection(); - m_popupWin->Destroy(); - m_popupWin = NULL; - - SetSelection(GetPageIndex(page), true); - - return true; - } - return false; -} - -void Notebook::OnFocus(wxFocusEvent& e) { e.Skip(); } - -void Notebook::OnInternalPageClosing(wxAuiNotebookEvent& e) -{ - CHECK_OWNERSHIP(e); - // This function is called when a user clicks on the X button on top of the active tab - // to avoid code duplication, we "veto" this event and instead we call OnTabMiddle on the - // active tab (i.e. it will as if the user clicked the mouse middle button on the active tab) - e.Veto(); - OnTabMiddle(e); -} - -void Notebook::OnInternalPageClosed(wxAuiNotebookEvent& e) -{ - CHECK_OWNERSHIP(e); - e.Skip(); - - NotebookEvent event(wxEVT_COMMAND_BOOK_PAGE_CLOSED, GetId()); - event.SetSelection((int)GetSelection()); - event.SetEventObject(this); - GetEventHandler()->AddPendingEvent(event); -} - -void Notebook::OnTabMiddle(wxAuiNotebookEvent& e) -{ - CHECK_OWNERSHIP(e); - if(e.GetSelection() != wxNOT_FOUND && HasCloseMiddle()) { - // send event to noitfy that the page is changing - NotebookEvent event(wxEVT_COMMAND_BOOK_PAGE_MIDDLE_CLICKED, GetId()); - event.SetSelection(e.GetSelection()); - event.SetOldSelection(wxNOT_FOUND); - event.SetEventObject(this); - GetEventHandler()->AddPendingEvent(event); - } -} - -void Notebook::OnTabRightDown(wxAuiNotebookEvent& e) -{ - CHECK_OWNERSHIP(e); - if(m_contextMenu) { - - int where = e.GetSelection(); - if(where != wxNOT_FOUND && where == static_cast(GetSelection())) { - - PopupMenu(m_contextMenu); - - } else { - - e.Skip(); - } - } else { - - e.Skip(); - } -} - -void Notebook::OnInternalMenu(wxCommandEvent& e) -{ - if(m_contextMenu) { - PopupMenu(m_contextMenu); - } -} - -void Notebook::OnBgDclick(wxAuiNotebookEvent& e) -{ - CHECK_OWNERSHIP(e); - NotebookEvent event(wxEVT_COMMAND_BOOK_BG_DCLICK, GetId()); - event.SetSelection(wxNOT_FOUND); - event.SetOldSelection(wxNOT_FOUND); - event.SetEventObject(this); - GetEventHandler()->AddPendingEvent(event); -} - -void Notebook::OnTabRightUp(wxAuiNotebookEvent& e) -{ - CHECK_OWNERSHIP(e); - e.Skip(); -} - -void Notebook::OnTabButton(wxAuiNotebookEvent& e) -{ - CHECK_OWNERSHIP(e); - - // Notebook button was clicked - NotebookEvent event(wxEVT_COMMAND_BOOK_PAGE_X_CLICKED, GetId()); - event.SetSelection(GetSelection()); - event.SetOldSelection(wxNOT_FOUND); - event.SetEventObject(this); - GetEventHandler()->AddPendingEvent(event); -} - -std::set Notebook::GetAllTabControls() -{ - // The only way I can see to acquire them is to FindTab() on every page to find its wxAuiTabCtrl. Yuck! - std::set ctrls; - for(size_t pg = 0; pg < GetPageCount(); ++pg) { - wxAuiTabCtrl* ctrl; - int ctrl_idx; - wxWindow* win = GetPage(pg); - if(win && FindTab(win, &ctrl, &ctrl_idx)) { - ctrls.insert(ctrl); - } - } - return ctrls; -} - -wxArrayString Notebook::GetPagesTextInOrder() const -{ - wxArrayString labels; - for(size_t i = 0; i < GetPageCount(); ++i) { - labels.Add(GetPageText(i)); - } - return labels; -} - -void Notebook::OnEndDrag(wxAuiNotebookEvent& event) -{ - event.Skip(); - wxPostEvent(wxTheApp, event); // The Workspace View 'Tabs' pane grabs it from wxTheApp -} - -void Notebook::GetAllTabs(clTab::Vec_t& tabs) -{ - for(size_t i = 0; i < GetPageCount(); ++i) { - clTab t; - t.bitmap = GetPageBitmap(i); - t.text = GetPageText(i); - t.window = GetPage(i); - tabs.push_back(t); - } -} - -#endif // !CL_USE_NATIVEBOOK - -Notebook2::Notebook2(wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style) - : Notebook(parent, id, pos, size, style) -{ -} - -Notebook2::~Notebook2() {} - -bool Notebook2::SetPageToolTip(size_t page, const wxString& text) -{ -#if !CL_USE_NATIVEBOOK - return Notebook::SetPageToolTip(page, text); -#endif - - return false; -} diff -Nru codelite-8.0.1+dfsg2/Plugin/notebook_ex.h codelite-9.0+dfsg/Plugin/notebook_ex.h --- codelite-8.0.1+dfsg2/Plugin/notebook_ex.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/notebook_ex.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,328 +0,0 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2008 by Eran Ifrah -// file name : custom_notebook.h -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -#ifndef __Notebook__ -#define __Notebook__ -#include "cl_defs.h" - -#include "codelite_exports.h" -#include - -#if CL_USE_NATIVEBOOK -#include "gtk_notebook_ex.h" -#else - -#include -#include -#include -#include - -enum { - wxVB_LEFT = wxAUI_NB_LEFT, - wxVB_RIGHT = wxAUI_NB_RIGHT, - wxVB_TOP = wxAUI_NB_TOP, - wxVB_BOTTOM = wxAUI_NB_BOTTOM, - wxVB_FIXED_WIDTH = wxAUI_NB_TAB_FIXED_WIDTH, - wxVB_HAS_X = wxAUI_NB_CLOSE_ON_ACTIVE_TAB, - wxVB_MOUSE_MIDDLE_CLOSE_TAB = 0x20000000 -}; - -struct clTab { - typedef std::vector Vec_t; - wxString text; - wxWindow* window; - wxBitmap bitmap; - bool isFile; - wxFileName filename; - clTab() - : window(NULL) - , isFile(false) - { - } -}; - -class NotebookNavDialog; -class wxMenu; - -class WXDLLIMPEXP_SDK Notebook : public wxAuiNotebook -{ - NotebookNavDialog* m_popupWin; - wxMenu* m_contextMenu; - wxArrayPtrVoid m_history; - long m_style; - size_t m_leftDownTabIdx; - bool m_notify; - wxPoint m_leftDownPos; - -public: - static const size_t npos = static_cast(-1); - -protected: - void Initialize(); - void PushPageHistory(wxWindow* page); - void PopPageHistory(wxWindow* page); - wxWindow* GetPreviousSelection(); - bool HasCloseButton() { return m_style & wxVB_HAS_X; } - bool HasCloseMiddle() { return m_style & wxVB_MOUSE_MIDDLE_CLOSE_TAB; } - -public: - Notebook(wxWindow* parent, - wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0); - virtual ~Notebook(); - - /** - * \brief set page at given index to be the selected page. this function does not trigger an event - * \param page - */ - void SetSelection(size_t page, bool notify = false); - - /** - * \brief add page to the book - * \param win window to add, the window will be reparented to the book - * \param text page's caption - * \param selected set the page as the selected page - */ - bool AddPage(wxWindow* win, const wxString& text, bool selected = false, const wxBitmap& bmp = wxNullBitmap); - bool InsertPage(size_t index, - wxWindow* win, - const wxString& text, - bool selected = false, - const wxBitmap& bmp = wxNullBitmap); - - /** - * \brief return page at give position - * \param page page's index - * \return the page or NULL if index is out of bounds - */ - wxWindow* GetPage(size_t page) const; - - /** - * \brief return the page caption - * \param page page index - * \return text or wxEmptyString if page index is invalid - */ - wxString GetPageText(size_t page) const; - - /** - * \brief remove page from the book without destroying it - * \param notify set this to true if you wish to receive wxEVT_COMMAND_BOOK_PAGE_CLOSING & - * wxEVT_COMMAND_BOOK_PAGE_CLOSED - */ - bool RemovePage(size_t page, bool notify = true); - - /** - * \brief delete page from the book and destroy it as well - * \param notify set this to true if you wish to receive wxEVT_COMMAND_BOOK_PAGE_CLOSING & - * wxEVT_COMMAND_BOOK_PAGE_CLOSED - */ - bool DeletePage(size_t page, bool notify = true); - - /** - * \brief delete all the pages in the notebook - */ - bool DeleteAllPages(bool notify = false); - - /** - * \brief return the tabbing history for this notebook - */ - const wxArrayPtrVoid& GetHistory() const; - - /** - *\param menu - right click menu object - */ - void SetRightClickMenu(wxMenu* menu); - - /** - * \brief return the active page - * \return active page or NULL if there are no pages in the book - */ - wxWindow* GetCurrentPage() const; - - /** - * \brief return page index by window pointer - * \param page page to search - * \return page index, or Notebook::npos if page does not exist in the notebook - */ - size_t GetPageIndex(wxWindow* page) const; - - /** - * \brief return page index by page text - * \param text text to search for - * \return page index, or Notebook::npos if page does not exist in the notebook - */ - size_t GetPageIndex(const wxString& text) const; - - /** - * \brief returns the index within its tabctrl of the selected editor - * \return page index, or Notebook::npos if page does not exist in the notebook - */ - size_t GetVisibleEditorIndex(); - - /** - * \brief set the text for page at a given index - * \param index page's index - * \param text new text - */ - bool SetPageText(size_t index, const wxString& text); - - /** - * \brief tries to get a list of displayed editors, in display order - * \param vector in which to return the editors - */ - void GetEditorsInOrder(std::vector& editors); - void GetAllTabs(clTab::Vec_t& tabs); - - /** - * @brief return an array of pages text in order - */ - wxArrayString GetPagesTextInOrder() const; - - /** - * @brief return a set of the used wxAuiTabControl in the notebook - */ - std::set GetAllTabControls(); - -protected: - // Event handlers - void OnNavigationKey(wxNavigationKeyEvent& e); - void OnKeyDown(wxKeyEvent& e); - void OnTabRightDown(wxAuiNotebookEvent& e); - void OnTabRightUp(wxAuiNotebookEvent& e); - void OnTabMiddle(wxAuiNotebookEvent& e); - void OnTabButton(wxAuiNotebookEvent& e); - - // wxAuiNotebook events - void OnInternalPageChanged(wxAuiNotebookEvent& e); - void OnInternalPageChanging(wxAuiNotebookEvent& e); - void OnInternalPageClosing(wxAuiNotebookEvent& e); - void OnInternalPageClosed(wxAuiNotebookEvent& e); - void OnBgDclick(wxAuiNotebookEvent& e); - void OnEndDrag(wxAuiNotebookEvent& e); - - void OnInternalMenu(wxCommandEvent& e); - - // wxChoicebook events - void OnFocus(wxFocusEvent& e); - -protected: - void DoPageChangedEvent(wxAuiNotebookEvent& e); - void DoPageChangingEvent(wxAuiNotebookEvent& e); - bool DoNavigate(); -}; - -class WXDLLIMPEXP_SDK NotebookEvent : public wxNotifyEvent -{ - size_t sel, oldsel; - -public: - /** - * \param commandType - event type - * \param winid - window ID - * \param nSel - current selection - * \param nOldSel - old selection - */ - NotebookEvent(wxEventType commandType = wxEVT_NULL, - int winid = 0, - size_t nSel = (size_t)-1, - size_t nOldSel = (size_t)-1) - : wxNotifyEvent(commandType, winid) - , sel(nSel) - , oldsel(nOldSel) - { - } - - /** - * \param s - index of currently selected page - */ - void SetSelection(size_t s) { sel = s; } - - /** - * \param s - index of previously selected page - */ - void SetOldSelection(size_t s) { oldsel = s; } - - /// Returns the index of currently selected page - size_t GetSelection() { return sel; } - - /// Returns the index of previously selected page - size_t GetOldSelection() { return oldsel; } - - virtual wxEvent* Clone() const { return new NotebookEvent(*this); } -}; - -extern WXDLLIMPEXP_SDK const wxEventType wxEVT_COMMAND_BOOK_PAGE_CHANGED; -extern WXDLLIMPEXP_SDK const wxEventType wxEVT_COMMAND_BOOK_PAGE_CHANGING; -extern WXDLLIMPEXP_SDK const wxEventType wxEVT_COMMAND_BOOK_PAGE_CLOSING; -extern WXDLLIMPEXP_SDK const wxEventType wxEVT_COMMAND_BOOK_PAGE_CLOSED; -extern WXDLLIMPEXP_SDK const wxEventType wxEVT_COMMAND_BOOK_PAGE_MIDDLE_CLICKED; -extern WXDLLIMPEXP_SDK const wxEventType wxEVT_COMMAND_BOOK_PAGE_X_CLICKED; -extern WXDLLIMPEXP_SDK const wxEventType wxEVT_COMMAND_BOOK_BG_DCLICK; - -typedef void (wxEvtHandler::*NotebookEventFunction)(NotebookEvent&); - -#define NotebookEventHandler(func) \ - (wxObjectEventFunction)(wxEventFunction) wxStaticCastEvent(NotebookEventFunction, &func) - -#define EVT_BOOK_PAGE_CHANGED(winid, fn) \ - wx__DECLARE_EVT1(wxEVT_COMMAND_BOOK_PAGE_CHANGED, winid, NotebookEventHandler(fn)) - -#define EVT_BOOK_PAGE_CHANGING(winid, fn) \ - wx__DECLARE_EVT1(wxEVT_COMMAND_BOOK_PAGE_CHANGING, winid, NotebookEventHandler(fn)) - -#define EVT_BOOK_PAGE_CLOSING(winid, fn) \ - wx__DECLARE_EVT1(wxEVT_COMMAND_BOOK_PAGE_CLOSING, winid, NotebookEventHandler(fn)) - -#define EVT_BOOK_PAGE_CLOSED(winid, fn) \ - wx__DECLARE_EVT1(wxEVT_COMMAND_BOOK_PAGE_CLOSED, winid, NotebookEventHandler(fn)) - -#define EVT_BOOK_PAGE_MIDDLE_CLICKED(winid, fn) \ - wx__DECLARE_EVT1(wxEVT_COMMAND_BOOK_PAGE_MIDDLE_CLICKED, winid, NotebookEventHandler(fn)) - -#define EVT_BOOK_PAGE_X_CLICKED(winid, fn) \ - wx__DECLARE_EVT1(wxEVT_COMMAND_BOOK_PAGE_X_CLICKED, winid, NotebookEventHandler(fn)) - -#define EVT_BOOK_SWAP_PAGES(winid, fn) wx__DECLARE_EVT1(wxEVT_COMMAND_BOOK_SWAP_PAGES, winid, NotebookEventHandler(fn)) - -#define EVT_BOOK_BG_DCLICK(winid, fn) wx__DECLARE_EVT1(wxEVT_COMMAND_BOOK_BG_DCLICK, winid, NotebookEventHandler(fn)) - -#endif // __WXGTK__ - -class WXDLLIMPEXP_SDK Notebook2 : public Notebook -{ -public: - Notebook2(wxWindow* parent, - wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0); - virtual ~Notebook2(); - -public: - bool SetPageToolTip(size_t page, const wxString& text); -}; - -#endif // __Notebook__ diff -Nru codelite-8.0.1+dfsg2/Plugin/notebook_ex_nav_dlg.cpp codelite-9.0+dfsg/Plugin/notebook_ex_nav_dlg.cpp --- codelite-8.0.1+dfsg2/Plugin/notebook_ex_nav_dlg.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/notebook_ex_nav_dlg.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,171 +0,0 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2008 by Eran Ifrah -// file name : notebooknavdialog.cpp -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - -#include "wx/settings.h" -#include "notebook_ex_nav_dlg.h" -#include -#include -#include -#include "wx/sizer.h" -#include "notebook_ex.h" - -BEGIN_EVENT_TABLE(NotebookNavDialog, wxDialog) - EVT_NAVIGATION_KEY(NotebookNavDialog::OnNavigationKey) -END_EVENT_TABLE() - -NotebookNavDialog::NotebookNavDialog(wxWindow* parent) - : m_listBox(NULL) - , m_selectedItem(static_cast(-1)) - , m_selTab(NULL) -{ - Create(parent); - GetSizer()->Fit(this); - GetSizer()->SetSizeHints(this); - GetSizer()->Layout(); - Centre(); -} - -NotebookNavDialog::NotebookNavDialog() - : wxDialog() - , m_listBox(NULL) - , m_selectedItem(static_cast(-1)) -{ -} - -NotebookNavDialog::~NotebookNavDialog() -{ -} - -void NotebookNavDialog::Create(wxWindow* parent) -{ - if ( !wxDialog::Create(parent, wxID_ANY, wxEmptyString) ) - return; - - wxBoxSizer *sz = new wxBoxSizer( wxVERTICAL ); - SetSizer( sz ); - - long flags = wxLB_SINGLE | wxNO_BORDER | wxWANTS_CHARS; - m_listBox = new wxListBox(this, wxID_ANY, wxDefaultPosition, wxSize(400, 400), 0, NULL, flags); - - sz->Add( m_listBox, 1, wxEXPAND ); - SetSizer( sz ); - - // Connect events to the list box - m_listBox->Connect(wxID_ANY, wxEVT_KEY_UP, wxKeyEventHandler(NotebookNavDialog::OnKeyUp), NULL, this); - m_listBox->Connect(wxID_ANY, wxEVT_KEY_DOWN, wxKeyEventHandler(NotebookNavDialog::OnKeyDown), NULL, this); - m_listBox->Connect(wxID_ANY, wxEVT_COMMAND_LISTBOX_DOUBLECLICKED, wxCommandEventHandler(NotebookNavDialog::OnItemSelected), NULL, this); - - SetBackgroundColour( wxSystemSettings::GetColour(wxSYS_COLOUR_3DFACE) ); - m_listBox->SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_3DFACE)); - PopulateListControl( static_cast( parent ) ); - m_listBox->SetFocus(); -} - -void NotebookNavDialog::OnKeyUp(wxKeyEvent &event) -{ - if (event.GetKeyCode() == WXK_CONTROL) { - CloseDialog(); - } -} - -void NotebookNavDialog::OnNavigationKey(wxNavigationKeyEvent &event) -{ - long selected = m_listBox->GetSelection(); - long maxItems = m_listBox->GetCount(); - long itemToSelect; - - if ( event.GetDirection() ) { - // Select next page - if (selected == maxItems - 1) - itemToSelect = 0; - else - itemToSelect = selected + 1; - } else { - // Previous page - if ( selected == 0 ) - itemToSelect = maxItems - 1; - else - itemToSelect = selected - 1; - } - m_listBox->SetSelection( itemToSelect ); - m_listBox->SetFocus(); -} - -void NotebookNavDialog::PopulateListControl(Notebook *book) -{ - m_tabsIndex.clear(); - const wxArrayPtrVoid &arr = book->GetHistory(); - for (size_t i=0; i(arr.Item(i)); - m_tabsIndex[m_listBox->Append( book->GetPageText( book->GetPageIndex(tab) ) )] = tab; - } - - // Select the next entry after the current selection - if (arr.GetCount() > 0) { - m_listBox->SetSelection( 0 ); - } - - wxNavigationKeyEvent dummy; - dummy.SetDirection(true); - OnNavigationKey(dummy); -} - -void NotebookNavDialog::OnItemSelected(wxCommandEvent & event ) -{ - wxUnusedVar( event ); - CloseDialog(); -} - -void NotebookNavDialog::CloseDialog() -{ - m_selectedItem = m_listBox->GetSelection(); - m_selTab = NULL; - std::map< int, wxWindow* >::iterator iter = m_tabsIndex.find(m_selectedItem); - if(iter != m_tabsIndex.end()) { - m_selTab = iter->second; - } - EndModal( wxID_OK ); -} - -void NotebookNavDialog::OnKeyDown(wxKeyEvent& event) -{ - if ( event.GetKeyCode() == WXK_TAB && event.ControlDown() && event.ShiftDown()) { - // Navigate forward - wxNavigationKeyEvent nav; - nav.SetDirection(false); - OnNavigationKey(nav); - - - } else if ( event.GetKeyCode() == WXK_TAB && event.ControlDown() ) { - // Navigate backward - wxNavigationKeyEvent nav; - nav.SetDirection(true); - OnNavigationKey(nav); - - } else { - event.Skip(); - } -} - diff -Nru codelite-8.0.1+dfsg2/Plugin/notebook_ex_nav_dlg.h codelite-9.0+dfsg/Plugin/notebook_ex_nav_dlg.h --- codelite-8.0.1+dfsg2/Plugin/notebook_ex_nav_dlg.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/notebook_ex_nav_dlg.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,82 +0,0 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2008 by Eran Ifrah -// file name : notebooknavdialog.h -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - #ifndef __notebooknavdialog__ -#define __notebooknavdialog__ - -#include -#include -#include "codelite_exports.h" -#include - -class wxListBox; -class Notebook; - -class WXDLLIMPEXP_SDK NotebookNavDialog : public wxDialog -{ -protected: - wxListBox * m_listBox; - size_t m_selectedItem; - std::map< int, wxWindow* > m_tabsIndex; - wxWindow* m_selTab; - -protected: - void CloseDialog(); - -public: - /** - * Parameterized constructor - * \param parent dialog parent window - */ - NotebookNavDialog(wxWindow* parent); - - /** - * Default constructor - */ - NotebookNavDialog(); - - /** - * Destructor - */ - virtual ~NotebookNavDialog(); - - /** - * Create the dialog, usually part of the two steps construction of a - * dialog - * \param parent dialog parent window - */ - void Create(wxWindow* parent); - - wxWindow *GetSelection(){return m_selTab;} - - /// Event handling - DECLARE_EVENT_TABLE() - void OnKeyUp(wxKeyEvent &event); - void OnKeyDown(wxKeyEvent &event); - void OnNavigationKey(wxNavigationKeyEvent &event); - void OnItemSelected(wxCommandEvent &event); - void PopulateListControl(Notebook *book); -}; - -#endif // __notebooknavdialog__ diff -Nru codelite-8.0.1+dfsg2/Plugin/Notebook.h codelite-9.0+dfsg/Plugin/Notebook.h --- codelite-8.0.1+dfsg2/Plugin/Notebook.h 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/Notebook.h 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,555 @@ +#ifndef NOTEBOOK_H +#define NOTEBOOK_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include "windowstack.h" +#include +#include + +#ifdef WXDLLIMPEXP_SDK +#undef WXDLLIMPEXP_SDK +#endif + +#ifdef __WXMSW__ +#ifdef WXMAKINGDLL_SDK +#define WXDLLIMPEXP_SDK __declspec(dllexport) +#elif defined(WXUSINGDLL_SDK) +#define WXDLLIMPEXP_SDK __declspec(dllimport) +#else // not making nor using DLL +#define WXDLLIMPEXP_SDK +#endif +#else +#define WXDLLIMPEXP_SDK +#endif + +enum NotebookStyle { + /// Use the built-in light tab colours + kNotebook_LightTabs = (1 << 0), + /// Use the built-in dark tab colours + kNotebook_DarkTabs = (1 << 1), + /// Allow tabs to move using DnD + kNotebook_AllowDnD = (1 << 2), + /// Draw X button on the active tab + kNotebook_CloseButtonOnActiveTab = (1 << 3), + /// Mouse middle click closes tab + kNotebook_MouseMiddleClickClosesTab = (1 << 4), + /// Show a drop down button for displaying all tabs list + kNotebook_ShowFileListButton = (1 << 5), + /// Mouse middle click on a tab fires an event + kNotebook_MouseMiddleClickFireEvent = (1 << 6), + /// Clicking the X button on the active button fires an event + /// instead of closing the tab (i.e. let the container a complete control) + kNotebook_CloseButtonOnActiveTabFireEvent = (1 << 7), + /// Fire navigation event for Ctrl-TAB et al + kNotebook_EnableNavigationEvent = (1 << 8), + /// Place tabs at the bottom + kNotebook_BottomTabs = (1 << 9), + /// Enable colour customization events + kNotebook_EnableColourCustomization = (1 << 10), + /// Place the tabs on the right + kNotebook_RightTabs = (1 << 11), + /// Place th tabs on the left + kNotebook_LeftTabs = (1 << 12), + /// Vertical tabs as buttons + kNotebook_VerticalButtons = (1 << 13), + /// Default notebook + kNotebook_Default = kNotebook_LightTabs | kNotebook_ShowFileListButton, +}; + +/** + * @class clTabInfo + * @author Eran Ifrah + * @brief contains information (mainly for drawing purposes) about a single tab label + */ +class WXDLLIMPEXP_SDK clTabInfo +{ + wxString m_label; + wxBitmap m_bitmap; + wxString m_tooltip; + wxWindow* m_window; + wxRect m_rect; + bool m_active; + int m_textX; + int m_textY; + int m_bmpX; + int m_bmpY; + int m_bmpCloseX; + int m_bmpCloseY; + int m_width; + int m_height; + int m_vTabsWidth; + +public: + class WXDLLIMPEXP_SDK Colours + { + public: + // Active tab colours + wxColour inactiveTabBgColour; + wxColour inactiveTabPenColour; + wxColour inactiveTabTextColour; + wxColour inactiveTabInnerPenColour; + + // Inactive tab colours + wxColour activeTabTextColour; + wxColour activeTabBgColour; + wxColour activeTabPenColour; + wxColour activeTabInnerPenColour; + + // the tab area colours + wxColour tabAreaColour; + + // close button bitmaps (MUST be 12x12) + wxBitmap closeButton; + + /// Chevron down arrow used as the button for showing tab list + wxBitmap chevronDown; + + Colours(); + virtual ~Colours() {} + + /** + * @brief initialize the colours from base colour and text colour + */ + void InitFromColours(const wxColour& baseColour, const wxColour& textColour); + + /** + * @brief initialize the dark colours + */ + virtual void InitDarkColours(); + /** + * @brief initialize the light colours + */ + virtual void InitLightColours(); + }; + +public: + // Geometry + static int Y_SPACER; + static int X_SPACER; + static int BOTTOM_AREA_HEIGHT; + static int MAJOR_CURVE_WIDTH; + static int SMALL_CURVE_WIDTH; + // static int TAB_HEIGHT; + +public: + void CalculateOffsets(size_t style); + +public: + typedef wxSharedPtr Ptr_t; + typedef std::vector Vec_t; + + clTabInfo(); + clTabInfo(size_t style, wxWindow* page, const wxString& text, const wxBitmap& bmp = wxNullBitmap); + virtual ~clTabInfo() {} + + bool IsValid() const { return m_window != NULL; } + + /** + * @brief render the using the provided wxDC + */ + void Draw(wxDC& dc, const clTabInfo::Colours& colours, size_t style); + void SetBitmap(const wxBitmap& bitmap, size_t style); + void SetLabel(const wxString& label, size_t style); + void SetActive(bool active, size_t style); + void SetRect(const wxRect& rect) { this->m_rect = rect; } + const wxBitmap& GetBitmap() const { return m_bitmap; } + const wxString& GetLabel() const { return m_label; } + const wxRect& GetRect() const { return m_rect; } + wxRect& GetRect() { return m_rect; } + wxWindow* GetWindow() { return m_window; } + wxWindow* GetWindow() const { return m_window; } + void SetWindow(wxWindow* window) { this->m_window = window; } + bool IsActive() const { return m_active; } + int GetBmpCloseX() const { return m_bmpCloseX; } + int GetBmpCloseY() const { return m_bmpCloseY; } + int GetHeight() const { return m_height; } + int GetWidth() const { return m_width; } + void SetTooltip(const wxString& tooltip) { this->m_tooltip = tooltip; } + const wxString& GetTooltip() const { return m_tooltip; } +}; + +class Notebook; +class wxMenu; +class clTabCtrl; + +// DnD support of tabs +class WXDLLIMPEXP_SDK clTabCtrlDropTarget : public wxTextDropTarget +{ + clTabCtrl* m_tabCtrl; + +public: + clTabCtrlDropTarget(clTabCtrl* tabCtrl); + virtual ~clTabCtrlDropTarget(); + virtual bool OnDropText(wxCoord x, wxCoord y, const wxString& data); +}; + +class WXDLLIMPEXP_SDK clTabHistory +{ + wxArrayPtrVoid m_history; + wxWindow* m_page; /// The page to add to the hisotry + +public: + typedef wxSharedPtr Ptr_t; + +public: + clTabHistory(); + virtual ~clTabHistory(); + + void Push(wxWindow* page); + void Pop(wxWindow* page); + wxWindow* PrevPage(); + /** + * @brief clear the history + */ + void Clear(); + + /** + * @brief return the tabbing history + * @return + */ + const wxArrayPtrVoid& GetHistory() const { return m_history; } +}; + +/** + * @class clTabCtrl + * @author Eran Ifrah + * @brief The Window that all the tabs are drawn on + */ +class WXDLLIMPEXP_SDK clTabCtrl : public wxPanel +{ + int m_height; + int m_vTabsWidth; + clTabInfo::Vec_t m_tabs; + friend class Notebook; + friend class clTabCtrlDropTarget; + + size_t m_style; + clTabInfo::Colours m_colours; + clTabInfo::Vec_t m_visibleTabs; + int m_closeButtonClickedIndex; + wxMenu* m_contextMenu; + wxRect m_chevronRect; + clTabHistory::Ptr_t m_history; + + void DoChangeSelection(size_t index); + +protected: + void OnPaint(wxPaintEvent& e); + void OnEraseBG(wxEraseEvent& e); + void OnSize(wxSizeEvent& event); + void OnWindowKeyDown(wxKeyEvent& event); + void OnLeftDown(wxMouseEvent& event); + void OnLeftUp(wxMouseEvent& event); + void OnLeftDClick(wxMouseEvent& event); + void OnMouseMotion(wxMouseEvent& event); + void OnMouseMiddleClick(wxMouseEvent& event); + void OnContextMenu(wxContextMenuEvent& event); + int DoGetPageIndex(wxWindow* win) const; + int DoGetPageIndex(const wxString& label) const; + void + DoDrawBottomBox(clTabInfo::Ptr_t activeTab, const wxRect& clientRect, wxDC& dc, const clTabInfo::Colours& colours); + bool ShiftRight(clTabInfo::Vec_t& tabs); + bool ShiftBottom(clTabInfo::Vec_t& tabs); + bool IsActiveTabInList(const clTabInfo::Vec_t& tabs) const; + bool IsActiveTabVisible(const clTabInfo::Vec_t& tabs) const; + + /** + * @brief loop over the tabs and set their coordiantes + */ + void DoUpdateCoordiantes(clTabInfo::Vec_t& tabs); + /** + * @brief get list of tabs to draw. This call always returns the active tab as part of the list + * It also ensures that we draw as much tabs as we can. + * @param offset reset the 0 based index from m_tabs + */ + void UpdateVisibleTabs(); + + clTabInfo::Ptr_t GetTabInfo(size_t index); + clTabInfo::Ptr_t GetTabInfo(size_t index) const; + clTabInfo::Ptr_t GetTabInfo(wxWindow* page); + clTabInfo::Ptr_t GetActiveTabInfo(); + + WindowStack* GetStack(); + + void DoDeletePage(size_t page) { RemovePage(page, true, true); } + void DoShowTabList(); + +public: + clTabCtrl(wxWindow* notebook, size_t style); + virtual ~clTabCtrl(); + + bool IsVerticalTabs() const; + + void SetColours(const clTabInfo::Colours& colours) { this->m_colours = colours; } + const clTabInfo::Colours& GetColours() const { return m_colours; } + + /** + * @brief test if pt is on one of the visible tabs return its index + * @param pt mouse click position + * @param realPosition [output] the index position in the m_tabs array + * @param tabHit [output] the index position in the m_visibleTabs array + */ + void TestPoint(const wxPoint& pt, int& realPosition, int& tabHit); + + /** + * @brief Move the active tab to a new position + * @param newIndex the new position. 0-based index in the m_tabs array + */ + bool MoveActiveToIndex(int newIndex); + + /** + * @brief return true if index is in the tabs vector range + */ + bool IsIndexValid(size_t index) const; + + void SetStyle(size_t style); + size_t GetStyle() const { return m_style; } + + /** + * @brief update the selected tab. This function also fires an event + */ + int SetSelection(size_t tabIdx); + + /** + * @brief update the selected tab. This function does not fire an event + */ + int ChangeSelection(size_t tabIdx); + + /** + * @brief return the current selection. return wxNOT_FOUND if non is selected + */ + int GetSelection() const; + + /** + * @brief Sets the text for the given page. + */ + bool SetPageText(size_t page, const wxString& text); + wxString GetPageText(size_t page) const; + + void AddPage(clTabInfo::Ptr_t tab); + bool InsertPage(size_t index, clTabInfo::Ptr_t tab); + + void SetPageBitmap(size_t index, const wxBitmap& bmp); + wxBitmap GetPageBitmap(size_t index) const; + wxWindow* GetPage(size_t index) const; + void GetAllPages(std::vector& pages); + int FindPage(wxWindow* page) const; + bool RemovePage(size_t page, bool notify, bool deletePage); + bool DeleteAllPages(); + void SetMenu(wxMenu* menu); + bool SetPageToolTip(size_t page, const wxString& tooltip); + const clTabInfo::Vec_t& GetTabs() const { return m_tabs; } + clTabHistory::Ptr_t GetHistory() const { return m_history; } +}; + +/** + * @class Notebook + * @author Eran Ifrah + * @brief A modern notebook (similar to the ones seen on Sublime Text and Atom editors + * for wxWidgets. The class implementation uses wxSimplebook as the tab container and a + * custom drawing tab area (see above the class clTabCtrl) + */ +class WXDLLIMPEXP_SDK Notebook : public wxPanel +{ + WindowStack* m_windows; + clTabCtrl* m_tabCtrl; + friend class clTabCtrl; + +protected: + void DoChangeSelection(wxWindow* page); + bool IsVerticalTabs() const { + return m_tabCtrl->IsVerticalTabs(); + } + +public: + /** + * Constructor + */ + Notebook(wxWindow* parent, + wxWindowID id = wxID_ANY, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = 0, + const wxString& name = wxEmptyString); + + /** + * @brief set the notebook style. The style bits are kNotebook_* (you can set several + * styles OR-ed) + */ + void SetStyle(size_t style); + + /** + * @brief set the tab direction + */ + void SetTabDirection(wxDirection d); + + /** + * @brief return the book style + */ + size_t GetStyle() const { return m_tabCtrl->GetStyle(); } + + /** + * @brief enable a specific style in the notebook + */ + void EnableStyle(NotebookStyle style, bool enable); + + /** + * destructor + */ + virtual ~Notebook(); + + /** + * @brief append page to the notebook + */ + void AddPage(wxWindow* page, const wxString& label, bool selected = false, const wxBitmap& bmp = wxNullBitmap); + + /** + * @brief insert page at a specified position + */ + bool InsertPage(size_t index, + wxWindow* page, + const wxString& label, + bool selected = false, + const wxBitmap& bmp = wxNullBitmap); + + /** + * @brief return the currently selected page or null + */ + wxWindow* GetCurrentPage() const; + + /** + * @brief Returns the index of the specified tab window or wxNOT_FOUND if not found + */ + int FindPage(wxWindow* page) const; + + /** + * @brief Deletes the specified page, without deleting the associated window + */ + bool RemovePage(size_t page, bool notify = false); + + /** + * @brief Deletes the specified page and the associated window + */ + bool DeletePage(size_t page); + + /** + * @brief Deletes all pages + */ + bool DeleteAllPages(); + + /** + * @brief set a new selection. This function fires an event that can be vetoed + */ + int SetSelection(size_t selection) { return m_tabCtrl->SetSelection(selection); } + /** + * @brief set new selection. No events are fired + */ + int ChangeSelection(size_t selection) { return m_tabCtrl->ChangeSelection(selection); } + + /** + * @brief return the currently selected page, return wxNOT_FOUND if non found + */ + int GetSelection() const { return m_tabCtrl->GetSelection(); } + + /** + * @brief Sets the text for the given page. + */ + bool SetPageText(size_t page, const wxString& text) { return m_tabCtrl->SetPageText(page, text); } + + /** + * @brief Returns the string for the given page + */ + wxString GetPageText(size_t page) const { return m_tabCtrl->GetPageText(page); } + + /** + * @brief set the image for the given page + */ + void SetPageBitmap(size_t index, const wxBitmap& bmp) { m_tabCtrl->SetPageBitmap(index, bmp); } + + /** + * @brief return bitmap for a given page. Return wxNullBitmap if invalid page + */ + wxBitmap GetPageBitmap(size_t index) const { return m_tabCtrl->GetPageBitmap(index); } + + // Base class members... + virtual bool SetPageImage(size_t page, int image) + { + wxUnusedVar(page); + wxUnusedVar(image); + return false; + } + virtual int GetPageImage(size_t n) const { return wxNOT_FOUND; } + + /** + * @brief return the index of a given window in the tab control + * @param window + * @return return window index, or wxNOT_FOUND + */ + int GetPageIndex(wxWindow* window) const { return m_tabCtrl->DoGetPageIndex(window); } + + /** + * @brief return the index of a given window by its title + */ + int GetPageIndex(const wxString& label) const { return m_tabCtrl->DoGetPageIndex(label); } + + /** + * @brief Returns the number of pages in the control + */ + size_t GetPageCount() const { return m_tabCtrl->GetTabs().size(); } + + /** + * @brief Returns the window at the given page position. + */ + wxWindow* GetPage(size_t index) const { return m_tabCtrl->GetPage(index); } + + /** + * @brief return an array of all the windows managed by this notebook + */ + void GetAllPages(std::vector& pages) { m_tabCtrl->GetAllPages(pages); } + + /** + * @brief return all tabs info + * @param tabs [output] + */ + size_t GetAllTabs(clTabInfo::Vec_t& tabs) + { + tabs = m_tabCtrl->GetTabs(); + return tabs.size(); + } + + /** + * @brief set a context menu to be shown whe context menu is requested + * on a tab label + */ + void SetMenu(wxMenu* menu) { m_tabCtrl->SetMenu(menu); } + + /** + * @brief Sets the tool tip displayed when hovering over the tab label of the page + * @return true if tool tip was updated, false if it failed, e.g. because the page index is invalid. + */ + bool SetPageToolTip(size_t page, const wxString& tooltip) { return m_tabCtrl->SetPageToolTip(page, tooltip); } + + /** + * @brief return the tabbing history + * @return + */ + clTabHistory::Ptr_t GetHistory() const { return m_tabCtrl->GetHistory(); } +}; + +wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_SDK, wxEVT_BOOK_PAGE_CHANGING, wxBookCtrlEvent); +wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_SDK, wxEVT_BOOK_PAGE_CHANGED, wxBookCtrlEvent); +wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_SDK, wxEVT_BOOK_PAGE_CLOSING, wxBookCtrlEvent); +wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_SDK, wxEVT_BOOK_PAGE_CLOSED, wxBookCtrlEvent); +wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_SDK, wxEVT_BOOK_PAGE_CLOSE_BUTTON, wxBookCtrlEvent); +wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_SDK, wxEVT_BOOK_TAB_DCLICKED, wxBookCtrlEvent); +wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_SDK, wxEVT_BOOK_NAVIGATING, wxBookCtrlEvent); +wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_SDK, wxEVT_BOOK_TABAREA_DCLICKED, wxBookCtrlEvent); + +#endif // NOTEBOOK_H diff -Nru codelite-8.0.1+dfsg2/Plugin/NotebookNavigationDlg.cpp codelite-9.0+dfsg/Plugin/NotebookNavigationDlg.cpp --- codelite-8.0.1+dfsg2/Plugin/NotebookNavigationDlg.cpp 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/NotebookNavigationDlg.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,177 @@ +#include "NotebookNavigationDlg.h" +#include +#include "Notebook.h" +#include +#include "globals.h" +#include +#include +#include +#include +#include "bitmap_loader.h" + +struct TabData { + wxString label; + wxBitmap bmp; + wxFileName filename; + int index; + bool isFile; + + TabData() + : index(wxNOT_FOUND) + , isFile(false) + { + } +}; + +NotebookNavigationDlg::NotebookNavigationDlg(wxWindow* parent, Notebook* book) + : NotebookNavigationDlgBase(parent) + , m_book(book) + , m_selection(wxNOT_FOUND) +{ + clTab::Vec_t allTabs; + clTabHistory::Ptr_t history = m_book->GetHistory(); + clGetManager()->GetAllTabs(allTabs); + + BitmapLoader::BitmapMap_t bmps = clGetManager()->GetStdIcons()->MakeStandardMimeMap(); + + std::map tabsInfoMap; + for(size_t i = 0; i < allTabs.size(); ++i) { + tabsInfoMap.insert(std::make_pair((void*)allTabs.at(i).window, allTabs.at(i))); + } + + const wxArrayPtrVoid& windows = history->GetHistory(); + // Populate the list + for(size_t i = 0; i < windows.GetCount(); ++i) { + int index = m_book->FindPage((wxWindow*)windows.Item(i)); + if(index != wxNOT_FOUND) { + wxString label = m_book->GetPageText(index); + wxBitmap bmp = m_book->GetPageBitmap(index); + + wxVector cols; + TabData* d = new TabData; + d->bmp = bmp; + d->label = label; + d->index = index; + + // add extra info + std::map::iterator iter = tabsInfoMap.find(windows.Item(i)); + if(iter != tabsInfoMap.end()) { + d->isFile = iter->second.isFile; + d->filename = iter->second.filename; + } + + // Prepare the display item + wxString text; + if(d->isFile && d->filename.GetDirCount()) { + wxFileName fn(d->filename.GetFullName()); + fn.AppendDir(d->filename.GetDirs().Last()); + text << fn.GetFullPath(); + } else { + text << d->label; + } + + // If the tab has a bitmap - use it + // otherwise, try to assign one + if(!d->bmp.IsOk()) { + if(d->isFile) { + FileExtManager::FileType type = + FileExtManager::GetType(d->filename.GetFullName(), FileExtManager::TypeText); + if(bmps.count(type)) { + d->bmp = bmps.find(type)->second; + } + } + } + + cols.push_back(::MakeIconText(text, d->bmp)); + m_dvListCtrl->AppendItem(cols, (wxUIntPtr)d); + } + } + + if(m_dvListCtrl->GetItemCount() > 1) { + m_dvListCtrl->Select(m_dvListCtrl->RowToItem(1)); + } else { + m_dvListCtrl->Select(m_dvListCtrl->RowToItem(0)); + } + m_dvListCtrl->SetFocus(); + wxTheApp->Bind(wxEVT_KEY_DOWN, &NotebookNavigationDlg::OnKeyDown, this); + wxTheApp->Bind(wxEVT_KEY_UP, &NotebookNavigationDlg::OnKeyUp, this); +} + +NotebookNavigationDlg::~NotebookNavigationDlg() +{ + for(int i = 0; i < m_dvListCtrl->GetItemCount(); ++i) { + TabData* d = (TabData*)m_dvListCtrl->GetItemData(m_dvListCtrl->RowToItem(i)); + wxDELETE(d); + } + m_dvListCtrl->DeleteAllItems(); + wxTheApp->Unbind(wxEVT_KEY_DOWN, &NotebookNavigationDlg::OnKeyDown, this); + wxTheApp->Unbind(wxEVT_KEY_UP, &NotebookNavigationDlg::OnKeyUp, this); +} + +void NotebookNavigationDlg::CloseDialog() +{ + wxDataViewItem selection = m_dvListCtrl->GetSelection(); + if(selection.IsOk()) { + TabData* d = (TabData*)m_dvListCtrl->GetItemData(selection); + m_selection = d->index; + } + EndModal(wxID_OK); +} + +void NotebookNavigationDlg::OnKeyDown(wxKeyEvent& event) +{ + if(event.GetKeyCode() == WXK_TAB && event.ControlDown() && event.ShiftDown()) { + // Navigate Up + wxDataViewItem item = m_dvListCtrl->GetSelection(); + if(item.IsOk()) { + int row = m_dvListCtrl->ItemToRow(item); + if(row > 0) { + --row; + item = m_dvListCtrl->RowToItem(row); + m_dvListCtrl->Select(item); + m_dvListCtrl->EnsureVisible(item); + + } else { + // Select the last item + row = m_dvListCtrl->GetItemCount() - 1; + item = m_dvListCtrl->RowToItem(row); + m_dvListCtrl->Select(item); + m_dvListCtrl->EnsureVisible(item); + } + } + } else if(event.GetKeyCode() == WXK_TAB && event.ControlDown()) { + // Navigate Down + wxDataViewItem item = m_dvListCtrl->GetSelection(); + if(item.IsOk()) { + int row = m_dvListCtrl->ItemToRow(item); + if(row < (m_dvListCtrl->GetItemCount() - 1)) { + ++row; + item = m_dvListCtrl->RowToItem(row); + m_dvListCtrl->Select(item); + m_dvListCtrl->EnsureVisible(item); + } else { + // Select the last item + item = m_dvListCtrl->RowToItem(0); + m_dvListCtrl->Select(item); + m_dvListCtrl->EnsureVisible(item); + } + } + + } else { + event.Skip(); + } +} + +void NotebookNavigationDlg::OnKeyUp(wxKeyEvent& event) +{ + if(event.GetKeyCode() == WXK_CONTROL) { + CloseDialog(); + } else { + event.Skip(); + } +} +void NotebookNavigationDlg::OnItemActivated(wxDataViewEvent& event) +{ + event.Skip(); + CloseDialog(); +} diff -Nru codelite-8.0.1+dfsg2/Plugin/NotebookNavigationDlg.h codelite-9.0+dfsg/Plugin/NotebookNavigationDlg.h --- codelite-8.0.1+dfsg2/Plugin/NotebookNavigationDlg.h 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/NotebookNavigationDlg.h 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,24 @@ +#ifndef NOTEBOOKNAVIGATIONDLG_H +#define NOTEBOOKNAVIGATIONDLG_H +#include "wxcrafter_plugin.h" +#include "codelite_exports.h" + +class Notebook; +class WXDLLIMPEXP_SDK NotebookNavigationDlg : public NotebookNavigationDlgBase +{ + Notebook* m_book; + int m_selection; + +public: + NotebookNavigationDlg(wxWindow* parent, Notebook* book); + virtual ~NotebookNavigationDlg(); + void CloseDialog(); + + int GetSelection() const { return m_selection; } + +protected: + virtual void OnItemActivated(wxDataViewEvent& event); + virtual void OnKeyDown(wxKeyEvent& event); + virtual void OnKeyUp(wxKeyEvent& event); +}; +#endif // NOTEBOOKNAVIGATIONDLG_H diff -Nru codelite-8.0.1+dfsg2/Plugin/openresourcedialogbase.cpp codelite-9.0+dfsg/Plugin/openresourcedialogbase.cpp --- codelite-8.0.1+dfsg2/Plugin/openresourcedialogbase.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/openresourcedialogbase.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -26,7 +26,7 @@ wxBoxSizer* mainSizer = new wxBoxSizer(wxVERTICAL); this->SetSizer(mainSizer); - m_textCtrlResourceName = new wxTextCtrl(this, wxID_ANY, wxT(""), wxDefaultPosition, wxSize(-1, -1), wxTE_PROCESS_ENTER); + m_textCtrlResourceName = new wxTextCtrl(this, wxID_ANY, wxT(""), wxDefaultPosition, wxSize(-1,-1), wxTE_PROCESS_ENTER); m_textCtrlResourceName->SetToolTip(_("Type resource name to open.\nYou may use a space delimited list of words to narrow down the list of choices\ne.g. Typing: 'Open Dialog' will include results that contain both words \"Open\" _and_ \"Dialog\"")); m_textCtrlResourceName->SetFocus(); #if wxVERSION_NUMBER >= 3000 @@ -35,19 +35,36 @@ mainSizer->Add(m_textCtrlResourceName, 0, wxALL|wxEXPAND, 5); - wxFlexGridSizer* fgSizer1 = new wxFlexGridSizer(2, 2, 0, 0); + m_dataview = new wxDataViewCtrl(this, wxID_ANY, wxDefaultPosition, wxSize(300,200), wxDV_VERT_RULES|wxDV_ROW_LINES|wxDV_SINGLE); + + m_dataviewModel = new OpenResourceDialogModel; + m_dataviewModel->SetColCount( 3 ); + m_dataview->AssociateModel(m_dataviewModel.get() ); + + mainSizer->Add(m_dataview, 1, wxALL|wxEXPAND, 5); + + m_dataview->AppendIconTextColumn(_("Name"), m_dataview->GetColumnCount(), wxDATAVIEW_CELL_INERT, 500, wxALIGN_LEFT); + m_dataview->AppendTextColumn(_("Impl?"), m_dataview->GetColumnCount(), wxDATAVIEW_CELL_INERT, 60, wxALIGN_LEFT); + m_dataview->AppendTextColumn(_("Full Name"), m_dataview->GetColumnCount(), wxDATAVIEW_CELL_INERT, 500, wxALIGN_LEFT); + wxFlexGridSizer* fgSizer1 = new wxFlexGridSizer(0, 2, 0, 0); fgSizer1->SetFlexibleDirection( wxBOTH ); fgSizer1->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); - fgSizer1->AddGrowableCol(0); - mainSizer->Add(fgSizer1, 0, wxEXPAND, 5); + mainSizer->Add(fgSizer1, 0, wxALL|wxALIGN_LEFT, 5); + + m_checkBoxFiles = new wxCheckBox(this, wxID_ANY, _("Show &files"), wxDefaultPosition, wxSize(-1,-1), 0); + m_checkBoxFiles->SetValue(false); + + fgSizer1->Add(m_checkBoxFiles, 0, wxALL|wxEXPAND, 5); - m_listOptions = new wxListView( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLC_HRULES|wxLC_REPORT|wxLC_SINGLE_SEL|wxLC_VRULES ); - mainSizer->Add(m_listOptions, 1, wxALL|wxEXPAND, 5); + m_checkBoxShowSymbols = new wxCheckBox(this, wxID_ANY, _("Show &symbols"), wxDefaultPosition, wxSize(-1,-1), 0); + m_checkBoxShowSymbols->SetValue(false); + + fgSizer1->Add(m_checkBoxShowSymbols, 0, wxALL|wxEXPAND, 5); m_stdBtnSizer2 = new wxStdDialogButtonSizer(); - mainSizer->Add(m_stdBtnSizer2, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 5); + mainSizer->Add(m_stdBtnSizer2, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 10); m_buttonOK = new wxButton(this, wxID_OK, wxT(""), wxDefaultPosition, wxSize(-1, -1), 0); m_buttonOK->SetDefault(); @@ -58,12 +75,15 @@ m_stdBtnSizer2->Realize(); SetName(wxT("OpenResourceDialogBase")); - SetMinSize( wxSize(400,300) ); - SetSizeHints(600,400); - if ( GetSizer() ) { + SetSizeHints(-1,-1); + if (GetSizer()) { GetSizer()->Fit(this); } - CentreOnParent(wxBOTH); + if(GetParent()) { + CentreOnParent(wxBOTH); + } else { + CentreOnScreen(wxBOTH); + } #if wxVERSION_NUMBER >= 2900 if(!wxPersistenceManager::Get().Find(this)) { wxPersistenceManager::Get().RegisterAndRestore(this); @@ -75,6 +95,10 @@ m_textCtrlResourceName->Connect(wxEVT_KEY_DOWN, wxKeyEventHandler(OpenResourceDialogBase::OnKeyDown), NULL, this); m_textCtrlResourceName->Connect(wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler(OpenResourceDialogBase::OnText), NULL, this); m_textCtrlResourceName->Connect(wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler(OpenResourceDialogBase::OnEnter), NULL, this); + m_dataview->Connect(wxEVT_COMMAND_DATAVIEW_ITEM_ACTIVATED, wxDataViewEventHandler(OpenResourceDialogBase::OnEntryActivated), NULL, this); + m_dataview->Connect(wxEVT_COMMAND_DATAVIEW_SELECTION_CHANGED, wxDataViewEventHandler(OpenResourceDialogBase::OnEntrySelected), NULL, this); + m_checkBoxFiles->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(OpenResourceDialogBase::OnCheckboxfilesCheckboxClicked), NULL, this); + m_checkBoxShowSymbols->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(OpenResourceDialogBase::OnCheckboxshowsymbolsCheckboxClicked), NULL, this); m_buttonOK->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(OpenResourceDialogBase::OnOK), NULL, this); m_buttonOK->Connect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(OpenResourceDialogBase::OnOKUI), NULL, this); @@ -85,6 +109,10 @@ m_textCtrlResourceName->Disconnect(wxEVT_KEY_DOWN, wxKeyEventHandler(OpenResourceDialogBase::OnKeyDown), NULL, this); m_textCtrlResourceName->Disconnect(wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler(OpenResourceDialogBase::OnText), NULL, this); m_textCtrlResourceName->Disconnect(wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler(OpenResourceDialogBase::OnEnter), NULL, this); + m_dataview->Disconnect(wxEVT_COMMAND_DATAVIEW_ITEM_ACTIVATED, wxDataViewEventHandler(OpenResourceDialogBase::OnEntryActivated), NULL, this); + m_dataview->Disconnect(wxEVT_COMMAND_DATAVIEW_SELECTION_CHANGED, wxDataViewEventHandler(OpenResourceDialogBase::OnEntrySelected), NULL, this); + m_checkBoxFiles->Disconnect(wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(OpenResourceDialogBase::OnCheckboxfilesCheckboxClicked), NULL, this); + m_checkBoxShowSymbols->Disconnect(wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(OpenResourceDialogBase::OnCheckboxshowsymbolsCheckboxClicked), NULL, this); m_buttonOK->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(OpenResourceDialogBase::OnOK), NULL, this); m_buttonOK->Disconnect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(OpenResourceDialogBase::OnOKUI), NULL, this); diff -Nru codelite-8.0.1+dfsg2/Plugin/openresourcedialogbase.h codelite-9.0+dfsg/Plugin/openresourcedialogbase.h --- codelite-8.0.1+dfsg2/Plugin/openresourcedialogbase.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/openresourcedialogbase.h 2015-10-11 13:56:07.000000000 +0000 @@ -4,8 +4,8 @@ // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// -#ifndef OPENRESOURCEDIALOGBASE_BASE_CLASSES_H -#define OPENRESOURCEDIALOGBASE_BASE_CLASSES_H +#ifndef CODELITE_PLUGIN_OPENRESOURCEDIALOGBASE_BASE_CLASSES_H +#define CODELITE_PLUGIN_OPENRESOURCEDIALOGBASE_BASE_CLASSES_H #include #include @@ -15,7 +15,9 @@ #include #include #include -#include +#include +#include "openresourcedialogmodel.h" +#include #include #if wxVERSION_NUMBER >= 2900 #include @@ -28,7 +30,11 @@ { protected: wxTextCtrl* m_textCtrlResourceName; - wxListView* m_listOptions; + wxDataViewCtrl* m_dataview; + wxObjectDataPtr m_dataviewModel; + + wxCheckBox* m_checkBoxFiles; + wxCheckBox* m_checkBoxShowSymbols; wxStdDialogButtonSizer* m_stdBtnSizer2; wxButton* m_buttonOK; wxButton* m_button6; @@ -37,13 +43,19 @@ virtual void OnKeyDown(wxKeyEvent& event) { event.Skip(); } virtual void OnText(wxCommandEvent& event) { event.Skip(); } virtual void OnEnter(wxCommandEvent& event) { event.Skip(); } + virtual void OnEntryActivated(wxDataViewEvent& event) { event.Skip(); } + virtual void OnEntrySelected(wxDataViewEvent& event) { event.Skip(); } + virtual void OnCheckboxfilesCheckboxClicked(wxCommandEvent& event) { event.Skip(); } + virtual void OnCheckboxshowsymbolsCheckboxClicked(wxCommandEvent& event) { event.Skip(); } virtual void OnOK(wxCommandEvent& event) { event.Skip(); } virtual void OnOKUI(wxUpdateUIEvent& event) { event.Skip(); } public: wxTextCtrl* GetTextCtrlResourceName() { return m_textCtrlResourceName; } - wxListView* GetListOptions() { return m_listOptions; } - OpenResourceDialogBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Open Resource"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(600,400), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER); + wxDataViewCtrl* GetDataview() { return m_dataview; } + wxCheckBox* GetCheckBoxFiles() { return m_checkBoxFiles; } + wxCheckBox* GetCheckBoxShowSymbols() { return m_checkBoxShowSymbols; } + OpenResourceDialogBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Open Resource"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER); virtual ~OpenResourceDialogBase(); }; diff -Nru codelite-8.0.1+dfsg2/Plugin/openresourcedialogbase_plugin_bitmaps.cpp codelite-9.0+dfsg/Plugin/openresourcedialogbase_plugin_bitmaps.cpp --- codelite-8.0.1+dfsg2/Plugin/openresourcedialogbase_plugin_bitmaps.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/openresourcedialogbase_plugin_bitmaps.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,47 +1,47 @@ -// -// This file was automatically generated by wxrc, do not edit by hand. -// - -#include - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#include -#include -#include -#include - -#if wxCHECK_VERSION(2,8,5) && wxABI_VERSION >= 20805 - #define XRC_ADD_FILE(name, data, size, mime) \ - wxMemoryFSHandler::AddFileWithMimeType(name, data, size, mime) -#else - #define XRC_ADD_FILE(name, data, size, mime) \ - wxMemoryFSHandler::AddFile(name, data, size) -#endif - -static size_t xml_res_size_0 = 90; -static unsigned char xml_res_file_0[] = { -60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, -110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, -115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, -47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, -47,119,120,120,114,99,34,47,62,10}; - -void wxCFB13InitBitmapResources() -{ - - // Check for memory FS. If not present, load the handler: - { - wxMemoryFSHandler::AddFile(wxT("XRC_resource/dummy_file"), wxT("dummy one")); - wxFileSystem fsys; - wxFSFile *f = fsys.OpenFile(wxT("memory:XRC_resource/dummy_file")); - wxMemoryFSHandler::RemoveFile(wxT("XRC_resource/dummy_file")); - if (f) delete f; - else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase); - } - - XRC_ADD_FILE(wxT("XRC_resource/openresourcedialogbase_plugin_bitmaps.cpp$C__src_codelite_Plugin_openresourcedialogbase_plugin_bitmaps.xrc"), xml_res_file_0, xml_res_size_0, wxT("text/xml")); - wxXmlResource::Get()->Load(wxT("memory:XRC_resource/openresourcedialogbase_plugin_bitmaps.cpp$C__src_codelite_Plugin_openresourcedialogbase_plugin_bitmaps.xrc")); -} +// +// This file was automatically generated by wxrc, do not edit by hand. +// + +#include + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +#include +#include +#include +#include + +#if wxCHECK_VERSION(2,8,5) && wxABI_VERSION >= 20805 + #define XRC_ADD_FILE(name, data, size, mime) \ + wxMemoryFSHandler::AddFileWithMimeType(name, data, size, mime) +#else + #define XRC_ADD_FILE(name, data, size, mime) \ + wxMemoryFSHandler::AddFile(name, data, size) +#endif + +static size_t xml_res_size_0 = 90; +static unsigned char xml_res_file_0[] = { +60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, +110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, +115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, +47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, +47,119,120,120,114,99,34,47,62,10}; + +void wxCFB13InitBitmapResources() +{ + + // Check for memory FS. If not present, load the handler: + { + wxMemoryFSHandler::AddFile(wxT("XRC_resource/dummy_file"), wxT("dummy one")); + wxFileSystem fsys; + wxFSFile *f = fsys.OpenFile(wxT("memory:XRC_resource/dummy_file")); + wxMemoryFSHandler::RemoveFile(wxT("XRC_resource/dummy_file")); + if (f) delete f; + else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase); + } + + XRC_ADD_FILE(wxT("XRC_resource/openresourcedialogbase_plugin_bitmaps.cpp$_home_eran_devl_codelite_Plugin_openresourcedialogbase_plugin_bitmaps.xrc"), xml_res_file_0, xml_res_size_0, wxT("text/xml")); + wxXmlResource::Get()->Load(wxT("memory:XRC_resource/openresourcedialogbase_plugin_bitmaps.cpp$_home_eran_devl_codelite_Plugin_openresourcedialogbase_plugin_bitmaps.xrc")); +} diff -Nru codelite-8.0.1+dfsg2/Plugin/openresourcedialogbase.wxcp codelite-9.0+dfsg/Plugin/openresourcedialogbase.wxcp --- codelite-8.0.1+dfsg2/Plugin/openresourcedialogbase.wxcp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/openresourcedialogbase.wxcp 2015-10-11 13:56:07.000000000 +0000 @@ -1,7 +1,7 @@ { "metadata": { "m_generatedFilesDir": ".", - "m_objCounter": 6, + "m_objCounter": 14, "m_includeFiles": [], "m_bitmapFunction": "wxCFB13InitBitmapResources", "m_bitmapsFile": "openresourcedialogbase_plugin_bitmaps.cpp", @@ -9,13 +9,7 @@ "m_outputFileName": "", "m_firstWindowId": 1000, "m_useEnum": false, - "m_templateClasses": [{ - "m_includeFile": "#include ", - "m_allocationLine": "$name = new wxListView( $parent, $id, wxDefaultPosition, wxDefaultSize, wxLC_HRULES|wxLC_REPORT|wxLC_SINGLE_SEL|wxLC_VRULES );", - "m_className": "wxListView", - "m_xrcPreviewClass": "wxListCtrl", - "m_events": [] - }] + "m_templateClasses": [] }, "windows": [{ "m_type": 4421, @@ -28,11 +22,11 @@ "m_properties": [{ "type": "string", "m_label": "Size:", - "m_value": "600,400" + "m_value": "-1,-1" }, { "type": "string", "m_label": "Minimum Size:", - "m_value": "400,300" + "m_value": "-1,-1" }, { "type": "string", "m_label": "Name:", @@ -97,11 +91,11 @@ }, { "type": "string", "m_label": "Inherited Class", - "m_value": "" + "m_value": "OpenResourceDialog" }, { "type": "string", "m_label": "File:", - "m_value": "" + "m_value": "open_resource_dialog" }, { "type": "string", "m_label": "Class Decorator", @@ -170,7 +164,7 @@ }, { "type": "string", "m_label": "Size:", - "m_value": "" + "m_value": "-1,-1" }, { "type": "string", "m_label": "Minimum Size:", @@ -264,59 +258,12 @@ }], "m_children": [] }, { - "m_type": 4403, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxEXPAND"], - "m_properties": [{ - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "fgSizer1" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "# Columns:", - "m_value": "2" - }, { - "type": "string", - "m_label": "# Rows:", - "m_value": "2" - }, { - "type": "string", - "m_label": "Growable columns:", - "m_value": "0" - }, { - "type": "string", - "m_label": "Growable rows:", - "m_value": "" - }, { - "type": "string", - "m_label": "Horizontal gap:", - "m_value": "0" - }, { - "type": "string", - "m_label": "Vertical gap:", - "m_value": "0" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4465, + "m_type": 4473, "proportion": 1, "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxDV_VERT_RULES", "wxDV_ROW_LINES", "wxDV_SINGLE"], "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "winid", @@ -325,15 +272,15 @@ }, { "type": "string", "m_label": "Size:", - "m_value": "" + "m_value": "300,200" }, { "type": "string", "m_label": "Minimum Size:", - "m_value": "" + "m_value": "-1,-1" }, { "type": "string", "m_label": "Name:", - "m_value": "m_listOptions" + "m_value": "m_dataview" }, { "type": "multi-string", "m_label": "Tooltip:", @@ -374,14 +321,360 @@ "type": "string", "m_label": "Style:", "m_value": "" + }, { + "type": "string", + "m_label": "Generated Model Class Name", + "m_value": "OpenResourceDialogModel" + }, { + "type": "bool", + "m_label": "Container Item Has Columns", + "m_value": true + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_DATAVIEW_ITEM_ACTIVATED", + "m_eventClass": "wxDataViewEvent", + "m_eventHandler": "wxDataViewEventHandler", + "m_functionNameAndSignature": "OnEntryActivated(wxDataViewEvent& event)", + "m_description": "Process a wxEVT_COMMAND_DATAVIEW_ITEM_ACTIVATED event.\nThis event is triggered by double clicking an item or pressing some special key (usually \"Enter\") when it is focused", + "m_noBody": false + }, { + "m_eventName": "wxEVT_COMMAND_DATAVIEW_SELECTION_CHANGED", + "m_eventClass": "wxDataViewEvent", + "m_eventHandler": "wxDataViewEventHandler", + "m_functionNameAndSignature": "OnEntrySelected(wxDataViewEvent& event)", + "m_description": "Process a wxEVT_COMMAND_DATAVIEW_SELECTION_CHANGED event", + "m_noBody": false + }], + "m_children": [{ + "m_type": 4472, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "Name" + }, { + "type": "string", + "m_label": "Width:", + "m_value": "500" + }, { + "type": "choice", + "m_label": "Column Type", + "m_selection": 3, + "m_options": ["bitmap", "check", "text", "icontext", "progress", "choice"] + }, { + "type": "multi-string", + "m_label": "Choices:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Alignment", + "m_selection": 0, + "m_options": ["wxALIGN_LEFT", "wxALIGN_RIGHT", "wxALIGN_CENTER"] + }, { + "type": "choice", + "m_label": "Cell Mode", + "m_selection": 0, + "m_options": ["wxDATAVIEW_CELL_INERT", "wxDATAVIEW_CELL_ACTIVATABLE", "wxDATAVIEW_CELL_EDITABLE"] + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4472, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "Impl?" + }, { + "type": "string", + "m_label": "Width:", + "m_value": "60" + }, { + "type": "choice", + "m_label": "Column Type", + "m_selection": 2, + "m_options": ["bitmap", "check", "text", "icontext", "progress", "choice"] + }, { + "type": "multi-string", + "m_label": "Choices:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Alignment", + "m_selection": 0, + "m_options": ["wxALIGN_LEFT", "wxALIGN_RIGHT", "wxALIGN_CENTER"] + }, { + "type": "choice", + "m_label": "Cell Mode", + "m_selection": 0, + "m_options": ["wxDATAVIEW_CELL_INERT", "wxDATAVIEW_CELL_ACTIVATABLE", "wxDATAVIEW_CELL_EDITABLE"] + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4472, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "Full Name" + }, { + "type": "string", + "m_label": "Width:", + "m_value": "500" + }, { + "type": "choice", + "m_label": "Column Type", + "m_selection": 2, + "m_options": ["bitmap", "check", "text", "icontext", "progress", "choice"] + }, { + "type": "multi-string", + "m_label": "Choices:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Alignment", + "m_selection": 0, + "m_options": ["wxALIGN_LEFT", "wxALIGN_RIGHT", "wxALIGN_CENTER"] + }, { + "type": "choice", + "m_label": "Cell Mode", + "m_selection": 0, + "m_options": ["wxDATAVIEW_CELL_INERT", "wxDATAVIEW_CELL_ACTIVATABLE", "wxDATAVIEW_CELL_EDITABLE"] + }], + "m_events": [], + "m_children": [] + }] + }, { + "m_type": 4403, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_LEFT"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "fgSizer1" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "# Columns:", + "m_value": "2" + }, { + "type": "string", + "m_label": "# Rows:", + "m_value": "0" + }, { + "type": "string", + "m_label": "Growable columns:", + "m_value": "" + }, { + "type": "string", + "m_label": "Growable rows:", + "m_value": "" + }, { + "type": "string", + "m_label": "Horizontal gap:", + "m_value": "0" + }, { + "type": "string", + "m_label": "Vertical gap:", + "m_value": "0" }], "m_events": [], - "m_children": [], - "m_templInfoName": "wxListView" + "m_children": [{ + "m_type": 4415, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_checkBoxFiles" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Show &files" + }, { + "type": "bool", + "m_label": "Value:", + "m_value": false + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_CHECKBOX_CLICKED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnCheckboxfilesCheckboxClicked(wxCommandEvent& event)", + "m_description": "Process a wxEVT_COMMAND_CHECKBOX_CLICKED event, when the checkbox is clicked.", + "m_noBody": false + }], + "m_children": [] + }, { + "m_type": 4415, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_checkBoxShowSymbols" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Show &symbols" + }, { + "type": "bool", + "m_label": "Value:", + "m_value": false + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_CHECKBOX_CLICKED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnCheckboxshowsymbolsCheckboxClicked(wxCommandEvent& event)", + "m_description": "Process a wxEVT_COMMAND_CHECKBOX_CLICKED event, when the checkbox is clicked.", + "m_noBody": false + }], + "m_children": [] + }] }, { "m_type": 4467, "proportion": 0, - "border": 5, + "border": 10, "gbSpan": "1,1", "gbPosition": "0,0", "m_styles": [], diff -Nru codelite-8.0.1+dfsg2/Plugin/open_resource_dialog.cpp codelite-9.0+dfsg/Plugin/open_resource_dialog.cpp --- codelite-8.0.1+dfsg2/Plugin/open_resource_dialog.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/open_resource_dialog.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -52,35 +52,28 @@ , m_needRefresh(false) { Hide(); - // Create an image list - wxImageList* li = new wxImageList(16, 16, true); BitmapLoader* bmpLoader = m_manager->GetStdIcons(); - m_tagImgMap[wxT("class")] = li->Add(bmpLoader->LoadBitmap(wxT("cc/16/class"))); - m_tagImgMap[wxT("struct")] = li->Add(bmpLoader->LoadBitmap(wxT("cc/16/struct"))); - m_tagImgMap[wxT("namespace")] = li->Add(bmpLoader->LoadBitmap(wxT("cc/16/namespace"))); - m_tagImgMap[wxT("typedef")] = li->Add(bmpLoader->LoadBitmap(wxT("cc/16/typedef"))); - m_tagImgMap[wxT("member_private")] = li->Add(bmpLoader->LoadBitmap(wxT("cc/16/member_private"))); - m_tagImgMap[wxT("member_public")] = li->Add(bmpLoader->LoadBitmap(wxT("cc/16/member_public"))); - m_tagImgMap[wxT("member_protected")] = li->Add(bmpLoader->LoadBitmap(wxT("cc/16/member_protected"))); - m_tagImgMap[wxT("function_private")] = li->Add(bmpLoader->LoadBitmap(wxT("cc/16/function_private"))); - m_tagImgMap[wxT("function_public")] = li->Add(bmpLoader->LoadBitmap(wxT("cc/16/function_public"))); - m_tagImgMap[wxT("function_protected")] = li->Add(bmpLoader->LoadBitmap(wxT("cc/16/function_protected"))); - m_tagImgMap[wxT("enum")] = li->Add(bmpLoader->LoadBitmap(wxT("cc/16/enum"))); - m_tagImgMap[wxT("enumerator")] = li->Add(bmpLoader->LoadBitmap(wxT("cc/16/enumerator"))); - m_tagImgMap[wxT("cpp")] = li->Add(bmpLoader->LoadBitmap(wxT("mime/16/cpp"))); - m_tagImgMap[wxT("h")] = li->Add(bmpLoader->LoadBitmap(wxT("mime/16/h"))); - m_tagImgMap[wxT("text")] = li->Add(bmpLoader->LoadBitmap(wxT("mime/16/text"))); - m_tagImgMap[wxT("c")] = li->Add(bmpLoader->LoadBitmap(wxT("mime/16/c"))); - m_tagImgMap[wxT("wxfb")] = li->Add(bmpLoader->LoadBitmap(wxT("mime/16/wxfb"))); - m_tagImgMap[wxT("wxcp")] = li->Add(bmpLoader->LoadBitmap(wxT("mime/16/wxcp"))); - - m_listOptions->AssignImageList(li, wxIMAGE_LIST_SMALL); + m_tagImgMap[wxT("class")] = bmpLoader->LoadBitmap(wxT("cc/16/class")); + m_tagImgMap[wxT("struct")] = bmpLoader->LoadBitmap(wxT("cc/16/struct")); + m_tagImgMap[wxT("namespace")] = bmpLoader->LoadBitmap(wxT("cc/16/namespace")); + m_tagImgMap[wxT("typedef")] = bmpLoader->LoadBitmap(wxT("cc/16/typedef")); + m_tagImgMap[wxT("member_private")] = bmpLoader->LoadBitmap(wxT("cc/16/member_private")); + m_tagImgMap[wxT("member_public")] = bmpLoader->LoadBitmap(wxT("cc/16/member_public")); + m_tagImgMap[wxT("member_protected")] = bmpLoader->LoadBitmap(wxT("cc/16/member_protected")); + m_tagImgMap[wxT("function_private")] = bmpLoader->LoadBitmap(wxT("cc/16/function_private")); + m_tagImgMap[wxT("function_public")] = bmpLoader->LoadBitmap(wxT("cc/16/function_public")); + m_tagImgMap[wxT("function_protected")] = bmpLoader->LoadBitmap(wxT("cc/16/function_protected")); + m_tagImgMap[wxT("enum")] = bmpLoader->LoadBitmap(wxT("cc/16/enum")); + m_tagImgMap[wxT("enumerator")] = bmpLoader->LoadBitmap(wxT("cc/16/enumerator")); + m_tagImgMap[wxT("cpp")] = bmpLoader->LoadBitmap(wxT("mime/16/cpp")); + m_tagImgMap[wxT("h")] = bmpLoader->LoadBitmap(wxT("mime/16/h")); + m_tagImgMap[wxT("text")] = bmpLoader->LoadBitmap(wxT("mime/16/text")); + m_tagImgMap[wxT("c")] = bmpLoader->LoadBitmap(wxT("mime/16/c")); + m_tagImgMap[wxT("wxfb")] = bmpLoader->LoadBitmap(wxT("mime/16/wxfb")); + m_tagImgMap[wxT("wxcp")] = bmpLoader->LoadBitmap(wxT("mime/16/wxcp")); m_timer = new wxTimer(this, XRCID("OR_TIMER")); - MSWSetNativeTheme(m_listOptions); - m_listOptions->InsertColumn(0, wxT("Name")); - m_listOptions->InsertColumn(1, wxT("Full path")); m_textCtrlResourceName->SetFocus(); SetLabel(_("Open resource...")); @@ -110,23 +103,30 @@ } } - m_listOptions->Connect( - wxEVT_COMMAND_LIST_ITEM_ACTIVATED, wxListEventHandler(OpenResourceDialog::OnItemActivated), NULL, this); - m_listOptions->Connect( - wxEVT_COMMAND_LIST_ITEM_SELECTED, wxListEventHandler(OpenResourceDialog::OnItemSelected), NULL, this); - // Set the initial selection // We use here 'SetValue' so an event will get fired and update the control if(!initialSelection.IsEmpty()) { m_textCtrlResourceName->SetValue(initialSelection); m_textCtrlResourceName->SelectAll(); } + + m_dataview->GetColumn(0)->SetWidth(400); + m_dataview->GetColumn(1)->SetWidth(60); + m_dataview->GetColumn(2)->SetWidth(500); + + bool showFiles = clConfig::Get().Read("OpenResourceDialog/ShowFiles", true); + bool showSymbols = clConfig::Get().Read("OpenResourceDialog/ShowSymbols", true); + m_checkBoxFiles->SetValue(showFiles); + m_checkBoxShowSymbols->SetValue(showSymbols); } OpenResourceDialog::~OpenResourceDialog() { m_timer->Stop(); wxDELETE(m_timer); + + clConfig::Get().Write("OpenResourceDialog/ShowFiles", m_checkBoxFiles->IsChecked()); + clConfig::Get().Write("OpenResourceDialog/ShowSymbols", m_checkBoxShowSymbols->IsChecked()); } void OpenResourceDialog::OnText(wxCommandEvent& event) @@ -155,28 +155,15 @@ m_textCtrlResourceName->SetFocus(); } -void OpenResourceDialog::OnEnter(wxCommandEvent& event) +void OpenResourceDialog::OnEntryActivated(wxDataViewEvent& event) { - wxUnusedVar(event); - int sel = m_listOptions->GetFirstSelected(); - if(sel != wxNOT_FOUND) { - OpenResourceDialogItemData* data = (OpenResourceDialogItemData*)m_listOptions->GetItemData(sel); - if(data) { - m_selection = *data; - EndModal(wxID_OK); - } - } -} + CHECK_ITEM_RET(event.GetItem()); -void OpenResourceDialog::OnItemActivated(wxListEvent& event) -{ - int sel = event.m_itemIndex; - if(sel != wxNOT_FOUND) { - OpenResourceDialogItemData* data = (OpenResourceDialogItemData*)m_listOptions->GetItemData(sel); - if(data) { - m_selection = *data; - EndModal(wxID_OK); - } + m_dataviewModel->GetClientObject(event.GetItem()); + OpenResourceDialogItemData* data = + dynamic_cast(m_dataviewModel->GetClientObject(event.GetItem())); + if(data) { + EndModal(wxID_OK); } } @@ -188,7 +175,7 @@ Clear(); - wxWindowUpdateLocker locker(m_listOptions); + wxWindowUpdateLocker locker(m_dataview); // First add the workspace files @@ -199,15 +186,12 @@ m_userFilters.Item(i).MakeLower(); } - DoPopulateWorkspaceFile(); - DoPopulateTags(); + if(m_checkBoxFiles->IsChecked()) { + DoPopulateWorkspaceFile(); + } - if(m_listOptions->GetItemCount()) { - m_listOptions->SetColumnWidth(0, wxLIST_AUTOSIZE); - m_listOptions->SetColumnWidth(1, wxLIST_AUTOSIZE); - } else { - m_listOptions->SetColumnWidth(0, wxLIST_AUTOSIZE_USEHEADER); - m_listOptions->SetColumnWidth(1, wxLIST_AUTOSIZE_USEHEADER); + if(m_checkBoxShowSymbols->IsChecked()) { + DoPopulateTags(); } } @@ -232,39 +216,33 @@ wxString name(tag->GetName()); // keep the fullpath - int index(0); + wxDataViewItem item; wxString fullname; if(tag->GetKind() == wxT("function") || tag->GetKind() == wxT("prototype")) { fullname = wxString::Format( wxT("%s::%s%s"), tag->GetScope().c_str(), tag->GetName().c_str(), tag->GetSignature().c_str()); - index = - DoAppendLine(tag->GetName(), - fullname, - (tag->GetKind() == wxT("function")), - new OpenResourceDialogItemData( - tag->GetFile(), tag->GetLine(), tag->GetPattern(), tag->GetName(), tag->GetScope()), - DoGetTagImgId(tag)); + item = DoAppendLine(tag->GetName(), + fullname, + (tag->GetKind() == wxT("function")), + new OpenResourceDialogItemData( + tag->GetFile(), tag->GetLine(), tag->GetPattern(), tag->GetName(), tag->GetScope()), + DoGetTagImg(tag)); } else { fullname = wxString::Format(wxT("%s::%s"), tag->GetScope().c_str(), tag->GetName().c_str()); - index = - DoAppendLine(tag->GetName(), - fullname, - false, - new OpenResourceDialogItemData( - tag->GetFile(), tag->GetLine(), tag->GetPattern(), tag->GetName(), tag->GetScope()), - DoGetTagImgId(tag)); + item = DoAppendLine(tag->GetName(), + fullname, + false, + new OpenResourceDialogItemData( + tag->GetFile(), tag->GetLine(), tag->GetPattern(), tag->GetName(), tag->GetScope()), + DoGetTagImg(tag)); } if((m_userFilters.GetCount() == 1) && (m_userFilters.Item(0).CmpNoCase(name) == 0) && !gotExactMatch) { gotExactMatch = true; - DoSelectItem(index); + DoSelectItem(item); } } - - if(!gotExactMatch && m_listOptions->GetItemCount()) { - DoSelectItem(0); - } } void OpenResourceDialog::DoPopulateWorkspaceFile() @@ -281,7 +259,7 @@ wxFileName fn(iter->second); FileExtManager::FileType type = FileExtManager::GetType(fn.GetFullName()); - int imgId = m_tagImgMap[wxT("text")]; + wxBitmap imgId = m_tagImgMap[wxT("text")]; switch(type) { case FileExtManager::TypeSourceC: imgId = m_tagImgMap[wxT("c")]; @@ -314,13 +292,7 @@ void OpenResourceDialog::Clear() { // list control does not own the client data, we need to free it ourselves - for(int i = 0; i < m_listOptions->GetItemCount(); i++) { - OpenResourceDialogItemData* data = (OpenResourceDialogItemData*)m_listOptions->GetItemData(i); - if(data) { - delete data; - } - } - m_listOptions->DeleteAllItems(); + m_dataviewModel->Clear(); m_userFilters.Clear(); } @@ -333,7 +305,7 @@ activateEvent.SetFileName(file_path); if(EventNotifier::Get()->ProcessEvent(activateEvent)) return; - if(manager && manager->OpenFile(selection.m_file, wxEmptyString, selection.m_line)) { + if(manager && manager->OpenFile(selection.m_file, wxEmptyString, selection.m_line - 1)) { IEditor* editor = manager->GetActiveEditor(); if(editor && !selection.m_name.IsEmpty() && !selection.m_pattern.IsEmpty()) { editor->FindAndSelectV(selection.m_pattern, selection.m_name); @@ -343,95 +315,71 @@ void OpenResourceDialog::OnKeyDown(wxKeyEvent& event) { - if(event.GetKeyCode() == WXK_DOWN && m_listOptions->GetItemCount() > 0) { - // up key - int cursel = m_listOptions->GetFirstSelected(); - if(cursel != wxNOT_FOUND) { - // there is a selection in the listbox - cursel++; - if(cursel >= (int)m_listOptions->GetItemCount()) { - // already at last item, cant scroll anymore - return; - } - DoSelectItem(cursel); + event.Skip(); + if(m_dataviewModel->IsEmpty()) return; + if(event.GetKeyCode() == WXK_DOWN || event.GetKeyCode() == WXK_UP || event.GetKeyCode() == WXK_NUMPAD_UP || + event.GetKeyCode() == WXK_NUMPAD_DOWN) { + event.Skip(false); + bool down = (event.GetKeyCode() == WXK_DOWN || event.GetKeyCode() == WXK_NUMPAD_DOWN); + wxDataViewItemArray children; + m_dataviewModel->GetChildren(wxDataViewItem(0), children); + wxDataViewItem selection = m_dataview->GetSelection(); + if(!selection.IsOk()) { + // No selection, select the first + DoSelectItem(children.Item(0)); } else { - // no selection is made - DoSelectItem(0); - } - return; - - } else if(event.GetKeyCode() == WXK_UP && m_listOptions->GetItemCount() > 0) { - // up key - int cursel = m_listOptions->GetFirstSelected(); - if(cursel != wxNOT_FOUND) { - // there is a selection in the listbox - cursel--; - if(cursel < 0) { - // already at first item, cant scroll anymore - return; + int curIndex = wxNOT_FOUND; + for(size_t i = 0; i < children.size(); ++i) { + if(children.Item(i) == selection) { + curIndex = i; + break; + } } - DoSelectItem(cursel); - } else { - // no selection is made - DoSelectItem(0); + if(curIndex != wxNOT_FOUND) { + down ? ++curIndex : --curIndex; + if((curIndex >= 0) && (curIndex < (int)children.size())) { + DoSelectItem(children.Item(curIndex)); + } + } } - return; - } else - event.Skip(); + // Set the focus back to the text control + m_textCtrlResourceName->CallAfter(&wxTextCtrl::SetFocus); + } } void OpenResourceDialog::OnOK(wxCommandEvent& event) { event.Skip(); } -void OpenResourceDialog::OnOKUI(wxUpdateUIEvent& event) { event.Enable(m_selection.IsOk()); } - -bool OpenResourceDialogItemData::IsOk() const { return m_file.IsEmpty() == false; } - -void OpenResourceDialog::DoSelectItem(int selection, bool makeFirst) +void OpenResourceDialog::OnOKUI(wxUpdateUIEvent& event) { - // Unselect current item first - int currentSelection = m_listOptions->GetFirstSelected(); - if(currentSelection != wxNOT_FOUND) { - m_listOptions->Select(currentSelection, false); - } - - m_listOptions->Select(selection); - if(makeFirst) m_listOptions->EnsureVisible(selection); - - // display the full name at the bottom static text control - OpenResourceDialogItemData* data = (OpenResourceDialogItemData*)m_listOptions->GetItemData(selection); - m_selection = *data; + wxDataViewItem item = m_dataview->GetSelection(); + event.Enable(item.IsOk()); } -void OpenResourceDialog::OnItemSelected(wxListEvent& event) -{ - event.Skip(); - if(event.m_itemIndex != wxNOT_FOUND) { - // display the full name at the bottom static text control - OpenResourceDialogItemData* data = (OpenResourceDialogItemData*)m_listOptions->GetItemData(event.m_itemIndex); - m_selection = *data; - } -} +bool OpenResourceDialogItemData::IsOk() const { return m_file.IsEmpty() == false; } -int OpenResourceDialog::DoAppendLine(const wxString& name, - const wxString& fullname, - bool boldFont, - OpenResourceDialogItemData* clientData, - int imgId) -{ - int index = AppendListCtrlRow(m_listOptions); - SetColumnText(m_listOptions, index, 0, name, imgId); - SetColumnText(m_listOptions, index, 1, fullname); - - m_listOptions->SetItemPtrData(index, (wxUIntPtr)(clientData)); - - // Mark implementations with bold font - wxFont font = wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT); - if(boldFont) font.SetWeight(wxFONTWEIGHT_BOLD); - m_listOptions->SetItemFont(index, font); - return index; +void OpenResourceDialog::DoSelectItem(const wxDataViewItem& item) +{ + CHECK_ITEM_RET(item); + m_dataview->Select(item); + m_dataview->EnsureVisible(item); +} + +wxDataViewItem OpenResourceDialog::DoAppendLine(const wxString& name, + const wxString& fullname, + bool boldFont, + OpenResourceDialogItemData* clientData, + const wxBitmap& bmp) +{ + wxString prefix; + clientData->m_impl = boldFont; + wxVector cols; + cols.push_back(OpenResourceDialogModel::CreateIconTextVariant(prefix + name, bmp)); + cols.push_back(clientData->m_impl ? wxString("X") : wxString()); + cols.push_back(fullname); + return m_dataviewModel->AppendItem(wxDataViewItem(0), cols, clientData); } void OpenResourceDialog::OnTimer(wxTimerEvent& event) @@ -441,45 +389,45 @@ m_needRefresh = false; } -int OpenResourceDialog::DoGetTagImgId(TagEntryPtr tag) +wxBitmap OpenResourceDialog::DoGetTagImg(TagEntryPtr tag) { wxString kind = tag->GetKind(); wxString access = tag->GetAccess(); - int imgId = m_tagImgMap[wxT("text")]; - if(kind == wxT("class")) imgId = m_tagImgMap[wxT("class")]; + wxBitmap bmp = m_tagImgMap[wxT("text")]; + if(kind == wxT("class")) bmp = m_tagImgMap[wxT("class")]; - if(kind == wxT("struct")) imgId = m_tagImgMap[wxT("struct")]; + if(kind == wxT("struct")) bmp = m_tagImgMap[wxT("struct")]; - if(kind == wxT("namespace")) imgId = m_tagImgMap[wxT("namespace")]; + if(kind == wxT("namespace")) bmp = m_tagImgMap[wxT("namespace")]; - if(kind == wxT("variable")) imgId = m_tagImgMap[wxT("member_public")]; + if(kind == wxT("variable")) bmp = m_tagImgMap[wxT("member_public")]; - if(kind == wxT("typedef")) imgId = m_tagImgMap[wxT("typedef")]; + if(kind == wxT("typedef")) bmp = m_tagImgMap[wxT("typedef")]; - if(kind == wxT("member") && access.Contains(wxT("private"))) imgId = m_tagImgMap[wxT("member_private")]; + if(kind == wxT("member") && access.Contains(wxT("private"))) bmp = m_tagImgMap[wxT("member_private")]; - if(kind == wxT("member") && access.Contains(wxT("public"))) imgId = m_tagImgMap[wxT("member_public")]; + if(kind == wxT("member") && access.Contains(wxT("public"))) bmp = m_tagImgMap[wxT("member_public")]; - if(kind == wxT("member") && access.Contains(wxT("protected"))) imgId = m_tagImgMap[wxT("member_protected")]; + if(kind == wxT("member") && access.Contains(wxT("protected"))) bmp = m_tagImgMap[wxT("member_protected")]; - if(kind == wxT("member")) imgId = m_tagImgMap[wxT("member_public")]; + if(kind == wxT("member")) bmp = m_tagImgMap[wxT("member_public")]; if((kind == wxT("function") || kind == wxT("prototype")) && access.Contains(wxT("private"))) - imgId = m_tagImgMap[wxT("function_private")]; + bmp = m_tagImgMap[wxT("function_private")]; if((kind == wxT("function") || kind == wxT("prototype")) && (access.Contains(wxT("public")) || access.IsEmpty())) - imgId = m_tagImgMap[wxT("function_public")]; + bmp = m_tagImgMap[wxT("function_public")]; if((kind == wxT("function") || kind == wxT("prototype")) && access.Contains(wxT("protected"))) - imgId = m_tagImgMap[wxT("function_protected")]; + bmp = m_tagImgMap[wxT("function_protected")]; - if(kind == wxT("macro")) imgId = m_tagImgMap[wxT("typedef")]; + if(kind == wxT("macro")) bmp = m_tagImgMap[wxT("typedef")]; - if(kind == wxT("enum")) imgId = m_tagImgMap[wxT("enum")]; + if(kind == wxT("enum")) bmp = m_tagImgMap[wxT("enum")]; - if(kind == wxT("enumerator")) imgId = m_tagImgMap[wxT("enumerator")]; + if(kind == wxT("enumerator")) bmp = m_tagImgMap[wxT("enumerator")]; - return imgId; + return bmp; } bool OpenResourceDialog::MatchesFilter(const wxString& name) @@ -494,3 +442,26 @@ } return true; } +void OpenResourceDialog::OnCheckboxfilesCheckboxClicked(wxCommandEvent& event) { DoPopulateList(); } +void OpenResourceDialog::OnCheckboxshowsymbolsCheckboxClicked(wxCommandEvent& event) { DoPopulateList(); } + +void OpenResourceDialog::OnEnter(wxCommandEvent& event) +{ + wxDataViewItem item = m_dataview->GetSelection(); + + if(item.IsOk()) { + EndModal(wxID_OK); + } +} + +void OpenResourceDialog::OnEntrySelected(wxDataViewEvent& event) { event.Skip(); } + +OpenResourceDialogItemData* OpenResourceDialog::GetSelection() const +{ + wxDataViewItem item = m_dataview->GetSelection(); + if(!item.IsOk()) return NULL; + + OpenResourceDialogItemData* data = + dynamic_cast(m_dataviewModel->GetClientObject(item)); + return data; +} diff -Nru codelite-8.0.1+dfsg2/Plugin/open_resource_dialog.h codelite-9.0+dfsg/Plugin/open_resource_dialog.h --- codelite-8.0.1+dfsg2/Plugin/open_resource_dialog.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/open_resource_dialog.h 2015-10-11 13:56:07.000000000 +0000 @@ -26,11 +26,6 @@ #ifndef __open_resource_dialog__ #define __open_resource_dialog__ -/** -@file -Subclass of OpenResourceDialogBase, which is generated by wxFormBuilder. -*/ - #include "openresourcedialogbase.h" #include #include "entry.h" @@ -49,6 +44,7 @@ wxString m_pattern; wxString m_name; wxString m_scope; + bool m_impl; public: OpenResourceDialogItemData() @@ -57,6 +53,7 @@ , m_pattern(wxT("")) , m_name(wxT("")) , m_scope(wxT("")) + , m_impl(false) { } @@ -70,6 +67,7 @@ , m_pattern(pattern) , m_name(name) , m_scope(scope) + , m_impl(false) { } @@ -84,36 +82,37 @@ IManager* m_manager; std::multimap m_files; wxTimer* m_timer; - OpenResourceDialogItemData m_selection; bool m_needRefresh; - std::map m_tagImgMap; + std::map m_tagImgMap; wxArrayString m_filters; wxArrayString m_userFilters; protected: + virtual void OnEnter(wxCommandEvent& event); + virtual void OnEntrySelected(wxDataViewEvent& event); + virtual void OnEntryActivated(wxDataViewEvent& event); + virtual void OnCheckboxfilesCheckboxClicked(wxCommandEvent& event); + virtual void OnCheckboxshowsymbolsCheckboxClicked(wxCommandEvent& event); void DoPopulateList(); void DoPopulateWorkspaceFile(); bool MatchesFilter(const wxString& name); void DoPopulateTags(); - void DoSelectItem(int selection, bool makeFirst = true); + void DoSelectItem(const wxDataViewItem& item); void Clear(); - int DoAppendLine(const wxString& name, - const wxString& fullname, - bool boldFont, - OpenResourceDialogItemData* clientData, - int imgId); - int DoGetTagImgId(TagEntryPtr tag); + wxDataViewItem DoAppendLine(const wxString& name, + const wxString& fullname, + bool boldFont, + OpenResourceDialogItemData* clientData, + const wxBitmap& bmp); + wxBitmap DoGetTagImg(TagEntryPtr tag); protected: // Handlers for OpenResourceDialogBase events. void OnText(wxCommandEvent& event); void OnUsePartialMatching(wxCommandEvent& event); - void OnEnter(wxCommandEvent& event); - void OnItemActivated(wxListEvent& event); void OnKeyDown(wxKeyEvent& event); void OnOK(wxCommandEvent& event); void OnOKUI(wxUpdateUIEvent& event); - void OnItemSelected(wxListEvent& event); void OnTimer(wxTimerEvent& event); DECLARE_EVENT_TABLE() @@ -123,7 +122,7 @@ OpenResourceDialog(wxWindow* parent, IManager* manager, const wxString& initialSelection); virtual ~OpenResourceDialog(); - const OpenResourceDialogItemData& GetSelection() const { return m_selection; } + OpenResourceDialogItemData* GetSelection() const; wxArrayString& GetFilters() { return m_filters; } diff -Nru codelite-8.0.1+dfsg2/Plugin/openresourcedialogmodel.cpp codelite-9.0+dfsg/Plugin/openresourcedialogmodel.cpp --- codelite-8.0.1+dfsg2/Plugin/openresourcedialogmodel.cpp 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/openresourcedialogmodel.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,324 @@ +////////////////////////////////////////////////////////////////////// +// This file was auto-generated by codelite's wxCrafter Plugin +// Do not modify this file by hand! +////////////////////////////////////////////////////////////////////// + +#include "openresourcedialogmodel.h" +#include +#include + +////////////////////////////////////////// +// Implementation +////////////////////////////////////////// + +// ------------------------------------------------- +// Help method +// ------------------------------------------------- +wxVariant OpenResourceDialogModel::CreateIconTextVariant(const wxString &text, const wxBitmap& bmp) +{ + wxIcon icn; + icn.CopyFromBitmap( bmp); + wxDataViewIconText ict(text, icn); + wxVariant v; + v << ict; + return v; +} + +// ------------------------------------------------- +// The model class +// ------------------------------------------------- + +OpenResourceDialogModel::OpenResourceDialogModel() + : m_colCount(0) +{ +} + +OpenResourceDialogModel::~OpenResourceDialogModel() +{ + for(size_t i=0; i(item.m_pItem); + if ( node ) { + for(size_t i=0; iGetChildren().size(); ++i) { + children.Add( wxDataViewItem( node->GetChildren().at(i) ) ); + } + } + return children.GetCount(); +} + +unsigned int OpenResourceDialogModel::GetColumnCount() const +{ + return m_colCount; +} + +wxString OpenResourceDialogModel::GetColumnType(unsigned int col) const +{ + if ( !m_data.empty() && m_data.at(0)->GetData().size() > col ) { + return m_data.at(0)->GetData().at(col).GetType(); + } + return "string"; +} + +wxDataViewItem OpenResourceDialogModel::GetParent(const wxDataViewItem& item) const +{ + if ( IsEmpty() ) { + return wxDataViewItem(NULL); + } + + OpenResourceDialogModel_Item* node = reinterpret_cast(item.m_pItem); + if ( node ) { + return wxDataViewItem(node->GetParent()); + } + return wxDataViewItem(NULL); +} + +bool OpenResourceDialogModel::IsContainer(const wxDataViewItem& item) const +{ + OpenResourceDialogModel_Item* node = reinterpret_cast(item.m_pItem); + if ( node ) { + return node->IsContainer(); + } + return false; +} + +void OpenResourceDialogModel::GetValue(wxVariant& variant, const wxDataViewItem& item, unsigned int col) const +{ + OpenResourceDialogModel_Item* node = reinterpret_cast(item.m_pItem); + if ( node && node->GetData().size() > col ) { + variant = node->GetData().at(col); + } +} +wxDataViewItem OpenResourceDialogModel::DoAppendItem(const wxDataViewItem& parent, const wxVector& data, bool isContainer, wxClientData *clientData) +{ + OpenResourceDialogModel_Item* parentNode = reinterpret_cast(parent.m_pItem); + DoChangeItemType(parent, true); + + OpenResourceDialogModel_Item* child = new OpenResourceDialogModel_Item(); + child->SetIsContainer(isContainer); + child->SetClientObject( clientData ); + child->SetData( data ); + if ( parentNode ) { + parentNode->AddChild( child ); + + } else { + m_data.push_back( child ); + } + + return wxDataViewItem(child); +} + +wxDataViewItem OpenResourceDialogModel::DoInsertItem(const wxDataViewItem& insertBeforeMe, const wxVector& data, bool isContainer, wxClientData *clientData) +{ + OpenResourceDialogModel_Item* child = new OpenResourceDialogModel_Item(); + child->SetIsContainer(isContainer); + child->SetClientObject( clientData ); + child->SetData( data ); + + // find the location where to insert the new item + OpenResourceDialogModel_Item* node = reinterpret_cast(insertBeforeMe.m_pItem); + if ( !node ) + return wxDataViewItem(); + + wxVector::iterator where = std::find(m_data.begin(), m_data.end(), node); + + if ( where != m_data.end() ) { + // top level item + m_data.insert( where, child ); + + } else { + + if ( !node->GetParent() ) + return wxDataViewItem(); + + child->SetParent(node->GetParent()); + where = std::find(node->GetParent()->GetChildren().begin(), node->GetParent()->GetChildren().end(), node); + if ( where == node->GetParent()->GetChildren().end() ) { + node->GetParent()->GetChildren().push_back( child ); + + } else { + node->GetParent()->GetChildren().insert(where, child); + + } + } + + return wxDataViewItem(child); +} + +wxDataViewItem OpenResourceDialogModel::AppendItem(const wxDataViewItem &parent, const wxVector& data, wxClientData *clientData) +{ + wxDataViewItem ch = DoAppendItem(parent, data, false, clientData); + ItemAdded(parent, ch); + return ch; +} + +wxDataViewItemArray OpenResourceDialogModel::AppendItems(const wxDataViewItem &parent, const wxVector >& data) +{ + wxDataViewItemArray items; + for(size_t i=0; i(item.m_pItem); + if ( node && node->GetData().size() > col ) { + node->GetData().at(col) = variant; + } + return true; +} + +void OpenResourceDialogModel::DeleteItem(const wxDataViewItem& item) +{ + OpenResourceDialogModel_Item* node = reinterpret_cast(item.m_pItem); + if ( node ) { + + OpenResourceDialogModel_Item* parent = node->GetParent(); + wxDataViewItem parentItem(parent); + ItemDeleted(parentItem, item); + + // this will also remove it from its model parent children list + if ( parent == NULL ) { + // root item, remove it from the roots array + wxVector::iterator where = std::find(m_data.begin(), m_data.end(), node); + if ( where != m_data.end() ) { + m_data.erase(where); + } + } + + // If there are no more children, change the item back to 'normal' + if ( parent && parent->GetChildren().empty() ) + DoChangeItemType(parentItem, false); + + wxDELETE(node); + } + + if ( IsEmpty() ) + Cleared(); +} + +void OpenResourceDialogModel::DeleteItems(const wxDataViewItem& parent, const wxDataViewItemArray& items) +{ + // sanity + for(size_t i=0; i(items.Item(i).m_pItem); + wxUnusedVar(node); + wxASSERT(node && node->GetParent() == parent.m_pItem); + DeleteItem(items.Item(i)); + } +} + +void OpenResourceDialogModel::Clear() +{ + wxVector roots = m_data; + wxVector::iterator iter = roots.begin(); + for(; iter != roots.end(); ++iter) { + DeleteItem( wxDataViewItem(*iter) ); + } + m_data.clear(); + Cleared(); +} + +bool OpenResourceDialogModel::IsEmpty() const +{ + return m_data.empty(); +} + +wxClientData* OpenResourceDialogModel::GetClientObject(const wxDataViewItem& item) const +{ + OpenResourceDialogModel_Item* node = reinterpret_cast(item.GetID()); + if ( node ) { + return node->GetClientObject(); + } + return NULL; +} + +void OpenResourceDialogModel::SetClientObject(const wxDataViewItem& item, wxClientData *data) +{ + OpenResourceDialogModel_Item* node = reinterpret_cast(item.GetID()); + if ( node ) { + node->SetClientObject(data); + } +} + +void OpenResourceDialogModel::UpdateItem(const wxDataViewItem& item, const wxVector& data) +{ + OpenResourceDialogModel_Item* node = reinterpret_cast(item.GetID()); + if ( node ) { + node->SetData( data ); + ItemChanged( item ); + } +} + +wxDataViewItem OpenResourceDialogModel::InsertItem(const wxDataViewItem& insertBeforeMe, const wxVector& data, wxClientData *clientData) +{ + wxDataViewItem ch = DoInsertItem(insertBeforeMe, data, false, clientData); + if ( ch.IsOk() ) { + OpenResourceDialogModel_Item* node = reinterpret_cast(ch.GetID()); + ItemAdded(wxDataViewItem(node->GetParent()), ch); + } + return ch; +} + +wxVector OpenResourceDialogModel::GetItemColumnsData(const wxDataViewItem& item) const +{ + if ( !item.IsOk() ) + return wxVector(); + + OpenResourceDialogModel_Item* node = reinterpret_cast(item.GetID()); + if ( !node ) { + return wxVector(); + } + return node->GetData(); +} + +bool OpenResourceDialogModel::HasChildren(const wxDataViewItem& item) const +{ + if ( !item.IsOk() ) + return false; + + OpenResourceDialogModel_Item* node = reinterpret_cast(item.GetID()); + if ( !node ) { + return false; + } + return !node->GetChildren().empty(); +} + +void OpenResourceDialogModel::DoChangeItemType(const wxDataViewItem& item, bool changeToContainer) +{ + OpenResourceDialogModel_Item* node = reinterpret_cast(item.GetID()); + if ( !node ) + return; + + if ( ( changeToContainer && !node->IsContainer()) || // change an item from non-container to container type + ( !changeToContainer && node->IsContainer()) ) { // change an item from container to non-container type +#if defined(__WXGTK__) || defined(__WXMAC__) + // change the item to container type: + // 1st we need to delete it + ItemDeleted(wxDataViewItem(node->GetParent()), item); + + // update the node type + node->SetIsContainer(changeToContainer); + ItemAdded(wxDataViewItem(node->GetParent()), item); +#else + node->SetIsContainer(changeToContainer); +#endif + } +} diff -Nru codelite-8.0.1+dfsg2/Plugin/openresourcedialogmodel.h codelite-9.0+dfsg/Plugin/openresourcedialogmodel.h --- codelite-8.0.1+dfsg2/Plugin/openresourcedialogmodel.h 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/openresourcedialogmodel.h 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,276 @@ +////////////////////////////////////////////////////////////////////// +// This file was auto-generated by codelite's wxCrafter Plugin +// Do not modify this file by hand! +////////////////////////////////////////////////////////////////////// + +#ifndef __OpenResourceDialogModel_GUARD__H__ +#define __OpenResourceDialogModel_GUARD__H__ + +#include +#include +#include +#include + +/** + * @brief each item in the wxDataViewCtrl is represented in the model by this class. + * m_data - contains the data (columns values) as passed when adding an item to the wxDataViewCtrl model class + * m_clientData - is the user client data (owned by the model) + * To convert between a wxDataViewItem to a OpenResourceDialogModel_Item class, simply use: + * @code + * OpenResourceDialogModel_Item* itemData = reinterpret_cast( item.GetID() ); + * if ( itemData ) { + * // you can now traverese the tree or have a direct access to the model internal data + * // note that you must not delete itemData as it is owned by the model and + * } + * @endcode + */ +class OpenResourceDialogModel_Item +{ +protected: + wxVector m_data; + OpenResourceDialogModel_Item* m_parent; + wxVector m_children; + bool m_isContainer; + wxClientData* m_clientData; + +public: + OpenResourceDialogModel_Item() + : m_parent(NULL) + , m_isContainer(false) + , m_clientData(NULL) + {} + virtual ~OpenResourceDialogModel_Item() { + if ( m_clientData ) { + delete m_clientData; + m_clientData = NULL; + } + m_data.clear(); + + // Delete our children + // since the deletion of a child may alter its parent m_children array + // we use a temporary vector for the loop + wxVector tmpChildren = m_children; + while ( !tmpChildren.empty() ) { + delete (*tmpChildren.begin()); + tmpChildren.erase(tmpChildren.begin()); + } + m_children.clear(); + + // Remove us from the parent + if ( m_parent ) { + m_parent->RemoveChild(this); + } + } + + void SetIsContainer(bool b) { + m_isContainer = b; + } + + bool IsContainer() const { + return m_isContainer; + } + + /** + * @brief remove a child from this node and free its memory + * @param child + */ + void DeleteChild(OpenResourceDialogModel_Item* child) { + wxVector::iterator iter = std::find(m_children.begin(), m_children.end(), child); + if ( iter != m_children.end() ) { + delete *iter; + m_children.erase(iter); + } + } + + /** + * @brief remove child from this node without freeing its memory + * @param child + */ + void RemoveChild(OpenResourceDialogModel_Item* child) { + wxVector::iterator iter = std::find(m_children.begin(), m_children.end(), child); + if ( iter != m_children.end() ) { + m_children.erase(iter); + } + } + + /** + * @brief add child to this node + */ + void AddChild(OpenResourceDialogModel_Item* child) { + m_children.push_back(child); + child->m_parent = this; + } + + bool IsRoot() const { + return m_parent == NULL; + } + + // Setters / Getters + void SetChildren(const wxVector& children) { + this->m_children = children; + } + void SetData(const wxVector& data) { + this->m_data = data; + } + void SetParent(OpenResourceDialogModel_Item* parent) { + this->m_parent = parent; + } + const wxVector& GetChildren() const { + return m_children; + } + wxVector& GetChildren() { + return m_children; + } + const wxVector& GetData() const { + return m_data; + } + wxVector& GetData() { + return m_data; + } + OpenResourceDialogModel_Item* GetParent() { + return m_parent; + } + + void SetClientObject(wxClientData *data) { + if ( m_clientData ) { + delete m_clientData; + } + m_clientData = data; + } + + wxClientData* GetClientObject() const { + return m_clientData; + } +}; + +////////////////////////////////////////////// +// The TreeListCtrl model +////////////////////////////////////////////// + +class OpenResourceDialogModel : public wxDataViewModel +{ +protected: + wxVector m_data; + unsigned int m_colCount; + +public: + OpenResourceDialogModel(); + virtual ~OpenResourceDialogModel(); + + /** + * @brief a helper method creating a wxVariant containing both bitmap and text + * this is useful when mostly when populating a column of type 'icontext' + */ + static wxVariant CreateIconTextVariant(const wxString &text, const wxBitmap& bmp); + + void SetColCount(unsigned int colCount) { + this->m_colCount = colCount; + } + void SetData(const wxVector data) { + this->m_data = data; + } + unsigned int GetColCount() const { + return m_colCount; + } + const wxVector& GetData() const { + return m_data; + } + wxVector& GetData() { + return m_data; + } + + virtual bool HasContainerColumns (const wxDataViewItem& item) const { + return true; + } + +public: + // Make the functions below 'virtual' so the user may override them + virtual unsigned int GetColumnCount() const; + virtual wxString GetColumnType(unsigned int col) const; + virtual void GetValue(wxVariant& variant, const wxDataViewItem& item, unsigned int col) const; + virtual bool SetValue(const wxVariant &variant, const wxDataViewItem &item, unsigned int col); + +protected: + // Helpers + virtual wxDataViewItem DoAppendItem(const wxDataViewItem& parent, const wxVector& data, bool isContainer, wxClientData *clientData = NULL); + virtual wxDataViewItem DoInsertItem(const wxDataViewItem& insertBeforeMe, const wxVector& data, bool isContainer, wxClientData *clientData); + virtual void DoChangeItemType(const wxDataViewItem& item, bool changeToContainer); + +public: + /** + * @brief Append a line to the model + * clientData will be owned by the model once added (i.e. the clientData must be allocated on the heap and it will be freed by the model) + */ + virtual wxDataViewItem AppendItem(const wxDataViewItem& parent, const wxVector& data, wxClientData *clientData = NULL); + + /** + * @brief Append a lines to the model + */ + virtual wxDataViewItemArray AppendItems(const wxDataViewItem& parent, const wxVector >& data); + + /** + * @brief delete an item and all its children + * @param parent + */ + virtual void DeleteItem(const wxDataViewItem& item); + + /** + * @brief delete an item + * @param parent + */ + virtual void DeleteItems(const wxDataViewItem& parent, const wxDataViewItemArray& items); + + /** + * @brief update an item data + client-data + */ + virtual void UpdateItem(const wxDataViewItem& item, const wxVector& data); + + /** + * @brief insert an item into the model before 'insertBeforeMe' item. Return the newly inserted item on success + */ + virtual wxDataViewItem InsertItem (const wxDataViewItem& insertBeforeMe, const wxVector& data, wxClientData *clientData = NULL); + + /** + * @brief clear the control and delete all its content + */ + virtual void Clear(); + + virtual bool IsEmpty() const; + + /** + * @brief returns the client data associated with this item + **/ + wxClientData* GetClientObject(const wxDataViewItem& item) const; + + /** + * @brief set the client data for an item. The item data will be freed by the model + */ + void SetClientObject(const wxDataViewItem& item, wxClientData *data); + + /** + * @brief returns the item columns data (as passed to AppendItem(..) / InsertItem(...)) + */ + wxVector GetItemColumnsData(const wxDataViewItem& item) const; + + /** + * @brief return true if this node is a container (i.e. has children) + */ + virtual bool IsContainer(const wxDataViewItem& item) const; + + /** + * @brief return true if item has children + */ + virtual bool HasChildren(const wxDataViewItem& item) const; + + /** + * @brief return the item parent. Return an invalid item if this item has no parent (item.IsOk() = false) + */ + virtual wxDataViewItem GetParent(const wxDataViewItem& item) const; + + /** + * @brief return the item's children as an array. + * @return children count + */ + virtual unsigned int GetChildren(const wxDataViewItem& item, wxDataViewItemArray& children) const; +}; +#endif // __OpenResourceDialogModel_GUARD__H__ diff -Nru codelite-8.0.1+dfsg2/Plugin/optionsconfig.cpp codelite-9.0+dfsg/Plugin/optionsconfig.cpp --- codelite-8.0.1+dfsg2/Plugin/optionsconfig.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/optionsconfig.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -115,7 +115,7 @@ , m_disableSmartIndent(false) , m_disableSemicolonShift(false) , m_caretLineAlpha(30) - , m_dontAutoFoldResults(false) + , m_dontAutoFoldResults(true) , m_showDebugOnRun(true) , m_caretUseCamelCase(true) , m_wordWrap(false) @@ -123,13 +123,13 @@ , m_preferredLocale(wxT("en_US")) , m_useLocale(0) , m_trimOnlyModifiedLines(true) - , m_options(TabClassic | Opt_AutoCompleteCurlyBraces | Opt_AutoCompleteNormalBraces | Opt_NavKey_Shift | - Opt_HideDockingWindowCaption | - Opt_WrapBrackets | + , m_options(Opt_AutoCompleteCurlyBraces | Opt_AutoCompleteNormalBraces | Opt_NavKey_Shift | Opt_WrapBrackets | Opt_WrapQuotes | Opt_AutoCompleteDoubleQuotes | Opt_FoldHighlightActiveBlock | Opt_WrapCmdWithDoubleQuotes) + , m_workspaceTabsDirection(wxLEFT) + , m_outputTabsDirection(wxUP) { m_debuggerMarkerLine = DrawingUtils::LightColour("LIME GREEN", 8.0); m_mswTheme = false; @@ -227,6 +227,9 @@ long dontTrimCaretLine = EditorConfigST::Get()->GetInteger(wxT("DontTrimCaretLine"), 0); m_dontTrimCaretLine = (dontTrimCaretLine > 0); + + m_outputTabsDirection = (wxDirection)XmlUtils::ReadLong(node, "OutputTabsDirection", (int)wxUP); + m_workspaceTabsDirection = (wxDirection)XmlUtils::ReadLong(node, "WorkspaceTabsDirection", (int)wxLEFT); } #ifdef __WXMSW__ if(!(wxUxThemeEngine::GetIfActive() && major >= 6 /* Win 7 and up */)) { @@ -306,6 +309,8 @@ n->AddProperty(wxT("m_useLocale"), BoolToString(m_useLocale)); n->AddProperty(wxT("m_trimOnlyModifiedLines"), BoolToString(m_trimOnlyModifiedLines)); n->AddProperty(wxT("m_debuggerMarkerLine"), m_debuggerMarkerLine.GetAsString(wxC2S_HTML_SYNTAX)); + n->AddProperty(wxT("OutputTabsDirection"), wxString() << (int)m_outputTabsDirection); + n->AddProperty(wxT("WorkspaceTabsDirection"), wxString() << (int)m_workspaceTabsDirection); wxString tmp; tmp << m_indentWidth; diff -Nru codelite-8.0.1+dfsg2/Plugin/optionsconfig.h codelite-9.0+dfsg/Plugin/optionsconfig.h --- codelite-8.0.1+dfsg2/Plugin/optionsconfig.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/optionsconfig.h 2015-10-11 13:56:07.000000000 +0000 @@ -37,10 +37,9 @@ { public: enum { - TabClassic = 0x00000001, - TabGlossy = 0x00000002, - TabCurved = 0x00000004, - TabAll = TabClassic | TabGlossy | TabCurved, + Opt_Unused10 = 0x00000001, + Opt_Unused11 = 0x00000002, + Opt_Unused12 = 0x00000004, Opt_AutoCompleteCurlyBraces = 0x00000008, Opt_AutoCompleteNormalBraces = 0x00000010, Opt_SmartAddFiles = 0x00000020, @@ -52,11 +51,11 @@ Opt_NavKey_Control = 0x00001000, Opt_IconSet_Classic_Dark = 0x00002000, Opt_Mark_Debugger_Line = 0x00004000, - Opt_Unused1 = 0x00008000, - Opt_Unused2 = 0x00010000, + Opt_TabNoXButton = 0x00008000, + Opt_TabColourPersistent = 0x00010000, Opt_Unused3 = 0x00020000, Opt_Use_CodeLite_Terminal = 0x00040000, - Opt_Unused4 = 0x00080000, + Opt_Unused6 = 0x00080000, Opt_Unused5 = 0x00100000, Opt_AllowCaretAfterEndOfLine = 0x00200000, Opt_HideDockingWindowCaption = 0x00400000, @@ -65,6 +64,7 @@ Opt_WrapCmdWithDoubleQuotes = 0x02000000, Opt_FoldHighlightActiveBlock = 0x04000000, Opt_EnsureCaptionsVisible = 0x08000000, + Opt_DisableMouseCtrlZoom = 0x10000000, }; protected: @@ -136,6 +136,8 @@ bool m_trimOnlyModifiedLines; size_t m_options; wxColour m_debuggerMarkerLine; + wxDirection m_workspaceTabsDirection; // Up/Down/Left/Right + wxDirection m_outputTabsDirection; // Up/Down public: // Helpers @@ -155,10 +157,24 @@ OptionsConfig(wxXmlNode* node); virtual ~OptionsConfig(void); + void SetOutputTabsDirection(const wxDirection& outputTabsDirection) + { + this->m_outputTabsDirection = outputTabsDirection; + } + void SetWorkspaceTabsDirection(const wxDirection& workspaceTabsDirection) + { + this->m_workspaceTabsDirection = workspaceTabsDirection; + } + const wxDirection& GetOutputTabsDirection() const { return m_outputTabsDirection; } + const wxDirection& GetWorkspaceTabsDirection() const { return m_workspaceTabsDirection; } wxString GetEOLAsString() const; //------------------------------------- // Setters/Getters //------------------------------------- + void SetTabColourMatchesTheme(bool b) { EnableOption(Opt_TabColourPersistent, !b); } + bool IsTabColourMatchesTheme() const { return !HasOption(Opt_TabColourPersistent); } + void SetTabHasXButton(bool b) { EnableOption(Opt_TabNoXButton, !b); } + bool IsTabHasXButton() const { return !HasOption(Opt_TabNoXButton); } void SetOptions(size_t options) { this->m_options = options; } size_t GetOptions() const { return m_options; } @@ -402,8 +418,9 @@ void SetWrapSelectionBrackets(bool b) { return EnableOption(Opt_WrapBrackets, b); } void MSWWrapCmdWithDoubleQuotes(bool b) { EnableOption(Opt_WrapCmdWithDoubleQuotes, b); } - bool MSWIsWrapCmdWithDoubleQuotes() const { return HasOption(Opt_WrapCmdWithDoubleQuotes); } - + bool MSWIsWrapCmdWithDoubleQuotes() const { return true; } + bool IsMouseZoomEnabled() const { return !HasOption(Opt_DisableMouseCtrlZoom); } + void SetMouseZoomEnabled(bool b) { EnableOption(Opt_DisableMouseCtrlZoom, !b); } /** * Return an XML representation of this object * \return XML node diff -Nru codelite-8.0.1+dfsg2/Plugin/pipedprocess.cpp codelite-9.0+dfsg/Plugin/pipedprocess.cpp --- codelite-8.0.1+dfsg2/Plugin/pipedprocess.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/pipedprocess.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -22,7 +22,8 @@ // ////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// - #include "pipedprocess.h" +#include "cl_standard_paths.h" +#include "pipedprocess.h" #include #include #include @@ -54,7 +55,7 @@ { #ifdef __WXGTK__ wxString cmd; - wxFileName exePath(wxStandardPaths::Get().GetExecutablePath()); + wxFileName exePath(clStandardPaths::Get().GetExecutablePath()); wxFileName script(exePath.GetPath(), wxT("codelite_kill_children")); cmd << wxT("/bin/sh -f ") << script.GetFullPath() << wxT(" ") << GetPid(); wxExecute(cmd, wxEXEC_ASYNC); diff -Nru codelite-8.0.1+dfsg2/Plugin/plugin_general_wxcp.cpp codelite-9.0+dfsg/Plugin/plugin_general_wxcp.cpp --- codelite-8.0.1+dfsg2/Plugin/plugin_general_wxcp.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/plugin_general_wxcp.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,30 +1,6 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2014 The CodeLite Team -// file name : plugin_general_wxcp.cpp -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - ////////////////////////////////////////////////////////////////////// // This file was auto-generated by codelite's wxCrafter Plugin +// wxCrafter project file: plugin_general_wxcp.wxcp // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// @@ -47,16 +23,24 @@ wxCDEE4InitBitmapResources(); bBitmapLoaded = true; } - wxBitmap bmp; - - bmp = wxXmlResource::Get()->LoadBitmap(wxT("dbgAsm")); - this->Add( bmp ); - m_bitmaps.insert( std::make_pair(wxT("dbgAsm"), bmp ) ); - bmp = wxXmlResource::Get()->LoadBitmap(wxT("tabClose")); - this->Add( bmp ); - m_bitmaps.insert( std::make_pair(wxT("tabClose"), bmp ) ); + { + wxBitmap bmp; + wxIcon icn; + bmp = wxXmlResource::Get()->LoadBitmap(wxT("dbgAsm")); + icn.CopyFromBitmap( bmp ); + this->Add( icn ); + m_bitmaps.insert( std::make_pair(wxT("dbgAsm"), bmp ) ); + } + { + wxBitmap bmp; + wxIcon icn; + bmp = wxXmlResource::Get()->LoadBitmap(wxT("tabClose")); + icn.CopyFromBitmap( bmp ); + this->Add( icn ); + m_bitmaps.insert( std::make_pair(wxT("tabClose"), bmp ) ); + } } diff -Nru codelite-8.0.1+dfsg2/Plugin/plugin_general_wxcp.h codelite-9.0+dfsg/Plugin/plugin_general_wxcp.h --- codelite-8.0.1+dfsg2/Plugin/plugin_general_wxcp.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/plugin_general_wxcp.h 2015-10-11 13:56:07.000000000 +0000 @@ -1,42 +1,26 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2013 by Eran Ifrah -// file name : plugin_general_wxcp.h -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - ////////////////////////////////////////////////////////////////////// // This file was auto-generated by codelite's wxCrafter Plugin +// wxCrafter project file: plugin_general_wxcp.wxcp // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// -#ifndef PLUGIN_GENERAL_WXCP_BASE_CLASSES_H -#define PLUGIN_GENERAL_WXCP_BASE_CLASSES_H +#ifndef CODELITE_PLUGIN_PLUGIN_GENERAL_WXCP_BASE_CLASSES_H +#define CODELITE_PLUGIN_PLUGIN_GENERAL_WXCP_BASE_CLASSES_H #include #include #include #include #include +#include #include +#include +#if wxVERSION_NUMBER >= 2900 +#include +#include +#include +#include +#endif #include "codelite_exports.h" class WXDLLIMPEXP_SDK GeneralImages : public wxImageList diff -Nru codelite-8.0.1+dfsg2/Plugin/plugin_general_wxcp_plugin_bitmaps.cpp codelite-9.0+dfsg/Plugin/plugin_general_wxcp_plugin_bitmaps.cpp --- codelite-8.0.1+dfsg2/Plugin/plugin_general_wxcp_plugin_bitmaps.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/plugin_general_wxcp_plugin_bitmaps.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,28 +1,3 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2014 The CodeLite Team -// file name : plugin_general_wxcp_plugin_bitmaps.cpp -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - // // This file was automatically generated by wxrc, do not edit by hand. // @@ -72,25 +47,24 @@ 233,58,198,209,212,141,27,0,0,34,218,11,7,37,125,139,36,0,0,0,0,73,69,78, 68,174,66,96,130}; -static size_t xml_res_size_2 = 335; +static size_t xml_res_size_2 = 317; static unsigned char xml_res_file_2[] = { 60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, 110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, 115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, 47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, -47,119,120,120,114,99,34,32,118,101,114,115,105,111,110,61,34,50,46,51, -46,48,46,49,34,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, -61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,100,98,103, -65,115,109,34,62,112,108,117,103,105,110,95,103,101,110,101,114,97,108, -95,119,120,99,112,95,112,108,117,103,105,110,95,98,105,116,109,97,112,115, -46,99,112,112,36,46,46,95,105,99,111,110,115,95,97,115,109,46,112,110,103, -60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99, -108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101, -61,34,116,97,98,67,108,111,115,101,34,62,112,108,117,103,105,110,95,103, -101,110,101,114,97,108,95,119,120,99,112,95,112,108,117,103,105,110,95, -98,105,116,109,97,112,115,46,99,112,112,36,46,46,95,105,99,111,110,115, -95,99,108,111,115,101,46,112,110,103,60,47,111,98,106,101,99,116,62,10, -60,47,114,101,115,111,117,114,99,101,62,10}; +47,119,120,120,114,99,34,62,10,32,32,60,111,98,106,101,99,116,32,99,108, +97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61, +34,100,98,103,65,115,109,34,62,112,108,117,103,105,110,95,103,101,110,101, +114,97,108,95,119,120,99,112,95,112,108,117,103,105,110,95,98,105,116,109, +97,112,115,46,99,112,112,36,46,46,95,105,99,111,110,115,95,97,115,109,46, +112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99, +116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110, +97,109,101,61,34,116,97,98,67,108,111,115,101,34,62,112,108,117,103,105, +110,95,103,101,110,101,114,97,108,95,119,120,99,112,95,112,108,117,103, +105,110,95,98,105,116,109,97,112,115,46,99,112,112,36,46,46,95,105,99,111, +110,115,95,99,108,111,115,101,46,112,110,103,60,47,111,98,106,101,99,116, +62,10,60,47,114,101,115,111,117,114,99,101,62,10}; void wxCDEE4InitBitmapResources() { @@ -107,6 +81,6 @@ XRC_ADD_FILE(wxT("XRC_resource/plugin_general_wxcp_plugin_bitmaps.cpp$.._icons_asm.png"), xml_res_file_0, xml_res_size_0, wxT("image/png")); XRC_ADD_FILE(wxT("XRC_resource/plugin_general_wxcp_plugin_bitmaps.cpp$.._icons_close.png"), xml_res_file_1, xml_res_size_1, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/plugin_general_wxcp_plugin_bitmaps.cpp$._plugin_general_wxcp_plugin_bitmaps.xrc"), xml_res_file_2, xml_res_size_2, wxT("text/xml")); - wxXmlResource::Get()->Load(wxT("memory:XRC_resource/plugin_general_wxcp_plugin_bitmaps.cpp$._plugin_general_wxcp_plugin_bitmaps.xrc")); + XRC_ADD_FILE(wxT("XRC_resource/plugin_general_wxcp_plugin_bitmaps.cpp$C__src_codelite_Plugin_plugin_general_wxcp_plugin_bitmaps.xrc"), xml_res_file_2, xml_res_size_2, wxT("text/xml")); + wxXmlResource::Get()->Load(wxT("memory:XRC_resource/plugin_general_wxcp_plugin_bitmaps.cpp$C__src_codelite_Plugin_plugin_general_wxcp_plugin_bitmaps.xrc")); } diff -Nru codelite-8.0.1+dfsg2/Plugin/plugin_general_wxcp.wxcp codelite-9.0+dfsg/Plugin/plugin_general_wxcp.wxcp --- codelite-8.0.1+dfsg2/Plugin/plugin_general_wxcp.wxcp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/plugin_general_wxcp.wxcp 2015-10-11 13:56:07.000000000 +0000 @@ -1,86 +1,88 @@ { - "metadata": { - "m_generatedFilesDir": ".", - "m_objCounter": 5, - "m_includeFiles": ["codelite_exports.h"], - "m_bitmapFunction": "wxCDEE4InitBitmapResources", - "m_bitmapsFile": "plugin_general_wxcp_plugin_bitmaps.cpp", - "m_GenerateCodeTypes": 1, - "m_outputFileName": "plugin_general_wxcp", - "m_templateClasses": [] - }, - "windows": [{ - "m_type": 4481, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "GeneralImages" - }, { - "type": "string", - "m_label": "File:", - "m_value": "" - }, { - "type": "virtualFolderPicker", - "m_label": "Virtual Folder:", - "m_path": "plugin_sdk:Images" - }, { - "type": "string", - "m_label": "Class Decorator", - "m_value": "WXDLLIMPEXP_SDK" - }, { - "type": "integer", - "m_label": "Bitmap Size:", - "m_value": 16 - }, { - "type": "bool", - "m_label": "Bitmap Mask", - "m_value": true - }], - "m_events": [], - "m_children": [{ - "m_type": 4482, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "dbgAsm" - }, { - "type": "filePicker", - "m_label": "Bitmap File:", - "m_path": "../icons/asm.png" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4482, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "tabClose" - }, { - "type": "filePicker", - "m_label": "Bitmap File:", - "m_path": "../icons/close.png" - }], - "m_events": [], - "m_children": [] - }] - }] + "metadata": { + "m_generatedFilesDir": ".", + "m_objCounter": 5, + "m_includeFiles": ["codelite_exports.h"], + "m_bitmapFunction": "wxCDEE4InitBitmapResources", + "m_bitmapsFile": "plugin_general_wxcp_plugin_bitmaps.cpp", + "m_GenerateCodeTypes": 1, + "m_outputFileName": "plugin_general_wxcp", + "m_firstWindowId": 1000, + "m_useEnum": true, + "m_templateClasses": [] + }, + "windows": [{ + "m_type": 4481, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "GeneralImages" + }, { + "type": "string", + "m_label": "File:", + "m_value": "" + }, { + "type": "virtualFolderPicker", + "m_label": "Virtual Folder:", + "m_path": "plugin_sdk:Images" + }, { + "type": "string", + "m_label": "Class Decorator", + "m_value": "WXDLLIMPEXP_SDK" + }, { + "type": "integer", + "m_label": "Bitmap Size:", + "m_value": 16 + }, { + "type": "bool", + "m_label": "Bitmap Mask", + "m_value": true + }], + "m_events": [], + "m_children": [{ + "m_type": 4482, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "dbgAsm" + }, { + "type": "filePicker", + "m_label": "Bitmap File:", + "m_path": "../icons/asm.png" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4482, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "tabClose" + }, { + "type": "filePicker", + "m_label": "Bitmap File:", + "m_path": "../icons/close.png" + }], + "m_events": [], + "m_children": [] + }] + }] } \ No newline at end of file diff -Nru codelite-8.0.1+dfsg2/Plugin/plugin_sdk.project codelite-9.0+dfsg/Plugin/plugin_sdk.project --- codelite-8.0.1+dfsg2/Plugin/plugin_sdk.project 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/plugin_sdk.project 2015-10-11 13:56:07.000000000 +0000 @@ -141,6 +141,8 @@ + + @@ -165,7 +167,6 @@ - @@ -300,6 +301,18 @@ + + + + + + + + + + + + @@ -323,6 +336,11 @@ + + + + + @@ -331,16 +349,13 @@ - - - - - - - - + + + + + @@ -353,6 +368,8 @@ + + @@ -362,6 +379,8 @@ + + @@ -414,6 +433,8 @@ + + @@ -430,12 +451,17 @@ + + + + + @@ -528,6 +554,11 @@ + + + + + @@ -577,7 +608,7 @@ - + @@ -627,7 +658,7 @@ - + @@ -678,7 +709,7 @@ - + @@ -695,6 +726,7 @@ + @@ -731,7 +763,7 @@ - + @@ -783,7 +815,7 @@ - + @@ -791,9 +823,4 @@ - - - - - diff -Nru codelite-8.0.1+dfsg2/Plugin/project.cpp codelite-9.0+dfsg/Plugin/project.cpp --- codelite-8.0.1+dfsg2/Plugin/project.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/project.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -76,9 +76,13 @@ bool Project::Create(const wxString& name, const wxString& description, const wxString& path, const wxString& projType) { m_vdCache.clear(); - - m_fileName = path + wxFileName::GetPathSeparator() + name + wxT(".project"); + + m_fileName = wxFileName(path, name); + m_fileName.SetExt("project"); m_fileName.MakeAbsolute(); + + // Ensure that the target folder exists + m_fileName.Mkdir(wxS_DIR_DEFAULT, wxPATH_MKDIR_FULL); m_projectPath = m_fileName.GetPath(); wxXmlNode* root = new wxXmlNode(NULL, wxXML_ELEMENT_NODE, wxT("CodeLite_Project")); @@ -563,15 +567,15 @@ void Project::CopyTo(const wxString& new_path, const wxString& new_name, const wxString& description) { // first save the xml document to the destination folder - - wxString newFile = new_path + new_name + wxT(".project"); - if(!m_doc.Save(newFile)) { + wxFileName newFile(new_path, new_name); + newFile.SetExt("project"); + if(!m_doc.Save(newFile.GetFullPath())) { return; } // load the new xml and modify it wxXmlDocument doc; - if(!doc.Load(newFile)) { + if(!doc.Load(newFile.GetFullPath())) { return; } @@ -668,7 +672,7 @@ } } - doc.Save(newFile); + doc.Save(newFile.GetFullPath()); } void Project::SetFiles(ProjectPtr src) @@ -1186,7 +1190,7 @@ BuildConfigPtr buildConf = GetWorkspace()->GetProjBuildConf(this->GetName(), projectSelConf); // for non custom projects, take the settings from the build configuration - if(buildConf && !buildConf->IsCustomBuild()) { + if(buildConf) { // Apply the environment EnvSetter es(NULL, NULL, GetName()); @@ -1709,22 +1713,22 @@ return buildConf; } -void Project::AssociateToWorkspace(Workspace* workspace) { m_workspace = workspace; } +void Project::AssociateToWorkspace(clCxxWorkspace* workspace) { m_workspace = workspace; } -Workspace* Project::GetWorkspace() +clCxxWorkspace* Project::GetWorkspace() { if(!m_workspace) { - return WorkspaceST::Get(); + return clCxxWorkspaceST::Get(); } else { return m_workspace; } } -const Workspace* Project::GetWorkspace() const +const clCxxWorkspace* Project::GetWorkspace() const { if(!m_workspace) { - return WorkspaceST::Get(); + return clCxxWorkspaceST::Get(); } else { return m_workspace; @@ -1770,7 +1774,7 @@ wxArrayString pps; BuildConfigPtr buildConf = GetBuildConfiguration(); // for non custom projects, take the settings from the build configuration - if(buildConf && !buildConf->IsCustomBuild()) { + if(buildConf) { // Apply the environment EnvSetter es(NULL, NULL, GetName()); diff -Nru codelite-8.0.1+dfsg2/Plugin/project.h codelite-9.0+dfsg/Plugin/project.h --- codelite-8.0.1+dfsg2/Plugin/project.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/project.h 2015-10-11 13:56:07.000000000 +0000 @@ -129,7 +129,7 @@ typedef TreeNode ProjectTreeNode; class Project; -class Workspace; +class clCxxWorkspace; typedef SmartPtr ProjectPtr; typedef std::set FileNameSet_t; @@ -164,7 +164,7 @@ typedef std::map NodeMap_t; - friend class Workspace; + friend class clCxxWorkspace; private: wxXmlDocument m_doc; @@ -174,7 +174,7 @@ bool m_isModified; NodeMap_t m_vdCache; time_t m_modifyTime; - Workspace* m_workspace; + clCxxWorkspace* m_workspace; ProjectSettingsPtr m_settings; wxString m_iconPath; /// Not serializable @@ -230,7 +230,7 @@ * @brief return the workspace associated with the project * If no workspace is associated, then the global workspace is returned */ - Workspace* GetWorkspace(); + clCxxWorkspace* GetWorkspace(); /** * @brief a project was renamed - update our dependeices if needed @@ -252,7 +252,7 @@ /** * @brief the const version of the above */ - const Workspace* GetWorkspace() const; + const clCxxWorkspace* GetWorkspace() const; const wxFileName& GetFileName() const { return m_fileName; } const wxString& GetProjectPath() const { return m_projectPath; } @@ -665,7 +665,7 @@ /** * @brief associate this project with a workspace */ - void AssociateToWorkspace(Workspace* workspace); + void AssociateToWorkspace(clCxxWorkspace* workspace); wxString DoFormatVirtualFolderName(const wxXmlNode* node) const; diff -Nru codelite-8.0.1+dfsg2/Plugin/queuecommand.cpp codelite-9.0+dfsg/Plugin/queuecommand.cpp --- codelite-8.0.1+dfsg2/Plugin/queuecommand.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/queuecommand.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -44,9 +44,9 @@ , m_checkBuildSuccess(false) { // Fill with default values - if ( WorkspaceST::Get()->IsOpen() ) { - m_project = WorkspaceST::Get()->GetActiveProjectName(); - BuildConfigPtr buildPtr = WorkspaceST::Get()->GetProjBuildConf(m_project, ""); + if ( clCxxWorkspaceST::Get()->IsOpen() ) { + m_project = clCxxWorkspaceST::Get()->GetActiveProjectName(); + BuildConfigPtr buildPtr = clCxxWorkspaceST::Get()->GetProjBuildConf(m_project, ""); wxASSERT_MSG( buildPtr, "No active project" ); // If a 'Build' or 'Clean' kinds where requested diff -Nru codelite-8.0.1+dfsg2/Plugin/search_thread.cpp codelite-9.0+dfsg/Plugin/search_thread.cpp --- codelite-8.0.1+dfsg2/Plugin/search_thread.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/search_thread.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -117,6 +117,9 @@ m_summary.SetElapsedTime(sw.Time()); SearchData* sd = (SearchData*)req; + m_summary.SetFindWhat(sd->GetFindString()); + m_summary.SetReplaceWith(sd->GetReplaceWith()); + // Send search end event SendEvent(wxEVT_SEARCH_THREAD_SEARCHEND, sd->GetOwner()); } @@ -126,38 +129,31 @@ std::set scannedFiles; const wxArrayString& rootDirs = data->GetRootDirs(); - for(size_t i = 0; i < rootDirs.Count(); ++i) { - wxArrayString someFiles; - const wxString& rootDir = rootDirs.Item(i); - // Check both translations and otherwise: the history may have contained either - if(rootDir == wxGetTranslation(SEARCH_IN_WORKSPACE) || - rootDir == wxGetTranslation(SEARCH_IN_CURR_FILE_PROJECT) || rootDir == wxGetTranslation(SEARCH_IN_PROJECT) || - rootDir == wxGetTranslation(SEARCH_IN_CURRENT_FILE) || rootDir == wxGetTranslation(SEARCH_IN_OPEN_FILES) || - rootDir == SEARCH_IN_WORKSPACE || rootDir == SEARCH_IN_CURR_FILE_PROJECT || rootDir == SEARCH_IN_PROJECT || - rootDir == SEARCH_IN_CURRENT_FILE || rootDir == SEARCH_IN_OPEN_FILES) { - someFiles = data->GetFiles(); - // filter files which does not match the criteria - FilterFiles(someFiles, data); - - } else if(wxFile::Exists(rootDir)) { - // search root is actually a file... - someFiles.push_back(rootDir); - - } else if(wxDir::Exists(rootDir)) { - // make sure it's really a dir (not a fifo, etc.) - DirTraverser traverser(data->GetExtensions()); - wxDir dir(rootDir); - dir.Traverse(traverser); - someFiles = traverser.GetFiles(); - } + files = data->GetFiles(); + + // Remove files that do not match our search criteria + FilterFiles(files, data); + + // Populate "scannedFiles" with list of files to scan + scannedFiles.insert(files.begin(), files.end()); + + for(size_t i = 0; i < rootDirs.size(); ++i) { + // make sure it's really a dir (not a fifo, etc.) + DirTraverser traverser(data->GetExtensions()); + wxDir dir(rootDirs.Item(i)); + dir.Traverse(traverser); + wxArrayString& someFiles = traverser.GetFiles(); for(size_t j = 0; j < someFiles.Count(); ++j) { - if(scannedFiles.find(someFiles.Item(j)) == scannedFiles.end()) { + if(scannedFiles.count(someFiles.Item(j)) == 0) { files.Add(someFiles.Item(j)); scannedFiles.insert(someFiles.Item(j)); } } } + + files.clear(); + std::for_each(scannedFiles.begin(), scannedFiles.end(), [&](const wxString& file) { files.Add(file); }); } void SearchThread::DoSearchFiles(ThreadRequest* req) @@ -165,9 +161,10 @@ SearchData* data = static_cast(req); // Get all files - if(data->GetRootDirs().IsEmpty()) return; - - if(data->GetFindString().IsEmpty()) return; + if(data->GetFindString().IsEmpty()) { + SendEvent(wxEVT_SEARCH_THREAD_SEARCHSTARTED, data->GetOwner()); + return; + } StopSearch(false); wxArrayString fileList; @@ -179,8 +176,6 @@ if(m_notifiedWindow || data->GetOwner()) { wxCommandEvent event(wxEVT_SEARCH_THREAD_SEARCHSTARTED, GetId()); event.SetClientData(new SearchData(*data)); - // set the rquested output tab - event.SetInt(data->UseNewTab() ? 1 : 0); if(data->GetOwner()) { ::wxPostEvent(data->GetOwner(), event); } else { @@ -228,6 +223,12 @@ } wxFFile thefile(fileName, wxT("rb")); + if(!thefile.IsOpened()) { + // failed to open the file, probably because of permissions + m_summary.GetFailedFiles().Add(fileName); + return; + } + wxFileOffset size = thefile.Length(); wxString fileData; fileData.Alloc(size); @@ -235,7 +236,10 @@ // support for other encoding wxFontEncoding enc = wxFontMapper::GetEncodingFromName(data->GetEncoding().c_str()); wxCSConv fontEncConv(enc); - thefile.ReadAll(&fileData, fontEncConv); + if(!thefile.ReadAll(&fileData, fontEncConv)) { + m_summary.GetFailedFiles().Add(fileName); + return; + } // take a wild guess and see if we really need to construct // a TextStatesPtr object (it is quite an expensive operation) @@ -254,10 +258,11 @@ // Incase one of the C++ options is enabled, // create a text states object TextStatesPtr states(NULL); - if(data->HasCppOptions() && shouldCreateStates) { + if(data->HasCppOptions() && shouldCreateStates && false) { CppWordScanner scanner("", fileData.mb_str().data(), 0); states = scanner.states(); } + int lineOffset = 0; if(data->IsRegularExpression()) { // regular expression search @@ -270,11 +275,32 @@ } } else { // simple search + wxString findString; + wxArrayString filters; + findString = data->GetFindString(); + if(data->IsEnablePipeSupport()) { + if(data->GetFindString().Find('|') != wxNOT_FOUND) { + findString = data->GetFindString().BeforeFirst('|'); + + wxString filtersString = data->GetFindString().AfterFirst('|'); + filters = ::wxStringTokenize(filtersString, "|", wxTOKEN_STRTOK); + if(!data->IsMatchCase()) { + for(size_t i = 0; i < filters.size(); ++i) { + filters.Item(i).MakeLower(); + } + } + } + } + + if(!data->IsMatchCase()) { + findString.MakeLower(); + } + while(tkz.HasMoreTokens()) { // Read the next line wxString line = tkz.NextToken(); - DoSearchLine(line, lineNumber, lineOffset, fileName, data, states); + DoSearchLine(line, lineNumber, lineOffset, fileName, data, findString, filters, states); lineOffset += line.Length() + 1; lineNumber++; } @@ -373,14 +399,14 @@ const int lineOffset, const wxString& fileName, const SearchData* data, + const wxString& findWhat, + const wxArrayString& filters, TextStatesPtr statesPtr) { - wxString findString = data->GetFindString(); wxString modLine = line; if(!data->IsMatchCase()) { modLine.MakeLower(); - findString.MakeLower(); } int pos = 0; @@ -388,33 +414,45 @@ int iCorrectedCol = 0; int iCorrectedLen = 0; while(pos != wxNOT_FOUND) { - pos = modLine.Find(findString); + pos = modLine.Find(findWhat); if(pos != wxNOT_FOUND) { col += pos; - + + // Pipe support + bool allFiltersOK = true; + if(!filters.IsEmpty()) { + // Apply the filters + for(size_t i = 0; i < filters.size() && allFiltersOK; ++i) { + allFiltersOK = (modLine.Find(filters.Item(i)) != wxNOT_FOUND); + } + } + + // Pipe filtes OK? + if(!allFiltersOK) return; + // we have a match if(data->IsMatchWholeWord()) { // make sure that the word before is not in the wordChars map if((pos > 0) && (m_wordCharsMap.find(modLine.GetChar(pos - 1)) != m_wordCharsMap.end())) { - if(!AdjustLine(modLine, pos, findString)) { + if(!AdjustLine(modLine, pos, findWhat)) { break; } else { - col += (int)findString.Length(); + col += (int)findWhat.Length(); continue; } } // if we have more characters to the right, make sure that the first char does not match any // in the wordCharsMap - if(pos + findString.Length() <= modLine.Length()) { - wxChar nextCh = modLine.GetChar(pos + findString.Length()); + if(pos + findWhat.Length() <= modLine.Length()) { + wxChar nextCh = modLine.GetChar(pos + findWhat.Length()); if(m_wordCharsMap.find(nextCh) != m_wordCharsMap.end()) { - if(!AdjustLine(modLine, pos, findString)) { + if(!AdjustLine(modLine, pos, findWhat)) { break; } else { - col += (int)findString.Length(); + col += (int)findWhat.Length(); continue; } } @@ -424,7 +462,7 @@ // Notify our match // correct search Pos and Length owing to non plain ASCII multibyte characters iCorrectedCol = clUTF8Length(line.c_str(), col); - iCorrectedLen = clUTF8Length(findString.c_str(), findString.Length()); + iCorrectedLen = clUTF8Length(findWhat.c_str(), findWhat.Length()); SearchResult result; result.SetPosition(lineOffset + col); result.SetColumnInChars(col); @@ -432,7 +470,7 @@ result.SetLineNumber(lineNum); result.SetPattern(line); result.SetFileName(fileName); - result.SetLenInChars((int)findString.Length()); + result.SetLenInChars((int)findWhat.Length()); result.SetLen(iCorrectedLen); result.SetFindWhat(data->GetFindString()); result.SetFlags(data->m_flags); @@ -480,15 +518,15 @@ m_summary.SetNumMatchesFound(m_summary.GetNumMatchesFound() + 1); } - if(!AdjustLine(modLine, pos, findString)) { + if(!AdjustLine(modLine, pos, findWhat)) { break; } - col += (int)findString.Length(); + col += (int)findWhat.Length(); } } } -bool SearchThread::AdjustLine(wxString& line, int& pos, wxString& findString) +bool SearchThread::AdjustLine(wxString& line, int& pos, const wxString& findString) { // adjust the current line if(line.Length() - (pos + findString.Length()) >= findString.Length()) { diff -Nru codelite-8.0.1+dfsg2/Plugin/search_thread.h codelite-9.0+dfsg/Plugin/search_thread.h --- codelite-8.0.1+dfsg2/Plugin/search_thread.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/search_thread.h 2015-10-11 13:56:07.000000000 +0000 @@ -50,6 +50,7 @@ { wxArrayString m_rootDirs; wxString m_findString; + wxString m_replaceWith; size_t m_flags; wxString m_validExt; wxArrayString m_files; @@ -98,7 +99,7 @@ m_newTab = rhs.m_newTab; m_owner = rhs.m_owner; m_encoding = rhs.m_encoding.c_str(); - + m_replaceWith = rhs.m_replaceWith; m_files.clear(); for(size_t i = 0; i < rhs.m_files.GetCount(); i++) { @@ -113,64 +114,42 @@ // Setters / Getters //------------------------------------------ bool IsMatchCase() const { return m_flags & wxSD_MATCHCASE ? true : false; } - + bool IsEnablePipeSupport() const { return m_flags & wxSD_ENABLE_PIPE_SUPPORT; } + void SetEnablePipeSupport(bool b) { SetOption(wxSD_ENABLE_PIPE_SUPPORT, b); } bool IsMatchWholeWord() const { return m_flags & wxSD_MATCHWHOLEWORD ? true : false; } - bool IsRegularExpression() const { return m_flags & wxSD_REGULAREXPRESSION ? true : false; } - const wxArrayString& GetRootDirs() const { return m_rootDirs; } - void SetMatchCase(bool matchCase) { SetOption(wxSD_MATCHCASE, matchCase); } - void SetMatchWholeWord(bool matchWholeWord) { SetOption(wxSD_MATCHWHOLEWORD, matchWholeWord); } - void SetRegularExpression(bool re) { SetOption(wxSD_REGULAREXPRESSION, re); } - void SetExtensions(const wxString& exts) { m_validExt = exts; } - void SetRootDirs(const wxArrayString& rootDirs) { m_rootDirs = rootDirs; } - const wxString& GetExtensions() const; - const wxString& GetFindString() const { return m_findString; } - void SetFindString(const wxString& findString) { m_findString = findString; } - void SetFiles(const wxArrayString& files) { m_files = files; } - const wxArrayString& GetFiles() const { return m_files; } - void UseNewTab(bool useNewTab) { m_newTab = useNewTab; } - bool UseNewTab() const { return m_newTab; } - void SetEncoding(const wxString& encoding) { this->m_encoding = encoding.c_str(); } - const wxString& GetEncoding() const { return this->m_encoding; } - bool GetDisplayScope() const { return m_flags & wxSD_PRINT_SCOPE ? true : false; } - void SetDisplayScope(bool d) { SetOption(wxSD_PRINT_SCOPE, d); } - void SetOwner(wxEvtHandler* owner) { this->m_owner = owner; } wxEvtHandler* GetOwner() const { return m_owner; } - bool HasCppOptions() const { return (m_flags & wxSD_SKIP_COMMENTS) || (m_flags & wxSD_SKIP_STRINGS) || (m_flags & wxSD_COLOUR_COMMENTS); } void SetSkipComments(bool d) { SetOption(wxSD_SKIP_COMMENTS, d); } - void SetSkipStrings(bool d) { SetOption(wxSD_SKIP_STRINGS, d); } - void SetColourComments(bool d) { SetOption(wxSD_COLOUR_COMMENTS, d); } - bool GetSkipComments() const { return (m_flags & wxSD_SKIP_COMMENTS); } - bool GetSkipStrings() const { return (m_flags & wxSD_SKIP_STRINGS); } - bool GetColourComments() const { return (m_flags & wxSD_COLOUR_COMMENTS); } + const wxString& GetReplaceWith() const { return m_replaceWith; } + void SetReplaceWith(const wxString& replaceWith) { this->m_replaceWith = replaceWith; } }; //------------------------------------------ @@ -272,6 +251,9 @@ int m_fileScanned; int m_matchesFound; int m_elapsed; + wxArrayString m_failedFiles; + wxString m_findWhat; + wxString m_replaceWith; public: SearchSummary() @@ -292,9 +274,19 @@ m_fileScanned = rhs.m_fileScanned; m_matchesFound = rhs.m_matchesFound; m_elapsed = rhs.m_elapsed; + m_failedFiles = rhs.m_failedFiles; + m_findWhat = rhs.m_findWhat; + m_replaceWith = rhs.m_replaceWith; return *this; } + void SetFindWhat(const wxString& findWhat) { this->m_findWhat = findWhat; } + void SetReplaceWith(const wxString& replaceWith) { this->m_replaceWith = replaceWith; } + const wxString& GetFindWhat() const { return m_findWhat; } + const wxString& GetReplaceWith() const { return m_replaceWith; } + const wxArrayString& GetFailedFiles() const { return m_failedFiles; } + wxArrayString& GetFailedFiles() { return m_failedFiles; } + int GetNumFileScanned() const { return m_fileScanned; } int GetNumMatchesFound() const { return m_matchesFound; } @@ -311,6 +303,13 @@ int msecs = m_elapsed % 1000; msg << _(", elapsed time: ") << secs << wxT(":") << msecs << _(" seconds") << wxT(" ======"); + if(!m_failedFiles.IsEmpty()) { + msg << "\n"; + msg << "====== " << _("Failed to open the following files for scan:") << "\n"; + for(size_t i = 0; i < m_failedFiles.size(); ++i) { + msg << m_failedFiles.Item(i) << "\n"; + } + } return msg; } }; @@ -401,6 +400,8 @@ const int lineOffset, const wxString& fileName, const SearchData* data, + const wxString& findWhat, + const wxArrayString& filters, TextStatesPtr statesPtr); // Perform search on a line using regular expression @@ -418,7 +419,7 @@ wxRegEx& GetRegex(const wxString& expr, bool matchCase); // Internal function - bool AdjustLine(wxString& line, int& pos, wxString& findString); + bool AdjustLine(wxString& line, int& pos, const wxString& findString); // filter 'files' according to the files spec void FilterFiles(wxArrayString& files, const SearchData* data); diff -Nru codelite-8.0.1+dfsg2/Plugin/sftp_ui.cpp codelite-9.0+dfsg/Plugin/sftp_ui.cpp --- codelite-8.0.1+dfsg2/Plugin/sftp_ui.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/sftp_ui.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -40,10 +40,10 @@ SetIcons( app_icons ); - wxBoxSizer* boxSizer2 = new wxBoxSizer(wxVERTICAL); + boxSizer2 = new wxBoxSizer(wxVERTICAL); this->SetSizer(boxSizer2); - wxBoxSizer* boxSizer10 = new wxBoxSizer(wxHORIZONTAL); + boxSizer10 = new wxBoxSizer(wxHORIZONTAL); boxSizer2->Add(boxSizer10, 1, wxALL|wxEXPAND, 5); @@ -54,7 +54,7 @@ m_dvListCtrlAccounts->AppendTextColumn(_("Account"), wxDATAVIEW_CELL_INERT, 150, wxALIGN_LEFT); m_dvListCtrlAccounts->AppendTextColumn(_("Host"), wxDATAVIEW_CELL_INERT, 75, wxALIGN_LEFT); m_dvListCtrlAccounts->AppendTextColumn(_("User"), wxDATAVIEW_CELL_INERT, 75, wxALIGN_LEFT); - wxBoxSizer* boxSizer15 = new wxBoxSizer(wxVERTICAL); + boxSizer15 = new wxBoxSizer(wxVERTICAL); boxSizer10->Add(boxSizer15, 0, wxEXPAND, 5); @@ -73,7 +73,7 @@ boxSizer15->Add(m_buttonEdit, 0, wxALL|wxEXPAND, 5); - wxBoxSizer* boxSizer4 = new wxBoxSizer(wxHORIZONTAL); + boxSizer4 = new wxBoxSizer(wxHORIZONTAL); boxSizer2->Add(boxSizer4, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 5); @@ -95,6 +95,8 @@ #if wxVERSION_NUMBER >= 2900 if(!wxPersistenceManager::Get().Find(this)) { wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); } #endif // Connect events @@ -144,7 +146,7 @@ SetIcons( app_icons ); - wxBoxSizer* boxSizer23 = new wxBoxSizer(wxVERTICAL); + boxSizer23 = new wxBoxSizer(wxVERTICAL); this->SetSizer(boxSizer23); m_infobar = new wxInfoBar(this, wxID_ANY); @@ -152,7 +154,7 @@ boxSizer23->Add(m_infobar, 0, wxEXPAND, 5); - wxFlexGridSizer* flexGridSizer31 = new wxFlexGridSizer(0, 2, 0, 0); + flexGridSizer31 = new wxFlexGridSizer(0, 2, 0, 0); flexGridSizer31->SetFlexibleDirection( wxBOTH ); flexGridSizer31->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); flexGridSizer31->AddGrowableCol(1); @@ -243,7 +245,7 @@ boxSizer23->Add(0, 0, 1, wxALL, 5); - wxBoxSizer* boxSizer29 = new wxBoxSizer(wxHORIZONTAL); + boxSizer29 = new wxBoxSizer(wxHORIZONTAL); boxSizer23->Add(boxSizer29, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 5); @@ -265,6 +267,8 @@ #if wxVERSION_NUMBER >= 2900 if(!wxPersistenceManager::Get().Find(this)) { wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); } #endif // Connect events @@ -294,10 +298,10 @@ bBitmapLoaded = true; } - wxBoxSizer* boxSizer62 = new wxBoxSizer(wxVERTICAL); + boxSizer62 = new wxBoxSizer(wxVERTICAL); this->SetSizer(boxSizer62); - wxGridBagSizer* gridBagSizer80 = new wxGridBagSizer(0, 0); + gridBagSizer80 = new wxGridBagSizer(0, 0); boxSizer62->Add(gridBagSizer80, 0, wxALL|wxEXPAND, 5); @@ -348,7 +352,7 @@ m_dataview->AppendIconTextColumn(_("Name"), m_dataview->GetColumnCount(), wxDATAVIEW_CELL_INERT, 400, wxALIGN_LEFT); m_dataview->AppendTextColumn(_("Type"), m_dataview->GetColumnCount(), wxDATAVIEW_CELL_INERT, 100, wxALIGN_LEFT); m_dataview->AppendTextColumn(_("Size"), m_dataview->GetColumnCount(), wxDATAVIEW_CELL_INERT, 100, wxALIGN_LEFT); - wxBoxSizer* boxSizer94 = new wxBoxSizer(wxVERTICAL); + boxSizer94 = new wxBoxSizer(wxVERTICAL); boxSizer62->Add(boxSizer94, 0, wxEXPAND|wxRESERVE_SPACE_EVEN_IF_HIDDEN, 5); @@ -360,7 +364,7 @@ boxSizer94->Add(m_textCtrlInlineSearch, 0, wxALL|wxEXPAND, 5); - wxBoxSizer* boxSizer57 = new wxBoxSizer(wxHORIZONTAL); + boxSizer57 = new wxBoxSizer(wxHORIZONTAL); boxSizer62->Add(boxSizer57, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 5); @@ -382,6 +386,8 @@ #if wxVERSION_NUMBER >= 2900 if(!wxPersistenceManager::Get().Find(this)) { wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); } #endif // Connect events @@ -445,7 +451,7 @@ SetIcons( app_icons ); - wxBoxSizer* boxSizer124 = new wxBoxSizer(wxVERTICAL); + boxSizer124 = new wxBoxSizer(wxVERTICAL); this->SetSizer(boxSizer124); m_auibar135 = new wxAuiToolBar(this, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxAUI_TB_PLAIN_BACKGROUND|wxAUI_TB_DEFAULT_STYLE); @@ -460,7 +466,7 @@ boxSizer124->Add(m_panel126, 1, wxEXPAND, 5); - wxBoxSizer* boxSizer116 = new wxBoxSizer(wxVERTICAL); + boxSizer116 = new wxBoxSizer(wxVERTICAL); m_panel126->SetSizer(boxSizer116); m_stcOutput = new wxStyledTextCtrl(m_panel126, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), 0); @@ -527,6 +533,8 @@ #if wxVERSION_NUMBER >= 2900 if(!wxPersistenceManager::Get().Find(this)) { wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); } #endif // Connect events diff -Nru codelite-8.0.1+dfsg2/Plugin/sftp_ui.h codelite-9.0+dfsg/Plugin/sftp_ui.h --- codelite-8.0.1+dfsg2/Plugin/sftp_ui.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/sftp_ui.h 2015-10-11 13:56:07.000000000 +0000 @@ -4,8 +4,8 @@ // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// -#ifndef SFTP_UI_BASE_CLASSES_H -#define SFTP_UI_BASE_CLASSES_H +#ifndef CODELITE_PLUGIN_SFTP_UI_BASE_CLASSES_H +#define CODELITE_PLUGIN_SFTP_UI_BASE_CLASSES_H #include #include @@ -42,10 +42,14 @@ class WXDLLIMPEXP_SDK SSHAccountManagerDlgBase : public wxDialog { protected: + wxBoxSizer* boxSizer2; + wxBoxSizer* boxSizer10; wxDataViewListCtrl* m_dvListCtrlAccounts; + wxBoxSizer* boxSizer15; wxButton* m_buttonNew; wxButton* m_buttonDelete; wxButton* m_buttonEdit; + wxBoxSizer* boxSizer4; wxButton* m_button6; wxButton* m_button8; @@ -72,7 +76,9 @@ class WXDLLIMPEXP_SDK AddSSHAcountDlgBase : public wxDialog { protected: + wxBoxSizer* boxSizer23; wxInfoBar* m_infobar; + wxFlexGridSizer* flexGridSizer31; wxStaticText* m_staticText98; wxTextCtrl* m_textCtrlName; wxStaticText* m_staticHostIp; @@ -86,6 +92,7 @@ wxStaticText* m_staticText110; wxTextCtrl* m_textCtrlHomeFolder; wxButton* m_button51; + wxBoxSizer* boxSizer29; wxButton* m_button27; wxButton* m_button25; @@ -125,6 +132,8 @@ ID_SSH_ACCOUNT_MANAGER = 1002, }; protected: + wxBoxSizer* boxSizer62; + wxGridBagSizer* gridBagSizer80; wxStaticText* m_staticText66; wxTextCtrl* m_textCtrlRemoteFolder; wxButton* m_buttonRefresh; @@ -134,7 +143,9 @@ wxDataViewCtrl* m_dataview; wxObjectDataPtr m_dataviewModel; + wxBoxSizer* boxSizer94; wxTextCtrl* m_textCtrlInlineSearch; + wxBoxSizer* boxSizer57; wxButton* m_button59; wxButton* m_button61; @@ -172,8 +183,10 @@ class WXDLLIMPEXP_SDK SSHTerminalBase : public wxFrame { protected: + wxBoxSizer* boxSizer124; wxAuiToolBar* m_auibar135; wxPanel* m_panel126; + wxBoxSizer* boxSizer116; wxStyledTextCtrl* m_stcOutput; wxTextCtrl* m_textCtrl1; diff -Nru codelite-8.0.1+dfsg2/Plugin/shell_command.cpp codelite-9.0+dfsg/Plugin/shell_command.cpp --- codelite-8.0.1+dfsg2/Plugin/shell_command.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/shell_command.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -38,15 +38,12 @@ const wxEventType wxEVT_SHELL_COMMAND_PROCESS_ENDED = XRCID("wxEVT_SHELL_COMMAND_PROCESS_ENDED"); const wxEventType wxEVT_SHELL_COMMAND_STARTED_NOCLEAN = XRCID("wxEVT_SHELL_COMMAND_STARTED_NOCLEAN"); -BEGIN_EVENT_TABLE(ShellCommand, wxEvtHandler) - EVT_COMMAND(wxID_ANY, wxEVT_PROC_DATA_READ, ShellCommand::OnProcessOutput) - EVT_COMMAND(wxID_ANY, wxEVT_PROC_TERMINATED, ShellCommand::OnProcessTerminated) -END_EVENT_TABLE() - ShellCommand::ShellCommand(const QueueCommand &buildInfo) : m_proc(NULL) , m_info(buildInfo) { + Bind(wxEVT_ASYNC_PROCESS_OUTPUT, &ShellCommand::OnProcessOutput, this); + Bind(wxEVT_ASYNC_PROCESS_TERMINATED, &ShellCommand::OnProcessTerminated, this); } void ShellCommand::AppendLine(const wxString &line) @@ -93,10 +90,7 @@ void ShellCommand::CleanUp() { - if (m_proc) { - delete m_proc; - m_proc = NULL; - } + wxDELETE(m_proc); SendEndMsg(); } @@ -108,7 +102,7 @@ //first set the path to the project working directory ::wxSetWorkingDirectory(proj->GetFileName().GetPath()); - BuildConfigPtr buildConf = WorkspaceST::Get()->GetProjBuildConf(m_info.GetProject(), m_info.GetConfiguration()); + BuildConfigPtr buildConf = clCxxWorkspaceST::Get()->GetProjBuildConf(m_info.GetProject(), m_info.GetConfiguration()); if (buildConf) { wxString wd = buildConf->GetCustomBuildWorkingDir(); if (wd.IsEmpty()) { @@ -116,7 +110,7 @@ wd = proj->GetFileName().GetPath(); } else { // expand macros from path - wd = ExpandAllVariables(wd, WorkspaceST::Get(), proj->GetName(), buildConf->GetName(), wxEmptyString); + wd = ExpandAllVariables(wd, clCxxWorkspaceST::Get(), proj->GetName(), buildConf->GetName(), wxEmptyString); } ::wxSetWorkingDirectory(wd); } @@ -129,19 +123,13 @@ } } -void ShellCommand::OnProcessOutput(wxCommandEvent& e) +void ShellCommand::OnProcessOutput(clProcessEvent& e) { - ProcessEventData *ped = (ProcessEventData*)e.GetClientData(); - if(ped) { - DoPrintOutput(ped->GetData()); - delete ped; - } - e.Skip(); + DoPrintOutput(e.GetOutput()); } -void ShellCommand::OnProcessTerminated(wxCommandEvent& e) +void ShellCommand::OnProcessTerminated(clProcessEvent& e) { - ProcessEventData *ped = (ProcessEventData*)e.GetClientData(); - delete ped; + wxUnusedVar(e); CleanUp(); } diff -Nru codelite-8.0.1+dfsg2/Plugin/shell_command.h codelite-9.0+dfsg/Plugin/shell_command.h --- codelite-8.0.1+dfsg2/Plugin/shell_command.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/shell_command.h 2015-10-11 13:56:07.000000000 +0000 @@ -29,6 +29,7 @@ #include "queuecommand.h" #include "wx/event.h" #include "codelite_exports.h" +#include "cl_command_event.h" class IManager; class IProcess; @@ -47,83 +48,54 @@ { wxString m_projectName; wxString m_configuration; - bool m_isClean; - bool m_isCustomProject; + bool m_isClean; + bool m_isCustomProject; public: BuildEventDetails() {} virtual ~BuildEventDetails() {} - - void SetConfiguration(const wxString& configuration) { - this->m_configuration = configuration; - } - void SetProjectName(const wxString& projectName) { - this->m_projectName = projectName; - } - const wxString& GetConfiguration() const { - return m_configuration; - } - const wxString& GetProjectName() const { - return m_projectName; - } - void SetIsClean(bool isClean) { - this->m_isClean = isClean; - } - void SetIsCustomProject(bool isCustomProject) { - this->m_isCustomProject = isCustomProject; - } - bool IsClean() const { - return m_isClean; - } - bool IsCustomProject() const { - return m_isCustomProject; - } + void SetConfiguration(const wxString& configuration) { this->m_configuration = configuration; } + void SetProjectName(const wxString& projectName) { this->m_projectName = projectName; } + const wxString& GetConfiguration() const { return m_configuration; } + const wxString& GetProjectName() const { return m_projectName; } + void SetIsClean(bool isClean) { this->m_isClean = isClean; } + void SetIsCustomProject(bool isCustomProject) { this->m_isCustomProject = isCustomProject; } + bool IsClean() const { return m_isClean; } + bool IsCustomProject() const { return m_isCustomProject; } }; -/** - * \class CompilerAction - * \brief - * \author Eran - * \date 07/22/07 - */ class WXDLLIMPEXP_SDK ShellCommand : public wxEvtHandler { protected: - IProcess* m_proc; - QueueCommand m_info; + IProcess* m_proc; + QueueCommand m_info; protected: - virtual void DoPrintOutput (const wxString &out); - virtual void OnProcessOutput (wxCommandEvent &e); - virtual void OnProcessTerminated(wxCommandEvent &e); + virtual void DoPrintOutput(const wxString& out); + virtual void OnProcessOutput(clProcessEvent& e); + virtual void OnProcessTerminated(clProcessEvent& e); void CleanUp(); void DoSetWorkingDirectory(ProjectPtr proj, bool isCustom, bool isFileOnly); public: - bool IsBusy() const { - return m_proc != NULL; - } + bool IsBusy() const { return m_proc != NULL; } void Stop(); - void SetInfo(const QueueCommand& info) { - this->m_info = info; - } - const QueueCommand& GetInfo() const { - return m_info; - } + void SetInfo(const QueueCommand& info) { this->m_info = info; } + const QueueCommand& GetInfo() const { return m_info; } + public: - //construct a compiler action - ShellCommand(const QueueCommand &buildInfo); + // construct a compiler action + ShellCommand(const QueueCommand& buildInfo); virtual ~ShellCommand() {} - virtual void Process(IManager *manager) = 0; + virtual void Process(IManager* manager) = 0; - void AppendLine(const wxString &line); + void AppendLine(const wxString& line); void SendStartMsg(); void SendEndMsg(); - DECLARE_EVENT_TABLE() }; #endif diff -Nru codelite-8.0.1+dfsg2/Plugin/stringsearcher.cpp codelite-9.0+dfsg/Plugin/stringsearcher.cpp --- codelite-8.0.1+dfsg2/Plugin/stringsearcher.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/stringsearcher.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -28,11 +28,11 @@ #include #include "globals.h" -static std::wstring Reverse(const std::wstring &str) +static std::wstring Reverse(const std::wstring& str) { // reverse the string content std::wstring tmp; - tmp.reserve( str.length() ); + tmp.reserve(str.length()); std::wstring::const_reverse_iterator riter = str.rbegin(); for(; riter != str.rend(); riter++) { @@ -43,30 +43,35 @@ wxString StringFindReplacer::GetString(const wxString& input, int from, bool search_up) { - if (from < 0) { + if(from < 0) { from = 0; } - if ( !search_up ) { + if(!search_up) { - if (from >= (int)input.Len()) { + if(from >= (int)input.Len()) { return wxEmptyString; } return input.Mid((size_t)from); } else { - if (from >= (int)input.Len()) { + if(from >= (int)input.Len()) { from = (int)input.Len(); } return input.Mid(0, (size_t)from); } } -bool StringFindReplacer::DoWildcardSearch(const wxString& input, int startOffset, const wxString& find_what, size_t flags, int& pos, int& matchLen) +bool StringFindReplacer::DoWildcardSearch(const wxString& input, + int startOffset, + const wxString& find_what, + size_t flags, + int& pos, + int& matchLen) { // Conver the wildcard to regex wxString regexPattern = find_what; - + // Escape braces regexPattern.Replace("(", "\\("); regexPattern.Replace(")", "\\)"); @@ -74,18 +79,24 @@ regexPattern.Replace("]", "\\]"); regexPattern.Replace("{", "\\{"); regexPattern.Replace("}", "\\}"); - + // Covnert match syntax to regular expression - regexPattern.Replace("?", "."); // Any character - regexPattern.Replace("*", "[^\\n]*?"); // Non greedy wildcard '*', but don't allow matches to go beyond a single line - + regexPattern.Replace("?", "."); // Any character + regexPattern.Replace("*", + "[^\\n]*?"); // Non greedy wildcard '*', but don't allow matches to go beyond a single line + return DoRESearch(input, startOffset, regexPattern, flags, pos, matchLen); } -bool StringFindReplacer::DoRESearch(const wxString& input, int startOffset, const wxString& find_what, size_t flags, int& pos, int& matchLen) +bool StringFindReplacer::DoRESearch(const wxString& input, + int startOffset, + const wxString& find_what, + size_t flags, + int& pos, + int& matchLen) { wxString str = GetString(input, startOffset, flags & wxSD_SEARCH_BACKWARD ? true : false); - if (str.IsEmpty()) { + if(str.IsEmpty()) { return false; } @@ -96,28 +107,29 @@ #endif wxRegEx re; bool matchCase = flags & wxSD_MATCHCASE ? true : false; - if ( !matchCase ) re_flags |= wxRE_ICASE; + if(!matchCase) re_flags |= wxRE_ICASE; + re_flags |= wxRE_NEWLINE; // Handle \n as a special character re.Compile(find_what, re_flags); // incase we are scanning NOT backwared, set the offset - if (!( flags & wxSD_SEARCH_BACKWARD )) { + if(!(flags & wxSD_SEARCH_BACKWARD)) { pos = startOffset; } - if ( re.IsValid() ) { - if ( flags & wxSD_SEARCH_BACKWARD ) { + if(re.IsValid()) { + if(flags & wxSD_SEARCH_BACKWARD) { size_t start(0), len(0); bool matched(false); // get the last match - while (re.Matches(str)) { + while(re.Matches(str)) { re.GetMatch(&start, &len); - if ( len == 0 ) { + if(len == 0) { matched = false; break; } pos += start; - if ( matched ) { + if(matched) { pos += matchLen; } matchLen = len; @@ -125,11 +137,11 @@ str = str.Mid(start + len); } - if ( matched ) { + if(matched) { return true; } - } else if ( re.Matches(str)) { + } else if(re.Matches(str)) { size_t start, len; re.GetMatch(&start, &len); pos += start; @@ -140,28 +152,33 @@ return false; } -bool StringFindReplacer::DoSimpleSearch(const wchar_t* pinput, int startOffset, const wchar_t* pfind_what, size_t flags, int& pos, int& matchLen) +bool StringFindReplacer::DoSimpleSearch(const wchar_t* pinput, + int startOffset, + const wchar_t* pfind_what, + size_t flags, + int& pos, + int& matchLen) { #if wxVERSION_NUMBER >= 2900 - std::wstring input (pinput); + std::wstring input(pinput); std::wstring find_what(pfind_what); int from = startOffset; - if (from < 0) { + if(from < 0) { from = 0; } std::wstring str; bool search_up = flags & wxSD_SEARCH_BACKWARD; - if ( !search_up ) { + if(!search_up) { - if (from >= (int)input.length()) { + if(from >= (int)input.length()) { str.clear(); return false; } str = input.substr((size_t)from); } else { - if (from >= (int)input.length() ) { + if(from >= (int)input.length()) { from = (int)input.length(); } str = input.substr(0, (size_t)from); @@ -174,7 +191,7 @@ size_t init_size = str.length(); - if (str.empty()) { + if(str.empty()) { return false; } @@ -182,7 +199,7 @@ size_t offset(0); // incase we are scanning backwared, revert the strings - if ( flags & wxSD_SEARCH_BACKWARD ) { + if(flags & wxSD_SEARCH_BACKWARD) { find_str = Reverse(find_str); str = Reverse(str); } else { @@ -190,35 +207,35 @@ } bool matchCase = flags & wxSD_MATCHCASE ? true : false; - if ( !matchCase ) { + if(!matchCase) { std::transform(find_str.begin(), find_str.end(), find_str.begin(), towlower); std::transform(str.begin(), str.end(), str.begin(), towlower); } size_t upos = str.find(find_str); - while ( upos != std::wstring::npos ) { - if (flags & wxSD_MATCHWHOLEWORD) { + while(upos != std::wstring::npos) { + if(flags & wxSD_MATCHWHOLEWORD) { // full word match // test that the characeter at upos - 1 & the character at upos + find_str.Len() are not // valid word char [a-zA-Z0-9_] - if (upos > 0) { - if(isalpha(str[upos-1]) || isdigit(str[upos-1]) || (int)str[upos-1] == (int)'_') { + if(upos > 0) { + if(isalpha(str[upos - 1]) || isdigit(str[upos - 1]) || (int)str[upos - 1] == (int)'_') { // remove the part that already been scanned // and search again - str = str.substr(upos+find_what.length()); - offset += upos+find_what.length(); + str = str.substr(upos + find_what.length()); + offset += upos + find_what.length(); upos = str.find(find_str); continue; } } int charAfterOff = upos + find_str.length(); - if (charAfterOff < (int)str.length()) { + if(charAfterOff < (int)str.length()) { if(isalpha(str[charAfterOff]) || isdigit(str[charAfterOff]) || (int)str[charAfterOff] == (int)'_') { // remove the part that already been scanned // and search again - str = str.substr(upos+find_what.length()); - offset += upos+find_what.length(); + str = str.substr(upos + find_what.length()); + offset += upos + find_what.length(); upos = str.find(find_str); continue; } @@ -226,7 +243,7 @@ matchLen = (int)find_str.length(); // mirror the result as well - if (flags & wxSD_SEARCH_BACKWARD) { + if(flags & wxSD_SEARCH_BACKWARD) { upos = (init_size - (upos + offset + matchLen)); } else { upos += offset; @@ -236,7 +253,7 @@ } else { // we got a match matchLen = (int)find_str.length(); - if (flags & wxSD_SEARCH_BACKWARD) { + if(flags & wxSD_SEARCH_BACKWARD) { upos = (init_size - (upos + offset + matchLen)); } else { upos += offset; @@ -248,29 +265,36 @@ return false; } -bool StringFindReplacer::Search(const wchar_t* input, int startOffset, const wchar_t* find_what, size_t flags, int &pos, int &matchLen, int& posInChars, int& matchLenInChars) +bool StringFindReplacer::Search(const wchar_t* input, + int startOffset, + const wchar_t* find_what, + size_t flags, + int& pos, + int& matchLen, + int& posInChars, + int& matchLenInChars) { // adjust startOffset due to it is in bytes but should be in chars int iSO = startOffset; - while (iSO > 0 && (int)clUTF8Length(input, iSO) > startOffset) iSO--; + while(iSO > 0 && (int)clUTF8Length(input, iSO) > startOffset) iSO--; startOffset = iSO; bool bResult = false; - if ( flags & wxSD_WILDCARD ) { + if(flags & wxSD_WILDCARD) { bResult = DoWildcardSearch(input, startOffset, find_what, flags, posInChars, matchLenInChars); flags |= wxSD_REGULAREXPRESSION; - - } else if (flags & wxSD_REGULAREXPRESSION) { + + } else if(flags & wxSD_REGULAREXPRESSION) { bResult = DoRESearch(input, startOffset, find_what, flags, posInChars, matchLenInChars); - + } else { bResult = DoSimpleSearch(input, startOffset, find_what, flags, posInChars, matchLenInChars); } - + // correct search Pos and Length owing to non plain ASCII multibyte characters - if ( bResult ) { + if(bResult) { pos = clUTF8Length(input, posInChars); - if (flags & wxSD_REGULAREXPRESSION) { + if(flags & wxSD_REGULAREXPRESSION) { matchLen = clUTF8Length(input, posInChars + matchLenInChars) - pos; } else { matchLen = clUTF8Length(find_what, matchLenInChars); @@ -279,7 +303,12 @@ return bResult; } -bool StringFindReplacer::Search(const wchar_t* input, int startOffset, const wchar_t* find_what, size_t flags, int &pos, int &matchLen) +bool StringFindReplacer::Search(const wchar_t* input, + int startOffset, + const wchar_t* find_what, + size_t flags, + int& pos, + int& matchLen) { int posInChars(0), matchLenInChars(0); return StringFindReplacer::Search(input, startOffset, find_what, flags, pos, matchLen, posInChars, matchLenInChars); diff -Nru codelite-8.0.1+dfsg2/Plugin/stringsearcher.h codelite-9.0+dfsg/Plugin/stringsearcher.h --- codelite-8.0.1+dfsg2/Plugin/stringsearcher.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/stringsearcher.h 2015-10-11 13:56:07.000000000 +0000 @@ -30,16 +30,17 @@ // Possible search data options: enum { - wxSD_MATCHCASE = 0x00000001, - wxSD_MATCHWHOLEWORD = 0x00000002, - wxSD_REGULAREXPRESSION = 0x00000004, - wxSD_SEARCH_BACKWARD = 0x00000008, + wxSD_MATCHCASE = 0x00000001, + wxSD_MATCHWHOLEWORD = 0x00000002, + wxSD_REGULAREXPRESSION = 0x00000004, + wxSD_SEARCH_BACKWARD = 0x00000008, wxSD_USE_EDITOR_ENCODING = 0x00000010, - wxSD_PRINT_SCOPE = 0x00000020, - wxSD_SKIP_COMMENTS = 0x00000040, - wxSD_SKIP_STRINGS = 0x00000080, - wxSD_COLOUR_COMMENTS = 0x00000100, - wxSD_WILDCARD = 0x00000200, + wxSD_PRINT_SCOPE = 0x00000020, + wxSD_SKIP_COMMENTS = 0x00000040, + wxSD_SKIP_STRINGS = 0x00000080, + wxSD_COLOUR_COMMENTS = 0x00000100, + wxSD_WILDCARD = 0x00000200, + wxSD_ENABLE_PIPE_SUPPORT = 0x00000400, }; class WXDLLIMPEXP_SDK StringFindReplacer @@ -47,14 +48,38 @@ protected: static wxString GetString(const wxString& input, int from, bool search_up); - static bool DoRESearch(const wxString &input, int startOffset, const wxString &find_what, size_t flags, int &pos, int &matchLen); - static bool DoWildcardSearch(const wxString &input, int startOffset, const wxString &find_what, size_t flags, int &pos, int &matchLen); - static bool DoSimpleSearch(const wchar_t* pinput, int startOffset, const wchar_t* find_what, size_t flags, int& pos, int& matchLen); + static bool DoRESearch(const wxString& input, + int startOffset, + const wxString& find_what, + size_t flags, + int& pos, + int& matchLen); + static bool DoWildcardSearch(const wxString& input, + int startOffset, + const wxString& find_what, + size_t flags, + int& pos, + int& matchLen); + static bool DoSimpleSearch(const wchar_t* pinput, + int startOffset, + const wchar_t* find_what, + size_t flags, + int& pos, + int& matchLen); public: - static bool Search(const wchar_t* input, int startOffset, const wchar_t* find_what, size_t flags, int &pos, int &matchLen); - // overloaded method because of that ReplaceAll methods works on wxString and needs results in chars and other methods + static bool + Search(const wchar_t* input, int startOffset, const wchar_t* find_what, size_t flags, int& pos, int& matchLen); + // overloaded method because of that ReplaceAll methods works on wxString and needs results in chars and other + // methods // using selection needs results in bytes - static bool Search(const wchar_t* input, int startOffset, const wchar_t* find_what, size_t flags, int &pos, int &matchLen, int& posInChars, int& matchLenInChars); + static bool Search(const wchar_t* input, + int startOffset, + const wchar_t* find_what, + size_t flags, + int& pos, + int& matchLen, + int& posInChars, + int& matchLenInChars); }; #endif // __stringsearcher__ diff -Nru codelite-8.0.1+dfsg2/Plugin/vcimporter.cpp codelite-9.0+dfsg/Plugin/vcimporter.cpp --- codelite-8.0.1+dfsg2/Plugin/vcimporter.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/vcimporter.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -157,7 +157,7 @@ // create a workspace file from the data we collected wxFileName fn(m_fileName); wxString errMsg; - WorkspaceST::Get()->CreateWorkspace(fn.GetName(), fn.GetPath(), errMsg); + clCxxWorkspaceST::Get()->CreateWorkspace(fn.GetName(), fn.GetPath(), errMsg); } // @@ -213,12 +213,12 @@ // now we can create the project wxFileName fn(data.filepath); fn.MakeAbsolute(); - if(!WorkspaceST::Get()->CreateProject(data.name, fn.GetPath(), projectType, true, errMsg)) { + if(!clCxxWorkspaceST::Get()->CreateProject(data.name, fn.GetPath(), projectType, true, errMsg)) { return false; } // get the new project instance - ProjectPtr proj = WorkspaceST::Get()->FindProjectByName(data.name, errMsg); + ProjectPtr proj = clCxxWorkspaceST::Get()->FindProjectByName(data.name, errMsg); ProjectSettingsPtr le_settings(new ProjectSettings(NULL)); // remove the default 'Debug' configuration le_settings->RemoveConfiguration(wxT("Debug")); diff -Nru codelite-8.0.1+dfsg2/Plugin/VirtualDirectorySelectorBase.cpp codelite-9.0+dfsg/Plugin/VirtualDirectorySelectorBase.cpp --- codelite-8.0.1+dfsg2/Plugin/VirtualDirectorySelectorBase.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/VirtualDirectorySelectorBase.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,30 +1,6 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2014 The CodeLite Team -// file name : VirtualDirectorySelectorBase.cpp -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - ////////////////////////////////////////////////////////////////////// // This file was auto-generated by codelite's wxCrafter Plugin +// wxCrafter project file: VirtualDirectorySelectorBase.wxcp // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// @@ -48,7 +24,7 @@ bBitmapLoaded = true; } - wxBoxSizer* bSizer1 = new wxBoxSizer(wxVERTICAL); + bSizer1 = new wxBoxSizer(wxVERTICAL); this->SetSizer(bSizer1); m_staticText1 = new wxStaticText(this, wxID_ANY, _("Select Virtual Directory:"), wxDefaultPosition, wxSize(-1, -1), 0); @@ -62,7 +38,7 @@ bSizer1->Add(m_treeCtrl, 1, wxALL|wxEXPAND, 5); - wxStaticBoxSizer* sbSizer1 = new wxStaticBoxSizer( new wxStaticBox(this, wxID_ANY, wxT("")), wxVERTICAL); + sbSizer1 = new wxStaticBoxSizer( new wxStaticBox(this, wxID_ANY, wxT("")), wxVERTICAL); bSizer1->Add(sbSizer1, 0, wxEXPAND|wxALL, 5); @@ -70,7 +46,7 @@ sbSizer1->Add(m_staticTextPreview, 0, wxEXPAND|wxALL, 5); - wxBoxSizer* bSizer2 = new wxBoxSizer(wxHORIZONTAL); + bSizer2 = new wxBoxSizer(wxHORIZONTAL); bSizer1->Add(bSizer2, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5); @@ -88,12 +64,19 @@ bSizer2->Add(m_button1, 0, wxALL, 5); - + SetName(wxT("VirtualDirectorySelectorDlgBaseClass")); SetSizeHints(-1,-1); if ( GetSizer() ) { GetSizer()->Fit(this); } - Centre(wxBOTH); + CentreOnParent(wxBOTH); +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(this)) { + wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); + } +#endif // Connect events m_treeCtrl->Connect(wxEVT_COMMAND_TREE_SEL_CHANGED, wxTreeEventHandler(VirtualDirectorySelectorDlgBaseClass::OnItemSelected), NULL, this); m_buttonOk->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(VirtualDirectorySelectorDlgBaseClass::OnButtonOK), NULL, this); diff -Nru codelite-8.0.1+dfsg2/Plugin/VirtualDirectorySelectorBase.h codelite-9.0+dfsg/Plugin/VirtualDirectorySelectorBase.h --- codelite-8.0.1+dfsg2/Plugin/VirtualDirectorySelectorBase.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/VirtualDirectorySelectorBase.h 2015-10-11 13:56:07.000000000 +0000 @@ -1,53 +1,40 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2013 by Eran Ifrah -// file name : VirtualDirectorySelectorBase.h -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - ////////////////////////////////////////////////////////////////////// // This file was auto-generated by codelite's wxCrafter Plugin +// wxCrafter project file: VirtualDirectorySelectorBase.wxcp // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// -#ifndef VIRTUALDIRECTORYSELECTORBASE_BASE_CLASSES_H -#define VIRTUALDIRECTORYSELECTORBASE_BASE_CLASSES_H +#ifndef CODELITE_PLUGIN_VIRTUALDIRECTORYSELECTORBASE_BASE_CLASSES_H +#define CODELITE_PLUGIN_VIRTUALDIRECTORYSELECTORBASE_BASE_CLASSES_H #include #include #include #include +#include +#include #include #include #include #include #include +#if wxVERSION_NUMBER >= 2900 +#include +#include +#include +#include +#endif #include "codelite_exports.h" class WXDLLIMPEXP_SDK VirtualDirectorySelectorDlgBaseClass : public wxDialog { protected: + wxBoxSizer* bSizer1; wxStaticText* m_staticText1; wxTreeCtrl* m_treeCtrl; + wxStaticBoxSizer* sbSizer1; wxStaticText* m_staticTextPreview; + wxBoxSizer* bSizer2; wxButton* m_buttonOk; wxButton* m_buttonCancel; wxButton* m_button1; @@ -61,6 +48,12 @@ virtual void OnNewVDUI(wxUpdateUIEvent& event) { event.Skip(); } public: + wxStaticText* GetStaticText1() { return m_staticText1; } + wxTreeCtrl* GetTreeCtrl() { return m_treeCtrl; } + wxStaticText* GetStaticTextPreview() { return m_staticTextPreview; } + wxButton* GetButtonOk() { return m_buttonOk; } + wxButton* GetButtonCancel() { return m_buttonCancel; } + wxButton* GetButton1() { return m_button1; } VirtualDirectorySelectorDlgBaseClass(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Virtual Directory Selector"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1, -1), long style = wxDEFAULT_DIALOG_STYLE); virtual ~VirtualDirectorySelectorDlgBaseClass(); }; diff -Nru codelite-8.0.1+dfsg2/Plugin/VirtualDirectorySelectorBase_plugin_bitmaps.cpp codelite-9.0+dfsg/Plugin/VirtualDirectorySelectorBase_plugin_bitmaps.cpp --- codelite-8.0.1+dfsg2/Plugin/VirtualDirectorySelectorBase_plugin_bitmaps.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/VirtualDirectorySelectorBase_plugin_bitmaps.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,73 +1,47 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2014 The CodeLite Team -// file name : VirtualDirectorySelectorBase_plugin_bitmaps.cpp -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - -// -// This file was automatically generated by wxrc, do not edit by hand. -// - -#include - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#include -#include -#include -#include - -#if wxCHECK_VERSION(2,8,5) && wxABI_VERSION >= 20805 - #define XRC_ADD_FILE(name, data, size, mime) \ - wxMemoryFSHandler::AddFileWithMimeType(name, data, size, mime) -#else - #define XRC_ADD_FILE(name, data, size, mime) \ - wxMemoryFSHandler::AddFile(name, data, size) -#endif - -static size_t xml_res_size_0 = 108; -static unsigned char xml_res_file_0[] = { -60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, -110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, -115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, -47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, -47,119,120,120,114,99,34,32,118,101,114,115,105,111,110,61,34,50,46,51, -46,48,46,49,34,47,62,10}; - -void wxC168BInitBitmapResources() -{ - - // Check for memory FS. If not present, load the handler: - { - wxMemoryFSHandler::AddFile(wxT("XRC_resource/dummy_file"), wxT("dummy one")); - wxFileSystem fsys; - wxFSFile *f = fsys.OpenFile(wxT("memory:XRC_resource/dummy_file")); - wxMemoryFSHandler::RemoveFile(wxT("XRC_resource/dummy_file")); - if (f) delete f; - else wxFileSystem::AddHandler(new wxMemoryFSHandler); - } - - XRC_ADD_FILE(wxT("XRC_resource/VirtualDirectorySelectorBase_plugin_bitmaps.cpp$VirtualDirectorySelectorBase_plugin_bitmaps.xrc"), xml_res_file_0, xml_res_size_0, wxT("text/xml")); - wxXmlResource::Get()->Load(wxT("memory:XRC_resource/VirtualDirectorySelectorBase_plugin_bitmaps.cpp$VirtualDirectorySelectorBase_plugin_bitmaps.xrc")); -} +// +// This file was automatically generated by wxrc, do not edit by hand. +// + +#include + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +#include +#include +#include +#include + +#if wxCHECK_VERSION(2,8,5) && wxABI_VERSION >= 20805 + #define XRC_ADD_FILE(name, data, size, mime) \ + wxMemoryFSHandler::AddFileWithMimeType(name, data, size, mime) +#else + #define XRC_ADD_FILE(name, data, size, mime) \ + wxMemoryFSHandler::AddFile(name, data, size) +#endif + +static size_t xml_res_size_0 = 90; +static unsigned char xml_res_file_0[] = { +60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, +110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, +115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, +47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, +47,119,120,120,114,99,34,47,62,10}; + +void wxC168BInitBitmapResources() +{ + + // Check for memory FS. If not present, load the handler: + { + wxMemoryFSHandler::AddFile(wxT("XRC_resource/dummy_file"), wxT("dummy one")); + wxFileSystem fsys; + wxFSFile *f = fsys.OpenFile(wxT("memory:XRC_resource/dummy_file")); + wxMemoryFSHandler::RemoveFile(wxT("XRC_resource/dummy_file")); + if (f) delete f; + else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase); + } + + XRC_ADD_FILE(wxT("XRC_resource/VirtualDirectorySelectorBase_plugin_bitmaps.cpp$C__src_codelite_Plugin_VirtualDirectorySelectorBase_plugin_bitmaps.xrc"), xml_res_file_0, xml_res_size_0, wxT("text/xml")); + wxXmlResource::Get()->Load(wxT("memory:XRC_resource/VirtualDirectorySelectorBase_plugin_bitmaps.cpp$C__src_codelite_Plugin_VirtualDirectorySelectorBase_plugin_bitmaps.xrc")); +} diff -Nru codelite-8.0.1+dfsg2/Plugin/VirtualDirectorySelectorBase.wxcp codelite-9.0+dfsg/Plugin/VirtualDirectorySelectorBase.wxcp --- codelite-8.0.1+dfsg2/Plugin/VirtualDirectorySelectorBase.wxcp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/VirtualDirectorySelectorBase.wxcp 2015-10-11 13:56:07.000000000 +0000 @@ -1,639 +1,738 @@ { - "metadata": { - "m_generatedFilesDir": ".", - "m_objCounter": 1, - "m_includeFiles": ["\"codelite_exports.h\""], - "m_bitmapFunction": "wxC168BInitBitmapResources", - "m_bitmapsFile": "VirtualDirectorySelectorBase_plugin_bitmaps.cpp", - "m_GenerateCodeTypes": 1, - "m_outputFileName": "VirtualDirectorySelectorBase", - "m_templateClasses": [] - }, - "windows": [{ - "m_type": 4421, - "proportion": 0, - "border": 0, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": ["wxDEFAULT_DIALOG_STYLE"], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "VirtualDirectorySelectorDlgBaseClass" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Title:", - "m_value": "Virtual Directory Selector" - }, { - "type": "virtualFolderPicker", - "m_label": "Virtual Folder:", - "m_path": "" - }, { - "type": "choice", - "m_label": "Centre:", - "m_selection": 1, - "m_options": ["", "wxBOTH", "wxVERTICAL", "wxHORIZONTAL"] - }, { - "type": "string", - "m_label": "File:", - "m_value": "VirtualDirectorySelectorDlg" - }, { - "type": "string", - "m_label": "Inherited Class", - "m_value": "VirtualDirectorySelectorDlg" - }, { - "type": "string", - "m_label": "Class Decorator", - "m_value": "WXDLLIMPEXP_SDK" - }], - "m_events": [], - "m_children": [{ - "m_type": 4401, - "proportion": 0, - "border": 0, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "bSizer1" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4405, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_HORIZONTAL"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_staticText1" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "wxSYS_DEFAULT_GUI_FONT,normal,bold,normal" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Label:", - "m_value": "Select Virtual Directory:" - }, { - "type": "string", - "m_label": "Wrap:", - "m_value": "-1" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4422, - "proportion": 1, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": ["wxTR_DEFAULT_STYLE", "wxTR_SINGLE"], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "300,300" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_treeCtrl" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }], - "m_events": [{ - "m_eventName": "wxEVT_COMMAND_TREE_SEL_CHANGED", - "m_eventClass": "wxTreeEvent", - "m_eventHandler": "wxTreeEventHandler", - "m_functionNameAndSignature": "OnItemSelected(wxTreeEvent& event)", - "m_description": "Selection has changed." - }], - "m_children": [] - }, { - "m_type": 4449, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "sbSizer1" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 2, - "m_options": ["Vertical", "Horizontal", "wxVERTICAL"] - }, { - "type": "string", - "m_label": "Label:", - "m_value": "" - }], - "m_events": [], - "m_children": [{ - "m_type": 4405, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_staticTextPreview" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Label:", - "m_value": "" - }, { - "type": "string", - "m_label": "Wrap:", - "m_value": "-1" - }], - "m_events": [], - "m_children": [] - }] - }, { - "m_type": 4401, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_HORIZONTAL"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "bSizer2" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 1, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4400, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_OK" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_buttonOk" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "OK" - }, { - "type": "bool", - "m_label": "Default Button", - "m_value": true - }, { - "type": "filePicker", - "m_label": "Bitmap File:", - "m_path": "" - }, { - "type": "string", - "m_label": "Margins:", - "m_value": "2,2" - }], - "m_events": [{ - "m_eventName": "wxEVT_COMMAND_BUTTON_CLICKED", - "m_eventClass": "wxCommandEvent", - "m_eventHandler": "wxCommandEventHandler", - "m_functionNameAndSignature": "OnButtonOK(wxCommandEvent& event)", - "m_description": "Process a wxEVT_COMMAND_BUTTON_CLICKED event, when the button is clicked." - }, { - "m_eventName": "wxEVT_UPDATE_UI", - "m_eventClass": "wxUpdateUIEvent", - "m_eventHandler": "wxUpdateUIEventHandler", - "m_functionNameAndSignature": "OnButtonOkUI(wxUpdateUIEvent& event)", - "m_description": "Process a wxEVT_UPDATE_UI event" - }], - "m_children": [] - }, { - "m_type": 4400, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_CANCEL" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_buttonCancel" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "Cancel" - }, { - "type": "bool", - "m_label": "Default Button", - "m_value": false - }, { - "type": "filePicker", - "m_label": "Bitmap File:", - "m_path": "" - }, { - "type": "string", - "m_label": "Margins:", - "m_value": "2,2" - }], - "m_events": [{ - "m_eventName": "wxEVT_COMMAND_BUTTON_CLICKED", - "m_eventClass": "wxCommandEvent", - "m_eventHandler": "wxCommandEventHandler", - "m_functionNameAndSignature": "OnButtonCancel(wxCommandEvent& event)", - "m_description": "Process a wxEVT_COMMAND_BUTTON_CLICKED event, when the button is clicked." - }], - "m_children": [] - }, { - "m_type": 4400, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_NEW" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_button1" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "Create new virtual folder..." - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "New..." - }, { - "type": "bool", - "m_label": "Default Button", - "m_value": false - }, { - "type": "filePicker", - "m_label": "Bitmap File:", - "m_path": "" - }, { - "type": "string", - "m_label": "Margins:", - "m_value": "2,2" - }], - "m_events": [{ - "m_eventName": "wxEVT_COMMAND_BUTTON_CLICKED", - "m_eventClass": "wxCommandEvent", - "m_eventHandler": "wxCommandEventHandler", - "m_functionNameAndSignature": "OnNewVD(wxCommandEvent& event)", - "m_description": "Process a wxEVT_COMMAND_BUTTON_CLICKED event, when the button is clicked." - }, { - "m_eventName": "wxEVT_UPDATE_UI", - "m_eventClass": "wxUpdateUIEvent", - "m_eventHandler": "wxUpdateUIEventHandler", - "m_functionNameAndSignature": "OnNewVDUI(wxUpdateUIEvent& event)", - "m_description": "Process a wxEVT_UPDATE_UI event" - }], - "m_children": [] - }] - }] - }] - }] + "metadata": { + "m_generatedFilesDir": ".", + "m_objCounter": 1, + "m_includeFiles": ["\"codelite_exports.h\""], + "m_bitmapFunction": "wxC168BInitBitmapResources", + "m_bitmapsFile": "VirtualDirectorySelectorBase_plugin_bitmaps.cpp", + "m_GenerateCodeTypes": 1, + "m_outputFileName": "VirtualDirectorySelectorBase", + "m_firstWindowId": 1000, + "m_useEnum": true, + "m_templateClasses": [] + }, + "windows": [{ + "m_type": 4421, + "proportion": 0, + "border": 0, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": ["wxDEFAULT_DIALOG_STYLE"], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "VirtualDirectorySelectorDlgBaseClass" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Enable Window Persistency:", + "m_value": true + }, { + "type": "string", + "m_label": "Title:", + "m_value": "Virtual Directory Selector" + }, { + "type": "virtualFolderPicker", + "m_label": "Virtual Folder:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Centre:", + "m_selection": 1, + "m_options": ["", "wxBOTH", "wxVERTICAL", "wxHORIZONTAL"] + }, { + "type": "string", + "m_label": "Inherited Class", + "m_value": "VirtualDirectorySelectorDlg" + }, { + "type": "string", + "m_label": "File:", + "m_value": "VirtualDirectorySelectorDlg" + }, { + "type": "string", + "m_label": "Class Decorator", + "m_value": "WXDLLIMPEXP_SDK" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (16x16) :", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (32x32) :", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (64x64) :", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (128x128):", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (256x256):", + "m_path": "" + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 0, + "border": 0, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "bSizer1" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4405, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_HORIZONTAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_staticText1" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "wxSYS_DEFAULT_GUI_FONT,normal,bold,normal" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Label:", + "m_value": "Select Virtual Directory:" + }, { + "type": "string", + "m_label": "Wrap:", + "m_value": "-1" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4422, + "proportion": 1, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": ["wxTR_DEFAULT_STYLE", "wxTR_SINGLE"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "300,300" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_treeCtrl" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_TREE_SEL_CHANGED", + "m_eventClass": "wxTreeEvent", + "m_eventHandler": "wxTreeEventHandler", + "m_functionNameAndSignature": "OnItemSelected(wxTreeEvent& event)", + "m_description": "Selection has changed.", + "m_noBody": false + }], + "m_children": [] + }, { + "m_type": 4449, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "sbSizer1" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 2, + "m_options": ["Vertical", "Horizontal", "wxVERTICAL"] + }, { + "type": "string", + "m_label": "Label:", + "m_value": "" + }], + "m_events": [], + "m_children": [{ + "m_type": 4405, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_staticTextPreview" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Label:", + "m_value": "" + }, { + "type": "string", + "m_label": "Wrap:", + "m_value": "-1" + }], + "m_events": [], + "m_children": [] + }] + }, { + "m_type": 4401, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_HORIZONTAL"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "bSizer2" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 1, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4400, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_OK" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_buttonOk" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "OK" + }, { + "type": "bool", + "m_label": "Default Button", + "m_value": true + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Direction", + "m_selection": 0, + "m_options": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"] + }, { + "type": "string", + "m_label": "Margins:", + "m_value": "2,2" + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_BUTTON_CLICKED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnButtonOK(wxCommandEvent& event)", + "m_description": "Process a wxEVT_COMMAND_BUTTON_CLICKED event, when the button is clicked.", + "m_noBody": false + }, { + "m_eventName": "wxEVT_UPDATE_UI", + "m_eventClass": "wxUpdateUIEvent", + "m_eventHandler": "wxUpdateUIEventHandler", + "m_functionNameAndSignature": "OnButtonOkUI(wxUpdateUIEvent& event)", + "m_description": "Process a wxEVT_UPDATE_UI event", + "m_noBody": false + }], + "m_children": [] + }, { + "m_type": 4400, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_CANCEL" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_buttonCancel" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Cancel" + }, { + "type": "bool", + "m_label": "Default Button", + "m_value": false + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Direction", + "m_selection": 0, + "m_options": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"] + }, { + "type": "string", + "m_label": "Margins:", + "m_value": "2,2" + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_BUTTON_CLICKED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnButtonCancel(wxCommandEvent& event)", + "m_description": "Process a wxEVT_COMMAND_BUTTON_CLICKED event, when the button is clicked.", + "m_noBody": false + }], + "m_children": [] + }, { + "m_type": 4400, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_NEW" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_button1" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "Create new virtual folder..." + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "New..." + }, { + "type": "bool", + "m_label": "Default Button", + "m_value": false + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Direction", + "m_selection": 0, + "m_options": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"] + }, { + "type": "string", + "m_label": "Margins:", + "m_value": "2,2" + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_BUTTON_CLICKED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnNewVD(wxCommandEvent& event)", + "m_description": "Process a wxEVT_COMMAND_BUTTON_CLICKED event, when the button is clicked.", + "m_noBody": false + }, { + "m_eventName": "wxEVT_UPDATE_UI", + "m_eventClass": "wxUpdateUIEvent", + "m_eventHandler": "wxUpdateUIEventHandler", + "m_functionNameAndSignature": "OnNewVDUI(wxUpdateUIEvent& event)", + "m_description": "Process a wxEVT_UPDATE_UI event", + "m_noBody": false + }], + "m_children": [] + }] + }] + }] + }] } \ No newline at end of file diff -Nru codelite-8.0.1+dfsg2/Plugin/VirtualDirectorySelectorDlg.cpp codelite-9.0+dfsg/Plugin/VirtualDirectorySelectorDlg.cpp --- codelite-8.0.1+dfsg2/Plugin/VirtualDirectorySelectorDlg.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/VirtualDirectorySelectorDlg.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -40,7 +40,7 @@ #include VirtualDirectorySelectorDlg::VirtualDirectorySelectorDlg(wxWindow* parent, - Workspace* wsp, + clCxxWorkspace* wsp, const wxString& initialPath, const wxString& projectname) : VirtualDirectorySelectorDlgBaseClass(parent) @@ -334,7 +334,7 @@ curpath << ":" << newname; wxString errmsg; - if(!WorkspaceST::Get()->CreateVirtualDirectory(curpath, errmsg, true)) { + if(!clCxxWorkspaceST::Get()->CreateVirtualDirectory(curpath, errmsg, true)) { wxMessageBox( _("Error occured while creating virtual folder:\n") + errmsg, "codelite", wxOK | wxICON_WARNING | wxCENTER); return; diff -Nru codelite-8.0.1+dfsg2/Plugin/VirtualDirectorySelectorDlg.h codelite-9.0+dfsg/Plugin/VirtualDirectorySelectorDlg.h --- codelite-8.0.1+dfsg2/Plugin/VirtualDirectorySelectorDlg.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/VirtualDirectorySelectorDlg.h 2015-10-11 13:56:07.000000000 +0000 @@ -29,12 +29,12 @@ #include "VirtualDirectorySelectorBase.h" #include "codelite_exports.h" -class Workspace; +class clCxxWorkspace; /** Implementing VirtualDirectorySelectorBase */ class WXDLLIMPEXP_SDK VirtualDirectorySelectorDlg : public VirtualDirectorySelectorDlgBaseClass { - Workspace * m_workspace; + clCxxWorkspace * m_workspace; wxString m_projectName; wxString m_initialPath; wxString m_suggestedName; @@ -58,7 +58,7 @@ public: /** Constructor */ - VirtualDirectorySelectorDlg( wxWindow* parent, Workspace *wsp, const wxString &initialPath = wxEmptyString, const wxString& projectname = wxEmptyString ); + VirtualDirectorySelectorDlg( wxWindow* parent, clCxxWorkspace *wsp, const wxString &initialPath = wxEmptyString, const wxString& projectname = wxEmptyString ); ~VirtualDirectorySelectorDlg(); wxString GetVirtualDirectoryPath() const { return m_staticTextPreview->GetLabel(); diff -Nru codelite-8.0.1+dfsg2/Plugin/VisualCppImporter.cpp codelite-9.0+dfsg/Plugin/VisualCppImporter.cpp --- codelite-8.0.1+dfsg2/Plugin/VisualCppImporter.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/VisualCppImporter.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -2,7 +2,6 @@ #include #include #include -#include bool VisualCppImporter::OpenWordspace(const wxString& filename, const wxString& defaultCompiler) { @@ -36,7 +35,7 @@ bool VisualCppImporter::isSupportedWorkspace() { - return version >= 6 && version <= 12; + return version >= 5 && version <= 12; } GenericWorkspacePtr VisualCppImporter::PerformImport() @@ -46,6 +45,7 @@ genericWorkspace->path = wsInfo.GetPath(); switch(version) { + case 5: case 6: GenerateFromVC6(genericWorkspace); break; @@ -76,7 +76,6 @@ int end = line.Find(wxT("- Package Owner")) - 1; wxString value = line.SubString(index + 8, end).Trim().Trim(false); value.Replace(wxT("\""), wxT("")); - value.Replace(wxT(".\\"), wxT("")); wxStringTokenizer part(value, wxT("=")); @@ -129,9 +128,9 @@ genericProject->deps.Add(projectNameDep); } - wxTextInputStream projectTIS(projectFIS); + std::map genericProjectCfgMap; - wxString virtualPath = wxT(""); + wxTextInputStream projectTIS(projectFIS); while(!projectFIS.Eof()) { wxString line = projectTIS.ReadLine(); @@ -140,18 +139,22 @@ if(index != wxNOT_FOUND) { index = line.find_last_of(wxT("\"")); wxString projectType = line.Mid(index + 1).Trim().Trim(false); - if(projectType == wxT("0x0104")) { - genericProject->cfgType = GenericCfgType::STATIC_LIBRARY; - } else if(projectType == wxT("0x0102")) { + + if(projectType == wxT("0x0102")) { genericProject->cfgType = GenericCfgType::DYNAMIC_LIBRARY; + } else if(projectType == wxT("0x0104")) { + genericProject->cfgType = GenericCfgType::STATIC_LIBRARY; } else { genericProject->cfgType = GenericCfgType::EXECUTABLE; } } - index = line.Find(wxT("\"$(CFG)\" == ")); + index = line.Find(wxT("!MESSAGE \"")); if(index != wxNOT_FOUND) { - wxString projectCfgName = line.Mid(index + 12).Trim().Trim(false); + int begin = index + 10; + int end = line.Find(wxT("\" (based on")); + + wxString projectCfgName = line.SubString(begin, end); projectCfgName.Replace(genericProjectData[wxT("projectName")] + wxT(" - "), wxT("")); projectCfgName.Replace(wxT("\""), wxT("")); projectCfgName.Replace(wxT(" "), wxT("_")); @@ -160,129 +163,229 @@ genericProjectCfg->name = projectCfgName; genericProjectCfg->type = genericProject->cfgType; - while(!projectFIS.Eof()) { - line = projectTIS.ReadLine(); - - index = line.Find(wxT("PROP Intermediate_Dir")); - if(index != wxNOT_FOUND) { - wxString intermediateDirectory = line.Mid(index + 21).Trim().Trim(false); - intermediateDirectory.Replace(wxT("\""), wxT("")); - intermediateDirectory.Replace(wxT(" "), wxT("_")); - intermediateDirectory.Replace(wxT(".\\"), wxT("")); - genericProjectCfg->intermediateDirectory = wxT("./") + intermediateDirectory; - } + genericProjectCfgMap[projectCfgName] = genericProjectCfg; + } - index = line.Find(wxT("ADD CPP")); - if(index != wxNOT_FOUND) { - wxString preprocessor = wxT(""), includePath = wxT(""), preCompiledHeader = wxT(""); - size_t pos = 0; + index = line.Find(wxT("Begin Project")); + if(index != wxNOT_FOUND) + break; + } - while(pos < line.Length()) { - if(line.GetChar(pos) == wxT('/') && line.GetChar(pos + 1) == wxT('D')) { - int count = 0; - wxString word = wxT(""); - while(count < 2) { - if(line.GetChar(pos) == wxT(' ')) { - count++; - } else if(count == 1 && line.GetChar(pos) != wxT('\"')) { - word.Append(line.GetChar(pos)); - } + wxString virtualPath = wxT(""); + GenericProjectCfgPtr genericProjectCfg; - pos++; - } + wxString line; - preprocessor += word + wxT(";"); - } else if(line.GetChar(pos) == wxT('/') && line.GetChar(pos + 1) == wxT('I')) { - int count = 0; - wxString word = wxT(""); - while(count < 2) { - if(line.GetChar(pos) == wxT(' ')) { - count++; - } else if(count == 1 && line.GetChar(pos) != wxT('\"')) { - word.Append(line.GetChar(pos)); - } + while(!projectFIS.Eof()) { + line = projectTIS.ReadLine(); - pos++; - } + int index = line.Find(wxT("\"$(CFG)\" == ")); + if(index != wxNOT_FOUND) { + wxString projectCfgName = line.Mid(index + 12).Trim().Trim(false); + projectCfgName.Replace(genericProjectData[wxT("projectName")] + wxT(" - "), wxT("")); + projectCfgName.Replace(wxT("\""), wxT("")); + projectCfgName.Replace(wxT(" "), wxT("_")); - includePath += word + wxT(";"); - } else if(line.GetChar(pos) == wxT('/') && line.GetChar(pos + 1) == wxT('Y') && - line.GetChar(pos + 2) == wxT('u')) { - int count = 0; - wxString word = wxT(""); - while(count < 2) { - if(line.GetChar(pos) == wxT('\"')) { - count++; - } else if(count == 1) { - word.Append(line.GetChar(pos)); - } + genericProjectCfg = genericProjectCfgMap[projectCfgName]; + } - pos++; - } + if(genericProjectCfg) { + index = line.Find(wxT("PROP Intermediate_Dir")); + if(index != wxNOT_FOUND) { + wxString intermediateDirectory = line.Mid(index + 21).Trim().Trim(false); + intermediateDirectory.Replace(wxT("\\"), wxT("/")); + intermediateDirectory.Replace(wxT("\""), wxT("")); + intermediateDirectory.Replace(wxT(" "), wxT("_")); + + genericProjectCfg->intermediateDirectory = wxT("./") + intermediateDirectory; + } - preCompiledHeader = word; - } else { - pos++; - } + index = line.Find(wxT("ADD CPP")); + if(index != wxNOT_FOUND) { + line = line.Mid(index + 7).Trim().Trim(false); + wxStringTokenizer options(line, wxT(" ")); + + while(options.HasMoreTokens()) { + wxString value = options.GetNextToken(); + + if(value.Contains(wxT("/I"))) { + wxString includePath = options.GetNextToken().Trim().Trim(false); + includePath.Replace(wxT("\""), wxT("")); + + genericProjectCfg->includePath += includePath + wxT(";"); + } else if(value.Contains(wxT("/D"))) { + wxString preprocessor = options.GetNextToken().Trim().Trim(false); + preprocessor.Replace(wxT("\""), wxT("")); + + genericProjectCfg->preprocessor += preprocessor + wxT(";"); + } else if(value.Contains(wxT("/Yu"))) { + wxString preCompiledHeader = value.Trim().Trim(false); + preCompiledHeader.Replace(wxT("/Yu"), wxT("")); + preCompiledHeader.Replace(wxT("\""), wxT("")); + + genericProjectCfg->preCompiledHeader += preCompiledHeader + wxT(";"); + } + } + } + + index = line.Find(wxT("ADD LIB32")); + if(index != wxNOT_FOUND) { + line = line.Mid(index + 9).Trim().Trim(false); + wxStringTokenizer options(line, wxT(" ")); + + while(options.HasMoreTokens()) { + wxString value = options.GetNextToken(); + + if(value.Contains(wxT("/out:"))) { + wxString outputFilename = value.Trim().Trim(false); + outputFilename.Replace(wxT("/out:"), wxT("")); + outputFilename.Replace(wxT("\""), wxT("")); + genericProjectCfg->outputFilename = outputFilename; + + wxFileName outputFilenameInfo(outputFilename); + genericProjectCfg->command = wxT("./") + outputFilenameInfo.GetFullName(); } + } + } + + index = line.Find(wxT("ADD LINK32")); + if(index != wxNOT_FOUND) { + line = line.Mid(index + 10).Trim().Trim(false); + wxStringTokenizer options(line, wxT(" ")); + + while(options.HasMoreTokens()) { + wxString value = options.GetNextToken(); + + if(value.Contains(wxT(".lib"))) { + wxString lib = value.Trim().Trim(false); + genericProjectCfg->libraries += lib + wxT(";"); + } else if(value.Contains(wxT("/libpath:"))) { + wxString libPath = value.Trim().Trim(false); + libPath.Replace(wxT("/libpath:"), wxT("")); + libPath.Replace(wxT("\""), wxT("")); + genericProjectCfg->libPath += libPath + wxT(";"); + } else if(value.Contains(wxT("/out:"))) { + wxString outputFilename = value.Trim().Trim(false); + outputFilename.Replace(wxT("/out:"), wxT("")); + outputFilename.Replace(wxT("\""), wxT("")); + genericProjectCfg->outputFilename = outputFilename; + + wxFileName outputFilenameInfo(outputFilename); + genericProjectCfg->command = wxT("./") + outputFilenameInfo.GetFullName(); + } + } + } + + index = line.Find(wxT("PROP Cmd_Line")); + if(index != wxNOT_FOUND) { + wxString cmdLine = line.Mid(index + 13).Trim().Trim(false); + cmdLine.Replace(wxT("\""), wxT("")); + + genericProjectCfg->enableCustomBuild = true; + genericProjectCfg->customBuildCmd = cmdLine; + } - genericProjectCfg->preprocessor = preprocessor; - genericProjectCfg->includePath = includePath; - genericProjectCfg->preCompiledHeader = preCompiledHeader; + index = line.Find(wxT("Begin Group")); + if(index != wxNOT_FOUND) { + wxString vpName = line.Mid(index + 11).Trim().Trim(false); + vpName.Replace(wxT("\""), wxT("")); + + if(virtualPath.IsEmpty()) { + virtualPath = vpName; + } else { + virtualPath += wxT("/") + vpName; } + } - index = line.Find(wxT("ADD LINK32")); - if(index != wxNOT_FOUND) { - int begin = index + 10; - int end = line.Find(wxT("/")) - 1; - line = line.SubString(begin, end).Trim().Trim(false); + index = line.Find(wxT("End Group")); + if(index != wxNOT_FOUND) { + int posSeparator = virtualPath.Find(wxT("/")); - wxString libraries = wxT(""); - wxString libPath = wxT(""); - wxStringTokenizer libs(line, wxT(" ")); + if(posSeparator == wxNOT_FOUND) { + virtualPath = wxT(""); + } else { + virtualPath = virtualPath.Remove(posSeparator); + } + } - while(libs.HasMoreTokens()) { - wxString lib = libs.GetNextToken(); - index = static_cast(lib.find_last_of(wxT("\\"))); - if(index != wxNOT_FOUND) { - wxString include = lib.SubString(0, index); - lib = lib.Mid(index + 1); - libPath += include + wxT(";"); - libraries += lib + wxT(";"); - } else { - libraries += lib + wxT(";"); - } + index = line.Find(wxT("Begin Source File")); + if(index != wxNOT_FOUND) { + GenericProjectFilePtr genericProjectFile; + + while(!projectFIS.Eof()) { + line = projectTIS.ReadLine(); + + int index = line.Find(wxT("\"$(CFG)\" == ")); + if(index != wxNOT_FOUND) { + wxString projectCfgName = line.Mid(index + 12).Trim().Trim(false); + projectCfgName.Replace(genericProjectData[wxT("projectName")] + wxT(" - "), wxT("")); + projectCfgName.Replace(wxT("\""), wxT("")); + projectCfgName.Replace(wxT(" "), wxT("_")); + + genericProjectCfg = genericProjectCfgMap[projectCfgName]; } + + index = line.Find(wxT("SOURCE=")); + if(index != wxNOT_FOUND) { + wxString filename = line.Mid(index + 7).Trim().Trim(false); + filename.Replace(wxT("\""), wxT("")); + filename.Replace(wxT("\\"), wxT("/")); - genericProjectCfg->libraries = libraries; - genericProjectCfg->libPath = libPath; - break; - } + genericProjectFile = std::make_shared(); + genericProjectFile->name = filename; + genericProjectFile->vpath = virtualPath; - index = line.Find(wxT("!ENDIF")); - if(index != wxNOT_FOUND) - break; - } + genericProject->files.push_back(genericProjectFile); + } + + index = line.Find(wxT("PROP Exclude_From_Build")); + if(index != wxNOT_FOUND) { + wxString excludeValue = line.Mid(index + 23).Trim().Trim(false); + if(genericProjectFile && excludeValue == wxT("1")) { + genericProjectCfg->excludeFiles.push_back(genericProjectFile); + } + } + + index = line.Find(wxT("Begin Custom Build")); + if(index != wxNOT_FOUND) { + while(!projectFIS.Eof()) { + line = projectTIS.ReadLine(); - genericProject->cfgs.push_back(genericProjectCfg); - } + index = line.Find(wxT("=")); + if(index != wxNOT_FOUND) { + wxStringTokenizer keyValue(line, wxT("=")); + wxString key = keyValue.GetNextToken().Trim().Trim(false); + wxString value = keyValue.GetNextToken().Trim().Trim(false); + genericProjectCfg->envVars[key] = value; + } - index = line.Find(wxT("Begin Group")); - if(index != wxNOT_FOUND) { - virtualPath = line.Mid(index + 11).Trim().Trim(false); - virtualPath.Replace(wxT("\""), wxT("")); - } + index = line.Find(wxT("\t")); + if(index != wxNOT_FOUND) { + wxString command = line; + command.Replace(wxT("\t"), wxT("")); - index = line.Find(wxT("SOURCE=")); - if(index != wxNOT_FOUND) { - wxString filename = line.Mid(index + 7).Trim().Trim(false); - filename.Replace(wxT("\\"), wxT("/")); + if(!command.IsEmpty()) { + genericProjectCfg->preBuildCommands.push_back(command); + } + } - GenericProjectFilePtr genericProjectFile = std::make_shared(); - genericProjectFile->name = filename; - genericProjectFile->vpath = virtualPath; + index = line.Find(wxT("End Custom Build")); + if(index != wxNOT_FOUND) + break; + } + } + + index = line.Find(wxT("End Source File")); + if(index != wxNOT_FOUND) + break; + } + } + } + } - genericProject->files.push_back(genericProjectFile); + for(std::pair genericProjectCfg : genericProjectCfgMap) { + if(genericProjectCfg.second) { + genericProject->cfgs.push_back(genericProjectCfg.second); } } @@ -396,6 +499,7 @@ wxXmlNode* root = projectDoc.GetRoot(); wxXmlNode* vspChild = root->GetChildren(); + std::map genericProjectCfgMap; while(vspChild) { if(vspChild->GetName() == wxT("Configurations")) { wxXmlNode* confChild = vspChild->GetChildren(); @@ -518,6 +622,54 @@ genericProjectCfg->command = wxT("./") + outputFilenameInfo.GetFullName(); } } + + if(toolChild->GetAttribute(wxT("Name")) == wxT("VCPreBuildEventTool")) { + if(toolChild->HasAttribute(wxT("CommandLine"))) { + wxString commandLine = toolChild->GetAttribute(wxT("CommandLine")); + if(!commandLine.IsEmpty()) { + genericProjectCfg->preBuildCommands.push_back(commandLine); + } + } + } + + if(toolChild->GetAttribute(wxT("Name")) == wxT("VCPostBuildEventTool")) { + if(toolChild->HasAttribute(wxT("CommandLine"))) { + wxString commandLine = toolChild->GetAttribute(wxT("CommandLine")); + if(!commandLine.IsEmpty()) { + genericProjectCfg->postBuildCommands.push_back(commandLine); + } + } + } + + if(toolChild->GetAttribute(wxT("Name")) == wxT("VCNMakeTool")) { + if(toolChild->HasAttribute(wxT("BuildCommandLine"))) { + wxString buildCommandLine = toolChild->GetAttribute(wxT("BuildCommandLine")); + if(!buildCommandLine.IsEmpty()) { + if(!genericProjectCfg->enableCustomBuild) + genericProjectCfg->enableCustomBuild = true; + + genericProjectCfg->customBuildCmd = buildCommandLine; + } + } + + if(toolChild->HasAttribute(wxT("ReBuildCommandLine"))) { + wxString reBuildCommandLine = toolChild->GetAttribute(wxT("ReBuildCommandLine")); + if(!reBuildCommandLine.IsEmpty()) { + if(!genericProjectCfg->enableCustomBuild) + genericProjectCfg->enableCustomBuild = true; + genericProjectCfg->customRebuildCmd = reBuildCommandLine; + } + } + + if(toolChild->HasAttribute(wxT("CleanCommandLine"))) { + wxString cleanCommandLine = toolChild->GetAttribute(wxT("CleanCommandLine")); + if(!cleanCommandLine.IsEmpty()) { + if(!genericProjectCfg->enableCustomBuild) + genericProjectCfg->enableCustomBuild = true; + genericProjectCfg->customCleanCmd = cleanCommandLine; + } + } + } } toolChild = toolChild->GetNext(); @@ -526,6 +678,7 @@ if(genericProject->cfgType != genericProjectCfg->type) genericProject->cfgType = genericProjectCfg->type; + genericProjectCfgMap[projectCfgName] = genericProjectCfg; genericProject->cfgs.push_back(genericProjectCfg); } @@ -535,31 +688,7 @@ if(vspChild->GetName() == wxT("Files")) { wxXmlNode* filterChild = vspChild->GetChildren(); - - while(filterChild) { - if(filterChild->GetName() == wxT("Filter")) { - wxString virtualPath = filterChild->GetAttribute(wxT("Name")); - - wxXmlNode* fileChild = filterChild->GetChildren(); - - while(fileChild) { - if(fileChild->GetName() == wxT("File")) { - wxString filename = fileChild->GetAttribute(wxT("RelativePath")); - filename.Replace(wxT("\\"), wxT("/")); - - GenericProjectFilePtr genericProjectFile = std::make_shared(); - genericProjectFile->name = filename; - genericProjectFile->vpath = virtualPath; - - genericProject->files.push_back(genericProjectFile); - } - - fileChild = fileChild->GetNext(); - } - } - - filterChild = filterChild->GetNext(); - } + AddFilesVC7(filterChild, genericProject, genericProjectCfgMap, wxT("")); } vspChild = vspChild->GetNext(); @@ -586,13 +715,13 @@ genericProject->deps.Add(projectNameDep); } + std::map genericProjectCfgMap; + wxXmlDocument projectDoc; if(projectDoc.Load(projectInfo.GetFullPath())) { wxXmlNode* root = projectDoc.GetRoot(); wxXmlNode* projectChild = root->GetChildren(); - std::map GenericProjectCfgMap; - while(projectChild) { if(projectChild->GetName() == wxT("ItemGroup") && projectChild->HasAttribute(wxT("Label")) && projectChild->GetAttribute(wxT("Label")) == wxT("ProjectConfigurations")) { @@ -625,12 +754,48 @@ genericProjectCfg->envVars[wxT("VS_ProjectName")] = genericProject->name; genericProjectCfg->envVars[wxT("VS_ProjectDir")] = projectDir; - GenericProjectCfgMap[projectCfgKey] = genericProjectCfg; + genericProjectCfgMap[projectCfgKey] = genericProjectCfg; projectConfiguration = projectConfiguration->GetNext(); } } + if(projectChild->GetName() == wxT("ItemGroup")) { + wxXmlNode* itemGroupChild = projectChild->GetChildren(); + + while(itemGroupChild) { + if(itemGroupChild->GetName() == wxT("CustomBuild")) { + wxXmlNode* customBuildChild = itemGroupChild->GetChildren(); + + while(customBuildChild) { + if(customBuildChild->GetName() == wxT("Command") && + customBuildChild->HasAttribute("Condition")) { + wxString elemCondition = customBuildChild->GetAttribute("Condition"); + wxString commandLine = customBuildChild->GetNodeContent(); + wxString projectCfgKey = ExtractProjectCfgName(wxT(""), elemCondition); + + GenericProjectCfgPtr genericProjectCfg = genericProjectCfgMap[projectCfgKey]; + + if(genericProjectCfg && !commandLine.IsEmpty()) { + genericProjectCfg->preBuildCommands.push_back(commandLine); + } + } + + customBuildChild = customBuildChild->GetNext(); + } + } + + if(itemGroupChild->GetName() == wxT("ClInclude") || itemGroupChild->GetName() == wxT("ClCompile") || + itemGroupChild->GetName() == wxT("None") || itemGroupChild->GetName() == wxT("Text") || + itemGroupChild->GetName() == wxT("ResourceCompile") || + itemGroupChild->GetName() == wxT("Image") || itemGroupChild->GetName() == wxT("CustomBuild")) { + AddFilesVC11(itemGroupChild, genericProject, genericProjectCfgMap); + } + + itemGroupChild = itemGroupChild->GetNext(); + } + } + if(projectChild->GetName() == wxT("PropertyGroup")) { wxXmlNode* propertyGroupChild = projectChild->GetChildren(); @@ -645,7 +810,7 @@ wxString outputFilename; - GenericProjectCfgPtr genericProjectCfg = GenericProjectCfgMap[projectCfgKey]; + GenericProjectCfgPtr genericProjectCfg = genericProjectCfgMap[projectCfgKey]; if(genericProjectCfg) { if(configurationType == wxT("StaticLibrary")) { @@ -669,7 +834,7 @@ intermediateDirectory.Replace(wxT("\\"), wxT("/")); intermediateDirectory = ReplaceDefaultEnvVars(intermediateDirectory); - GenericProjectCfgPtr genericProjectCfg = GenericProjectCfgMap[projectCfgKey]; + GenericProjectCfgPtr genericProjectCfg = genericProjectCfgMap[projectCfgKey]; if(genericProjectCfg) { genericProjectCfg->intermediateDirectory = intermediateDirectory.SubString(0, intermediateDirectory.Length() - 1); @@ -685,11 +850,59 @@ outDir.Replace(wxT("\\"), wxT("/")); outDir = ReplaceDefaultEnvVars(outDir); - GenericProjectCfgPtr genericProjectCfg = GenericProjectCfgMap[projectCfgKey]; + GenericProjectCfgPtr genericProjectCfg = genericProjectCfgMap[projectCfgKey]; if(genericProjectCfg) { genericProjectCfg->envVars[wxT("VS_OutDir")] = outDir; } } + + if(propertyGroupChild->GetName() == wxT("NMakeBuildCommandLine")) { + wxString elemCondition = propertyGroupChild->GetAttribute("Condition"); + wxString projectCfgKey = ExtractProjectCfgName(parentCondition, elemCondition); + + wxString nMakeBuildCommandLine = propertyGroupChild->GetNodeContent(); + nMakeBuildCommandLine = ReplaceDefaultEnvVars(nMakeBuildCommandLine); + + GenericProjectCfgPtr genericProjectCfg = genericProjectCfgMap[projectCfgKey]; + if(genericProjectCfg && !nMakeBuildCommandLine.IsEmpty()) { + if(!genericProjectCfg->enableCustomBuild) + genericProjectCfg->enableCustomBuild = true; + + genericProjectCfg->customBuildCmd = nMakeBuildCommandLine; + } + } + + if(propertyGroupChild->GetName() == wxT("NMakeReBuildCommandLine")) { + wxString elemCondition = propertyGroupChild->GetAttribute("Condition"); + wxString projectCfgKey = ExtractProjectCfgName(parentCondition, elemCondition); + + wxString nMakeReBuildCommandLine = propertyGroupChild->GetNodeContent(); + nMakeReBuildCommandLine = ReplaceDefaultEnvVars(nMakeReBuildCommandLine); + + GenericProjectCfgPtr genericProjectCfg = genericProjectCfgMap[projectCfgKey]; + if(genericProjectCfg && !nMakeReBuildCommandLine.IsEmpty()) { + if(!genericProjectCfg->enableCustomBuild) + genericProjectCfg->enableCustomBuild = true; + + genericProjectCfg->customRebuildCmd = nMakeReBuildCommandLine; + } + } + + if(propertyGroupChild->GetName() == wxT("NMakeCleanCommandLine")) { + wxString elemCondition = propertyGroupChild->GetAttribute("Condition"); + wxString projectCfgKey = ExtractProjectCfgName(parentCondition, elemCondition); + + wxString nMakeCleanCommandLine = propertyGroupChild->GetNodeContent(); + nMakeCleanCommandLine = ReplaceDefaultEnvVars(nMakeCleanCommandLine); + + GenericProjectCfgPtr genericProjectCfg = genericProjectCfgMap[projectCfgKey]; + if(genericProjectCfg && !nMakeCleanCommandLine.IsEmpty()) { + if(!genericProjectCfg->enableCustomBuild) + genericProjectCfg->enableCustomBuild = true; + + genericProjectCfg->customCleanCmd = nMakeCleanCommandLine; + } + } propertyGroupChild = propertyGroupChild->GetNext(); } @@ -713,7 +926,7 @@ preprocessorDefinitions.Replace(wxT("%(PreprocessorDefinitions)"), wxT("")); preprocessorDefinitions = ReplaceDefaultEnvVars(preprocessorDefinitions); - GenericProjectCfgPtr genericProjectCfg = GenericProjectCfgMap[projectCfgKey]; + GenericProjectCfgPtr genericProjectCfg = genericProjectCfgMap[projectCfgKey]; if(genericProjectCfg) { genericProjectCfg->preprocessor = preprocessorDefinitions; } @@ -725,7 +938,7 @@ wxString precompiledHeaderFile = clcompileChild->GetNodeContent(); - GenericProjectCfgPtr genericProjectCfg = GenericProjectCfgMap[projectCfgKey]; + GenericProjectCfgPtr genericProjectCfg = genericProjectCfgMap[projectCfgKey]; if(genericProjectCfg) { genericProjectCfg->preCompiledHeader = precompiledHeaderFile; } @@ -740,7 +953,7 @@ additionalIncludeDirectories.Replace(wxT("\\"), wxT("/")); additionalIncludeDirectories = ReplaceDefaultEnvVars(additionalIncludeDirectories); - GenericProjectCfgPtr genericProjectCfg = GenericProjectCfgMap[projectCfgKey]; + GenericProjectCfgPtr genericProjectCfg = genericProjectCfgMap[projectCfgKey]; if(genericProjectCfg) { genericProjectCfg->includePath = additionalIncludeDirectories; } @@ -755,35 +968,35 @@ while(linkChild) { if(linkChild->GetName() == wxT("AdditionalDependencies")) { - wxString elemCondition = projectChild->GetAttribute("Condition"); + wxString elemCondition = linkChild->GetAttribute("Condition"); wxString projectCfgKey = ExtractProjectCfgName(parentCondition, elemCondition); wxString additionalDependencies = linkChild->GetNodeContent(); additionalDependencies.Replace(wxT("%(AdditionalDependencies)"), wxT("")); additionalDependencies = ReplaceDefaultEnvVars(additionalDependencies); - GenericProjectCfgPtr genericProjectCfg = GenericProjectCfgMap[projectCfgKey]; + GenericProjectCfgPtr genericProjectCfg = genericProjectCfgMap[projectCfgKey]; if(genericProjectCfg) { genericProjectCfg->libraries = additionalDependencies; } } if(linkChild->GetName() == wxT("AdditionalLibraryDirectories")) { - wxString elemCondition = projectChild->GetAttribute("Condition"); + wxString elemCondition = linkChild->GetAttribute("Condition"); wxString projectCfgKey = ExtractProjectCfgName(parentCondition, elemCondition); wxString additionalLibraryDirectories = linkChild->GetNodeContent(); additionalLibraryDirectories.Replace(wxT("%(AdditionalLibraryDirectories)"), wxT("")); additionalLibraryDirectories = ReplaceDefaultEnvVars(additionalLibraryDirectories); - GenericProjectCfgPtr genericProjectCfg = GenericProjectCfgMap[projectCfgKey]; + GenericProjectCfgPtr genericProjectCfg = genericProjectCfgMap[projectCfgKey]; if(genericProjectCfg) { genericProjectCfg->libPath = additionalLibraryDirectories; } } if(linkChild->GetName() == wxT("OutputFile")) { - wxString elemCondition = projectChild->GetAttribute("Condition"); + wxString elemCondition = linkChild->GetAttribute("Condition"); wxString projectCfgKey = ExtractProjectCfgName(parentCondition, elemCondition); wxString outputFile = linkChild->GetNodeContent(); @@ -793,7 +1006,7 @@ wxFileName outputFilenameInfo(outputFile); - GenericProjectCfgPtr genericProjectCfg = GenericProjectCfgMap[projectCfgKey]; + GenericProjectCfgPtr genericProjectCfg = genericProjectCfgMap[projectCfgKey]; if(genericProjectCfg) { genericProjectCfg->outputFilename = outputFile; genericProjectCfg->command = wxT("./") + outputFilenameInfo.GetFullName(); @@ -809,7 +1022,7 @@ while(LibChild) { if(LibChild->GetName() == wxT("OutputFile")) { - wxString elemCondition = projectChild->GetAttribute("Condition"); + wxString elemCondition = LibChild->GetAttribute("Condition"); wxString projectCfgKey = ExtractProjectCfgName(parentCondition, elemCondition); wxString outputFile = LibChild->GetNodeContent(); @@ -819,7 +1032,7 @@ wxFileName outputFilenameInfo(outputFile); - GenericProjectCfgPtr genericProjectCfg = GenericProjectCfgMap[projectCfgKey]; + GenericProjectCfgPtr genericProjectCfg = genericProjectCfgMap[projectCfgKey]; if(genericProjectCfg) { genericProjectCfg->outputFilename = outputFile; genericProjectCfg->command = wxT("./") + outputFilenameInfo.GetFullName(); @@ -830,39 +1043,56 @@ } } - itemDefinitionGroupChild = itemDefinitionGroupChild->GetNext(); - } - } - - if(!filterInfo.Exists()) { - if(projectChild->GetName() == wxT("ItemGroup")) { - wxXmlNode* itemChild = projectChild->GetChildren(); - - while(itemChild) { - if(itemChild->GetName() == wxT("ClInclude") || itemChild->GetName() == wxT("ClCompile") || - itemChild->GetName() == wxT("None") || itemChild->GetName() == wxT("Text") || - itemChild->GetName() == wxT("ResourceCompile")) { + if(itemDefinitionGroupChild->GetName() == wxT("PreBuildEvent")) { + wxXmlNode* preBuildEventChild = itemDefinitionGroupChild->GetChildren(); - wxString virtualPath = ""; - wxString filename = itemChild->GetAttribute("Include"); - filename.Replace(wxT("\\"), wxT("/")); + while(preBuildEventChild) { + if(preBuildEventChild->GetName() == wxT("Command")) { + wxString elemCondition = preBuildEventChild->GetAttribute("Condition"); + wxString projectCfgKey = ExtractProjectCfgName(parentCondition, elemCondition); - GenericProjectFilePtr genericProjectFile = std::make_shared(); - genericProjectFile->name = filename; - genericProjectFile->vpath = virtualPath; + wxString command = preBuildEventChild->GetNodeContent(); + if(!command.IsEmpty()) { + GenericProjectCfgPtr genericProjectCfg = genericProjectCfgMap[projectCfgKey]; + if(genericProjectCfg) { + genericProjectCfg->preBuildCommands.push_back(command); + } + } + } - genericProject->files.push_back(genericProjectFile); + preBuildEventChild = preBuildEventChild->GetNext(); } + } + + if(itemDefinitionGroupChild->GetName() == wxT("PostBuildEvent")) { + wxXmlNode* postBuildEventChild = itemDefinitionGroupChild->GetChildren(); - itemChild = itemChild->GetNext(); + while(postBuildEventChild) { + if(postBuildEventChild->GetName() == wxT("Command")) { + wxString elemCondition = postBuildEventChild->GetAttribute("Condition"); + wxString projectCfgKey = ExtractProjectCfgName(parentCondition, elemCondition); + + wxString command = postBuildEventChild->GetNodeContent(); + if(!command.IsEmpty()) { + GenericProjectCfgPtr genericProjectCfg = genericProjectCfgMap[projectCfgKey]; + if(genericProjectCfg) { + genericProjectCfg->postBuildCommands.push_back(command); + } + } + } + + postBuildEventChild = postBuildEventChild->GetNext(); + } } + + itemDefinitionGroupChild = itemDefinitionGroupChild->GetNext(); } } projectChild = projectChild->GetNext(); } - for(std::pair genericProjectCfg : GenericProjectCfgMap) { + for(std::pair genericProjectCfg : genericProjectCfgMap) { if(genericProjectCfg.second) { genericProject->cfgs.push_back(genericProjectCfg.second); } @@ -872,40 +1102,25 @@ wxXmlDocument filterDoc; if(filterDoc.Load(filterInfo.GetFullPath())) { wxXmlNode* root = filterDoc.GetRoot(); - wxXmlNode* itemGroupChild = root->GetChildren(); - - while(itemGroupChild) { - wxXmlNode* itemChild = itemGroupChild->GetChildren(); + wxXmlNode* projectChild = root->GetChildren(); - while(itemChild) { - if(itemChild->GetName() == wxT("ClInclude") || itemChild->GetName() == wxT("ClCompile") || - itemChild->GetName() == wxT("None") || itemChild->GetName() == wxT("Text") || - itemChild->GetName() == wxT("ResourceCompile")) { - wxString virtualPath = ""; - wxString filename = itemChild->GetAttribute("Include"); - filename.Replace(wxT("\\"), wxT("/")); + while(projectChild) { + if(projectChild->GetName() == wxT("ItemGroup")) { + wxXmlNode* itemGroupChild = projectChild->GetChildren(); - wxXmlNode* filterChild = itemChild->GetChildren(); - if(filterChild) { - if(filterChild->GetName() == wxT("Filter")) { - wxString content = filterChild->GetNodeContent(); - if(!content.IsEmpty()) { - virtualPath = content; - } - } + while(itemGroupChild) { + if(itemGroupChild->GetName() == wxT("ClInclude") || itemGroupChild->GetName() == wxT("ClCompile") || + itemGroupChild->GetName() == wxT("None") || itemGroupChild->GetName() == wxT("Text") || + itemGroupChild->GetName() == wxT("ResourceCompile") || + itemGroupChild->GetName() == wxT("Image") || itemGroupChild->GetName() == wxT("CustomBuild")) { + AddFilesVC11(itemGroupChild, genericProject, genericProjectCfgMap); } - GenericProjectFilePtr genericProjectFile = std::make_shared(); - genericProjectFile->name = filename; - genericProjectFile->vpath = virtualPath; - - genericProject->files.push_back(genericProjectFile); + itemGroupChild = itemGroupChild->GetNext(); } - - itemChild = itemChild->GetNext(); } - itemGroupChild = itemGroupChild->GetNext(); + projectChild = projectChild->GetNext(); } } @@ -934,4 +1149,124 @@ tmp.Replace(wxT("$(ProjectDir)"), wxT("$(VS_ProjectDir)")); return tmp; +} + +void VisualCppImporter::AddFilesVC7(wxXmlNode* filterChild, + GenericProjectPtr genericProject, + std::map& genericProjectCfgMap, + wxString preVirtualPath) +{ + while(filterChild) { + if(filterChild->GetName() == wxT("Filter")) { + wxString virtualPath = filterChild->GetAttribute(wxT("Name")); + wxXmlNode* fileChild = filterChild->GetChildren(); + + if(!preVirtualPath.IsEmpty()) { + virtualPath = preVirtualPath + wxT("/") + virtualPath; + } + + AddFilesVC7(fileChild, genericProject, genericProjectCfgMap, virtualPath); + } else if(filterChild->GetName() == wxT("File")) { + wxString filename = filterChild->GetAttribute(wxT("RelativePath")); + filename.Replace(wxT("\\"), wxT("/")); + + GenericProjectFilePtr genericProjectFile = std::make_shared(); + genericProjectFile->name = filename; + genericProjectFile->vpath = preVirtualPath; + + genericProject->files.push_back(genericProjectFile); + + wxXmlNode* fileConfChild = filterChild->GetChildren(); + + while(fileConfChild) { + if(fileConfChild->GetName() == wxT("FileConfiguration")) { + wxString name = fileConfChild->GetAttribute(wxT("Name")); + wxString excludedFromBuild = fileConfChild->GetAttribute(wxT("ExcludedFromBuild")); + wxString projectCfgName = name; + projectCfgName.Replace(wxT("|"), wxT("_")); + + if(excludedFromBuild == wxT("true")) { + GenericProjectCfgPtr genericProjectCfg = genericProjectCfgMap[projectCfgName]; + if(genericProjectCfg) { + genericProjectCfg->excludeFiles.push_back(genericProjectFile); + } + } + + wxXmlNode* toolChild = fileConfChild->GetChildren(); + + while(toolChild) { + if(toolChild->GetName() == wxT("Tool")) { + if(toolChild->GetAttribute(wxT("Name")) == wxT("VCCustomBuildTool")) { + wxString commandLine = toolChild->GetAttribute(wxT("CommandLine")); + + GenericProjectCfgPtr genericProjectCfg = genericProjectCfgMap[projectCfgName]; + if(genericProjectCfg && !commandLine.IsEmpty()) { + genericProjectCfg->preBuildCommands.push_back(commandLine); + } + } + } + + toolChild = toolChild->GetNext(); + } + } + + fileConfChild = fileConfChild->GetNext(); + } + } + + filterChild = filterChild->GetNext(); + } +} + +void VisualCppImporter::AddFilesVC11(wxXmlNode* itemGroupChild, + GenericProjectPtr genericProject, + std::map& genericProjectCfgMap) +{ + wxString filename = itemGroupChild->GetAttribute("Include"); + filename.Replace(wxT("\\"), wxT("/")); + + GenericProjectFilePtr genericProjectFile = FindProjectFileByName(genericProject, filename); + + if(genericProjectFile) { + genericProjectFile->name = filename; + } else { + genericProjectFile = std::make_shared(); + genericProjectFile->name = filename; + + genericProject->files.push_back(genericProjectFile); + } + + wxXmlNode* otherChild = itemGroupChild->GetChildren(); + while(otherChild) { + if(otherChild->GetName() == wxT("Filter")) { + wxString content = otherChild->GetNodeContent(); + if(!content.IsEmpty()) { + genericProjectFile->vpath = content; + } + } + + if(otherChild->GetName() == wxT("ExcludedFromBuild")) { + wxString elemCondition = otherChild->GetAttribute("Condition"); + wxString projectCfgKey = ExtractProjectCfgName(wxT(""), elemCondition); + wxString content = otherChild->GetNodeContent(); + + GenericProjectCfgPtr genericProjectCfg = genericProjectCfgMap[projectCfgKey]; + + if(genericProjectCfg && content == wxT("true")) { + genericProjectCfg->excludeFiles.push_back(genericProjectFile); + } + } + + otherChild = otherChild->GetNext(); + } +} + +GenericProjectFilePtr VisualCppImporter::FindProjectFileByName(GenericProjectPtr genericProject, wxString filename) +{ + for(GenericProjectFilePtr projectFile : genericProject->files) { + if(projectFile->name == filename) + return projectFile; + } + + return nullptr; } \ No newline at end of file diff -Nru codelite-8.0.1+dfsg2/Plugin/VisualCppImporter.h codelite-9.0+dfsg/Plugin/VisualCppImporter.h --- codelite-8.0.1+dfsg2/Plugin/VisualCppImporter.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/VisualCppImporter.h 2015-10-11 13:56:07.000000000 +0000 @@ -3,6 +3,7 @@ #include #include +#include #include "GenericImporter.h" class VisualCppImporter : public GenericImporter @@ -20,7 +21,14 @@ void GenerateFromProjectVC11(GenericWorkspacePtr genericWorkspace, GenericProjectDataType& genericProjectData); wxString ExtractProjectCfgName(const wxString& parentCondition, const wxString& elemCondition); wxString ReplaceDefaultEnvVars(const wxString& str); - + void AddFilesVC7(wxXmlNode* filterChild, + GenericProjectPtr genericProject, + std::map& genericProjectCfgMap, + wxString preVirtualPath); + void AddFilesVC11(wxXmlNode* itemGroupChild, + GenericProjectPtr genericProject, + std::map& genericProjectCfgMap); + GenericProjectFilePtr FindProjectFileByName(GenericProjectPtr genericProject, wxString filename); wxFileName wsInfo; wxString extension; long version; diff -Nru codelite-8.0.1+dfsg2/Plugin/windowstack.cpp codelite-9.0+dfsg/Plugin/windowstack.cpp --- codelite-8.0.1+dfsg2/Plugin/windowstack.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/windowstack.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -22,157 +22,97 @@ // ////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// - #include "windowstack.h" +#include "windowstack.h" -WindowStack::WindowStack(wxWindow *parent, wxWindowID id) -: wxPanel(parent, id) -, m_selection(NULL) +WindowStack::WindowStack(wxWindow* parent, wxWindowID id) + : wxPanel(parent, id) + , m_selection(NULL) { - m_mainSizer = new wxBoxSizer(wxVERTICAL); - SetSizer(m_mainSizer); - m_windows.clear(); + m_mainSizer = new wxBoxSizer(wxVERTICAL); + SetSizer(m_mainSizer); + m_windows.clear(); } -WindowStack::~WindowStack() -{ - Clear(); -} +WindowStack::~WindowStack() { Clear(); } -void WindowStack::DoSelect(wxWindow *win, const wxString &key) +void WindowStack::DoSelect(wxWindow* win) { Freeze(); - //remove the old selection - if(m_selection){ + // remove the old selection + if(m_selection) { m_mainSizer->Detach(m_selection); m_selection->Hide(); } - if (win) { + if(win) { m_mainSizer->Add(win, 1, wxEXPAND); win->Show(); m_selection = win; - m_selectionKey = key; } else { m_selection = NULL; - m_selectionKey.Clear(); } m_mainSizer->Layout(); Thaw(); } -void WindowStack::Add(wxWindow *win, const wxString &key) -{ - if(!win || key.IsEmpty()){ - return; - } - - //add the new item to the map - m_windows[key] = win; - win->Hide(); -} - -void WindowStack::Select(const wxString &key) -{ - wxWindow *win = Find(key); - if (win) { - DoSelect(win, key); - } -} - void WindowStack::Select(wxWindow* win) { - wxString key = Find(win); - if (!key.IsEmpty()) { - DoSelect(win, key); - } + if(!Contains(win)) return; + DoSelect(win); } -void WindowStack::SelectNone() -{ - DoSelect(NULL, wxEmptyString); -} +void WindowStack::SelectNone() { DoSelect(NULL); } void WindowStack::Clear() { SelectNone(); m_selection = NULL; - m_selectionKey.Clear(); - std::map::iterator iter = m_windows.begin(); - for (; iter != m_windows.end(); iter++) { - iter->second->Destroy(); + std::set::iterator iter = m_windows.begin(); + for(; iter != m_windows.end(); iter++) { + (*iter)->Destroy(); } m_windows.clear(); } -wxWindow* WindowStack::Remove(const wxString &key) +bool WindowStack::Remove(wxWindow* win) { - std::map::iterator iter = m_windows.find(key); - if(iter == m_windows.end()){ - return NULL; - } - - wxWindow *win = iter->second; - if(!win){ - return NULL; - } + if(!Contains(win)) return false; + m_windows.erase(win); - if (m_selection == win) { + if(win == m_selection) { + //GetParent()->Freeze(); + //m_mainSizer->Detach(m_selection); + //m_mainSizer->Layout(); + //m_selection = NULL; + //GetParent()->Thaw(); SelectNone(); } - - m_windows.erase(iter); - - return win; + return true; } -wxString WindowStack::Remove(wxWindow* win) +bool WindowStack::Delete(wxWindow* win) { - wxString key = Find(win); - if (!key.IsEmpty()) { - Remove(key); - } - return key; + if(!Remove(win)) return false; + win->Destroy(); + return true; } -void WindowStack::Delete(const wxString &key) +bool WindowStack::Add(wxWindow* win, bool select) { - wxWindow *win = Remove(key); - if (win) { - win->Destroy(); + if(!win || Contains(win)) { + return false; } -} - -void WindowStack::Delete(wxWindow *win) -{ - wxString key = Remove(win); - if (!key.IsEmpty()) { - win->Destroy(); - } -} - -wxWindow *WindowStack::Find(const wxString &key) -{ - std::map::iterator iter = m_windows.find(key); - if(iter == m_windows.end()){ - return NULL; - } - return iter->second; -} - -wxString WindowStack::Find(wxWindow *win) -{ - for (std::map::iterator iter = m_windows.begin(); - iter != m_windows.end(); iter++) { - if (iter->second == win) - return iter->first; + win->Reparent(this); + m_windows.insert(win); + if(select) { + DoSelect(win); + } else { + win->Hide(); } - return wxEmptyString; -} - -void WindowStack::GetKeys(std::vector &keys) const + return true; +} + +bool WindowStack::Contains(wxWindow* win) { - for (std::map::const_iterator iter = m_windows.begin(); - iter != m_windows.end(); iter++) { - keys.push_back(iter->first); - } -} + return m_windows.count(win); +} diff -Nru codelite-8.0.1+dfsg2/Plugin/windowstack.h codelite-9.0+dfsg/Plugin/windowstack.h --- codelite-8.0.1+dfsg2/Plugin/windowstack.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/windowstack.h 2015-10-11 13:56:07.000000000 +0000 @@ -1,74 +1,61 @@ ////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// // -// copyright : (C) 2008 by Eran Ifrah -// file name : windowstack.h -// +// copyright : (C) 2008 by Eran Ifrah +// file name : windowstack.h +// // ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// +// A +// _____ _ _ _ _ +// / __ \ | | | | (_) | +// | / \/ ___ __| | ___| | _| |_ ___ +// | | / _ \ / _ |/ _ \ | | | __/ _ ) +// | \__/\ (_) | (_| | __/ |___| | || __/ +// \____/\___/ \__,_|\___\_____/_|\__\___| +// +// F i l e +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// ////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// - #ifndef WINDOWSTACK_H +#ifndef WINDOWSTACK_H #define WINDOWSTACK_H -#include +#include #include #include "wx/panel.h" #include "wx/sizer.h" #include "codelite_exports.h" -class WXDLLIMPEXP_SDK WindowStack : public wxPanel { - std::map m_windows; - wxBoxSizer *m_mainSizer; - wxWindow *m_selection; - wxString m_selectionKey; +class WXDLLIMPEXP_SDK WindowStack : public wxPanel +{ + std::set m_windows; + wxBoxSizer* m_mainSizer; + wxWindow* m_selection; - void DoSelect(wxWindow *win, const wxString &key); + void DoSelect(wxWindow* win); public: - WindowStack(wxWindow *parent, wxWindowID id = wxID_ANY); + WindowStack(wxWindow* parent, wxWindowID id = wxID_ANY); virtual ~WindowStack(); - - void Add(wxWindow *win, const wxString &key); - - void Select(const wxString &key); - void Select(wxWindow *win); - void SelectNone(); + bool Add(wxWindow* win, bool select); + void Select(wxWindow* win); + void SelectNone(); void Clear(); - - wxWindow *Remove(const wxString &key); - wxString Remove(wxWindow *win); - - void Delete(const wxString &key); - void Delete(wxWindow *win); - - wxWindow *Find(const wxString &key); - wxString Find(wxWindow *win); - - void GetKeys(std::vector &keys) const; - - int Count() const { return m_windows.size(); } - bool IsEmpty() const { return Count() == 0; } - - wxWindow *GetSelected() { return m_selection; } - const wxString &GetSelectedKey() const { return m_selectionKey; } -}; -#endif //WINDOWSTACK_H + bool Remove(wxWindow* win); + bool Delete(wxWindow* win); + bool Contains(wxWindow* win); + + int GetPageCount() const { return m_windows.size(); } + bool IsEmpty() const { return GetPageCount() == 0; } + wxWindow* GetSelected() { return m_selection; } +}; +#endif // WINDOWSTACK_H diff -Nru codelite-8.0.1+dfsg2/Plugin/workspace.cpp codelite-9.0+dfsg/Plugin/workspace.cpp --- codelite-8.0.1+dfsg2/Plugin/workspace.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/workspace.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -43,20 +43,22 @@ #include "cl_command_event.h" #include #include "codelite_events.h" +#include "localworkspace.h" -Workspace::Workspace() +clCxxWorkspace::clCxxWorkspace() : m_saveOnExit(true) { + SetWorkspaceType(_("C++")); } -Workspace::~Workspace() +clCxxWorkspace::~clCxxWorkspace() { if(m_saveOnExit && m_doc.IsOk()) { SaveXmlFile(); } } -wxString Workspace::GetName() const +wxString clCxxWorkspace::GetName() const { if(m_doc.IsOk()) { return XmlUtils::ReadString(m_doc.GetRoot(), wxT("Name")); @@ -64,7 +66,7 @@ return wxEmptyString; } -void Workspace::CloseWorkspace() +void clCxxWorkspace::CloseWorkspace() { m_buildMatrix.Reset(NULL); if(m_doc.IsOk()) { @@ -79,7 +81,7 @@ TagsManagerST::Get()->CloseDatabase(); } -bool Workspace::OpenReadOnly(const wxString& fileName, wxString& errMsg) +bool clCxxWorkspace::OpenReadOnly(const wxString& fileName, wxString& errMsg) { m_buildMatrix.Reset(NULL); wxFileName workSpaceFile(fileName); @@ -115,7 +117,7 @@ return true; } -bool Workspace::OpenWorkspace(const wxString& fileName, wxString& errMsg) +bool clCxxWorkspace::OpenWorkspace(const wxString& fileName, wxString& errMsg) { CloseWorkspace(); m_buildMatrix.Reset(NULL); @@ -157,6 +159,16 @@ projectPath.c_str()); removedChildren.push_back(child); } + } else if((child->GetName() == wxT("WorkspaceParserPaths")) || + (child->GetName() == wxT("WorkspaceParserMacros"))) { + wxString swtlw = wxEmptyString; + swtlw = XmlUtils::ReadString(m_doc.GetRoot(), "SWTLW"); + if(swtlw.CmpNoCase("yes") == 0) { + LocalWorkspaceST::Get()->SetParserFlags(LocalWorkspaceST::Get()->GetParserFlags() | + LocalWorkspace::EnableSWTLW); + SyncToLocalWorkspaceSTParserPaths(); + SyncToLocalWorkspaceSTParserMacros(); + } } child = child->GetNext(); } @@ -175,7 +187,7 @@ // Update the build matrix DoUpdateBuildMatrix(); - + // Notify about active project changed ProjectPtr activeProject = GetActiveProject(); if(activeProject) { @@ -187,14 +199,14 @@ return true; } -BuildMatrixPtr Workspace::GetBuildMatrix() const { return m_buildMatrix; } +BuildMatrixPtr clCxxWorkspace::GetBuildMatrix() const { return m_buildMatrix; } -wxXmlNode* Workspace::GetWorkspaceEditorOptions() const +wxXmlNode* clCxxWorkspace::GetWorkspaceEditorOptions() const { return XmlUtils::FindFirstByTagName(m_doc.GetRoot(), wxT("Options")); } -void Workspace::SetWorkspaceEditorOptions(LocalOptionsConfigPtr opts) +void clCxxWorkspace::SetWorkspaceEditorOptions(LocalOptionsConfigPtr opts) { wxXmlNode* parent = m_doc.GetRoot(); wxXmlNode* oldOptions = XmlUtils::FindFirstByTagName(parent, wxT("Options")); @@ -206,7 +218,7 @@ SaveXmlFile(); } -void Workspace::SetBuildMatrix(BuildMatrixPtr mapping) +void clCxxWorkspace::SetBuildMatrix(BuildMatrixPtr mapping) { wxXmlNode* parent = m_doc.GetRoot(); wxXmlNode* oldMapping = XmlUtils::FindFirstByTagName(parent, wxT("BuildMatrix")); @@ -225,7 +237,7 @@ DoUpdateBuildMatrix(); } -bool Workspace::CreateWorkspace(const wxString& name, const wxString& path, wxString& errMsg) +bool clCxxWorkspace::CreateWorkspace(const wxString& name, const wxString& path, wxString& errMsg) { // If we have an open workspace, close it if(m_doc.IsOk()) { @@ -262,13 +274,18 @@ m_doc.GetRoot()->AddProperty(wxT("Name"), name); m_doc.GetRoot()->AddProperty(wxT("Database"), dbFileName.GetFullPath(wxPATH_UNIX)); + m_doc.GetRoot()->DeleteAttribute(wxT("SWTLW")); + if(LocalWorkspaceST::Get()->GetParserFlags() & LocalWorkspace::EnableSWTLW) { + m_doc.GetRoot()->AddProperty(wxT("SWTLW"), "Yes"); + } + SaveXmlFile(); // create an empty build matrix DoUpdateBuildMatrix(); return true; } -wxString Workspace::GetStringProperty(const wxString& propName, wxString& errMsg) +wxString clCxxWorkspace::GetStringProperty(const wxString& propName, wxString& errMsg) { if(!m_doc.IsOk()) { errMsg = wxT("No workspace open"); @@ -284,7 +301,7 @@ return rootNode->GetPropVal(propName, wxEmptyString); } -void Workspace::AddProjectToBuildMatrix(ProjectPtr prj) +void clCxxWorkspace::AddProjectToBuildMatrix(ProjectPtr prj) { if(!prj) { wxMessageBox(_("AddProjectToBuildMatrix was called with NULL project"), _("CodeLite"), wxICON_WARNING | wxOK); @@ -346,7 +363,7 @@ SetBuildMatrix(matrix); } -void Workspace::RemoveProjectFromBuildMatrix(ProjectPtr prj) +void clCxxWorkspace::RemoveProjectFromBuildMatrix(ProjectPtr prj) { BuildMatrixPtr matrix = GetBuildMatrix(); wxString selConfName = matrix->GetSelectedConfigurationName(); @@ -375,11 +392,11 @@ SetBuildMatrix(matrix); } -bool Workspace::CreateProject(const wxString& name, - const wxString& path, - const wxString& type, - bool addToBuildMatrix, - wxString& errMsg) +bool clCxxWorkspace::CreateProject(const wxString& name, + const wxString& path, + const wxString& type, + bool addToBuildMatrix, + wxString& errMsg) { if(!m_doc.IsOk()) { errMsg = wxT("No workspace open"); @@ -413,7 +430,7 @@ return true; } -ProjectPtr Workspace::FindProjectByName(const wxString& projName, wxString& errMsg) const +ProjectPtr clCxxWorkspace::FindProjectByName(const wxString& projName, wxString& errMsg) const { if(!m_doc.IsOk()) { errMsg = wxT("No workspace open"); @@ -429,9 +446,9 @@ return iter->second; } -void Workspace::GetProjectList(wxArrayString& list) +void clCxxWorkspace::GetProjectList(wxArrayString& list) const { - std::map::iterator iter = m_projects.begin(); + std::map::const_iterator iter = m_projects.begin(); for(; iter != m_projects.end(); iter++) { wxString name; name = iter->first; @@ -439,7 +456,7 @@ } } -bool Workspace::AddProject(const wxString& path, wxString& errMsg) +bool clCxxWorkspace::AddProject(const wxString& path, wxString& errMsg) { if(!m_doc.IsOk()) { errMsg = wxT("No workspace open"); @@ -493,7 +510,7 @@ } } -ProjectPtr Workspace::DoAddProject(ProjectPtr proj) +ProjectPtr clCxxWorkspace::DoAddProject(ProjectPtr proj) { if(!proj) { return NULL; @@ -504,7 +521,7 @@ return proj; } -ProjectPtr Workspace::DoAddProject(const wxString& path, wxString& errMsg) +ProjectPtr clCxxWorkspace::DoAddProject(const wxString& path, wxString& errMsg) { // Add the project ProjectPtr proj(new Project()); @@ -527,7 +544,7 @@ return proj; } -bool Workspace::RemoveProject(const wxString& name, wxString& errMsg) +bool clCxxWorkspace::RemoveProject(const wxString& name, wxString& errMsg) { ProjectPtr proj = FindProjectByName(name, errMsg); if(!proj) { @@ -598,7 +615,7 @@ return SaveXmlFile(); } -wxString Workspace::GetActiveProjectName() const +wxString clCxxWorkspace::GetActiveProjectName() const { if(!m_doc.IsOk()) { return wxEmptyString; @@ -616,7 +633,7 @@ return wxEmptyString; } -void Workspace::SetActiveProject(const wxString& name, bool active) +void clCxxWorkspace::SetActiveProject(const wxString& name, bool active) { if(!m_doc.IsOk()) return; @@ -633,7 +650,7 @@ SaveXmlFile(); } -bool Workspace::CreateVirtualDirectory(const wxString& vdFullPath, wxString& errMsg, bool mkPath) +bool clCxxWorkspace::CreateVirtualDirectory(const wxString& vdFullPath, wxString& errMsg, bool mkPath) { wxStringTokenizer tkz(vdFullPath, wxT(":")); wxString projName = tkz.GetNextToken(); @@ -652,7 +669,7 @@ return proj->CreateVirtualDir(fixedPath, mkPath); } -bool Workspace::RemoveVirtualDirectory(const wxString& vdFullPath, wxString& errMsg) +bool clCxxWorkspace::RemoveVirtualDirectory(const wxString& vdFullPath, wxString& errMsg) { wxStringTokenizer tkz(vdFullPath, wxT(":")); wxString projName = tkz.GetNextToken(); @@ -671,8 +688,20 @@ return proj->DeleteVirtualDir(fixedPath); } -bool Workspace::SaveXmlFile() +bool clCxxWorkspace::SaveXmlFile() { + // We first remove the Save Workspace To Local Workspace (SWTLW) attribute + // and then check the current state in the Code Completion tab. Then + // we read new path values from the LW and set the appropiate attribute value. + if(m_doc.GetRoot()->GetAttribute(wxT("SWTLW")) != wxEmptyString) { + m_doc.GetRoot()->DeleteAttribute(wxT("SWTLW")); + } + if(LocalWorkspaceST::Get()->GetParserFlags() & LocalWorkspace::EnableSWTLW) { + m_doc.GetRoot()->AddProperty(wxT("SWTLW"), "Yes"); + SyncFromLocalWorkspaceSTParserPaths(); + SyncFromLocalWorkspaceSTParserMacros(); + } + bool ok = m_doc.Save(m_fileName.GetFullPath()); SetWorkspaceLastModifiedTime(GetFileLastModifiedTime()); EventNotifier::Get()->PostFileSavedEvent(m_fileName.GetFullPath()); @@ -681,7 +710,101 @@ return ok; } -void Workspace::Save() +void clCxxWorkspace::SyncToLocalWorkspaceSTParserPaths() +{ + wxArrayString inclduePaths; + wxArrayString excludePaths; + wxXmlNode* workspaceInclPaths = XmlUtils::FindFirstByTagName(m_doc.GetRoot(), wxT("WorkspaceParserPaths")); + if(workspaceInclPaths) { + wxXmlNode* child = workspaceInclPaths->GetChildren(); + while(child) { + if(child->GetName() == wxT("Exclude")) { + wxString path = child->GetPropVal(wxT("Path"), wxT("")); + path.Trim().Trim(false); + if(path.IsEmpty() == false) { + excludePaths.Add(path); + } + } + + else if(child->GetName() == wxT("Include")) { + wxString path = child->GetPropVal(wxT("Path"), wxT("")); + path.Trim().Trim(false); + if(path.IsEmpty() == false) { + inclduePaths.Add(path); + } + } + + child = child->GetNext(); + } + LocalWorkspaceST::Get()->SetParserPaths(inclduePaths, excludePaths); + } +} + +void clCxxWorkspace::SyncFromLocalWorkspaceSTParserPaths() +{ + // + // Here we just get the parser paths from the LocalWorkspaceST and write it into the worspace project file. + // + wxXmlNode* workspaceInclPaths = XmlUtils::FindFirstByTagName(m_doc.GetRoot(), wxT("WorkspaceParserPaths")); + if(workspaceInclPaths) { + m_doc.GetRoot()->RemoveChild(workspaceInclPaths); + delete workspaceInclPaths; + } + + // + // Get workspace parse paths from local workspace file. + // + wxArrayString inclduePaths; + wxArrayString excludePaths; + LocalWorkspaceST::Get()->GetParserPaths(inclduePaths, excludePaths); + + workspaceInclPaths = new wxXmlNode(m_doc.GetRoot(), wxXML_ELEMENT_NODE, wxT("WorkspaceParserPaths")); + for(size_t i = 0; i < inclduePaths.GetCount(); i++) { + wxXmlNode* child = new wxXmlNode(workspaceInclPaths, wxXML_ELEMENT_NODE, wxT("Include")); + child->AddProperty(wxT("Path"), inclduePaths.Item(i)); + } + + for(size_t i = 0; i < excludePaths.GetCount(); i++) { + wxXmlNode* child = new wxXmlNode(workspaceInclPaths, wxXML_ELEMENT_NODE, wxT("Exclude")); + child->AddProperty(wxT("Path"), excludePaths.Item(i)); + } +} + +void clCxxWorkspace::SyncToLocalWorkspaceSTParserMacros() +{ + wxString macros; + wxXmlNode* workspaceMacros = XmlUtils::FindFirstByTagName(m_doc.GetRoot(), wxT("WorkspaceParserMacros")); + if(workspaceMacros) { + macros = workspaceMacros->GetNodeContent(); + macros.Trim().Trim(false); + LocalWorkspaceST::Get()->SetParserMacros(macros); + } +} + +void clCxxWorkspace::SyncFromLocalWorkspaceSTParserMacros() +{ + // + // Here we just get the parser macros from the LocalWorkspaceST and write it into the worspace project file. + // + wxXmlNode* workspaceMacros = XmlUtils::FindFirstByTagName(m_doc.GetRoot(), wxT("WorkspaceParserMacros")); + if(workspaceMacros) { + m_doc.GetRoot()->RemoveChild(workspaceMacros); + delete workspaceMacros; + } + + // + // Get workspace parse macros from local workspace file. + // + wxString macros; + LocalWorkspaceST::Get()->GetParserMacros(macros); + workspaceMacros = new wxXmlNode(m_doc.GetRoot(), wxXML_ELEMENT_NODE, wxT("WorkspaceParserMacros")); + if(!macros.IsEmpty()) { + wxXmlNode* contentNode = new wxXmlNode(wxXML_CDATA_SECTION_NODE, wxEmptyString, macros); + workspaceMacros->AddChild(contentNode); + } +} + +void clCxxWorkspace::Save() { if(m_doc.IsOk()) { std::map::iterator iter = m_projects.begin(); @@ -692,7 +815,7 @@ } } -bool Workspace::AddNewFile(const wxString& vdFullPath, const wxString& fileName, wxString& errMsg) +bool clCxxWorkspace::AddNewFile(const wxString& vdFullPath, const wxString& fileName, wxString& errMsg) { wxStringTokenizer tkz(vdFullPath, wxT(":")); @@ -720,7 +843,7 @@ return proj->AddFile(fileName, fixedPath); } -bool Workspace::RemoveFile(const wxString& vdFullPath, const wxString& fileName, wxString& errMsg) +bool clCxxWorkspace::RemoveFile(const wxString& vdFullPath, const wxString& fileName, wxString& errMsg) { wxStringTokenizer tkz(vdFullPath, wxT(":")); wxString projName = tkz.GetNextToken(); @@ -752,7 +875,7 @@ return result; } -BuildConfigPtr Workspace::GetProjBuildConf(const wxString& projectName, const wxString& confName) const +BuildConfigPtr clCxxWorkspace::GetProjBuildConf(const wxString& projectName, const wxString& confName) const { BuildMatrixPtr matrix = GetBuildMatrix(); if(!matrix) { @@ -778,7 +901,7 @@ return NULL; } -void Workspace::ReloadWorkspace() +void clCxxWorkspace::ReloadWorkspace() { m_doc = wxXmlDocument(); @@ -795,11 +918,11 @@ } } -time_t Workspace::GetFileLastModifiedTime() const { return GetFileModificationTime(GetWorkspaceFileName()); } +time_t clCxxWorkspace::GetFileLastModifiedTime() const { return GetFileModificationTime(GetWorkspaceFileName()); } // Singelton access -static Workspace* gs_Workspace = NULL; -void WorkspaceST::Free() +static clCxxWorkspace* gs_Workspace = NULL; +void clCxxWorkspaceST::Free() { if(gs_Workspace) { delete gs_Workspace; @@ -807,13 +930,26 @@ gs_Workspace = NULL; } -Workspace* WorkspaceST::Get() +clCxxWorkspace* clCxxWorkspaceST::Get() { - if(gs_Workspace == NULL) gs_Workspace = new Workspace; + if(gs_Workspace == NULL) gs_Workspace = new clCxxWorkspace; return gs_Workspace; } -wxString Workspace::GetEnvironmentVariabels() +wxString clCxxWorkspace::GetParserMacros() +{ + if(!m_doc.IsOk()) return wxEmptyString; + + wxXmlNode* node = XmlUtils::FindFirstByTagName(m_doc.GetRoot(), wxT("WorkspaceParserMacros")); + if(node) { + wxString nodeContent = node->GetNodeContent(); + nodeContent.Trim().Trim(false); + return nodeContent; + } + return wxEmptyString; +} + +wxString clCxxWorkspace::GetEnvironmentVariabels() { if(!m_doc.IsOk()) return wxEmptyString; @@ -826,7 +962,7 @@ return wxEmptyString; } -void Workspace::SetEnvironmentVariabels(const wxString& envvars) +void clCxxWorkspace::SetEnvironmentVariabels(const wxString& envvars) { if(!m_doc.IsOk()) return; @@ -847,7 +983,7 @@ SaveXmlFile(); } -wxArrayString Workspace::GetAllProjectPaths() +wxArrayString clCxxWorkspace::GetAllProjectPaths() { wxArrayString projects; std::map::iterator iter = m_projects.begin(); @@ -857,9 +993,9 @@ return projects; } -bool Workspace::IsOpen() const { return m_doc.IsOk(); } +bool clCxxWorkspace::IsOpen() const { return m_doc.IsOk(); } -bool Workspace::IsVirtualDirectoryExists(const wxString& vdFullPath) +bool clCxxWorkspace::IsVirtualDirectoryExists(const wxString& vdFullPath) { wxStringTokenizer tkz(vdFullPath, wxT(":")); wxString projName = tkz.GetNextToken(); @@ -884,7 +1020,7 @@ return vdNode != NULL; } -wxString Workspace::GetPrivateFolder() const +wxString clCxxWorkspace::GetPrivateFolder() const { wxFileName workspacePath; if(IsOpen()) { @@ -901,16 +1037,16 @@ if(workspacePath.Exists()) { // append the .codelite folder workspacePath.AppendDir(".codelite"); - + // ensure the path exists workspacePath.Mkdir(wxS_DIR_DEFAULT, wxPATH_MKDIR_FULL); - + return workspacePath.GetPath(); } return ""; } -wxFileName Workspace::GetTagsFileName() const +wxFileName clCxxWorkspace::GetTagsFileName() const { if(!IsOpen()) { return wxFileName(); @@ -921,13 +1057,13 @@ return fn_tags; } -void Workspace::CreateCompileCommandsJSON(JSONElement& compile_commands) const +void clCxxWorkspace::CreateCompileCommandsJSON(JSONElement& compile_commands) const { - BuildMatrixPtr matrix = WorkspaceST::Get()->GetBuildMatrix(); + BuildMatrixPtr matrix = clCxxWorkspaceST::Get()->GetBuildMatrix(); if(!matrix) return; wxString workspaceSelConf = matrix->GetSelectedConfigurationName(); - Workspace::ProjectMap_t::const_iterator iter = m_projects.begin(); + clCxxWorkspace::ProjectMap_t::const_iterator iter = m_projects.begin(); for(; iter != m_projects.end(); ++iter) { BuildConfigPtr buildConf = iter->second->GetBuildConfiguration(); @@ -938,39 +1074,39 @@ } } -ProjectPtr Workspace::GetActiveProject() const { return GetProject(GetActiveProjectName()); } +ProjectPtr clCxxWorkspace::GetActiveProject() const { return GetProject(GetActiveProjectName()); } -ProjectPtr Workspace::GetProject(const wxString& name) const +ProjectPtr clCxxWorkspace::GetProject(const wxString& name) const { - Workspace::ProjectMap_t::const_iterator iter = m_projects.find(name); + clCxxWorkspace::ProjectMap_t::const_iterator iter = m_projects.find(name); if(iter == m_projects.end()) { return NULL; } return iter->second; } -void Workspace::GetCompilers(wxStringSet_t& compilers) +void clCxxWorkspace::GetCompilers(wxStringSet_t& compilers) { - Workspace::ProjectMap_t::iterator iter = m_projects.begin(); + clCxxWorkspace::ProjectMap_t::iterator iter = m_projects.begin(); for(; iter != m_projects.end(); ++iter) { iter->second->GetCompilers(compilers); } } -void Workspace::ReplaceCompilers(wxStringMap_t& compilers) +void clCxxWorkspace::ReplaceCompilers(wxStringMap_t& compilers) { - Workspace::ProjectMap_t::iterator iter = m_projects.begin(); + clCxxWorkspace::ProjectMap_t::iterator iter = m_projects.begin(); for(; iter != m_projects.end(); ++iter) { iter->second->ReplaceCompilers(compilers); } } -void Workspace::DoUpdateBuildMatrix() +void clCxxWorkspace::DoUpdateBuildMatrix() { m_buildMatrix.Reset(new BuildMatrix(XmlUtils::FindFirstByTagName(m_doc.GetRoot(), "BuildMatrix"))); } -void Workspace::RenameProject(const wxString& oldname, const wxString& newname) +void clCxxWorkspace::RenameProject(const wxString& oldname, const wxString& newname) { // Update the build matrix (we work on the XML directly here) wxXmlNode* buildMatrixNode = XmlUtils::FindFirstByTagName(m_doc.GetRoot(), "BuildMatrix"); @@ -992,7 +1128,7 @@ child = child->GetNext(); } } - + // Update the list of projects in the workspace wxXmlNode* projectNode = XmlUtils::FindFirstByTagName(m_doc.GetRoot(), "Project"); while(projectNode) { @@ -1002,24 +1138,75 @@ projectNode = projectNode->GetNext(); } // Update dependenices for each project - Workspace::ProjectMap_t::iterator iter = m_projects.begin(); + clCxxWorkspace::ProjectMap_t::iterator iter = m_projects.begin(); for(; iter != m_projects.end(); ++iter) { iter->second->ProjectRenamed(oldname, newname); } - - Workspace::ProjectMap_t tmpProjects; + + clCxxWorkspace::ProjectMap_t tmpProjects; iter = m_projects.begin(); for(; iter != m_projects.end(); ++iter) { tmpProjects.insert(std::make_pair(iter->first, iter->second)); } m_projects.swap(tmpProjects); - + // Save everything Save(); - + // Notify about this change clCommandEvent event(wxEVT_PROJ_RENAMED); event.SetOldName(oldname); event.SetString(newname); EventNotifier::Get()->AddPendingEvent(event); } + +bool clCxxWorkspace::IsBuildSupported() const { return true; } +bool clCxxWorkspace::IsProjectSupported() const { return true; } + +wxString clCxxWorkspace::GetFilesMask() const +{ + wxString findInFilesMask = "*.c;*.cpp;*.cxx;*.cc;*.h;*.hpp;*.inc;*.mm;*.m;*.xrc;*.ini;*.xml"; + if(IsOpen()) { + wxString fifMask; + LocalWorkspaceST::Get()->GetSearchInFilesMask(fifMask, findInFilesMask); + if(fifMask.IsEmpty()) { + fifMask = findInFilesMask; + } + } + return findInFilesMask; +} +wxString clCxxWorkspace::GetProjectFromFile(const wxFileName& filename) const +{ + wxString filenameFP = filename.GetFullPath(); + clCxxWorkspace::ProjectMap_t::const_iterator iter = m_projects.begin(); + for(; iter != m_projects.end(); ++iter) { + wxStringSet_t allFiles; + iter->second->GetFiles(allFiles); + if(allFiles.count(filenameFP)) { + return iter->first; + } + } + return ""; +} +void clCxxWorkspace::GetProjectFiles(const wxString& projectName, wxArrayString& files) const +{ + ProjectPtr p = GetProject(projectName.IsEmpty() ? GetActiveProjectName() : projectName); + CHECK_PTR_RET(p); + + wxStringSet_t setFiles; + p->GetFiles(setFiles); + + // Convert the set wxArrayString + std::for_each(setFiles.begin(), setFiles.end(), [&](const wxString& file) { files.Add(file); }); +} + +void clCxxWorkspace::GetWorkspaceFiles(wxArrayString& files) const +{ + std::for_each(m_projects.begin(), m_projects.end(), [&](const clCxxWorkspace::ProjectMap_t::value_type& v) { + wxStringSet_t setFiles; + v.second->GetFiles(setFiles); + + // Convert the set wxArrayString + std::for_each(setFiles.begin(), setFiles.end(), [&](const wxString& file) { files.Add(file); }); + }); +} diff -Nru codelite-8.0.1+dfsg2/Plugin/workspace.h codelite-9.0+dfsg/Plugin/workspace.h --- codelite-8.0.1+dfsg2/Plugin/workspace.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/workspace.h 2015-10-11 13:56:07.000000000 +0000 @@ -34,7 +34,7 @@ #include "json_node.h" #include #include -//#include "ctags_manager.h" +#include "IWorkspace.h" #include "configuration_mapping.h" #include "optionsconfig.h" #include "localworkspace.h" @@ -46,30 +46,39 @@ * */ class CompileCommandsCreateor; -class WXDLLIMPEXP_SDK Workspace +class WXDLLIMPEXP_SDK clCxxWorkspace : public IWorkspace { - friend class WorkspaceST; + friend class clCxxWorkspaceST; friend class CompileCommandsCreateor; public: + virtual void GetProjectFiles(const wxString& projectName, wxArrayString& files) const; + virtual void GetWorkspaceFiles(wxArrayString& files) const; + virtual wxString GetFilesMask() const; + virtual bool IsBuildSupported() const; + virtual bool IsProjectSupported() const; + virtual wxString GetProjectFromFile(const wxFileName& filename) const; + +public: typedef std::map ProjectMap_t; protected: wxXmlDocument m_doc; wxFileName m_fileName; - Workspace::ProjectMap_t m_projects; + clCxxWorkspace::ProjectMap_t m_projects; wxString m_startupDir; time_t m_modifyTime; bool m_saveOnExit; BuildMatrixPtr m_buildMatrix; -private: +public: /// Constructor - Workspace(); + clCxxWorkspace(); /// Destructor - virtual ~Workspace(); + virtual ~clCxxWorkspace(); +private: void DoUpdateBuildMatrix(); public: @@ -189,7 +198,7 @@ /** * Return all project names under this workspace */ - void GetProjectList(wxArrayString& list); + void GetProjectList(wxArrayString& list) const; /** * Add an existing project to the workspace. If no workspace is open, @@ -313,6 +322,14 @@ void AddProjectToBuildMatrix(ProjectPtr prj); //---------------------------------- + // Workspace Parser Macros + //---------------------------------- + /** + * @brief return the workspace environment variables + */ + wxString GetParserMacros(); + + //---------------------------------- // Workspace environment variables //---------------------------------- /** @@ -379,12 +396,17 @@ void RemoveProjectFromBuildMatrix(ProjectPtr prj); bool SaveXmlFile(); + + void SyncToLocalWorkspaceSTParserPaths(); + void SyncFromLocalWorkspaceSTParserPaths(); + void SyncToLocalWorkspaceSTParserMacros(); + void SyncFromLocalWorkspaceSTParserMacros(); }; -class WXDLLIMPEXP_SDK WorkspaceST +class WXDLLIMPEXP_SDK clCxxWorkspaceST { public: - static Workspace* Get(); + static clCxxWorkspace* Get(); static void Free(); }; diff -Nru codelite-8.0.1+dfsg2/Plugin/WSImporter.cpp codelite-9.0+dfsg/Plugin/WSImporter.cpp --- codelite-8.0.1+dfsg2/Plugin/WSImporter.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/WSImporter.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -5,6 +5,7 @@ #include "CodeBlocksImporter.h" #include "EnvVarImporterDlg.h" #include "workspace.h" +#include WSImporter::WSImporter() { @@ -42,10 +43,10 @@ wxString errMsgLocal; bool showDlg = true; - if(!WorkspaceST::Get()->CreateWorkspace(gworskspace->name, gworskspace->path, errMsgLocal)) + if(!clCxxWorkspaceST::Get()->CreateWorkspace(gworskspace->name, gworskspace->path, errMsgLocal)) return false; - Workspace* clWorkspace = NULL; + clCxxWorkspace* clWorkspace = NULL; WorkspaceConfiguration::ConfigMappingList cmlDebug; WorkspaceConfiguration::ConfigMappingList cmlRelease; @@ -66,10 +67,10 @@ break; } - if(!WorkspaceST::Get()->CreateProject(project->name, project->path, projectType, true, errMsg)) + if(!clCxxWorkspaceST::Get()->CreateProject(project->name, project->path, projectType, true, errMsg)) return false; - ProjectPtr proj = WorkspaceST::Get()->FindProjectByName(project->name, errMsg); + ProjectPtr proj = clCxxWorkspaceST::Get()->FindProjectByName(project->name, errMsg); ProjectSettingsPtr le_settings(new ProjectSettings(NULL)); le_settings->RemoveConfiguration(wxT("Debug")); @@ -231,6 +232,35 @@ le_conf->SetEnvvars(envVars); + BuildCommandList preBuildCommandList; + BuildCommandList postBuildCommandList; + + for(wxString preBuildCmd : cfg->preBuildCommands) { + BuildCommand preBuildCommand; + preBuildCommand.SetCommand(preBuildCmd); + preBuildCommand.SetEnabled(true); + + preBuildCommandList.push_back(preBuildCommand); + } + + for(wxString postBuildCmd : cfg->postBuildCommands) { + BuildCommand postBuildCommand; + postBuildCommand.SetCommand(postBuildCmd); + postBuildCommand.SetEnabled(true); + + postBuildCommandList.push_back(postBuildCommand); + } + + le_conf->SetPreBuildCommands(preBuildCommandList); + le_conf->SetPostBuildCommands(postBuildCommandList); + + if(cfg->enableCustomBuild) { + le_conf->EnableCustomBuild(cfg->enableCustomBuild); + le_conf->SetCustomBuildCmd(cfg->customBuildCmd); + le_conf->SetCustomCleanCmd(cfg->customCleanCmd); + le_conf->SetCustomRebuildCmd(cfg->customRebuildCmd); + } + le_settings->SetBuildConfiguration(le_conf); if(!project->deps.IsEmpty()) @@ -246,37 +276,39 @@ proj->DeleteVirtualDir("src"); for(GenericProjectFilePtr file : project->files) { - wxString vpath; + wxString vpath = GetVPath(file->name, file->vpath, project->createDefaultVirtualDir); - if(file->vpath.IsEmpty()) { - wxFileName fileInfo(file->name); - wxString ext = fileInfo.GetExt().Lower(); - - if(ext == wxT("h") || ext == wxT("hpp") || ext == wxT("hxx") || ext == wxT("hh") || - ext == wxT("inl") || ext == wxT("inc")) { - vpath = wxT("include"); - } else if(ext == wxT("c") || ext == wxT("cpp") || ext == wxT("cxx") || ext == wxT("cc")) { - vpath = wxT("src"); - } else if(ext == wxT("s") || ext == wxT("S") || ext == wxT("asm")) { - vpath = wxT("src"); - } else { - vpath = wxT("resource"); - } - } else { - vpath = file->vpath; - - if(file->vpath.Contains(wxT("\\"))) { - vpath.Replace(wxT("\\"), wxT(":")); - } else if(file->vpath.Contains(wxT("/"))) { - vpath.Replace(wxT("/"), wxT(":")); - } + wxString vDir = wxT(""); + wxStringTokenizer vDirList(vpath, wxT(":")); + while(vDirList.HasMoreTokens()) { + wxString vdName = vDirList.NextToken(); + vDir += vdName; + proj->CreateVirtualDir(vDir); + vDir += wxT(":"); } - proj->CreateVirtualDir(vpath); proj->AddFile(file->name, vpath); } proj->CommitTranscation(); + + for(GenericProjectCfgPtr cfg : project->cfgs) { + for(GenericProjectFilePtr excludeFile : cfg->excludeFiles) { + wxString vpath = + GetVPath(excludeFile->name, excludeFile->vpath, project->createDefaultVirtualDir); + + wxFileName excludeFileNameInfo(project->path + wxFileName::GetPathSeparator() + + excludeFile->name); + wxString excludeFileName = excludeFileNameInfo.GetFullPath(); + wxArrayString configs = proj->GetExcludeConfigForFile(excludeFileName, vpath); + + int index = configs.Index(cfg->name); + if(index == wxNOT_FOUND) { + configs.Add(cfg->name); + proj->SetExcludeConfigForFile(excludeFileName, vpath, configs); + } + } + } } if(clWorkspace) { @@ -332,13 +364,45 @@ app = true; pos++; } else if(data.GetChar(pos) == wxT(')')) { - list.insert(word); - word = wxT(""); - app = false; + if(!word.IsEmpty()) { + list.insert(word); + word = wxT(""); + app = false; + } } else if(app) { word += data.GetChar(pos); } } return list; +} + +wxString WSImporter::GetVPath(const wxString& filename, const wxString& virtualPath, const bool& createDefaultVDir) +{ + wxString vpath; + if(virtualPath.IsEmpty() && createDefaultVDir) { + wxFileName fileInfo(filename); + wxString ext = fileInfo.GetExt().Lower(); + + if(ext == wxT("h") || ext == wxT("hpp") || ext == wxT("hxx") || ext == wxT("hh") || ext == wxT("inl") || + ext == wxT("inc")) { + vpath = wxT("include"); + } else if(ext == wxT("c") || ext == wxT("cpp") || ext == wxT("cxx") || ext == wxT("cc")) { + vpath = wxT("src"); + } else if(ext == wxT("s") || ext == wxT("S") || ext == wxT("asm")) { + vpath = wxT("src"); + } else { + vpath = wxT("resource"); + } + } else { + vpath = virtualPath; + + if(vpath.Contains(wxT("\\"))) { + vpath.Replace(wxT("\\"), wxT(":")); + } else if(vpath.Contains(wxT("/"))) { + vpath.Replace(wxT("/"), wxT(":")); + } + } + + return vpath; } \ No newline at end of file diff -Nru codelite-8.0.1+dfsg2/Plugin/WSImporterDlgs.cpp codelite-9.0+dfsg/Plugin/WSImporterDlgs.cpp --- codelite-8.0.1+dfsg2/Plugin/WSImporterDlgs.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/WSImporterDlgs.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -23,10 +23,10 @@ bBitmapLoaded = true; } - wxBoxSizer* boxSizer4 = new wxBoxSizer(wxVERTICAL); + boxSizer4 = new wxBoxSizer(wxVERTICAL); this->SetSizer(boxSizer4); - wxBoxSizer* boxSizer18 = new wxBoxSizer(wxHORIZONTAL); + boxSizer18 = new wxBoxSizer(wxHORIZONTAL); boxSizer4->Add(boxSizer18, 1, wxALL|wxEXPAND, 5); @@ -52,7 +52,7 @@ boxSizer18->Add(0, 0, 1, wxALL, 5); - wxBoxSizer* boxSizer22 = new wxBoxSizer(wxVERTICAL); + boxSizer22 = new wxBoxSizer(wxVERTICAL); boxSizer4->Add(boxSizer22, 1, wxALL|wxEXPAND, 5); @@ -65,7 +65,7 @@ boxSizer4->Add(m_envVars, 0, wxALL|wxEXPAND, 5); m_envVars->SetMinSize(wxSize(600,200)); - wxBoxSizer* boxSizer16 = new wxBoxSizer(wxHORIZONTAL); + boxSizer16 = new wxBoxSizer(wxHORIZONTAL); boxSizer4->Add(boxSizer16, 1, wxALL|wxEXPAND, 0); @@ -81,11 +81,19 @@ boxSizer16->Add(m_btnNotImport, 0, wxALL, 5); + SetName(wxT("EnvVarImporterDlgBase")); SetSizeHints(600,360); if ( GetSizer() ) { GetSizer()->Fit(this); } - Centre(wxBOTH); + CentreOnParent(wxBOTH); +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(this)) { + wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); + } +#endif // Connect events m_btnImport->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(EnvVarImporterDlgBase::OnImport), NULL, this); m_btnContinue->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(EnvVarImporterDlgBase::OnContinue), NULL, this); diff -Nru codelite-8.0.1+dfsg2/Plugin/WSImporterDlgs.h codelite-9.0+dfsg/Plugin/WSImporterDlgs.h --- codelite-8.0.1+dfsg2/Plugin/WSImporterDlgs.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/WSImporterDlgs.h 2015-10-11 13:56:07.000000000 +0000 @@ -4,8 +4,8 @@ // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// -#ifndef WSIMPORTERDLGS_BASE_CLASSES_H -#define WSIMPORTERDLGS_BASE_CLASSES_H +#ifndef CODELITE_PLUGIN_WSIMPORTERDLGS_BASE_CLASSES_H +#define CODELITE_PLUGIN_WSIMPORTERDLGS_BASE_CLASSES_H #include #include @@ -17,16 +17,26 @@ #include #include #include +#if wxVERSION_NUMBER >= 2900 +#include +#include +#include +#include +#endif class EnvVarImporterDlgBase : public wxDialog { protected: + wxBoxSizer* boxSizer4; + wxBoxSizer* boxSizer18; wxStaticText* m_staticText26; wxStaticText* m_projectName; wxStaticText* m_staticText20; wxStaticText* m_confName; + wxBoxSizer* boxSizer22; wxStaticText* m_staticText6; wxTextCtrl* m_envVars; + wxBoxSizer* boxSizer16; wxButton* m_btnImport; wxButton* m_btnContinue; wxButton* m_btnNotImport; @@ -37,6 +47,15 @@ virtual void OnSkip(wxCommandEvent& event) { event.Skip(); } public: + wxStaticText* GetStaticText26() { return m_staticText26; } + wxStaticText* GetProjectName() { return m_projectName; } + wxStaticText* GetStaticText20() { return m_staticText20; } + wxStaticText* GetConfName() { return m_confName; } + wxStaticText* GetStaticText6() { return m_staticText6; } + wxTextCtrl* GetEnvVars() { return m_envVars; } + wxButton* GetBtnImport() { return m_btnImport; } + wxButton* GetBtnContinue() { return m_btnContinue; } + wxButton* GetBtnNotImport() { return m_btnNotImport; } EnvVarImporterDlgBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Import - Environment variable"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(600,360), long style = wxSTAY_ON_TOP|wxCAPTION); virtual ~EnvVarImporterDlgBase(); }; diff -Nru codelite-8.0.1+dfsg2/Plugin/WSImporterDlgs_plugin_bitmaps.cpp codelite-9.0+dfsg/Plugin/WSImporterDlgs_plugin_bitmaps.cpp --- codelite-8.0.1+dfsg2/Plugin/WSImporterDlgs_plugin_bitmaps.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/WSImporterDlgs_plugin_bitmaps.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -21,14 +21,13 @@ wxMemoryFSHandler::AddFile(name, data, size) #endif -static size_t xml_res_size_0 = 108; +static size_t xml_res_size_0 = 90; static unsigned char xml_res_file_0[] = { 60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, 110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, 115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, 47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, -47,119,120,120,114,99,34,32,118,101,114,115,105,111,110,61,34,50,46,51, -46,48,46,49,34,47,62,10}; +47,119,120,120,114,99,34,47,62,10}; void wxC55BDInitBitmapResources() { @@ -43,6 +42,6 @@ else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase); } - XRC_ADD_FILE(wxT("XRC_resource/WSImporterDlgs_plugin_bitmaps.cpp$C__Projects_codelite_Plugin_WSImporterDlgs_plugin_bitmaps.xrc"), xml_res_file_0, xml_res_size_0, wxT("text/xml")); - wxXmlResource::Get()->Load(wxT("memory:XRC_resource/WSImporterDlgs_plugin_bitmaps.cpp$C__Projects_codelite_Plugin_WSImporterDlgs_plugin_bitmaps.xrc")); + XRC_ADD_FILE(wxT("XRC_resource/WSImporterDlgs_plugin_bitmaps.cpp$C__src_codelite_Plugin_WSImporterDlgs_plugin_bitmaps.xrc"), xml_res_file_0, xml_res_size_0, wxT("text/xml")); + wxXmlResource::Get()->Load(wxT("memory:XRC_resource/WSImporterDlgs_plugin_bitmaps.cpp$C__src_codelite_Plugin_WSImporterDlgs_plugin_bitmaps.xrc")); } diff -Nru codelite-8.0.1+dfsg2/Plugin/WSImporterDlgs.wxcp codelite-9.0+dfsg/Plugin/WSImporterDlgs.wxcp --- codelite-8.0.1+dfsg2/Plugin/WSImporterDlgs.wxcp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/WSImporterDlgs.wxcp 2015-10-11 13:56:07.000000000 +0000 @@ -72,6 +72,10 @@ "m_label": "Style:", "m_value": "" }, { + "type": "bool", + "m_label": "Enable Window Persistency:", + "m_value": true + }, { "type": "string", "m_label": "Title:", "m_value": "Import - Environment variable" @@ -128,6 +132,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "boxSizer4" }, { @@ -151,6 +159,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "boxSizer18" }, { @@ -513,6 +525,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "boxSizer22" }, { @@ -699,6 +715,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "boxSizer16" }, { diff -Nru codelite-8.0.1+dfsg2/Plugin/WSImporter.h codelite-9.0+dfsg/Plugin/WSImporter.h --- codelite-8.0.1+dfsg2/Plugin/WSImporter.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/WSImporter.h 2015-10-11 13:56:07.000000000 +0000 @@ -23,6 +23,7 @@ private: bool ContainsEnvVar(std::vector elems); std::set GetListEnvVarName(std::vector elems); + wxString GetVPath(const wxString& filename, const wxString& virtualPath, const bool& createDefaultVDir); wxString filename, defaultCompiler; std::vector > importers; diff -Nru codelite-8.0.1+dfsg2/Plugin/wxCodeCompletionBoxBase.cpp codelite-9.0+dfsg/Plugin/wxCodeCompletionBoxBase.cpp --- codelite-8.0.1+dfsg2/Plugin/wxCodeCompletionBoxBase.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/wxCodeCompletionBoxBase.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -24,25 +24,26 @@ bBitmapLoaded = true; } - wxBoxSizer* mainSizer = new wxBoxSizer(wxHORIZONTAL); + mainSizer = new wxBoxSizer(wxHORIZONTAL); this->SetSizer(mainSizer); m_panelComposite = new wxPanel(this, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxTAB_TRAVERSAL); mainSizer->Add(m_panelComposite, 1, wxEXPAND, 5); - wxBoxSizer* boxSizer = new wxBoxSizer(wxHORIZONTAL); + boxSizer = new wxBoxSizer(wxHORIZONTAL); m_panelComposite->SetSizer(boxSizer); m_canvas = new wxPanel(m_panelComposite, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxTAB_TRAVERSAL); boxSizer->Add(m_canvas, 1, wxALL|wxEXPAND, 0); + SetName(wxT("wxCodeCompletionBoxBase")); SetSizeHints(-1,-1); if ( GetSizer() ) { GetSizer()->Fit(this); } - Centre(wxBOTH); + CentreOnParent(wxBOTH); // Connect events m_canvas->Connect(wxEVT_PAINT, wxPaintEventHandler(wxCodeCompletionBoxBase::OnPaint), NULL, this); m_canvas->Connect(wxEVT_ERASE_BACKGROUND, wxEraseEventHandler(wxCodeCompletionBoxBase::OnEraseBackground), NULL, this); diff -Nru codelite-8.0.1+dfsg2/Plugin/wxCodeCompletionBoxBase.h codelite-9.0+dfsg/Plugin/wxCodeCompletionBoxBase.h --- codelite-8.0.1+dfsg2/Plugin/wxCodeCompletionBoxBase.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/wxCodeCompletionBoxBase.h 2015-10-11 13:56:07.000000000 +0000 @@ -4,8 +4,8 @@ // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// -#ifndef WXCODECOMPLETIONBOX_BASE_CLASSES_H -#define WXCODECOMPLETIONBOX_BASE_CLASSES_H +#ifndef CODELITE_PLUGIN_WXCODECOMPLETIONBOX_BASE_CLASSES_H +#define CODELITE_PLUGIN_WXCODECOMPLETIONBOX_BASE_CLASSES_H #include #include @@ -14,12 +14,20 @@ #include #include #include +#if wxVERSION_NUMBER >= 2900 +#include +#include +#include +#include +#endif #include "codelite_exports.h" class WXDLLIMPEXP_SDK wxCodeCompletionBoxBase : public wxPopupWindow { protected: + wxBoxSizer* mainSizer; wxPanel* m_panelComposite; + wxBoxSizer* boxSizer; wxPanel* m_canvas; protected: diff -Nru codelite-8.0.1+dfsg2/Plugin/wxCodeCompletionBox.cpp codelite-9.0+dfsg/Plugin/wxCodeCompletionBox.cpp --- codelite-8.0.1+dfsg2/Plugin/wxCodeCompletionBox.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/wxCodeCompletionBox.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -18,12 +18,15 @@ #include "ieditor.h" #include "imanager.h" #include "CxxTemplateFunction.h" +#include #define LINES_PER_PAGE 8 #define Y_SPACER 2 #define SCROLLBAR_WIDTH 12 #define BOX_WIDTH (400 + SCROLLBAR_WIDTH) +wxCodeCompletionBox::BmpVec_t wxCodeCompletionBox::m_defaultBitmaps; + wxCodeCompletionBox::wxCodeCompletionBox(wxWindow* parent, wxEvtHandler* eventObject, size_t flags) : wxCodeCompletionBoxBase(parent) , m_index(0) @@ -46,7 +49,6 @@ // Set the default bitmap list BitmapLoader* bmpLoader = clGetManager()->GetStdIcons(); - m_bitmaps.push_back(bmpLoader->LoadBitmap("cc/16/class")); // 0 m_bitmaps.push_back(bmpLoader->LoadBitmap("cc/16/struct")); // 1 m_bitmaps.push_back(bmpLoader->LoadBitmap("cc/16/namespace")); // 2 @@ -66,6 +68,8 @@ m_bitmaps.push_back(bmpLoader->LoadBitmap("mime/16/text")); // 16 m_bitmaps.push_back(bmpLoader->LoadBitmap("cc/16/cpp_keyword")); // 17 + InitializeDefaultBitmaps(); + // Increase the size by 2 pixel for each dimension rect.Inflate(2, 2); SetSize(rect); @@ -245,12 +249,12 @@ m_index = 0; m_stc = ctrl; m_allEntries = entries; - + // Keep the start position if(m_startPos == wxNOT_FOUND) { m_startPos = m_stc->WordStartPosition(m_stc->GetCurrentPos(), true); } - + // Filter all duplicate entries from the list (based on simple string match) RemoveDuplicateEntries(); // Filter results based on user input @@ -514,7 +518,7 @@ if(m_entries.at(i)->m_itemRect.Contains(event.GetPosition())) { m_index = i; InsertSelection(); - DoDestroy(); + CallAfter(&wxCodeCompletionBox::DoDestroy); return; } } @@ -732,3 +736,36 @@ } m_allEntries.swap(uniqueList); } + +wxBitmap wxCodeCompletionBox::GetBitmap(TagEntryPtr tag) +{ + InitializeDefaultBitmaps(); + int imgId = GetImageId(tag); + if((imgId < 0) || (imgId >= (int)m_defaultBitmaps.size())) return wxNullBitmap; + return m_defaultBitmaps.at(imgId); +} + +void wxCodeCompletionBox::InitializeDefaultBitmaps() +{ + if(m_defaultBitmaps.empty()) { + BitmapLoader* bmpLoader = clGetManager()->GetStdIcons(); + m_defaultBitmaps.push_back(bmpLoader->LoadBitmap("cc/16/class")); // 0 + m_defaultBitmaps.push_back(bmpLoader->LoadBitmap("cc/16/struct")); // 1 + m_defaultBitmaps.push_back(bmpLoader->LoadBitmap("cc/16/namespace")); // 2 + m_defaultBitmaps.push_back(bmpLoader->LoadBitmap("cc/16/member_public")); // 3 + m_defaultBitmaps.push_back(bmpLoader->LoadBitmap("cc/16/typedef")); // 4 + m_defaultBitmaps.push_back(bmpLoader->LoadBitmap("cc/16/member_private")); // 5 + m_defaultBitmaps.push_back(bmpLoader->LoadBitmap("cc/16/member_public")); // 6 + m_defaultBitmaps.push_back(bmpLoader->LoadBitmap("cc/16/member_protected")); // 7 + m_defaultBitmaps.push_back(bmpLoader->LoadBitmap("cc/16/function_private")); // 8 + m_defaultBitmaps.push_back(bmpLoader->LoadBitmap("cc/16/function_public")); // 9 + m_defaultBitmaps.push_back(bmpLoader->LoadBitmap("cc/16/function_protected")); // 10 + m_defaultBitmaps.push_back(bmpLoader->LoadBitmap("cc/16/typedef")); // 11 + m_defaultBitmaps.push_back(bmpLoader->LoadBitmap("cc/16/enum")); // 12 + m_defaultBitmaps.push_back(bmpLoader->LoadBitmap("cc/16/enumerator")); // 13 + m_defaultBitmaps.push_back(bmpLoader->LoadBitmap("mime/16/cpp")); // 14 + m_defaultBitmaps.push_back(bmpLoader->LoadBitmap("mime/16/h")); // 15 + m_defaultBitmaps.push_back(bmpLoader->LoadBitmap("mime/16/text")); // 16 + m_defaultBitmaps.push_back(bmpLoader->LoadBitmap("cc/16/cpp_keyword")); // 17 + } +} diff -Nru codelite-8.0.1+dfsg2/Plugin/wxCodeCompletionBox.h codelite-9.0+dfsg/Plugin/wxCodeCompletionBox.h --- codelite-8.0.1+dfsg2/Plugin/wxCodeCompletionBox.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/wxCodeCompletionBox.h 2015-10-11 13:56:07.000000000 +0000 @@ -35,7 +35,8 @@ wxCodeCompletionBoxEntry::Vec_t m_allEntries; wxCodeCompletionBoxEntry::Vec_t m_entries; wxCodeCompletionBox::BmpVec_t m_bitmaps; - + static wxCodeCompletionBox::BmpVec_t m_defaultBitmaps; + int m_index; wxString m_displayedTip; wxStyledTextCtrl* m_stc; @@ -84,8 +85,15 @@ void OnLeftDClick(wxMouseEvent& event); void OnEraseBackground(wxEraseEvent& event); void OnPaint(wxPaintEvent& event); - + + static void InitializeDefaultBitmaps(); + public: + /** + * @brief return the bitamp associated with this tag entry + */ + static wxBitmap GetBitmap(TagEntryPtr tag); + virtual ~wxCodeCompletionBox(); /** * @brief construct a code completion box diff -Nru codelite-8.0.1+dfsg2/Plugin/wxCodeCompletionBoxManager.cpp codelite-9.0+dfsg/Plugin/wxCodeCompletionBoxManager.cpp --- codelite-8.0.1+dfsg2/Plugin/wxCodeCompletionBoxManager.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/wxCodeCompletionBoxManager.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,4 +1,6 @@ #include "wxCodeCompletionBoxManager.h" + +#include #include #include "globals.h" #include "ieditor.h" @@ -127,11 +129,28 @@ IEditor* editor = manager->GetActiveEditor(); if(editor) { wxStyledTextCtrl* ctrl = editor->GetCtrl(); - // Default behviour: remove the partial text from teh editor and replace it - // with the selection - int start = ctrl->WordStartPosition(ctrl->GetCurrentPos(), true); - int end = ctrl->GetCurrentPos(); - ctrl->SetSelection(start, end); + bool addParens(false); + int start = wxNOT_FOUND, end = wxNOT_FOUND; + std::vector > ranges; + if(ctrl->GetSelections() > 1) { + for(int i = 0; i < ctrl->GetSelections(); ++i) { + int nStart = ctrl->WordStartPosition(ctrl->GetSelectionNCaret(i), true); + int nEnd = ctrl->GetSelectionNCaret(i); + ranges.push_back(std::make_pair(nStart, nEnd)); + } + std::sort(ranges.begin(), ranges.end(), [&](const std::pair& e1, const std::pair& e2) { + return e1.first < e2.first; + }); + } else { + // Default behviour: remove the partial text from teh editor and replace it + // with the selection + start = ctrl->WordStartPosition(ctrl->GetCurrentPos(), true); + end = ctrl->GetCurrentPos(); + ctrl->SetSelection(start, end); + if(ctrl->GetCharAt(end) != '(') { + addParens = true; + } + } wxString entryText = selection; if(entryText.Find("(") != wxNOT_FOUND) { @@ -145,35 +164,69 @@ CL_DEBUG("Inserting selection: %s", textToInsert); CL_DEBUG("Signature is: %s", funcSig); - + // Check if already have an open paren, don't add another - bool addParens(false); - if(ctrl->GetCharAt(end) != '(') { + if(addParens) { textToInsert << "()"; - addParens = true; } - ctrl->ReplaceSelection(textToInsert); - if(!funcSig.IsEmpty()) { - - // Place the caret between the parenthesis - int caretPos(wxNOT_FOUND); - if(addParens) { - caretPos = start + textToInsert.length() - 1; - } else { - // Move the caret one char to the right - caretPos = start + textToInsert.length() + 1; + + if(!ranges.empty()) { + // Multiple carets + int offset = 0; + for(size_t i = 0; i < ranges.size(); ++i) { + int from = ranges.at(i).first; + int to = ranges.at(i).second; + from += offset; + to += offset; + // Once we enter that text into the editor, it will change the original + // offsets (in most cases the entered text is larger than that typed text) + offset += textToInsert.length() - (to - from); + ctrl->Replace(from, to, textToInsert); + ctrl->SetSelectionNStart(i, from + textToInsert.length()); + ctrl->SetSelectionNEnd(i, from + textToInsert.length()); + } + } else { + ctrl->ReplaceSelection(textToInsert); + if(!funcSig.IsEmpty()) { + + // Place the caret between the parenthesis + int caretPos(wxNOT_FOUND); + if(addParens) { + caretPos = start + textToInsert.length() - 1; + } else { + // Move the caret one char to the right + caretPos = start + textToInsert.length() + 1; + } + ctrl->SetCurrentPos(caretPos); + ctrl->SetSelection(caretPos, caretPos); + + // trigger a code complete for function calltip. + // We do this by simply mimicing the user action of going to the menubar: + // Edit->Display Function Calltip + wxCommandEvent event(wxEVT_MENU, XRCID("function_call_tip")); + wxTheApp->GetTopWindow()->GetEventHandler()->AddPendingEvent(event); } - ctrl->SetCurrentPos(caretPos); - ctrl->SetSelection(caretPos, caretPos); - - // trigger a code complete for function calltip. - // We do this by simply mimicing the user action of going to the menubar: - // Edit->Display Function Calltip - wxCommandEvent event(wxEVT_MENU, XRCID("function_call_tip")); - wxTheApp->GetTopWindow()->GetEventHandler()->AddPendingEvent(event); } } else { - ctrl->ReplaceSelection(entryText); + if(!ranges.empty()) { + // Multiple carets + int offset = 0; + for(size_t i = 0; i < ranges.size(); ++i) { + int from = ranges.at(i).first; + int to = ranges.at(i).second; + from += offset; + to += offset; + // Once we enter that text into the editor, it will change the original + // offsets (in most cases the entered text is larger than that typed text) + offset += entryText.length() - (to - from); + ctrl->Replace(from, to, entryText); + ctrl->SetSelectionNStart(i, from + entryText.length()); + ctrl->SetSelectionNEnd(i, from + entryText.length()); + } + } else { + // Default + ctrl->ReplaceSelection(entryText); + } } } } diff -Nru codelite-8.0.1+dfsg2/Plugin/wxCodeCompletionBox.wxcp codelite-9.0+dfsg/Plugin/wxCodeCompletionBox.wxcp --- codelite-8.0.1+dfsg2/Plugin/wxCodeCompletionBox.wxcp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/wxCodeCompletionBox.wxcp 2015-10-11 13:56:07.000000000 +0000 @@ -108,6 +108,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "mainSizer" }, { @@ -197,6 +201,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "boxSizer" }, { diff -Nru codelite-8.0.1+dfsg2/Plugin/wxcrafter_plugin_bitmaps.cpp codelite-9.0+dfsg/Plugin/wxcrafter_plugin_bitmaps.cpp --- codelite-8.0.1+dfsg2/Plugin/wxcrafter_plugin_bitmaps.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/wxcrafter_plugin_bitmaps.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,396 +1,414 @@ -// -// This file was automatically generated by wxrc, do not edit by hand. -// - -#include - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#include -#include -#include -#include - -#if wxCHECK_VERSION(2,8,5) && wxABI_VERSION >= 20805 - #define XRC_ADD_FILE(name, data, size, mime) \ - wxMemoryFSHandler::AddFileWithMimeType(name, data, size, mime) -#else - #define XRC_ADD_FILE(name, data, size, mime) \ - wxMemoryFSHandler::AddFile(name, data, size) -#endif - -static size_t xml_res_size_0 = 648; -static unsigned char xml_res_file_0[] = { -137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0, -0,115,122,122,244,0,0,0,6,98,75,71,68,0,255,0,255,0,255,160,189,167,147, -0,0,0,9,112,72,89,115,0,0,11,19,0,0,11,19,1,0,154,156,24,0,0,0,7,116,73, -77,69,7,222,2,11,18,7,57,70,199,106,79,0,0,2,21,73,68,65,84,88,195,237, -151,77,75,27,81,20,134,223,147,4,252,216,4,210,177,43,215,249,248,5,174, -149,150,34,173,21,4,81,247,18,164,5,41,34,82,44,157,224,8,93,118,89,16, -145,182,40,106,84,92,248,129,11,23,130,109,169,109,253,3,153,100,231,66, -186,200,166,27,45,73,238,113,161,209,123,147,155,201,76,108,18,44,30,56, -48,51,204,189,247,185,239,156,243,94,6,184,143,187,30,137,141,227,173,196, -198,49,215,58,222,247,15,24,250,174,64,184,89,0,178,26,220,112,0,102,86, -210,92,255,197,77,5,96,102,188,93,251,201,13,3,16,172,207,55,73,119,16, -4,0,211,171,63,230,0,196,235,209,37,239,134,187,168,170,2,130,57,46,152, -81,143,124,189,114,196,110,0,234,154,83,203,223,217,25,64,136,186,231,228, -210,55,110,154,2,197,156,88,252,202,21,20,224,134,229,171,207,95,184,169, -0,66,48,198,63,30,94,67,4,0,160,51,119,130,179,211,140,167,246,250,243, -32,134,191,237,15,111,221,166,1,0,56,59,205,192,52,77,79,3,45,203,194,239, -214,142,154,22,253,48,218,77,10,64,49,178,217,44,132,16,151,14,69,55,254, -81,188,38,34,248,253,126,4,131,65,0,64,65,120,63,0,231,226,61,84,166,192, -181,173,10,1,219,182,149,5,21,219,36,66,44,22,83,222,247,18,243,99,143, -72,251,9,228,136,68,34,142,10,168,192,238,21,88,120,241,152,42,214,128, -188,144,172,64,217,193,81,162,64,129,221,41,240,233,229,19,114,44,66,57, -194,225,176,102,199,231,96,110,129,207,167,30,158,249,66,117,128,165,241, -94,170,218,5,114,164,211,105,229,62,26,141,2,104,3,112,14,160,181,108,242, -161,247,59,21,191,67,114,226,25,185,106,67,89,98,157,2,68,4,162,54,237, -4,185,124,65,251,124,115,170,159,92,251,128,28,182,109,59,22,223,165,34, -206,0,219,211,3,228,201,136,74,187,64,175,128,126,206,124,9,192,158,57, -72,158,157,80,222,113,42,149,210,238,188,88,253,165,32,114,33,238,207,12, -81,77,86,172,83,64,7,161,83,33,47,196,54,128,190,131,217,17,170,197,150, -21,128,80,40,228,121,130,131,217,145,231,183,62,140,12,195,216,181,44,235, -169,151,129,134,97,36,255,139,127,203,11,15,61,127,111,56,81,112,148,0, -0,0,0,73,69,78,68,174,66,96,130}; - -static size_t xml_res_size_1 = 649; -static unsigned char xml_res_file_1[] = { -137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0, -0,115,122,122,244,0,0,0,6,98,75,71,68,0,255,0,255,0,255,160,189,167,147, -0,0,0,9,112,72,89,115,0,0,11,19,0,0,11,19,1,0,154,156,24,0,0,0,7,116,73, -77,69,7,222,2,11,18,8,5,238,48,10,7,0,0,2,22,73,68,65,84,88,195,99,96,24, -5,67,17,212,175,57,243,191,126,205,153,77,212,48,139,137,28,203,161,76, -95,186,59,0,201,114,170,1,22,98,21,214,173,62,253,255,255,127,170,219,79, -156,3,106,87,157,162,137,229,68,57,160,122,229,169,255,255,254,211,46,65, -51,226,147,172,90,113,146,86,86,207,106,139,48,79,199,155,8,43,150,159, -248,255,239,255,127,6,26,225,52,188,81,80,182,236,248,255,127,255,255,211, -165,76,193,112,64,201,146,163,255,255,253,251,71,183,66,13,197,1,69,139, -143,208,205,231,24,14,40,88,120,248,255,191,127,244,181,28,238,128,188, -249,135,200,182,92,246,247,19,134,111,207,111,147,164,231,179,176,54,170, -3,254,253,39,63,206,191,61,191,205,80,87,87,71,146,158,166,166,38,84,7, -76,73,114,96,204,154,179,159,162,240,127,251,246,45,3,44,241,50,50,34,138, -23,24,155,145,145,145,129,153,153,153,129,159,159,31,123,26,152,150,226, -200,152,62,107,31,217,142,248,247,239,31,195,173,91,183,80,44,68,41,241, -24,25,25,52,53,53,241,231,130,153,105,78,140,169,51,246,144,237,8,117,117, -117,188,33,64,84,57,48,59,195,133,49,121,218,110,146,29,193,200,200,136, -18,2,216,228,9,134,0,12,204,205,114,101,76,152,186,147,100,71,168,169,169, -97,241,241,15,134,255,255,217,25,152,152,152,72,171,13,23,100,187,51,198, -76,218,78,146,35,110,223,70,205,142,26,26,26,12,12,12,156,12,12,12,63,24, -24,24,56,72,111,17,45,201,243,100,252,253,231,47,3,46,188,36,207,147,17, -57,136,213,212,212,24,212,213,213,25,212,213,213,161,150,67,196,153,152, -56,137,79,3,232,96,101,145,15,99,80,215,70,162,66,226,214,173,91,120,19, -31,204,81,36,183,136,214,149,249,51,250,182,173,251,79,76,46,64,183,152, -145,145,17,167,239,73,106,19,110,174,10,98,244,108,90,253,31,95,46,184, -121,243,38,86,159,195,82,63,54,135,176,144,146,200,182,215,133,50,186,214, -175,252,79,40,4,176,57,130,236,52,128,14,118,55,134,51,58,214,46,255,207, -192,192,176,25,89,92,72,72,136,182,205,114,100,176,191,57,18,238,29,17, -17,145,173,77,77,77,222,164,232,23,17,17,89,57,218,191,132,1,0,118,110, -255,14,215,21,22,68,0,0,0,0,73,69,78,68,174,66,96,130}; - -static size_t xml_res_size_2 = 261; -static unsigned char xml_res_file_2[] = { -137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0, -0,115,122,122,244,0,0,0,204,73,68,65,84,120,94,237,215,65,10,194,48,20, -4,208,70,188,145,231,232,202,59,164,215,232,53,244,14,110,244,28,158,200, -228,143,191,32,204,34,171,180,101,190,160,129,240,151,243,152,79,161,73, -0,134,200,115,240,251,219,128,227,50,230,219,115,11,224,238,119,244,155, -122,0,243,249,180,91,3,227,103,226,27,86,128,85,43,0,176,55,34,233,1,253, -8,2,140,249,98,4,27,184,248,200,114,4,27,0,195,165,8,2,72,18,34,8,48,35, -64,134,104,27,208,35,216,0,1,42,68,32,128,8,2,96,131,250,132,54,208,172, -160,106,1,41,234,51,100,120,11,64,72,56,87,0,139,8,39,160,84,187,250,200, -226,112,2,94,165,78,62,166,149,0,244,135,183,0,65,237,66,64,247,47,89,33, -64,26,78,64,181,144,112,2,108,19,224,193,135,73,255,249,63,78,195,1,111, -156,143,95,96,18,4,249,13,0,0,0,0,73,69,78,68,174,66,96,130}; - -static size_t xml_res_size_3 = 259; -static unsigned char xml_res_file_3[] = { -137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0, -0,115,122,122,244,0,0,0,202,73,68,65,84,120,94,237,215,193,13,194,48,12, -5,208,6,177,17,115,192,133,29,96,141,206,209,29,56,117,14,38,34,241,39, -8,161,47,148,3,138,69,190,15,80,201,189,254,87,219,169,148,4,96,138,124, -54,181,126,27,176,125,188,230,203,181,23,128,90,107,173,131,23,48,31,119, -238,14,188,150,102,31,49,2,12,25,1,0,71,184,22,128,161,75,104,112,132,139, -58,128,65,157,89,106,157,217,1,64,253,229,167,79,0,72,127,68,102,22,18, -222,116,128,225,106,128,129,225,65,0,134,135,0,96,83,44,192,144,66,71,80, -158,59,208,32,212,199,144,136,160,83,32,71,112,4,92,66,37,130,128,92,8, -16,33,150,55,192,45,23,2,250,16,201,111,104,1,46,132,0,64,196,48,64,38, -64,136,104,151,80,142,32,192,8,232,64,172,223,0,252,47,167,225,128,59,232, -234,107,51,227,177,82,145,0,0,0,0,73,69,78,68,174,66,96,130}; - -static size_t xml_res_size_4 = 273; -static unsigned char xml_res_file_4[] = { -137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0, -0,115,122,122,244,0,0,0,216,73,68,65,84,120,94,237,151,221,13,2,33,16,132, -89,99,71,214,129,47,246,160,109,92,27,218,131,47,90,135,21,121,236,200, -147,99,114,255,192,6,147,187,77,54,199,61,144,249,50,12,16,4,128,171,89, -251,223,159,230,254,26,18,184,198,62,47,20,184,197,190,244,137,54,167,195, -119,188,155,199,217,21,207,159,67,128,255,89,2,56,84,6,64,109,7,128,149, -3,40,214,158,1,213,45,3,186,242,37,80,96,115,224,17,63,190,160,64,159,165, -207,216,199,33,7,188,179,47,63,182,11,132,212,102,37,83,25,176,132,144, -57,33,180,130,144,201,16,6,30,68,132,48,20,239,2,4,2,20,132,144,217,219, -240,77,128,82,16,178,232,28,104,219,48,102,33,178,197,167,29,32,64,30,4, -197,83,28,200,128,160,120,26,0,51,144,10,33,89,119,65,80,2,36,64,80,220, -30,128,16,28,167,85,237,215,113,253,183,225,7,121,210,102,77,100,22,152, -248,0,0,0,0,73,69,78,68,174,66,96,130}; - -static size_t xml_res_size_5 = 275; -static unsigned char xml_res_file_5[] = { -137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0, -0,115,122,122,244,0,0,0,218,73,68,65,84,120,94,229,215,209,9,194,48,24, -4,224,164,184,75,159,187,65,23,208,1,28,192,41,124,116,138,14,224,2,93, -160,27,248,236,44,38,57,139,79,226,97,241,250,19,126,161,7,165,143,247, -113,13,133,68,0,193,51,187,247,130,254,124,149,0,125,215,190,244,211,237, -30,21,192,116,57,126,1,116,173,2,192,7,36,134,21,105,194,186,32,112,96, -254,4,8,208,203,25,17,215,3,96,42,103,132,14,128,80,174,32,236,0,150,217, -17,12,40,128,82,110,71,240,2,74,185,29,193,11,20,40,229,118,4,47,0,42,175, -137,224,5,80,168,188,38,130,1,116,10,235,34,24,0,140,243,107,95,25,48,46, -45,112,88,80,203,177,254,7,234,135,23,240,6,160,184,47,176,113,64,70,113, -6,100,103,192,195,27,144,82,246,94,32,111,124,129,228,125,6,114,249,95, -192,48,63,39,17,48,252,2,112,191,29,55,193,57,79,87,170,117,156,211,208, -110,126,0,0,0,0,73,69,78,68,174,66,96,130}; - -static size_t xml_res_size_6 = 611; -static unsigned char xml_res_file_6[] = { -137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0, -0,115,122,122,244,0,0,2,42,73,68,65,84,120,94,237,215,65,104,19,65,24,134, -97,87,77,226,106,21,9,4,3,145,66,37,32,120,202,73,16,4,65,40,20,149,21, -37,16,40,8,30,10,130,232,221,131,23,65,41,120,242,38,241,162,88,20,130, -136,180,162,20,60,137,226,65,136,20,4,15,82,12,164,40,197,210,61,152,16, -155,173,155,241,61,140,236,178,76,102,119,216,90,15,245,131,7,246,48,236, -255,243,195,204,206,90,66,136,109,255,50,219,177,181,27,216,9,130,25,203, -164,64,1,163,200,194,131,139,22,146,229,130,80,52,16,239,56,106,56,135, -18,162,113,49,143,6,230,160,202,28,28,245,4,4,212,57,130,105,56,208,37, -143,73,105,1,119,113,15,218,10,65,3,3,101,241,26,238,195,134,73,42,168, -75,86,80,220,172,129,107,152,70,218,8,16,179,6,170,65,241,244,76,27,40, -227,225,230,111,67,31,4,55,96,71,70,104,109,214,4,42,152,68,16,117,113, -23,77,180,80,192,81,148,54,98,2,23,17,151,103,184,132,21,252,137,141,89, -140,167,109,96,2,186,188,192,121,68,243,19,199,210,78,96,132,135,195,32, -80,23,153,210,109,181,180,13,140,198,172,125,141,101,229,241,154,60,207, -245,19,208,231,43,84,113,54,106,27,118,99,214,150,254,246,54,108,199,172, -61,129,34,150,145,52,251,34,231,136,64,15,254,176,9,44,162,12,85,108,212, -113,22,195,114,8,7,208,199,58,124,105,0,33,181,116,219,112,30,87,48,44, -14,158,224,114,228,28,200,224,20,202,88,193,15,244,208,135,135,95,82,7, -3,93,3,15,116,13,72,85,156,196,251,208,73,120,16,29,124,193,30,184,161, -38,214,224,97,29,223,226,14,162,38,26,168,65,151,124,228,208,90,69,27,107, -114,65,22,187,208,13,77,98,21,223,147,124,13,175,195,49,188,132,100,176, -23,251,209,15,189,59,139,28,122,120,7,145,228,107,184,136,41,60,50,220, -77,57,140,160,31,122,219,14,89,99,1,75,38,23,146,199,24,195,77,131,235, -125,6,54,118,195,11,189,241,35,222,192,248,74,118,11,109,212,97,67,23,11, -25,228,96,195,131,143,89,52,204,175,100,129,25,52,113,27,167,181,19,8,198, -157,197,18,238,224,131,225,133,68,233,19,206,196,252,23,88,232,226,37,158, -226,149,249,81,44,160,207,91,233,42,74,40,34,15,23,29,124,134,113,254,255, -29,255,6,218,250,158,205,145,11,184,210,0,0,0,0,73,69,78,68,174,66,96,130}; - -static size_t xml_res_size_7 = 470; -static unsigned char xml_res_file_7[] = { -137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0, -0,115,122,122,244,0,0,1,157,73,68,65,84,120,94,237,151,79,43,68,81,24,198, -159,209,124,20,132,34,101,33,127,154,44,70,54,174,148,134,40,202,70,81, -40,95,192,245,5,148,20,101,99,161,148,133,146,177,17,11,148,133,133,146, -132,178,99,239,3,204,156,243,190,132,58,119,188,103,220,185,231,52,205, -194,252,234,174,206,115,223,251,235,121,111,183,110,138,153,81,75,26,80, -99,210,136,16,30,222,174,2,8,81,125,194,112,172,107,77,8,216,30,190,50, -220,9,95,214,79,238,96,121,142,16,176,66,204,56,184,126,129,43,19,125,77, -149,175,128,193,86,129,92,111,35,92,33,102,51,55,86,128,171,211,0,51,42, -21,144,73,34,70,174,199,163,1,98,51,55,78,128,108,2,12,236,95,61,195,149, -169,76,139,153,235,210,128,34,194,120,127,51,92,81,68,9,26,32,25,212,196, -216,187,120,132,43,211,3,109,32,242,106,128,49,153,105,133,43,202,247,29, -208,68,216,61,187,135,43,179,131,29,32,175,21,48,99,38,219,14,87,52,51, -136,156,26,48,82,27,71,55,112,101,121,180,219,175,129,167,183,119,44,125, -14,73,140,185,63,73,3,36,2,151,15,175,95,151,39,142,13,24,254,139,0,83, -109,5,116,125,5,68,176,177,57,151,133,43,139,59,231,136,144,7,16,148,21, -40,106,13,131,207,106,226,103,218,5,148,61,172,34,205,44,108,159,34,202, -214,252,208,223,2,42,153,128,169,40,130,210,44,36,197,89,188,64,222,182, -134,116,233,48,26,1,32,38,22,180,142,102,228,153,196,150,15,98,223,1,245, -61,44,245,91,162,160,168,52,35,207,36,246,124,32,87,32,109,133,68,81,147, -204,152,179,184,6,146,124,136,126,194,70,226,24,64,160,153,203,101,96,206, -36,50,47,255,192,234,127,199,31,218,228,30,7,140,193,91,84,0,0,0,0,73,69, -78,68,174,66,96,130}; - -static size_t xml_res_size_8 = 577; -static unsigned char xml_res_file_8[] = { -137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0, -0,115,122,122,244,0,0,2,8,73,68,65,84,120,94,205,148,193,106,83,65,24,133, -191,255,159,105,154,88,104,193,66,17,92,84,220,182,107,193,87,104,92,244, -73,68,55,174,74,5,113,229,74,124,16,41,72,218,71,16,92,183,15,32,34,184, -113,83,33,96,123,239,28,189,224,64,17,114,231,118,66,181,223,38,4,242,157, -115,50,147,92,147,196,255,196,128,120,255,213,241,81,99,62,149,4,26,102, -25,134,59,164,4,226,26,158,25,81,105,246,245,112,111,31,104,34,48,105,240, -233,235,39,143,104,83,194,141,34,73,96,230,188,56,250,200,155,253,199,72, -195,189,224,206,193,135,79,83,96,2,252,136,192,184,85,98,125,53,240,116, -246,133,24,140,190,44,1,77,43,222,238,109,115,209,180,191,61,231,217,241, -112,239,221,244,1,93,31,48,206,3,44,9,54,86,35,15,55,199,172,184,225,214, -255,45,46,147,186,207,211,74,85,94,82,190,16,136,0,109,18,147,24,184,183, -54,38,56,69,218,4,227,24,185,104,82,247,122,45,175,235,233,250,174,178, -117,231,96,166,26,120,254,94,53,116,125,192,86,62,1,242,160,179,211,83, -100,134,153,177,8,73,152,196,206,238,46,164,58,47,247,229,1,25,226,104, -4,230,80,250,57,41,177,156,183,96,64,240,128,204,177,158,28,9,76,70,165, -183,104,128,0,8,209,193,156,34,34,83,233,105,225,9,12,12,50,42,189,194, -21,4,71,229,32,76,80,233,21,6,120,68,102,3,130,60,95,108,133,215,51,32, -70,39,81,14,114,68,165,215,63,192,61,64,69,80,246,234,7,40,95,129,99,215, -10,170,244,180,232,4,66,96,8,14,44,235,101,226,213,65,33,4,76,20,113,35, -83,229,169,239,111,136,40,18,12,42,189,226,163,184,42,40,123,203,15,136, -1,146,202,65,110,84,122,253,3,204,3,142,40,97,110,84,121,165,1,0,238,70, -5,245,30,255,128,219,63,192,141,58,42,61,183,191,6,172,4,167,138,81,164, -134,171,125,17,208,164,157,159,109,188,60,217,185,108,19,105,224,19,45, -186,115,119,109,196,250,225,9,77,26,238,117,229,93,223,57,40,31,226,58, -176,13,108,2,129,155,167,5,190,3,159,129,243,8,204,255,188,249,6,24,55, -143,128,159,192,156,219,192,47,83,42,59,92,177,195,125,179,0,0,0,0,73,69, -78,68,174,66,96,130}; - -static size_t xml_res_size_9 = 439; -static unsigned char xml_res_file_9[] = { -137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0, -0,115,122,122,244,0,0,1,126,73,68,65,84,120,94,237,150,77,74,28,65,20,128, -191,87,245,202,153,65,140,11,93,8,129,65,92,206,1,220,8,57,128,237,194, -147,120,130,144,64,240,4,158,68,144,209,19,184,241,0,115,0,37,155,224,34, -100,147,4,187,235,233,3,153,90,248,179,171,238,133,243,65,195,91,52,124, -31,175,10,186,197,204,24,146,192,192,8,160,159,127,92,158,183,18,26,51, -3,171,111,20,17,212,242,252,231,183,195,99,5,38,45,161,57,61,218,167,203, -153,32,84,37,27,196,16,248,122,113,211,184,91,129,113,103,153,79,163,200, -201,252,14,141,66,173,6,3,218,206,56,107,118,113,167,187,21,16,175,218, -28,41,123,91,99,82,144,106,91,112,207,67,54,119,249,236,136,2,116,217,152, -104,100,103,125,76,12,84,165,203,184,203,157,56,10,94,5,95,166,163,167, -103,74,79,184,179,4,60,199,176,88,44,48,4,17,170,96,6,130,49,155,205,150, -78,165,192,218,90,194,36,80,19,177,204,146,18,96,56,170,9,42,7,224,1,80, -156,20,80,141,61,108,64,88,242,34,32,38,76,164,114,128,189,29,144,82,36, -83,55,32,240,90,128,225,160,170,125,5,20,103,153,65,53,145,141,170,4,41, -254,87,47,97,87,57,32,10,239,95,66,49,171,28,32,111,7,196,20,145,202,103, -16,194,59,1,32,254,194,224,191,100,31,48,96,21,176,10,8,50,128,88,74,0, -41,6,250,165,56,21,176,241,255,223,215,155,223,175,14,30,186,220,203,199, -200,229,238,252,3,38,192,6,48,5,182,1,165,31,90,224,30,184,85,224,175,15, -192,47,64,232,7,3,254,185,155,161,121,4,16,150,123,216,22,243,164,88,0, -0,0,0,73,69,78,68,174,66,96,130}; - -static size_t xml_res_size_10 = 494; -static unsigned char xml_res_file_10[] = { -137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0, -0,115,122,122,244,0,0,1,181,73,68,65,84,120,94,237,149,189,106,21,65,20, -128,191,115,230,228,238,92,52,70,208,66,16,46,98,151,60,128,133,130,15, -224,181,16,31,196,39,240,7,196,90,193,39,17,52,218,217,217,228,1,76,173, -98,35,130,34,98,140,217,153,163,167,200,101,32,245,108,44,238,7,11,135, -109,190,111,152,101,143,0,118,249,241,235,23,163,232,210,221,193,233,139, -128,136,96,94,119,63,63,188,117,199,128,249,136,46,159,220,190,70,169,21, -21,186,82,29,146,42,247,95,238,45,195,109,64,46,94,57,55,36,238,237,126, -194,146,208,171,193,129,177,56,207,151,87,8,39,144,13,144,168,218,26,140, -171,23,50,27,42,168,244,59,253,81,245,112,197,28,136,1,148,234,204,45,113, -233,76,38,41,93,41,149,112,133,147,192,32,170,224,230,98,248,247,44,152, -138,112,174,2,170,59,193,254,254,123,28,65,68,232,129,187,35,56,219,219, -59,43,167,209,48,207,115,92,148,158,136,87,90,140,134,28,1,34,157,3,252, -100,0,126,28,48,163,210,55,64,113,90,167,53,51,121,200,20,167,43,73,90, -63,24,128,172,174,96,136,0,132,62,120,19,32,109,128,170,16,160,137,68,127, -90,167,1,204,146,240,225,219,1,63,15,71,138,123,231,43,16,206,14,22,78, -126,29,7,12,73,217,121,250,150,63,99,197,59,7,136,8,51,83,54,103,214,126, -132,240,236,238,117,74,45,8,125,113,32,105,226,193,171,189,246,79,88,57, -159,39,221,134,225,108,2,78,111,27,242,127,108,195,245,54,92,111,195,245, -54,164,217,134,99,237,91,96,42,39,175,96,245,78,19,166,116,167,117,42,192, -70,82,166,164,117,26,224,249,240,251,187,173,71,111,110,28,149,74,245,254, -39,15,121,56,127,128,11,176,9,44,128,139,128,49,13,35,240,21,248,104,192, -65,12,192,23,64,152,6,7,126,135,155,211,230,47,168,249,205,110,240,4,114, -254,0,0,0,0,73,69,78,68,174,66,96,130}; - -static size_t xml_res_size_11 = 1429; -static unsigned char xml_res_file_11[] = { -60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, -110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, -115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, -47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, -47,119,120,120,114,99,34,62,10,32,32,60,111,98,106,101,99,116,32,99,108, -97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61, -34,100,105,102,102,45,99,111,112,121,45,102,105,108,101,45,108,101,102, -116,45,116,111,45,114,105,103,104,116,34,62,119,120,99,114,97,102,116,101, -114,95,112,108,117,103,105,110,95,98,105,116,109,97,112,115,46,99,112,112, -36,114,101,115,111,117,114,99,101,115,95,100,105,102,102,45,99,111,112, -121,45,102,105,108,101,45,108,101,102,116,45,116,111,45,114,105,103,104, -116,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106, -101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34, -32,110,97,109,101,61,34,100,105,102,102,45,99,111,112,121,45,102,105,108, -101,45,114,105,103,104,116,45,116,111,45,108,101,102,116,34,62,119,120, -99,114,97,102,116,101,114,95,112,108,117,103,105,110,95,98,105,116,109, -97,112,115,46,99,112,112,36,114,101,115,111,117,114,99,101,115,95,100,105, -102,102,45,99,111,112,121,45,102,105,108,101,45,114,105,103,104,116,45, -116,111,45,108,101,102,116,46,112,110,103,60,47,111,98,106,101,99,116,62, -10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66, -105,116,109,97,112,34,32,110,97,109,101,61,34,100,105,102,102,45,99,111, -112,121,45,108,101,102,116,45,116,111,45,114,105,103,104,116,34,62,119, -120,99,114,97,102,116,101,114,95,112,108,117,103,105,110,95,98,105,116, -109,97,112,115,46,99,112,112,36,114,101,115,111,117,114,99,101,115,95,100, -105,102,102,45,99,111,112,121,45,108,101,102,116,45,116,111,45,114,105, -103,104,116,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111, -98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97, -112,34,32,110,97,109,101,61,34,100,105,102,102,45,99,111,112,121,45,114, -105,103,104,116,45,116,111,45,108,101,102,116,34,62,119,120,99,114,97,102, -116,101,114,95,112,108,117,103,105,110,95,98,105,116,109,97,112,115,46, -99,112,112,36,114,101,115,111,117,114,99,101,115,95,100,105,102,102,45, -99,111,112,121,45,114,105,103,104,116,45,116,111,45,108,101,102,116,46, -112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99, -116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110, -97,109,101,61,34,100,105,102,102,45,110,101,120,116,34,62,119,120,99,114, -97,102,116,101,114,95,112,108,117,103,105,110,95,98,105,116,109,97,112, -115,46,99,112,112,36,114,101,115,111,117,114,99,101,115,95,100,105,102, -102,45,110,101,120,116,46,112,110,103,60,47,111,98,106,101,99,116,62,10, -32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105, -116,109,97,112,34,32,110,97,109,101,61,34,100,105,102,102,45,112,114,101, -118,34,62,119,120,99,114,97,102,116,101,114,95,112,108,117,103,105,110, -95,98,105,116,109,97,112,115,46,99,112,112,36,114,101,115,111,117,114,99, -101,115,95,100,105,102,102,45,112,114,101,118,46,112,110,103,60,47,111, -98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115, -115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,100, -105,102,102,45,114,101,102,114,101,115,104,34,62,119,120,99,114,97,102, -116,101,114,95,112,108,117,103,105,110,95,98,105,116,109,97,112,115,46, -99,112,112,36,114,101,115,111,117,114,99,101,115,95,100,105,102,102,45, -114,101,102,114,101,115,104,46,112,110,103,60,47,111,98,106,101,99,116, -62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120, -66,105,116,109,97,112,34,32,110,97,109,101,61,34,100,105,102,102,45,115, -97,118,101,34,62,119,120,99,114,97,102,116,101,114,95,112,108,117,103,105, -110,95,98,105,116,109,97,112,115,46,99,112,112,36,114,101,115,111,117,114, -99,101,115,95,100,105,102,102,45,115,97,118,101,46,112,110,103,60,47,111, -98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115, -115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,116, -105,108,101,95,104,111,114,105,122,111,110,116,97,108,34,62,119,120,99, -114,97,102,116,101,114,95,112,108,117,103,105,110,95,98,105,116,109,97, -112,115,46,99,112,112,36,114,101,115,111,117,114,99,101,115,95,116,105, -108,101,95,104,111,114,105,122,111,110,116,97,108,46,112,110,103,60,47, -111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97, -115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34, -116,105,108,101,95,115,105,110,103,108,101,34,62,119,120,99,114,97,102, -116,101,114,95,112,108,117,103,105,110,95,98,105,116,109,97,112,115,46, -99,112,112,36,114,101,115,111,117,114,99,101,115,95,116,105,108,101,95, -115,105,110,103,108,101,46,112,110,103,60,47,111,98,106,101,99,116,62,10, -32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105, -116,109,97,112,34,32,110,97,109,101,61,34,116,105,108,101,95,118,101,114, -116,105,99,97,108,34,62,119,120,99,114,97,102,116,101,114,95,112,108,117, -103,105,110,95,98,105,116,109,97,112,115,46,99,112,112,36,114,101,115,111, -117,114,99,101,115,95,116,105,108,101,95,118,101,114,116,105,99,97,108, -46,112,110,103,60,47,111,98,106,101,99,116,62,10,60,47,114,101,115,111, -117,114,99,101,62,10}; - -void wxC9D6CInitBitmapResources() -{ - - // Check for memory FS. If not present, load the handler: - { - wxMemoryFSHandler::AddFile(wxT("XRC_resource/dummy_file"), wxT("dummy one")); - wxFileSystem fsys; - wxFSFile *f = fsys.OpenFile(wxT("memory:XRC_resource/dummy_file")); - wxMemoryFSHandler::RemoveFile(wxT("XRC_resource/dummy_file")); - if (f) delete f; - else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase); - } - - XRC_ADD_FILE(wxT("XRC_resource/wxcrafter_plugin_bitmaps.cpp$resources_diff-copy-file-left-to-right.png"), xml_res_file_0, xml_res_size_0, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/wxcrafter_plugin_bitmaps.cpp$resources_diff-copy-file-right-to-left.png"), xml_res_file_1, xml_res_size_1, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/wxcrafter_plugin_bitmaps.cpp$resources_diff-copy-left-to-right.png"), xml_res_file_2, xml_res_size_2, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/wxcrafter_plugin_bitmaps.cpp$resources_diff-copy-right-to-left.png"), xml_res_file_3, xml_res_size_3, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/wxcrafter_plugin_bitmaps.cpp$resources_diff-next.png"), xml_res_file_4, xml_res_size_4, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/wxcrafter_plugin_bitmaps.cpp$resources_diff-prev.png"), xml_res_file_5, xml_res_size_5, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/wxcrafter_plugin_bitmaps.cpp$resources_diff-refresh.png"), xml_res_file_6, xml_res_size_6, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/wxcrafter_plugin_bitmaps.cpp$resources_diff-save.png"), xml_res_file_7, xml_res_size_7, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/wxcrafter_plugin_bitmaps.cpp$resources_tile_horizontal.png"), xml_res_file_8, xml_res_size_8, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/wxcrafter_plugin_bitmaps.cpp$resources_tile_single.png"), xml_res_file_9, xml_res_size_9, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/wxcrafter_plugin_bitmaps.cpp$resources_tile_vertical.png"), xml_res_file_10, xml_res_size_10, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/wxcrafter_plugin_bitmaps.cpp$C__src_codelite_Plugin_wxcrafter_plugin_bitmaps.xrc"), xml_res_file_11, xml_res_size_11, wxT("text/xml")); - wxXmlResource::Get()->Load(wxT("memory:XRC_resource/wxcrafter_plugin_bitmaps.cpp$C__src_codelite_Plugin_wxcrafter_plugin_bitmaps.xrc")); -} +// +// This file was automatically generated by wxrc, do not edit by hand. +// + +#include + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +#include +#include +#include +#include + +#if wxCHECK_VERSION(2,8,5) && wxABI_VERSION >= 20805 + #define XRC_ADD_FILE(name, data, size, mime) \ + wxMemoryFSHandler::AddFileWithMimeType(name, data, size, mime) +#else + #define XRC_ADD_FILE(name, data, size, mime) \ + wxMemoryFSHandler::AddFile(name, data, size) +#endif + +static size_t xml_res_size_0 = 648; +static unsigned char xml_res_file_0[] = { +137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0, +0,115,122,122,244,0,0,0,6,98,75,71,68,0,255,0,255,0,255,160,189,167,147, +0,0,0,9,112,72,89,115,0,0,11,19,0,0,11,19,1,0,154,156,24,0,0,0,7,116,73, +77,69,7,222,2,11,18,7,57,70,199,106,79,0,0,2,21,73,68,65,84,88,195,237, +151,77,75,27,81,20,134,223,147,4,252,216,4,210,177,43,215,249,248,5,174, +149,150,34,173,21,4,81,247,18,164,5,41,34,82,44,157,224,8,93,118,89,16, +145,182,40,106,84,92,248,129,11,23,130,109,169,109,253,3,153,100,231,66, +186,200,166,27,45,73,238,113,161,209,123,147,155,201,76,108,18,44,30,56, +48,51,204,189,247,185,239,156,243,94,6,184,143,187,30,137,141,227,173,196, +198,49,215,58,222,247,15,24,250,174,64,184,89,0,178,26,220,112,0,102,86, +210,92,255,197,77,5,96,102,188,93,251,201,13,3,16,172,207,55,73,119,16, +4,0,211,171,63,230,0,196,235,209,37,239,134,187,168,170,2,130,57,46,152, +81,143,124,189,114,196,110,0,234,154,83,203,223,217,25,64,136,186,231,228, +210,55,110,154,2,197,156,88,252,202,21,20,224,134,229,171,207,95,184,169, +0,66,48,198,63,30,94,67,4,0,160,51,119,130,179,211,140,167,246,250,243, +32,134,191,237,15,111,221,166,1,0,56,59,205,192,52,77,79,3,45,203,194,239, +214,142,154,22,253,48,218,77,10,64,49,178,217,44,132,16,151,14,69,55,254, +81,188,38,34,248,253,126,4,131,65,0,64,65,120,63,0,231,226,61,84,166,192, +181,173,10,1,219,182,149,5,21,219,36,66,44,22,83,222,247,18,243,99,143, +72,251,9,228,136,68,34,142,10,168,192,238,21,88,120,241,152,42,214,128, +188,144,172,64,217,193,81,162,64,129,221,41,240,233,229,19,114,44,66,57, +194,225,176,102,199,231,96,110,129,207,167,30,158,249,66,117,128,165,241, +94,170,218,5,114,164,211,105,229,62,26,141,2,104,3,112,14,160,181,108,242, +161,247,59,21,191,67,114,226,25,185,106,67,89,98,157,2,68,4,162,54,237, +4,185,124,65,251,124,115,170,159,92,251,128,28,182,109,59,22,223,165,34, +206,0,219,211,3,228,201,136,74,187,64,175,128,126,206,124,9,192,158,57, +72,158,157,80,222,113,42,149,210,238,188,88,253,165,32,114,33,238,207,12, +81,77,86,172,83,64,7,161,83,33,47,196,54,128,190,131,217,17,170,197,150, +21,128,80,40,228,121,130,131,217,145,231,183,62,140,12,195,216,181,44,235, +169,151,129,134,97,36,255,139,127,203,11,15,61,127,111,56,81,112,148,0, +0,0,0,73,69,78,68,174,66,96,130}; + +static size_t xml_res_size_1 = 649; +static unsigned char xml_res_file_1[] = { +137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0, +0,115,122,122,244,0,0,0,6,98,75,71,68,0,255,0,255,0,255,160,189,167,147, +0,0,0,9,112,72,89,115,0,0,11,19,0,0,11,19,1,0,154,156,24,0,0,0,7,116,73, +77,69,7,222,2,11,18,8,5,238,48,10,7,0,0,2,22,73,68,65,84,88,195,99,96,24, +5,67,17,212,175,57,243,191,126,205,153,77,212,48,139,137,28,203,161,76, +95,186,59,0,201,114,170,1,22,98,21,214,173,62,253,255,255,127,170,219,79, +156,3,106,87,157,162,137,229,68,57,160,122,229,169,255,255,254,211,46,65, +51,226,147,172,90,113,146,86,86,207,106,139,48,79,199,155,8,43,150,159, +248,255,239,255,127,6,26,225,52,188,81,80,182,236,248,255,127,255,255,211, +165,76,193,112,64,201,146,163,255,255,253,251,71,183,66,13,197,1,69,139, +143,208,205,231,24,14,40,88,120,248,255,191,127,244,181,28,238,128,188, +249,135,200,182,92,246,247,19,134,111,207,111,147,164,231,179,176,54,170, +3,254,253,39,63,206,191,61,191,205,80,87,87,71,146,158,166,166,38,84,7, +76,73,114,96,204,154,179,159,162,240,127,251,246,45,3,44,241,50,50,34,138, +23,24,155,145,145,145,129,153,153,153,129,159,159,31,123,26,152,150,226, +200,152,62,107,31,217,142,248,247,239,31,195,173,91,183,80,44,68,41,241, +24,25,25,52,53,53,241,231,130,153,105,78,140,169,51,246,144,237,8,117,117, +117,188,33,64,84,57,48,59,195,133,49,121,218,110,146,29,193,200,200,136, +18,2,216,228,9,134,0,12,204,205,114,101,76,152,186,147,100,71,168,169,169, +97,241,241,15,134,255,255,217,25,152,152,152,72,171,13,23,100,187,51,198, +76,218,78,146,35,110,223,70,205,142,26,26,26,12,12,12,156,12,12,12,63,24, +24,24,56,72,111,17,45,201,243,100,252,253,231,47,3,46,188,36,207,147,17, +57,136,213,212,212,24,212,213,213,25,212,213,213,161,150,67,196,153,152, +56,137,79,3,232,96,101,145,15,99,80,215,70,162,66,226,214,173,91,120,19, +31,204,81,36,183,136,214,149,249,51,250,182,173,251,79,76,46,64,183,152, +145,145,17,167,239,73,106,19,110,174,10,98,244,108,90,253,31,95,46,184, +121,243,38,86,159,195,82,63,54,135,176,144,146,200,182,215,133,50,186,214, +175,252,79,40,4,176,57,130,236,52,128,14,118,55,134,51,58,214,46,255,207, +192,192,176,25,89,92,72,72,136,182,205,114,100,176,191,57,18,238,29,17, +17,145,173,77,77,77,222,164,232,23,17,17,89,57,218,191,132,1,0,118,110, +255,14,215,21,22,68,0,0,0,0,73,69,78,68,174,66,96,130}; + +static size_t xml_res_size_2 = 261; +static unsigned char xml_res_file_2[] = { +137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0, +0,115,122,122,244,0,0,0,204,73,68,65,84,120,94,237,215,65,10,194,48,20, +4,208,70,188,145,231,232,202,59,164,215,232,53,244,14,110,244,28,158,200, +228,143,191,32,204,34,171,180,101,190,160,129,240,151,243,152,79,161,73, +0,134,200,115,240,251,219,128,227,50,230,219,115,11,224,238,119,244,155, +122,0,243,249,180,91,3,227,103,226,27,86,128,85,43,0,176,55,34,233,1,253, +8,2,140,249,98,4,27,184,248,200,114,4,27,0,195,165,8,2,72,18,34,8,48,35, +64,134,104,27,208,35,216,0,1,42,68,32,128,8,2,96,131,250,132,54,208,172, +160,106,1,41,234,51,100,120,11,64,72,56,87,0,139,8,39,160,84,187,250,200, +226,112,2,94,165,78,62,166,149,0,244,135,183,0,65,237,66,64,247,47,89,33, +64,26,78,64,181,144,112,2,108,19,224,193,135,73,255,249,63,78,195,1,111, +156,143,95,96,18,4,249,13,0,0,0,0,73,69,78,68,174,66,96,130}; + +static size_t xml_res_size_3 = 259; +static unsigned char xml_res_file_3[] = { +137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0, +0,115,122,122,244,0,0,0,202,73,68,65,84,120,94,237,215,193,13,194,48,12, +5,208,6,177,17,115,192,133,29,96,141,206,209,29,56,117,14,38,34,241,39, +8,161,47,148,3,138,69,190,15,80,201,189,254,87,219,169,148,4,96,138,124, +54,181,126,27,176,125,188,230,203,181,23,128,90,107,173,131,23,48,31,119, +238,14,188,150,102,31,49,2,12,25,1,0,71,184,22,128,161,75,104,112,132,139, +58,128,65,157,89,106,157,217,1,64,253,229,167,79,0,72,127,68,102,22,18, +222,116,128,225,106,128,129,225,65,0,134,135,0,96,83,44,192,144,66,71,80, +158,59,208,32,212,199,144,136,160,83,32,71,112,4,92,66,37,130,128,92,8, +16,33,150,55,192,45,23,2,250,16,201,111,104,1,46,132,0,64,196,48,64,38, +64,136,104,151,80,142,32,192,8,232,64,172,223,0,252,47,167,225,128,59,232, +234,107,51,227,177,82,145,0,0,0,0,73,69,78,68,174,66,96,130}; + +static size_t xml_res_size_4 = 273; +static unsigned char xml_res_file_4[] = { +137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0, +0,115,122,122,244,0,0,0,216,73,68,65,84,120,94,237,151,221,13,2,33,16,132, +89,99,71,214,129,47,246,160,109,92,27,218,131,47,90,135,21,121,236,200, +147,99,114,255,192,6,147,187,77,54,199,61,144,249,50,12,16,4,128,171,89, +251,223,159,230,254,26,18,184,198,62,47,20,184,197,190,244,137,54,167,195, +119,188,155,199,217,21,207,159,67,128,255,89,2,56,84,6,64,109,7,128,149, +3,40,214,158,1,213,45,3,186,242,37,80,96,115,224,17,63,190,160,64,159,165, +207,216,199,33,7,188,179,47,63,182,11,132,212,102,37,83,25,176,132,144, +57,33,180,130,144,201,16,6,30,68,132,48,20,239,2,4,2,20,132,144,217,219, +240,77,128,82,16,178,232,28,104,219,48,102,33,178,197,167,29,32,64,30,4, +197,83,28,200,128,160,120,26,0,51,144,10,33,89,119,65,80,2,36,64,80,220, +30,128,16,28,167,85,237,215,113,253,183,225,7,121,210,102,77,100,22,152, +248,0,0,0,0,73,69,78,68,174,66,96,130}; + +static size_t xml_res_size_5 = 275; +static unsigned char xml_res_file_5[] = { +137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0, +0,115,122,122,244,0,0,0,218,73,68,65,84,120,94,229,215,209,9,194,48,24, +4,224,164,184,75,159,187,65,23,208,1,28,192,41,124,116,138,14,224,2,93, +160,27,248,236,44,38,57,139,79,226,97,241,250,19,126,161,7,165,143,247, +113,13,133,68,0,193,51,187,247,130,254,124,149,0,125,215,190,244,211,237, +30,21,192,116,57,126,1,116,173,2,192,7,36,134,21,105,194,186,32,112,96, +254,4,8,208,203,25,17,215,3,96,42,103,132,14,128,80,174,32,236,0,150,217, +17,12,40,128,82,110,71,240,2,74,185,29,193,11,20,40,229,118,4,47,0,42,175, +137,224,5,80,168,188,38,130,1,116,10,235,34,24,0,140,243,107,95,25,48,46, +45,112,88,80,203,177,254,7,234,135,23,240,6,160,184,47,176,113,64,70,113, +6,100,103,192,195,27,144,82,246,94,32,111,124,129,228,125,6,114,249,95, +192,48,63,39,17,48,252,2,112,191,29,55,193,57,79,87,170,117,156,211,208, +110,126,0,0,0,0,73,69,78,68,174,66,96,130}; + +static size_t xml_res_size_6 = 611; +static unsigned char xml_res_file_6[] = { +137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0, +0,115,122,122,244,0,0,2,42,73,68,65,84,120,94,237,215,65,104,19,65,24,134, +97,87,77,226,106,21,9,4,3,145,66,37,32,120,202,73,16,4,65,40,20,149,21, +37,16,40,8,30,10,130,232,221,131,23,65,41,120,242,38,241,162,88,20,130, +136,180,162,20,60,137,226,65,136,20,4,15,82,12,164,40,197,210,61,152,16, +155,173,155,241,61,140,236,178,76,102,119,216,90,15,245,131,7,246,48,236, +255,243,195,204,206,90,66,136,109,255,50,219,177,181,27,216,9,130,25,203, +164,64,1,163,200,194,131,139,22,146,229,130,80,52,16,239,56,106,56,135, +18,162,113,49,143,6,230,160,202,28,28,245,4,4,212,57,130,105,56,208,37, +143,73,105,1,119,113,15,218,10,65,3,3,101,241,26,238,195,134,73,42,168, +75,86,80,220,172,129,107,152,70,218,8,16,179,6,170,65,241,244,76,27,40, +227,225,230,111,67,31,4,55,96,71,70,104,109,214,4,42,152,68,16,117,113, +23,77,180,80,192,81,148,54,98,2,23,17,151,103,184,132,21,252,137,141,89, +140,167,109,96,2,186,188,192,121,68,243,19,199,210,78,96,132,135,195,32, +80,23,153,210,109,181,180,13,140,198,172,125,141,101,229,241,154,60,207, +245,19,208,231,43,84,113,54,106,27,118,99,214,150,254,246,54,108,199,172, +61,129,34,150,145,52,251,34,231,136,64,15,254,176,9,44,162,12,85,108,212, +113,22,195,114,8,7,208,199,58,124,105,0,33,181,116,219,112,30,87,48,44, +14,158,224,114,228,28,200,224,20,202,88,193,15,244,208,135,135,95,82,7, +3,93,3,15,116,13,72,85,156,196,251,208,73,120,16,29,124,193,30,184,161, +38,214,224,97,29,223,226,14,162,38,26,168,65,151,124,228,208,90,69,27,107, +114,65,22,187,208,13,77,98,21,223,147,124,13,175,195,49,188,132,100,176, +23,251,209,15,189,59,139,28,122,120,7,145,228,107,184,136,41,60,50,220, +77,57,140,160,31,122,219,14,89,99,1,75,38,23,146,199,24,195,77,131,235, +125,6,54,118,195,11,189,241,35,222,192,248,74,118,11,109,212,97,67,23,11, +25,228,96,195,131,143,89,52,204,175,100,129,25,52,113,27,167,181,19,8,198, +157,197,18,238,224,131,225,133,68,233,19,206,196,252,23,88,232,226,37,158, +226,149,249,81,44,160,207,91,233,42,74,40,34,15,23,29,124,134,113,254,255, +29,255,6,218,250,158,205,145,11,184,210,0,0,0,0,73,69,78,68,174,66,96,130}; + +static size_t xml_res_size_7 = 470; +static unsigned char xml_res_file_7[] = { +137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0, +0,115,122,122,244,0,0,1,157,73,68,65,84,120,94,237,151,79,43,68,81,24,198, +159,209,124,20,132,34,101,33,127,154,44,70,54,174,148,134,40,202,70,81, +40,95,192,245,5,148,20,101,99,161,148,133,146,177,17,11,148,133,133,146, +132,178,99,239,3,204,156,243,190,132,58,119,188,103,220,185,231,52,205, +194,252,234,174,206,115,223,251,235,121,111,183,110,138,153,81,75,26,80, +99,210,136,16,30,222,174,2,8,81,125,194,112,172,107,77,8,216,30,190,50, +220,9,95,214,79,238,96,121,142,16,176,66,204,56,184,126,129,43,19,125,77, +149,175,128,193,86,129,92,111,35,92,33,102,51,55,86,128,171,211,0,51,42, +21,144,73,34,70,174,199,163,1,98,51,55,78,128,108,2,12,236,95,61,195,149, +169,76,139,153,235,210,128,34,194,120,127,51,92,81,68,9,26,32,25,212,196, +216,187,120,132,43,211,3,109,32,242,106,128,49,153,105,133,43,202,247,29, +208,68,216,61,187,135,43,179,131,29,32,175,21,48,99,38,219,14,87,52,51, +136,156,26,48,82,27,71,55,112,101,121,180,219,175,129,167,183,119,44,125, +14,73,140,185,63,73,3,36,2,151,15,175,95,151,39,142,13,24,254,139,0,83, +109,5,116,125,5,68,176,177,57,151,133,43,139,59,231,136,144,7,16,148,21, +40,106,13,131,207,106,226,103,218,5,148,61,172,34,205,44,108,159,34,202, +214,252,208,223,2,42,153,128,169,40,130,210,44,36,197,89,188,64,222,182, +134,116,233,48,26,1,32,38,22,180,142,102,228,153,196,150,15,98,223,1,245, +61,44,245,91,162,160,168,52,35,207,36,246,124,32,87,32,109,133,68,81,147, +204,152,179,184,6,146,124,136,126,194,70,226,24,64,160,153,203,101,96,206, +36,50,47,255,192,234,127,199,31,218,228,30,7,140,193,91,84,0,0,0,0,73,69, +78,68,174,66,96,130}; + +static size_t xml_res_size_8 = 203; +static unsigned char xml_res_file_8[] = { +137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, +0,31,243,255,97,0,0,0,6,98,75,71,68,0,255,0,255,0,255,160,189,167,147,0, +0,0,9,112,72,89,115,0,0,18,116,0,0,18,116,1,222,102,31,120,0,0,0,7,116, +73,77,69,7,223,9,15,5,4,24,11,4,233,196,0,0,0,88,73,68,65,84,56,203,229, +146,49,14,192,48,8,3,173,254,255,91,188,5,130,152,248,128,59,117,201,66, +137,212,102,136,71,15,150,238,100,224,172,144,164,169,82,68,248,116,87, +103,32,51,49,220,97,170,88,26,136,8,152,25,134,251,38,230,182,131,153,185, +237,96,102,254,222,65,197,92,58,168,152,75,7,21,243,255,63,120,147,27,79, +4,165,19,44,104,199,124,0,0,0,0,73,69,78,68,174,66,96,130}; + +static size_t xml_res_size_9 = 577; +static unsigned char xml_res_file_9[] = { +137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0, +0,115,122,122,244,0,0,2,8,73,68,65,84,120,94,205,148,193,106,83,65,24,133, +191,255,159,105,154,88,104,193,66,17,92,84,220,182,107,193,87,104,92,244, +73,68,55,174,74,5,113,229,74,124,16,41,72,218,71,16,92,183,15,32,34,184, +113,83,33,96,123,239,28,189,224,64,17,114,231,118,66,181,223,38,4,242,157, +115,50,147,92,147,196,255,196,128,120,255,213,241,81,99,62,149,4,26,102, +25,134,59,164,4,226,26,158,25,81,105,246,245,112,111,31,104,34,48,105,240, +233,235,39,143,104,83,194,141,34,73,96,230,188,56,250,200,155,253,199,72, +195,189,224,206,193,135,79,83,96,2,252,136,192,184,85,98,125,53,240,116, +246,133,24,140,190,44,1,77,43,222,238,109,115,209,180,191,61,231,217,241, +112,239,221,244,1,93,31,48,206,3,44,9,54,86,35,15,55,199,172,184,225,214, +255,45,46,147,186,207,211,74,85,94,82,190,16,136,0,109,18,147,24,184,183, +54,38,56,69,218,4,227,24,185,104,82,247,122,45,175,235,233,250,174,178, +117,231,96,166,26,120,254,94,53,116,125,192,86,62,1,242,160,179,211,83, +100,134,153,177,8,73,152,196,206,238,46,164,58,47,247,229,1,25,226,104, +4,230,80,250,57,41,177,156,183,96,64,240,128,204,177,158,28,9,76,70,165, +183,104,128,0,8,209,193,156,34,34,83,233,105,225,9,12,12,50,42,189,194, +21,4,71,229,32,76,80,233,21,6,120,68,102,3,130,60,95,108,133,215,51,32, +70,39,81,14,114,68,165,215,63,192,61,64,69,80,246,234,7,40,95,129,99,215, +10,170,244,180,232,4,66,96,8,14,44,235,101,226,213,65,33,4,76,20,113,35, +83,229,169,239,111,136,40,18,12,42,189,226,163,184,42,40,123,203,15,136, +1,146,202,65,110,84,122,253,3,204,3,142,40,97,110,84,121,165,1,0,238,70, +5,245,30,255,128,219,63,192,141,58,42,61,183,191,6,172,4,167,138,81,164, +134,171,125,17,208,164,157,159,109,188,60,217,185,108,19,105,224,19,45, +186,115,119,109,196,250,225,9,77,26,238,117,229,93,223,57,40,31,226,58, +176,13,108,2,129,155,167,5,190,3,159,129,243,8,204,255,188,249,6,24,55, +143,128,159,192,156,219,192,47,83,42,59,92,177,195,125,179,0,0,0,0,73,69, +78,68,174,66,96,130}; + +static size_t xml_res_size_10 = 439; +static unsigned char xml_res_file_10[] = { +137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0, +0,115,122,122,244,0,0,1,126,73,68,65,84,120,94,237,150,77,74,28,65,20,128, +191,87,245,202,153,65,140,11,93,8,129,65,92,206,1,220,8,57,128,237,194, +147,120,130,144,64,240,4,158,68,144,209,19,184,241,0,115,0,37,155,224,34, +100,147,4,187,235,233,3,153,90,248,179,171,238,133,243,65,195,91,52,124, +31,175,10,186,197,204,24,146,192,192,8,160,159,127,92,158,183,18,26,51, +3,171,111,20,17,212,242,252,231,183,195,99,5,38,45,161,57,61,218,167,203, +153,32,84,37,27,196,16,248,122,113,211,184,91,129,113,103,153,79,163,200, +201,252,14,141,66,173,6,3,218,206,56,107,118,113,167,187,21,16,175,218, +28,41,123,91,99,82,144,106,91,112,207,67,54,119,249,236,136,2,116,217,152, +104,100,103,125,76,12,84,165,203,184,203,157,56,10,94,5,95,166,163,167, +103,74,79,184,179,4,60,199,176,88,44,48,4,17,170,96,6,130,49,155,205,150, +78,165,192,218,90,194,36,80,19,177,204,146,18,96,56,170,9,42,7,224,1,80, +156,20,80,141,61,108,64,88,242,34,32,38,76,164,114,128,189,29,144,82,36, +83,55,32,240,90,128,225,160,170,125,5,20,103,153,65,53,145,141,170,4,41, +254,87,47,97,87,57,32,10,239,95,66,49,171,28,32,111,7,196,20,145,202,103, +16,194,59,1,32,254,194,224,191,100,31,48,96,21,176,10,8,50,128,88,74,0, +41,6,250,165,56,21,176,241,255,223,215,155,223,175,14,30,186,220,203,199, +200,229,238,252,3,38,192,6,48,5,182,1,165,31,90,224,30,184,85,224,175,15, +192,47,64,232,7,3,254,185,155,161,121,4,16,150,123,216,22,243,164,88,0, +0,0,0,73,69,78,68,174,66,96,130}; + +static size_t xml_res_size_11 = 494; +static unsigned char xml_res_file_11[] = { +137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0, +0,115,122,122,244,0,0,1,181,73,68,65,84,120,94,237,149,189,106,21,65,20, +128,191,115,230,228,238,92,52,70,208,66,16,46,98,151,60,128,133,130,15, +224,181,16,31,196,39,240,7,196,90,193,39,17,52,218,217,217,228,1,76,173, +98,35,130,34,98,140,217,153,163,167,200,101,32,245,108,44,238,7,11,135, +109,190,111,152,101,143,0,118,249,241,235,23,163,232,210,221,193,233,139, +128,136,96,94,119,63,63,188,117,199,128,249,136,46,159,220,190,70,169,21, +21,186,82,29,146,42,247,95,238,45,195,109,64,46,94,57,55,36,238,237,126, +194,146,208,171,193,129,177,56,207,151,87,8,39,144,13,144,168,218,26,140, +171,23,50,27,42,168,244,59,253,81,245,112,197,28,136,1,148,234,204,45,113, +233,76,38,41,93,41,149,112,133,147,192,32,170,224,230,98,248,247,44,152, +138,112,174,2,170,59,193,254,254,123,28,65,68,232,129,187,35,56,219,219, +59,43,167,209,48,207,115,92,148,158,136,87,90,140,134,28,1,34,157,3,252, +100,0,126,28,48,163,210,55,64,113,90,167,53,51,121,200,20,167,43,73,90, +63,24,128,172,174,96,136,0,132,62,120,19,32,109,128,170,16,160,137,68,127, +90,167,1,204,146,240,225,219,1,63,15,71,138,123,231,43,16,206,14,22,78, +126,29,7,12,73,217,121,250,150,63,99,197,59,7,136,8,51,83,54,103,214,126, +132,240,236,238,117,74,45,8,125,113,32,105,226,193,171,189,246,79,88,57, +159,39,221,134,225,108,2,78,111,27,242,127,108,195,245,54,92,111,195,245, +54,164,217,134,99,237,91,96,42,39,175,96,245,78,19,166,116,167,117,42,192, +70,82,166,164,117,26,224,249,240,251,187,173,71,111,110,28,149,74,245,254, +39,15,121,56,127,128,11,176,9,44,128,139,128,49,13,35,240,21,248,104,192, +65,12,192,23,64,152,6,7,126,135,155,211,230,47,168,249,205,110,240,4,114, +254,0,0,0,0,73,69,78,68,174,66,96,130}; + +static size_t xml_res_size_12 = 1528; +static unsigned char xml_res_file_12[] = { +60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, +110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, +115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, +47,47,119,119,119,46,119,120,119,105,100,103,101,116,115,46,111,114,103, +47,119,120,120,114,99,34,62,10,32,32,60,111,98,106,101,99,116,32,99,108, +97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61, +34,100,105,102,102,45,99,111,112,121,45,102,105,108,101,45,108,101,102, +116,45,116,111,45,114,105,103,104,116,34,62,119,120,99,114,97,102,116,101, +114,95,112,108,117,103,105,110,95,98,105,116,109,97,112,115,46,99,112,112, +36,114,101,115,111,117,114,99,101,115,95,100,105,102,102,45,99,111,112, +121,45,102,105,108,101,45,108,101,102,116,45,116,111,45,114,105,103,104, +116,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106, +101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34, +32,110,97,109,101,61,34,100,105,102,102,45,99,111,112,121,45,102,105,108, +101,45,114,105,103,104,116,45,116,111,45,108,101,102,116,34,62,119,120, +99,114,97,102,116,101,114,95,112,108,117,103,105,110,95,98,105,116,109, +97,112,115,46,99,112,112,36,114,101,115,111,117,114,99,101,115,95,100,105, +102,102,45,99,111,112,121,45,102,105,108,101,45,114,105,103,104,116,45, +116,111,45,108,101,102,116,46,112,110,103,60,47,111,98,106,101,99,116,62, +10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66, +105,116,109,97,112,34,32,110,97,109,101,61,34,100,105,102,102,45,99,111, +112,121,45,108,101,102,116,45,116,111,45,114,105,103,104,116,34,62,119, +120,99,114,97,102,116,101,114,95,112,108,117,103,105,110,95,98,105,116, +109,97,112,115,46,99,112,112,36,114,101,115,111,117,114,99,101,115,95,100, +105,102,102,45,99,111,112,121,45,108,101,102,116,45,116,111,45,114,105, +103,104,116,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111, +98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97, +112,34,32,110,97,109,101,61,34,100,105,102,102,45,99,111,112,121,45,114, +105,103,104,116,45,116,111,45,108,101,102,116,34,62,119,120,99,114,97,102, +116,101,114,95,112,108,117,103,105,110,95,98,105,116,109,97,112,115,46, +99,112,112,36,114,101,115,111,117,114,99,101,115,95,100,105,102,102,45, +99,111,112,121,45,114,105,103,104,116,45,116,111,45,108,101,102,116,46, +112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99, +116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110, +97,109,101,61,34,100,105,102,102,45,110,101,120,116,34,62,119,120,99,114, +97,102,116,101,114,95,112,108,117,103,105,110,95,98,105,116,109,97,112, +115,46,99,112,112,36,114,101,115,111,117,114,99,101,115,95,100,105,102, +102,45,110,101,120,116,46,112,110,103,60,47,111,98,106,101,99,116,62,10, +32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105, +116,109,97,112,34,32,110,97,109,101,61,34,100,105,102,102,45,112,114,101, +118,34,62,119,120,99,114,97,102,116,101,114,95,112,108,117,103,105,110, +95,98,105,116,109,97,112,115,46,99,112,112,36,114,101,115,111,117,114,99, +101,115,95,100,105,102,102,45,112,114,101,118,46,112,110,103,60,47,111, +98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115, +115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,100, +105,102,102,45,114,101,102,114,101,115,104,34,62,119,120,99,114,97,102, +116,101,114,95,112,108,117,103,105,110,95,98,105,116,109,97,112,115,46, +99,112,112,36,114,101,115,111,117,114,99,101,115,95,100,105,102,102,45, +114,101,102,114,101,115,104,46,112,110,103,60,47,111,98,106,101,99,116, +62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120, +66,105,116,109,97,112,34,32,110,97,109,101,61,34,100,105,102,102,45,115, +97,118,101,34,62,119,120,99,114,97,102,116,101,114,95,112,108,117,103,105, +110,95,98,105,116,109,97,112,115,46,99,112,112,36,114,101,115,111,117,114, +99,101,115,95,100,105,102,102,45,115,97,118,101,46,112,110,103,60,47,111, +98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115, +115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,114, +101,115,105,122,101,34,62,119,120,99,114,97,102,116,101,114,95,112,108, +117,103,105,110,95,98,105,116,109,97,112,115,46,99,112,112,36,46,46,95, +105,99,111,110,115,95,114,101,115,105,122,101,46,112,110,103,60,47,111, +98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115, +115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,116, +105,108,101,95,104,111,114,105,122,111,110,116,97,108,34,62,119,120,99, +114,97,102,116,101,114,95,112,108,117,103,105,110,95,98,105,116,109,97, +112,115,46,99,112,112,36,114,101,115,111,117,114,99,101,115,95,116,105, +108,101,95,104,111,114,105,122,111,110,116,97,108,46,112,110,103,60,47, +111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97, +115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34, +116,105,108,101,95,115,105,110,103,108,101,34,62,119,120,99,114,97,102, +116,101,114,95,112,108,117,103,105,110,95,98,105,116,109,97,112,115,46, +99,112,112,36,114,101,115,111,117,114,99,101,115,95,116,105,108,101,95, +115,105,110,103,108,101,46,112,110,103,60,47,111,98,106,101,99,116,62,10, +32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105, +116,109,97,112,34,32,110,97,109,101,61,34,116,105,108,101,95,118,101,114, +116,105,99,97,108,34,62,119,120,99,114,97,102,116,101,114,95,112,108,117, +103,105,110,95,98,105,116,109,97,112,115,46,99,112,112,36,114,101,115,111, +117,114,99,101,115,95,116,105,108,101,95,118,101,114,116,105,99,97,108, +46,112,110,103,60,47,111,98,106,101,99,116,62,10,60,47,114,101,115,111, +117,114,99,101,62,10}; + +void wxC9D6CInitBitmapResources() +{ + + // Check for memory FS. If not present, load the handler: + { + wxMemoryFSHandler::AddFile(wxT("XRC_resource/dummy_file"), wxT("dummy one")); + wxFileSystem fsys; + wxFSFile *f = fsys.OpenFile(wxT("memory:XRC_resource/dummy_file")); + wxMemoryFSHandler::RemoveFile(wxT("XRC_resource/dummy_file")); + if (f) delete f; + else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase); + } + + XRC_ADD_FILE(wxT("XRC_resource/wxcrafter_plugin_bitmaps.cpp$resources_diff-copy-file-left-to-right.png"), xml_res_file_0, xml_res_size_0, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/wxcrafter_plugin_bitmaps.cpp$resources_diff-copy-file-right-to-left.png"), xml_res_file_1, xml_res_size_1, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/wxcrafter_plugin_bitmaps.cpp$resources_diff-copy-left-to-right.png"), xml_res_file_2, xml_res_size_2, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/wxcrafter_plugin_bitmaps.cpp$resources_diff-copy-right-to-left.png"), xml_res_file_3, xml_res_size_3, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/wxcrafter_plugin_bitmaps.cpp$resources_diff-next.png"), xml_res_file_4, xml_res_size_4, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/wxcrafter_plugin_bitmaps.cpp$resources_diff-prev.png"), xml_res_file_5, xml_res_size_5, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/wxcrafter_plugin_bitmaps.cpp$resources_diff-refresh.png"), xml_res_file_6, xml_res_size_6, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/wxcrafter_plugin_bitmaps.cpp$resources_diff-save.png"), xml_res_file_7, xml_res_size_7, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/wxcrafter_plugin_bitmaps.cpp$.._icons_resize.png"), xml_res_file_8, xml_res_size_8, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/wxcrafter_plugin_bitmaps.cpp$resources_tile_horizontal.png"), xml_res_file_9, xml_res_size_9, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/wxcrafter_plugin_bitmaps.cpp$resources_tile_single.png"), xml_res_file_10, xml_res_size_10, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/wxcrafter_plugin_bitmaps.cpp$resources_tile_vertical.png"), xml_res_file_11, xml_res_size_11, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/wxcrafter_plugin_bitmaps.cpp$_Users_eran_devl_codelite_Plugin_wxcrafter_plugin_bitmaps.xrc"), xml_res_file_12, xml_res_size_12, wxT("text/xml")); + wxXmlResource::Get()->Load(wxT("memory:XRC_resource/wxcrafter_plugin_bitmaps.cpp$_Users_eran_devl_codelite_Plugin_wxcrafter_plugin_bitmaps.xrc")); +} diff -Nru codelite-8.0.1+dfsg2/Plugin/wxcrafter_plugin.cpp codelite-9.0+dfsg/Plugin/wxcrafter_plugin.cpp --- codelite-8.0.1+dfsg2/Plugin/wxcrafter_plugin.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/wxcrafter_plugin.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -79,11 +79,23 @@ boxSizer4->Add(m_button8, 0, wxALL, 5); + SetName(wxT("EditDlgBase")); SetSizeHints(-1,-1); - if ( GetSizer() ) { + if (GetSizer()) { GetSizer()->Fit(this); } - Centre(wxBOTH); + if(GetParent()) { + CentreOnParent(wxBOTH); + } else { + CentreOnScreen(wxBOTH); + } +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(this)) { + wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); + } +#endif } EditDlgBase::~EditDlgBase() @@ -159,7 +171,7 @@ wxBoxSizer* boxSizer111 = new wxBoxSizer(wxVERTICAL); m_splitterPageLeft->SetSizer(boxSizer111); - m_filePickerLeft = new wxFilePickerCtrl(m_splitterPageLeft, wxID_ANY, wxEmptyString, _("Select a file"), wxT("*"), wxDefaultPosition, wxSize(-1,-1), wxFLP_DEFAULT_STYLE|wxFLP_USE_TEXTCTRL|wxFLP_SMALL); + m_filePickerLeft = new wxFilePickerCtrl(m_splitterPageLeft, wxID_ANY, wxEmptyString, _("Select a file"), wxT("*"), wxDefaultPosition, wxSize(-1,-1), wxFLP_DEFAULT_STYLE|wxFLP_USE_TEXTCTRL); boxSizer111->Add(m_filePickerLeft, 0, wxALL|wxEXPAND, 2); @@ -215,7 +227,7 @@ wxBoxSizer* boxSizer113 = new wxBoxSizer(wxVERTICAL); m_splitterPageRight->SetSizer(boxSizer113); - m_filePickerRight = new wxFilePickerCtrl(m_splitterPageRight, wxID_ANY, wxEmptyString, _("Select a file"), wxT("*"), wxDefaultPosition, wxSize(-1,-1), wxFLP_DEFAULT_STYLE|wxFLP_USE_TEXTCTRL|wxFLP_SMALL); + m_filePickerRight = new wxFilePickerCtrl(m_splitterPageRight, wxID_ANY, wxEmptyString, _("Select a file"), wxT("*"), wxDefaultPosition, wxSize(-1,-1), wxFLP_DEFAULT_STYLE|wxFLP_USE_TEXTCTRL); boxSizer113->Add(m_filePickerRight, 0, wxALL|wxEXPAND, 2); @@ -264,11 +276,11 @@ boxSizer113->Add(m_staticTextRight, 0, wxALL|wxALIGN_LEFT, 2); + SetName(wxT("DiffSideBySidePanelBase")); SetSizeHints(-1,-1); - if ( GetSizer() ) { + if (GetSizer()) { GetSizer()->Fit(this); } - Centre(wxBOTH); // Connect events m_ribbonButtonBar49->Connect(wxID_REFRESH, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(DiffSideBySidePanelBase::OnRefreshDiff), NULL, this); m_ribbonButtonBar49->Connect(wxID_REFRESH, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(DiffSideBySidePanelBase::OnRefreshDiffUI), NULL, this); @@ -296,8 +308,10 @@ m_ribbonButtonBar123->Connect(ID_VIEW_SINGLE, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(DiffSideBySidePanelBase::OnSingleUI), NULL, this); m_filePickerLeft->Connect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(DiffSideBySidePanelBase::OnLeftPickerUI), NULL, this); m_stcLeft->Connect(wxEVT_STC_PAINTED, wxStyledTextEventHandler(DiffSideBySidePanelBase::OnLeftStcPainted), NULL, this); + m_stcLeft->Connect(wxEVT_MOUSEWHEEL, wxMouseEventHandler(DiffSideBySidePanelBase::OnMouseWheel), NULL, this); m_filePickerRight->Connect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(DiffSideBySidePanelBase::OnRightPickerUI), NULL, this); m_stcRight->Connect(wxEVT_STC_PAINTED, wxStyledTextEventHandler(DiffSideBySidePanelBase::OnRightStcPainted), NULL, this); + m_stcRight->Connect(wxEVT_MOUSEWHEEL, wxMouseEventHandler(DiffSideBySidePanelBase::OnMouseWheel), NULL, this); } @@ -329,8 +343,10 @@ m_ribbonButtonBar123->Disconnect(ID_VIEW_SINGLE, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(DiffSideBySidePanelBase::OnSingleUI), NULL, this); m_filePickerLeft->Disconnect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(DiffSideBySidePanelBase::OnLeftPickerUI), NULL, this); m_stcLeft->Disconnect(wxEVT_STC_PAINTED, wxStyledTextEventHandler(DiffSideBySidePanelBase::OnLeftStcPainted), NULL, this); + m_stcLeft->Disconnect(wxEVT_MOUSEWHEEL, wxMouseEventHandler(DiffSideBySidePanelBase::OnMouseWheel), NULL, this); m_filePickerRight->Disconnect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(DiffSideBySidePanelBase::OnRightPickerUI), NULL, this); m_stcRight->Disconnect(wxEVT_STC_PAINTED, wxStyledTextEventHandler(DiffSideBySidePanelBase::OnRightStcPainted), NULL, this); + m_stcRight->Disconnect(wxEVT_MOUSEWHEEL, wxMouseEventHandler(DiffSideBySidePanelBase::OnMouseWheel), NULL, this); } @@ -351,7 +367,7 @@ boxSizer135->Add(m_staticTextCaption, 0, wxALL, 5); - m_textCtrl = new wxTextCtrl(this, wxID_ANY, wxT(""), wxDefaultPosition, wxSize(-1,-1), 0); + m_textCtrl = new wxTextCtrl(this, wxID_ANY, wxT(""), wxDefaultPosition, wxSize(300,-1), 0); m_textCtrl->SetFocus(); #if wxVERSION_NUMBER >= 3000 m_textCtrl->SetHint(wxT("")); @@ -363,7 +379,7 @@ m_stdBtnSizer137 = new wxStdDialogButtonSizer(); - boxSizer135->Add(m_stdBtnSizer137, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 5); + boxSizer135->Add(m_stdBtnSizer137, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 10); m_buttonCancel = new wxButton(this, wxID_CANCEL, wxT(""), wxDefaultPosition, wxSize(-1, -1), 0); m_stdBtnSizer137->AddButton(m_buttonCancel); @@ -373,13 +389,368 @@ m_stdBtnSizer137->AddButton(m_buttonOK); m_stdBtnSizer137->Realize(); + SetName(wxT("clGetTextFromUserBaseDialog")); SetSizeHints(-1,-1); - if ( GetSizer() ) { + if (GetSizer()) { GetSizer()->Fit(this); } - Centre(wxBOTH); + if(GetParent()) { + CentreOnParent(wxBOTH); + } else { + CentreOnScreen(wxBOTH); + } +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(this)) { + wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); + } +#endif } clGetTextFromUserBaseDialog::~clGetTextFromUserBaseDialog() { } + +clTreeCtrlPanelBase::clTreeCtrlPanelBase(wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style) + : wxPanel(parent, id, pos, size, style) +{ + if ( !bBitmapLoaded ) { + // We need to initialise the default bitmap handler + wxXmlResource::Get()->AddHandler(new wxBitmapXmlHandler); + wxC9D6CInitBitmapResources(); + bBitmapLoaded = true; + } + + wxBoxSizer* boxSizer151 = new wxBoxSizer(wxVERTICAL); + this->SetSizer(boxSizer151); + + m_treeCtrl = new clFileViewerTreeCtrl(this, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxTR_DEFAULT_STYLE|wxTR_MULTIPLE|wxTR_HIDE_ROOT|wxTR_FULL_ROW_HIGHLIGHT|wxTR_NO_LINES); + + boxSizer151->Add(m_treeCtrl, 1, wxALL|wxEXPAND, 0); + + SetName(wxT("clTreeCtrlPanelBase")); + SetSizeHints(500,300); + if (GetSizer()) { + GetSizer()->Fit(this); + } + // Connect events + m_treeCtrl->Connect(wxEVT_COMMAND_TREE_ITEM_EXPANDING, wxTreeEventHandler(clTreeCtrlPanelBase::OnItemExpanding), NULL, this); + m_treeCtrl->Connect(wxEVT_COMMAND_TREE_ITEM_ACTIVATED, wxTreeEventHandler(clTreeCtrlPanelBase::OnItemActivated), NULL, this); + m_treeCtrl->Connect(wxEVT_COMMAND_TREE_ITEM_MENU, wxTreeEventHandler(clTreeCtrlPanelBase::OnContextMenu), NULL, this); + +} + +clTreeCtrlPanelBase::~clTreeCtrlPanelBase() +{ + m_treeCtrl->Disconnect(wxEVT_COMMAND_TREE_ITEM_EXPANDING, wxTreeEventHandler(clTreeCtrlPanelBase::OnItemExpanding), NULL, this); + m_treeCtrl->Disconnect(wxEVT_COMMAND_TREE_ITEM_ACTIVATED, wxTreeEventHandler(clTreeCtrlPanelBase::OnItemActivated), NULL, this); + m_treeCtrl->Disconnect(wxEVT_COMMAND_TREE_ITEM_MENU, wxTreeEventHandler(clTreeCtrlPanelBase::OnContextMenu), NULL, this); + +} + +NotebookNavigationDlgBase::NotebookNavigationDlgBase(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style) + : wxDialog(parent, id, title, pos, size, style) +{ + if ( !bBitmapLoaded ) { + // We need to initialise the default bitmap handler + wxXmlResource::Get()->AddHandler(new wxBitmapXmlHandler); + wxC9D6CInitBitmapResources(); + bBitmapLoaded = true; + } + + wxBoxSizer* boxSizer157 = new wxBoxSizer(wxVERTICAL); + this->SetSizer(boxSizer157); + + m_panel161 = new wxPanel(this, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxWANTS_CHARS|wxTAB_TRAVERSAL); + + boxSizer157->Add(m_panel161, 1, wxEXPAND, 5); + + wxBoxSizer* boxSizer163 = new wxBoxSizer(wxVERTICAL); + m_panel161->SetSizer(boxSizer163); + + m_dvListCtrl = new wxDataViewListCtrl(m_panel161, wxID_ANY, wxDefaultPosition, wxSize(400,300), wxDV_NO_HEADER|wxDV_ROW_LINES|wxDV_SINGLE|wxWANTS_CHARS|wxTAB_TRAVERSAL|wxBORDER_STATIC); + m_dvListCtrl->SetFocus(); + + boxSizer163->Add(m_dvListCtrl, 1, wxALL|wxEXPAND, 2); + + m_dvListCtrl->AppendIconTextColumn(_("My Column"), wxDATAVIEW_CELL_INERT, -2, wxALIGN_LEFT); + + SetName(wxT("NotebookNavigationDlgBase")); + SetSizeHints(-1,-1); + if (GetSizer()) { + GetSizer()->Fit(this); + } + if(GetParent()) { + CentreOnParent(wxBOTH); + } else { + CentreOnScreen(wxBOTH); + } +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(this)) { + wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); + } +#endif + // Connect events + this->Connect(wxEVT_KEY_DOWN, wxKeyEventHandler(NotebookNavigationDlgBase::OnKeyDown), NULL, this); + this->Connect(wxEVT_KEY_UP, wxKeyEventHandler(NotebookNavigationDlgBase::OnKeyUp), NULL, this); + m_dvListCtrl->Connect(wxEVT_KEY_UP, wxKeyEventHandler(NotebookNavigationDlgBase::OnKeyUp), NULL, this); + m_dvListCtrl->Connect(wxEVT_KEY_DOWN, wxKeyEventHandler(NotebookNavigationDlgBase::OnKeyDown), NULL, this); + m_dvListCtrl->Connect(wxEVT_COMMAND_DATAVIEW_ITEM_ACTIVATED, wxDataViewEventHandler(NotebookNavigationDlgBase::OnItemActivated), NULL, this); + +} + +NotebookNavigationDlgBase::~NotebookNavigationDlgBase() +{ + this->Disconnect(wxEVT_KEY_DOWN, wxKeyEventHandler(NotebookNavigationDlgBase::OnKeyDown), NULL, this); + this->Disconnect(wxEVT_KEY_UP, wxKeyEventHandler(NotebookNavigationDlgBase::OnKeyUp), NULL, this); + m_dvListCtrl->Disconnect(wxEVT_KEY_UP, wxKeyEventHandler(NotebookNavigationDlgBase::OnKeyUp), NULL, this); + m_dvListCtrl->Disconnect(wxEVT_KEY_DOWN, wxKeyEventHandler(NotebookNavigationDlgBase::OnKeyDown), NULL, this); + m_dvListCtrl->Disconnect(wxEVT_COMMAND_DATAVIEW_ITEM_ACTIVATED, wxDataViewEventHandler(NotebookNavigationDlgBase::OnItemActivated), NULL, this); + +} + +clTreeCtrlPanelDefaultPageBase::clTreeCtrlPanelDefaultPageBase(wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style) + : wxPanel(parent, id, pos, size, style) +{ + if ( !bBitmapLoaded ) { + // We need to initialise the default bitmap handler + wxXmlResource::Get()->AddHandler(new wxBitmapXmlHandler); + wxC9D6CInitBitmapResources(); + bBitmapLoaded = true; + } + + wxBoxSizer* boxSizer167 = new wxBoxSizer(wxVERTICAL); + this->SetSizer(boxSizer167); + + m_panel169 = new wxPanel(this, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxTAB_TRAVERSAL|wxBORDER_NONE); + m_panel169->SetBackgroundColour(wxColour(wxT("rgb(220,220,220)"))); + + boxSizer167->Add(m_panel169, 1, wxALL|wxEXPAND, 0); + + wxBoxSizer* boxSizer171 = new wxBoxSizer(wxVERTICAL); + m_panel169->SetSizer(boxSizer171); + + boxSizer171->Add(0, 0, 1, wxALL, 5); + + m_staticText177 = new wxStaticText(m_panel169, wxID_ANY, _("DRAG AND DROP\nA FOLDER HERE"), wxDefaultPosition, wxSize(-1,-1), wxALIGN_CENTRE); + m_staticText177->SetForegroundColour(wxColour(wxT("rgb(128,128,128)"))); + wxFont m_staticText177Font = wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT); + m_staticText177Font.SetWeight(wxFONTWEIGHT_BOLD); + m_staticText177->SetFont(m_staticText177Font); + + boxSizer171->Add(m_staticText177, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 5); + + boxSizer171->Add(0, 0, 1, wxALL, 5); + + SetName(wxT("clTreeCtrlPanelDefaultPageBase")); + SetSizeHints(500,300); + if (GetSizer()) { + GetSizer()->Fit(this); + } + // Connect events + m_panel169->Connect(wxEVT_CONTEXT_MENU, wxContextMenuEventHandler(clTreeCtrlPanelDefaultPageBase::OnDefaultPageContextMenu), NULL, this); + +} + +clTreeCtrlPanelDefaultPageBase::~clTreeCtrlPanelDefaultPageBase() +{ + m_panel169->Disconnect(wxEVT_CONTEXT_MENU, wxContextMenuEventHandler(clTreeCtrlPanelDefaultPageBase::OnDefaultPageContextMenu), NULL, this); + +} + +clSingleChoiceDialogBase::clSingleChoiceDialogBase(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style) + : wxDialog(parent, id, title, pos, size, style) +{ + if ( !bBitmapLoaded ) { + // We need to initialise the default bitmap handler + wxXmlResource::Get()->AddHandler(new wxBitmapXmlHandler); + wxC9D6CInitBitmapResources(); + bBitmapLoaded = true; + } + + wxBoxSizer* boxSizer181 = new wxBoxSizer(wxVERTICAL); + this->SetSizer(boxSizer181); + + wxArrayString m_listBoxArr; + m_listBox = new wxListBox(this, wxID_ANY, wxDefaultPosition, wxSize(300,200), m_listBoxArr, wxLB_SINGLE); + m_listBox->SetFocus(); + + boxSizer181->Add(m_listBox, 1, wxALL|wxEXPAND, 5); + + m_stdBtnSizer183 = new wxStdDialogButtonSizer(); + + boxSizer181->Add(m_stdBtnSizer183, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 10); + + m_button185 = new wxButton(this, wxID_OK, wxT(""), wxDefaultPosition, wxSize(-1, -1), 0); + m_button185->SetDefault(); + m_stdBtnSizer183->AddButton(m_button185); + + m_button187 = new wxButton(this, wxID_CANCEL, wxT(""), wxDefaultPosition, wxSize(-1, -1), 0); + m_stdBtnSizer183->AddButton(m_button187); + m_stdBtnSizer183->Realize(); + + SetName(wxT("clSingleChoiceDialogBase")); + SetSizeHints(-1,-1); + if (GetSizer()) { + GetSizer()->Fit(this); + } + if(GetParent()) { + CentreOnParent(wxBOTH); + } else { + CentreOnScreen(wxBOTH); + } +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(this)) { + wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); + } +#endif + // Connect events + m_listBox->Connect(wxEVT_COMMAND_LISTBOX_DOUBLECLICKED, wxCommandEventHandler(clSingleChoiceDialogBase::OnItemActivated), NULL, this); + m_button185->Connect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(clSingleChoiceDialogBase::OnOKUI), NULL, this); + +} + +clSingleChoiceDialogBase::~clSingleChoiceDialogBase() +{ + m_listBox->Disconnect(wxEVT_COMMAND_LISTBOX_DOUBLECLICKED, wxCommandEventHandler(clSingleChoiceDialogBase::OnItemActivated), NULL, this); + m_button185->Disconnect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(clSingleChoiceDialogBase::OnOKUI), NULL, this); + +} + +clImageViewerBase::clImageViewerBase(wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style) + : wxPanel(parent, id, pos, size, style) +{ + if ( !bBitmapLoaded ) { + // We need to initialise the default bitmap handler + wxXmlResource::Get()->AddHandler(new wxBitmapXmlHandler); + wxC9D6CInitBitmapResources(); + bBitmapLoaded = true; + } + + wxBoxSizer* boxSizer194 = new wxBoxSizer(wxVERTICAL); + this->SetSizer(boxSizer194); + + m_scrollWin196 = new wxScrolledWindow(this, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxBORDER_NONE|wxHSCROLL|wxVSCROLL); + m_scrollWin196->SetScrollRate(5, 5); + + boxSizer194->Add(m_scrollWin196, 1, wxEXPAND, 2); + + wxBoxSizer* boxSizer198 = new wxBoxSizer(wxVERTICAL); + m_scrollWin196->SetSizer(boxSizer198); + + boxSizer198->Add(0, 0, 1, wxALL, 5); + + m_staticBitmap = new wxStaticBitmap(m_scrollWin196, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize(-1,-1), 0 ); + + boxSizer198->Add(m_staticBitmap, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 5); + + boxSizer198->Add(0, 0, 1, wxALL, 5); + + SetName(wxT("clImageViewerBase")); + SetSizeHints(500,300); + if (GetSizer()) { + GetSizer()->Fit(this); + } +} + +clImageViewerBase::~clImageViewerBase() +{ +} + +clResizableTooltipBase::clResizableTooltipBase(wxWindow* parent,long style) + : wxPopupWindow(parent, style) +{ + if ( !bBitmapLoaded ) { + // We need to initialise the default bitmap handler + wxXmlResource::Get()->AddHandler(new wxBitmapXmlHandler); + wxC9D6CInitBitmapResources(); + bBitmapLoaded = true; + } + + wxBoxSizer* boxSizer222 = new wxBoxSizer(wxVERTICAL); + this->SetSizer(boxSizer222); + + m_mainPanel = new wxPanel(this, wxID_ANY, wxDefaultPosition, wxSize(300,250), wxTAB_TRAVERSAL); + m_mainPanel->SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_INFOBK)); + m_mainPanel->SetForegroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_INFOTEXT)); + + boxSizer222->Add(m_mainPanel, 1, wxALL|wxEXPAND, 0); + + wxBoxSizer* boxSizer230 = new wxBoxSizer(wxVERTICAL); + m_mainPanel->SetSizer(boxSizer230); + + m_treeCtrl = new wxTreeCtrl(m_mainPanel, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxTR_DEFAULT_STYLE|wxBORDER_NONE); + m_treeCtrl->SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_INFOBK)); + m_treeCtrl->SetForegroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_INFOTEXT)); + + boxSizer230->Add(m_treeCtrl, 1, wxEXPAND, 0); + m_mainPanel->SetMinSize(wxSize(300,250)); + + m_panelStatus = new wxPanel(this, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxTAB_TRAVERSAL); + m_panelStatus->SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_INFOBK)); + m_panelStatus->SetForegroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_INFOTEXT)); + + boxSizer222->Add(m_panelStatus, 0, wxALL|wxEXPAND, 0); + + wxBoxSizer* boxSizer234 = new wxBoxSizer(wxHORIZONTAL); + m_panelStatus->SetSizer(boxSizer234); + + boxSizer234->Add(0, 0, 1, wxALL, 5); + + m_staticBitmap240 = new wxStaticBitmap(m_panelStatus, wxID_ANY, wxXmlResource::Get()->LoadBitmap(wxT("resize")), wxDefaultPosition, wxSize(-1,-1), 0 ); + m_staticBitmap240->SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_INFOBK)); + + boxSizer234->Add(m_staticBitmap240, 0, wxALIGN_CENTER_VERTICAL, 5); + + m_timerCheckMousePos = new wxTimer; + m_timerCheckMousePos->Start(25, false); + + SetName(wxT("clResizableTooltipBase")); + SetSizeHints(-1,-1); + if (GetSizer()) { + GetSizer()->Fit(this); + } + // Connect events + m_treeCtrl->Connect(wxEVT_COMMAND_TREE_ITEM_EXPANDING, wxTreeEventHandler(clResizableTooltipBase::OnItemExpanding), NULL, this); + m_panelStatus->Connect(wxEVT_ENTER_WINDOW, wxMouseEventHandler(clResizableTooltipBase::OnStatusEnterWindow), NULL, this); + m_panelStatus->Connect(wxEVT_LEAVE_WINDOW, wxMouseEventHandler(clResizableTooltipBase::OnStatusLeaveWindow), NULL, this); + m_panelStatus->Connect(wxEVT_MOTION, wxMouseEventHandler(clResizableTooltipBase::OnStatusBarMotion), NULL, this); + m_panelStatus->Connect(wxEVT_LEFT_UP, wxMouseEventHandler(clResizableTooltipBase::OnStatusBarLeftUp), NULL, this); + m_panelStatus->Connect(wxEVT_LEFT_DOWN, wxMouseEventHandler(clResizableTooltipBase::OnStatusBarLeftDown), NULL, this); + m_panelStatus->Connect(wxEVT_MOUSE_CAPTURE_LOST, wxMouseCaptureLostEventHandler(clResizableTooltipBase::OnCaptureLost), NULL, this); + m_staticBitmap240->Connect(wxEVT_LEFT_DOWN, wxMouseEventHandler(clResizableTooltipBase::OnStatusBarLeftDown), NULL, this); + m_staticBitmap240->Connect(wxEVT_LEFT_UP, wxMouseEventHandler(clResizableTooltipBase::OnStatusBarLeftUp), NULL, this); + m_staticBitmap240->Connect(wxEVT_MOTION, wxMouseEventHandler(clResizableTooltipBase::OnStatusBarMotion), NULL, this); + m_staticBitmap240->Connect(wxEVT_LEAVE_WINDOW, wxMouseEventHandler(clResizableTooltipBase::OnStatusLeaveWindow), NULL, this); + m_staticBitmap240->Connect(wxEVT_ENTER_WINDOW, wxMouseEventHandler(clResizableTooltipBase::OnStatusEnterWindow), NULL, this); + m_staticBitmap240->Connect(wxEVT_MOUSE_CAPTURE_LOST, wxMouseCaptureLostEventHandler(clResizableTooltipBase::OnCaptureLost), NULL, this); + m_timerCheckMousePos->Connect(wxEVT_TIMER, wxTimerEventHandler(clResizableTooltipBase::OnCheckMousePosition), NULL, this); + +} + +clResizableTooltipBase::~clResizableTooltipBase() +{ + m_treeCtrl->Disconnect(wxEVT_COMMAND_TREE_ITEM_EXPANDING, wxTreeEventHandler(clResizableTooltipBase::OnItemExpanding), NULL, this); + m_panelStatus->Disconnect(wxEVT_ENTER_WINDOW, wxMouseEventHandler(clResizableTooltipBase::OnStatusEnterWindow), NULL, this); + m_panelStatus->Disconnect(wxEVT_LEAVE_WINDOW, wxMouseEventHandler(clResizableTooltipBase::OnStatusLeaveWindow), NULL, this); + m_panelStatus->Disconnect(wxEVT_MOTION, wxMouseEventHandler(clResizableTooltipBase::OnStatusBarMotion), NULL, this); + m_panelStatus->Disconnect(wxEVT_LEFT_UP, wxMouseEventHandler(clResizableTooltipBase::OnStatusBarLeftUp), NULL, this); + m_panelStatus->Disconnect(wxEVT_LEFT_DOWN, wxMouseEventHandler(clResizableTooltipBase::OnStatusBarLeftDown), NULL, this); + m_panelStatus->Disconnect(wxEVT_MOUSE_CAPTURE_LOST, wxMouseCaptureLostEventHandler(clResizableTooltipBase::OnCaptureLost), NULL, this); + m_staticBitmap240->Disconnect(wxEVT_LEFT_DOWN, wxMouseEventHandler(clResizableTooltipBase::OnStatusBarLeftDown), NULL, this); + m_staticBitmap240->Disconnect(wxEVT_LEFT_UP, wxMouseEventHandler(clResizableTooltipBase::OnStatusBarLeftUp), NULL, this); + m_staticBitmap240->Disconnect(wxEVT_MOTION, wxMouseEventHandler(clResizableTooltipBase::OnStatusBarMotion), NULL, this); + m_staticBitmap240->Disconnect(wxEVT_LEAVE_WINDOW, wxMouseEventHandler(clResizableTooltipBase::OnStatusLeaveWindow), NULL, this); + m_staticBitmap240->Disconnect(wxEVT_ENTER_WINDOW, wxMouseEventHandler(clResizableTooltipBase::OnStatusEnterWindow), NULL, this); + m_staticBitmap240->Disconnect(wxEVT_MOUSE_CAPTURE_LOST, wxMouseCaptureLostEventHandler(clResizableTooltipBase::OnCaptureLost), NULL, this); + m_timerCheckMousePos->Disconnect(wxEVT_TIMER, wxTimerEventHandler(clResizableTooltipBase::OnCheckMousePosition), NULL, this); + + m_timerCheckMousePos->Stop(); + wxDELETE( m_timerCheckMousePos ); + +} diff -Nru codelite-8.0.1+dfsg2/Plugin/wxcrafter_plugin.h codelite-9.0+dfsg/Plugin/wxcrafter_plugin.h --- codelite-8.0.1+dfsg2/Plugin/wxcrafter_plugin.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/wxcrafter_plugin.h 2015-10-11 13:56:07.000000000 +0000 @@ -4,8 +4,8 @@ // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// -#ifndef WXCRAFTER_BASE_CLASSES_H -#define WXCRAFTER_BASE_CLASSES_H +#ifndef CODELITE_PLUGIN_WXCRAFTER_BASE_CLASSES_H +#define CODELITE_PLUGIN_WXCRAFTER_BASE_CLASSES_H #include #include @@ -26,6 +26,20 @@ #include #include #include +#include +#include "clFileViwerTreeCtrl.h" +#include +#include +#include +#include +#include +#include +#if wxVERSION_NUMBER >= 2900 +#include +#include +#include +#include +#endif #include "codelite_exports.h" class WXDLLIMPEXP_SDK EditDlgBase : public wxDialog @@ -103,6 +117,7 @@ virtual void OnSingleUI(wxUpdateUIEvent& event) { event.Skip(); } virtual void OnLeftPickerUI(wxUpdateUIEvent& event) { event.Skip(); } virtual void OnLeftStcPainted(wxStyledTextEvent& event) { event.Skip(); } + virtual void OnMouseWheel(wxMouseEvent& event) { event.Skip(); } virtual void OnRightPickerUI(wxUpdateUIEvent& event) { event.Skip(); } virtual void OnRightStcPainted(wxStyledTextEvent& event) { event.Skip(); } @@ -140,4 +155,122 @@ virtual ~clGetTextFromUserBaseDialog(); }; + +class WXDLLIMPEXP_SDK clTreeCtrlPanelBase : public wxPanel +{ +protected: + clFileViewerTreeCtrl* m_treeCtrl; + +protected: + virtual void OnItemExpanding(wxTreeEvent& event) { event.Skip(); } + virtual void OnItemActivated(wxTreeEvent& event) { event.Skip(); } + virtual void OnContextMenu(wxTreeEvent& event) { event.Skip(); } + +public: + clFileViewerTreeCtrl* GetTreeCtrl() { return m_treeCtrl; } + clTreeCtrlPanelBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(500,300), long style = wxTAB_TRAVERSAL); + virtual ~clTreeCtrlPanelBase(); +}; + + +class NotebookNavigationDlgBase : public wxDialog +{ +protected: + wxPanel* m_panel161; + wxDataViewListCtrl* m_dvListCtrl; + +protected: + virtual void OnKeyDown(wxKeyEvent& event) { event.Skip(); } + virtual void OnKeyUp(wxKeyEvent& event) { event.Skip(); } + virtual void OnItemActivated(wxDataViewEvent& event) { event.Skip(); } + +public: + wxDataViewListCtrl* GetDvListCtrl() { return m_dvListCtrl; } + wxPanel* GetPanel161() { return m_panel161; } + NotebookNavigationDlgBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Select Tab"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxRESIZE_BORDER); + virtual ~NotebookNavigationDlgBase(); +}; + + +class clTreeCtrlPanelDefaultPageBase : public wxPanel +{ +protected: + wxPanel* m_panel169; + wxStaticText* m_staticText177; + +protected: + virtual void OnDefaultPageContextMenu(wxContextMenuEvent& event) { event.Skip(); } + +public: + wxStaticText* GetStaticText177() { return m_staticText177; } + wxPanel* GetPanel169() { return m_panel169; } + clTreeCtrlPanelDefaultPageBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(500,300), long style = wxTAB_TRAVERSAL); + virtual ~clTreeCtrlPanelDefaultPageBase(); +}; + + +class clSingleChoiceDialogBase : public wxDialog +{ +protected: + wxListBox* m_listBox; + wxStdDialogButtonSizer* m_stdBtnSizer183; + wxButton* m_button185; + wxButton* m_button187; + +protected: + virtual void OnItemActivated(wxCommandEvent& event) { event.Skip(); } + virtual void OnOKUI(wxUpdateUIEvent& event) { event.Skip(); } + +public: + wxListBox* GetListBox() { return m_listBox; } + clSingleChoiceDialogBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = wxT(""), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxDEFAULT_DIALOG_STYLE); + virtual ~clSingleChoiceDialogBase(); +}; + + +class WXDLLIMPEXP_SDK clImageViewerBase : public wxPanel +{ +protected: + wxScrolledWindow* m_scrollWin196; + wxStaticBitmap* m_staticBitmap; + +protected: + +public: + wxStaticBitmap* GetStaticBitmap() { return m_staticBitmap; } + wxScrolledWindow* GetScrollWin196() { return m_scrollWin196; } + clImageViewerBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(500,300), long style = wxTAB_TRAVERSAL); + virtual ~clImageViewerBase(); +}; + + +class WXDLLIMPEXP_SDK clResizableTooltipBase : public wxPopupWindow +{ +protected: + wxPanel* m_mainPanel; + wxTreeCtrl* m_treeCtrl; + wxPanel* m_panelStatus; + wxStaticBitmap* m_staticBitmap240; + wxTimer* m_timerCheckMousePos; + +protected: + virtual void OnItemExpanding(wxTreeEvent& event) { event.Skip(); } + virtual void OnStatusEnterWindow(wxMouseEvent& event) { event.Skip(); } + virtual void OnStatusLeaveWindow(wxMouseEvent& event) { event.Skip(); } + virtual void OnStatusBarMotion(wxMouseEvent& event) { event.Skip(); } + virtual void OnStatusBarLeftUp(wxMouseEvent& event) { event.Skip(); } + virtual void OnStatusBarLeftDown(wxMouseEvent& event) { event.Skip(); } + virtual void OnCaptureLost(wxMouseCaptureLostEvent& event) { event.Skip(); } + virtual void OnCheckMousePosition(wxTimerEvent& event) { event.Skip(); } + +public: + wxTreeCtrl* GetTreeCtrl() { return m_treeCtrl; } + wxPanel* GetMainPanel() { return m_mainPanel; } + wxStaticBitmap* GetStaticBitmap240() { return m_staticBitmap240; } + wxPanel* GetPanelStatus() { return m_panelStatus; } + wxTimer* GetTimerCheckMousePos() { return m_timerCheckMousePos; } + clResizableTooltipBase(wxWindow* parent, long style = wxBORDER_SIMPLE); + virtual ~clResizableTooltipBase(); +}; + #endif diff -Nru codelite-8.0.1+dfsg2/Plugin/wxcrafter.wxcp codelite-9.0+dfsg/Plugin/wxcrafter.wxcp --- codelite-8.0.1+dfsg2/Plugin/wxcrafter.wxcp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/wxcrafter.wxcp 2015-10-11 13:56:07.000000000 +0000 @@ -1,7 +1,7 @@ { "metadata": { "m_generatedFilesDir": ".", - "m_objCounter": 147, + "m_objCounter": 240, "m_includeFiles": ["codelite_exports.h"], "m_bitmapFunction": "wxC9D6CInitBitmapResources", "m_bitmapsFile": "wxcrafter_plugin_bitmaps.cpp", @@ -72,6 +72,10 @@ "m_label": "Style:", "m_value": "" }, { + "type": "bool", + "m_label": "Enable Window Persistency:", + "m_value": true + }, { "type": "string", "m_label": "Title:", "m_value": "Edit Text" @@ -128,6 +132,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "boxSizer2" }, { @@ -270,6 +278,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_HORIZONTAL", "wxALIGN_CENTER_VERTICAL"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "boxSizer4" }, { @@ -559,6 +571,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "boxSizer13" }, { @@ -2400,6 +2416,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "boxSizer111" }, { @@ -2419,7 +2439,7 @@ "border": 2, "gbSpan": "1,1", "gbPosition": "0,0", - "m_styles": ["wxFLP_DEFAULT_STYLE", "wxFLP_USE_TEXTCTRL", "wxFLP_SMALL"], + "m_styles": ["wxFLP_DEFAULT_STYLE", "wxFLP_USE_TEXTCTRL"], "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "winid", @@ -2623,6 +2643,13 @@ "m_functionNameAndSignature": "OnLeftStcPainted(wxStyledTextEvent& event)", "m_description": "Painting has just been done.\nUseful when you want to update some other widgets based on a change in Scintilla\nbut want to have the paint occur first to appear more responsive", "m_noBody": false + }, { + "m_eventName": "wxEVT_MOUSEWHEEL", + "m_eventClass": "wxMouseEvent", + "m_eventHandler": "wxMouseEventHandler", + "m_functionNameAndSignature": "OnMouseWheel(wxMouseEvent& event)", + "m_description": "Process a wxEVT_MOUSEWHEEL event", + "m_noBody": false }], "m_children": [] }, { @@ -2778,6 +2805,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "boxSizer113" }, { @@ -2797,7 +2828,7 @@ "border": 2, "gbSpan": "1,1", "gbPosition": "0,0", - "m_styles": ["wxFLP_DEFAULT_STYLE", "wxFLP_USE_TEXTCTRL", "wxFLP_SMALL"], + "m_styles": ["wxFLP_DEFAULT_STYLE", "wxFLP_USE_TEXTCTRL"], "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "winid", @@ -3001,6 +3032,13 @@ "m_functionNameAndSignature": "OnRightStcPainted(wxStyledTextEvent& event)", "m_description": "Painting has just been done.\nUseful when you want to update some other widgets based on a change in Scintilla\nbut want to have the paint occur first to appear more responsive", "m_noBody": false + }, { + "m_eventName": "wxEVT_MOUSEWHEEL", + "m_eventClass": "wxMouseEvent", + "m_eventHandler": "wxMouseEventHandler", + "m_functionNameAndSignature": "OnMouseWheel(wxMouseEvent& event)", + "m_description": "Process a wxEVT_MOUSEWHEEL event", + "m_noBody": false }], "m_children": [] }, { @@ -3144,6 +3182,10 @@ "m_label": "Style:", "m_value": "" }, { + "type": "bool", + "m_label": "Enable Window Persistency:", + "m_value": true + }, { "type": "string", "m_label": "Title:", "m_value": "" @@ -3200,6 +3242,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "boxSizer135" }, { @@ -3303,7 +3349,7 @@ }, { "type": "string", "m_label": "Size:", - "m_value": "-1,-1" + "m_value": "300,-1" }, { "type": "string", "m_label": "Minimum Size:", @@ -3397,7 +3443,7 @@ }, { "m_type": 4467, "proportion": 0, - "border": 5, + "border": 10, "gbSpan": "1,1", "gbPosition": "0,0", "m_styles": [], @@ -3519,5 +3565,2183 @@ }] }] }] + }, { + "m_type": 4407, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxTAB_TRAVERSAL"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "string", + "m_label": "Size:", + "m_value": "500,300" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "clTreeCtrlPanelBase" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Title:", + "m_value": "" + }, { + "type": "virtualFolderPicker", + "m_label": "Virtual Folder:", + "m_path": "plugin_sdk:GUI:Controls" + }, { + "type": "choice", + "m_label": "Centre:", + "m_selection": 1, + "m_options": ["", "wxBOTH", "wxVERTICAL", "wxHORIZONTAL"] + }, { + "type": "string", + "m_label": "Inherited Class", + "m_value": "clTreeCtrlPanel" + }, { + "type": "string", + "m_label": "File:", + "m_value": "clTreeCtrlPanel" + }, { + "type": "string", + "m_label": "Class Decorator", + "m_value": "WXDLLIMPEXP_SDK" + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "boxSizer151" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4422, + "proportion": 1, + "border": 0, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxTR_DEFAULT_STYLE", "wxTR_MULTIPLE", "wxTR_HIDE_ROOT", "wxTR_FULL_ROW_HIGHLIGHT", "wxTR_NO_LINES"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_treeCtrl" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "clFileViewerTreeCtrl" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "clFileViwerTreeCtrl.h" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_TREE_ITEM_EXPANDING", + "m_eventClass": "wxTreeEvent", + "m_eventHandler": "wxTreeEventHandler", + "m_functionNameAndSignature": "OnItemExpanding(wxTreeEvent& event)", + "m_description": "The item is being expanded. This can be prevented by calling Veto().", + "m_noBody": false + }, { + "m_eventName": "wxEVT_COMMAND_TREE_ITEM_ACTIVATED", + "m_eventClass": "wxTreeEvent", + "m_eventHandler": "wxTreeEventHandler", + "m_functionNameAndSignature": "OnItemActivated(wxTreeEvent& event)", + "m_description": "An item has been activated (e.g. double clicked).", + "m_noBody": false + }, { + "m_eventName": "wxEVT_COMMAND_TREE_ITEM_MENU", + "m_eventClass": "wxTreeEvent", + "m_eventHandler": "wxTreeEventHandler", + "m_functionNameAndSignature": "OnContextMenu(wxTreeEvent& event)", + "m_description": "The context menu for the selected item has been requested,\neither by a right click or by using the menu key.", + "m_noBody": false + }], + "m_children": [] + }] + }] + }, { + "m_type": 4421, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxRESIZE_BORDER"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "NotebookNavigationDlgBase" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Enable Window Persistency:", + "m_value": true + }, { + "type": "string", + "m_label": "Title:", + "m_value": "Select Tab" + }, { + "type": "virtualFolderPicker", + "m_label": "Virtual Folder:", + "m_path": "plugin_sdk:GUI:Notebook" + }, { + "type": "choice", + "m_label": "Centre:", + "m_selection": 1, + "m_options": ["", "wxBOTH", "wxVERTICAL", "wxHORIZONTAL"] + }, { + "type": "string", + "m_label": "Inherited Class", + "m_value": "NotebookNavigationDlg" + }, { + "type": "string", + "m_label": "File:", + "m_value": "NotebookNavigationDlg" + }, { + "type": "string", + "m_label": "Class Decorator", + "m_value": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (16x16) :", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (32x32) :", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (64x64) :", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (128x128):", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (256x256):", + "m_path": "" + }], + "m_events": [{ + "m_eventName": "wxEVT_KEY_DOWN", + "m_eventClass": "wxKeyEvent", + "m_eventHandler": "wxKeyEventHandler", + "m_functionNameAndSignature": "OnKeyDown(wxKeyEvent& event)", + "m_description": "Process a wxEVT_KEY_DOWN event (any key has been pressed)", + "m_noBody": false + }, { + "m_eventName": "wxEVT_KEY_UP", + "m_eventClass": "wxKeyEvent", + "m_eventHandler": "wxKeyEventHandler", + "m_functionNameAndSignature": "OnKeyUp(wxKeyEvent& event)", + "m_description": "Process a wxEVT_KEY_UP event (any key has been released)", + "m_noBody": false + }], + "m_children": [{ + "m_type": 4401, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "boxSizer157" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4408, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxWANTS_CHARS", "wxTAB_TRAVERSAL"], + "m_sizerFlags": ["wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_panel161" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "boxSizer163" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4469, + "proportion": 1, + "border": 2, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxDV_NO_HEADER", "wxDV_ROW_LINES", "wxDV_SINGLE", "wxWANTS_CHARS", "wxTAB_TRAVERSAL", "wxBORDER_STATIC"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "400,300" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_dvListCtrl" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": true + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }], + "m_events": [{ + "m_eventName": "wxEVT_KEY_UP", + "m_eventClass": "wxKeyEvent", + "m_eventHandler": "wxKeyEventHandler", + "m_functionNameAndSignature": "OnKeyUp(wxKeyEvent& event)", + "m_description": "Process a wxEVT_KEY_UP event (any key has been released)", + "m_noBody": false + }, { + "m_eventName": "wxEVT_KEY_DOWN", + "m_eventClass": "wxKeyEvent", + "m_eventHandler": "wxKeyEventHandler", + "m_functionNameAndSignature": "OnKeyDown(wxKeyEvent& event)", + "m_description": "Process a wxEVT_KEY_DOWN event (any key has been pressed)", + "m_noBody": false + }, { + "m_eventName": "wxEVT_COMMAND_DATAVIEW_ITEM_ACTIVATED", + "m_eventClass": "wxDataViewEvent", + "m_eventHandler": "wxDataViewEventHandler", + "m_functionNameAndSignature": "OnItemActivated(wxDataViewEvent& event)", + "m_description": "Process a wxEVT_COMMAND_DATAVIEW_ITEM_ACTIVATED event.\nThis event is triggered by double clicking an item or pressing some special key (usually \"Enter\") when it is focused", + "m_noBody": false + }], + "m_children": [{ + "m_type": 4472, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "My Column" + }, { + "type": "string", + "m_label": "Width:", + "m_value": "-2" + }, { + "type": "choice", + "m_label": "Column Type", + "m_selection": 3, + "m_options": ["bitmap", "check", "text", "icontext", "progress", "choice"] + }, { + "type": "multi-string", + "m_label": "Choices:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Alignment", + "m_selection": 0, + "m_options": ["wxALIGN_LEFT", "wxALIGN_RIGHT", "wxALIGN_CENTER"] + }, { + "type": "choice", + "m_label": "Cell Mode", + "m_selection": 0, + "m_options": ["wxDATAVIEW_CELL_INERT", "wxDATAVIEW_CELL_ACTIVATABLE", "wxDATAVIEW_CELL_EDITABLE"] + }], + "m_events": [], + "m_children": [] + }] + }] + }] + }] + }] + }, { + "m_type": 4407, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxTAB_TRAVERSAL"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "string", + "m_label": "Size:", + "m_value": "500,300" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "clTreeCtrlPanelDefaultPageBase" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Title:", + "m_value": "" + }, { + "type": "virtualFolderPicker", + "m_label": "Virtual Folder:", + "m_path": "plugin_sdk:GUI:Controls" + }, { + "type": "choice", + "m_label": "Centre:", + "m_selection": 1, + "m_options": ["", "wxBOTH", "wxVERTICAL", "wxHORIZONTAL"] + }, { + "type": "string", + "m_label": "Inherited Class", + "m_value": "clTreeCtrlPanelDefaultPage" + }, { + "type": "string", + "m_label": "File:", + "m_value": "clTreeCtrlPanelDefaultPage" + }, { + "type": "string", + "m_label": "Class Decorator", + "m_value": "" + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "boxSizer167" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4408, + "proportion": 1, + "border": 0, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxTAB_TRAVERSAL", "wxBORDER_NONE"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_panel169" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "(220,220,220)" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }], + "m_events": [{ + "m_eventName": "wxEVT_CONTEXT_MENU", + "m_eventClass": "wxContextMenuEvent", + "m_eventHandler": "wxContextMenuEventHandler", + "m_functionNameAndSignature": "OnDefaultPageContextMenu(wxContextMenuEvent& event)", + "m_description": "A right click (or other context menu command depending on platform) has been detected", + "m_noBody": false + }], + "m_children": [{ + "m_type": 4401, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "boxSizer171" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4454, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "Spacer173" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "0,0" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4405, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxALIGN_CENTRE"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_HORIZONTAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_staticText177" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "(128,128,128)" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "wxSYS_DEFAULT_GUI_FONT,normal,bold,normal" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Label:", + "m_value": "DRAG AND DROP\\nA FOLDER HERE" + }, { + "type": "string", + "m_label": "Wrap:", + "m_value": "-1" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4454, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "Spacer175" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "0,0" + }], + "m_events": [], + "m_children": [] + }] + }] + }] + }] + }, { + "m_type": 4421, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxDEFAULT_DIALOG_STYLE"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "clSingleChoiceDialogBase" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Enable Window Persistency:", + "m_value": true + }, { + "type": "string", + "m_label": "Title:", + "m_value": "" + }, { + "type": "virtualFolderPicker", + "m_label": "Virtual Folder:", + "m_path": "plugin_sdk:GUI:Dialogs" + }, { + "type": "choice", + "m_label": "Centre:", + "m_selection": 1, + "m_options": ["", "wxBOTH", "wxVERTICAL", "wxHORIZONTAL"] + }, { + "type": "string", + "m_label": "Inherited Class", + "m_value": "clSingleChoiceDialog" + }, { + "type": "string", + "m_label": "File:", + "m_value": "clSingleChoiceDialog" + }, { + "type": "string", + "m_label": "Class Decorator", + "m_value": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (16x16) :", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (32x32) :", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (64x64) :", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (128x128):", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (256x256):", + "m_path": "" + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "boxSizer181" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4412, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxLB_SINGLE"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "300,200" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_listBox" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": true + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Choices:", + "m_value": "" + }, { + "type": "string", + "m_label": "Selection:", + "m_value": "-1" + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_LISTBOX_DOUBLECLICKED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnItemActivated(wxCommandEvent& event)", + "m_description": "Process a wxEVT_COMMAND_LISTBOX_DOUBLECLICKED event, when the listbox is double-clicked.", + "m_noBody": false + }], + "m_children": [] + }, { + "m_type": 4467, + "proportion": 0, + "border": 10, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_HORIZONTAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_stdBtnSizer183" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }], + "m_events": [], + "m_children": [{ + "m_type": 4468, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "choice", + "m_label": "ID:", + "m_selection": 0, + "m_options": ["wxID_OK", "wxID_YES", "wxID_SAVE", "wxID_APPLY", "wxID_CLOSE", "wxID_NO", "wxID_CANCEL", "wxID_HELP", "wxID_CONTEXT_HELP"] + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_button185" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Default Button", + "m_value": true + }], + "m_events": [{ + "m_eventName": "wxEVT_UPDATE_UI", + "m_eventClass": "wxUpdateUIEvent", + "m_eventHandler": "wxUpdateUIEventHandler", + "m_functionNameAndSignature": "OnOKUI(wxUpdateUIEvent& event)", + "m_description": "Process a wxEVT_UPDATE_UI event", + "m_noBody": false + }], + "m_children": [] + }, { + "m_type": 4468, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "choice", + "m_label": "ID:", + "m_selection": 6, + "m_options": ["wxID_OK", "wxID_YES", "wxID_SAVE", "wxID_APPLY", "wxID_CLOSE", "wxID_NO", "wxID_CANCEL", "wxID_HELP", "wxID_CONTEXT_HELP"] + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_button187" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Default Button", + "m_value": false + }], + "m_events": [], + "m_children": [] + }] + }] + }] + }, { + "m_type": 4407, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxTAB_TRAVERSAL"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "string", + "m_label": "Size:", + "m_value": "500,300" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "clImageViewerBase" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Title:", + "m_value": "" + }, { + "type": "virtualFolderPicker", + "m_label": "Virtual Folder:", + "m_path": "plugin_sdk:GUI:Controls:FileViewers" + }, { + "type": "choice", + "m_label": "Centre:", + "m_selection": 1, + "m_options": ["", "wxBOTH", "wxVERTICAL", "wxHORIZONTAL"] + }, { + "type": "string", + "m_label": "Inherited Class", + "m_value": "clImageViewer" + }, { + "type": "string", + "m_label": "File:", + "m_value": "clImageViewer" + }, { + "type": "string", + "m_label": "Class Decorator", + "m_value": "WXDLLIMPEXP_SDK" + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "boxSizer194" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4440, + "proportion": 1, + "border": 2, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxBORDER_NONE", "wxHSCROLL", "wxVSCROLL"], + "m_sizerFlags": ["wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_scrollWin196" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Scroll Rate X:", + "m_value": "5" + }, { + "type": "string", + "m_label": "Scroll Rate Y:", + "m_value": "5" + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "boxSizer198" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4454, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "Spacer212" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "0,0" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4409, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_HORIZONTAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_staticBitmap" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4454, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "Spacer214" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "0,0" + }], + "m_events": [], + "m_children": [] + }] + }] + }] + }] + }, { + "m_type": 4484, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxBORDER_SIMPLE"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "clResizableTooltipBase" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Title:", + "m_value": "" + }, { + "type": "virtualFolderPicker", + "m_label": "Virtual Folder:", + "m_path": "plugin_sdk:GUI:Controls" + }, { + "type": "choice", + "m_label": "Centre:", + "m_selection": 1, + "m_options": ["", "wxBOTH", "wxVERTICAL", "wxHORIZONTAL"] + }, { + "type": "string", + "m_label": "Inherited Class", + "m_value": "clResizableTooltip" + }, { + "type": "string", + "m_label": "File:", + "m_value": "clResizableTooltip" + }, { + "type": "string", + "m_label": "Class Decorator", + "m_value": "WXDLLIMPEXP_SDK" + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "boxSizer222" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4408, + "proportion": 1, + "border": 0, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxTAB_TRAVERSAL"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "300,250" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "300,250" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_mainPanel" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "Tooltip" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "TooltipText" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "boxSizer230" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4422, + "proportion": 1, + "border": 0, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxTR_DEFAULT_STYLE", "wxBORDER_NONE"], + "m_sizerFlags": ["wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_treeCtrl" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "Tooltip" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "TooltipText" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_TREE_ITEM_EXPANDING", + "m_eventClass": "wxTreeEvent", + "m_eventHandler": "wxTreeEventHandler", + "m_functionNameAndSignature": "OnItemExpanding(wxTreeEvent& event)", + "m_description": "The item is being expanded. This can be prevented by calling Veto().", + "m_noBody": false + }], + "m_children": [] + }] + }] + }, { + "m_type": 4408, + "proportion": 0, + "border": 0, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxTAB_TRAVERSAL"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_panelStatus" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "Tooltip" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "TooltipText" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }], + "m_events": [{ + "m_eventName": "wxEVT_ENTER_WINDOW", + "m_eventClass": "wxMouseEvent", + "m_eventHandler": "wxMouseEventHandler", + "m_functionNameAndSignature": "OnStatusEnterWindow(wxMouseEvent& event)", + "m_description": "Process a wxEVT_ENTER_WINDOW event", + "m_noBody": false + }, { + "m_eventName": "wxEVT_LEAVE_WINDOW", + "m_eventClass": "wxMouseEvent", + "m_eventHandler": "wxMouseEventHandler", + "m_functionNameAndSignature": "OnStatusLeaveWindow(wxMouseEvent& event)", + "m_description": "Process a wxEVT_LEAVE_WINDOW event.", + "m_noBody": false + }, { + "m_eventName": "wxEVT_MOTION", + "m_eventClass": "wxMouseEvent", + "m_eventHandler": "wxMouseEventHandler", + "m_functionNameAndSignature": "OnStatusBarMotion(wxMouseEvent& event)", + "m_description": "Process a wxEVT_MOTION event", + "m_noBody": false + }, { + "m_eventName": "wxEVT_LEFT_UP", + "m_eventClass": "wxMouseEvent", + "m_eventHandler": "wxMouseEventHandler", + "m_functionNameAndSignature": "OnStatusBarLeftUp(wxMouseEvent& event)", + "m_description": "Process a wxEVT_LEFT_UP event.", + "m_noBody": false + }, { + "m_eventName": "wxEVT_LEFT_DOWN", + "m_eventClass": "wxMouseEvent", + "m_eventHandler": "wxMouseEventHandler", + "m_functionNameAndSignature": "OnStatusBarLeftDown(wxMouseEvent& event)", + "m_description": "Process a wxEVT_LEFT_DOWN event. The handler of this event should normally call event.Skip() to allow the default processing to take place as otherwise the window under mouse wouldn't get the focus.", + "m_noBody": false + }, { + "m_eventName": "wxEVT_MOUSE_CAPTURE_LOST", + "m_eventClass": "wxMouseCaptureLostEvent", + "m_eventHandler": "wxMouseCaptureLostEventHandler", + "m_functionNameAndSignature": "OnCaptureLost(wxMouseCaptureLostEvent& event)", + "m_description": "A mouse capture lost event is sent to a window that had obtained mouse capture, which was subsequently lost due to an \"external\" event (for example, when a dialog box is shown or if another application captures the mouse)", + "m_noBody": false + }], + "m_children": [{ + "m_type": 4401, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "boxSizer234" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 1, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4454, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "Spacer238" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "0,0" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4409, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALIGN_CENTER_VERTICAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_staticBitmap240" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "Tooltip" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "../icons/resize.png" + }], + "m_events": [{ + "m_eventName": "wxEVT_LEFT_DOWN", + "m_eventClass": "wxMouseEvent", + "m_eventHandler": "wxMouseEventHandler", + "m_functionNameAndSignature": "OnStatusBarLeftDown(wxMouseEvent& event)", + "m_description": "Process a wxEVT_LEFT_DOWN event. The handler of this event should normally call event.Skip() to allow the default processing to take place as otherwise the window under mouse wouldn't get the focus.", + "m_noBody": false + }, { + "m_eventName": "wxEVT_LEFT_UP", + "m_eventClass": "wxMouseEvent", + "m_eventHandler": "wxMouseEventHandler", + "m_functionNameAndSignature": "OnStatusBarLeftUp(wxMouseEvent& event)", + "m_description": "Process a wxEVT_LEFT_UP event.", + "m_noBody": false + }, { + "m_eventName": "wxEVT_MOTION", + "m_eventClass": "wxMouseEvent", + "m_eventHandler": "wxMouseEventHandler", + "m_functionNameAndSignature": "OnStatusBarMotion(wxMouseEvent& event)", + "m_description": "Process a wxEVT_MOTION event", + "m_noBody": false + }, { + "m_eventName": "wxEVT_LEAVE_WINDOW", + "m_eventClass": "wxMouseEvent", + "m_eventHandler": "wxMouseEventHandler", + "m_functionNameAndSignature": "OnStatusLeaveWindow(wxMouseEvent& event)", + "m_description": "Process a wxEVT_LEAVE_WINDOW event.", + "m_noBody": false + }, { + "m_eventName": "wxEVT_ENTER_WINDOW", + "m_eventClass": "wxMouseEvent", + "m_eventHandler": "wxMouseEventHandler", + "m_functionNameAndSignature": "OnStatusEnterWindow(wxMouseEvent& event)", + "m_description": "Process a wxEVT_ENTER_WINDOW event", + "m_noBody": false + }, { + "m_eventName": "wxEVT_MOUSE_CAPTURE_LOST", + "m_eventClass": "wxMouseCaptureLostEvent", + "m_eventHandler": "wxMouseCaptureLostEventHandler", + "m_functionNameAndSignature": "OnCaptureLost(wxMouseCaptureLostEvent& event)", + "m_description": "A mouse capture lost event is sent to a window that had obtained mouse capture, which was subsequently lost due to an \"external\" event (for example, when a dialog box is shown or if another application captures the mouse)", + "m_noBody": false + }], + "m_children": [] + }] + }] + }] + }, { + "m_type": 4483, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "m_timerCheckMousePos" + }, { + "type": "integer", + "m_label": "Interval", + "m_value": 25 + }, { + "type": "bool", + "m_label": "Start the timer", + "m_value": true + }, { + "type": "bool", + "m_label": "One Shot Timer", + "m_value": false + }], + "m_events": [{ + "m_eventName": "wxEVT_TIMER", + "m_eventClass": "wxTimerEvent", + "m_eventHandler": "wxTimerEventHandler", + "m_functionNameAndSignature": "OnCheckMousePosition(wxTimerEvent& event)", + "m_description": "Process a timer event", + "m_noBody": false + }], + "m_children": [] + }] }] } \ No newline at end of file diff -Nru codelite-8.0.1+dfsg2/Plugin/wxCustomStatusBar.cpp codelite-9.0+dfsg/Plugin/wxCustomStatusBar.cpp --- codelite-8.0.1+dfsg2/Plugin/wxCustomStatusBar.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/wxCustomStatusBar.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -81,7 +81,9 @@ wxBitmap bmp(m_rect.GetSize()); wxMemoryDC memDc; memDc.SelectObject(bmp); - memDc.SetFont(wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT)); + wxFont font = wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT); + font.SetPointSize(10); + memDc.SetFont(font); wxRect rect(m_rect.GetSize()); // Create the same rect size, but on 0,0 // Draw the field background diff -Nru codelite-8.0.1+dfsg2/Plugin/wxFlatButtonBase.cpp codelite-9.0+dfsg/Plugin/wxFlatButtonBase.cpp --- codelite-8.0.1+dfsg2/Plugin/wxFlatButtonBase.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/wxFlatButtonBase.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -23,11 +23,12 @@ bBitmapLoaded = true; } + SetName(wxT("wxFlatButtonBase")); SetSizeHints(-1,-1); if ( GetSizer() ) { GetSizer()->Fit(this); } - Centre(wxBOTH); + CentreOnParent(wxBOTH); // Connect events this->Connect(wxEVT_ENTER_WINDOW, wxMouseEventHandler(wxFlatButtonBase::OnEnterWindow), NULL, this); this->Connect(wxEVT_LEAVE_WINDOW, wxMouseEventHandler(wxFlatButtonBase::OnLeaveWindow), NULL, this); @@ -68,11 +69,14 @@ m_mainSizer->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); this->SetSizer(m_mainSizer); + m_mainSizer->Add(0, 0, 1, wxALL, 5); + + SetName(wxT("wxFlatButtonBarBase")); SetSizeHints(-1,-1); if ( GetSizer() ) { GetSizer()->Fit(this); } - Centre(wxBOTH); + CentreOnParent(wxBOTH); // Connect events this->Connect(wxEVT_PAINT, wxPaintEventHandler(wxFlatButtonBarBase::OnPaint), NULL, this); this->Connect(wxEVT_SIZE, wxSizeEventHandler(wxFlatButtonBarBase::OnSize), NULL, this); diff -Nru codelite-8.0.1+dfsg2/Plugin/wxFlatButtonBase.h codelite-9.0+dfsg/Plugin/wxFlatButtonBase.h --- codelite-8.0.1+dfsg2/Plugin/wxFlatButtonBase.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/wxFlatButtonBase.h 2015-10-11 13:56:07.000000000 +0000 @@ -4,8 +4,8 @@ // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// -#ifndef WXFLATBUTTON_BASE_CLASSES_H -#define WXFLATBUTTON_BASE_CLASSES_H +#ifndef CODELITE_PLUGIN_WXFLATBUTTON_BASE_CLASSES_H +#define CODELITE_PLUGIN_WXFLATBUTTON_BASE_CLASSES_H #include #include @@ -13,6 +13,12 @@ #include #include #include +#if wxVERSION_NUMBER >= 2900 +#include +#include +#include +#include +#endif class wxFlatButtonBase : public wxPanel { diff -Nru codelite-8.0.1+dfsg2/Plugin/wxFlatButton.wxcp codelite-9.0+dfsg/Plugin/wxFlatButton.wxcp --- codelite-8.0.1+dfsg2/Plugin/wxFlatButton.wxcp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/wxFlatButton.wxcp 2015-10-11 13:56:07.000000000 +0000 @@ -266,6 +266,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "m_mainSizer" }, { diff -Nru codelite-8.0.1+dfsg2/Plugin/wxterminal.cpp codelite-9.0+dfsg/Plugin/wxterminal.cpp --- codelite-8.0.1+dfsg2/Plugin/wxterminal.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/wxterminal.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,28 +1,28 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2014 The CodeLite Team -// file name : wxterminal.cpp -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - +////////////////////////////////////////////////////////////////////////////// +////////////////////////////////////////////////////////////////////////////// +// +// copyright : (C) 2014 The CodeLite Team +// file name : wxterminal.cpp +// +// ------------------------------------------------------------------------- +// A +// _____ _ _ _ _ +// / __ \ | | | | (_) | +// | / \/ ___ __| | ___| | _| |_ ___ +// | | / _ \ / _ |/ _ \ | | | __/ _ ) +// | \__/\ (_) | (_| | __/ |___| | || __/ +// \____/\___/ \__,_|\___\_____/_|\__\___| +// +// F i l e +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// +////////////////////////////////////////////////////////////////////////////// +////////////////////////////////////////////////////////////////////////////// + #include "wxterminal.h" #include "asyncprocess.h" #include @@ -30,11 +30,11 @@ #include "processreaderthread.h" #include "drawingutils.h" -#define OUTPUT_BUFFER_MAX_SIZE 1024*1024 /* 1MB of buffer */ +#define OUTPUT_BUFFER_MAX_SIZE 1024 * 1024 /* 1MB of buffer */ #ifdef __WXMSW__ #include "windows.h" -#define SHELL_PREFIX wxT("cmd /c ") +#define SHELL_PREFIX wxT("cmd /c ") #define SHELL_WRAPPER wxT("") #else @@ -45,25 +45,25 @@ #endif #include -#define SHELL_PREFIX wxT("/bin/sh -c ") +#define SHELL_PREFIX wxT("/bin/sh -c ") #define SHELL_WRAPPER wxT("'") #endif #if defined(__WXGTK__) #ifdef __FreeBSD__ -# include -# include -# include +#include +#include +#include #else -# include +#include #endif -# include "unixprocess_impl.h" +#include "unixprocess_impl.h" #elif defined(__WXMAC__) -# include -# include "unixprocess_impl.h" +#include +#include "unixprocess_impl.h" #endif -static wxString WrapInShell(const wxString &cmd) +static wxString WrapInShell(const wxString& cmd) { wxString shellCommand; shellCommand << SHELL_PREFIX << SHELL_WRAPPER << cmd << SHELL_WRAPPER; @@ -72,13 +72,11 @@ //------------------------------------------------------------- BEGIN_EVENT_TABLE(wxTerminal, wxTerminalBase) - EVT_COMMAND(wxID_ANY, wxEVT_PROC_DATA_READ, wxTerminal::OnReadProcessOutput) - EVT_COMMAND(wxID_ANY, wxEVT_PROC_TERMINATED, wxTerminal::OnProcessEnd ) - EVT_IDLE(wxTerminal::OnIdle) +EVT_IDLE(wxTerminal::OnIdle) END_EVENT_TABLE() -wxTerminal::wxTerminal( wxWindow* parent ) - : wxTerminalBase ( parent ) +wxTerminal::wxTerminal(wxWindow* parent) + : wxTerminalBase(parent) , m_process(NULL) , m_exitWhenProcessDies(false) , m_exitOnKey(false) @@ -88,17 +86,20 @@ #endif , m_interactive(false) { - m_defaultStyle.SetFont ( m_textCtrl->GetFont() ); - m_defaultStyle.SetTextColour ( DrawingUtils::GetOutputPaneFgColour() ); - m_defaultStyle.SetBackgroundColour( DrawingUtils::GetOutputPaneBgColour()); - - m_textCtrl->SetForegroundColour ( DrawingUtils::GetOutputPaneFgColour() ); - m_textCtrl->SetBackgroundColour ( DrawingUtils::GetOutputPaneBgColour() ); - m_textCtrl->SetDefaultStyle ( m_defaultStyle ); - - wxTheApp->Connect(wxID_CUT, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(wxTerminal::OnEdit), NULL, this); - wxTheApp->Connect(wxID_COPY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(wxTerminal::OnEdit), NULL, this); - wxTheApp->Connect(wxID_SELECTALL, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(wxTerminal::OnEdit), NULL, this); + m_defaultStyle.SetFont(m_textCtrl->GetFont()); + m_defaultStyle.SetTextColour(DrawingUtils::GetOutputPaneFgColour()); + m_defaultStyle.SetBackgroundColour(DrawingUtils::GetOutputPaneBgColour()); + + m_textCtrl->SetForegroundColour(DrawingUtils::GetOutputPaneFgColour()); + m_textCtrl->SetBackgroundColour(DrawingUtils::GetOutputPaneBgColour()); + m_textCtrl->SetDefaultStyle(m_defaultStyle); + + wxTheApp->Connect(wxID_CUT, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(wxTerminal::OnEdit), NULL, this); + wxTheApp->Connect(wxID_COPY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(wxTerminal::OnEdit), NULL, this); + wxTheApp->Connect( + wxID_SELECTALL, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(wxTerminal::OnEdit), NULL, this); + Bind(wxEVT_ASYNC_PROCESS_OUTPUT, &wxTerminal::OnReadProcessOutput, this); + Bind(wxEVT_ASYNC_PROCESS_TERMINATED, &wxTerminal::OnProcessEnd, this); } wxTerminal::~wxTerminal() @@ -107,37 +108,32 @@ StopTTY(); #endif - wxTheApp->Disconnect(wxID_CUT, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(wxTerminal::OnEdit), NULL, this); - wxTheApp->Disconnect(wxID_COPY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(wxTerminal::OnEdit), NULL, this); - wxTheApp->Disconnect(wxID_SELECTALL, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(wxTerminal::OnEdit), NULL, this); + wxTheApp->Disconnect(wxID_CUT, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(wxTerminal::OnEdit), NULL, this); + wxTheApp->Disconnect(wxID_COPY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(wxTerminal::OnEdit), NULL, this); + wxTheApp->Disconnect( + wxID_SELECTALL, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(wxTerminal::OnEdit), NULL, this); } -void wxTerminal::OnText( wxCommandEvent& event ) -{ - event.Skip(); -} +void wxTerminal::OnText(wxCommandEvent& event) { event.Skip(); } -void wxTerminal::OnEnter( wxCommandEvent& event ) +void wxTerminal::OnEnter(wxCommandEvent& event) { event.Skip(); - if ( m_interactive ) { + if(m_interactive) { wxString lineText = m_textCtrl->GetRange(m_inferiorEnd, m_textCtrl->GetInsertionPoint()); lineText.Trim().Trim(false); DoProcessCommand(lineText); } } -void wxTerminal::OnURL( wxTextUrlEvent& event ) -{ - event.Skip(); -} +void wxTerminal::OnURL(wxTextUrlEvent& event) { event.Skip(); } void wxTerminal::OnKey(wxKeyEvent& event) { // We don't want to allow much editing in the textctrl, but it's nice to let the DEL key delete the selection - if ((event.GetKeyCode() == WXK_DELETE) && (m_textCtrl->HasSelection())) { - m_textCtrl->Cut(); // which is close enough for our purposes - return; + if((event.GetKeyCode() == WXK_DELETE) && (m_textCtrl->HasSelection())) { + m_textCtrl->Cut(); // which is close enough for our purposes + return; } long curPos = m_textCtrl->GetInsertionPoint(); @@ -168,7 +164,6 @@ return; } - #ifndef __WXMSW__ if(m_dummyProcess) { switch(event.GetKeyCode()) { @@ -188,151 +183,129 @@ void wxTerminal::OnEdit(wxCommandEvent& event) { - if (wxWindow::FindFocus() != m_textCtrl) { + if(wxWindow::FindFocus() != m_textCtrl) { event.Skip(); return; } - switch (event.GetId()) { - case wxID_COPY: - m_textCtrl->Copy(); - break; - case wxID_CUT: - m_textCtrl->Cut(); - break; - case wxID_SELECTALL: - m_textCtrl->SelectAll(); - break; - default: - event.Skip(); + switch(event.GetId()) { + case wxID_COPY: + m_textCtrl->Copy(); + break; + case wxID_CUT: + m_textCtrl->Cut(); + break; + case wxID_SELECTALL: + m_textCtrl->SelectAll(); + break; + default: + event.Skip(); } } -void wxTerminal::OnProcessEnd(wxCommandEvent& event) +void wxTerminal::OnProcessEnd(clProcessEvent& event) { - ProcessEventData *ped = (ProcessEventData *)event.GetClientData(); - delete ped; wxDELETE(m_process); - + // Make sure we flush everything DoFlushOutputBuffer(); if(m_exitWhenProcessDies) { m_textCtrl->SetInsertionPointEnd(); - m_textCtrl->AppendText(wxString(wxT("\n")) +_("Press any key to continue...")); + m_textCtrl->AppendText(wxString(wxT("\n")) + _("Press any key to continue...")); m_exitOnKey = true; } } -void wxTerminal::OnReadProcessOutput(wxCommandEvent& event) -{ - ProcessEventData *ped = (ProcessEventData *)event.GetClientData(); - m_outputBuffer << ped->GetData(); - wxDELETE(ped); - - // Incase we hit the limit of the output buffer, flush it now - // if ( m_outputBuffer.length() > OUTPUT_BUFFER_MAX_SIZE ) { - // DoFlushOutputBuffer(); - // } -} +void wxTerminal::OnReadProcessOutput(clProcessEvent& event) { m_outputBuffer << event.GetOutput(); } void wxTerminal::DoCtrlC() { - if(!m_process) - return; + if(!m_process) return; #ifdef __WXMSW__ - HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, (DWORD) m_process->GetPid()); + HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, (DWORD)m_process->GetPid()); if(hProcess) { TerminateProcess(hProcess, 0); - CloseHandle( hProcess ); + CloseHandle(hProcess); } #else - //int status(0); Commented out as 'Unused variable' + // int status(0); Commented out as 'Unused variable' wxKill(m_process->GetPid(), wxSIGKILL, NULL, wxKILL_CHILDREN); #endif } -void wxTerminal::Execute(const wxString& command, bool exitWhenDone, const wxString &workingDir) +void wxTerminal::Execute(const wxString& command, bool exitWhenDone, const wxString& workingDir) { - if(m_process) - return; + if(m_process) return; m_textCtrl->Clear(); // restore default style - m_textCtrl->SetDefaultStyle( m_defaultStyle ); + m_textCtrl->SetDefaultStyle(m_defaultStyle); m_textCtrl->SetFocus(); m_exitWhenProcessDies = exitWhenDone; - m_workingDir = workingDir; + m_workingDir = workingDir; DoProcessCommand(command); } void wxTerminal::DoProcessCommand(const wxString& command) { - wxString cmd ( command ); + wxString cmd(command); cmd.Trim().Trim(false); wxString path; // Add the shell prefix wxString cmdShell = WrapInShell(cmd); // real command - IProcess *cmdPrc = CreateAsyncProcess(this, cmdShell, IProcessCreateWithHiddenConsole, m_workingDir); - if( cmdPrc ) { + IProcess* cmdPrc = CreateAsyncProcess(this, cmdShell, IProcessCreateWithHiddenConsole, m_workingDir); + if(cmdPrc) { m_process = cmdPrc; } else { m_process = NULL; m_textCtrl->SetInsertionPointEnd(); - m_textCtrl->AppendText(wxString::Format(_("Failed to execute command: %s\nWorking Directory: %s\n"), cmdShell.c_str(), m_workingDir.c_str())); + m_textCtrl->AppendText(wxString::Format( + _("Failed to execute command: %s\nWorking Directory: %s\n"), cmdShell.c_str(), m_workingDir.c_str())); if(m_exitWhenProcessDies) { m_textCtrl->SetInsertionPointEnd(); - m_textCtrl->AppendText(wxString(wxT("\n")) +_("Press any key to continue...")); + m_textCtrl->AppendText(wxString(wxT("\n")) + _("Press any key to continue...")); m_exitOnKey = true; } } } -void wxTerminal::KillInferior() -{ - DoCtrlC(); -} +void wxTerminal::KillInferior() { DoCtrlC(); } -bool wxTerminal::IsRunning() -{ - return m_process != NULL; -} +bool wxTerminal::IsRunning() { return m_process != NULL; } -void wxTerminal::Clear() -{ - m_textCtrl->Clear(); -} +void wxTerminal::Clear() { m_textCtrl->Clear(); } -#if defined(__WXGTK__)||defined(__WXMAC__) +#if defined(__WXGTK__) || defined(__WXMAC__) wxString wxTerminal::StartTTY() { m_process = NULL; // Open the master side of a pseudo terminal - int master = ::posix_openpt (O_RDWR|O_NOCTTY); - if (master < 0) { + int master = ::posix_openpt(O_RDWR | O_NOCTTY); + if(master < 0) { return ""; } // Grant access to the slave pseudo terminal - if (::grantpt (master) < 0) { + if(::grantpt(master) < 0) { ::close(master); return ""; } // Clear the lock flag on the slave pseudo terminal - if (::unlockpt (master) < 0) { + if(::unlockpt(master) < 0) { ::close(master); return ""; } - + m_tty = ::ptsname(master); - + // disable ECHO struct termios termio; tcgetattr(master, &termio); @@ -342,7 +315,7 @@ // Start a listener on the tty m_dummyProcess = new UnixProcessImpl(this); - static_cast(m_dummyProcess)->SetReadHandle (master); + static_cast(m_dummyProcess)->SetReadHandle(master); static_cast(m_dummyProcess)->SetWriteHandler(master); static_cast(m_dummyProcess)->SetPid(wxNOT_FOUND); static_cast(m_dummyProcess)->StartReaderThread(); @@ -356,7 +329,7 @@ // close(m_slave); // m_slave = -1; } - + #endif void wxTerminal::OnIdle(wxIdleEvent& event) @@ -367,9 +340,9 @@ void wxTerminal::DoFlushOutputBuffer() { - if ( !m_outputBuffer.IsEmpty() ) { + if(!m_outputBuffer.IsEmpty()) { m_textCtrl->SetInsertionPointEnd(); - m_textCtrl->AppendText( m_outputBuffer ); + m_textCtrl->AppendText(m_outputBuffer); m_textCtrl->SetSelection(m_textCtrl->GetLastPosition(), m_textCtrl->GetLastPosition()); m_inferiorEnd = m_textCtrl->GetLastPosition(); m_outputBuffer.Clear(); diff -Nru codelite-8.0.1+dfsg2/Plugin/wxterminal.h codelite-9.0+dfsg/Plugin/wxterminal.h --- codelite-8.0.1+dfsg2/Plugin/wxterminal.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Plugin/wxterminal.h 2015-10-11 13:56:07.000000000 +0000 @@ -1,28 +1,28 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2013 by Eran Ifrah -// file name : wxterminal.h -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - +////////////////////////////////////////////////////////////////////////////// +////////////////////////////////////////////////////////////////////////////// +// +// copyright : (C) 2013 by Eran Ifrah +// file name : wxterminal.h +// +// ------------------------------------------------------------------------- +// A +// _____ _ _ _ _ +// / __ \ | | | | (_) | +// | / \/ ___ __| | ___| | _| |_ ___ +// | | / _ \ / _ |/ _ \ | | | __/ _ ) +// | \__/\ (_) | (_| | __/ |___| | || __/ +// \____/\___/ \__,_|\___\_____/_|\__\___| +// +// F i l e +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// +////////////////////////////////////////////////////////////////////////////// +////////////////////////////////////////////////////////////////////////////// + #ifndef __wxterminal__ #define __wxterminal__ @@ -34,80 +34,75 @@ #include "wxterminalbase.h" #include #include "codelite_exports.h" +#include "cl_command_event.h" class IProcess; class wxTerminalHistory { wxArrayString m_history; - size_t m_historyCursor; + size_t m_historyCursor; public: wxTerminalHistory(); ~wxTerminalHistory(); - void AddCommand( const wxString &command ); - wxString ArrowUp (); - wxString ArrowDown (); + void AddCommand(const wxString& command); + wxString ArrowUp(); + wxString ArrowDown(); }; /** Implementing wxTerminalBase */ class WXDLLIMPEXP_SDK wxTerminal : public wxTerminalBase { protected: - IProcess* m_process; - wxString m_workingDir; - wxTextAttr m_defaultStyle; - wxTextAttr m_promptStyle; - bool m_exitWhenProcessDies; - bool m_exitOnKey; - long m_inferiorEnd; -#if defined(__WXGTK__)||defined(__WXMAC__) - wxString m_tty; - IProcess * m_dummyProcess; - int m_slave; + IProcess* m_process; + wxString m_workingDir; + wxTextAttr m_defaultStyle; + wxTextAttr m_promptStyle; + bool m_exitWhenProcessDies; + bool m_exitOnKey; + long m_inferiorEnd; +#if defined(__WXGTK__) || defined(__WXMAC__) + wxString m_tty; + IProcess* m_dummyProcess; + int m_slave; #endif - bool m_interactive; - wxString m_outputBuffer; - + bool m_interactive; + wxString m_outputBuffer; + protected: - void DoProcessCommand(const wxString &command); - void DoCtrlC(); - void DoFlushOutputBuffer(); - + void DoProcessCommand(const wxString& command); + void DoCtrlC(); + void DoFlushOutputBuffer(); + protected: // Handlers for wxTerminalBase events. DECLARE_EVENT_TABLE() - virtual void OnText (wxCommandEvent& event); - virtual void OnEnter (wxCommandEvent& event); - virtual void OnURL (wxTextUrlEvent& event); - virtual void OnKey (wxKeyEvent & event); - virtual void OnReadProcessOutput(wxCommandEvent& event); - virtual void OnProcessEnd (wxCommandEvent& event); - virtual void OnIdle(wxIdleEvent &event); - void OnEdit (wxCommandEvent& event); + virtual void OnText(wxCommandEvent& event); + virtual void OnEnter(wxCommandEvent& event); + virtual void OnURL(wxTextUrlEvent& event); + virtual void OnKey(wxKeyEvent& event); + virtual void OnReadProcessOutput(clProcessEvent& event); + virtual void OnProcessEnd(clProcessEvent& event); + virtual void OnIdle(wxIdleEvent& event); + void OnEdit(wxCommandEvent& event); public: /** Constructor */ - wxTerminal( wxWindow* parent ); + wxTerminal(wxWindow* parent); virtual ~wxTerminal(); - void SetInteractive(bool interactive) { - this->m_interactive = interactive; - } - bool IsInteractive() const { - return m_interactive; - } - void Execute (const wxString &command, bool exitWhenDone = false, const wxString &workingDir = wxT("")); - void KillInferior(); - bool IsRunning (); - void Clear(); -#if defined(__WXGTK__)||defined(__WXMAC__) - wxString StartTTY(); - wxString GetTTY() const { - return m_tty; - } - void StopTTY(); + void SetInteractive(bool interactive) { this->m_interactive = interactive; } + bool IsInteractive() const { return m_interactive; } + void Execute(const wxString& command, bool exitWhenDone = false, const wxString& workingDir = wxT("")); + void KillInferior(); + bool IsRunning(); + void Clear(); +#if defined(__WXGTK__) || defined(__WXMAC__) + wxString StartTTY(); + wxString GetTTY() const { return m_tty; } + void StopTTY(); #endif }; diff -Nru codelite-8.0.1+dfsg2/QmakePlugin/CMakeLists.txt codelite-9.0+dfsg/QmakePlugin/CMakeLists.txt --- codelite-8.0.1+dfsg2/QmakePlugin/CMakeLists.txt 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/QmakePlugin/CMakeLists.txt 2015-10-11 13:56:07.000000000 +0000 @@ -26,11 +26,6 @@ add_definitions(-Winvalid-pch) endif ( USE_PCH ) -# Add RPATH -if (UNIX) -set (LINKER_OPTIONS -Wl,-rpath,"${PLUGINS_DIR}") -endif (UNIX) - if (UNIX AND NOT APPLE) set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC" ) set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC" ) @@ -53,8 +48,6 @@ ${wxWidgets_LIBRARIES} libcodelite plugin - wxsqlite3 - sqlite3lib ) # Installation destination CL_INSTALL_PLUGIN(${PLUGIN_NAME}) diff -Nru codelite-8.0.1+dfsg2/QmakePlugin/NewQtProj.cpp codelite-9.0+dfsg/QmakePlugin/NewQtProj.cpp --- codelite-8.0.1+dfsg2/QmakePlugin/NewQtProj.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/QmakePlugin/NewQtProj.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,30 +1,6 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2014 The CodeLite Team -// file name : NewQtProj.cpp -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - ////////////////////////////////////////////////////////////////////// // This file was auto-generated by codelite's wxCrafter Plugin +// wxCrafter project file: NewQtProj.wxcp // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// @@ -50,7 +26,7 @@ wxBoxSizer* bSizer5 = new wxBoxSizer(wxVERTICAL); this->SetSizer(bSizer5); - wxFlexGridSizer* fgSizer2 = new wxFlexGridSizer( 0, 2, 0, 0); + wxFlexGridSizer* fgSizer2 = new wxFlexGridSizer(0, 2, 0, 0); fgSizer2->SetFlexibleDirection( wxBOTH ); fgSizer2->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); fgSizer2->AddGrowableCol(1); @@ -62,6 +38,9 @@ fgSizer2->Add(m_staticText5, 0, wxALL|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5); m_textCtrlProjName = new wxTextCtrl(this, wxID_ANY, wxT(""), wxDefaultPosition, wxSize(-1, -1), 0); + #if wxVERSION_NUMBER >= 3000 + m_textCtrlProjName->SetHint(wxT("")); + #endif fgSizer2->Add(m_textCtrlProjName, 0, wxALL|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5); @@ -69,7 +48,7 @@ fgSizer2->Add(m_staticText7, 0, wxALL|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5); - m_dirPicker4 = new wxDirPickerCtrl(this, wxID_ANY, wxEmptyString, wxT("Select a folder"), wxDefaultPosition, wxSize(-1,-1), wxDIRP_DEFAULT_STYLE); + m_dirPicker4 = new wxDirPickerCtrl(this, wxID_ANY, wxEmptyString, _("Select a folder"), wxDefaultPosition, wxSize(-1,-1), wxDIRP_DEFAULT_STYLE); fgSizer2->Add(m_dirPicker4, 0, wxALL|wxEXPAND, 5); @@ -124,12 +103,19 @@ bSizer6->Add(m_buttonOk, 0, wxALL, 5); - + SetName(wxT("NewQtProjBaseDlg")); SetSizeHints(-1,-1); if ( GetSizer() ) { GetSizer()->Fit(this); } - Centre(); + CentreOnParent(); +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(this)) { + wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); + } +#endif // Connect events m_buttonSelectConfig->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(NewQtProjBaseDlg::OnNewQmakeSettings), NULL, this); m_buttonOk->Connect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(NewQtProjBaseDlg::OnOKUI), NULL, this); diff -Nru codelite-8.0.1+dfsg2/QmakePlugin/NewQtProj.h codelite-9.0+dfsg/QmakePlugin/NewQtProj.h --- codelite-8.0.1+dfsg2/QmakePlugin/NewQtProj.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/QmakePlugin/NewQtProj.h 2015-10-11 13:56:07.000000000 +0000 @@ -1,40 +1,18 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2014 The CodeLite Team -// file name : NewQtProj.h -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - ////////////////////////////////////////////////////////////////////// // This file was auto-generated by codelite's wxCrafter Plugin +// wxCrafter project file: NewQtProj.wxcp // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// -#ifndef NEWQTPROJ_BASE_CLASSES_H -#define NEWQTPROJ_BASE_CLASSES_H +#ifndef CODELITE_QMAKEPLUGIN_NEWQTPROJ_BASE_CLASSES_H +#define CODELITE_QMAKEPLUGIN_NEWQTPROJ_BASE_CLASSES_H #include #include #include #include +#include +#include #include #include #include @@ -44,6 +22,12 @@ #include #include #include +#if wxVERSION_NUMBER >= 2900 +#include +#include +#include +#include +#endif class NewQtProjBaseDlg : public wxDialog { @@ -66,6 +50,18 @@ virtual void OnOKUI(wxUpdateUIEvent& event) { event.Skip(); } public: + wxStaticText* GetStaticText5() { return m_staticText5; } + wxTextCtrl* GetTextCtrlProjName() { return m_textCtrlProjName; } + wxStaticText* GetStaticText7() { return m_staticText7; } + wxDirPickerCtrl* GetDirPicker4() { return m_dirPicker4; } + wxStaticText* GetStaticText13() { return m_staticText13; } + wxChoice* GetChoiceProjKind() { return m_choiceProjKind; } + wxStaticText* GetStaticText12() { return m_staticText12; } + wxChoice* GetChoiceQmake() { return m_choiceQmake; } + wxButton* GetButtonSelectConfig() { return m_buttonSelectConfig; } + wxCheckBox* GetCheckBoxUseSepDirectory() { return m_checkBoxUseSepDirectory; } + wxButton* GetButtonCancel() { return m_buttonCancel; } + wxButton* GetButtonOk() { return m_buttonOk; } NewQtProjBaseDlg(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("New Qmake project"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1, -1), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER); virtual ~NewQtProjBaseDlg(); }; diff -Nru codelite-8.0.1+dfsg2/QmakePlugin/NewQtProj_qmakeplugin_bitmaps.cpp codelite-9.0+dfsg/QmakePlugin/NewQtProj_qmakeplugin_bitmaps.cpp --- codelite-8.0.1+dfsg2/QmakePlugin/NewQtProj_qmakeplugin_bitmaps.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/QmakePlugin/NewQtProj_qmakeplugin_bitmaps.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,28 +1,3 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2014 The CodeLite Team -// file name : NewQtProj_qmakeplugin_bitmaps.cpp -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - // // This file was automatically generated by wxrc, do not edit by hand. // @@ -46,14 +21,13 @@ wxMemoryFSHandler::AddFile(name, data, size) #endif -static size_t xml_res_size_0 = 108; +static size_t xml_res_size_0 = 90; static unsigned char xml_res_file_0[] = { 60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, 110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, 115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, 47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, -47,119,120,120,114,99,34,32,118,101,114,115,105,111,110,61,34,50,46,51, -46,48,46,49,34,47,62,10}; +47,119,120,120,114,99,34,47,62,10}; void wxCrafterM0lZAnInitBitmapResources() { @@ -68,6 +42,6 @@ else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase); } - XRC_ADD_FILE(wxT("XRC_resource/NewQtProj_qmakeplugin_bitmaps.cpp$._NewQtProj_qmakeplugin_bitmaps.xrc"), xml_res_file_0, xml_res_size_0, wxT("text/xml")); - wxXmlResource::Get()->Load(wxT("memory:XRC_resource/NewQtProj_qmakeplugin_bitmaps.cpp$._NewQtProj_qmakeplugin_bitmaps.xrc")); + XRC_ADD_FILE(wxT("XRC_resource/NewQtProj_qmakeplugin_bitmaps.cpp$C__src_codelite_QmakePlugin_NewQtProj_qmakeplugin_bitmaps.xrc"), xml_res_file_0, xml_res_size_0, wxT("text/xml")); + wxXmlResource::Get()->Load(wxT("memory:XRC_resource/NewQtProj_qmakeplugin_bitmaps.cpp$C__src_codelite_QmakePlugin_NewQtProj_qmakeplugin_bitmaps.xrc")); } diff -Nru codelite-8.0.1+dfsg2/QmakePlugin/NewQtProj.wxcp codelite-9.0+dfsg/QmakePlugin/NewQtProj.wxcp --- codelite-8.0.1+dfsg2/QmakePlugin/NewQtProj.wxcp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/QmakePlugin/NewQtProj.wxcp 2015-10-11 13:56:07.000000000 +0000 @@ -1,1115 +1,1274 @@ { - "metadata": { - "m_generatedFilesDir": ".", - "m_objCounter": 6, - "m_includeFiles": [], - "m_bitmapFunction": "wxCrafterM0lZAnInitBitmapResources", - "m_bitmapsFile": "NewQtProj_qmakeplugin_bitmaps.cpp", - "m_GenerateCodeTypes": 1, - "m_outputFileName": "NewQtProj", - "m_templateClasses": [] - }, - "windows": [{ - "m_type": 4421, - "proportion": 0, - "border": 0, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": ["wxDEFAULT_DIALOG_STYLE", "wxRESIZE_BORDER"], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "NewQtProjBaseDlg" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hide control", - "m_value": false - }, { - "type": "bool", - "m_label": "Disable control", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Title:", - "m_value": "New Qmake project" - }, { - "type": "virtualFolderPicker", - "m_label": "Virtual Folder:", - "m_path": "" - }, { - "type": "choice", - "m_label": "Centre:", - "m_selection": 0, - "m_options": ["", "wxBOTH", "wxVERTICAL", "wxHORIZONTAL"] - }, { - "type": "string", - "m_label": "File:", - "m_value": "newqtprojdlg.cpp" - }, { - "type": "string", - "m_label": "Inherited Class", - "m_value": "NewQtProjDlg" - }, { - "type": "string", - "m_label": "Class Decorator", - "m_value": "" - }], - "m_events": [], - "m_children": [{ - "m_type": 4401, - "proportion": 0, - "border": 0, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "bSizer5" - }, { - "type": "bool", - "m_label": "Hide control", - "m_value": false - }, { - "type": "bool", - "m_label": "Disable control", - "m_value": false - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4403, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "fgSizer2" - }, { - "type": "bool", - "m_label": "Hide control", - "m_value": false - }, { - "type": "bool", - "m_label": "Disable control", - "m_value": false - }, { - "type": "string", - "m_label": "# Columns:", - "m_value": "2" - }, { - "type": "string", - "m_label": "# Rows:", - "m_value": "0" - }, { - "type": "string", - "m_label": "Growable columns:", - "m_value": "1" - }, { - "type": "string", - "m_label": "Growable rows:", - "m_value": "" - }, { - "type": "string", - "m_label": "Horizontal gap:", - "m_value": "0" - }, { - "type": "string", - "m_label": "Vertical gap:", - "m_value": "0" - }], - "m_events": [], - "m_children": [{ - "m_type": 4405, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT", "wxALIGN_CENTER_VERTICAL"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_staticText5" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hide control", - "m_value": false - }, { - "type": "bool", - "m_label": "Disable control", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Label:", - "m_value": "Project name:" - }, { - "type": "string", - "m_label": "Wrap:", - "m_value": "-1" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4406, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND", "wxALIGN_CENTER_VERTICAL"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_textCtrlProjName" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hide control", - "m_value": false - }, { - "type": "bool", - "m_label": "Disable control", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Value:", - "m_value": "" - }, { - "type": "string", - "m_label": "Max Length:", - "m_value": "0" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4405, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT", "wxALIGN_CENTER_VERTICAL"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_staticText7" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hide control", - "m_value": false - }, { - "type": "bool", - "m_label": "Disable control", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Label:", - "m_value": "Project path:" - }, { - "type": "string", - "m_label": "Wrap:", - "m_value": "-1" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4432, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": ["wxDIRP_DEFAULT_STYLE"], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_dirPicker4" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hide control", - "m_value": false - }, { - "type": "bool", - "m_label": "Disable control", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Value:", - "m_value": "" - }, { - "type": "string", - "m_label": "Message:", - "m_value": "Select a folder" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4405, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT", "wxALIGN_CENTER_VERTICAL"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_staticText13" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hide control", - "m_value": false - }, { - "type": "bool", - "m_label": "Disable control", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Label:", - "m_value": "Project kind:" - }, { - "type": "string", - "m_label": "Wrap:", - "m_value": "-1" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4411, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_choiceProjKind" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hide control", - "m_value": false - }, { - "type": "bool", - "m_label": "Disable control", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Choices:", - "m_value": "" - }, { - "type": "string", - "m_label": "Selection:", - "m_value": "0" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4405, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT", "wxALIGN_CENTER_VERTICAL"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_staticText12" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hide control", - "m_value": false - }, { - "type": "bool", - "m_label": "Disable control", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Label:", - "m_value": "QMake to use:" - }, { - "type": "string", - "m_label": "Wrap:", - "m_value": "-1" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4401, - "proportion": 1, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxEXPAND"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "boxSizer6" - }, { - "type": "bool", - "m_label": "Hide control", - "m_value": false - }, { - "type": "bool", - "m_label": "Disable control", - "m_value": false - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 1, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4411, - "proportion": 1, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxLEFT", "wxTOP", "wxBOTTOM", "wxEXPAND", "wxALIGN_CENTER_VERTICAL"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_choiceQmake" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hide control", - "m_value": false - }, { - "type": "bool", - "m_label": "Disable control", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Choices:", - "m_value": "" - }, { - "type": "string", - "m_label": "Selection:", - "m_value": "0" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4400, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": ["wxBU_EXACTFIT"], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND", "wxALIGN_CENTER_VERTICAL"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_buttonSelectConfig" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "Open the QMakeSettings configuration dialog" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hide control", - "m_value": false - }, { - "type": "bool", - "m_label": "Disable control", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "New..." - }, { - "type": "bool", - "m_label": "Default Button", - "m_value": false - }, { - "type": "filePicker", - "m_label": "Bitmap File:", - "m_path": "" - }, { - "type": "string", - "m_label": "Margins:", - "m_value": "2,2" - }], - "m_events": [{ - "m_eventName": "wxEVT_COMMAND_BUTTON_CLICKED", - "m_eventClass": "wxCommandEvent", - "m_eventHandler": "wxCommandEventHandler", - "m_functionNameAndSignature": "OnNewQmakeSettings(wxCommandEvent& event)", - "m_description": "Process a wxEVT_COMMAND_BUTTON_CLICKED event, when the button is clicked." - }], - "m_children": [] - }] - }] - }, { - "m_type": 4449, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "sbSizer1" - }, { - "type": "bool", - "m_label": "Hide control", - "m_value": false - }, { - "type": "bool", - "m_label": "Disable control", - "m_value": false - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 2, - "m_options": ["Vertical", "Horizontal", "wxVERTICAL"] - }, { - "type": "string", - "m_label": "Label:", - "m_value": "Other settings:" - }], - "m_events": [], - "m_children": [{ - "m_type": 4415, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_checkBoxUseSepDirectory" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hide control", - "m_value": false - }, { - "type": "bool", - "m_label": "Disable control", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "Create the project under a separate directory" - }, { - "type": "bool", - "m_label": "Value:", - "m_value": true - }], - "m_events": [], - "m_children": [] - }] - }, { - "m_type": 4454, - "proportion": 1, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "Spacer2" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "0,0" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4401, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_HORIZONTAL"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "bSizer6" - }, { - "type": "bool", - "m_label": "Hide control", - "m_value": false - }, { - "type": "bool", - "m_label": "Disable control", - "m_value": false - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 1, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4400, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_CANCEL" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_buttonCancel" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hide control", - "m_value": false - }, { - "type": "bool", - "m_label": "Disable control", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "&Cancel" - }, { - "type": "bool", - "m_label": "Default Button", - "m_value": false - }, { - "type": "filePicker", - "m_label": "Bitmap File:", - "m_path": "" - }, { - "type": "string", - "m_label": "Margins:", - "m_value": "2,2" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4400, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_OK" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_buttonOk" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hide control", - "m_value": false - }, { - "type": "bool", - "m_label": "Disable control", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "&OK" - }, { - "type": "bool", - "m_label": "Default Button", - "m_value": true - }, { - "type": "filePicker", - "m_label": "Bitmap File:", - "m_path": "" - }, { - "type": "string", - "m_label": "Margins:", - "m_value": "2,2" - }], - "m_events": [{ - "m_eventName": "wxEVT_UPDATE_UI", - "m_eventClass": "wxUpdateUIEvent", - "m_eventHandler": "wxUpdateUIEventHandler", - "m_functionNameAndSignature": "OnOKUI(wxUpdateUIEvent& event)", - "m_description": "Process a wxEVT_UPDATE_UI event" - }], - "m_children": [] - }] - }] - }] - }] + "metadata": { + "m_generatedFilesDir": ".", + "m_objCounter": 6, + "m_includeFiles": [], + "m_bitmapFunction": "wxCrafterM0lZAnInitBitmapResources", + "m_bitmapsFile": "NewQtProj_qmakeplugin_bitmaps.cpp", + "m_GenerateCodeTypes": 1, + "m_outputFileName": "NewQtProj", + "m_firstWindowId": 1000, + "m_useEnum": true, + "m_templateClasses": [] + }, + "windows": [{ + "m_type": 4421, + "proportion": 0, + "border": 0, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": ["wxDEFAULT_DIALOG_STYLE", "wxRESIZE_BORDER"], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "NewQtProjBaseDlg" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Enable Window Persistency:", + "m_value": true + }, { + "type": "string", + "m_label": "Title:", + "m_value": "New Qmake project" + }, { + "type": "virtualFolderPicker", + "m_label": "Virtual Folder:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Centre:", + "m_selection": 0, + "m_options": ["", "wxBOTH", "wxVERTICAL", "wxHORIZONTAL"] + }, { + "type": "string", + "m_label": "Inherited Class", + "m_value": "NewQtProjDlg" + }, { + "type": "string", + "m_label": "File:", + "m_value": "newqtprojdlg.cpp" + }, { + "type": "string", + "m_label": "Class Decorator", + "m_value": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (16x16) :", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (32x32) :", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (64x64) :", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (128x128):", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (256x256):", + "m_path": "" + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 0, + "border": 0, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "bSizer5" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4403, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "fgSizer2" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "# Columns:", + "m_value": "2" + }, { + "type": "string", + "m_label": "# Rows:", + "m_value": "0" + }, { + "type": "string", + "m_label": "Growable columns:", + "m_value": "1" + }, { + "type": "string", + "m_label": "Growable rows:", + "m_value": "" + }, { + "type": "string", + "m_label": "Horizontal gap:", + "m_value": "0" + }, { + "type": "string", + "m_label": "Vertical gap:", + "m_value": "0" + }], + "m_events": [], + "m_children": [{ + "m_type": 4405, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT", "wxALIGN_CENTER_VERTICAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_staticText5" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Label:", + "m_value": "Project name:" + }, { + "type": "string", + "m_label": "Wrap:", + "m_value": "-1" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4406, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND", "wxALIGN_CENTER_VERTICAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_textCtrlProjName" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Value:", + "m_value": "" + }, { + "type": "string", + "m_label": "Text Hint", + "m_value": "" + }, { + "type": "string", + "m_label": "Max Length:", + "m_value": "0" + }, { + "type": "bool", + "m_label": "Auto Complete Directories:", + "m_value": false + }, { + "type": "bool", + "m_label": "Auto Complete Files:", + "m_value": false + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4405, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT", "wxALIGN_CENTER_VERTICAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_staticText7" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Label:", + "m_value": "Project path:" + }, { + "type": "string", + "m_label": "Wrap:", + "m_value": "-1" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4432, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxDIRP_DEFAULT_STYLE"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_dirPicker4" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Value:", + "m_value": "" + }, { + "type": "string", + "m_label": "Message:", + "m_value": "Select a folder" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4405, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT", "wxALIGN_CENTER_VERTICAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_staticText13" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Label:", + "m_value": "Project kind:" + }, { + "type": "string", + "m_label": "Wrap:", + "m_value": "-1" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4411, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_choiceProjKind" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Choices:", + "m_value": "" + }, { + "type": "string", + "m_label": "Selection:", + "m_value": "0" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4405, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT", "wxALIGN_CENTER_VERTICAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_staticText12" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Label:", + "m_value": "QMake to use:" + }, { + "type": "string", + "m_label": "Wrap:", + "m_value": "-1" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4401, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "boxSizer6" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 1, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4411, + "proportion": 1, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxLEFT", "wxTOP", "wxBOTTOM", "wxEXPAND", "wxALIGN_CENTER_VERTICAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_choiceQmake" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Choices:", + "m_value": "" + }, { + "type": "string", + "m_label": "Selection:", + "m_value": "0" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4400, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": ["wxBU_EXACTFIT"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND", "wxALIGN_CENTER_VERTICAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_buttonSelectConfig" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "Open the QMakeSettings configuration dialog" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "New..." + }, { + "type": "bool", + "m_label": "Default Button", + "m_value": false + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Direction", + "m_selection": 0, + "m_options": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"] + }, { + "type": "string", + "m_label": "Margins:", + "m_value": "2,2" + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_BUTTON_CLICKED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnNewQmakeSettings(wxCommandEvent& event)", + "m_description": "Process a wxEVT_COMMAND_BUTTON_CLICKED event, when the button is clicked.", + "m_noBody": false + }], + "m_children": [] + }] + }] + }, { + "m_type": 4449, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "sbSizer1" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 2, + "m_options": ["Vertical", "Horizontal", "wxVERTICAL"] + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Other settings:" + }], + "m_events": [], + "m_children": [{ + "m_type": 4415, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_checkBoxUseSepDirectory" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Create the project under a separate directory" + }, { + "type": "bool", + "m_label": "Value:", + "m_value": true + }], + "m_events": [], + "m_children": [] + }] + }, { + "m_type": 4454, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "Spacer2" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "0,0" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4401, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_HORIZONTAL"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "bSizer6" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 1, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4400, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_CANCEL" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_buttonCancel" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "&Cancel" + }, { + "type": "bool", + "m_label": "Default Button", + "m_value": false + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Direction", + "m_selection": 0, + "m_options": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"] + }, { + "type": "string", + "m_label": "Margins:", + "m_value": "2,2" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4400, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_OK" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_buttonOk" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "&OK" + }, { + "type": "bool", + "m_label": "Default Button", + "m_value": true + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Direction", + "m_selection": 0, + "m_options": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"] + }, { + "type": "string", + "m_label": "Margins:", + "m_value": "2,2" + }], + "m_events": [{ + "m_eventName": "wxEVT_UPDATE_UI", + "m_eventClass": "wxUpdateUIEvent", + "m_eventHandler": "wxUpdateUIEventHandler", + "m_functionNameAndSignature": "OnOKUI(wxUpdateUIEvent& event)", + "m_description": "Process a wxEVT_UPDATE_UI event", + "m_noBody": false + }], + "m_children": [] + }] + }] + }] + }] } \ No newline at end of file diff -Nru codelite-8.0.1+dfsg2/QmakePlugin/qmakeplugin.cpp codelite-9.0+dfsg/QmakePlugin/qmakeplugin.cpp --- codelite-8.0.1+dfsg2/QmakePlugin/qmakeplugin.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/QmakePlugin/qmakeplugin.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -74,11 +74,6 @@ extern "C" EXPORT int GetPluginInterfaceVersion() { return PLUGIN_INTERFACE_VERSION; } -BEGIN_EVENT_TABLE(QMakePlugin, wxEvtHandler) -EVT_COMMAND(wxID_ANY, wxEVT_PROC_DATA_READ, QMakePlugin::OnQmakeOutput) -EVT_COMMAND(wxID_ANY, wxEVT_PROC_TERMINATED, QMakePlugin::OnQmakeTerminated) -END_EVENT_TABLE() - QMakePlugin::QMakePlugin(IManager* manager) : IPlugin(manager) , m_qmakeProcess(NULL) @@ -88,7 +83,8 @@ m_conf = new QmakeConf(clStandardPaths::Get().GetUserDataDir() + wxFileName::GetPathSeparator() + wxT("config/qmake.ini")); - + Bind(wxEVT_ASYNC_PROCESS_OUTPUT, &QMakePlugin::OnQmakeOutput, this); + Bind(wxEVT_ASYNC_PROCESS_TERMINATED, &QMakePlugin::OnQmakeTerminated, this); // Connect items EventNotifier::Get()->Connect( wxEVT_CMD_PROJ_SETTINGS_SAVED, clProjectSettingsEventHandler(QMakePlugin::OnSaveConfig), NULL, this); @@ -226,8 +222,7 @@ void QMakePlugin::HookProjectSettingsTab(wxBookCtrlBase* book, const wxString& projectName, const wxString& configName) { - if(!book) - return; + if(!book) return; DoUnHookAllTabs(book); @@ -241,7 +236,7 @@ } void - QMakePlugin::UnHookProjectSettingsTab(wxBookCtrlBase* book, const wxString& projectName, const wxString& configName) +QMakePlugin::UnHookProjectSettingsTab(wxBookCtrlBase* book, const wxString& projectName, const wxString& configName) { wxUnusedVar(configName); DoUnHookAllTabs(book); @@ -416,7 +411,7 @@ return wxEmptyString; } - BuildConfigPtr bldConf = WorkspaceST::Get()->GetProjBuildConf(project, config); + BuildConfigPtr bldConf = clCxxWorkspaceST::Get()->GetProjBuildConf(project, config); wxString cmd; @@ -531,7 +526,7 @@ void QMakePlugin::OnOpenFile(clCommandEvent& event) { event.Skip(); - + // launch it with the default application wxFileName fullpath(event.GetFileName()); if(fullpath.GetExt().MakeLower() != wxT("ui")) { @@ -553,8 +548,7 @@ void QMakePlugin::OnExportMakefile(wxCommandEvent& event) { - if(m_qmakeProcess) - return; + if(m_qmakeProcess) return; QmakePluginData::BuildConfPluginData bcpd; @@ -613,17 +607,13 @@ event.Skip(); } -void QMakePlugin::OnQmakeOutput(wxCommandEvent& event) +void QMakePlugin::OnQmakeOutput(clProcessEvent& event) { - ProcessEventData* ped = static_cast(event.GetClientData()); - m_mgr->AppendOutputTabText(kOutputTab_Build, ped->GetData()); - wxDELETE(ped); + m_mgr->AppendOutputTabText(kOutputTab_Build, event.GetOutput()); } -void QMakePlugin::OnQmakeTerminated(wxCommandEvent& event) +void QMakePlugin::OnQmakeTerminated(clProcessEvent& event) { - ProcessEventData* ped = static_cast(event.GetClientData()); - wxDELETE(ped); wxDELETE(m_qmakeProcess); m_mgr->AppendOutputTabText(kOutputTab_Build, "-- done\n"); } diff -Nru codelite-8.0.1+dfsg2/QmakePlugin/qmakeplugin.h codelite-9.0+dfsg/QmakePlugin/qmakeplugin.h --- codelite-8.0.1+dfsg2/QmakePlugin/qmakeplugin.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/QmakePlugin/qmakeplugin.h 2015-10-11 13:56:07.000000000 +0000 @@ -38,7 +38,7 @@ std::map m_pages; QmakeConf* m_conf; IProcess* m_qmakeProcess; - + protected: QMakeTab* DoGetQmakeTab(const wxString& config); void DoUnHookAllTabs(wxBookCtrlBase* book); @@ -57,7 +57,7 @@ virtual void HookPopupMenu(wxMenu* menu, MenuType type); virtual void HookProjectSettingsTab(wxBookCtrlBase* book, const wxString& projectName, const wxString& configName); virtual void - UnHookProjectSettingsTab(wxBookCtrlBase* book, const wxString& projectName, const wxString& configName); + UnHookProjectSettingsTab(wxBookCtrlBase* book, const wxString& projectName, const wxString& configName); virtual void UnPlug(); // event handlers @@ -70,10 +70,8 @@ void OnNewQmakeBasedProject(wxCommandEvent& event); void OnOpenFile(clCommandEvent& event); void OnExportMakefile(wxCommandEvent& event); - void OnQmakeOutput(wxCommandEvent& event); - void OnQmakeTerminated(wxCommandEvent &event); - - DECLARE_EVENT_TABLE() + void OnQmakeOutput(clProcessEvent& event); + void OnQmakeTerminated(clProcessEvent& event); }; #endif // QMakePlugin diff -Nru codelite-8.0.1+dfsg2/QmakePlugin/qmakesettingsbasedlg.cpp codelite-9.0+dfsg/QmakePlugin/qmakesettingsbasedlg.cpp --- codelite-8.0.1+dfsg2/QmakePlugin/qmakesettingsbasedlg.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/QmakePlugin/qmakesettingsbasedlg.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,30 +1,6 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2014 The CodeLite Team -// file name : qmakesettingsbasedlg.cpp -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - ////////////////////////////////////////////////////////////////////// // This file was auto-generated by codelite's wxCrafter Plugin +// wxCrafter project file: qmakesettingsbasedlg.wxcp // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// @@ -59,6 +35,7 @@ mainSizer->Add(bSizer3, 1, wxALL|wxEXPAND, 5); m_notebook = new wxNotebook(this, wxID_ANY, wxDefaultPosition, wxSize(-1, -1), 0); + m_notebook->SetName(wxT("m_notebook")); bSizer3->Add(m_notebook, 1, wxALL|wxEXPAND, 5); @@ -85,11 +62,27 @@ bSizer2->Add(m_buttonOk, 0, wxALL, 5); + #if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(m_notebook)){ + wxPersistenceManager::Get().RegisterAndRestore(m_notebook); + } else { + wxPersistenceManager::Get().Restore(m_notebook); + } + #endif + + SetName(wxT("QMakeSettingsBaseDlg")); SetSizeHints(-1,-1); if ( GetSizer() ) { GetSizer()->Fit(this); } - Centre(wxBOTH); + CentreOnParent(wxBOTH); +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(this)) { + wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); + } +#endif // Connect events m_notebook->Connect(wxEVT_RIGHT_DOWN, wxMouseEventHandler(QMakeSettingsBaseDlg::OnRightDown), NULL, this); m_buttonNew->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(QMakeSettingsBaseDlg::OnNewQmakeSettings), NULL, this); @@ -118,7 +111,7 @@ wxBoxSizer* bSizer4 = new wxBoxSizer(wxVERTICAL); this->SetSizer(bSizer4); - wxFlexGridSizer* fgSizer2 = new wxFlexGridSizer( 0, 2, 0, 0); + wxFlexGridSizer* fgSizer2 = new wxFlexGridSizer(0, 2, 0, 0); fgSizer2->SetFlexibleDirection( wxBOTH ); fgSizer2->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); fgSizer2->AddGrowableCol(1); @@ -129,7 +122,7 @@ fgSizer2->Add(m_staticText1, 0, wxALL|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5); - m_filePickerQmakeExec = new wxFilePickerCtrl(this, wxID_ANY, wxEmptyString, wxT("Select a file"), wxT("*"), wxDefaultPosition, wxSize(-1, -1), wxFLP_DEFAULT_STYLE|wxFLP_USE_TEXTCTRL|wxFLP_FILE_MUST_EXIST|wxFLP_OPEN); + m_filePickerQmakeExec = new wxFilePickerCtrl(this, wxID_ANY, wxEmptyString, _("Select a file"), wxT("*"), wxDefaultPosition, wxSize(-1, -1), wxFLP_DEFAULT_STYLE|wxFLP_USE_TEXTCTRL|wxFLP_FILE_MUST_EXIST|wxFLP_OPEN); fgSizer2->Add(m_filePickerQmakeExec, 0, wxALL|wxEXPAND, 5); @@ -139,6 +132,9 @@ wxArrayString m_comboBoxQmakespecArr; m_comboBoxQmakespec = new wxComboBox(this, wxID_ANY, wxT(""), wxDefaultPosition, wxSize(-1, -1), m_comboBoxQmakespecArr, 0); + #if wxVERSION_NUMBER >= 3000 + m_comboBoxQmakespec->SetHint(wxT("")); + #endif fgSizer2->Add(m_comboBoxQmakespec, 0, wxALL|wxEXPAND, 5); @@ -148,15 +144,18 @@ m_textCtrlQtdir = new wxTextCtrl(this, wxID_ANY, wxT(""), wxDefaultPosition, wxSize(-1, -1), 0); m_textCtrlQtdir->SetToolTip(_("Set QTDIR to the directory where you've installed Qt")); + #if wxVERSION_NUMBER >= 3000 + m_textCtrlQtdir->SetHint(wxT("")); + #endif fgSizer2->Add(m_textCtrlQtdir, 0, wxALL|wxEXPAND, 5); - + SetName(wxT("QmakeSettingsTabBase")); SetSizeHints(-1,-1); if ( GetSizer() ) { GetSizer()->Fit(this); } - Centre(wxBOTH); + CentreOnParent(wxBOTH); } QmakeSettingsTabBase::~QmakeSettingsTabBase() diff -Nru codelite-8.0.1+dfsg2/QmakePlugin/qmakesettingsbasedlg.h codelite-9.0+dfsg/QmakePlugin/qmakesettingsbasedlg.h --- codelite-8.0.1+dfsg2/QmakePlugin/qmakesettingsbasedlg.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/QmakePlugin/qmakesettingsbasedlg.h 2015-10-11 13:56:07.000000000 +0000 @@ -1,40 +1,18 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2014 The CodeLite Team -// file name : qmakesettingsbasedlg.h -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - ////////////////////////////////////////////////////////////////////// // This file was auto-generated by codelite's wxCrafter Plugin +// wxCrafter project file: qmakesettingsbasedlg.wxcp // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// -#ifndef QMAKESETTINGSBASEDLG_BASE_CLASSES_H -#define QMAKESETTINGSBASEDLG_BASE_CLASSES_H +#ifndef CODELITE_QMAKEPLUGIN_QMAKESETTINGSBASEDLG_BASE_CLASSES_H +#define CODELITE_QMAKEPLUGIN_QMAKESETTINGSBASEDLG_BASE_CLASSES_H #include #include #include #include +#include +#include #include #include #include @@ -45,6 +23,12 @@ #include #include #include +#if wxVERSION_NUMBER >= 2900 +#include +#include +#include +#include +#endif class QMakeSettingsBaseDlg : public wxDialog { @@ -62,6 +46,12 @@ virtual void OnOK(wxCommandEvent& event) { event.Skip(); } public: + wxStaticText* GetStaticText5() { return m_staticText5; } + wxNotebook* GetNotebook() { return m_notebook; } + wxStaticLine* GetStaticline1() { return m_staticline1; } + wxButton* GetButtonNew() { return m_buttonNew; } + wxButton* GetButtonCancel() { return m_buttonCancel; } + wxButton* GetButtonOk() { return m_buttonOk; } QMakeSettingsBaseDlg(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("QMake Settings"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1, -1), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER); virtual ~QMakeSettingsBaseDlg(); }; @@ -80,6 +70,12 @@ protected: public: + wxStaticText* GetStaticText1() { return m_staticText1; } + wxFilePickerCtrl* GetFilePickerQmakeExec() { return m_filePickerQmakeExec; } + wxStaticText* GetStaticText2() { return m_staticText2; } + wxComboBox* GetComboBoxQmakespec() { return m_comboBoxQmakespec; } + wxStaticText* GetStaticText4() { return m_staticText4; } + wxTextCtrl* GetTextCtrlQtdir() { return m_textCtrlQtdir; } QmakeSettingsTabBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxTAB_TRAVERSAL); virtual ~QmakeSettingsTabBase(); }; diff -Nru codelite-8.0.1+dfsg2/QmakePlugin/qmakesettingsbasedlg_qmakeplugin_bitmaps.cpp codelite-9.0+dfsg/QmakePlugin/qmakesettingsbasedlg_qmakeplugin_bitmaps.cpp --- codelite-8.0.1+dfsg2/QmakePlugin/qmakesettingsbasedlg_qmakeplugin_bitmaps.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/QmakePlugin/qmakesettingsbasedlg_qmakeplugin_bitmaps.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,73 +1,47 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2014 The CodeLite Team -// file name : qmakesettingsbasedlg_qmakeplugin_bitmaps.cpp -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - -// -// This file was automatically generated by wxrc, do not edit by hand. -// - -#include - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#include -#include -#include -#include - -#if wxCHECK_VERSION(2,8,5) && wxABI_VERSION >= 20805 - #define XRC_ADD_FILE(name, data, size, mime) \ - wxMemoryFSHandler::AddFileWithMimeType(name, data, size, mime) -#else - #define XRC_ADD_FILE(name, data, size, mime) \ - wxMemoryFSHandler::AddFile(name, data, size) -#endif - -static size_t xml_res_size_0 = 108; -static unsigned char xml_res_file_0[] = { -60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, -110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, -115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, -47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, -47,119,120,120,114,99,34,32,118,101,114,115,105,111,110,61,34,50,46,51, -46,48,46,49,34,47,62,10}; - -void wxCrafterljRDukInitBitmapResources() -{ - - // Check for memory FS. If not present, load the handler: - { - wxMemoryFSHandler::AddFile(wxT("XRC_resource/dummy_file"), wxT("dummy one")); - wxFileSystem fsys; - wxFSFile *f = fsys.OpenFile(wxT("memory:XRC_resource/dummy_file")); - wxMemoryFSHandler::RemoveFile(wxT("XRC_resource/dummy_file")); - if (f) delete f; - else wxFileSystem::AddHandler(new wxMemoryFSHandler); - } - - XRC_ADD_FILE(wxT("XRC_resource/qmakesettingsbasedlg_qmakeplugin_bitmaps.cpp$qmakesettingsbasedlg_qmakeplugin_bitmaps.xrc"), xml_res_file_0, xml_res_size_0, wxT("text/xml")); - wxXmlResource::Get()->Load(wxT("memory:XRC_resource/qmakesettingsbasedlg_qmakeplugin_bitmaps.cpp$qmakesettingsbasedlg_qmakeplugin_bitmaps.xrc")); -} +// +// This file was automatically generated by wxrc, do not edit by hand. +// + +#include + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +#include +#include +#include +#include + +#if wxCHECK_VERSION(2,8,5) && wxABI_VERSION >= 20805 + #define XRC_ADD_FILE(name, data, size, mime) \ + wxMemoryFSHandler::AddFileWithMimeType(name, data, size, mime) +#else + #define XRC_ADD_FILE(name, data, size, mime) \ + wxMemoryFSHandler::AddFile(name, data, size) +#endif + +static size_t xml_res_size_0 = 90; +static unsigned char xml_res_file_0[] = { +60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, +110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, +115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, +47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, +47,119,120,120,114,99,34,47,62,10}; + +void wxCrafterljRDukInitBitmapResources() +{ + + // Check for memory FS. If not present, load the handler: + { + wxMemoryFSHandler::AddFile(wxT("XRC_resource/dummy_file"), wxT("dummy one")); + wxFileSystem fsys; + wxFSFile *f = fsys.OpenFile(wxT("memory:XRC_resource/dummy_file")); + wxMemoryFSHandler::RemoveFile(wxT("XRC_resource/dummy_file")); + if (f) delete f; + else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase); + } + + XRC_ADD_FILE(wxT("XRC_resource/qmakesettingsbasedlg_qmakeplugin_bitmaps.cpp$C__src_codelite_QmakePlugin_qmakesettingsbasedlg_qmakeplugin_bitmaps.xrc"), xml_res_file_0, xml_res_size_0, wxT("text/xml")); + wxXmlResource::Get()->Load(wxT("memory:XRC_resource/qmakesettingsbasedlg_qmakeplugin_bitmaps.cpp$C__src_codelite_QmakePlugin_qmakesettingsbasedlg_qmakeplugin_bitmaps.xrc")); +} diff -Nru codelite-8.0.1+dfsg2/QmakePlugin/qmakesettingsbasedlg.wxcp codelite-9.0+dfsg/QmakePlugin/qmakesettingsbasedlg.wxcp --- codelite-8.0.1+dfsg2/QmakePlugin/qmakesettingsbasedlg.wxcp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/QmakePlugin/qmakesettingsbasedlg.wxcp 2015-10-11 13:56:07.000000000 +0000 @@ -1,1018 +1,1342 @@ { - "metadata": { - "m_generatedFilesDir": ".", - "m_objCounter": 0, - "m_includeFiles": [], - "m_bitmapFunction": "wxCrafterljRDukInitBitmapResources", - "m_bitmapsFile": "qmakesettingsbasedlg_qmakeplugin_bitmaps.cpp", - "m_GenerateCodeTypes": 1, - "m_outputFileName": "qmakesettingsbasedlg", - "m_templateClasses": [] - }, - "windows": [{ - "m_type": 4421, - "proportion": 0, - "border": 0, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": ["wxDEFAULT_DIALOG_STYLE", "wxRESIZE_BORDER"], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "QMakeSettingsBaseDlg" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Title:", - "m_value": "QMake Settings" - }, { - "type": "virtualFolderPicker", - "m_label": "Virtual Folder:", - "m_path": "" - }, { - "type": "choice", - "m_label": "Centre:", - "m_selection": 1, - "m_options": ["", "wxBOTH", "wxVERTICAL", "wxHORIZONTAL"] - }, { - "type": "string", - "m_label": "File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Inherited Class", - "m_value": "" - }, { - "type": "string", - "m_label": "Class Decorator", - "m_value": "" - }], - "m_events": [], - "m_children": [{ - "m_type": 4401, - "proportion": 0, - "border": 0, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "mainSizer" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4405, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_HORIZONTAL"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_staticText5" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Label:", - "m_value": "Add / modfiy qmake configurations:" - }, { - "type": "string", - "m_label": "Wrap:", - "m_value": "-1" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4401, - "proportion": 1, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "bSizer3" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4442, - "proportion": 1, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_notebook" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }], - "m_events": [{ - "m_eventName": "wxEVT_RIGHT_DOWN", - "m_eventClass": "wxMouseEvent", - "m_eventHandler": "wxMouseEventHandler", - "m_functionNameAndSignature": "OnRightDown(wxMouseEvent& event)", - "m_description": "Process a wxEVT_RIGHT_DOWN event" - }], - "m_children": [] - }] - }, { - "m_type": 4418, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": ["wxLI_HORIZONTAL"], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_staticline1" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4401, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_HORIZONTAL"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "bSizer2" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 1, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4400, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_buttonNew" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "Create new qmake settings" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "&New..." - }, { - "type": "bool", - "m_label": "Default Button", - "m_value": false - }, { - "type": "filePicker", - "m_label": "Bitmap File:", - "m_path": "" - }, { - "type": "string", - "m_label": "Margins:", - "m_value": "2,2" - }], - "m_events": [{ - "m_eventName": "wxEVT_COMMAND_BUTTON_CLICKED", - "m_eventClass": "wxCommandEvent", - "m_eventHandler": "wxCommandEventHandler", - "m_functionNameAndSignature": "OnNewQmakeSettings(wxCommandEvent& event)", - "m_description": "Process a wxEVT_COMMAND_BUTTON_CLICKED event, when the button is clicked." - }], - "m_children": [] - }, { - "m_type": 4400, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_CANCEL" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_buttonCancel" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "&Cancel" - }, { - "type": "bool", - "m_label": "Default Button", - "m_value": false - }, { - "type": "filePicker", - "m_label": "Bitmap File:", - "m_path": "" - }, { - "type": "string", - "m_label": "Margins:", - "m_value": "2,2" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4400, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_OK" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_buttonOk" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "&OK" - }, { - "type": "bool", - "m_label": "Default Button", - "m_value": true - }, { - "type": "filePicker", - "m_label": "Bitmap File:", - "m_path": "" - }, { - "type": "string", - "m_label": "Margins:", - "m_value": "2,2" - }], - "m_events": [{ - "m_eventName": "wxEVT_COMMAND_BUTTON_CLICKED", - "m_eventClass": "wxCommandEvent", - "m_eventHandler": "wxCommandEventHandler", - "m_functionNameAndSignature": "OnOK(wxCommandEvent& event)", - "m_description": "Process a wxEVT_COMMAND_BUTTON_CLICKED event, when the button is clicked." - }], - "m_children": [] - }] - }] - }] - }, { - "m_type": 4407, - "proportion": 0, - "border": 0, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": ["wxTAB_TRAVERSAL"], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "QmakeSettingsTabBase" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Title:", - "m_value": "" - }, { - "type": "virtualFolderPicker", - "m_label": "Virtual Folder:", - "m_path": "" - }, { - "type": "choice", - "m_label": "Centre:", - "m_selection": 1, - "m_options": ["", "wxBOTH", "wxVERTICAL", "wxHORIZONTAL"] - }, { - "type": "string", - "m_label": "File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Inherited Class", - "m_value": "" - }, { - "type": "string", - "m_label": "Class Decorator", - "m_value": "" - }], - "m_events": [], - "m_children": [{ - "m_type": 4401, - "proportion": 0, - "border": 0, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "bSizer4" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4403, - "proportion": 1, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "fgSizer2" - }, { - "type": "string", - "m_label": "# Columns:", - "m_value": "2" - }, { - "type": "string", - "m_label": "# Rows:", - "m_value": "0" - }, { - "type": "string", - "m_label": "Growable columns:", - "m_value": "1" - }, { - "type": "string", - "m_label": "Growable rows:", - "m_value": "" - }, { - "type": "string", - "m_label": "Horizontal gap:", - "m_value": "0" - }, { - "type": "string", - "m_label": "Vertical gap:", - "m_value": "0" - }], - "m_events": [], - "m_children": [{ - "m_type": 4405, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT", "wxALIGN_CENTER_VERTICAL"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_staticText1" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Label:", - "m_value": "qmake executable:" - }, { - "type": "string", - "m_label": "Wrap:", - "m_value": "-1" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4431, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": ["wxFLP_DEFAULT_STYLE", "wxFLP_USE_TEXTCTRL", "wxFLP_FILE_MUST_EXIST", "wxFLP_OPEN"], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_filePickerQmakeExec" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Value:", - "m_value": "" - }, { - "type": "string", - "m_label": "Message:", - "m_value": "Select a file" - }, { - "type": "string", - "m_label": "Wildcard:", - "m_value": "*" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4405, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT", "wxALIGN_CENTER_VERTICAL"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_staticText2" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Label:", - "m_value": "QMAKESPEC:" - }, { - "type": "string", - "m_label": "Wrap:", - "m_value": "-1" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4410, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_comboBoxQmakespec" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "ComboBox Choices:", - "m_value": "" - }, { - "type": "string", - "m_label": "Selection:", - "m_value": "-1" - }, { - "type": "string", - "m_label": "Value:", - "m_value": "" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4405, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT", "wxALIGN_CENTER_VERTICAL"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_staticText4" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Label:", - "m_value": "QTDIR:" - }, { - "type": "string", - "m_label": "Wrap:", - "m_value": "-1" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4406, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_textCtrlQtdir" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "Set QTDIR to the directory where you've installed Qt" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Value:", - "m_value": "" - }, { - "type": "string", - "m_label": "Max Length:", - "m_value": "0" - }], - "m_events": [], - "m_children": [] - }] - }] - }] - }] + "metadata": { + "m_generatedFilesDir": ".", + "m_objCounter": 0, + "m_includeFiles": [], + "m_bitmapFunction": "wxCrafterljRDukInitBitmapResources", + "m_bitmapsFile": "qmakesettingsbasedlg_qmakeplugin_bitmaps.cpp", + "m_GenerateCodeTypes": 1, + "m_outputFileName": "qmakesettingsbasedlg", + "m_firstWindowId": 1000, + "m_useEnum": true, + "m_templateClasses": [] + }, + "windows": [{ + "m_type": 4421, + "proportion": 0, + "border": 0, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": ["wxDEFAULT_DIALOG_STYLE", "wxRESIZE_BORDER"], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "QMakeSettingsBaseDlg" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Enable Window Persistency:", + "m_value": true + }, { + "type": "string", + "m_label": "Title:", + "m_value": "QMake Settings" + }, { + "type": "virtualFolderPicker", + "m_label": "Virtual Folder:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Centre:", + "m_selection": 1, + "m_options": ["", "wxBOTH", "wxVERTICAL", "wxHORIZONTAL"] + }, { + "type": "string", + "m_label": "Inherited Class", + "m_value": "" + }, { + "type": "string", + "m_label": "File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Class Decorator", + "m_value": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (16x16) :", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (32x32) :", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (64x64) :", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (128x128):", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (256x256):", + "m_path": "" + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 0, + "border": 0, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "mainSizer" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4405, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_HORIZONTAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_staticText5" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Label:", + "m_value": "Add / modfiy qmake configurations:" + }, { + "type": "string", + "m_label": "Wrap:", + "m_value": "-1" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4401, + "proportion": 1, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "bSizer3" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4442, + "proportion": 1, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_notebook" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }], + "m_events": [{ + "m_eventName": "wxEVT_RIGHT_DOWN", + "m_eventClass": "wxMouseEvent", + "m_eventHandler": "wxMouseEventHandler", + "m_functionNameAndSignature": "OnRightDown(wxMouseEvent& event)", + "m_description": "Process a wxEVT_RIGHT_DOWN event", + "m_noBody": false + }], + "m_children": [] + }] + }, { + "m_type": 4418, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": ["wxLI_HORIZONTAL"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_staticline1" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4401, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_HORIZONTAL"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "bSizer2" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 1, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4400, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_buttonNew" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "Create new qmake settings" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "&New..." + }, { + "type": "bool", + "m_label": "Default Button", + "m_value": false + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Direction", + "m_selection": 0, + "m_options": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"] + }, { + "type": "string", + "m_label": "Margins:", + "m_value": "2,2" + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_BUTTON_CLICKED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnNewQmakeSettings(wxCommandEvent& event)", + "m_description": "Process a wxEVT_COMMAND_BUTTON_CLICKED event, when the button is clicked.", + "m_noBody": false + }], + "m_children": [] + }, { + "m_type": 4400, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_CANCEL" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_buttonCancel" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "&Cancel" + }, { + "type": "bool", + "m_label": "Default Button", + "m_value": false + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Direction", + "m_selection": 0, + "m_options": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"] + }, { + "type": "string", + "m_label": "Margins:", + "m_value": "2,2" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4400, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_OK" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_buttonOk" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "&OK" + }, { + "type": "bool", + "m_label": "Default Button", + "m_value": true + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Direction", + "m_selection": 0, + "m_options": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"] + }, { + "type": "string", + "m_label": "Margins:", + "m_value": "2,2" + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_BUTTON_CLICKED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnOK(wxCommandEvent& event)", + "m_description": "Process a wxEVT_COMMAND_BUTTON_CLICKED event, when the button is clicked.", + "m_noBody": false + }], + "m_children": [] + }] + }] + }] + }, { + "m_type": 4407, + "proportion": 0, + "border": 0, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": ["wxTAB_TRAVERSAL"], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "QmakeSettingsTabBase" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Title:", + "m_value": "" + }, { + "type": "virtualFolderPicker", + "m_label": "Virtual Folder:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Centre:", + "m_selection": 1, + "m_options": ["", "wxBOTH", "wxVERTICAL", "wxHORIZONTAL"] + }, { + "type": "string", + "m_label": "Inherited Class", + "m_value": "" + }, { + "type": "string", + "m_label": "File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Class Decorator", + "m_value": "" + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 0, + "border": 0, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "bSizer4" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4403, + "proportion": 1, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "fgSizer2" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "# Columns:", + "m_value": "2" + }, { + "type": "string", + "m_label": "# Rows:", + "m_value": "0" + }, { + "type": "string", + "m_label": "Growable columns:", + "m_value": "1" + }, { + "type": "string", + "m_label": "Growable rows:", + "m_value": "" + }, { + "type": "string", + "m_label": "Horizontal gap:", + "m_value": "0" + }, { + "type": "string", + "m_label": "Vertical gap:", + "m_value": "0" + }], + "m_events": [], + "m_children": [{ + "m_type": 4405, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT", "wxALIGN_CENTER_VERTICAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_staticText1" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Label:", + "m_value": "qmake executable:" + }, { + "type": "string", + "m_label": "Wrap:", + "m_value": "-1" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4431, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": ["wxFLP_DEFAULT_STYLE", "wxFLP_USE_TEXTCTRL", "wxFLP_FILE_MUST_EXIST", "wxFLP_OPEN"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_filePickerQmakeExec" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Value:", + "m_value": "" + }, { + "type": "string", + "m_label": "Message:", + "m_value": "Select a file" + }, { + "type": "string", + "m_label": "Wildcard:", + "m_value": "*" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4405, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT", "wxALIGN_CENTER_VERTICAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_staticText2" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Label:", + "m_value": "QMAKESPEC:" + }, { + "type": "string", + "m_label": "Wrap:", + "m_value": "-1" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4410, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_comboBoxQmakespec" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "ComboBox Choices:", + "m_value": "" + }, { + "type": "string", + "m_label": "Text Hint", + "m_value": "" + }, { + "type": "string", + "m_label": "Selection:", + "m_value": "-1" + }, { + "type": "string", + "m_label": "Value:", + "m_value": "" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4405, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT", "wxALIGN_CENTER_VERTICAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_staticText4" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Label:", + "m_value": "QTDIR:" + }, { + "type": "string", + "m_label": "Wrap:", + "m_value": "-1" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4406, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_textCtrlQtdir" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "Set QTDIR to the directory where you've installed Qt" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Value:", + "m_value": "" + }, { + "type": "string", + "m_label": "Text Hint", + "m_value": "" + }, { + "type": "string", + "m_label": "Max Length:", + "m_value": "0" + }, { + "type": "bool", + "m_label": "Auto Complete Directories:", + "m_value": false + }, { + "type": "bool", + "m_label": "Auto Complete Files:", + "m_value": false + }], + "m_events": [], + "m_children": [] + }] + }] + }] + }] } \ No newline at end of file diff -Nru codelite-8.0.1+dfsg2/QmakePlugin/qmaketabbase.cpp codelite-9.0+dfsg/QmakePlugin/qmaketabbase.cpp --- codelite-8.0.1+dfsg2/QmakePlugin/qmaketabbase.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/QmakePlugin/qmaketabbase.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,30 +1,6 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2014 The CodeLite Team -// file name : qmaketabbase.cpp -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - ////////////////////////////////////////////////////////////////////// // This file was auto-generated by codelite's wxCrafter Plugin +// wxCrafter project file: qmaketabbase.wxcp // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// @@ -55,7 +31,7 @@ mainSizer->Add(m_checkBoxUseQmake, 0, wxALL, 5); - wxFlexGridSizer* fgSizer1 = new wxFlexGridSizer( 2, 2, 0, 0); + wxFlexGridSizer* fgSizer1 = new wxFlexGridSizer(2, 2, 0, 0); fgSizer1->SetFlexibleDirection( wxBOTH ); fgSizer1->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); fgSizer1->AddGrowableCol(1); @@ -78,6 +54,9 @@ fgSizer1->Add(m_staticText4, 0, wxALL|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5); m_textCtrlQmakeExeLine = new wxTextCtrl(this, wxID_ANY, wxT(""), wxDefaultPosition, wxSize(-1, -1), 0); + #if wxVERSION_NUMBER >= 3000 + m_textCtrlQmakeExeLine->SetHint(wxT("")); + #endif fgSizer1->Add(m_textCtrlQmakeExeLine, 0, wxALL|wxEXPAND, 5); @@ -91,12 +70,12 @@ mainSizer->Add(m_textCtrlFreeText, 1, wxALL|wxEXPAND, 5); - + SetName(wxT("QMakeTabBase")); SetSizeHints(-1,-1); if ( GetSizer() ) { GetSizer()->Fit(this); } - Centre(wxBOTH); + CentreOnParent(wxBOTH); // Connect events m_staticText3->Connect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(QMakeTabBase::OnUseQmake), NULL, this); m_choiceQmakeSettings->Connect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(QMakeTabBase::OnUseQmake), NULL, this); diff -Nru codelite-8.0.1+dfsg2/QmakePlugin/qmaketabbase.h codelite-9.0+dfsg/QmakePlugin/qmaketabbase.h --- codelite-8.0.1+dfsg2/QmakePlugin/qmaketabbase.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/QmakePlugin/qmaketabbase.h 2015-10-11 13:56:07.000000000 +0000 @@ -1,46 +1,29 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2014 The CodeLite Team -// file name : qmaketabbase.h -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - ////////////////////////////////////////////////////////////////////// // This file was auto-generated by codelite's wxCrafter Plugin +// wxCrafter project file: qmaketabbase.wxcp // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// -#ifndef QMAKETABBASE_BASE_CLASSES_H -#define QMAKETABBASE_BASE_CLASSES_H +#ifndef CODELITE_QMAKEPLUGIN_QMAKETABBASE_BASE_CLASSES_H +#define CODELITE_QMAKEPLUGIN_QMAKETABBASE_BASE_CLASSES_H #include #include #include #include +#include #include #include #include #include #include #include +#if wxVERSION_NUMBER >= 2900 +#include +#include +#include +#include +#endif class QMakeTabBase : public wxPanel { @@ -57,6 +40,13 @@ virtual void OnUseQmake(wxUpdateUIEvent& event) { event.Skip(); } public: + wxCheckBox* GetCheckBoxUseQmake() { return m_checkBoxUseQmake; } + wxStaticText* GetStaticText3() { return m_staticText3; } + wxChoice* GetChoiceQmakeSettings() { return m_choiceQmakeSettings; } + wxStaticText* GetStaticText4() { return m_staticText4; } + wxTextCtrl* GetTextCtrlQmakeExeLine() { return m_textCtrlQmakeExeLine; } + wxStaticText* GetStaticText5() { return m_staticText5; } + wxTextCtrl* GetTextCtrlFreeText() { return m_textCtrlFreeText; } QMakeTabBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxTAB_TRAVERSAL); virtual ~QMakeTabBase(); }; diff -Nru codelite-8.0.1+dfsg2/QmakePlugin/qmaketabbase_qmakeplugin_bitmaps.cpp codelite-9.0+dfsg/QmakePlugin/qmaketabbase_qmakeplugin_bitmaps.cpp --- codelite-8.0.1+dfsg2/QmakePlugin/qmaketabbase_qmakeplugin_bitmaps.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/QmakePlugin/qmaketabbase_qmakeplugin_bitmaps.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,73 +1,47 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2014 The CodeLite Team -// file name : qmaketabbase_qmakeplugin_bitmaps.cpp -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - -// -// This file was automatically generated by wxrc, do not edit by hand. -// - -#include - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#include -#include -#include -#include - -#if wxCHECK_VERSION(2,8,5) && wxABI_VERSION >= 20805 - #define XRC_ADD_FILE(name, data, size, mime) \ - wxMemoryFSHandler::AddFileWithMimeType(name, data, size, mime) -#else - #define XRC_ADD_FILE(name, data, size, mime) \ - wxMemoryFSHandler::AddFile(name, data, size) -#endif - -static size_t xml_res_size_0 = 108; -static unsigned char xml_res_file_0[] = { -60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, -110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, -115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, -47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, -47,119,120,120,114,99,34,32,118,101,114,115,105,111,110,61,34,50,46,51, -46,48,46,49,34,47,62,10}; - -void wxCraftergbQa9FInitBitmapResources() -{ - - // Check for memory FS. If not present, load the handler: - { - wxMemoryFSHandler::AddFile(wxT("XRC_resource/dummy_file"), wxT("dummy one")); - wxFileSystem fsys; - wxFSFile *f = fsys.OpenFile(wxT("memory:XRC_resource/dummy_file")); - wxMemoryFSHandler::RemoveFile(wxT("XRC_resource/dummy_file")); - if (f) delete f; - else wxFileSystem::AddHandler(new wxMemoryFSHandler); - } - - XRC_ADD_FILE(wxT("XRC_resource/qmaketabbase_qmakeplugin_bitmaps.cpp$qmaketabbase_qmakeplugin_bitmaps.xrc"), xml_res_file_0, xml_res_size_0, wxT("text/xml")); - wxXmlResource::Get()->Load(wxT("memory:XRC_resource/qmaketabbase_qmakeplugin_bitmaps.cpp$qmaketabbase_qmakeplugin_bitmaps.xrc")); -} +// +// This file was automatically generated by wxrc, do not edit by hand. +// + +#include + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +#include +#include +#include +#include + +#if wxCHECK_VERSION(2,8,5) && wxABI_VERSION >= 20805 + #define XRC_ADD_FILE(name, data, size, mime) \ + wxMemoryFSHandler::AddFileWithMimeType(name, data, size, mime) +#else + #define XRC_ADD_FILE(name, data, size, mime) \ + wxMemoryFSHandler::AddFile(name, data, size) +#endif + +static size_t xml_res_size_0 = 90; +static unsigned char xml_res_file_0[] = { +60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, +110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, +115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, +47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, +47,119,120,120,114,99,34,47,62,10}; + +void wxCraftergbQa9FInitBitmapResources() +{ + + // Check for memory FS. If not present, load the handler: + { + wxMemoryFSHandler::AddFile(wxT("XRC_resource/dummy_file"), wxT("dummy one")); + wxFileSystem fsys; + wxFSFile *f = fsys.OpenFile(wxT("memory:XRC_resource/dummy_file")); + wxMemoryFSHandler::RemoveFile(wxT("XRC_resource/dummy_file")); + if (f) delete f; + else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase); + } + + XRC_ADD_FILE(wxT("XRC_resource/qmaketabbase_qmakeplugin_bitmaps.cpp$C__src_codelite_QmakePlugin_qmaketabbase_qmakeplugin_bitmaps.xrc"), xml_res_file_0, xml_res_size_0, wxT("text/xml")); + wxXmlResource::Get()->Load(wxT("memory:XRC_resource/qmaketabbase_qmakeplugin_bitmaps.cpp$C__src_codelite_QmakePlugin_qmaketabbase_qmakeplugin_bitmaps.xrc")); +} diff -Nru codelite-8.0.1+dfsg2/QmakePlugin/qmaketabbase.wxcp codelite-9.0+dfsg/QmakePlugin/qmaketabbase.wxcp --- codelite-8.0.1+dfsg2/QmakePlugin/qmaketabbase.wxcp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/QmakePlugin/qmaketabbase.wxcp 2015-10-11 13:56:07.000000000 +0000 @@ -1,593 +1,769 @@ { - "metadata": { - "m_generatedFilesDir": ".", - "m_objCounter": 0, - "m_includeFiles": [], - "m_bitmapFunction": "wxCraftergbQa9FInitBitmapResources", - "m_bitmapsFile": "qmaketabbase_qmakeplugin_bitmaps.cpp", - "m_GenerateCodeTypes": 1, - "m_outputFileName": "qmaketabbase", - "m_templateClasses": [] - }, - "windows": [{ - "m_type": 4407, - "proportion": 0, - "border": 0, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": ["wxTAB_TRAVERSAL"], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "QMakeTabBase" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Title:", - "m_value": "" - }, { - "type": "virtualFolderPicker", - "m_label": "Virtual Folder:", - "m_path": "" - }, { - "type": "choice", - "m_label": "Centre:", - "m_selection": 1, - "m_options": ["", "wxBOTH", "wxVERTICAL", "wxHORIZONTAL"] - }, { - "type": "string", - "m_label": "File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Inherited Class", - "m_value": "" - }, { - "type": "string", - "m_label": "Class Decorator", - "m_value": "" - }], - "m_events": [], - "m_children": [{ - "m_type": 4401, - "proportion": 0, - "border": 0, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "mainSizer" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4415, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_checkBoxUseQmake" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "This project uses qmake" - }, { - "type": "bool", - "m_label": "Value:", - "m_value": false - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4403, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "fgSizer1" - }, { - "type": "string", - "m_label": "# Columns:", - "m_value": "2" - }, { - "type": "string", - "m_label": "# Rows:", - "m_value": "2" - }, { - "type": "string", - "m_label": "Growable columns:", - "m_value": "1" - }, { - "type": "string", - "m_label": "Growable rows:", - "m_value": "" - }, { - "type": "string", - "m_label": "Horizontal gap:", - "m_value": "0" - }, { - "type": "string", - "m_label": "Vertical gap:", - "m_value": "0" - }], - "m_events": [], - "m_children": [{ - "m_type": 4405, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT", "wxALIGN_CENTER_VERTICAL"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_staticText3" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "Select the QMake to be used for this build configuration as defined in 'Plugins -> QMake -> Settings'" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Label:", - "m_value": "qmake settings:" - }, { - "type": "string", - "m_label": "Wrap:", - "m_value": "-1" - }], - "m_events": [{ - "m_eventName": "wxEVT_UPDATE_UI", - "m_eventClass": "wxUpdateUIEvent", - "m_eventHandler": "wxUpdateUIEventHandler", - "m_functionNameAndSignature": "OnUseQmake(wxUpdateUIEvent& event)", - "m_description": "Process a wxEVT_UPDATE_UI event" - }], - "m_children": [] - }, { - "m_type": 4411, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_choiceQmakeSettings" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "Select the QMake to be used for this build configuration as defined in 'Plugins -> QMake -> Settings'" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Choices:", - "m_value": "" - }, { - "type": "string", - "m_label": "Selection:", - "m_value": "0" - }], - "m_events": [{ - "m_eventName": "wxEVT_UPDATE_UI", - "m_eventClass": "wxUpdateUIEvent", - "m_eventHandler": "wxUpdateUIEventHandler", - "m_functionNameAndSignature": "OnUseQmake(wxUpdateUIEvent& event)", - "m_description": "Process a wxEVT_UPDATE_UI event" - }], - "m_children": [] - }, { - "m_type": 4405, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT", "wxALIGN_CENTER_VERTICAL"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_staticText4" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Label:", - "m_value": "qmake execution line:" - }, { - "type": "string", - "m_label": "Wrap:", - "m_value": "-1" - }], - "m_events": [{ - "m_eventName": "wxEVT_UPDATE_UI", - "m_eventClass": "wxUpdateUIEvent", - "m_eventHandler": "wxUpdateUIEventHandler", - "m_functionNameAndSignature": "OnUseQmake(wxUpdateUIEvent& event)", - "m_description": "Process a wxEVT_UPDATE_UI event" - }], - "m_children": [] - }, { - "m_type": 4406, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_textCtrlQmakeExeLine" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Value:", - "m_value": "" - }, { - "type": "string", - "m_label": "Max Length:", - "m_value": "0" - }], - "m_events": [{ - "m_eventName": "wxEVT_UPDATE_UI", - "m_eventClass": "wxUpdateUIEvent", - "m_eventHandler": "wxUpdateUIEventHandler", - "m_functionNameAndSignature": "OnUseQmake(wxUpdateUIEvent& event)", - "m_description": "Process a wxEVT_UPDATE_UI event" - }], - "m_children": [] - }] - }, { - "m_type": 4405, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_staticText5" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Label:", - "m_value": "CodeLite will place the below text after the auto generated section (so you may override the generated variables)" - }, { - "type": "string", - "m_label": "Wrap:", - "m_value": "-1" - }], - "m_events": [{ - "m_eventName": "wxEVT_UPDATE_UI", - "m_eventClass": "wxUpdateUIEvent", - "m_eventHandler": "wxUpdateUIEventHandler", - "m_functionNameAndSignature": "OnUseQmake(wxUpdateUIEvent& event)", - "m_description": "Process a wxEVT_UPDATE_UI event" - }], - "m_children": [] - }, { - "m_type": 4406, - "proportion": 1, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": ["wxTE_RICH2", "wxTE_PROCESS_TAB", "wxTE_MULTILINE", "wxTE_DONTWRAP"], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_textCtrlFreeText" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "9,normal, normal, swiss, 0, Sans" - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Value:", - "m_value": "" - }, { - "type": "string", - "m_label": "Max Length:", - "m_value": "0" - }], - "m_events": [{ - "m_eventName": "wxEVT_UPDATE_UI", - "m_eventClass": "wxUpdateUIEvent", - "m_eventHandler": "wxUpdateUIEventHandler", - "m_functionNameAndSignature": "OnUseQmake(wxUpdateUIEvent& event)", - "m_description": "Process a wxEVT_UPDATE_UI event" - }], - "m_children": [] - }] - }] - }] + "metadata": { + "m_generatedFilesDir": ".", + "m_objCounter": 0, + "m_includeFiles": [], + "m_bitmapFunction": "wxCraftergbQa9FInitBitmapResources", + "m_bitmapsFile": "qmaketabbase_qmakeplugin_bitmaps.cpp", + "m_GenerateCodeTypes": 1, + "m_outputFileName": "qmaketabbase", + "m_firstWindowId": 1000, + "m_useEnum": true, + "m_templateClasses": [] + }, + "windows": [{ + "m_type": 4407, + "proportion": 0, + "border": 0, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": ["wxTAB_TRAVERSAL"], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "QMakeTabBase" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Title:", + "m_value": "" + }, { + "type": "virtualFolderPicker", + "m_label": "Virtual Folder:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Centre:", + "m_selection": 1, + "m_options": ["", "wxBOTH", "wxVERTICAL", "wxHORIZONTAL"] + }, { + "type": "string", + "m_label": "Inherited Class", + "m_value": "" + }, { + "type": "string", + "m_label": "File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Class Decorator", + "m_value": "" + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 0, + "border": 0, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "mainSizer" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4415, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_checkBoxUseQmake" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "This project uses qmake" + }, { + "type": "bool", + "m_label": "Value:", + "m_value": false + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4403, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "fgSizer1" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "# Columns:", + "m_value": "2" + }, { + "type": "string", + "m_label": "# Rows:", + "m_value": "2" + }, { + "type": "string", + "m_label": "Growable columns:", + "m_value": "1" + }, { + "type": "string", + "m_label": "Growable rows:", + "m_value": "" + }, { + "type": "string", + "m_label": "Horizontal gap:", + "m_value": "0" + }, { + "type": "string", + "m_label": "Vertical gap:", + "m_value": "0" + }], + "m_events": [], + "m_children": [{ + "m_type": 4405, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT", "wxALIGN_CENTER_VERTICAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_staticText3" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "Select the QMake to be used for this build configuration as defined in 'Plugins -> QMake -> Settings'" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Label:", + "m_value": "qmake settings:" + }, { + "type": "string", + "m_label": "Wrap:", + "m_value": "-1" + }], + "m_events": [{ + "m_eventName": "wxEVT_UPDATE_UI", + "m_eventClass": "wxUpdateUIEvent", + "m_eventHandler": "wxUpdateUIEventHandler", + "m_functionNameAndSignature": "OnUseQmake(wxUpdateUIEvent& event)", + "m_description": "Process a wxEVT_UPDATE_UI event", + "m_noBody": false + }], + "m_children": [] + }, { + "m_type": 4411, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_choiceQmakeSettings" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "Select the QMake to be used for this build configuration as defined in 'Plugins -> QMake -> Settings'" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Choices:", + "m_value": "" + }, { + "type": "string", + "m_label": "Selection:", + "m_value": "0" + }], + "m_events": [{ + "m_eventName": "wxEVT_UPDATE_UI", + "m_eventClass": "wxUpdateUIEvent", + "m_eventHandler": "wxUpdateUIEventHandler", + "m_functionNameAndSignature": "OnUseQmake(wxUpdateUIEvent& event)", + "m_description": "Process a wxEVT_UPDATE_UI event", + "m_noBody": false + }], + "m_children": [] + }, { + "m_type": 4405, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT", "wxALIGN_CENTER_VERTICAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_staticText4" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Label:", + "m_value": "qmake execution line:" + }, { + "type": "string", + "m_label": "Wrap:", + "m_value": "-1" + }], + "m_events": [{ + "m_eventName": "wxEVT_UPDATE_UI", + "m_eventClass": "wxUpdateUIEvent", + "m_eventHandler": "wxUpdateUIEventHandler", + "m_functionNameAndSignature": "OnUseQmake(wxUpdateUIEvent& event)", + "m_description": "Process a wxEVT_UPDATE_UI event", + "m_noBody": false + }], + "m_children": [] + }, { + "m_type": 4406, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_textCtrlQmakeExeLine" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Value:", + "m_value": "" + }, { + "type": "string", + "m_label": "Text Hint", + "m_value": "" + }, { + "type": "string", + "m_label": "Max Length:", + "m_value": "0" + }, { + "type": "bool", + "m_label": "Auto Complete Directories:", + "m_value": false + }, { + "type": "bool", + "m_label": "Auto Complete Files:", + "m_value": false + }], + "m_events": [{ + "m_eventName": "wxEVT_UPDATE_UI", + "m_eventClass": "wxUpdateUIEvent", + "m_eventHandler": "wxUpdateUIEventHandler", + "m_functionNameAndSignature": "OnUseQmake(wxUpdateUIEvent& event)", + "m_description": "Process a wxEVT_UPDATE_UI event", + "m_noBody": false + }], + "m_children": [] + }] + }, { + "m_type": 4405, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_staticText5" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Label:", + "m_value": "CodeLite will place the below text after the auto generated section (so you may override the generated variables)" + }, { + "type": "string", + "m_label": "Wrap:", + "m_value": "-1" + }], + "m_events": [{ + "m_eventName": "wxEVT_UPDATE_UI", + "m_eventClass": "wxUpdateUIEvent", + "m_eventHandler": "wxUpdateUIEventHandler", + "m_functionNameAndSignature": "OnUseQmake(wxUpdateUIEvent& event)", + "m_description": "Process a wxEVT_UPDATE_UI event", + "m_noBody": false + }], + "m_children": [] + }, { + "m_type": 4406, + "proportion": 1, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": ["wxTE_RICH2", "wxTE_PROCESS_TAB", "wxTE_MULTILINE", "wxTE_DONTWRAP"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_textCtrlFreeText" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "9,normal, normal, swiss, 0, Sans" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Value:", + "m_value": "" + }, { + "type": "string", + "m_label": "Text Hint", + "m_value": "" + }, { + "type": "string", + "m_label": "Max Length:", + "m_value": "0" + }, { + "type": "bool", + "m_label": "Auto Complete Directories:", + "m_value": false + }, { + "type": "bool", + "m_label": "Auto Complete Files:", + "m_value": false + }], + "m_events": [{ + "m_eventName": "wxEVT_UPDATE_UI", + "m_eventClass": "wxUpdateUIEvent", + "m_eventHandler": "wxUpdateUIEventHandler", + "m_functionNameAndSignature": "OnUseQmake(wxUpdateUIEvent& event)", + "m_description": "Process a wxEVT_UPDATE_UI event", + "m_noBody": false + }], + "m_children": [] + }] + }] + }] } \ No newline at end of file diff -Nru codelite-8.0.1+dfsg2/Runtime/codelite.desktop codelite-9.0+dfsg/Runtime/codelite.desktop --- codelite-8.0.1+dfsg2/Runtime/codelite.desktop 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/Runtime/codelite.desktop 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,9 @@ +[Desktop Entry] +Name=CodeLite +Exec=codelite %f +Icon=codelite +Terminal=false +Type=Application +Categories=Development; +StartupNotify=true +Keywords=IDE;development;programming; diff -Nru codelite-8.0.1+dfsg2/Runtime/codelite.desktop.template codelite-9.0+dfsg/Runtime/codelite.desktop.template --- codelite-8.0.1+dfsg2/Runtime/codelite.desktop.template 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Runtime/codelite.desktop.template 1970-01-01 00:00:00.000000000 +0000 @@ -1,9 +0,0 @@ -[Desktop Entry] -Name=CodeLite -Exec=codelite %f -Icon=codelite -Terminal=false -Type=Application -Categories=Development; -StartupNotify=true -Keywords=IDE;development;programming; Binary files /tmp/0wlVVhsoFK/codelite-8.0.1+dfsg2/Runtime/codelite-icons-dark.zip and /tmp/qKeBoHmecl/codelite-9.0+dfsg/Runtime/codelite-icons-dark.zip differ Binary files /tmp/0wlVVhsoFK/codelite-8.0.1+dfsg2/Runtime/codelite-icons-fresh-farm.zip and /tmp/qKeBoHmecl/codelite-9.0+dfsg/Runtime/codelite-icons-fresh-farm.zip differ Binary files /tmp/0wlVVhsoFK/codelite-8.0.1+dfsg2/Runtime/codelite-icons.zip and /tmp/qKeBoHmecl/codelite-9.0+dfsg/Runtime/codelite-icons.zip differ diff -Nru codelite-8.0.1+dfsg2/Runtime/config/accelerators.conf.default codelite-9.0+dfsg/Runtime/config/accelerators.conf.default --- codelite-8.0.1+dfsg2/Runtime/config/accelerators.conf.default 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Runtime/config/accelerators.conf.default 2015-10-11 13:56:07.000000000 +0000 @@ -6,6 +6,7 @@ save_all|File|Save all files| close_file|File|Close|Ctrl-W wxID_CLOSE_ALL|File|Close All| +wxID_PRINT|File|Print...|Ctrl-P load_last_session|File|Load last session on restart| exit_app|File|Exit|Alt-X wxID_UNDO|Edit|Undo|Ctrl-Z @@ -57,30 +58,31 @@ show_build_toolbar|View::Toolbars|Build ToolBar| show_debug_toolbar|View::Toolbars|Debug ToolBar| toggle_panes|View|Toggle All Panes|Ctrl-M -find_in_files|Search|Find In Files...|Ctrl-Shift-F -wxID_FIND|Search|Find...|Ctrl-F -wxID_REPLACE|Search|Replace...|Ctrl-H -find_next|Search|Find Next|F3 -find_next_at_caret|Search|Find Word At Caret| -find_previous_at_caret|Search|Find Word At Caret Backward| +find_in_files|Search::Find In Files|Find In Files...|Ctrl-Shift-F +wxID_FIND|Search::Find and Replace|Find...|Ctrl-F +ID_QUICK_ADD_NEXT|Search::Find and Replace|Quick Add Next|Ctrl-K +ID_QUICK_FIND_ALL|Search::Find and Replace|Quick Find All|Ctrl-Shift-K +wxID_REPLACE|Search::Find and Replace|Replace...|Ctrl-H +find_next|Search::Find and Replace|Find Next|F3 +find_next_at_caret|Search::Find and Replace|Find Word At Caret| +find_previous_at_caret|Search::Find and Replace|Find Word At Caret Backward| grep_current_file|Search|Grep Selection in the Current File|Ctrl-Shift-G grep_current_workspace|Search|Grep Selection in the Workspace| -incremental_search|Search|Incremental Search|Ctrl-F -next_fif_match|Search|Go to Next 'Find In File' Match|F8 -previous_fif_match|Search|Go to Previous 'Find In File' Match|Ctrl-F8 +next_fif_match|Search::Find In Files|Go to Next 'Find In File' Match|F8 +previous_fif_match|Search::Find In Files|Go to Previous 'Find In File' Match|Ctrl-F8 find_previous|Search|Find Previous|Shift-F3 find_resource|Search|Find Resource...|Ctrl-Shift-R find_symbol|Search|Quick Outline...|Ctrl-Shift-O -goto_definition|Search|Find Symbol| -goto_previous_definition|Search|Go To Previous Location|Ctrl-P -wxID_BACKWARD|Search|Navigate Backward|Ctrl-, -wxID_FORWARD|Search|Navigate Forward|Ctrl-. -goto_linenumber|Search|Go To...|Ctrl-G -toggle_bookmark|Search|Toggle Bookmark|Ctrl-B -next_bookmark|Search|Next Bookmark|F2 -previous_bookmark|Search|Previous Bookmark|Shift-F2 -removeall_bookmarks|Search|Remove All Bookmarks| -removeall_current_bookmarks|Search|Remove All Currently-Active Bookmarks| +goto_definition|Search|Find Symbol|Alt-G +goto_previous_definition|Search::Go To|Go To Previous Location|Ctrl-P +wxID_BACKWARD|Search::Go To|Navigate Backward|Ctrl-, +wxID_FORWARD|Search::Go To|Navigate Forward|Ctrl-. +goto_linenumber|Search::Go To|Go To Line...|Ctrl-G +toggle_bookmark|Search::Bookmarks|Toggle Bookmark|Ctrl-B +next_bookmark|Search::Bookmarks|Next Bookmark|F2 +previous_bookmark|Search::Bookmarks|Previous Bookmark|Shift-F2 +removeall_bookmarks|Search::Bookmarks|Remove All Bookmarks| +removeall_current_bookmarks|Search::Bookmarks|Remove All Currently-Active Bookmarks| new_workspace|Workspace|New Workspace...| switch_to_workspace|Workspace|Open Workspace...| close_workspace|Workspace|Close Workspace| diff -Nru codelite-8.0.1+dfsg2/Runtime/gdb_printers/libstdcxx/v6/printers.py codelite-9.0+dfsg/Runtime/gdb_printers/libstdcxx/v6/printers.py --- codelite-8.0.1+dfsg2/Runtime/gdb_printers/libstdcxx/v6/printers.py 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Runtime/gdb_printers/libstdcxx/v6/printers.py 2015-10-11 13:56:07.000000000 +0000 @@ -1,6 +1,6 @@ -# Pretty-printers for libstc++. +# Pretty-printers for libstdc++. -# Copyright (C) 2008-2013 Free Software Foundation, Inc. +# Copyright (C) 2008-2014 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -18,6 +18,50 @@ import gdb import itertools import re +import sys + +### Python 2 + Python 3 compatibility code + +# Resources about compatibility: +# +# * : Documentation of the "six" module + +# FIXME: The handling of e.g. std::basic_string (at least on char) +# probably needs updating to work with Python 3's new string rules. +# +# In particular, Python 3 has a separate type (called byte) for +# bytestrings, and a special b"" syntax for the byte literals; the old +# str() type has been redefined to always store Unicode text. +# +# We probably can't do much about this until this GDB PR is addressed: +# + +if sys.version_info[0] > 2: + ### Python 3 stuff + Iterator = object + # Python 3 folds these into the normal functions. + imap = map + izip = zip + # Also, int subsumes long + long = int +else: + ### Python 2 stuff + class Iterator: + """Compatibility mixin for iterators + + Instead of writing next() methods for iterators, write + __next__() methods and use this mixin to make them work in + Python 2 as well as Python 3. + + Idea stolen from the "six" documentation: + + """ + + def next(self): + return self.__next__() + + # In Python 2, we still need these from itertools + from itertools import imap, izip # Try to use the new-style pretty-printing if available. _use_gdb_pp = True @@ -87,7 +131,7 @@ class StdListPrinter: "Print a std::list" - class _iterator: + class _iterator(Iterator): def __init__(self, nodetype, head): self.nodetype = nodetype self.base = head['_M_next'] @@ -97,7 +141,7 @@ def __iter__(self): return self - def next(self): + def __next__(self): if self.base == self.head: raise StopIteration elt = self.base.cast(self.nodetype).dereference() @@ -106,10 +150,6 @@ self.count = self.count + 1 return ('[%d]' % count, elt['_M_data']) - # Python3 version - def __next__(self): - return self.next() - def __init__(self, typename, val): self.typename = typename self.val = val @@ -139,7 +179,7 @@ class StdSlistPrinter: "Print a __gnu_cxx::slist" - class _iterator: + class _iterator(Iterator): def __init__(self, nodetype, head): self.nodetype = nodetype self.base = head['_M_head']['_M_next'] @@ -148,7 +188,7 @@ def __iter__(self): return self - def next(self): + def __next__(self): if self.base == 0: raise StopIteration elt = self.base.cast(self.nodetype).dereference() @@ -157,10 +197,6 @@ self.count = self.count + 1 return ('[%d]' % count, elt['_M_data']) - # Python3 version - def __next__(self): - return self.next() - def __init__(self, typename, val): self.val = val @@ -188,7 +224,7 @@ class StdVectorPrinter: "Print a std::vector" - class _iterator: + class _iterator(Iterator): def __init__ (self, start, finish, bitvec): self.bitvec = bitvec if bitvec: @@ -206,7 +242,7 @@ def __iter__(self): return self - def next(self): + def __next__(self): count = self.count self.count = self.count + 1 if self.bitvec: @@ -229,10 +265,6 @@ self.item = self.item + 1 return ('[%d]' % count, elt) - # Python3 version - def __next__(self): - return self.next() - def __init__(self, typename, val): self.typename = typename self.val = val @@ -277,7 +309,7 @@ class StdTuplePrinter: "Print a std::tuple" - class _iterator: + class _iterator(Iterator): def __init__ (self, head): self.head = head @@ -294,7 +326,7 @@ def __iter__ (self): return self - def next(self): + def __next__ (self): nodes = self.head.type.fields () # Check for further recursions in the inheritance tree. if len (nodes) == 0: @@ -322,10 +354,6 @@ else: return ('[%d]' % self.count, impl['_M_head_impl']) - # Python3 version - def __next__(self): - return self.next() - def __init__ (self, typename, val): self.typename = typename self.val = val; @@ -357,7 +385,7 @@ return self.visualizer.display_hint () return None -class RbtreeIterator: +class RbtreeIterator(Iterator): def __init__(self, rbtree): self.size = rbtree['_M_t']['_M_impl']['_M_node_count'] self.node = rbtree['_M_t']['_M_impl']['_M_header']['_M_left'] @@ -369,7 +397,7 @@ def __len__(self): return int (self.size) - def next(self): + def __next__(self): if self.count == self.size: raise StopIteration result = self.node @@ -391,9 +419,21 @@ self.node = node return result - # Python3 version - def __next__(self): - return self.next() +def get_value_from_Rb_tree_node(node): + """Returns the value held in an _Rb_tree_node<_Val>""" + try: + member = node.type.fields()[1].name + if member == '_M_value_field': + # C++03 implementation, node contains the value as a member + return node['_M_value_field'] + elif member == '_M_storage': + # C++11 implementation, node stores value in __aligned_buffer + p = node['_M_storage']['_M_storage'].address + p = p.cast(node.type.template_argument(0).pointer()) + return p.dereference() + except: + pass + raise ValueError("Unsupported implementation for %s" % str(node.type)) # This is a pretty printer for std::_Rb_tree_iterator (which is # std::map::iterator), and has nothing to do with the RbtreeIterator @@ -407,7 +447,8 @@ def to_string (self): typename = str(self.val.type.strip_typedefs()) + '::_Link_type' nodetype = gdb.lookup_type(typename).strip_typedefs() - return self.val.cast(nodetype).dereference()['_M_value_field'] + node = self.val.cast(nodetype).dereference() + return get_value_from_Rb_tree_node(node) class StdDebugIteratorPrinter: "Print a debug enabled version of an iterator" @@ -425,7 +466,7 @@ "Print a std::map or std::multimap" # Turn an RbtreeIterator into a pretty-print iterator. - class _iter: + class _iter(Iterator): def __init__(self, rbiter, type): self.rbiter = rbiter self.count = 0 @@ -434,10 +475,11 @@ def __iter__(self): return self - def next(self): + def __next__(self): if self.count % 2 == 0: n = next(self.rbiter) - n = n.cast(self.type).dereference()['_M_value_field'] + n = n.cast(self.type).dereference() + n = get_value_from_Rb_tree_node(n) self.pair = n item = n['first'] else: @@ -446,10 +488,6 @@ self.count = self.count + 1 return result - # Python3 version - def __next__(self): - return self.next() - def __init__ (self, typename, val): self.typename = typename self.val = val @@ -471,7 +509,7 @@ "Print a std::set or std::multiset" # Turn an RbtreeIterator into a pretty-print iterator. - class _iter: + class _iter(Iterator): def __init__(self, rbiter, type): self.rbiter = rbiter self.count = 0 @@ -480,19 +518,16 @@ def __iter__(self): return self - def next(self): + def __next__(self): item = next(self.rbiter) - item = item.cast(self.type).dereference()['_M_value_field'] + item = item.cast(self.type).dereference() + item = get_value_from_Rb_tree_node(item) # FIXME: this is weird ... what to do? # Maybe a 'set' display hint? result = ('[%d]' % self.count, item) self.count = self.count + 1 return result - # Python3 version - def __next__(self): - return self.next() - def __init__ (self, typename, val): self.typename = typename self.val = val @@ -550,7 +585,7 @@ class StdDequePrinter: "Print a std::deque" - class _iter: + class _iter(Iterator): def __init__(self, node, start, end, last, buffer_size): self.node = node self.p = start @@ -562,7 +597,7 @@ def __iter__(self): return self - def next(self): + def __next__(self): if self.p == self.last: raise StopIteration @@ -580,10 +615,6 @@ return result - # Python3 version - def __next__(self): - return self.next() - def __init__(self, typename, val): self.typename = typename self.val = val @@ -604,7 +635,7 @@ size = self.buffer_size * delta_n + delta_s + delta_e - return '%s with %d elements' % (self.typename, int (size)) + return '%s with %d elements' % (self.typename, long (size)) def children(self): start = self.val['_M_impl']['_M_start'] @@ -651,25 +682,53 @@ def display_hint (self): return 'string' -class Tr1HashtableIterator: +class Tr1HashtableIterator(Iterator): def __init__ (self, hash): - self.node = hash['_M_bbegin']['_M_node']['_M_nxt'] - self.node_type = find_type(hash.type, '__node_type').pointer() + self.buckets = hash['_M_buckets'] + self.bucket = 0 + self.bucket_count = hash['_M_bucket_count'] + self.node_type = find_type(hash.type, '_Node').pointer() + self.node = 0 + while self.bucket != self.bucket_count: + self.node = self.buckets[self.bucket] + if self.node: + break + self.bucket = self.bucket + 1 def __iter__ (self): return self - def next(self): + def __next__ (self): if self.node == 0: raise StopIteration node = self.node.cast(self.node_type) result = node.dereference()['_M_v'] - self.node = node.dereference()['_M_nxt'] + self.node = node.dereference()['_M_next']; + if self.node == 0: + self.bucket = self.bucket + 1 + while self.bucket != self.bucket_count: + self.node = self.buckets[self.bucket] + if self.node: + break + self.bucket = self.bucket + 1 return result - # Python3 version +class StdHashtableIterator(Iterator): + def __init__(self, hash): + self.node = hash['_M_before_begin']['_M_nxt'] + self.node_type = find_type(hash.type, '__node_type').pointer() + + def __iter__(self): + return self + def __next__(self): - return self.next() + if self.node == 0: + raise StopIteration + elt = self.node.cast(self.node_type).dereference() + self.node = elt['_M_nxt'] + valptr = elt['_M_storage'].address + valptr = valptr.cast(elt.type.template_argument(0).pointer()) + return valptr.dereference() class Tr1UnorderedSetPrinter: "Print a tr1::unordered_set" @@ -691,8 +750,10 @@ return '[%d]' % i def children (self): - counter = map (self.format_count, itertools.count()) - return zip (counter, Tr1HashtableIterator (self.hashtable())) + counter = imap (self.format_count, itertools.count()) + if self.typename.startswith('std::tr1'): + return izip (counter, Tr1HashtableIterator (self.hashtable())) + return izip (counter, StdHashtableIterator (self.hashtable())) class Tr1UnorderedMapPrinter: "Print a tr1::unordered_map" @@ -724,11 +785,16 @@ return '[%d]' % i def children (self): - counter = map (self.format_count, itertools.count()) + counter = imap (self.format_count, itertools.count()) # Map over the hash table and flatten the result. - data = self.flatten (map (self.format_one, Tr1HashtableIterator (self.hashtable()))) + if self.typename.startswith('std::tr1'): + data = self.flatten (imap (self.format_one, Tr1HashtableIterator (self.hashtable()))) + # Zip the two iterators together. + return izip (counter, data) + data = self.flatten (imap (self.format_one, StdHashtableIterator (self.hashtable()))) # Zip the two iterators together. - return zip (counter, data) + return izip (counter, data) + def display_hint (self): return 'map' @@ -736,7 +802,7 @@ class StdForwardListPrinter: "Print a std::forward_list" - class _iterator: + class _iterator(Iterator): def __init__(self, nodetype, head): self.nodetype = nodetype self.base = head['_M_next'] @@ -745,7 +811,7 @@ def __iter__(self): return self - def next(self): + def __next__(self): if self.base == 0: raise StopIteration elt = self.base.cast(self.nodetype).dereference() @@ -756,10 +822,6 @@ valptr = valptr.cast(elt.type.template_argument(0).pointer()) return ('[%d]' % count, valptr.dereference()) - # Python3 version - def __next__(self): - return self.next() - def __init__(self, typename, val): self.val = val self.typename = typename @@ -787,6 +849,11 @@ def invoke(self, value): if not self.enabled: return None + + if value.type.code == gdb.TYPE_CODE_REF: + if hasattr(gdb.Value,"referenced_value"): + value = value.referenced_value() + return self.function(self.name, value) # A pretty-printer that conforms to the "PrettyPrinter" protocol from @@ -842,6 +909,11 @@ return None basename = match.group(1) + + if val.type.code == gdb.TYPE_CODE_REF: + if hasattr(gdb.Value,"referenced_value"): + val = val.referenced_value() + if basename in self.lookup: return self.lookup[basename].invoke(val) Binary files /tmp/0wlVVhsoFK/codelite-8.0.1+dfsg2/Runtime/images/splashscreen.png and /tmp/qKeBoHmecl/codelite-9.0+dfsg/Runtime/images/splashscreen.png differ diff -Nru codelite-8.0.1+dfsg2/Runtime/Info.plist codelite-9.0+dfsg/Runtime/Info.plist --- codelite-8.0.1+dfsg2/Runtime/Info.plist 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Runtime/Info.plist 2015-10-11 13:56:07.000000000 +0000 @@ -3,10 +3,12 @@ CFBundleDevelopmentRegion English + NSPrincipalClass + NSApplication CFBundleExecutable codelite CFBundleInfoDictionaryVersion - 8.0 + 8.1 CFBundleName CodeLite CFBundleIconFile @@ -14,9 +16,9 @@ CFBundlePackageType APPL CFBundleVersion - CodeLite IDE version 8.0 + CodeLite IDE version 8.1 CFBundleShortVersionString - CodeLite IDE version 8.0 + CodeLite IDE version 8.1 CSResourcesFileMapped CFBundleDocumentTypes diff -Nru codelite-8.0.1+dfsg2/Runtime/lexers/lexers.json codelite-9.0+dfsg/Runtime/lexers/lexers.json --- codelite-8.0.1+dfsg2/Runtime/lexers/lexers.json 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Runtime/lexers/lexers.json 2015-10-11 13:56:07.000000000 +0000 @@ -37353,8 +37353,8 @@ "Theme": "Classic Eclipse", "Flags": 5, "Id": 3, - "KeyWords0": "NaN StringtoString abstract arguments boolean break byte case catch char class* const continue debugger default delete do double else enum* eval export* extends* false final finally float for function goto if implements import* in instanceof int interface let long native new null package private protected prototype public return short static super* switch synchronized this throw throws transient true try typeof undefined var void volatile while with yield", - "KeyWords1": "Math NaN NumberObject URL activeElement addEventListener adoptNode anchors applets baseURI body close cookie createAttribute createComment createDocumentFragment createElement createTextNode doctype documentElement documentMode documentURI domConfig domain embeds forms getElementById getElementsByClassName getElementsByName getElementsByTagName hasFocus head images implementation importNode inputEncoding lastModified links name normalize normalizeDocument open querySelectorquerySelectorAll readyState referrer removeEventListener renameNode scripts strictErrorChecking title valueOf write writeln", + "KeyWords0": "NaN StringtoString abstract arguments boolean break byte case catch char class const continue debugger default delete do double else enum eval export extends false final finally float for function goto if implements import in instanceof int interface let long native new null package private protected prototype public return short static super* switch synchronized this throw throws transient true try typeof undefined var void volatile while with yield", + "KeyWords1": "Math NaN NumberObject URL activeElement addEventListener adoptNode anchors applets baseURI body close cookie createAttribute createComment createDocumentFragment createElement createTextNode doctype documentElement documentMode documentURI domConfig domain embeds forms getElementById getElementsByClassName getElementsByName getElementsByTagName hasFocus head images implementation importNode inputEncoding lastModified links name normalize normalizeDocument open querySelector querySelectorAll readyState referrer removeEventListener renameNode scripts strictErrorChecking title valueOf write writeln", "KeyWords2": "", "KeyWords3": "Array Date Math document window", "KeyWords4": "", @@ -37590,8 +37590,8 @@ "Theme": "Default", "Flags": 7, "Id": 3, - "KeyWords0": "NaN StringtoString abstract arguments boolean break byte case catch char class* const continue debugger default delete do double else enum* eval export* extends* false final finally float for function goto if implements import* in instanceof int interface let long native new null package private protected prototype public return short static super* switch synchronized this throw throws transient true try typeof undefined var void volatile while with yield", - "KeyWords1": "Math NaN NumberObject URL activeElement addEventListener adoptNode anchors applets baseURI body close cookie createAttribute createComment createDocumentFragment createElement createTextNode doctype documentElement documentMode documentURI domConfig domain embeds forms getElementById getElementsByClassName getElementsByName getElementsByTagName hasFocus head images implementation importNode inputEncoding lastModified links name normalize normalizeDocument open querySelectorquerySelectorAll readyState referrer removeEventListener renameNode scripts strictErrorChecking title valueOf write writeln", + "KeyWords0": "NaN StringtoString abstract arguments boolean break byte case catch char class const continue debugger default delete do double else enum eval export extends false final finally float for function goto if implements import in instanceof int interface let long native new null package private protected prototype public return short static super* switch synchronized this throw throws transient true try typeof undefined var void volatile while with yield", + "KeyWords1": "Math NaN NumberObject URL activeElement addEventListener adoptNode anchors applets baseURI body close cookie createAttribute createComment createDocumentFragment createElement createTextNode doctype documentElement documentMode documentURI domConfig domain embeds forms getElementById getElementsByClassName getElementsByName getElementsByTagName hasFocus head images implementation importNode inputEncoding lastModified links name normalize normalizeDocument open querySelector querySelectorAll readyState referrer removeEventListener renameNode scripts strictErrorChecking title valueOf write writeln", "KeyWords2": "", "KeyWords3": "Array Date Math document window", "KeyWords4": "", @@ -37827,8 +37827,8 @@ "Theme": "Roboticket", "Flags": 5, "Id": 3, - "KeyWords0": "NaN StringtoString abstract arguments boolean break byte case catch char class* const continue debugger default delete do double else enum* eval export* extends* false final finally float for function goto if implements import* in instanceof int interface let long native new null package private protected prototype public return short static super* switch synchronized this throw throws transient true try typeof undefined var void volatile while with yield", - "KeyWords1": "Math NaN NumberObject URL activeElement addEventListener adoptNode anchors applets baseURI body close cookie createAttribute createComment createDocumentFragment createElement createTextNode doctype documentElement documentMode documentURI domConfig domain embeds forms getElementById getElementsByClassName getElementsByName getElementsByTagName hasFocus head images implementation importNode inputEncoding lastModified links name normalize normalizeDocument open querySelectorquerySelectorAll readyState referrer removeEventListener renameNode scripts strictErrorChecking title valueOf write writeln", + "KeyWords0": "NaN StringtoString abstract arguments boolean break byte case catch char class const continue debugger default delete do double else enum eval export extends false final finally float for function goto if implements import in instanceof int interface let long native new null package private protected prototype public return short static super* switch synchronized this throw throws transient true try typeof undefined var void volatile while with yield", + "KeyWords1": "Math NaN NumberObject URL activeElement addEventListener adoptNode anchors applets baseURI body close cookie createAttribute createComment createDocumentFragment createElement createTextNode doctype documentElement documentMode documentURI domConfig domain embeds forms getElementById getElementsByClassName getElementsByName getElementsByTagName hasFocus head images implementation importNode inputEncoding lastModified links name normalize normalizeDocument open querySelector querySelectorAll readyState referrer removeEventListener renameNode scripts strictErrorChecking title valueOf write writeln", "KeyWords2": "", "KeyWords3": "Array Date Math document window", "KeyWords4": "", @@ -38064,8 +38064,8 @@ "Theme": "Gedit Original Oblivion", "Flags": 5, "Id": 3, - "KeyWords0": "NaN StringtoString abstract arguments boolean break byte case catch char class* const continue debugger default delete do double else enum* eval export* extends* false final finally float for function goto if implements import* in instanceof int interface let long native new null package private protected prototype public return short static super* switch synchronized this throw throws transient true try typeof undefined var void volatile while with yield", - "KeyWords1": "Math NaN NumberObject URL activeElement addEventListener adoptNode anchors applets baseURI body close cookie createAttribute createComment createDocumentFragment createElement createTextNode doctype documentElement documentMode documentURI domConfig domain embeds forms getElementById getElementsByClassName getElementsByName getElementsByTagName hasFocus head images implementation importNode inputEncoding lastModified links name normalize normalizeDocument open querySelectorquerySelectorAll readyState referrer removeEventListener renameNode scripts strictErrorChecking title valueOf write writeln", + "KeyWords0": "NaN StringtoString abstract arguments boolean break byte case catch char class const continue debugger default delete do double else enum eval export extends false final finally float for function goto if implements import in instanceof int interface let long native new null package private protected prototype public return short static super* switch synchronized this throw throws transient true try typeof undefined var void volatile while with yield", + "KeyWords1": "Math NaN NumberObject URL activeElement addEventListener adoptNode anchors applets baseURI body close cookie createAttribute createComment createDocumentFragment createElement createTextNode doctype documentElement documentMode documentURI domConfig domain embeds forms getElementById getElementsByClassName getElementsByName getElementsByTagName hasFocus head images implementation importNode inputEncoding lastModified links name normalize normalizeDocument open querySelector querySelectorAll readyState referrer removeEventListener renameNode scripts strictErrorChecking title valueOf write writeln", "KeyWords2": "", "KeyWords3": "Array Date Math document window", "KeyWords4": "", @@ -38301,8 +38301,8 @@ "Theme": "Inkpot", "Flags": 5, "Id": 3, - "KeyWords0": "NaN StringtoString abstract arguments boolean break byte case catch char class* const continue debugger default delete do double else enum* eval export* extends* false final finally float for function goto if implements import* in instanceof int interface let long native new null package private protected prototype public return short static super* switch synchronized this throw throws transient true try typeof undefined var void volatile while with yield", - "KeyWords1": "Math NaN NumberObject URL activeElement addEventListener adoptNode anchors applets baseURI body close cookie createAttribute createComment createDocumentFragment createElement createTextNode doctype documentElement documentMode documentURI domConfig domain embeds forms getElementById getElementsByClassName getElementsByName getElementsByTagName hasFocus head images implementation importNode inputEncoding lastModified links name normalize normalizeDocument open querySelectorquerySelectorAll readyState referrer removeEventListener renameNode scripts strictErrorChecking title valueOf write writeln", + "KeyWords0": "NaN StringtoString abstract arguments boolean break byte case catch char class const continue debugger default delete do double else enum eval export extends false final finally float for function goto if implements import in instanceof int interface let long native new null package private protected prototype public return short static super* switch synchronized this throw throws transient true try typeof undefined var void volatile while with yield", + "KeyWords1": "Math NaN NumberObject URL activeElement addEventListener adoptNode anchors applets baseURI body close cookie createAttribute createComment createDocumentFragment createElement createTextNode doctype documentElement documentMode documentURI domConfig domain embeds forms getElementById getElementsByClassName getElementsByName getElementsByTagName hasFocus head images implementation importNode inputEncoding lastModified links name normalize normalizeDocument open querySelector querySelectorAll readyState referrer removeEventListener renameNode scripts strictErrorChecking title valueOf write writeln", "KeyWords2": "", "KeyWords3": "Array Date Math document window", "KeyWords4": "", @@ -38538,8 +38538,8 @@ "Theme": "Monokai_2", "Flags": 5, "Id": 3, - "KeyWords0": "NaN StringtoString abstract arguments boolean break byte case catch char class* const continue debugger default delete do double else enum* eval export* extends* false final finally float for function goto if implements import* in instanceof int interface let long native new null package private protected prototype public return short static super* switch synchronized this throw throws transient true try typeof undefined var void volatile while with yield", - "KeyWords1": "Math NaN NumberObject URL activeElement addEventListener adoptNode anchors applets baseURI body close cookie createAttribute createComment createDocumentFragment createElement createTextNode doctype documentElement documentMode documentURI domConfig domain embeds forms getElementById getElementsByClassName getElementsByName getElementsByTagName hasFocus head images implementation importNode inputEncoding lastModified links name normalize normalizeDocument open querySelectorquerySelectorAll readyState referrer removeEventListener renameNode scripts strictErrorChecking title valueOf write writeln", + "KeyWords0": "NaN StringtoString abstract arguments boolean break byte case catch char class const continue debugger default delete do double else enum eval export extends false final finally float for function goto if implements import in instanceof int interface let long native new null package private protected prototype public return short static super* switch synchronized this throw throws transient true try typeof undefined var void volatile while with yield", + "KeyWords1": "Math NaN NumberObject URL activeElement addEventListener adoptNode anchors applets baseURI body close cookie createAttribute createComment createDocumentFragment createElement createTextNode doctype documentElement documentMode documentURI domConfig domain embeds forms getElementById getElementsByClassName getElementsByName getElementsByTagName hasFocus head images implementation importNode inputEncoding lastModified links name normalize normalizeDocument open querySelector querySelectorAll readyState referrer removeEventListener renameNode scripts strictErrorChecking title valueOf write writeln", "KeyWords2": "", "KeyWords3": "Array Date Math document window", "KeyWords4": "", @@ -38775,8 +38775,8 @@ "Theme": "Monokai Soda v3", "Flags": 5, "Id": 3, - "KeyWords0": "NaN StringtoString abstract arguments boolean break byte case catch char class* const continue debugger default delete do double else enum* eval export* extends* false final finally float for function goto if implements import* in instanceof int interface let long native new null package private protected prototype public return short static super* switch synchronized this throw throws transient true try typeof undefined var void volatile while with yield", - "KeyWords1": "Math NaN NumberObject URL activeElement addEventListener adoptNode anchors applets baseURI body close cookie createAttribute createComment createDocumentFragment createElement createTextNode doctype documentElement documentMode documentURI domConfig domain embeds forms getElementById getElementsByClassName getElementsByName getElementsByTagName hasFocus head images implementation importNode inputEncoding lastModified links name normalize normalizeDocument open querySelectorquerySelectorAll readyState referrer removeEventListener renameNode scripts strictErrorChecking title valueOf write writeln", + "KeyWords0": "NaN StringtoString abstract arguments boolean break byte case catch char class const continue debugger default delete do double else enum eval export extends false final finally float for function goto if implements import in instanceof int interface let long native new null package private protected prototype public return short static super* switch synchronized this throw throws transient true try typeof undefined var void volatile while with yield", + "KeyWords1": "Math NaN NumberObject URL activeElement addEventListener adoptNode anchors applets baseURI body close cookie createAttribute createComment createDocumentFragment createElement createTextNode doctype documentElement documentMode documentURI domConfig domain embeds forms getElementById getElementsByClassName getElementsByName getElementsByTagName hasFocus head images implementation importNode inputEncoding lastModified links name normalize normalizeDocument open querySelector querySelectorAll readyState referrer removeEventListener renameNode scripts strictErrorChecking title valueOf write writeln", "KeyWords2": "", "KeyWords3": "Array Date Math document window", "KeyWords4": "", @@ -39012,8 +39012,8 @@ "Theme": "Oblivion", "Flags": 5, "Id": 3, - "KeyWords0": "NaN StringtoString abstract arguments boolean break byte case catch char class* const continue debugger default delete do double else enum* eval export* extends* false final finally float for function goto if implements import* in instanceof int interface let long native new null package private protected prototype public return short static super* switch synchronized this throw throws transient true try typeof undefined var void volatile while with yield", - "KeyWords1": "Math NaN NumberObject URL activeElement addEventListener adoptNode anchors applets baseURI body close cookie createAttribute createComment createDocumentFragment createElement createTextNode doctype documentElement documentMode documentURI domConfig domain embeds forms getElementById getElementsByClassName getElementsByName getElementsByTagName hasFocus head images implementation importNode inputEncoding lastModified links name normalize normalizeDocument open querySelectorquerySelectorAll readyState referrer removeEventListener renameNode scripts strictErrorChecking title valueOf write writeln", + "KeyWords0": "NaN StringtoString abstract arguments boolean break byte case catch char class const continue debugger default delete do double else enum eval export extends false final finally float for function goto if implements import in instanceof int interface let long native new null package private protected prototype public return short static super* switch synchronized this throw throws transient true try typeof undefined var void volatile while with yield", + "KeyWords1": "Math NaN NumberObject URL activeElement addEventListener adoptNode anchors applets baseURI body close cookie createAttribute createComment createDocumentFragment createElement createTextNode doctype documentElement documentMode documentURI domConfig domain embeds forms getElementById getElementsByClassName getElementsByName getElementsByTagName hasFocus head images implementation importNode inputEncoding lastModified links name normalize normalizeDocument open querySelector querySelectorAll readyState referrer removeEventListener renameNode scripts strictErrorChecking title valueOf write writeln", "KeyWords2": "", "KeyWords3": "Array Date Math document window", "KeyWords4": "", @@ -39249,8 +39249,8 @@ "Theme": "Obsidian", "Flags": 5, "Id": 3, - "KeyWords0": "NaN StringtoString abstract arguments boolean break byte case catch char class* const continue debugger default delete do double else enum* eval export* extends* false final finally float for function goto if implements import* in instanceof int interface let long native new null package private protected prototype public return short static super* switch synchronized this throw throws transient true try typeof undefined var void volatile while with yield", - "KeyWords1": "Math NaN NumberObject URL activeElement addEventListener adoptNode anchors applets baseURI body close cookie createAttribute createComment createDocumentFragment createElement createTextNode doctype documentElement documentMode documentURI domConfig domain embeds forms getElementById getElementsByClassName getElementsByName getElementsByTagName hasFocus head images implementation importNode inputEncoding lastModified links name normalize normalizeDocument open querySelectorquerySelectorAll readyState referrer removeEventListener renameNode scripts strictErrorChecking title valueOf write writeln", + "KeyWords0": "NaN StringtoString abstract arguments boolean break byte case catch char class const continue debugger default delete do double else enum eval export extends false final finally float for function goto if implements import in instanceof int interface let long native new null package private protected prototype public return short static super* switch synchronized this throw throws transient true try typeof undefined var void volatile while with yield", + "KeyWords1": "Math NaN NumberObject URL activeElement addEventListener adoptNode anchors applets baseURI body close cookie createAttribute createComment createDocumentFragment createElement createTextNode doctype documentElement documentMode documentURI domConfig domain embeds forms getElementById getElementsByClassName getElementsByName getElementsByTagName hasFocus head images implementation importNode inputEncoding lastModified links name normalize normalizeDocument open querySelector querySelectorAll readyState referrer removeEventListener renameNode scripts strictErrorChecking title valueOf write writeln", "KeyWords2": "", "KeyWords3": "Array Date Math document window", "KeyWords4": "", @@ -39486,8 +39486,8 @@ "Theme": "Pastel", "Flags": 5, "Id": 3, - "KeyWords0": "NaN StringtoString abstract arguments boolean break byte case catch char class* const continue debugger default delete do double else enum* eval export* extends* false final finally float for function goto if implements import* in instanceof int interface let long native new null package private protected prototype public return short static super* switch synchronized this throw throws transient true try typeof undefined var void volatile while with yield", - "KeyWords1": "Math NaN NumberObject URL activeElement addEventListener adoptNode anchors applets baseURI body close cookie createAttribute createComment createDocumentFragment createElement createTextNode doctype documentElement documentMode documentURI domConfig domain embeds forms getElementById getElementsByClassName getElementsByName getElementsByTagName hasFocus head images implementation importNode inputEncoding lastModified links name normalize normalizeDocument open querySelectorquerySelectorAll readyState referrer removeEventListener renameNode scripts strictErrorChecking title valueOf write writeln", + "KeyWords0": "NaN StringtoString abstract arguments boolean break byte case catch char class const continue debugger default delete do double else enum eval export extends false final finally float for function goto if implements import in instanceof int interface let long native new null package private protected prototype public return short static super* switch synchronized this throw throws transient true try typeof undefined var void volatile while with yield", + "KeyWords1": "Math NaN NumberObject URL activeElement addEventListener adoptNode anchors applets baseURI body close cookie createAttribute createComment createDocumentFragment createElement createTextNode doctype documentElement documentMode documentURI domConfig domain embeds forms getElementById getElementsByClassName getElementsByName getElementsByTagName hasFocus head images implementation importNode inputEncoding lastModified links name normalize normalizeDocument open querySelector querySelectorAll readyState referrer removeEventListener renameNode scripts strictErrorChecking title valueOf write writeln", "KeyWords2": "", "KeyWords3": "Array Date Math document window", "KeyWords4": "", @@ -39723,8 +39723,8 @@ "Theme": "Son of obsidian", "Flags": 5, "Id": 3, - "KeyWords0": "NaN StringtoString abstract arguments boolean break byte case catch char class* const continue debugger default delete do double else enum* eval export* extends* false final finally float for function goto if implements import* in instanceof int interface let long native new null package private protected prototype public return short static super* switch synchronized this throw throws transient true try typeof undefined var void volatile while with yield", - "KeyWords1": "Math NaN NumberObject URL activeElement addEventListener adoptNode anchors applets baseURI body close cookie createAttribute createComment createDocumentFragment createElement createTextNode doctype documentElement documentMode documentURI domConfig domain embeds forms getElementById getElementsByClassName getElementsByName getElementsByTagName hasFocus head images implementation importNode inputEncoding lastModified links name normalize normalizeDocument open querySelectorquerySelectorAll readyState referrer removeEventListener renameNode scripts strictErrorChecking title valueOf write writeln", + "KeyWords0": "NaN StringtoString abstract arguments boolean break byte case catch char class const continue debugger default delete do double else enum eval export extends false final finally float for function goto if implements import in instanceof int interface let long native new null package private protected prototype public return short static super* switch synchronized this throw throws transient true try typeof undefined var void volatile while with yield", + "KeyWords1": "Math NaN NumberObject URL activeElement addEventListener adoptNode anchors applets baseURI body close cookie createAttribute createComment createDocumentFragment createElement createTextNode doctype documentElement documentMode documentURI domConfig domain embeds forms getElementById getElementsByClassName getElementsByName getElementsByTagName hasFocus head images implementation importNode inputEncoding lastModified links name normalize normalizeDocument open querySelector querySelectorAll readyState referrer removeEventListener renameNode scripts strictErrorChecking title valueOf write writeln", "KeyWords2": "", "KeyWords3": "Array Date Math document window", "KeyWords4": "", @@ -39960,8 +39960,8 @@ "Theme": "Tomorrow Night", "Flags": 5, "Id": 3, - "KeyWords0": "NaN StringtoString abstract arguments boolean break byte case catch char class* const continue debugger default delete do double else enum* eval export* extends* false final finally float for function goto if implements import* in instanceof int interface let long native new null package private protected prototype public return short static super* switch synchronized this throw throws transient true try typeof undefined var void volatile while with yield", - "KeyWords1": "Math NaN NumberObject URL activeElement addEventListener adoptNode anchors applets baseURI body close cookie createAttribute createComment createDocumentFragment createElement createTextNode doctype documentElement documentMode documentURI domConfig domain embeds forms getElementById getElementsByClassName getElementsByName getElementsByTagName hasFocus head images implementation importNode inputEncoding lastModified links name normalize normalizeDocument open querySelectorquerySelectorAll readyState referrer removeEventListener renameNode scripts strictErrorChecking title valueOf write writeln", + "KeyWords0": "NaN StringtoString abstract arguments boolean break byte case catch char class const continue debugger default delete do double else enum eval export extends false final finally float for function goto if implements import in instanceof int interface let long native new null package private protected prototype public return short static super* switch synchronized this throw throws transient true try typeof undefined var void volatile while with yield", + "KeyWords1": "Math NaN NumberObject URL activeElement addEventListener adoptNode anchors applets baseURI body close cookie createAttribute createComment createDocumentFragment createElement createTextNode doctype documentElement documentMode documentURI domConfig domain embeds forms getElementById getElementsByClassName getElementsByName getElementsByTagName hasFocus head images implementation importNode inputEncoding lastModified links name normalize normalizeDocument open querySelector querySelectorAll readyState referrer removeEventListener renameNode scripts strictErrorChecking title valueOf write writeln", "KeyWords2": "", "KeyWords3": "Array Date Math document window", "KeyWords4": "", @@ -40197,8 +40197,8 @@ "Theme": "Vim dark", "Flags": 5, "Id": 3, - "KeyWords0": "NaN StringtoString abstract arguments boolean break byte case catch char class* const continue debugger default delete do double else enum* eval export* extends* false final finally float for function goto if implements import* in instanceof int interface let long native new null package private protected prototype public return short static super* switch synchronized this throw throws transient true try typeof undefined var void volatile while with yield", - "KeyWords1": "Math NaN NumberObject URL activeElement addEventListener adoptNode anchors applets baseURI body close cookie createAttribute createComment createDocumentFragment createElement createTextNode doctype documentElement documentMode documentURI domConfig domain embeds forms getElementById getElementsByClassName getElementsByName getElementsByTagName hasFocus head images implementation importNode inputEncoding lastModified links name normalize normalizeDocument open querySelectorquerySelectorAll readyState referrer removeEventListener renameNode scripts strictErrorChecking title valueOf write writeln", + "KeyWords0": "NaN StringtoString abstract arguments boolean break byte case catch char class const continue debugger default delete do double else enum eval export extends false final finally float for function goto if implements import in instanceof int interface let long native new null package private protected prototype public return short static super* switch synchronized this throw throws transient true try typeof undefined var void volatile while with yield", + "KeyWords1": "Math NaN NumberObject URL activeElement addEventListener adoptNode anchors applets baseURI body close cookie createAttribute createComment createDocumentFragment createElement createTextNode doctype documentElement documentMode documentURI domConfig domain embeds forms getElementById getElementsByClassName getElementsByName getElementsByTagName hasFocus head images implementation importNode inputEncoding lastModified links name normalize normalizeDocument open querySelector querySelectorAll readyState referrer removeEventListener renameNode scripts strictErrorChecking title valueOf write writeln", "KeyWords2": "", "KeyWords3": "Array Date Math document window", "KeyWords4": "", @@ -40434,8 +40434,8 @@ "Theme": "Vim Desert", "Flags": 5, "Id": 3, - "KeyWords0": "NaN StringtoString abstract arguments boolean break byte case catch char class* const continue debugger default delete do double else enum* eval export* extends* false final finally float for function goto if implements import* in instanceof int interface let long native new null package private protected prototype public return short static super* switch synchronized this throw throws transient true try typeof undefined var void volatile while with yield", - "KeyWords1": "Math NaN NumberObject URL activeElement addEventListener adoptNode anchors applets baseURI body close cookie createAttribute createComment createDocumentFragment createElement createTextNode doctype documentElement documentMode documentURI domConfig domain embeds forms getElementById getElementsByClassName getElementsByName getElementsByTagName hasFocus head images implementation importNode inputEncoding lastModified links name normalize normalizeDocument open querySelectorquerySelectorAll readyState referrer removeEventListener renameNode scripts strictErrorChecking title valueOf write writeln", + "KeyWords0": "NaN StringtoString abstract arguments boolean break byte case catch char class const continue debugger default delete do double else enum eval export extends false final finally float for function goto if implements import in instanceof int interface let long native new null package private protected prototype public return short static super* switch synchronized this throw throws transient true try typeof undefined var void volatile while with yield", + "KeyWords1": "Math NaN NumberObject URL activeElement addEventListener adoptNode anchors applets baseURI body close cookie createAttribute createComment createDocumentFragment createElement createTextNode doctype documentElement documentMode documentURI domConfig domain embeds forms getElementById getElementsByClassName getElementsByName getElementsByTagName hasFocus head images implementation importNode inputEncoding lastModified links name normalize normalizeDocument open querySelector querySelectorAll readyState referrer removeEventListener renameNode scripts strictErrorChecking title valueOf write writeln", "KeyWords2": "", "KeyWords3": "Array Date Math document window", "KeyWords4": "", @@ -40671,8 +40671,8 @@ "Theme": "Zenburn", "Flags": 5, "Id": 3, - "KeyWords0": "NaN StringtoString abstract arguments boolean break byte case catch char class* const continue debugger default delete do double else enum* eval export* extends* false final finally float for function goto if implements import* in instanceof int interface let long native new null package private protected prototype public return short static super* switch synchronized this throw throws transient true try typeof undefined var void volatile while with yield", - "KeyWords1": "Math NaN NumberObject URL activeElement addEventListener adoptNode anchors applets baseURI body close cookie createAttribute createComment createDocumentFragment createElement createTextNode doctype documentElement documentMode documentURI domConfig domain embeds forms getElementById getElementsByClassName getElementsByName getElementsByTagName hasFocus head images implementation importNode inputEncoding lastModified links name normalize normalizeDocument open querySelectorquerySelectorAll readyState referrer removeEventListener renameNode scripts strictErrorChecking title valueOf write writeln", + "KeyWords0": "NaN StringtoString abstract arguments boolean break byte case catch char class const continue debugger default delete do double else enum eval export extends false final finally float for function goto if implements import in instanceof int interface let long native new null package private protected prototype public return short static super* switch synchronized this throw throws transient true try typeof undefined var void volatile while with yield", + "KeyWords1": "Math NaN NumberObject URL activeElement addEventListener adoptNode anchors applets baseURI body close cookie createAttribute createComment createDocumentFragment createElement createTextNode doctype documentElement documentMode documentURI domConfig domain embeds forms getElementById getElementsByClassName getElementsByName getElementsByTagName hasFocus head images implementation importNode inputEncoding lastModified links name normalize normalizeDocument open querySelector querySelectorAll readyState referrer removeEventListener renameNode scripts strictErrorChecking title valueOf write writeln", "KeyWords2": "", "KeyWords3": "Array Date Math document window", "KeyWords4": "", diff -Nru codelite-8.0.1+dfsg2/Runtime/rc/menu.xrc codelite-9.0+dfsg/Runtime/rc/menu.xrc --- codelite-8.0.1+dfsg2/Runtime/rc/menu.xrc 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Runtime/rc/menu.xrc 2015-10-11 13:56:07.000000000 +0000 @@ -20,6 +20,10 @@ + + + + @@ -44,6 +48,13 @@ + + + + + + + @@ -260,26 +271,6 @@ 1 - - - - - - 1 - - - - 1 - - - - 1 - - - - 1 - - @@ -324,42 +315,92 @@ 1 - - - 1 - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + - - + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + @@ -368,13 +409,6 @@ - - - - - - - @@ -385,35 +419,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -435,15 +441,6 @@ - - - - - - - - - @@ -455,27 +452,17 @@ - - - Check project for missing and stale files - - - - - - - - - - Retag the workspace by dropping the old tags tables, and recreate them + + Reparse the workspace - + + Parse modified files only @@ -686,7 +673,7 @@ Help menu --> - + @@ -749,15 +736,6 @@ - - - - - - - - - @@ -775,10 +753,10 @@ - + - + @@ -1014,7 +992,7 @@ - + @@ -1098,6 +1076,10 @@ + + + + diff -Nru codelite-8.0.1+dfsg2/Runtime/templates/gizmos/CMakeLists.txt.plugin.wizard codelite-9.0+dfsg/Runtime/templates/gizmos/CMakeLists.txt.plugin.wizard --- codelite-8.0.1+dfsg2/Runtime/templates/gizmos/CMakeLists.txt.plugin.wizard 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Runtime/templates/gizmos/CMakeLists.txt.plugin.wizard 2015-10-11 13:56:07.000000000 +0000 @@ -40,11 +40,6 @@ add_definitions(-fPIC) endif() -# Add RPATH -if (UNIX) - set (LINKER_OPTIONS -Wl,-rpath,"${PLUGINS_DIR}") -endif (UNIX) - FILE(GLOB SRCS "*.cpp") # Define the output @@ -57,8 +52,6 @@ ${wxWidgets_LIBRARIES} libcodelite plugin - wxsqlite3 - sqlite3lib ) # Use CodeLite's macro: CL_INSTALL_PLUGIN which handles both OSX and Linux installation diff -Nru codelite-8.0.1+dfsg2/Runtime/templates/gizmos/plugin.cpp.wizard codelite-9.0+dfsg/Runtime/templates/gizmos/plugin.cpp.wizard --- codelite-8.0.1+dfsg2/Runtime/templates/gizmos/plugin.cpp.wizard 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Runtime/templates/gizmos/plugin.cpp.wizard 2015-10-11 13:56:07.000000000 +0000 @@ -17,7 +17,7 @@ PluginInfo info; info.SetAuthor(wxT("$(UserName)")); info.SetName(wxT("$(PluginShortName)")); - info.SetDescription(wxT("$(PluginLongName)")); + info.SetDescription(_("$(PluginLongName)")); info.SetVersion(wxT("v1.0")); return info; } @@ -30,7 +30,7 @@ $(PluginName)::$(PluginName)(IManager *manager) : IPlugin(manager) { - m_longName = wxT("$(PluginLongName)"); + m_longName = _("$(PluginLongName)"); m_shortName = wxT("$(PluginShortName)"); } diff -Nru codelite-8.0.1+dfsg2/Runtime/update64.bat codelite-9.0+dfsg/Runtime/update64.bat --- codelite-8.0.1+dfsg2/Runtime/update64.bat 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Runtime/update64.bat 2015-10-11 13:56:07.000000000 +0000 @@ -50,7 +50,7 @@ copy codelite-echo.exe "%TARGET_DIR%\CodeLite\" /Y copy ..\sdk\clang\lib\libclang64.dll "%TARGET_DIR%\CodeLite\libclang.dll" /Y copy ..\sdk\clang\lib\clang-format-64.exe "%TARGET_DIR%\CodeLite\codelite-clang-format.exe" /Y -copy ..\sdk\libssh\lib\libssh.dll "%TARGET_DIR%\CodeLite\" /Y +copy ..\sdk\libssh\lib\libssh64.dll "%TARGET_DIR%\CodeLite\" /Y copy makedir.exe "%TARGET_DIR%\CodeLite\" /Y copy le_exec.exe "%TARGET_DIR%\CodeLite\" /Y copy CodeLite.exe "%TARGET_DIR%\CodeLite\" /Y diff -Nru codelite-8.0.1+dfsg2/sdk/codelite_indexer/CMakeLists.txt codelite-9.0+dfsg/sdk/codelite_indexer/CMakeLists.txt --- codelite-8.0.1+dfsg2/sdk/codelite_indexer/CMakeLists.txt 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/sdk/codelite_indexer/CMakeLists.txt 2015-10-11 13:56:07.000000000 +0000 @@ -14,11 +14,6 @@ # Include paths #include_directories("${CL_SRC_ROOT}/Plugin" "${CL_SRC_ROOT}/sdk/wxsqlite3/include" "${CL_SRC_ROOT}/CodeLite" "${CL_SRC_ROOT}/PCH" "${CL_SRC_ROOT}/Interfaces") -# Add RPATH -if (UNIX) -set (LINKER_OPTIONS -Wl,-rpath,"${PLUGINS_DIR}") -endif (UNIX) - # we need wxWidgets flags to be set only for the c++ files, so we do it like this # by setting the CMAKE_CXX_FLAGS if ( NOT MINGW ) diff -Nru codelite-8.0.1+dfsg2/sdk/codelite_indexer/libctags/options.c codelite-9.0+dfsg/sdk/codelite_indexer/libctags/options.c --- codelite-8.0.1+dfsg2/sdk/codelite_indexer/libctags/options.c 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/sdk/codelite_indexer/libctags/options.c 2015-10-11 13:56:07.000000000 +0000 @@ -928,7 +928,6 @@ { printf ("%s %s, Copyright (C) 1996-2004 %s\n", PROGRAM_NAME, PROGRAM_VERSION, AUTHOR_NAME); - printf (" Compiled: %s, %s\n", __DATE__, __TIME__); printf (" Addresses: <%s>, %s\n", AUTHOR_EMAIL, PROGRAM_URL); printFeatureList (); } diff -Nru codelite-8.0.1+dfsg2/sdk/databaselayer/CMakeLists.txt codelite-9.0+dfsg/sdk/databaselayer/CMakeLists.txt --- codelite-8.0.1+dfsg2/sdk/databaselayer/CMakeLists.txt 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/sdk/databaselayer/CMakeLists.txt 2015-10-11 13:56:07.000000000 +0000 @@ -23,11 +23,6 @@ add_definitions(-DWXMAKINGDLL_DATABASELAYER) endif(WIN32) -# Add RPATH -if (UNIX) - set (LINKER_OPTIONS -Wl,-rpath,"${PLUGINS_DIR}") -endif (UNIX) - if (UNIX AND NOT APPLE) set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC" ) set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC" ) @@ -37,8 +32,11 @@ add_definitions(-fPIC) endif() - -FILE(GLOB SRCS "src/dblayer/Sqlite*.cpp" "src/dblayer/Database*.cpp" "src/dblayer/Prepared*.cpp" "src/sqlite3/*.c") +if(APPLE) + FILE(GLOB SRCS "src/dblayer/Sqlite*.cpp" "src/dblayer/Database*.cpp" "src/dblayer/Prepared*.cpp" "src/sqlite3/*.c") +else() + FILE(GLOB SRCS "src/dblayer/Sqlite*.cpp" "src/dblayer/Database*.cpp" "src/dblayer/Prepared*.cpp") +endif() if ( WITH_MYSQL ) find_library(LIBMYSQLCLIENT NAMES mysql mysqlclient mariadb mariadbclient) diff -Nru codelite-8.0.1+dfsg2/sdk/wxshapeframework/CMakeLists.txt codelite-9.0+dfsg/sdk/wxshapeframework/CMakeLists.txt --- codelite-8.0.1+dfsg2/sdk/wxshapeframework/CMakeLists.txt 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/sdk/wxshapeframework/CMakeLists.txt 2015-10-11 13:56:07.000000000 +0000 @@ -24,11 +24,6 @@ include_directories("${CL_SRC_ROOT}/sdk/wxshapeframework/include" "${CL_SRC_ROOT}/sdk/wxshapeframework/src") -# Add RPATH -if (UNIX) - set (LINKER_OPTIONS -Wl,-rpath,"${PLUGINS_DIR}") -endif (UNIX) - if (UNIX AND NOT APPLE) set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC" ) set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC" ) diff -Nru codelite-8.0.1+dfsg2/sdk/wxshapeframework/src/GridShape.cpp codelite-9.0+dfsg/sdk/wxshapeframework/src/GridShape.cpp --- codelite-8.0.1+dfsg2/sdk/wxshapeframework/src/GridShape.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/sdk/wxshapeframework/src/GridShape.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -168,7 +168,7 @@ wxSFShapeBase* wxSFGridShape::GetManagedShape(size_t index) { - if( (index >= 0) && (index < GetChildrenList().GetCount()) ) + if(index < GetChildrenList().GetCount()) { return (wxSFShapeBase*) GetChild( m_arrCells[index] ); } diff -Nru codelite-8.0.1+dfsg2/SFTP/CMakeLists.txt codelite-9.0+dfsg/SFTP/CMakeLists.txt --- codelite-8.0.1+dfsg2/SFTP/CMakeLists.txt 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/SFTP/CMakeLists.txt 2015-10-11 13:56:07.000000000 +0000 @@ -26,12 +26,6 @@ add_definitions(-Winvalid-pch) endif ( USE_PCH ) -# Add RPATH -if (UNIX) -set (LINKER_OPTIONS -Wl,-rpath,"${PLUGINS_DIR}") -endif (UNIX) - - if (UNIX AND NOT APPLE) set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC" ) set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC" ) @@ -54,8 +48,6 @@ ${wxWidgets_LIBRARIES} libcodelite plugin - wxsqlite3 - sqlite3lib ) # Installation destination CL_INSTALL_PLUGIN(${PLUGIN_NAME}) diff -Nru codelite-8.0.1+dfsg2/SFTP/sftp.cpp codelite-9.0+dfsg/SFTP/sftp.cpp --- codelite-8.0.1+dfsg2/SFTP/sftp.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/SFTP/sftp.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -41,6 +41,7 @@ #include #include "sftp_settings.h" #include "SFTPSettingsDialog.h" +#include "fileutils.h" static SFTP* thePlugin = NULL; const wxEventType wxEVT_SFTP_OPEN_SSH_ACCOUNT_MANAGER = ::wxNewEventType(); @@ -60,10 +61,6 @@ // remote_file : "/path/to/remote/file", // } -// Event type: clCommandEvent -// Request SFTP to save a file remotely (see above for more details) -const wxEventType wxEVT_SFTP_SAVE_FILE = XRCID("wxEVT_SFTP_SAVE_FILE"); - // Define the plugin entry point extern "C" EXPORT IPlugin* CreatePlugin(IManager* manager) { @@ -78,7 +75,7 @@ PluginInfo info; info.SetAuthor(wxT("Eran Ifrah")); info.SetName(wxT("SFTP")); - info.SetDescription(wxT("SFTP plugin for codelite IDE")); + info.SetDescription(_("SFTP plugin for codelite IDE")); info.SetVersion(wxT("v1.0")); return info; } @@ -88,7 +85,7 @@ SFTP::SFTP(IManager* manager) : IPlugin(manager) { - m_longName = wxT("SFTP plugin for codelite IDE"); + m_longName = _("SFTP plugin for codelite IDE"); m_shortName = wxT("SFTP"); wxTheApp->Connect( @@ -113,18 +110,21 @@ EventNotifier::Get()->Connect(wxEVT_WORKSPACE_LOADED, wxCommandEventHandler(SFTP::OnWorkspaceOpened), NULL, this); EventNotifier::Get()->Connect(wxEVT_WORKSPACE_CLOSED, wxCommandEventHandler(SFTP::OnWorkspaceClosed), NULL, this); EventNotifier::Get()->Connect(wxEVT_FILE_SAVED, clCommandEventHandler(SFTP::OnFileSaved), NULL, this); + EventNotifier::Get()->Bind(wxEVT_FILES_MODIFIED_REPLACE_IN_FILES, &SFTP::OnReplaceInFiles, this); EventNotifier::Get()->Connect(wxEVT_EDITOR_CLOSING, wxCommandEventHandler(SFTP::OnEditorClosed), NULL, this); // API support - EventNotifier::Get()->Connect(wxEVT_SFTP_SAVE_FILE, clCommandEventHandler(SFTP::OnSaveFile), NULL, this); - + EventNotifier::Get()->Bind(wxEVT_SFTP_SAVE_FILE, &SFTP::OnSaveFile, this); + EventNotifier::Get()->Bind(wxEVT_SHOW_WORKSPACE_TAB, &SFTP::OnToggleTab, this); + SFTPImages images; m_outputPane = new SFTPStatusPage(m_mgr->GetOutputPaneNotebook(), this); - m_mgr->GetOutputPaneNotebook()->AddPage(m_outputPane, "SFTP", false, images.Bitmap("sftp_tab")); + m_mgr->GetOutputPaneNotebook()->AddPage(m_outputPane, _("SFTP"), false, images.Bitmap("sftp_tab")); m_treeView = new SFTPTreeView(m_mgr->GetWorkspacePaneNotebook(), this); - m_mgr->GetWorkspacePaneNotebook()->AddPage(m_treeView, "SFTP", false); - + m_mgr->GetWorkspacePaneNotebook()->AddPage(m_treeView, _("SFTP"), false); + m_mgr->AddWorkspaceTab(_("SFTP")); + SFTPWorkerThread::Instance()->SetNotifyWindow(m_outputPane); SFTPWorkerThread::Instance()->SetSftpPlugin(this); SFTPWorkerThread::Instance()->Start(); @@ -137,6 +137,25 @@ SFTP::~SFTP() {} +void SFTP::OnToggleTab(clCommandEvent& event) +{ + if(event.GetString() != _("SFTP")) { + event.Skip(); + return; + } + + if(event.IsSelected()) { + // show it + m_mgr->GetWorkspacePaneNotebook()->InsertPage(0, m_treeView, _("SFTP"), true); + } else { + int where = m_mgr->GetWorkspacePaneNotebook()->GetPageIndex(_("SFTP")); + if(where != wxNOT_FOUND) { + m_mgr->GetWorkspacePaneNotebook()->RemovePage(where); + } + } +} + + clToolBar* SFTP::CreateToolBar(wxWindow* parent) { // Create the toolbar to be used by the plugin @@ -195,19 +214,19 @@ for(size_t i = 0; i < m_mgr->GetOutputPaneNotebook()->GetPageCount(); ++i) { if(m_outputPane == m_mgr->GetOutputPaneNotebook()->GetPage(i)) { m_mgr->GetOutputPaneNotebook()->RemovePage(i); - m_outputPane->Destroy(); break; } } + m_outputPane->Destroy(); for(size_t i = 0; i < m_mgr->GetWorkspacePaneNotebook()->GetPageCount(); ++i) { if(m_treeView == m_mgr->GetWorkspacePaneNotebook()->GetPage(i)) { m_mgr->GetWorkspacePaneNotebook()->RemovePage(i); - m_treeView->Destroy(); break; } } - + m_treeView->Destroy(); + SFTPWorkerThread::Release(); wxTheApp->Disconnect( wxEVT_SFTP_OPEN_SSH_ACCOUNT_MANAGER, wxEVT_MENU, wxCommandEventHandler(SFTP::OnAccountManager), NULL, this); @@ -235,7 +254,9 @@ EventNotifier::Get()->Disconnect(wxEVT_FILE_SAVED, clCommandEventHandler(SFTP::OnFileSaved), NULL, this); EventNotifier::Get()->Disconnect(wxEVT_EDITOR_CLOSING, wxCommandEventHandler(SFTP::OnEditorClosed), NULL, this); - EventNotifier::Get()->Disconnect(wxEVT_SFTP_SAVE_FILE, clCommandEventHandler(SFTP::OnSaveFile), NULL, this); + EventNotifier::Get()->Unbind(wxEVT_SFTP_SAVE_FILE, &SFTP::OnSaveFile, this); + EventNotifier::Get()->Unbind(wxEVT_FILES_MODIFIED_REPLACE_IN_FILES, &SFTP::OnReplaceInFiles, this); + EventNotifier::Get()->Unbind(wxEVT_SHOW_WORKSPACE_TAB, &SFTP::OnToggleTab, this); } void SFTP::OnAccountManager(wxCommandEvent& e) @@ -285,51 +306,7 @@ // -------------------------------------- wxString local_file = e.GetString(); local_file.Trim().Trim(false); - - if(local_file.IsEmpty()) return; - - // Check to see if this file is part of a remote files managed by our plugin - if(m_remoteFiles.count(local_file)) { - // ---------------------------------------------------------------------------------------------- - // this file was opened by the SFTP explorer - // ---------------------------------------------------------------------------------------------- - DoSaveRemoteFile(m_remoteFiles.find(local_file)->second); - - } else { - // ---------------------------------------------------------------------------------------------- - // Not a remote file, see if have a sychronization setup between this workspace and a remote one - // ---------------------------------------------------------------------------------------------- - - // check if we got a workspace file opened - if(!m_workspaceFile.IsOk()) return; - - // check if mirroring is setup for this workspace - if(!m_workspaceSettings.IsOk()) return; - - wxFileName file(local_file); - file.MakeRelativeTo(m_workspaceFile.GetPath()); - file.MakeAbsolute(wxFileName(m_workspaceSettings.GetRemoteWorkspacePath(), wxPATH_UNIX).GetPath()); - wxString remoteFile = file.GetFullPath(wxPATH_UNIX); - - SFTPSettings settings; - settings.Load(); - - SSHAccountInfo account; - if(settings.GetAccount(m_workspaceSettings.GetAccount(), account)) { - SFTPWorkerThread::Instance()->Add(new SFTPThreadRequet(account, remoteFile, local_file)); - - } else { - - wxString msg; - msg << _("Failed to synchronize file '") << local_file << "'\n" << _("with remote server\n") - << _("Could not locate account: ") << m_workspaceSettings.GetAccount(); - ::wxMessageBox(msg, "SFTP", wxOK | wxICON_ERROR); - - // Disable the workspace mirroring for this workspace - m_workspaceSettings.Clear(); - SFTPWorkspaceSettings::Save(m_workspaceSettings, m_workspaceFile); - } - } + DoFileSaved(local_file); } void SFTP::OnFileWriteOK(const wxString& message) { wxLogMessage(message); } @@ -347,33 +324,14 @@ e.Enable(m_workspaceFile.IsOk() && m_workspaceSettings.IsOk()); } -void SFTP::OnSaveFile(clCommandEvent& e) +void SFTP::OnSaveFile(clSFTPEvent& e) { - // { - // account : "account-name-to-use", - // local_file : "/path/to/local/file", - // remote_file : "/path/to/remote/file", - // } - - wxString requestString = e.GetString(); - // ignore files which are located under our special tmporary folder - wxFileName fnFileName(requestString); - if(fnFileName.GetPath().Contains(RemoteFileInfo::GetTempFolder())) return; - - JSONRoot root(requestString); - JSONElement element = root.toElement(); - if(!element.hasNamedObject("account") || !element.hasNamedObject("local_file") || - !element.hasNamedObject("remote_file")) { - wxLogMessage(wxString() << "SFTP: Invalid save request"); - return; - } - SFTPSettings settings; settings.Load(); - wxString accName = element.namedObject("account").toString(); - wxString localFile = element.namedObject("local_file").toString(); - wxString remoteFile = element.namedObject("remote_file").toString(); + wxString accName = e.GetAccount(); + wxString localFile = e.GetLocalFile(); + wxString remoteFile = e.GetRemoteFile(); SSHAccountInfo account; if(settings.GetAccount(accName, account)) { @@ -383,7 +341,7 @@ wxString msg; msg << _("Failed to synchronize file '") << localFile << "'\n" << _("with remote server\n") << _("Could not locate account: ") << accName; - ::wxMessageBox(msg, "SFTP", wxOK | wxICON_ERROR); + ::wxMessageBox(msg, _("SFTP"), wxOK | wxICON_ERROR); } } @@ -394,6 +352,7 @@ } void SFTP::FileDownloadedSuccessfully(const wxString& localFileName) { m_mgr->OpenFile(localFileName); } +void SFTP::OpenWithDefaultApp(const wxString& localFileName) { ::wxLaunchDefaultApplication(localFileName); } void SFTP::AddRemoteFile(const RemoteFileInfo& remoteFile) { @@ -439,11 +398,64 @@ { // Show the SFTP settings dialog SFTPSettingsDialog dlg(EventNotifier::Get()->TopFrame()); - if(dlg.ShowModal() == wxID_OK) { - // Save the data + dlg.ShowModal(); +} + +void SFTP::DoFileSaved(const wxString& filename) +{ + if(filename.IsEmpty()) return; + + // Check to see if this file is part of a remote files managed by our plugin + if(m_remoteFiles.count(filename)) { + // ---------------------------------------------------------------------------------------------- + // this file was opened by the SFTP explorer + // ---------------------------------------------------------------------------------------------- + DoSaveRemoteFile(m_remoteFiles.find(filename)->second); + + } else { + // ---------------------------------------------------------------------------------------------- + // Not a remote file, see if have a sychronization setup between this workspace and a remote one + // ---------------------------------------------------------------------------------------------- + + // check if we got a workspace file opened + if(!m_workspaceFile.IsOk()) return; + + // check if mirroring is setup for this workspace + if(!m_workspaceSettings.IsOk()) return; + + wxFileName file(filename); + file.MakeRelativeTo(m_workspaceFile.GetPath()); + file.MakeAbsolute(wxFileName(m_workspaceSettings.GetRemoteWorkspacePath(), wxPATH_UNIX).GetPath()); + wxString remoteFile = file.GetFullPath(wxPATH_UNIX); + SFTPSettings settings; settings.Load(); - settings.SetSshClient(dlg.GetSshClientPath()->GetPath()); - settings.Save(); + + SSHAccountInfo account; + if(settings.GetAccount(m_workspaceSettings.GetAccount(), account)) { + SFTPWorkerThread::Instance()->Add(new SFTPThreadRequet(account, remoteFile, filename)); + + } else { + + wxString msg; + msg << _("Failed to synchronize file '") << filename << "'\n" << _("with remote server\n") + << _("Could not locate account: ") << m_workspaceSettings.GetAccount(); + ::wxMessageBox(msg, _("SFTP"), wxOK | wxICON_ERROR); + + // Disable the workspace mirroring for this workspace + m_workspaceSettings.Clear(); + SFTPWorkspaceSettings::Save(m_workspaceSettings, m_workspaceFile); + } } } + +void SFTP::OnReplaceInFiles(clFileSystemEvent& e) +{ + e.Skip(); + const wxArrayString& files = e.GetStrings(); + for(size_t i = 0; i < files.size(); ++i) { + DoFileSaved(files.Item(i)); + } +} + +void SFTP::OpenContainingFolder(const wxString& localFileName) { FileUtils::OpenFileExplorerAndSelect(localFileName); } diff -Nru codelite-8.0.1+dfsg2/SFTP/sftp.h codelite-9.0+dfsg/SFTP/sftp.h --- codelite-8.0.1+dfsg2/SFTP/sftp.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/SFTP/sftp.h 2015-10-11 13:56:07.000000000 +0000 @@ -31,61 +31,65 @@ #include "cl_command_event.h" #include "macros.h" #include "remote_file_info.h" +#include "clFileSystemEvent.h" +#include "clSFTPEvent.h" class SFTPStatusPage; class SFTPTreeView; class SFTP : public IPlugin { - wxFileName m_workspaceFile; + wxFileName m_workspaceFile; SFTPWorkspaceSettings m_workspaceSettings; - SFTPStatusPage* m_outputPane; - SFTPTreeView* m_treeView; + SFTPStatusPage* m_outputPane; + SFTPTreeView* m_treeView; RemoteFileInfo::Map_t m_remoteFiles; - + public: - SFTP(IManager *manager); + SFTP(IManager* manager); ~SFTP(); - - void FileDownloadedSuccessfully( const wxString &localFileName ); + + void FileDownloadedSuccessfully(const wxString& localFileName); + void OpenWithDefaultApp(const wxString& localFileName); + void OpenContainingFolder(const wxString& localFileName); void AddRemoteFile(const RemoteFileInfo& remoteFile); - + protected: - void OnAccountManager(wxCommandEvent &e); - void OnSettings(wxCommandEvent &e); - void OnSetupWorkspaceMirroring(wxCommandEvent &e); - void OnDisableWorkspaceMirroring(wxCommandEvent &e); - void OnDisableWorkspaceMirroringUI(wxUpdateUIEvent &e); - void OnWorkspaceOpened(wxCommandEvent &e); - void OnWorkspaceClosed(wxCommandEvent &e); - void OnFileSaved(clCommandEvent &e); - void OnEditorClosed(wxCommandEvent &e); + void OnToggleTab(clCommandEvent& event); + void OnReplaceInFiles(clFileSystemEvent& e); + void OnAccountManager(wxCommandEvent& e); + void OnSettings(wxCommandEvent& e); + void OnSetupWorkspaceMirroring(wxCommandEvent& e); + void OnDisableWorkspaceMirroring(wxCommandEvent& e); + void OnDisableWorkspaceMirroringUI(wxUpdateUIEvent& e); + void OnWorkspaceOpened(wxCommandEvent& e); + void OnWorkspaceClosed(wxCommandEvent& e); + void OnFileSaved(clCommandEvent& e); + void OnEditorClosed(wxCommandEvent& e); void MSWInitiateConnection(); - - bool IsWorkspaceOpened() const { - return m_workspaceFile.IsOk(); - } + + void DoFileSaved(const wxString& filename); + + bool IsWorkspaceOpened() const { return m_workspaceFile.IsOk(); } void DoSaveRemoteFile(const RemoteFileInfo& remoteFile); - + // API calls - void OnSaveFile(clCommandEvent &e); - + void OnSaveFile(clSFTPEvent& e); + public: //-------------------------------------------- - //Abstract methods + // Abstract methods //-------------------------------------------- - virtual clToolBar *CreateToolBar(wxWindow *parent); - virtual void CreatePluginMenu(wxMenu *pluginsMenu); - virtual void HookPopupMenu(wxMenu *menu, MenuType type); - virtual void UnHookPopupMenu(wxMenu *menu, MenuType type); + virtual clToolBar* CreateToolBar(wxWindow* parent); + virtual void CreatePluginMenu(wxMenu* pluginsMenu); + virtual void HookPopupMenu(wxMenu* menu, MenuType type); + virtual void UnHookPopupMenu(wxMenu* menu, MenuType type); virtual void UnPlug(); - IManager *GetManager() { - return m_mgr; - } - + IManager* GetManager() { return m_mgr; } + // Callbacks - void OnFileWriteOK(const wxString &message); - void OnFileWriteError(const wxString &errorMessage); + void OnFileWriteOK(const wxString& message); + void OnFileWriteError(const wxString& errorMessage); }; -#endif //SFTP +#endif // SFTP diff -Nru codelite-8.0.1+dfsg2/SFTP/SFTP.project codelite-9.0+dfsg/SFTP/SFTP.project --- codelite-8.0.1+dfsg2/SFTP/SFTP.project 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/SFTP/SFTP.project 2015-10-11 13:56:07.000000000 +0000 @@ -53,6 +53,8 @@ + + diff -Nru codelite-8.0.1+dfsg2/SFTP/SFTPSettingsDialog.cpp codelite-9.0+dfsg/SFTP/SFTPSettingsDialog.cpp --- codelite-8.0.1+dfsg2/SFTP/SFTPSettingsDialog.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/SFTP/SFTPSettingsDialog.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -13,7 +13,14 @@ m_sshClientPath->SetPath(s.GetSshClient()); } -SFTPSettingsDialog::~SFTPSettingsDialog() +SFTPSettingsDialog::~SFTPSettingsDialog() {} + +void SFTPSettingsDialog::OnOK(wxCommandEvent& event) { - + // Save the data + SFTPSettings settings; + settings.Load(); + settings.SetSshClient(GetSshClientPath()->GetPath()); + settings.Save(); + event.Skip(); } diff -Nru codelite-8.0.1+dfsg2/SFTP/SFTPSettingsDialog.h codelite-9.0+dfsg/SFTP/SFTPSettingsDialog.h --- codelite-8.0.1+dfsg2/SFTP/SFTPSettingsDialog.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/SFTP/SFTPSettingsDialog.h 2015-10-11 13:56:07.000000000 +0000 @@ -7,5 +7,7 @@ public: SFTPSettingsDialog(wxWindow* parent); virtual ~SFTPSettingsDialog(); +protected: + virtual void OnOK(wxCommandEvent& event); }; #endif // SFTPSETTINGSDIALOG_H diff -Nru codelite-8.0.1+dfsg2/SFTP/SFTPTreeView.cpp codelite-9.0+dfsg/SFTP/SFTPTreeView.cpp --- codelite-8.0.1+dfsg2/SFTP/SFTPTreeView.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/SFTP/SFTPTreeView.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -45,6 +45,9 @@ #include "globals.h" #include "fileutils.h" #include "cl_config.h" +#include "SFTPSettingsDialog.h" +#include "clFileOrFolderDropTarget.h" +#include "SFTPUploadDialog.h" static const int ID_NEW = ::wxNewId(); static const int ID_RENAME = ::wxNewId(); @@ -55,6 +58,8 @@ static const int ID_EXECUTE_COMMAND = ::wxNewId(); static const int ID_SHOW_SIZE_COL = ::wxNewId(); static const int ID_SHOW_TYPE_COL = ::wxNewId(); +static const int ID_OPEN_WITH_DEFAULT_APP = ::wxNewId(); +static const int ID_OPEN_CONTAINING_FOLDER = ::wxNewId(); SFTPTreeView::SFTPTreeView(wxWindow* parent, SFTP* plugin) : SFTPTreeViewBase(parent) @@ -80,72 +85,63 @@ m_treeListCtrl->GetDataView()->SetIndent(16); #endif m_treeListCtrl->SetItemComparator(new SFTPItemComparator); - m_treeListCtrl->Connect( - ID_OPEN, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(SFTPTreeView::OnMenuOpen), NULL, this); - m_treeListCtrl->Connect( - ID_DELETE, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(SFTPTreeView::OnMenuDelete), NULL, this); - m_treeListCtrl->Connect( - ID_NEW, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(SFTPTreeView::OnMenuNew), NULL, this); - m_treeListCtrl->Connect( - ID_RENAME, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(SFTPTreeView::OnMenuRename), NULL, this); - m_treeListCtrl->Connect( - ID_NEW_FILE, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(SFTPTreeView::OnMenuNewFile), NULL, this); - m_treeListCtrl->Connect(ID_REFRESH_FOLDER, - wxEVT_COMMAND_MENU_SELECTED, - wxCommandEventHandler(SFTPTreeView::OnMenuRefreshFolder), + m_treeListCtrl->Connect(ID_OPEN, wxEVT_MENU, wxCommandEventHandler(SFTPTreeView::OnMenuOpen), NULL, this); + m_treeListCtrl->Connect(ID_OPEN_WITH_DEFAULT_APP, + wxEVT_MENU, + wxCommandEventHandler(SFTPTreeView::OnMenuOpenWithDefaultApplication), + NULL, + this); + m_treeListCtrl->Connect(ID_OPEN_CONTAINING_FOLDER, + wxEVT_MENU, + wxCommandEventHandler(SFTPTreeView::OnMenuOpenContainingFolder), NULL, this); - m_treeListCtrl->Bind(wxEVT_MENU, &SFTPTreeView::OnShowTypeCol, this, ID_SHOW_TYPE_COL); - m_treeListCtrl->Bind(wxEVT_MENU, &SFTPTreeView::OnShowSizeCol, this, ID_SHOW_SIZE_COL); + m_treeListCtrl->Connect(ID_DELETE, wxEVT_MENU, wxCommandEventHandler(SFTPTreeView::OnMenuDelete), NULL, this); + m_treeListCtrl->Connect(ID_NEW, wxEVT_MENU, wxCommandEventHandler(SFTPTreeView::OnMenuNew), NULL, this); + m_treeListCtrl->Connect(ID_RENAME, wxEVT_MENU, wxCommandEventHandler(SFTPTreeView::OnMenuRename), NULL, this); + m_treeListCtrl->Connect(ID_NEW_FILE, wxEVT_MENU, wxCommandEventHandler(SFTPTreeView::OnMenuNewFile), NULL, this); + m_treeListCtrl->Connect( + ID_REFRESH_FOLDER, wxEVT_MENU, wxCommandEventHandler(SFTPTreeView::OnMenuRefreshFolder), NULL, this); - wxTheApp->GetTopWindow()->Bind(wxEVT_COMMAND_MENU_SELECTED, &SFTPTreeView::OnCopy, this, wxID_COPY); - wxTheApp->GetTopWindow()->Bind(wxEVT_COMMAND_MENU_SELECTED, &SFTPTreeView::OnCut, this, wxID_CUT); - wxTheApp->GetTopWindow()->Bind(wxEVT_COMMAND_MENU_SELECTED, &SFTPTreeView::OnPaste, this, wxID_PASTE); - wxTheApp->GetTopWindow()->Bind(wxEVT_COMMAND_MENU_SELECTED, &SFTPTreeView::OnSelectAll, this, wxID_SELECTALL); - wxTheApp->GetTopWindow()->Bind(wxEVT_COMMAND_MENU_SELECTED, &SFTPTreeView::OnUndo, this, wxID_UNDO); - wxTheApp->GetTopWindow()->Bind(wxEVT_COMMAND_MENU_SELECTED, &SFTPTreeView::OnRedo, this, wxID_REDO); - - bool sizeColVisible = clConfig::Get().Read("SFTP/TreeView/ShowSizeCol", true); - bool typeColVisible = clConfig::Get().Read("SFTP/TreeView/ShowTypeCol", true); - - if(!sizeColVisible) { - m_treeListCtrl->DeleteColumn(GetSizeColumnIndex()); - } - - if(!typeColVisible) { - m_treeListCtrl->DeleteColumn(GetTypeColumnIndex()); - } + wxTheApp->GetTopWindow()->Bind(wxEVT_MENU, &SFTPTreeView::OnCopy, this, wxID_COPY); + wxTheApp->GetTopWindow()->Bind(wxEVT_MENU, &SFTPTreeView::OnCut, this, wxID_CUT); + wxTheApp->GetTopWindow()->Bind(wxEVT_MENU, &SFTPTreeView::OnPaste, this, wxID_PASTE); + wxTheApp->GetTopWindow()->Bind(wxEVT_MENU, &SFTPTreeView::OnSelectAll, this, wxID_SELECTALL); + wxTheApp->GetTopWindow()->Bind(wxEVT_MENU, &SFTPTreeView::OnUndo, this, wxID_UNDO); + wxTheApp->GetTopWindow()->Bind(wxEVT_MENU, &SFTPTreeView::OnRedo, this, wxID_REDO); + + m_treeListCtrl->SetDropTarget(new clFileOrFolderDropTarget(this)); + Bind(wxEVT_DND_FILE_DROPPED, &SFTPTreeView::OnFileDropped, this); } SFTPTreeView::~SFTPTreeView() { - // Store the columns size - clConfig::Get().Write("SFTP/TreeView/ShowSizeCol", IsSizeColumnShown()); - clConfig::Get().Write("SFTP/TreeView/ShowTypeCol", IsTypeColumnShown()); - - wxTheApp->GetTopWindow()->Unbind(wxEVT_COMMAND_MENU_SELECTED, &SFTPTreeView::OnCopy, this, wxID_COPY); - wxTheApp->GetTopWindow()->Unbind(wxEVT_COMMAND_MENU_SELECTED, &SFTPTreeView::OnCut, this, wxID_CUT); - wxTheApp->GetTopWindow()->Unbind(wxEVT_COMMAND_MENU_SELECTED, &SFTPTreeView::OnPaste, this, wxID_PASTE); - wxTheApp->GetTopWindow()->Unbind(wxEVT_COMMAND_MENU_SELECTED, &SFTPTreeView::OnSelectAll, this, wxID_SELECTALL); - wxTheApp->GetTopWindow()->Unbind(wxEVT_COMMAND_MENU_SELECTED, &SFTPTreeView::OnUndo, this, wxID_UNDO); - wxTheApp->GetTopWindow()->Unbind(wxEVT_COMMAND_MENU_SELECTED, &SFTPTreeView::OnRedo, this, wxID_REDO); - m_treeListCtrl->Unbind(wxEVT_MENU, &SFTPTreeView::OnShowTypeCol, this, ID_SHOW_TYPE_COL); - m_treeListCtrl->Unbind(wxEVT_MENU, &SFTPTreeView::OnShowSizeCol, this, ID_SHOW_SIZE_COL); - m_treeListCtrl->Disconnect( - ID_OPEN, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(SFTPTreeView::OnMenuOpen), NULL, this); - m_treeListCtrl->Disconnect( - ID_DELETE, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(SFTPTreeView::OnMenuDelete), NULL, this); - m_treeListCtrl->Disconnect( - ID_NEW, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(SFTPTreeView::OnMenuNew), NULL, this); - m_treeListCtrl->Disconnect( - ID_RENAME, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(SFTPTreeView::OnMenuRename), NULL, this); - m_treeListCtrl->Disconnect( - ID_NEW_FILE, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(SFTPTreeView::OnMenuNewFile), NULL, this); - m_treeListCtrl->Disconnect(ID_REFRESH_FOLDER, - wxEVT_COMMAND_MENU_SELECTED, - wxCommandEventHandler(SFTPTreeView::OnMenuRefreshFolder), + wxTheApp->GetTopWindow()->Unbind(wxEVT_MENU, &SFTPTreeView::OnCopy, this, wxID_COPY); + wxTheApp->GetTopWindow()->Unbind(wxEVT_MENU, &SFTPTreeView::OnCut, this, wxID_CUT); + wxTheApp->GetTopWindow()->Unbind(wxEVT_MENU, &SFTPTreeView::OnPaste, this, wxID_PASTE); + wxTheApp->GetTopWindow()->Unbind(wxEVT_MENU, &SFTPTreeView::OnSelectAll, this, wxID_SELECTALL); + wxTheApp->GetTopWindow()->Unbind(wxEVT_MENU, &SFTPTreeView::OnUndo, this, wxID_UNDO); + wxTheApp->GetTopWindow()->Unbind(wxEVT_MENU, &SFTPTreeView::OnRedo, this, wxID_REDO); + + m_treeListCtrl->Disconnect(ID_OPEN, wxEVT_MENU, wxCommandEventHandler(SFTPTreeView::OnMenuOpen), NULL, this); + m_treeListCtrl->Disconnect(ID_OPEN_WITH_DEFAULT_APP, + wxEVT_MENU, + wxCommandEventHandler(SFTPTreeView::OnMenuOpenWithDefaultApplication), NULL, this); + m_treeListCtrl->Disconnect(ID_OPEN_CONTAINING_FOLDER, + wxEVT_MENU, + wxCommandEventHandler(SFTPTreeView::OnMenuOpenContainingFolder), + NULL, + this); + + m_treeListCtrl->Disconnect(ID_DELETE, wxEVT_MENU, wxCommandEventHandler(SFTPTreeView::OnMenuDelete), NULL, this); + m_treeListCtrl->Disconnect(ID_NEW, wxEVT_MENU, wxCommandEventHandler(SFTPTreeView::OnMenuNew), NULL, this); + m_treeListCtrl->Disconnect(ID_RENAME, wxEVT_MENU, wxCommandEventHandler(SFTPTreeView::OnMenuRename), NULL, this); + m_treeListCtrl->Disconnect(ID_NEW_FILE, wxEVT_MENU, wxCommandEventHandler(SFTPTreeView::OnMenuNewFile), NULL, this); + m_treeListCtrl->Disconnect( + ID_REFRESH_FOLDER, wxEVT_MENU, wxCommandEventHandler(SFTPTreeView::OnMenuRefreshFolder), NULL, this); + Unbind(wxEVT_DND_FILE_DROPPED, &SFTPTreeView::OnFileDropped, this); } void SFTPTreeView::OnDisconnect(wxCommandEvent& event) { DoCloseSession(); } @@ -299,14 +295,6 @@ childClientData->SetIsFolder(attr->IsFolder()); wxTreeListItem child = m_treeListCtrl->AppendItem(item, attr->GetName(), imgIdx, imgIdx, childClientData); - if(IsTypeColumnShown()) { - m_treeListCtrl->SetItemText(child, GetTypeColumnIndex(), attr->GetTypeAsString()); - } - - if(IsSizeColumnShown()) { - m_treeListCtrl->SetItemText(child, GetSizeColumnIndex(), wxString() << attr->GetSize()); - } - // if its type folder, add a fake child item if(attr->IsFolder()) { m_treeListCtrl->AppendItem(child, ""); @@ -352,6 +340,9 @@ m_treeListCtrl->Select(event.GetItem()); if(!cd->IsFolder()) { menu.Append(ID_OPEN, _("Open")); + menu.Append(ID_OPEN_WITH_DEFAULT_APP, _("Open with Default Application...")); + menu.AppendSeparator(); + menu.Append(ID_OPEN_CONTAINING_FOLDER, _("Download and Open Containing Folder...")); menu.AppendSeparator(); } else { @@ -369,25 +360,6 @@ menu.Append(ID_RENAME, _("Rename")); } - -#if defined(__WXMSW__) || defined(__WXOSX__) - if(cd) { - menu.AppendSeparator(); - } - - // Append headers column menu items - menu.Append(ID_SHOW_TYPE_COL, _("Show 'Type' column"), "", wxITEM_CHECK); - menu.Append(ID_SHOW_SIZE_COL, _("Show 'Size' column"), "", wxITEM_CHECK); - - menu.Check(ID_SHOW_TYPE_COL, IsTypeColumnShown()); - menu.Check(ID_SHOW_SIZE_COL, IsSizeColumnShown()); - - // Due to bug in wxWidgets, don't allow the user to remove columns once the - // tree is populated - menu.Enable(ID_SHOW_TYPE_COL, !IsConnected()); - menu.Enable(ID_SHOW_SIZE_COL, !IsConnected()); -#endif - m_treeListCtrl->PopupMenu(&menu); } @@ -540,12 +512,6 @@ wxNOT_FOUND, newFile); - if(IsTypeColumnShown()) { - m_treeListCtrl->SetItemText(child, GetTypeColumnIndex(), attr->GetTypeAsString()); - } - if(IsSizeColumnShown()) { - m_treeListCtrl->SetItemText(child, GetSizeColumnIndex(), wxString() << attr->GetSize()); - } m_treeListCtrl->SetSortColumn(0); return child; @@ -568,12 +534,6 @@ wxTreeListItem child = m_treeListCtrl->AppendItem( parent, newCd->GetFullName(), m_bmpLoader.GetMimeImageId(FileExtManager::TypeFolder), wxNOT_FOUND, newCd); - if(IsTypeColumnShown()) { - m_treeListCtrl->SetItemText(child, GetTypeColumnIndex(), attr->GetTypeAsString()); - } - if(IsSizeColumnShown()) { - m_treeListCtrl->SetItemText(child, GetSizeColumnIndex(), wxString() << attr->GetSize()); - } m_treeListCtrl->AppendItem(child, ""); m_treeListCtrl->SetSortColumn(0); return child; @@ -844,28 +804,34 @@ } } -void SFTPTreeView::OnOpenTerminal(wxCommandEvent& event) +void SFTPTreeView::OnOpenTerminal(wxAuiToolBarEvent& event) { // Open terminal to the selected account - SFTPSettings settings; - settings.Load(); + if(event.IsDropDownClicked()) { + SFTPTreeViewBase::ShowAuiToolMenu(event); - wxString accountName = m_choiceAccount->GetStringSelection(); - if(accountName.IsEmpty()) { - return; - } + } else { + SFTPSettings settings; + settings.Load(); - SSHAccountInfo account; - if(!settings.GetAccount(accountName, account)) { - ::wxMessageBox(wxString() << _("Could not find account: ") << accountName, "codelite", wxICON_ERROR | wxOK); - return; - } + wxString accountName = m_choiceAccount->GetStringSelection(); + if(accountName.IsEmpty()) { + ::wxMessageBox(_("Please select an account to connect to"), "CodeLite", wxICON_ERROR | wxOK); + return; + } + + SSHAccountInfo account; + if(!settings.GetAccount(accountName, account)) { + ::wxMessageBox(wxString() << _("Could not find account: ") << accountName, "CodeLite", wxICON_ERROR | wxOK); + return; + } - wxString connectString; - connectString << account.GetUsername() << "@" << account.GetHost(); + wxString connectString; + connectString << account.GetUsername() << "@" << account.GetHost(); - const wxString& sshClient = settings.GetSshClient(); - FileUtils::OpenSSHTerminal(sshClient, connectString, account.GetPassword(), account.GetPort()); + const wxString& sshClient = settings.GetSshClient(); + FileUtils::OpenSSHTerminal(sshClient, connectString, account.GetPassword(), account.GetPort()); + } } void SFTPTreeView::OnOpenTerminalUI(wxUpdateUIEvent& event) { event.Enable(true); } @@ -888,59 +854,89 @@ return true; } -void SFTPTreeView::OnShowSizeCol(wxCommandEvent& event) +void SFTPTreeView::DoDeleteColumn(int colIdx) { m_treeListCtrl->DeleteColumn(colIdx); } + +void SFTPTreeView::OnSftpSettings(wxCommandEvent& event) { - if(event.IsChecked()) { - // Append the column - m_treeListCtrl->AppendColumn(_("Size"), 75); - } else { - if(IsSizeColumnShown()) { - CallAfter(&SFTPTreeView::DoDeleteColumn, GetSizeColumnIndex()); - } - } + // Show the SFTP settings dialog + SFTPSettingsDialog dlg(EventNotifier::Get()->TopFrame()); + dlg.ShowModal(); } -void SFTPTreeView::OnShowTypeCol(wxCommandEvent& event) +void SFTPTreeView::OnMenuOpenWithDefaultApplication(wxCommandEvent& event) { - if(event.IsChecked()) { - // Append the column - m_treeListCtrl->AppendColumn(_("Type"), 75); - } else { - if(IsTypeColumnShown()) { - CallAfter(&SFTPTreeView::DoDeleteColumn, GetTypeColumnIndex()); + wxTreeListItems items; + m_treeListCtrl->GetSelections(items); + if(items.empty()) return; + + for(size_t i = 0; i < items.size(); ++i) { + MyClientData* cd = GetItemData(items.at(i)); + if(!cd || cd->IsFolder()) { + continue; } + + RemoteFileInfo remoteFile; + remoteFile.SetAccount(m_account); + remoteFile.SetRemoteFile(cd->GetFullPath()); + + SFTPThreadRequet* req = new SFTPThreadRequet(remoteFile); + req->SetDirection(SFTPThreadRequet::kDownloadAndOpenWithDefaultApp); + SFTPWorkerThread::Instance()->Add(req); } } -int SFTPTreeView::GetSizeColumnIndex() const +void SFTPTreeView::OnMenuOpenContainingFolder(wxCommandEvent& event) { - wxDataViewCtrl* ctrl = m_treeListCtrl->GetDataView(); - for(size_t i = 0; i < ctrl->GetColumnCount(); ++i) { - wxDataViewColumn* col = ctrl->GetColumn(i); - if(col->GetTitle() == _("Size")) { - return (int)i; + wxTreeListItems items; + m_treeListCtrl->GetSelections(items); + if(items.empty()) return; + + for(size_t i = 0; i < items.size(); ++i) { + MyClientData* cd = GetItemData(items.at(i)); + if(!cd || cd->IsFolder()) { + continue; } + + RemoteFileInfo remoteFile; + remoteFile.SetAccount(m_account); + remoteFile.SetRemoteFile(cd->GetFullPath()); + + SFTPThreadRequet* req = new SFTPThreadRequet(remoteFile); + req->SetDirection(SFTPThreadRequet::kDownloadAndOpenContainingFolder); + SFTPWorkerThread::Instance()->Add(req); } - return wxNOT_FOUND; } -int SFTPTreeView::GetTypeColumnIndex() const +void SFTPTreeView::OnFileDropped(clCommandEvent& event) { - wxDataViewCtrl* ctrl = m_treeListCtrl->GetDataView(); - for(size_t i = 0; i < ctrl->GetColumnCount(); ++i) { - wxDataViewColumn* col = ctrl->GetColumn(i); - if(col->GetTitle() == _("Type")) { - return (int)i; + wxTreeListItems items; + m_treeListCtrl->GetSelections(items); + wxTreeListItem parenItem; + wxString defaultPath = m_textCtrlQuickJump->GetValue(); + if(items.size() == 1) { + // Use the selected folder as the default path + MyClientData* cd = GetItemData(items.at(0)); + if(cd && cd->IsFolder()) { + defaultPath = cd->GetFullPath(); + parenItem = items.at(0); } } - return wxNOT_FOUND; -} - -int SFTPTreeView::IsSizeColumnShown() const { return (GetSizeColumnIndex() != wxNOT_FOUND);} -int SFTPTreeView::IsTypeColumnShown() const { return (GetTypeColumnIndex() != wxNOT_FOUND);} -void SFTPTreeView::DoDeleteColumn(int colIdx) -{ - m_treeListCtrl->DeleteColumn(colIdx); + SFTPUploadDialog dlg(EventNotifier::Get()->TopFrame()); + dlg.GetTextCtrlRemoteFolder()->ChangeValue(defaultPath); + if(dlg.ShowModal() != wxID_OK) return; + + const wxString targetFolder = dlg.GetTextCtrlRemoteFolder()->GetValue(); + const wxArrayString& files = event.GetStrings(); + for(size_t i = 0; i < files.size(); ++i) { + wxFileName localFile(files.Item(i)); + wxString remotePath; + remotePath << targetFolder << "/" << localFile.GetFullName(); + if(parenItem.IsOk()) { + wxTreeListItem fileItem = DoAddFile(parenItem, remotePath); + if(!fileItem.IsOk()) continue; + } + SFTPWorkerThread::Instance()->Add(new SFTPThreadRequet(m_account, remotePath, localFile.GetFullPath())); + } } diff -Nru codelite-8.0.1+dfsg2/SFTP/SFTPTreeView.h codelite-9.0+dfsg/SFTP/SFTPTreeView.h --- codelite-8.0.1+dfsg2/SFTP/SFTPTreeView.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/SFTP/SFTPTreeView.h 2015-10-11 13:56:07.000000000 +0000 @@ -45,7 +45,7 @@ SSHAccountInfo m_account; SFTP* m_plugin; wxString m_commandOutput; - + public: enum { ID_SFTP_BOOKMARK_FIRST = 13000, @@ -59,7 +59,8 @@ bool IsConnected() const { return m_sftp && m_sftp->IsConnected(); } protected: - virtual void OnOpenTerminal(wxCommandEvent& event); + virtual void OnSftpSettings(wxCommandEvent& event); + virtual void OnOpenTerminal(wxAuiToolBarEvent& event); virtual void OnOpenTerminalUI(wxUpdateUIEvent& event); virtual void OnConnection(wxCommandEvent& event); virtual void OnSelectionChanged(wxTreeListEvent& event); @@ -79,9 +80,10 @@ virtual void OnMenuDelete(wxCommandEvent& event); virtual void OnMenuRename(wxCommandEvent& event); virtual void OnMenuNewFile(wxCommandEvent& event); + virtual void OnMenuOpenWithDefaultApplication(wxCommandEvent& event); + virtual void OnMenuOpenContainingFolder(wxCommandEvent& event); virtual void OnMenuRefreshFolder(wxCommandEvent& event); - void OnShowSizeCol(wxCommandEvent& event); - void OnShowTypeCol(wxCommandEvent& event); + void OnFileDropped(clCommandEvent& event); // Edit events void OnCopy(wxCommandEvent& event); @@ -96,12 +98,7 @@ bool DoExpandItem(const wxTreeListItem& item); void DoBuildTree(const wxString& initialFolder); void ManageBookmarks(); - - int IsSizeColumnShown() const; - int IsTypeColumnShown() const; - int GetSizeColumnIndex() const; - int GetTypeColumnIndex() const; - + wxTreeListItem DoAddFolder(const wxTreeListItem& parent, const wxString& path); wxTreeListItem DoAddFile(const wxTreeListItem& parent, const wxString& path); @@ -109,7 +106,7 @@ MyClientDataVect_t GetSelectionsItemData(); bool DoOpenFile(const wxTreeListItem& item); void DoDeleteColumn(int colIdx); - + protected: virtual void OnItemActivated(wxTreeListEvent& event); virtual void OnItemExpanding(wxTreeListEvent& event); diff -Nru codelite-8.0.1+dfsg2/SFTP/SFTPUploadDialog.cpp codelite-9.0+dfsg/SFTP/SFTPUploadDialog.cpp --- codelite-8.0.1+dfsg2/SFTP/SFTPUploadDialog.cpp 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/SFTP/SFTPUploadDialog.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,14 @@ +#include "SFTPUploadDialog.h" + +SFTPUploadDialog::SFTPUploadDialog(wxWindow* parent) + : SFTPUploadDialogBase(parent) +{ +} + +SFTPUploadDialog::~SFTPUploadDialog() +{ +} + +void SFTPUploadDialog::OnOKUI(wxUpdateUIEvent& event) +{ +} diff -Nru codelite-8.0.1+dfsg2/SFTP/SFTPUploadDialog.h codelite-9.0+dfsg/SFTP/SFTPUploadDialog.h --- codelite-8.0.1+dfsg2/SFTP/SFTPUploadDialog.h 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/SFTP/SFTPUploadDialog.h 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,13 @@ +#ifndef SFTPUPLOADDIALOG_H +#define SFTPUPLOADDIALOG_H +#include "UI.h" + +class SFTPUploadDialog : public SFTPUploadDialogBase +{ +public: + SFTPUploadDialog(wxWindow* parent); + virtual ~SFTPUploadDialog(); +protected: + virtual void OnOKUI(wxUpdateUIEvent& event); +}; +#endif // SFTPUPLOADDIALOG_H diff -Nru codelite-8.0.1+dfsg2/SFTP/sftp_worker_thread.cpp codelite-9.0+dfsg/SFTP/sftp_worker_thread.cpp --- codelite-8.0.1+dfsg2/SFTP/sftp_worker_thread.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/SFTP/sftp_worker_thread.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -90,7 +90,9 @@ DoReportMessage(accountName, msg, SFTPThreadMessage::STATUS_OK); DoReportStatusBarMessage(""); - } else { + } else if(req->GetDirection() == SFTPThreadRequet::kDownload || + req->GetDirection() == SFTPThreadRequet::kDownloadAndOpenContainingFolder || + req->GetDirection() == SFTPThreadRequet::kDownloadAndOpenWithDefaultApp) { DoReportStatusBarMessage(wxString() << _("Downloading file: ") << req->GetRemoteFile()); wxMemoryBuffer buffer; m_sftp->Read(req->GetRemoteFile(), buffer); @@ -105,7 +107,15 @@ DoReportStatusBarMessage(""); // We should also notify the parent window about download completed - m_plugin->CallAfter(&SFTP::FileDownloadedSuccessfully, req->GetLocalFile()); + if(req->GetDirection() == SFTPThreadRequet::kDownload) { + m_plugin->CallAfter(&SFTP::FileDownloadedSuccessfully, req->GetLocalFile()); + + } else if(req->GetDirection() == SFTPThreadRequet::kDownloadAndOpenContainingFolder) { + m_plugin->CallAfter(&SFTP::OpenContainingFolder, req->GetLocalFile()); + + } else { + m_plugin->CallAfter(&SFTP::OpenWithDefaultApp, req->GetLocalFile()); + } } } catch(clException& e) { diff -Nru codelite-8.0.1+dfsg2/SFTP/sftp_worker_thread.h codelite-9.0+dfsg/SFTP/sftp_worker_thread.h --- codelite-8.0.1+dfsg2/SFTP/sftp_worker_thread.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/SFTP/sftp_worker_thread.h 2015-10-11 13:56:07.000000000 +0000 @@ -42,7 +42,7 @@ int m_direction; public: - enum { kUpload, kDownload, kConnect }; + enum { kUpload, kDownload, kConnect, kDownloadAndOpenWithDefaultApp, kDownloadAndOpenContainingFolder }; public: SFTPThreadRequet(const SSHAccountInfo& accountInfo, const wxString& remoteFile, const wxString& localFile); @@ -63,6 +63,7 @@ const wxString& GetRemoteFile() const { return m_remoteFile; } const wxString& GetLocalFile() const { return m_localFile; } int GetDirection() const { return m_direction; } + void SetDirection(int d) { m_direction = d; } ThreadRequest* Clone() const; }; diff -Nru codelite-8.0.1+dfsg2/SFTP/UI.cpp codelite-9.0+dfsg/SFTP/UI.cpp --- codelite-8.0.1+dfsg2/SFTP/UI.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/SFTP/UI.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -151,6 +151,15 @@ } m_auibar->AddTool(ID_SSH_OPEN_TERMINAL, _("Open Terminal"), wxXmlResource::Get()->LoadBitmap(wxT("terminal")), wxNullBitmap, wxITEM_NORMAL, _("Open Terminal"), _("Open Terminal"), NULL); + wxAuiToolBarItem* m_toolbarItemTerminal = m_auibar->FindToolByIndex(m_auibar->GetToolCount()-1); + if (m_toolbarItemTerminal) { + m_toolbarItemTerminal->SetHasDropDown(true); + m_menu96 = new wxMenu; + m_menuItemCustomize = new wxMenuItem(m_menu96, ID_SFTP_CUSTOMIZE, _("SFTP Settings..."), _("SFTP Settings..."), wxITEM_NORMAL); + m_menu96->Append(m_menuItemCustomize); + + m_dropdownMenus.insert(std::make_pair( m_toolbarItemTerminal->GetId(), m_menu96) ); + } m_auibar->Realize(); wxArrayString m_choiceAccountArr; @@ -182,8 +191,6 @@ boxSizer16->Add(m_treeListCtrl, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND, 2); m_treeListCtrl->AppendColumn(_("Name"), 400, wxALIGN_LEFT, wxCOL_RESIZABLE|wxCOL_SORTABLE); - m_treeListCtrl->AppendColumn(_("Type"), 100, wxALIGN_LEFT, wxCOL_RESIZABLE); - m_treeListCtrl->AppendColumn(_("Size"), 50, wxALIGN_LEFT, wxCOL_RESIZABLE); SetName(wxT("SFTPTreeViewBase")); SetSizeHints(-1,-1); @@ -196,8 +203,9 @@ this->Connect(ID_SFTP_CONNECT, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler(SFTPTreeViewBase::OnConnection), NULL, this); this->Connect(ID_ADD_BOOKMARK, wxEVT_COMMAND_AUITOOLBAR_TOOL_DROPDOWN, wxAuiToolBarEventHandler(SFTPTreeViewBase::OnAddBookmark), NULL, this); this->Connect(ID_ADD_BOOKMARK, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(SFTPTreeViewBase::OnAddBookmarkUI), NULL, this); - this->Connect(ID_SSH_OPEN_TERMINAL, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler(SFTPTreeViewBase::OnOpenTerminal), NULL, this); this->Connect(ID_SSH_OPEN_TERMINAL, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(SFTPTreeViewBase::OnOpenTerminalUI), NULL, this); + this->Connect(ID_SSH_OPEN_TERMINAL, wxEVT_COMMAND_AUITOOLBAR_TOOL_DROPDOWN, wxAuiToolBarEventHandler(SFTPTreeViewBase::OnOpenTerminal), NULL, this); + this->Connect(m_menuItemCustomize->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(SFTPTreeViewBase::OnSftpSettings), NULL, this); m_choiceAccount->Connect(wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler(SFTPTreeViewBase::OnChoiceAccount), NULL, this); m_choiceAccount->Connect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(SFTPTreeViewBase::OnChoiceAccountUI), NULL, this); m_staticText49->Connect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(SFTPTreeViewBase::OnGotoLocationUI), NULL, this); @@ -217,8 +225,9 @@ this->Disconnect(ID_SFTP_CONNECT, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler(SFTPTreeViewBase::OnConnection), NULL, this); this->Disconnect(ID_ADD_BOOKMARK, wxEVT_COMMAND_AUITOOLBAR_TOOL_DROPDOWN, wxAuiToolBarEventHandler(SFTPTreeViewBase::OnAddBookmark), NULL, this); this->Disconnect(ID_ADD_BOOKMARK, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(SFTPTreeViewBase::OnAddBookmarkUI), NULL, this); - this->Disconnect(ID_SSH_OPEN_TERMINAL, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler(SFTPTreeViewBase::OnOpenTerminal), NULL, this); this->Disconnect(ID_SSH_OPEN_TERMINAL, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(SFTPTreeViewBase::OnOpenTerminalUI), NULL, this); + this->Disconnect(ID_SSH_OPEN_TERMINAL, wxEVT_COMMAND_AUITOOLBAR_TOOL_DROPDOWN, wxAuiToolBarEventHandler(SFTPTreeViewBase::OnOpenTerminal), NULL, this); + this->Disconnect(m_menuItemCustomize->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(SFTPTreeViewBase::OnSftpSettings), NULL, this); m_choiceAccount->Disconnect(wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler(SFTPTreeViewBase::OnChoiceAccount), NULL, this); m_choiceAccount->Disconnect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(SFTPTreeViewBase::OnChoiceAccountUI), NULL, this); m_staticText49->Disconnect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(SFTPTreeViewBase::OnGotoLocationUI), NULL, this); @@ -309,6 +318,8 @@ #if wxVERSION_NUMBER >= 2900 if(!wxPersistenceManager::Get().Find(this)) { wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); } #endif // Connect events @@ -373,10 +384,90 @@ #if wxVERSION_NUMBER >= 2900 if(!wxPersistenceManager::Get().Find(this)) { wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); } #endif + // Connect events + m_button87->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SFTPSettingsDialogBase::OnOK), NULL, this); + } SFTPSettingsDialogBase::~SFTPSettingsDialogBase() { + m_button87->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SFTPSettingsDialogBase::OnOK), NULL, this); + +} + +SFTPUploadDialogBase::SFTPUploadDialogBase(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style) + : wxDialog(parent, id, title, pos, size, style) +{ + if ( !bBitmapLoaded ) { + // We need to initialise the default bitmap handler + wxXmlResource::Get()->AddHandler(new wxBitmapXmlHandler); + wxC32BEInitBitmapResources(); + bBitmapLoaded = true; + } + + wxBoxSizer* boxSizer102 = new wxBoxSizer(wxVERTICAL); + this->SetSizer(boxSizer102); + + m_staticText110 = new wxStaticText(this, wxID_ANY, _("Upload the files to this folder:"), wxDefaultPosition, wxSize(-1,-1), 0); + + boxSizer102->Add(m_staticText110, 0, wxALL, 5); + + m_textCtrlRemoteFolder = new wxTextCtrl(this, wxID_ANY, wxT(""), wxDefaultPosition, wxSize(400,-1), 0); + #ifdef __WXMSW__ + // To get the newer version of the font on MSW, we use font wxSYS_DEFAULT_GUI_FONT with family set to wxFONTFAMILY_TELETYPE + wxFont m_textCtrlRemoteFolderFont = wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT); + m_textCtrlRemoteFolderFont.SetFamily(wxFONTFAMILY_TELETYPE); + #else + wxFont m_textCtrlRemoteFolderFont = wxSystemSettings::GetFont(wxSYS_ANSI_FIXED_FONT); + m_textCtrlRemoteFolderFont.SetFamily(wxFONTFAMILY_TELETYPE); + #endif + m_textCtrlRemoteFolder->SetFont(m_textCtrlRemoteFolderFont); + m_textCtrlRemoteFolder->SetToolTip(_("Set the remote folder path")); + m_textCtrlRemoteFolder->SetFocus(); + #if wxVERSION_NUMBER >= 3000 + m_textCtrlRemoteFolder->SetHint(wxT("")); + #endif + + boxSizer102->Add(m_textCtrlRemoteFolder, 0, wxALL|wxEXPAND, 5); + + boxSizer102->Add(0, 0, 1, wxALL, 5); + + m_stdBtnSizer104 = new wxStdDialogButtonSizer(); + + boxSizer102->Add(m_stdBtnSizer104, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 5); + + m_buttonOK = new wxButton(this, wxID_OK, wxT(""), wxDefaultPosition, wxSize(-1, -1), 0); + m_buttonOK->SetDefault(); + m_stdBtnSizer104->AddButton(m_buttonOK); + + m_button108 = new wxButton(this, wxID_CANCEL, wxT(""), wxDefaultPosition, wxSize(-1, -1), 0); + m_stdBtnSizer104->AddButton(m_button108); + m_stdBtnSizer104->Realize(); + + SetName(wxT("SFTPUploadDialogBase")); + SetSizeHints(-1,-1); + if ( GetSizer() ) { + GetSizer()->Fit(this); + } + CentreOnParent(wxBOTH); +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(this)) { + wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); + } +#endif + // Connect events + m_buttonOK->Connect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(SFTPUploadDialogBase::OnOKUI), NULL, this); + +} + +SFTPUploadDialogBase::~SFTPUploadDialogBase() +{ + m_buttonOK->Disconnect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(SFTPUploadDialogBase::OnOKUI), NULL, this); + } diff -Nru codelite-8.0.1+dfsg2/SFTP/UI.h codelite-9.0+dfsg/SFTP/UI.h --- codelite-8.0.1+dfsg2/SFTP/UI.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/SFTP/UI.h 2015-10-11 13:56:07.000000000 +0000 @@ -4,8 +4,8 @@ // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// -#ifndef UI_BASE_CLASSES_H -#define UI_BASE_CLASSES_H +#ifndef CODELITE_SFTP_UI_BASE_CLASSES_H +#define CODELITE_SFTP_UI_BASE_CLASSES_H #include #include @@ -81,11 +81,14 @@ ID_ADD_BOOKMARK = 1001, ID_OPEN_ACCOUNT_MANAGER = 1002, ID_SFTP_CONNECT = 1003, - ID_SSH_OPEN_TERMINAL = 1004, + ID_SFTP_CUSTOMIZE = 1004, + ID_SSH_OPEN_TERMINAL = 1005, }; protected: wxAuiToolBar* m_auibar; std::map m_dropdownMenus; + wxMenu* m_menu96; + wxMenuItem* m_menuItemCustomize; wxChoice* m_choiceAccount; wxStaticText* m_staticText49; wxTextCtrl* m_textCtrlQuickJump; @@ -96,8 +99,9 @@ virtual void OnConnection(wxCommandEvent& event) { event.Skip(); } virtual void OnAddBookmark(wxAuiToolBarEvent& event) { event.Skip(); } virtual void OnAddBookmarkUI(wxUpdateUIEvent& event) { event.Skip(); } - virtual void OnOpenTerminal(wxCommandEvent& event) { event.Skip(); } virtual void OnOpenTerminalUI(wxUpdateUIEvent& event) { event.Skip(); } + virtual void OnOpenTerminal(wxAuiToolBarEvent& event) { event.Skip(); } + virtual void OnSftpSettings(wxCommandEvent& event) { event.Skip(); } virtual void OnChoiceAccount(wxCommandEvent& event) { event.Skip(); } virtual void OnChoiceAccountUI(wxUpdateUIEvent& event) { event.Skip(); } virtual void OnGotoLocationUI(wxUpdateUIEvent& event) { event.Skip(); } @@ -151,6 +155,7 @@ wxButton* m_button89; protected: + virtual void OnOK(wxCommandEvent& event) { event.Skip(); } public: wxStaticText* GetStaticSSHClient() { return m_staticSSHClient; } @@ -159,4 +164,24 @@ virtual ~SFTPSettingsDialogBase(); }; + +class SFTPUploadDialogBase : public wxDialog +{ +protected: + wxStaticText* m_staticText110; + wxTextCtrl* m_textCtrlRemoteFolder; + wxStdDialogButtonSizer* m_stdBtnSizer104; + wxButton* m_buttonOK; + wxButton* m_button108; + +protected: + virtual void OnOKUI(wxUpdateUIEvent& event) { event.Skip(); } + +public: + wxStaticText* GetStaticText110() { return m_staticText110; } + wxTextCtrl* GetTextCtrlRemoteFolder() { return m_textCtrlRemoteFolder; } + SFTPUploadDialogBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("SFTP Upload Files"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER); + virtual ~SFTPUploadDialogBase(); +}; + #endif diff -Nru codelite-8.0.1+dfsg2/SFTP/UI_sftp_bitmaps.cpp codelite-9.0+dfsg/SFTP/UI_sftp_bitmaps.cpp --- codelite-8.0.1+dfsg2/SFTP/UI_sftp_bitmaps.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/SFTP/UI_sftp_bitmaps.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,385 +1,385 @@ -// -// This file was automatically generated by wxrc, do not edit by hand. -// - -#include - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#include -#include -#include -#include - -#if wxCHECK_VERSION(2,8,5) && wxABI_VERSION >= 20805 - #define XRC_ADD_FILE(name, data, size, mime) \ - wxMemoryFSHandler::AddFileWithMimeType(name, data, size, mime) -#else - #define XRC_ADD_FILE(name, data, size, mime) \ - wxMemoryFSHandler::AddFile(name, data, size) -#endif - -static size_t xml_res_size_0 = 699; -static unsigned char xml_res_file_0[] = { -137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, -0,31,243,255,97,0,0,0,6,98,75,71,68,0,255,0,255,0,255,160,189,167,147,0, -0,2,112,73,68,65,84,56,141,149,146,75,72,84,97,20,199,255,247,229,189,163, -142,150,227,163,242,145,67,42,248,174,69,133,36,68,102,70,209,3,90,216, -180,104,19,180,40,116,21,17,4,129,212,34,72,148,40,177,54,45,162,160,192, -140,12,204,94,34,84,88,68,229,136,83,139,76,69,49,45,199,201,134,59,206, -220,231,119,90,140,214,136,147,224,129,179,56,231,252,191,31,255,195,249, -128,21,226,69,27,247,237,101,187,248,116,37,13,255,191,193,243,107,168, -75,95,191,37,39,213,85,180,243,217,117,156,94,53,64,224,165,214,210,237, -103,229,138,170,115,138,192,75,13,171,2,60,105,70,77,82,74,97,177,228,72, -65,66,162,11,105,25,149,249,61,45,216,31,79,203,197,22,125,77,80,194,14, -148,129,248,71,187,143,52,103,203,138,12,144,13,195,20,209,219,217,56,73, -22,59,56,111,226,75,125,19,140,191,128,174,139,130,71,146,248,147,140,168, -148,49,114,101,100,21,104,238,162,106,37,171,160,70,132,58,0,16,3,156,229, -240,79,120,237,225,207,61,145,192,207,17,135,192,35,0,142,123,111,90,214, -109,174,243,2,168,186,246,4,210,55,238,0,207,241,0,116,192,10,3,198,12, -96,4,162,38,165,100,64,206,6,196,100,128,87,64,140,48,51,218,139,254,190, -187,186,200,76,236,29,124,215,221,85,155,187,77,193,252,87,64,155,90,240, -198,1,180,176,165,25,2,194,63,162,189,68,55,32,231,193,219,223,173,217, -54,121,132,142,55,24,57,80,161,77,251,199,63,212,229,23,110,149,56,35,8, -132,102,129,112,16,136,132,0,77,141,166,165,1,178,11,196,57,208,251,176, -37,18,156,157,107,172,191,66,247,4,0,120,240,150,6,246,149,68,252,129,233, -225,61,57,107,211,68,94,15,3,166,1,88,118,76,2,90,40,140,87,125,221,198, -47,127,224,252,209,171,172,125,217,21,238,55,240,67,85,197,249,101,121, -153,107,226,222,252,123,32,136,215,190,49,223,177,54,86,190,216,19,99,5, -100,113,142,36,30,128,174,199,5,136,22,3,153,75,255,206,18,128,174,177, -108,103,12,128,49,130,77,4,73,136,190,73,21,1,83,35,119,92,192,45,15,54, -192,2,37,216,38,12,157,97,112,82,53,124,83,42,49,6,161,50,199,73,21,185, -78,73,17,120,48,27,220,141,227,200,60,117,7,51,75,0,204,194,166,68,145, -183,189,99,191,109,239,68,200,32,112,143,117,70,103,68,32,97,104,60,116, -217,55,174,30,218,156,231,148,5,139,99,162,73,235,128,229,128,169,57,213, -78,254,168,205,119,68,76,186,212,216,69,67,255,140,50,207,205,195,40,249, -52,170,182,154,54,237,50,109,168,139,147,63,17,75,23,213,24,63,192,235, -0,0,0,0,73,69,78,68,174,66,96,130}; - -static size_t xml_res_size_1 = 796; -static unsigned char xml_res_file_1[] = { -137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, -0,31,243,255,97,0,0,0,4,103,65,77,65,0,0,175,200,55,5,138,233,0,0,0,25, -116,69,88,116,83,111,102,116,119,97,114,101,0,65,100,111,98,101,32,73,109, -97,103,101,82,101,97,100,121,113,201,101,60,0,0,2,174,73,68,65,84,56,203, -149,146,203,75,148,81,24,198,223,239,58,243,121,183,112,240,86,146,168, -144,27,23,65,160,68,27,233,182,41,232,63,16,202,69,208,202,66,48,112,217, -50,130,150,5,73,11,9,148,200,192,74,201,208,202,75,212,194,48,77,173,70, -27,53,113,156,25,231,187,157,243,157,219,124,29,7,138,32,21,58,240,110, -14,231,249,189,239,251,156,71,9,195,16,14,58,3,211,182,78,5,175,166,84, -212,224,128,87,32,66,155,100,221,246,49,29,115,17,185,164,28,4,120,60,153, -181,164,112,140,11,214,74,153,0,198,57,8,78,193,138,168,144,72,186,240, -125,211,123,169,31,212,29,19,122,221,212,194,214,210,2,21,8,203,1,161,138, -188,83,193,246,9,68,13,5,210,89,167,125,223,9,238,143,108,154,62,225,118, -85,153,17,197,132,64,202,9,118,129,224,7,28,138,45,13,22,87,211,240,99, -109,231,166,186,95,247,171,231,170,168,131,240,157,213,164,35,69,20,34, -114,214,172,71,192,118,17,120,8,67,38,229,1,181,253,229,127,86,120,52,145, -62,42,226,207,122,25,99,90,111,103,103,71,231,221,25,236,96,126,171,178, -220,140,22,71,85,216,76,5,160,169,17,240,108,9,112,209,246,159,21,250,223, -101,44,105,84,63,179,215,47,28,137,110,69,12,195,128,217,217,217,190,174, -174,174,142,51,221,207,79,113,76,70,107,99,197,86,97,145,33,253,96,48,55, -21,135,192,69,117,121,128,236,170,203,142,11,17,67,105,132,80,192,102,124, -150,55,148,19,125,126,126,190,15,99,124,69,86,233,76,230,100,51,11,130, -209,202,154,18,203,77,251,144,76,164,190,230,114,180,57,239,1,14,104,53, -38,188,177,192,4,208,148,28,24,135,155,244,183,43,38,93,54,78,63,148,226, -7,8,161,169,198,240,197,55,230,162,179,43,159,18,104,43,177,245,148,139, -160,101,113,188,155,231,61,240,16,173,1,16,18,20,194,70,26,65,97,84,1,235, -80,141,201,150,62,191,170,175,175,55,98,177,24,12,14,14,142,215,233,35, -109,75,126,219,113,41,76,252,246,44,15,112,49,174,208,20,144,110,135,18, -22,64,114,135,65,105,129,14,181,199,26,140,201,185,55,208,226,197,129,16, -50,61,52,52,148,145,207,51,127,155,158,7,216,46,110,42,178,84,144,90,112, -16,217,93,9,182,50,20,162,186,6,86,237,9,24,126,63,205,184,104,185,182, -215,119,107,219,177,139,166,204,244,88,69,153,169,57,126,0,166,28,69,234, -64,87,21,16,57,1,137,149,109,249,231,97,207,199,225,238,137,189,0,122,214, -197,94,73,129,106,8,153,115,31,19,88,219,176,193,221,241,1,123,1,4,50,56, -216,241,167,133,16,247,246,11,156,158,245,208,152,26,26,231,23,82,46,172, -175,103,24,243,131,30,65,249,178,8,232,54,167,116,67,228,248,207,47,175, -111,240,125,1,200,69,151,157,36,123,34,131,210,206,49,45,250,48,208,65, -225,63,206,47,100,171,170,111,238,200,94,151,0,0,0,0,73,69,78,68,174,66, -96,130}; - -static size_t xml_res_size_2 = 748; -static unsigned char xml_res_file_2[] = { -137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, -0,31,243,255,97,0,0,0,4,103,65,77,65,0,0,175,200,55,5,138,233,0,0,0,25, -116,69,88,116,83,111,102,116,119,97,114,101,0,65,100,111,98,101,32,73,109, -97,103,101,82,101,97,100,121,113,201,101,60,0,0,2,126,73,68,65,84,24,25, -149,193,75,72,20,97,0,7,240,255,206,124,179,206,180,107,40,34,166,210,41, -244,208,161,160,60,228,197,131,84,96,135,14,209,53,8,58,8,69,80,209,37, -188,70,157,234,80,100,116,74,130,34,232,34,221,4,31,45,29,178,66,233,129, -104,248,126,236,184,187,163,251,154,157,249,158,179,95,123,216,131,132, -66,254,126,49,173,53,14,227,209,135,229,62,74,217,68,133,43,25,82,113,37, -166,181,198,65,222,164,118,137,148,178,131,137,106,39,229,162,53,228,226, -98,12,250,150,99,105,112,169,240,107,37,79,9,14,48,50,229,57,92,168,9,169, -162,94,25,41,84,35,137,68,60,134,164,109,130,9,137,108,129,35,239,135,132, -224,0,33,149,183,109,75,247,182,52,153,224,66,131,73,13,202,37,182,243, -1,226,38,176,188,85,128,40,211,11,4,251,120,53,190,212,93,170,230,30,31, -37,199,81,240,37,118,74,33,40,151,8,185,68,163,109,98,57,93,130,151,45, -14,127,126,121,53,69,176,199,200,148,231,72,161,222,9,177,122,73,181,76, -24,43,94,31,154,113,2,78,220,64,182,192,65,153,128,25,179,144,113,203,144, -101,58,134,26,130,186,215,147,57,194,133,250,105,19,221,101,57,39,225,175, -187,145,232,76,153,211,179,50,106,109,104,51,147,54,65,46,207,17,55,129, -160,28,64,132,204,67,141,129,186,10,85,29,76,200,174,164,99,192,34,85,56, -13,231,204,242,239,51,50,146,114,232,207,198,114,180,225,22,209,116,132, -32,96,28,97,33,132,172,208,52,106,12,212,133,156,117,10,33,65,185,196,166, -87,65,60,30,131,147,232,182,108,157,123,216,115,254,171,153,245,22,224, -186,69,172,45,100,16,150,252,69,21,9,23,53,6,234,42,1,111,13,24,71,200, -36,66,42,176,182,237,195,177,98,104,107,62,75,50,63,154,208,51,48,15,119, -113,73,101,87,115,163,42,226,167,231,39,239,43,212,16,212,149,66,118,163, -189,201,66,72,5,42,148,131,50,9,175,40,97,91,38,160,251,49,51,250,73,69, -85,113,106,110,242,193,60,246,32,168,185,249,98,230,94,163,99,92,142,19, -3,153,66,128,132,109,194,50,53,26,172,24,132,144,88,223,216,69,46,221,62, -52,251,113,112,30,255,32,131,207,190,223,77,216,198,147,68,220,0,101,2, -150,169,177,158,46,97,103,199,7,245,25,152,79,193,124,254,69,113,246,28, -251,32,62,229,79,219,154,147,208,58,194,102,214,199,166,91,68,193,11,134, -149,16,99,17,231,94,196,85,90,9,233,206,141,223,81,216,7,41,249,20,27,219, -17,76,104,164,183,138,40,238,250,253,211,111,175,77,225,63,17,26,208,99, -43,249,82,70,133,138,42,198,6,190,189,191,158,194,33,252,5,6,208,135,226, -137,235,174,81,0,0,0,0,73,69,78,68,174,66,96,130}; - -static size_t xml_res_size_3 = 531; -static unsigned char xml_res_file_3[] = { -137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, -0,31,243,255,97,0,0,1,218,73,68,65,84,120,94,109,147,63,72,27,81,28,199, -191,247,71,167,102,142,10,133,34,24,75,211,77,165,88,183,54,134,162,165, -133,130,237,226,86,138,94,204,16,112,233,214,52,107,199,27,50,8,210,161, -56,117,144,230,26,39,221,68,179,43,138,96,18,17,210,116,104,211,78,249, -123,239,245,247,123,132,227,222,53,95,238,203,193,123,247,249,240,187,227, -157,113,248,193,70,36,46,213,161,90,248,63,69,106,134,138,39,249,62,56, -81,218,141,63,120,150,189,191,90,128,97,152,136,230,178,252,209,105,158, -149,48,148,232,2,5,39,87,178,179,233,45,12,126,125,129,232,86,53,216,28, -191,139,217,244,38,0,73,18,79,73,194,2,119,226,225,243,236,204,242,38,6, -127,15,20,28,141,223,187,129,108,121,72,164,29,6,156,163,252,24,191,70, -198,14,224,212,6,252,63,30,193,245,0,250,90,40,67,10,96,45,191,194,16,137, -107,24,180,190,33,177,28,72,96,178,109,230,233,59,248,173,18,68,187,10, -8,17,84,248,124,147,250,90,155,36,191,247,145,72,109,40,9,79,96,137,206, -53,252,78,13,128,68,56,10,230,75,10,253,117,58,117,24,237,171,240,71,20, -196,138,168,96,8,67,237,233,49,168,50,36,144,146,120,77,160,75,196,8,129, -12,4,204,11,170,63,82,96,152,224,189,168,128,25,125,2,115,124,10,162,123, -171,193,235,238,46,56,221,159,159,53,220,28,139,107,19,20,171,199,251,206, -244,210,75,182,106,146,189,220,91,112,94,189,95,10,29,168,56,172,216,2, -234,21,15,204,178,32,211,188,56,85,39,108,250,241,11,12,68,159,36,13,112, -76,139,135,165,8,49,132,39,97,223,33,248,212,67,227,236,184,8,96,219,4, -71,73,42,197,218,73,137,30,152,163,17,39,0,9,188,249,180,131,215,84,72, -168,53,59,54,143,90,8,166,147,216,14,255,141,22,213,157,76,46,58,247,30, -173,98,84,234,149,239,248,113,126,194,112,142,224,94,244,103,242,121,131, -30,0,213,193,232,40,152,202,176,202,63,2,22,235,26,151,144,78,255,0,0,0, -0,73,69,78,68,174,66,96,130}; - -static size_t xml_res_size_4 = 650; -static unsigned char xml_res_file_4[] = { -137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, -0,31,243,255,97,0,0,2,81,73,68,65,84,120,94,141,147,91,104,211,80,24,199, -115,178,92,218,9,106,55,45,58,186,233,58,117,3,217,138,12,7,42,50,221,131, -151,121,65,38,248,226,131,151,233,67,133,85,153,90,157,32,12,34,78,196, -21,214,9,62,88,7,162,79,234,139,14,65,177,78,156,194,92,69,156,62,41,162, -93,47,27,182,235,168,133,54,166,39,105,142,95,194,58,26,226,196,3,191,124, -57,151,255,119,254,39,57,31,34,132,80,165,109,127,207,136,13,194,49,160, -25,216,0,208,192,196,28,129,39,125,109,169,82,1,93,218,217,235,13,246,114, -12,29,109,94,191,226,106,123,107,221,161,35,29,77,245,71,59,154,214,237, -217,182,230,96,75,99,85,47,207,150,133,97,141,96,216,17,28,232,236,238, -126,118,195,237,123,39,62,12,165,212,155,47,19,228,202,240,52,241,62,136, -145,243,128,0,239,254,96,130,60,10,205,170,158,193,247,34,172,245,21,117, -250,99,135,231,233,101,119,255,152,56,52,154,36,158,251,147,196,125,55, -172,211,122,237,173,78,177,223,117,111,146,4,94,39,73,215,192,184,8,26, -65,211,162,182,83,143,171,44,60,251,181,125,151,107,209,167,41,9,149,126, -146,219,199,157,122,60,57,244,195,224,218,229,176,146,23,193,207,185,108, -46,95,207,20,100,165,179,209,85,205,77,196,68,132,21,93,109,2,203,5,67, -255,99,36,135,26,234,236,220,248,135,112,39,163,200,202,206,2,103,101,178, -89,197,36,220,44,140,234,113,149,205,110,76,168,133,197,229,154,118,31, -163,96,165,97,86,162,104,140,11,166,4,35,23,183,232,241,240,224,23,211, -92,34,91,70,131,214,9,89,100,121,38,45,17,130,16,162,22,104,121,108,118, -135,97,12,180,148,102,227,251,239,156,104,71,156,229,31,9,204,238,8,198, -42,104,227,218,17,158,43,233,95,27,137,109,57,183,80,130,191,29,15,101, -50,10,104,131,154,131,59,233,248,180,215,90,190,148,69,52,141,140,151,204, -240,23,12,19,185,104,12,131,54,160,215,194,218,237,3,2,95,89,121,142,175, -169,181,80,255,209,164,88,68,194,169,25,255,183,87,167,47,204,23,83,237, -214,126,31,91,177,204,205,87,175,230,139,78,76,168,42,37,77,69,37,57,149, -188,21,126,115,182,91,211,25,170,177,102,211,117,129,102,217,51,140,125, -37,199,44,169,96,104,158,167,117,199,56,175,42,153,180,34,39,127,202,42, -206,251,163,99,222,75,69,141,169,156,29,45,125,14,8,39,128,3,128,115,110, -56,2,12,3,129,120,168,199,112,175,255,0,250,214,62,10,83,147,191,134,0, -0,0,0,73,69,78,68,174,66,96,130}; - -static size_t xml_res_size_5 = 590; -static unsigned char xml_res_file_5[] = { -137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, -0,31,243,255,97,0,0,2,21,73,68,65,84,120,94,165,83,95,72,83,97,20,63,247, -182,45,180,182,7,39,68,165,4,43,234,101,130,8,139,136,141,209,36,186,101, -72,145,169,51,50,48,246,208,176,150,153,50,168,54,164,73,184,28,10,19,42, -172,64,45,132,214,131,134,144,101,190,152,249,180,138,254,16,68,15,117, -31,42,99,228,197,52,113,213,245,215,119,63,116,185,38,129,121,224,199,249, -206,239,124,231,119,190,191,2,0,90,137,137,203,45,8,197,170,114,24,86,253, -151,64,83,111,121,173,78,208,127,157,83,213,95,108,236,90,150,192,249,238, -131,62,189,184,58,42,21,185,201,105,45,37,85,157,27,102,156,148,18,104, -236,44,49,100,150,165,114,62,29,25,218,247,20,149,147,50,245,142,244,226, -15,114,21,28,32,245,167,122,159,11,156,238,216,29,96,65,82,243,12,105,66, -44,246,233,4,67,187,100,171,160,113,229,13,41,211,9,230,223,147,252,229, -53,205,206,38,137,78,92,182,251,131,215,43,16,127,59,128,107,253,141,96, -113,63,131,4,64,203,249,234,163,123,49,242,162,23,177,145,11,232,121,84, -199,209,22,171,134,183,213,161,205,181,147,167,121,7,134,226,55,112,115, -240,36,30,196,175,160,239,113,20,222,22,39,106,46,218,252,167,34,197,24, -126,214,133,174,135,103,112,117,192,195,209,220,83,134,227,161,237,90,222, -14,128,132,170,115,5,126,147,209,120,201,98,201,35,81,20,41,215,148,79, -121,102,43,61,121,62,68,54,171,131,62,36,158,210,76,242,27,105,54,161,76, -146,44,127,36,0,142,219,161,151,163,156,4,64,135,234,183,134,143,5,11,17, -236,222,135,166,91,251,209,114,167,18,125,99,109,104,189,123,68,139,57, -234,162,78,148,157,221,6,54,151,119,94,64,234,37,150,214,110,10,175,89, -155,213,144,191,121,29,95,201,98,155,84,166,233,147,156,224,157,239,117, -200,163,139,115,105,79,89,242,172,15,103,27,179,26,54,90,114,73,16,5,206, -77,41,223,105,92,158,224,197,131,157,159,121,113,26,0,164,97,215,209,156, -72,137,119,3,60,17,43,220,129,45,112,85,155,193,56,190,236,165,176,36,105, -175,52,70,138,107,204,112,184,77,96,99,103,102,97,230,25,100,96,231,225, -236,66,230,94,141,197,102,84,250,135,173,248,59,255,6,173,77,73,8,225,190, -56,92,0,0,0,0,73,69,78,68,174,66,96,130}; - -static size_t xml_res_size_6 = 653; -static unsigned char xml_res_file_6[] = { -137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, -0,31,243,255,97,0,0,2,84,73,68,65,84,120,94,149,143,95,72,83,97,24,198, -159,115,246,199,236,104,55,75,81,43,130,232,78,135,16,209,101,215,161,215, -154,173,16,91,254,129,216,52,41,29,228,146,131,186,45,47,10,210,181,104, -206,80,24,65,23,65,96,16,26,194,138,57,142,117,17,34,66,72,24,174,196,220, -97,106,82,121,76,221,219,219,169,153,174,118,209,239,240,240,113,190,195, -251,188,191,35,200,242,141,126,0,14,100,231,145,44,119,215,32,11,63,11, -200,229,186,14,163,209,136,127,225,241,116,101,47,73,23,84,84,84,162,184, -184,4,217,24,28,28,64,6,126,46,116,130,209,215,90,173,229,186,65,54,58, -58,58,51,173,28,0,156,123,12,142,189,185,141,133,153,24,254,19,255,142, -193,108,56,134,227,206,94,236,203,249,219,36,149,34,244,4,95,130,129,187, -241,52,68,81,128,182,177,133,119,253,46,135,94,48,61,61,133,28,64,31,70, -50,190,103,112,234,253,42,238,62,251,0,187,189,30,169,237,109,212,119,13, -194,89,113,20,229,39,173,96,32,166,13,50,185,28,152,194,149,7,115,8,199, -190,32,224,191,15,107,153,21,165,165,101,184,231,15,234,119,109,119,98, -232,91,57,133,93,6,123,49,24,68,120,188,62,62,13,88,82,23,89,89,195,242, -114,18,82,174,132,78,119,39,223,27,209,222,210,144,97,64,41,14,116,180, -45,17,170,170,66,211,214,249,87,82,48,155,204,48,136,6,172,243,251,231, -181,85,36,18,75,216,52,74,25,6,223,147,192,215,143,96,224,174,204,69,95, -192,15,159,183,23,27,188,157,129,40,136,32,129,96,177,20,224,233,200,19, -216,204,209,63,6,133,146,9,187,57,98,49,177,242,50,136,183,231,231,29,128, -137,13,4,65,64,97,65,17,4,126,70,159,143,225,160,65,131,152,54,200,179, -53,99,109,238,45,54,54,1,101,38,129,135,99,179,108,164,193,119,211,7,73, -202,135,180,63,15,69,69,37,56,84,114,24,30,95,55,110,57,78,112,33,128,166, -166,70,146,101,153,154,27,106,168,214,86,77,213,85,85,84,245,59,241,249, -121,154,152,136,82,155,235,26,169,106,130,62,45,45,82,75,171,147,108,231, -206,82,131,253,60,181,218,206,172,96,220,127,117,225,117,184,135,94,141, -12,147,18,25,37,37,54,65,67,67,67,122,105,60,30,39,69,81,40,20,10,81,109, -221,5,186,120,169,142,6,130,65,82,162,47,104,114,124,228,27,127,27,6,111, -106,231,132,56,147,28,149,179,149,54,136,68,34,250,176,215,235,221,177, -226,164,56,235,156,57,206,227,31,163,138,37,26,253,192,34,160,0,0,0,0,73, -69,78,68,174,66,96,130}; - -static size_t xml_res_size_7 = 521; -static unsigned char xml_res_file_7[] = { -137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, -0,31,243,255,97,0,0,0,6,98,75,71,68,0,255,0,255,0,255,160,189,167,147,0, -0,1,190,73,68,65,84,56,141,165,146,191,107,83,81,20,199,63,247,230,190, -151,151,146,162,66,172,117,85,183,44,226,224,96,81,208,65,16,117,16,68, -161,14,234,159,81,161,184,68,135,12,46,10,110,78,109,49,1,151,252,7,245, -95,200,144,193,98,83,7,145,135,91,52,239,254,120,247,94,135,180,143,136, -10,13,30,56,227,247,115,62,135,115,224,63,75,12,6,131,27,66,136,94,8,161, -181,80,80,136,239,49,198,7,202,57,183,221,110,183,91,205,102,115,161,201, -147,201,164,53,26,141,182,85,81,20,171,89,150,113,101,109,109,33,192,199, -221,93,166,211,233,89,105,140,193,90,59,211,170,213,121,253,230,45,23,47, -93,38,109,44,147,54,150,73,178,38,42,93,66,168,58,129,26,206,71,0,172,181, -24,99,80,214,90,156,115,0,100,89,131,173,157,247,60,121,252,148,66,23,244, -250,125,246,199,99,130,247,148,101,73,89,58,202,210,17,75,131,115,14,107, -45,210,24,131,49,6,0,149,36,124,218,219,227,101,183,203,231,241,1,155,155, -207,201,26,75,164,105,157,36,73,81,42,65,213,20,0,71,57,117,164,2,16,99, -228,220,249,11,220,185,125,23,99,13,157,23,29,188,47,9,49,16,171,142,21, -192,90,139,154,55,48,70,115,245,218,117,250,253,30,95,14,246,43,104,8,30, -239,61,254,112,13,241,47,3,93,76,121,213,237,32,165,68,8,89,1,98,8,248, -224,9,126,6,202,234,234,119,3,173,53,0,197,207,31,136,195,176,16,130,119, -91,31,254,56,223,250,253,91,100,245,19,104,173,103,6,243,128,105,5,16,32, -4,15,239,221,132,24,103,22,49,18,66,32,4,207,169,147,115,0,107,109,5,88, -57,179,114,236,71,210,90,207,86,240,222,127,203,243,124,245,217,198,198, -177,195,0,121,158,83,150,229,87,165,181,94,31,14,135,189,16,194,233,69, -0,82,202,92,74,249,104,161,169,127,171,95,62,189,35,236,220,54,9,177,0, -0,0,0,73,69,78,68,174,66,96,130}; - -static size_t xml_res_size_8 = 1160; -static unsigned char xml_res_file_8[] = { -60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, -110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, -115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, -47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, -47,119,120,120,114,99,34,62,10,32,32,60,111,98,106,101,99,116,32,99,108, -97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61, -34,98,111,111,107,109,97,114,107,34,62,85,73,95,115,102,116,112,95,98,105, -116,109,97,112,115,46,99,112,112,36,46,46,95,99,111,100,101,108,105,116, -101,45,105,99,111,110,115,95,116,111,111,108,98,97,114,115,95,49,54,95, -115,116,97,110,100,97,114,100,95,98,111,111,107,109,97,114,107,46,112,110, -103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32, -99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109, -101,61,34,100,105,115,99,111,110,110,101,99,116,34,62,85,73,95,115,102, -116,112,95,98,105,116,109,97,112,115,46,99,112,112,36,46,46,95,99,111,100, -101,108,105,116,101,45,105,99,111,110,115,95,100,98,45,101,120,112,108, -111,114,101,114,95,49,54,95,100,105,115,99,111,110,110,101,99,116,46,112, -110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116, -32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109, -101,61,34,115,102,116,112,95,99,111,110,110,101,99,116,101,100,34,62,85, -73,95,115,102,116,112,95,98,105,116,109,97,112,115,46,99,112,112,36,46, -46,95,99,111,100,101,108,105,116,101,45,105,99,111,110,115,95,100,98,45, -101,120,112,108,111,114,101,114,95,49,54,95,99,111,110,110,101,99,116,46, -112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99, -116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110, -97,109,101,61,34,115,102,116,112,95,100,105,115,99,111,110,110,101,99,116, -101,100,34,62,85,73,95,115,102,116,112,95,98,105,116,109,97,112,115,46, -99,112,112,36,46,46,95,99,111,100,101,108,105,116,101,45,105,99,111,110, -115,95,100,98,45,101,120,112,108,111,114,101,114,95,49,54,95,100,105,115, -99,111,110,110,101,99,116,46,112,110,103,60,47,111,98,106,101,99,116,62, -10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66, -105,116,109,97,112,34,32,110,97,109,101,61,34,115,102,116,112,95,101,114, -114,111,114,34,62,85,73,95,115,102,116,112,95,98,105,116,109,97,112,115, -46,99,112,112,36,115,102,116,112,95,101,114,114,111,114,46,112,110,103, -60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99, -108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101, -61,34,115,102,116,112,95,105,110,102,111,34,62,85,73,95,115,102,116,112, -95,98,105,116,109,97,112,115,46,99,112,112,36,115,102,116,112,95,105,110, -102,111,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98, -106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112, -34,32,110,97,109,101,61,34,115,102,116,112,95,111,107,34,62,85,73,95,115, -102,116,112,95,98,105,116,109,97,112,115,46,99,112,112,36,115,102,116,112, -95,111,107,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111, -98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97, -112,34,32,110,97,109,101,61,34,115,102,116,112,95,116,97,98,34,62,85,73, -95,115,102,116,112,95,98,105,116,109,97,112,115,46,99,112,112,36,46,46, -95,80,108,117,103,105,110,95,115,115,104,45,49,54,46,112,110,103,60,47, -111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97, -115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34, -115,115,104,45,49,54,34,62,85,73,95,115,102,116,112,95,98,105,116,109,97, -112,115,46,99,112,112,36,46,46,95,80,108,117,103,105,110,95,115,115,104, -45,49,54,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111, -98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97, -112,34,32,110,97,109,101,61,34,116,101,114,109,105,110,97,108,34,62,85, -73,95,115,102,116,112,95,98,105,116,109,97,112,115,46,99,112,112,36,46, -46,95,99,111,100,101,108,105,116,101,45,105,99,111,110,115,95,111,117,116, -112,117,116,45,112,97,110,101,95,49,54,95,116,101,114,109,105,110,97,108, -46,112,110,103,60,47,111,98,106,101,99,116,62,10,60,47,114,101,115,111, -117,114,99,101,62,10}; - -void wxC32BEInitBitmapResources() -{ - - // Check for memory FS. If not present, load the handler: - { - wxMemoryFSHandler::AddFile(wxT("XRC_resource/dummy_file"), wxT("dummy one")); - wxFileSystem fsys; - wxFSFile *f = fsys.OpenFile(wxT("memory:XRC_resource/dummy_file")); - wxMemoryFSHandler::RemoveFile(wxT("XRC_resource/dummy_file")); - if (f) delete f; - else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase); - } - - XRC_ADD_FILE(wxT("XRC_resource/UI_sftp_bitmaps.cpp$.._codelite-icons_toolbars_16_standard_bookmark.png"), xml_res_file_0, xml_res_size_0, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/UI_sftp_bitmaps.cpp$.._codelite-icons_db-explorer_16_disconnect.png"), xml_res_file_1, xml_res_size_1, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/UI_sftp_bitmaps.cpp$.._codelite-icons_db-explorer_16_connect.png"), xml_res_file_2, xml_res_size_2, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/UI_sftp_bitmaps.cpp$sftp_error.png"), xml_res_file_3, xml_res_size_3, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/UI_sftp_bitmaps.cpp$sftp_info.png"), xml_res_file_4, xml_res_size_4, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/UI_sftp_bitmaps.cpp$sftp_ok.png"), xml_res_file_5, xml_res_size_5, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/UI_sftp_bitmaps.cpp$.._Plugin_ssh-16.png"), xml_res_file_6, xml_res_size_6, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/UI_sftp_bitmaps.cpp$.._codelite-icons_output-pane_16_terminal.png"), xml_res_file_7, xml_res_size_7, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/UI_sftp_bitmaps.cpp$C__src_codelite_SFTP_UI_sftp_bitmaps.xrc"), xml_res_file_8, xml_res_size_8, wxT("text/xml")); - wxXmlResource::Get()->Load(wxT("memory:XRC_resource/UI_sftp_bitmaps.cpp$C__src_codelite_SFTP_UI_sftp_bitmaps.xrc")); -} +// +// This file was automatically generated by wxrc, do not edit by hand. +// + +#include + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +#include +#include +#include +#include + +#if wxCHECK_VERSION(2,8,5) && wxABI_VERSION >= 20805 + #define XRC_ADD_FILE(name, data, size, mime) \ + wxMemoryFSHandler::AddFileWithMimeType(name, data, size, mime) +#else + #define XRC_ADD_FILE(name, data, size, mime) \ + wxMemoryFSHandler::AddFile(name, data, size) +#endif + +static size_t xml_res_size_0 = 699; +static unsigned char xml_res_file_0[] = { +137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, +0,31,243,255,97,0,0,0,6,98,75,71,68,0,255,0,255,0,255,160,189,167,147,0, +0,2,112,73,68,65,84,56,141,149,146,75,72,84,97,20,199,255,247,229,189,163, +142,150,227,163,242,145,67,42,248,174,69,133,36,68,102,70,209,3,90,216, +180,104,19,180,40,116,21,17,4,129,212,34,72,148,40,177,54,45,162,160,192, +140,12,204,94,34,84,88,68,229,136,83,139,76,69,49,45,199,201,134,59,206, +220,231,119,90,140,214,136,147,224,129,179,56,231,252,191,31,255,195,249, +128,21,226,69,27,247,237,101,187,248,116,37,13,255,191,193,243,107,168, +75,95,191,37,39,213,85,180,243,217,117,156,94,53,64,224,165,214,210,237, +103,229,138,170,115,138,192,75,13,171,2,60,105,70,77,82,74,97,177,228,72, +65,66,162,11,105,25,149,249,61,45,216,31,79,203,197,22,125,77,80,194,14, +148,129,248,71,187,143,52,103,203,138,12,144,13,195,20,209,219,217,56,73, +22,59,56,111,226,75,125,19,140,191,128,174,139,130,71,146,248,147,140,168, +148,49,114,101,100,21,104,238,162,106,37,171,160,70,132,58,0,16,3,156,229, +240,79,120,237,225,207,61,145,192,207,17,135,192,35,0,142,123,111,90,214, +109,174,243,2,168,186,246,4,210,55,238,0,207,241,0,116,192,10,3,198,12, +96,4,162,38,165,100,64,206,6,196,100,128,87,64,140,48,51,218,139,254,190, +187,186,200,76,236,29,124,215,221,85,155,187,77,193,252,87,64,155,90,240, +198,1,180,176,165,25,2,194,63,162,189,68,55,32,231,193,219,223,173,217, +54,121,132,142,55,24,57,80,161,77,251,199,63,212,229,23,110,149,56,35,8, +132,102,129,112,16,136,132,0,77,141,166,165,1,178,11,196,57,208,251,176, +37,18,156,157,107,172,191,66,247,4,0,120,240,150,6,246,149,68,252,129,233, +225,61,57,107,211,68,94,15,3,166,1,88,118,76,2,90,40,140,87,125,221,198, +47,127,224,252,209,171,172,125,217,21,238,55,240,67,85,197,249,101,121, +153,107,226,222,252,123,32,136,215,190,49,223,177,54,86,190,216,19,99,5, +100,113,142,36,30,128,174,199,5,136,22,3,153,75,255,206,18,128,174,177, +108,103,12,128,49,130,77,4,73,136,190,73,21,1,83,35,119,92,192,45,15,54, +192,2,37,216,38,12,157,97,112,82,53,124,83,42,49,6,161,50,199,73,21,185, +78,73,17,120,48,27,220,141,227,200,60,117,7,51,75,0,204,194,166,68,145, +183,189,99,191,109,239,68,200,32,112,143,117,70,103,68,32,97,104,60,116, +217,55,174,30,218,156,231,148,5,139,99,162,73,235,128,229,128,169,57,213, +78,254,168,205,119,68,76,186,212,216,69,67,255,140,50,207,205,195,40,249, +52,170,182,154,54,237,50,109,168,139,147,63,17,75,23,213,24,63,192,235, +0,0,0,0,73,69,78,68,174,66,96,130}; + +static size_t xml_res_size_1 = 796; +static unsigned char xml_res_file_1[] = { +137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, +0,31,243,255,97,0,0,0,4,103,65,77,65,0,0,175,200,55,5,138,233,0,0,0,25, +116,69,88,116,83,111,102,116,119,97,114,101,0,65,100,111,98,101,32,73,109, +97,103,101,82,101,97,100,121,113,201,101,60,0,0,2,174,73,68,65,84,56,203, +149,146,203,75,148,81,24,198,223,239,58,243,121,183,112,240,86,146,168, +144,27,23,65,160,68,27,233,182,41,232,63,16,202,69,208,202,66,48,112,217, +50,130,150,5,73,11,9,148,200,192,74,201,208,202,75,212,194,48,77,173,70, +27,53,113,156,25,231,187,157,243,157,219,124,29,7,138,32,21,58,240,110, +14,231,249,189,239,251,156,71,9,195,16,14,58,3,211,182,78,5,175,166,84, +212,224,128,87,32,66,155,100,221,246,49,29,115,17,185,164,28,4,120,60,153, +181,164,112,140,11,214,74,153,0,198,57,8,78,193,138,168,144,72,186,240, +125,211,123,169,31,212,29,19,122,221,212,194,214,210,2,21,8,203,1,161,138, +188,83,193,246,9,68,13,5,210,89,167,125,223,9,238,143,108,154,62,225,118, +85,153,17,197,132,64,202,9,118,129,224,7,28,138,45,13,22,87,211,240,99, +109,231,166,186,95,247,171,231,170,168,131,240,157,213,164,35,69,20,34, +114,214,172,71,192,118,17,120,8,67,38,229,1,181,253,229,127,86,120,52,145, +62,42,226,207,122,25,99,90,111,103,103,71,231,221,25,236,96,126,171,178, +220,140,22,71,85,216,76,5,160,169,17,240,108,9,112,209,246,159,21,250,223, +101,44,105,84,63,179,215,47,28,137,110,69,12,195,128,217,217,217,190,174, +174,174,142,51,221,207,79,113,76,70,107,99,197,86,97,145,33,253,96,48,55, +21,135,192,69,117,121,128,236,170,203,142,11,17,67,105,132,80,192,102,124, +150,55,148,19,125,126,126,190,15,99,124,69,86,233,76,230,100,51,11,130, +209,202,154,18,203,77,251,144,76,164,190,230,114,180,57,239,1,14,104,53, +38,188,177,192,4,208,148,28,24,135,155,244,183,43,38,93,54,78,63,148,226, +7,8,161,169,198,240,197,55,230,162,179,43,159,18,104,43,177,245,148,139, +160,101,113,188,155,231,61,240,16,173,1,16,18,20,194,70,26,65,97,84,1,235, +80,141,201,150,62,191,170,175,175,55,98,177,24,12,14,14,142,215,233,35, +109,75,126,219,113,41,76,252,246,44,15,112,49,174,208,20,144,110,135,18, +22,64,114,135,65,105,129,14,181,199,26,140,201,185,55,208,226,197,129,16, +50,61,52,52,148,145,207,51,127,155,158,7,216,46,110,42,178,84,144,90,112, +16,217,93,9,182,50,20,162,186,6,86,237,9,24,126,63,205,184,104,185,182, +215,119,107,219,177,139,166,204,244,88,69,153,169,57,126,0,166,28,69,234, +64,87,21,16,57,1,137,149,109,249,231,97,207,199,225,238,137,189,0,122,214, +197,94,73,129,106,8,153,115,31,19,88,219,176,193,221,241,1,123,1,4,50,56, +216,241,167,133,16,247,246,11,156,158,245,208,152,26,26,231,23,82,46,172, +175,103,24,243,131,30,65,249,178,8,232,54,167,116,67,228,248,207,47,175, +111,240,125,1,200,69,151,157,36,123,34,131,210,206,49,45,250,48,208,65, +225,63,206,47,100,171,170,111,238,200,94,151,0,0,0,0,73,69,78,68,174,66, +96,130}; + +static size_t xml_res_size_2 = 748; +static unsigned char xml_res_file_2[] = { +137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, +0,31,243,255,97,0,0,0,4,103,65,77,65,0,0,175,200,55,5,138,233,0,0,0,25, +116,69,88,116,83,111,102,116,119,97,114,101,0,65,100,111,98,101,32,73,109, +97,103,101,82,101,97,100,121,113,201,101,60,0,0,2,126,73,68,65,84,24,25, +149,193,75,72,20,97,0,7,240,255,206,124,179,206,180,107,40,34,166,210,41, +244,208,161,160,60,228,197,131,84,96,135,14,209,53,8,58,8,69,80,209,37, +188,70,157,234,80,100,116,74,130,34,232,34,221,4,31,45,29,178,66,233,129, +104,248,126,236,184,187,163,251,154,157,249,158,179,95,123,216,131,132, +66,254,126,49,173,53,14,227,209,135,229,62,74,217,68,133,43,25,82,113,37, +166,181,198,65,222,164,118,137,148,178,131,137,106,39,229,162,53,228,226, +98,12,250,150,99,105,112,169,240,107,37,79,9,14,48,50,229,57,92,168,9,169, +162,94,25,41,84,35,137,68,60,134,164,109,130,9,137,108,129,35,239,135,132, +224,0,33,149,183,109,75,247,182,52,153,224,66,131,73,13,202,37,182,243, +1,226,38,176,188,85,128,40,211,11,4,251,120,53,190,212,93,170,230,30,31, +37,199,81,240,37,118,74,33,40,151,8,185,68,163,109,98,57,93,130,151,45, +14,127,126,121,53,69,176,199,200,148,231,72,161,222,9,177,122,73,181,76, +24,43,94,31,154,113,2,78,220,64,182,192,65,153,128,25,179,144,113,203,144, +101,58,134,26,130,186,215,147,57,194,133,250,105,19,221,101,57,39,225,175, +187,145,232,76,153,211,179,50,106,109,104,51,147,54,65,46,207,17,55,129, +160,28,64,132,204,67,141,129,186,10,85,29,76,200,174,164,99,192,34,85,56, +13,231,204,242,239,51,50,146,114,232,207,198,114,180,225,22,209,116,132, +32,96,28,97,33,132,172,208,52,106,12,212,133,156,117,10,33,65,185,196,166, +87,65,60,30,131,147,232,182,108,157,123,216,115,254,171,153,245,22,224, +186,69,172,45,100,16,150,252,69,21,9,23,53,6,234,42,1,111,13,24,71,200, +36,66,42,176,182,237,195,177,98,104,107,62,75,50,63,154,208,51,48,15,119, +113,73,101,87,115,163,42,226,167,231,39,239,43,212,16,212,149,66,118,163, +189,201,66,72,5,42,148,131,50,9,175,40,97,91,38,160,251,49,51,250,73,69, +85,113,106,110,242,193,60,246,32,168,185,249,98,230,94,163,99,92,142,19, +3,153,66,128,132,109,194,50,53,26,172,24,132,144,88,223,216,69,46,221,62, +52,251,113,112,30,255,32,131,207,190,223,77,216,198,147,68,220,0,101,2, +150,169,177,158,46,97,103,199,7,245,25,152,79,193,124,254,69,113,246,28, +251,32,62,229,79,219,154,147,208,58,194,102,214,199,166,91,68,193,11,134, +149,16,99,17,231,94,196,85,90,9,233,206,141,223,81,216,7,41,249,20,27,219, +17,76,104,164,183,138,40,238,250,253,211,111,175,77,225,63,17,26,208,99, +43,249,82,70,133,138,42,198,6,190,189,191,158,194,33,252,5,6,208,135,226, +137,235,174,81,0,0,0,0,73,69,78,68,174,66,96,130}; + +static size_t xml_res_size_3 = 531; +static unsigned char xml_res_file_3[] = { +137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, +0,31,243,255,97,0,0,1,218,73,68,65,84,120,94,109,147,63,72,27,81,28,199, +191,247,71,167,102,142,10,133,34,24,75,211,77,165,88,183,54,134,162,165, +133,130,237,226,86,138,94,204,16,112,233,214,52,107,199,27,50,8,210,161, +56,117,144,230,26,39,221,68,179,43,138,96,18,17,210,116,104,211,78,249, +123,239,245,247,123,132,227,222,53,95,238,203,193,123,247,249,240,187,227, +157,113,248,193,70,36,46,213,161,90,248,63,69,106,134,138,39,249,62,56, +81,218,141,63,120,150,189,191,90,128,97,152,136,230,178,252,209,105,158, +149,48,148,232,2,5,39,87,178,179,233,45,12,126,125,129,232,86,53,216,28, +191,139,217,244,38,0,73,18,79,73,194,2,119,226,225,243,236,204,242,38,6, +127,15,20,28,141,223,187,129,108,121,72,164,29,6,156,163,252,24,191,70, +198,14,224,212,6,252,63,30,193,245,0,250,90,40,67,10,96,45,191,194,16,137, +107,24,180,190,33,177,28,72,96,178,109,230,233,59,248,173,18,68,187,10, +8,17,84,248,124,147,250,90,155,36,191,247,145,72,109,40,9,79,96,137,206, +53,252,78,13,128,68,56,10,230,75,10,253,117,58,117,24,237,171,240,71,20, +196,138,168,96,8,67,237,233,49,168,50,36,144,146,120,77,160,75,196,8,129, +12,4,204,11,170,63,82,96,152,224,189,168,128,25,125,2,115,124,10,162,123, +171,193,235,238,46,56,221,159,159,53,220,28,139,107,19,20,171,199,251,206, +244,210,75,182,106,146,189,220,91,112,94,189,95,10,29,168,56,172,216,2, +234,21,15,204,178,32,211,188,56,85,39,108,250,241,11,12,68,159,36,13,112, +76,139,135,165,8,49,132,39,97,223,33,248,212,67,227,236,184,8,96,219,4, +71,73,42,197,218,73,137,30,152,163,17,39,0,9,188,249,180,131,215,84,72, +168,53,59,54,143,90,8,166,147,216,14,255,141,22,213,157,76,46,58,247,30, +173,98,84,234,149,239,248,113,126,194,112,142,224,94,244,103,242,121,131, +30,0,213,193,232,40,152,202,176,202,63,2,22,235,26,151,144,78,255,0,0,0, +0,73,69,78,68,174,66,96,130}; + +static size_t xml_res_size_4 = 650; +static unsigned char xml_res_file_4[] = { +137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, +0,31,243,255,97,0,0,2,81,73,68,65,84,120,94,141,147,91,104,211,80,24,199, +115,178,92,218,9,106,55,45,58,186,233,58,117,3,217,138,12,7,42,50,221,131, +151,121,65,38,248,226,131,151,233,67,133,85,153,90,157,32,12,34,78,196, +21,214,9,62,88,7,162,79,234,139,14,65,177,78,156,194,92,69,156,62,41,162, +93,47,27,182,235,168,133,54,166,39,105,142,95,194,58,26,226,196,3,191,124, +57,151,255,119,254,39,57,31,34,132,80,165,109,127,207,136,13,194,49,160, +25,216,0,208,192,196,28,129,39,125,109,169,82,1,93,218,217,235,13,246,114, +12,29,109,94,191,226,106,123,107,221,161,35,29,77,245,71,59,154,214,237, +217,182,230,96,75,99,85,47,207,150,133,97,141,96,216,17,28,232,236,238, +126,118,195,237,123,39,62,12,165,212,155,47,19,228,202,240,52,241,62,136, +145,243,128,0,239,254,96,130,60,10,205,170,158,193,247,34,172,245,21,117, +250,99,135,231,233,101,119,255,152,56,52,154,36,158,251,147,196,125,55, +172,211,122,237,173,78,177,223,117,111,146,4,94,39,73,215,192,184,8,26, +65,211,162,182,83,143,171,44,60,251,181,125,151,107,209,167,41,9,149,126, +146,219,199,157,122,60,57,244,195,224,218,229,176,146,23,193,207,185,108, +46,95,207,20,100,165,179,209,85,205,77,196,68,132,21,93,109,2,203,5,67, +255,99,36,135,26,234,236,220,248,135,112,39,163,200,202,206,2,103,101,178, +89,197,36,220,44,140,234,113,149,205,110,76,168,133,197,229,154,118,31, +163,96,165,97,86,162,104,140,11,166,4,35,23,183,232,241,240,224,23,211, +92,34,91,70,131,214,9,89,100,121,38,45,17,130,16,162,22,104,121,108,118, +135,97,12,180,148,102,227,251,239,156,104,71,156,229,31,9,204,238,8,198, +42,104,227,218,17,158,43,233,95,27,137,109,57,183,80,130,191,29,15,101, +50,10,104,131,154,131,59,233,248,180,215,90,190,148,69,52,141,140,151,204, +240,23,12,19,185,104,12,131,54,160,215,194,218,237,3,2,95,89,121,142,175, +169,181,80,255,209,164,88,68,194,169,25,255,183,87,167,47,204,23,83,237, +214,126,31,91,177,204,205,87,175,230,139,78,76,168,42,37,77,69,37,57,149, +188,21,126,115,182,91,211,25,170,177,102,211,117,129,102,217,51,140,125, +37,199,44,169,96,104,158,167,117,199,56,175,42,153,180,34,39,127,202,42, +206,251,163,99,222,75,69,141,169,156,29,45,125,14,8,39,128,3,128,115,110, +56,2,12,3,129,120,168,199,112,175,255,0,250,214,62,10,83,147,191,134,0, +0,0,0,73,69,78,68,174,66,96,130}; + +static size_t xml_res_size_5 = 590; +static unsigned char xml_res_file_5[] = { +137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, +0,31,243,255,97,0,0,2,21,73,68,65,84,120,94,165,83,95,72,83,97,20,63,247, +182,45,180,182,7,39,68,165,4,43,234,101,130,8,139,136,141,209,36,186,101, +72,145,169,51,50,48,246,208,176,150,153,50,168,54,164,73,184,28,10,19,42, +172,64,45,132,214,131,134,144,101,190,152,249,180,138,254,16,68,15,117, +31,42,99,228,197,52,113,213,245,215,119,63,116,185,38,129,121,224,199,249, +206,239,124,231,119,190,191,2,0,90,137,137,203,45,8,197,170,114,24,86,253, +151,64,83,111,121,173,78,208,127,157,83,213,95,108,236,90,150,192,249,238, +131,62,189,184,58,42,21,185,201,105,45,37,85,157,27,102,156,148,18,104, +236,44,49,100,150,165,114,62,29,25,218,247,20,149,147,50,245,142,244,226, +15,114,21,28,32,245,167,122,159,11,156,238,216,29,96,65,82,243,12,105,66, +44,246,233,4,67,187,100,171,160,113,229,13,41,211,9,230,223,147,252,229, +53,205,206,38,137,78,92,182,251,131,215,43,16,127,59,128,107,253,141,96, +113,63,131,4,64,203,249,234,163,123,49,242,162,23,177,145,11,232,121,84, +199,209,22,171,134,183,213,161,205,181,147,167,121,7,134,226,55,112,115, +240,36,30,196,175,160,239,113,20,222,22,39,106,46,218,252,167,34,197,24, +126,214,133,174,135,103,112,117,192,195,209,220,83,134,227,161,237,90,222, +14,128,132,170,115,5,126,147,209,120,201,98,201,35,81,20,41,215,148,79, +121,102,43,61,121,62,68,54,171,131,62,36,158,210,76,242,27,105,54,161,76, +146,44,127,36,0,142,219,161,151,163,156,4,64,135,234,183,134,143,5,11,17, +236,222,135,166,91,251,209,114,167,18,125,99,109,104,189,123,68,139,57, +234,162,78,148,157,221,6,54,151,119,94,64,234,37,150,214,110,10,175,89, +155,213,144,191,121,29,95,201,98,155,84,166,233,147,156,224,157,239,117, +200,163,139,115,105,79,89,242,172,15,103,27,179,26,54,90,114,73,16,5,206, +77,41,223,105,92,158,224,197,131,157,159,121,113,26,0,164,97,215,209,156, +72,137,119,3,60,17,43,220,129,45,112,85,155,193,56,190,236,165,176,36,105, +175,52,70,138,107,204,112,184,77,96,99,103,102,97,230,25,100,96,231,225, +236,66,230,94,141,197,102,84,250,135,173,248,59,255,6,173,77,73,8,225,190, +56,92,0,0,0,0,73,69,78,68,174,66,96,130}; + +static size_t xml_res_size_6 = 653; +static unsigned char xml_res_file_6[] = { +137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, +0,31,243,255,97,0,0,2,84,73,68,65,84,120,94,149,143,95,72,83,97,24,198, +159,115,246,199,236,104,55,75,81,43,130,232,78,135,16,209,101,215,161,215, +154,173,16,91,254,129,216,52,41,29,228,146,131,186,45,47,10,210,181,104, +206,80,24,65,23,65,96,16,26,194,138,57,142,117,17,34,66,72,24,174,196,220, +97,106,82,121,76,221,219,219,169,153,174,118,209,239,240,240,113,190,195, +251,188,191,35,200,242,141,126,0,14,100,231,145,44,119,215,32,11,63,11, +200,229,186,14,163,209,136,127,225,241,116,101,47,73,23,84,84,84,162,184, +184,4,217,24,28,28,64,6,126,46,116,130,209,215,90,173,229,186,65,54,58, +58,58,51,173,28,0,156,123,12,142,189,185,141,133,153,24,254,19,255,142, +193,108,56,134,227,206,94,236,203,249,219,36,149,34,244,4,95,130,129,187, +241,52,68,81,128,182,177,133,119,253,46,135,94,48,61,61,133,28,64,31,70, +50,190,103,112,234,253,42,238,62,251,0,187,189,30,169,237,109,212,119,13, +194,89,113,20,229,39,173,96,32,166,13,50,185,28,152,194,149,7,115,8,199, +190,32,224,191,15,107,153,21,165,165,101,184,231,15,234,119,109,119,98, +232,91,57,133,93,6,123,49,24,68,120,188,62,62,13,88,82,23,89,89,195,242, +114,18,82,174,132,78,119,39,223,27,209,222,210,144,97,64,41,14,116,180, +45,17,170,170,66,211,214,249,87,82,48,155,204,48,136,6,172,243,251,231, +181,85,36,18,75,216,52,74,25,6,223,147,192,215,143,96,224,174,204,69,95, +192,15,159,183,23,27,188,157,129,40,136,32,129,96,177,20,224,233,200,19, +216,204,209,63,6,133,146,9,187,57,98,49,177,242,50,136,183,231,231,29,128, +137,13,4,65,64,97,65,17,4,126,70,159,143,225,160,65,131,152,54,200,179, +53,99,109,238,45,54,54,1,101,38,129,135,99,179,108,164,193,119,211,7,73, +202,135,180,63,15,69,69,37,56,84,114,24,30,95,55,110,57,78,112,33,128,166, +166,70,146,101,153,154,27,106,168,214,86,77,213,85,85,84,245,59,241,249, +121,154,152,136,82,155,235,26,169,106,130,62,45,45,82,75,171,147,108,231, +206,82,131,253,60,181,218,206,172,96,220,127,117,225,117,184,135,94,141, +12,147,18,25,37,37,54,65,67,67,67,122,105,60,30,39,69,81,40,20,10,81,109, +221,5,186,120,169,142,6,130,65,82,162,47,104,114,124,228,27,127,27,6,111, +106,231,132,56,147,28,149,179,149,54,136,68,34,250,176,215,235,221,177, +226,164,56,235,156,57,206,227,31,163,138,37,26,253,192,34,160,0,0,0,0,73, +69,78,68,174,66,96,130}; + +static size_t xml_res_size_7 = 521; +static unsigned char xml_res_file_7[] = { +137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, +0,31,243,255,97,0,0,0,6,98,75,71,68,0,255,0,255,0,255,160,189,167,147,0, +0,1,190,73,68,65,84,56,141,165,146,191,107,83,81,20,199,63,247,230,190, +151,151,146,162,66,172,117,85,183,44,226,224,96,81,208,65,16,117,16,68, +161,14,234,159,81,161,184,68,135,12,46,10,110,78,109,49,1,151,252,7,245, +95,200,144,193,98,83,7,145,135,91,52,239,254,120,247,94,135,180,143,136, +10,13,30,56,227,247,115,62,135,115,224,63,75,12,6,131,27,66,136,94,8,161, +181,80,80,136,239,49,198,7,202,57,183,221,110,183,91,205,102,115,161,201, +147,201,164,53,26,141,182,85,81,20,171,89,150,113,101,109,109,33,192,199, +221,93,166,211,233,89,105,140,193,90,59,211,170,213,121,253,230,45,23,47, +93,38,109,44,147,54,150,73,178,38,42,93,66,168,58,129,26,206,71,0,172,181, +24,99,80,214,90,156,115,0,100,89,131,173,157,247,60,121,252,148,66,23,244, +250,125,246,199,99,130,247,148,101,73,89,58,202,210,17,75,131,115,14,107, +45,210,24,131,49,6,0,149,36,124,218,219,227,101,183,203,231,241,1,155,155, +207,201,26,75,164,105,157,36,73,81,42,65,213,20,0,71,57,117,164,2,16,99, +228,220,249,11,220,185,125,23,99,13,157,23,29,188,47,9,49,16,171,142,21, +192,90,139,154,55,48,70,115,245,218,117,250,253,30,95,14,246,43,104,8,30, +239,61,254,112,13,241,47,3,93,76,121,213,237,32,165,68,8,89,1,98,8,248, +224,9,126,6,202,234,234,119,3,173,53,0,197,207,31,136,195,176,16,130,119, +91,31,254,56,223,250,253,91,100,245,19,104,173,103,6,243,128,105,5,16,32, +4,15,239,221,132,24,103,22,49,18,66,32,4,207,169,147,115,0,107,109,5,88, +57,179,114,236,71,210,90,207,86,240,222,127,203,243,124,245,217,198,198, +177,195,0,121,158,83,150,229,87,165,181,94,31,14,135,189,16,194,233,69, +0,82,202,92,74,249,104,161,169,127,171,95,62,189,35,236,220,54,9,177,0, +0,0,0,73,69,78,68,174,66,96,130}; + +static size_t xml_res_size_8 = 1160; +static unsigned char xml_res_file_8[] = { +60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, +110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, +115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, +47,47,119,119,119,46,119,120,119,105,100,103,101,116,115,46,111,114,103, +47,119,120,120,114,99,34,62,10,32,32,60,111,98,106,101,99,116,32,99,108, +97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61, +34,98,111,111,107,109,97,114,107,34,62,85,73,95,115,102,116,112,95,98,105, +116,109,97,112,115,46,99,112,112,36,46,46,95,99,111,100,101,108,105,116, +101,45,105,99,111,110,115,95,116,111,111,108,98,97,114,115,95,49,54,95, +115,116,97,110,100,97,114,100,95,98,111,111,107,109,97,114,107,46,112,110, +103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32, +99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109, +101,61,34,100,105,115,99,111,110,110,101,99,116,34,62,85,73,95,115,102, +116,112,95,98,105,116,109,97,112,115,46,99,112,112,36,46,46,95,99,111,100, +101,108,105,116,101,45,105,99,111,110,115,95,100,98,45,101,120,112,108, +111,114,101,114,95,49,54,95,100,105,115,99,111,110,110,101,99,116,46,112, +110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116, +32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109, +101,61,34,115,102,116,112,95,99,111,110,110,101,99,116,101,100,34,62,85, +73,95,115,102,116,112,95,98,105,116,109,97,112,115,46,99,112,112,36,46, +46,95,99,111,100,101,108,105,116,101,45,105,99,111,110,115,95,100,98,45, +101,120,112,108,111,114,101,114,95,49,54,95,99,111,110,110,101,99,116,46, +112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99, +116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110, +97,109,101,61,34,115,102,116,112,95,100,105,115,99,111,110,110,101,99,116, +101,100,34,62,85,73,95,115,102,116,112,95,98,105,116,109,97,112,115,46, +99,112,112,36,46,46,95,99,111,100,101,108,105,116,101,45,105,99,111,110, +115,95,100,98,45,101,120,112,108,111,114,101,114,95,49,54,95,100,105,115, +99,111,110,110,101,99,116,46,112,110,103,60,47,111,98,106,101,99,116,62, +10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66, +105,116,109,97,112,34,32,110,97,109,101,61,34,115,102,116,112,95,101,114, +114,111,114,34,62,85,73,95,115,102,116,112,95,98,105,116,109,97,112,115, +46,99,112,112,36,115,102,116,112,95,101,114,114,111,114,46,112,110,103, +60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99, +108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101, +61,34,115,102,116,112,95,105,110,102,111,34,62,85,73,95,115,102,116,112, +95,98,105,116,109,97,112,115,46,99,112,112,36,115,102,116,112,95,105,110, +102,111,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98, +106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112, +34,32,110,97,109,101,61,34,115,102,116,112,95,111,107,34,62,85,73,95,115, +102,116,112,95,98,105,116,109,97,112,115,46,99,112,112,36,115,102,116,112, +95,111,107,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111, +98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97, +112,34,32,110,97,109,101,61,34,115,102,116,112,95,116,97,98,34,62,85,73, +95,115,102,116,112,95,98,105,116,109,97,112,115,46,99,112,112,36,46,46, +95,80,108,117,103,105,110,95,115,115,104,45,49,54,46,112,110,103,60,47, +111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97, +115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34, +115,115,104,45,49,54,34,62,85,73,95,115,102,116,112,95,98,105,116,109,97, +112,115,46,99,112,112,36,46,46,95,80,108,117,103,105,110,95,115,115,104, +45,49,54,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111, +98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97, +112,34,32,110,97,109,101,61,34,116,101,114,109,105,110,97,108,34,62,85, +73,95,115,102,116,112,95,98,105,116,109,97,112,115,46,99,112,112,36,46, +46,95,99,111,100,101,108,105,116,101,45,105,99,111,110,115,95,111,117,116, +112,117,116,45,112,97,110,101,95,49,54,95,116,101,114,109,105,110,97,108, +46,112,110,103,60,47,111,98,106,101,99,116,62,10,60,47,114,101,115,111, +117,114,99,101,62,10}; + +void wxC32BEInitBitmapResources() +{ + + // Check for memory FS. If not present, load the handler: + { + wxMemoryFSHandler::AddFile(wxT("XRC_resource/dummy_file"), wxT("dummy one")); + wxFileSystem fsys; + wxFSFile *f = fsys.OpenFile(wxT("memory:XRC_resource/dummy_file")); + wxMemoryFSHandler::RemoveFile(wxT("XRC_resource/dummy_file")); + if (f) delete f; + else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase); + } + + XRC_ADD_FILE(wxT("XRC_resource/UI_sftp_bitmaps.cpp$.._codelite-icons_toolbars_16_standard_bookmark.png"), xml_res_file_0, xml_res_size_0, wxT("image/x-apple-ios-png")); + XRC_ADD_FILE(wxT("XRC_resource/UI_sftp_bitmaps.cpp$.._codelite-icons_db-explorer_16_disconnect.png"), xml_res_file_1, xml_res_size_1, wxT("image/x-apple-ios-png")); + XRC_ADD_FILE(wxT("XRC_resource/UI_sftp_bitmaps.cpp$.._codelite-icons_db-explorer_16_connect.png"), xml_res_file_2, xml_res_size_2, wxT("image/x-apple-ios-png")); + XRC_ADD_FILE(wxT("XRC_resource/UI_sftp_bitmaps.cpp$sftp_error.png"), xml_res_file_3, xml_res_size_3, wxT("image/x-apple-ios-png")); + XRC_ADD_FILE(wxT("XRC_resource/UI_sftp_bitmaps.cpp$sftp_info.png"), xml_res_file_4, xml_res_size_4, wxT("image/x-apple-ios-png")); + XRC_ADD_FILE(wxT("XRC_resource/UI_sftp_bitmaps.cpp$sftp_ok.png"), xml_res_file_5, xml_res_size_5, wxT("image/x-apple-ios-png")); + XRC_ADD_FILE(wxT("XRC_resource/UI_sftp_bitmaps.cpp$.._Plugin_ssh-16.png"), xml_res_file_6, xml_res_size_6, wxT("image/x-apple-ios-png")); + XRC_ADD_FILE(wxT("XRC_resource/UI_sftp_bitmaps.cpp$.._codelite-icons_output-pane_16_terminal.png"), xml_res_file_7, xml_res_size_7, wxT("image/x-apple-ios-png")); + XRC_ADD_FILE(wxT("XRC_resource/UI_sftp_bitmaps.cpp$_home_eran_devl_codelite_SFTP_UI_sftp_bitmaps.xrc"), xml_res_file_8, xml_res_size_8, wxT("text/xml")); + wxXmlResource::Get()->Load(wxT("memory:XRC_resource/UI_sftp_bitmaps.cpp$_home_eran_devl_codelite_SFTP_UI_sftp_bitmaps.xrc")); +} diff -Nru codelite-8.0.1+dfsg2/SFTP/UI.wxcp codelite-9.0+dfsg/SFTP/UI.wxcp --- codelite-8.0.1+dfsg2/SFTP/UI.wxcp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/SFTP/UI.wxcp 2015-10-11 13:56:07.000000000 +0000 @@ -1,7 +1,7 @@ { "metadata": { "m_generatedFilesDir": ".", - "m_objCounter": 95, + "m_objCounter": 114, "m_includeFiles": [], "m_bitmapFunction": "wxC32BEInitBitmapResources", "m_bitmapsFile": "UI_sftp_bitmaps.cpp", @@ -861,7 +861,7 @@ }, { "type": "choice", "m_label": "Kind:", - "m_selection": 0, + "m_selection": 4, "m_options": ["normal", "checkable", "radio", "separator", "dropdown"] }, { "type": "bool", @@ -869,21 +869,91 @@ "m_value": true }], "m_events": [{ - "m_eventName": "wxEVT_COMMAND_TOOL_CLICKED", - "m_eventClass": "wxCommandEvent", - "m_eventHandler": "wxCommandEventHandler", - "m_functionNameAndSignature": "OnOpenTerminal(wxCommandEvent& event)", - "m_description": "Process a wxEVT_COMMAND_TOOL_CLICKED event (a synonym for wxEVT_COMMAND_MENU_SELECTED). Pass the id of the tool", - "m_noBody": false - }, { "m_eventName": "wxEVT_UPDATE_UI", "m_eventClass": "wxUpdateUIEvent", "m_eventHandler": "wxUpdateUIEventHandler", "m_functionNameAndSignature": "OnOpenTerminalUI(wxUpdateUIEvent& event)", "m_description": "Process a wxEVT_UPDATE_UI event", "m_noBody": false + }, { + "m_eventName": "wxEVT_COMMAND_AUITOOLBAR_TOOL_DROPDOWN", + "m_eventClass": "wxAuiToolBarEvent", + "m_eventHandler": "wxAuiToolBarEventHandler", + "m_functionNameAndSignature": "OnOpenTerminal(wxAuiToolBarEvent& event)", + "m_description": "Process a wxEVT_COMMAND_AUITOOLBAR_TOOL_DROPDOWN event", + "m_noBody": false }], - "m_children": [] + "m_children": [{ + "m_type": 4458, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "m_menu96" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Menu" + }], + "m_events": [], + "m_children": [{ + "m_type": 4459, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "ID_SFTP_CUSTOMIZE" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_menuItemCustomize" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "SFTP Settings..." + }, { + "type": "string", + "m_label": "Shortcut:", + "m_value": "" + }, { + "type": "string", + "m_label": "Help String:", + "m_value": "SFTP Settings..." + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Kind:", + "m_selection": 0, + "m_options": ["normal", "checkable", "radio", "separator"] + }, { + "type": "bool", + "m_label": "Checked", + "m_value": false + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_MENU_SELECTED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnSftpSettings(wxCommandEvent& event)", + "m_description": "Menu item has been clicked", + "m_noBody": false + }], + "m_children": [] + }] + }] }] }, { "m_type": 4411, @@ -1326,62 +1396,6 @@ }], "m_events": [], "m_children": [] - }, { - "m_type": 4510, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "Type" - }, { - "type": "choice", - "m_label": "Alignment", - "m_selection": 0, - "m_options": ["wxALIGN_LEFT", "wxALIGN_RIGHT", "wxALIGN_CENTER"] - }, { - "type": "string", - "m_label": "Width:", - "m_value": "100" - }, { - "type": "colHeaderFlags", - "m_label": "Column Flags", - "stringValue": "wxCOL_RESIZABLE" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4510, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "Size" - }, { - "type": "choice", - "m_label": "Alignment", - "m_selection": 0, - "m_options": ["wxALIGN_LEFT", "wxALIGN_RIGHT", "wxALIGN_CENTER"] - }, { - "type": "string", - "m_label": "Width:", - "m_value": "50" - }, { - "type": "colHeaderFlags", - "m_label": "Column Flags", - "stringValue": "wxCOL_RESIZABLE" - }], - "m_events": [], - "m_children": [] }] }] }] @@ -2312,7 +2326,14 @@ "m_label": "Default Button", "m_value": true }], - "m_events": [], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_BUTTON_CLICKED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnOK(wxCommandEvent& event)", + "m_description": "Process a wxEVT_COMMAND_BUTTON_CLICKED event, when the button is clicked.", + "m_noBody": false + }], "m_children": [] }, { "m_type": 4468, @@ -2334,6 +2355,457 @@ }, { "type": "multi-string", "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Default Button", + "m_value": false + }], + "m_events": [], + "m_children": [] + }] + }] + }] + }, { + "m_type": 4421, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxDEFAULT_DIALOG_STYLE", "wxRESIZE_BORDER"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "SFTPUploadDialogBase" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Enable Window Persistency:", + "m_value": true + }, { + "type": "string", + "m_label": "Title:", + "m_value": "SFTP Upload Files" + }, { + "type": "virtualFolderPicker", + "m_label": "Virtual Folder:", + "m_path": "SFTP:UI" + }, { + "type": "choice", + "m_label": "Centre:", + "m_selection": 1, + "m_options": ["", "wxBOTH", "wxVERTICAL", "wxHORIZONTAL"] + }, { + "type": "string", + "m_label": "Inherited Class", + "m_value": "SFTPUploadDialog" + }, { + "type": "string", + "m_label": "File:", + "m_value": "SFTPUploadDialog" + }, { + "type": "string", + "m_label": "Class Decorator", + "m_value": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (16x16) :", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (32x32) :", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (64x64) :", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (128x128):", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (256x256):", + "m_path": "" + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "boxSizer102" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4405, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_staticText110" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Label:", + "m_value": "Upload the files to this folder:" + }, { + "type": "string", + "m_label": "Wrap:", + "m_value": "-1" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4406, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "400,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_textCtrlRemoteFolder" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "Set the remote folder path" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "wxSYS_ANSI_FIXED_FONT,normal,normal,normal" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": true + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Value:", + "m_value": "" + }, { + "type": "string", + "m_label": "Text Hint", + "m_value": "" + }, { + "type": "string", + "m_label": "Max Length:", + "m_value": "0" + }, { + "type": "bool", + "m_label": "Auto Complete Directories:", + "m_value": false + }, { + "type": "bool", + "m_label": "Auto Complete Files:", + "m_value": false + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4454, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "Spacer114" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "0,0" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4467, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_HORIZONTAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_stdBtnSizer104" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }], + "m_events": [], + "m_children": [{ + "m_type": 4468, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "choice", + "m_label": "ID:", + "m_selection": 0, + "m_options": ["wxID_OK", "wxID_YES", "wxID_SAVE", "wxID_APPLY", "wxID_CLOSE", "wxID_NO", "wxID_CANCEL", "wxID_HELP", "wxID_CONTEXT_HELP"] + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_buttonOK" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Default Button", + "m_value": true + }], + "m_events": [{ + "m_eventName": "wxEVT_UPDATE_UI", + "m_eventClass": "wxUpdateUIEvent", + "m_eventHandler": "wxUpdateUIEventHandler", + "m_functionNameAndSignature": "OnOKUI(wxUpdateUIEvent& event)", + "m_description": "Process a wxEVT_UPDATE_UI event", + "m_noBody": false + }], + "m_children": [] + }, { + "m_type": 4468, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "choice", + "m_label": "ID:", + "m_selection": 6, + "m_options": ["wxID_OK", "wxID_YES", "wxID_SAVE", "wxID_APPLY", "wxID_CLOSE", "wxID_NO", "wxID_CANCEL", "wxID_HELP", "wxID_CONTEXT_HELP"] + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_button108" + }, { + "type": "multi-string", + "m_label": "Tooltip:", "m_value": "" }, { "type": "bool", diff -Nru codelite-8.0.1+dfsg2/SnipWiz/CMakeLists.txt codelite-9.0+dfsg/SnipWiz/CMakeLists.txt --- codelite-8.0.1+dfsg2/SnipWiz/CMakeLists.txt 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/SnipWiz/CMakeLists.txt 2015-10-11 13:56:07.000000000 +0000 @@ -26,12 +26,6 @@ add_definitions(-Winvalid-pch) endif ( USE_PCH ) -# Add RPATH -if (UNIX) -set (LINKER_OPTIONS -Wl,-rpath,"${PLUGINS_DIR}") -endif (UNIX) - - if (UNIX AND NOT APPLE) set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC" ) set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC" ) @@ -54,7 +48,5 @@ ${wxWidgets_LIBRARIES} libcodelite plugin - wxsqlite3 - sqlite3lib ) CL_INSTALL_PLUGIN(${PLUGIN_NAME}) diff -Nru codelite-8.0.1+dfsg2/SnipWiz/snipwiz.cpp codelite-9.0+dfsg/SnipWiz/snipwiz.cpp --- codelite-8.0.1+dfsg2/SnipWiz/snipwiz.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/SnipWiz/snipwiz.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -109,7 +109,7 @@ : IPlugin(manager) { m_topWin = NULL; - m_longName = wxT("Snippet wizard"); + m_longName = _("Snippet wizard"); m_shortName = plugName; m_topWin = m_mgr->GetTheApp(); diff -Nru codelite-8.0.1+dfsg2/SnipWiz/templateclassbasedlg.h codelite-9.0+dfsg/SnipWiz/templateclassbasedlg.h --- codelite-8.0.1+dfsg2/SnipWiz/templateclassbasedlg.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/SnipWiz/templateclassbasedlg.h 2015-10-11 13:56:07.000000000 +0000 @@ -4,8 +4,8 @@ // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// -#ifndef TEMPLATECLASSBASEDLG_BASE_CLASSES_H -#define TEMPLATECLASSBASEDLG_BASE_CLASSES_H +#ifndef CODELITE_SNIPWIZ_TEMPLATECLASSBASEDLG_BASE_CLASSES_H +#define CODELITE_SNIPWIZ_TEMPLATECLASSBASEDLG_BASE_CLASSES_H #include #include diff -Nru codelite-8.0.1+dfsg2/SpellChecker/CMakeLists.txt codelite-9.0+dfsg/SpellChecker/CMakeLists.txt --- codelite-8.0.1+dfsg2/SpellChecker/CMakeLists.txt 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/SpellChecker/CMakeLists.txt 2015-10-11 13:56:07.000000000 +0000 @@ -67,9 +67,6 @@ add_definitions(-Winvalid-pch) endif ( USE_PCH ) - # Add RPATH - set (LINKER_OPTIONS -Wl,-rpath,"${PLUGINS_DIR}") - FILE(GLOB SRCS "*.cpp") # Define the output @@ -83,8 +80,6 @@ ${LIBHUNSPELL} libcodelite plugin - wxsqlite3 - sqlite3lib ) # Installation destination diff -Nru codelite-8.0.1+dfsg2/SpellChecker/IHunSpell.cpp codelite-9.0+dfsg/SpellChecker/IHunSpell.cpp --- codelite-8.0.1+dfsg2/SpellChecker/IHunSpell.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/SpellChecker/IHunSpell.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -35,6 +35,7 @@ ///////////////////////////////////////////////////////////////////////////// // For compilers that support precompilation, includes "wx/wx.h". #include "wx/wxprec.h" +#include #ifndef WX_PRECOMP #include "wx/wx.h" @@ -91,13 +92,13 @@ wxFileName fna(aff); if(!fna.FileExists()) { - ::wxMessageBox(_("Could not find aff file!")); + wxLogMessage(_("Could not find aff file!")); return false; } wxFileName fnd(dict); if(!fnd.FileExists()) { - ::wxMessageBox(_("Could not find dictionary file!")); + wxLogMessage(_("Could not find dictionary file!")); return false; } // so far ok, init engine @@ -105,7 +106,7 @@ return true; - ::wxMessageBox(_("Could not initialize spelling engine!")); + wxLogMessage(_("Could not initialize spelling engine!")); return false; } // ------------------------------------------------------------ diff -Nru codelite-8.0.1+dfsg2/SpellChecker/spellcheck.cpp codelite-9.0+dfsg/SpellChecker/spellcheck.cpp --- codelite-8.0.1+dfsg2/SpellChecker/spellcheck.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/SpellChecker/spellcheck.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -53,8 +53,8 @@ #include "res/spellcheck16.b2c" #include "res/spellcheck22.b2c" -#include "res/contCheck16.b2c" -#include "res/contCheck22.b2c" +//#include "res/contCheck16.b2c" +//#include "res/contCheck22.b2c" static SpellCheck* thePlugin = NULL; #define SPC_BASEID 10000 @@ -74,7 +74,7 @@ PluginInfo info; info.SetAuthor(wxT("Frank Lichtner")); info.SetName(wxT("SpellCheck")); - info.SetDescription(wxT("CodeLite spell checker")); + info.SetDescription(_("CodeLite spell checker")); info.SetVersion(wxT("v1.6")); return info; } @@ -112,7 +112,7 @@ { m_topWin = NULL; m_pEngine = NULL; - m_longName = wxT("CodeLite spell-checker"); + m_longName = _("CodeLite spell-checker"); m_shortName = s_plugName; m_sepItem = NULL; m_pToolbar = NULL; @@ -123,7 +123,7 @@ if(m_pEngine) { LoadSettings(); - wxString userDictPath = wxStandardPaths::Get().GetUserDataDir(); + wxString userDictPath = clStandardPaths::Get().GetUserDataDir(); userDictPath << wxFILE_SEP_PATH << wxT("spellcheck") << wxFILE_SEP_PATH; if(!wxFileName::DirExists(userDictPath)) wxFileName::Mkdir(userDictPath); diff -Nru codelite-8.0.1+dfsg2/SpellChecker/wxcrafter_bitmaps.cpp codelite-9.0+dfsg/SpellChecker/wxcrafter_bitmaps.cpp --- codelite-8.0.1+dfsg2/SpellChecker/wxcrafter_bitmaps.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/SpellChecker/wxcrafter_bitmaps.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -197,36 +197,35 @@ 183,0,197,253,176,197,111,188,200,191,243,27,120,165,48,58,35,116,108,139, 0,0,0,0,73,69,78,68,174,66,96,130}; -static size_t xml_res_size_4 = 555; +static size_t xml_res_size_4 = 537; static unsigned char xml_res_file_4[] = { 60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, 110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, 115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, 47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, -47,119,120,120,114,99,34,32,118,101,114,115,105,111,110,61,34,50,46,51, -46,48,46,49,34,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, +47,119,120,120,114,99,34,62,10,32,32,60,111,98,106,101,99,116,32,99,108, +97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61, +34,115,112,101,108,108,67,104,101,99,107,101,114,49,54,34,62,119,120,99, +114,97,102,116,101,114,95,98,105,116,109,97,112,115,46,99,112,112,36,114, +101,115,95,115,112,101,108,108,99,104,101,99,107,45,49,54,46,112,110,103, +60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99, +108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101, +61,34,115,112,101,108,108,67,104,101,99,107,101,114,49,54,67,111,110,116, +34,62,119,120,99,114,97,102,116,101,114,95,98,105,116,109,97,112,115,46, +99,112,112,36,114,101,115,95,115,112,101,108,108,99,104,101,99,107,45,49, +54,45,99,111,110,116,105,110,111,117,115,46,112,110,103,60,47,111,98,106, +101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61, +34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,115,112,101, +108,108,67,104,101,99,107,101,114,50,52,34,62,119,120,99,114,97,102,116, +101,114,95,98,105,116,109,97,112,115,46,99,112,112,36,114,101,115,95,115, +112,101,108,108,99,104,101,99,107,45,50,52,46,112,110,103,60,47,111,98, +106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, 61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,115,112, -101,108,108,67,104,101,99,107,101,114,49,54,34,62,119,120,99,114,97,102, -116,101,114,95,98,105,116,109,97,112,115,46,99,112,112,36,114,101,115,95, -115,112,101,108,108,99,104,101,99,107,45,49,54,46,112,110,103,60,47,111, -98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115, -115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,115, -112,101,108,108,67,104,101,99,107,101,114,49,54,67,111,110,116,34,62,119, -120,99,114,97,102,116,101,114,95,98,105,116,109,97,112,115,46,99,112,112, -36,114,101,115,95,115,112,101,108,108,99,104,101,99,107,45,49,54,45,99, -111,110,116,105,110,111,117,115,46,112,110,103,60,47,111,98,106,101,99, -116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119, -120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,115,112,101,108,108, -67,104,101,99,107,101,114,50,52,34,62,119,120,99,114,97,102,116,101,114, -95,98,105,116,109,97,112,115,46,99,112,112,36,114,101,115,95,115,112,101, -108,108,99,104,101,99,107,45,50,52,46,112,110,103,60,47,111,98,106,101, -99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34, -119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,115,112,101,108, -108,67,104,101,99,107,101,114,50,52,67,111,110,116,34,62,119,120,99,114, -97,102,116,101,114,95,98,105,116,109,97,112,115,46,99,112,112,36,114,101, -115,95,115,112,101,108,108,99,104,101,99,107,45,50,52,45,99,111,110,116, -105,110,111,117,115,46,112,110,103,60,47,111,98,106,101,99,116,62,10,60, -47,114,101,115,111,117,114,99,101,62,10}; +101,108,108,67,104,101,99,107,101,114,50,52,67,111,110,116,34,62,119,120, +99,114,97,102,116,101,114,95,98,105,116,109,97,112,115,46,99,112,112,36, +114,101,115,95,115,112,101,108,108,99,104,101,99,107,45,50,52,45,99,111, +110,116,105,110,111,117,115,46,112,110,103,60,47,111,98,106,101,99,116, +62,10,60,47,114,101,115,111,117,114,99,101,62,10}; void wxC9A94InitBitmapResources() { diff -Nru codelite-8.0.1+dfsg2/SpellChecker/wxcrafter_bitmaps.xrc codelite-9.0+dfsg/SpellChecker/wxcrafter_bitmaps.xrc --- codelite-8.0.1+dfsg2/SpellChecker/wxcrafter_bitmaps.xrc 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/SpellChecker/wxcrafter_bitmaps.xrc 2015-10-11 13:56:07.000000000 +0000 @@ -1,5 +1,5 @@ - + res\spellcheck-16.png res\spellcheck-16-continous.png res\spellcheck-24.png diff -Nru codelite-8.0.1+dfsg2/SpellChecker/wxcrafter.cpp codelite-9.0+dfsg/SpellChecker/wxcrafter.cpp --- codelite-8.0.1+dfsg2/SpellChecker/wxcrafter.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/SpellChecker/wxcrafter.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -32,9 +32,9 @@ m_staticText2 = new wxStaticText(this, wxID_ANY, _("Dictionary path:"), wxDefaultPosition, wxSize(-1, -1), 0); - bSizer51->Add(m_staticText2, 0, wxALL|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5); + bSizer51->Add(m_staticText2, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5); - m_pDirPicker = new wxDirPickerCtrl(this, wxID_ANY, wxEmptyString, wxT("Select a folder"), wxDefaultPosition, wxSize(-1, -1), wxDIRP_DEFAULT_STYLE|wxDIRP_USE_TEXTCTRL); + m_pDirPicker = new wxDirPickerCtrl(this, wxID_ANY, wxEmptyString, _("Select a folder"), wxDefaultPosition, wxSize(-1, -1), wxDIRP_DEFAULT_STYLE|wxDIRP_USE_TEXTCTRL); m_pDirPicker->SetToolTip(_("Select the location of the installed dictionaries")); bSizer51->Add(m_pDirPicker, 1, wxALL, 2); @@ -120,11 +120,19 @@ m_stdBtnSizer12->AddButton(m_buttonCancel); m_stdBtnSizer12->Realize(); + SetName(wxT("SpellCheckerSettings_base")); SetSizeHints(-1,-1); if ( GetSizer() ) { GetSizer()->Fit(this); } - Centre(); + CentreOnParent(); +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(this)) { + wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); + } +#endif // Connect events this->Connect(wxEVT_INIT_DIALOG, wxInitDialogEventHandler(SpellCheckerSettings_base::OnInitDialog), NULL, this); m_pDirPicker->Connect(wxEVT_COMMAND_DIRPICKER_CHANGED, wxFileDirPickerEventHandler(SpellCheckerSettings_base::OnDirChanged), NULL, this); @@ -223,11 +231,19 @@ bSizer12->Add(m_button3, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 5); + SetName(wxT("CorrectSpellingDlg_base")); SetSizeHints(-1,-1); if ( GetSizer() ) { GetSizer()->Fit(this); } - Centre(); + CentreOnParent(); +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(this)) { + wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); + } +#endif // Connect events this->Connect(wxEVT_INIT_DIALOG, wxInitDialogEventHandler(CorrectSpellingDlg_base::OnInitDialog), NULL, this); m_pSuggestions->Connect(wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler(CorrectSpellingDlg_base::OnSuggestionSelected), NULL, this); diff -Nru codelite-8.0.1+dfsg2/SpellChecker/wxcrafter.h codelite-9.0+dfsg/SpellChecker/wxcrafter.h --- codelite-8.0.1+dfsg2/SpellChecker/wxcrafter.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/SpellChecker/wxcrafter.h 2015-10-11 13:56:07.000000000 +0000 @@ -4,8 +4,8 @@ // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// -#ifndef WXCRAFTER_BASE_CLASSES_H -#define WXCRAFTER_BASE_CLASSES_H +#ifndef CODELITE_SPELLCHECKER_WXCRAFTER_BASE_CLASSES_H +#define CODELITE_SPELLCHECKER_WXCRAFTER_BASE_CLASSES_H #include #include @@ -26,6 +26,12 @@ #include #include #include +#if wxVERSION_NUMBER >= 2900 +#include +#include +#include +#include +#endif class SpellCheckerSettings_base : public wxDialog { @@ -55,6 +61,18 @@ virtual void OnUpdateOk(wxUpdateUIEvent& event) { event.Skip(); } public: + wxStaticText* GetStaticText2() { return m_staticText2; } + wxDirPickerCtrl* GetPDirPicker() { return m_pDirPicker; } + wxHyperlinkCtrl* GetPHyperlink() { return m_pHyperlink; } + wxStaticText* GetStaticText4() { return m_staticText4; } + wxTextCtrl* GetPCurrentLanguage() { return m_pCurrentLanguage; } + wxListBox* GetPLanguageList() { return m_pLanguageList; } + wxCheckBox* GetPStrings() { return m_pStrings; } + wxCheckBox* GetPCppComments() { return m_pCppComments; } + wxCheckBox* GetPC_Comments() { return m_pC_Comments; } + wxCheckBox* GetPDox1() { return m_pDox1; } + wxCheckBox* GetPDox2() { return m_pDox2; } + wxButton* GetButtonClearIgnoreList() { return m_buttonClearIgnoreList; } SpellCheckerSettings_base(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("SpellChecker Settings"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1, -1), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER); virtual ~SpellCheckerSettings_base(); }; @@ -83,6 +101,15 @@ virtual void OnSuggestClick(wxCommandEvent& event) { event.Skip(); } public: + wxStaticText* GetStaticText1() { return m_staticText1; } + wxTextCtrl* GetPMisspelling() { return m_pMisspelling; } + wxStaticText* GetStaticText2() { return m_staticText2; } + wxListBox* GetPSuggestions() { return m_pSuggestions; } + wxButton* GetButton1() { return m_button1; } + wxButton* GetButton2() { return m_button2; } + wxButton* GetButton4() { return m_button4; } + wxButton* GetButton5() { return m_button5; } + wxButton* GetButton3() { return m_button3; } CorrectSpellingDlg_base(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Misspelling found!"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER); virtual ~CorrectSpellingDlg_base(); }; diff -Nru codelite-8.0.1+dfsg2/SpellChecker/wxcrafter.wxcp codelite-9.0+dfsg/SpellChecker/wxcrafter.wxcp --- codelite-8.0.1+dfsg2/SpellChecker/wxcrafter.wxcp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/SpellChecker/wxcrafter.wxcp 2015-10-11 13:56:07.000000000 +0000 @@ -72,6 +72,10 @@ "m_label": "Style:", "m_value": "" }, { + "type": "bool", + "m_label": "Enable Window Persistency:", + "m_value": true + }, { "type": "string", "m_label": "Title:", "m_value": "SpellChecker Settings" @@ -135,6 +139,10 @@ "m_sizerFlags": [], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer5" }, { @@ -158,6 +166,10 @@ "m_sizerFlags": ["wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer51" }, { @@ -178,7 +190,7 @@ "gbSpan": ",", "gbPosition": ",", "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT", "wxALIGN_CENTER_VERTICAL"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_VERTICAL"], "m_properties": [{ "type": "winid", "m_label": "ID:", @@ -426,6 +438,10 @@ "m_sizerFlags": ["wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer6" }, { @@ -449,6 +465,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "boxSizer9" }, { @@ -472,6 +492,10 @@ "m_sizerFlags": ["wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer7" }, { @@ -741,6 +765,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "staticBoxSizer17" }, { @@ -1430,6 +1458,10 @@ "m_label": "Style:", "m_value": "" }, { + "type": "bool", + "m_label": "Enable Window Persistency:", + "m_value": true + }, { "type": "string", "m_label": "Title:", "m_value": "Misspelling found!" @@ -1493,6 +1525,10 @@ "m_sizerFlags": [], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer5" }, { @@ -1516,6 +1552,10 @@ "m_sizerFlags": ["wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer6" }, { @@ -1702,6 +1742,10 @@ "m_sizerFlags": ["wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer7" }, { @@ -1725,6 +1769,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer2" }, { @@ -1913,6 +1961,10 @@ "m_sizerFlags": ["wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer12" }, { @@ -1936,6 +1988,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "fgSizer4" }, { diff -Nru codelite-8.0.1+dfsg2/Subversion2/CMakeLists.txt codelite-9.0+dfsg/Subversion2/CMakeLists.txt --- codelite-8.0.1+dfsg2/Subversion2/CMakeLists.txt 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Subversion2/CMakeLists.txt 2015-10-11 13:56:07.000000000 +0000 @@ -36,12 +36,6 @@ add_definitions(-fPIC) endif() - -# Add RPATH -if (UNIX) -set (LINKER_OPTIONS -Wl,-rpath,"${PLUGINS_DIR}") -endif (UNIX) - FILE(GLOB SRCS "*.cpp") # Define the output @@ -54,9 +48,7 @@ ${wxWidgets_LIBRARIES} libcodelite plugin - wxsqlite3 - sqlite3lib ) # Installation destination -CL_INSTALL_PLUGIN(${PLUGIN_NAME}) \ No newline at end of file +CL_INSTALL_PLUGIN(${PLUGIN_NAME}) diff -Nru codelite-8.0.1+dfsg2/Subversion2/subversion2.cpp codelite-9.0+dfsg/Subversion2/subversion2.cpp --- codelite-8.0.1+dfsg2/Subversion2/subversion2.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Subversion2/subversion2.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -172,21 +172,24 @@ wxCommandEventHandler(Subversion2::OnUpdate), NULL, this); - GetManager()->GetTheApp()->Connect( - XRCID("svn_explorer_add"), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(Subversion2::OnAdd), NULL, this); + GetManager()->GetTheApp()->Connect(XRCID("svn_explorer_add"), + wxEVT_COMMAND_MENU_SELECTED, + wxCommandEventHandler(Subversion2::OnFolderAdd), + NULL, + this); GetManager()->GetTheApp()->Connect(XRCID("svn_explorer_delete"), wxEVT_COMMAND_MENU_SELECTED, - wxCommandEventHandler(Subversion2::OnDelete), + wxCommandEventHandler(Subversion2::OnDeleteFolder), NULL, this); GetManager()->GetTheApp()->Connect(XRCID("svn_explorer_rename"), wxEVT_COMMAND_MENU_SELECTED, - wxCommandEventHandler(Subversion2::OnRename), + wxCommandEventHandler(Subversion2::OnFileExplorerRenameItem), NULL, this); GetManager()->GetTheApp()->Connect(XRCID("svn_explorer_revert"), wxEVT_COMMAND_MENU_SELECTED, - wxCommandEventHandler(Subversion2::OnRevert), + wxCommandEventHandler(Subversion2::OnFileExplorerRevertItem), NULL, this); GetManager()->GetTheApp()->Connect(XRCID("svn_explorer_revert_to_revision"), @@ -194,14 +197,9 @@ wxCommandEventHandler(Subversion2::OnRevertToRevision), NULL, this); - GetManager()->GetTheApp()->Connect(XRCID("svn_explorer_patch"), - wxEVT_COMMAND_MENU_SELECTED, - wxCommandEventHandler(Subversion2::OnPatch), - NULL, - this); GetManager()->GetTheApp()->Connect(XRCID("svn_explorer_diff"), wxEVT_COMMAND_MENU_SELECTED, - wxCommandEventHandler(Subversion2::OnDiff), + wxCommandEventHandler(Subversion2::OnFileExplorerDiff), NULL, this); GetManager()->GetTheApp()->Connect( @@ -248,6 +246,8 @@ wxEVT_WORKSPACE_CONFIG_CHANGED, wxCommandEventHandler(Subversion2::OnWorkspaceConfigChanged), NULL, this); EventNotifier::Get()->Connect( wxEVT_PROJ_FILE_REMOVED, clCommandEventHandler(Subversion2::OnFileRemoved), NULL, this); + EventNotifier::Get()->Bind(wxEVT_CONTEXT_MENU_FOLDER, &Subversion2::OnFolderContextMenu, this); + EventNotifier::Get()->Bind(wxEVT_CONTEXT_MENU_FILE, &Subversion2::OnFileContextMenu, this); } Subversion2::~Subversion2() {} @@ -283,32 +283,27 @@ void Subversion2::HookPopupMenu(wxMenu* menu, MenuType type) { - if(type == MenuTypeFileExplorer) { - if(!menu->FindItem(XRCID("SUBVERSION_EXPLORER_POPUP"))) { - m_explorerSepItem = menu->PrependSeparator(); - menu->Prepend(XRCID("SUBVERSION_EXPLORER_POPUP"), wxT("Subversion"), CreateFileExplorerPopMenu()); - } - } else if(type == MenuTypeFileView_Project) { + if(type == MenuTypeFileView_Project) { if(!menu->FindItem(XRCID("SUBVERSION_PROJECT_POPUP"))) { m_projectSepItem = menu->PrependSeparator(); menu->Prepend(XRCID("SUBVERSION_PROJECT_POPUP"), wxT("Subversion"), CreateProjectPopMenu()); } } } -wxMenu* Subversion2::CreateFileExplorerPopMenu() + +wxMenu* Subversion2::CreateFileExplorerPopMenu(bool isFile) { // Create the popup menu for the file explorer - // The only menu that we are interseted is the file explorer menu + // The only menu that we are interested is the file explorer menu wxMenu* menu = new wxMenu(); wxMenuItem* item(NULL); - item = new wxMenuItem(menu, - XRCID("svn_explorer_set_as_view"), - _("Display this path in the Subversion View"), - wxEmptyString, - wxITEM_NORMAL); - menu->Append(item); - menu->AppendSeparator(); + if(!isFile) { + item = new wxMenuItem( + menu, XRCID("svn_explorer_set_as_view"), _("Watch this folder"), wxEmptyString, wxITEM_NORMAL); + menu->Append(item); + menu->AppendSeparator(); + } item = new wxMenuItem(menu, XRCID("svn_explorer_update"), _("Update"), wxEmptyString, wxITEM_NORMAL); menu->Append(item); @@ -316,20 +311,26 @@ item = new wxMenuItem(menu, XRCID("svn_explorer_commit"), _("Commit"), wxEmptyString, wxITEM_NORMAL); menu->Append(item); - menu->AppendSeparator(); - - item = new wxMenuItem(menu, XRCID("svn_explorer_lock"), _("Lock file"), wxEmptyString, wxITEM_NORMAL); + item = new wxMenuItem(menu, XRCID("svn_explorer_delete"), _("Delete"), wxEmptyString, wxITEM_NORMAL); menu->Append(item); - item = new wxMenuItem(menu, XRCID("svn_explorer_unlock"), _("UnLock file"), wxEmptyString, wxITEM_NORMAL); + menu->AppendSeparator(); + item = new wxMenuItem(menu, XRCID("svn_explorer_revert"), _("Revert changes"), wxEmptyString, wxITEM_NORMAL); menu->Append(item); menu->AppendSeparator(); - item = new wxMenuItem(menu, XRCID("svn_explorer_add"), _("Add"), wxEmptyString, wxITEM_NORMAL); - menu->Append(item); + if(isFile) { + item = new wxMenuItem(menu, XRCID("svn_explorer_lock"), _("Lock file"), wxEmptyString, wxITEM_NORMAL); + menu->Append(item); - item = new wxMenuItem(menu, XRCID("svn_explorer_delete"), _("Delete"), wxEmptyString, wxITEM_NORMAL); + item = new wxMenuItem(menu, XRCID("svn_explorer_unlock"), _("UnLock file"), wxEmptyString, wxITEM_NORMAL); + menu->Append(item); + + menu->AppendSeparator(); + } + + item = new wxMenuItem(menu, XRCID("svn_explorer_add"), _("Add"), wxEmptyString, wxITEM_NORMAL); menu->Append(item); item = new wxMenuItem(menu, XRCID("svn_explorer_rename"), _("Rename"), wxEmptyString, wxITEM_NORMAL); @@ -337,9 +338,6 @@ menu->AppendSeparator(); - item = new wxMenuItem(menu, XRCID("svn_explorer_revert"), _("Revert changes"), wxEmptyString, wxITEM_NORMAL); - menu->Append(item); - item = new wxMenuItem( menu, XRCID("svn_explorer_revert_to_revision"), _("Revert to revision"), wxEmptyString, wxITEM_NORMAL); menu->Append(item); @@ -347,29 +345,25 @@ item = new wxMenuItem(menu, XRCID("svn_explorer_diff"), _("Create Diff"), wxEmptyString, wxITEM_NORMAL); menu->Append(item); - item = new wxMenuItem(menu, XRCID("svn_explorer_patch"), _("Apply Patch"), wxEmptyString, wxITEM_NORMAL); - menu->Append(item); - menu->AppendSeparator(); - - item = new wxMenuItem(menu, XRCID("svn_explorer_blame"), _("Blame ..."), wxEmptyString, wxITEM_NORMAL); - menu->Append(item); - - menu->AppendSeparator(); + /* item = new wxMenuItem(menu, XRCID("svn_explorer_blame"), _("Blame ..."), wxEmptyString, wxITEM_NORMAL); + menu->Append(item);*/ item = new wxMenuItem(menu, XRCID("svn_explorer_log"), _("Change Log..."), wxEmptyString, wxITEM_NORMAL); menu->Append(item); - menu->AppendSeparator(); - wxMenu* subMenu; - subMenu = new wxMenu; - subMenu->Append(XRCID("svn_explorer_ignore_file"), _("Ignore this file")); - subMenu->Append(XRCID("svn_explorer_ignore_file_pattern"), _("Ignore this file pattern")); - menu->Append(wxID_ANY, _("Ignore"), subMenu); + /* menu->AppendSeparator(); + wxMenu* subMenu; + subMenu = new wxMenu; + subMenu->Append(XRCID("svn_explorer_ignore_file"), _("Ignore this file")); + subMenu->Append(XRCID("svn_explorer_ignore_file_pattern"), _("Ignore this file pattern")); + menu->Append(wxID_ANY, _("Ignore"), subMenu);*/ return menu; } void Subversion2::UnPlug() { + EventNotifier::Get()->Unbind(wxEVT_CONTEXT_MENU_FOLDER, &Subversion2::OnFolderContextMenu, this); + EventNotifier::Get()->Unbind(wxEVT_CONTEXT_MENU_FILE, &Subversion2::OnFileContextMenu, this); GetManager()->GetTheApp()->Disconnect(XRCID("subversion2_settings"), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(Subversion2::OnSettings), @@ -385,31 +379,29 @@ wxCommandEventHandler(Subversion2::OnUpdate), NULL, this); - GetManager()->GetTheApp()->Disconnect( - XRCID("svn_explorer_add"), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(Subversion2::OnAdd), NULL, this); - GetManager()->GetTheApp()->Disconnect(XRCID("svn_explorer_delete"), + GetManager()->GetTheApp()->Disconnect(XRCID("svn_explorer_add"), wxEVT_COMMAND_MENU_SELECTED, - wxCommandEventHandler(Subversion2::OnDelete), + wxCommandEventHandler(Subversion2::OnFolderAdd), NULL, this); - GetManager()->GetTheApp()->Disconnect(XRCID("svn_explorer_rename"), + GetManager()->GetTheApp()->Disconnect(XRCID("svn_explorer_delete"), wxEVT_COMMAND_MENU_SELECTED, - wxCommandEventHandler(Subversion2::OnRename), + wxCommandEventHandler(Subversion2::OnDeleteFolder), NULL, this); - GetManager()->GetTheApp()->Disconnect(XRCID("svn_explorer_revert"), + GetManager()->GetTheApp()->Disconnect(XRCID("svn_explorer_rename"), wxEVT_COMMAND_MENU_SELECTED, - wxCommandEventHandler(Subversion2::OnRevert), + wxCommandEventHandler(Subversion2::OnFileExplorerRenameItem), NULL, this); - GetManager()->GetTheApp()->Disconnect(XRCID("svn_explorer_patch"), + GetManager()->GetTheApp()->Disconnect(XRCID("svn_explorer_revert"), wxEVT_COMMAND_MENU_SELECTED, - wxCommandEventHandler(Subversion2::OnPatch), + wxCommandEventHandler(Subversion2::OnFileExplorerRevertItem), NULL, this); GetManager()->GetTheApp()->Disconnect(XRCID("svn_explorer_diff"), wxEVT_COMMAND_MENU_SELECTED, - wxCommandEventHandler(Subversion2::OnDiff), + wxCommandEventHandler(Subversion2::OnFileExplorerDiff), NULL, this); GetManager()->GetTheApp()->Disconnect( @@ -445,10 +437,10 @@ m_subversionView->DisconnectEvents(); // Remove the tab if it's actually docked in the workspace pane - size_t index(Notebook::npos); + int index(wxNOT_FOUND); index = m_mgr->GetOutputPaneNotebook()->GetPageIndex(m_subversionView); - if(index != Notebook::npos) { - m_mgr->GetOutputPaneNotebook()->RemovePage(index, false); + if(index != wxNOT_FOUND) { + m_mgr->GetOutputPaneNotebook()->RemovePage(index); } m_subversionView->Destroy(); @@ -474,6 +466,8 @@ void Subversion2::DoInitialize() { + m_svnBitmap = GetManager()->GetStdIcons()->LoadBitmap(wxT("subversion/16/svn")); + // create tab (possibly detached) Notebook* book = m_mgr->GetOutputPaneNotebook(); if(IsSubversionViewDetached()) { @@ -484,10 +478,7 @@ cp->SetChildNoReparent(m_subversionView); } else { m_subversionView = new SubversionView(book, this); - book->AddPage(m_subversionView, - svnCONSOLE_TEXT, - false, - GetManager()->GetStdIcons()->LoadBitmap(wxT("subversion/16/svn"))); + book->AddPage(m_subversionView, svnCONSOLE_TEXT, false, m_svnBitmap); } DoSetSSH(); @@ -549,7 +540,7 @@ // File Explorer SVN command handlers //////////////////////////////////////////////// -void Subversion2::OnAdd(wxCommandEvent& event) +void Subversion2::OnFolderAdd(wxCommandEvent& event) { wxString command; wxString loginString; @@ -557,73 +548,100 @@ return; } - wxArrayString files = DoGetFileExplorerFiles(); - command << GetSvnExeName(false) << loginString << wxT(" add ") << DoGetFileExplorerFilesAsString(); - GetConsole()->Execute(command, DoGetFileExplorerItemPath(), new SvnStatusHandler(this, event.GetId(), this)); + wxFileName workingDirectory(m_selectedFolder, ""); + if(m_selectedFile.IsOk()) { + command << GetSvnExeName(false) << loginString << wxT(" add ") << m_selectedFile.GetFullName(); + } else { + wxString folderName = workingDirectory.GetDirs().Last(); + ::WrapWithQuotes(folderName); + + workingDirectory.RemoveLastDir(); + command << GetSvnExeName(false) << loginString << wxT(" add ") << folderName; + } + GetConsole()->Execute(command, workingDirectory.GetPath(), new SvnStatusHandler(this, event.GetId(), this)); } void Subversion2::OnCommit(wxCommandEvent& event) { - TreeItemInfo item = m_mgr->GetSelectedTreeItemInfo(TreeFileExplorer); - DoCommit(item.m_paths, "", event); + // Coming from file explorer + wxArrayString paths; + if(!m_selectedFile.IsOk()) { + paths.Add("."); + } else { + paths.Add(m_selectedFile.GetFullName()); + } + DoCommit(paths, m_selectedFolder, event); } -void Subversion2::OnDelete(wxCommandEvent& event) +void Subversion2::OnDeleteFolder(wxCommandEvent& event) { + // Coming from file explorer wxString command; wxString loginString; - if(LoginIfNeeded(event, DoGetFileExplorerItemPath(), loginString) == false) { + if(LoginIfNeeded(event, m_selectedFolder, loginString) == false) { return; } - bool nonInteractive = GetNonInteractiveMode(event); - command << GetSvnExeName(nonInteractive) << loginString << wxT(" delete --force ") - << DoGetFileExplorerFilesAsString(); - GetConsole()->Execute( - command, DoGetFileExplorerItemPath(), new SvnDefaultCommandHandler(this, event.GetId(), this)); + + // svn delete --force + wxFileName workingDirectory(m_selectedFolder, ""); + if(!m_selectedFile.IsOk()) { + wxString folderName = workingDirectory.GetDirs().Last(); + ::WrapWithQuotes(folderName); + + workingDirectory.RemoveLastDir(); + + bool nonInteractive = GetNonInteractiveMode(event); + command << GetSvnExeName(nonInteractive) << loginString << wxT(" delete --force ") << folderName; + + } else { + bool nonInteractive = GetNonInteractiveMode(event); + command << GetSvnExeName(nonInteractive) << loginString << wxT(" delete --force ") + << m_selectedFile.GetFullName(); + } + GetConsole()->Execute(command, workingDirectory.GetPath(), new SvnDefaultCommandHandler(this, event.GetId(), this)); } -void Subversion2::OnRevert(wxCommandEvent& event) +void Subversion2::OnFileExplorerRevertItem(wxCommandEvent& event) { + // Coming from the file explorer wxString command; wxString loginString; - command << GetSvnExeName(false) << loginString << wxT(" revert --recursive ") << DoGetFileExplorerFilesAsString(); - GetConsole()->Execute( - command, DoGetFileExplorerItemPath(), new SvnDefaultCommandHandler(this, event.GetId(), this)); + command << GetSvnExeName(false) << loginString << wxT(" revert --recursive ."); + GetConsole()->Execute(command, m_selectedFolder, new SvnDefaultCommandHandler(this, event.GetId(), this)); } void Subversion2::OnUpdate(wxCommandEvent& event) { + // Coming from explorer view wxString command; wxString loginString; - if(LoginIfNeeded(event, DoGetFileExplorerItemPath(), loginString) == false) { + if(LoginIfNeeded(event, m_selectedFolder, loginString) == false) { return; } + // svn update . bool nonInteractive = GetNonInteractiveMode(event); - command << GetSvnExeName(nonInteractive) << loginString << wxT(" update "); + command << GetSvnExeName(nonInteractive) << loginString << wxT(" update ") << m_selectedFile.GetFullName() << " "; AddCommandLineOption(command, kOpt_ForceInteractive); - command << DoGetFileExplorerFilesAsString(); + command << "."; // Execute the command, but with console visible - GetConsole()->Execute( - command, DoGetFileExplorerItemPath(), new SvnUpdateHandler(this, event.GetId(), this), true, true); + GetConsole()->Execute(command, m_selectedFolder, new SvnUpdateHandler(this, event.GetId(), this), true, true); } -void Subversion2::OnDiff(wxCommandEvent& event) +void Subversion2::OnFileExplorerDiff(wxCommandEvent& event) { wxString diffAgainst(wxT("BASE")); - diffAgainst = wxGetTextFromUser(_("Insert base revision to diff against:"), - _("Diff against"), - wxT("BASE"), + diffAgainst = clGetTextFromUser(_("Svn Diff"), + _("Insert base revision to diff against:"), + "BASE", + wxNOT_FOUND, GetManager()->GetTheApp()->GetTopWindow()); - if(diffAgainst.empty()) { - // user clicked 'Cancel' - diffAgainst = wxT("BASE"); - } + if(diffAgainst.empty()) return; wxString command; wxString loginString; - if(LoginIfNeeded(event, DoGetFileExplorerItemPath(), loginString) == false) { + if(LoginIfNeeded(event, m_selectedFolder, loginString) == false) { return; } @@ -635,12 +653,16 @@ command << " --diff-cmd=\"" << ssd.GetExternalDiffViewer() << "\" "; } - command << wxT("diff -r") << diffAgainst << wxT(" ") << DoGetFileExplorerFilesAsString(); - GetConsole()->Execute(command, DoGetFileExplorerItemPath(), new SvnDiffHandler(this, event.GetId(), this), false); + wxFileName workingDirectory(m_selectedFolder, ""); + command << wxT("diff -r") << diffAgainst; + if(m_selectedFile.IsOk()) { + command << " " << m_selectedFile.GetFullName(); + } else { + command << " ."; + } + GetConsole()->Execute(command, workingDirectory.GetPath(), new SvnDiffHandler(this, event.GetId(), this), false); } -void Subversion2::OnPatch(wxCommandEvent& event) { Patch(false, DoGetFileExplorerItemPath(), this, event.GetId()); } - wxString Subversion2::GetSvnExeName(bool nonInteractive) { SvnSettingsData ssd = GetSettings(); @@ -797,10 +819,7 @@ } } -void Subversion2::OnLog(wxCommandEvent& event) -{ - ChangeLog(DoGetFileExplorerItemPath(), DoGetFileExplorerItemFullPath(), event); -} +void Subversion2::OnLog(wxCommandEvent& event) { ChangeLog(m_selectedFolder, ".", event); } bool Subversion2::GetNonInteractiveMode(wxCommandEvent& event) { return event.GetInt() != INTERACTIVE_MODE; } @@ -914,7 +933,7 @@ void Subversion2::OnSelectAsView(wxCommandEvent& event) { wxUnusedVar(event); - GetSvnView()->BuildTree(DoGetFileExplorerItemPath()); + GetSvnView()->BuildTree(m_selectedFolder); } void Subversion2::OnBlame(wxCommandEvent& event) { Blame(event, DoGetFileExplorerFiles()); } @@ -985,7 +1004,7 @@ wxArrayString xmlArr; ::WrapInShell(svnInfoCommand); - + wxLog::EnableLogging(false); IProcess::Ptr_t proc(::CreateSyncProcess(svnInfoCommand, IProcessCreateDefault | IProcessCreateWithHiddenConsole)); if(proc) { @@ -998,28 +1017,16 @@ bool Subversion2::IsPathUnderSvn(const wxString& path) { - SvnInfo svnInfo; - DoGetSvnInfoSync(svnInfo, path); - if(svnInfo.m_url.IsEmpty()) return false; - return true; - /* - wxFileName fn(path); - wxString svnDirectory1(fn.GetPath()); - wxString svnDirectory2(fn.GetPath()); - svnDirectory1 << wxFileName::GetPathSeparator() << wxT(".svn"); - svnDirectory2 << wxFileName::GetPathSeparator() << wxT("_svn"); - - if(wxDirExists(svnDirectory1.c_str())) - return true; - - if(wxDirExists(svnDirectory2.c_str())) - return true; - - if( m_subversionView->GetRootDir().IsEmpty() == false) - return true; + wxFileName fn(path, ".svn"); + // search until we find .svn folder + while(fn.GetDirCount()) { + if(wxFileName::DirExists(fn.GetFullPath())) { + return true; + } + fn.RemoveLastDir(); + } return false; - */ } void Subversion2::OnSwitchURL(wxCommandEvent& event) @@ -1081,12 +1088,12 @@ void Subversion2::OnLockFile(wxCommandEvent& event) { - DoLockFile(DoGetFileExplorerItemPath(), DoGetFileExplorerFiles(), event, true); + DoLockFile(m_selectedFile.GetPath(), DoGetFileExplorerFiles(), event, true); } void Subversion2::OnUnLockFile(wxCommandEvent& event) { - DoLockFile(DoGetFileExplorerItemPath(), DoGetFileExplorerFiles(), event, false); + DoLockFile(m_selectedFile.GetPath(), DoGetFileExplorerFiles(), event, false); } void Subversion2::DoLockFile(const wxString& workingDirectory, @@ -1113,8 +1120,7 @@ for(size_t i = 0; i < fullpaths.size(); i++) command << wxT("\"") << fullpaths.Item(i) << wxT("\" "); - GetConsole()->Execute( - command, DoGetFileExplorerItemPath(), new SvnDefaultCommandHandler(this, event.GetId(), this)); + GetConsole()->Execute(command, workingDirectory, new SvnDefaultCommandHandler(this, event.GetId(), this)); } void Subversion2::OnWorkspaceConfigChanged(wxCommandEvent& event) @@ -1172,14 +1178,23 @@ } } -void Subversion2::OnRename(wxCommandEvent& event) +void Subversion2::OnFileExplorerRenameItem(wxCommandEvent& event) { - wxFileName oldname(DoGetFileExplorerItemFullPath()); - - wxString newname = wxGetTextFromUser(_("New name:"), _("Svn rename..."), oldname.GetFullName()); - if(newname.IsEmpty() || newname == oldname.GetFullName()) return; - - DoRename(DoGetFileExplorerItemPath(), oldname.GetFullName(), newname, event); + wxFileName workingDirectory(m_selectedFolder, ""); + if(!m_selectedFile.IsOk()) { + wxString folderName = workingDirectory.GetDirs().Last(); + workingDirectory.RemoveLastDir(); + wxString newname = ::clGetTextFromUser(_("Svn Rename"), _("New name:"), folderName, folderName.length()); + if(newname.IsEmpty() || newname == folderName) return; + ::WrapWithQuotes(newname); + DoRename(workingDirectory.GetPath(), folderName, newname, event); + } else { + wxString newname = ::clGetTextFromUser( + _("Svn Rename"), _("New name:"), m_selectedFile.GetFullName(), m_selectedFile.GetName().length()); + if(newname.IsEmpty() || newname == m_selectedFile.GetFullName()) return; + ::WrapWithQuotes(newname); + DoRename(workingDirectory.GetPath(), m_selectedFile.GetFullName(), newname, event); + } } void Subversion2::DoRename(const wxString& workingDirectory, @@ -1225,8 +1240,9 @@ wxArrayString actualFiles = dlg.GetPaths(); if(actualFiles.IsEmpty()) return; - for(size_t i = 0; i < actualFiles.GetCount(); i++) { - command << wxT("\"") << actualFiles.Item(i) << wxT("\" "); + for(size_t i = 0; i < actualFiles.GetCount(); ++i) { + ::WrapWithQuotes(actualFiles.Item(i)); + command << actualFiles.Item(i) << " "; } command << wxT(" -m \""); @@ -1579,10 +1595,21 @@ return; } - command << GetSvnExeName(false) << loginString << " merge -r HEAD:" << nRevision - << DoGetFileExplorerFilesAsString(); - GetConsole()->Execute( - command, DoGetFileExplorerItemPath(), new SvnDefaultCommandHandler(this, event.GetId(), this)); + wxFileName workingDirectory(m_selectedFolder, ""); + if(m_selectedFile.IsOk()) { + command << GetSvnExeName(false) << loginString << " merge -r HEAD:" << nRevision << " " + << m_selectedFile.GetFullName(); + GetConsole()->Execute( + command, workingDirectory.GetPath(), new SvnDefaultCommandHandler(this, event.GetId(), this)); + } else { + wxString folderName = workingDirectory.GetDirs().Last(); + workingDirectory.RemoveLastDir(); + ::WrapWithQuotes(folderName); + + command << GetSvnExeName(false) << loginString << " merge -r HEAD:" << nRevision << " " << folderName; + GetConsole()->Execute( + command, workingDirectory.GetPath(), new SvnDefaultCommandHandler(this, event.GetId(), this)); + } } void Subversion2::DoGetSvnClientVersion() @@ -1627,3 +1654,28 @@ break; } } + +void Subversion2::OnFolderContextMenu(clContextMenuEvent& event) +{ + event.Skip(); + m_selectedFolder = event.GetPath(); + m_selectedFile.Clear(); + wxMenuItem* item = + new wxMenuItem(event.GetMenu(), wxID_ANY, "Svn", "", wxITEM_NORMAL, CreateFileExplorerPopMenu(false)); + item->SetBitmap(m_svnBitmap); + event.GetMenu()->Append(item); +} + +void Subversion2::OnFileContextMenu(clContextMenuEvent& event) +{ + event.Skip(); + if(event.GetStrings().size() == 1) { + m_selectedFile = event.GetStrings().Item(0); + m_selectedFolder = wxFileName(m_selectedFile).GetPath(); + + wxMenuItem* item = + new wxMenuItem(event.GetMenu(), wxID_ANY, "Svn", "", wxITEM_NORMAL, CreateFileExplorerPopMenu(true)); + item->SetBitmap(m_svnBitmap); + event.GetMenu()->Append(item); + } +} diff -Nru codelite-8.0.1+dfsg2/Subversion2/subversion2.h codelite-9.0+dfsg/Subversion2/subversion2.h --- codelite-8.0.1+dfsg2/Subversion2/subversion2.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Subversion2/subversion2.h 2015-10-11 13:56:07.000000000 +0000 @@ -53,7 +53,10 @@ CommitMessagesCache m_commitMessagesCache; bool m_skipRemoveFilesDlg; int m_clientVersion; - + wxString m_selectedFolder; // In the explorer view + wxFileName m_selectedFile; // In the explorer view + wxBitmap m_svnBitmap; + protected: void OnSettings(wxCommandEvent& event); @@ -66,18 +69,18 @@ * @brief ensure that the Subversion Page is view */ void EnsureVisible(); - + protected: /////////////////////////////////////////////////////////// // File Explorer event handlers /////////////////////////////////////////////////////////// void OnCommit(wxCommandEvent& event); void OnUpdate(wxCommandEvent& event); - void OnAdd(wxCommandEvent& event); - void OnDelete(wxCommandEvent& event); - void OnRevert(wxCommandEvent& event); + void OnFolderAdd(wxCommandEvent& event); + void OnDeleteFolder(wxCommandEvent& event); + void OnFileExplorerRevertItem(wxCommandEvent& event); void OnRevertToRevision(wxCommandEvent& event); - void OnDiff(wxCommandEvent& event); + void OnFileExplorerDiff(wxCommandEvent& event); void OnPatch(wxCommandEvent& event); void OnLog(wxCommandEvent& event); void OnBlame(wxCommandEvent& event); @@ -87,7 +90,7 @@ void OnSwitchURL(wxCommandEvent& event); void OnLockFile(wxCommandEvent& event); void OnUnLockFile(wxCommandEvent& event); - void OnRename(wxCommandEvent& event); + void OnFileExplorerRenameItem(wxCommandEvent& event); void OnSync(wxCommandEvent& event); /////////////////////////////////////////////////////////// @@ -96,8 +99,10 @@ void OnGetCompileLine(clBuildEvent& event); void OnWorkspaceConfigChanged(wxCommandEvent& event); void OnFileRemoved(clCommandEvent& event); + void OnFolderContextMenu(clContextMenuEvent& event); + void OnFileContextMenu(clContextMenuEvent& event); - wxMenu* CreateFileExplorerPopMenu(); + wxMenu* CreateFileExplorerPopMenu(bool isFile); bool IsSubversionViewDetached(); wxMenu* CreateProjectPopMenu(); @@ -109,7 +114,7 @@ void DoRename(const wxString& workingDirectory, const wxString& oldname, const wxString& newname, wxCommandEvent& event); void DoCommit(const wxArrayString& files, const wxString& workingDirectory, wxCommandEvent& event); - + public: Subversion2(IManager* manager); ~Subversion2(); @@ -152,9 +157,9 @@ bool excludeBin, const wxString& excludeExtensions, const wxString& output); - - void AddCommandLineOption(wxString &command, Subversion2::eCommandLineOption opt); - + + void AddCommandLineOption(wxString& command, Subversion2::eCommandLineOption opt); + protected: void DoInitialize(); void DoSetSSH(); diff -Nru codelite-8.0.1+dfsg2/Subversion2/subversion2_ui.cpp codelite-9.0+dfsg/Subversion2/subversion2_ui.cpp --- codelite-8.0.1+dfsg2/Subversion2/subversion2_ui.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Subversion2/subversion2_ui.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -85,11 +85,12 @@ boxSizer30->Add(m_sci, 1, wxALL|wxEXPAND, 2); + SetName(wxT("SubversionPageBase")); SetSizeHints(-1,-1); if ( GetSizer() ) { GetSizer()->Fit(this); } - Centre(wxBOTH); + CentreOnParent(wxBOTH); // Connect events m_treeCtrl->Connect(wxEVT_COMMAND_TREE_ITEM_ACTIVATED, wxTreeEventHandler(SubversionPageBase::OnItemActivated), NULL, this); m_treeCtrl->Connect(wxEVT_COMMAND_TREE_ITEM_MENU, wxTreeEventHandler(SubversionPageBase::OnTreeMenu), NULL, this); @@ -183,11 +184,19 @@ bSizer8->Add(m_button5, 0, wxALL, 5); + SetName(wxT("SvnCopyDialogBase")); SetSizeHints(575,315); if ( GetSizer() ) { GetSizer()->Fit(this); } - Centre(wxBOTH); + CentreOnParent(wxBOTH); +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(this)) { + wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); + } +#endif } SvnCopyDialogBase::~SvnCopyDialogBase() @@ -250,11 +259,19 @@ bSizer11->Add(m_button7, 0, wxALL, 5); + SetName(wxT("SvnLoginDialogBase")); SetSizeHints(-1,-1); if ( GetSizer() ) { GetSizer()->Fit(this); } - Centre(wxBOTH); + CentreOnParent(wxBOTH); +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(this)) { + wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); + } +#endif } SvnLoginDialogBase::~SvnLoginDialogBase() @@ -275,6 +292,7 @@ this->SetSizer(bSizer12); m_treebook1 = new wxTreebook(this, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxBK_DEFAULT); + m_treebook1->SetName(wxT("m_treebook1")); wxImageList* m_treebook1_il = new wxImageList(16, 16); m_treebook1->AssignImageList(m_treebook1_il); @@ -472,16 +490,32 @@ bSizer13->Add(m_button9, 0, wxALL, 5); + + #if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(m_treebook1)){ + wxPersistenceManager::Get().RegisterAndRestore(m_treebook1); + } else { + wxPersistenceManager::Get().Restore(m_treebook1); + } + #endif m_treebook1->ExpandNode( 0, true ); m_treebook1->ExpandNode( 1, true ); m_treebook1->ExpandNode( 2, true ); m_treebook1->ExpandNode( 3, true ); + SetName(wxT("SvnPreferencesDialogBase")); SetSizeHints(-1,-1); if ( GetSizer() ) { GetSizer()->Fit(this); } - Centre(wxBOTH); + CentreOnParent(wxBOTH); +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(this)) { + wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); + } +#endif // Connect events m_buttonBrowse->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SvnPreferencesDialogBase::OnBrowseSvnExe), NULL, this); m_staticText10->Connect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(SvnPreferencesDialogBase::OnUseExternalDiffUI), NULL, this); @@ -612,11 +646,19 @@ bSizer18->Add(m_button13, 0, wxALL, 5); + SetName(wxT("SvnInfoDialogBase")); SetSizeHints(-1,-1); if ( GetSizer() ) { GetSizer()->Fit(this); } - Centre(wxBOTH); + CentreOnParent(wxBOTH); +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(this)) { + wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); + } +#endif } SvnInfoDialogBase::~SvnInfoDialogBase() @@ -691,11 +733,19 @@ bSizer20->Add(m_button15, 0, wxALL, 5); + SetName(wxT("SvnCheckoutDialogBase")); SetSizeHints(-1,-1); if ( GetSizer() ) { GetSizer()->Fit(this); } - Centre(wxBOTH); + CentreOnParent(wxBOTH); +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(this)) { + wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); + } +#endif // Connect events m_comboBoxRepoURL->Connect(wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler(SvnCheckoutDialogBase::OnCheckoutDirectoryText), NULL, this); m_buttonBrowseDir->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SvnCheckoutDialogBase::OnBrowseDirectory), NULL, this); @@ -773,11 +823,19 @@ bSizer22->Add(m_button18, 0, wxALL, 5); + SetName(wxT("SvnLogDialogBase")); SetSizeHints(-1,-1); if ( GetSizer() ) { GetSizer()->Fit(this); } - Centre(wxBOTH); + CentreOnParent(wxBOTH); +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(this)) { + wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); + } +#endif } SvnLogDialogBase::~SvnLogDialogBase() @@ -847,11 +905,19 @@ bSizer26->Add(m_button19, 0, wxALL, 5); + SetName(wxT("DiffDialogBase")); SetSizeHints(-1,-1); if ( GetSizer() ) { GetSizer()->Fit(this); } - Centre(wxBOTH); + CentreOnParent(wxBOTH); +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(this)) { + wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); + } +#endif } DiffDialogBase::~DiffDialogBase() @@ -884,11 +950,12 @@ bSizer27->Add(m_textCtrl, 1, wxALL|wxEXPAND, 5); + SetName(wxT("ChangeLogPageBase")); SetSizeHints(500,300); if ( GetSizer() ) { GetSizer()->Fit(this); } - Centre(wxBOTH); + CentreOnParent(wxBOTH); // Connect events m_textCtrl->Connect(wxEVT_COMMAND_TEXT_URL, wxCommandEventHandler(ChangeLogPageBase::OnURL), NULL, this); @@ -995,11 +1062,19 @@ bSizer29->Add(m_button22, 0, wxALL, 5); + SetName(wxT("SvnPropsBaseDlg")); SetSizeHints(-1,-1); if ( GetSizer() ) { GetSizer()->Fit(this); } - Centre(wxBOTH); + CentreOnParent(wxBOTH); +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(this)) { + wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); + } +#endif } SvnPropsBaseDlg::~SvnPropsBaseDlg() @@ -1051,11 +1126,19 @@ m_stdBtnSizer33->AddButton(m_button37); m_stdBtnSizer33->Realize(); + SetName(wxT("PatchDlgBase")); SetSizeHints(-1,-1); if ( GetSizer() ) { GetSizer()->Fit(this); } - Centre(wxBOTH); + CentreOnParent(wxBOTH); +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(this)) { + wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); + } +#endif } PatchDlgBase::~PatchDlgBase() @@ -1111,11 +1194,19 @@ m_stdBtnSizer39->AddButton(m_button43); m_stdBtnSizer39->Realize(); + SetName(wxT("SvnSelectLocalRepoBase")); SetSizeHints(-1,-1); if ( GetSizer() ) { GetSizer()->Fit(this); } - Centre(wxBOTH); + CentreOnParent(wxBOTH); +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(this)) { + wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); + } +#endif // Connect events m_listBoxPaths->Connect(wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler(SvnSelectLocalRepoBase::OnPathSelected), NULL, this); m_listBoxPaths->Connect(wxEVT_COMMAND_LISTBOX_DOUBLECLICKED, wxCommandEventHandler(SvnSelectLocalRepoBase::OnPathActivated), NULL, this); @@ -1198,11 +1289,19 @@ boxSizer13->Add(m_stc, 1, wxALL|wxEXPAND, 5); + SetName(wxT("SvnBlameFrameBase")); SetSizeHints(-1,-1); if ( GetSizer() ) { GetSizer()->Fit(this); } - Centre(wxBOTH); + CentreOnParent(wxBOTH); +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(this)) { + wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); + } +#endif } SvnBlameFrameBase::~SvnBlameFrameBase() diff -Nru codelite-8.0.1+dfsg2/Subversion2/subversion2_ui.h codelite-9.0+dfsg/Subversion2/subversion2_ui.h --- codelite-8.0.1+dfsg2/Subversion2/subversion2_ui.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Subversion2/subversion2_ui.h 2015-10-11 13:56:07.000000000 +0000 @@ -4,8 +4,8 @@ // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// -#ifndef SUBVERSION2_BASE_CLASSES_H -#define SUBVERSION2_BASE_CLASSES_H +#ifndef CODELITE_SUBVERSION2_SUBVERSION2_BASE_CLASSES_H +#define CODELITE_SUBVERSION2_SUBVERSION2_BASE_CLASSES_H #include #include @@ -36,6 +36,12 @@ #include #include #include +#if wxVERSION_NUMBER >= 2900 +#include +#include +#include +#include +#endif class SubversionPageBase : public wxPanel { diff -Nru codelite-8.0.1+dfsg2/Subversion2/subversion2.wxcp codelite-9.0+dfsg/Subversion2/subversion2.wxcp --- codelite-8.0.1+dfsg2/Subversion2/subversion2.wxcp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Subversion2/subversion2.wxcp 2015-10-11 13:56:07.000000000 +0000 @@ -108,6 +108,10 @@ "m_sizerFlags": [], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "mainSizer" }, { @@ -280,6 +284,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "boxSizer27" }, { @@ -452,6 +460,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "boxSizer30" }, { @@ -678,6 +690,10 @@ "m_label": "Style:", "m_value": "" }, { + "type": "bool", + "m_label": "Enable Window Persistency:", + "m_value": true + }, { "type": "string", "m_label": "Title:", "m_value": "Create Svn Tag" @@ -734,6 +750,10 @@ "m_sizerFlags": [], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer7" }, { @@ -757,6 +777,10 @@ "m_sizerFlags": ["wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "fgSizer1" }, { @@ -1286,6 +1310,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_HORIZONTAL"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer8" }, { @@ -1539,6 +1567,10 @@ "m_label": "Style:", "m_value": "" }, { + "type": "bool", + "m_label": "Enable Window Persistency:", + "m_value": true + }, { "type": "string", "m_label": "Title:", "m_value": "Login" @@ -1595,6 +1627,10 @@ "m_sizerFlags": [], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer10" }, { @@ -1618,6 +1654,10 @@ "m_sizerFlags": ["wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "fgSizer2" }, { @@ -1985,6 +2025,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_HORIZONTAL"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer11" }, { @@ -2238,6 +2282,10 @@ "m_label": "Style:", "m_value": "" }, { + "type": "bool", + "m_label": "Enable Window Persistency:", + "m_value": true + }, { "type": "string", "m_label": "Title:", "m_value": "Subversion Preferences" @@ -2294,6 +2342,10 @@ "m_sizerFlags": [], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer12" }, { @@ -2469,6 +2521,10 @@ "m_sizerFlags": [], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer15" }, { @@ -2492,6 +2548,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "fgSizer3" }, { @@ -2954,6 +3014,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "sbSizer1" }, { @@ -3370,6 +3434,10 @@ "m_sizerFlags": [], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer16" }, { @@ -3468,6 +3536,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "fgSizer5" }, { @@ -3877,6 +3949,10 @@ "m_sizerFlags": [], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer161" }, { @@ -3900,6 +3976,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "fgSizer6" }, { @@ -4362,6 +4442,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "sbSizer2" }, { @@ -4553,6 +4637,10 @@ "m_sizerFlags": [], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer23" }, { @@ -4576,6 +4664,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "sbSizer5" }, { @@ -4678,6 +4770,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer24" }, { @@ -4882,6 +4978,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_HORIZONTAL"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer13" }, { @@ -5142,6 +5242,10 @@ "m_label": "Style:", "m_value": "" }, { + "type": "bool", + "m_label": "Enable Window Persistency:", + "m_value": true + }, { "type": "string", "m_label": "Title:", "m_value": "Svn Info" @@ -5198,6 +5302,10 @@ "m_sizerFlags": [], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer17" }, { @@ -5221,6 +5329,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "sbSizer3" }, { @@ -5248,6 +5360,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "fgSizer7" }, { @@ -6102,6 +6218,10 @@ "m_sizerFlags": ["wxALIGN_CENTER_HORIZONTAL"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer18" }, { @@ -6267,6 +6387,10 @@ "m_label": "Style:", "m_value": "" }, { + "type": "bool", + "m_label": "Enable Window Persistency:", + "m_value": true + }, { "type": "string", "m_label": "Title:", "m_value": "Svn Checkout" @@ -6323,6 +6447,10 @@ "m_sizerFlags": [], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer19" }, { @@ -6346,6 +6474,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "sbSizer4" }, { @@ -6373,6 +6505,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "fgSizer8" }, { @@ -6877,6 +7013,10 @@ "m_sizerFlags": ["wxALIGN_CENTER_HORIZONTAL"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer20" }, { @@ -7144,6 +7284,10 @@ "m_label": "Style:", "m_value": "" }, { + "type": "bool", + "m_label": "Enable Window Persistency:", + "m_value": true + }, { "type": "string", "m_label": "Title:", "m_value": "Svn Log" @@ -7200,6 +7344,10 @@ "m_sizerFlags": [], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer21" }, { @@ -7223,6 +7371,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "fgSizer9" }, { @@ -7665,6 +7817,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_HORIZONTAL"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer22" }, { @@ -7918,6 +8074,10 @@ "m_label": "Style:", "m_value": "" }, { + "type": "bool", + "m_label": "Enable Window Persistency:", + "m_value": true + }, { "type": "string", "m_label": "Title:", "m_value": "Svn Diff..." @@ -7974,6 +8134,10 @@ "m_sizerFlags": [], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer25" }, { @@ -7997,6 +8161,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "fgSizer9" }, { @@ -8458,6 +8626,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_HORIZONTAL"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer26" }, { @@ -8747,6 +8919,10 @@ "m_sizerFlags": [], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer27" }, { @@ -8917,6 +9093,10 @@ "m_label": "Style:", "m_value": "" }, { + "type": "bool", + "m_label": "Enable Window Persistency:", + "m_value": true + }, { "type": "string", "m_label": "Title:", "m_value": "Svn Properties..." @@ -8973,6 +9153,10 @@ "m_sizerFlags": [], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer28" }, { @@ -9071,6 +9255,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "fgSizer10" }, { @@ -9848,6 +10036,10 @@ "m_sizerFlags": ["wxALIGN_CENTER_HORIZONTAL"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer29" }, { @@ -10101,6 +10293,10 @@ "m_label": "Style:", "m_value": "" }, { + "type": "bool", + "m_label": "Enable Window Persistency:", + "m_value": true + }, { "type": "string", "m_label": "Title:", "m_value": "Select patch file:" @@ -10157,6 +10353,10 @@ "m_sizerFlags": [], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer31" }, { @@ -10180,6 +10380,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "fgSizer11" }, { @@ -10561,6 +10765,10 @@ "m_label": "Style:", "m_value": "" }, { + "type": "bool", + "m_label": "Enable Window Persistency:", + "m_value": true + }, { "type": "string", "m_label": "Title:", "m_value": "Select Local Repository:" @@ -10617,6 +10825,10 @@ "m_sizerFlags": [], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "bSizer33" }, { @@ -10640,6 +10852,10 @@ "m_sizerFlags": ["wxEXPAND", "wxALIGN_CENTER_HORIZONTAL"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "fgSizer13" }, { @@ -11180,6 +11396,10 @@ "m_label": "Style:", "m_value": "" }, { + "type": "bool", + "m_label": "Enable Window Persistency:", + "m_value": true + }, { "type": "string", "m_label": "Title:", "m_value": "Blame" @@ -11241,6 +11461,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "boxSizer9" }, { @@ -11330,6 +11554,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "boxSizer13" }, { diff -Nru codelite-8.0.1+dfsg2/Subversion2/subversion_strings.h codelite-9.0+dfsg/Subversion2/subversion_strings.h --- codelite-8.0.1+dfsg2/Subversion2/subversion_strings.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Subversion2/subversion_strings.h 2015-10-11 13:56:07.000000000 +0000 @@ -33,6 +33,6 @@ const wxString svnCONFLICTED_FILES = _("Conflicted Files"); const wxString svnLOCKED_FILES = _("Locked Files"); const wxString svnUNVERSIONED_FILES = _("Unversioned Files"); -const wxString svnCONSOLE_TEXT = wxT("Svn"); +const wxString svnCONSOLE_TEXT = _("Svn"); const wxString svnANOTHER_PROCESS_RUNNING = _("\nMESSAGE: Another process is already running.\nMESSAGE: Ignoring last command.\n"); #endif // SVNSTRINGS_H diff -Nru codelite-8.0.1+dfsg2/Subversion2/subversion_view.cpp codelite-9.0+dfsg/Subversion2/subversion_view.cpp --- codelite-8.0.1+dfsg2/Subversion2/subversion_view.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Subversion2/subversion_view.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -98,6 +98,8 @@ EVT_MENU(XRCID("svn_unlock"), SubversionView::OnUnLock) EVT_MENU(XRCID("svn_rename"), SubversionView::OnRename) EVT_MENU(XRCID("svn_open_local_repo_browser"), SubversionView::OnChangeRootDir) +EVT_MENU(XRCID("svn_close_view"), SubversionView::OnCloseView) + END_EVENT_TABLE() static int FOLDER_IMG_ID = wxNOT_FOUND; @@ -360,8 +362,13 @@ path.swap(customizedRepo); } - DoRootDirChanged(path); - BuildTree(); + if(!m_plugin->IsPathUnderSvn(path)) { + OnCloseView(event); + + } else { + DoRootDirChanged(path); + BuildTree(); + } } void SubversionView::OnWorkspaceClosed(wxCommandEvent& event) @@ -376,7 +383,7 @@ } m_workspaceFile.Clear(); - DoChangeRootPathUI(_("")); + DoChangeRootPathUI(wxEmptyString); m_plugin->GetConsole()->Clear(); } @@ -396,12 +403,7 @@ if(rootDir.IsEmpty()) rootDir = DoGetCurRepoPath(); if(!fileExplorerOnly) { - -#ifdef __WXMSW__ wxWindowUpdateLocker locker(m_treeCtrl); -#else - clWindowUpdateLocker locker(m_treeCtrl); -#endif ClearAll(); // Add root node @@ -423,42 +425,6 @@ DoLinkEditor(); } - -#ifdef __WXMSW__ - return; -#endif - - DoCreateFileExplorerImages(); - -#if 0 - if(m_fileExplorerLastBaseImgIdx != -1) { - // Unified all the arrays into a single map - SvnFileExplorerTraverser::Map_t mymap; - - wxTreeCtrl* fileExplorer = m_plugin->GetManager()->GetTree(TreeFileExplorer); - wxTreeItemId feRootItem = fileExplorer->GetItemByFullPath(rootDir); - -#ifdef __WXMSW__ - wxWindowUpdateLocker locker(fileExplorer); -#else - clWindowUpdateLocker locker(fileExplorer); -#endif - DoAddArrayToMap(modifiedFiles, mymap, SvnFileExplorerTraverser::Modified, rootDir); - DoAddArrayToMap(newFiles, mymap, SvnFileExplorerTraverser::New, rootDir); - DoAddArrayToMap(deletedFiles, mymap, SvnFileExplorerTraverser::Deleted, rootDir); - DoAddArrayToMap(conflictedFiles, mymap, SvnFileExplorerTraverser::Conflicted, rootDir); - DoAddArrayToMap(lockedFiles, mymap, SvnFileExplorerTraverser::Locked, rootDir); - DoAddArrayToMap(unversionedFiles, mymap, SvnFileExplorerTraverser::Unversioned, rootDir); - DoAddArrayToMap(ignoreFiles, mymap, SvnFileExplorerTraverser::Ignored, rootDir); - - if (feRootItem.IsOk()) { - CL_DEBUG(wxT("wxTreeTraverser started...")); - SvnFileExplorerTraverser traverser(fileExplorer, mymap, m_fileExplorerLastBaseImgIdx, DoGetCurRepoPath()); - traverser.Traverse(feRootItem); - CL_DEBUG(wxT("wxTreeTraverser started...end")); - } - } -#endif } void SubversionView::DoAddNode(const wxString& title, @@ -611,8 +577,8 @@ { menu->Append(XRCID("svn_open_file"), _("Open File...")); menu->AppendSeparator(); - menu->Append(XRCID("svn_commit"), wxT("Commit")); menu->Append(XRCID("svn_update"), wxT("Update")); + menu->Append(XRCID("svn_commit"), wxT("Commit")); menu->AppendSeparator(); menu->Append(XRCID("svn_revert"), wxT("Revert")); @@ -642,8 +608,11 @@ void SubversionView::CreateRootMenu(wxMenu* menu) { - menu->Append(XRCID("svn_commit"), wxT("Commit")); + menu->Append(XRCID("svn_close_view"), wxT("Close")); + menu->AppendSeparator(); + menu->Append(XRCID("svn_update"), wxT("Update")); + menu->Append(XRCID("svn_commit"), wxT("Commit")); menu->AppendSeparator(); menu->Append(XRCID("svn_revert"), wxT("Revert")); @@ -1273,7 +1242,7 @@ void SubversionView::DoChangeRootPathUI(const wxString& path) { - if(path == _("")) { + if(path == wxEmptyString) { ClearAll(); } m_curpath = path; @@ -1281,7 +1250,7 @@ void SubversionView::DoRootDirChanged(const wxString& path) { - if(path == _("")) { + if(path == wxEmptyString) { DoChangeRootPathUI(path); } else { @@ -1383,66 +1352,6 @@ return wxTreeItemId(); } -void SubversionView::DoCreateFileExplorerImages() -{ -// Create new bitmaps for the FileExplorer tree -// The idea here is to add them in the order of the enum of the appearanced in the enum: -// -// enum { -// Modified, -// Locked, -// Unversioned, -// Conflicted, -// Deleted, -// New, -// Ok -// }; -#if 0 - if(m_fileExplorerLastBaseImgIdx == -1) { - wxTreeCtrl* fe = m_plugin->GetManager()->GetTree(TreeFileExplorer); - const std::vector& images = fe->GetImages(); - wxImageList *il = fe->GetImageList(); - - if(!images.empty() && il) { - int baseImagesCount = images.size(); - m_fileExplorerLastBaseImgIdx = baseImagesCount; - int idx; - for(int i=0; iAdd(SvnOverlayTool::Get().OKIcon(images.at(i))); - } - - for(int i=0; iAdd(SvnOverlayTool::Get().ModifiedIcon(images.at(i))); - } - - for(int i=0; iAdd(SvnOverlayTool::Get().LockedIcon(images.at(i))); - } - - for(int i=0; iAdd(SvnOverlayTool::Get().UnversionedIcon(images.at(i))); - } - - for(int i=0; iAdd(SvnOverlayTool::Get().ConflictIcon(images.at(i))); - } - - for(int i=0; iAdd(SvnOverlayTool::Get().DeletedIcon(images.at(i))); - } - - for(int i=0; iAdd(SvnOverlayTool::Get().NewIcon(images.at(i))); - } - wxUnusedVar(idx); - } - - //int newCount = il->GetImageCount(); - //wxPrintf(wxT("%d\n"), newCount); - } -#endif -} - void SubversionView::OnFileSaved(clCommandEvent& event) { event.Skip(); @@ -1488,3 +1397,11 @@ event.Skip(); ::clRecalculateSTCHScrollBar(m_sci); } + +void SubversionView::OnCloseView(wxCommandEvent& event) +{ + DoChangeRootPathUI(""); + + wxCommandEvent dummy; + OnClearOuptut(dummy); +} diff -Nru codelite-8.0.1+dfsg2/Subversion2/subversion_view.h codelite-9.0+dfsg/Subversion2/subversion_view.h --- codelite-8.0.1+dfsg2/Subversion2/subversion_view.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Subversion2/subversion_view.h 2015-10-11 13:56:07.000000000 +0000 @@ -103,7 +103,6 @@ void DoChangeRootPathUI(const wxString& path); void DoRootDirChanged(const wxString& path); wxString DoGetCurRepoPath() const; - void DoCreateFileExplorerImages(); protected: // Menu management @@ -117,6 +116,7 @@ protected: // Handlers for SubversionPageBase events. void OnChangeRootDir(wxCommandEvent& event); + void OnCloseView(wxCommandEvent& event); void OnTreeMenu(wxTreeEvent& event); void OnItemActivated(wxTreeEvent& event); diff -Nru codelite-8.0.1+dfsg2/Subversion2/svncommand.cpp codelite-9.0+dfsg/Subversion2/svncommand.cpp --- codelite-8.0.1+dfsg2/Subversion2/svncommand.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Subversion2/svncommand.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,28 +1,28 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2014 The CodeLite Team -// file name : svncommand.cpp -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - +////////////////////////////////////////////////////////////////////////////// +////////////////////////////////////////////////////////////////////////////// +// +// copyright : (C) 2014 The CodeLite Team +// file name : svncommand.cpp +// +// ------------------------------------------------------------------------- +// A +// _____ _ _ _ _ +// / __ \ | | | | (_) | +// | / \/ ___ __| | ___| | _| |_ ___ +// | | / _ \ / _ |/ _ \ | | | __/ _ ) +// | \__/\ (_) | (_| | __/ |___| | || __/ +// \____/\___/ \__,_|\___\_____/_|\__\___| +// +// F i l e +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// +////////////////////////////////////////////////////////////////////////////// +////////////////////////////////////////////////////////////////////////////// + #include "svncommand.h" #include "environmentconfig.h" #include "subversion_strings.h" @@ -31,31 +31,28 @@ #include "subversion2.h" #include #include "imanager.h" -#include "file_logger.h" - -BEGIN_EVENT_TABLE(SvnCommand, wxEvtHandler) - EVT_COMMAND(wxID_ANY, wxEVT_PROC_DATA_READ, SvnCommand::OnProcessOutput) - EVT_COMMAND(wxID_ANY, wxEVT_PROC_TERMINATED, SvnCommand::OnProcessTerminated) -END_EVENT_TABLE() +#include "file_logger.h" SvnCommand::SvnCommand(Subversion2* plugin) : m_process(NULL) , m_handler(NULL) - , m_plugin (plugin) + , m_plugin(plugin) { + Bind(wxEVT_ASYNC_PROCESS_OUTPUT, &SvnCommand::OnProcessOutput, this); + Bind(wxEVT_ASYNC_PROCESS_TERMINATED, &SvnCommand::OnProcessTerminated, this); } -SvnCommand::~SvnCommand() -{ - ClearAll(); -} +SvnCommand::~SvnCommand() { ClearAll(); } -bool SvnCommand::Execute(const wxString &command, const wxString &workingDirectory, SvnCommandHandler *handler, Subversion2 *plugin) +bool SvnCommand::Execute(const wxString& command, + const wxString& workingDirectory, + SvnCommandHandler* handler, + Subversion2* plugin) { // Dont run 2 commands at the same time if(m_process) { if(handler) { - //handler->GetPlugin()->GetShell()->AppendText(svnANOTHER_PROCESS_RUNNING); + // handler->GetPlugin()->GetShell()->AppendText(svnANOTHER_PROCESS_RUNNING); delete handler; } return false; @@ -64,45 +61,35 @@ ClearAll(); // Wrap the command in the OS Shell - wxString cmdShell (command); + wxString cmdShell(command); WrapInShell(cmdShell); - // Apply the environment variables before executing the command wxStringMap_t om; - om.insert( std::make_pair("LC_ALL", "C")); + om.insert(std::make_pair("LC_ALL", "C")); bool useOverrideMap = m_plugin->GetSettings().GetFlags() & SvnUsePosixLocale; EnvSetter env(m_plugin->GetManager()->GetEnv(), useOverrideMap ? &om : NULL); - + m_process = CreateAsyncProcess(this, command, IProcessCreateDefault, workingDirectory); - if ( !m_process ) { + if(!m_process) { return false; } m_workingDirectory = workingDirectory.c_str(); - m_command = command.c_str(); - m_handler = handler; + m_command = command.c_str(); + m_handler = handler; return true; } -void SvnCommand::OnProcessOutput(wxCommandEvent& event) -{ - ProcessEventData *ped = (ProcessEventData*)event.GetClientData(); - if( ped ) { - m_output.Append(ped->GetData().c_str()); - delete ped; - } +void SvnCommand::OnProcessOutput(clProcessEvent& event) +{ + m_output.Append(event.GetOutput()); CL_DEBUG("Subversion:\n%s", m_output); } -void SvnCommand::OnProcessTerminated(wxCommandEvent& event) +void SvnCommand::OnProcessTerminated(clProcessEvent& event) { - ProcessEventData *ped = (ProcessEventData*)event.GetClientData(); - if( ped ) { - delete ped; - } - - if (m_handler) { + if(m_handler) { CL_DEBUG("Subversion output:\n%s", m_output); if(m_handler->TestLoginRequired(m_output)) { // re-issue the last command but this time with login dialog @@ -110,7 +97,8 @@ m_handler->ProcessLoginRequired(m_workingDirectory); } else if(m_handler->TestVerificationFailed(m_output)) { - m_handler->GetPlugin()->GetConsole()->AppendText(_("Server certificate verification failed. Retrying...\n")); + m_handler->GetPlugin()->GetConsole()->AppendText( + _("Server certificate verification failed. Retrying...\n")); m_handler->ProcessVerificationRequired(); } else { @@ -122,7 +110,7 @@ m_handler = NULL; } - if (m_process) { + if(m_process) { delete m_process; m_process = NULL; } diff -Nru codelite-8.0.1+dfsg2/Subversion2/svncommand.h codelite-9.0+dfsg/Subversion2/svncommand.h --- codelite-8.0.1+dfsg2/Subversion2/svncommand.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Subversion2/svncommand.h 2015-10-11 13:56:07.000000000 +0000 @@ -34,47 +34,35 @@ class Subversion2; class SvnCommand : public wxEvtHandler { - IProcess * m_process; - wxString m_command; - wxString m_workingDirectory; - SvnCommandHandler *m_handler; - wxString m_output; - Subversion2* m_plugin; + IProcess* m_process; + wxString m_command; + wxString m_workingDirectory; + SvnCommandHandler* m_handler; + wxString m_output; + Subversion2* m_plugin; protected: + // Event handlers + void OnProcessTerminated(clProcessEvent& event); + void OnProcessOutput(clProcessEvent& event); - DECLARE_EVENT_TABLE(); +public: + SvnCommand(Subversion2* plugin); + virtual ~SvnCommand(); - // Event handlers - void OnProcessTerminated(wxCommandEvent &event); - void OnProcessOutput (wxCommandEvent &event); + bool + Execute(const wxString& command, const wxString& workingDirectory, SvnCommandHandler* handler, Subversion2* plugin); -public: - SvnCommand(Subversion2* plugin); - virtual ~SvnCommand(); + void SetWorkingDirectory(const wxString& workingDirectory) { this->m_workingDirectory = workingDirectory; } + + const wxString& GetCommand() const { return m_command; } + + IProcess* GetProcess() { return m_process; } - bool Execute(const wxString &command, const wxString &workingDirectory, SvnCommandHandler *handler, Subversion2 *plugin); + const wxString& GetWorkingDirectory() const { return m_workingDirectory; } - void SetWorkingDirectory(const wxString& workingDirectory) { - this->m_workingDirectory = workingDirectory; - } - - const wxString& GetCommand() const { - return m_command; - } - - IProcess* GetProcess() { - return m_process; - } - - const wxString& GetWorkingDirectory() const { - return m_workingDirectory; - } - - void ClearAll(); - bool IsBusy() { - return m_process != NULL; - } + void ClearAll(); + bool IsBusy() { return m_process != NULL; } }; #endif // SVNCOMMAND_H diff -Nru codelite-8.0.1+dfsg2/Subversion2/svn_command_handlers.cpp codelite-9.0+dfsg/Subversion2/svn_command_handlers.cpp --- codelite-8.0.1+dfsg2/Subversion2/svn_command_handlers.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Subversion2/svn_command_handlers.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -38,6 +38,7 @@ #include "ieditor.h" #include "event_notifier.h" #include "SvnBlameFrame.h" +#include "globals.h" void SvnCommitHandler::Process(const wxString& output) { @@ -153,11 +154,11 @@ // remove non interesting lines changeLog = Compact(changeLog); } - - ChangeLogPage *page = new ChangeLogPage(GetPlugin()->GetManager()->GetTheApp()->GetTopWindow(), GetPlugin()); - page->SetUrl(m_url); - page->AppendText( changeLog ); - GetPlugin()->GetManager()->AddPage( page, _("Change Log"), _("Change Log"), wxNullBitmap, true ); + + IEditor* editor = clGetManager()->NewEditor(); + editor->GetCtrl()->SetText(changeLog); + editor->GetCtrl()->SetFirstVisibleLine(0); + editor->SetCaretAt(0); } wxString SvnLogHandler::Compact(const wxString& message) diff -Nru codelite-8.0.1+dfsg2/Subversion2/SvnCommitDialog.cpp codelite-9.0+dfsg/Subversion2/SvnCommitDialog.cpp --- codelite-8.0.1+dfsg2/Subversion2/SvnCommitDialog.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Subversion2/SvnCommitDialog.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,28 +1,28 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2014 The CodeLite Team -// file name : SvnCommitDialog.cpp -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - +////////////////////////////////////////////////////////////////////////////// +////////////////////////////////////////////////////////////////////////////// +// +// copyright : (C) 2014 The CodeLite Team +// file name : SvnCommitDialog.cpp +// +// ------------------------------------------------------------------------- +// A +// _____ _ _ _ _ +// / __ \ | | | | (_) | +// | / \/ ___ __| | ___| | _| |_ ___ +// | | / _ \ / _ |/ _ \ | | | __/ _ ) +// | \__/\ (_) | (_| | __/ |___| | || __/ +// \____/\___/ \__,_|\___\_____/_|\__\___| +// +// F i l e +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// +////////////////////////////////////////////////////////////////////////////// +////////////////////////////////////////////////////////////////////////////// + #include "SvnCommitDialog.h" #include #include "windowattrmanager.h" @@ -38,24 +38,25 @@ class CommitMessageStringData : public wxClientData { wxString m_data; + public: - CommitMessageStringData(const wxString &data) : m_data(data.c_str()) {} + CommitMessageStringData(const wxString& data) + : m_data(data.c_str()) + { + } virtual ~CommitMessageStringData() {} - const wxString &GetData() const { - return m_data; - } + const wxString& GetData() const { return m_data; } }; -BEGIN_EVENT_TABLE(SvnCommitDialog, SvnCommitDialogBaseClass) - EVT_COMMAND(wxID_ANY, wxEVT_PROC_TERMINATED, SvnCommitDialog::OnProcessTerminatd) - EVT_COMMAND(wxID_ANY, wxEVT_PROC_DATA_READ, SvnCommitDialog::OnProcessOutput) -END_EVENT_TABLE() SvnCommitDialog::SvnCommitDialog(wxWindow* parent, Subversion2* plugin) : SvnCommitDialogBaseClass(parent) , m_plugin(plugin) , m_process(NULL) { + Bind(wxEVT_ASYNC_PROCESS_OUTPUT, &SvnCommitDialog::OnProcessOutput, this); + Bind(wxEVT_ASYNC_PROCESS_TERMINATED, &SvnCommitDialog::OnProcessTerminatd, this); + m_stcDiff->SetReadOnly(true); m_checkListFiles->Clear(); @@ -73,37 +74,43 @@ wxArrayString lastMessages, previews; m_plugin->GetCommitMessagesCache().GetMessages(lastMessages, previews); - for(size_t i=0; iAppend(previews.Item(i), new CommitMessageStringData(lastMessages.Item(i))); } - + SetName("SvnCommitDialog"); WindowAttrManager::Load(this); int sashPos = m_plugin->GetSettings().GetCommitDlgSashPos(); - if ( sashPos != wxNOT_FOUND ) { + if(sashPos != wxNOT_FOUND) { m_splitterH->SetSashPosition(sashPos); } - + LexerConf::Ptr_t textLexer = EditorConfigST::Get()->GetLexer("text"); - if ( textLexer ) { - textLexer->Apply( m_stcMessage ); + if(textLexer) { + textLexer->Apply(m_stcMessage); } - } -SvnCommitDialog::SvnCommitDialog(wxWindow* parent, const wxArrayString &paths, const wxString &url, Subversion2 *plugin, const wxString &repoPath) +SvnCommitDialog::SvnCommitDialog(wxWindow* parent, + const wxArrayString& paths, + const wxString& url, + Subversion2* plugin, + const wxString& repoPath) : SvnCommitDialogBaseClass(parent) , m_plugin(plugin) , m_url(url) , m_repoPath(repoPath) , m_process(NULL) { + Bind(wxEVT_ASYNC_PROCESS_OUTPUT, &SvnCommitDialog::OnProcessOutput, this); + Bind(wxEVT_ASYNC_PROCESS_TERMINATED, &SvnCommitDialog::OnProcessTerminatd, this); + m_stcDiff->SetReadOnly(true); wxString title = GetTitle(); title << wxT(" - ") << url; SetTitle(title); - for (size_t i=0; iAppend(paths.Item(i)); m_checkListFiles->Check((unsigned int)index); } @@ -111,42 +118,42 @@ wxArrayString lastMessages, previews; m_plugin->GetCommitMessagesCache().GetMessages(lastMessages, previews); - for(size_t i=0; iAppend(previews.Item(i), new CommitMessageStringData(lastMessages.Item(i))); } - - if ( !paths.IsEmpty() ) { + + if(!paths.IsEmpty()) { m_checkListFiles->Select(0); DoShowDiff(0); } - + SetName("SvnCommitDialog"); WindowAttrManager::Load(this); int sashPos = m_plugin->GetSettings().GetCommitDlgSashPos(); - if ( sashPos != wxNOT_FOUND ) { + if(sashPos != wxNOT_FOUND) { m_splitterH->SetSashPosition(sashPos); } - + int sashHPos = m_plugin->GetSettings().GetCommitDlgHSashPos(); - if ( sashHPos != wxNOT_FOUND ) { + if(sashHPos != wxNOT_FOUND) { m_splitterV->SetSashPosition(sashHPos); } - + LexerConf::Ptr_t diffLexer = EditorConfigST::Get()->GetLexer("Diff"); - if ( diffLexer ) { + if(diffLexer) { m_stcDiff->SetLexer(wxSTC_LEX_DIFF); - diffLexer->Apply( m_stcDiff ); + diffLexer->Apply(m_stcDiff); } - + LexerConf::Ptr_t textLexer = EditorConfigST::Get()->GetLexer("text"); - if ( textLexer ) { - textLexer->Apply( m_stcMessage ); + if(textLexer) { + textLexer->Apply(m_stcMessage); } } SvnCommitDialog::~SvnCommitDialog() { - wxDELETE( m_process ); + wxDELETE(m_process); wxString message = m_stcMessage->GetText(); m_plugin->GetCommitMessagesCache().AddMessage(message); @@ -156,8 +163,7 @@ SvnSettingsData ssd = m_plugin->GetSettings(); ssd.SetCommitDlgSashPos(sashPos); ssd.SetCommitDlgHSashPos(sashPosH); - m_plugin->SetSettings( ssd ); - + m_plugin->SetSettings(ssd); } wxString SvnCommitDialog::GetMesasge() @@ -170,52 +176,49 @@ if(m_textCtrlBugID->IsShown()) { wxString bugTrackerMsg = props.ReadProperty(SubversionLocalProperties::BUG_TRACKER_MESSAGE); wxString bugTrackerUrl = props.ReadProperty(SubversionLocalProperties::BUG_TRACKER_URL); - wxString bugId = m_textCtrlBugID->GetValue(); + wxString bugId = m_textCtrlBugID->GetValue(); bugId.Trim().Trim(false); if(bugId.IsEmpty() == false) { // Loop over the bug IDs and append message for each bug wxArrayString bugs = wxStringTokenize(bugId, wxT(","), wxTOKEN_STRTOK); - for(size_t i=0; iIsShown()) { wxString frTrackerMsg = props.ReadProperty(SubversionLocalProperties::FR_TRACKER_MESSAGE); wxString frTrackerUrl = props.ReadProperty(SubversionLocalProperties::FR_TRACKER_URL); - wxString frId = m_textCtrlFrID->GetValue(); + wxString frId = m_textCtrlFrID->GetValue(); frId.Trim().Trim(false); if(frId.IsEmpty() == false) { // Loop over the bug IDs and append message for each bug wxArrayString frs = wxStringTokenize(frId, wxT(","), wxTOKEN_STRTOK); - for(size_t i=0; iGetCount(); i++) { - if (m_checkListFiles->IsChecked(i)) { - paths.Add( m_checkListFiles->GetString(i) ); + for(size_t i = 0; i < m_checkListFiles->GetCount(); i++) { + if(m_checkListFiles->IsChecked(i)) { + paths.Add(m_checkListFiles->GetString(i)); } } return paths; @@ -260,66 +263,51 @@ void SvnCommitDialog::OnChoiceMessage(wxCommandEvent& e) { int idx = e.GetSelection(); - if(idx == wxNOT_FOUND) - return; + if(idx == wxNOT_FOUND) return; CommitMessageStringData* data = (CommitMessageStringData*)m_choiceMessages->GetClientObject(idx); if(data) { - m_stcMessage->SetText( data->GetData() ); + m_stcMessage->SetText(data->GetData()); } } -void SvnCommitDialog::OnFileSelected(wxCommandEvent& event) -{ - DoShowDiff( event.GetSelection() ); -} +void SvnCommitDialog::OnFileSelected(wxCommandEvent& event) { DoShowDiff(event.GetSelection()); } -void SvnCommitDialog::OnProcessOutput(wxCommandEvent& e) -{ - ProcessEventData* ped = (ProcessEventData*) e.GetClientData(); - m_output << ped->GetData(); - delete ped; -} +void SvnCommitDialog::OnProcessOutput(clProcessEvent& e) { m_output << e.GetOutput(); } -void SvnCommitDialog::OnProcessTerminatd(wxCommandEvent& e) +void SvnCommitDialog::OnProcessTerminatd(clProcessEvent& e) { - ProcessEventData* ped = (ProcessEventData*) e.GetClientData(); - m_output << ped->GetData(); - delete ped; - m_cache.insert(std::make_pair(m_currentFile, m_output)); - m_stcDiff->SetReadOnly(false); - m_stcDiff->SetText( m_output ); + m_stcDiff->SetText(m_output); m_stcDiff->SetReadOnly(true); m_checkListFiles->Enable(true); m_currentFile.Clear(); - wxDELETE( m_process ); + wxDELETE(m_process); } - -void SvnCommitDialog::DoShowDiff(int selection) + +void SvnCommitDialog::DoShowDiff(int selection) { - if ( m_repoPath.IsEmpty() ) - return; + if(m_repoPath.IsEmpty()) return; wxString filename = m_checkListFiles->GetString(selection); - if ( filename.Contains(" ") ) { + if(filename.Contains(" ")) { filename.Prepend("\"").Append("\""); } - - if ( m_cache.count(filename) ) { + + if(m_cache.count(filename)) { m_stcDiff->SetReadOnly(false); m_stcDiff->SetText(m_cache[filename]); m_stcDiff->SetReadOnly(true); return; } - + m_checkListFiles->Enable(false); // disable user interaction with this control until the diff process will terminate wxString cmd; cmd << "svn diff " << filename; m_currentFile = filename; m_output.Clear(); - m_process = ::CreateAsyncProcess(this, cmd, IProcessCreateDefault, m_repoPath); -} + m_process = ::CreateAsyncProcess(this, cmd, IProcessCreateDefault, m_repoPath); +} diff -Nru codelite-8.0.1+dfsg2/Subversion2/SvnCommitDialog.h codelite-9.0+dfsg/Subversion2/SvnCommitDialog.h --- codelite-8.0.1+dfsg2/Subversion2/SvnCommitDialog.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Subversion2/SvnCommitDialog.h 2015-10-11 13:56:07.000000000 +0000 @@ -28,41 +28,43 @@ #include "wxcrafter.h" #include "macros.h" +#include "cl_command_event.h" class Subversion2; class IProcess; class SvnCommitDialog : public SvnCommitDialogBaseClass { - Subversion2 * m_plugin; - wxString m_url; - wxString m_repoPath; - IProcess* m_process; - wxString m_output; + Subversion2* m_plugin; + wxString m_url; + wxString m_repoPath; + IProcess* m_process; + wxString m_output; wxStringMap_t m_cache; - wxString m_currentFile; - + wxString m_currentFile; + public: - static wxString NormalizeMessage(const wxString &message); - void OnChoiceMessage(wxCommandEvent &e); + static wxString NormalizeMessage(const wxString& message); + void OnChoiceMessage(wxCommandEvent& e); public: SvnCommitDialog(wxWindow* parent, Subversion2* plugin); - SvnCommitDialog(wxWindow* parent, const wxArrayString &paths, const wxString &url, Subversion2 *plugin, const wxString &repoPath); + SvnCommitDialog(wxWindow* parent, + const wxArrayString& paths, + const wxString& url, + Subversion2* plugin, + const wxString& repoPath); virtual ~SvnCommitDialog(); wxString GetMesasge(); wxArrayString GetPaths(); - -protected: + +protected: void DoShowDiff(int selection); - + protected: - DECLARE_EVENT_TABLE() - virtual void OnFileSelected(wxCommandEvent& event); - void OnProcessOutput(wxCommandEvent &e); - void OnProcessTerminatd(wxCommandEvent &e); - + void OnProcessOutput(clProcessEvent& e); + void OnProcessTerminatd(clProcessEvent& e); }; #endif // SVNCOMMITDIALOG_H diff -Nru codelite-8.0.1+dfsg2/Subversion2/svn_console.cpp codelite-9.0+dfsg/Subversion2/svn_console.cpp --- codelite-8.0.1+dfsg2/Subversion2/svn_console.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Subversion2/svn_console.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -36,17 +36,12 @@ #include "processreaderthread.h" #include "subversion2.h" #include "lexer_configuration.h" -#include "notebook_ex.h" +#include "Notebook.h" #include "event_notifier.h" #include #include //------------------------------------------------------------- -BEGIN_EVENT_TABLE(SvnConsole, wxEvtHandler) -EVT_COMMAND(wxID_ANY, wxEVT_PROC_DATA_READ, SvnConsole::OnReadProcessOutput) -EVT_COMMAND(wxID_ANY, wxEVT_PROC_TERMINATED, SvnConsole::OnProcessEnd) -END_EVENT_TABLE() - SvnConsole::SvnConsole(wxStyledTextCtrl* stc, Subversion2* plugin) : m_sci(stc) , m_process(NULL) @@ -60,6 +55,8 @@ EventNotifier::Get()->Connect( wxEVT_CL_THEME_CHANGED, wxCommandEventHandler(SvnConsole::OnThemeChanged), NULL, this); + Bind(wxEVT_ASYNC_PROCESS_OUTPUT, &SvnConsole::OnReadProcessOutput, this); + Bind(wxEVT_ASYNC_PROCESS_TERMINATED, &SvnConsole::OnProcessEnd, this); } SvnConsole::~SvnConsole() @@ -68,46 +65,33 @@ wxEVT_CL_THEME_CHANGED, wxCommandEventHandler(SvnConsole::OnThemeChanged), NULL, this); } -void SvnConsole::OnReadProcessOutput(wxCommandEvent& event) +void SvnConsole::OnReadProcessOutput(clProcessEvent& event) { - ProcessEventData* ped = (ProcessEventData*)event.GetClientData(); - if(ped) { - m_output.Append(ped->GetData().c_str()); - } - - wxString s(ped->GetData()); - s.MakeLower(); + m_output.Append(event.GetOutput()); - if(m_currCmd.printProcessOutput) AppendText(ped->GetData()); + wxString s = event.GetOutput().Lower(); + if(m_currCmd.printProcessOutput) AppendText(event.GetOutput()); static wxRegEx reUsername("username[ \t]*:", wxRE_DEFAULT | wxRE_ICASE); wxArrayString lines = wxStringTokenize(s, wxT("\n"), wxTOKEN_STRTOK); if(!lines.IsEmpty() && lines.Last().StartsWith(wxT("password for '"))) { m_output.Clear(); - wxString pass = wxGetPasswordFromUser(ped->GetData(), wxT("Subversion")); + wxString pass = wxGetPasswordFromUser(event.GetOutput(), wxT("Subversion")); if(!pass.IsEmpty() && m_process) { m_process->WriteToConsole(pass); } } else if(!lines.IsEmpty() && reUsername.IsValid() && reUsername.Matches(lines.Last())) { // Prompt the user for "Username:" - wxString username = ::wxGetTextFromUser(ped->GetData(), "Subversion"); + wxString username = ::wxGetTextFromUser(event.GetOutput(), "Subversion"); if(!username.IsEmpty() && m_process) { m_process->Write(username + "\n"); } } - delete ped; } -void SvnConsole::OnProcessEnd(wxCommandEvent& event) +void SvnConsole::OnProcessEnd(clProcessEvent& event) { - ProcessEventData* ped = (ProcessEventData*)event.GetClientData(); - delete ped; - - if(m_process) { - delete m_process; - m_process = NULL; - } - + wxDELETE(m_process); if(m_currCmd.handler) { // command ended successfully, invoke the "success" callback m_currCmd.handler->Process(m_output); @@ -183,10 +167,7 @@ bool SvnConsole::IsEmpty() { return m_sci->GetText().IsEmpty(); } -void SvnConsole::EnsureVisible() -{ - m_plugin->EnsureVisible(); -} +void SvnConsole::EnsureVisible() { m_plugin->EnsureVisible(); } void SvnConsole::DoProcessNextCommand() { @@ -211,7 +192,7 @@ EnsureVisible(); // Print the command? - AppendText(m_currCmd.cmd + wxT("\n")); + AppendText("[" + m_currCmd.workingDirectory + "] " + m_currCmd.cmd + wxT("\n")); // Wrap the command in the OS Shell wxString cmdShell(m_currCmd.cmd); diff -Nru codelite-8.0.1+dfsg2/Subversion2/svn_console.h codelite-9.0+dfsg/Subversion2/svn_console.h --- codelite-8.0.1+dfsg2/Subversion2/svn_console.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Subversion2/svn_console.h 2015-10-11 13:56:07.000000000 +0000 @@ -30,12 +30,12 @@ #include #include #include +#include "cl_command_event.h" class IProcess; class Subversion2; -struct SvnConsoleCommand -{ +struct SvnConsoleCommand { SvnCommandHandler* handler; wxString cmd; wxString workingDirectory; @@ -72,9 +72,8 @@ int m_inferiorEnd; protected: - DECLARE_EVENT_TABLE() - virtual void OnReadProcessOutput(wxCommandEvent& event); - virtual void OnProcessEnd(wxCommandEvent& event); + virtual void OnReadProcessOutput(clProcessEvent& event); + virtual void OnProcessEnd(clProcessEvent& event); virtual void OnCharAdded(wxStyledTextEvent& event); virtual void OnUpdateUI(wxStyledTextEvent& event); virtual void OnKeyDown(wxKeyEvent& event); diff -Nru codelite-8.0.1+dfsg2/Subversion2/svn_local_properties.cpp codelite-9.0+dfsg/Subversion2/svn_local_properties.cpp --- codelite-8.0.1+dfsg2/Subversion2/svn_local_properties.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Subversion2/svn_local_properties.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -30,135 +30,132 @@ #include #include #include "cl_standard_paths.h" +#include "fileutils.h" -wxString SubversionLocalProperties::BUG_TRACKER_URL = wxT("bug_tracker_url"); -wxString SubversionLocalProperties::BUG_TRACKER_MESSAGE = wxT("bug_tracker_message"); -wxString SubversionLocalProperties::FR_TRACKER_URL = wxT("fr_tracker_url"); -wxString SubversionLocalProperties::FR_TRACKER_MESSAGE = wxT("fr_tracker_message"); +wxString SubversionLocalProperties::BUG_TRACKER_URL = wxT("bug_tracker_url"); +wxString SubversionLocalProperties::BUG_TRACKER_MESSAGE = wxT("bug_tracker_message"); +wxString SubversionLocalProperties::FR_TRACKER_URL = wxT("fr_tracker_url"); +wxString SubversionLocalProperties::FR_TRACKER_MESSAGE = wxT("fr_tracker_message"); SubversionLocalProperties::SubversionLocalProperties(const wxString& url) - : m_url(url) + : m_url(url) { } -SubversionLocalProperties::~SubversionLocalProperties() -{ -} +SubversionLocalProperties::~SubversionLocalProperties() {} wxString SubversionLocalProperties::ReadProperty(const wxString& propName) { - ReadProperties(); + ReadProperties(); + + // find the relevant group + GroupTable::const_iterator iter = m_values.find(m_url); + if(iter == m_values.end()) return wxT(""); - // find the relevant group - GroupTable::const_iterator iter = m_values.find(m_url); - if(iter == m_values.end()) - return wxT(""); - - SimpleTable::const_iterator it = iter->second.find(propName); - if(it == iter->second.end()) - return wxT(""); + SimpleTable::const_iterator it = iter->second.find(propName); + if(it == iter->second.end()) return wxT(""); - return it->second; + return it->second; } void SubversionLocalProperties::WriteProperty(const wxString& name, const wxString& val) { - ReadProperties(); + ReadProperties(); - GroupTable::iterator iter = m_values.find(m_url); - if(iter == m_values.end()) { - SimpleTable tb; - tb[name] = val; - m_values[m_url] = tb; - } else { - m_values[m_url][name] = val; - } + GroupTable::iterator iter = m_values.find(m_url); + if(iter == m_values.end()) { + SimpleTable tb; + tb[name] = val; + m_values[m_url] = tb; + } else { + m_values[m_url][name] = val; + } - // Update the properties - WriteProperties(); + // Update the properties + WriteProperties(); } wxString SubversionLocalProperties::GetConfigFile() { - wxLogNull noLog; - // disable logging - wxString configDir(clStandardPaths::Get().GetUserDataDir()); - configDir << wxFileName::GetPathSeparator() << wxT("subversion"); - - wxMkdir(configDir); - configDir << wxFileName::GetPathSeparator() << wxT("codelite-properties.ini"); - return configDir; + wxFileName fnConfig(clStandardPaths::Get().GetUserDataDir(), "codelite-properties.ini"); + fnConfig.AppendDir("subversion"); + + fnConfig.Mkdir(wxS_DIR_DEFAULT, wxPATH_MKDIR_FULL); + if(!fnConfig.Exists()) { + // Create an empty file + FileUtils::WriteFileContent(fnConfig, ""); + } + return fnConfig.GetFullPath(); } void SubversionLocalProperties::ReadProperties() { - m_values.clear(); - wxString group; - wxFFile fp(GetConfigFile(), wxT("rb")); - if(fp.IsOpened()) { - wxString content; - fp.ReadAll(&content); - - wxArrayString lines = wxStringTokenize(content, wxT("\n"), wxTOKEN_STRTOK); - for(size_t i=0; isecond; - wxString sectionName = iter->first; - - SimpleTable::const_iterator it = tb.begin(); - fp.Write(wxString::Format(wxT("[%s]\n"), sectionName.c_str())); - - for(; it != tb.end(); it++) { - fp.Write(wxString::Format(wxT("%s=%s\n"), it->first.c_str(), it->second.c_str())); - } - } - } + wxFFile fp(GetConfigFile(), wxT("wb")); + if(fp.IsOpened()) { + GroupTable::const_iterator iter = m_values.begin(); + for(; iter != m_values.end(); iter++) { + SimpleTable tb = iter->second; + wxString sectionName = iter->first; + + SimpleTable::const_iterator it = tb.begin(); + fp.Write(wxString::Format(wxT("[%s]\n"), sectionName.c_str())); + + for(; it != tb.end(); it++) { + fp.Write(wxString::Format(wxT("%s=%s\n"), it->first.c_str(), it->second.c_str())); + } + } + } } diff -Nru codelite-8.0.1+dfsg2/Subversion2/svnsettingsdata.h codelite-9.0+dfsg/Subversion2/svnsettingsdata.h --- codelite-8.0.1+dfsg2/Subversion2/svnsettingsdata.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Subversion2/svnsettingsdata.h 2015-10-11 13:56:07.000000000 +0000 @@ -27,163 +27,118 @@ #define SVNSETTINGSDATA_H #include "serialized_object.h" // Base class -#include "notebook_ex.h" +#include "Notebook.h" #include enum SvnSettingsDataFlags { - SvnAddFileToSvn = 0x00000001, - SvnRetagWorkspace = 0x00000002, - SvnUseExternalDiff = 0x00000004, + SvnAddFileToSvn = 0x00000001, + SvnRetagWorkspace = 0x00000002, + SvnUseExternalDiff = 0x00000004, SvnExposeRevisionMacro = 0x00000008, - SvnRenameFileInRepo = 0x00000010, - SvnLinkEditor = 0x00000020, - SvnUsePosixLocale = 0x00000040 + SvnRenameFileInRepo = 0x00000010, + SvnLinkEditor = 0x00000020, + SvnUsePosixLocale = 0x00000040 }; class SvnSettingsData : public SerializedObject { - wxString m_executable; - wxString m_ignoreFilePattern; - wxString m_externalDiffViewer; - wxString m_sshClient; - wxString m_sshClientArgs; - size_t m_flags; - wxArrayString m_urls; - wxString m_revisionMacroName; - size_t m_svnTabIndex; + wxString m_executable; + wxString m_ignoreFilePattern; + wxString m_externalDiffViewer; + wxString m_sshClient; + wxString m_sshClientArgs; + size_t m_flags; + wxArrayString m_urls; + wxString m_revisionMacroName; + int m_svnTabIndex; std::map m_workspaceRepoPath; - wxArrayString m_repos; - int m_commitDlgSashPos; - int m_commitDlgHSashPos; + wxArrayString m_repos; + int m_commitDlgSashPos; + int m_commitDlgHSashPos; + public: SvnSettingsData() : m_executable(wxT("svn")) - , m_ignoreFilePattern(wxT("*.o *.obj *.exe *.lib *.so *.dll *.a *.dynlib *.exp *.ilk *.pdb *.d *.tags *.suo *.ncb *.bak *.orig *.dll *.mine *.o.d *.session Debug Release DebugUnicode ReleaseUnicode")) + , m_ignoreFilePattern( + wxT("*.o *.obj *.exe *.lib *.so *.dll *.a *.dynlib *.exp *.ilk *.pdb *.d *.tags *.suo *.ncb *.bak *.orig " + "*.dll *.mine *.o.d *.session Debug Release DebugUnicode ReleaseUnicode")) , m_externalDiffViewer(wxT("")) , m_sshClient(wxT("")) , m_sshClientArgs(wxT("")) - , m_flags(SvnAddFileToSvn|SvnRetagWorkspace|SvnUsePosixLocale) + , m_flags(SvnAddFileToSvn | SvnRetagWorkspace | SvnUsePosixLocale) , m_revisionMacroName(wxT("SVN_REVISION")) - , m_svnTabIndex(Notebook::npos) + , m_svnTabIndex(wxNOT_FOUND) , m_commitDlgSashPos(wxNOT_FOUND) , m_commitDlgHSashPos(wxNOT_FOUND) { } - virtual ~SvnSettingsData() { - } + virtual ~SvnSettingsData() {} public: - virtual void DeSerialize(Archive &arch) { - arch.Read(wxT("m_executable"), m_executable); - arch.Read(wxT("m_ignoreFilePattern"), m_ignoreFilePattern); - arch.Read(wxT("m_externalDiffViewer"), m_externalDiffViewer); - arch.Read(wxT("m_sshClient"), m_sshClient); - arch.Read(wxT("m_sshClientArgs"), m_sshClientArgs); - arch.Read(wxT("m_flags"), m_flags); - arch.Read(wxT("m_urls"), m_urls); - arch.Read(wxT("m_revisionMacroName"), m_revisionMacroName); - arch.Read(wxT("m_svnTabIndex"), m_svnTabIndex); - arch.Read(wxT("m_workspaceRepoPath"), m_workspaceRepoPath); - arch.Read(wxT("m_repos"), m_repos); - arch.Read(wxT("m_commitDlgSashPos"), m_commitDlgSashPos); - arch.Read(wxT("m_commitDlgHSashPos"), m_commitDlgHSashPos); - } - - virtual void Serialize(Archive &arch) { - arch.Write(wxT("m_executable"), m_executable); - arch.Write(wxT("m_ignoreFilePattern"), m_ignoreFilePattern); - arch.Write(wxT("m_externalDiffViewer"), m_externalDiffViewer); - arch.Write(wxT("m_sshClient"), m_sshClient); - arch.Write(wxT("m_sshClientArgs"), m_sshClientArgs); - arch.Write(wxT("m_flags"), m_flags); - arch.Write(wxT("m_urls"), m_urls); - arch.Write(wxT("m_revisionMacroName"), m_revisionMacroName); - arch.Write(wxT("m_svnTabIndex"), m_svnTabIndex); - arch.Write(wxT("m_workspaceRepoPath"), m_workspaceRepoPath); - arch.Write(wxT("m_repos"), m_repos); - arch.Write(wxT("m_commitDlgSashPos"), m_commitDlgSashPos); - arch.Write(wxT("m_commitDlgHSashPos"), m_commitDlgHSashPos); + virtual void DeSerialize(Archive& arch) + { + arch.Read(wxT("m_executable"), m_executable); + arch.Read(wxT("m_ignoreFilePattern"), m_ignoreFilePattern); + arch.Read(wxT("m_externalDiffViewer"), m_externalDiffViewer); + arch.Read(wxT("m_sshClient"), m_sshClient); + arch.Read(wxT("m_sshClientArgs"), m_sshClientArgs); + arch.Read(wxT("m_flags"), m_flags); + arch.Read(wxT("m_urls"), m_urls); + arch.Read(wxT("m_revisionMacroName"), m_revisionMacroName); + arch.Read(wxT("m_svnTabIndex"), m_svnTabIndex); + arch.Read(wxT("m_workspaceRepoPath"), m_workspaceRepoPath); + arch.Read(wxT("m_repos"), m_repos); + arch.Read(wxT("m_commitDlgSashPos"), m_commitDlgSashPos); + arch.Read(wxT("m_commitDlgHSashPos"), m_commitDlgHSashPos); } - void SetCommitDlgHSashPos(int commitDlgHSashPos) { - this->m_commitDlgHSashPos = commitDlgHSashPos; - } - int GetCommitDlgHSashPos() const { - return m_commitDlgHSashPos; - } - void SetCommitDlgSashPos(int commitDlgSashPos) { - this->m_commitDlgSashPos = commitDlgSashPos; - } - int GetCommitDlgSashPos() const { - return m_commitDlgSashPos; - } - void SetRepos(const wxArrayString& repos) { - this->m_repos = repos; - } - const wxArrayString& GetRepos() const { - return m_repos; - } - void SetSvnTabIndex(const size_t& svnTabIndex) { - this->m_svnTabIndex = svnTabIndex; - } - const size_t& GetSvnTabIndex() const { - return m_svnTabIndex; - } - void SetRevisionMacroName(const wxString& revisionMacroName) { - this->m_revisionMacroName = revisionMacroName; - } - const wxString& GetRevisionMacroName() const { - return m_revisionMacroName; - } - void SetExecutable(const wxString& executable) { - this->m_executable = executable; - } - const wxString& GetExecutable() const { - return m_executable; - } - void SetExternalDiffViewer(const wxString& externalDiffViewer) { - this->m_externalDiffViewer = externalDiffViewer; - } - void SetFlags(const size_t& flags) { - this->m_flags = flags; - } - void SetIgnoreFilePattern(const wxString& ignoreFilePattern) { - this->m_ignoreFilePattern = ignoreFilePattern; - } - void SetSshClient(const wxString& sshClient) { - this->m_sshClient = sshClient; - } - void SetSshClientArgs(const wxString& sshClientArgs) { - this->m_sshClientArgs = sshClientArgs; - } - const wxString& GetExternalDiffViewer() const { - return m_externalDiffViewer; - } - const size_t& GetFlags() const { - return m_flags; - } - const wxString& GetIgnoreFilePattern() const { - return m_ignoreFilePattern; - } - const wxString& GetSshClient() const { - return m_sshClient; - } - const wxString& GetSshClientArgs() const { - return m_sshClientArgs; - } - void SetUrls(const wxArrayString& urls) { - this->m_urls = urls; - } - const wxArrayString& GetUrls() const { - return m_urls; - } - void SetWorkspaceRepoPath(const std::map& workspaceRepoPath) { + virtual void Serialize(Archive& arch) + { + arch.Write(wxT("m_executable"), m_executable); + arch.Write(wxT("m_ignoreFilePattern"), m_ignoreFilePattern); + arch.Write(wxT("m_externalDiffViewer"), m_externalDiffViewer); + arch.Write(wxT("m_sshClient"), m_sshClient); + arch.Write(wxT("m_sshClientArgs"), m_sshClientArgs); + arch.Write(wxT("m_flags"), m_flags); + arch.Write(wxT("m_urls"), m_urls); + arch.Write(wxT("m_revisionMacroName"), m_revisionMacroName); + arch.Write(wxT("m_svnTabIndex"), m_svnTabIndex); + arch.Write(wxT("m_workspaceRepoPath"), m_workspaceRepoPath); + arch.Write(wxT("m_repos"), m_repos); + arch.Write(wxT("m_commitDlgSashPos"), m_commitDlgSashPos); + arch.Write(wxT("m_commitDlgHSashPos"), m_commitDlgHSashPos); + } + + void SetCommitDlgHSashPos(int commitDlgHSashPos) { this->m_commitDlgHSashPos = commitDlgHSashPos; } + int GetCommitDlgHSashPos() const { return m_commitDlgHSashPos; } + void SetCommitDlgSashPos(int commitDlgSashPos) { this->m_commitDlgSashPos = commitDlgSashPos; } + int GetCommitDlgSashPos() const { return m_commitDlgSashPos; } + void SetRepos(const wxArrayString& repos) { this->m_repos = repos; } + const wxArrayString& GetRepos() const { return m_repos; } + void SetSvnTabIndex(int svnTabIndex) { this->m_svnTabIndex = svnTabIndex; } + int GetSvnTabIndex() const { return m_svnTabIndex; } + void SetRevisionMacroName(const wxString& revisionMacroName) { this->m_revisionMacroName = revisionMacroName; } + const wxString& GetRevisionMacroName() const { return m_revisionMacroName; } + void SetExecutable(const wxString& executable) { this->m_executable = executable; } + const wxString& GetExecutable() const { return m_executable; } + void SetExternalDiffViewer(const wxString& externalDiffViewer) { this->m_externalDiffViewer = externalDiffViewer; } + void SetFlags(const size_t& flags) { this->m_flags = flags; } + void SetIgnoreFilePattern(const wxString& ignoreFilePattern) { this->m_ignoreFilePattern = ignoreFilePattern; } + void SetSshClient(const wxString& sshClient) { this->m_sshClient = sshClient; } + void SetSshClientArgs(const wxString& sshClientArgs) { this->m_sshClientArgs = sshClientArgs; } + const wxString& GetExternalDiffViewer() const { return m_externalDiffViewer; } + const size_t& GetFlags() const { return m_flags; } + const wxString& GetIgnoreFilePattern() const { return m_ignoreFilePattern; } + const wxString& GetSshClient() const { return m_sshClient; } + const wxString& GetSshClientArgs() const { return m_sshClientArgs; } + void SetUrls(const wxArrayString& urls) { this->m_urls = urls; } + const wxArrayString& GetUrls() const { return m_urls; } + void SetWorkspaceRepoPath(const std::map& workspaceRepoPath) + { this->m_workspaceRepoPath = workspaceRepoPath; } - std::map& GetWorkspaceRepoPath() { - return m_workspaceRepoPath; - } + std::map& GetWorkspaceRepoPath() { return m_workspaceRepoPath; } }; #endif // SVNSETTINGSDATA_H diff -Nru codelite-8.0.1+dfsg2/Subversion2/wxcrafter.cpp codelite-9.0+dfsg/Subversion2/wxcrafter.cpp --- codelite-8.0.1+dfsg2/Subversion2/wxcrafter.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Subversion2/wxcrafter.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -204,11 +204,19 @@ m_stdBtnSizer66->AddButton(m_buttonOK); m_stdBtnSizer66->Realize(); + SetName(wxT("SvnCommitDialogBaseClass")); SetSizeHints(-1,-1); if ( GetSizer() ) { GetSizer()->Fit(this); } - Centre(wxBOTH); + CentreOnParent(wxBOTH); +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(this)) { + wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); + } +#endif // Connect events m_checkListFiles->Connect(wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler(SvnCommitDialogBaseClass::OnFileSelected), NULL, this); m_choiceMessages->Connect(wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler(SvnCommitDialogBaseClass::OnChoiceMessage), NULL, this); @@ -261,7 +269,7 @@ flexGridSizer37->Add(m_staticText34, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL, 5); - m_dirPickerRootDir = new wxDirPickerCtrl(this, wxID_ANY, wxEmptyString, wxT("Select a folder"), wxDefaultPosition, wxSize(-1,-1), wxDIRP_DEFAULT_STYLE); + m_dirPickerRootDir = new wxDirPickerCtrl(this, wxID_ANY, wxEmptyString, _("Select a folder"), wxDefaultPosition, wxSize(-1,-1), wxDIRP_DEFAULT_STYLE); flexGridSizer37->Add(m_dirPickerRootDir, 0, wxEXPAND|wxALL, 5); @@ -298,11 +306,19 @@ boxSizer27->Add(m_button29, 0, wxALL, 5); + SetName(wxT("SvnSyncDialogBaseClass")); SetSizeHints(-1,-1); if ( GetSizer() ) { GetSizer()->Fit(this); } - Centre(wxBOTH); + CentreOnParent(wxBOTH); +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(this)) { + wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); + } +#endif // Connect events m_button28->Connect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(SvnSyncDialogBaseClass::OnOkUI), NULL, this); m_button28->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SvnSyncDialogBaseClass::OnButtonOK), NULL, this); diff -Nru codelite-8.0.1+dfsg2/Subversion2/wxcrafter.h codelite-9.0+dfsg/Subversion2/wxcrafter.h --- codelite-8.0.1+dfsg2/Subversion2/wxcrafter.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Subversion2/wxcrafter.h 2015-10-11 13:56:07.000000000 +0000 @@ -4,8 +4,8 @@ // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// -#ifndef WXCRAFTER_BASE_CLASSES_H -#define WXCRAFTER_BASE_CLASSES_H +#ifndef CODELITE_SUBVERSION2_WXCRAFTER_BASE_CLASSES_H +#define CODELITE_SUBVERSION2_WXCRAFTER_BASE_CLASSES_H #include #include @@ -26,6 +26,12 @@ #include #include #include +#if wxVERSION_NUMBER >= 2900 +#include +#include +#include +#include +#endif class SvnCommitDialogBaseClass : public wxDialog { @@ -56,6 +62,23 @@ virtual void OnChoiceMessage(wxCommandEvent& event) { event.Skip(); } public: + wxStaticText* GetStaticText32() { return m_staticText32; } + wxTextCtrl* GetTextCtrlFrID() { return m_textCtrlFrID; } + wxStaticText* GetStaticTextBugID() { return m_staticTextBugID; } + wxTextCtrl* GetTextCtrlBugID() { return m_textCtrlBugID; } + wxStaticText* GetStaticText17() { return m_staticText17; } + wxCheckListBox* GetCheckListFiles() { return m_checkListFiles; } + wxPanel* GetPanel1() { return m_panel1; } + wxStaticText* GetStaticText19() { return m_staticText19; } + wxStyledTextCtrl* GetStcDiff() { return m_stcDiff; } + wxPanel* GetSplitterPage14() { return m_splitterPage14; } + wxSplitterWindow* GetSplitterH() { return m_splitterH; } + wxPanel* GetSplitterPage52() { return m_splitterPage52; } + wxStaticText* GetStaticText62() { return m_staticText62; } + wxStyledTextCtrl* GetStcMessage() { return m_stcMessage; } + wxPanel* GetSplitterPage56() { return m_splitterPage56; } + wxSplitterWindow* GetSplitterV() { return m_splitterV; } + wxChoice* GetChoiceMessages() { return m_choiceMessages; } SvnCommitDialogBaseClass(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Svn Commit"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER); virtual ~SvnCommitDialogBaseClass(); }; @@ -79,6 +102,15 @@ virtual void OnButtonOK(wxCommandEvent& event) { event.Skip(); } public: + wxStaticText* GetStaticText31() { return m_staticText31; } + wxStaticText* GetStaticTextSvnInfo() { return m_staticTextSvnInfo; } + wxStaticText* GetStaticText34() { return m_staticText34; } + wxDirPickerCtrl* GetDirPickerRootDir() { return m_dirPickerRootDir; } + wxStaticText* GetStaticText40() { return m_staticText40; } + wxTextCtrl* GetTextCtrlExclude() { return m_textCtrlExclude; } + wxCheckBox* GetCheckBoxBin() { return m_checkBoxBin; } + wxButton* GetButton28() { return m_button28; } + wxButton* GetButton29() { return m_button29; } SvnSyncDialogBaseClass(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Sync Workspace to SVN"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER); virtual ~SvnSyncDialogBaseClass(); }; diff -Nru codelite-8.0.1+dfsg2/Subversion2/wxcrafter_subversion2_bitmaps.cpp codelite-9.0+dfsg/Subversion2/wxcrafter_subversion2_bitmaps.cpp --- codelite-8.0.1+dfsg2/Subversion2/wxcrafter_subversion2_bitmaps.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Subversion2/wxcrafter_subversion2_bitmaps.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -21,14 +21,13 @@ wxMemoryFSHandler::AddFile(name, data, size) #endif -static size_t xml_res_size_0 = 108; +static size_t xml_res_size_0 = 90; static unsigned char xml_res_file_0[] = { 60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, 110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, 115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, 47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, -47,119,120,120,114,99,34,32,118,101,114,115,105,111,110,61,34,50,46,51, -46,48,46,49,34,47,62,10}; +47,119,120,120,114,99,34,47,62,10}; void wxC38D8InitBitmapResources() { diff -Nru codelite-8.0.1+dfsg2/Subversion2/wxcrafter.wxcp codelite-9.0+dfsg/Subversion2/wxcrafter.wxcp --- codelite-8.0.1+dfsg2/Subversion2/wxcrafter.wxcp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Subversion2/wxcrafter.wxcp 2015-10-11 13:56:07.000000000 +0000 @@ -72,6 +72,10 @@ "m_label": "Style:", "m_value": "" }, { + "type": "bool", + "m_label": "Enable Window Persistency:", + "m_value": true + }, { "type": "string", "m_label": "Title:", "m_value": "Svn Commit" @@ -128,6 +132,10 @@ "m_sizerFlags": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "boxSizer1" }, { @@ -151,6 +159,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "flexGridSizer5" }, { @@ -667,6 +679,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "boxSizer58" }, { @@ -839,6 +855,10 @@ "m_sizerFlags": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "boxSizer15" }, { @@ -1083,6 +1103,10 @@ "m_sizerFlags": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "boxSizer16" }, { @@ -1371,6 +1395,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "boxSizer60" }, { @@ -1591,6 +1619,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "statixBoxSizer24" }, { @@ -1877,6 +1909,10 @@ "m_label": "Style:", "m_value": "" }, { + "type": "bool", + "m_label": "Enable Window Persistency:", + "m_value": true + }, { "type": "string", "m_label": "Title:", "m_value": "Sync Workspace to SVN" @@ -1933,6 +1969,10 @@ "m_sizerFlags": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "boxSizer26" }, { @@ -1956,6 +1996,10 @@ "m_sizerFlags": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_HORIZONTAL"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "boxSizer32" }, { @@ -2130,6 +2174,10 @@ "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "flexGridSizer37" }, { @@ -2598,6 +2646,10 @@ "m_sizerFlags": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_HORIZONTAL"], "m_properties": [{ "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", "m_label": "Name:", "m_value": "boxSizer27" }, { diff -Nru codelite-8.0.1+dfsg2/TODO.TXT codelite-9.0+dfsg/TODO.TXT --- codelite-8.0.1+dfsg2/TODO.TXT 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/TODO.TXT 2015-10-11 13:56:07.000000000 +0000 @@ -1,5 +1,5 @@ -* Change icons (debugger breakpoints, bookmarks and debugger green cursor) +NICE +==== + * Git: add an option to open the commit in GitHub -* Editor: when zooming an editor using the mouse, offer the user to keep the font -* PHP formatting: handle switch / case -* Provide minimal settings for the Help plugin + diff -Nru codelite-8.0.1+dfsg2/translations/codelite.pot codelite-9.0+dfsg/translations/codelite.pot --- codelite-8.0.1+dfsg2/translations/codelite.pot 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/translations/codelite.pot 2015-10-11 13:56:07.000000000 +0000 @@ -7,5667 +7,8153 @@ msgid "" msgstr "" "Project-Id-Version: codelite\n" -"Report-Msgid-Bugs-To: huan5765@gmail.com\n" +"Report-Msgid-Bugs-To: david@codelite.co.uk\n" "POT-Creation-Date: 2015-04-21 21:00+0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" +"Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" -#: CMakePlugin/CMakeGenerator.cpp:88 -msgid "Overwrite" +#: MacBundler/macbundler.cpp:73 +msgid "Failed to load image" msgstr "" -#: CMakePlugin/CMakeGenerator.cpp:89 -msgid "Don't Overwrite" +#: MacBundler/macbundler.cpp:88 +msgid "Choose the icon file" msgstr "" -#: CMakePlugin/CMakeGenerator.cpp:90 -msgid "Remember my answer and don't annoy me again" +#: MacBundler/macbundler.cpp:126 +msgid "Mac Bundler Configuration" msgstr "" -#: CMakePlugin/CMakeHelpTab.cpp:167 -msgid "CMake application path is invalid!" +#: MacBundler/macbundler.cpp:136 +msgid "Choose which target(s) to \"bundle-ize\"" msgstr "" -#: CMakePlugin/CMakePlugin.cpp:140 -msgid "CMake integration for CodeLite" +#: MacBundler/macbundler.cpp:138 +msgid "Generate Info.plist file" msgstr "" -#: CMakePlugin/CMakePlugin.cpp:203 -msgid "CMake integration with CodeLite" +#: MacBundler/macbundler.cpp:144 +msgid "Copy the following icon into the project" msgstr "" -#: CMakePlugin/CMakePlugin.cpp:358 CallGraph/callgraph.cpp:212 -#: CodeDesigner/codedesigner.cpp:133 Copyright/copyright.cpp:113 -#: QmakePlugin/qmakeplugin.cpp:164 SFTP/sftp.cpp:159 SnipWiz/snipwiz.cpp:160 -#: SpellChecker/spellcheck.cpp:197 Tweaks/tweaks.cpp:107 -#: WebTools/webtools.cpp:74 abbreviation/abbreviation.cpp:97 -#: codelite_terminal/wxcrafter.cpp:65 codelitephp/php-plugin/php.cpp:551 -#: wxformbuilder/wxformbuilder.cpp:120 -msgid "Settings..." +#: MacBundler/macbundler.cpp:146 +msgid "Warning : applying these changes cannot be undone automatically" msgstr "" -#: CMakePlugin/CMakePlugin.cpp:373 CMakePlugin/CMakePlugin.cpp:378 -msgid "CMake" +#: MacBundler/macbundler.cpp:147 +msgid "Apply changes" msgstr "" -#: CMakePlugin/CMakePluginUi.cpp:36 -msgid "CMake program:" +#: MacBundler/macbundler.cpp:148 SpellChecker/wxcrafter.cpp:230 +#: CLgtk3-install/share/codelite/templates/projects/executable-wxcrafter-dialog/wxcrafter.cpp:37 +#: Plugin/VirtualDirectorySelectorBase.cpp:82 +#: Subversion2/subversion2_ui.cpp:182 Subversion2/subversion2_ui.cpp:249 +#: Subversion2/subversion2_ui.cpp:690 codelite_terminal/wxcrafter.cpp:268 +#: CL-standalone-install/share/codelite/templates/projects/executable-wxcrafter-dialog/wxcrafter.cpp:37 +#: LiteEditor/configuration_manager_base_dlg.cpp:104 +#: LiteEditor/options_base_dlg2.cpp:48 +#: LiteEditor/new_configuration_dlg.cpp:106 LiteEditor/setters_getters.cpp:111 +#: LiteEditor/env_var_dlg_base.cpp:109 LiteEditor/breakpointdlgbase.cpp:302 +#: LiteEditor/newversionbasedlg.cpp:61 +#: LiteEditor/tags_options_base_dlg.cpp:536 LiteEditor/compiler_pages.cpp:73 +#: LiteEditor/depends_dlg.cpp:62 LiteEditor/editcmpfileinfobase.cpp:92 +#: LiteEditor/debugcoredumpbase.cpp:112 +#: CL-installRel/share/codelite/templates/projects/executable-wxcrafter-dialog/wxcrafter.cpp:37 +#: Runtime/templates/projects/executable-wxcrafter-dialog/wxcrafter.cpp:37 +#: CL-install/share/codelite/templates/projects/executable-wxcrafter-dialog/wxcrafter.cpp:37 +#: codelitephp/php-plugin/php_ui.cpp:299 wxformbuilder/wxfbitembasedlg.cpp:95 +#: wxformbuilder/formbuildsettingsbasedlg.cpp:88 +#: CodeDesigner/codedesignersettingsbasedlg.cpp:63 +#: CodeDesigner/codedesigneritembasedlg.cpp:109 DatabaseExplorer/GUI.cpp:837 +#: DatabaseExplorer/GUI.cpp:1145 DatabaseExplorer/GUI.cpp:1443 +#: UnitTestCPP/testclassbasedlg.cpp:132 +msgid "Cancel" msgstr "" -#: CMakePlugin/CMakePluginUi.cpp:40 LiteEditor/BuildTabTopPanel.cpp:75 -#: LiteEditor/CompilerMainPage.cpp:212 LiteEditor/wxcrafter.cpp:363 -#: Plugin/wxcrafter_plugin.cpp:162 Plugin/wxcrafter_plugin.cpp:218 -#: SFTP/UI.cpp:343 Subversion2/subversion2_ui.cpp:1029 -#: codelitephp/php-plugin/php_ui.cpp:379 codelitephp/php-plugin/php_ui.cpp:610 -#: codelitephp/php-plugin/php_ui.cpp:621 codelitephp/php-plugin/php_ui.cpp:630 -#: codelitephp/php-plugin/php_ui.cpp:1750 git/gitui.cpp:60 git/gitui.cpp:68 -#: git/gitui.cpp:1144 -msgid "Select a file" +#: MacBundler/macbundler.cpp:160 +msgid "Get Info Version String" msgstr "" -#: CMakePlugin/CMakePluginUi.cpp:41 -msgid "Path to cmake executable." +#: MacBundler/macbundler.cpp:162 +msgid "Version Number" msgstr "" -#: CMakePlugin/CMakePluginUi.cpp:46 -msgid "Default Generator:" +#: MacBundler/macbundler.cpp:164 +msgid "Icon File" msgstr "" -#: CMakePlugin/CMakePluginUi.cpp:52 -msgid "" -"You can specify default generator for all projects (if is not overrided by " -"project settings). If generator is not selected the CMake uses platform's " -"default." +#: MacBundler/macbundler.cpp:166 +msgid "Bundle Identifier" msgstr "" -#: CMakePlugin/CMakePluginUi.cpp:100 Gizmos/newwxprojectbasedlg.cpp:162 -#: LiteEditor/pluginmgrdlg.cpp:153 LiteEditor/wxcAboutDlg.cpp:114 -msgid "Version:" +#: MacBundler/macbundler.cpp:168 +msgid "4-Character Signature" msgstr "" -#: CMakePlugin/CMakePluginUi.cpp:104 -#: LiteEditor/implementparentvirtualfunctionsbase.cpp:87 -#: LiteEditor/importfilesdialog_new.cpp:52 -#: LiteEditor/rename_symbool_dlg.cpp:82 LiteEditor/setters_getters.cpp:78 -#: LiteEditor/wxcrafter.cpp:380 codelitephp/php-plugin/php_ui.cpp:2014 -msgid "?" +#: MacBundler/macbundler.cpp:260 +msgid "Cannot access or create file!" msgstr "" -#: CMakePlugin/CMakePluginUi.cpp:113 -msgid "Select Topic:" +#: MacBundler/macbundler.cpp:293 +msgid "Failed to write Info.plist file!" msgstr "" -#: CMakePlugin/CMakePluginUi.cpp:127 LiteEditor/frame.cpp:1317 -#: LiteEditor/frame.cpp:1533 LiteEditor/frame.cpp:1670 -#: LiteEditor/frame.cpp:1819 -msgid "Reload" +#: MacBundler/macbundler.cpp:323 +msgid "Manage OS X app bundles" msgstr "" -#: CMakePlugin/CMakePluginUi.cpp:128 -msgid "Reloads Help from CMake" +#: MacBundler/macbundler.cpp:334 +msgid "No project is active, cannot continue." msgstr "" -#: CMakePlugin/CMakePluginUi.cpp:152 -msgid "Double click to insert in the current editor." +#: MacBundler/macbundler.cpp:339 +msgid "Cannot retrieve active project, cannot continue." msgstr "" -#: CMakePlugin/CMakePluginUi.cpp:212 -msgid "Enable CMake for this project" +#: MacBundler/macbundler.cpp:361 +msgid "This menu item can only be invoked when right-clicking a project." msgstr "" -#: CMakePlugin/CMakePluginUi.cpp:224 -msgid "Parent project:" +#: MacBundler/macbundler.cpp:374 +msgid "Cannot continue, impossible to access project settings." msgstr "" -#: CMakePlugin/CMakePluginUi.cpp:230 +#: MacBundler/macbundler.cpp:412 +#, c-format msgid "" -"Allow you to specify parent project. Specify this when project is sub-" -"directory (see add_subdirectory) and it's built with the parent project." -msgstr "" - -#: CMakePlugin/CMakePluginUi.cpp:234 -msgid "Sources directory:" +"The following file:\n" +"%s\n" +"already exists, overwrite it?\n" msgstr "" -#: CMakePlugin/CMakePluginUi.cpp:238 CMakePlugin/CMakePluginUi.cpp:247 -#: LLDBDebugger/UI.cpp:644 LiteEditor/ps_debugger_page.cpp:159 -#: Subversion2/subversion2_ui.cpp:1089 codelitephp/php-plugin/php_ui.cpp:260 -#: codelitephp/php-plugin/php_ui.cpp:639 codelitephp/php-plugin/php_ui.cpp:918 -#: codelitephp/php-plugin/php_ui.cpp:1684 git/gitui.cpp:743 -msgid "Select a folder" +#: MacBundler/macbundler.cpp:414 cppchecker/cppchecker.cpp:524 +#: cppchecker/cppchecker.cpp:667 +msgid "Warning" msgstr "" -#: CMakePlugin/CMakePluginUi.cpp:239 -msgid "Path to directory where CMakeLists.txt is located." +#: MacBundler/macbundler.cpp:426 +msgid "Could not create Info.plist file\n" msgstr "" -#: CMakePlugin/CMakePluginUi.cpp:243 -msgid "Build directory:" +#: MacBundler/macbundler.cpp:460 +msgid "Sorry, could not copy icon" msgstr "" -#: CMakePlugin/CMakePluginUi.cpp:248 -msgid "" -"Directory where the project will be built. Path is relative to " -"$(WorkspacePath)." +#: MacBundler/macbundler.cpp:468 +msgid "Sorry, could not convert selected icon to icns format" msgstr "" -#: CMakePlugin/CMakePluginUi.cpp:252 -msgid "Generator:" +#: MacBundler/macbundler.cpp:600 +msgid "Make active project output a bundle" msgstr "" -#: CMakePlugin/CMakePluginUi.cpp:258 -msgid "" -"Generator that will be used for CMake configuration. If no generator is " -"selected, plugin uses global default generator selected in plugin settings." +#: MacBundler/macbundler.cpp:613 +msgid "MacBundler" msgstr "" -#: CMakePlugin/CMakePluginUi.cpp:262 -msgid "Build Type:" +#: MacBundler/macbundler.cpp:636 +msgid "Make this project output a bundle" msgstr "" -#: CMakePlugin/CMakePluginUi.cpp:273 -msgid "When is selected pass -DCMAKE_BUILD_TYPE to cmake." +#: HelpPlugin/HelpPluginUI.cpp:43 +msgid "Download Zeal" msgstr "" -#: CMakePlugin/CMakePluginUi.cpp:280 -msgid "CMake arguments (used for configuration)" +#: HelpPlugin/HelpPluginUI.cpp:104 +msgid "Docsets" msgstr "" -#: CMakePlugin/CMakePluginUi.cpp:285 -msgid "" -"Argument list used when CMake is called. Each argument must be separated by " -"new line. Multiple arguments on the one line are OK too if they're separated " -"by space.\n" -"Do not use arguments -DCMAKE_BUILD_TYPE, -G and 'path', they are passed by " -"the plugin.\n" -"\n" -"Example:\n" -"-DCMAKE_CXX_FLAGS=-g\n" -"-DCMAKE_C_FLAGS=-g" +#: HelpPlugin/HelpPluginUI.cpp:107 +msgid "C/C++" msgstr "" -#: CMakePlugin/CMakeProjectMenu.cpp:72 CMakePlugin/CMakeWorkspaceMenu.cpp:68 -msgid "Open CMakeLists.txt" +#: HelpPlugin/HelpPluginUI.cpp:107 +msgid "c++,net,boost,qt 4,qt 5,cvcpp,cocos2dx,c,manpages" msgstr "" -#: CMakePlugin/CMakeProjectMenu.cpp:77 CMakePlugin/CMakeWorkspaceMenu.cpp:73 -msgid "Export CMakeLists.txt" +#: HelpPlugin/HelpPluginUI.cpp:108 +msgid "" +"Set a list of docsets to use when requesting help while inside a C/C++ files " +"(comma separated list)" msgstr "" -#: CMakePlugin/CMakeProjectMenu.cpp:78 -msgid "Make dirty" +#: HelpPlugin/HelpPluginUI.cpp:110 CodeFormatter/codeformatterdlgbase.cpp:410 +#: CodeFormatter/codeformatterdlgbase.cpp:434 +msgid "PHP" msgstr "" -#: CMakePlugin/CMakeProjectMenu.cpp:79 +#: HelpPlugin/HelpPluginUI.cpp:110 msgid "" -"Marks CMake output files as dirty and forces cmake configuration to be call " -"again. This is very handy when you made some changes which don't change " -"CMakeLists.txt" +"php,wordpress,drupal,zend,laravel,yii,joomla,ee,codeigniter,cakephp,phpunit," +"symfony,typo3,twig,smarty,phpp,html,statamic,mysql,sqlite,mongodb,psql,redis," +"zend framework 1,zend framework 2" msgstr "" -#: CallGraph/callgraph.cpp:93 CallGraph/callgraph.cpp:111 +#: HelpPlugin/HelpPluginUI.cpp:111 msgid "" -"Create application call graph from profiling information provided by gprof " -"tool." +"Set a list of docsets to use when requesting help while inside a PHP files " +"(comma separated list)" msgstr "" -#: CallGraph/callgraph.cpp:185 CallGraph/callgraph.cpp:191 -#: CallGraph/callgraph.cpp:209 CallGraph/callgraph.cpp:228 -msgid "Show call graph" +#: HelpPlugin/HelpPluginUI.cpp:113 CMakePlugin/CMakePlugin.cpp:373 +#: CMakePlugin/CMakePlugin.cpp:378 +msgid "CMake" msgstr "" -#: CallGraph/callgraph.cpp:187 CallGraph/callgraph.cpp:193 -#: CallGraph/callgraph.cpp:209 -msgid "Show call graph for selected/active project" +#: HelpPlugin/HelpPluginUI.cpp:113 +msgid "cmake" msgstr "" -#: CallGraph/callgraph.cpp:214 DatabaseExplorer/databaseexplorer.cpp:195 -#: Runtime/templates/projects/executable-wxcrafter-frame/wxcrafter.cpp:42 -#: codelite_terminal/wxcrafter.cpp:133 -msgid "About..." +#: HelpPlugin/HelpPluginUI.cpp:114 +msgid "" +"Set a list of docsets to use when requesting help while inside a CMake files " +"(comma separated list)" msgstr "" -#: CallGraph/callgraph.cpp:228 -msgid "Show call graph for selected project" +#: HelpPlugin/HelpPluginUI.cpp:116 +msgid "HTML" msgstr "" -#: CallGraph/callgraph.cpp:248 CallGraph/callgraph.cpp:293 -msgid "Call Graph" +#: HelpPlugin/HelpPluginUI.cpp:116 HelpPlugin/HelpPluginUI.cpp:119 +#: HelpPlugin/HelpPluginUI.cpp:122 +msgid "" +"html,svg,css,bootstrap,less,foundation,awesome,statamic,javascript,jquery," +"jqueryui,jquerym,angularjs,backbone,marionette,meteor,moo,prototype,ember," +"lodash,underscore,sencha,extjs,knockout,zepto,cordova,phonegap,yu" msgstr "" -#: CallGraph/callgraph.cpp:289 +#: HelpPlugin/HelpPluginUI.cpp:117 msgid "" -"Create application call graph from profiling information provided by gprof " -"tool. \n" -"\n" +"Set a list of docsets to use when requesting help while inside an HTML files " +"(comma separated list)" msgstr "" -#: CallGraph/callgraph.cpp:294 -msgid "v1.1.0" +#: HelpPlugin/HelpPluginUI.cpp:119 +msgid "CSS" msgstr "" -#: CallGraph/callgraph.cpp:296 -msgid "2012 (C) Tomas Bata University, Zlin, Czech Republic" +#: HelpPlugin/HelpPluginUI.cpp:120 +msgid "" +"Set a list of docsets to use when requesting help while inside an CSS files " +"(comma separated list)" msgstr "" -#: CallGraph/callgraph.cpp:297 DatabaseExplorer/databaseexplorer.cpp:243 -msgid "http://www.fai.utb.cz" +#: HelpPlugin/HelpPluginUI.cpp:122 WebTools/WebToolsBase.cpp:59 +msgid "JavaScript" msgstr "" -#: CallGraph/callgraph.cpp:406 CallGraph/callgraph.cpp:418 -msgid "Unable to get opened workspace." +#: HelpPlugin/HelpPluginUI.cpp:123 +msgid "" +"Set a list of docsets to use when requesting help while inside a JavaScript " +"files (comma separated list)" msgstr "" -#: CallGraph/callgraph.cpp:413 -msgid "Unable to get current build matrix." +#: HelpPlugin/HelpPluginUI.cpp:125 CodeFormatter/codeformatterdlgbase.cpp:113 +msgid "Java" msgstr "" -#: CallGraph/callgraph.cpp:481 -msgid "wxProcess::GetInputStream() can't be opened, aborting" +#: HelpPlugin/HelpPluginUI.cpp:125 +msgid "java,javafx,grails,groovy,playjava,spring,cvj,processing" msgstr "" -#: CallGraph/callgraph.cpp:517 -#, c-format +#: HelpPlugin/HelpPluginUI.cpp:126 msgid "" -"The CallGraph plugin has suggested node threshold %d to speed-up the call " -"graph creation. You can alter it on the call graph panel." +"Set a list of docsets to use when requesting help while inside a Java files " +"(comma separated list)" msgstr "" -#: CallGraph/callgraph.cpp:553 -msgid "" -"Failed to open file CallGraph.png. Please check the project settings, " -"rebuild the project and try again." +#: HelpPlugin/HelpPluginUI.h:46 +msgid "Help Plugin Error" msgstr "" -#: CallGraph/uicallgraph.cpp:46 -msgid "Node threshold [%] :" +#: HelpPlugin/HelpPluginUI.h:74 ZoomNavigator/zoomnavigator.cpp:131 +#: codelite_terminal/wxcrafter.h:92 MemCheck/memcheckui.cpp:190 +#: LLDBDebugger/LLDBPlugin.cpp:227 WordCompletion/wordcompletion.cpp:66 +#: cppchecker/cppchecker.cpp:168 cppchecker/cppchecker.cpp:259 +#: cppchecker/cppchecker.cpp:275 cppchecker/cppchecker.cpp:289 +#: cppchecker/cppchecker.cpp:303 +msgid "Settings" msgstr "" -#: CallGraph/uicallgraph.cpp:53 -msgid "Edge threshold [%] :" +#: HelpPlugin/HelpPluginMessageDlg.cpp:8 +msgid "" +"The Help plugin uses 'Dash' for displaying the offline documentation\n" +"Please click the link below to download and install Dash" msgstr "" -#: CallGraph/uicallgraph.cpp:60 CallGraph/uisettings.cpp:133 -msgid "Hide parameters" +#: HelpPlugin/HelpPluginMessageDlg.cpp:10 +msgid "Go to Dash website" msgstr "" -#: CallGraph/uicallgraph.cpp:63 CallGraph/uisettings.cpp:153 -msgid "Hide namespaces" +#: HelpPlugin/HelpPluginMessageDlg.cpp:13 +msgid "" +"The Help plugin uses 'Zeal' for displaying the offline documentation\n" +"Please click the link below to download and install Zeal" msgstr "" -#: CallGraph/uicallgraph.cpp:69 LiteEditor/debuggersettingsbasedlg.cpp:712 -#: Plugin/DiffSideBySidePanel.cpp:365 Plugin/wxcrafter_plugin.cpp:118 -#: SFTP/SFTPTreeView.cpp:335 -msgid "Refresh" +#: HelpPlugin/HelpPluginMessageDlg.cpp:15 +msgid "Go to Zeal website" msgstr "" -#: CallGraph/uicallgraph.cpp:92 -msgid "Save call graph to..." +#: HelpPlugin/helpplugin.cpp:42 +msgid "Provide help based on selected words" msgstr "" -#: CallGraph/uicallgraph.cpp:96 -msgid "Close call graph" +#: HelpPlugin/helpplugin.cpp:43 +msgid "HelpPlugin" msgstr "" -#: CallGraph/uicallgraph.cpp:102 -msgid "Zoom in" +#: HelpPlugin/helpplugin.cpp:62 SnipWiz/snipwiz.cpp:155 +#: SpellChecker/spellcheck.cpp:197 CallGraph/callgraph.cpp:212 +#: CallGraph/uisettings.h:99 codelite_terminal/wxcrafter.cpp:65 +#: Tweaks/tweaks.cpp:107 SFTP/sftp.cpp:159 abbreviation/abbreviation.cpp:97 +#: CMakePlugin/CMakePlugin.cpp:358 QmakePlugin/qmakeplugin.cpp:164 +#: menu.xrc:1053 codelitephp/php-plugin/php.cpp:523 +#: wxformbuilder/wxformbuilder.cpp:120 WebTools/webtools.cpp:77 +#: CodeDesigner/codedesigner.cpp:133 Copyright/copyright.cpp:113 +msgid "Settings..." msgstr "" -#: CallGraph/uicallgraph.cpp:106 -msgid "Zoom out" +#: HelpPlugin/helpplugin.cpp:63 +msgid "Help Plugin" msgstr "" -#: CallGraph/uicallgraph.cpp:110 DatabaseExplorer/ErdPanel.cpp:190 -msgid "Zoom 100%" +#: HelpPlugin/helpplugin.cpp:101 +msgid "Search the docs for '" msgstr "" -#: CallGraph/uicallgraph.cpp:114 -msgid "Zoom 1:1" +#: SnipWiz/snipwiz.cpp:86 +msgid "A small tool to add expandable code snippets and template classes" msgstr "" -#: CallGraph/uicallgraph.cpp:146 -msgid " Function name " +#: SnipWiz/snipwiz.cpp:112 +msgid "Snippet wizard" msgstr "" -#: CallGraph/uicallgraph.cpp:147 -msgid " Total time [%] " +#: SnipWiz/snipwiz.cpp:157 +msgid "Template class..." msgstr "" -#: CallGraph/uicallgraph.cpp:148 -msgid " Self time [s]" +#: SnipWiz/snipwiz.cpp:184 +msgid "New Class from Template..." msgstr "" -#: CallGraph/uicallgraph.cpp:149 -msgid " Called " +#: SnipWiz/snipwiz.cpp:217 +msgid "Enter identifier name" msgstr "" -#: CallGraph/uicallgraphpanel.cpp:90 -msgid "Save call graph..." +#: SnipWiz/snipwiz.cpp:217 SnipWiz/snipwiz.cpp:219 +msgid "switch(...)" msgstr "" -#: CallGraph/uicallgraphpanel.cpp:175 -msgid "" -"CallGraph failed to save file with DOT language, please build the project " -"again." +#: SnipWiz/snipwiz.cpp:219 +msgid "Enter number of cases" msgstr "" -#: CallGraph/uisettings.cpp:50 -msgid "Select path for Gprof:" +#: SnipWiz/snipwiz.cpp:219 +msgid "Cases:" msgstr "" -#: CallGraph/uisettings.cpp:57 CallGraph/uisettings.cpp:67 -msgid "Select..." +#: SnipWiz/snipwiz.cpp:352 +msgid "Paste buffer" +msgstr "" + +#: SnipWiz/snipwiz.cpp:356 +msgid "switch{...}" +msgstr "" + +#: SnipWiz/snipwiz.cpp:493 SnipWiz/editsnippetsbasedlg.cpp:116 +msgid "Snippets" +msgstr "" + +#: SnipWiz/templateclassbasedlg.h:122 +msgid "Template Class Wizard" +msgstr "" + +#: SnipWiz/editsnippetsbasedlg.h:100 +msgid "Edit Snippets" +msgstr "" + +#: SnipWiz/swGlobals.h:49 Copyright/copyright.cpp:185 +msgid "There is no active editor\n" +msgstr "" + +#: SnipWiz/swGlobals.h:50 SnipWiz/editsnippetsdlg.cpp:184 +#: Plugin/builder_gnumake.cpp:164 Plugin/workspace.cpp:290 +#: Plugin/workspace.cpp:481 ExternalTools/externaltooldlg.cpp:91 +#: CodeLite/clprogressdlgbase.h:64 +#: abbreviation/abbreviationssettingsdlg.cpp:104 +#: LiteEditor/new_item_dlg.cpp:140 LiteEditor/fileview.cpp:666 +#: LiteEditor/fileview.cpp:1073 LiteEditor/fileview.cpp:1915 +#: LiteEditor/tabgroupspane.cpp:247 LiteEditor/tabgroupspane.cpp:289 +#: LiteEditor/tabgroupspane.cpp:489 LiteEditor/tabgroupspane.cpp:558 +#: LiteEditor/tabgroupspane.cpp:565 LiteEditor/tabgroupspane.cpp:627 +#: LiteEditor/tabgroupspane.cpp:668 LiteEditor/tabgroupspane.cpp:673 +#: LiteEditor/tabgroupspane.cpp:766 LiteEditor/tabgroupspane.cpp:789 +#: LiteEditor/memoryview.cpp:160 LiteEditor/new_configuration_dlg.cpp:128 +#: LiteEditor/NewProjectWizard.cpp:399 LiteEditor/ps_custom_build_page.cpp:90 +#: LiteEditor/CompilerMainPage.cpp:224 LiteEditor/CompilerMainPage.cpp:237 +#: LiteEditor/CompilerMainPage.cpp:249 LiteEditor/CompilerMainPage.cpp:859 +#: LiteEditor/reconcileproject.cpp:192 LiteEditor/reconcileproject.cpp:836 +#: LiteEditor/context_cpp.cpp:1219 LiteEditor/context_cpp.cpp:1651 +#: LiteEditor/context_cpp.cpp:1749 LiteEditor/context_cpp.cpp:1859 +#: LiteEditor/manager.cpp:1157 LiteEditor/manager.cpp:1969 +#: LiteEditor/manager.cpp:2032 LiteEditor/manager.cpp:2541 +#: LiteEditor/manager.cpp:2573 LiteEditor/manager.cpp:2605 +#: LiteEditor/acceltabledlg.cpp:185 LiteEditor/depend_dlg_page.cpp:42 +#: LiteEditor/depend_dlg_page.cpp:177 LiteEditor/cl_editor.cpp:1266 +#: LiteEditor/cl_editor.cpp:1274 LiteEditor/cl_editor.cpp:1322 +#: LiteEditor/cl_editor.cpp:1330 LiteEditor/cl_editor.cpp:1345 +#: LiteEditor/cl_editor.cpp:1371 LiteEditor/cl_editor.cpp:1970 +#: LiteEditor/cl_editor.cpp:2005 LiteEditor/tasks_find_what_dlg.cpp:77 +#: LiteEditor/FileExplorerTab.cpp:364 +#: LiteEditor/debugger_predefined_types_page.cpp:88 LiteEditor/frame.cpp:2535 +#: LiteEditor/movefuncimpldlg.cpp:81 LiteEditor/findresultstab.cpp:331 +#: LiteEditor/edit_workspace_conf_dlg.cpp:125 +#: LiteEditor/renamesymboldlg.cpp:91 +#: LiteEditor/configuration_manager_dlg.cpp:228 Gizmos/gizmos.cpp:333 +#: Gizmos/gizmos.cpp:359 Gizmos/newclassdlg.cpp:235 Gizmos/newclassdlg.cpp:248 +#: Gizmos/newclassdlg.cpp:259 Gizmos/newclassdlg.cpp:264 +#: Gizmos/newclassdlg.cpp:271 Gizmos/newclassdlg.cpp:278 +#: Gizmos/newclassdlg.cpp:284 Gizmos/newwxprojectdlg.cpp:78 +#: Gizmos/newwxprojectdlg.cpp:88 QmakePlugin/qmakesettingsdlg.cpp:119 +#: QmakePlugin/qmakeplugin.cpp:448 QmakePlugin/qmakeplugin.cpp:506 +#: QmakePlugin/qmakeplugin.cpp:518 +#: codelitephp/php-plugin/php_workspace_view.cpp:393 +#: wxformbuilder/wxformbuilder.cpp:246 wxformbuilder/wxformbuilder.cpp:261 +#: wxformbuilder/wxformbuilder.cpp:269 wxformbuilder/wxformbuilder.cpp:281 +#: wxformbuilder/wxformbuilder.cpp:326 wxformbuilder/wxfbitemdlg.cpp:51 +#: CodeDesigner/codedesigner.cpp:315 CodeDesigner/codedesigner.cpp:328 +#: CodeDesigner/codedesigner.cpp:475 CodeDesigner/codedesigner.cpp:490 +#: CodeDesigner/codedesigner.cpp:497 CodeDesigner/codedesigner.cpp:511 +#: CodeDesigner/codedesigneritemdlg.cpp:41 +#: CodeDesigner/codedesigneritemdlg.cpp:48 +#: CodeDesigner/codedesigneritemdlg.cpp:55 +#: DatabaseExplorer/ClassGenerateDialog.cpp:126 +#: DatabaseExplorer/ClassGenerateDialog.cpp:131 Copyright/copyright.cpp:172 +#: Copyright/copyright.cpp:179 Copyright/copyright.cpp:185 +#: Copyright/copyright.cpp:196 Copyright/copyright.cpp:229 +#: Copyright/copyright.cpp:287 Copyright/copyright.cpp:342 +#: Copyright/copyright.cpp:395 Copyright/copyright.cpp:401 +#: Copyright/copyright.cpp:412 UnitTestCPP/unittestpp.cpp:226 +#: UnitTestCPP/unittestpp.cpp:295 UnitTestCPP/unittestpp.cpp:352 +#: UnitTestCPP/unittestpp.cpp:419 UnitTestCPP/testclassdlg.cpp:119 +#: UnitTestCPP/testclassdlg.cpp:154 +msgid "CodeLite" +msgstr "" + +#: SnipWiz/templateclassbasedlg.cpp:35 wxformbuilder/wxfbitembasedlg.cpp:91 +#: DatabaseExplorer/GUI.cpp:1149 +msgid "Generate" +msgstr "" + +#: SnipWiz/templateclassbasedlg.cpp:40 +#: CodeFormatter/codeformatterdlgbase.cpp:132 +msgid "Class" +msgstr "" + +#: SnipWiz/templateclassbasedlg.cpp:51 wxformbuilder/wxfbitembasedlg.cpp:49 +#: UnitTestCPP/testclassbasedlg.cpp:50 +msgid "Class name:" +msgstr "" + +#: SnipWiz/templateclassbasedlg.cpp:56 +msgid "Name of new class" +msgstr "" + +#: SnipWiz/templateclassbasedlg.cpp:64 DatabaseExplorer/GUI.cpp:1117 +msgid "Template:" +msgstr "" + +#: SnipWiz/templateclassbasedlg.cpp:70 +msgid "Template for new class" +msgstr "" + +#: SnipWiz/templateclassbasedlg.cpp:74 +msgid "Files" +msgstr "" + +#: SnipWiz/templateclassbasedlg.cpp:85 +msgid ".h filename:" +msgstr "" + +#: SnipWiz/templateclassbasedlg.cpp:90 +msgid "Name of header file" +msgstr "" + +#: SnipWiz/templateclassbasedlg.cpp:99 +msgid ".cpp filename:" +msgstr "" + +#: SnipWiz/templateclassbasedlg.cpp:104 +msgid "Name of source file" +msgstr "" + +#: SnipWiz/templateclassbasedlg.cpp:113 wxformbuilder/wxfbitembasedlg.cpp:71 +#: CodeDesigner/codedesigneritembasedlg.cpp:77 +msgid "Project tree folder:" +msgstr "" + +#: SnipWiz/templateclassbasedlg.cpp:119 +msgid "Virtual folder to add new files" +msgstr "" + +#: SnipWiz/templateclassbasedlg.cpp:126 SnipWiz/templateclassbasedlg.cpp:143 +#: SnipWiz/editsnippetsbasedlg.cpp:81 LiteEditor/newworkspacebasedlg.cpp:68 +#: LiteEditor/tabgroupbasedlgs.cpp:54 +#: LiteEditor/project_settings_base_dlg.cpp:433 +#: LiteEditor/project_settings_base_dlg.cpp:824 Gizmos/newclassbasedlg.cpp:318 +#: codelitephp/php-plugin/new_class.cpp:97 +#: codelitephp/php-plugin/new_class.cpp:114 +#: wxformbuilder/wxfbitembasedlg.cpp:80 +#: wxformbuilder/formbuildsettingsbasedlg.cpp:60 +#: CodeDesigner/codedesignersettingsbasedlg.cpp:35 +#: CodeDesigner/codedesigneritembasedlg.cpp:90 DatabaseExplorer/GUI.cpp:1113 +#: Copyright/copyrights_options_base_dlg.cpp:60 +#: UnitTestCPP/testclassbasedlg.cpp:57 +msgid "..." +msgstr "" + +#: SnipWiz/templateclassbasedlg.cpp:127 +msgid "Browse virtual folders" +msgstr "" + +#: SnipWiz/templateclassbasedlg.cpp:131 Plugin/sftp_ui.cpp:304 +#: codelitephp/php-plugin/php_ui.cpp:171 codelitephp/php-plugin/php_ui.cpp:280 +msgid "Path:" +msgstr "" + +#: SnipWiz/templateclassbasedlg.cpp:136 +msgid "Hd folder to add new files" +msgstr "" + +#: SnipWiz/templateclassbasedlg.cpp:144 +msgid "Browse folders" +msgstr "" + +#: SnipWiz/templateclassbasedlg.cpp:154 +msgid "&Generate" +msgstr "" + +#: SnipWiz/templateclassbasedlg.cpp:160 +msgid "&Quit" +msgstr "" + +#: SnipWiz/templateclassbasedlg.cpp:165 +#: LiteEditor/editorsettingscommentsdoxygenpanelbase.cpp:43 +msgid "Templates" +msgstr "" + +#: SnipWiz/templateclassbasedlg.cpp:174 +msgid "Class:" +msgstr "" + +#: SnipWiz/templateclassbasedlg.cpp:186 SnipWiz/editsnippetsbasedlg.cpp:98 +#: SpellChecker/spellcheck.cpp:435 SpellChecker/wxcrafter.cpp:222 +#: Subversion2/subversion2.cpp:329 LiteEditor/compiler_pages.cpp:372 +#: LiteEditor/compiler_pages.cpp:407 LiteEditor/reconcileprojectbase.cpp:308 +#: LiteEditor/reconcileprojectbase.cpp:340 +#: LiteEditor/reconcileprojectbase.cpp:371 +#: cppchecker/cppchecksettingsdlgbase.cpp:132 +#: cppchecker/cppchecksettingsdlgbase.cpp:170 +#: cppchecker/cppchecksettingsdlgbase.cpp:221 +#: cppchecker/cppchecksettingsdlgbase.cpp:276 +#: cppchecker/cppchecksettingsdlgbase.cpp:309 +msgid "Add" +msgstr "" + +#: SnipWiz/templateclassbasedlg.cpp:191 SnipWiz/editsnippetsbasedlg.cpp:101 +#: SpellChecker/wxcrafter.cpp:213 +msgid "Change" +msgstr "" + +#: SnipWiz/templateclassbasedlg.cpp:195 SnipWiz/editsnippetsbasedlg.cpp:104 +#: LiteEditor/reconcileprojectbase.cpp:312 +#: LiteEditor/reconcileprojectbase.cpp:344 +#: LiteEditor/reconcileprojectbase.cpp:375 menu.xrc:1134 +#: cppchecker/cppchecksettingsdlgbase.cpp:137 +#: cppchecker/cppchecksettingsdlgbase.cpp:175 +#: cppchecker/cppchecksettingsdlgbase.cpp:226 +#: cppchecker/cppchecksettingsdlgbase.cpp:281 +#: cppchecker/cppchecksettingsdlgbase.cpp:314 +msgid "Remove" +msgstr "" + +#: SnipWiz/templateclassbasedlg.cpp:199 Plugin/sftp_ui.cpp:456 +#: codelite_terminal/wxcrafter.cpp:57 LiteEditor/new_build_tab.cpp:1055 +#: LiteEditor/setters_getters.cpp:88 LiteEditor/tags_options_base_dlg.cpp:510 +#: cppchecker/cppchecksettingsdlgbase.cpp:142 +#: cppchecker/cppchecksettingsdlgbase.cpp:286 +#: cppchecker/cppchecksettingsdlgbase.cpp:319 +#: UnitTestCPP/testclassbasedlg.cpp:115 +msgid "Clear" +msgstr "" + +#: SnipWiz/templateclassbasedlg.cpp:203 +msgid "%CLASS%" +msgstr "" + +#: SnipWiz/templateclassbasedlg.cpp:213 +#: LiteEditor/project_settings_base_dlg.cpp:280 +msgid "Header File" +msgstr "" + +#: SnipWiz/templateclassbasedlg.cpp:257 +msgid "Implementation File" +msgstr "" + +#: SnipWiz/editsnippetsdlg.cpp:78 SnipWiz/editsnippetsdlg.cpp:103 +msgid "Menu entry is not unique!" +msgstr "" + +#: SnipWiz/editsnippetsdlg.cpp:184 +msgid "That accelerator already exists" +msgstr "" + +#: SnipWiz/templateclassdlg.cpp:122 +msgid "Select output folder" +msgstr "" + +#: SnipWiz/templateclassdlg.cpp:161 +msgid "Files successfully created." +msgstr "" + +#: SnipWiz/templateclassdlg.cpp:169 +msgid "Add template class" +msgstr "" + +#: SnipWiz/templateclassdlg.cpp:175 +msgid "Adding the template class failed" +msgstr "" + +#: SnipWiz/templateclassdlg.cpp:175 +msgid "Oops" +msgstr "" + +#: SnipWiz/templateclassdlg.cpp:213 +msgid "" +"Class exists!\n" +"Overwrite?" +msgstr "" + +#: SnipWiz/templateclassdlg.cpp:213 +msgid "Add class" +msgstr "" + +#: SnipWiz/templateclassdlg.cpp:242 +msgid "" +"That class doesn't exist!\n" +"Try again?" +msgstr "" + +#: SnipWiz/templateclassdlg.cpp:242 +msgid "Change class" +msgstr "" + +#: SnipWiz/templateclassdlg.cpp:335 +msgid "" +"File already exists!\n" +"\n" +" Overwrite?" +msgstr "" + +#: SnipWiz/templateclassdlg.cpp:336 +msgid "Generate class files" +msgstr "" + +#: SnipWiz/editsnippetsbasedlg.cpp:64 +msgid "Menu Entry:" +msgstr "" + +#: SnipWiz/editsnippetsbasedlg.cpp:74 +msgid "Keyboard Shortcut:" +msgstr "" + +#: SnipWiz/editsnippetsbasedlg.cpp:86 +msgid "" +"Use $ as placeholder for the selection and @ to set the caret position.\n" +"e.g. for($ = 0; $ < @; $++)\n" +"NOTE:\n" +"If your snippet contains @ or $, you can escape the placeholders with a " +"backslash: \\@ OR \\$ " +msgstr "" + +#: SnipWiz/editsnippetsbasedlg.cpp:127 LiteEditor/wxcAboutDlg.cpp:35 +msgid "About" +msgstr "" + +#: SnipWiz/editsnippetsbasedlg.cpp:134 LiteEditor/quickfindbar.cpp:92 +#: LiteEditor/batchbuildbasedlg.cpp:97 LiteEditor/wxcrafter.cpp:645 +#: LiteEditor/findinfiles_dlg.cpp:246 LiteEditor/frame.cpp:1312 +#: LiteEditor/frame.cpp:1528 LiteEditor/frame.cpp:1665 +#: LiteEditor/frame.cpp:1814 LiteEditor/edit_configuration.cpp:100 +#: menu.xrc:707 menu.xrc:718 menu.xrc:727 +#: DatabaseExplorer/DbViewerPanel.cpp:483 DatabaseExplorer/GUI.cpp:903 +msgid "Close" +msgstr "" + +#: SpellChecker/spellcheck.cpp:77 +msgid "CodeLite spell checker" +msgstr "" + +#: SpellChecker/spellcheck.cpp:115 +msgid "CodeLite spell-checker" +msgstr "" + +#: SpellChecker/spellcheck.cpp:154 SpellChecker/spellcheck.cpp:165 +msgid "Check spelling..." +msgstr "" + +#: SpellChecker/spellcheck.cpp:156 SpellChecker/spellcheck.cpp:167 +msgid "Run spell-checker" +msgstr "" + +#: SpellChecker/spellcheck.cpp:158 SpellChecker/spellcheck.cpp:169 +#: SpellChecker/spellcheck.cpp:213 +msgid "Check continuous" +msgstr "" + +#: SpellChecker/spellcheck.cpp:160 +msgid "Run continuous check" +msgstr "" + +#: SpellChecker/spellcheck.cpp:171 SpellChecker/spellcheck.cpp:213 +msgid "Start continuous check" +msgstr "" + +#: SpellChecker/spellcheck.cpp:210 +msgid "Check..." +msgstr "" + +#: SpellChecker/spellcheck.cpp:430 +msgid "No suggestions" +msgstr "" + +#: SpellChecker/spellcheck.cpp:434 SpellChecker/wxcrafter.cpp:218 +#: Subversion2/subversion2.cpp:366 codelitephp/PHPParser/php_workspace.cpp:467 +msgid "Ignore" +msgstr "" + +#: SpellChecker/spellcheck.cpp:495 +msgid "Spell Checker" +msgstr "" + +#: SpellChecker/wxcrafter.h:76 +msgid "SpellChecker Settings" +msgstr "" + +#: SpellChecker/wxcrafter.h:113 +msgid "Misspelling found!" +msgstr "" + +#: SpellChecker/wxcrafter.cpp:33 +msgid "Dictionary path:" +msgstr "" + +#: SpellChecker/wxcrafter.cpp:37 git/gitui.cpp:789 +#: Subversion2/subversion2_ui.cpp:1089 LiteEditor/reconcileprojectbase.cpp:264 +#: LiteEditor/ps_debugger_page.cpp:159 LLDBDebugger/UI.cpp:676 +#: CMakePlugin/CMakePluginUi.cpp:238 CMakePlugin/CMakePluginUi.cpp:247 +#: codelitephp/php-plugin/php_ui.cpp:284 codelitephp/php-plugin/php_ui.cpp:698 +#: codelitephp/php-plugin/php_ui.cpp:1001 +#: codelitephp/php-plugin/php_ui.cpp:1799 DatabaseExplorer/GUI.cpp:1091 +msgid "Select a folder" +msgstr "" + +#: SpellChecker/wxcrafter.cpp:38 +msgid "Select the location of the installed dictionaries" +msgstr "" + +#: SpellChecker/wxcrafter.cpp:42 +msgid "Find dictionaries on the web.." +msgstr "" + +#: SpellChecker/wxcrafter.cpp:58 +msgid "Dictionary base name:" +msgstr "" + +#: SpellChecker/wxcrafter.cpp:77 +msgid "Check The Following:" +msgstr "" + +#: SpellChecker/wxcrafter.cpp:81 WebTools/WebToolsBase.cpp:108 +msgid "Strings" +msgstr "" + +#: SpellChecker/wxcrafter.cpp:86 +msgid "CPP comments" +msgstr "" + +#: SpellChecker/wxcrafter.cpp:91 +msgid "C comments" +msgstr "" + +#: SpellChecker/wxcrafter.cpp:96 +msgid "doxygen */" +msgstr "" + +#: SpellChecker/wxcrafter.cpp:101 +msgid "doxygen ///" +msgstr "" + +#: SpellChecker/wxcrafter.cpp:106 +msgid "Clear ignore list" +msgstr "" + +#: SpellChecker/wxcrafter.cpp:107 +msgid "Clear the ignore list" +msgstr "" + +#: SpellChecker/wxcrafter.cpp:174 +msgid "Misspelling:" +msgstr "" + +#: SpellChecker/wxcrafter.cpp:193 +msgid "Suggestions:" +msgstr "" + +#: SpellChecker/wxcrafter.cpp:226 LiteEditor/tags_options_base_dlg.cpp:269 +msgid "Suggest" +msgstr "" + +#: SpellChecker/IHunSpell.cpp:94 +msgid "Could not find aff file!" +msgstr "" + +#: SpellChecker/IHunSpell.cpp:100 +msgid "Could not find dictionary file!" +msgstr "" + +#: SpellChecker/IHunSpell.cpp:108 +msgid "Could not initialize spelling engine!" +msgstr "" + +#: SpellChecker/IHunSpell.cpp:220 SpellChecker/IHunSpell.cpp:304 +msgid "No spelling errors found!" +msgstr "" + +#: SpellChecker/IHunSpell.cpp:394 +msgid "en_CA" +msgstr "" + +#: CLgtk3-install/share/codelite/templates/projects/executable-wx-frame/gui.cpp:19 +#: CL-standalone-install/share/codelite/templates/projects/executable-wx-frame/gui.cpp:19 +#: CL-installRel/share/codelite/templates/projects/executable-wx-frame/gui.cpp:19 +#: Runtime/templates/projects/executable-wx-frame/gui.cpp:19 +#: CL-install/share/codelite/templates/projects/executable-wx-frame/gui.cpp:19 +#: menu.xrc:73 +msgid "E&xit" +msgstr "" + +#: CLgtk3-install/share/codelite/templates/projects/executable-wx-frame/gui.cpp:22 +#: CL-standalone-install/share/codelite/templates/projects/executable-wx-frame/gui.cpp:22 +#: CL-installRel/share/codelite/templates/projects/executable-wx-frame/gui.cpp:22 +#: Runtime/templates/projects/executable-wx-frame/gui.cpp:22 +#: CL-install/share/codelite/templates/projects/executable-wx-frame/gui.cpp:22 +#: menu.xrc:4 +msgid "&File" +msgstr "" + +#: CLgtk3-install/share/codelite/templates/projects/executable-wxcrafter-dialog/wxcrafter.h:22 +#: CL-standalone-install/share/codelite/templates/projects/executable-wxcrafter-dialog/wxcrafter.h:22 +#: CL-installRel/share/codelite/templates/projects/executable-wxcrafter-dialog/wxcrafter.h:22 +#: Runtime/templates/projects/executable-wxcrafter-dialog/wxcrafter.h:22 +#: CL-install/share/codelite/templates/projects/executable-wxcrafter-dialog/wxcrafter.h:22 +msgid "My Dialog" +msgstr "" + +#: CLgtk3-install/share/codelite/templates/projects/executable-wxcrafter-dialog/wxcrafter.cpp:33 +#: Plugin/VirtualDirectorySelectorBase.cpp:77 +#: Subversion2/subversion2_ui.cpp:685 +#: CL-standalone-install/share/codelite/templates/projects/executable-wxcrafter-dialog/wxcrafter.cpp:33 +#: CL-installRel/share/codelite/templates/projects/executable-wxcrafter-dialog/wxcrafter.cpp:33 +#: Runtime/templates/projects/executable-wxcrafter-dialog/wxcrafter.cpp:33 +#: CL-install/share/codelite/templates/projects/executable-wxcrafter-dialog/wxcrafter.cpp:33 +#: codelitephp/php-plugin/XDebugManager.cpp:741 +#: CodeDesigner/codedesigneritembasedlg.cpp:105 DatabaseExplorer/GUI.cpp:841 +#: DatabaseExplorer/GUI.cpp:1017 DatabaseExplorer/GUI.cpp:1241 +#: DatabaseExplorer/GUI.cpp:1447 +msgid "OK" +msgstr "" + +#: CLgtk3-install/share/codelite/templates/projects/executable-wxcrafter-frame/MainFrame.cpp:23 +#: CL-standalone-install/share/codelite/templates/projects/executable-wxcrafter-frame/MainFrame.cpp:23 +#: CL-installRel/share/codelite/templates/projects/executable-wxcrafter-frame/MainFrame.cpp:23 +#: Runtime/templates/projects/executable-wxcrafter-frame/MainFrame.cpp:23 +#: CL-install/share/codelite/templates/projects/executable-wxcrafter-frame/MainFrame.cpp:23 +msgid "My MainFrame" +msgstr "" + +#: CLgtk3-install/share/codelite/templates/projects/executable-wxcrafter-frame/MainFrame.cpp:24 +#: codelite_terminal/MainFrame.cpp:109 +#: CL-standalone-install/share/codelite/templates/projects/executable-wxcrafter-frame/MainFrame.cpp:24 +#: CL-installRel/share/codelite/templates/projects/executable-wxcrafter-frame/MainFrame.cpp:24 +#: Runtime/templates/projects/executable-wxcrafter-frame/MainFrame.cpp:24 +#: CL-install/share/codelite/templates/projects/executable-wxcrafter-frame/MainFrame.cpp:24 +msgid "GPL v2 or later" +msgstr "" + +#: CLgtk3-install/share/codelite/templates/projects/executable-wxcrafter-frame/MainFrame.cpp:25 +#: CL-standalone-install/share/codelite/templates/projects/executable-wxcrafter-frame/MainFrame.cpp:25 +#: CL-installRel/share/codelite/templates/projects/executable-wxcrafter-frame/MainFrame.cpp:25 +#: Runtime/templates/projects/executable-wxcrafter-frame/MainFrame.cpp:25 +#: CL-install/share/codelite/templates/projects/executable-wxcrafter-frame/MainFrame.cpp:25 +msgid "Short description goes here" +msgstr "" + +#: CLgtk3-install/share/codelite/templates/projects/executable-wxcrafter-frame/wxcrafter.h:29 +#: CL-standalone-install/share/codelite/templates/projects/executable-wxcrafter-frame/wxcrafter.h:29 +#: CL-installRel/share/codelite/templates/projects/executable-wxcrafter-frame/wxcrafter.h:29 +#: Runtime/templates/projects/executable-wxcrafter-frame/wxcrafter.h:29 +#: CL-install/share/codelite/templates/projects/executable-wxcrafter-frame/wxcrafter.h:29 +msgid "My Frame" +msgstr "" + +#: CLgtk3-install/share/codelite/templates/projects/executable-wxcrafter-frame/wxcrafter.cpp:34 +#: codelite_terminal/wxcrafter.cpp:125 +#: CL-standalone-install/share/codelite/templates/projects/executable-wxcrafter-frame/wxcrafter.cpp:34 +#: MemCheck/memcheckui.cpp:223 LiteEditor/threadlistpanel.cpp:53 +#: LiteEditor/symbols_dialog.cpp:44 LiteEditor/breakpointslistctrl.h:44 +#: LiteEditor/listctrlpanelbase.cpp:60 +#: CL-installRel/share/codelite/templates/projects/executable-wxcrafter-frame/wxcrafter.cpp:34 +#: Runtime/templates/projects/executable-wxcrafter-frame/wxcrafter.cpp:34 +#: LLDBDebugger/UI.cpp:35 LLDBDebugger/UI.cpp:160 LLDBDebugger/UI.cpp:559 +#: Gizmos/newclassdlg.cpp:64 +#: CL-install/share/codelite/templates/projects/executable-wxcrafter-frame/wxcrafter.cpp:34 +#: codelitephp/php-plugin/php_ui.cpp:353 +#: codelitephp/php-plugin/php_ui.cpp:1191 +#: codelitephp/php-plugin/php_ui.cpp:1217 UnitTestCPP/unittestspage.cpp:38 +msgid "File" +msgstr "" + +#: CLgtk3-install/share/codelite/templates/projects/executable-wxcrafter-frame/wxcrafter.cpp:36 +#: codelite_terminal/wxcrafter.cpp:127 +#: CL-standalone-install/share/codelite/templates/projects/executable-wxcrafter-frame/wxcrafter.cpp:36 +#: CL-installRel/share/codelite/templates/projects/executable-wxcrafter-frame/wxcrafter.cpp:36 +#: Runtime/templates/projects/executable-wxcrafter-frame/wxcrafter.cpp:36 +#: CL-install/share/codelite/templates/projects/executable-wxcrafter-frame/wxcrafter.cpp:36 +msgid "Exit\tAlt-X" +msgstr "" + +#: CLgtk3-install/share/codelite/templates/projects/executable-wxcrafter-frame/wxcrafter.cpp:36 +#: codelite_terminal/wxcrafter.cpp:127 +#: CL-standalone-install/share/codelite/templates/projects/executable-wxcrafter-frame/wxcrafter.cpp:36 +#: CL-installRel/share/codelite/templates/projects/executable-wxcrafter-frame/wxcrafter.cpp:36 +#: Runtime/templates/projects/executable-wxcrafter-frame/wxcrafter.cpp:36 +#: CL-install/share/codelite/templates/projects/executable-wxcrafter-frame/wxcrafter.cpp:36 +msgid "Quit" +msgstr "" + +#: CLgtk3-install/share/codelite/templates/projects/executable-wxcrafter-frame/wxcrafter.cpp:40 +#: codelite_terminal/wxcrafter.cpp:131 +#: CL-standalone-install/share/codelite/templates/projects/executable-wxcrafter-frame/wxcrafter.cpp:40 +#: LiteEditor/CompilerMainPage.cpp:96 LiteEditor/CompilerMainPage.cpp:102 +#: CL-installRel/share/codelite/templates/projects/executable-wxcrafter-frame/wxcrafter.cpp:40 +#: Runtime/templates/projects/executable-wxcrafter-frame/wxcrafter.cpp:40 +#: CL-install/share/codelite/templates/projects/executable-wxcrafter-frame/wxcrafter.cpp:40 +#: codelitephp/php-plugin/php.cpp:527 +msgid "Help" +msgstr "" + +#: CLgtk3-install/share/codelite/templates/projects/executable-wxcrafter-frame/wxcrafter.cpp:42 +#: CallGraph/callgraph.cpp:214 codelite_terminal/wxcrafter.cpp:133 +#: CL-standalone-install/share/codelite/templates/projects/executable-wxcrafter-frame/wxcrafter.cpp:42 +#: CL-installRel/share/codelite/templates/projects/executable-wxcrafter-frame/wxcrafter.cpp:42 +#: Runtime/templates/projects/executable-wxcrafter-frame/wxcrafter.cpp:42 +#: CL-install/share/codelite/templates/projects/executable-wxcrafter-frame/wxcrafter.cpp:42 +#: DatabaseExplorer/databaseexplorer.cpp:195 +msgid "About..." +msgstr "" + +#: Plugin/builder_gnumake.cpp:101 +msgid "Cant open project '" +msgstr "" + +#: Plugin/builder_gnumake.cpp:111 Plugin/builder_gnumake.cpp:119 +msgid "Cant find build configuration for project '" +msgstr "" + +#: Plugin/builder_gnumake.cpp:123 +msgid "Cant find proper compiler for project '" +msgstr "" + +#: Plugin/builder_gnumake.cpp:161 +msgid "CodeLite can not find project '" +msgstr "" + +#: Plugin/builder_gnumake.cpp:161 +msgid "' which is required\n" +msgstr "" + +#: Plugin/builder_gnumake.cpp:162 +msgid "for building project '" +msgstr "" + +#: Plugin/builder_gnumake.cpp:163 +msgid "" +"'.\n" +"Would you like to remove it from the dependency list?" +msgstr "" + +#: Plugin/nameanddescbasedlg.cpp:50 LiteEditor/wxcrafter.cpp:743 +#: QmakePlugin/NewQtProj.cpp:60 +msgid "Project name:" +msgstr "" + +#: Plugin/nameanddescbasedlg.cpp:57 +msgid "Project category:" +msgstr "" + +#: Plugin/nameanddescbasedlg.cpp:69 LiteEditor/plugindlgbase.cpp:59 +#: LiteEditor/pluginmgrdlg.cpp:154 Gizmos/gizmos_base.cpp:74 +msgid "Description:" +msgstr "" + +#: Plugin/nameanddescbasedlg.cpp:84 Plugin/macrosbasedlg.cpp:58 +#: Plugin/wxcrafter_plugin.cpp:73 Plugin/NewKeyShortcutBaseDlg.cpp:98 +#: Plugin/sftp_ui.cpp:80 Plugin/sftp_ui.cpp:250 Plugin/sftp_ui.cpp:367 +#: ExternalTools/external_tools.cpp:57 ZoomNavigator/zoom_navigator.cpp:90 +#: Subversion2/subversion2_ui.cpp:177 Subversion2/subversion2_ui.cpp:466 +#: Subversion2/subversion2_ui.cpp:610 Subversion2/subversion2_ui.cpp:767 +#: Subversion2/subversion2_ui.cpp:841 Subversion2/subversion2_ui.cpp:989 +#: Subversion2/wxcrafter.cpp:292 codelite_terminal/wxcrafter.cpp:272 +#: Tweaks/wxcrafter.cpp:117 +#: sdk/wxflatnotebook/src/wxFlatNotebook/fnb_customize_dlg.cpp:39 +#: LiteEditor/configuration_manager_base_dlg.cpp:101 +#: LiteEditor/dbgcommandbasedlg.cpp:79 +#: LiteEditor/implementparentvirtualfunctionsbase.cpp:124 +#: LiteEditor/plugindlgbase.cpp:84 LiteEditor/options_base_dlg2.cpp:43 +#: LiteEditor/new_configuration_dlg.cpp:103 LiteEditor/setters_getters.cpp:106 +#: LiteEditor/newquickwatch.cpp:131 LiteEditor/env_var_dlg_base.cpp:105 +#: LiteEditor/breakpointdlgbase.cpp:297 LiteEditor/symbols_dialog_base.cpp:63 +#: LiteEditor/add_option_dialog.cpp:67 LiteEditor/wxcrafter.cpp:334 +#: LiteEditor/wxcAboutDlg.cpp:111 LiteEditor/debuggersettingsbasedlg.cpp:62 +#: LiteEditor/debuggersettingsbasedlg.cpp:244 +#: LiteEditor/free_text_dialog.cpp:65 LiteEditor/addincludefiledlgbase.cpp:161 +#: LiteEditor/newversionbasedlg.cpp:57 +#: LiteEditor/tags_options_base_dlg.cpp:531 LiteEditor/compiler_pages.cpp:68 +#: LiteEditor/manageperspectivesbasedlg.cpp:121 LiteEditor/depends_dlg.cpp:59 +#: LiteEditor/rename_symbool_dlg.cpp:227 LiteEditor/editcmpfileinfobase.cpp:88 +#: LiteEditor/new_item_base_dlg.cpp:93 LiteEditor/new_virtual_folder.cpp:90 +#: LiteEditor/tasksfindwhatdlgbase.cpp:146 +#: LiteEditor/movefuncimplbasedlg.cpp:107 Gizmos/newclassbasedlg.cpp:227 +#: Gizmos/newwxprojectbasedlg.cpp:197 QmakePlugin/qmakesettingsbasedlg.cpp:82 +#: QmakePlugin/NewQtProj.cpp:122 codelitephp/php-plugin/new_class.cpp:158 +#: codelitephp/php-plugin/php_ui.cpp:208 codelitephp/php-plugin/php_ui.cpp:294 +#: codelitephp/php-plugin/php_ui.cpp:563 codelitephp/php-plugin/php_ui.cpp:882 +#: wxformbuilder/formbuildsettingsbasedlg.cpp:84 +#: CodeDesigner/codedesignersettingsbasedlg.cpp:59 +#: DatabaseExplorer/GUI.cpp:624 cppchecker/cppchecksettingsdlgbase.cpp:332 +#: cppchecker/cppchecksettingsdlgbase.cpp:477 +#: UnitTestCPP/testclassbasedlg.cpp:128 UnitTestCPP/newunittestbasedlg.cpp:94 +msgid "&OK" +msgstr "" + +#: Plugin/nameanddescbasedlg.cpp:88 Plugin/renamefilebasedlg.cpp:114 +#: Plugin/wxcrafter_plugin.cpp:78 Plugin/NewKeyShortcutBaseDlg.cpp:103 +#: Plugin/sftp_ui.cpp:85 Plugin/sftp_ui.cpp:255 Plugin/sftp_ui.cpp:372 +#: CallGraph/uisettings.cpp:169 ExternalTools/external_tools.cpp:62 +#: ZoomNavigator/zoom_navigator.cpp:95 Subversion2/subversion2_ui.cpp:471 +#: Subversion2/subversion2_ui.cpp:772 Subversion2/subversion2_ui.cpp:846 +#: Subversion2/subversion2_ui.cpp:994 Subversion2/wxcrafter.cpp:297 +#: Tweaks/wxcrafter.cpp:113 +#: sdk/wxflatnotebook/src/wxFlatNotebook/fnb_customize_dlg.cpp:42 +#: LiteEditor/dbgcommandbasedlg.cpp:83 +#: LiteEditor/implementparentvirtualfunctionsbase.cpp:129 +#: LiteEditor/plugindlgbase.cpp:89 LiteEditor/newquickwatch.cpp:136 +#: LiteEditor/symbols_dialog_base.cpp:67 LiteEditor/tabgroupbasedlgs.cpp:82 +#: LiteEditor/tabgroupbasedlgs.cpp:173 LiteEditor/add_option_dialog.cpp:70 +#: LiteEditor/wxcrafter.cpp:339 LiteEditor/debuggersettingsbasedlg.cpp:67 +#: LiteEditor/debuggersettingsbasedlg.cpp:249 +#: LiteEditor/free_text_dialog.cpp:68 LiteEditor/attachdbgprocbasedlg.cpp:85 +#: LiteEditor/addincludefiledlgbase.cpp:166 +#: LiteEditor/manageperspectivesbasedlg.cpp:73 +#: LiteEditor/manageperspectivesbasedlg.cpp:125 +#: LiteEditor/rename_symbool_dlg.cpp:155 LiteEditor/rename_symbool_dlg.cpp:232 +#: LiteEditor/tagsparsersearchpathsbasedlg.cpp:71 +#: LiteEditor/new_item_base_dlg.cpp:97 LiteEditor/new_virtual_folder.cpp:86 +#: LiteEditor/tasksfindwhatdlgbase.cpp:76 +#: LiteEditor/tasksfindwhatdlgbase.cpp:150 +#: LiteEditor/workspacesettingsbase.cpp:86 +#: LiteEditor/movefuncimplbasedlg.cpp:110 Gizmos/newclassbasedlg.cpp:232 +#: Gizmos/newwxprojectbasedlg.cpp:201 QmakePlugin/qmakesettingsbasedlg.cpp:78 +#: QmakePlugin/NewQtProj.cpp:118 codelitephp/php-plugin/new_class.cpp:163 +#: codelitephp/php-plugin/php_ui.cpp:213 codelitephp/php-plugin/php_ui.cpp:568 +#: codelitephp/php-plugin/php_ui.cpp:887 DatabaseExplorer/GUI.cpp:620 +#: cppchecker/cppchecksettingsdlgbase.cpp:337 +#: cppchecker/cppchecksettingsdlgbase.cpp:482 +#: Copyright/copyrights_proj_sel_base_dlg.cpp:80 +#: Copyright/copyrights_options_base_dlg.cpp:104 +#: UnitTestCPP/newunittestbasedlg.cpp:98 +msgid "&Cancel" +msgstr "" + +#: Plugin/renamefilebasedlg.cpp:47 LiteEditor/replaceinfilespanel.cpp:61 +msgid "Replace With:" +msgstr "" + +#: Plugin/renamefilebasedlg.cpp:56 +msgid "The following files will be updated:" +msgstr "" + +#: Plugin/renamefilebasedlg.cpp:73 +msgid "Included From:" +msgstr "" + +#: Plugin/renamefilebasedlg.cpp:83 +msgid "Line:" +msgstr "" + +#: Plugin/renamefilebasedlg.cpp:93 +msgid "Pattern:" +msgstr "" + +#: Plugin/renamefilebasedlg.cpp:110 CallGraph/uisettings.cpp:165 +#: LiteEditor/tabgroupbasedlgs.cpp:78 LiteEditor/tabgroupbasedlgs.cpp:169 +#: LiteEditor/manageperspectivesbasedlg.cpp:69 +#: LiteEditor/tagsparsersearchpathsbasedlg.cpp:67 +#: LiteEditor/tasksfindwhatdlgbase.cpp:72 +#: LiteEditor/workspacesettingsbase.cpp:81 +msgid "&Ok" +msgstr "" + +#: Plugin/clWorkspaceView.cpp:9 Plugin/clWorkspaceView.cpp:80 +#: LiteEditor/env_var_dlg_base.cpp:76 LiteEditor/workspacetab.cpp:120 +#: LiteEditor/workspacetab.cpp:121 LiteEditor/workspacetab.cpp:122 +#: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:68 +#: LiteEditor/editorsettingslocal.cpp:100 Gizmos/newwxprojectdlg.cpp:41 +msgid "Default" +msgstr "" + +#: Plugin/filepicker.h:68 +msgid "Select a file:" +msgstr "" + +#: Plugin/filepicker.h:70 Subversion2/subversion2_ui.cpp:309 +#: Subversion2/subversion2_ui.cpp:377 Subversion2/subversion2_ui.cpp:407 +#: Subversion2/subversion2_ui.cpp:675 LiteEditor/quickdebugbase.cpp:54 +#: LiteEditor/quickdebugbase.cpp:71 LiteEditor/breakpointdlgbase.cpp:201 +#: LiteEditor/debuggersettingsbasedlg.cpp:299 +#: LiteEditor/new_item_base_dlg.cpp:82 LiteEditor/debugcoredumpbase.cpp:62 +#: LiteEditor/debugcoredumpbase.cpp:74 LiteEditor/debugcoredumpbase.cpp:84 +#: codelitephp/php-plugin/php_ui.cpp:182 codelitephp/php-plugin/php_ui.cpp:446 +#: codelitephp/php-plugin/php_ui.cpp:484 codelitephp/php-plugin/php_ui.cpp:772 +#: codelitephp/php-plugin/php_ui.cpp:858 +#: codelitephp/php-plugin/php_ui.cpp:1902 DatabaseExplorer/GUI.cpp:45 +msgid "Browse" +msgstr "" + +#: Plugin/dirpicker.h:69 LiteEditor/findinfiles_dlg.cpp:76 +msgid "Select a folder:" +msgstr "" + +#: Plugin/evnvarlist.h:64 LiteEditor/workspacesettingsdlg.cpp:61 +msgid "" +msgstr "" + +#: Plugin/async_executable_cmd.cpp:95 +msgid "Current working directory: " +msgstr "" + +#: Plugin/async_executable_cmd.cpp:96 +msgid "Running program: " +msgstr "" + +#: Plugin/async_executable_cmd.cpp:108 +msgid "Program exited with return code: " +msgstr "" + +#: Plugin/WSImporterDlgs.cpp:33 codelitephp/php-plugin/php_ui.cpp:1782 +msgid "Project Name:" +msgstr "" + +#: Plugin/WSImporterDlgs.cpp:37 Plugin/WSImporterDlgs.cpp:48 +msgid "Static Text Label" +msgstr "" + +#: Plugin/WSImporterDlgs.cpp:44 LiteEditor/new_configuration_dlg.cpp:64 +msgid "Configuration Name:" +msgstr "" + +#: Plugin/WSImporterDlgs.cpp:59 +msgid "Please define the value of the following variables:" +msgstr "" + +#: Plugin/WSImporterDlgs.cpp:72 abbreviation/abbreviationssettingsbase.cpp:48 +msgid "Import" +msgstr "" + +#: Plugin/WSImporterDlgs.cpp:76 +msgid "Continue" +msgstr "" + +#: Plugin/WSImporterDlgs.cpp:80 +msgid "Skip" +msgstr "" + +#: Plugin/macrosdlg.cpp:63 +msgid "Macro" +msgstr "" + +#: Plugin/macrosdlg.cpp:64 Plugin/clBoostrapWizardBase.cpp:76 +#: UnitTestCPP/unittestspage.cpp:40 +msgid "Description" +msgstr "" + +#: Plugin/macrosdlg.cpp:73 +msgid "Expands to the selected text in the active editor" +msgstr "" + +#: Plugin/macrosdlg.cpp:74 +msgid "" +"Expands to the selected text range in bytes from beginning of file, eg. " +"150:200" +msgstr "" + +#: Plugin/macrosdlg.cpp:75 +msgid "Expands to the project binary output file" +msgstr "" + +#: Plugin/macrosdlg.cpp:76 +msgid "Expands to the project's build working directory" +msgstr "" + +#: Plugin/macrosdlg.cpp:77 +msgid "Expands to the project's run working directory" +msgstr "" + +#: Plugin/macrosdlg.cpp:80 +msgid "Expands to project's path" +msgstr "" + +#: Plugin/macrosdlg.cpp:81 +msgid "Expands to workspace's path" +msgstr "" + +#: Plugin/macrosdlg.cpp:82 +msgid "Expands to the current project name as appears in the 'File View'" +msgstr "" + +#: Plugin/macrosdlg.cpp:83 Plugin/macrosdlg.cpp:106 +msgid "" +"Expands to the current project intermediate directory path, as set in the " +"project settings" +msgstr "" + +#: Plugin/macrosdlg.cpp:84 Plugin/macrosdlg.cpp:107 +msgid "Expands to the current project selected configuration" +msgstr "" + +#: Plugin/macrosdlg.cpp:85 Plugin/macrosdlg.cpp:108 +msgid "An alias to $(IntermediateDirectory)" +msgstr "" + +#: Plugin/macrosdlg.cpp:86 +msgid "Expands to current file name (without extension and path)" +msgstr "" + +#: Plugin/macrosdlg.cpp:87 +msgid "Expands to current file path" +msgstr "" + +#: Plugin/macrosdlg.cpp:88 +msgid "Expands to current file full path (path and full name)" +msgstr "" + +#: Plugin/macrosdlg.cpp:89 +msgid "Expands to logged-in user as defined by the OS" +msgstr "" + +#: Plugin/macrosdlg.cpp:90 +msgid "Expands to current date" +msgstr "" + +#: Plugin/macrosdlg.cpp:91 +msgid "" +"Expands to CodeLite's startup directory on (e.g. on Unix it expands to ~/." +"codelite/" +msgstr "" + +#: Plugin/macrosdlg.cpp:92 +msgid "" +"A space delimited string containing all of the project files in a relative " +"path to the project file" +msgstr "" + +#: Plugin/macrosdlg.cpp:93 +msgid "" +"A space delimited string containing all of the project files in an absolute " +"path" +msgstr "" + +#: Plugin/macrosdlg.cpp:94 +msgid "backticks: evaluates the expression inside the backticks into a string" +msgstr "" + +#: Plugin/macrosdlg.cpp:98 +msgid "Expands to the compiler name as set in the Tools tab" +msgstr "" + +#: Plugin/macrosdlg.cpp:99 +msgid "Expands to the source switch (usually, -c)" +msgstr "" + +#: Plugin/macrosdlg.cpp:100 +msgid "The file full path (includes path+name+extension)" +msgstr "" + +#: Plugin/macrosdlg.cpp:101 +msgid "The file full name (includes name+extension)" +msgstr "" + +#: Plugin/macrosdlg.cpp:102 +msgid "The file name (name only)" +msgstr "" + +#: Plugin/macrosdlg.cpp:103 +msgid "The file's path with UNIX slashes, including terminating separator" +msgstr "" + +#: Plugin/macrosdlg.cpp:104 +msgid "Expands to the compiler options as set in the project settings" +msgstr "" + +#: Plugin/macrosdlg.cpp:105 +msgid "Expands to the resource compiler name" +msgstr "" + +#: Plugin/macrosdlg.cpp:109 +msgid "Expands to the linker name as set in the Tools tab" +msgstr "" + +#: Plugin/macrosdlg.cpp:110 +msgid "Expands to the archive tool (e.g. ar) name as set in the Tools tab" +msgstr "" + +#: Plugin/macrosdlg.cpp:111 +msgid "Expands to the shared object linker name as set in the Tools tab" +msgstr "" + +#: Plugin/macrosdlg.cpp:112 +msgid "Objects suffix (usually set to .o)" +msgstr "" + +#: Plugin/macrosdlg.cpp:113 +msgid "The object name (without the suffix)" +msgstr "" + +#: Plugin/macrosdlg.cpp:114 +msgid "Objects suffix (usually set to .o.d)" +msgstr "" + +#: Plugin/macrosdlg.cpp:115 +msgid "Objects suffix (usually set to .o.i)" +msgstr "" + +#: Plugin/macrosdlg.cpp:116 +msgid "The compiler include switch" +msgstr "" + +#: Plugin/macrosdlg.cpp:117 +msgid "The library switch (e.g. -l)" +msgstr "" + +#: Plugin/macrosdlg.cpp:118 +msgid "The output switch (e.g. -o)" +msgstr "" + +#: Plugin/macrosdlg.cpp:119 +msgid "Library switch (e.g. -L)" +msgstr "" + +#: Plugin/macrosdlg.cpp:120 +msgid "Preprocessor switch (e.g. -D)" +msgstr "" + +#: Plugin/macrosdlg.cpp:121 +msgid "" +"Expands to all preprocessors set in the project setting where each entry is " +"prefixed with $(PreprocessorSwitch)" +msgstr "" + +#: Plugin/macrosdlg.cpp:122 +msgid "Archive switch, usually not needed (VC compiler sets it to /OUT:" +msgstr "" + +#: Plugin/macrosdlg.cpp:123 +msgid "The compiler preprocess-only switch (e.g. -E)" +msgstr "" + +#: Plugin/macrosdlg.cpp:124 +msgid "The linker options as set in the project settings" +msgstr "" + +#: Plugin/macrosdlg.cpp:125 +msgid "All include paths prefixed with $(IncludeSwitch)" +msgstr "" + +#: Plugin/macrosdlg.cpp:126 +msgid "Resource compiler include path as set in the project settings" +msgstr "" + +#: Plugin/macrosdlg.cpp:127 +msgid "" +"List of libraries to link with. Each library is prefixed with " +"$(LibrarySwitch)" +msgstr "" + +#: Plugin/macrosdlg.cpp:128 +msgid "" +"List of library paths to link with. Each library is prefixed with " +"$(LibraryPathSwitch)" +msgstr "" + +#: Plugin/macrosdlg.cpp:129 +msgid "The output file" +msgstr "" + +#: Plugin/search_thread.h:306 +msgid "Number of files scanned: " +msgstr "" + +#: Plugin/search_thread.h:308 +msgid " Matches found: " +msgstr "" + +#: Plugin/search_thread.h:313 +msgid ", elapsed time: " +msgstr "" + +#: Plugin/search_thread.h:313 +msgid " seconds" +msgstr "" + +#: Plugin/wxcrafter_plugin.cpp:119 +msgid "Text Files Comparison" +msgstr "" + +#: Plugin/wxcrafter_plugin.cpp:122 +msgid "Comparison" +msgstr "" + +#: Plugin/wxcrafter_plugin.cpp:126 Plugin/DiffSideBySidePanel.cpp:365 +#: CallGraph/uicallgraph.cpp:69 git/GitConsole.cpp:137 +#: SFTP/SFTPTreeView.cpp:361 LiteEditor/debuggersettingsbasedlg.cpp:712 +#: menu.xrc:1186 +msgid "Refresh" +msgstr "" + +#: Plugin/wxcrafter_plugin.cpp:126 Subversion2/subversion_view.cpp:276 +#: DatabaseExplorer/DbViewerPanel.cpp:89 +msgid "Refresh View" +msgstr "" + +#: Plugin/wxcrafter_plugin.cpp:128 LiteEditor/frame.cpp:1467 +#: LiteEditor/frame.cpp:1628 LiteEditor/frame.cpp:1764 +#: LiteEditor/frame.cpp:1969 +msgid "Next" +msgstr "" + +#: Plugin/wxcrafter_plugin.cpp:128 +msgid "Next Diff" +msgstr "" + +#: Plugin/wxcrafter_plugin.cpp:130 +msgid "Previous" +msgstr "" + +#: Plugin/wxcrafter_plugin.cpp:130 +msgid "Previous Diff" +msgstr "" + +#: Plugin/wxcrafter_plugin.cpp:133 +#: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:129 +#: LiteEditor/CompilerMainPage.cpp:626 LiteEditor/options_dlg2.cpp:110 +#: LiteEditor/add_option_dialog.h:57 LiteEditor/tasksfindwhatdlgbase.cpp:56 +#: LiteEditor/free_text_dialog.h:57 menu.xrc:1153 +msgid "Edit" +msgstr "" + +#: Plugin/wxcrafter_plugin.cpp:137 Plugin/wxcrafter_plugin.cpp:139 +msgid " Copy" +msgstr "" + +#: Plugin/wxcrafter_plugin.cpp:137 +msgid "Copy current diff sequence from the left side to the right side" +msgstr "" + +#: Plugin/wxcrafter_plugin.cpp:139 +msgid "Copy current diff sequence from the right side to the left side" +msgstr "" + +#: Plugin/wxcrafter_plugin.cpp:141 +msgid "All Left" +msgstr "" + +#: Plugin/wxcrafter_plugin.cpp:141 +msgid "Copy the content of the left file to the right file" +msgstr "" + +#: Plugin/wxcrafter_plugin.cpp:143 +msgid "All Right" +msgstr "" + +#: Plugin/wxcrafter_plugin.cpp:143 +msgid "Copy file from right to left" +msgstr "" + +#: Plugin/wxcrafter_plugin.cpp:145 codelite_terminal/wxcrafter.cpp:67 +#: LiteEditor/wxcrafter.cpp:643 LiteEditor/frame.cpp:1305 +#: LiteEditor/frame.cpp:1521 LiteEditor/frame.cpp:1658 +#: LiteEditor/frame.cpp:1807 menu.xrc:721 menu.xrc:748 +#: DatabaseExplorer/ErdPanel.cpp:165 +msgid "Save" +msgstr "" + +#: Plugin/wxcrafter_plugin.cpp:145 +msgid "Save changes and refresh the diff view" +msgstr "" + +#: Plugin/wxcrafter_plugin.cpp:148 codelitephp/php-plugin/php_ui.cpp:791 +#: DatabaseExplorer/ErdPanel.cpp:182 +msgid "View" +msgstr "" + +#: Plugin/wxcrafter_plugin.cpp:152 +msgid "Vertical" +msgstr "" + +#: Plugin/wxcrafter_plugin.cpp:152 +msgid "Vertical panes" +msgstr "" + +#: Plugin/wxcrafter_plugin.cpp:154 +msgid "Horizontal" +msgstr "" + +#: Plugin/wxcrafter_plugin.cpp:154 +msgid "Horizontal panes" +msgstr "" + +#: Plugin/wxcrafter_plugin.cpp:156 +msgid "Single" +msgstr "" + +#: Plugin/wxcrafter_plugin.cpp:156 +msgid "Single view" +msgstr "" + +#: Plugin/wxcrafter_plugin.cpp:170 Plugin/wxcrafter_plugin.cpp:226 +#: git/gitui.cpp:61 git/gitui.cpp:69 git/gitui.cpp:1206 +#: Subversion2/subversion2_ui.cpp:1029 SFTP/UI.cpp:351 +#: MemCheck/memcheckui.cpp:584 MemCheck/memcheckui.cpp:642 +#: cscope/CscopeTabBase.cpp:154 LiteEditor/wxcrafter.cpp:299 +#: LiteEditor/CompilerMainPage.cpp:212 LiteEditor/BuildTabTopPanel.cpp:75 +#: CMakePlugin/CMakePluginUi.cpp:40 codelitephp/php-plugin/php_ui.cpp:420 +#: codelitephp/php-plugin/php_ui.cpp:669 codelitephp/php-plugin/php_ui.cpp:680 +#: codelitephp/php-plugin/php_ui.cpp:689 +#: codelitephp/php-plugin/php_ui.cpp:1865 DatabaseExplorer/GUI.cpp:454 +msgid "Select a file" +msgstr "" + +#: Plugin/wxcrafter_plugin.cpp:359 +msgid "Caption" +msgstr "" + +#: Plugin/VirtualDirectorySelectorDlg.cpp:324 +msgid "New Virtual Folder Name:" +msgstr "" + +#: Plugin/VirtualDirectorySelectorDlg.cpp:324 +#: LiteEditor/new_virtual_folder.h:66 menu.xrc:953 menu.xrc:1032 +msgid "New Virtual Folder" +msgstr "" + +#: Plugin/VirtualDirectorySelectorDlg.cpp:339 +msgid "Error occured while creating virtual folder:\n" +msgstr "" + +#: Plugin/WSImporterDlgs.h:40 +msgid "Import - Environment variable" +msgstr "" + +#: Plugin/macrosbasedlg.h:70 +msgid "Available Macros:" +msgstr "" + +#: Plugin/sftp_ui.h:67 +msgid "SSH Account Manager" +msgstr "" + +#: Plugin/sftp_ui.h:115 +msgid "Add Account" +msgstr "" + +#: Plugin/sftp_ui.h:167 +msgid "SFTP Browser" +msgstr "" + +#: Plugin/sftp_ui.h:190 +msgid "SSHTerminalBase" +msgstr "" + +#: Plugin/SSHAccountManagerDlg.cpp:77 +msgid "Are you sure you want to delete the selected accounts?" +msgstr "" + +#: Plugin/clBoostrapWizardBase.cpp:34 +msgid "Welcome to the setup wizard" +msgstr "" + +#: Plugin/clBoostrapWizardBase.cpp:34 +msgid "" +"This wizard will help you setup CodeLite to fit your coding style. Click " +"Next to continue" +msgstr "" + +#: Plugin/clBoostrapWizardBase.cpp:46 +msgid "Not this time!" +msgstr "" + +#: Plugin/clBoostrapWizardBase.cpp:46 +msgid "" +"If your CodeLite is already configured the way you like it, click to skip " +"the Wizard" +msgstr "" + +#: Plugin/clBoostrapWizardBase.cpp:60 WebTools/WebToolsBase.cpp:102 +msgid "Plugins" +msgstr "" + +#: Plugin/clBoostrapWizardBase.cpp:60 +msgid "" +"By default CodeLite comes with many plugins. Here you can disable some if " +"needed" +msgstr "" + +#: Plugin/clBoostrapWizardBase.cpp:74 +msgid "X" +msgstr "" + +#: Plugin/clBoostrapWizardBase.cpp:75 Plugin/sftp_ui.cpp:348 +#: ExternalTools/externaltooldlg.cpp:101 SFTP/UI.cpp:184 +#: LiteEditor/implementparentvirtualfunctionsbase.cpp:88 +#: LiteEditor/setters_getters.cpp:77 LiteEditor/CompilerMainPage.cpp:82 +#: LiteEditor/localstable.cpp:49 LiteEditor/attachdbgprocdlg.cpp:56 +#: LLDBDebugger/LLDBLocalsView.cpp:52 Gizmos/newclassdlg.cpp:61 +#: codelitephp/php-plugin/php_ui.cpp:351 +#: codelitephp/php-plugin/php_ui.cpp:1282 +msgid "Name" +msgstr "" + +#: Plugin/clBoostrapWizardBase.cpp:81 LiteEditor/tabgroupbasedlgs.cpp:134 +msgid "Check All" +msgstr "" + +#: Plugin/clBoostrapWizardBase.cpp:82 +msgid "Check all plugins" +msgstr "" + +#: Plugin/clBoostrapWizardBase.cpp:86 LiteEditor/plugindlgbase.cpp:76 +msgid "Uncheck All" +msgstr "" + +#: Plugin/clBoostrapWizardBase.cpp:87 +msgid "uncheck all plugins" +msgstr "" + +#: Plugin/clBoostrapWizardBase.cpp:91 +msgid "C++ Plugins" +msgstr "" + +#: Plugin/clBoostrapWizardBase.cpp:92 +msgid "Toggle C++ plugins" +msgstr "" + +#: Plugin/clBoostrapWizardBase.cpp:104 +msgid "Setup compilers" +msgstr "" + +#: Plugin/clBoostrapWizardBase.cpp:104 +msgid "Let CodeLite configure your installed compilers or help you install one" +msgstr "" + +#: Plugin/clBoostrapWizardBase.cpp:110 +msgid "Scan" +msgstr "" + +#: Plugin/clBoostrapWizardBase.cpp:110 +msgid "Click to scan your computer for installed compilers" +msgstr "" + +#: Plugin/clBoostrapWizardBase.cpp:114 +msgid "Install" +msgstr "" + +#: Plugin/clBoostrapWizardBase.cpp:114 +msgid "Click to download a MinGW compiler" +msgstr "" + +#: Plugin/clBoostrapWizardBase.cpp:123 +msgid "Compiler Name" +msgstr "" + +#: Plugin/clBoostrapWizardBase.cpp:124 LiteEditor/CompilersFoundDlgBase.cpp:71 +msgid "Installation Path" +msgstr "" + +#: Plugin/clBoostrapWizardBase.cpp:133 +msgid "Customize colours" +msgstr "" + +#: Plugin/clBoostrapWizardBase.cpp:133 +msgid "Select the editor theme from the list below" +msgstr "" + +#: Plugin/clBoostrapWizardBase.cpp:141 +msgid "" +"Select the theme from a list.\n" +"If the selected theme does not exist for a given language, CodeLite will " +"select the closest one available" +msgstr "" + +#: Plugin/clBoostrapWizardBase.cpp:207 +msgid "Whitespace & Indentation" +msgstr "" + +#: Plugin/clBoostrapWizardBase.cpp:207 +msgid "Should CodeLite use TABS or SPACES for indentation?" +msgstr "" + +#: Plugin/clBoostrapWizardBase.cpp:216 +msgid "Indent using SPACES" +msgstr "" + +#: Plugin/clBoostrapWizardBase.cpp:217 +msgid "Indent using TABS" +msgstr "" + +#: Plugin/clBoostrapWizardBase.cpp:218 +#: CodeFormatter/codeformatterdlgbase.cpp:152 +#: LiteEditor/editorsettingslocalbase.cpp:46 LiteEditor/options_dlg2.cpp:111 +msgid "Indentation" +msgstr "" + +#: Plugin/clBoostrapWizardBase.cpp:224 +#: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:60 +#: LiteEditor/editorsettingslocal.cpp:81 menu.xrc:217 +msgid "Invisible" +msgstr "" + +#: Plugin/clBoostrapWizardBase.cpp:225 +#: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:61 +#: LiteEditor/editorsettingslocal.cpp:82 +msgid "Visible always" +msgstr "" + +#: Plugin/clBoostrapWizardBase.cpp:226 +#: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:62 +#: LiteEditor/editorsettingslocal.cpp:83 +msgid "Visible after indentation" +msgstr "" + +#: Plugin/clBoostrapWizardBase.cpp:227 +msgid "Whitespace Visibility:" +msgstr "" + +#: Plugin/nameanddescbasedlg.h:80 +msgid "Save Project As Template" +msgstr "" + +#: Plugin/wxcrafter_plugin.h:54 +msgid "Edit Text" +msgstr "" + +#: Plugin/custombuildrequest.cpp:74 Plugin/clean_request.cpp:67 +#: Plugin/compile_request.cpp:75 +msgid "Cant find project: " +msgstr "" + +#: Plugin/custombuildrequest.cpp:131 Plugin/compile_request.cpp:152 +msgid "Command line is empty. Build aborted." +msgstr "" + +#: Plugin/custombuildrequest.cpp:176 +#, c-format +msgid "MESSAGE: Entering directory `%s'\n" +msgstr "" + +#: Plugin/custombuildrequest.cpp:223 Plugin/compile_request.cpp:195 +msgid "Failed to start build process, command: " +msgstr "" + +#: Plugin/custombuildrequest.cpp:223 Plugin/clean_request.cpp:155 +#: Plugin/compile_request.cpp:195 +msgid ", process terminated with exit code: 0" +msgstr "" + +#: Plugin/bookmark_manager.cpp:80 +msgid "Next Bookmark" +msgstr "" + +#: Plugin/bookmark_manager.cpp:81 +msgid "Previous Bookmark" +msgstr "" + +#: Plugin/bookmark_manager.cpp:100 +msgid "Change Active Bookmark Type..." +msgstr "" + +#: Plugin/bookmark_manager.cpp:104 +msgid "Remove All Currently-Active Bookmarks" +msgstr "" + +#: Plugin/bookmark_manager.cpp:107 +msgid "More..." +msgstr "" + +#: Plugin/bookmark_manager.cpp:121 +msgid "Normal bookmark" +msgstr "" + +#: Plugin/bookmark_manager.cpp:124 +msgid "Find bookmark" +msgstr "" + +#: Plugin/bookmark_manager.cpp:127 +msgid "Bookmark Type" +msgstr "" + +#: Plugin/clean_request.cpp:81 +msgid "Sorry, there is no 'Clean' command available\n" +msgstr "" + +#: Plugin/clean_request.cpp:106 +msgid "Sorry, couldn't find the Build configuration\n" +msgstr "" + +#: Plugin/clean_request.cpp:155 +msgid "Failed to start clean process, command: " +msgstr "" + +#: Plugin/newkeyshortcutdlg.cpp:33 Plugin/newkeyshortcutdlg.cpp:85 +msgid "DEL" +msgstr "" + +#: Plugin/newkeyshortcutdlg.cpp:34 +msgid "DELETE" +msgstr "" + +#: Plugin/newkeyshortcutdlg.cpp:35 +msgid "BACK" +msgstr "" + +#: Plugin/newkeyshortcutdlg.cpp:36 Plugin/newkeyshortcutdlg.cpp:84 +msgid "INS" +msgstr "" + +#: Plugin/newkeyshortcutdlg.cpp:37 Plugin/newkeyshortcutdlg.cpp:72 +msgid "ENTER" +msgstr "" + +#: Plugin/newkeyshortcutdlg.cpp:38 +msgid "RETURN" +msgstr "" + +#: Plugin/newkeyshortcutdlg.cpp:39 Plugin/newkeyshortcutdlg.cpp:79 +msgid "PGUP" +msgstr "" + +#: Plugin/newkeyshortcutdlg.cpp:40 Plugin/newkeyshortcutdlg.cpp:81 +msgid "PGDN" +msgstr "" + +#: Plugin/newkeyshortcutdlg.cpp:41 Plugin/newkeyshortcutdlg.cpp:74 +msgid "LEFT" +msgstr "" + +#: Plugin/newkeyshortcutdlg.cpp:42 Plugin/newkeyshortcutdlg.cpp:76 +msgid "RIGHT" +msgstr "" + +#: Plugin/newkeyshortcutdlg.cpp:43 Plugin/newkeyshortcutdlg.cpp:75 +msgid "UP" +msgstr "" + +#: Plugin/newkeyshortcutdlg.cpp:44 Plugin/newkeyshortcutdlg.cpp:77 +msgid "DOWN" +msgstr "" + +#: Plugin/newkeyshortcutdlg.cpp:45 Plugin/newkeyshortcutdlg.cpp:73 +msgid "HOME" +msgstr "" + +#: Plugin/newkeyshortcutdlg.cpp:46 Plugin/newkeyshortcutdlg.cpp:82 +msgid "END" +msgstr "" + +#: Plugin/newkeyshortcutdlg.cpp:47 Plugin/newkeyshortcutdlg.cpp:70 +msgid "SPACE" +msgstr "" + +#: Plugin/newkeyshortcutdlg.cpp:48 Plugin/newkeyshortcutdlg.cpp:71 +msgid "TAB" +msgstr "" + +#: Plugin/newkeyshortcutdlg.cpp:49 +msgid "ESC" +msgstr "" + +#: Plugin/newkeyshortcutdlg.cpp:50 +msgid "ESCAPE" +msgstr "" + +#: Plugin/newkeyshortcutdlg.cpp:51 +msgid "CANCEL" +msgstr "" + +#: Plugin/newkeyshortcutdlg.cpp:52 +msgid "CLEAR" +msgstr "" + +#: Plugin/newkeyshortcutdlg.cpp:53 +msgid "MENU" +msgstr "" + +#: Plugin/newkeyshortcutdlg.cpp:54 +msgid "PAUSE" +msgstr "" + +#: Plugin/newkeyshortcutdlg.cpp:55 +msgid "CAPITAL" +msgstr "" + +#: Plugin/newkeyshortcutdlg.cpp:56 +msgid "SELECT" +msgstr "" + +#: Plugin/newkeyshortcutdlg.cpp:57 +msgid "PRINT" +msgstr "" + +#: Plugin/newkeyshortcutdlg.cpp:58 +msgid "EXECUTE" +msgstr "" + +#: Plugin/newkeyshortcutdlg.cpp:59 +msgid "SNAPSHOT" +msgstr "" + +#: Plugin/newkeyshortcutdlg.cpp:60 +msgid "HELP" +msgstr "" + +#: Plugin/newkeyshortcutdlg.cpp:61 +msgid "ADD" +msgstr "" + +#: Plugin/newkeyshortcutdlg.cpp:62 +msgid "SEPARATOR" +msgstr "" + +#: Plugin/newkeyshortcutdlg.cpp:63 +msgid "SUBTRACT" +msgstr "" + +#: Plugin/newkeyshortcutdlg.cpp:64 +msgid "DECIMAL" +msgstr "" + +#: Plugin/newkeyshortcutdlg.cpp:65 +msgid "DIVIDE" +msgstr "" + +#: Plugin/newkeyshortcutdlg.cpp:66 +msgid "NUM_LOCK" +msgstr "" + +#: Plugin/newkeyshortcutdlg.cpp:67 +msgid "SCROLL_LOCK" +msgstr "" + +#: Plugin/newkeyshortcutdlg.cpp:68 +msgid "PAGEUP" +msgstr "" + +#: Plugin/newkeyshortcutdlg.cpp:69 +msgid "PAGEDOWN" +msgstr "" + +#: Plugin/newkeyshortcutdlg.cpp:78 +msgid "PRIOR" +msgstr "" + +#: Plugin/newkeyshortcutdlg.cpp:80 +msgid "NEXT" +msgstr "" + +#: Plugin/newkeyshortcutdlg.cpp:83 +#: sdk/databaselayer/src/dblayer/PostgresDatabaseLayer.cpp:277 +msgid "BEGIN" +msgstr "" + +#: Plugin/newkeyshortcutdlg.cpp:86 +msgid "=" +msgstr "" + +#: Plugin/newkeyshortcutdlg.cpp:87 Gizmos/newclassbasedlg.cpp:49 +msgid "*" +msgstr "" + +#: Plugin/newkeyshortcutdlg.cpp:88 +msgid "+" +msgstr "" + +#: Plugin/newkeyshortcutdlg.cpp:89 +msgid "KP_SEPARATOR" +msgstr "" + +#: Plugin/newkeyshortcutdlg.cpp:90 +msgid "-" +msgstr "" + +#: Plugin/newkeyshortcutdlg.cpp:91 +msgid "." +msgstr "" + +#: Plugin/newkeyshortcutdlg.cpp:92 +msgid "/" +msgstr "" + +#: Plugin/newkeyshortcutdlg.cpp:93 +msgid "WINDOWS_LEFT" +msgstr "" + +#: Plugin/newkeyshortcutdlg.cpp:94 +msgid "WINDOWS_RIGHT" +msgstr "" + +#: Plugin/newkeyshortcutdlg.cpp:95 +msgid "WINDOWS_MENU" +msgstr "" + +#: Plugin/newkeyshortcutdlg.cpp:96 +msgid "COMMAND" +msgstr "" + +#: Plugin/newkeyshortcutdlg.cpp:142 +msgid "F" +msgstr "" + +#: Plugin/newkeyshortcutdlg.cpp:146 +msgid "SPECIAL" +msgstr "" + +#: Plugin/NewKeyShortcutBaseDlg.h:46 +msgid "Set New Key Accelerator" +msgstr "" + +#: Plugin/SFTPBrowserDlg.cpp:118 SFTP/SFTPTreeView.cpp:698 +#: SFTP/SFTPTreeView.cpp:860 +msgid "Could not find account: " +msgstr "" + +#: Plugin/VirtualDirectorySelectorBase.h:64 +msgid "Virtual Directory Selector" +msgstr "" + +#: Plugin/clBootstrapWizard.cpp:301 +msgid "" +"You can always run this setup wizard from the menu:\n" +"Help -> Run the Setup Wizard" +msgstr "" + +#: Plugin/editor_config.cpp:417 Plugin/editor_config.cpp:455 +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:121 +#: LiteEditor/frame.cpp:1427 LiteEditor/frame.cpp:1929 +#: LiteEditor/output_pane.cpp:47 menu.xrc:980 menu.xrc:999 +msgid "Build" +msgstr "" + +#: Plugin/editor_config.cpp:420 Plugin/editor_config.cpp:457 +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:127 +#: LiteEditor/frame.cpp:1381 LiteEditor/frame.cpp:1885 +#: LiteEditor/output_pane.cpp:46 menu.xrc:801 +msgid "Search" +msgstr "" + +#: Plugin/editor_config.cpp:422 Plugin/editor_config.cpp:459 +#: LiteEditor/quickfindbar.cpp:181 +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:133 +#: LiteEditor/frame.cpp:1356 LiteEditor/frame.cpp:1554 +#: LiteEditor/frame.cpp:1691 LiteEditor/frame.cpp:1860 +#: LiteEditor/output_pane.cpp:50 LiteEditor/project_settings_base_dlg.cpp:292 +msgid "Replace" +msgstr "" + +#: Plugin/editor_config.cpp:424 Plugin/editor_config.cpp:461 +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:139 +#: LiteEditor/output_pane.cpp:53 +msgid "References" +msgstr "" + +#: Plugin/editor_config.cpp:426 Plugin/editor_config.cpp:463 +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:145 +#: LiteEditor/debuggerpane.cpp:53 LiteEditor/output_pane.cpp:48 menu.xrc:605 +msgid "Output" +msgstr "" + +#: Plugin/editor_config.cpp:428 Plugin/editor_config.cpp:465 +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:193 +#: LiteEditor/frame.cpp:1482 LiteEditor/frame.cpp:1984 +#: LiteEditor/frame.cpp:3641 LiteEditor/output_pane.cpp:49 +#: LiteEditor/debugcoredumpbase.cpp:109 +#: LiteEditor/configuration_manager_dlg.cpp:123 +#: codelitephp/php-plugin/php_ui.cpp:813 +msgid "Debug" +msgstr "" + +#: Plugin/editor_config.cpp:430 Plugin/editor_config.cpp:467 +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:151 +#: LiteEditor/output_pane.cpp:52 +msgid "Trace" +msgstr "" + +#: Plugin/editor_config.cpp:432 Plugin/editor_config.cpp:469 +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:157 +#: LiteEditor/output_pane.cpp:51 +msgid "Tasks" +msgstr "" + +#: Plugin/editor_config.cpp:434 Plugin/editor_config.cpp:471 +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:163 +#: ContinuousBuild/continuousbuild.cpp:77 +msgid "BuildQ" +msgstr "" + +#: Plugin/editor_config.cpp:436 Plugin/editor_config.cpp:473 +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:169 +#: cppchecker/cppchecker.cpp:150 cppchecker/cppchecker.cpp:178 +#: cppchecker/cppchecker.cpp:184 cppchecker/cppchecker.cpp:190 +#: cppchecker/cppchecker.cpp:699 cppchecker/cppchecksettingsdlg.cpp:193 +#: cppchecker/cppchecksettingsdlg.cpp:215 +msgid "CppCheck" +msgstr "" + +#: Plugin/editor_config.cpp:438 Plugin/editor_config.cpp:475 +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:175 +msgid "Subversion" +msgstr "" + +#: Plugin/editor_config.cpp:440 cscope/cscope.cpp:51 cscope/cscope.cpp:832 +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:181 +msgid "CScope" +msgstr "" + +#: Plugin/editor_config.cpp:442 Plugin/editor_config.cpp:479 git/git.cpp:182 +msgid "git" +msgstr "" + +#: Plugin/editor_config.cpp:444 Plugin/editor_config.cpp:481 +#: MemCheck/memcheck.cpp:142 +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:199 +msgid "MemCheck" +msgstr "" + +#: Plugin/editor_config.cpp:477 +msgid "Cscope" +msgstr "" + +#: Plugin/NewKeyShortcutBaseDlg.cpp:44 +msgid "Action:" +msgstr "" + +#: Plugin/NewKeyShortcutBaseDlg.cpp:54 +msgid "Key:" +msgstr "" + +#: Plugin/NewKeyShortcutBaseDlg.cpp:59 +msgid "" +"Hit any keyboard key. Don't use the modifier keys (e.g. 'Shift') here, use " +"the checkboxes below" +msgstr "" + +#: Plugin/NewKeyShortcutBaseDlg.cpp:66 +#: LiteEditor/debuggerasciiviewerbase.cpp:56 +#: LiteEditor/editorsettingsmiscbasepanel.cpp:248 +#: cppchecker/cppcheckreportbasepage.cpp:79 +msgid "&Clear" +msgstr "" + +#: Plugin/NewKeyShortcutBaseDlg.cpp:67 +msgid "Clear the keyboard shortcut" +msgstr "" + +#: Plugin/NewKeyShortcutBaseDlg.cpp:71 +msgid "Modifiers:" +msgstr "" + +#: Plugin/NewKeyShortcutBaseDlg.cpp:79 +msgid "Ctrl/Cmd" +msgstr "" + +#: Plugin/NewKeyShortcutBaseDlg.cpp:84 +#: LiteEditor/editorsettingscommentsbase.cpp:96 +msgid "Alt" +msgstr "" + +#: Plugin/NewKeyShortcutBaseDlg.cpp:89 +msgid "Shift" +msgstr "" + +#: Plugin/clStatusBar.cpp:179 +msgid "Build ended with errors. Click to view" +msgstr "" + +#: Plugin/clStatusBar.cpp:181 +msgid "Build ended with warnings. Click to view" +msgstr "" + +#: Plugin/clStatusBar.cpp:215 +msgid "" +"Build is in progress\n" +"Click to view the Build Log" +msgstr "" + +#: Plugin/clStatusBar.cpp:271 +msgid "Language" +msgstr "" + +#: Plugin/clStatusBar.cpp:272 +msgid "Colour Themes" +msgstr "" + +#: Plugin/globals.h:452 LiteEditor/threadlistpanel.cpp:76 +#: codelitephp/php-plugin/php_workspace_view.cpp:670 +#: codelitephp/php-plugin/php_workspace_view.cpp:689 +msgid "Yes" +msgstr "" + +#: Plugin/globals.h:453 LiteEditor/threadlistpanel.cpp:76 +#: codelitephp/php-plugin/php_workspace_view.cpp:671 +#: codelitephp/php-plugin/php_workspace_view.cpp:690 +msgid "No" +msgstr "" + +#: Plugin/globals.h:454 LiteEditor/context_cpp.cpp:952 +#: codelitephp/php-plugin/php_workspace_view.cpp:672 +#: codelitephp/php-plugin/php_workspace_view.cpp:691 +msgid "Remember my answer and don't ask me again" +msgstr "" + +#: Plugin/macros.h:87 +msgid "" +msgstr "" + +#: Plugin/macros.h:88 +msgid "" +msgstr "" + +#: Plugin/macros.h:92 +msgid "----------Build Started--------\n" +msgstr "" + +#: Plugin/macros.h:93 +msgid "----------Build Ended----------\n" +msgstr "" + +#: Plugin/macros.h:94 +msgid "----------Building project:[ " +msgstr "" + +#: Plugin/macros.h:95 +msgid "----------Cleaning project:[ " +msgstr "" + +#: Plugin/macros.h:96 cscope/cscopetab.cpp:54 +msgid "Entire Workspace" +msgstr "" + +#: Plugin/macros.h:97 cscope/cscopetab.cpp:54 +msgid "Active Project" +msgstr "" + +#: Plugin/macros.h:98 +msgid "Current File's Project" +msgstr "" + +#: Plugin/macros.h:99 +msgid "Current File" +msgstr "" + +#: Plugin/macros.h:100 +msgid "Open Files" +msgstr "" + +#: Plugin/macros.h:102 Plugin/macros.h:103 +msgid "" +msgstr "" + +#: Plugin/clTreeCtrlPanel.cpp:19 +msgid "Folders" +msgstr "" + +#: Plugin/clTreeCtrlPanel.cpp:43 +msgid "File Viewer" +msgstr "" + +#: Plugin/CompilersDetectorManager.cpp:116 +msgid "" +"Could not locate any MinGW compiler installed on your machine, would you " +"like to install one now?" +msgstr "" + +#: Plugin/CompilersDetectorManager.cpp:141 +msgid "Select a compiler to download" +msgstr "" + +#: Plugin/CompilersDetectorManager.cpp:141 LiteEditor/frame.cpp:3582 +msgid "Choose compiler" +msgstr "" + +#: Plugin/CompilersDetectorManager.cpp:149 +msgid "After install is completed, click the 'Scan' button" +msgstr "" + +#: Plugin/AddSSHAcountDlg.cpp:108 +msgid "" +"Default folder must be set to full path (i.e. it should start with a '/')" +msgstr "" + +#: Plugin/VirtualDirectorySelectorBase.cpp:54 Gizmos/newclassbasedlg.cpp:93 +msgid "Select Virtual Directory:" +msgstr "" + +#: Plugin/VirtualDirectorySelectorBase.cpp:86 +#: ExternalTools/external_tools.cpp:41 +#: abbreviation/abbreviationssettingsbase.cpp:42 +#: LiteEditor/debuggersettingsbasedlg.cpp:716 +#: LiteEditor/compiler_pages.cpp:444 LiteEditor/compiler_pages.cpp:475 +#: LiteEditor/compiler_pages.cpp:520 +#: LiteEditor/project_settings_base_dlg.cpp:842 QmakePlugin/NewQtProj.cpp:98 +msgid "New..." +msgstr "" + +#: Plugin/VirtualDirectorySelectorBase.cpp:87 +msgid "Create new virtual folder..." +msgstr "" + +#: Plugin/renamefilebasedlg.h:82 +msgid "Fix Include Statement" +msgstr "" + +#: Plugin/unredobase.cpp:160 +msgid "Undo " +msgstr "" + +#: Plugin/unredobase.cpp:160 +msgid "Redo " +msgstr "" + +#: Plugin/unredobase.cpp:226 +msgid "Undo/Redo to a pre&viously labelled state" +msgstr "" + +#: Plugin/workspace.cpp:290 +msgid "AddProjectToBuildMatrix was called with NULL project" +msgstr "" + +#: Plugin/workspace.cpp:480 +msgid "" +"Failed to save workspace file to disk. Please check that you have permission " +"to write to disk" +msgstr "" + +#: Plugin/workspace.cpp:732 +msgid "Malformed project name" +msgstr "" + +#: Plugin/workspace.cpp:744 +msgid "No such project" +msgstr "" + +#: Plugin/workspace.cpp:750 +msgid "File removal failed" +msgstr "" + +#: Plugin/DiffSideBySidePanel.cpp:89 +msgid "Left Side File:\n" +msgstr "" + +#: Plugin/DiffSideBySidePanel.cpp:89 Plugin/DiffSideBySidePanel.cpp:94 +msgid " does not exist!" +msgstr "" + +#: Plugin/DiffSideBySidePanel.cpp:94 +msgid "Right Side File:\n" +msgstr "" + +#: Plugin/DiffSideBySidePanel.cpp:365 +msgid "" +"Refreshing the view will lose all your changes\n" +"Do you want to continue?" +msgstr "" + +#: Plugin/DiffSideBySidePanel.cpp:365 +msgid "Don't refresh" +msgstr "" + +#: Plugin/DiffSideBySidePanel.cpp:608 +msgid "" +"Closing the diff viewer, will lose all your changes.\n" +"Continue?" +msgstr "" + +#: Plugin/DiffSideBySidePanel.cpp:687 +msgid "Copy to the right" +msgstr "" + +#: Plugin/DiffSideBySidePanel.cpp:690 +msgid "Copy to the right and move to the next diff" +msgstr "" + +#: Plugin/DiffSideBySidePanel.cpp:702 +msgid "Copy to the left" +msgstr "" + +#: Plugin/DiffSideBySidePanel.cpp:705 +msgid "Copy to the left and move to the next diff" +msgstr "" + +#: Plugin/sftp_ui.cpp:54 SFTP/UI.cpp:35 +msgid "Account" +msgstr "" + +#: Plugin/sftp_ui.cpp:55 +msgid "Host" +msgstr "" + +#: Plugin/sftp_ui.cpp:56 +msgid "User" +msgstr "" + +#: Plugin/sftp_ui.cpp:61 LiteEditor/breakpointdlgbase.cpp:37 +#: LiteEditor/findinfiles_dlg.cpp:79 +msgid "&Add" +msgstr "" + +#: Plugin/sftp_ui.cpp:62 +msgid "Add new account" +msgstr "" + +#: Plugin/sftp_ui.cpp:66 LiteEditor/breakpointdlgbase.cpp:47 +#: LiteEditor/debuggersettingsbasedlg.cpp:164 +#: LiteEditor/debuggersettingsbasedlg.cpp:551 +#: LiteEditor/reconcileprojectbase.cpp:169 +#: LiteEditor/manageperspectivesbasedlg.cpp:53 +#: LiteEditor/edit_configuration.cpp:82 +#: LiteEditor/edit_workspace_conf_dlg.cpp:66 +msgid "&Delete" +msgstr "" + +#: Plugin/sftp_ui.cpp:67 +msgid "Delete the selected accounts" +msgstr "" + +#: Plugin/sftp_ui.cpp:71 LiteEditor/breakpointdlgbase.cpp:42 menu.xrc:81 +msgid "&Edit" +msgstr "" + +#: Plugin/sftp_ui.cpp:72 +msgid "Edit the selected account" +msgstr "" + +#: Plugin/sftp_ui.cpp:162 +msgid "Account Name:" +msgstr "" + +#: Plugin/sftp_ui.cpp:163 Plugin/sftp_ui.cpp:168 +msgid "Give this account a unique name" +msgstr "" + +#: Plugin/sftp_ui.cpp:176 +msgid "Host / IP:" +msgstr "" + +#: Plugin/sftp_ui.cpp:181 +msgid "The remote host ip address or its known name" +msgstr "" + +#: Plugin/sftp_ui.cpp:188 LiteEditor/project_settings_base_dlg.cpp:520 +#: codelitephp/php-plugin/php_ui.cpp:521 DatabaseExplorer/GUI.cpp:567 +msgid "Port:" +msgstr "" + +#: Plugin/sftp_ui.cpp:193 +msgid "The SSH port. If you don't know it, leave it as 22 (SSH default port)" +msgstr "" + +#: Plugin/sftp_ui.cpp:200 Subversion2/subversion2_ui.cpp:217 +msgid "Username:" +msgstr "" + +#: Plugin/sftp_ui.cpp:205 +msgid "Login user name" +msgstr "" + +#: Plugin/sftp_ui.cpp:212 Subversion2/subversion2_ui.cpp:229 +#: DatabaseExplorer/GUI.cpp:514 DatabaseExplorer/GUI.cpp:589 +msgid "Password:" +msgstr "" + +#: Plugin/sftp_ui.cpp:217 +msgid "" +"This field is optional. By leaving this field empty, codelite will attempt " +"to connect only using public key authentication" +msgstr "" + +#: Plugin/sftp_ui.cpp:224 +msgid "Default folder:" +msgstr "" + +#: Plugin/sftp_ui.cpp:229 +msgid "Set the home folder for this account" +msgstr "" + +#: Plugin/sftp_ui.cpp:236 +msgid "Test Connection" +msgstr "" + +#: Plugin/sftp_ui.cpp:309 +msgid "Set the remote folder to browse and click on the 'Refresh' button" +msgstr "" + +#: Plugin/sftp_ui.cpp:317 +msgid "Connect..." +msgstr "" + +#: Plugin/sftp_ui.cpp:321 +msgid "Account:" +msgstr "" + +#: Plugin/sftp_ui.cpp:335 +msgid "Parent folder" +msgstr "" + +#: Plugin/sftp_ui.cpp:337 +msgid "Open SSH Account Manager..." +msgstr "" + +#: Plugin/sftp_ui.cpp:349 SFTP/SFTPTreeView.cpp:907 SFTP/SFTPTreeView.cpp:932 +#: SFTP/UI.cpp:185 LiteEditor/localstable.cpp:51 LiteEditor/simpletable.cpp:97 +#: LiteEditor/breakpointslistctrl.h:42 +#: LiteEditor/debugger_predefined_types_page.cpp:36 +#: LLDBDebugger/LLDBLocalsView.cpp:55 codelitephp/php-plugin/php_ui.cpp:1283 +#: DatabaseExplorer/TableSettings.cpp:70 DatabaseExplorer/GUI.cpp:1339 +msgid "Type" +msgstr "" + +#: Plugin/sftp_ui.cpp:350 SFTP/SFTPTreeView.cpp:895 SFTP/SFTPTreeView.cpp:920 +#: SFTP/UI.cpp:186 DatabaseExplorer/GUI.cpp:1340 +msgid "Size" +msgstr "" + +#: Plugin/sftp_ui.cpp:516 +msgid "Type a command and hit ENTER" +msgstr "" + +#: Plugin/openresourcedialogbase.h:46 +msgid "Open Resource" +msgstr "" + +#: Plugin/openresourcedialogbase.cpp:30 +msgid "" +"Type resource name to open.\n" +"You may use a space delimited list of words to narrow down the list of " +"choices\n" +"e.g. Typing: 'Open Dialog' will include results that contain both words " +"\"Open\" _and_ \"Dialog\"" +msgstr "" + +#: Plugin/clBoostrapWizardBase.h:98 LiteEditor/frame.cpp:3545 +#: LiteEditor/frame.cpp:3871 LiteEditor/frame.cpp:4584 +msgid "Welcome!" +msgstr "" + +#: Plugin/open_resource_dialog.cpp:86 codelitephp/php-plugin/php_ui.h:176 +msgid "Open resource..." +msgstr "" + +#: Plugin/wxterminal.cpp:222 Plugin/wxterminal.cpp:291 +msgid "Press any key to continue..." +msgstr "" + +#: Plugin/wxterminal.cpp:287 +#, c-format +msgid "" +"Failed to execute command: %s\n" +"Working Directory: %s\n" +msgstr "" + +#: CallGraph/callgraph.cpp:93 CallGraph/callgraph.cpp:111 +msgid "" +"Create application call graph from profiling information provided by gprof " +"tool." +msgstr "" + +#: CallGraph/callgraph.cpp:185 CallGraph/callgraph.cpp:191 +#: CallGraph/callgraph.cpp:209 CallGraph/callgraph.cpp:228 +msgid "Show call graph" +msgstr "" + +#: CallGraph/callgraph.cpp:187 CallGraph/callgraph.cpp:193 +#: CallGraph/callgraph.cpp:209 +msgid "Show call graph for selected/active project" +msgstr "" + +#: CallGraph/callgraph.cpp:228 +msgid "Show call graph for selected project" +msgstr "" + +#: CallGraph/callgraph.cpp:248 CallGraph/callgraph.cpp:293 +msgid "Call Graph" +msgstr "" + +#: CallGraph/callgraph.cpp:289 +msgid "" +"Create application call graph from profiling information provided by gprof " +"tool. \n" +"\n" +msgstr "" + +#: CallGraph/callgraph.cpp:294 +msgid "v1.1.0" +msgstr "" + +#: CallGraph/callgraph.cpp:296 +msgid "2012 (C) Tomas Bata University, Zlin, Czech Republic" +msgstr "" + +#: CallGraph/callgraph.cpp:297 DatabaseExplorer/databaseexplorer.cpp:243 +msgid "http://www.fai.utb.cz" +msgstr "" + +#: CallGraph/callgraph.cpp:406 CallGraph/callgraph.cpp:418 +msgid "Unable to get opened workspace." +msgstr "" + +#: CallGraph/callgraph.cpp:413 +msgid "Unable to get current build matrix." +msgstr "" + +#: CallGraph/callgraph.cpp:481 +msgid "wxProcess::GetInputStream() can't be opened, aborting" +msgstr "" + +#: CallGraph/callgraph.cpp:517 +#, c-format +msgid "" +"The CallGraph plugin has suggested node threshold %d to speed-up the call " +"graph creation. You can alter it on the call graph panel." +msgstr "" + +#: CallGraph/callgraph.cpp:553 +msgid "" +"Failed to open file CallGraph.png. Please check the project settings, " +"rebuild the project and try again." +msgstr "" + +#: CallGraph/uisettingsdlg.cpp:63 +msgid "Select gprof..." +msgstr "" + +#: CallGraph/uisettingsdlg.cpp:78 +msgid "Select dot..." +msgstr "" + +#: CallGraph/uisettingsdlg.cpp:110 +msgid "Please check the external tools' paths settings." +msgstr "" + +#: CallGraph/uicallgraph.cpp:46 +msgid "Node threshold [%] :" +msgstr "" + +#: CallGraph/uicallgraph.cpp:53 +msgid "Edge threshold [%] :" +msgstr "" + +#: CallGraph/uicallgraph.cpp:60 CallGraph/uisettings.cpp:133 +msgid "Hide parameters" +msgstr "" + +#: CallGraph/uicallgraph.cpp:63 CallGraph/uisettings.cpp:153 +msgid "Hide namespaces" +msgstr "" + +#: CallGraph/uicallgraph.cpp:92 +msgid "Save call graph to..." +msgstr "" + +#: CallGraph/uicallgraph.cpp:96 +msgid "Close call graph" +msgstr "" + +#: CallGraph/uicallgraph.cpp:102 +msgid "Zoom in" +msgstr "" + +#: CallGraph/uicallgraph.cpp:106 +msgid "Zoom out" +msgstr "" + +#: CallGraph/uicallgraph.cpp:110 DatabaseExplorer/ErdPanel.cpp:190 +msgid "Zoom 100%" +msgstr "" + +#: CallGraph/uicallgraph.cpp:114 +msgid "Zoom 1:1" +msgstr "" + +#: CallGraph/uicallgraph.cpp:146 +msgid " Function name " +msgstr "" + +#: CallGraph/uicallgraph.cpp:147 +msgid " Total time [%] " +msgstr "" + +#: CallGraph/uicallgraph.cpp:148 +msgid " Self time [s]" +msgstr "" + +#: CallGraph/uicallgraph.cpp:149 +msgid " Called " +msgstr "" + +#: CallGraph/uicallgraphpanel.cpp:90 +msgid "Save call graph..." +msgstr "" + +#: CallGraph/uicallgraphpanel.cpp:175 +msgid "" +"CallGraph failed to save file with DOT language, please build the project " +"again." +msgstr "" + +#: CallGraph/uisettings.cpp:50 +msgid "Select path for Gprof:" +msgstr "" + +#: CallGraph/uisettings.cpp:57 CallGraph/uisettings.cpp:67 +msgid "Select..." +msgstr "" + +#: CallGraph/uisettings.cpp:60 +msgid "Select path for Dot:" +msgstr "" + +#: CallGraph/uisettings.cpp:83 +msgid "Settings for CALL graph" +msgstr "" + +#: CallGraph/uisettings.cpp:85 +msgid "Resolutions:" +msgstr "" + +#: CallGraph/uisettings.cpp:97 +msgid "Node threshold (0 - 100) [%]:" +msgstr "" + +#: CallGraph/uisettings.cpp:104 +msgid "Edge threshold (0 - 100) [%]:" +msgstr "" + +#: CallGraph/uisettings.cpp:120 +#: LiteEditor/implementparentvirtualfunctionsbase.cpp:111 +#: LiteEditor/debuggersettingsbasedlg.cpp:303 +#: LiteEditor/findinfiles_dlg.cpp:141 codelitephp/php-plugin/new_class.cpp:119 +msgid "Options:" +msgstr "" + +#: CallGraph/uisettings.cpp:136 +msgid "Number of node load level colors (max 10):" +msgstr "" + +#: CallGraph/uisettings.cpp:143 +msgid "Strip parameters " +msgstr "" + +#: CallGraph/uisettings.cpp:146 +msgid "Number of edge load level colors (max 10):" +msgstr "" + +#: ExternalTools/external_tools.h:42 ExternalTools/externaltools.cpp:460 +msgid "External Tools" +msgstr "" + +#: ExternalTools/external_tools.cpp:45 LiteEditor/new_quick_watch_dlg.cpp:341 +#: LiteEditor/debuggersettingsbasedlg.cpp:160 +#: LiteEditor/compiler_pages.cpp:382 LiteEditor/compiler_pages.cpp:417 +#: LiteEditor/compiler_pages.cpp:569 LiteEditor/compiler_pages.cpp:585 +#: LiteEditor/project_settings_base_dlg.cpp:846 +msgid "Edit..." +msgstr "" + +#: ExternalTools/external_tools.cpp:49 +msgid "Delete..." +msgstr "" + +#: ExternalTools/newtoolbase.cpp:36 +msgid "Tool ID:" +msgstr "" + +#: ExternalTools/newtoolbase.cpp:47 +#: abbreviation/abbreviationssettingsbase.cpp:76 +#: LiteEditor/debuggersettingsbasedlg.cpp:214 +#: LiteEditor/new_item_base_dlg.cpp:63 LiteEditor/new_virtual_folder.cpp:60 +#: Gizmos/newwxprojectbasedlg.cpp:74 codelitephp/php-plugin/new_class.cpp:56 +#: codelitephp/php-plugin/php_ui.cpp:156 codelitephp/php-plugin/php_ui.cpp:269 +#: DatabaseExplorer/GUI.cpp:544 +msgid "Name:" +msgstr "" + +#: ExternalTools/newtoolbase.cpp:52 +msgid "The name is used to identify this tool in the 'External Tools' toobar" +msgstr "" + +#: ExternalTools/newtoolbase.cpp:61 +msgid "Tool path:" +msgstr "" + +#: ExternalTools/newtoolbase.cpp:72 ExternalTools/newtoolbase.cpp:87 +#: ExternalTools/newtoolbase.cpp:126 ExternalTools/newtoolbase.cpp:141 +#: LiteEditor/wxcrafter.cpp:772 Gizmos/newclassbasedlg.cpp:71 +#: Gizmos/newclassbasedlg.cpp:105 Gizmos/newclassbasedlg.cpp:123 +msgid "Browse..." +msgstr "" + +#: ExternalTools/newtoolbase.cpp:76 LiteEditor/quickdebugbase.cpp:58 +#: codelitephp/php-plugin/php_ui.cpp:694 +msgid "Working directory:" +msgstr "" + +#: ExternalTools/newtoolbase.cpp:91 +msgid "Arguments:" msgstr "" -#: CallGraph/uisettings.cpp:60 -msgid "Select path for Dot:" +#: ExternalTools/newtoolbase.cpp:104 +msgid "Toolbar:" msgstr "" -#: CallGraph/uisettings.cpp:83 -msgid "Settings for CALL graph" +#: ExternalTools/newtoolbase.cpp:115 +msgid "Toolbar icon (24x24):" msgstr "" -#: CallGraph/uisettings.cpp:85 -msgid "Resolutions:" +#: ExternalTools/newtoolbase.cpp:130 +msgid "Toolbar icon (16x16):" msgstr "" -#: CallGraph/uisettings.cpp:97 -msgid "Node threshold (0 - 100) [%]:" +#: ExternalTools/newtoolbase.cpp:145 LiteEditor/commentpagebase.cpp:45 +#: codelitephp/php-plugin/new_class.cpp:29 +msgid "General:" msgstr "" -#: CallGraph/uisettings.cpp:104 -msgid "Edge threshold (0 - 100) [%]:" +#: ExternalTools/newtoolbase.cpp:149 +msgid "Save all files before executing this tool" msgstr "" -#: CallGraph/uisettings.cpp:120 LiteEditor/debuggersettingsbasedlg.cpp:303 -#: LiteEditor/findinfiles_dlg.cpp:141 -#: LiteEditor/implementparentvirtualfunctionsbase.cpp:111 -#: codelitephp/php-plugin/new_class.cpp:119 -msgid "Options:" +#: ExternalTools/newtoolbase.cpp:154 +msgid "Capture process output" msgstr "" -#: CallGraph/uisettings.cpp:136 -msgid "Number of node load level colors (max 10):" +#: ExternalTools/newtoolbase.cpp:173 ExternalTools/newtoolbase.cpp:174 +msgid "Show list of available macros" msgstr "" -#: CallGraph/uisettings.cpp:143 -msgid "Strip parameters " +#: ExternalTools/newtooldlg.cpp:71 +msgid "Select a program:" msgstr "" -#: CallGraph/uisettings.cpp:146 -msgid "Number of edge load level colors (max 10):" +#: ExternalTools/newtooldlg.cpp:82 LiteEditor/ps_custom_build_page.cpp:75 +#: LiteEditor/quickdebugdlg.cpp:153 LiteEditor/debugcoredump.cpp:189 +msgid "Select working directory:" msgstr "" -#: CallGraph/uisettings.cpp:165 LiteEditor/manageperspectivesbasedlg.cpp:69 -#: LiteEditor/tabgroupbasedlgs.cpp:78 LiteEditor/tabgroupbasedlgs.cpp:169 -#: LiteEditor/tagsparsersearchpathsbasedlg.cpp:67 -#: LiteEditor/tasksfindwhatdlgbase.cpp:72 -#: LiteEditor/workspacesettingsbase.cpp:80 -#: Plugin/openresourcedialogbase.cpp:72 Plugin/renamefilebasedlg.cpp:110 -msgid "&Ok" +#: ExternalTools/newtooldlg.cpp:118 ExternalTools/newtooldlg.cpp:129 +msgid "Select an icon:" msgstr "" -#: CallGraph/uisettings.cpp:169 Copyright/copyrights_options_base_dlg.cpp:104 -#: Copyright/copyrights_proj_sel_base_dlg.cpp:80 DatabaseExplorer/GUI.cpp:607 -#: ExternalTools/external_tools.cpp:62 Gizmos/newclassbasedlg.cpp:239 -#: Gizmos/newwxprojectbasedlg.cpp:201 LiteEditor/add_option_dialog.cpp:70 -#: LiteEditor/addincludefiledlgbase.cpp:166 -#: LiteEditor/attachdbgprocbasedlg.cpp:85 LiteEditor/dbgcommandbasedlg.cpp:83 -#: LiteEditor/debuggersettingsbasedlg.cpp:67 -#: LiteEditor/debuggersettingsbasedlg.cpp:249 -#: LiteEditor/free_text_dialog.cpp:68 -#: LiteEditor/implementparentvirtualfunctionsbase.cpp:129 -#: LiteEditor/manageperspectivesbasedlg.cpp:73 -#: LiteEditor/manageperspectivesbasedlg.cpp:125 -#: LiteEditor/movefuncimplbasedlg.cpp:110 LiteEditor/new_item_base_dlg.cpp:97 -#: LiteEditor/new_virtual_folder.cpp:86 LiteEditor/newquickwatch.cpp:157 -#: LiteEditor/plugindlgbase.cpp:89 LiteEditor/rename_symbool_dlg.cpp:155 -#: LiteEditor/rename_symbool_dlg.cpp:232 LiteEditor/symbols_dialog_base.cpp:67 -#: LiteEditor/tabgroupbasedlgs.cpp:82 LiteEditor/tabgroupbasedlgs.cpp:173 -#: LiteEditor/tagsparsersearchpathsbasedlg.cpp:71 -#: LiteEditor/tasksfindwhatdlgbase.cpp:76 -#: LiteEditor/tasksfindwhatdlgbase.cpp:150 -#: LiteEditor/workspacesettingsbase.cpp:85 LiteEditor/wxcrafter.cpp:403 -#: Plugin/NewKeyShortcutBaseDlg.cpp:103 Plugin/nameanddescbasedlg.cpp:88 -#: Plugin/openresourcedialogbase.cpp:77 Plugin/renamefilebasedlg.cpp:114 -#: Plugin/sftp_ui.cpp:85 Plugin/sftp_ui.cpp:244 Plugin/sftp_ui.cpp:353 -#: Plugin/wxcrafter_plugin.cpp:78 QmakePlugin/NewQtProj.cpp:118 -#: QmakePlugin/qmakesettingsbasedlg.cpp:78 Subversion2/subversion2_ui.cpp:471 -#: Subversion2/subversion2_ui.cpp:772 Subversion2/subversion2_ui.cpp:846 -#: Subversion2/subversion2_ui.cpp:994 Subversion2/wxcrafter.cpp:297 -#: Tweaks/wxcrafter.cpp:137 UnitTestCPP/newunittestbasedlg.cpp:98 -#: ZoomNavigator/zoom_navigator.cpp:95 -#: codelitephp/php-plugin/new_class.cpp:163 -#: codelitephp/php-plugin/php_ui.cpp:197 codelitephp/php-plugin/php_ui.cpp:527 -#: codelitephp/php-plugin/php_ui.cpp:828 -#: cppchecker/cppchecksettingsdlgbase.cpp:336 -#: cppchecker/cppchecksettingsdlgbase.cpp:468 -#: sdk/wxflatnotebook/src/wxFlatNotebook/fnb_customize_dlg.cpp:42 -msgid "&Cancel" +#: ExternalTools/newtoolbase.h:64 +msgid "External Tool" +msgstr "" + +#: ExternalTools/externaltools.cpp:67 ExternalTools/externaltools.cpp:80 +msgid "A plugin that allows user to launch external tools from within CodeLite" +msgstr "" + +#: ExternalTools/externaltools.cpp:176 ExternalTools/externaltools.cpp:178 +#: ExternalTools/externaltools.cpp:185 ExternalTools/externaltools.cpp:187 +#: ExternalTools/externaltools.cpp:242 ExternalTools/externaltools.cpp:244 +#: ExternalTools/externaltools.cpp:251 ExternalTools/externaltools.cpp:253 +#: ExternalTools/externaltools.cpp:445 +msgid "Configure external tools..." +msgstr "" + +#: ExternalTools/externaltools.cpp:180 ExternalTools/externaltools.cpp:182 +#: ExternalTools/externaltools.cpp:189 ExternalTools/externaltools.cpp:191 +#: ExternalTools/externaltools.cpp:246 ExternalTools/externaltools.cpp:248 +#: ExternalTools/externaltools.cpp:255 ExternalTools/externaltools.cpp:257 +msgid "Stop external tool" +msgstr "" + +#: ExternalTools/externaltooldlg.cpp:91 +msgid "Are you sure you want to delete this tool?" +msgstr "" + +#: ExternalTools/externaltooldlg.cpp:100 LiteEditor/breakpointslistctrl.h:41 +#: codelitephp/php-plugin/php_ui.cpp:1216 +msgid "ID" +msgstr "" + +#: ExternalTools/externaltooldlg.cpp:102 +#: LiteEditor/openwindowspanelbase.cpp:41 +#: LiteEditor/project_settings_base_dlg.cpp:452 +msgid "Path" +msgstr "" + +#: ZoomNavigator/zoom_navigator.cpp:53 +msgid "Enable ZoomNavigator" +msgstr "" + +#: ZoomNavigator/zoom_navigator.cpp:65 +msgid "Highlight colour:" +msgstr "" + +#: ZoomNavigator/zoom_navigator.cpp:73 +msgid "Zoom factor:" +msgstr "" + +#: ZoomNavigator/zoom_navigator.cpp:74 ZoomNavigator/zoom_navigator.cpp:79 +msgid "" +"Sets the preview pane zoom factor.\n" +"Valid values should be in the range of -10 and 20" +msgstr "" + +#: ZoomNavigator/zoom_navigator.h:60 +msgid "ZoomNavigator Settings" +msgstr "" + +#: ZoomNavigator/zoomnavigator.cpp:48 ZoomNavigator/zoomnavigator.cpp:87 +#: ZoomNavigator/zoomnavigator.cpp:133 +msgid "Zoom Navigator" +msgstr "" + +#: ZoomNavigator/zoomnavigator.cpp:64 +msgid "A dockable pane that shows a zoomed-out view of your code." +msgstr "" + +#: ZoomNavigator/zoomnavigator.cpp:166 +msgid "Enable plugin" +msgstr "" + +#: git/gitCommitDlg.cpp:145 +msgid "Git requires a commit message" +msgstr "" + +#: git/gitui.cpp:45 LiteEditor/compiler_pages.cpp:290 +#: LiteEditor/compiler_pages.cpp:303 +msgid "Tools" +msgstr "" + +#: git/gitui.cpp:57 +msgid "Path to git executable:" +msgstr "" + +#: git/gitui.cpp:65 +msgid "Path to gitk executable:" +msgstr "" + +#: git/gitui.cpp:74 +msgid "Configuration" +msgstr "" + +#: git/gitui.cpp:86 +msgid "Global user name:" +msgstr "" + +#: git/gitui.cpp:91 +msgid "Set the global user name (this name will tell git who you are)" +msgstr "" + +#: git/gitui.cpp:98 +msgid "Global email:" +msgstr "" + +#: git/gitui.cpp:103 +msgid "Set the current repository email" +msgstr "" + +#: git/gitui.cpp:110 +msgid "Local repository user name:" +msgstr "" + +#: git/gitui.cpp:115 +msgid "" +"Set the current repository user name (this name will tell git who you are).\n" +"If this field letf empty, the global one is used" +msgstr "" + +#: git/gitui.cpp:122 +msgid "Local repository email:" +msgstr "" + +#: git/gitui.cpp:127 +msgid "" +"Set the current repository email\n" +"If this field letf empty, the global one is used" +msgstr "" + +#: git/gitui.cpp:135 LiteEditor/editorsettingslocalbase.cpp:172 +#: LiteEditor/options_dlg2.cpp:126 LiteEditor/compiler_pages.cpp:589 +msgid "Misc" +msgstr "" + +#: git/gitui.cpp:140 +msgid "Show Terminal" +msgstr "" + +#: git/gitui.cpp:142 +msgid "" +"Mainly useful for Windows when the password\n" +"prompt is not accessible via the UI" +msgstr "" + +#: git/gitui.cpp:146 WebTools/WebToolsBase.cpp:75 +msgid "Verbose Logging" +msgstr "" + +#: git/gitui.cpp:148 +msgid "Tick this option to enable a verbose logging of git" +msgstr "" + +#: git/gitui.cpp:152 +msgid "Colour modified items in the workspace view" +msgstr "" + +#: git/gitui.cpp:154 +msgid "Colour modified items in the workspace view tree" +msgstr "" + +#: git/gitui.cpp:242 +msgid "Toggle Files" +msgstr "" + +#: git/gitui.cpp:242 +msgid "Toggle Check All" +msgstr "" + +#: git/gitui.cpp:248 +msgid "Recent commits" +msgstr "" + +#: git/gitui.cpp:251 +msgid "Clear History" +msgstr "" + +#: git/gitui.cpp:331 git/gitui.cpp:567 Subversion2/wxcrafter.cpp:143 +msgid "Commit message:" +msgstr "" + +#: git/gitui.cpp:336 +msgid "Type your commit message here" +msgstr "" + +#: git/gitui.cpp:375 +msgid "Amend the previous commit" +msgstr "" + +#: git/gitui.cpp:377 +msgid "" +"The 'git commit --amend' command is a convenient way to fix up the most " +"recent commit. It lets you combine staged changes with the previous commit " +"instead of committing it as an entirely new snapshot. It can also be used to " +"simply edit the previous commit message without changing its snapshot" +msgstr "" + +#: git/gitui.cpp:462 +msgid "" +"Search the commit list\n" +"The search is performed on all columns" +msgstr "" + +#: git/gitui.cpp:472 git/git.cpp:2370 git/GitConsole.cpp:216 +#: Subversion2/subversion2.cpp:316 +msgid "Commit" +msgstr "" + +#: git/gitui.cpp:473 +msgid "Author" +msgstr "" + +#: git/gitui.cpp:474 +msgid "Date" +msgstr "" + +#: git/gitui.cpp:475 +msgid "Subject" +msgstr "" + +#: git/gitui.cpp:504 git/gitui.cpp:688 +msgid "Modified files:" +msgstr "" + +#: git/gitui.cpp:519 git/gitui.cpp:703 Subversion2/wxcrafter.cpp:95 +msgid "Diff:" +msgstr "" + +#: git/gitui.cpp:773 +msgid "Clone URL:" +msgstr "" + +#: git/gitui.cpp:778 +msgid "git URL to clone" +msgstr "" + +#: git/gitui.cpp:785 +msgid "Target Directory:" +msgstr "" + +#: git/gitui.cpp:790 +msgid "Clone the sources into this target directory" +msgstr "" + +#: git/gitui.cpp:1202 +msgid "Select patch file" +msgstr "" + +#: git/gitui.cpp:1207 +msgid "Patch file to apply" +msgstr "" + +#: git/gitui.cpp:1212 +msgid "git apply additional flags to use:" +msgstr "" + +#: git/gitui.cpp:1217 +msgid "" +"By default, codelite uses the command 'git apply --whitespace=nowarn --" +"ignore-whitespace' for applying patch files.\n" +"Set here an extra flags to use with this command, e.g.:\n" +"\n" +"--reverse\n" +"\n" +"See the git manual for more options" msgstr "" -#: CallGraph/uisettingsdlg.cpp:63 -msgid "Select gprof..." +#: git/gitui.cpp:1279 SFTP/SFTPStatusPage.cpp:86 LiteEditor/wxcrafter.cpp:912 +msgid "Clear Log" msgstr "" -#: CallGraph/uisettingsdlg.cpp:78 -msgid "Select dot..." +#: git/gitui.cpp:1281 +msgid "m_toolKill" msgstr "" -#: CallGraph/uisettingsdlg.cpp:110 -msgid "Please check the external tools' paths settings." +#: git/gitui.cpp:1281 +msgid "Terminate git process" msgstr "" -#: CodeDesigner/codedesigner.cpp:136 -msgid "CodeDesigner" +#: git/gitui.cpp:1285 git/git.cpp:2324 git/GitConsole.cpp:456 +msgid "Add file" msgstr "" -#: CodeDesigner/codedesigner.cpp:173 -msgid "Open with CodeDesigner..." +#: git/gitui.cpp:1287 +msgid "Reset File" msgstr "" -#: CodeDesigner/codedesigner.cpp:248 -msgid "New simple state chart..." +#: git/gitui.cpp:1309 +msgid "File View" msgstr "" -#: CodeDesigner/codedesigner.cpp:252 -msgid "New hierarchical state chart..." +#: git/gitCommitListDlg.cpp:188 +msgid "Copy commit hash to clipboard" msgstr "" -#: CodeDesigner/codedesigner.cpp:256 -msgid "New class diagram..." +#: git/gitCommitListDlg.cpp:189 +msgid "Revert this commit" msgstr "" -#: CodeDesigner/codedesigner.cpp:315 CodeDesigner/codedesigner.cpp:328 -#: CodeDesigner/codedesigner.cpp:475 CodeDesigner/codedesigner.cpp:490 -#: CodeDesigner/codedesigner.cpp:497 CodeDesigner/codedesigner.cpp:511 -#: CodeDesigner/codedesigneritemdlg.cpp:41 -#: CodeDesigner/codedesigneritemdlg.cpp:48 -#: CodeDesigner/codedesigneritemdlg.cpp:55 Copyright/copyright.cpp:172 -#: Copyright/copyright.cpp:179 Copyright/copyright.cpp:185 -#: Copyright/copyright.cpp:196 Copyright/copyright.cpp:229 -#: Copyright/copyright.cpp:287 Copyright/copyright.cpp:342 -#: Copyright/copyright.cpp:395 Copyright/copyright.cpp:401 -#: Copyright/copyright.cpp:412 DatabaseExplorer/ClassGenerateDialog.cpp:126 -#: DatabaseExplorer/ClassGenerateDialog.cpp:131 -#: ExternalTools/externaltooldlg.cpp:91 Gizmos/gizmos.cpp:333 -#: Gizmos/gizmos.cpp:359 Gizmos/newclassdlg.cpp:235 Gizmos/newclassdlg.cpp:248 -#: Gizmos/newclassdlg.cpp:259 Gizmos/newclassdlg.cpp:264 -#: Gizmos/newclassdlg.cpp:271 Gizmos/newclassdlg.cpp:278 -#: Gizmos/newclassdlg.cpp:284 Gizmos/newwxprojectdlg.cpp:78 -#: Gizmos/newwxprojectdlg.cpp:88 LiteEditor/CompilerMainPage.cpp:224 -#: LiteEditor/CompilerMainPage.cpp:237 LiteEditor/CompilerMainPage.cpp:249 -#: LiteEditor/CompilerMainPage.cpp:859 LiteEditor/FileExplorerTab.cpp:364 -#: LiteEditor/NewProjectWizard.cpp:399 LiteEditor/acceltabledlg.cpp:185 -#: LiteEditor/cl_editor.cpp:1266 LiteEditor/cl_editor.cpp:1274 -#: LiteEditor/cl_editor.cpp:1322 LiteEditor/cl_editor.cpp:1330 -#: LiteEditor/cl_editor.cpp:1345 LiteEditor/cl_editor.cpp:1371 -#: LiteEditor/cl_editor.cpp:1970 LiteEditor/cl_editor.cpp:2005 -#: LiteEditor/configuration_manager_dlg.cpp:228 -#: LiteEditor/context_cpp.cpp:1283 LiteEditor/context_cpp.cpp:1710 -#: LiteEditor/context_cpp.cpp:1808 LiteEditor/context_cpp.cpp:1911 -#: LiteEditor/debugger_predefined_types_page.cpp:88 -#: LiteEditor/depend_dlg_page.cpp:42 LiteEditor/depend_dlg_page.cpp:177 -#: LiteEditor/edit_workspace_conf_dlg.cpp:125 LiteEditor/fileview.cpp:667 -#: LiteEditor/fileview.cpp:1074 LiteEditor/fileview.cpp:1916 -#: LiteEditor/findresultstab.cpp:331 LiteEditor/frame.cpp:2566 -#: LiteEditor/frame.cpp:4243 LiteEditor/manager.cpp:1152 -#: LiteEditor/manager.cpp:1964 LiteEditor/manager.cpp:2027 -#: LiteEditor/manager.cpp:2536 LiteEditor/manager.cpp:2568 -#: LiteEditor/manager.cpp:2600 LiteEditor/memoryview.cpp:160 -#: LiteEditor/movefuncimpldlg.cpp:81 LiteEditor/new_configuration_dlg.cpp:128 -#: LiteEditor/new_item_dlg.cpp:140 LiteEditor/ps_custom_build_page.cpp:90 -#: LiteEditor/reconcileproject.cpp:192 LiteEditor/reconcileproject.cpp:836 -#: LiteEditor/renamesymboldlg.cpp:91 LiteEditor/tabgroupspane.cpp:247 -#: LiteEditor/tabgroupspane.cpp:289 LiteEditor/tabgroupspane.cpp:489 -#: LiteEditor/tabgroupspane.cpp:558 LiteEditor/tabgroupspane.cpp:565 -#: LiteEditor/tabgroupspane.cpp:627 LiteEditor/tabgroupspane.cpp:668 -#: LiteEditor/tabgroupspane.cpp:673 LiteEditor/tabgroupspane.cpp:766 -#: LiteEditor/tabgroupspane.cpp:789 LiteEditor/tasks_find_what_dlg.cpp:77 -#: Plugin/builder_gnumake.cpp:164 Plugin/workspace.cpp:290 -#: Plugin/workspace.cpp:481 QmakePlugin/qmakeplugin.cpp:448 -#: QmakePlugin/qmakeplugin.cpp:506 QmakePlugin/qmakeplugin.cpp:518 -#: QmakePlugin/qmakesettingsdlg.cpp:119 SnipWiz/editsnippetsdlg.cpp:184 -#: UnitTestCPP/testclassdlg.cpp:119 UnitTestCPP/testclassdlg.cpp:154 -#: UnitTestCPP/unittestpp.cpp:226 UnitTestCPP/unittestpp.cpp:295 -#: UnitTestCPP/unittestpp.cpp:352 UnitTestCPP/unittestpp.cpp:419 -#: abbreviation/abbreviationssettingsdlg.cpp:104 -#: codelitephp/php-plugin/php_workspace_view.cpp:385 -#: wxformbuilder/wxfbitemdlg.cpp:51 wxformbuilder/wxformbuilder.cpp:246 -#: wxformbuilder/wxformbuilder.cpp:261 wxformbuilder/wxformbuilder.cpp:269 -#: wxformbuilder/wxformbuilder.cpp:281 wxformbuilder/wxformbuilder.cpp:326 -msgid "CodeLite" +#: git/gitFileDiffDlg.cpp:58 LiteEditor/syntaxhighlightdlg.cpp:561 +#: LiteEditor/syntaxhighlightdlg.cpp:601 +msgid "Save as" msgstr "" -#: CodeDesigner/codedesigner.cpp:315 -msgid "Please select a 'cdp' (CodeDesigner Project) file only" +#: git/gitui.h:100 +msgid "Git settings..." msgstr "" -#: CodeDesigner/codedesigner.cpp:327 -msgid "" -"Failed to launch CodeDesigner, no path specified\n" -"Please set CodeDesigner path from Plugins -> CodeDesigner -> Settings..." +#: git/gitui.h:151 +msgid "Git commit" msgstr "" -#: CodeDesigner/codedesigner.cpp:391 -msgid "New Class Diagram" +#: git/gitui.h:205 +msgid "Commit List" msgstr "" -#: CodeDesigner/codedesigner.cpp:409 -msgid "New Hierarchical State Chart" +#: git/gitui.h:234 +msgid "Current Diffs" msgstr "" -#: CodeDesigner/codedesigner.cpp:427 -msgid "New Simple State Chart" +#: git/gitui.h:258 +msgid "git clone.." msgstr "" -#: CodeDesigner/codedesigner.cpp:475 -#, c-format -msgid "Can't find CodeDesigner template file '%s'" +#: git/gitui.h:277 +msgid "File diff" msgstr "" -#: CodeDesigner/codedesigner.cpp:490 wxformbuilder/wxformbuilder.cpp:260 -#, c-format -msgid "Failed to copy template file to '%s'" +#: git/gitui.h:320 +msgid "Git Apply Patch" msgstr "" -#: CodeDesigner/codedesigner.cpp:497 wxformbuilder/wxformbuilder.cpp:268 -#, c-format -msgid "Failed to read file '%s'" +#: git/git.cpp:89 +msgid "Simple GIT plugin" msgstr "" -#: CodeDesigner/codedesigner.cpp:511 wxformbuilder/wxformbuilder.cpp:280 -#, c-format -msgid "Failed to write file '%s'" +#: git/git.cpp:134 +msgid "GIT plugin" msgstr "" -#: CodeDesigner/codedesigner.cpp:592 -msgid "Insert generated files into..." +#: git/git.cpp:202 git/git.cpp:2366 git/GitConsole.cpp:214 +msgid "Pull remote changes" msgstr "" -#: CodeDesigner/codedesignerdlg.cpp:15 -msgid "Select CodeDesigner executable:" +#: git/git.cpp:207 git/GitConsole.cpp:216 +msgid "Commit local changes" msgstr "" -#: CodeDesigner/codedesigneritembasedlg.cpp:20 -msgid "CodeDesigner project settings:" +#: git/git.cpp:210 +msgid "Push local commits" msgstr "" -#: CodeDesigner/codedesigneritembasedlg.cpp:27 -msgid "Package name:" +#: git/git.cpp:215 +msgid "Reset current repository" msgstr "" -#: CodeDesigner/codedesigneritembasedlg.cpp:36 -msgid "Diagram name:" +#: git/git.cpp:219 git/GitConsole.cpp:135 +msgid "Create local branch" msgstr "" -#: CodeDesigner/codedesigneritembasedlg.cpp:43 -#: LiteEditor/syntaxhighlightbasedlg.cpp:505 -msgid "Language:" +#: git/git.cpp:223 +msgid "Switch local branch" msgstr "" -#: CodeDesigner/codedesigneritembasedlg.cpp:47 -msgid "C" +#: git/git.cpp:229 git/git.cpp:230 +msgid "Switch remote branch" msgstr "" -#: CodeDesigner/codedesigneritembasedlg.cpp:47 -#: CodeFormatter/codeformatterdlgbase.cpp:77 -#: LiteEditor/findinfiles_dlg.cpp:191 -msgid "C++" +#: git/git.cpp:236 +msgid "List commits" msgstr "" -#: CodeDesigner/codedesigneritembasedlg.cpp:47 -msgid "Python" +#: git/git.cpp:240 git/GitConsole.cpp:221 +msgid "Show current diffs" msgstr "" -#: CodeDesigner/codedesigneritembasedlg.cpp:56 -msgid "Application entry point" +#: git/git.cpp:240 +msgid "Show diffs" msgstr "" -#: CodeDesigner/codedesigneritembasedlg.cpp:62 -msgid "Generate source code" +#: git/git.cpp:243 git/GitConsole.cpp:137 Subversion2/subversion2.cpp:350 +msgid "Apply Patch" msgstr "" -#: CodeDesigner/codedesigneritembasedlg.cpp:70 -msgid "CodeLite settings:" +#: git/git.cpp:249 +msgid "List modified files" msgstr "" -#: CodeDesigner/codedesigneritembasedlg.cpp:77 -#: SnipWiz/templateclassbasedlg.cpp:113 wxformbuilder/wxfbitembasedlg.cpp:71 -msgid "Project tree folder:" +#: git/git.cpp:253 git/GitConsole.cpp:138 +msgid "Start gitk" msgstr "" -#: CodeDesigner/codedesigneritembasedlg.cpp:90 -#: CodeDesigner/codedesignersettingsbasedlg.cpp:35 -#: Copyright/copyrights_options_base_dlg.cpp:60 DatabaseExplorer/GUI.cpp:1058 -#: Gizmos/newclassbasedlg.cpp:315 LiteEditor/newworkspacebasedlg.cpp:68 -#: LiteEditor/project_settings_base_dlg.cpp:416 -#: LiteEditor/project_settings_base_dlg.cpp:802 -#: LiteEditor/tabgroupbasedlgs.cpp:54 SnipWiz/editsnippetsbasedlg.cpp:81 -#: SnipWiz/templateclassbasedlg.cpp:126 SnipWiz/templateclassbasedlg.cpp:143 -#: UnitTestCPP/testclassbasedlg.cpp:57 codelitephp/php-plugin/new_class.cpp:97 -#: codelitephp/php-plugin/new_class.cpp:114 -#: wxformbuilder/formbuildsettingsbasedlg.cpp:60 -#: wxformbuilder/wxfbitembasedlg.cpp:80 -msgid "..." +#: git/git.cpp:258 +msgid "Clean git database (garbage collection)" msgstr "" -#: CodeDesigner/codedesigneritembasedlg.cpp:105 DatabaseExplorer/GUI.cpp:810 -#: DatabaseExplorer/GUI.cpp:970 DatabaseExplorer/GUI.cpp:1178 -#: DatabaseExplorer/GUI.cpp:1376 Plugin/VirtualDirectorySelectorBase.cpp:77 -#: Runtime/templates/projects/executable-wxcrafter-dialog/wxcrafter.cpp:33 -#: Subversion2/subversion2_ui.cpp:685 -#: codelitephp/php-plugin/XDebugManager.cpp:741 -msgid "OK" +#: git/git.cpp:263 +msgid "Refresh git file list" msgstr "" -#: CodeDesigner/codedesigneritembasedlg.cpp:109 -#: CodeDesigner/codedesignersettingsbasedlg.cpp:63 -#: DatabaseExplorer/GUI.cpp:806 DatabaseExplorer/GUI.cpp:1090 -#: DatabaseExplorer/GUI.cpp:1372 LiteEditor/breakpointdlgbase.cpp:313 -#: LiteEditor/compiler_pages.cpp:73 -#: LiteEditor/configuration_manager_base_dlg.cpp:104 -#: LiteEditor/debugcoredumpbase.cpp:112 LiteEditor/depends_dlg.cpp:62 -#: LiteEditor/editcmpfileinfobase.cpp:92 LiteEditor/env_var_dlg_base.cpp:109 -#: LiteEditor/new_configuration_dlg.cpp:106 -#: LiteEditor/newversionbasedlg.cpp:61 LiteEditor/options_base_dlg2.cpp:71 -#: LiteEditor/setters_getters.cpp:111 LiteEditor/tags_options_base_dlg.cpp:532 -#: MacBundler/macbundler.cpp:148 Plugin/VirtualDirectorySelectorBase.cpp:82 -#: Runtime/templates/projects/executable-wxcrafter-dialog/wxcrafter.cpp:37 -#: SpellChecker/wxcrafter.cpp:222 Subversion2/subversion2_ui.cpp:182 -#: Subversion2/subversion2_ui.cpp:249 Subversion2/subversion2_ui.cpp:690 -#: UnitTestCPP/testclassbasedlg.cpp:132 codelite_terminal/wxcrafter.cpp:268 -#: codelitephp/php-plugin/php_ui.cpp:275 -#: wxformbuilder/formbuildsettingsbasedlg.cpp:88 -#: wxformbuilder/wxfbitembasedlg.cpp:95 -msgid "Cancel" +#: git/git.cpp:263 +msgid "Refresh file lists" msgstr "" -#: CodeDesigner/codedesigneritemdlg.cpp:41 -msgid "Diagram name cannot be empty" +#: git/git.cpp:268 +msgid "GIT plugin settings" msgstr "" -#: CodeDesigner/codedesigneritemdlg.cpp:48 -msgid "Package name cannot be empty" +#: git/git.cpp:273 git/git.cpp:274 +msgid "Set GIT repository path" msgstr "" -#: CodeDesigner/codedesigneritemdlg.cpp:55 -#: DatabaseExplorer/ClassGenerateDialog.cpp:131 -msgid "Folder name cannot be empty" +#: git/git.cpp:279 git/GitConsole.cpp:141 +msgid "Clone a git repository" msgstr "" -#: CodeDesigner/codedesignersettingsbasedlg.cpp:26 -msgid "CodeDesigner path:" +#: git/git.cpp:578 +msgid "Select git root directory" msgstr "" -#: CodeDesigner/codedesignersettingsbasedlg.cpp:38 -msgid "Communication port:" +#: git/git.cpp:686 git/git.cpp:716 +msgid "Modified files found! Commit them first before switching branches..." msgstr "" -#: CodeDesigner/codedesignersettingsbasedlg.cpp:59 -#: DatabaseExplorer/GUI.cpp:611 ExternalTools/external_tools.cpp:57 -#: Gizmos/newclassbasedlg.cpp:234 Gizmos/newwxprojectbasedlg.cpp:197 -#: LiteEditor/add_option_dialog.cpp:67 -#: LiteEditor/addincludefiledlgbase.cpp:161 -#: LiteEditor/breakpointdlgbase.cpp:308 LiteEditor/compiler_pages.cpp:68 -#: LiteEditor/configuration_manager_base_dlg.cpp:101 -#: LiteEditor/dbgcommandbasedlg.cpp:79 -#: LiteEditor/debuggersettingsbasedlg.cpp:62 -#: LiteEditor/debuggersettingsbasedlg.cpp:244 LiteEditor/depends_dlg.cpp:59 -#: LiteEditor/editcmpfileinfobase.cpp:88 LiteEditor/env_var_dlg_base.cpp:105 -#: LiteEditor/free_text_dialog.cpp:65 -#: LiteEditor/implementparentvirtualfunctionsbase.cpp:124 -#: LiteEditor/manageperspectivesbasedlg.cpp:121 -#: LiteEditor/movefuncimplbasedlg.cpp:107 -#: LiteEditor/new_configuration_dlg.cpp:103 -#: LiteEditor/new_item_base_dlg.cpp:93 LiteEditor/new_virtual_folder.cpp:90 -#: LiteEditor/newquickwatch.cpp:152 LiteEditor/newversionbasedlg.cpp:57 -#: LiteEditor/options_base_dlg2.cpp:66 LiteEditor/plugindlgbase.cpp:84 -#: LiteEditor/rename_symbool_dlg.cpp:227 LiteEditor/setters_getters.cpp:106 -#: LiteEditor/symbols_dialog_base.cpp:63 -#: LiteEditor/tags_options_base_dlg.cpp:527 -#: LiteEditor/tasksfindwhatdlgbase.cpp:146 LiteEditor/wxcAboutDlg.cpp:134 -#: LiteEditor/wxcrafter.cpp:398 Plugin/NewKeyShortcutBaseDlg.cpp:98 -#: Plugin/macrosbasedlg.cpp:58 Plugin/nameanddescbasedlg.cpp:84 -#: Plugin/sftp_ui.cpp:80 Plugin/sftp_ui.cpp:239 Plugin/sftp_ui.cpp:348 -#: Plugin/wxcrafter_plugin.cpp:73 QmakePlugin/NewQtProj.cpp:122 -#: QmakePlugin/qmakesettingsbasedlg.cpp:82 Subversion2/subversion2_ui.cpp:177 -#: Subversion2/subversion2_ui.cpp:466 Subversion2/subversion2_ui.cpp:610 -#: Subversion2/subversion2_ui.cpp:767 Subversion2/subversion2_ui.cpp:841 -#: Subversion2/subversion2_ui.cpp:989 Subversion2/wxcrafter.cpp:292 -#: Tweaks/wxcrafter.cpp:141 UnitTestCPP/newunittestbasedlg.cpp:94 -#: UnitTestCPP/testclassbasedlg.cpp:128 ZoomNavigator/zoom_navigator.cpp:90 -#: codelite_terminal/wxcrafter.cpp:272 -#: codelitephp/php-plugin/new_class.cpp:158 -#: codelitephp/php-plugin/php_ui.cpp:192 codelitephp/php-plugin/php_ui.cpp:270 -#: codelitephp/php-plugin/php_ui.cpp:522 codelitephp/php-plugin/php_ui.cpp:823 -#: cppchecker/cppchecksettingsdlgbase.cpp:331 -#: cppchecker/cppchecksettingsdlgbase.cpp:463 -#: sdk/wxflatnotebook/src/wxFlatNotebook/fnb_customize_dlg.cpp:39 -#: wxformbuilder/formbuildsettingsbasedlg.cpp:84 -msgid "&OK" +#: git/git.cpp:694 +msgid "No other local branches found." msgstr "" -#: CodeFormatter/astyle_main.cpp:379 -msgid "" -"\n" -"Artistic Style has terminated" +#: git/git.cpp:698 +msgid "Select branch (current is " msgstr "" -#: CodeFormatter/astyle_main.cpp:456 -msgid "Cannot process the input stream" +#: git/git.cpp:701 +msgid "Switch branch" msgstr "" -#: CodeFormatter/astyle_main.cpp:537 -#, c-format -msgid "Formatted %s\n" +#: git/git.cpp:723 +msgid "No remote branches found." msgstr "" -#: CodeFormatter/astyle_main.cpp:540 -#, c-format -msgid "Unchanged %s\n" +#: git/git.cpp:726 +msgid "Select remote branch (current is " msgstr "" -#: CodeFormatter/astyle_main.cpp:639 -msgid "Cannot process UTF-32 encoding" +#: git/git.cpp:729 git/GitConsole.cpp:136 +msgid "Switch to remote branch" msgstr "" -#: CodeFormatter/astyle_main.cpp:765 CodeFormatter/astyle_main.cpp:890 -msgid "Cannot open directory" +#: git/git.cpp:736 +msgid "Specify the name for the local branch" msgstr "" -#: CodeFormatter/astyle_main.cpp:781 CodeFormatter/astyle_main.cpp:794 -#: CodeFormatter/astyle_main.cpp:913 CodeFormatter/astyle_main.cpp:926 -#, c-format -msgid "Exclude %s\n" +#: git/git.cpp:736 git/git.cpp:751 +msgid "Branch name" msgstr "" -#: CodeFormatter/astyle_main.cpp:1041 -#, c-format -msgid "Missing filename in %s\n" +#: git/git.cpp:751 +msgid "Specify the name of the new branch" msgstr "" -#: CodeFormatter/astyle_main.cpp:1056 -msgid "Recursive option with no wildcard" +#: git/git.cpp:757 +msgid "Switch to new branch once it is created?" msgstr "" -#: CodeFormatter/astyle_main.cpp:1058 -msgid "Did you intend quote the filename" +#: git/git.cpp:757 +msgid "Switch to new branch" msgstr "" -#: CodeFormatter/astyle_main.cpp:1066 -#, c-format -msgid "Directory %s\n" +#: git/git.cpp:810 +msgid "No remotes found, can't push!" msgstr "" -#: CodeFormatter/astyle_main.cpp:1086 CodeFormatter/astyle_main.cpp:1088 -#: CodeFormatter/astyle_main.cpp:1090 -#, c-format -msgid "Exclude (unmatched) %s\n" +#: git/git.cpp:814 +msgid "Push all local commits?" msgstr "" -#: CodeFormatter/astyle_main.cpp:1096 CodeFormatter/astyle_main.cpp:1103 -msgid "Did you intend to use --recursive" +#: git/git.cpp:818 +msgid "Select remote to push to." msgstr "" -#: CodeFormatter/astyle_main.cpp:1102 -#, c-format -msgid "No file to process %s\n" +#: git/git.cpp:818 +msgid "Select remote" msgstr "" -#: CodeFormatter/astyle_main.cpp:1616 -msgid "Invalid option file options:" +#: git/git.cpp:840 +msgid "Save all changes and pull remote changes?" msgstr "" -#: CodeFormatter/astyle_main.cpp:1618 -msgid "Cannot open options file" +#: git/git.cpp:864 +msgid "Are you sure that you want to discard all local changes?" msgstr "" -#: CodeFormatter/astyle_main.cpp:1625 CodeFormatter/astyle_main.cpp:1633 -msgid "For help on options type 'astyle -h'" +#: git/git.cpp:865 git/GitConsole.cpp:211 +msgid "Reset repository" msgstr "" -#: CodeFormatter/astyle_main.cpp:1630 -msgid "Invalid command line options:" +#: git/git.cpp:901 +msgid "Jump to modifed file" msgstr "" -#: CodeFormatter/astyle_main.cpp:1752 -#, c-format -msgid "Using default options file %s\n" +#: git/git.cpp:901 +msgid "Modifed files" msgstr "" -#: CodeFormatter/astyle_main.cpp:1762 -#, c-format -msgid " %s formatted %s unchanged " +#: git/git.cpp:1315 +msgid "Colouring tracked git files..." msgstr "" -#: CodeFormatter/astyle_main.cpp:1774 -msgid " seconds " +#: git/git.cpp:1320 +msgid "Colouring modifed git files..." msgstr "" -#: CodeFormatter/astyle_main.cpp:1780 -#, c-format -msgid "%d min %d sec " +#: git/git.cpp:1402 +msgid "Do you want to start importing new / updating changed files?" msgstr "" -#: CodeFormatter/astyle_main.cpp:1784 -#, c-format -msgid "%s lines\n" +#: git/git.cpp:1403 +msgid "Import files" msgstr "" -#: CodeFormatter/codeformatter.cpp:93 -msgid "Source Code Formatter (Supports C/C++/Obj-C/JavaScript/PHP files)" +#: git/git.cpp:1410 +msgid "Error obtaining project" msgstr "" -#: CodeFormatter/codeformatter.cpp:103 CodeFormatter/codeformatter.cpp:224 -#: CodeFormatter/codeformatter.cpp:428 CodeFormatter/codeformatter.cpp:709 -#: CodeFormatter/codeformatter.cpp:737 CodeFormatter/codeformatter.cpp:782 -msgid "Source Code Formatter" +#: git/git.cpp:1426 LiteEditor/fileview.cpp:1731 LiteEditor/fileview.cpp:1820 +msgid "Importing files ..." msgstr "" -#: CodeFormatter/codeformatter.cpp:165 CodeFormatter/codeformatter.cpp:175 -msgid "Format Source" +#: git/git.cpp:1440 +msgid "Checking file " msgstr "" -#: CodeFormatter/codeformatter.cpp:167 CodeFormatter/codeformatter.cpp:177 -msgid "Format Source Code" +#: git/git.cpp:1466 +msgid "Adding files..." msgstr "" -#: CodeFormatter/codeformatter.cpp:169 CodeFormatter/codeformatter.cpp:179 -msgid "Format Options" +#: git/git.cpp:1516 +msgid "Finished adding files..." msgstr "" -#: CodeFormatter/codeformatter.cpp:171 CodeFormatter/codeformatter.cpp:181 -msgid "Source Code Formatter Options..." +#: git/git.cpp:1541 +msgid "" +"There was a problem while performing a git action.\n" +"Last command output:\n" msgstr "" -#: CodeFormatter/codeformatter.cpp:219 -msgid "Format Current Source" +#: git/git.cpp:1544 +msgid "git error" msgstr "" -#: CodeFormatter/codeformatter.cpp:222 -msgid "Options..." +#: git/git.cpp:1552 +msgid "created" msgstr "" -#: CodeFormatter/codeformatter.cpp:249 -#: CodeFormatter/codeformatterdlgbase.cpp:178 -msgid "Formatting" +#: git/git.cpp:1602 +msgid "Nothing to pull, already up-to-date." msgstr "" -#: CodeFormatter/codeformatter.cpp:251 LiteEditor/frame.cpp:5394 -#: LiteEditor/manager.cpp:3496 SFTP/SFTPTreeView.cpp:703 -#: cppchecker/cppcheckreportpage.cpp:201 cscope/cscopedbbuilderthread.cpp:62 -msgid "Done" +#: git/git.cpp:1610 +msgid "Merged after pull. Rebase?" msgstr "" -#: CodeFormatter/codeformatter.cpp:312 -msgid "Source code formatting error!" +#: git/git.cpp:1610 git/git.cpp:1614 git/git.cpp:1618 git/GitConsole.cpp:218 +msgid "Rebase" msgstr "" -#: CodeFormatter/codeformatter.cpp:703 -msgid "Nothing to be done here" +#: git/git.cpp:1614 +msgid "Rebase with what branch?" msgstr "" -#: CodeFormatter/codeformatter.cpp:708 -msgid "" -" files\n" -"Continue?" +#: git/git.cpp:1618 +msgid "Rebase with " msgstr "" -#: CodeFormatter/codeformatter.cpp:708 -msgid "You are about to beautify " +#: git/git.cpp:1632 +msgid "Conflict found during merge" msgstr "" -#: CodeFormatter/codeformatter.cpp:737 CodeFormatter/codeformatter.cpp:782 -msgid "Formatting files..." +#: git/git.cpp:1733 +msgid "Are you sure you want to continue connecting" msgstr "" -#: CodeFormatter/codeformatterdlg.cpp:200 -msgid "AStyle help page" +#: git/git.cpp:2252 Subversion2/subversion_view.cpp:1470 +msgid "HEAD version" msgstr "" -#: CodeFormatter/codeformatterdlg.cpp:201 -msgid "clang-format help page" +#: git/git.cpp:2254 Subversion2/subversion_view.cpp:1469 +msgid "Working copy" msgstr "" -#: CodeFormatter/codeformatterdlgbase.cpp:40 LLDBDebugger/UI.cpp:345 -#: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:37 -#: LiteEditor/editorsettingscommentsdoxygenpanelbase.cpp:37 -#: LiteEditor/editorsettingsmiscbasepanel.cpp:34 -#: LiteEditor/findinfiles_dlg.cpp:150 LiteEditor/project_settings_dlg.cpp:125 -#: LiteEditor/project_settings_dlg.cpp:130 -#: LiteEditor/tags_options_base_dlg.cpp:442 MemCheck/memcheckui.cpp:502 -#: Subversion2/subversion2_ui.cpp:286 WebTools/WebToolsBase.cpp:47 -#: codelitephp/php-plugin/php_ui.cpp:363 codelitephp/php-plugin/php_ui.cpp:576 -msgid "General" +#: git/git.cpp:2259 git/git.cpp:2260 +msgid "Git Diff: " msgstr "" -#: CodeFormatter/codeformatterdlgbase.cpp:52 -msgid "Format editor on file save:" +#: git/git.cpp:2274 +msgid "Save all changes and rebase?" msgstr "" -#: CodeFormatter/codeformatterdlgbase.cpp:58 -msgid "When saving a file, automatically format it" +#: git/git.cpp:2328 git/GitConsole.cpp:457 +msgid "Reset file" msgstr "" -#: CodeFormatter/codeformatterdlgbase.cpp:62 -msgid "Select C++ formatter:" +#: git/git.cpp:2332 +msgid "Show file diff" msgstr "" -#: CodeFormatter/codeformatterdlgbase.cpp:70 -msgid "" -"Select the formatter engine for C/C++\n" -"Note that JavaScript, clang-format is always used" +#: git/git.cpp:2336 git/git.cpp:2395 +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:187 +msgid "Git" msgstr "" -#: CodeFormatter/codeformatterdlgbase.cpp:82 -msgid "AStyle" +#: git/git.cpp:2355 git/git.cpp:2563 +msgid "Don't know how to start MSYSGit..." msgstr "" -#: CodeFormatter/codeformatterdlgbase.cpp:106 -msgid "AStyle Options" +#: git/git.cpp:2374 git/GitConsole.cpp:217 +msgid "Push" msgstr "" -#: CodeFormatter/codeformatterdlgbase.cpp:111 -#: CodeFormatter/codeformatterdlgbase.cpp:295 -msgid "GNU" +#: git/git.cpp:2380 +msgid "Stash" msgstr "" -#: CodeFormatter/codeformatterdlgbase.cpp:112 -msgid "Java" +#: git/git.cpp:2384 +msgid "Stash pop" msgstr "" -#: CodeFormatter/codeformatterdlgbase.cpp:113 -msgid "K&R" +#: git/git.cpp:2390 +msgid "Open git bash" msgstr "" -#: CodeFormatter/codeformatterdlgbase.cpp:114 -#: CodeFormatter/codeformatterdlgbase.cpp:123 -#: CodeFormatter/codeformatterdlgbase.cpp:291 -msgid "Linux" +#: git/git.cpp:2494 +msgid "No commit message given, aborting." msgstr "" -#: CodeFormatter/codeformatterdlgbase.cpp:115 -msgid "ANSI" +#: git/GitConsole.cpp:135 +msgid "Switch to local branch" msgstr "" -#: CodeFormatter/codeformatterdlgbase.cpp:116 -msgid "PreDefined Styles" +#: git/GitConsole.cpp:139 +msgid "Garbage collect" msgstr "" -#: CodeFormatter/codeformatterdlgbase.cpp:117 -msgid "Choose the formatting from one of the known styles" +#: git/GitConsole.cpp:140 +msgid "Plugin settings" msgstr "" -#: CodeFormatter/codeformatterdlgbase.cpp:121 -msgid "Break closing" +#: git/GitConsole.cpp:140 +msgid "Set repository path" msgstr "" -#: CodeFormatter/codeformatterdlgbase.cpp:122 -#: CodeFormatter/codeformatterdlgbase.cpp:292 -msgid "Attach" +#: git/GitConsole.cpp:211 +msgid "Reset" msgstr "" -#: CodeFormatter/codeformatterdlgbase.cpp:124 -msgid "Break" +#: git/GitConsole.cpp:214 +msgid "Pull" msgstr "" -#: CodeFormatter/codeformatterdlgbase.cpp:125 LiteEditor/quickfindbar.cpp:110 -msgid "None" +#: git/GitConsole.cpp:217 +msgid "Push local changes" msgstr "" -#: CodeFormatter/codeformatterdlgbase.cpp:126 -#: CodeFormatter/codeformatterdlgbase.cpp:132 -msgid "Brackets" +#: git/GitConsole.cpp:221 +msgid "Diffs" msgstr "" -#: CodeFormatter/codeformatterdlgbase.cpp:127 -msgid "Bracket Style options define the bracket style to use" +#: git/GitConsole.cpp:223 LiteEditor/editorsettingsmiscbasepanel.cpp:284 +#: DatabaseExplorer/GUI.cpp:890 +msgid "Log" msgstr "" -#: CodeFormatter/codeformatterdlgbase.cpp:131 -#: SnipWiz/templateclassbasedlg.cpp:40 -msgid "Class" +#: git/GitConsole.cpp:223 +msgid "Browse commit history" msgstr "" -#: CodeFormatter/codeformatterdlgbase.cpp:133 -#: LiteEditor/compiler_pages.cpp:485 -msgid "Switches" +#: git/GitConsole.cpp:227 +msgid "Open MSYS Git" msgstr "" -#: CodeFormatter/codeformatterdlgbase.cpp:134 -msgid "Namespaces" +#: git/GitConsole.cpp:229 +msgid "Open MSYS Git at the current file location" msgstr "" -#: CodeFormatter/codeformatterdlgbase.cpp:135 MemCheck/memcheckui.cpp:322 -msgid "Case" +#: git/GitConsole.cpp:347 +msgid "Modified" msgstr "" -#: CodeFormatter/codeformatterdlgbase.cpp:136 -msgid "Labels" +#: git/GitConsole.cpp:351 LiteEditor/reconcileprojectbase.cpp:35 +#: LiteEditor/reconcileprojectbase.cpp:42 +msgid "New Files" msgstr "" -#: CodeFormatter/codeformatterdlgbase.cpp:137 -msgid "Blocks" +#: git/GitConsole.cpp:355 Subversion2/subversion_strings.h:32 +msgid "Deleted Files" msgstr "" -#: CodeFormatter/codeformatterdlgbase.cpp:138 -#: LiteEditor/project_settings_base_dlg.cpp:258 -#: LiteEditor/project_settings_base_dlg.cpp:914 -msgid "Preprocessors" +#: git/GitConsole.cpp:359 +msgid "Untracked" msgstr "" -#: CodeFormatter/codeformatterdlgbase.cpp:139 -msgid "Max Instatement Indent" +#: git/GitConsole.cpp:454 LiteEditor/frame.cpp:1299 LiteEditor/frame.cpp:1515 +#: LiteEditor/frame.cpp:1652 LiteEditor/frame.cpp:1801 +#: LiteEditor/frame.cpp:2477 +msgid "Open File" msgstr "" -#: CodeFormatter/codeformatterdlgbase.cpp:140 -msgid "Min Instatement Indent" +#: CodeLiteDiff/codelitediff.cpp:47 CodeLiteDiff/codelitediff.cpp:60 +msgid "CodeLite Diff Plugin" msgstr "" -#: CodeFormatter/codeformatterdlgbase.cpp:151 -#: LiteEditor/editorsettingslocalbase.cpp:70 LiteEditor/options_dlg2.cpp:114 -#: Plugin/clBoostrapWizardBase.cpp:218 -msgid "Indentation" +#: CodeLiteDiff/codelitediff.cpp:108 +msgid "New Diff.." msgstr "" -#: CodeFormatter/codeformatterdlgbase.cpp:156 -msgid "Break Blocks" +#: CodeLiteDiff/codelitediff.cpp:108 +msgid "Start new diff" msgstr "" -#: CodeFormatter/codeformatterdlgbase.cpp:157 -msgid "Pad Parenthesis" +#: CodeLiteDiff/codelitediff.cpp:110 +msgid "Diff Tool" msgstr "" -#: CodeFormatter/codeformatterdlgbase.cpp:158 -msgid "Break Blocks All" +#: CodeLiteDiff/codelitediff.cpp:133 +msgid "Diff" msgstr "" -#: CodeFormatter/codeformatterdlgbase.cpp:159 -msgid "Pad Parenthesis Outside" +#: Subversion2/svn_console.cpp:178 +msgid "Aborted.\n" msgstr "" -#: CodeFormatter/codeformatterdlgbase.cpp:160 -msgid "Break else-if" +#: Subversion2/svn_console.cpp:231 +msgid "Failed to launch Subversion client.\n" msgstr "" -#: CodeFormatter/codeformatterdlgbase.cpp:161 -msgid "Pad Parenthesis Inside" +#: Subversion2/svn_checkout_dialog.cpp:82 +#, c-format +msgid "" +"The checkout directory '%s' already exists\n" +"continue with the checkout?" msgstr "" -#: CodeFormatter/codeformatterdlgbase.cpp:162 -msgid "Pad Operators" +#: Subversion2/svn_checkout_dialog.cpp:84 LiteEditor/fileview.cpp:977 +#: LiteEditor/fileview.cpp:1015 LiteEditor/fileview.cpp:1210 +#: LiteEditor/syntaxhighlightdlg.cpp:617 LiteEditor/manager.cpp:2850 +#: LiteEditor/manager.cpp:2901 LiteEditor/manager.cpp:2940 +#: LiteEditor/tasks_find_what_dlg.cpp:91 LiteEditor/mainbook.cpp:250 +#: LiteEditor/advanced_settings.cpp:160 LiteEditor/frame.cpp:2352 +#: LiteEditor/frame.cpp:2969 LiteEditor/edit_configuration.cpp:183 +msgid "Confirm" msgstr "" -#: CodeFormatter/codeformatterdlgbase.cpp:163 -msgid "UnPad Parenthesis" +#: Subversion2/subversion2_ui.cpp:134 +msgid "Source URL:" msgstr "" -#: CodeFormatter/codeformatterdlgbase.cpp:164 -msgid "One Line Keep Statement" +#: Subversion2/subversion2_ui.cpp:145 +msgid "Target URL:" msgstr "" -#: CodeFormatter/codeformatterdlgbase.cpp:165 -msgid "Fill Empty Lines" +#: Subversion2/subversion2_ui.cpp:156 +msgid "Comment:" msgstr "" -#: CodeFormatter/codeformatterdlgbase.cpp:166 -msgid "One Line Keep Blocks" +#: Subversion2/subversion2_ui.cpp:244 +msgid "&Login" msgstr "" -#: CodeFormatter/codeformatterdlgbase.cpp:179 -msgid "Select one or more formatting option from the list below" +#: Subversion2/subversion2_ui.cpp:286 MemCheck/memcheckui.cpp:505 +#: CodeFormatter/codeformatterdlgbase.cpp:41 +#: LiteEditor/editorsettingscommentsdoxygenpanelbase.cpp:37 +#: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:37 +#: LiteEditor/project_settings_dlg.cpp:125 +#: LiteEditor/project_settings_dlg.cpp:130 +#: LiteEditor/tags_options_base_dlg.cpp:446 LiteEditor/findinfiles_dlg.cpp:151 +#: LiteEditor/editorsettingsmiscbasepanel.cpp:35 +#: LiteEditor/buildsettingstabbase.cpp:50 +#: LiteEditor/syntaxhighlightbasedlg.cpp:82 LLDBDebugger/UI.cpp:358 +#: codelitephp/php-plugin/php_ui.cpp:404 codelitephp/php-plugin/php_ui.cpp:634 +#: WebTools/WebToolsBase.cpp:72 +msgid "General" msgstr "" -#: CodeFormatter/codeformatterdlgbase.cpp:189 -msgid "AStyle Only:" +#: Subversion2/subversion2_ui.cpp:298 +msgid "Executable:" msgstr "" -#: CodeFormatter/codeformatterdlgbase.cpp:196 -msgid "Custom user settings" +#: Subversion2/subversion2_ui.cpp:313 +msgid "Ignore the following file patterns:" msgstr "" -#: CodeFormatter/codeformatterdlgbase.cpp:253 -msgid "clang-format" +#: Subversion2/subversion2_ui.cpp:325 +msgid "When adding file(s) to project, add it to svn as well" msgstr "" -#: CodeFormatter/codeformatterdlgbase.cpp:277 -msgid "ClangFormat Options" +#: Subversion2/subversion2_ui.cpp:330 +msgid "Retag workspace after svn update, revert or applying patch" +msgstr "" + +#: Subversion2/subversion2_ui.cpp:335 +msgid "" +"When renaming a file in the project, rename it in the repository as well" msgstr "" -#: CodeFormatter/codeformatterdlgbase.cpp:280 -msgid "clang-format path" +#: Subversion2/subversion2_ui.cpp:340 +msgid "Use POSIX Locale" msgstr "" -#: CodeFormatter/codeformatterdlgbase.cpp:284 -msgid "Select the path to clang-format executable tool" +#: Subversion2/subversion2_ui.cpp:342 +msgid "" +"When checked, CodeLite will use the default \"C\" locale instead of the " +"current locale. This will ensure that svn command line output is parsed " +"properly." msgstr "" -#: CodeFormatter/codeformatterdlgbase.cpp:286 -msgid "Column Limit" +#: Subversion2/subversion2_ui.cpp:349 +msgid "External Diff" msgstr "" -#: CodeFormatter/codeformatterdlgbase.cpp:287 -msgid "" -"The column limit\n" -"A column limit of 0 means that there is no column limit.\n" -"In this case, clang-format will respect the input's line breaking decisions " -"within statements unless they contradict other rules" +#: Subversion2/subversion2_ui.cpp:354 +msgid "Use external diff tool" msgstr "" -#: CodeFormatter/codeformatterdlgbase.cpp:293 -msgid "Stroustrup" +#: Subversion2/subversion2_ui.cpp:366 +msgid "External Diff Viewer:" msgstr "" -#: CodeFormatter/codeformatterdlgbase.cpp:294 -msgid "Allman" +#: Subversion2/subversion2_ui.cpp:384 +msgid "SSH Client" msgstr "" -#: CodeFormatter/codeformatterdlgbase.cpp:301 -msgid "Brace breaking style" +#: Subversion2/subversion2_ui.cpp:396 SFTP/UI.cpp:347 +msgid "SSH Client:" msgstr "" -#: CodeFormatter/codeformatterdlgbase.cpp:302 -msgid "The brace breaking style to use." +#: Subversion2/subversion2_ui.cpp:411 +msgid "SSH Client arguments:" msgstr "" -#: CodeFormatter/codeformatterdlgbase.cpp:306 -msgid "LLVM" +#: Subversion2/subversion2_ui.cpp:426 +msgid "" +"The SSH client field should contain the command to be\n" +"used by the SVN command line client for establishing a secured channel.\n" +"\n" +"For example, on Windows it should contain something like:\n" +"/path/to/plink.exe -l -pw \n" +"\n" +"If you don't need SSH channel, leave this field empty" msgstr "" -#: CodeFormatter/codeformatterdlgbase.cpp:307 -msgid "Google" +#: Subversion2/subversion2_ui.cpp:433 +msgid "Integration" msgstr "" -#: CodeFormatter/codeformatterdlgbase.cpp:308 -msgid "WebKit" +#: Subversion2/subversion2_ui.cpp:438 +msgid "Auto Revision:" msgstr "" -#: CodeFormatter/codeformatterdlgbase.cpp:309 -msgid "Chromium" +#: Subversion2/subversion2_ui.cpp:442 +msgid "Add revision number as preprocessor definition in the compilation line" msgstr "" -#: CodeFormatter/codeformatterdlgbase.cpp:310 -msgid "Mozilla" +#: Subversion2/subversion2_ui.cpp:451 +msgid "Preprocessor name:" msgstr "" -#: CodeFormatter/codeformatterdlgbase.cpp:316 -msgid "Style" +#: Subversion2/subversion2_ui.cpp:536 Subversion2/wxcrafter.cpp:242 +msgid "Root URL:" msgstr "" -#: CodeFormatter/codeformatterdlgbase.cpp:317 -#: cppchecker/cppchecksettingsdlgbase.cpp:48 -msgid "Coding style" +#: Subversion2/subversion2_ui.cpp:550 +msgid "URL:" msgstr "" -#: CodeFormatter/codeformatterdlgbase.cpp:321 -msgid "Align Escaped Newlines Left" +#: Subversion2/subversion2_ui.cpp:564 +msgid "Revision:" msgstr "" -#: CodeFormatter/codeformatterdlgbase.cpp:322 -msgid "Align Trailing Comments" +#: Subversion2/subversion2_ui.cpp:578 LiteEditor/pluginmgrdlg.cpp:152 +msgid "Author:" msgstr "" -#: CodeFormatter/codeformatterdlgbase.cpp:323 -msgid "Allow All Parameters Of Declaration On Next Line" +#: Subversion2/subversion2_ui.cpp:592 +msgid "Date:" msgstr "" -#: CodeFormatter/codeformatterdlgbase.cpp:324 -msgid "Allow Short Functions On A Single Line" +#: Subversion2/subversion2_ui.cpp:650 +msgid "URL of repository:" msgstr "" -#: CodeFormatter/codeformatterdlgbase.cpp:325 -msgid "Allow Short Blocks On A Single Line" +#: Subversion2/subversion2_ui.cpp:664 +msgid "Checkout directory:" msgstr "" -#: CodeFormatter/codeformatterdlgbase.cpp:326 -msgid "Allow Short Loops On A Single Line" +#: Subversion2/subversion2_ui.cpp:736 +msgid "From revision:" msgstr "" -#: CodeFormatter/codeformatterdlgbase.cpp:327 -msgid "Allow Short If Statements On A SingleLine" +#: Subversion2/subversion2_ui.cpp:747 +msgid "To revision:" msgstr "" -#: CodeFormatter/codeformatterdlgbase.cpp:328 -msgid "Always Break Before Multiline Strings" +#: Subversion2/subversion2_ui.cpp:758 +msgid "Create compact log" msgstr "" -#: CodeFormatter/codeformatterdlgbase.cpp:329 -msgid "Always Break Template Declarations" +#: Subversion2/subversion2_ui.cpp:807 +msgid "From Revision:" msgstr "" -#: CodeFormatter/codeformatterdlgbase.cpp:330 -msgid "Bin Pack Parameters" +#: Subversion2/subversion2_ui.cpp:819 +msgid "To Revision:" msgstr "" -#: CodeFormatter/codeformatterdlgbase.cpp:331 -msgid "Break Before Binary Operators" +#: Subversion2/subversion2_ui.cpp:832 +msgid "Ignore whitespaces" msgstr "" -#: CodeFormatter/codeformatterdlgbase.cpp:332 -msgid "Break Before Ternary Operators" +#: Subversion2/subversion2_ui.cpp:916 +msgid "Title" msgstr "" -#: CodeFormatter/codeformatterdlgbase.cpp:333 -msgid "Break Constructor Initializers Before Comma" +#: Subversion2/subversion2_ui.cpp:931 +msgid "Bug URL Pattern:" msgstr "" -#: CodeFormatter/codeformatterdlgbase.cpp:334 -msgid "Indent Case Labels" +#: Subversion2/subversion2_ui.cpp:936 +msgid "" +"Enter here the URL for the bug details.\n" +"For example: http://mytracker.com?bug_id=$(BUGID)" msgstr "" -#: CodeFormatter/codeformatterdlgbase.cpp:335 -msgid "Indent Function DeclarationAfterType" +#: Subversion2/subversion2_ui.cpp:943 +msgid "Bug Message Pattern:" msgstr "" -#: CodeFormatter/codeformatterdlgbase.cpp:336 -msgid "Space Before Assignment Operators" +#: Subversion2/subversion2_ui.cpp:948 +msgid "" +"Enter here the message to add to the commit log. You may use the $(BUG_URL) " +"and $(BUGID) macros.\n" +"An example: \"Fixed: BUG#$(BUGID), See $(BUG_URL) for more details\"" msgstr "" -#: CodeFormatter/codeformatterdlgbase.cpp:337 -msgid "Space Before Parentheses" +#: Subversion2/subversion2_ui.cpp:955 +msgid "Feature URL Pattern:" msgstr "" -#: CodeFormatter/codeformatterdlgbase.cpp:338 -msgid "Spaces In Parentheses" +#: Subversion2/subversion2_ui.cpp:960 +msgid "" +"Enter here the URL for the feature request details.\n" +"For example: http://mytracker.com?fr_id=$(FRID)" msgstr "" -#: CodeFormatter/codeformatterdlgbase.cpp:339 -msgid "Pointer And Reference Aligned to the Right" +#: Subversion2/subversion2_ui.cpp:967 +msgid "Feature Message Pattern:" msgstr "" -#: CodeFormatter/codeformatterdlgbase.cpp:359 -msgid "Clang Formatting Options" +#: Subversion2/subversion2_ui.cpp:972 +msgid "" +"Enter here the message to add to the commit log. You may use the $(FR_URL) " +"and $(FRID) macros.\n" +"An example: \"Implements FR#$(FRID), See $(FR_URL) for more details\"" msgstr "" -#: CodeFormatter/codeformatterdlgbase.cpp:409 -#: CodeFormatter/codeformatterdlgbase.cpp:433 -msgid "PHP" +#: Subversion2/subversion2_ui.cpp:1034 +msgid "Do not change EOL, apply patch as it is" msgstr "" -#: CodeFormatter/codeformatterdlgbase.cpp:434 -msgid "PHP related settings" +#: Subversion2/subversion2_ui.cpp:1035 +msgid "Change to Windows style (CRLF)" msgstr "" -#: CodeFormatter/codeformatterdlgbase.cpp:438 -msgid "Break before class" +#: Subversion2/subversion2_ui.cpp:1036 +msgid "Change to UNIX style (LF)" msgstr "" -#: CodeFormatter/codeformatterdlgbase.cpp:439 -msgid "Break before function" +#: Subversion2/subversion2_ui.cpp:1037 +msgid "Change patch line endings (EOL):" msgstr "" -#: CodeFormatter/codeformatterdlgbase.cpp:440 -msgid "Break before 'while'" +#: Subversion2/subversion2_ui.cpp:1085 +msgid "Select path:" msgstr "" -#: CodeFormatter/codeformatterdlgbase.cpp:441 -msgid "Break before 'foreach'" +#: Subversion2/subversion2_ui.cpp:1093 +msgid "Recently used paths:" msgstr "" -#: CodeFormatter/codeformatterdlgbase.cpp:442 -msgid "'else' doesn't break" +#: Subversion2/svn_preferences_dialog.cpp:98 +msgid "Select Executable:" msgstr "" -#: CodeFormatter/codeformatterdlgbase.cpp:443 -msgid "Break after 'heredoc' statement" +#: Subversion2/wxcrafter.h:59 +msgid "Svn Commit" msgstr "" -#: CodeFormatter/codeformatterdlgbase.cpp:450 -msgid "PHPFormatter Options" +#: Subversion2/wxcrafter.h:82 +msgid "Sync Workspace to SVN" msgstr "" -#: CodeLite/PHPLookupTable.cpp:674 -msgid "PHP: parsed " +#: Subversion2/subversion2.cpp:137 Subversion2/subversion2.cpp:155 +msgid "Subversion plugin for codelite2.0 based on the svn command line tool" msgstr "" -#: CodeLite/TerminalEmulatorUIBase.cpp:71 -msgid "Send command to the process" +#: Subversion2/subversion2.cpp:268 +msgid "Subversion Options" msgstr "" -#: CodeLite/clCommandProcessor.cpp:30 -msgid "Executing: " +#: Subversion2/subversion2.cpp:278 +msgid "Sync Project Files..." msgstr "" -#: CodeLite/clCommandProcessor.cpp:40 -#, c-format -msgid "Failed to execute command: %s" +#: Subversion2/subversion2.cpp:307 +msgid "Display this path in the Subversion View" msgstr "" -#: CodeLite/cl_sftp.cpp:120 -msgid "Can't open file: " +#: Subversion2/subversion2.cpp:313 LiteEditor/memoryviewbase.cpp:132 +msgid "Update" msgstr "" -#: CodeLite/cl_sftp.cpp:128 -msgid "Can't write data to file: " +#: Subversion2/subversion2.cpp:321 +msgid "Lock file" msgstr "" -#: CodeLite/cl_sftp.cpp:146 -msgid "Failed to list directory: " +#: Subversion2/subversion2.cpp:324 +msgid "UnLock file" msgstr "" -#: CodeLite/cl_sftp.cpp:204 -msgid "Failed to open remote file: " +#: Subversion2/subversion2.cpp:332 SFTP/SFTPTreeView.cpp:364 SFTP/UI.cpp:287 +#: abbreviation/abbreviationssettingsbase.cpp:44 +#: LiteEditor/debuggersettingsbasedlg.cpp:718 +#: LiteEditor/compiler_pages.cpp:377 LiteEditor/compiler_pages.cpp:412 +#: LiteEditor/compiler_pages.cpp:449 LiteEditor/compiler_pages.cpp:480 +#: LiteEditor/compiler_pages.cpp:525 LiteEditor/tasksfindwhatdlgbase.cpp:59 +#: LiteEditor/project_settings_base_dlg.cpp:850 Gizmos/newclassbasedlg.cpp:186 +#: QmakePlugin/qmakesettingsdlg.cpp:106 menu.xrc:879 menu.xrc:922 +#: menu.xrc:1157 menu.xrc:1190 codelitephp/php-plugin/php_ui.cpp:1228 +#: codelitephp/php-plugin/php_workspace_view.cpp:194 +#: codelitephp/php-plugin/php_workspace_view.cpp:274 +msgid "Delete" msgstr "" -#: CodeLite/cl_sftp.cpp:222 -msgid "Failed to read remote file: " +#: Subversion2/subversion2.cpp:335 SFTP/SFTPTreeView.cpp:370 +#: SFTP/SFTPTreeView.cpp:486 LiteEditor/edit_configuration.cpp:143 +#: LiteEditor/edit_configuration.cpp:165 +#: LiteEditor/edit_workspace_conf_dlg.cpp:137 +#: codelitephp/php-plugin/php_workspace_view.cpp:192 +#: codelitephp/php-plugin/php_workspace_view.cpp:223 +msgid "Rename" msgstr "" -#: CodeLite/cl_sftp.cpp:239 -msgid "Failed to create directory: " +#: Subversion2/subversion2.cpp:340 +msgid "Revert changes" msgstr "" -#: CodeLite/cl_sftp.cpp:255 -msgid "Failed to rename path. " +#: Subversion2/subversion2.cpp:344 Subversion2/subversion2.cpp:1570 +msgid "Revert to revision" msgstr "" -#: CodeLite/cl_sftp.cpp:270 -msgid "Failed to remove directory: " +#: Subversion2/subversion2.cpp:348 +msgid "Create Diff" msgstr "" -#: CodeLite/cl_sftp.cpp:286 -msgid "Failed to unlink path: " +#: Subversion2/subversion2.cpp:354 +msgid "Blame ..." msgstr "" -#: CodeLite/cl_sftp.cpp:300 -msgid "Could not stat: " +#: Subversion2/subversion2.cpp:358 Subversion2/subversion_view.cpp:664 +msgid "Change Log..." msgstr "" -#: CodeLite/cl_ssh.cpp:160 CodeLite/cl_ssh.cpp:168 CodeLite/cl_ssh.cpp:179 -msgid "Accept server authentication?" +#: Subversion2/subversion2.cpp:364 Subversion2/subversion_view.cpp:638 +msgid "Ignore this file" msgstr "" -#: CodeLite/cl_ssh.cpp:160 -msgid "Host key for server changed: it is now:\n" +#: Subversion2/subversion2.cpp:365 Subversion2/subversion_view.cpp:639 +msgid "Ignore this file pattern" msgstr "" -#: CodeLite/cl_ssh.cpp:166 -msgid "" -"The host key for this server was not found but another type of key exists.\n" +#: Subversion2/subversion2.cpp:615 +msgid "Insert base revision to diff against:" msgstr "" - -#: CodeLite/cl_ssh.cpp:167 -msgid "" -"An attacker might change the default server key to confuse your client into " -"thinking the key does not exist\n" + +#: Subversion2/subversion2.cpp:616 +msgid "Diff against" msgstr "" -#: CodeLite/cl_ssh.cpp:173 -msgid "Could not find known host file.\n" +#: Subversion2/subversion2.cpp:1044 +msgid "Enter new URL:" msgstr "" -#: CodeLite/cl_ssh.cpp:174 +#: Subversion2/subversion2.cpp:1144 msgid "" -"If you accept the host key here, the file will be automatically created.\n" +"Would you like to remove the following files from SVN?\n" +"\n" msgstr "" -#: CodeLite/cl_ssh.cpp:178 -msgid "Public key hash: " +#: Subversion2/subversion2.cpp:1179 Subversion2/subversion_view.cpp:1347 +#: QmakePlugin/qmakesettingsdlg.cpp:130 +msgid "New name:" msgstr "" -#: CodeLite/cl_ssh.cpp:178 -msgid "The server is unknown. Do you trust the host key?\n" +#: Subversion2/subversion2.cpp:1179 Subversion2/subversion_view.cpp:1347 +msgid "Svn rename..." msgstr "" -#: CodeLite/cl_ssh.cpp:221 -msgid "Authentication error: " +#: Subversion2/subversion2.cpp:1372 +msgid " - application/octet-stream" msgstr "" -#: CodeLite/cl_ssh.cpp:278 -msgid "Public Key error: " +#: Subversion2/subversion2.cpp:1442 Subversion2/subversion2.cpp:1541 +#: LiteEditor/findresultstab.cpp:414 LiteEditor/findresultstab.cpp:415 +#: LiteEditor/findresultstab.cpp:416 +msgid "false" msgstr "" -#: CodeLite/clprogressdlgbase.cpp:44 -msgid "MyLabel" +#: Subversion2/subversion2.cpp:1539 LiteEditor/findresultstab.cpp:414 +#: LiteEditor/findresultstab.cpp:415 LiteEditor/findresultstab.cpp:416 +msgid "true" msgstr "" -#: CodeLite/refactorengine.cpp:348 -msgid "Updating cache..." +#: Subversion2/subversion2.cpp:1570 +msgid "Set the revision number:" msgstr "" -#: CodeLite/refactorengine.cpp:355 -msgid "Caching file: " +#: Subversion2/subversion2.cpp:1578 +msgid "Invalid revision number" msgstr "" -#: CodeLite/refactorengine.cpp:392 -msgid "Stage 2/2: Parsing matches..." +#: Subversion2/svnblameeditor.cpp:155 +msgid "Highlight this revision" msgstr "" -#: CodeLite/refactorengine.cpp:399 -msgid " in file: " +#: Subversion2/subversion2_ui.h:91 +msgid "Create Svn Tag" msgstr "" -#: CodeLite/refactorengine.cpp:399 -msgid "Parsing expression " +#: Subversion2/subversion2_ui.h:115 +msgid "Login" msgstr "" -#: CodeLiteDiff/codelitediff.cpp:108 -msgid "New Diff.." +#: Subversion2/subversion2_ui.h:191 +msgid "Subversion Preferences" msgstr "" -#: CodeLiteDiff/codelitediff.cpp:108 -msgid "Start new diff" +#: Subversion2/subversion2_ui.h:225 Subversion2/subversion_view.cpp:287 +msgid "Svn Info" msgstr "" -#: CodeLiteDiff/codelitediff.cpp:110 -msgid "Diff Tool" +#: Subversion2/subversion2_ui.h:255 Subversion2/subversion_view.cpp:273 +msgid "Svn Checkout" msgstr "" -#: CodeLiteDiff/codelitediff.cpp:133 -msgid "Diff" +#: Subversion2/subversion2_ui.h:281 +msgid "Svn Log" msgstr "" -#: ContinuousBuild/continousbuildbasepane.cpp:33 -msgid "Enable continuous build" +#: Subversion2/subversion2_ui.h:307 +msgid "Svn Diff..." msgstr "" -#: ContinuousBuild/continousbuildbasepane.cpp:40 -msgid "&Clear All" +#: Subversion2/subversion2_ui.h:358 +msgid "Svn Properties..." msgstr "" -#: ContinuousBuild/continousbuildbasepane.cpp:62 -msgid "Failed Files:" +#: Subversion2/subversion2_ui.h:377 +msgid "Select patch file:" msgstr "" -#: ContinuousBuild/continuousbuild.cpp:62 -#: ContinuousBuild/continuousbuild.cpp:83 -msgid "Continuous build plugin which compiles files on save and report errors" +#: Subversion2/subversion2_ui.h:403 +msgid "Select Local Repository:" msgstr "" -#: ContinuousBuild/continuousbuild.cpp:243 -msgid "Compiling" +#: Subversion2/subversion2_ui.h:419 +msgid "Blame" msgstr "" -#: Copyright/copyright.cpp:70 Copyright/copyright.cpp:87 -msgid "" -"Copyright Plugin - a small plugin that allows you to place copyright block " -"on top of your source files" +#: Subversion2/subversion_view.cpp:183 +msgid "Choose directory" msgstr "" -#: Copyright/copyright.cpp:106 Copyright/copyright.cpp:130 -#: Copyright/copyright.cpp:151 -msgid "Insert Copyright Block" +#: Subversion2/subversion_view.cpp:253 Subversion2/subversion_view.cpp:255 +#: LiteEditor/wxcrafter.cpp:574 LiteEditor/wxcrafter.cpp:1015 +msgid "Link Editor" msgstr "" -#: Copyright/copyright.cpp:109 Copyright/copyright.cpp:142 -msgid "Batch Insert of Copyright Block" +#: Subversion2/subversion_view.cpp:259 Subversion2/subversion_view.cpp:261 +msgid "Select a Directory to View..." msgstr "" -#: Copyright/copyright.cpp:116 -msgid "Copyrights" +#: Subversion2/subversion_view.cpp:266 Subversion2/subversion_view.cpp:268 +msgid "Stop current svn process" msgstr "" -#: Copyright/copyright.cpp:172 Copyright/copyright.cpp:395 -#, c-format -msgid "Template file name '%s', does not exist!" +#: Subversion2/subversion_view.cpp:270 +msgid "Svn Cleanup" msgstr "" -#: Copyright/copyright.cpp:179 Copyright/copyright.cpp:401 -#, c-format -msgid "Failed to read template file '%s'" +#: Subversion2/subversion_view.cpp:279 Subversion2/subversion_view.cpp:281 +msgid "Clear Svn Output Tab" msgstr "" -#: Copyright/copyright.cpp:185 -msgid "There is no active editor\n" +#: Subversion2/subversion_view.cpp:284 Subversion2/subversion_view.cpp:286 +msgid "Svn Settings..." msgstr "" -#: Copyright/copyright.cpp:196 -msgid "Template file contains text which is not comment, continue anyway?" +#: Subversion2/subversion_view.cpp:379 Subversion2/subversion_view.cpp:1276 +#: Subversion2/subversion_view.cpp:1284 Subversion2/subversion_view.h:190 +#: Subversion2/svn_select_local_repo_dlg.cpp:105 +msgid "" msgstr "" -#: Copyright/copyright.cpp:210 -msgid "File contains ignore string, skipping it" +#: Subversion2/subversion_view.cpp:607 Subversion2/subversion_view.cpp:630 +#: Subversion2/subversion_view.cpp:659 +msgid "Create Diff..." msgstr "" -#: Copyright/copyright.cpp:229 Copyright/copyright.cpp:287 -msgid "Batch insert requires a workspace to be opened" +#: Subversion2/subversion_view.cpp:612 +msgid "Open File..." msgstr "" -#: Copyright/copyright.cpp:342 -#, c-format -msgid "You are about to modify %u files. Continue?" +#: Subversion2/subversion_view.cpp:633 +msgid "Blame..." msgstr "" -#: Copyright/copyright.cpp:347 -msgid "Processing file ..." +#: Subversion2/subversion_view.cpp:652 Subversion2/subversion_view.cpp:818 +msgid "Create Tag" msgstr "" -#: Copyright/copyright.cpp:367 -msgid "File contains ignore string, skipping it: " +#: Subversion2/subversion_view.cpp:653 Subversion2/subversion_view.cpp:784 +msgid "Create Branch" msgstr "" -#: Copyright/copyright.cpp:374 -msgid "Inserting comment to file: " +#: Subversion2/subversion_view.cpp:656 +msgid "Switch URL..." msgstr "" -#: Copyright/copyright.cpp:412 -msgid "Template file contains text which is not comment, continue anyways?" +#: Subversion2/subversion_view.cpp:660 +msgid "Apply Patch..." msgstr "" -#: Copyright/copyrights_options_base_dlg.cpp:50 -msgid "Template File Path:" +#: Subversion2/subversion_view.cpp:661 +msgid "Apply Patch - Dry Run..." msgstr "" -#: Copyright/copyrights_options_base_dlg.cpp:55 -msgid "" -"Select the path to the file containing the template header to be prepended " -"to the source files" +#: Subversion2/subversion_view.cpp:667 +msgid "Properties..." msgstr "" -#: Copyright/copyrights_options_base_dlg.cpp:63 -msgid "File Masking:" +#: Subversion2/subversion_view.cpp:1479 Subversion2/subversion_view.cpp:1480 +msgid "Svn Diff: " msgstr "" -#: Copyright/copyrights_options_base_dlg.cpp:67 -msgid "*.hpp;*.h;*.hxx;*.inl;*.h++" +#: Subversion2/wxcrafter.cpp:36 +msgid "Feature Request ID:" msgstr "" -#: Copyright/copyrights_options_base_dlg.cpp:73 -msgid "Ignore String:" +#: Subversion2/wxcrafter.cpp:47 +msgid "Bug ID:" msgstr "" -#: Copyright/copyrights_options_base_dlg.cpp:78 -msgid "" -"Set here a string that once found in the source file CodeLite will not " -"prepend the Copyrights block to the file" +#: Subversion2/wxcrafter.cpp:80 +msgid "Modified Paths:" msgstr "" -#: Copyright/copyrights_options_base_dlg.cpp:85 -msgid "Backup modified files" +#: Subversion2/wxcrafter.cpp:186 +msgid "Recent commit messages:" msgstr "" -#: Copyright/copyrights_options_base_dlg.cpp:100 -msgid "&Save" +#: Subversion2/wxcrafter.cpp:249 +msgid "" msgstr "" -#: Copyright/copyrights_options_dlg.cpp:49 -msgid "Choose a file:" +#: Subversion2/wxcrafter.cpp:260 +msgid "Root Directory:" msgstr "" -#: Copyright/copyrights_proj_sel_base_dlg.cpp:44 -msgid "Select projects to insert copyrights block:" +#: Subversion2/wxcrafter.cpp:268 +msgid "Exclude these file extensions:" msgstr "" -#: Copyright/copyrights_proj_sel_base_dlg.cpp:63 -#: LiteEditor/batchbuildbasedlg.cpp:68 LiteEditor/filechecklistbase.cpp:50 -#: LiteEditor/plugindlgbase.cpp:72 LiteEditor/setters_getters.cpp:83 -#: UnitTestCPP/testclassbasedlg.cpp:112 -msgid "Check &All" +#: Subversion2/wxcrafter.cpp:281 +msgid "Exclude binary (application/octet-stream) files" msgstr "" -#: Copyright/copyrights_proj_sel_base_dlg.cpp:66 -msgid "&Un-Check All" +#: Subversion2/svn_command_handlers.cpp:123 +msgid "===== APPLYING PATCH - DRY RUN =====\n" msgstr "" -#: Copyright/copyrights_proj_sel_base_dlg.cpp:76 -msgid "&Insert" +#: Subversion2/svn_command_handlers.cpp:125 +msgid "===== OUTPUT END =====\n" msgstr "" -#: DatabaseExplorer/AdapterSelectDlg.cpp:42 -msgid "MySQL ERD" +#: Subversion2/svn_command_handlers.cpp:160 +msgid "Change Log" msgstr "" -#: DatabaseExplorer/AdapterSelectDlg.cpp:45 -#: DatabaseExplorer/AdapterSelectDlg.cpp:53 -#: DatabaseExplorer/AdapterSelectDlg.cpp:61 -#: DatabaseExplorer/DbSettingDialog.cpp:84 -#: DatabaseExplorer/DbSettingDialog.cpp:87 -#: DatabaseExplorer/DbSettingDialog.cpp:91 -#: DatabaseExplorer/DbSettingDialog.cpp:111 -#: DatabaseExplorer/DbSettingDialog.cpp:114 -#: DatabaseExplorer/DbSettingDialog.cpp:118 -#: DatabaseExplorer/DbSettingDialog.cpp:179 -#: DatabaseExplorer/DbSettingDialog.cpp:182 -#: DatabaseExplorer/DbSettingDialog.cpp:186 -#: DatabaseExplorer/DbViewerPanel.cpp:804 -#: DatabaseExplorer/DbViewerPanel.cpp:807 -#: DatabaseExplorer/DbViewerPanel.cpp:856 -#: DatabaseExplorer/DbViewerPanel.cpp:863 -#: DatabaseExplorer/ErdCommitWizard.cpp:466 -#: DatabaseExplorer/ErdCommitWizard.cpp:473 DatabaseExplorer/ErdPanel.cpp:388 -#: DatabaseExplorer/SqlCommandPanel.cpp:156 -#: DatabaseExplorer/SqlCommandPanel.cpp:281 -#: DatabaseExplorer/SqlCommandPanel.cpp:286 -msgid "DB Error" +#: Subversion2/svn_command_handlers.cpp:211 +msgid "Loading Svn blame dialog...\n" msgstr "" -#: DatabaseExplorer/AdapterSelectDlg.cpp:45 -msgid "MySQL ERD is not supported." +#: Subversion2/svncommand.cpp:109 +msgid "Authentication failed. Retrying...\n" msgstr "" -#: DatabaseExplorer/AdapterSelectDlg.cpp:50 -msgid "SQLite ERD" +#: Subversion2/svncommand.cpp:113 +msgid "Server certificate verification failed. Retrying...\n" msgstr "" -#: DatabaseExplorer/AdapterSelectDlg.cpp:53 -msgid "SQLite ERD is not supported." +#: Subversion2/svn_select_local_repo_dlg.cpp:73 +msgid "Remove path" msgstr "" -#: DatabaseExplorer/AdapterSelectDlg.cpp:58 -msgid "PostgreSQL ERD" +#: Subversion2/svn_select_local_repo_dlg.cpp:76 +msgid "Remove paths" msgstr "" -#: DatabaseExplorer/AdapterSelectDlg.cpp:61 -msgid "PostgreSQL ERD is not supported." +#: Subversion2/subversion_strings.h:29 +msgid "No Files to Display" msgstr "" -#: DatabaseExplorer/ClassGenerateDialog.cpp:126 -msgid "Virtual name cannot be empty" +#: Subversion2/subversion_strings.h:30 +msgid "Modified Files" msgstr "" -#: DatabaseExplorer/ClassGenerateDialog.cpp:146 -#: DatabaseExplorer/ClassGenerateDialog.cpp:153 -msgid "......... Generated successfully!\n" +#: Subversion2/subversion_strings.h:31 +msgid "Added Files" msgstr "" -#: DatabaseExplorer/ClassGenerateDialog.cpp:147 -#: DatabaseExplorer/ClassGenerateDialog.cpp:154 -msgid "......... Error!!!\n" +#: Subversion2/subversion_strings.h:33 +msgid "Conflicted Files" msgstr "" -#: DatabaseExplorer/ClassGenerateDialog.cpp:193 -#, c-format -msgid "Table %s has no primary key defined!\n" +#: Subversion2/subversion_strings.h:34 +msgid "Locked Files" msgstr "" -#: DatabaseExplorer/DbSettingDialog.cpp:50 LLDBDebugger/UI.cpp:218 -msgid "File name" +#: Subversion2/subversion_strings.h:35 +msgid "Unversioned Files" msgstr "" -#: DatabaseExplorer/DbSettingDialog.cpp:83 -#: DatabaseExplorer/DbSettingDialog.cpp:110 -#: DatabaseExplorer/DbSettingDialog.cpp:178 -#: DatabaseExplorer/DbViewerPanel.cpp:803 -#: DatabaseExplorer/DbViewerPanel.cpp:852 -#: DatabaseExplorer/ErdCommitWizard.cpp:350 -#: DatabaseExplorer/ErdCommitWizard.cpp:462 -#: DatabaseExplorer/SqlCommandPanel.cpp:280 -#, c-format -msgid "Error (%d): %s" +#: Subversion2/subversion_strings.h:36 +msgid "Svn" +msgstr "" + +#: Subversion2/subversion_strings.h:37 +msgid "" +"\n" +"MESSAGE: Another process is already running.\n" +"MESSAGE: Ignoring last command.\n" msgstr "" -#: DatabaseExplorer/DbSettingDialog.cpp:87 -#: DatabaseExplorer/DbSettingDialog.cpp:114 -#: DatabaseExplorer/DbSettingDialog.cpp:182 -#: DatabaseExplorer/DbViewerPanel.cpp:807 -#: DatabaseExplorer/DbViewerPanel.cpp:863 -#: DatabaseExplorer/ErdCommitWizard.cpp:473 -#: DatabaseExplorer/SqlCommandPanel.cpp:286 -msgid "Unknown error." +#: Subversion2/svn_sync_dialog.cpp:61 +msgid "Root URL: " msgstr "" -#: DatabaseExplorer/DbSettingDialog.cpp:91 -msgid "MySQL connection is not supported." +#: Subversion2/svn_sync_dialog.cpp:63 +msgid "" msgstr "" -#: DatabaseExplorer/DbSettingDialog.cpp:118 -msgid "SQLite connection is not supported." +#: Outline/outline_symbol_tree.cpp:42 +msgid "Include Files" msgstr "" -#: DatabaseExplorer/DbSettingDialog.cpp:186 -msgid "PostgreSQL connection is not supported." +#: Outline/outline_tab.cpp:195 +msgid "Open..." msgstr "" -#: DatabaseExplorer/DbViewerPanel.cpp:69 -msgid "Open connection" +#: Outline/outline_tab.cpp:200 menu.xrc:791 +msgid "Goto Declaration" msgstr "" -#: DatabaseExplorer/DbViewerPanel.cpp:73 DatabaseExplorer/DbViewerPanel.cpp:74 -msgid "Open new connection" +#: Outline/outline_tab.cpp:201 menu.xrc:794 +msgid "Goto Implementation" msgstr "" -#: DatabaseExplorer/DbViewerPanel.cpp:77 DatabaseExplorer/DbViewerPanel.cpp:85 -msgid "tool" +#: Outline/outline_tab.cpp:203 menu.xrc:811 +msgid "Find References..." msgstr "" -#: DatabaseExplorer/DbViewerPanel.cpp:81 DatabaseExplorer/DbViewerPanel.cpp:82 -msgid "Close selected connection" +#: Outline/outline_tab.cpp:205 +msgid "Rename Symbol..." msgstr "" -#: DatabaseExplorer/DbViewerPanel.cpp:89 Plugin/wxcrafter_plugin.cpp:118 -#: Subversion2/subversion_view.cpp:276 -msgid "Refresh View" +#: Outline/outline.cpp:68 +msgid "Show Current the Layout of the current file" msgstr "" -#: DatabaseExplorer/DbViewerPanel.cpp:93 -msgid "ERD" +#: Outline/outline.cpp:86 +msgid "Outline Plugin" msgstr "" -#: DatabaseExplorer/DbViewerPanel.cpp:97 -msgid "Open ERD View" +#: Outline/outline.cpp:95 Outline/outline.cpp:101 Outline/outline.cpp:137 +msgid "Outline" msgstr "" -#: DatabaseExplorer/DbViewerPanel.cpp:101 -#: DatabaseExplorer/DbViewerPanel.cpp:103 -msgid "Show ERD Thumbnail" +#: Outline/wxcrafter.cpp:30 +msgid "Search a symbol" msgstr "" -#: DatabaseExplorer/DbViewerPanel.cpp:409 -msgid "Open SQL command panel for the database" +#: Outline/wxcrafter.cpp:43 Outline/wxcrafter.cpp:49 Outline/wxcrafter.cpp:59 +#: codelitephp/php-plugin/php_ui.cpp:1619 +#: codelitephp/php-plugin/php_ui.cpp:1646 +msgid "Page" msgstr "" -#: DatabaseExplorer/DbViewerPanel.cpp:409 -#: DatabaseExplorer/DbViewerPanel.cpp:440 -#: DatabaseExplorer/DbViewerPanel.cpp:455 -msgid "Open SQL panel" +#: CodeLite/refactorengine.cpp:348 +msgid "Updating cache..." msgstr "" -#: DatabaseExplorer/DbViewerPanel.cpp:413 -#: DatabaseExplorer/DbViewerPanel.cpp:555 -msgid "Drop database" +#: CodeLite/refactorengine.cpp:355 +msgid "Caching file: " msgstr "" -#: DatabaseExplorer/DbViewerPanel.cpp:413 -msgid "Run SQL command for deleting Database" +#: CodeLite/refactorengine.cpp:392 +msgid "Stage 2/2: Parsing matches..." msgstr "" -#: DatabaseExplorer/DbViewerPanel.cpp:417 -msgid "Create ERD diagram from the database" +#: CodeLite/refactorengine.cpp:399 +msgid "Parsing expression " msgstr "" -#: DatabaseExplorer/DbViewerPanel.cpp:417 -msgid "Create ERD from DB" +#: CodeLite/refactorengine.cpp:399 +msgid " in file: " msgstr "" -#: DatabaseExplorer/DbViewerPanel.cpp:419 -msgid "Create C++ classes for the database" +#: CodeLite/TerminalEmulatorUIBase.cpp:71 +msgid "Send command to the process" msgstr "" -#: DatabaseExplorer/DbViewerPanel.cpp:419 -msgid "Create classes from DB" +#: CodeLite/cl_sftp.cpp:120 +msgid "Can't open file: " msgstr "" -#: DatabaseExplorer/DbViewerPanel.cpp:423 -msgid "Import database from file" +#: CodeLite/cl_sftp.cpp:128 +msgid "Can't write data to file: " msgstr "" -#: DatabaseExplorer/DbViewerPanel.cpp:424 -msgid "Run SQL commands stored in *.sql file" +#: CodeLite/cl_sftp.cpp:146 +msgid "Failed to list directory: " msgstr "" -#: DatabaseExplorer/DbViewerPanel.cpp:426 -msgid "Export database to file" +#: CodeLite/cl_sftp.cpp:204 +msgid "Failed to open remote file: " msgstr "" -#: DatabaseExplorer/DbViewerPanel.cpp:427 -msgid "Export database CREATE SQL statements into *.sql file" +#: CodeLite/cl_sftp.cpp:222 +msgid "Failed to read remote file: " msgstr "" -#: DatabaseExplorer/DbViewerPanel.cpp:431 -msgid "Dump data to file" +#: CodeLite/cl_sftp.cpp:239 +msgid "Failed to create directory: " msgstr "" -#: DatabaseExplorer/DbViewerPanel.cpp:432 -msgid "Dump data from database into .sql file" +#: CodeLite/cl_sftp.cpp:255 +msgid "Failed to rename path. " msgstr "" -#: DatabaseExplorer/DbViewerPanel.cpp:440 -msgid "Open SQL command panel for the table" +#: CodeLite/cl_sftp.cpp:270 +msgid "Failed to remove directory: " msgstr "" -#: DatabaseExplorer/DbViewerPanel.cpp:443 -#: DatabaseExplorer/DbViewerPanel.cpp:624 -msgid "Drop table" +#: CodeLite/cl_sftp.cpp:286 +msgid "Failed to unlink path: " msgstr "" -#: DatabaseExplorer/DbViewerPanel.cpp:443 -msgid "Run SQL command to delete the table" +#: CodeLite/cl_sftp.cpp:300 +msgid "Could not stat: " msgstr "" -#: DatabaseExplorer/DbViewerPanel.cpp:447 -msgid "Create ERD diagram from the table" +#: CodeLite/TerminalEmulatorUIBase.h:46 LiteEditor/options_dlg2.cpp:125 +msgid "Terminal" msgstr "" -#: DatabaseExplorer/DbViewerPanel.cpp:447 -msgid "Create ERD from Table" +#: CodeLite/PHPLookupTable.cpp:670 +msgid "PHP: parsed " msgstr "" -#: DatabaseExplorer/DbViewerPanel.cpp:449 -msgid "Create classes from Table" +#: CodeLite/clprogressdlgbase.cpp:44 +msgid "MyLabel" msgstr "" -#: DatabaseExplorer/DbViewerPanel.cpp:450 -msgid "Create C++ classes for the table" +#: CodeLite/clCommandProcessor.cpp:30 +msgid "Executing: " msgstr "" -#: DatabaseExplorer/DbViewerPanel.cpp:455 -msgid "Open SQL command panel for the view" +#: CodeLite/clCommandProcessor.cpp:40 +#, c-format +msgid "Failed to execute command: %s" msgstr "" -#: DatabaseExplorer/DbViewerPanel.cpp:458 -#: DatabaseExplorer/DbViewerPanel.cpp:643 -msgid "Drop view" +#: CodeLite/cl_ssh.cpp:160 +msgid "Host key for server changed: it is now:\n" msgstr "" -#: DatabaseExplorer/DbViewerPanel.cpp:458 -msgid "Run SQL command to delete the view" +#: CodeLite/cl_ssh.cpp:160 CodeLite/cl_ssh.cpp:168 CodeLite/cl_ssh.cpp:179 +msgid "Accept server authentication?" msgstr "" -#: DatabaseExplorer/DbViewerPanel.cpp:483 DatabaseExplorer/GUI.cpp:864 -#: LiteEditor/batchbuildbasedlg.cpp:97 LiteEditor/edit_configuration.cpp:100 -#: LiteEditor/findinfiles_dlg.cpp:245 LiteEditor/frame.cpp:1328 -#: LiteEditor/frame.cpp:1544 LiteEditor/frame.cpp:1681 -#: LiteEditor/frame.cpp:1830 LiteEditor/quickfindbar.cpp:92 -#: LiteEditor/wxcrafter.cpp:695 SnipWiz/editsnippetsbasedlg.cpp:134 -msgid "Close" +#: CodeLite/cl_ssh.cpp:166 +msgid "" +"The host key for this server was not found but another type of key exists.\n" msgstr "" -#: DatabaseExplorer/DbViewerPanel.cpp:483 -msgid "Close connection?" +#: CodeLite/cl_ssh.cpp:167 +msgid "" +"An attacker might change the default server key to confuse your client into " +"thinking the key does not exist\n" msgstr "" -#: DatabaseExplorer/DbViewerPanel.cpp:524 -msgid "Add database" +#: CodeLite/cl_ssh.cpp:173 +msgid "Could not find known host file.\n" msgstr "" -#: DatabaseExplorer/DbViewerPanel.cpp:524 -msgid "Database name" +#: CodeLite/cl_ssh.cpp:174 +msgid "" +"If you accept the host key here, the file will be automatically created.\n" msgstr "" -#: DatabaseExplorer/DbViewerPanel.cpp:534 -msgid "Database created successfully" +#: CodeLite/cl_ssh.cpp:178 +msgid "The server is unknown. Do you trust the host key?\n" msgstr "" -#: DatabaseExplorer/DbViewerPanel.cpp:540 -msgid "Can't create new db in this database engine!" +#: CodeLite/cl_ssh.cpp:178 +msgid "Public key hash: " msgstr "" -#: DatabaseExplorer/DbViewerPanel.cpp:540 Gizmos/newwxprojectdlg.cpp:103 -#: LiteEditor/advanced_settings.cpp:143 LiteEditor/cl_editor.cpp:1209 -#: LiteEditor/fileview.cpp:1036 LiteEditor/fileview.cpp:1040 -#: LiteEditor/manager.cpp:285 LiteEditor/manager.cpp:302 -#: LiteEditor/manager.cpp:495 LiteEditor/manager.cpp:589 -#: LiteEditor/manager.cpp:655 LiteEditor/manager.cpp:989 -#: LiteEditor/manager.cpp:1016 LiteEditor/manager.cpp:1168 -#: LiteEditor/manager.cpp:1319 LiteEditor/newworkspacedlg.cpp:107 -msgid "Error" +#: CodeLite/cl_ssh.cpp:221 +msgid "Authentication error: " msgstr "" -#: DatabaseExplorer/DbViewerPanel.cpp:554 -#, c-format -msgid "Remove database '%s'?" +#: CodeLite/cl_ssh.cpp:278 +msgid "Public Key error: " msgstr "" -#: DatabaseExplorer/DbViewerPanel.cpp:562 -msgid "Database dropped successfully" +#: codelite_terminal/MainFrame.cpp:108 +msgid "by Eran Ifrah" msgstr "" -#: DatabaseExplorer/DbViewerPanel.cpp:623 -#, c-format -msgid "Remove table '%s'?" +#: codelite_terminal/MainFrame.cpp:110 +msgid "A terminal emulator designed for codelite IDE" msgstr "" -#: DatabaseExplorer/DbViewerPanel.cpp:631 -msgid "Table dropped successfully" +#: codelite_terminal/MainFrame.cpp:450 LiteEditor/cl_editor.cpp:1198 +msgid "Save As" msgstr "" -#: DatabaseExplorer/DbViewerPanel.cpp:642 -#, c-format -msgid "Remove view '%s'?" +#: codelite_terminal/wxcrafter.h:69 codelite_terminal/terminal_options.cpp:6 +msgid "codelite-terminal" msgstr "" -#: DatabaseExplorer/DbViewerPanel.cpp:650 -msgid "View dropped successfully" +#: codelite_terminal/wxcrafter.cpp:57 +msgid "Clear view" msgstr "" -#: DatabaseExplorer/DbViewerPanel.cpp:710 -msgid "Import database from SQL file ..." +#: codelite_terminal/wxcrafter.cpp:59 +msgid "Send inferior process signal" msgstr "" -#: DatabaseExplorer/DbViewerPanel.cpp:728 -msgid "Dump data into file ..." +#: codelite_terminal/wxcrafter.cpp:232 +msgid "Text Colour:" msgstr "" -#: DatabaseExplorer/DbViewerPanel.cpp:736 -msgid "Data was saved to " +#: codelite_terminal/wxcrafter.cpp:240 +#: LiteEditor/syntaxhighlightbasedlg.cpp:255 +msgid "Background Colour:" msgstr "" -#: DatabaseExplorer/DbViewerPanel.cpp:746 -msgid "Export database..." +#: codelite_terminal/wxcrafter.cpp:248 +msgid "Font:" msgstr "" -#: DatabaseExplorer/DbViewerPanel.cpp:794 +#: Debugger/dbgcmd.cpp:411 #, c-format -msgid "The database has been exported to '%s'." +msgid "" +"Internal breakpoint was hit (id=%d), Applying user breakpoints and continuing" msgstr "" -#: DatabaseExplorer/DbViewerPanel.cpp:795 -msgid "wxDbExplorer" +#: Debugger/dbgcmd.cpp:489 +msgid "Program exited normally." msgstr "" -#: DatabaseExplorer/DbViewerPanel.cpp:800 -msgid "Sorry" +#: Debugger/dbgcmd.cpp:539 +#, c-format +msgid "ERROR: failed to place breakpoint: \"%s\"" msgstr "" -#: DatabaseExplorer/DbViewerPanel.cpp:800 -msgid "Sorry, requested feature isn't implemented yet. " +#: Debugger/dbgcmd.cpp:554 +msgid "Found the breakpoint ID!" msgstr "" -#: DatabaseExplorer/DbViewerPanel.cpp:841 -#: DatabaseExplorer/ErdCommitWizard.cpp:451 -msgid "Successful!" +#: Debugger/dbgcmd.cpp:576 +#, c-format +msgid "Successfully set breakpoint %ld at: " +msgstr "" + +#: Debugger/dbgcmd.cpp:579 +#, c-format +msgid "Successfully set conditional breakpoint %ld at: " +msgstr "" + +#: Debugger/dbgcmd.cpp:582 +#, c-format +msgid "Successfully set temporary breakpoint %ld at: " msgstr "" -#: DatabaseExplorer/DbViewerPanel.cpp:854 -#: DatabaseExplorer/ErdCommitWizard.cpp:464 -msgid "Fail!" +#: Debugger/dbgcmd.cpp:587 +#, c-format +msgid "Successfully set watchpoint %ld watching: " msgstr "" -#: DatabaseExplorer/ErdCommitWizard.cpp:75 -msgid "Wizard for creating db structure\n" +#: Debugger/dbgcmd.cpp:590 +#, c-format +msgid "Successfully set read watchpoint %ld watching: " msgstr "" -#: DatabaseExplorer/ErdCommitWizard.cpp:76 -msgid "" -"on ERD diagram base.\n" -"\n" +#: Debugger/dbgcmd.cpp:593 +#, c-format +msgid "Successfully set read/write watchpoint %ld watching: " msgstr "" -#: DatabaseExplorer/ErdCommitWizard.cpp:77 -msgid "All tables which really exist in\n" +#: Debugger/dbgcmd.cpp:601 +msgid "address " msgstr "" -#: DatabaseExplorer/ErdCommitWizard.cpp:78 -msgid "the database, will be deleted during\n" +#: Debugger/dbgcmd.cpp:807 +msgid "Successfully connected to debugger server" msgstr "" -#: DatabaseExplorer/ErdCommitWizard.cpp:79 -msgid "this process, but you can do a backup\n" +#: Debugger/dbgcmd.cpp:810 +msgid "Applying breakpoints..." msgstr "" -#: DatabaseExplorer/ErdCommitWizard.cpp:80 -msgid "in the second step." +#: Debugger/dbgcmd.cpp:815 +msgid "Applying breakpoints... done" msgstr "" -#: DatabaseExplorer/ErdCommitWizard.cpp:99 -msgid "Select target database:" +#: Debugger/dbgcmd.cpp:967 +#, c-format +msgid "Breakpoint %d condition cleared" msgstr "" -#: DatabaseExplorer/ErdCommitWizard.cpp:160 -msgid "The first time you have to select a target database!" +#: Debugger/dbgcmd.cpp:970 +#, c-format +msgid "Condition %s set for breakpoint %d" msgstr "" -#: DatabaseExplorer/ErdCommitWizard.cpp:174 -msgid "Backup data file" +#: Debugger/debuggergdb.cpp:571 +msgid "Can't interrupt debuggee process: I don't know its PID!" msgstr "" -#: DatabaseExplorer/ErdCommitWizard.cpp:175 -#: DatabaseExplorer/ErdCommitWizard.cpp:181 -#: DatabaseExplorer/ErdCommitWizard.cpp:399 LiteEditor/context_cpp.cpp:2701 -#: LiteEditor/syntaxhighlightdlg.cpp:577 -msgid "Select file" +#: Debugger/debuggergdb.cpp:710 +msgid "Failed to start debugger: permission denied" msgstr "" -#: DatabaseExplorer/ErdCommitWizard.cpp:175 -msgid "data.sql" +#: Tweaks/tweaks.cpp:54 Tweaks/tweaks.cpp:69 +msgid "Tweak codelite" msgstr "" -#: DatabaseExplorer/ErdCommitWizard.cpp:178 -msgid "Backup database structure" +#: Tweaks/tweaks.cpp:108 +msgid "Tweaks Plugin" msgstr "" -#: DatabaseExplorer/ErdCommitWizard.cpp:180 -msgid "Backup structure file" +#: Tweaks/wxcrafter.h:74 +msgid "Tweaks Setting" msgstr "" -#: DatabaseExplorer/ErdCommitWizard.cpp:181 -msgid "structure.sql" +#: Tweaks/TweaksSettingsDlg.cpp:164 +msgid "Icon changes require a workspace reload" msgstr "" -#: DatabaseExplorer/ErdCommitWizard.cpp:185 -msgid "Backup!" +#: Tweaks/TweaksSettingsDlg.cpp:165 LiteEditor/filechecklistbase.cpp:123 +msgid "Remember my answer" msgstr "" -#: DatabaseExplorer/ErdCommitWizard.cpp:199 -msgid "" -"Backing up database data before changing the structure is really good idea. " -"Do you want to continue without doing so?" +#: Tweaks/wxcrafter.cpp:29 +msgid "Enable Tweaks" msgstr "" -#: DatabaseExplorer/ErdCommitWizard.cpp:199 -msgid "Backup" +#: Tweaks/wxcrafter.cpp:40 +msgid "Editor Tabs" msgstr "" -#: DatabaseExplorer/ErdCommitWizard.cpp:222 -msgid "Data saved! " +#: Tweaks/wxcrafter.cpp:47 +msgid "Configure Editor Tab Colours" msgstr "" -#: DatabaseExplorer/ErdCommitWizard.cpp:268 -msgid "Structure saved!" +#: Tweaks/wxcrafter.cpp:47 +msgid "Customize your editor tab colours globally or per project" msgstr "" -#: DatabaseExplorer/ErdCommitWizard.cpp:294 -msgid "Write log:" +#: Tweaks/wxcrafter.cpp:61 +msgid "Global Tab Colours" msgstr "" -#: DatabaseExplorer/ErdCommitWizard.cpp:301 -msgid "Write !!" +#: Tweaks/wxcrafter.cpp:64 +msgid "Tab Label Background Colour" msgstr "" -#: DatabaseExplorer/ErdCommitWizard.cpp:302 -msgid "Show SQL" +#: Tweaks/wxcrafter.cpp:68 +msgid "Tab Label Text Colour" msgstr "" -#: DatabaseExplorer/ErdCommitWizard.cpp:341 -msgid "Data structure written successfully!" +#: Tweaks/wxcrafter.cpp:72 +msgid "Tab Colours Per Project" msgstr "" -#: DatabaseExplorer/ErdCommitWizard.cpp:357 -msgid "Unknown error!" +#: Tweaks/wxcrafter.cpp:79 +msgid "&Reset colours" msgstr "" -#: DatabaseExplorer/ErdCommitWizard.cpp:363 -msgid "Question" +#: Tweaks/wxcrafter.cpp:80 +msgid "Reset colours" msgstr "" -#: DatabaseExplorer/ErdCommitWizard.cpp:363 -msgid "Would you like to continue without writing the database structure?" +#: Tweaks/wxcrafter.cpp:85 +msgid "Images" msgstr "" -#: DatabaseExplorer/ErdCommitWizard.cpp:379 -msgid "Writing structure ended.\n" +#: Tweaks/wxcrafter.cpp:92 +msgid "Configure Project Images" msgstr "" -#: DatabaseExplorer/ErdCommitWizard.cpp:397 -msgid "File for data restore:" +#: Tweaks/wxcrafter.cpp:92 +msgid "Set a different image for a every project in the workspace" msgstr "" -#: DatabaseExplorer/ErdCommitWizard.cpp:403 -msgid "Restore log:" +#: Tweaks/wxcrafter.cpp:106 +msgid "Projects" msgstr "" -#: DatabaseExplorer/ErdCommitWizard.cpp:409 -msgid "Restore" +#: SFTP/UI.h:139 +msgid "Manage Bookmarks" msgstr "" -#: DatabaseExplorer/ErdPanel.cpp:164 LiteEditor/frame.cpp:1315 -#: LiteEditor/frame.cpp:1531 LiteEditor/frame.cpp:1668 -#: LiteEditor/frame.cpp:1817 MemCheck/memcheckui.cpp:294 -#: SFTP/SFTPTreeView.cpp:328 codelitephp/php-plugin/php_workspace_view.cpp:183 -msgid "Open" +#: SFTP/UI.h:158 +msgid "SFTP / SSH Settings" msgstr "" +#: SFTP/SFTPTreeView.cpp:354 MemCheck/memcheckui.cpp:295 +#: LiteEditor/frame.cpp:1299 LiteEditor/frame.cpp:1515 +#: LiteEditor/frame.cpp:1652 LiteEditor/frame.cpp:1801 +#: codelitephp/php-plugin/php_workspace_view.cpp:191 #: DatabaseExplorer/ErdPanel.cpp:164 -msgid "Open diagram" +msgid "Open" msgstr "" -#: DatabaseExplorer/ErdPanel.cpp:165 LiteEditor/frame.cpp:1321 -#: LiteEditor/frame.cpp:1537 LiteEditor/frame.cpp:1674 -#: LiteEditor/frame.cpp:1823 LiteEditor/wxcrafter.cpp:693 -#: Plugin/wxcrafter_plugin.cpp:137 codelite_terminal/wxcrafter.cpp:67 -msgid "Save" +#: SFTP/SFTPTreeView.cpp:358 +msgid "Create new directory..." msgstr "" -#: DatabaseExplorer/ErdPanel.cpp:165 -msgid "Save diagram" +#: SFTP/SFTPTreeView.cpp:359 +msgid "Create new file..." msgstr "" -#: DatabaseExplorer/ErdPanel.cpp:166 -msgid "Save SQL" +#: SFTP/SFTPTreeView.cpp:379 +msgid "Show 'Type' column" msgstr "" -#: DatabaseExplorer/ErdPanel.cpp:167 -msgid "Commit ERD" +#: SFTP/SFTPTreeView.cpp:380 +msgid "Show 'Size' column" msgstr "" -#: DatabaseExplorer/ErdPanel.cpp:168 -msgid "Export canvas to image" +#: SFTP/SFTPTreeView.cpp:401 +msgid "Are you sure you want to delete the selected items?" msgstr "" -#: DatabaseExplorer/ErdPanel.cpp:170 -msgid "Print" +#: SFTP/SFTPTreeView.cpp:438 +msgid "Enter the new directory name:" msgstr "" -#: DatabaseExplorer/ErdPanel.cpp:170 -msgid "Print diagram" +#: SFTP/SFTPTreeView.cpp:438 +msgid "New Directory" msgstr "" -#: DatabaseExplorer/ErdPanel.cpp:171 -msgid "Preview" +#: SFTP/SFTPTreeView.cpp:463 +msgid "Enter the new file name:" msgstr "" -#: DatabaseExplorer/ErdPanel.cpp:171 -msgid "Print preview" +#: SFTP/SFTPTreeView.cpp:463 LiteEditor/frame.cpp:1297 +#: LiteEditor/frame.cpp:1513 LiteEditor/frame.cpp:1650 +#: LiteEditor/frame.cpp:1799 codelitephp/php-plugin/php_ui.h:154 +#: codelitephp/php-plugin/php_workspace_view.cpp:512 +msgid "New File" msgstr "" -#: DatabaseExplorer/ErdPanel.cpp:173 DatabaseExplorer/FrameCanvas.cpp:173 -#: LiteEditor/frame.cpp:1331 LiteEditor/frame.cpp:1547 -#: LiteEditor/frame.cpp:1684 LiteEditor/frame.cpp:1833 -#: LiteEditor/wxcrafter.cpp:103 -#: codelitephp/php-plugin/php_editor_context_menu.cpp:132 -msgid "Copy" +#: SFTP/SFTPTreeView.cpp:486 LiteEditor/manage_perspective_dlg.cpp:66 +msgid "Enter new name:" msgstr "" -#: DatabaseExplorer/ErdPanel.cpp:173 -msgid "Copy item" +#: SFTP/SFTPTreeView.cpp:598 +msgid "Manage bookmarks..." msgstr "" -#: DatabaseExplorer/ErdPanel.cpp:174 DatabaseExplorer/FrameCanvas.cpp:174 -#: LiteEditor/frame.cpp:1330 LiteEditor/frame.cpp:1546 -#: LiteEditor/frame.cpp:1683 LiteEditor/frame.cpp:1832 -#: codelitephp/php-plugin/php_editor_context_menu.cpp:137 -msgid "Cut" +#: SFTP/SFTPTreeView.cpp:676 SFTP/UI.cpp:145 +msgid "Disconnected. Click to connect" msgstr "" -#: DatabaseExplorer/ErdPanel.cpp:174 -msgid "Cut item" +#: SFTP/SFTPTreeView.cpp:681 +msgid "Connected. Click to disconnect" msgstr "" -#: DatabaseExplorer/ErdPanel.cpp:175 DatabaseExplorer/FrameCanvas.cpp:175 -#: LiteEditor/frame.cpp:1332 LiteEditor/frame.cpp:1548 -#: LiteEditor/frame.cpp:1685 LiteEditor/frame.cpp:1834 -#: LiteEditor/wxcrafter.cpp:105 -#: codelitephp/php-plugin/php_editor_context_menu.cpp:133 -msgid "Paste" +#: SFTP/SFTPTreeView.cpp:704 SFTP/sftp.cpp:123 SFTP/sftp.cpp:126 +#: SFTP/sftp.cpp:161 SFTP/sftp.cpp:326 SFTP/sftp.cpp:386 +msgid "SFTP" msgstr "" -#: DatabaseExplorer/ErdPanel.cpp:175 -msgid "Paste item" +#: SFTP/SFTPTreeView.cpp:706 SFTP/SFTPTreeView.cpp:709 +msgid "Connecting to: " msgstr "" -#: DatabaseExplorer/ErdPanel.cpp:177 LiteEditor/frame.cpp:1334 -#: LiteEditor/frame.cpp:1551 LiteEditor/frame.cpp:1688 -#: LiteEditor/frame.cpp:1836 LiteEditor/wxcrafter.cpp:701 -#: codelitephp/php-plugin/php_editor_context_menu.cpp:134 -msgid "Undo" +#: SFTP/SFTPTreeView.cpp:706 +msgid "" +"\n" +"(this may take a few seconds)" msgstr "" -#: DatabaseExplorer/ErdPanel.cpp:178 LiteEditor/frame.cpp:1336 -#: LiteEditor/frame.cpp:1553 LiteEditor/frame.cpp:1690 -#: LiteEditor/frame.cpp:1838 LiteEditor/wxcrafter.cpp:703 -#: codelitephp/php-plugin/php_editor_context_menu.cpp:135 -msgid "Redo" +#: SFTP/SFTPTreeView.cpp:727 +msgid "Connected!" msgstr "" -#: DatabaseExplorer/ErdPanel.cpp:180 -msgid "Design tool" +#: SFTP/SFTPTreeView.cpp:728 +msgid "Authenticating server..." msgstr "" -#: DatabaseExplorer/ErdPanel.cpp:180 -msgid "Tool" +#: SFTP/SFTPTreeView.cpp:734 +msgid "Accepting server authentication server..." msgstr "" -#: DatabaseExplorer/ErdPanel.cpp:181 -msgid "DBETable" +#: SFTP/SFTPTreeView.cpp:740 +msgid "Server authenticated" msgstr "" -#: DatabaseExplorer/ErdPanel.cpp:181 -msgid "Database table" +#: SFTP/SFTPTreeView.cpp:745 +msgid "Logging..." msgstr "" -#: DatabaseExplorer/ErdPanel.cpp:182 -msgid "Database view" +#: SFTP/SFTPTreeView.cpp:751 +msgid "Done!" msgstr "" -#: DatabaseExplorer/ErdPanel.cpp:182 Plugin/wxcrafter_plugin.cpp:140 -#: codelitephp/php-plugin/php_ui.cpp:732 -msgid "View" +#: SFTP/SFTPTreeView.cpp:754 +msgid "Fetching directory list..." msgstr "" -#: DatabaseExplorer/ErdPanel.cpp:183 -msgid "Constraint 1:N" +#: SFTP/SFTPTreeView.cpp:758 CodeFormatter/codeformatter.cpp:251 +#: cscope/cscopedbbuilderthread.cpp:62 LiteEditor/manager.cpp:3501 +#: LiteEditor/frame.cpp:5362 cppchecker/cppcheckreportpage.cpp:201 +msgid "Done" msgstr "" -#: DatabaseExplorer/ErdPanel.cpp:183 -msgid "Foreign key connection" +#: SFTP/UI.cpp:33 +msgid "Time" msgstr "" -#: DatabaseExplorer/ErdPanel.cpp:185 -msgid "Align into circle" +#: SFTP/UI.cpp:34 +msgid "Status" msgstr "" -#: DatabaseExplorer/ErdPanel.cpp:186 -msgid "Align into mesh" +#: SFTP/UI.cpp:36 LiteEditor/new_build_tab.cpp:295 +msgid "Message" msgstr "" -#: DatabaseExplorer/ErdPanel.cpp:187 -msgid "Align into vertical tree" +#: SFTP/UI.cpp:143 +msgid "Open account manager..." msgstr "" -#: DatabaseExplorer/ErdPanel.cpp:188 -msgid "Align into horizontal tree" +#: SFTP/UI.cpp:147 LiteEditor/cl_editor.cpp:3095 +msgid "Add Bookmark" msgstr "" -#: DatabaseExplorer/ErdPanel.cpp:191 -msgid "Zoom to all" +#: SFTP/UI.cpp:147 +msgid "Select a folder from the tree view and add it as a bookmark" msgstr "" -#: DatabaseExplorer/ErdPanel.cpp:219 -msgid "Load canvas from file..." +#: SFTP/UI.cpp:153 +msgid "Open Terminal" msgstr "" -#: DatabaseExplorer/ErdPanel.cpp:228 -msgid "Save canvas to file..." +#: SFTP/UI.cpp:168 +msgid "Go to:" msgstr "" -#: DatabaseExplorer/ErdPanel.cpp:237 -msgid "Save SQL create query..." +#: SFTP/UI.cpp:173 +msgid "Type a path and hit ENTER" msgstr "" -#: DatabaseExplorer/ErdPanel.cpp:251 DatabaseExplorer/ErdPanel.cpp:403 -#: DatabaseExplorer/databaseexplorer.cpp:93 -#: DatabaseExplorer/databaseexplorer.cpp:239 -msgid "DatabaseExplorer" +#: SFTP/sftp.cpp:81 SFTP/sftp.cpp:91 +msgid "SFTP plugin for codelite IDE" msgstr "" -#: DatabaseExplorer/ErdPanel.cpp:251 -#, c-format -msgid "The SQL script has been saved to '%s'." +#: SFTP/sftp.cpp:154 SFTP/sftp.cpp:155 +msgid "Open SSH Account Manager" msgstr "" -#: DatabaseExplorer/ErdPanel.cpp:388 -msgid "ERD type doesn't match current database adapter." +#: SFTP/sftp.cpp:172 +msgid "&Setup..." msgstr "" -#: DatabaseExplorer/ErdPanel.cpp:403 -#, c-format -msgid "The chart has been saved to '%s'." +#: SFTP/sftp.cpp:176 +msgid "&Disable" msgstr "" -#: DatabaseExplorer/ErdTable.cpp:308 -msgid "New table" +#: SFTP/sftp.cpp:181 +msgid "Workspace Mirroring" msgstr "" -#: DatabaseExplorer/FrameCanvas.cpp:139 -msgid "New view" +#: SFTP/sftp.cpp:256 +msgid "Select the remote workspace" msgstr "" -#: DatabaseExplorer/FrameCanvas.cpp:178 -msgid "Add new ERD table" +#: SFTP/sftp.cpp:324 SFTP/sftp.cpp:384 +msgid "Failed to synchronize file '" msgstr "" -#: DatabaseExplorer/FrameCanvas.cpp:179 -msgid "Add new ERD view" +#: SFTP/sftp.cpp:324 SFTP/sftp.cpp:384 +msgid "with remote server\n" msgstr "" -#: DatabaseExplorer/FrameCanvas.cpp:182 -msgid "Copy diagram SQL to the clipboard" +#: SFTP/sftp.cpp:325 SFTP/sftp.cpp:385 +msgid "Could not locate account: " msgstr "" -#: DatabaseExplorer/FrameCanvas.cpp:192 -msgid "Create foreign key for table" +#: SFTP/sftp_worker_thread.cpp:87 +msgid "Uploading file: " msgstr "" -#: DatabaseExplorer/FrameCanvas.cpp:193 -msgid "Create view for table" +#: SFTP/sftp_worker_thread.cpp:94 +msgid "Downloading file: " msgstr "" -#: DatabaseExplorer/FrameCanvas.cpp:195 -msgid "Copy table SQL to the clipboard" +#: SFTP/sftp_worker_thread.cpp:143 +msgid "Connecting to " msgstr "" -#: DatabaseExplorer/FrameCanvas.cpp:214 -msgid "newcol" +#: abbreviation/abbreviation.cpp:59 abbreviation/abbreviation.cpp:71 +msgid "Abbreviation plugin" msgstr "" -#: DatabaseExplorer/FrameCanvas.cpp:220 -msgid "Add drop table statement?" +#: abbreviation/abbreviation.cpp:93 +msgid "Insert Expansion" msgstr "" -#: DatabaseExplorer/FrameCanvas.cpp:220 DatabaseExplorer/FrameCanvas.cpp:227 -#: DatabaseExplorer/FrameCanvas.cpp:301 -msgid "SQL export" +#: abbreviation/abbreviation.cpp:225 +msgid "Plugins::Abbreviations::Show abbrevations completion box" msgstr "" -#: DatabaseExplorer/FrameCanvas.cpp:227 DatabaseExplorer/FrameCanvas.cpp:301 -msgid "SQL command has been copied to the clipboard." +#: abbreviation/abbreviationssettingsdlg.cpp:78 +msgid "Abbreviation Name:" msgstr "" -#: DatabaseExplorer/GUI.cpp:29 -msgid "Output file:" +#: abbreviation/abbreviationssettingsdlg.cpp:78 +msgid "New abbreviation..." msgstr "" -#: DatabaseExplorer/GUI.cpp:45 LiteEditor/breakpointdlgbase.cpp:212 -#: LiteEditor/debugcoredumpbase.cpp:62 LiteEditor/debugcoredumpbase.cpp:74 -#: LiteEditor/debugcoredumpbase.cpp:84 -#: LiteEditor/debuggersettingsbasedlg.cpp:299 -#: LiteEditor/new_item_base_dlg.cpp:82 LiteEditor/quickdebugbase.cpp:54 -#: LiteEditor/quickdebugbase.cpp:71 Subversion2/subversion2_ui.cpp:309 -#: Subversion2/subversion2_ui.cpp:377 Subversion2/subversion2_ui.cpp:407 -#: Subversion2/subversion2_ui.cpp:675 codelitephp/php-plugin/php_ui.cpp:166 -#: codelitephp/php-plugin/php_ui.cpp:405 codelitephp/php-plugin/php_ui.cpp:443 -#: codelitephp/php-plugin/php_ui.cpp:713 codelitephp/php-plugin/php_ui.cpp:799 -#: codelitephp/php-plugin/php_ui.cpp:1787 -msgid "Browse" +#: abbreviation/abbreviationssettingsdlg.cpp:81 +msgid "An abbreviation with this name already exists!" msgstr "" -#: DatabaseExplorer/GUI.cpp:49 -msgid "Scale" +#: abbreviation/abbreviationssettingsdlg.cpp:103 +#, c-format +msgid "Are you sure you want to delete '%s'" msgstr "" -#: DatabaseExplorer/GUI.cpp:53 -msgid "Current canvas scale" +#: abbreviation/abbreviationssettingsdlg.cpp:252 +msgid "" +"This folder already contains a file named 'abbreviations.conf' - would you " +"like to overrite it?" msgstr "" -#: DatabaseExplorer/GUI.cpp:62 -msgid "Custom scale" +#: abbreviation/abbreviationssettingsdlg.cpp:256 +msgid "Abbreviations were exported to '" msgstr "" -#: DatabaseExplorer/GUI.cpp:75 -msgid "Export canvas background" +#: abbreviation/abbreviationssettingsdlg.cpp:256 +#: LiteEditor/setters_getters_dlg.cpp:454 LiteEditor/FileExplorerTab.cpp:252 +msgid "'" msgstr "" -#: DatabaseExplorer/GUI.cpp:159 -msgid "Load..." +#: abbreviation/abbreviationssettingsdlg.cpp:269 +msgid "The file does not seem to contain a valid abbreviations entries" msgstr "" -#: DatabaseExplorer/GUI.cpp:161 -msgid "Save..." +#: abbreviation/abbreviationssettingsdlg.cpp:283 +msgid "Abbreviations imported successfully!" msgstr "" -#: DatabaseExplorer/GUI.cpp:163 -msgid "Execute SQL" +#: abbreviation/abbreviationssettingsbase.cpp:31 +msgid "" +"You can use the '|' (pipe) character to set the caret position\n" +"You may also use any of the known macros to CodeLite (click the 'Help' " +"button)" msgstr "" -#: DatabaseExplorer/GUI.cpp:167 -msgid "Insert template" +#: abbreviation/abbreviationssettingsbase.cpp:42 +msgid "Create a new abbreviation" msgstr "" -#: DatabaseExplorer/GUI.cpp:173 -msgid "SQL History" +#: abbreviation/abbreviationssettingsbase.cpp:44 +msgid "Delete the currently selected abbreviation" msgstr "" -#: DatabaseExplorer/GUI.cpp:250 -msgid "Result:" +#: abbreviation/abbreviationssettingsbase.cpp:48 +msgid "Import abbreviations from the file system..." msgstr "" -#: DatabaseExplorer/GUI.cpp:321 DatabaseExplorer/GUI.cpp:443 -msgid "MySql" +#: abbreviation/abbreviationssettingsbase.cpp:50 +#: LiteEditor/syntaxhighlightbasedlg.cpp:46 +msgid "Export" msgstr "" -#: DatabaseExplorer/GUI.cpp:325 -msgid "SQLite" +#: abbreviation/abbreviationssettingsbase.cpp:50 +msgid "Export abbreviations to the file system..." msgstr "" -#: DatabaseExplorer/GUI.cpp:331 DatabaseExplorer/GUI.cpp:519 -msgid "PostgreSQL" +#: abbreviation/abbreviationssettingsbase.cpp:138 +msgid "Immediate Insert" msgstr "" -#: DatabaseExplorer/GUI.cpp:417 -msgid "Sqlite" +#: abbreviation/abbreviationssettingsbase.cpp:152 +#: abbreviation/abbreviationssettingsbase.cpp:154 +msgid "Save changes" msgstr "" -#: DatabaseExplorer/GUI.cpp:430 -msgid "Database file:" +#: abbreviation/abbreviationssettingsbase.cpp:161 +#: abbreviation/abbreviationssettingsbase.cpp:162 +msgid "Show available macros" msgstr "" -#: DatabaseExplorer/GUI.cpp:459 -msgid "Connection name:" +#: abbreviation/abbreviationssettingsbase.h:82 +msgid "Abbreviations Settings..." msgstr "" -#: DatabaseExplorer/GUI.cpp:464 -msgid "Name for this connection" +#: MemCheck/memcheck.cpp:44 +msgid "" +"MemCheck plugin detects memory leaks. Uses Valgrind (memcheck tool) as " +"backend." msgstr "" -#: DatabaseExplorer/GUI.cpp:472 DatabaseExplorer/GUI.cpp:543 -msgid "Server:" +#: MemCheck/memcheck.cpp:62 +msgid "Detects memory management problems. Uses Valgrind - memcheck skin." msgstr "" -#: DatabaseExplorer/GUI.cpp:473 DatabaseExplorer/GUI.cpp:478 -msgid "Host name / IP of the server hosting the MySQL server" +#: MemCheck/memcheck.cpp:171 MemCheck/memcheck.cpp:173 +#: MemCheck/memcheck.cpp:189 MemCheck/memcheck.cpp:191 +msgid "Run MemCheck" msgstr "" -#: DatabaseExplorer/GUI.cpp:485 DatabaseExplorer/GUI.cpp:565 -msgid "User name:" +#: MemCheck/memcheck.cpp:176 MemCheck/memcheck.cpp:178 +#: MemCheck/memcheck.cpp:194 MemCheck/memcheck.cpp:196 +msgid "Stop Check" msgstr "" -#: DatabaseExplorer/GUI.cpp:490 -msgid "Database user name" +#: MemCheck/memcheck.cpp:182 MemCheck/memcheck.cpp:184 +#: MemCheck/memcheck.cpp:200 MemCheck/memcheck.cpp:202 +#: MemCheck/memcheckui.cpp:176 +msgid "Load MemCheck log from file." msgstr "" -#: DatabaseExplorer/GUI.cpp:497 DatabaseExplorer/GUI.cpp:576 -#: Plugin/sftp_ui.cpp:201 Subversion2/subversion2_ui.cpp:229 -msgid "Password:" +#: MemCheck/memcheck.cpp:500 +msgid "Launching MemCheck...\n" msgstr "" -#: DatabaseExplorer/GUI.cpp:502 -msgid "Database password" +#: MemCheck/memcheck.cpp:502 +msgid "Working directory is set to: " msgstr "" -#: DatabaseExplorer/GUI.cpp:531 ExternalTools/newtoolbase.cpp:47 -#: Gizmos/newwxprojectbasedlg.cpp:74 -#: LiteEditor/debuggersettingsbasedlg.cpp:214 -#: LiteEditor/new_item_base_dlg.cpp:63 LiteEditor/new_virtual_folder.cpp:60 -#: abbreviation/abbreviationssettingsbase.cpp:76 -#: codelitephp/php-plugin/new_class.cpp:56 -#: codelitephp/php-plugin/php_ui.cpp:140 codelitephp/php-plugin/php_ui.cpp:245 -msgid "Name:" +#: MemCheck/memcheck.cpp:568 +msgid "" +"\n" +"-- MemCheck process completed\n" msgstr "" -#: DatabaseExplorer/GUI.cpp:554 LiteEditor/project_settings_base_dlg.cpp:502 -#: Plugin/sftp_ui.cpp:177 codelitephp/php-plugin/php_ui.cpp:480 -msgid "Port:" +#: MemCheck/memcheckoutputview.cpp:28 MemCheck/memcheckui.cpp:222 +#: MemCheck/memcheckui.cpp:358 +msgid "Label" msgstr "" -#: DatabaseExplorer/GUI.cpp:587 -msgid "Default database:" +#: MemCheck/memcheckoutputview.cpp:396 MemCheck/memcheckui.cpp:220 +msgid "Current" msgstr "" -#: DatabaseExplorer/GUI.cpp:721 -msgid "Referencing table:" +#: MemCheck/memcheckoutputview.cpp:486 MemCheck/memcheckoutputview.cpp:507 +#: MemCheck/memcheckoutputview.cpp:674 MemCheck/memcheckoutputview.cpp:766 +#: MemCheck/memcheckui.cpp:221 cppchecker/cppchecksettingsdlgbase.cpp:148 +msgid "Suppress" msgstr "" -#: DatabaseExplorer/GUI.cpp:732 DatabaseExplorer/GUI.cpp:789 -msgid "Column:" +#: MemCheck/memcheckui.cpp:174 +msgid "Run check" msgstr "" -#: DatabaseExplorer/GUI.cpp:748 -msgid "Relation" +#: MemCheck/memcheckui.cpp:178 +msgid "Stop Process" msgstr "" -#: DatabaseExplorer/GUI.cpp:758 -msgid "OnDelete" +#: MemCheck/memcheckui.cpp:182 +msgid "Expand all" msgstr "" -#: DatabaseExplorer/GUI.cpp:768 -msgid "OnUpdate" +#: MemCheck/memcheckui.cpp:184 +msgid "Jump to next error" msgstr "" -#: DatabaseExplorer/GUI.cpp:778 -msgid "Referenced table:" +#: MemCheck/memcheckui.cpp:186 +msgid "Jump to previous error" msgstr "" -#: DatabaseExplorer/GUI.cpp:851 LiteEditor/editorsettingsmiscbasepanel.cpp:283 -#: git/GitConsole.cpp:223 -msgid "Log" +#: MemCheck/memcheckui.cpp:194 +msgid "Open plain output in editor window." msgstr "" -#: DatabaseExplorer/GUI.cpp:912 -msgid "View name:" +#: MemCheck/memcheckui.cpp:207 +msgid "Errors" msgstr "" -#: DatabaseExplorer/GUI.cpp:1010 LiteEditor/commentpagebase.cpp:99 -msgid "Class prefix:" +#: MemCheck/memcheckui.cpp:224 cscope/CscopeTabBase.cpp:46 +#: LiteEditor/threadlistpanel.cpp:54 +#: LiteEditor/editoroptionsgeneralrightmarginpanelbase.cpp:49 +#: LiteEditor/symbols_dialog.cpp:45 LiteEditor/breakpointslistctrl.h:45 +#: LiteEditor/listctrlpanelbase.cpp:61 LLDBDebugger/UI.cpp:36 +#: LLDBDebugger/UI.cpp:161 LLDBDebugger/UI.cpp:560 menu.xrc:110 +#: codelitephp/php-plugin/php_ui.cpp:1192 +#: codelitephp/php-plugin/php_ui.cpp:1218 UnitTestCPP/unittestspage.cpp:39 +msgid "Line" msgstr "" -#: DatabaseExplorer/GUI.cpp:1021 -msgid "Class postfix:" +#: MemCheck/memcheckui.cpp:225 +msgid "Object" msgstr "" -#: DatabaseExplorer/GUI.cpp:1032 -msgid "Folder:" +#: MemCheck/memcheckui.cpp:231 +msgid "First result page." msgstr "" -#: DatabaseExplorer/GUI.cpp:1040 -msgid "Virtual folder:" +#: MemCheck/memcheckui.cpp:246 +msgid "of" msgstr "" -#: DatabaseExplorer/GUI.cpp:1062 SnipWiz/templateclassbasedlg.cpp:64 -msgid "Template:" +#: MemCheck/memcheckui.cpp:250 +msgid "0" msgstr "" -#: DatabaseExplorer/GUI.cpp:1076 -msgid "Log:" +#: MemCheck/memcheckui.cpp:265 +msgid ".supp" msgstr "" -#: DatabaseExplorer/GUI.cpp:1094 SnipWiz/templateclassbasedlg.cpp:35 -#: wxformbuilder/wxfbitembasedlg.cpp:91 -msgid "Generate" +#: MemCheck/memcheckui.cpp:285 +msgid ".supp:" msgstr "" -#: DatabaseExplorer/GUI.cpp:1221 -msgid "Table name:" +#: MemCheck/memcheckui.cpp:291 +msgid "Choose suppression file to use." msgstr "" -#: DatabaseExplorer/GUI.cpp:1243 -msgid "Columns:" +#: MemCheck/memcheckui.cpp:310 +msgid "Clear filter" msgstr "" -#: DatabaseExplorer/GUI.cpp:1252 -msgid "Add column" +#: MemCheck/memcheckui.cpp:318 +msgid "Invert" msgstr "" -#: DatabaseExplorer/GUI.cpp:1252 -msgid "Add new column" +#: MemCheck/memcheckui.cpp:323 CodeFormatter/codeformatterdlgbase.cpp:136 +msgid "Case" msgstr "" -#: DatabaseExplorer/GUI.cpp:1254 -msgid "Remove column" +#: MemCheck/memcheckui.cpp:328 +msgid "Word" msgstr "" -#: DatabaseExplorer/GUI.cpp:1254 -msgid "Remove selected column" +#: MemCheck/memcheckui.cpp:333 +msgid "RegExp" msgstr "" -#: DatabaseExplorer/GUI.cpp:1258 -msgid "Move column up" +#: MemCheck/memcheckui.cpp:340 +msgid "Total: 0 Filtered: 0 Selected: 0" msgstr "" -#: DatabaseExplorer/GUI.cpp:1258 -msgid "Move selected column up" +#: MemCheck/memcheckui.cpp:363 +msgid "Suppress all" msgstr "" -#: DatabaseExplorer/GUI.cpp:1260 -msgid "Move column down" +#: MemCheck/memcheckui.cpp:367 +msgid "Suppress selected" msgstr "" -#: DatabaseExplorer/GUI.cpp:1260 -msgid "Move selected column down" +#: MemCheck/memcheckui.cpp:517 +msgid "Engine:" msgstr "" -#: DatabaseExplorer/GUI.cpp:1267 -msgid "Column name" +#: MemCheck/memcheckui.cpp:518 +msgid "At this time (1Q 2014) only valgrind supported - development state." msgstr "" -#: DatabaseExplorer/GUI.cpp:1268 DatabaseExplorer/TableSettings.cpp:70 -#: LLDBDebugger/LLDBLocalsView.cpp:55 -#: LiteEditor/debugger_predefined_types_page.cpp:36 -#: LiteEditor/localstable.cpp:51 LiteEditor/simpletable.cpp:97 -#: Plugin/sftp_ui.cpp:330 SFTP/UI.cpp:184 -#: codelitephp/php-plugin/php_ui.cpp:1189 -msgid "Type" +#: MemCheck/memcheckui.cpp:529 +msgid "Errors on page:" msgstr "" -#: DatabaseExplorer/GUI.cpp:1269 Plugin/sftp_ui.cpp:331 SFTP/UI.cpp:185 -msgid "Size" +#: MemCheck/memcheckui.cpp:537 +msgid "Show locations only from my workspace." msgstr "" -#: DatabaseExplorer/GUI.cpp:1270 -msgid "Not null" +#: MemCheck/memcheckui.cpp:542 +msgid "Remove duplicate records." msgstr "" -#: DatabaseExplorer/GUI.cpp:1271 -msgid "Autoincrement" +#: MemCheck/memcheckui.cpp:547 +msgid "Remove suppressed errors." msgstr "" -#: DatabaseExplorer/GUI.cpp:1272 -msgid "Primary key" +#: MemCheck/memcheckui.cpp:556 +msgid "Remove errors only if suppression rule was added without any change." msgstr "" -#: DatabaseExplorer/GUI.cpp:1279 -msgid "Foreign keys:" +#: MemCheck/memcheckui.cpp:565 +msgid "Valgrind (memcheck)" msgstr "" -#: DatabaseExplorer/GUI.cpp:1288 -msgid "Add foreign key" +#: MemCheck/memcheckui.cpp:568 +msgid "Command Line" msgstr "" -#: DatabaseExplorer/GUI.cpp:1288 -msgid "Add new foreign key" +#: MemCheck/memcheckui.cpp:580 +msgid "Valgrind executable:" msgstr "" -#: DatabaseExplorer/GUI.cpp:1290 -msgid "Remove foreign key" +#: MemCheck/memcheckui.cpp:585 +msgid "Select valgrind executable" msgstr "" -#: DatabaseExplorer/GUI.cpp:1290 -msgid "Remove selected foreign key" +#: MemCheck/memcheckui.cpp:589 +msgid "Command line options" msgstr "" -#: DatabaseExplorer/GUI.cpp:1305 -msgid "Key name" +#: MemCheck/memcheckui.cpp:600 +msgid "Mandatory:" msgstr "" -#: DatabaseExplorer/GUI.cpp:1317 -msgid "Local column:" +#: MemCheck/memcheckui.cpp:601 MemCheck/memcheckui.cpp:606 +msgid "" +"Please do not use these options again and do not change their values!\n" +"Plugin won't work." msgstr "" -#: DatabaseExplorer/GUI.cpp:1326 -msgid "Ref. table:" +#: MemCheck/memcheckui.cpp:616 +msgid "Regular:" msgstr "" -#: DatabaseExplorer/GUI.cpp:1335 -msgid "Ref. column:" +#: MemCheck/memcheckui.cpp:628 +msgid "Reload defaults" msgstr "" -#: DatabaseExplorer/GUI.cpp:1349 -msgid "On update" +#: MemCheck/memcheckui.cpp:632 +msgid "Temporary output file" msgstr "" -#: DatabaseExplorer/GUI.cpp:1359 -msgid "On delete" +#: MemCheck/memcheckui.cpp:636 +msgid "Use log file in workspace private folder." msgstr "" -#: DatabaseExplorer/LogDialog.cpp:32 -msgid " --------------- Log starts at: " +#: MemCheck/memcheckui.cpp:638 MemCheck/memcheckui.cpp:643 +msgid "" +"It is used intenaly by this plugin. Valgrind outputs to this file and " +"afterwards the plugin processes this file and shows result." msgstr "" -#: DatabaseExplorer/SqlCommandPanel.cpp:119 -msgid "Executing sql..." +#: MemCheck/memcheckui.cpp:648 +msgid "Supression" msgstr "" -#: DatabaseExplorer/SqlCommandPanel.cpp:156 -msgid "Unknown SQL error." +#: MemCheck/memcheckui.cpp:653 +msgid "Suppression files" msgstr "" -#: DatabaseExplorer/SqlCommandPanel.cpp:272 -#, c-format -msgid "Result: %i rows" +#: MemCheck/memcheckui.cpp:657 +msgid "Use workspace specific supp file as default." msgstr "" -#: DatabaseExplorer/SqlCommandPanel.cpp:293 -msgid "Cant connect!" +#: MemCheck/memcheckui.cpp:659 +msgid "" +"This file is located in workspace private folder.\n" +"If you don't like this option, you have to add at leas one file to list " +"below." msgstr "" -#: DatabaseExplorer/SqlCommandPanel.cpp:299 LiteEditor/new_build_tab.cpp:949 -#: LiteEditor/ps_compiler_page.cpp:120 LiteEditor/ps_general_page.cpp:172 -msgid "Choose a file" +#: MemCheck/memcheckui.h:265 +msgid "MemCheck Settings" msgstr "" -#: DatabaseExplorer/SqlCommandPanel.cpp:315 -msgid "Chose a file" +#: CodeFormatter/codeformatter.cpp:93 +msgid "Source Code Formatter (Supports C/C++/Obj-C/JavaScript/PHP files)" msgstr "" -#: DatabaseExplorer/SqlCommandPanel.cpp:332 -msgid "Insert SELECT SQL statement template into editor." +#: CodeFormatter/codeformatter.cpp:103 CodeFormatter/codeformatter.cpp:224 +#: CodeFormatter/codeformatter.cpp:428 CodeFormatter/codeformatter.cpp:709 +#: CodeFormatter/codeformatter.cpp:737 CodeFormatter/codeformatter.cpp:782 +msgid "Source Code Formatter" msgstr "" -#: DatabaseExplorer/SqlCommandPanel.cpp:332 -msgid "Insert SELECT SQL template" +#: CodeFormatter/codeformatter.cpp:165 CodeFormatter/codeformatter.cpp:175 +msgid "Format Source" msgstr "" -#: DatabaseExplorer/SqlCommandPanel.cpp:333 -msgid "Insert INSERT SQL statement template into editor." +#: CodeFormatter/codeformatter.cpp:167 CodeFormatter/codeformatter.cpp:177 +msgid "Format Source Code" msgstr "" -#: DatabaseExplorer/SqlCommandPanel.cpp:333 -msgid "Insert INSERT SQL template" +#: CodeFormatter/codeformatter.cpp:169 CodeFormatter/codeformatter.cpp:179 +msgid "Format Options" msgstr "" -#: DatabaseExplorer/SqlCommandPanel.cpp:334 -msgid "Insert UPDATE SQL statement template into editor." +#: CodeFormatter/codeformatter.cpp:171 CodeFormatter/codeformatter.cpp:181 +msgid "Source Code Formatter Options..." msgstr "" -#: DatabaseExplorer/SqlCommandPanel.cpp:334 -msgid "Insert UPDATE SQL template" +#: CodeFormatter/codeformatter.cpp:219 +msgid "Format Current Source" msgstr "" -#: DatabaseExplorer/SqlCommandPanel.cpp:335 -msgid "Insert DELETE SQL statement template into editor." +#: CodeFormatter/codeformatter.cpp:222 +msgid "Options..." msgstr "" -#: DatabaseExplorer/SqlCommandPanel.cpp:335 -msgid "Insert DELETE SQL template" +#: CodeFormatter/codeformatter.cpp:249 +#: CodeFormatter/codeformatterdlgbase.cpp:179 +msgid "Formatting" msgstr "" -#: DatabaseExplorer/SqlCommandPanel.cpp:392 -#: LLDBDebugger/LLDBLocalsView.cpp:251 -msgid "Copy value to clipboard" +#: CodeFormatter/codeformatter.cpp:312 +msgid "Source code formatting error!" msgstr "" -#: DatabaseExplorer/TableSettings.cpp:92 -msgid "column" +#: CodeFormatter/codeformatter.cpp:703 +msgid "Nothing to be done here" msgstr "" -#: DatabaseExplorer/databaseexplorer.cpp:47 -msgid "0.5.2 Beta" +#: CodeFormatter/codeformatter.cpp:708 +msgid "You are about to beautify " msgstr "" -#: DatabaseExplorer/databaseexplorer.cpp:94 -#: DatabaseExplorer/databaseexplorer.cpp:139 -msgid "DatabaseExplorer for CodeLite" +#: CodeFormatter/codeformatter.cpp:708 +msgid "" +" files\n" +"Continue?" msgstr "" -#: DatabaseExplorer/databaseexplorer.cpp:202 -msgid "Database Explorer" +#: CodeFormatter/codeformatter.cpp:737 CodeFormatter/codeformatter.cpp:782 +msgid "Formatting files..." msgstr "" -#: DatabaseExplorer/databaseexplorer.cpp:235 +#: CodeFormatter/astyle_main.cpp:379 msgid "" -"Cross-platform database plugin designed for managing data, ERD and code " -"generation.\n" "\n" +"Artistic Style has terminated" msgstr "" -#: DatabaseExplorer/databaseexplorer.cpp:242 -msgid "2011 - 2012 (C) Tomas Bata University, Zlin, Czech Republic" +#: CodeFormatter/astyle_main.cpp:456 +msgid "Cannot process the input stream" msgstr "" -#: DatabaseExplorer/imageexportdialog.cpp:49 -#: DatabaseExplorer/imageexportdialog.cpp:59 -msgid "Export image" +#: CodeFormatter/astyle_main.cpp:537 +#, c-format +msgid "Formatted %s\n" msgstr "" -#: DatabaseExplorer/imageexportdialog.cpp:49 -msgid "Image path cannot be empty." +#: CodeFormatter/astyle_main.cpp:540 +#, c-format +msgid "Unchanged %s\n" msgstr "" -#: DatabaseExplorer/imageexportdialog.cpp:59 -msgid "Canvas scale must be decimal value." +#: CodeFormatter/astyle_main.cpp:639 +msgid "Cannot process UTF-32 encoding" msgstr "" -#: DatabaseExplorer/imageexportdialog.cpp:79 -msgid "Export ERD to image..." +#: CodeFormatter/astyle_main.cpp:765 CodeFormatter/astyle_main.cpp:890 +msgid "Cannot open directory" msgstr "" -#: Debugger/dbgcmd.cpp:411 +#: CodeFormatter/astyle_main.cpp:781 CodeFormatter/astyle_main.cpp:794 +#: CodeFormatter/astyle_main.cpp:913 CodeFormatter/astyle_main.cpp:926 #, c-format -msgid "" -"Internal breakpoint was hit (id=%d), Applying user breakpoints and continuing" -msgstr "" - -#: Debugger/dbgcmd.cpp:489 -msgid "Program exited normally." +msgid "Exclude %s\n" msgstr "" -#: Debugger/dbgcmd.cpp:539 +#: CodeFormatter/astyle_main.cpp:1041 #, c-format -msgid "ERROR: failed to place breakpoint: \"%s\"" -msgstr "" - -#: Debugger/dbgcmd.cpp:554 -msgid "Found the breakpoint ID!" +msgid "Missing filename in %s\n" msgstr "" -#: Debugger/dbgcmd.cpp:576 -#, c-format -msgid "Successfully set breakpoint %ld at: " +#: CodeFormatter/astyle_main.cpp:1056 +msgid "Recursive option with no wildcard" msgstr "" -#: Debugger/dbgcmd.cpp:579 -#, c-format -msgid "Successfully set conditional breakpoint %ld at: " +#: CodeFormatter/astyle_main.cpp:1058 +msgid "Did you intend quote the filename" msgstr "" -#: Debugger/dbgcmd.cpp:582 +#: CodeFormatter/astyle_main.cpp:1066 #, c-format -msgid "Successfully set temporary breakpoint %ld at: " +msgid "Directory %s\n" msgstr "" -#: Debugger/dbgcmd.cpp:587 +#: CodeFormatter/astyle_main.cpp:1086 CodeFormatter/astyle_main.cpp:1088 +#: CodeFormatter/astyle_main.cpp:1090 #, c-format -msgid "Successfully set watchpoint %ld watching: " +msgid "Exclude (unmatched) %s\n" msgstr "" -#: Debugger/dbgcmd.cpp:590 -#, c-format -msgid "Successfully set read watchpoint %ld watching: " +#: CodeFormatter/astyle_main.cpp:1096 CodeFormatter/astyle_main.cpp:1103 +msgid "Did you intend to use --recursive" msgstr "" -#: Debugger/dbgcmd.cpp:593 +#: CodeFormatter/astyle_main.cpp:1102 #, c-format -msgid "Successfully set read/write watchpoint %ld watching: " +msgid "No file to process %s\n" msgstr "" -#: Debugger/dbgcmd.cpp:601 -msgid "address " +#: CodeFormatter/astyle_main.cpp:1616 +msgid "Invalid option file options:" msgstr "" -#: Debugger/dbgcmd.cpp:807 -msgid "Successfully connected to debugger server" +#: CodeFormatter/astyle_main.cpp:1618 +msgid "Cannot open options file" msgstr "" -#: Debugger/dbgcmd.cpp:810 -msgid "Applying breakpoints..." +#: CodeFormatter/astyle_main.cpp:1625 CodeFormatter/astyle_main.cpp:1633 +msgid "For help on options type 'astyle -h'" msgstr "" -#: Debugger/dbgcmd.cpp:815 -msgid "Applying breakpoints... done" +#: CodeFormatter/astyle_main.cpp:1630 +msgid "Invalid command line options:" msgstr "" -#: Debugger/dbgcmd.cpp:967 +#: CodeFormatter/astyle_main.cpp:1752 #, c-format -msgid "Breakpoint %d condition cleared" +msgid "Using default options file %s\n" msgstr "" -#: Debugger/dbgcmd.cpp:970 +#: CodeFormatter/astyle_main.cpp:1762 #, c-format -msgid "Condition %s set for breakpoint %d" +msgid " %s formatted %s unchanged " msgstr "" -#: Debugger/debuggergdb.cpp:571 -msgid "Can't interrupt debuggee process: I don't know its PID!" +#: CodeFormatter/astyle_main.cpp:1774 +msgid " seconds " msgstr "" -#: Debugger/debuggergdb.cpp:710 -msgid "Failed to start debugger: permission denied" +#: CodeFormatter/astyle_main.cpp:1780 +#, c-format +msgid "%d min %d sec " msgstr "" -#: ExternalTools/external_tools.cpp:41 LiteEditor/compiler_pages.cpp:444 -#: LiteEditor/compiler_pages.cpp:475 LiteEditor/compiler_pages.cpp:520 -#: LiteEditor/debuggersettingsbasedlg.cpp:716 -#: LiteEditor/project_settings_base_dlg.cpp:820 -#: Plugin/VirtualDirectorySelectorBase.cpp:86 QmakePlugin/NewQtProj.cpp:98 -#: abbreviation/abbreviationssettingsbase.cpp:42 -msgid "New..." +#: CodeFormatter/astyle_main.cpp:1784 +#, c-format +msgid "%s lines\n" msgstr "" -#: ExternalTools/external_tools.cpp:45 LiteEditor/compiler_pages.cpp:382 -#: LiteEditor/compiler_pages.cpp:417 LiteEditor/compiler_pages.cpp:569 -#: LiteEditor/compiler_pages.cpp:585 -#: LiteEditor/debuggersettingsbasedlg.cpp:160 -#: LiteEditor/new_quick_watch_dlg.cpp:332 -#: LiteEditor/project_settings_base_dlg.cpp:824 -msgid "Edit..." +#: CodeFormatter/codeformatterdlgbase.cpp:53 +msgid "Format editor on file save:" msgstr "" -#: ExternalTools/external_tools.cpp:49 -msgid "Delete..." +#: CodeFormatter/codeformatterdlgbase.cpp:59 +msgid "When saving a file, automatically format it" msgstr "" -#: ExternalTools/externaltooldlg.cpp:91 -msgid "Are you sure you want to delete this tool?" +#: CodeFormatter/codeformatterdlgbase.cpp:63 +msgid "Select C++ formatter:" msgstr "" -#: ExternalTools/externaltooldlg.cpp:100 -#: codelitephp/php-plugin/php_ui.cpp:1123 -msgid "ID" +#: CodeFormatter/codeformatterdlgbase.cpp:71 +msgid "" +"Select the formatter engine for C/C++\n" +"Note that JavaScript, clang-format is always used" msgstr "" -#: ExternalTools/externaltooldlg.cpp:101 Gizmos/newclassdlg.cpp:61 -#: LLDBDebugger/LLDBLocalsView.cpp:52 LiteEditor/CompilerMainPage.cpp:82 -#: LiteEditor/attachdbgprocdlg.cpp:56 -#: LiteEditor/implementparentvirtualfunctionsbase.cpp:88 -#: LiteEditor/localstable.cpp:49 LiteEditor/setters_getters.cpp:77 -#: Plugin/clBoostrapWizardBase.cpp:75 Plugin/sftp_ui.cpp:329 SFTP/UI.cpp:183 -#: codelitephp/php-plugin/php_ui.cpp:319 -#: codelitephp/php-plugin/php_ui.cpp:1188 -msgid "Name" +#: CodeFormatter/codeformatterdlgbase.cpp:78 +#: LiteEditor/findinfiles_dlg.cpp:192 +#: CodeDesigner/codedesigneritembasedlg.cpp:47 +msgid "C++" msgstr "" -#: ExternalTools/externaltooldlg.cpp:102 -#: LiteEditor/openwindowspanelbase.cpp:41 -#: LiteEditor/project_settings_base_dlg.cpp:434 -msgid "Path" +#: CodeFormatter/codeformatterdlgbase.cpp:83 +msgid "AStyle" msgstr "" -#: ExternalTools/externaltools.cpp:67 ExternalTools/externaltools.cpp:80 -msgid "A plugin that allows user to launch external tools from within CodeLite" +#: CodeFormatter/codeformatterdlgbase.cpp:107 +msgid "AStyle Options" msgstr "" -#: ExternalTools/externaltools.cpp:176 ExternalTools/externaltools.cpp:178 -#: ExternalTools/externaltools.cpp:185 ExternalTools/externaltools.cpp:187 -#: ExternalTools/externaltools.cpp:242 ExternalTools/externaltools.cpp:244 -#: ExternalTools/externaltools.cpp:251 ExternalTools/externaltools.cpp:253 -#: ExternalTools/externaltools.cpp:445 -msgid "Configure external tools..." +#: CodeFormatter/codeformatterdlgbase.cpp:112 +#: CodeFormatter/codeformatterdlgbase.cpp:296 +msgid "GNU" msgstr "" -#: ExternalTools/externaltools.cpp:180 ExternalTools/externaltools.cpp:182 -#: ExternalTools/externaltools.cpp:189 ExternalTools/externaltools.cpp:191 -#: ExternalTools/externaltools.cpp:246 ExternalTools/externaltools.cpp:248 -#: ExternalTools/externaltools.cpp:255 ExternalTools/externaltools.cpp:257 -msgid "Stop external tool" +#: CodeFormatter/codeformatterdlgbase.cpp:114 +msgid "K&R" msgstr "" -#: ExternalTools/externaltools.cpp:460 -msgid "External Tools" +#: CodeFormatter/codeformatterdlgbase.cpp:115 +#: CodeFormatter/codeformatterdlgbase.cpp:124 +#: CodeFormatter/codeformatterdlgbase.cpp:292 +msgid "Linux" msgstr "" -#: ExternalTools/newtoolbase.cpp:36 -msgid "Tool ID:" +#: CodeFormatter/codeformatterdlgbase.cpp:116 +msgid "ANSI" msgstr "" -#: ExternalTools/newtoolbase.cpp:52 -msgid "The name is used to identify this tool in the 'External Tools' toobar" +#: CodeFormatter/codeformatterdlgbase.cpp:117 +msgid "PreDefined Styles" msgstr "" -#: ExternalTools/newtoolbase.cpp:61 -msgid "Tool path:" +#: CodeFormatter/codeformatterdlgbase.cpp:118 +msgid "Choose the formatting from one of the known styles" msgstr "" -#: ExternalTools/newtoolbase.cpp:72 ExternalTools/newtoolbase.cpp:87 -#: ExternalTools/newtoolbase.cpp:126 ExternalTools/newtoolbase.cpp:141 -#: Gizmos/newclassbasedlg.cpp:90 Gizmos/newclassbasedlg.cpp:118 -#: Gizmos/newclassbasedlg.cpp:133 LiteEditor/wxcrafter.cpp:818 -msgid "Browse..." +#: CodeFormatter/codeformatterdlgbase.cpp:122 +msgid "Break closing" msgstr "" -#: ExternalTools/newtoolbase.cpp:76 LiteEditor/quickdebugbase.cpp:58 -#: codelitephp/php-plugin/php_ui.cpp:635 -msgid "Working directory:" +#: CodeFormatter/codeformatterdlgbase.cpp:123 +#: CodeFormatter/codeformatterdlgbase.cpp:293 +msgid "Attach" msgstr "" -#: ExternalTools/newtoolbase.cpp:91 -msgid "Arguments:" +#: CodeFormatter/codeformatterdlgbase.cpp:125 +msgid "Break" msgstr "" -#: ExternalTools/newtoolbase.cpp:104 -msgid "Toolbar:" +#: CodeFormatter/codeformatterdlgbase.cpp:126 LiteEditor/quickfindbar.cpp:110 +msgid "None" msgstr "" -#: ExternalTools/newtoolbase.cpp:115 -msgid "Toolbar icon (24x24):" +#: CodeFormatter/codeformatterdlgbase.cpp:127 +#: CodeFormatter/codeformatterdlgbase.cpp:133 +msgid "Brackets" msgstr "" -#: ExternalTools/newtoolbase.cpp:130 -msgid "Toolbar icon (16x16):" +#: CodeFormatter/codeformatterdlgbase.cpp:128 +msgid "Bracket Style options define the bracket style to use" +msgstr "" + +#: CodeFormatter/codeformatterdlgbase.cpp:134 +#: LiteEditor/compiler_pages.cpp:485 +msgid "Switches" msgstr "" -#: ExternalTools/newtoolbase.cpp:145 LiteEditor/buildsettingstabbase.cpp:81 -#: LiteEditor/commentpagebase.cpp:45 codelitephp/php-plugin/new_class.cpp:29 -msgid "General:" +#: CodeFormatter/codeformatterdlgbase.cpp:135 +msgid "Namespaces" msgstr "" -#: ExternalTools/newtoolbase.cpp:149 -msgid "Save all files before executing this tool" +#: CodeFormatter/codeformatterdlgbase.cpp:137 +msgid "Labels" msgstr "" -#: ExternalTools/newtoolbase.cpp:154 -msgid "Capture process output" +#: CodeFormatter/codeformatterdlgbase.cpp:138 +msgid "Blocks" msgstr "" -#: ExternalTools/newtoolbase.cpp:173 ExternalTools/newtoolbase.cpp:174 -msgid "Show list of available macros" +#: CodeFormatter/codeformatterdlgbase.cpp:139 +#: LiteEditor/project_settings_base_dlg.cpp:273 +#: LiteEditor/project_settings_base_dlg.cpp:937 +msgid "Preprocessors" msgstr "" -#: ExternalTools/newtooldlg.cpp:71 -msgid "Select a program:" +#: CodeFormatter/codeformatterdlgbase.cpp:140 +msgid "Max Instatement Indent" msgstr "" -#: ExternalTools/newtooldlg.cpp:82 LiteEditor/debugcoredump.cpp:189 -#: LiteEditor/ps_custom_build_page.cpp:75 LiteEditor/quickdebugdlg.cpp:153 -msgid "Select working directory:" +#: CodeFormatter/codeformatterdlgbase.cpp:141 +msgid "Min Instatement Indent" msgstr "" -#: ExternalTools/newtooldlg.cpp:118 ExternalTools/newtooldlg.cpp:129 -msgid "Select an icon:" +#: CodeFormatter/codeformatterdlgbase.cpp:157 +msgid "Break Blocks" msgstr "" -#: Gizmos/PluginWizard.cpp:63 -msgid "Invalid plugin name" +#: CodeFormatter/codeformatterdlgbase.cpp:158 +msgid "Pad Parenthesis" msgstr "" -#: Gizmos/PluginWizard.cpp:69 -msgid "codelite folder does not exists" +#: CodeFormatter/codeformatterdlgbase.cpp:159 +msgid "Break Blocks All" msgstr "" -#: Gizmos/PluginWizard.cpp:75 -msgid "The selected plugin folder does not exist" +#: CodeFormatter/codeformatterdlgbase.cpp:160 +msgid "Pad Parenthesis Outside" msgstr "" -#: Gizmos/gizmos.cpp:76 -msgid "" -"Wizards Plugin - a collection of useful wizards for C++:\n" -"new Class Wizard, new wxWidgets Wizard, new Plugin Wizard" +#: CodeFormatter/codeformatterdlgbase.cpp:161 +msgid "Break else-if" msgstr "" -#: Gizmos/gizmos.cpp:170 -msgid "Wizards Plugin - a collection of useful utils for C++" +#: CodeFormatter/codeformatterdlgbase.cpp:162 +msgid "Pad Parenthesis Inside" msgstr "" -#: Gizmos/gizmos.cpp:225 -msgid "New CodeLite Plugin Wizard..." +#: CodeFormatter/codeformatterdlgbase.cpp:163 +msgid "Pad Operators" msgstr "" -#: Gizmos/gizmos.cpp:227 -msgid "New Class Wizard..." +#: CodeFormatter/codeformatterdlgbase.cpp:164 +msgid "UnPad Parenthesis" msgstr "" -#: Gizmos/gizmos.cpp:229 -msgid "New wxWidgets Project Wizard..." +#: CodeFormatter/codeformatterdlgbase.cpp:165 +msgid "One Line Keep Statement" msgstr "" -#: Gizmos/gizmos.cpp:244 -msgid "&New Class..." +#: CodeFormatter/codeformatterdlgbase.cpp:166 +msgid "Fill Empty Lines" msgstr "" -#: Gizmos/gizmos.cpp:333 -msgid "Failed to load wizard's file 'plugin.cpp.wizard'" +#: CodeFormatter/codeformatterdlgbase.cpp:167 +msgid "One Line Keep Blocks" msgstr "" -#: Gizmos/gizmos.cpp:359 -msgid "Failed to load wizard's file 'plugin.h.wizard'" +#: CodeFormatter/codeformatterdlgbase.cpp:180 +msgid "Select one or more formatting option from the list below" msgstr "" -#: Gizmos/gizmos_base.cpp:64 -msgid "Plugin name:" +#: CodeFormatter/codeformatterdlgbase.cpp:190 +msgid "AStyle Only:" msgstr "" -#: Gizmos/gizmos_base.cpp:69 -msgid "" -"Set the plugin name.\n" -"The name should be a valid C++ variable name" +#: CodeFormatter/codeformatterdlgbase.cpp:197 +msgid "Custom user settings" msgstr "" -#: Gizmos/gizmos_base.cpp:74 LiteEditor/plugindlgbase.cpp:59 -#: LiteEditor/pluginmgrdlg.cpp:154 Plugin/nameanddescbasedlg.cpp:69 -msgid "Description:" +#: CodeFormatter/codeformatterdlgbase.cpp:254 +msgid "clang-format" msgstr "" -#: Gizmos/gizmos_base.cpp:79 -msgid "Provide the plugin a short description" +#: CodeFormatter/codeformatterdlgbase.cpp:278 +msgid "ClangFormat Options" msgstr "" -#: Gizmos/gizmos_base.cpp:102 -msgid "codelite root dir:" +#: CodeFormatter/codeformatterdlgbase.cpp:281 +msgid "clang-format path" msgstr "" -#: Gizmos/gizmos_base.cpp:107 -msgid "Select the location of codelite's source tree" +#: CodeFormatter/codeformatterdlgbase.cpp:285 +msgid "Select the path to clang-format executable tool" msgstr "" -#: Gizmos/gizmos_base.cpp:111 LiteEditor/wxcrafter.cpp:802 -#: QmakePlugin/NewQtProj.cpp:68 codelitephp/php-plugin/php_ui.cpp:1680 -msgid "Project path:" +#: CodeFormatter/codeformatterdlgbase.cpp:287 +msgid "Column Limit" msgstr "" -#: Gizmos/gizmos_base.cpp:116 -msgid "Select the plugin project path" +#: CodeFormatter/codeformatterdlgbase.cpp:288 +msgid "" +"The column limit\n" +"A column limit of 0 means that there is no column limit.\n" +"In this case, clang-format will respect the input's line breaking decisions " +"within statements unless they contradict other rules" msgstr "" -#: Gizmos/newclassbasedlg.cpp:61 -msgid "Class Name:" +#: CodeFormatter/codeformatterdlgbase.cpp:294 +msgid "Stroustrup" msgstr "" -#: Gizmos/newclassbasedlg.cpp:66 -msgid "The class name" +#: CodeFormatter/codeformatterdlgbase.cpp:295 +msgid "Allman" msgstr "" -#: Gizmos/newclassbasedlg.cpp:71 -msgid "*" +#: CodeFormatter/codeformatterdlgbase.cpp:302 +msgid "Brace breaking style" msgstr "" -#: Gizmos/newclassbasedlg.cpp:81 codelitephp/php-plugin/new_class.cpp:71 -msgid "Namespace:" +#: CodeFormatter/codeformatterdlgbase.cpp:303 +msgid "The brace breaking style to use." msgstr "" -#: Gizmos/newclassbasedlg.cpp:86 -msgid "Place this class inside a namespace" +#: CodeFormatter/codeformatterdlgbase.cpp:307 +msgid "LLVM" msgstr "" -#: Gizmos/newclassbasedlg.cpp:96 -msgid "Block Guard:" +#: CodeFormatter/codeformatterdlgbase.cpp:308 +msgid "Google" msgstr "" -#: Gizmos/newclassbasedlg.cpp:101 -msgid "" -"Set block guard to prevent multiple file inclusion. If left empty, the class " -"name is used" +#: CodeFormatter/codeformatterdlgbase.cpp:309 +msgid "WebKit" msgstr "" -#: Gizmos/newclassbasedlg.cpp:109 Plugin/VirtualDirectorySelectorBase.cpp:54 -msgid "Select Virtual Directory:" +#: CodeFormatter/codeformatterdlgbase.cpp:310 +msgid "Chromium" msgstr "" -#: Gizmos/newclassbasedlg.cpp:114 -msgid "" -"The new class needs to be put somewhere. Select which of the project's " -"virtual folders to use." +#: CodeFormatter/codeformatterdlgbase.cpp:311 +msgid "Mozilla" msgstr "" -#: Gizmos/newclassbasedlg.cpp:124 -msgid "Generated File(s) Path:" +#: CodeFormatter/codeformatterdlgbase.cpp:317 +msgid "Style" msgstr "" -#: Gizmos/newclassbasedlg.cpp:129 -msgid "" -"Where on the filesystem should the new class's files be put? This will " -"normally be the directory corresponding to the Virtual Directory; but you " -"can enter an alternative directory here if you wish." +#: CodeFormatter/codeformatterdlgbase.cpp:318 +#: cppchecker/cppchecksettingsdlgbase.cpp:49 +msgid "Coding style" msgstr "" -#: Gizmos/newclassbasedlg.cpp:141 -msgid "Generated File:" +#: CodeFormatter/codeformatterdlgbase.cpp:322 +msgid "Align Escaped Newlines Left" msgstr "" -#: Gizmos/newclassbasedlg.cpp:148 -msgid "Inline class" +#: CodeFormatter/codeformatterdlgbase.cpp:323 +msgid "Align Trailing Comments" msgstr "" -#: Gizmos/newclassbasedlg.cpp:150 -msgid "Put both the declaration and the implementation in the header file" +#: CodeFormatter/codeformatterdlgbase.cpp:324 +msgid "Allow All Parameters Of Declaration On Next Line" msgstr "" -#: Gizmos/newclassbasedlg.cpp:154 -msgid "Create .hpp instead of .h" +#: CodeFormatter/codeformatterdlgbase.cpp:325 +msgid "Allow Short Functions On A Single Line" msgstr "" -#: Gizmos/newclassbasedlg.cpp:156 -msgid "If checked, the generated header file will be foo.hpp instead of foo.h" +#: CodeFormatter/codeformatterdlgbase.cpp:326 +msgid "Allow Short Blocks On A Single Line" msgstr "" -#: Gizmos/newclassbasedlg.cpp:161 -msgid "" -"This is the base-name for the file(s) that will be generated. If the new " -"class is called Foo, by default the files will be Foo.cpp and Foo.h. If " -"you'd prefer different names, type the base-name here." +#: CodeFormatter/codeformatterdlgbase.cpp:327 +msgid "Allow Short Loops On A Single Line" msgstr "" -#: Gizmos/newclassbasedlg.cpp:165 LLDBDebugger/UI.cpp:438 -#: LiteEditor/compiler_pages.cpp:530 LiteEditor/tags_options_base_dlg.cpp:312 -#: LiteEditor/tags_options_base_dlg.cpp:490 -msgid "Advanced" +#: CodeFormatter/codeformatterdlgbase.cpp:328 +msgid "Allow Short If Statements On A SingleLine" msgstr "" -#: Gizmos/newclassbasedlg.cpp:172 -msgid "Inherits:" +#: CodeFormatter/codeformatterdlgbase.cpp:329 +msgid "Always Break Before Multiline Strings" msgstr "" -#: Gizmos/newclassbasedlg.cpp:188 -msgid "Add..." +#: CodeFormatter/codeformatterdlgbase.cpp:330 +msgid "Always Break Template Declarations" msgstr "" -#: Gizmos/newclassbasedlg.cpp:189 -msgid "Click to add a class from which to derive" +#: CodeFormatter/codeformatterdlgbase.cpp:331 +msgid "Bin Pack Parameters" msgstr "" -#: Gizmos/newclassbasedlg.cpp:193 LiteEditor/compiler_pages.cpp:377 -#: LiteEditor/compiler_pages.cpp:412 LiteEditor/compiler_pages.cpp:449 -#: LiteEditor/compiler_pages.cpp:480 LiteEditor/compiler_pages.cpp:525 -#: LiteEditor/debuggersettingsbasedlg.cpp:718 -#: LiteEditor/project_settings_base_dlg.cpp:828 -#: LiteEditor/tasksfindwhatdlgbase.cpp:59 QmakePlugin/qmakesettingsdlg.cpp:106 -#: SFTP/SFTPTreeView.cpp:338 SFTP/UI.cpp:285 Subversion2/subversion2.cpp:332 -#: abbreviation/abbreviationssettingsbase.cpp:44 -#: codelitephp/php-plugin/php_editor_context_menu.cpp:138 -#: codelitephp/php-plugin/php_ui.cpp:1135 -#: codelitephp/php-plugin/php_workspace_view.cpp:186 -#: codelitephp/php-plugin/php_workspace_view.cpp:266 -msgid "Delete" +#: CodeFormatter/codeformatterdlgbase.cpp:332 +msgid "Break Before Binary Operators" msgstr "" -#: Gizmos/newclassbasedlg.cpp:205 -msgid "Declare this class non-copyable" +#: CodeFormatter/codeformatterdlgbase.cpp:333 +msgid "Break Before Ternary Operators" msgstr "" -#: Gizmos/newclassbasedlg.cpp:210 -msgid "Implement all virtual functions" +#: CodeFormatter/codeformatterdlgbase.cpp:334 +msgid "Break Constructor Initializers Before Comma" msgstr "" -#: Gizmos/newclassbasedlg.cpp:215 -msgid "This is a singleton class" +#: CodeFormatter/codeformatterdlgbase.cpp:335 +msgid "Indent Case Labels" msgstr "" -#: Gizmos/newclassbasedlg.cpp:220 -msgid "Implement all pure virtual functions" +#: CodeFormatter/codeformatterdlgbase.cpp:336 +msgid "Indent Function DeclarationAfterType" msgstr "" -#: Gizmos/newclassbasedlg.cpp:225 -msgid "Virtual destructor" +#: CodeFormatter/codeformatterdlgbase.cpp:337 +msgid "Space Before Assignment Operators" msgstr "" -#: Gizmos/newclassbasedlg.cpp:305 -msgid "Select Parent Class:" +#: CodeFormatter/codeformatterdlgbase.cpp:338 +msgid "Space Before Parentheses" msgstr "" -#: Gizmos/newclassbasedlg.cpp:310 -msgid "Type the name of the parent class" +#: CodeFormatter/codeformatterdlgbase.cpp:339 +msgid "Spaces In Parentheses" msgstr "" -#: Gizmos/newclassbasedlg.cpp:316 -msgid "Click here to open the open resource dialog" +#: CodeFormatter/codeformatterdlgbase.cpp:340 +msgid "Pointer And Reference Aligned to the Right" msgstr "" -#: Gizmos/newclassbasedlg.cpp:320 -msgid "Inhertiance Access:" +#: CodeFormatter/codeformatterdlgbase.cpp:360 +msgid "Clang Formatting Options" msgstr "" -#: Gizmos/newclassdlg.cpp:62 -msgid "Access" +#: CodeFormatter/codeformatterdlgbase.cpp:435 +msgid "PHP related settings" msgstr "" -#: Gizmos/newclassdlg.cpp:64 LLDBDebugger/UI.cpp:35 LLDBDebugger/UI.cpp:158 -#: LLDBDebugger/UI.cpp:529 LiteEditor/listctrlpanelbase.cpp:60 -#: LiteEditor/symbols_dialog.cpp:44 LiteEditor/threadlistpanel.cpp:53 -#: MemCheck/memcheckui.cpp:222 -#: Runtime/templates/projects/executable-wxcrafter-frame/wxcrafter.cpp:34 -#: UnitTestCPP/unittestspage.cpp:38 codelite_terminal/wxcrafter.cpp:125 -#: codelitephp/php-plugin/php_ui.cpp:321 -#: codelitephp/php-plugin/php_ui.cpp:1098 -#: codelitephp/php-plugin/php_ui.cpp:1124 -msgid "File" +#: CodeFormatter/codeformatterdlgbase.cpp:439 +msgid "Break before class" msgstr "" -#: Gizmos/newclassdlg.cpp:234 Gizmos/newclassdlg.cpp:247 -msgid "' is not a valid C++ qualifier" +#: CodeFormatter/codeformatterdlgbase.cpp:440 +msgid "Break before function" msgstr "" -#: Gizmos/newclassdlg.cpp:258 -msgid "': directory does not exist" +#: CodeFormatter/codeformatterdlgbase.cpp:441 +msgid "Break before 'while'" msgstr "" -#: Gizmos/newclassdlg.cpp:264 -msgid "Empty file name" +#: CodeFormatter/codeformatterdlgbase.cpp:442 +msgid "Break before 'foreach'" msgstr "" -#: Gizmos/newclassdlg.cpp:271 Gizmos/newclassdlg.cpp:278 -#, c-format -msgid "A file with this name: '%s' already exists, continue anyway?" +#: CodeFormatter/codeformatterdlgbase.cpp:443 +msgid "'else' doesn't break" msgstr "" -#: Gizmos/newclassdlg.cpp:284 -msgid "Please select a virtual directory" +#: CodeFormatter/codeformatterdlgbase.cpp:444 +msgid "Break after 'heredoc' statement" msgstr "" -#: Gizmos/newclassdlg.cpp:346 -msgid "Select Generated Files Path:" +#: CodeFormatter/codeformatterdlgbase.cpp:445 +msgid "Break PHP Arrays vertically" msgstr "" -#: Gizmos/newinheritancedlg.cpp:31 -msgid "New Inheritance" +#: CodeFormatter/codeformatterdlgbase.cpp:446 +msgid "Break after string concatentation operator (\".\")" msgstr "" -#: Gizmos/newwxprojectbasedlg.cpp:79 -msgid "Choose a name to give the project" +#: CodeFormatter/codeformatterdlgbase.cpp:455 +msgid "PHPFormatter Options" msgstr "" -#: Gizmos/newwxprojectbasedlg.cpp:83 -msgid "Project Path:" +#: CodeFormatter/codeformatterdlg.cpp:201 +msgid "AStyle help page" msgstr "" -#: Gizmos/newwxprojectbasedlg.cpp:90 -msgid "Application Type:" +#: CodeFormatter/codeformatterdlg.cpp:202 +msgid "clang-format help page" msgstr "" -#: Gizmos/newwxprojectbasedlg.cpp:94 -msgid "GUI application with Main Frame" +#: CodeFormatter/codeformatterdlgbase.h:131 +msgid "Source Code Formatter Options" msgstr "" -#: Gizmos/newwxprojectbasedlg.cpp:94 -msgid "GUI dialog-based application (wxFormBuilder)" +#: cscope/cscopedbbuilderthread.cpp:51 +msgid "Executing cscope..." msgstr "" -#: Gizmos/newwxprojectbasedlg.cpp:94 -msgid "GUI frame-based application (wxFormBuilder)" +#: cscope/cscopedbbuilderthread.cpp:59 +msgid "Parsing results..." msgstr "" -#: Gizmos/newwxprojectbasedlg.cpp:94 -msgid "Simple main with wxWidgets enabled" +#: cscope/CscopeTabBase.h:87 +msgid "CScope Settings" msgstr "" -#: Gizmos/newwxprojectbasedlg.cpp:98 -msgid "" -"The normal choice will be 'GUI application', but choose 'Simple main' for a " -"wx console app" +#: cscope/cscope.cpp:67 cscope/cscope.cpp:81 +msgid "CScope Integration for CodeLite" msgstr "" -#: Gizmos/newwxprojectbasedlg.cpp:108 -msgid "Advanced Settings:" +#: cscope/cscope.cpp:130 cscope/cscope.cpp:132 cscope/cscope.cpp:144 +#: cscope/cscope.cpp:146 cscope/cscope.cpp:250 +msgid "Find this C symbol" msgstr "" -#: Gizmos/newwxprojectbasedlg.cpp:117 LiteEditor/wxcrafter.cpp:825 -#: QmakePlugin/NewQtProj.cpp:107 -msgid "Create the project under a separate directory" +#: cscope/cscope.cpp:134 cscope/cscope.cpp:136 cscope/cscope.cpp:148 +#: cscope/cscope.cpp:150 cscope/cscope.cpp:269 cscope/cscope.cpp:270 +msgid "Find functions calling this function" msgstr "" -#: Gizmos/newwxprojectbasedlg.cpp:121 -msgid "Use precompiled headers" +#: cscope/cscope.cpp:138 cscope/cscope.cpp:140 cscope/cscope.cpp:152 +#: cscope/cscope.cpp:154 cscope/cscope.cpp:262 cscope/cscope.cpp:263 +msgid "Find functions called by this function" msgstr "" -#: Gizmos/newwxprojectbasedlg.cpp:124 -msgid "Use MS Windows resources" +#: cscope/cscope.cpp:244 +msgid "Find ..." msgstr "" -#: Gizmos/newwxprojectbasedlg.cpp:127 -msgid "Add -mwindows flag to avoid a terminal console in MSWin GUI apps" +#: cscope/cscope.cpp:250 +msgid "Find selected text" msgstr "" -#: Gizmos/newwxprojectbasedlg.cpp:128 -msgid "" -"Without this flag, there will be an unnecessary, visible terminal window " -"when your app runs on MSWindows" +#: cscope/cscope.cpp:255 +msgid "Find this global definition" msgstr "" -#: Gizmos/newwxprojectbasedlg.cpp:135 -msgid "Basics" +#: cscope/cscope.cpp:256 +msgid "Find this C global definition" msgstr "" -#: Gizmos/newwxprojectbasedlg.cpp:140 -msgid "Use Unicode Build of wxWidgets" +#: cscope/cscope.cpp:276 cscope/cscope.cpp:406 +msgid "Find files #&including this filename" msgstr "" -#: Gizmos/newwxprojectbasedlg.cpp:142 -msgid "Uses an unicode configuration if found." +#: cscope/cscope.cpp:277 +msgid "Find files #including this filename" msgstr "" -#: Gizmos/newwxprojectbasedlg.cpp:146 -msgid "Use Static wxWidgets libraries" +#: cscope/cscope.cpp:285 +msgid "Create CScope database" msgstr "" -#: Gizmos/newwxprojectbasedlg.cpp:147 -msgid "Uses a static configuration if found." +#: cscope/cscope.cpp:286 cscope/cscope.cpp:416 +msgid "Create/Recreate the cscope database" msgstr "" -#: Gizmos/newwxprojectbasedlg.cpp:151 -msgid "Use Universal wxWidgets libraries" +#: cscope/cscope.cpp:292 +msgid "CScope settings" msgstr "" -#: Gizmos/newwxprojectbasedlg.cpp:152 -msgid "Uses an universal configuration if found." +#: cscope/cscope.cpp:292 +msgid "Configure cscope" msgstr "" -#: Gizmos/newwxprojectbasedlg.cpp:169 -msgid "Use selected wxWidgets version." +#: cscope/cscope.cpp:383 +msgid "&Find this C symbol" msgstr "" -#: Gizmos/newwxprojectbasedlg.cpp:173 -msgid "Prefix:" +#: cscope/cscope.cpp:387 +msgid "Find this &global definition" msgstr "" -#: Gizmos/newwxprojectbasedlg.cpp:178 -msgid "Path of the wxWidgets installation (optional)." +#: cscope/cscope.cpp:392 +msgid "Find functions &called by this function" msgstr "" -#: Gizmos/newwxprojectbasedlg.cpp:187 -msgid "wxWidgets settings" +#: cscope/cscope.cpp:399 +msgid "Fi&nd functions calling this function" msgstr "" -#: Gizmos/newwxprojectdlg.cpp:76 Gizmos/newwxprojectdlg.cpp:86 -msgid "Invalid project name '" +#: cscope/cscope.cpp:415 +msgid "Create CScope &database" msgstr "" -#: Gizmos/newwxprojectdlg.cpp:77 Gizmos/newwxprojectdlg.cpp:87 -msgid "Valid characters for project name are [0-9A-Za-z_]" +#: cscope/cscope.cpp:464 +msgid "Creating file list..." msgstr "" -#: Gizmos/newwxprojectdlg.cpp:102 -#, c-format -msgid "" -"Failed to create the path: %s\n" -"A permissions problem, perhaps?" +#: cscope/cscope.cpp:523 +msgid "I can't find 'cscope' anywhere. Please check if it's installed." msgstr "" -#: LLDBDebugger/LLDBCallStack.cpp:103 -msgid "Copy backtrace" +#: cscope/cscope.cpp:524 +msgid "" +"Or tell me where it can be found, from the menu: 'Plugins | CScope | " +"Settings'" msgstr "" -#: LLDBDebugger/LLDBLocalsView.cpp:53 LiteEditor/CompilerMainPage.cpp:83 -#: LiteEditor/debuggersettingsbasedlg.cpp:674 -#: LiteEditor/debuggersettingsbasedlg.cpp:676 LiteEditor/localstable.cpp:50 -#: LiteEditor/simpletable.cpp:96 codelitephp/php-plugin/php_ui.cpp:1191 -msgid "Value" +#: cscope/cscope.cpp:525 +msgid "CScope not found" msgstr "" -#: LLDBDebugger/LLDBLocalsView.cpp:54 -msgid "Summary" +#: cscope/cscope.cpp:584 +msgid "cscope results for: find global definition of '" msgstr "" -#: LLDBDebugger/LLDBLocalsView.cpp:57 -msgid "Local Vairables" +#: cscope/cscope.cpp:611 +msgid "cscope results for: functions called by '" msgstr "" -#: LLDBDebugger/LLDBLocalsView.cpp:186 -msgid "Add New Watch" +#: cscope/cscope.cpp:638 +msgid "cscope results for: functions calling '" msgstr "" -#: LLDBDebugger/LLDBLocalsView.cpp:186 LiteEditor/simpletable.cpp:129 -msgid "Expression to watch:" +#: cscope/cscope.cpp:680 +msgid "cscope results for: files that #include '" msgstr "" -#: LLDBDebugger/LLDBPlugin.cpp:227 MemCheck/memcheckui.cpp:190 -#: WordCompletion/wordcompletion.cpp:66 ZoomNavigator/zoomnavigator.cpp:131 -#: cppchecker/cppchecker.cpp:168 cppchecker/cppchecker.cpp:259 -#: cppchecker/cppchecker.cpp:275 cppchecker/cppchecker.cpp:289 -#: cppchecker/cppchecker.cpp:303 -msgid "Settings" +#: cscope/cscope.cpp:704 +msgid "Recreated inverted CScope DB" msgstr "" -#: LLDBDebugger/LLDBPlugin.cpp:231 -msgid "LLDB Settings..." +#: cscope/cscope.cpp:707 +msgid "Recreated CScope DB" msgstr "" -#: LLDBDebugger/LLDBPlugin.cpp:310 -msgid "Could not locate project: " +#: cscope/cscope.cpp:795 +msgid "Enter the symbol to search for:" msgstr "" -#: LLDBDebugger/LLDBPlugin.cpp:325 -msgid "Could not locate the requested buid configuration" +#: cscope/cscope.cpp:796 +msgid "cscope: find symbol" msgstr "" -#: LLDBDebugger/LLDBPlugin.cpp:393 LLDBDebugger/LLDBPlugin.cpp:1030 -msgid "Failed to start terminal for debugger" +#: cscope/cscopetab.cpp:62 cscope/cscopetab.cpp:189 +#: LiteEditor/cl_editor.cpp:2750 +msgid "Ready" msgstr "" -#: LLDBDebugger/LLDBPlugin.cpp:442 LLDBDebugger/LLDBPlugin.cpp:947 -#: LLDBDebugger/LLDBPlugin.cpp:994 LLDBDebugger/LLDBPlugin.cpp:1089 -msgid "Could not connect to codelite-lldb at '" +#: cscope/cscopetab.cpp:119 +msgid "Line: " msgstr "" -#: LLDBDebugger/LLDBPlugin.cpp:835 -msgid "LLDB crashed! Terminating debug session" +#: cscope/CscopeTabBase.cpp:45 +msgid "Scope" msgstr "" -#: LLDBDebugger/LLDBPlugin.cpp:854 -msgid "" -"A debug session is running\n" -"Cancel debug session and continue building?" +#: cscope/CscopeTabBase.cpp:47 LiteEditor/symbols_dialog.cpp:46 +#: LiteEditor/CompilerMainPage.cpp:59 LiteEditor/CompilerMainPage.cpp:69 +msgid "Pattern" msgstr "" -#: LLDBDebugger/LLDBPlugin.cpp:962 -msgid "Debug core file with LLDB is not supported under Windows" +#: cscope/CscopeTabBase.cpp:56 +msgid "Search scope:" msgstr "" -#: LLDBDebugger/LLDBPlugin.cpp:1009 -msgid "Another debug session is already in progress. Please stop it first" +#: cscope/CscopeTabBase.cpp:65 +msgid "Update Db if stale" msgstr "" -#: LLDBDebugger/LLDBPlugin.cpp:1055 -msgid "Attach to process with LLDB is not supported under Windows" +#: cscope/CscopeTabBase.cpp:67 +msgid "" +"If checked, before executing a command CScope will look for any changed " +"files and, if found, try to update the database. In practice this seems " +"unreliable." msgstr "" -#: LLDBDebugger/LLDBProtocol/LLDBConnector.cpp:471 -msgid "Locally debugging with LLDB on Windows is not supported by LLDB" +#: cscope/CscopeTabBase.cpp:71 +msgid "Create reverted Index" msgstr "" -#: LLDBDebugger/UI.cpp:33 LLDBDebugger/UI.cpp:157 LLDBDebugger/UI.cpp:526 -msgid "#" +#: cscope/CscopeTabBase.cpp:73 +msgid "Create reverted Index database" msgstr "" -#: LLDBDebugger/UI.cpp:34 LLDBDebugger/UI.cpp:160 LLDBDebugger/UI.cpp:528 -#: LiteEditor/listctrlpanelbase.cpp:59 LiteEditor/threadlistpanel.cpp:52 -#: LiteEditor/wxcrafter.cpp:381 -msgid "Function" +#: cscope/CscopeTabBase.cpp:79 +msgid "&Update Database" msgstr "" -#: LLDBDebugger/UI.cpp:36 LLDBDebugger/UI.cpp:159 LLDBDebugger/UI.cpp:530 -#: LiteEditor/editoroptionsgeneralrightmarginpanelbase.cpp:49 -#: LiteEditor/listctrlpanelbase.cpp:61 LiteEditor/symbols_dialog.cpp:45 -#: LiteEditor/threadlistpanel.cpp:54 MemCheck/memcheckui.cpp:223 -#: UnitTestCPP/unittestspage.cpp:39 codelitephp/php-plugin/php_ui.cpp:1099 -#: codelitephp/php-plugin/php_ui.cpp:1125 cscope/CscopeTabBase.cpp:46 -msgid "Line" +#: cscope/CscopeTabBase.cpp:80 +msgid "Perform an immediate database update" msgstr "" -#: LLDBDebugger/UI.cpp:78 codelitephp/php-plugin/PHPDebugPane.cpp:26 -msgid "Console" +#: cscope/CscopeTabBase.cpp:84 +msgid "&Clear Results" msgstr "" -#: LLDBDebugger/UI.cpp:124 -msgid "Send commands to lldb" +#: cscope/CscopeTabBase.cpp:150 +msgid "CScope executable:" msgstr "" -#: LLDBDebugger/UI.cpp:132 LiteEditor/debuggerpane.cpp:49 -#: LiteEditor/debuggerpane.cpp:104 codelitephp/php-plugin/php.cpp:676 -#: codelitephp/php-plugin/php_ui.cpp:1101 -msgid "Breakpoints" +#: cscope/CscopeTabBase.cpp:155 +msgid "Set the path to cscope executable" msgstr "" -#: LLDBDebugger/UI.cpp:142 -msgid "New breakpoint" +#: sdk/wxsqlite3/src/wxsqlite3.cpp:99 +msgid "No Database opened" msgstr "" -#: LLDBDebugger/UI.cpp:144 -msgid "Delete Selected Breakpoint" +#: sdk/wxsqlite3/src/wxsqlite3.cpp:100 +msgid "Statement not accessible" msgstr "" -#: LLDBDebugger/UI.cpp:146 -msgid "Delete All Breakpoints" +#: sdk/wxsqlite3/src/wxsqlite3.cpp:101 +msgid "Out of memory" msgstr "" -#: LLDBDebugger/UI.cpp:212 -msgid "File and Line:" +#: sdk/wxsqlite3/src/wxsqlite3.cpp:102 +msgid "Cannot decode binary" msgstr "" -#: LLDBDebugger/UI.cpp:226 LiteEditor/breakpointdlgbase.cpp:161 -msgid "Line number" +#: sdk/wxsqlite3/src/wxsqlite3.cpp:103 +msgid "Invalid field index" msgstr "" -#: LLDBDebugger/UI.cpp:233 -msgid "Function name:" +#: sdk/wxsqlite3/src/wxsqlite3.cpp:104 +msgid "Invalid field name" msgstr "" -#: LLDBDebugger/UI.cpp:301 -msgid "Add Watch..." +#: sdk/wxsqlite3/src/wxsqlite3.cpp:105 +msgid "Invalid row index" msgstr "" -#: LLDBDebugger/UI.cpp:303 -msgid "Delete Watch" +#: sdk/wxsqlite3/src/wxsqlite3.cpp:106 +msgid "Invalid scalar query" msgstr "" -#: LLDBDebugger/UI.cpp:358 -msgid "Behaviour" +#: sdk/wxsqlite3/src/wxsqlite3.cpp:108 +msgid "Null Results pointer" msgstr "" -#: LLDBDebugger/UI.cpp:361 -msgid "Raise CodeLite when breakpoint hit" +#: sdk/wxsqlite3/src/wxsqlite3.cpp:109 +msgid "Error binding string param" msgstr "" -#: LLDBDebugger/UI.cpp:362 -msgid "When a breakpoint is hit, notify the user raising CodeLite" +#: sdk/wxsqlite3/src/wxsqlite3.cpp:110 +msgid "Error binding int param" msgstr "" -#: LLDBDebugger/UI.cpp:364 -msgid "Display" +#: sdk/wxsqlite3/src/wxsqlite3.cpp:111 +msgid "Error binding int64 param" msgstr "" -#: LLDBDebugger/UI.cpp:367 -msgid "Max number of array elements" +#: sdk/wxsqlite3/src/wxsqlite3.cpp:112 +msgid "Error binding double param" msgstr "" -#: LLDBDebugger/UI.cpp:368 -msgid "The maximum number of eleements to display in arrays" +#: sdk/wxsqlite3/src/wxsqlite3.cpp:113 +msgid "Error binding blob param" msgstr "" -#: LLDBDebugger/UI.cpp:370 -msgid "Backtrace frames" +#: sdk/wxsqlite3/src/wxsqlite3.cpp:114 +msgid "Error binding date/time param" msgstr "" -#: LLDBDebugger/UI.cpp:371 -msgid "Maximum number of frames to show in the callstack window" +#: sdk/wxsqlite3/src/wxsqlite3.cpp:115 +msgid "Error binding NULL param" msgstr "" -#: LLDBDebugger/UI.cpp:374 LiteEditor/tags_options_base_dlg.cpp:400 -msgid "Types" +#: sdk/wxsqlite3/src/wxsqlite3.cpp:116 +msgid "Error clearing bindings" msgstr "" -#: LLDBDebugger/UI.cpp:389 -msgid "" -"LLDB has a data formatters subsystem that allows users to define custom " -"display options for their variables\n" -"You can set here the types to pass to LLDB" +#: sdk/wxsqlite3/src/wxsqlite3.cpp:118 +msgid "Meta data support not available" msgstr "" -#: LLDBDebugger/UI.cpp:430 -msgid "Learn more about LLDB types" +#: sdk/wxsqlite3/src/wxsqlite3.cpp:119 +msgid "Encryption support not available" msgstr "" -#: LLDBDebugger/UI.cpp:451 -msgid "Debugger Proxy" +#: sdk/wxsqlite3/src/wxsqlite3.cpp:120 +msgid "Loadable extension support not available" msgstr "" -#: LLDBDebugger/UI.cpp:456 -msgid "Local proxy process (default)" +#: sdk/wxshapeframework/include/wx/wxsf/EditTextShape.h:89 +msgid "Edit content" msgstr "" -#: LLDBDebugger/UI.cpp:457 -msgid "Remote proxy process over TCP/IP" +#: sdk/databaselayer/src/dblayer/MysqlDatabaseLayer.cpp:28 +#: sdk/databaselayer/src/dblayer/MysqlDatabaseLayer.cpp:49 +#: sdk/databaselayer/src/dblayer/MysqlDatabaseLayer.cpp:90 +#: sdk/databaselayer/src/dblayer/PostgresDatabaseLayer.cpp:23 +#: sdk/databaselayer/src/dblayer/PostgresDatabaseLayer.cpp:43 +#: sdk/databaselayer/src/dblayer/PostgresDatabaseLayer.cpp:85 +#: sdk/databaselayer/src/dblayer/PostgresDatabaseLayer.cpp:160 +#: sdk/databaselayer/src/dblayer/PostgresDatabaseLayer.cpp:218 +#: sdk/databaselayer/src/dblayer/FirebirdDatabaseLayer.cpp:36 +#: sdk/databaselayer/src/dblayer/FirebirdDatabaseLayer.cpp:59 +msgid "localhost" msgstr "" -#: LLDBDebugger/UI.cpp:458 -msgid "Proxy type" +#: sdk/databaselayer/src/dblayer/MysqlDatabaseLayer.cpp:189 +#: sdk/databaselayer/src/dblayer/SqliteDatabaseLayer.cpp:18 +#: sdk/databaselayer/src/dblayer/SqliteDatabaseLayer.cpp:26 +#: sdk/databaselayer/src/dblayer/TdsDatabaseLayer.cpp:87 +#: sdk/databaselayer/src/dblayer/TdsDatabaseLayer.cpp:97 +#: sdk/databaselayer/src/dblayer/FirebirdDatabaseLayer.cpp:198 +msgid "UTF-8" msgstr "" -#: LLDBDebugger/UI.cpp:459 -msgid "" -"Debugging using LLDB is always done over a proxy process (i.e. codelite-" -"lldb)\n" -"Here you can select the type of the proxy to use (local or remote):\n" -"* Local proxy is used by default to debug local processes (this is the " -"default)\n" -"* Remote proxy: use this method to connect to a remote codelite-lldb proxy " -"server over TCP/IP" +#: sdk/databaselayer/src/dblayer/MysqlDatabaseLayer.cpp:206 +#: sdk/databaselayer/src/dblayer/FirebirdDatabaseLayer.cpp:238 +msgid ":" msgstr "" -#: LLDBDebugger/UI.cpp:461 -msgid "Remote proxy settings" +#: sdk/databaselayer/src/dblayer/MysqlDatabaseLayer.cpp:470 +msgid "SHOW TABLE STATUS WHERE Comment != 'VIEW' AND Name=?;" msgstr "" -#: LLDBDebugger/UI.cpp:464 -msgid "127.0.0.1" +#: sdk/databaselayer/src/dblayer/MysqlDatabaseLayer.cpp:551 +msgid "SHOW TABLE STATUS WHERE Comment = 'VIEW' AND Name=?;" msgstr "" -#: LLDBDebugger/UI.cpp:464 LiteEditor/listctrlpanelbase.cpp:58 -msgid "Address" +#: sdk/databaselayer/src/dblayer/MysqlDatabaseLayer.cpp:613 +msgid "SHOW TABLE STATUS WHERE Comment != 'VIEW';" msgstr "" -#: LLDBDebugger/UI.cpp:465 -msgid "" -"The IP address on which the remote proxy server is accepting connections" +#: sdk/databaselayer/src/dblayer/MysqlDatabaseLayer.cpp:674 +msgid "SHOW TABLE STATUS WHERE Comment = 'VIEW';" msgstr "" -#: LLDBDebugger/UI.cpp:467 -msgid "Port" +#: sdk/databaselayer/src/dblayer/MysqlDatabaseLayer.cpp:715 +#, c-format +msgid "SHOW COLUMNS FROM %s;" msgstr "" -#: LLDBDebugger/UI.cpp:468 -msgid "" -"The port number on which the remote proxy server is accepting connections" +#: sdk/databaselayer/src/dblayer/PostgresDatabaseLayer.cpp:282 +msgid "COMMIT" msgstr "" -#: LLDBDebugger/UI.cpp:527 -msgid "Stop Reason" +#: sdk/databaselayer/src/dblayer/PostgresDatabaseLayer.cpp:287 +msgid "ROLLBACK" msgstr "" -#: LLDBDebugger/UI.cpp:625 +#: sdk/databaselayer/src/dblayer/PostgresDatabaseLayer.cpp:364 msgid "" -"You are debugging on a remote machine. In order for codelite\n" -"to be able to load files into the editor, codelite needs to map the folders " -"on\n" -"your local machine to the folders on the remote machine" -msgstr "" - -#: LLDBDebugger/UI.cpp:640 -msgid "Local Folder:" +"SELECT COUNT(*) FROM information_schema.tables WHERE table_type='BASE TABLE' " +"AND table_name=?;" msgstr "" -#: LLDBDebugger/UI.cpp:645 -msgid "Local Folder" +#: sdk/databaselayer/src/dblayer/PostgresDatabaseLayer.cpp:429 +msgid "" +"SELECT COUNT(*) FROM information_schema.tables WHERE table_type='VIEW' AND " +"table_name=?;" msgstr "" -#: LLDBDebugger/UI.cpp:649 -msgid "Remote Folder:" +#: sdk/databaselayer/src/dblayer/PostgresDatabaseLayer.cpp:490 +msgid "" +"SELECT table_name FROM information_schema.tables WHERE table_type='BASE " +"TABLE' AND table_schema='public';" msgstr "" -#: LLDBDebugger/UI.cpp:654 -msgid "Remote Folder" +#: sdk/databaselayer/src/dblayer/PostgresDatabaseLayer.cpp:529 +msgid "" +"SELECT table_name FROM information_schema.tables WHERE table_type='VIEW' AND " +"table_schema='public';" msgstr "" -#: LiteEditor/AccelTableBaseDlg.cpp:34 +#: sdk/databaselayer/src/dblayer/PostgresDatabaseLayer.cpp:573 msgid "" -"Search for a keyboard shortcut either by its keyboard shortcut or by its " -"description" +"SELECT column_name FROM information_schema.columns WHERE table_name=? ORDER " +"BY ordinal_position;" msgstr "" -#: LiteEditor/AccelTableBaseDlg.cpp:53 -msgid "Menu" +#: sdk/databaselayer/src/dblayer/PostgresPreparedStatement.cpp:277 +#, c-format +msgid "$%d" msgstr "" -#: LiteEditor/AccelTableBaseDlg.cpp:54 -msgid "Keyboard Shortcut" +#: sdk/databaselayer/src/dblayer/OdbcDatabaseLayer.cpp:383 +#: sdk/databaselayer/src/dblayer/OdbcDatabaseLayer.cpp:445 +msgid "TABLE" msgstr "" -#: LiteEditor/AccelTableBaseDlg.cpp:59 -msgid "&Edit..." +#: sdk/databaselayer/src/dblayer/OdbcDatabaseLayer.cpp:415 +#: sdk/databaselayer/src/dblayer/OdbcDatabaseLayer.cpp:496 +msgid "VIEW" msgstr "" -#: LiteEditor/AccelTableBaseDlg.cpp:63 -msgid "&Defaults" +#: sdk/databaselayer/src/dblayer/OdbcDatabaseLayer.cpp:597 +msgid "OdbcDatabaseLayer::InterpretErrorCodes()\n" msgstr "" -#: LiteEditor/BuildTabTopPanel.cpp:85 -msgid "Saved build log to file:\n" +#: sdk/databaselayer/src/dblayer/FirebirdResultSet.cpp:55 +msgid "Error retrieving Next record\n" msgstr "" -#: LiteEditor/CodeLiteUpgradeFrameBase.cpp:38 -msgid "Initializing CodeLite" +#: sdk/databaselayer/src/dblayer/FirebirdResultSet.cpp:139 +#: sdk/databaselayer/src/dblayer/FirebirdResultSet.cpp:181 +#: sdk/databaselayer/src/dblayer/FirebirdResultSet.cpp:254 +#: sdk/databaselayer/src/dblayer/FirebirdResultSet.cpp:310 +#: sdk/databaselayer/src/dblayer/FirebirdResultSet.cpp:376 +msgid "Invalid field type" msgstr "" -#: LiteEditor/CompilerMainPage.cpp:59 LiteEditor/CompilerMainPage.cpp:69 -#: LiteEditor/symbols_dialog.cpp:46 cscope/CscopeTabBase.cpp:47 -msgid "Pattern" +#: sdk/databaselayer/src/dblayer/FirebirdResultSet.cpp:542 +#: sdk/databaselayer/src/dblayer/OracleResultSet.cpp:245 +#: sdk/databaselayer/src/dblayer/OdbcResultSet.cpp:484 +#: sdk/databaselayer/src/dblayer/PostgresResultSet.cpp:243 +#: sdk/databaselayer/src/dblayer/OTLResultSet.cpp:321 +#: sdk/databaselayer/src/dblayer/TdsResultSet.cpp:344 +#: sdk/databaselayer/src/dblayer/MysqlPreparedStatementResultSet.cpp:297 +#: sdk/databaselayer/src/dblayer/MysqlPreparedStatementResultSet.cpp:318 +#: sdk/databaselayer/src/dblayer/SqliteResultSet.cpp:199 +msgid "Field '" msgstr "" -#: LiteEditor/CompilerMainPage.cpp:60 LiteEditor/CompilerMainPage.cpp:70 -msgid "File name index" +#: sdk/databaselayer/src/dblayer/FirebirdResultSet.cpp:542 +#: sdk/databaselayer/src/dblayer/OracleResultSet.cpp:245 +#: sdk/databaselayer/src/dblayer/OdbcResultSet.cpp:484 +#: sdk/databaselayer/src/dblayer/PostgresResultSet.cpp:243 +#: sdk/databaselayer/src/dblayer/OTLResultSet.cpp:321 +#: sdk/databaselayer/src/dblayer/TdsResultSet.cpp:344 +#: sdk/databaselayer/src/dblayer/MysqlPreparedStatementResultSet.cpp:297 +#: sdk/databaselayer/src/dblayer/MysqlPreparedStatementResultSet.cpp:318 +#: sdk/databaselayer/src/dblayer/SqliteResultSet.cpp:199 +msgid "' not found in the resultset" msgstr "" -#: LiteEditor/CompilerMainPage.cpp:61 LiteEditor/CompilerMainPage.cpp:71 -msgid "Line number index" +#: sdk/databaselayer/src/dblayer/FirebirdResultSet.cpp:559 +msgid "FirebirdResultSet::InterpretErrorCodes()\n" msgstr "" -#: LiteEditor/CompilerMainPage.cpp:62 LiteEditor/CompilerMainPage.cpp:72 -msgid "Column index" +#: sdk/databaselayer/src/dblayer/FirebirdParameter.cpp:75 +msgid "Parameter type is not compatible with parameter of type double\n" msgstr "" -#: LiteEditor/CompilerMainPage.cpp:88 -msgid "Extension" +#: sdk/databaselayer/src/dblayer/FirebirdPreparedStatementWrapper.cpp:43 +msgid "Error calling isc_dsql_free_statement" msgstr "" -#: LiteEditor/CompilerMainPage.cpp:89 LiteEditor/symbols_dialog.cpp:43 -#: codelitephp/php-plugin/php_ui.cpp:320 -msgid "Kind" +#: sdk/databaselayer/src/dblayer/FirebirdPreparedStatementWrapper.cpp:309 +msgid "SELECT " msgstr "" -#: LiteEditor/CompilerMainPage.cpp:90 -msgid "Compilation Line" +#: sdk/databaselayer/src/dblayer/FirebirdPreparedStatementWrapper.cpp:314 +msgid "FirebirdPreparesStatementWrapper::InterpretErrorCodes()\n" msgstr "" -#: LiteEditor/CompilerMainPage.cpp:95 LiteEditor/CompilerMainPage.cpp:101 -msgid "Switch" +#: sdk/databaselayer/src/dblayer/FirebirdPreparedStatement.cpp:79 +msgid "No SQL Statements found" msgstr "" -#: LiteEditor/CompilerMainPage.cpp:96 LiteEditor/CompilerMainPage.cpp:102 -#: Runtime/templates/projects/executable-wxcrafter-frame/wxcrafter.cpp:40 -#: codelite_terminal/wxcrafter.cpp:131 codelitephp/php-plugin/php.cpp:555 -msgid "Help" +#: sdk/databaselayer/src/dblayer/FirebirdPreparedStatement.cpp:415 +msgid "Invalid Prepared Statement Parameter" msgstr "" -#: LiteEditor/CompilerMainPage.cpp:109 -msgid "Add compiler error pattern" +#: sdk/databaselayer/src/dblayer/FirebirdPreparedStatement.cpp:422 +msgid "FirebirdPreparesStatement::InterpretErrorCodes()\n" msgstr "" -#: LiteEditor/CompilerMainPage.cpp:122 -msgid "Add compiler warning pattern" +#: sdk/databaselayer/src/dblayer/PostgresResultSet.cpp:77 +#: sdk/databaselayer/src/dblayer/PostgresResultSet.cpp:98 +#: sdk/databaselayer/src/dblayer/PostgresResultSet.cpp:120 +#: sdk/databaselayer/src/dblayer/PostgresResultSet.cpp:217 +msgid "Not implemented\n" msgstr "" -#: LiteEditor/CompilerMainPage.cpp:223 -msgid "Are you sure you want to delete this compiler option?" +#: sdk/databaselayer/src/dblayer/MysqlPreparedStatementParameter.cpp:82 +msgid "Error allocating buffer" msgstr "" -#: LiteEditor/CompilerMainPage.cpp:237 -msgid "Are you sure you want to delete this file type?" +#: sdk/databaselayer/src/dblayer/SqliteResultSetMetaData.cpp:21 +msgid "INTEGER" msgstr "" -#: LiteEditor/CompilerMainPage.cpp:249 -msgid "Are you sure you want to delete this linker option?" +#: sdk/databaselayer/src/dblayer/SqliteResultSetMetaData.cpp:21 +msgid "INT" msgstr "" -#: LiteEditor/CompilerMainPage.cpp:303 -msgid "Update compiler warning pattern" +#: sdk/databaselayer/src/dblayer/SqliteResultSetMetaData.cpp:21 +msgid "LONG" msgstr "" -#: LiteEditor/CompilerMainPage.cpp:319 -msgid "Update compiler error pattern" +#: sdk/databaselayer/src/dblayer/SqliteResultSetMetaData.cpp:23 +msgid "STRING" msgstr "" -#: LiteEditor/CompilerMainPage.cpp:625 -msgid " switch:" +#: sdk/databaselayer/src/dblayer/SqliteResultSetMetaData.cpp:23 +msgid "VARCHAR" msgstr "" -#: LiteEditor/CompilerMainPage.cpp:626 -#: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:129 -#: LiteEditor/options_dlg2.cpp:113 LiteEditor/tasksfindwhatdlgbase.cpp:56 -#: Plugin/wxcrafter_plugin.cpp:125 -msgid "Edit" +#: sdk/databaselayer/src/dblayer/SqliteResultSetMetaData.cpp:25 +msgid "DOUBLE" msgstr "" -#: LiteEditor/CompilerMainPage.cpp:672 LiteEditor/CompilerMainPage.cpp:690 -#: LiteEditor/editcmpfileinfobase.cpp:61 -msgid "Resource" +#: sdk/databaselayer/src/dblayer/SqliteResultSetMetaData.cpp:25 +msgid "FLOAT" msgstr "" -#: LiteEditor/CompilerMainPage.cpp:672 LiteEditor/editcmpfileinfobase.cpp:61 -msgid "Source" +#: sdk/databaselayer/src/dblayer/SqliteResultSetMetaData.cpp:27 +msgid "BOOL" msgstr "" -#: LiteEditor/CompilerMainPage.cpp:859 -msgid "Please fill all the fields" +#: sdk/databaselayer/src/dblayer/SqliteResultSetMetaData.cpp:29 +msgid "BLOB" msgstr "" -#: LiteEditor/CompilerMainPage.cpp:874 QmakePlugin/qmakesettingsdlg.cpp:105 -#: QmakePlugin/qmakesettingsdlg.cpp:130 -msgid "Rename..." +#: sdk/databaselayer/src/dblayer/SqliteResultSetMetaData.cpp:31 +msgid "DATE" msgstr "" -#: LiteEditor/CompilerMainPage.cpp:893 -msgid "" -"Are you sure you want to delete compiler\n" -"'" +#: sdk/databaselayer/src/dblayer/SqliteResultSetMetaData.cpp:31 +msgid "DATETIME" msgstr "" -#: LiteEditor/CompilerMainPage.cpp:895 -msgid "Delete Compiler" +#: sdk/databaselayer/src/dblayer/SqliteResultSetMetaData.cpp:31 +msgid "TIMESTAMP" msgstr "" -#: LiteEditor/CompilerMainPage.cpp:912 -msgid "New Compiler Name" +#: sdk/databaselayer/src/dblayer/SqliteDatabaseLayer.cpp:42 +msgid ":memory:" msgstr "" -#: LiteEditor/CompilerMainPage.cpp:912 -msgid "Rename Compiler" +#: sdk/databaselayer/src/dblayer/SqliteDatabaseLayer.cpp:46 +msgid "The specified database file '" msgstr "" -#: LiteEditor/CompilersFoundDlgBase.cpp:56 -msgid "" -"Below is a list of compilers found on your computer.\n" -"Click 'OK' to replace the current list of compilers with this list. 'Cancel' " -"to abort." +#: sdk/databaselayer/src/dblayer/SqliteDatabaseLayer.cpp:46 +msgid "' does not exist." msgstr "" -#: LiteEditor/CompilersFoundDlgBase.cpp:56 -msgid "Found Compilers" +#: sdk/databaselayer/src/dblayer/SqliteDatabaseLayer.cpp:105 +#: sdk/databaselayer/src/dblayer/TdsDatabaseLayer.cpp:409 +msgid "Beginning transaction" msgstr "" -#: LiteEditor/CompilersFoundDlgBase.cpp:70 -msgid "Compiler Name / Family" +#: sdk/databaselayer/src/dblayer/SqliteDatabaseLayer.cpp:106 +#: sdk/databaselayer/src/dblayer/TdsDatabaseLayer.cpp:410 +msgid "begin transaction;" msgstr "" -#: LiteEditor/CompilersFoundDlgBase.cpp:71 Plugin/clBoostrapWizardBase.cpp:124 -msgid "Installation Path" +#: sdk/databaselayer/src/dblayer/SqliteDatabaseLayer.cpp:111 +#: sdk/databaselayer/src/dblayer/TdsDatabaseLayer.cpp:415 +msgid "Commiting transaction" msgstr "" -#: LiteEditor/CompilersFoundDlgBase.cpp:80 -msgid "Double click a compiler to make it the default for its compiler family" +#: sdk/databaselayer/src/dblayer/SqliteDatabaseLayer.cpp:112 +#: sdk/databaselayer/src/dblayer/TdsDatabaseLayer.cpp:416 +msgid "commit transaction;" msgstr "" -#: LiteEditor/CompilersFoundDlgBase.cpp:125 -msgid "" -"Some of the compilers referred by the workspace no longer exist.\n" -"Define each missing compiler by cloning an existing compiler." +#: sdk/databaselayer/src/dblayer/SqliteDatabaseLayer.cpp:117 +#: sdk/databaselayer/src/dblayer/TdsDatabaseLayer.cpp:421 +msgid "Rolling back transaction" msgstr "" -#: LiteEditor/CompilersFoundDlgBase.cpp:137 -#: LiteEditor/advanced_settings.cpp:81 -msgid "Compilers" +#: sdk/databaselayer/src/dblayer/SqliteDatabaseLayer.cpp:118 +#: sdk/databaselayer/src/dblayer/TdsDatabaseLayer.cpp:422 +msgid "rollback transaction;" msgstr "" -#: LiteEditor/CompilersModifiedDlg.cpp:47 -msgid "Create a new compiler named '" +#: sdk/databaselayer/src/dblayer/SqliteDatabaseLayer.cpp:296 +msgid "SELECT COUNT(*) FROM sqlite_master WHERE type='table' AND name=?;" msgstr "" -#: LiteEditor/FileExplorerTab.cpp:252 LiteEditor/setters_getters_dlg.cpp:454 -#: abbreviation/abbreviationssettingsdlg.cpp:256 -msgid "'" +#: sdk/databaselayer/src/dblayer/SqliteDatabaseLayer.cpp:361 +msgid "SELECT COUNT(*) FROM sqlite_master WHERE type='view' AND name=?;" msgstr "" -#: LiteEditor/FileExplorerTab.cpp:252 -msgid "' is a directory. Are you sure you want to remove it and its content?" +#: sdk/databaselayer/src/dblayer/SqliteDatabaseLayer.cpp:422 +msgid "SELECT name FROM sqlite_master WHERE type='table';" msgstr "" -#: LiteEditor/FileExplorerTab.cpp:253 LiteEditor/FileExplorerTab.cpp:255 -msgid "Remove Directory" +#: sdk/databaselayer/src/dblayer/SqliteDatabaseLayer.cpp:461 +msgid "SELECT name FROM sqlite_master WHERE type='view';" msgstr "" -#: LiteEditor/FileExplorerTab.cpp:255 -msgid "Failed to remove directory" +#: sdk/databaselayer/src/dblayer/SqliteDatabaseLayer.cpp:505 +#, c-format +msgid "SELECT * FROM '%s' LIMIT 0;" msgstr "" -#: LiteEditor/FileExplorerTab.cpp:362 -#, c-format -msgid "" -"Could not find default application for file '%s'\n" -"Would you like CodeLite to open it?" +#: sdk/databaselayer/src/dblayer/FirebirdParameterCollection.cpp:162 +msgid "Error allocating space for unknown parameter type\n" msgstr "" -#: LiteEditor/NewProjectWizard.cpp:332 -msgid "Select Project Path:" +#: sdk/databaselayer/src/dblayer/FirebirdParameterCollection.cpp:215 +msgid "Error deleting unknown parameter type\n" msgstr "" -#: LiteEditor/NewProjectWizard.cpp:337 LiteEditor/newworkspacedlg.cpp:80 -msgid "The selected project path '" +#: sdk/databaselayer/src/dblayer/OTLResultSet.cpp:123 +msgid "Invalid Date" msgstr "" -#: LiteEditor/NewProjectWizard.cpp:338 -msgid "" -"'\n" -"contains some invalid characters\n" -"Continue anyway?" +#: sdk/databaselayer/src/dblayer/OTLResultSet.cpp:139 +#, c-format +msgid "Result as string: '%s'\n" msgstr "" -#: LiteEditor/NewProjectWizard.cpp:394 -msgid "' already exists at the target directory '" +#: sdk/databaselayer/src/dblayer/DatabaseQueryParser.cpp:6 +#: sdk/databaselayer/src/dblayer/OTLDatabaseLayer.cpp:73 +#: sdk/databaselayer/src/dblayer/OTLDatabaseLayer.cpp:81 +msgid ";" msgstr "" -#: LiteEditor/NewProjectWizard.cpp:394 -msgid "The File '" +#: sdk/databaselayer/src/dblayer/SqliteResultSet.cpp:66 +#: sdk/databaselayer/src/dblayer/SqlitePreparedStatement.cpp:265 +msgid "Error with RunQueryWithResults\n" msgstr "" -#: LiteEditor/NewProjectWizard.cpp:396 -msgid "Please select a different project path\n" +#: sdk/databaselayer/src/dblayer/SqliteResultSet.cpp:72 +msgid "Unknown error advancing result set" msgstr "" -#: LiteEditor/NewProjectWizard.cpp:397 -msgid "' is part of the template project [" +#: sdk/databaselayer/src/dblayer/OdbcPreparedStatement.cpp:388 +msgid "OdbcPreparedStatement::InterpretErrorCodes()\n" msgstr "" -#: LiteEditor/NewProjectWizard.cpp:397 -msgid "The file '" +#: sdk/databaselayer/src/dblayer/TdsDatabaseLayer.cpp:129 +msgid "USE " msgstr "" -#: LiteEditor/NewProjectWizard.cpp:492 -msgid "Project names may contain only the following characters [a-z0-9_-]" +#: sdk/databaselayer/src/dblayer/TdsDatabaseLayer.cpp:582 +msgid "exec sp_tables ?, NULL, NULL, '''TABLE'''" msgstr "" -#: LiteEditor/NewProjectWizard.cpp:506 -msgid "Invalid project path selected: " +#: sdk/databaselayer/src/dblayer/TdsDatabaseLayer.cpp:593 +#: sdk/databaselayer/src/dblayer/TdsDatabaseLayer.cpp:658 +#: sdk/databaselayer/src/dblayer/TdsDatabaseLayer.cpp:715 +#: sdk/databaselayer/src/dblayer/TdsDatabaseLayer.cpp:755 +msgid "TABLE_NAME" msgstr "" -#: LiteEditor/NewProjectWizard.cpp:517 -msgid "Please select a template from the list" +#: sdk/databaselayer/src/dblayer/TdsDatabaseLayer.cpp:647 +msgid "exec sp_tables ?, NULL, NULL, '''VIEW'''" msgstr "" -#: LiteEditor/WelcomePage.cpp:75 -msgid "Select file to open" +#: sdk/databaselayer/src/dblayer/TdsDatabaseLayer.cpp:709 +msgid "sp_tables NULL, NULL, NULL, '''TABLE'''" msgstr "" -#: LiteEditor/WelcomePage.cpp:94 -msgid "Open workspace" +#: sdk/databaselayer/src/dblayer/TdsDatabaseLayer.cpp:749 +msgid "sp_tables NULL, NULL, NULL, '''VIEW'''" msgstr "" -#: LiteEditor/acceltabledlg.cpp:184 +#: sdk/databaselayer/src/dblayer/TdsDatabaseLayer.cpp:846 #, c-format -msgid "'%s' is already assigned to: '%s'" +msgid "sp_columns %s;" msgstr "" -#: LiteEditor/addincludefiledlgbase.cpp:44 -msgid "Edit the line to add:" +#: sdk/databaselayer/src/dblayer/TdsDatabaseLayer.cpp:852 +msgid "COLUMN_NAME" msgstr "" -#: LiteEditor/addincludefiledlgbase.cpp:58 LiteEditor/batchbuildbasedlg.cpp:79 -msgid "Move Up" +#: sdk/databaselayer/src/dblayer/FirebirdDatabaseLayer.cpp:394 +#: sdk/databaselayer/src/dblayer/FirebirdDatabaseLayer.cpp:471 +msgid "Unable to start transaction" msgstr "" -#: LiteEditor/addincludefiledlgbase.cpp:58 -msgid "Move the #include statement one line up" +#: sdk/databaselayer/src/dblayer/FirebirdDatabaseLayer.cpp:439 +#: sdk/databaselayer/src/dblayer/FirebirdDatabaseLayer.cpp:659 +msgid "Database handle is NULL" msgstr "" -#: LiteEditor/addincludefiledlgbase.cpp:60 LiteEditor/batchbuildbasedlg.cpp:82 -msgid "Move Down" +#: sdk/databaselayer/src/dblayer/FirebirdDatabaseLayer.cpp:697 +msgid "" +"SELECT COUNT(*) FROM RDB$RELATIONS WHERE RDB$SYSTEM_FLAG=0 AND RDB$VIEW_BLR " +"IS NULL AND RDB$RELATION_NAME=?;" msgstr "" -#: LiteEditor/addincludefiledlgbase.cpp:60 -msgid "Move the #include statement one line down" +#: sdk/databaselayer/src/dblayer/FirebirdDatabaseLayer.cpp:763 +msgid "" +"SELECT COUNT(*) FROM RDB$RELATIONS WHERE RDB$SYSTEM_FLAG=0 AND RDB$VIEW_BLR " +"IS NOT NULL AND RDB$RELATION_NAME=?;" msgstr "" -#: LiteEditor/addincludefiledlgbase.cpp:62 -msgid "Clear Cached Paths" +#: sdk/databaselayer/src/dblayer/FirebirdDatabaseLayer.cpp:824 +msgid "" +"SELECT RDB$RELATION_NAME FROM RDB$RELATIONS WHERE RDB$SYSTEM_FLAG=0 AND RDB" +"$VIEW_BLR IS NULL" msgstr "" -#: LiteEditor/addincludefiledlgbase.cpp:123 -msgid "Line to add:" +#: sdk/databaselayer/src/dblayer/FirebirdDatabaseLayer.cpp:863 +msgid "" +"SELECT RDB$RELATION_NAME FROM RDB$RELATIONS WHERE RDB$SYSTEM_FLAG=0 AND RDB" +"$VIEW_BLR IS NOT NULL" msgstr "" -#: LiteEditor/addincludefiledlgbase.cpp:143 -msgid "File's full path:" +#: sdk/databaselayer/src/dblayer/FirebirdDatabaseLayer.cpp:907 +msgid "" +"SELECT RDB$FIELD_NAME FROM RDB$RELATION_FIELDS WHERE RDB$RELATION_NAME=?;" msgstr "" -#: LiteEditor/addoptioncheckdlgbase.cpp:44 -msgid "Check the command line options you need" +#: sdk/databaselayer/src/dblayer/MysqlResultSetMetaData.cpp:54 +#, c-format +msgid "Don't understand type : %d\n" msgstr "" -#: LiteEditor/addoptioncheckdlgbase.cpp:55 -msgid "Enter other options" +#: sdk/databaselayer/src/dblayer/PreparedStatement.cpp:24 +msgid "ResultSet NOT closed and cleaned up by the PreparedStatement dtor" msgstr "" -#: LiteEditor/addoptioncheckdlgbase.cpp:63 -msgid "Command line" +#: sdk/databaselayer/src/dblayer/OTLDatabaseLayer.cpp:68 +#: sdk/databaselayer/src/dblayer/OracleDatabaseLayer.cpp:68 +msgid "Host=" msgstr "" -#: LiteEditor/advance_settings_base.cpp:62 -msgid "Restore Defaults..." +#: sdk/databaselayer/src/dblayer/OTLDatabaseLayer.cpp:74 +#: sdk/databaselayer/src/dblayer/OracleDatabaseLayer.cpp:72 +msgid "Port=" msgstr "" -#: LiteEditor/advance_settings_base.cpp:63 -msgid "" -"Revert all the changes and restore all the build settings to the factory " -"defaults" +#: sdk/databaselayer/src/dblayer/OTLDatabaseLayer.cpp:82 +#: sdk/databaselayer/src/dblayer/OracleDatabaseLayer.cpp:80 +msgid "Service Name=" msgstr "" -#: LiteEditor/advanced_settings.cpp:83 -msgid "Build Output Appearance" +#: sdk/databaselayer/src/dblayer/OTLDatabaseLayer.cpp:108 +#: sdk/databaselayer/src/dblayer/OracleDatabaseLayer.cpp:101 +msgid "Error creating database connection" msgstr "" -#: LiteEditor/advanced_settings.cpp:86 -msgid "Build Systems" +#: sdk/databaselayer/src/dblayer/DatabaseLayer.cpp:30 +msgid "ResultSet NOT closed and cleaned up by the DatabaseLayer dtor" msgstr "" -#: LiteEditor/advanced_settings.cpp:143 -msgid "A compiler with this name already exists" +#: sdk/databaselayer/src/dblayer/DatabaseLayer.cpp:44 +msgid "PreparedStatement NOT closed and cleaned up by the DatabaseLayer dtor" msgstr "" -#: LiteEditor/advanced_settings.cpp:160 LiteEditor/edit_configuration.cpp:183 -#: LiteEditor/fileview.cpp:978 LiteEditor/fileview.cpp:1016 -#: LiteEditor/fileview.cpp:1211 LiteEditor/frame.cpp:2383 -#: LiteEditor/frame.cpp:3000 LiteEditor/mainbook.cpp:250 -#: LiteEditor/manager.cpp:2845 LiteEditor/manager.cpp:2896 -#: LiteEditor/manager.cpp:2935 LiteEditor/syntaxhighlightdlg.cpp:623 -#: LiteEditor/tasks_find_what_dlg.cpp:91 -#: Subversion2/svn_checkout_dialog.cpp:84 -msgid "Confirm" +#: sdk/databaselayer/src/dblayer/DatabaseLayer.cpp:158 +#: sdk/databaselayer/src/dblayer/DatabaseLayer.cpp:242 +#: sdk/databaselayer/src/dblayer/DatabaseLayer.cpp:326 +#: sdk/databaselayer/src/dblayer/DatabaseLayer.cpp:410 +#: sdk/databaselayer/src/dblayer/DatabaseLayer.cpp:494 +#: sdk/databaselayer/src/dblayer/DatabaseLayer.cpp:578 +#: sdk/databaselayer/src/dblayer/DatabaseLayer.cpp:662 +#: sdk/databaselayer/src/dblayer/DatabaseLayer.cpp:732 +#: sdk/databaselayer/src/dblayer/DatabaseLayer.cpp:785 +#: sdk/databaselayer/src/dblayer/DatabaseLayer.cpp:838 +#: sdk/databaselayer/src/dblayer/DatabaseLayer.cpp:892 +msgid "string" msgstr "" -#: LiteEditor/advanced_settings.cpp:160 -msgid "Remove Compiler?" +#: sdk/databaselayer/src/dblayer/OracleDatabaseLayer.cpp:11 +msgid "1521" msgstr "" -#: LiteEditor/advanced_settings.cpp:180 -msgid "Are you sure you want to revert to the default settings?" +#: LiteEditor/tabgroupdlg.cpp:67 +msgid "Select a tab group:" msgstr "" -#: LiteEditor/advanced_settings.cpp:203 -msgid "Add an existing compiler" +#: LiteEditor/tabgroupdlg.cpp:71 +msgid "Tab groups" msgstr "" -#: LiteEditor/advanced_settings.cpp:204 -msgid "Clone a compiler" +#: LiteEditor/new_item_dlg.cpp:67 +msgid "File Type" msgstr "" -#: LiteEditor/advanced_settings.cpp:206 -msgid "Scan computer for installed compilers" +#: LiteEditor/new_item_dlg.cpp:128 LiteEditor/new_item_base_dlg.cpp:73 +msgid "Location:" msgstr "" -#: LiteEditor/advanced_settings.cpp:265 -msgid "Select the compiler folder" +#: LiteEditor/new_item_dlg.cpp:184 +msgid "Missing location" msgstr "" -#: LiteEditor/advanced_settings.cpp:276 -msgid "New compiler found!" +#: LiteEditor/new_item_dlg.cpp:190 +msgid "A file with that name already exists. Please choose a different name" msgstr "" -#: LiteEditor/advanced_settings.cpp:276 -msgid "Set a name to the compiler" +#: LiteEditor/new_item_dlg.cpp:195 +msgid "Missing file name" msgstr "" -#: LiteEditor/attachdbgprocbasedlg.cpp:50 -msgid "Debugger to use:" +#: LiteEditor/configuration_manager_base_dlg.cpp:59 +msgid "Workspace Configuration:" msgstr "" -#: LiteEditor/attachdbgprocbasedlg.cpp:59 -msgid "Filter:" +#: LiteEditor/configuration_manager_base_dlg.cpp:73 +msgid "Available project configurations:" msgstr "" -#: LiteEditor/attachdbgprocbasedlg.cpp:68 -msgid "Processes:" +#: LiteEditor/configuration_manager_base_dlg.cpp:107 +#: LiteEditor/options_base_dlg2.cpp:52 LiteEditor/buildorderbasepage.cpp:121 +msgid "Apply" msgstr "" -#: LiteEditor/attachdbgprocbasedlg.cpp:81 -msgid "&Attach" +#: LiteEditor/importfilesdialog_new.h:47 +#: LiteEditor/importfilesdialog_new.cpp:31 +msgid "Import Files" msgstr "" -#: LiteEditor/attachdbgprocbasedlg.cpp:88 -msgid "&Refresh" +#: LiteEditor/outputtabwindow.cpp:196 +msgid "Keep open" msgstr "" -#: LiteEditor/attachdbgprocdlg.cpp:55 -msgid "PID" +#: LiteEditor/outputtabwindow.cpp:198 LiteEditor/wxcrafter.cpp:93 +msgid "Don't close this pane when an editor gets focus" msgstr "" -#: LiteEditor/batchbuildbasedlg.cpp:44 -msgid "Select the configurations to build/clean:" +#: LiteEditor/outputtabwindow.cpp:202 LiteEditor/outputtabwindow.cpp:204 +msgid "Scroll on Output" msgstr "" -#: LiteEditor/batchbuildbasedlg.cpp:61 -msgid "&Build" +#: LiteEditor/outputtabwindow.cpp:209 LiteEditor/outputtabwindow.cpp:211 +msgid "Word Wrap" msgstr "" -#: LiteEditor/batchbuildbasedlg.cpp:65 -msgid "&Clean" +#: LiteEditor/outputtabwindow.cpp:215 LiteEditor/tabgroupbasedlgs.cpp:139 +msgid "Clear All" msgstr "" -#: LiteEditor/batchbuildbasedlg.cpp:71 LiteEditor/rename_symbool_dlg.cpp:93 -#: LiteEditor/rename_symbool_dlg.cpp:219 -msgid "&Uncheck All" +#: LiteEditor/outputtabwindow.cpp:218 LiteEditor/outputtabwindow.cpp:220 +msgid "Fold All Results" msgstr "" -#: LiteEditor/breakpointdlg.cpp:93 LiteEditor/cl_editor.cpp:3215 -msgid "Breakpoint successfully deleted" +#: LiteEditor/outputtabwindow.cpp:223 +msgid "Repeat" msgstr "" -#: LiteEditor/breakpointdlg.cpp:106 -msgid "All Breakpoints deleted" +#: LiteEditor/dbgcommandbasedlg.cpp:50 codelitephp/php-plugin/new_class.cpp:40 +msgid "Type:" msgstr "" -#: LiteEditor/breakpointdlg.cpp:118 -msgid "Pending Breakpoints reapplied" +#: LiteEditor/dbgcommandbasedlg.cpp:57 +msgid "Expression:" msgstr "" -#: LiteEditor/breakpointdlg.cpp:192 -msgid "Temp. " +#: LiteEditor/dbgcommandbasedlg.cpp:64 +msgid "Debugger command:" msgstr "" -#: LiteEditor/breakpointdlg.cpp:194 LiteEditor/breakpointdlgbase.cpp:141 -#: LiteEditor/breakpointpropertiesdlg.cpp:241 -msgid "Breakpoint" +#: LiteEditor/ps_general_page.cpp:172 LiteEditor/new_build_tab.cpp:949 +#: LiteEditor/ps_compiler_page.cpp:120 +#: DatabaseExplorer/SqlCommandPanel.cpp:299 +msgid "Choose a file" +msgstr "" + +#: LiteEditor/ps_general_page.cpp:181 +msgid "Choose a directory" msgstr "" -#: LiteEditor/breakpointdlg.cpp:194 LiteEditor/breakpointdlgbase.cpp:221 -#: LiteEditor/breakpointpropertiesdlg.cpp:111 -msgid "Watchpoint" +#: LiteEditor/newworkspacebasedlg.h:54 LiteEditor/wxcrafter.cpp:400 +msgid "New Workspace" msgstr "" -#: LiteEditor/breakpointdlg.cpp:199 -msgid "disabled" +#: LiteEditor/filechecklistbase.h:46 +msgid "Select Files" msgstr "" -#: LiteEditor/breakpointdlgbase.cpp:62 LiteEditor/findinfiles_dlg.cpp:79 -#: Plugin/sftp_ui.cpp:61 -msgid "&Add" +#: LiteEditor/filechecklistbase.h:77 +msgid "Files were modified outside the editor" msgstr "" -#: LiteEditor/breakpointdlgbase.cpp:63 -msgid "Add a new breakpoint or watchpoint" +#: LiteEditor/addoptioncheckdlgbase.cpp:44 +msgid "Check the command line options you need" msgstr "" -#: LiteEditor/breakpointdlgbase.cpp:67 Plugin/sftp_ui.cpp:71 -msgid "&Edit" +#: LiteEditor/addoptioncheckdlgbase.cpp:55 +msgid "Enter other options" msgstr "" -#: LiteEditor/breakpointdlgbase.cpp:68 -msgid "Edit the selected item" +#: LiteEditor/addoptioncheckdlgbase.cpp:63 +msgid "Command line" msgstr "" -#: LiteEditor/breakpointdlgbase.cpp:72 -#: LiteEditor/debuggersettingsbasedlg.cpp:164 -#: LiteEditor/debuggersettingsbasedlg.cpp:551 -#: LiteEditor/edit_configuration.cpp:82 -#: LiteEditor/edit_workspace_conf_dlg.cpp:66 -#: LiteEditor/manageperspectivesbasedlg.cpp:53 -#: LiteEditor/reconcileprojectbase.cpp:192 Plugin/sftp_ui.cpp:66 -#: codelitephp/php-plugin/php_editor_context_menu.cpp:138 -msgid "&Delete" +#: LiteEditor/rename_symbool_dlg.h:81 +msgid "Rename Symbol" msgstr "" -#: LiteEditor/breakpointdlgbase.cpp:73 -msgid "Delete the selected item" +#: LiteEditor/rename_symbool_dlg.h:106 +msgid "Rename Symbol Scope" msgstr "" -#: LiteEditor/breakpointdlgbase.cpp:77 LiteEditor/reconcileprojectbase.cpp:196 -msgid "Delete &All" +#: LiteEditor/new_build_tab.cpp:370 +msgid "errors" msgstr "" -#: LiteEditor/breakpointdlgbase.cpp:78 -msgid "Delete all breakpoints and watchpoints" +#: LiteEditor/new_build_tab.cpp:370 +msgid "warnings" msgstr "" -#: LiteEditor/breakpointdlgbase.cpp:82 -msgid "Set Pending" +#: LiteEditor/new_build_tab.cpp:377 +msgid "total time" msgstr "" -#: LiteEditor/breakpointdlgbase.cpp:83 -msgid "" -"If this button is visible, there are breakpoints that you tried to set, but " -"that the debugger refused. This most often happens when the breakpoint is " -"inside a library that hadn't been loaded when the debugger started.\n" -"\n" -"Click to offer the breakpoints to the debugger again." +#: LiteEditor/new_build_tab.cpp:377 +msgid "seconds" msgstr "" -#: LiteEditor/breakpointdlgbase.cpp:132 -msgid "Select the type of the breakpoint:" +#: LiteEditor/new_build_tab.cpp:385 +msgid "(Build Cancelled)" msgstr "" -#: LiteEditor/breakpointdlgbase.cpp:146 -msgid "Break by line, function or memory address:" +#: LiteEditor/new_build_tab.cpp:949 +msgid "Select a file to open:" msgstr "" -#: LiteEditor/breakpointdlgbase.cpp:167 -msgid "" -"Enter the line-number on which you wish to break. It's assumed to refer to " -"the current file: if it doesn't, please enter the correct filepath below." +#: LiteEditor/new_build_tab.cpp:1051 +msgid "Copy Selected Line" msgstr "" -#: LiteEditor/breakpointdlgbase.cpp:171 -msgid "Function name" +#: LiteEditor/new_build_tab.cpp:1052 +msgid "Copy Entire Build Output To Clipboard" msgstr "" -#: LiteEditor/breakpointdlgbase.cpp:177 -msgid "" -"If you wish to break when a particular function is entered, insert its name " -"here. In C just the name will do e.g. 'main' or 'myFoo'. For C++ class " -"methods, you need to do 'MyClass::myFoo'\n" -"\n" -"Alternatively you can enter a regular expression, and tick the checkbox " -"below. A breakpoint will then be set on all matching functions." +#: LiteEditor/new_build_tab.cpp:1053 +msgid "Open Build Output in an Empty Editor" msgstr "" -#: LiteEditor/breakpointdlgbase.cpp:183 -msgid "This is a regex" +#: LiteEditor/implementparentvirtualfunctionsbase.cpp:55 +msgid "Implement inherited virtual functions" msgstr "" -#: LiteEditor/breakpointdlgbase.cpp:185 +#: LiteEditor/implementparentvirtualfunctionsbase.cpp:55 msgid "" -"If you wish to insert a breakpoint on several functions, you can tick this " -"box, then enter a suitable regular expression in the textctrl above." +"Select from the list below the functions that you want to override in your " +"class" msgstr "" -#: LiteEditor/breakpointdlgbase.cpp:189 -msgid "Memory address:" +#: LiteEditor/implementparentvirtualfunctionsbase.cpp:65 +msgid "File:" msgstr "" -#: LiteEditor/breakpointdlgbase.cpp:195 -msgid "" -"To break on a memory address, enter the address here.\n" -"e.g. 0x0a1b2c3d or 12345678" +#: LiteEditor/implementparentvirtualfunctionsbase.cpp:70 +msgid "Generate the functions in this filename" msgstr "" -#: LiteEditor/breakpointdlgbase.cpp:199 -msgid "In file:" +#: LiteEditor/implementparentvirtualfunctionsbase.cpp:79 +msgid "" +"Select which function to generate by ticking the '?' column\n" +"All fields on this table are editable" msgstr "" -#: LiteEditor/breakpointdlgbase.cpp:208 -msgid "" -"If you've entered a line-number, its assumed to refer to the current file. " -"If it isn't, enter the correct filename here.\n" -"\n" -"For a function, a file is usually not required. However, if you have several " -"functions with the same name, in several different files (do people _really_ " -"do that?) and you want to break on only one of those, enter the correct " -"filename here." +#: LiteEditor/implementparentvirtualfunctionsbase.cpp:87 +#: LiteEditor/setters_getters.cpp:78 LiteEditor/wxcrafter.cpp:316 +#: LiteEditor/rename_symbool_dlg.cpp:82 +#: LiteEditor/importfilesdialog_new.cpp:52 CMakePlugin/CMakePluginUi.cpp:104 +#: codelitephp/php-plugin/php_ui.cpp:2145 +msgid "?" msgstr "" -#: LiteEditor/breakpointdlgbase.cpp:230 -msgid "Type of watchpoint:" +#: LiteEditor/implementparentvirtualfunctionsbase.cpp:91 +msgid "public" msgstr "" -#: LiteEditor/breakpointdlgbase.cpp:231 -msgid "" -"The usual type of watchpoint is 'write-only': that is, it's triggered " -"whenever the target is changed.\n" -"\n" -"Alternatively you can choose for it to trigger when the target is read from, " -"or either written to or read from." +#: LiteEditor/implementparentvirtualfunctionsbase.cpp:92 +msgid "protected" msgstr "" -#: LiteEditor/breakpointdlgbase.cpp:236 -msgid "Data to watch:" +#: LiteEditor/implementparentvirtualfunctionsbase.cpp:93 +msgid "private" msgstr "" -#: LiteEditor/breakpointdlgbase.cpp:241 -msgid "" -"Identify the data to be watched. It can be one of:\n" -"1) Any variable name e.g. 'foo'\n" -"2) A memory address, suitably cast e.g.*(int*)0x12345678 will watch an int-" -"sized block starting at this address.\n" -"Don't include spaces in the expression: gdb can't understand them.\n" -"3) A complex expression e.g. a*b + c/d'. The expression can use any " -"operators valid in the program's native language.\n" -"\n" -"NB. A watchpoint set on a local variable will automatically be removed when " -"the variable loses scope." +#: LiteEditor/implementparentvirtualfunctionsbase.cpp:94 +msgid "Visibility" msgstr "" -#: LiteEditor/breakpointdlgbase.cpp:249 -msgid "Conditional Breaks: Add any condition here" +#: LiteEditor/implementparentvirtualfunctionsbase.cpp:97 +msgid "Virtual" msgstr "" -#: LiteEditor/breakpointdlgbase.cpp:254 -msgid "" -"You can add a condition to any breakpoint or watchpoint. The debugger will " -"then stop only if the condition is met.\n" -"\n" -"The condition can be any simple or complex expression in your programming " -"language,providing it returns a bool. However any variables that you use " -"must be in scope.\n" -"\n" -"If you've previously set a condition and no longer want it, just clear this " -"textctrl." +#: LiteEditor/implementparentvirtualfunctionsbase.cpp:98 +msgid "Generate doxygen comment?" msgstr "" -#: LiteEditor/breakpointdlgbase.cpp:258 -msgid "Command List: Add any command(s) here" +#: LiteEditor/implementparentvirtualfunctionsbase.cpp:103 +#: LiteEditor/wxcrafter.cpp:322 +msgid "Check all" msgstr "" -#: LiteEditor/breakpointdlgbase.cpp:263 -msgid "" -"You can add a list of commands to any breakpoint or watchpoint. When the " -"breakpoint is hit and the program interrupted, those commands will be " -"executed.\n" -"\n" -"For example, to print the value of the variable foo and then continue " -"running the program, enter:\n" -"print foo\n" -"cont\n" -"\n" -"If you've previously entered commands, and no longer want them, just clear " -"this textctrl." +#: LiteEditor/implementparentvirtualfunctionsbase.cpp:107 +#: LiteEditor/wxcrafter.cpp:326 +msgid "Uncheck all" msgstr "" -#: LiteEditor/breakpointdlgbase.cpp:277 -msgid "Disable" +#: LiteEditor/implementparentvirtualfunctionsbase.cpp:115 +msgid "Format text after insertion" msgstr "" -#: LiteEditor/breakpointdlgbase.cpp:279 -msgid "" -"If you check this box, the breakpoint (or watchpoint) will still exist, but " -"it won't trigger. If you uncheck it in the future, the breakpoint will work " -"again." +#: LiteEditor/taskpanel.cpp:53 +msgid "Sources" msgstr "" -#: LiteEditor/breakpointdlgbase.cpp:283 -msgid "Make temporary" +#: LiteEditor/taskpanel.cpp:55 cppchecker/cppchecksettingsdlg.cpp:148 +msgid "All Files" msgstr "" -#: LiteEditor/breakpointdlgbase.cpp:285 -msgid "" -"A temporary breakpoint (or watchpoint) is one that works only once. When " -"it's hit it behaves like any other, except that it's then deleted." +#: LiteEditor/taskpanel.cpp:60 menu.xrc:334 +msgid "&Search" msgstr "" -#: LiteEditor/breakpointdlgbase.cpp:289 -msgid "Ignore count:" +#: LiteEditor/taskpanel.cpp:63 LiteEditor/tasksfindwhatdlgbase.h:81 +msgid "Find What..." msgstr "" -#: LiteEditor/breakpointdlgbase.cpp:290 -msgid "" -"Enter a count >0 to ignore this breakpoint (or watchpoint) for that number " -"of times. It then behaves as though it is disabled, except that every time " -"it would have triggered, the ignore count decrements.\n" -"When the count reaches zero, the breakpoint becomes active again." +#: LiteEditor/taskpanel.cpp:69 +msgid "Select the scope of the search" msgstr "" -#: LiteEditor/breakpointpropertiesdlg.cpp:116 -msgid "" -"You don't seem to have entered a variable for the watchpoint to watch. " -"Please try again." +#: LiteEditor/taskpanel.cpp:74 +msgid "Encoding to use for the search" msgstr "" -#: LiteEditor/breakpointpropertiesdlg.cpp:136 -#: LiteEditor/breakpointpropertiesdlg.cpp:147 -msgid ":/" +#: LiteEditor/clang_driver.cpp:285 +msgid "" +"Could not locate compilation database or database version is not up-to-date: " msgstr "" -#: LiteEditor/breakpointpropertiesdlg.cpp:136 -msgid "The breakpoint's line-number is invalid. Please try again." +#: LiteEditor/clang_driver.cpp:287 +msgid "" +"This file should be created automatically for you.\n" +"If you don't have it, please run a full rebuild of your workspace\n" +"\n" msgstr "" -#: LiteEditor/breakpointpropertiesdlg.cpp:146 +#: LiteEditor/clang_driver.cpp:289 msgid "" -"You don't seem to have entered a name for the function. Please try again." +"If this is a custom build project (i.e. project that uses a custom " +"makefile),\n" +"please set the CXX and CC environment variables like this:\n" msgstr "" -#: LiteEditor/breakpointpropertiesdlg.cpp:197 -#: LiteEditor/breakpointpropertiesdlg.cpp:199 LiteEditor/debugcoredump.cpp:173 -#: LiteEditor/quickdebugdlg.cpp:96 -msgid "Select file:" +#: LiteEditor/clang_driver.cpp:290 +msgid "CXX=codelite-cc g++\n" msgstr "" -#: LiteEditor/breakpointpropertiesdlg.cpp:232 +#: LiteEditor/clang_driver.cpp:291 msgid "" -"Sorry, you can't change a breakpoint to a watchpoint, or vice versa, while " -"the debugger is running" +"CC=codelite-cc gcc\n" +"\n" msgstr "" -#: LiteEditor/breakpointpropertiesdlg.cpp:233 -msgid "Not possible" +#: LiteEditor/plugindlgbase.cpp:44 +msgid "Available Plugins:" msgstr "" -#: LiteEditor/breakpointsmgr.cpp:101 -msgid "Create a breakpoint or watchpoint" +#: LiteEditor/plugindlgbase.cpp:72 LiteEditor/setters_getters.cpp:83 +#: LiteEditor/batchbuildbasedlg.cpp:68 LiteEditor/filechecklistbase.cpp:50 +#: Copyright/copyrights_proj_sel_base_dlg.cpp:63 +#: UnitTestCPP/testclassbasedlg.cpp:112 +msgid "Check &All" msgstr "" -#: LiteEditor/breakpointsmgr.cpp:119 -msgid "Watchpoint successfully added" +#: LiteEditor/pluginmanager.cpp:273 +msgid " ToolBar" msgstr "" -#: LiteEditor/breakpointsmgr.cpp:121 LiteEditor/cl_editor.cpp:3188 -msgid "Breakpoint successfully added" +#: LiteEditor/quickdebugbase.cpp:40 +msgid "Select executable:" msgstr "" -#: LiteEditor/breakpointsmgr.cpp:172 -msgid "Breakpoint# " +#: LiteEditor/quickdebugbase.cpp:46 +msgid "" +"Enter the filepath to the program that you want to debug.\n" +"Alternatively, if you enter the path below, putting just the filename here " +"will suffice." msgstr "" -#: LiteEditor/breakpointsmgr.cpp:176 -msgid "Temporary \n" +#: LiteEditor/quickdebugbase.cpp:64 +msgid "" +"Optionally, enter the path where the program that you want to debug can be " +"found" msgstr "" -#: LiteEditor/breakpointsmgr.cpp:181 -msgid " (disabled)\n" +#: LiteEditor/quickdebugbase.cpp:75 +msgid "Program arguments:" msgstr "" -#: LiteEditor/breakpointsmgr.cpp:186 -#, c-format -msgid "Ignore-count = %u\n" +#: LiteEditor/quickdebugbase.cpp:90 LiteEditor/ps_debugger_page.cpp:106 +#: LiteEditor/debugcoredumpbase.cpp:87 +msgid "Select debugger:" msgstr "" -#: LiteEditor/breakpointsmgr.cpp:191 -#, c-format -msgid "" -"Condition:\n" -"%s\n" +#: LiteEditor/quickdebugbase.cpp:103 +msgid "Startup commands:" msgstr "" -#: LiteEditor/breakpointsmgr.cpp:196 -#, c-format -msgid "" -"Commands:\n" -"%s\n" +#: LiteEditor/threadlistpanel.cpp:50 +msgid "Thread ID" msgstr "" -#: LiteEditor/breakpointsmgr.cpp:201 -msgid "Normal breakpoint\n" +#: LiteEditor/threadlistpanel.cpp:51 +msgid "Active" msgstr "" -#: LiteEditor/breakpointsmgr.cpp:360 -msgid "Breakpoint " +#: LiteEditor/threadlistpanel.cpp:52 LiteEditor/wxcrafter.cpp:317 +#: LiteEditor/breakpointslistctrl.h:46 LiteEditor/listctrlpanelbase.cpp:59 +#: LLDBDebugger/UI.cpp:34 LLDBDebugger/UI.cpp:162 LLDBDebugger/UI.cpp:558 +msgid "Function" msgstr "" -#: LiteEditor/breakpointsmgr.cpp:360 -msgid "Watchpoint " +#: LiteEditor/CompilerMainPage.h:78 +msgid "Compiler option" msgstr "" -#: LiteEditor/breakpointsmgr.cpp:361 +#: LiteEditor/CompilerMainPage.h:87 +msgid "Linker option" +msgstr "" + +#: LiteEditor/dbcontentcacher.cpp:58 #, c-format -msgid "%u deleted" +msgid "Symbols file loaded into OS file system cache (%ld seconds)" msgstr "" -#: LiteEditor/breakpointsmgr.cpp:486 -msgid "breakpoints disabled" +#: LiteEditor/wxcrafter.h:159 +msgid "Add function implementation" msgstr "" -#: LiteEditor/breakpointsmgr.cpp:486 -msgid "breakpoints enabled" +#: LiteEditor/wxcrafter.h:296 +msgid "EditorFrame" msgstr "" -#: LiteEditor/breakpointsmgr.cpp:502 -msgid "Watchpoint creation unsuccessful" +#: LiteEditor/wxcrafter.h:362 +msgid "New Project Wizard" msgstr "" -#: LiteEditor/breakpointsmgr.cpp:504 -msgid "Breakpoint creation unsuccessful" +#: LiteEditor/wxcrafter.h:441 +msgid "Open Folder" msgstr "" -#: LiteEditor/breakpointsmgr.cpp:544 -msgid "Please enter the new ignore-count" +#: LiteEditor/fileview.cpp:445 +msgid "Run " msgstr "" -#: LiteEditor/breakpointsmgr.cpp:544 -msgid "Set ignore-count" +#: LiteEditor/fileview.cpp:837 +msgid "Add Existing Item" msgstr "" -#: LiteEditor/breakpointsmgr.cpp:596 -msgid "Properties for watchpoint " +#: LiteEditor/fileview.cpp:869 +msgid "New Item" msgstr "" -#: LiteEditor/breakpointsmgr.cpp:598 -msgid "Properties for breakpoint " +#: LiteEditor/fileview.cpp:971 +msgid "Are you sure you want remove '" msgstr "" -#: LiteEditor/build_page.cpp:57 -msgid "Available Build Systems:" +#: LiteEditor/fileview.cpp:979 LiteEditor/fileview.cpp:1018 +msgid "Remember my answer and apply it all files" msgstr "" -#: LiteEditor/build_page.cpp:63 -msgid "Fix build tool path on startup" +#: LiteEditor/fileview.cpp:984 LiteEditor/fileview.cpp:1023 +#: LiteEditor/frame.cpp:2551 +msgid "Are you sure?" msgstr "" -#: LiteEditor/build_page.cpp:67 -msgid "Use asterisk (*) for the clean target (e.g. rm -f *.o)" +#: LiteEditor/fileview.cpp:1010 +msgid "Do you also want to delete the file '" msgstr "" -#: LiteEditor/buildorderbasepage.cpp:54 -msgid "Select build order for configuration:" +#: LiteEditor/fileview.cpp:1010 +msgid "' from disc?" msgstr "" -#: LiteEditor/buildorderbasepage.cpp:71 -msgid "Projects:" +#: LiteEditor/fileview.cpp:1031 +msgid "" +"An error occurred during file removal. Maybe it has been already deleted or " +"you don't have the necessary permissions" msgstr "" -#: LiteEditor/buildorderbasepage.cpp:84 -msgid "Build Order:" +#: LiteEditor/fileview.cpp:1035 LiteEditor/fileview.cpp:1039 +#: LiteEditor/manager.cpp:287 LiteEditor/manager.cpp:304 +#: LiteEditor/manager.cpp:498 LiteEditor/manager.cpp:592 +#: LiteEditor/manager.cpp:660 LiteEditor/manager.cpp:994 +#: LiteEditor/manager.cpp:1021 LiteEditor/manager.cpp:1173 +#: LiteEditor/manager.cpp:1324 LiteEditor/newworkspacedlg.cpp:107 +#: LiteEditor/cl_editor.cpp:1209 LiteEditor/advanced_settings.cpp:143 +#: Gizmos/newwxprojectdlg.cpp:103 DatabaseExplorer/DbViewerPanel.cpp:540 +msgid "Error" msgstr "" -#: LiteEditor/buildorderbasepage.cpp:109 -#: cppchecker/cppcheckreportbasepage.cpp:94 -msgid "Up" +#: LiteEditor/fileview.cpp:1071 +msgid " and all its content will be removed from the project." msgstr "" -#: LiteEditor/buildorderbasepage.cpp:113 -#: cppchecker/cppcheckreportbasepage.cpp:99 -msgid "Down" +#: LiteEditor/fileview.cpp:1207 +msgid "You are about to remove project '" msgstr "" -#: LiteEditor/buildorderbasepage.cpp:121 -#: LiteEditor/configuration_manager_base_dlg.cpp:107 -#: LiteEditor/options_base_dlg2.cpp:75 -msgid "Apply" +#: LiteEditor/fileview.cpp:1209 +msgid " from the workspace, click 'Yes' to proceed or 'No' to abort." msgstr "" -#: LiteEditor/buildsettingstabbase.cpp:41 -#: LiteEditor/editorsettingsbookmarksbasepanel.cpp:86 -msgid "Foreground colour:" +#: LiteEditor/fileview.cpp:1340 +msgid "Compiling file: " msgstr "" -#: LiteEditor/buildsettingstabbase.cpp:47 -msgid "Font weight:" +#: LiteEditor/fileview.cpp:1340 LiteEditor/fileview.cpp:1360 +msgid " of project " msgstr "" -#: LiteEditor/buildsettingstabbase.cpp:53 -msgid "Compiler errors colour:" +#: LiteEditor/fileview.cpp:1360 +msgid "Preprocessing file: " msgstr "" -#: LiteEditor/buildsettingstabbase.cpp:61 -#: LiteEditor/buildsettingstabbase.cpp:76 -msgid "Bold" +#: LiteEditor/fileview.cpp:1571 +msgid "Failed to find file: " msgstr "" -#: LiteEditor/buildsettingstabbase.cpp:66 -msgid "Compiler warnings colour:" +#: LiteEditor/fileview.cpp:1571 +msgid " in FileView." msgstr "" -#: LiteEditor/buildsettingstabbase.cpp:85 -msgid "When using the menu to jump to errors, skip warnings" +#: LiteEditor/fileview.cpp:1772 LiteEditor/fileview.cpp:1843 +msgid "Adding file: " msgstr "" -#: LiteEditor/buildsettingstabbase.cpp:90 -msgid "" -"Automatically hide the build pane when there are neither errors nor warnings" +#: LiteEditor/fileview.cpp:1907 +#: codelitephp/php-plugin/php_workspace_view.cpp:624 +msgid "New file name:" msgstr "" -#: LiteEditor/buildsettingstabbase.cpp:99 -msgid "After build finishes, if showing the build pane scroll to:" +#: LiteEditor/fileview.cpp:1907 +msgid "Rename file:" msgstr "" -#: LiteEditor/buildsettingstabbase.cpp:108 -msgid "Show build pane:" +#: LiteEditor/fileview.cpp:1915 +msgid "A File with that name already exists!" msgstr "" -#: LiteEditor/buildsettingstabbase.cpp:113 -msgid "Errors / warnings markers:" +#: LiteEditor/fileview.cpp:1945 +msgid "New virtual folder name:" msgstr "" -#: LiteEditor/buildsettingstabbase.cpp:117 -msgid "Compiler errors / warnings marked with bookmarks" +#: LiteEditor/fileview.cpp:1945 +msgid "Rename virtual folder:" msgstr "" -#: LiteEditor/buildsettingstabbase.cpp:122 -msgid "Compiler errors / warnings displayed inline" +#: LiteEditor/fileview.cpp:1958 LiteEditor/fileview.cpp:1964 +msgid "failed to rename virtual folder: " msgstr "" -#: LiteEditor/buildsettingstabbase.cpp:124 -msgid "" -"If checked, any errors or warnings will be displayed in the editor alongside " -"the failing code." +#: LiteEditor/fileview.cpp:1958 +msgid ", reason: could not locate project " msgstr "" -#: LiteEditor/clInitializeDialog.cpp:38 -msgid "CodeLite upgrade" +#: LiteEditor/fileview.cpp:2400 +msgid "Project new name:" msgstr "" -#: LiteEditor/cl_editor.cpp:1198 codelite_terminal/MainFrame.cpp:450 -msgid "Save As" +#: LiteEditor/fileview.cpp:2400 +msgid "Rename project" msgstr "" -#: LiteEditor/cl_editor.cpp:1209 -msgid "Failed to save file" +#: LiteEditor/fileview.cpp:2421 +msgid "You can only drag one folder at a time" msgstr "" -#: LiteEditor/cl_editor.cpp:1264 -msgid "has the read-only attribute set" +#: LiteEditor/fileview.cpp:2438 +msgid "Failed to create workspace:\n" msgstr "" -#: LiteEditor/cl_editor.cpp:1265 -msgid "Would you like CodeLite to try and remove it?" +#: LiteEditor/fileview.cpp:2472 +msgid "Can't import files to workspace without projects" msgstr "" -#: LiteEditor/cl_editor.cpp:1271 LiteEditor/cl_editor.cpp:1318 -#: LiteEditor/cl_editor.cpp:1329 -msgid "Failed to open file" +#: LiteEditor/fileview.cpp:2479 +msgid "Select project:" msgstr "" -#: LiteEditor/cl_editor.cpp:1273 LiteEditor/cl_editor.cpp:1320 -#: LiteEditor/cl_editor.cpp:1329 -msgid "for write" +#: LiteEditor/fileview.cpp:2479 +msgid "Import files to project" msgstr "" -#: LiteEditor/cl_editor.cpp:1321 -msgid "Override it?" +#: LiteEditor/CompilersFoundDlgBase.h:69 +msgid "Find Installed Compilers" msgstr "" -#: LiteEditor/cl_editor.cpp:1342 -msgid "Save file failed!" +#: LiteEditor/CompilersFoundDlgBase.h:89 +msgid "Could not find selected compiler..." msgstr "" -#: LiteEditor/cl_editor.cpp:1343 -msgid "Could not convert the file to the requested encoding" +#: LiteEditor/tabgroupspane.cpp:247 +msgid "I'm afraid that tabgroup no longer exists :/" msgstr "" -#: LiteEditor/cl_editor.cpp:1353 +#: LiteEditor/tabgroupspane.cpp:263 msgid "" -"File text conversion failed!\n" -"Check your file font encoding from\n" -"Settings | Global Editor Prefernces | Misc | Locale" +"Do you want to replace the existing editors? (Say 'No' to load the new ones " +"alongside)" msgstr "" -#: LiteEditor/cl_editor.cpp:1371 -msgid "Failed to override read-only file" +#: LiteEditor/tabgroupspane.cpp:264 +msgid "Load the tabgroup" msgstr "" -#: LiteEditor/cl_editor.cpp:1969 LiteEditor/cl_editor.cpp:2005 -msgid "Can not find the string '" +#: LiteEditor/tabgroupspane.cpp:289 +msgid "I'm afraid that tabgroup item no longer exists :/" msgstr "" -#: LiteEditor/cl_editor.cpp:2713 -msgid "Loading file..." +#: LiteEditor/tabgroupspane.cpp:311 +msgid "&Add a new item to this tabgroup" msgstr "" -#: LiteEditor/cl_editor.cpp:2750 cscope/cscopetab.cpp:62 -#: cscope/cscopetab.cpp:189 -msgid "Ready" +#: LiteEditor/tabgroupspane.cpp:313 LiteEditor/tabgroupspane.cpp:322 +msgid "&Paste an item into this tabgroup" msgstr "" -#: LiteEditor/cl_editor.cpp:3086 SFTP/UI.cpp:146 -msgid "Add Bookmark" +#: LiteEditor/tabgroupspane.cpp:316 +msgid "Du&plicate this tabgroup" msgstr "" -#: LiteEditor/cl_editor.cpp:3086 -msgid "Remove Bookmark" +#: LiteEditor/tabgroupspane.cpp:317 +msgid "&Delete this tabgroup" msgstr "" -#: LiteEditor/cl_editor.cpp:3087 LiteEditor/frame.cpp:5770 -msgid "Remove All Bookmarks" +#: LiteEditor/tabgroupspane.cpp:319 +msgid "&Copy this item, to be pasted to another tabgroup" msgstr "" -#: LiteEditor/cl_editor.cpp:3092 -msgid "Add Breakpoint" +#: LiteEditor/tabgroupspane.cpp:320 +msgid "Cu&t this item, to be pasted to another tabgroup" msgstr "" -#: LiteEditor/cl_editor.cpp:3093 -msgid "Add a Temporary Breakpoint" +#: LiteEditor/tabgroupspane.cpp:324 +msgid "&Remove this item from the tabgroup" msgstr "" -#: LiteEditor/cl_editor.cpp:3094 -msgid "Add a Disabled Breakpoint" +#: LiteEditor/tabgroupspane.cpp:409 +msgid "There is already a file with this name. Overwrite it?" msgstr "" -#: LiteEditor/cl_editor.cpp:3095 -msgid "Add a Conditional Breakpoint.." +#: LiteEditor/tabgroupspane.cpp:410 +msgid "Overwrite?" msgstr "" -#: LiteEditor/cl_editor.cpp:3110 -msgid "Remove Breakpoint" +#: LiteEditor/tabgroupspane.cpp:418 +msgid "Tabgroup renamed" msgstr "" -#: LiteEditor/cl_editor.cpp:3111 -msgid "Ignore Breakpoint" +#: LiteEditor/tabgroupspane.cpp:483 +msgid "Select the file you want to add" msgstr "" -#: LiteEditor/cl_editor.cpp:3116 -msgid "Disable Breakpoint" +#: LiteEditor/tabgroupspane.cpp:489 +msgid "That filepath doesn't seem to exist. Are you sure?" msgstr "" -#: LiteEditor/cl_editor.cpp:3116 -msgid "Enable Breakpoint" +#: LiteEditor/tabgroupspane.cpp:558 +msgid "Failed to load the destination tabgroup :/" msgstr "" -#: LiteEditor/cl_editor.cpp:3117 -msgid "Edit Breakpoint" +#: LiteEditor/tabgroupspane.cpp:565 +msgid "" +"There is already an item with this filepath in the tabgroup. Overwrite it?" msgstr "" -#: LiteEditor/cl_editor.cpp:3123 -msgid "Run to here" +#: LiteEditor/tabgroupspane.cpp:602 +msgid "Tabgroup item pasted" msgstr "" -#: LiteEditor/cl_editor.cpp:3148 -msgid "Create Conditional Breakpoint" +#: LiteEditor/tabgroupspane.cpp:626 +#, c-format +msgid "Delete tabgroup %s?" msgstr "" -#: LiteEditor/cl_editor.cpp:3148 -msgid "Enter the condition statement" +#: LiteEditor/tabgroupspane.cpp:641 +msgid "Tabgroup deleted" msgstr "" -#: LiteEditor/cl_editor.cpp:3183 -msgid "Failed to insert breakpoint" +#: LiteEditor/tabgroupspane.cpp:661 +msgid "What name to you want to give the duplicated tabgroup?" msgstr "" -#: LiteEditor/cl_editor.cpp:3190 -msgid "Temporary " +#: LiteEditor/tabgroupspane.cpp:661 +msgid "Duplicate a tabgroup" msgstr "" -#: LiteEditor/cl_editor.cpp:3192 -msgid "Disabled " +#: LiteEditor/tabgroupspane.cpp:668 +msgid "Sorry, there is already a tabgroup with this name" msgstr "" -#: LiteEditor/cl_editor.cpp:3194 -msgid "Conditional " +#: LiteEditor/tabgroupspane.cpp:673 +msgid "Sorry, duplication of the tabgroup failed :/" msgstr "" -#: LiteEditor/cl_editor.cpp:3220 -msgid "No breakpoint found on this line" +#: LiteEditor/tabgroupspane.cpp:678 +msgid "Tabgroup duplicated" msgstr "" -#: LiteEditor/cl_editor.cpp:3223 -msgid "Breakpoint deletion failed" +#: LiteEditor/tabgroupspane.cpp:734 +msgid "Tabgroup item copied" msgstr "" -#: LiteEditor/cl_editor.cpp:3226 -msgid "Breakpoint not deleted" +#: LiteEditor/tabgroupspane.cpp:765 +#, c-format +msgid "Remove item %s from %s?" msgstr "" -#: LiteEditor/cl_editor.cpp:3379 -msgid "More Watches" +#: LiteEditor/tabgroupspane.cpp:780 +msgid "Tabgroup item Cut" msgstr "" -#: LiteEditor/cl_editor.cpp:3382 LiteEditor/new_quick_watch_dlg.cpp:330 -msgid "Add Watch" +#: LiteEditor/tabgroupspane.cpp:782 +msgid "Tabgroup item deleted" msgstr "" -#: LiteEditor/cl_editor.cpp:3390 -msgid "Run to cursor" +#: LiteEditor/tabgroupspane.cpp:789 +msgid "Failed to amend the tabgroup :/" msgstr "" -#: LiteEditor/cl_editor.cpp:3396 -msgid "Jump to cursor" +#: LiteEditor/editorsettingslocalbase.cpp:29 +msgid "Untick one or more checkboxes to set any local preferences," msgstr "" -#: LiteEditor/cl_editor.cpp:4318 -msgid "Watch" +#: LiteEditor/editorsettingslocalbase.cpp:58 +#: LiteEditor/editorsettingslocalbase.cpp:69 +#: LiteEditor/editorsettingslocalbase.cpp:90 +#: LiteEditor/editorsettingslocalbase.cpp:126 +#: LiteEditor/editorsettingslocalbase.cpp:136 +#: LiteEditor/editorsettingslocalbase.cpp:147 +#: LiteEditor/editorsettingslocalbase.cpp:158 +#: LiteEditor/editorsettingslocalbase.cpp:184 +#: LiteEditor/editorsettingslocalbase.cpp:195 +#: LiteEditor/editorsettingslocalbase.cpp:206 +#: LiteEditor/editorsettingslocalbase.cpp:216 +#: LiteEditor/editorsettingslocalbase.cpp:234 +#: LiteEditor/editorsettingslocalbase.cpp:248 +#: LiteEditor/editorsettingslocalbase.cpp:263 +msgid "Use global setting" msgstr "" -#: LiteEditor/cl_editor.cpp:4318 -msgid "as" +#: LiteEditor/editorsettingslocalbase.cpp:63 +#: LiteEditor/editoroptionsgeneralindetationpanelbase.cpp:45 +msgid "Use tabs in indentation" msgstr "" -#: LiteEditor/clang_driver.cpp:285 +#: LiteEditor/editorsettingslocalbase.cpp:65 msgid "" -"Could not locate compilation database or database version is not up-to-date: " +"If clear, only spaces will be used for indentation.\n" +"If set, a mixture of tabs and spaces will be used." msgstr "" -#: LiteEditor/clang_driver.cpp:287 -msgid "" -"This file should be created automatically for you.\n" -"If you don't have it, please run a full rebuild of your workspace\n" -"\n" +#: LiteEditor/editorsettingslocalbase.cpp:78 +#: LiteEditor/editoroptionsgeneralindetationpanelbase.cpp:61 +msgid "Columns per tab character in document:" +msgstr "" + +#: LiteEditor/editorsettingslocalbase.cpp:99 +#: LiteEditor/editoroptionsgeneralindetationpanelbase.cpp:54 +msgid "Columns per indentation level:" +msgstr "" + +#: LiteEditor/editorsettingslocalbase.cpp:114 +msgid "Margins" msgstr "" -#: LiteEditor/clang_driver.cpp:289 -msgid "" -"If this is a custom build project (i.e. project that uses a custom " -"makefile),\n" -"please set the CXX and CC environment variables like this:\n" +#: LiteEditor/editorsettingslocalbase.cpp:131 +#: LiteEditor/editorsettingsbookmarksbasepanel.cpp:29 +msgid "Display Breakpoints / Bookmarks margin" msgstr "" -#: LiteEditor/clang_driver.cpp:290 -msgid "CXX=codelite-cc g++\n" +#: LiteEditor/editorsettingslocalbase.cpp:141 +msgid "Display Folding margin" msgstr "" -#: LiteEditor/clang_driver.cpp:291 +#: LiteEditor/editorsettingslocalbase.cpp:143 msgid "" -"CC=codelite-cc gcc\n" -"\n" -msgstr "" - -#: LiteEditor/close_all_dlg.cpp:67 -msgid "Ask me for each file" +"Display the margin that lets you 'fold' individual functions, or sections of " +"functions, to hide their contents" msgstr "" -#: LiteEditor/close_all_dlg.cpp:70 -msgid "Save all files" +#: LiteEditor/editorsettingslocalbase.cpp:152 +msgid "Hide change marker margin" msgstr "" -#: LiteEditor/close_all_dlg.cpp:73 -msgid "Discard changes for all files" +#: LiteEditor/editorsettingslocalbase.cpp:154 +msgid "Display the margin in which a coloured line marks any altered line" msgstr "" -#: LiteEditor/close_all_dlg.cpp:83 -msgid "Some of the files are modified, what action should CodeLite take?" +#: LiteEditor/editorsettingslocalbase.cpp:163 +msgid "Display line numbers" msgstr "" -#: LiteEditor/commentpagebase.cpp:56 -msgid "" -"When hitting in a C style comment section,automatically add '*' at " -"the next line" +#: LiteEditor/editorsettingslocalbase.cpp:165 +msgid "Display line numbers margin" msgstr "" -#: LiteEditor/commentpagebase.cpp:60 -msgid "" -"When hitting in a C++ style comment section,automatically add '//' " -"at the next line" +#: LiteEditor/editorsettingslocalbase.cpp:189 +msgid "Show indentation guidelines" msgstr "" -#: LiteEditor/commentpagebase.cpp:66 -msgid "Doxygen:" +#: LiteEditor/editorsettingslocalbase.cpp:191 +msgid "Display horizontal guides for matching braces \"{\"" msgstr "" -#: LiteEditor/commentpagebase.cpp:77 -msgid "Use '/**' as doxygen block start (else use '/*!')" +#: LiteEditor/editorsettingslocalbase.cpp:200 +#: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:78 +msgid "Highlight caret line" msgstr "" -#: LiteEditor/commentpagebase.cpp:81 -msgid "Use '@' as doxygen keyword prefix" +#: LiteEditor/editorsettingslocalbase.cpp:202 +msgid "Set a different background colour for the line containing the caret" msgstr "" -#: LiteEditor/commentpagebase.cpp:87 -msgid "" -"CodeLite contains a built-in doxygen documentation generator which adds " -"doxygen comments to your code.\n" -"Here you can set the prefix that will placed on top of the dynamic content " -"of the comment:" +#: LiteEditor/editorsettingslocalbase.cpp:211 +#: LiteEditor/editoroptionsgeneralsavepanelbase.cpp:42 +msgid "When saving files, trim empty lines" msgstr "" -#: LiteEditor/commentpagebase.cpp:106 -msgid "Function prefix:" +#: LiteEditor/editorsettingslocalbase.cpp:221 +#: LiteEditor/editoroptionsgeneralsavepanelbase.cpp:69 +msgid "If missing, append EOL at end of file" msgstr "" -#: LiteEditor/commentpagebase.cpp:118 -msgid "" -"The following macros are available:\n" -"$(CurrentFileName), $(CurrentFilePath), $(User), $(Date), $(Name)\n" -"$(CurrentFileFullPath), $(CurrentFileExt), $(ProjectName), $(WorksapceName)" +#: LiteEditor/editorsettingslocalbase.cpp:223 +msgid "Make sure the file finishes with an end-of-line" msgstr "" -#: LiteEditor/compiler_pages.cpp:36 -msgid "Switch:" +#: LiteEditor/editorsettingslocalbase.cpp:239 +msgid "Whitespace visibility:" msgstr "" -#: LiteEditor/compiler_pages.cpp:47 -msgid "Help:" +#: LiteEditor/editorsettingslocalbase.cpp:253 +msgid "EOL Mode:" msgstr "" -#: LiteEditor/compiler_pages.cpp:108 -msgid "Regex Pattern:" +#: LiteEditor/editorsettingslocalbase.cpp:259 +msgid "" +"Set the editor's EOL mode (End Of Line). When set to 'Default' CodeLite will " +"set the EOL according to the hosting OS" msgstr "" -#: LiteEditor/compiler_pages.cpp:113 -msgid "Compiler regular expression" +#: LiteEditor/editorsettingslocalbase.cpp:268 +msgid "File font encoding" msgstr "" -#: LiteEditor/compiler_pages.cpp:120 -msgid "File Index in Pattern:" +#: LiteEditor/memoryview.cpp:160 +#, c-format +msgid "Invalid memory value: %s" msgstr "" -#: LiteEditor/compiler_pages.cpp:125 -msgid "The capture index in the regex that holds the file path" +#: LiteEditor/editoroptionsgeneralrightmarginpanelbase.cpp:45 +msgid "Disabled" msgstr "" -#: LiteEditor/compiler_pages.cpp:132 -msgid "Line Number in Pattern:" +#: LiteEditor/editoroptionsgeneralrightmarginpanelbase.cpp:52 +msgid "Background" msgstr "" -#: LiteEditor/compiler_pages.cpp:137 -msgid "The capture index in the regex that holds the line number" +#: LiteEditor/editoroptionsgeneralrightmarginpanelbase.cpp:63 +msgid "Indicator Column" msgstr "" -#: LiteEditor/compiler_pages.cpp:144 -msgid "Column Index in Pattern:" +#: LiteEditor/editoroptionsgeneralrightmarginpanelbase.cpp:67 +msgid "80" msgstr "" -#: LiteEditor/compiler_pages.cpp:149 -msgid "The capture index in the regex that holds the column number" +#: LiteEditor/editoroptionsgeneralrightmarginpanelbase.cpp:70 +msgid "Indicator Colour:" msgstr "" -#: LiteEditor/compiler_pages.cpp:206 -msgid "New compiler name:" +#: LiteEditor/quickfindbarbase.cpp:60 +msgid "Case Sensitive" msgstr "" -#: LiteEditor/compiler_pages.cpp:218 -msgid "Copy settings from:" +#: LiteEditor/quickfindbarbase.cpp:62 +msgid "Use case sensitive match" msgstr "" -#: LiteEditor/compiler_pages.cpp:268 -msgid "Add Compilers" +#: LiteEditor/quickfindbarbase.cpp:66 +msgid "Regular Expression" msgstr "" -#: LiteEditor/compiler_pages.cpp:290 LiteEditor/compiler_pages.cpp:303 -#: git/gitui.cpp:44 -msgid "Tools" +#: LiteEditor/quickfindbarbase.cpp:68 LiteEditor/quickfindbar.cpp:118 +msgid "Use regular expression" msgstr "" -#: LiteEditor/compiler_pages.cpp:306 -msgid "C++ Compiler" +#: LiteEditor/quickfindbarbase.cpp:72 LiteEditor/quickfindbar.cpp:105 +msgid "Match a whole word" msgstr "" -#: LiteEditor/compiler_pages.cpp:307 -msgid "" -"The C++ compiler path (plus optional flags). This tool is represented in the " -"Makefile as $(CXX)" +#: LiteEditor/quickfindbarbase.cpp:74 +msgid "Match a whole word only" msgstr "" -#: LiteEditor/compiler_pages.cpp:310 -msgid "C Compiler" +#: LiteEditor/quickfindbarbase.cpp:78 +msgid "Use wildcard syntax" msgstr "" -#: LiteEditor/compiler_pages.cpp:311 -msgid "" -"The C++ compiler path (plus optional flags). This tool is represented in the " -"Makefile as $(CC)" +#: LiteEditor/quickfindbarbase.cpp:80 +msgid "Use wildcard syntax (* and ?)" msgstr "" -#: LiteEditor/compiler_pages.cpp:314 -msgid "Assembler Name" +#: LiteEditor/quickfindbarbase.cpp:84 +msgid "Enable multiple selections" msgstr "" -#: LiteEditor/compiler_pages.cpp:315 -msgid "The assembler tool path. This tool is referred in the Makefile as $(AS)" +#: LiteEditor/quickfindbarbase.cpp:86 +msgid "Select each match without de-selectiing the previous match" msgstr "" -#: LiteEditor/compiler_pages.cpp:318 -#: LiteEditor/project_settings_base_dlg.cpp:918 -#: LiteEditor/project_settings_dlg.cpp:133 -msgid "Linker" +#: LiteEditor/editorsettingsfoldingbase.cpp:29 +msgid "Display Folding Margin" msgstr "" -#: LiteEditor/compiler_pages.cpp:319 -msgid "The linker tool. Usually similar to the 'C++ Compiler' tool path" +#: LiteEditor/editorsettingsfoldingbase.cpp:40 +msgid "Select the folding style" msgstr "" -#: LiteEditor/compiler_pages.cpp:322 -msgid "Shared Object Linker" +#: LiteEditor/editorsettingsfoldingbase.cpp:52 +msgid "Underline Folded Line" msgstr "" -#: LiteEditor/compiler_pages.cpp:323 -msgid "The tool to create shared objects" +#: LiteEditor/editorsettingsfoldingbase.cpp:57 +msgid "Fold At Else" msgstr "" -#: LiteEditor/compiler_pages.cpp:326 -msgid "Archive" +#: LiteEditor/editorsettingsfoldingbase.cpp:62 +msgid "Fold Preprocessors" msgstr "" -#: LiteEditor/compiler_pages.cpp:327 -msgid "" -"The static archive tool \"ar\". This tool is referred in the Makefile as " -"$(AR)" +#: LiteEditor/editorsettingsfoldingbase.cpp:67 +msgid "Fold Compact" msgstr "" -#: LiteEditor/compiler_pages.cpp:330 -msgid "Resource Compiler" +#: LiteEditor/editorsettingsfoldingbase.cpp:72 +msgid "Highlight Active Fold Block" msgstr "" -#: LiteEditor/compiler_pages.cpp:331 -msgid "The resource compiler. (Windows only)" +#: LiteEditor/editorsettingsfoldingbase.cpp:74 +msgid "" +"Allows to enable/disable the highlight folding block when it is selected. (i." +"e. block that contains the caret)" msgstr "" -#: LiteEditor/compiler_pages.cpp:334 -msgid "Make" +#: LiteEditor/symbols_dialog_base.h:74 +msgid "Resolve Ambiguity" msgstr "" -#: LiteEditor/compiler_pages.cpp:335 -msgid "" -"The Make tool. on Windows / MinGW this is usually mingw32-make.exe while on " -"other OSs its simply 'make'" +#: LiteEditor/replaceinfilespanel.cpp:55 +msgid "&Unmark All" msgstr "" -#: LiteEditor/compiler_pages.cpp:338 -msgid "mkdir" +#: LiteEditor/replaceinfilespanel.cpp:58 +msgid "Mark &All" msgstr "" -#: LiteEditor/compiler_pages.cpp:339 -msgid "" -"Set the 'mkdir' for your OS.\n" -"Leave it empty to use the defualt for your OS" +#: LiteEditor/replaceinfilespanel.cpp:67 +msgid "&Replace Marked" msgstr "" -#: LiteEditor/compiler_pages.cpp:342 -msgid "Gdb" +#: LiteEditor/replaceinfilespanel.cpp:167 +msgid "Failed to save file:\n" msgstr "" -#: LiteEditor/compiler_pages.cpp:343 -msgid "" -"On various platform (e.g. Cygwin) it is recommended to use their own sepcial " -"gdb executable rather than the global one\n" -"You can specify one here, or leave this empty to use the default" +#: LiteEditor/replaceinfilespanel.cpp:168 +#: LiteEditor/replaceinfilespanel.cpp:194 +msgid "CodeLite - Replace" msgstr "" -#: LiteEditor/compiler_pages.cpp:347 -msgid "Patterns" +#: LiteEditor/replaceinfilespanel.cpp:194 +msgid "Failed to open file:\n" msgstr "" -#: LiteEditor/compiler_pages.cpp:356 -msgid "Compiler Errors Patterns:" +#: LiteEditor/replaceinfilespanel.cpp:366 LiteEditor/mainbook.cpp:750 +#: LiteEditor/mainbook.cpp:926 +msgid "Save Modified Files" msgstr "" -#: LiteEditor/compiler_pages.cpp:372 LiteEditor/compiler_pages.cpp:407 -#: LiteEditor/reconcileprojectbase.cpp:316 -#: LiteEditor/reconcileprojectbase.cpp:348 -#: LiteEditor/reconcileprojectbase.cpp:379 SnipWiz/editsnippetsbasedlg.cpp:98 -#: SnipWiz/templateclassbasedlg.cpp:186 SpellChecker/spellcheck.cpp:435 -#: SpellChecker/wxcrafter.cpp:214 Subversion2/subversion2.cpp:329 -#: cppchecker/cppchecksettingsdlgbase.cpp:131 -#: cppchecker/cppchecksettingsdlgbase.cpp:169 -#: cppchecker/cppchecksettingsdlgbase.cpp:220 -#: cppchecker/cppchecksettingsdlgbase.cpp:275 -#: cppchecker/cppchecksettingsdlgbase.cpp:308 -msgid "Add" +#: LiteEditor/replaceinfilespanel.cpp:367 LiteEditor/mainbook.cpp:751 +#: LiteEditor/mainbook.cpp:927 +msgid "" +"Some files are modified.\n" +"Choose the files you would like to save." msgstr "" -#: LiteEditor/compiler_pages.cpp:373 -msgid "Add new error pattern" +#: LiteEditor/new_configuration_dlg.cpp:72 +msgid "Copy Settings from:" msgstr "" -#: LiteEditor/compiler_pages.cpp:378 -msgid "Delete the selected error pattern" +#: LiteEditor/new_configuration_dlg.cpp:79 +#: LiteEditor/new_configuration_dlg.cpp:136 +msgid "-- None --" msgstr "" -#: LiteEditor/compiler_pages.cpp:383 -msgid "Edit the selected error pattern" +#: LiteEditor/new_configuration_dlg.cpp:128 +msgid "Configuration Name is empty" msgstr "" -#: LiteEditor/compiler_pages.cpp:391 -msgid "Compiler Warnings Patterns:" +#: LiteEditor/setters_getters.cpp:59 codelitephp/php-plugin/php_ui.h:687 +#: codelitephp/php-plugin/php_editor_context_menu.cpp:128 +msgid "Generate Setters / Getters" msgstr "" -#: LiteEditor/compiler_pages.cpp:408 -msgid "Add new warning pattern" +#: LiteEditor/setters_getters.cpp:59 LiteEditor/setters_getters_dlg.cpp:453 +msgid "Select the functions to generate from the list below" msgstr "" -#: LiteEditor/compiler_pages.cpp:413 -msgid "Delete the selected warning pattern" +#: LiteEditor/setters_getters.cpp:92 +msgid "Function name starts with an upper case letter" msgstr "" -#: LiteEditor/compiler_pages.cpp:418 -msgid "Edit the selected warning pattern" +#: LiteEditor/setters_getters.cpp:97 +msgid "Format the file when done" msgstr "" -#: LiteEditor/compiler_pages.cpp:423 LiteEditor/project_settings_dlg.cpp:514 -msgid "Compiler Options" +#: LiteEditor/advanced_settings.h:97 LiteEditor/advance_settings_base.h:42 +msgid "Build Settings" msgstr "" -#: LiteEditor/compiler_pages.cpp:428 LiteEditor/compiler_pages.cpp:459 -#: LiteEditor/compiler_pages.cpp:490 LiteEditor/compiler_pages.cpp:504 -msgid "Double click on an entry to modify it:" +#: LiteEditor/findusagetab.cpp:94 +#, c-format +msgid "===== Finding references of '%s' =====\n" msgstr "" -#: LiteEditor/compiler_pages.cpp:454 -#: LiteEditor/project_settings_base_dlg.cpp:342 -#: LiteEditor/project_settings_dlg.cpp:525 -msgid "Linker Options" +#: LiteEditor/findusagetab.cpp:147 +#, c-format +msgid "===== Found total of %u matches =====\n" msgstr "" -#: LiteEditor/compiler_pages.cpp:499 -msgid "File Types" +#: LiteEditor/newquickwatch.h:80 +msgid "Edit Item" msgstr "" -#: LiteEditor/compiler_pages.cpp:546 -msgid "Global Paths" +#: LiteEditor/ps_compiler_page.cpp:115 +msgid "Compiler options" msgstr "" -#: LiteEditor/compiler_pages.cpp:557 -msgid "Include Path:" +#: LiteEditor/newworkspacebasedlg.cpp:40 +msgid "Workspace Name:" msgstr "" -#: LiteEditor/compiler_pages.cpp:562 -msgid "" -"Set here an additional include paths. Each path should be separated with a " -"semi-colon\n" -"Note that usually you don't need to modify this field and it should be left " -"empty" +#: LiteEditor/newworkspacebasedlg.cpp:52 +msgid "Workspace Path:" msgstr "" -#: LiteEditor/compiler_pages.cpp:573 -msgid "Libraries Path:" +#: LiteEditor/newworkspacebasedlg.cpp:72 +msgid "Create the workspace under a separate directory" msgstr "" -#: LiteEditor/compiler_pages.cpp:578 -msgid "" -"Set here an additional library search paths. Each path should be separated " -"with a semi-colon\n" -"Note that usually you don't need to modify this field and it should be left " -"empty" +#: LiteEditor/newworkspacebasedlg.cpp:77 +msgid "File Name:" msgstr "" -#: LiteEditor/compiler_pages.cpp:589 -#: LiteEditor/editorsettingslocalbase.cpp:196 LiteEditor/options_dlg2.cpp:129 -#: git/gitui.cpp:134 -msgid "Misc" +#: LiteEditor/debuggerasciiviewerbase.cpp:45 +msgid "Displaying:" msgstr "" -#: LiteEditor/compiler_pages.cpp:600 -msgid "Objects extension:" +#: LiteEditor/editorsettingscommentsdoxygenpanelbase.cpp:40 +msgid "Generate doxygen comment after \"/**\"" msgstr "" -#: LiteEditor/compiler_pages.cpp:613 -msgid "Depends extension:" +#: LiteEditor/editorsettingscommentsdoxygenpanelbase.cpp:41 +msgid "" +"When the user hit ENTER after \"/**\" generate the proper documentation block" msgstr "" -#: LiteEditor/compiler_pages.cpp:626 -msgid "Preprocessed extension:" +#: LiteEditor/editorsettingscommentsdoxygenpanelbase.cpp:46 +msgid "Class documentation template" msgstr "" -#: LiteEditor/compiler_pages.cpp:641 -msgid "Generate dependencies files (*.o.d)" +#: LiteEditor/editorsettingscommentsdoxygenpanelbase.cpp:47 +msgid "" +"Set the template to use when generating documetation for a class (or C/C++ " +"struct).\n" +"The following macros are available: $(CurrentFileName), $(CurrentFilePath), " +"$(User), $(Date), $(Name) $(CurrentFileFullPath), $(CurrentFileExt), " +"$(ProjectName), $(WorkspaceName)" msgstr "" -#: LiteEditor/compiler_pages.cpp:650 -msgid "Object name is same as the file name" +#: LiteEditor/editorsettingscommentsdoxygenpanelbase.cpp:49 +msgid "Function documentation template" msgstr "" -#: LiteEditor/compiler_pages.cpp:652 +#: LiteEditor/editorsettingscommentsdoxygenpanelbase.cpp:50 msgid "" -"By default, codelite will prepend the relative directory to the file name to " -"compose an object name (e.g. src/a.cpp will generate object: src_a.o).\n" -"Uncheck this option to make the object name exactly as the file name without " -"any prefixes" +"Set the template to use when generating documetation for a function\n" +"The following macros are available: $(CurrentFileName), $(CurrentFilePath), " +"$(User), $(Date), $(Name) $(CurrentFileFullPath), $(CurrentFileExt), " +"$(ProjectName), $(WorkspaceName)" msgstr "" -#: LiteEditor/compiler_pages.cpp:660 -msgid "Pass object list to the linker via file" +#: LiteEditor/workspace_pane.cpp:86 LiteEditor/workspace_pane.cpp:110 +#: LiteEditor/workspace_pane.cpp:192 LiteEditor/workspace_pane.cpp:309 +#: LiteEditor/workspace_pane.cpp:327 LiteEditor/workspace_pane.cpp:328 +#: menu.xrc:267 +msgid "Workspace" msgstr "" -#: LiteEditor/configuration_manager_base_dlg.cpp:59 -msgid "Workspace Configuration:" +#: LiteEditor/workspace_pane.cpp:91 LiteEditor/workspace_pane.cpp:170 +msgid "Parsing workspace..." msgstr "" -#: LiteEditor/configuration_manager_base_dlg.cpp:73 -msgid "Available project configurations:" +#: LiteEditor/workspace_pane.cpp:121 LiteEditor/workspace_pane.cpp:193 +#: LiteEditor/workspace_pane.cpp:307 LiteEditor/workspace_pane.cpp:331 +#: LiteEditor/workspace_pane.cpp:332 LiteEditor/fileexplorer.cpp:81 +#: menu.xrc:271 +msgid "Explorer" msgstr "" -#: LiteEditor/configuration_manager_dlg.cpp:123 -#: LiteEditor/debugcoredumpbase.cpp:109 -#: LiteEditor/editorsettingsdockingwindowsbase.cpp:117 -#: LiteEditor/frame.cpp:1498 LiteEditor/frame.cpp:2000 -#: LiteEditor/frame.cpp:3666 LiteEditor/output_pane.cpp:49 -#: Plugin/editor_config.cpp:428 Plugin/editor_config.cpp:465 -#: codelitephp/php-plugin/php_ui.cpp:754 -msgid "Debug" +#: LiteEditor/workspace_pane.cpp:132 +msgid "File Explorer" msgstr "" -#: LiteEditor/configuration_manager_dlg.cpp:226 -#, c-format -msgid "" -"Settings for workspace configuration '%s' have changed, would you like to " -"save them?" +#: LiteEditor/workspace_pane.cpp:136 LiteEditor/workspace_pane.cpp:194 +#: LiteEditor/workspace_pane.cpp:312 LiteEditor/workspace_pane.cpp:336 +#: LiteEditor/workspace_pane.cpp:337 menu.xrc:275 +msgid "Tabs" msgstr "" -#: LiteEditor/configuration_manager_dlg.cpp:275 -msgid "Enter New Configuration Name:" +#: LiteEditor/workspace_pane.cpp:148 LiteEditor/workspace_pane.cpp:195 +#: LiteEditor/workspace_pane.cpp:315 LiteEditor/workspace_pane.cpp:341 +#: LiteEditor/workspace_pane.cpp:342 menu.xrc:279 +msgid "Tabgroups" msgstr "" -#: LiteEditor/configuration_manager_dlg.cpp:275 -msgid "New Configuration" +#: LiteEditor/workspace_pane.cpp:183 +#, c-format +msgid "Parsing workspace: %d%% completed" msgstr "" -#: LiteEditor/context_cpp.cpp:539 -msgid "Open Include File \"" +#: LiteEditor/syntaxhighlightdlg.cpp:184 +msgid "Applying changes..." msgstr "" -#: LiteEditor/context_cpp.cpp:555 -msgid "Add Forward Declaration for \"" +#: LiteEditor/syntaxhighlightdlg.cpp:554 +msgid "Select which lexers you wish to export" msgstr "" -#: LiteEditor/context_cpp.cpp:559 -msgid "Add Include File for \"" +#: LiteEditor/syntaxhighlightdlg.cpp:554 +msgid "Export Lexers" msgstr "" -#: LiteEditor/context_cpp.cpp:653 -msgid "Add Include File" +#: LiteEditor/syntaxhighlightdlg.cpp:572 LiteEditor/syntaxhighlightdlg.cpp:608 +msgid "Settings have been saved into:\n" msgstr "" -#: LiteEditor/context_cpp.cpp:653 -msgid "Select File to Include:" +#: LiteEditor/syntaxhighlightdlg.cpp:577 LiteEditor/context_cpp.cpp:2656 +#: DatabaseExplorer/ErdCommitWizard.cpp:175 +#: DatabaseExplorer/ErdCommitWizard.cpp:181 +#: DatabaseExplorer/ErdCommitWizard.cpp:399 +msgid "Select file" msgstr "" -#: LiteEditor/context_cpp.cpp:923 -msgid "Multiple candidates found. Select a file to open:" +#: LiteEditor/syntaxhighlightdlg.cpp:615 +msgid "" +"Are you sure you want to restore colours to factory defaults?\n" +"By choosing 'Yes', you will lose all your local modifications" msgstr "" -#: LiteEditor/context_cpp.cpp:924 -msgid "Swap Header/Source Implementation" +#: LiteEditor/syntaxhighlightdlg.cpp:633 +msgid "Select eclipse XML theme file" msgstr "" -#: LiteEditor/context_cpp.cpp:949 -msgid "No matched file was found, would you like to create one?" +#: LiteEditor/syntaxhighlightdlg.cpp:650 +msgid "File imported successfully!" msgstr "" -#: LiteEditor/context_cpp.cpp:951 -msgid "Create" +#: LiteEditor/editor_options_caret.cpp:60 +msgid "Caret blink period (milliseconds):" msgstr "" -#: LiteEditor/context_cpp.cpp:952 -msgid "Don't Create" +#: LiteEditor/editor_options_caret.cpp:65 +msgid "Sets the caret blinking period in millisconds" msgstr "" -#: LiteEditor/context_cpp.cpp:953 -#: codelitephp/php-plugin/php_workspace_view.cpp:664 -#: codelitephp/php-plugin/php_workspace_view.cpp:683 -msgid "Remember my answer and don't ask me again" +#: LiteEditor/editor_options_caret.cpp:69 +msgid "Caret width (pixels):" msgstr "" -#: LiteEditor/context_cpp.cpp:1279 -msgid "This file does not seem to contain the declaration for '" +#: LiteEditor/editor_options_caret.cpp:74 +msgid "Set the caret width in pixels" msgstr "" -#: LiteEditor/context_cpp.cpp:1280 -msgid "' is located at '" +#: LiteEditor/editor_options_caret.cpp:78 +msgid "Allow caret to scroll beyond end of file" msgstr "" -#: LiteEditor/context_cpp.cpp:1280 -msgid "The declaration of '" +#: LiteEditor/editor_options_caret.cpp:80 +msgid "" +"When scrolling with the mouse, the scrolling can go beyond the end of file" msgstr "" -#: LiteEditor/context_cpp.cpp:1281 -msgid "Would you like CodeLite to open this file for you?" +#: LiteEditor/editor_options_caret.cpp:84 +msgid "Auto-adjust horizontal scrollbar width" msgstr "" -#: LiteEditor/context_cpp.cpp:1295 -msgid "Seems like you have all the getters/setters you need..." +#: LiteEditor/editor_options_caret.cpp:86 +msgid "Auto adjust the horizontal toolbar to fit to the page content" msgstr "" -#: LiteEditor/context_cpp.cpp:1295 LiteEditor/frame.cpp:4684 -#: LiteEditor/frame.cpp:4774 -msgid "codelite" +#: LiteEditor/editor_options_caret.cpp:90 +msgid "Allow caret to be placed beyond the end of line" msgstr "" -#: LiteEditor/context_cpp.cpp:1710 -msgid "Cant resolve scope properly. Found <" +#: LiteEditor/editor_options_caret.cpp:92 +msgid "" +"Allow the user to place the caret using the mouse beyond the end of line" msgstr "" -#: LiteEditor/context_cpp.cpp:1807 -msgid "'Add Functions Implementation' can only work inside valid scope, got (" +#: LiteEditor/editor_options_caret.cpp:96 +msgid "Caret jumps between word segments" msgstr "" -#: LiteEditor/context_cpp.cpp:1818 -msgid "All your functions seems to have an implementation!" +#: LiteEditor/editor_options_caret.cpp:98 +msgid "" +"Caret jumps between word segments marked by capitalisation (CamelCase) or " +"underscores" msgstr "" -#: LiteEditor/context_cpp.cpp:1911 -msgid "' already has a body" +#: LiteEditor/newquickwatch.cpp:116 +msgid "Enter new expression:" msgstr "" -#: LiteEditor/context_cpp.cpp:1911 -msgid "Function '" +#: LiteEditor/editoroptionsgeneralindetationpanelbase.cpp:42 +msgid "Disable Smart Indentation" msgstr "" -#: LiteEditor/context_cpp.cpp:1932 -msgid "Add Function Implementation" +#: LiteEditor/editoroptionsgeneralindetationpanelbase.cpp:58 +#: LiteEditor/editoroptionsgeneralindetationpanelbase.cpp:65 +msgid "4" msgstr "" -#: LiteEditor/context_cpp.cpp:2250 -msgid "No matches were found!" +#: LiteEditor/editorsettingsbookmarkspanel.cpp:42 +msgid "Small Rectangle" msgstr "" -#: LiteEditor/context_cpp.cpp:2250 LiteEditor/context_cpp.cpp:2254 -msgid "Refactoring local variable" +#: LiteEditor/editorsettingsbookmarkspanel.cpp:43 +msgid "Rounded Rectangle" msgstr "" -#: LiteEditor/context_cpp.cpp:2254 -msgid "Insert New Variable Name:" +#: LiteEditor/editorsettingsbookmarkspanel.cpp:44 +msgid "Circle" msgstr "" -#: LiteEditor/context_cpp.cpp:2310 LiteEditor/context_cpp.cpp:3012 -msgid "" -"Refactoring engine is still caching workspace info. Try again in a few " -"seconds" +#: LiteEditor/editorsettingsbookmarkspanel.cpp:45 +msgid "Small Arrow" msgstr "" -#: LiteEditor/context_cpp.cpp:2407 -msgid "Symbol renamed" +#: LiteEditor/buildorderbasepage.cpp:54 +msgid "Select build order for configuration:" msgstr "" -#: LiteEditor/context_cpp.cpp:2419 -msgid "Please save the file before retagging it" +#: LiteEditor/buildorderbasepage.cpp:71 +msgid "Projects:" msgstr "" -#: LiteEditor/context_cpp.cpp:2701 -msgid "Select file to open:" +#: LiteEditor/buildorderbasepage.cpp:84 +msgid "Build Order:" msgstr "" -#: LiteEditor/context_cpp.cpp:2714 -msgid "Create File" +#: LiteEditor/buildorderbasepage.cpp:109 +#: cppchecker/cppcheckreportbasepage.cpp:94 +msgid "Up" msgstr "" -#: LiteEditor/context_cpp.cpp:2714 -msgid "New File Name:" +#: LiteEditor/buildorderbasepage.cpp:113 +#: cppchecker/cppcheckreportbasepage.cpp:99 +msgid "Down" msgstr "" -#: LiteEditor/context_cpp.cpp:3158 -msgid "Find Symbol" +#: LiteEditor/new_quick_watch_dlg.cpp:107 +#: LiteEditor/new_quick_watch_dlg.cpp:166 +msgid "Loading..." msgstr "" -#: LiteEditor/context_cpp.cpp:3159 -msgid "Go to Declaration" +#: LiteEditor/new_quick_watch_dlg.cpp:339 LiteEditor/cl_editor.cpp:3390 +msgid "Add Watch" msgstr "" -#: LiteEditor/context_cpp.cpp:3160 -msgid "Go to Implementation" +#: LiteEditor/new_quick_watch_dlg.cpp:340 +msgid "Copy Value to Clipboard" msgstr "" -#: LiteEditor/dbcontentcacher.cpp:58 -#, c-format -msgid "Symbols file loaded into OS file system cache (%ld seconds)" +#: LiteEditor/breakpointdlgbase.h:145 +msgid "Breakpoint and Watchpoint Properties" msgstr "" -#: LiteEditor/dbgcommandbasedlg.cpp:50 codelitephp/php-plugin/new_class.cpp:40 -msgid "Type:" +#: LiteEditor/env_var_dlg_base.cpp:47 +msgid "" +"Define here set of environment variables which will be applied by CodeLite " +"before launching processes.\n" +"\n" +"Variables are defined in the format of NAME=VALUE" msgstr "" -#: LiteEditor/dbgcommandbasedlg.cpp:57 -msgid "Expression:" +#: LiteEditor/env_var_dlg_base.cpp:53 +msgid "Available environment sets:" msgstr "" -#: LiteEditor/dbgcommandbasedlg.cpp:64 -msgid "Debugger command:" +#: LiteEditor/env_var_dlg_base.cpp:84 +msgid "&New Set..." msgstr "" -#: LiteEditor/debugcoredump.cpp:152 -msgid "Select core dump:" +#: LiteEditor/env_var_dlg_base.cpp:87 +msgid "Delete Set" msgstr "" -#: LiteEditor/debugcoredumpbase.cpp:53 -msgid "Core dump to be opened:" +#: LiteEditor/env_var_dlg_base.cpp:90 +msgid "&Export" msgstr "" -#: LiteEditor/debugcoredumpbase.cpp:58 +#: LiteEditor/env_var_dlg_base.cpp:91 msgid "" -"Enter the full filepath of the core dump to be examined.\n" -"Or, if you enter the correct working directory below, just the filename will " -"suffice." +"Export the current set to a platform \n" +"specific environment file" msgstr "" -#: LiteEditor/debugcoredumpbase.cpp:65 -msgid "Corresponding executable:" +#: LiteEditor/commentpagebase.cpp:56 +msgid "" +"When hitting in a C style comment section,automatically add '*' at " +"the next line" msgstr "" -#: LiteEditor/debugcoredumpbase.cpp:70 +#: LiteEditor/commentpagebase.cpp:60 msgid "" -"Enter the full filepath of the executable that crashed to cause the core " -"dump.\n" -"Or, if you enter the correct working directory below, just the filename will " -"suffice." +"When hitting in a C++ style comment section,automatically add '//' " +"at the next line" +msgstr "" + +#: LiteEditor/commentpagebase.cpp:66 +msgid "Doxygen:" msgstr "" -#: LiteEditor/debugcoredumpbase.cpp:77 -msgid "Working directory (optional):" +#: LiteEditor/commentpagebase.cpp:77 +msgid "Use '/**' as doxygen block start (else use '/*!')" msgstr "" -#: LiteEditor/debugcoredumpbase.cpp:87 LiteEditor/ps_debugger_page.cpp:106 -#: LiteEditor/quickdebugbase.cpp:90 -msgid "Select debugger:" +#: LiteEditor/commentpagebase.cpp:81 +msgid "Use '@' as doxygen keyword prefix" msgstr "" -#: LiteEditor/debugger_predefined_types_page.cpp:37 -#: LiteEditor/simpletable.cpp:95 -msgid "Expression" +#: LiteEditor/commentpagebase.cpp:87 +msgid "" +"CodeLite contains a built-in doxygen documentation generator which adds " +"doxygen comments to your code.\n" +"Here you can set the prefix that will placed on top of the dynamic content " +"of the comment:" msgstr "" -#: LiteEditor/debugger_predefined_types_page.cpp:38 -msgid "Debugger Command" +#: LiteEditor/commentpagebase.cpp:99 DatabaseExplorer/GUI.cpp:1065 +msgid "Class prefix:" msgstr "" -#: LiteEditor/debugger_predefined_types_page.cpp:88 -msgid "A Debugger type with that name already exists" +#: LiteEditor/commentpagebase.cpp:106 +msgid "Function prefix:" msgstr "" -#: LiteEditor/debuggerasciiviewerbase.cpp:45 -msgid "Displaying:" +#: LiteEditor/commentpagebase.cpp:118 +msgid "" +"The following macros are available:\n" +"$(CurrentFileName), $(CurrentFilePath), $(User), $(Date), $(Name)\n" +"$(CurrentFileFullPath), $(CurrentFileExt), $(ProjectName), $(WorksapceName)" msgstr "" -#: LiteEditor/debuggerasciiviewerbase.cpp:56 -#: LiteEditor/editorsettingsmiscbasepanel.cpp:247 -#: Plugin/NewKeyShortcutBaseDlg.cpp:66 -#: cppchecker/cppcheckreportbasepage.cpp:79 -msgid "&Clear" +#: LiteEditor/ps_linker_page.cpp:90 +msgid "Linker options" msgstr "" -#: LiteEditor/debuggerpane.cpp:46 LiteEditor/localstable.cpp:52 -msgid "Locals" +#: LiteEditor/editorsettingslocalbase.h:134 +#: LiteEditor/editorsettingslocal.h:36 +msgid "Local Preferences" msgstr "" -#: LiteEditor/debuggerpane.cpp:47 LiteEditor/simpletable.cpp:98 -msgid "Watches" +#: LiteEditor/setters_getters_dlg.cpp:454 +msgid "Generate Setters/Getters for class '" msgstr "" -#: LiteEditor/debuggerpane.cpp:48 codelitephp/php-plugin/php_ui.cpp:1078 -msgid "Call Stack" +#: LiteEditor/project_settings_base_dlg.h:69 LiteEditor/wxcrafter.cpp:572 +#: codelitephp/php-plugin/php_ui.h:343 +msgid "Project Settings" msgstr "" -#: LiteEditor/debuggerpane.cpp:50 -msgid "Threads" +#: LiteEditor/project_settings_base_dlg.h:451 +msgid "Build Target" msgstr "" -#: LiteEditor/debuggerpane.cpp:51 -msgid "Memory" +#: LiteEditor/breakpointdlgbase.cpp:38 +msgid "Add a new breakpoint or watchpoint" msgstr "" -#: LiteEditor/debuggerpane.cpp:52 -msgid "Ascii Viewer" +#: LiteEditor/breakpointdlgbase.cpp:43 +msgid "Edit the selected item" msgstr "" -#: LiteEditor/debuggerpane.cpp:53 -#: LiteEditor/editorsettingsdockingwindowsbase.cpp:69 -#: LiteEditor/output_pane.cpp:48 Plugin/editor_config.cpp:426 -#: Plugin/editor_config.cpp:463 -msgid "Output" +#: LiteEditor/breakpointdlgbase.cpp:48 +msgid "Delete the selected item" msgstr "" -#: LiteEditor/debuggerpane.cpp:54 -msgid "Disassemble" +#: LiteEditor/breakpointdlgbase.cpp:52 LiteEditor/reconcileprojectbase.cpp:173 +msgid "Delete &All" msgstr "" -#: LiteEditor/debuggersettingsbasedlg.cpp:156 -#: QmakePlugin/qmakesettingsbasedlg.cpp:73 -msgid "&New..." +#: LiteEditor/breakpointdlgbase.cpp:53 +msgid "Delete all breakpoints and watchpoints" msgstr "" -#: LiteEditor/debuggersettingsbasedlg.cpp:222 -msgid "Copy Values From:" +#: LiteEditor/breakpointdlgbase.cpp:57 +msgid "Set Pending" msgstr "" -#: LiteEditor/debuggersettingsbasedlg.cpp:233 -msgid "Make this 'PreDefined Types' set active" +#: LiteEditor/breakpointdlgbase.cpp:58 +msgid "" +"If this button is visible, there are breakpoints that you tried to set, but " +"that the debugger refused. This most often happens when the breakpoint is " +"inside a library that hadn't been loaded when the debugger started.\n" +"\n" +"Click to offer the breakpoints to the debugger again." msgstr "" -#: LiteEditor/debuggersettingsbasedlg.cpp:291 -msgid "Debugger path:" +#: LiteEditor/breakpointdlgbase.cpp:108 +msgid "Select the type of the breakpoint:" msgstr "" -#: LiteEditor/debuggersettingsbasedlg.cpp:311 -msgid "Enable pending breakpoints" +#: LiteEditor/breakpointdlgbase.cpp:118 +#: LiteEditor/breakpointpropertiesdlg.cpp:241 LiteEditor/breakpointdlg.cpp:194 +msgid "Breakpoint" msgstr "" -#: LiteEditor/debuggersettingsbasedlg.cpp:313 -msgid "" -"Some breakpoints can't be applied before the program is run, or even later. " -"This is especially a problem when trying to debug inside a library that is " -"dynamically loaded (CodeLite itself contains examples of this).\n" -"\n" -"gdb has an option to 'remember' any breakpoints that it can't initially set, " -"and automatically to set them when it becomes possible. It doesn't always " -"work! However, tick this box to tell gdb to try." +#: LiteEditor/breakpointdlgbase.cpp:123 +msgid "Break by line, function or memory address:" msgstr "" -#: LiteEditor/debuggersettingsbasedlg.cpp:317 -msgid "Apply breakpoints after main function is hit" +#: LiteEditor/breakpointdlgbase.cpp:138 LLDBDebugger/UI.cpp:229 +msgid "Line number" msgstr "" -#: LiteEditor/debuggersettingsbasedlg.cpp:319 +#: LiteEditor/breakpointdlgbase.cpp:144 msgid "" -"Sometimes, some breakpoints won't apply cleanly until after main() has been " -"reached. If this box is ticked, CodeLite won't try to apply them earlier." +"Enter the line-number on which you wish to break. It's assumed to refer to " +"the current file: if it doesn't, please enter the correct filepath below." msgstr "" -#: LiteEditor/debuggersettingsbasedlg.cpp:323 -msgid "Automatically set breakpoint at main" +#: LiteEditor/breakpointdlgbase.cpp:151 +msgid "Function name" msgstr "" -#: LiteEditor/debuggersettingsbasedlg.cpp:325 +#: LiteEditor/breakpointdlgbase.cpp:157 msgid "" -"Every time the debugger runs, set a breakpoint at main(). You may wish to " -"stop then anyway; but it's especially useful when you want to set " -"breakpoints that won't 'take' earlier (however, first try enabling Pending " -"breakpoints, or 'Apply breakpoints after main is hit'" +"If you wish to break when a particular function is entered, insert its name " +"here. In C just the name will do e.g. 'main' or 'myFoo'. For C++ class " +"methods, you need to do 'MyClass::myFoo'\n" +"\n" +"Alternatively you can enter a regular expression, and tick the checkbox " +"below. A breakpoint will then be set on all matching functions." msgstr "" -#: LiteEditor/debuggersettingsbasedlg.cpp:329 -msgid "Break when C++ exception is thrown" +#: LiteEditor/breakpointdlgbase.cpp:166 +msgid "This is a regex" msgstr "" -#: LiteEditor/debuggersettingsbasedlg.cpp:334 -msgid "Raise CodeLite when a breakpoint is hit" +#: LiteEditor/breakpointdlgbase.cpp:168 +msgid "" +"If you wish to insert a breakpoint on several functions, you can tick this " +"box, then enter a suitable regular expression in the textctrl above." msgstr "" -#: LiteEditor/debuggersettingsbasedlg.cpp:336 -msgid "" -"Normally, when a breakpoint is hit, you'll want CodeLite to be raise to the " -"top of the window z-order, so that you can examine values of variables etc.\n" -"However you won't always want that to happen; in particular, not if the " -"breakpoint has commands, which end in 'continue'. If so untick this box to " -"stop it happening." +#: LiteEditor/breakpointdlgbase.cpp:172 +msgid "Memory address:" msgstr "" -#: LiteEditor/debuggersettingsbasedlg.cpp:340 -msgid "Debugger Tooltip:" +#: LiteEditor/breakpointdlgbase.cpp:178 +msgid "" +"To break on a memory address, enter the address here.\n" +"e.g. 0x0a1b2c3d or 12345678" msgstr "" -#: LiteEditor/debuggersettingsbasedlg.cpp:348 -msgid "Use CTRL key to evaluate expressions under the cursor" +#: LiteEditor/breakpointdlgbase.cpp:185 +msgid "In file:" msgstr "" -#: LiteEditor/debuggersettingsbasedlg.cpp:350 +#: LiteEditor/breakpointdlgbase.cpp:194 msgid "" -"When enabled, codelite will evaluate the expression under the cursor only if " -"the CTRL key is down. \n" -"Otherwise, it will evaluate it automatically" +"If you've entered a line-number, its assumed to refer to the current file. " +"If it isn't, enter the correct filename here.\n" +"\n" +"For a function, a file is usually not required. However, if you have several " +"functions with the same name, in several different files (do people _really_ " +"do that?) and you want to break on only one of those, enter the correct " +"filename here." msgstr "" -#: LiteEditor/debuggersettingsbasedlg.cpp:354 -msgid "Auto expand items under the cursor" +#: LiteEditor/breakpointdlgbase.cpp:210 +#: LiteEditor/breakpointpropertiesdlg.cpp:111 LiteEditor/breakpointdlg.cpp:194 +msgid "Watchpoint" msgstr "" -#: LiteEditor/debuggersettingsbasedlg.cpp:359 -#: LiteEditor/tags_options_base_dlg.cpp:40 -msgid "Display:" +#: LiteEditor/breakpointdlgbase.cpp:216 +msgid "write only" msgstr "" -#: LiteEditor/debuggersettingsbasedlg.cpp:369 -msgid "Number of elements to display for arrays / strings:" +#: LiteEditor/breakpointdlgbase.cpp:217 +msgid "read only" msgstr "" -#: LiteEditor/debuggersettingsbasedlg.cpp:370 -#: LiteEditor/debuggersettingsbasedlg.cpp:375 -msgid "For no limit, set it to 0" +#: LiteEditor/breakpointdlgbase.cpp:218 +msgid "read-write" msgstr "" -#: LiteEditor/debuggersettingsbasedlg.cpp:381 -msgid "Use 'PreDefined types for the 'Locals' view" +#: LiteEditor/breakpointdlgbase.cpp:219 +msgid "Type of watchpoint:" msgstr "" -#: LiteEditor/debuggersettingsbasedlg.cpp:388 -msgid "Auto cast 'char[]' into 'char*'" +#: LiteEditor/breakpointdlgbase.cpp:220 +msgid "" +"The usual type of watchpoint is 'write-only': that is, it's triggered " +"whenever the target is changed.\n" +"\n" +"Alternatively you can choose for it to trigger when the target is read from, " +"or either written to or read from." msgstr "" -#: LiteEditor/debuggersettingsbasedlg.cpp:395 -msgid "Enable GDB Pretty Printing" +#: LiteEditor/breakpointdlgbase.cpp:225 +msgid "Data to watch:" msgstr "" -#: LiteEditor/debuggersettingsbasedlg.cpp:397 +#: LiteEditor/breakpointdlgbase.cpp:230 msgid "" -"If ticked, examining the contents of e.g. std::string, wxString, " -"wxArrayString will be much easier" +"Identify the data to be watched. It can be one of:\n" +"1) Any variable name e.g. 'foo'\n" +"2) A memory address, suitably cast e.g.*(int*)0x12345678 will watch an int-" +"sized block starting at this address.\n" +"Don't include spaces in the expression: gdb can't understand them.\n" +"3) A complex expression e.g. a*b + c/d'. The expression can use any " +"operators valid in the program's native language.\n" +"\n" +"NB. A watchpoint set on a local variable will automatically be removed when " +"the variable loses scope." msgstr "" -#: LiteEditor/debuggersettingsbasedlg.cpp:447 -msgid "Use file name only for breakpoints (NO full paths)" +#: LiteEditor/breakpointdlgbase.cpp:238 +msgid "Conditional Breaks: Add any condition here" msgstr "" -#: LiteEditor/debuggersettingsbasedlg.cpp:452 -msgid "Enable full debugger logging" +#: LiteEditor/breakpointdlgbase.cpp:243 +msgid "" +"You can add a condition to any breakpoint or watchpoint. The debugger will " +"then stop only if the condition is met.\n" +"\n" +"The condition can be any simple or complex expression in your programming " +"language,providing it returns a bool. However any variables that you use " +"must be in scope.\n" +"\n" +"If you've previously set a condition and no longer want it, just clear this " +"textctrl." msgstr "" -#: LiteEditor/debuggersettingsbasedlg.cpp:457 -msgid "Show debugger terminal" +#: LiteEditor/breakpointdlgbase.cpp:247 +msgid "Command List: Add any command(s) here" msgstr "" -#: LiteEditor/debuggersettingsbasedlg.cpp:466 -msgid "Max number of frames to allow in a call-stack" +#: LiteEditor/breakpointdlgbase.cpp:252 +msgid "" +"You can add a list of commands to any breakpoint or watchpoint. When the " +"breakpoint is hit and the program interrupted, those commands will be " +"executed.\n" +"\n" +"For example, to print the value of the variable foo and then continue " +"running the program, enter:\n" +"print foo\n" +"cont\n" +"\n" +"If you've previously entered commands, and no longer want them, just clear " +"this textctrl." msgstr "" -#: LiteEditor/debuggersettingsbasedlg.cpp:471 +#: LiteEditor/breakpointdlgbase.cpp:266 +msgid "Disable" +msgstr "" + +#: LiteEditor/breakpointdlgbase.cpp:268 msgid "" -"The maximum number of frames that CodeLite will display in the Call Stack " -"tab. This protects against a very long hang while trying to show 100,000 " -"frames in an infinite recursion situation." +"If you check this box, the breakpoint (or watchpoint) will still exist, but " +"it won't trigger. If you uncheck it in the future, the breakpoint will work " +"again." msgstr "" -#: LiteEditor/debuggersettingsbasedlg.cpp:477 -msgid "MinGW / Cygwin:" +#: LiteEditor/breakpointdlgbase.cpp:272 +msgid "Make temporary" msgstr "" -#: LiteEditor/debuggersettingsbasedlg.cpp:485 -msgid "Break at assertion failure (MinGW only)" +#: LiteEditor/breakpointdlgbase.cpp:274 +msgid "" +"A temporary breakpoint (or watchpoint) is one that works only once. When " +"it's hit it behaves like any other, except that it's then deleted." msgstr "" -#: LiteEditor/debuggersettingsbasedlg.cpp:490 -msgid "Cygwin path conversion command:" +#: LiteEditor/breakpointdlgbase.cpp:278 +msgid "Ignore count:" msgstr "" -#: LiteEditor/debuggersettingsbasedlg.cpp:491 -#: LiteEditor/debuggersettingsbasedlg.cpp:496 +#: LiteEditor/breakpointdlgbase.cpp:279 msgid "" -"Set here the command to use in order to convert cygwin paths into native " -"Windows paths (use $(File) as a place holder for the file name)" +"Enter a count >0 to ignore this breakpoint (or watchpoint) for that number " +"of times. It then behaves as though it is disabled, except that every time " +"it would have triggered, the ignore count decrements.\n" +"When the count reaches zero, the breakpoint becomes active again." msgstr "" -#: LiteEditor/debuggersettingsbasedlg.cpp:546 -msgid "&New" +#: LiteEditor/workspacetab.cpp:49 +msgid "" msgstr "" -#: LiteEditor/debuggersettingsbasedlg.cpp:547 -msgid "Create new 'PreDefined' set" +#: LiteEditor/workspacetab.cpp:441 +msgid " Project Settings" msgstr "" -#: LiteEditor/debuggersettingsbasedlg.cpp:552 -msgid "Delete the currently selected set" +#: LiteEditor/findinfiles_dlg.h:113 LiteEditor/wxcrafter.cpp:1011 +#: LiteEditor/frame.cpp:1358 LiteEditor/frame.cpp:1360 +#: LiteEditor/frame.cpp:1556 LiteEditor/frame.cpp:1558 +#: LiteEditor/frame.cpp:1693 LiteEditor/frame.cpp:1695 +#: LiteEditor/frame.cpp:1862 LiteEditor/frame.cpp:1864 +#: codelitephp/php-plugin/php_workspace_view.cpp:228 +#: codelitephp/php-plugin/php_workspace_view.cpp:243 +#: codelitephp/php-plugin/php_workspace_view.cpp:279 +msgid "Find In Files" msgstr "" -#: LiteEditor/debuggersettingsbasedlg.cpp:556 -msgid "Available sets:" +#: LiteEditor/openwindowspanelbase.cpp:34 +msgid "" +"If checked, sort alphabetically. Otherwise display in the same order as the " +"editors." msgstr "" -#: LiteEditor/debuggersettingsbasedlg.cpp:606 -msgid "Current function:" +#: LiteEditor/tasksfindwhatdlgbase.h:105 LiteEditor/tasks_find_what_dlg.cpp:72 +msgid "New Task" msgstr "" -#: LiteEditor/debuggersettingsbasedlg.cpp:673 -#: LiteEditor/debuggersettingsbasedlg.cpp:675 -msgid "Register" +#: LiteEditor/wxcAboutDlg.h:74 +msgid "About CodeLite" msgstr "" -#: LiteEditor/depend_dlg_page.cpp:42 -#, c-format -msgid "" -"Build order for configuration '%s' has been modified, would you like to save " -"it?" +#: LiteEditor/tabgroupbasedlgs.cpp:50 +msgid "Select a tab group, or browse for one" msgstr "" -#: LiteEditor/dialogspagebase.cpp:42 -msgid "" -"Below is a list of the 'annoying' dialogs answers, you can modify \n" -"the answer of a dialog by checking / unchecking the saved answer" +#: LiteEditor/tabgroupbasedlgs.cpp:55 +msgid "Click to search for other groups" msgstr "" -#: LiteEditor/edit_configuration.cpp:85 -#: LiteEditor/edit_workspace_conf_dlg.cpp:63 -#: LiteEditor/manageperspectivesbasedlg.cpp:56 -#: LiteEditor/rename_symbool_dlg.cpp:150 -msgid "&Rename" +#: LiteEditor/tabgroupbasedlgs.cpp:62 +msgid "Double-click to choose one of these groups" msgstr "" -#: LiteEditor/edit_configuration.cpp:143 LiteEditor/edit_configuration.cpp:165 -msgid "Enter New Name:" +#: LiteEditor/tabgroupbasedlgs.cpp:67 +msgid "Replace current tabs" msgstr "" -#: LiteEditor/edit_configuration.cpp:143 LiteEditor/edit_configuration.cpp:165 -#: LiteEditor/edit_workspace_conf_dlg.cpp:137 SFTP/SFTPTreeView.cpp:344 -#: SFTP/SFTPTreeView.cpp:440 Subversion2/subversion2.cpp:335 -#: codelitephp/php-plugin/php_workspace_view.cpp:184 -#: codelitephp/php-plugin/php_workspace_view.cpp:215 -msgid "Rename" +#: LiteEditor/tabgroupbasedlgs.cpp:68 +msgid "" +"By default, the tabs of this group will be added to the current tabs. Tick " +"this to replace the current tabs instead." msgstr "" -#: LiteEditor/edit_configuration.cpp:181 -msgid "Remove configuration '" +#: LiteEditor/tabgroupbasedlgs.cpp:118 +msgid "Select which tabs you want to be in the group" msgstr "" -#: LiteEditor/edit_configuration.cpp:182 -msgid "' ?" +#: LiteEditor/tabgroupbasedlgs.cpp:135 +msgid "Click to select all items" msgstr "" -#: LiteEditor/edit_workspace_conf_dlg.cpp:69 -#: LiteEditor/reconcileprojectbase.cpp:204 -msgid "&Close" +#: LiteEditor/tabgroupbasedlgs.cpp:140 +msgid "Click to clear all items" msgstr "" -#: LiteEditor/edit_workspace_conf_dlg.cpp:124 -msgid "Remove workspace configuration '" +#: LiteEditor/tabgroupbasedlgs.cpp:154 +msgid "Choose a name for the group:" msgstr "" -#: LiteEditor/edit_workspace_conf_dlg.cpp:137 -msgid "New Configuration Name:" +#: LiteEditor/quickfindbar.cpp:99 +msgid "Case sensitive match" msgstr "" -#: LiteEditor/editcmpfileinfobase.cpp:50 -msgid "File type:" +#: LiteEditor/quickfindbar.cpp:111 +msgid "Regular expression" msgstr "" -#: LiteEditor/editcmpfileinfobase.cpp:57 -msgid "Handle file has:" +#: LiteEditor/quickfindbar.cpp:112 +msgid "Wildcard syntax" msgstr "" -#: LiteEditor/editcmpfileinfobase.cpp:67 -msgid "Compilation line:" +#: LiteEditor/quickfindbar.cpp:130 +msgid "Highlight Occurences" msgstr "" -#: LiteEditor/editcmpfileinfobase.cpp:85 -msgid "Help..." +#: LiteEditor/quickfindbar.cpp:139 +msgid "Hit ENTER to search, or Shift + ENTER to search backward" msgstr "" -#: LiteEditor/editor_options_caret.cpp:60 -msgid "Caret blink period (milliseconds):" +#: LiteEditor/quickfindbar.cpp:141 +msgid "Type to start a search..." msgstr "" -#: LiteEditor/editor_options_caret.cpp:65 -msgid "Sets the caret blinking period in millisconds" +#: LiteEditor/quickfindbar.cpp:145 LiteEditor/wxcrafter.cpp:649 +#: LiteEditor/frame.cpp:1354 LiteEditor/frame.cpp:1552 +#: LiteEditor/frame.cpp:1689 LiteEditor/frame.cpp:1858 +msgid "Find" msgstr "" -#: LiteEditor/editor_options_caret.cpp:69 -msgid "Caret width (pixels):" +#: LiteEditor/quickfindbar.cpp:149 +msgid "Find Next" msgstr "" -#: LiteEditor/editor_options_caret.cpp:74 -msgid "Set the caret width in pixels" +#: LiteEditor/quickfindbar.cpp:152 +msgid "Find Prev" msgstr "" -#: LiteEditor/editor_options_caret.cpp:78 -msgid "Allow caret to scroll beyond end of file" +#: LiteEditor/quickfindbar.cpp:156 +msgid "Find Previous" msgstr "" -#: LiteEditor/editor_options_caret.cpp:80 -msgid "" -"When scrolling with the mouse, the scrolling can go beyond the end of file" +#: LiteEditor/quickfindbar.cpp:159 +msgid "Find All" msgstr "" -#: LiteEditor/editor_options_caret.cpp:84 -msgid "Auto-adjust horizontal scrollbar width" +#: LiteEditor/quickfindbar.cpp:162 +msgid "Find and select all occurrences" msgstr "" -#: LiteEditor/editor_options_caret.cpp:86 -msgid "Auto adjust the horizontal toolbar to fit to the page content" +#: LiteEditor/quickfindbar.cpp:177 +msgid "Type the replacement string and hit ENTER to perform the replacement" msgstr "" -#: LiteEditor/editor_options_caret.cpp:90 -msgid "Allow caret to be placed beyond the end of line" +#: LiteEditor/quickfindbar.cpp:178 +msgid "Type any replacement string..." msgstr "" -#: LiteEditor/editor_options_caret.cpp:92 -msgid "" -"Allow the user to place the caret using the mouse beyond the end of line" +#: LiteEditor/quickfindbar.cpp:182 +msgid "Replace the current selection" msgstr "" -#: LiteEditor/editor_options_caret.cpp:96 -msgid "Caret jumps between word segments" +#: LiteEditor/editoroptionsgeneralsavepanelbase.cpp:52 +msgid "Do not trim the caret line" msgstr "" -#: LiteEditor/editor_options_caret.cpp:98 -msgid "" -"Caret jumps between word segments marked by capitalisation (CamelCase) or " -"underscores" +#: LiteEditor/editoroptionsgeneralsavepanelbase.cpp:64 +msgid "Trim only modified lines" msgstr "" #: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:40 @@ -5711,21 +8197,6 @@ msgid "Whitespaces" msgstr "" -#: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:60 -#: Plugin/clBoostrapWizardBase.cpp:224 -msgid "Invisible" -msgstr "" - -#: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:61 -#: Plugin/clBoostrapWizardBase.cpp:225 -msgid "Visible always" -msgstr "" - -#: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:62 -#: Plugin/clBoostrapWizardBase.cpp:226 -msgid "Visible after indentation" -msgstr "" - #: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:63 msgid "Whitespace visibility" msgstr "" @@ -5734,11 +8205,6 @@ msgid "Whitespace visibility policy" msgstr "" -#: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:68 -#: LiteEditor/env_var_dlg_base.cpp:76 -msgid "Default" -msgstr "" - #: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:69 msgid "Mac (CR)" msgstr "" @@ -5763,11 +8229,6 @@ msgid "Caret line" msgstr "" -#: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:78 -#: LiteEditor/editorsettingslocalbase.cpp:224 -msgid "Highlight caret line" -msgstr "" - #: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:79 msgid "Highlight caret line with a background colour" msgstr "" @@ -5859,1729 +8320,1658 @@ "with the character, wrap it with brackets" msgstr "" -#: LiteEditor/editoroptionsgeneralindetationpanelbase.cpp:42 -msgid "Disable Smart Indentation" -msgstr "" - -#: LiteEditor/editoroptionsgeneralindetationpanelbase.cpp:45 -#: LiteEditor/editorsettingslocalbase.cpp:87 -msgid "Use tabs in indentation" -msgstr "" - -#: LiteEditor/editoroptionsgeneralindetationpanelbase.cpp:54 -#: LiteEditor/editorsettingslocalbase.cpp:123 -msgid "Columns per indentation level:" -msgstr "" - -#: LiteEditor/editoroptionsgeneralindetationpanelbase.cpp:58 -#: LiteEditor/editoroptionsgeneralindetationpanelbase.cpp:65 -msgid "4" -msgstr "" - -#: LiteEditor/editoroptionsgeneralindetationpanelbase.cpp:61 -#: LiteEditor/editorsettingslocalbase.cpp:102 -msgid "Columns per tab character in document:" -msgstr "" - -#: LiteEditor/editoroptionsgeneralrightmarginpanelbase.cpp:45 -msgid "Disabled" -msgstr "" - -#: LiteEditor/editoroptionsgeneralrightmarginpanelbase.cpp:52 -msgid "Background" +#: LiteEditor/NewProjectWizard.cpp:332 +msgid "Select Project Path:" msgstr "" -#: LiteEditor/editoroptionsgeneralrightmarginpanelbase.cpp:63 -msgid "Indicator Column" +#: LiteEditor/NewProjectWizard.cpp:337 LiteEditor/newworkspacedlg.cpp:80 +msgid "The selected project path '" msgstr "" -#: LiteEditor/editoroptionsgeneralrightmarginpanelbase.cpp:67 -msgid "80" +#: LiteEditor/NewProjectWizard.cpp:338 +msgid "" +"'\n" +"contains some invalid characters\n" +"Continue anyway?" msgstr "" -#: LiteEditor/editoroptionsgeneralrightmarginpanelbase.cpp:70 -msgid "Indicator Colour:" +#: LiteEditor/NewProjectWizard.cpp:394 +msgid "The File '" msgstr "" -#: LiteEditor/editoroptionsgeneralsavepanelbase.cpp:42 -#: LiteEditor/editorsettingslocalbase.cpp:235 -msgid "When saving files, trim empty lines" +#: LiteEditor/NewProjectWizard.cpp:394 +msgid "' already exists at the target directory '" msgstr "" -#: LiteEditor/editoroptionsgeneralsavepanelbase.cpp:52 -msgid "Do not trim the caret line" +#: LiteEditor/NewProjectWizard.cpp:396 +msgid "Please select a different project path\n" msgstr "" -#: LiteEditor/editoroptionsgeneralsavepanelbase.cpp:64 -msgid "Trim only modified lines" +#: LiteEditor/NewProjectWizard.cpp:397 +msgid "The file '" msgstr "" -#: LiteEditor/editoroptionsgeneralsavepanelbase.cpp:69 -#: LiteEditor/editorsettingslocalbase.cpp:245 -msgid "If missing, append EOL at end of file" +#: LiteEditor/NewProjectWizard.cpp:397 +msgid "' is part of the template project [" msgstr "" -#: LiteEditor/editorsettings_terminal_base.cpp:29 -msgid "Use CodeLite built in terminal emulator" +#: LiteEditor/NewProjectWizard.cpp:492 +msgid "Project names may contain only the following characters [a-z0-9_-]" msgstr "" -#: LiteEditor/editorsettings_terminal_base.cpp:34 -msgid "" -"Windows only: commands executed with CMD.EXE are wrapped with double quotes" +#: LiteEditor/NewProjectWizard.cpp:506 +msgid "Invalid project path selected: " msgstr "" -#: LiteEditor/editorsettings_terminal_base.cpp:36 -msgid "" -"Windows only: commands executed with CMD.EXE are wrapped with double quotes\n" -"This is often needed to allow executing commands with spaces in their path" +#: LiteEditor/NewProjectWizard.cpp:517 +msgid "Please select a template from the list" msgstr "" -#: LiteEditor/editorsettings_terminal_base.cpp:40 -msgid "Enter here the command to be used by CodeLite for launching consoles:" +#: LiteEditor/dbgcommandbasedlg.h:73 +msgid "Debugger Type" msgstr "" -#: LiteEditor/editorsettings_terminal_base.cpp:51 -msgid "Where:" +#: LiteEditor/project_settings_dlg.cpp:129 +msgid "Common Settings" msgstr "" -#: LiteEditor/editorsettings_terminal_base.cpp:62 -msgid "$(TITLE)" +#: LiteEditor/project_settings_dlg.cpp:132 +#: LiteEditor/project_settings_base_dlg.cpp:155 +#: LiteEditor/project_settings_base_dlg.cpp:922 +msgid "Compiler" msgstr "" -#: LiteEditor/editorsettings_terminal_base.cpp:66 -msgid "The console title" +#: LiteEditor/project_settings_dlg.cpp:133 LiteEditor/compiler_pages.cpp:318 +#: LiteEditor/project_settings_base_dlg.cpp:941 +msgid "Linker" msgstr "" -#: LiteEditor/editorsettings_terminal_base.cpp:70 -msgid "$(CMD)" +#: LiteEditor/project_settings_dlg.cpp:134 +#: LiteEditor/workspacesettingsbase.cpp:35 +msgid "Environment" msgstr "" -#: LiteEditor/editorsettings_terminal_base.cpp:74 -msgid "The command to execute" +#: LiteEditor/project_settings_dlg.cpp:135 +#: LiteEditor/project_settings_base_dlg.cpp:189 +msgid "Debugger" msgstr "" -#: LiteEditor/editorsettingsbookmarksbasepanel.cpp:29 -#: LiteEditor/editorsettingslocalbase.cpp:155 -msgid "Display Breakpoints / Bookmarks margin" +#: LiteEditor/project_settings_dlg.cpp:136 +#: LiteEditor/project_settings_base_dlg.cpp:607 +#: LiteEditor/project_settings_base_dlg.cpp:956 +msgid "Resources" msgstr "" -#: LiteEditor/editorsettingsbookmarksbasepanel.cpp:41 -msgid "Bookmark Shape:" +#: LiteEditor/project_settings_dlg.cpp:138 +msgid "Pre / Post Build Commands" msgstr "" -#: LiteEditor/editorsettingsbookmarksbasepanel.cpp:50 -msgid "Select bookmark type:" +#: LiteEditor/project_settings_dlg.cpp:140 +msgid "Pre Build" msgstr "" -#: LiteEditor/editorsettingsbookmarksbasepanel.cpp:61 -msgid "Select the bookmark type from the following list" +#: LiteEditor/project_settings_dlg.cpp:142 +msgid "Post Build" msgstr "" -#: LiteEditor/editorsettingsbookmarksbasepanel.cpp:66 -msgid "Bookmark label:" +#: LiteEditor/project_settings_dlg.cpp:144 +#: LiteEditor/syntaxhighlightbasedlg.cpp:133 +msgid "Customize" msgstr "" -#: LiteEditor/editorsettingsbookmarksbasepanel.cpp:71 -msgid "" -"The label shown in e.g. a tooltip. You can set it to something descriptive " -"if you wish." +#: LiteEditor/project_settings_dlg.cpp:146 +msgid "Custom Build" msgstr "" -#: LiteEditor/editorsettingsbookmarksbasepanel.cpp:78 -msgid "Background colour:" +#: LiteEditor/project_settings_dlg.cpp:148 +#: LiteEditor/project_settings_dlg.cpp:149 +msgid "Custom Makefile Rules" msgstr "" -#: LiteEditor/editorsettingsbookmarksbasepanel.cpp:105 -msgid "'Highlight Matching Word' colour:" +#: LiteEditor/project_settings_dlg.cpp:152 +#: LiteEditor/tags_options_base_dlg.h:186 +#: codelitephp/php-plugin/php_ui.cpp:468 codelitephp/php-plugin/php_ui.cpp:841 +#: codelitephp/php-plugin/php_ui.cpp:1884 WebTools/WebToolsBase.cpp:35 +msgid "Code Completion" msgstr "" -#: LiteEditor/editorsettingsbookmarksbasepanel.cpp:110 -msgid "" -"This lets you set the 'Highlight Matching Word' colour (the colour of words " -"that match the selection). To set the colour of the selection itself, see " -"'Settings > Syntax Highlight and Fonts'." +#: LiteEditor/project_settings_dlg.cpp:154 +#: LiteEditor/project_settings_dlg.cpp:155 +#: LiteEditor/syntaxhighlightbasedlg.cpp:156 +msgid "Global Settings" msgstr "" -#: LiteEditor/editorsettingsbookmarksbasepanel.cpp:114 -msgid "'Highlight Matching Word' alpha:" +#: LiteEditor/project_settings_dlg.cpp:288 +#: LiteEditor/project_settings_dlg.cpp:315 +msgid "Save changes before loading new configuration?" msgstr "" -#: LiteEditor/editorsettingsbookmarksbasepanel.cpp:119 -msgid "" -"This affects the intensity of the colour set in the field above (for words " -"matching the selection). Choose a value between 0 and 256. Higher values " -"give a less-transparent background." +#: LiteEditor/project_settings_dlg.cpp:289 +#: LiteEditor/project_settings_dlg.cpp:316 +msgid "Save Changes" msgstr "" -#: LiteEditor/editorsettingsbookmarksbasepanel.cpp:125 -msgid "Find/FindNext clears highlit matching words" +#: LiteEditor/project_settings_dlg.cpp:390 +msgid "This project is disabled" msgstr "" -#: LiteEditor/editorsettingsbookmarksbasepanel.cpp:127 +#: LiteEditor/project_settings_dlg.cpp:400 msgid "" -"By default, 'Find', FindNext and FindPrevious will clear all current " -"'Highlight Matching Word' matches. Untick this box to prevent that happening." +"Settings on this page are disabled because this project is setup as \"Custom " +"Build\" project" msgstr "" -#: LiteEditor/editorsettingscommentsbase.cpp:33 -msgid "" -"When adding new files to a project, place the files in the 'include' / 'src' " -"folders respectively" +#: LiteEditor/project_settings_dlg.cpp:514 LiteEditor/compiler_pages.cpp:423 +msgid "Compiler Options" msgstr "" -#: LiteEditor/editorsettingscommentsbase.cpp:42 -msgid "Comments:" +#: LiteEditor/project_settings_dlg.cpp:525 LiteEditor/compiler_pages.cpp:454 +#: LiteEditor/project_settings_base_dlg.cpp:358 +msgid "Linker Options" msgstr "" -#: LiteEditor/editorsettingscommentsbase.cpp:55 -msgid "" -"Hitting in a C style comment automatically adds a '*' to the next " -"line" +#: LiteEditor/CompilersFoundDlgBase.cpp:56 +msgid "Found Compilers" msgstr "" -#: LiteEditor/editorsettingscommentsbase.cpp:60 +#: LiteEditor/CompilersFoundDlgBase.cpp:56 msgid "" -"Hitting in a C++ style comment section automatically adds a'//' to " -"the next line" +"Below is a list of compilers found on your computer.\n" +"Click 'OK' to replace the current list of compilers with this list. 'Cancel' " +"to abort." msgstr "" -#: LiteEditor/editorsettingscommentsbase.cpp:69 -msgid "Code Navigation Accelerators:" +#: LiteEditor/CompilersFoundDlgBase.cpp:70 +msgid "Compiler Name / Family" msgstr "" -#: LiteEditor/editorsettingscommentsbase.cpp:82 -msgid "Code navigation key:" +#: LiteEditor/CompilersFoundDlgBase.cpp:80 +msgid "Double click a compiler to make it the default for its compiler family" msgstr "" -#: LiteEditor/editorsettingscommentsbase.cpp:83 +#: LiteEditor/CompilersFoundDlgBase.cpp:125 msgid "" -"When using quick code navigation use this keys in combination with mouse " -"click\n" -"To quickly go to implementation / declaration" +"Some of the compilers referred by the workspace no longer exist.\n" +"Define each missing compiler by cloning an existing compiler." msgstr "" -#: LiteEditor/editorsettingscommentsbase.cpp:87 -msgid "Mouse Left Click +" +#: LiteEditor/CompilersFoundDlgBase.cpp:137 +#: LiteEditor/advanced_settings.cpp:81 +msgid "Compilers" msgstr "" -#: LiteEditor/editorsettingscommentsbase.cpp:91 -msgid "Ctrl" +#: LiteEditor/breakpointpropertiesdlg.cpp:116 +msgid "" +"You don't seem to have entered a variable for the watchpoint to watch. " +"Please try again." msgstr "" -#: LiteEditor/editorsettingscommentsbase.cpp:96 -#: Plugin/NewKeyShortcutBaseDlg.cpp:84 -msgid "Alt" +#: LiteEditor/breakpointpropertiesdlg.cpp:136 +msgid "The breakpoint's line-number is invalid. Please try again." msgstr "" -#: LiteEditor/editorsettingscommentsdoxygenpanelbase.cpp:40 -msgid "Generate doxygen comment after \"/**\"" +#: LiteEditor/breakpointpropertiesdlg.cpp:136 +#: LiteEditor/breakpointpropertiesdlg.cpp:147 +msgid ":/" msgstr "" -#: LiteEditor/editorsettingscommentsdoxygenpanelbase.cpp:41 +#: LiteEditor/breakpointpropertiesdlg.cpp:146 msgid "" -"When the user hit ENTER after \"/**\" generate the proper documentation block" +"You don't seem to have entered a name for the function. Please try again." msgstr "" -#: LiteEditor/editorsettingscommentsdoxygenpanelbase.cpp:43 -#: SnipWiz/templateclassbasedlg.cpp:165 -msgid "Templates" +#: LiteEditor/breakpointpropertiesdlg.cpp:197 +#: LiteEditor/breakpointpropertiesdlg.cpp:199 LiteEditor/quickdebugdlg.cpp:96 +#: LiteEditor/debugcoredump.cpp:173 +msgid "Select file:" msgstr "" -#: LiteEditor/editorsettingscommentsdoxygenpanelbase.cpp:46 -msgid "Class documentation template" +#: LiteEditor/breakpointpropertiesdlg.cpp:232 +msgid "" +"Sorry, you can't change a breakpoint to a watchpoint, or vice versa, while " +"the debugger is running" msgstr "" -#: LiteEditor/editorsettingscommentsdoxygenpanelbase.cpp:47 -msgid "" -"Set the template to use when generating documetation for a class (or C/C++ " -"struct).\n" -"The following macros are available: $(CurrentFileName), $(CurrentFilePath), " -"$(User), $(Date), $(Name) $(CurrentFileFullPath), $(CurrentFileExt), " -"$(ProjectName), $(WorkspaceName)" +#: LiteEditor/breakpointpropertiesdlg.cpp:233 +msgid "Not possible" msgstr "" -#: LiteEditor/editorsettingscommentsdoxygenpanelbase.cpp:49 -msgid "Function documentation template" +#: LiteEditor/batchbuildbasedlg.cpp:44 +msgid "Select the configurations to build/clean:" msgstr "" -#: LiteEditor/editorsettingscommentsdoxygenpanelbase.cpp:50 -msgid "" -"Set the template to use when generating documetation for a function\n" -"The following macros are available: $(CurrentFileName), $(CurrentFilePath), " -"$(User), $(Date), $(Name) $(CurrentFileFullPath), $(CurrentFileExt), " -"$(ProjectName), $(WorkspaceName)" +#: LiteEditor/batchbuildbasedlg.cpp:61 menu.xrc:483 +msgid "&Build" msgstr "" -#: LiteEditor/editorsettingsdockingwindowsbase.cpp:29 -msgid "Output Pane:" +#: LiteEditor/batchbuildbasedlg.cpp:65 +msgid "&Clean" msgstr "" -#: LiteEditor/editorsettingsdockingwindowsbase.cpp:33 -msgid "" -"When user clicks inside an editor, hide the output pane -- unless it's one " -"of:" +#: LiteEditor/batchbuildbasedlg.cpp:71 LiteEditor/rename_symbool_dlg.cpp:93 +#: LiteEditor/rename_symbool_dlg.cpp:219 +msgid "&Uncheck All" msgstr "" -#: LiteEditor/editorsettingsdockingwindowsbase.cpp:35 -msgid "" -"When e.g. you compile your project, or use 'Find in Files', the Output Pane " -"opens to show the results. If this box is ticked, it will automatically " -"close as soon as you click in the editor." +#: LiteEditor/batchbuildbasedlg.cpp:79 LiteEditor/addincludefiledlgbase.cpp:58 +msgid "Move Up" msgstr "" -#: LiteEditor/editorsettingsdockingwindowsbase.cpp:45 -#: LiteEditor/frame.cpp:1443 LiteEditor/frame.cpp:1945 -#: LiteEditor/output_pane.cpp:47 Plugin/editor_config.cpp:417 -#: Plugin/editor_config.cpp:455 -msgid "Build" +#: LiteEditor/batchbuildbasedlg.cpp:82 LiteEditor/addincludefiledlgbase.cpp:60 +msgid "Move Down" msgstr "" -#: LiteEditor/editorsettingsdockingwindowsbase.cpp:47 -msgid "" -"Don't automatically close the Output Pane on an editor click if this tab is " -"showing e.g. you may not want it to close while you correct one of many " -"build errors." +#: LiteEditor/tagsparsersearchpathsbasedlg.h:71 +msgid "Add Search Paths to Code Completion Parser" msgstr "" -#: LiteEditor/editorsettingsdockingwindowsbase.cpp:51 -#: LiteEditor/frame.cpp:1397 LiteEditor/frame.cpp:1901 -#: LiteEditor/output_pane.cpp:46 Plugin/editor_config.cpp:420 -#: Plugin/editor_config.cpp:457 -msgid "Search" +#: LiteEditor/wxcrafter.cpp:93 +msgid "Keep pane open" msgstr "" -#: LiteEditor/editorsettingsdockingwindowsbase.cpp:53 -#: LiteEditor/editorsettingsdockingwindowsbase.cpp:59 -#: LiteEditor/editorsettingsdockingwindowsbase.cpp:65 -#: LiteEditor/editorsettingsdockingwindowsbase.cpp:71 -#: LiteEditor/editorsettingsdockingwindowsbase.cpp:77 -#: LiteEditor/editorsettingsdockingwindowsbase.cpp:83 -#: LiteEditor/editorsettingsdockingwindowsbase.cpp:89 -#: LiteEditor/editorsettingsdockingwindowsbase.cpp:95 -#: LiteEditor/editorsettingsdockingwindowsbase.cpp:101 -#: LiteEditor/editorsettingsdockingwindowsbase.cpp:107 -#: LiteEditor/editorsettingsdockingwindowsbase.cpp:113 -#: LiteEditor/editorsettingsdockingwindowsbase.cpp:125 +#: LiteEditor/wxcrafter.cpp:95 +msgid "Auto Scroll to Bottom" +msgstr "" + +#: LiteEditor/wxcrafter.cpp:95 msgid "" -"Don't automatically close the Output Pane on an editor click if this tab is " -"showing." +"When checked, make sure that the last line added\n" +"is always visible" msgstr "" -#: LiteEditor/editorsettingsdockingwindowsbase.cpp:57 -#: LiteEditor/frame.cpp:1372 LiteEditor/frame.cpp:1570 -#: LiteEditor/frame.cpp:1707 LiteEditor/frame.cpp:1876 -#: LiteEditor/output_pane.cpp:50 LiteEditor/project_settings_base_dlg.cpp:277 -#: LiteEditor/quickfindbar.cpp:181 Plugin/editor_config.cpp:422 -#: Plugin/editor_config.cpp:459 -msgid "Replace" +#: LiteEditor/wxcrafter.cpp:99 +msgid "Clear Build Output" msgstr "" -#: LiteEditor/editorsettingsdockingwindowsbase.cpp:63 -#: LiteEditor/output_pane.cpp:53 Plugin/editor_config.cpp:424 -#: Plugin/editor_config.cpp:461 -msgid "References" +#: LiteEditor/wxcrafter.cpp:101 +msgid "Save Build Log..." msgstr "" -#: LiteEditor/editorsettingsdockingwindowsbase.cpp:75 -#: LiteEditor/output_pane.cpp:52 Plugin/editor_config.cpp:430 -#: Plugin/editor_config.cpp:467 -msgid "Trace" +#: LiteEditor/wxcrafter.cpp:103 LiteEditor/frame.cpp:1315 +#: LiteEditor/frame.cpp:1531 LiteEditor/frame.cpp:1668 +#: LiteEditor/frame.cpp:1817 menu.xrc:862 menu.xrc:916 menu.xrc:1146 +#: DatabaseExplorer/ErdPanel.cpp:173 DatabaseExplorer/FrameCanvas.cpp:173 +msgid "Copy" msgstr "" -#: LiteEditor/editorsettingsdockingwindowsbase.cpp:81 -#: LiteEditor/output_pane.cpp:51 Plugin/editor_config.cpp:432 -#: Plugin/editor_config.cpp:469 -msgid "Tasks" +#: LiteEditor/wxcrafter.cpp:103 +msgid "Copy Build Output to Clipboard" msgstr "" -#: LiteEditor/editorsettingsdockingwindowsbase.cpp:87 -#: Plugin/editor_config.cpp:434 Plugin/editor_config.cpp:471 -msgid "BuildQ" +#: LiteEditor/wxcrafter.cpp:105 LiteEditor/frame.cpp:1316 +#: LiteEditor/frame.cpp:1532 LiteEditor/frame.cpp:1669 +#: LiteEditor/frame.cpp:1818 menu.xrc:865 menu.xrc:919 +#: DatabaseExplorer/ErdPanel.cpp:175 DatabaseExplorer/FrameCanvas.cpp:175 +msgid "Paste" msgstr "" -#: LiteEditor/editorsettingsdockingwindowsbase.cpp:93 -#: Plugin/editor_config.cpp:436 Plugin/editor_config.cpp:473 -#: cppchecker/cppchecker.cpp:178 cppchecker/cppchecker.cpp:184 -#: cppchecker/cppchecker.cpp:190 cppchecker/cppchecker.cpp:691 -#: cppchecker/cppchecksettingsdlg.cpp:193 -#: cppchecker/cppchecksettingsdlg.cpp:215 -msgid "CppCheck" +#: LiteEditor/wxcrafter.cpp:105 +msgid "Paste Build Output into an Empty Editor" msgstr "" -#: LiteEditor/editorsettingsdockingwindowsbase.cpp:99 -#: Plugin/editor_config.cpp:438 Plugin/editor_config.cpp:475 -msgid "Subversion" +#: LiteEditor/wxcrafter.cpp:293 +msgid "Implement functions" msgstr "" -#: LiteEditor/editorsettingsdockingwindowsbase.cpp:105 -#: Plugin/editor_config.cpp:440 cscope/cscope.cpp:832 -msgid "CScope" +#: LiteEditor/wxcrafter.cpp:293 +msgid "Select the functions you want to implement" msgstr "" -#: LiteEditor/editorsettingsdockingwindowsbase.cpp:111 git/git.cpp:2336 -#: git/git.cpp:2395 -msgid "Git" +#: LiteEditor/wxcrafter.cpp:300 +msgid "The functions will be placed into this file" msgstr "" -#: LiteEditor/editorsettingsdockingwindowsbase.cpp:119 -msgid "" -"Don't automatically close the Debugger Pane on an editor click if this tab " -"is showing. You probably don't want it to close whenever you set a " -"breakpoint, for example." +#: LiteEditor/wxcrafter.cpp:400 LiteEditor/wxcrafter.cpp:401 +msgid "Create a new workspace" msgstr "" -#: LiteEditor/editorsettingsdockingwindowsbase.cpp:123 -#: Plugin/editor_config.cpp:444 Plugin/editor_config.cpp:481 -msgid "MemCheck" +#: LiteEditor/wxcrafter.cpp:405 LiteEditor/frame.cpp:2388 +msgid "Open Workspace" msgstr "" -#: LiteEditor/editorsettingsdockingwindowsbase.cpp:129 -msgid "Don't automatically fold Search results" +#: LiteEditor/wxcrafter.cpp:405 +msgid "Open an existing workspace" msgstr "" -#: LiteEditor/editorsettingsdockingwindowsbase.cpp:131 +#: LiteEditor/wxcrafter.cpp:406 msgid "" -"By default, all but the first results of 'Search' are automatically folded; " -"you have to click on each subsequent file to see its contained matches. Tick " -"this box to prevent this.\n" -"You can still fold and unfold results with the button in the output pane " -"toolbar." +"Click to create a new project.\n" +"If NO workspace is open, it will auto create a workspace before creating the " +"project" msgstr "" -#: LiteEditor/editorsettingsdockingwindowsbase.cpp:135 -msgid "Find Bar:" +#: LiteEditor/wxcrafter.cpp:410 +msgid "Recent workspaces" msgstr "" -#: LiteEditor/editorsettingsdockingwindowsbase.cpp:139 -msgid "Place the Find bar at the bottom" +#: LiteEditor/wxcrafter.cpp:410 +msgid "Open a recently used workspace" msgstr "" -#: LiteEditor/editorsettingsdockingwindowsbase.cpp:144 -msgid "Also show the 'Replace' section of the Find bar" +#: LiteEditor/wxcrafter.cpp:411 +msgid "Open a workspace from a list of recently opened workspaces" msgstr "" -#: LiteEditor/editorsettingsdockingwindowsbase.cpp:146 -msgid "" -"When ticked, extra 'replace' fields will be added. You can also Show/Hide " -"these using a keyboard shortcut." +#: LiteEditor/wxcrafter.cpp:415 +msgid "Recent files" msgstr "" -#: LiteEditor/editorsettingsdockingwindowsbase.cpp:150 -msgid "Debug Pane:" +#: LiteEditor/wxcrafter.cpp:415 +msgid "Open a recently used file" msgstr "" -#: LiteEditor/editorsettingsdockingwindowsbase.cpp:154 -msgid "Show 'Debug' tab on starting the debugger" +#: LiteEditor/wxcrafter.cpp:416 +msgid "Open a file from the revcently opened files" msgstr "" -#: LiteEditor/editorsettingsdockingwindowsbase.cpp:156 -msgid "" -"When starting the debugger, if the Debug tab is not visible, checking this " -"will make it visible" +#: LiteEditor/wxcrafter.cpp:420 +msgid "Forums" +msgstr "" + +#: LiteEditor/wxcrafter.cpp:420 +msgid "Visit codelite's forums" +msgstr "" + +#: LiteEditor/wxcrafter.cpp:421 +msgid "Click to open a web browser in CodeLite's forums" msgstr "" -#: LiteEditor/editorsettingsdockingwindowsbase.cpp:165 -msgid "Transparent hint" +#: LiteEditor/wxcrafter.cpp:425 +msgid "Wiki" msgstr "" -#: LiteEditor/editorsettingsdockingwindowsbase.cpp:166 -msgid "Rectangle hint" +#: LiteEditor/wxcrafter.cpp:425 +msgid "Search codelite's wiki pages" msgstr "" -#: LiteEditor/editorsettingsdockingwindowsbase.cpp:167 -msgid "Venetian blinds hints" +#: LiteEditor/wxcrafter.cpp:426 +msgid "Click to open a web browser in CodeLite's wiki main documentation page" msgstr "" -#: LiteEditor/editorsettingsdockingwindowsbase.cpp:168 -msgid "Docking Style:" +#: LiteEditor/wxcrafter.cpp:524 LiteEditor/manager.cpp:394 +#: codelitephp/php-plugin/php_ui.cpp:89 +msgid "C++ Workspace" msgstr "" -#: LiteEditor/editorsettingsdockingwindowsbase.cpp:174 -msgid "Glossy" +#: LiteEditor/wxcrafter.cpp:534 +msgid "Resize the configuration bar" msgstr "" -#: LiteEditor/editorsettingsdockingwindowsbase.cpp:175 -msgid "Curved" +#: LiteEditor/wxcrafter.cpp:547 +msgid "Select the active project" msgstr "" -#: LiteEditor/editorsettingsdockingwindowsbase.cpp:176 -msgid "Tab Control Style:" +#: LiteEditor/wxcrafter.cpp:559 +msgid "Select the workspace build configuration" msgstr "" -#: LiteEditor/editorsettingsdockingwindowsbase.cpp:181 -msgid "Hide Docking Windows captions" +#: LiteEditor/wxcrafter.cpp:568 LiteEditor/wxcrafter.cpp:999 +#: codelitephp/php-plugin/php_ui.cpp:1080 +msgid "Collapse All" msgstr "" -#: LiteEditor/editorsettingsfolding.cpp:62 -msgid "Arrows with Background Colour" +#: LiteEditor/wxcrafter.cpp:570 +msgid "Goto Active Project" msgstr "" -#: LiteEditor/editorsettingsfolding.cpp:62 -msgid "Simple with Background Colour" +#: LiteEditor/wxcrafter.cpp:572 +msgid "" +"Open selected project settings. If there is no project selected, open the " +"parent project of the seleced item in the tree" msgstr "" -#: LiteEditor/editorsettingsfoldingbase.cpp:29 -msgid "Display Folding Margin" +#: LiteEditor/wxcrafter.cpp:647 LiteEditor/frame.cpp:1303 +#: LiteEditor/frame.cpp:1519 LiteEditor/frame.cpp:1656 +#: LiteEditor/frame.cpp:1805 +msgid "Reload File" msgstr "" -#: LiteEditor/editorsettingsfoldingbase.cpp:40 -msgid "Select the folding style" +#: LiteEditor/wxcrafter.cpp:651 LiteEditor/frame.cpp:1318 +#: LiteEditor/frame.cpp:1535 LiteEditor/frame.cpp:1672 +#: LiteEditor/frame.cpp:1820 menu.xrc:869 menu.xrc:906 +#: DatabaseExplorer/ErdPanel.cpp:177 +msgid "Undo" msgstr "" -#: LiteEditor/editorsettingsfoldingbase.cpp:52 -msgid "Underline Folded Line" +#: LiteEditor/wxcrafter.cpp:653 LiteEditor/frame.cpp:1320 +#: LiteEditor/frame.cpp:1537 LiteEditor/frame.cpp:1674 +#: LiteEditor/frame.cpp:1822 menu.xrc:872 menu.xrc:909 +#: DatabaseExplorer/ErdPanel.cpp:178 +msgid "Redo" msgstr "" -#: LiteEditor/editorsettingsfoldingbase.cpp:57 -msgid "Fold At Else" +#: LiteEditor/wxcrafter.cpp:655 LiteEditor/frame.cpp:1326 +#: LiteEditor/frame.cpp:1328 LiteEditor/frame.cpp:1542 +#: LiteEditor/frame.cpp:1544 LiteEditor/frame.cpp:1679 +#: LiteEditor/frame.cpp:1681 LiteEditor/frame.cpp:1828 +#: LiteEditor/frame.cpp:1830 menu.xrc:888 +msgid "Toggle Bookmark" msgstr "" -#: LiteEditor/editorsettingsfoldingbase.cpp:62 -msgid "Fold Preprocessors" +#: LiteEditor/wxcrafter.cpp:706 LiteEditor/wxcrafter.cpp:730 +#: LiteEditor/wxcrafter.cpp:803 +msgid "New Project" msgstr "" -#: LiteEditor/editorsettingsfoldingbase.cpp:67 -msgid "Fold Compact" +#: LiteEditor/wxcrafter.cpp:706 +msgid "Select the project template from the list below" msgstr "" -#: LiteEditor/editorsettingsfoldingbase.cpp:72 -msgid "Highlight Active Fold Block" +#: LiteEditor/wxcrafter.cpp:721 +msgid "Template" msgstr "" -#: LiteEditor/editorsettingsfoldingbase.cpp:74 -msgid "" -"Allows to enable/disable the highlight folding block when it is selected. (i." -"e. block that contains the caret)" +#: LiteEditor/wxcrafter.cpp:730 +msgid "Set the project path and name" msgstr "" -#: LiteEditor/editorsettingslocalbase.cpp:54 -msgid "Untick one or more checkboxes to set any local preferences," +#: LiteEditor/wxcrafter.cpp:748 +msgid "" +"Set the project name. A project name can contains A-Z, 0-9 and _ characters " +"only" msgstr "" -#: LiteEditor/editorsettingslocalbase.cpp:82 -#: LiteEditor/editorsettingslocalbase.cpp:93 -#: LiteEditor/editorsettingslocalbase.cpp:114 -#: LiteEditor/editorsettingslocalbase.cpp:150 -#: LiteEditor/editorsettingslocalbase.cpp:160 -#: LiteEditor/editorsettingslocalbase.cpp:171 -#: LiteEditor/editorsettingslocalbase.cpp:182 -#: LiteEditor/editorsettingslocalbase.cpp:208 -#: LiteEditor/editorsettingslocalbase.cpp:219 -#: LiteEditor/editorsettingslocalbase.cpp:230 -#: LiteEditor/editorsettingslocalbase.cpp:240 -#: LiteEditor/editorsettingslocalbase.cpp:258 -#: LiteEditor/editorsettingslocalbase.cpp:272 -#: LiteEditor/editorsettingslocalbase.cpp:287 -msgid "Use global setting" +#: LiteEditor/wxcrafter.cpp:756 Gizmos/gizmos_base.cpp:111 +#: QmakePlugin/NewQtProj.cpp:68 codelitephp/php-plugin/php_ui.cpp:1795 +msgid "Project path:" msgstr "" -#: LiteEditor/editorsettingslocalbase.cpp:89 -msgid "" -"If clear, only spaces will be used for indentation.\n" -"If set, a mixture of tabs and spaces will be used." +#: LiteEditor/wxcrafter.cpp:765 +msgid "Select the location of the project. The location must exist." msgstr "" -#: LiteEditor/editorsettingslocalbase.cpp:138 -msgid "Margins" +#: LiteEditor/wxcrafter.cpp:773 +msgid "Browse for folder" msgstr "" -#: LiteEditor/editorsettingslocalbase.cpp:165 -msgid "Display Folding margin" +#: LiteEditor/wxcrafter.cpp:779 Gizmos/newwxprojectbasedlg.cpp:117 +#: QmakePlugin/NewQtProj.cpp:107 +msgid "Create the project under a separate directory" msgstr "" -#: LiteEditor/editorsettingslocalbase.cpp:167 +#: LiteEditor/wxcrafter.cpp:781 msgid "" -"Display the margin that lets you 'fold' individual functions, or sections of " -"functions, to hide their contents" +"When checked, codelite will place the project under a separate directory. " +"The full path of the project file is displayed below" msgstr "" -#: LiteEditor/editorsettingslocalbase.cpp:176 -msgid "Hide change marker margin" +#: LiteEditor/wxcrafter.cpp:803 +msgid "Select the project toolchain" msgstr "" -#: LiteEditor/editorsettingslocalbase.cpp:178 -msgid "Display the margin in which a coloured line marks any altered line" +#: LiteEditor/wxcrafter.cpp:816 +msgid "Compiler:" msgstr "" -#: LiteEditor/editorsettingslocalbase.cpp:187 -msgid "Display line numbers" +#: LiteEditor/wxcrafter.cpp:825 +msgid "Debugger:" msgstr "" -#: LiteEditor/editorsettingslocalbase.cpp:189 -msgid "Display line numbers margin" +#: LiteEditor/wxcrafter.cpp:892 +msgid "Enable Clang" msgstr "" -#: LiteEditor/editorsettingslocalbase.cpp:213 -msgid "Show indentation guidelines" +#: LiteEditor/wxcrafter.cpp:894 +msgid "Enable Clang code completion" msgstr "" -#: LiteEditor/editorsettingslocalbase.cpp:215 -msgid "Display horizontal guides for matching braces \"{\"" +#: LiteEditor/wxcrafter.cpp:897 +msgid "Inline Errors" msgstr "" -#: LiteEditor/editorsettingslocalbase.cpp:226 -msgid "Set a different background colour for the line containing the caret" +#: LiteEditor/wxcrafter.cpp:899 +msgid "" +"Display Clang errors as text annotations inside the editor (i.e. as an " +"inline messages)" msgstr "" -#: LiteEditor/editorsettingslocalbase.cpp:247 -msgid "Make sure the file finishes with an end-of-line" +#: LiteEditor/wxcrafter.cpp:904 +msgid "Cache policy:" msgstr "" -#: LiteEditor/editorsettingslocalbase.cpp:263 -msgid "Whitespace visibility:" +#: LiteEditor/wxcrafter.cpp:910 +msgid "Clear Clang Cache" msgstr "" -#: LiteEditor/editorsettingslocalbase.cpp:277 -msgid "EOL Mode:" +#: LiteEditor/wxcrafter.cpp:1001 +msgid "Go Home" msgstr "" -#: LiteEditor/editorsettingslocalbase.cpp:283 -msgid "" -"Set the editor's EOL mode (End Of Line). When set to 'Default' CodeLite will " -"set the EOL according to the hosting OS" +#: LiteEditor/wxcrafter.cpp:1003 +msgid "Bookmark" msgstr "" -#: LiteEditor/editorsettingslocalbase.cpp:292 -msgid "File font encoding" +#: LiteEditor/wxcrafter.cpp:1003 +msgid "Bookmark Selected Folder" msgstr "" -#: LiteEditor/editorsettingsmiscbasepanel.cpp:39 -msgid "Look and Feel:" +#: LiteEditor/wxcrafter.cpp:1009 +msgid "GoTo" msgstr "" -#: LiteEditor/editorsettingsmiscbasepanel.cpp:50 -msgid "Icon Set:" +#: LiteEditor/wxcrafter.cpp:1009 +msgid "Goto Folder" msgstr "" -#: LiteEditor/editorsettingsmiscbasepanel.cpp:63 -msgid "Toolbar Icon Size:" +#: LiteEditor/wxcrafter.cpp:1050 +msgid "Goto Folder:" msgstr "" -#: LiteEditor/editorsettingsmiscbasepanel.cpp:75 -msgid "Use Native Toolbar" +#: LiteEditor/wxcrafter.cpp:1057 +msgid "Type the folder path" msgstr "" -#: LiteEditor/editorsettingsmiscbasepanel.cpp:77 +#: LiteEditor/wxcrafter.cpp:1109 msgid "" -"Using the OS native toolbar instead of the generic toolbar\n" -"When enabling this option, CodeLite will not be able to display all plugins\n" -"Tools" -msgstr "" - -#: LiteEditor/editorsettingsmiscbasepanel.cpp:81 -msgid "Enable Windows(R) theme for Vista / Windows 7" +"DRAG AND DROP\n" +"A FOLDER HERE" msgstr "" -#: LiteEditor/editorsettingsmiscbasepanel.cpp:86 -msgid "Other:" +#: LiteEditor/symbols_dialog.cpp:42 +msgid "Symbol" msgstr "" -#: LiteEditor/editorsettingsmiscbasepanel.cpp:90 -msgid "Show splashscreen on startup" +#: LiteEditor/symbols_dialog.cpp:43 LiteEditor/CompilerMainPage.cpp:89 +#: codelitephp/php-plugin/php_ui.cpp:352 +msgid "Kind" msgstr "" -#: LiteEditor/editorsettingsmiscbasepanel.cpp:92 -msgid "Show codelite's splashscreen when it first started" +#: LiteEditor/ps_custom_build_page.cpp:89 +#, c-format +msgid "Target '%s' already exist!" msgstr "" -#: LiteEditor/editorsettingsmiscbasepanel.cpp:96 -msgid "Allow only single instance running" +#: LiteEditor/CompilerMainPage.cpp:60 LiteEditor/CompilerMainPage.cpp:70 +msgid "File name index" msgstr "" -#: LiteEditor/editorsettingsmiscbasepanel.cpp:98 -msgid "There can be only one" +#: LiteEditor/CompilerMainPage.cpp:61 LiteEditor/CompilerMainPage.cpp:71 +msgid "Line number index" msgstr "" -#: LiteEditor/editorsettingsmiscbasepanel.cpp:102 -msgid "Check for new version on startup" +#: LiteEditor/CompilerMainPage.cpp:62 LiteEditor/CompilerMainPage.cpp:72 +msgid "Column index" msgstr "" -#: LiteEditor/editorsettingsmiscbasepanel.cpp:104 -msgid "" -"When codelite starts, it will connect to http://codelite.org to check if a " -"new version of codelite was released" +#: LiteEditor/CompilerMainPage.cpp:83 +#: LiteEditor/debuggersettingsbasedlg.cpp:674 +#: LiteEditor/debuggersettingsbasedlg.cpp:676 LiteEditor/localstable.cpp:50 +#: LiteEditor/simpletable.cpp:96 LLDBDebugger/LLDBLocalsView.cpp:53 +#: codelitephp/php-plugin/php_ui.cpp:1285 +msgid "Value" msgstr "" -#: LiteEditor/editorsettingsmiscbasepanel.cpp:108 -msgid "Load last session on startup" +#: LiteEditor/CompilerMainPage.cpp:88 +msgid "Extension" msgstr "" -#: LiteEditor/editorsettingsmiscbasepanel.cpp:110 -msgid "" -"When launched, codelite will restore the last opened workspace + all open " -"editors" +#: LiteEditor/CompilerMainPage.cpp:90 +msgid "Compilation Line" msgstr "" -#: LiteEditor/editorsettingsmiscbasepanel.cpp:115 -msgid "Frame Title" +#: LiteEditor/CompilerMainPage.cpp:95 LiteEditor/CompilerMainPage.cpp:101 +msgid "Switch" msgstr "" -#: LiteEditor/editorsettingsmiscbasepanel.cpp:122 -msgid "Set CodeLite frame's title" +#: LiteEditor/CompilerMainPage.cpp:109 +msgid "Add compiler error pattern" msgstr "" -#: LiteEditor/editorsettingsmiscbasepanel.cpp:122 -msgid "Set custom title to codelite's main frame" +#: LiteEditor/CompilerMainPage.cpp:122 +msgid "Add compiler warning pattern" msgstr "" -#: LiteEditor/editorsettingsmiscbasepanel.cpp:128 -msgid "You can use the following macros to construct your own frame title:" +#: LiteEditor/CompilerMainPage.cpp:223 +msgid "Are you sure you want to delete this compiler option?" msgstr "" -#: LiteEditor/editorsettingsmiscbasepanel.cpp:139 -msgid "$user" +#: LiteEditor/CompilerMainPage.cpp:237 +msgid "Are you sure you want to delete this file type?" msgstr "" -#: LiteEditor/editorsettingsmiscbasepanel.cpp:146 -msgid "the current user name inside square brackets" +#: LiteEditor/CompilerMainPage.cpp:249 +msgid "Are you sure you want to delete this linker option?" msgstr "" -#: LiteEditor/editorsettingsmiscbasepanel.cpp:150 -msgid "$filename" +#: LiteEditor/CompilerMainPage.cpp:303 +msgid "Update compiler warning pattern" msgstr "" -#: LiteEditor/editorsettingsmiscbasepanel.cpp:157 -msgid "the current file name" +#: LiteEditor/CompilerMainPage.cpp:319 +msgid "Update compiler error pattern" msgstr "" -#: LiteEditor/editorsettingsmiscbasepanel.cpp:161 -msgid "$fullpath" +#: LiteEditor/CompilerMainPage.cpp:625 +msgid " switch:" msgstr "" -#: LiteEditor/editorsettingsmiscbasepanel.cpp:168 -msgid "the current file fullpath" +#: LiteEditor/CompilerMainPage.cpp:672 LiteEditor/editcmpfileinfobase.cpp:61 +msgid "Source" msgstr "" -#: LiteEditor/editorsettingsmiscbasepanel.cpp:172 -msgid "$workspace" +#: LiteEditor/CompilerMainPage.cpp:672 LiteEditor/CompilerMainPage.cpp:690 +#: LiteEditor/editcmpfileinfobase.cpp:61 +msgid "Resource" msgstr "" -#: LiteEditor/editorsettingsmiscbasepanel.cpp:179 -msgid "the current workspace name inside square brackets" +#: LiteEditor/CompilerMainPage.cpp:859 +msgid "Please fill all the fields" msgstr "" -#: LiteEditor/editorsettingsmiscbasepanel.cpp:183 -msgid "Frame title:" +#: LiteEditor/CompilerMainPage.cpp:874 QmakePlugin/qmakesettingsdlg.cpp:105 +#: QmakePlugin/qmakesettingsdlg.cpp:130 menu.xrc:1130 +msgid "Rename..." msgstr "" -#: LiteEditor/editorsettingsmiscbasepanel.cpp:195 -msgid "Encoding & Locale" +#: LiteEditor/CompilerMainPage.cpp:893 +msgid "" +"Are you sure you want to delete compiler\n" +"'" msgstr "" -#: LiteEditor/editorsettingsmiscbasepanel.cpp:207 -msgid "File font encoding:" +#: LiteEditor/CompilerMainPage.cpp:895 menu.xrc:1140 +msgid "Delete Compiler" msgstr "" -#: LiteEditor/editorsettingsmiscbasepanel.cpp:218 -msgid "Enable localization" +#: LiteEditor/CompilerMainPage.cpp:912 +msgid "New Compiler Name" msgstr "" -#: LiteEditor/editorsettingsmiscbasepanel.cpp:220 -msgid "" -"View CodeLite's strings translated into a different language, if available. " -"This will also make CodeLite use other aspects of the locale." +#: LiteEditor/CompilerMainPage.cpp:912 +msgid "Rename Compiler" msgstr "" -#: LiteEditor/editorsettingsmiscbasepanel.cpp:224 -msgid "Locale to use:" +#: LiteEditor/wxcAboutDlg.cpp:45 +msgid "Credits" msgstr "" -#: LiteEditor/editorsettingsmiscbasepanel.cpp:230 -msgid "" -"These are the locales that are available on your system. There won't " -"necessarily be CodeLite translations for all of them." +#: LiteEditor/wxcAboutDlg.cpp:56 +msgid "License" msgstr "" -#: LiteEditor/editorsettingsmiscbasepanel.cpp:235 -msgid "History" +#: LiteEditor/wxcAboutDlg.cpp:75 +msgid "Home Page:" msgstr "" -#: LiteEditor/editorsettingsmiscbasepanel.cpp:243 -msgid "Clear recent workspace / files history" +#: LiteEditor/wxcAboutDlg.cpp:79 +msgid "http://www.codelite.org" msgstr "" -#: LiteEditor/editorsettingsmiscbasepanel.cpp:252 -msgid "Max items kept in find / replace dialog:" +#: LiteEditor/wxcAboutDlg.cpp:83 +msgid "CodeLite Forum:" msgstr "" -#: LiteEditor/editorsettingsmiscbasepanel.cpp:263 -msgid "Maximum number of tabs opened in the editor:" +#: LiteEditor/wxcAboutDlg.cpp:87 +msgid "http://forums.codelite.org" msgstr "" -#: LiteEditor/editorsettingsmiscbasepanel.cpp:274 -msgid "Reset annoying dialogs answers:" +#: LiteEditor/wxcAboutDlg.cpp:91 LiteEditor/pluginmgrdlg.cpp:153 +#: Gizmos/newwxprojectbasedlg.cpp:162 CMakePlugin/CMakePluginUi.cpp:100 +msgid "Version:" msgstr "" -#: LiteEditor/editorsettingsmiscbasepanel.cpp:278 -msgid "&Reset" +#: LiteEditor/wxcAboutDlg.cpp:103 +msgid "Support CodeLite" msgstr "" -#: LiteEditor/editorsettingsmiscbasepanel.cpp:296 -msgid "CodeLite's Log-file verbosity:" +#: LiteEditor/debuggersettingsbasedlg.cpp:156 +#: QmakePlugin/qmakesettingsbasedlg.cpp:73 +msgid "&New..." msgstr "" -#: LiteEditor/editorsettingsmiscbasepanel.cpp:306 -msgid "" -"codelite logs to file various events, this option controls the logging " -"verbosity" +#: LiteEditor/debuggersettingsbasedlg.cpp:222 +msgid "Copy Values From:" msgstr "" -#: LiteEditor/editorsettingsmiscbasepanel.cpp:311 -msgid "Open.." +#: LiteEditor/debuggersettingsbasedlg.cpp:233 +msgid "Make this 'PreDefined Types' set active" msgstr "" -#: LiteEditor/editorsettingsmiscbasepanel.cpp:312 -msgid "Open the log file into an editor" +#: LiteEditor/debuggersettingsbasedlg.cpp:291 +msgid "Debugger path:" msgstr "" -#: LiteEditor/editorsettingsmiscbasepanel.cpp:316 -msgid "GTK only: Redirect stdout/stderr output to a log file" +#: LiteEditor/debuggersettingsbasedlg.cpp:311 +msgid "Enable pending breakpoints" msgstr "" -#: LiteEditor/editorsettingsmiscbasepanel.cpp:318 +#: LiteEditor/debuggersettingsbasedlg.cpp:313 msgid "" -"If ticked, all output from e.g. cout or wxLogDebug will be redirected to the " -"file .codelite/codelite-stdout-stderr.log" +"Some breakpoints can't be applied before the program is run, or even later. " +"This is especially a problem when trying to debug inside a library that is " +"dynamically loaded (CodeLite itself contains examples of this).\n" +"\n" +"gdb has an option to 'remember' any breakpoints that it can't initially set, " +"and automatically to set them when it becomes possible. It doesn't always " +"work! However, tick this box to tell gdb to try." msgstr "" -#: LiteEditor/env_var_dlg_base.cpp:47 +#: LiteEditor/debuggersettingsbasedlg.cpp:317 +msgid "Apply breakpoints after main function is hit" +msgstr "" + +#: LiteEditor/debuggersettingsbasedlg.cpp:319 msgid "" -"Define here set of environment variables which will be applied by CodeLite " -"before launching processes.\n" -"\n" -"Variables are defined in the format of NAME=VALUE" +"Sometimes, some breakpoints won't apply cleanly until after main() has been " +"reached. If this box is ticked, CodeLite won't try to apply them earlier." msgstr "" -#: LiteEditor/env_var_dlg_base.cpp:53 -msgid "Available environment sets:" +#: LiteEditor/debuggersettingsbasedlg.cpp:323 +msgid "Automatically set breakpoint at main" msgstr "" -#: LiteEditor/env_var_dlg_base.cpp:84 -msgid "&New Set..." +#: LiteEditor/debuggersettingsbasedlg.cpp:325 +msgid "" +"Every time the debugger runs, set a breakpoint at main(). You may wish to " +"stop then anyway; but it's especially useful when you want to set " +"breakpoints that won't 'take' earlier (however, first try enabling Pending " +"breakpoints, or 'Apply breakpoints after main is hit'" msgstr "" -#: LiteEditor/env_var_dlg_base.cpp:87 -msgid "Delete Set" +#: LiteEditor/debuggersettingsbasedlg.cpp:329 +msgid "Break when C++ exception is thrown" msgstr "" -#: LiteEditor/env_var_dlg_base.cpp:90 -msgid "&Export" +#: LiteEditor/debuggersettingsbasedlg.cpp:334 +msgid "Raise CodeLite when a breakpoint is hit" msgstr "" -#: LiteEditor/env_var_dlg_base.cpp:91 +#: LiteEditor/debuggersettingsbasedlg.cpp:336 msgid "" -"Export the current set to a platform \n" -"specific environment file" +"Normally, when a breakpoint is hit, you'll want CodeLite to be raise to the " +"top of the window z-order, so that you can examine values of variables etc.\n" +"However you won't always want that to happen; in particular, not if the " +"breakpoint has commands, which end in 'continue'. If so untick this box to " +"stop it happening." msgstr "" -#: LiteEditor/envvar_table.cpp:206 -#, c-format -msgid "Failed to open file: '%s' for write" +#: LiteEditor/debuggersettingsbasedlg.cpp:340 +msgid "Debugger Tooltip:" msgstr "" -#: LiteEditor/envvar_table.cpp:240 -#, c-format -msgid "Environment exported to: '%s' successfully" +#: LiteEditor/debuggersettingsbasedlg.cpp:348 +msgid "Use CTRL key to evaluate expressions under the cursor" msgstr "" -#: LiteEditor/filechecklistbase.cpp:46 -msgid "C&lear All" +#: LiteEditor/debuggersettingsbasedlg.cpp:350 +msgid "" +"When enabled, codelite will evaluate the expression under the cursor only if " +"the CTRL key is down. \n" +"Otherwise, it will evaluate it automatically" msgstr "" -#: LiteEditor/filechecklistbase.cpp:103 -msgid "" -"Some files were modified outside of the editor.\n" -"What would you like to do?" +#: LiteEditor/debuggersettingsbasedlg.cpp:354 +msgid "Auto expand items under the cursor" msgstr "" -#: LiteEditor/filechecklistbase.cpp:110 -msgid "Reload all the externally modified files" +#: LiteEditor/debuggersettingsbasedlg.cpp:359 +#: LiteEditor/tags_options_base_dlg.cpp:41 +msgid "Display:" msgstr "" -#: LiteEditor/filechecklistbase.cpp:110 -msgid "Reload." +#: LiteEditor/debuggersettingsbasedlg.cpp:369 +msgid "Number of elements to display for arrays / strings:" msgstr "" -#: LiteEditor/filechecklistbase.cpp:114 -msgid "Choose." +#: LiteEditor/debuggersettingsbasedlg.cpp:370 +#: LiteEditor/debuggersettingsbasedlg.cpp:375 +msgid "For no limit, set it to 0" msgstr "" -#: LiteEditor/filechecklistbase.cpp:114 -msgid "Let me choose which file or files to reload" +#: LiteEditor/debuggersettingsbasedlg.cpp:381 +msgid "Use 'PreDefined types for the 'Locals' view" msgstr "" -#: LiteEditor/filechecklistbase.cpp:119 -msgid "Don't reload any the externally modified files" +#: LiteEditor/debuggersettingsbasedlg.cpp:388 +msgid "Auto cast 'char[]' into 'char*'" msgstr "" -#: LiteEditor/filechecklistbase.cpp:119 -msgid "Ignore." +#: LiteEditor/debuggersettingsbasedlg.cpp:395 +msgid "Enable GDB Pretty Printing" msgstr "" -#: LiteEditor/filechecklistbase.cpp:123 Tweaks/TweaksSettingsDlg.cpp:165 -msgid "Remember my answer" +#: LiteEditor/debuggersettingsbasedlg.cpp:397 +msgid "" +"If ticked, examining the contents of e.g. std::string, wxString, " +"wxArrayString will be much easier" msgstr "" -#: LiteEditor/fileview.cpp:446 -msgid "Run " +#: LiteEditor/debuggersettingsbasedlg.cpp:447 +msgid "Use file name only for breakpoints (NO full paths)" msgstr "" -#: LiteEditor/fileview.cpp:838 -msgid "Add Existing Item" +#: LiteEditor/debuggersettingsbasedlg.cpp:452 +msgid "Enable full debugger logging" msgstr "" -#: LiteEditor/fileview.cpp:870 -msgid "New Item" +#: LiteEditor/debuggersettingsbasedlg.cpp:457 +msgid "Show debugger terminal" msgstr "" -#: LiteEditor/fileview.cpp:972 -msgid "Are you sure you want remove '" +#: LiteEditor/debuggersettingsbasedlg.cpp:466 +msgid "Max number of frames to allow in a call-stack" msgstr "" -#: LiteEditor/fileview.cpp:980 LiteEditor/fileview.cpp:1019 -msgid "Remember my answer and apply it all files" +#: LiteEditor/debuggersettingsbasedlg.cpp:471 +msgid "" +"The maximum number of frames that CodeLite will display in the Call Stack " +"tab. This protects against a very long hang while trying to show 100,000 " +"frames in an infinite recursion situation." msgstr "" -#: LiteEditor/fileview.cpp:985 LiteEditor/fileview.cpp:1024 -#: LiteEditor/frame.cpp:2582 -msgid "Are you sure?" +#: LiteEditor/debuggersettingsbasedlg.cpp:477 +msgid "MinGW / Cygwin:" msgstr "" -#: LiteEditor/fileview.cpp:1011 -msgid "' from disc?" +#: LiteEditor/debuggersettingsbasedlg.cpp:485 +msgid "Break at assertion failure (MinGW only)" msgstr "" -#: LiteEditor/fileview.cpp:1011 -msgid "Do you also want to delete the file '" +#: LiteEditor/debuggersettingsbasedlg.cpp:490 +msgid "Cygwin path conversion command:" msgstr "" -#: LiteEditor/fileview.cpp:1032 +#: LiteEditor/debuggersettingsbasedlg.cpp:491 +#: LiteEditor/debuggersettingsbasedlg.cpp:496 msgid "" -"An error occurred during file removal. Maybe it has been already deleted or " -"you don't have the necessary permissions" +"Set here the command to use in order to convert cygwin paths into native " +"Windows paths (use $(File) as a place holder for the file name)" msgstr "" -#: LiteEditor/fileview.cpp:1072 -msgid " and all its content will be removed from the project." +#: LiteEditor/debuggersettingsbasedlg.cpp:546 menu.xrc:7 +msgid "&New" msgstr "" -#: LiteEditor/fileview.cpp:1208 -msgid "You are about to remove project '" +#: LiteEditor/debuggersettingsbasedlg.cpp:547 +msgid "Create new 'PreDefined' set" msgstr "" -#: LiteEditor/fileview.cpp:1210 -msgid " from the workspace, click 'Yes' to proceed or 'No' to abort." +#: LiteEditor/debuggersettingsbasedlg.cpp:552 +msgid "Delete the currently selected set" msgstr "" -#: LiteEditor/fileview.cpp:1341 LiteEditor/fileview.cpp:1361 -msgid " of project " +#: LiteEditor/debuggersettingsbasedlg.cpp:556 +msgid "Available sets:" msgstr "" -#: LiteEditor/fileview.cpp:1341 -msgid "Compiling file: " +#: LiteEditor/debuggersettingsbasedlg.cpp:606 +msgid "Current function:" msgstr "" -#: LiteEditor/fileview.cpp:1361 -msgid "Preprocessing file: " +#: LiteEditor/debuggersettingsbasedlg.cpp:673 +#: LiteEditor/debuggersettingsbasedlg.cpp:675 +msgid "Register" msgstr "" -#: LiteEditor/fileview.cpp:1572 -msgid " in FileView." +#: LiteEditor/compiler_pages.h:91 +msgid "New Compiler" msgstr "" -#: LiteEditor/fileview.cpp:1572 -msgid "Failed to find file: " +#: LiteEditor/reconcileprojectbase.h:101 menu.xrc:1014 +msgid "Reconcile Project" msgstr "" -#: LiteEditor/fileview.cpp:1732 LiteEditor/fileview.cpp:1821 git/git.cpp:1426 -msgid "Importing files ..." +#: LiteEditor/reconcileprojectbase.h:157 +msgid "Select filetypes to reconcile" msgstr "" -#: LiteEditor/fileview.cpp:1773 LiteEditor/fileview.cpp:1844 -msgid "Adding file: " +#: LiteEditor/reconcileprojectbase.h:185 +msgid "Allocate by regex" msgstr "" -#: LiteEditor/fileview.cpp:1908 -#: codelitephp/php-plugin/php_workspace_view.cpp:616 -msgid "New file name:" +#: LiteEditor/options_dlg2.cpp:108 +msgid "Editor" msgstr "" -#: LiteEditor/fileview.cpp:1908 -msgid "Rename file:" +#: LiteEditor/options_dlg2.cpp:109 +msgid "Guides" msgstr "" -#: LiteEditor/fileview.cpp:1916 -msgid "A File with that name already exists!" +#: LiteEditor/options_dlg2.cpp:112 +msgid "Right Margin Indicator" msgstr "" -#: LiteEditor/fileview.cpp:1946 -msgid "New virtual folder name:" +#: LiteEditor/options_dlg2.cpp:113 +msgid "Caret & Scrolling" msgstr "" -#: LiteEditor/fileview.cpp:1946 -msgid "Rename virtual folder:" +#: LiteEditor/options_dlg2.cpp:114 +msgid "Save Options" msgstr "" -#: LiteEditor/fileview.cpp:1959 -msgid ", reason: could not locate project " +#: LiteEditor/options_dlg2.cpp:117 +msgid "Code" msgstr "" -#: LiteEditor/fileview.cpp:1959 LiteEditor/fileview.cpp:1965 -msgid "failed to rename virtual folder: " +#: LiteEditor/options_dlg2.cpp:118 +msgid "Doxygen" msgstr "" -#: LiteEditor/fileview.cpp:2401 -msgid "Project new name:" +#: LiteEditor/options_dlg2.cpp:120 +msgid "Folding" msgstr "" -#: LiteEditor/fileview.cpp:2401 -msgid "Rename project" +#: LiteEditor/options_dlg2.cpp:121 +msgid "Bookmarks" msgstr "" -#: LiteEditor/fileview.cpp:2422 -msgid "You can only drag one folder at a time" +#: LiteEditor/options_dlg2.cpp:122 +msgid "Windows & Tabs" msgstr "" -#: LiteEditor/fileview.cpp:2439 -msgid "Failed to create workspace:\n" +#: LiteEditor/memoryviewbase.cpp:61 +msgid "Address:" msgstr "" -#: LiteEditor/fileview.cpp:2473 -msgid "Can't import files to workspace without projects" +#: LiteEditor/memoryviewbase.cpp:66 +msgid "Address or pointer to watch" msgstr "" -#: LiteEditor/fileview.cpp:2480 -msgid "Import files to project" +#: LiteEditor/memoryviewbase.cpp:70 +msgid "Size:" msgstr "" -#: LiteEditor/fileview.cpp:2480 -msgid "Select project:" +#: LiteEditor/memoryviewbase.cpp:71 LiteEditor/memoryviewbase.cpp:85 +msgid "Memory size to view" msgstr "" -#: LiteEditor/findinfiles_dlg.cpp:54 -msgid "Find What :" +#: LiteEditor/memoryviewbase.cpp:90 +msgid "Number of columns:" msgstr "" -#: LiteEditor/findinfiles_dlg.cpp:60 -msgid "String to search" +#: LiteEditor/memoryviewbase.cpp:100 +msgid "Number of columns to use per row" msgstr "" -#: LiteEditor/findinfiles_dlg.cpp:63 -msgid "Type a string to search..." +#: LiteEditor/memoryviewbase.cpp:126 +msgid "Evaluate" msgstr "" -#: LiteEditor/findinfiles_dlg.cpp:68 -msgid "Look in :" +#: LiteEditor/memoryviewbase.cpp:128 +msgid "Evaluate the expression in the \"Address\" field" msgstr "" -#: LiteEditor/findinfiles_dlg.cpp:76 -msgid "Select a folder:" +#: LiteEditor/memoryviewbase.cpp:133 +msgid "Update the memory in the main display area to apply your changes" msgstr "" -#: LiteEditor/findinfiles_dlg.cpp:103 -msgid "Remove the selected search path" +#: LiteEditor/editorsettings_terminal_base.cpp:29 +msgid "Use CodeLite built in terminal emulator" msgstr "" -#: LiteEditor/findinfiles_dlg.cpp:112 -msgid "Clear the search path list" +#: LiteEditor/editorsettings_terminal_base.cpp:34 +msgid "" +"Windows only: commands executed with CMD.EXE are wrapped with double quotes" msgstr "" -#: LiteEditor/findinfiles_dlg.cpp:116 -msgid "File Mask:" +#: LiteEditor/editorsettings_terminal_base.cpp:36 +msgid "" +"Windows only: commands executed with CMD.EXE are wrapped with double quotes\n" +"This is often needed to allow executing commands with spaces in their path" msgstr "" -#: LiteEditor/findinfiles_dlg.cpp:123 -msgid "Search these file types" +#: LiteEditor/editorsettings_terminal_base.cpp:40 +msgid "Enter here the command to be used by CodeLite for launching consoles:" msgstr "" -#: LiteEditor/findinfiles_dlg.cpp:131 -msgid "Files Encoding:" +#: LiteEditor/editorsettings_terminal_base.cpp:51 +msgid "Where:" msgstr "" -#: LiteEditor/findinfiles_dlg.cpp:137 -msgid "Use this file encoding when scanning files for matches" +#: LiteEditor/editorsettings_terminal_base.cpp:62 +msgid "$(TITLE)" msgstr "" -#: LiteEditor/findinfiles_dlg.cpp:161 -msgid "&Match case" +#: LiteEditor/editorsettings_terminal_base.cpp:66 +msgid "The console title" msgstr "" -#: LiteEditor/findinfiles_dlg.cpp:163 -msgid "Toggle case sensitive search" +#: LiteEditor/editorsettings_terminal_base.cpp:70 +msgid "$(CMD)" msgstr "" -#: LiteEditor/findinfiles_dlg.cpp:167 -msgid "Match &whole word" +#: LiteEditor/editorsettings_terminal_base.cpp:74 +msgid "The command to execute" msgstr "" -#: LiteEditor/findinfiles_dlg.cpp:169 -msgid "Toggle whole word search" +#: LiteEditor/reconcileproject.cpp:191 +msgid "No new or stale files found. The project is up-to-date" msgstr "" -#: LiteEditor/findinfiles_dlg.cpp:173 -msgid "Regular &expression" +#: LiteEditor/reconcileproject.cpp:666 +#, c-format +msgid "Delete the %i selected files from the filesystem?" msgstr "" -#: LiteEditor/findinfiles_dlg.cpp:175 -msgid "The 'Find What' field is a regular expression" +#: LiteEditor/reconcileproject.cpp:668 +msgid "Delete the selected file from the filesystem?" msgstr "" -#: LiteEditor/findinfiles_dlg.cpp:179 -msgid "&Save modified files before searching" +#: LiteEditor/reconcileproject.cpp:695 +#, c-format +msgid "%i file(s) successfully deleted" msgstr "" -#: LiteEditor/findinfiles_dlg.cpp:181 -msgid "Save any modified files before search starts" +#: LiteEditor/reconcileproject.cpp:808 +msgid "Select a directory to ignore:" msgstr "" -#: LiteEditor/findinfiles_dlg.cpp:185 -msgid "Display search results in separate tab" +#: LiteEditor/attachdbgprocbasedlg.cpp:50 +msgid "Debugger to use:" msgstr "" -#: LiteEditor/findinfiles_dlg.cpp:202 -msgid "Display the C++ scope of the match" +#: LiteEditor/attachdbgprocbasedlg.cpp:59 +msgid "Filter:" msgstr "" -#: LiteEditor/findinfiles_dlg.cpp:204 -msgid "Display the class + function name for the matches" +#: LiteEditor/attachdbgprocbasedlg.cpp:68 +msgid "Processes:" msgstr "" -#: LiteEditor/findinfiles_dlg.cpp:208 -msgid "Hide matches found in comments" +#: LiteEditor/attachdbgprocbasedlg.cpp:81 +msgid "&Attach" msgstr "" -#: LiteEditor/findinfiles_dlg.cpp:213 -msgid "Hide matches found inside strings" +#: LiteEditor/attachdbgprocbasedlg.cpp:88 +msgid "&Refresh" msgstr "" -#: LiteEditor/findinfiles_dlg.cpp:218 -msgid "Use different colour for matches found in comments" +#: LiteEditor/editorsettingsfolding.cpp:41 +msgid "Simple" msgstr "" -#: LiteEditor/findinfiles_dlg.cpp:229 -msgid "&Find" +#: LiteEditor/editorsettingsfolding.cpp:42 +msgid "Arrows" msgstr "" -#: LiteEditor/findinfiles_dlg.cpp:231 -msgid "Begin search" +#: LiteEditor/editorsettingsfolding.cpp:43 +msgid "Flatten Tree Square Headers" msgstr "" -#: LiteEditor/findinfiles_dlg.cpp:235 -msgid "&Replace" +#: LiteEditor/editorsettingsfolding.cpp:44 +msgid "Flatten Tree Circular Headers" msgstr "" -#: LiteEditor/findinfiles_dlg.cpp:236 -msgid "" -"Search for matches and place them in the 'Replace' window as candidates for " -"possible replace operation" +#: LiteEditor/editorsettingsfolding.cpp:62 +msgid "Arrows with Background Colour" msgstr "" -#: LiteEditor/findinfiles_dlg.cpp:240 -msgid "Sto&p" +#: LiteEditor/editorsettingsfolding.cpp:62 +msgid "Simple with Background Colour" msgstr "" -#: LiteEditor/findinfiles_dlg.cpp:241 -msgid "Stop the current search" +#: LiteEditor/setters_getters.h:71 +msgid "Generate Setters/Getters for class" msgstr "" -#: LiteEditor/findinfiles_dlg.cpp:246 -msgid "Close this dialog" +#: LiteEditor/envvar_table.cpp:206 +#, c-format +msgid "Failed to open file: '%s' for write" msgstr "" -#: LiteEditor/findreplacedlg.cpp:52 -msgid "'Find What' is empty" +#: LiteEditor/envvar_table.cpp:240 +#, c-format +msgid "Environment exported to: '%s' successfully" msgstr "" -#: LiteEditor/findresultstab.cpp:141 LiteEditor/findresultstab.cpp:143 -msgid "Stop current search" +#: LiteEditor/implementparentvirtualfunctionsbase.h:69 +msgid "Implement Parent Virtual Functions" msgstr "" -#: LiteEditor/findresultstab.cpp:331 -msgid "The search thread is currently busy" +#: LiteEditor/breakpointdlg.cpp:93 LiteEditor/cl_editor.cpp:3223 +msgid "Breakpoint successfully deleted" msgstr "" -#: LiteEditor/findresultstab.cpp:413 -msgid "'; Match case: " +#: LiteEditor/breakpointdlg.cpp:106 +msgid "All Breakpoints deleted" msgstr "" -#: LiteEditor/findresultstab.cpp:413 -msgid "====== Searching for: '" +#: LiteEditor/breakpointdlg.cpp:118 +msgid "Pending Breakpoints reapplied" msgstr "" -#: LiteEditor/findresultstab.cpp:414 -msgid " ; Match whole word: " +#: LiteEditor/breakpointdlg.cpp:192 +msgid "Temp. " msgstr "" -#: LiteEditor/findresultstab.cpp:414 LiteEditor/findresultstab.cpp:415 -#: LiteEditor/findresultstab.cpp:416 Subversion2/subversion2.cpp:1441 -#: Subversion2/subversion2.cpp:1540 -msgid "false" +#: LiteEditor/breakpointdlg.cpp:199 +msgid "disabled" msgstr "" -#: LiteEditor/findresultstab.cpp:414 LiteEditor/findresultstab.cpp:415 -#: LiteEditor/findresultstab.cpp:416 Subversion2/subversion2.cpp:1538 -msgid "true" +#: LiteEditor/context_cpp.cpp:538 +msgid "Open Include File \"" msgstr "" -#: LiteEditor/findresultstab.cpp:415 -msgid " ; Regular expression: " +#: LiteEditor/context_cpp.cpp:554 +msgid "Add Forward Declaration for \"" msgstr "" -#: LiteEditor/findresultstab.cpp:701 -msgid "Reached the end of the 'Find In Files' results" +#: LiteEditor/context_cpp.cpp:558 +msgid "Add Include File for \"" msgstr "" -#: LiteEditor/findresultstab.cpp:731 -msgid "Reached the start of the 'Find In Files' results" +#: LiteEditor/context_cpp.cpp:652 +msgid "Select File to Include:" msgstr "" -#: LiteEditor/findresultstab.cpp:760 -msgid "Search result is no longer valid" +#: LiteEditor/context_cpp.cpp:652 +msgid "Add Include File" msgstr "" -#: LiteEditor/findusagetab.cpp:94 -#, c-format -msgid "===== Finding references of '%s' =====\n" +#: LiteEditor/context_cpp.cpp:922 +msgid "Multiple candidates found. Select a file to open:" msgstr "" -#: LiteEditor/findusagetab.cpp:147 -#, c-format -msgid "===== Found total of %u matches =====\n" +#: LiteEditor/context_cpp.cpp:923 +msgid "Swap Header/Source Implementation" msgstr "" -#: LiteEditor/frame.cpp:771 -msgid "Edit::Split selection into multiple carets" +#: LiteEditor/context_cpp.cpp:948 +msgid "No matched file was found, would you like to create one?" msgstr "" -#: LiteEditor/frame.cpp:773 -msgid "Search::Toggle the Quick-Replace Bar" +#: LiteEditor/context_cpp.cpp:950 +msgid "Create" msgstr "" -#: LiteEditor/frame.cpp:875 -msgid "CodeLite " +#: LiteEditor/context_cpp.cpp:951 +msgid "Don't Create" msgstr "" -#: LiteEditor/frame.cpp:1023 -msgid "Output View" +#: LiteEditor/context_cpp.cpp:1215 +msgid "This file does not seem to contain the declaration for '" msgstr "" -#: LiteEditor/frame.cpp:1024 -msgid "Workspace View" +#: LiteEditor/context_cpp.cpp:1216 +msgid "The declaration of '" msgstr "" -#: LiteEditor/frame.cpp:1227 -msgid "View As" +#: LiteEditor/context_cpp.cpp:1216 +msgid "' is located at '" msgstr "" -#: LiteEditor/frame.cpp:1313 LiteEditor/frame.cpp:1529 -#: LiteEditor/frame.cpp:1666 LiteEditor/frame.cpp:1815 -#: LiteEditor/tasksfindwhatdlgbase.cpp:53 -msgid "New" +#: LiteEditor/context_cpp.cpp:1217 +msgid "Would you like CodeLite to open this file for you?" msgstr "" -#: LiteEditor/frame.cpp:1313 LiteEditor/frame.cpp:1529 -#: LiteEditor/frame.cpp:1666 LiteEditor/frame.cpp:1815 -#: SFTP/SFTPTreeView.cpp:417 codelitephp/php-plugin/php_workspace_view.cpp:504 -msgid "New File" +#: LiteEditor/context_cpp.cpp:1231 +msgid "Seems like you have all the getters/setters you need..." msgstr "" -#: LiteEditor/frame.cpp:1315 LiteEditor/frame.cpp:1531 -#: LiteEditor/frame.cpp:1668 LiteEditor/frame.cpp:1817 -#: LiteEditor/frame.cpp:2508 git/GitConsole.cpp:454 -msgid "Open File" +#: LiteEditor/context_cpp.cpp:1231 LiteEditor/frame.cpp:4652 +#: LiteEditor/frame.cpp:4742 +msgid "codelite" msgstr "" -#: LiteEditor/frame.cpp:1319 LiteEditor/frame.cpp:1535 -#: LiteEditor/frame.cpp:1672 LiteEditor/frame.cpp:1821 -#: LiteEditor/wxcrafter.cpp:697 -msgid "Reload File" +#: LiteEditor/context_cpp.cpp:1651 +msgid "Cant resolve scope properly. Found <" msgstr "" -#: LiteEditor/frame.cpp:1323 LiteEditor/frame.cpp:1325 -#: LiteEditor/frame.cpp:1539 LiteEditor/frame.cpp:1541 -#: LiteEditor/frame.cpp:1676 LiteEditor/frame.cpp:1678 -#: LiteEditor/frame.cpp:1825 LiteEditor/frame.cpp:1827 -msgid "Save All" +#: LiteEditor/context_cpp.cpp:1748 +msgid "'Add Functions Implementation' can only work inside valid scope, got (" msgstr "" -#: LiteEditor/frame.cpp:1328 LiteEditor/frame.cpp:1544 -#: LiteEditor/frame.cpp:1681 LiteEditor/frame.cpp:1830 -msgid "Close File" +#: LiteEditor/context_cpp.cpp:1759 +msgid "All your functions seems to have an implementation!" msgstr "" -#: LiteEditor/frame.cpp:1338 LiteEditor/frame.cpp:1554 -#: LiteEditor/frame.cpp:1691 LiteEditor/frame.cpp:1840 -msgid "Backward" +#: LiteEditor/context_cpp.cpp:1859 +msgid "Function '" msgstr "" -#: LiteEditor/frame.cpp:1339 LiteEditor/frame.cpp:1555 -#: LiteEditor/frame.cpp:1692 LiteEditor/frame.cpp:1841 -msgid "Forward" +#: LiteEditor/context_cpp.cpp:1859 +msgid "' already has a body" msgstr "" -#: LiteEditor/frame.cpp:1342 LiteEditor/frame.cpp:1344 -#: LiteEditor/frame.cpp:1558 LiteEditor/frame.cpp:1560 -#: LiteEditor/frame.cpp:1695 LiteEditor/frame.cpp:1697 -#: LiteEditor/frame.cpp:1844 LiteEditor/frame.cpp:1846 -#: LiteEditor/wxcrafter.cpp:705 -msgid "Toggle Bookmark" +#: LiteEditor/context_cpp.cpp:1880 +msgid "Add Function Implementation" msgstr "" -#: LiteEditor/frame.cpp:1354 LiteEditor/frame.cpp:1856 -msgid "Standard" +#: LiteEditor/context_cpp.cpp:2205 +msgid "No matches were found!" msgstr "" -#: LiteEditor/frame.cpp:1370 LiteEditor/frame.cpp:1568 -#: LiteEditor/frame.cpp:1705 LiteEditor/frame.cpp:1874 -#: LiteEditor/quickfindbar.cpp:145 LiteEditor/wxcrafter.cpp:699 -msgid "Find" +#: LiteEditor/context_cpp.cpp:2205 LiteEditor/context_cpp.cpp:2209 +msgid "Refactoring local variable" msgstr "" -#: LiteEditor/frame.cpp:1374 LiteEditor/frame.cpp:1376 -#: LiteEditor/frame.cpp:1572 LiteEditor/frame.cpp:1574 -#: LiteEditor/frame.cpp:1709 LiteEditor/frame.cpp:1711 -#: LiteEditor/frame.cpp:1878 LiteEditor/frame.cpp:1880 -#: codelitephp/php-plugin/php_workspace_view.cpp:220 -#: codelitephp/php-plugin/php_workspace_view.cpp:235 -#: codelitephp/php-plugin/php_workspace_view.cpp:271 -msgid "Find In Files" +#: LiteEditor/context_cpp.cpp:2209 +msgid "Insert New Variable Name:" msgstr "" -#: LiteEditor/frame.cpp:1379 LiteEditor/frame.cpp:1381 -#: LiteEditor/frame.cpp:1577 LiteEditor/frame.cpp:1579 -#: LiteEditor/frame.cpp:1714 LiteEditor/frame.cpp:1716 -#: LiteEditor/frame.cpp:1883 LiteEditor/frame.cpp:1885 -msgid "Find Resource In Workspace" +#: LiteEditor/context_cpp.cpp:2265 LiteEditor/context_cpp.cpp:2967 +msgid "" +"Refactoring engine is still caching workspace info. Try again in a few " +"seconds" msgstr "" -#: LiteEditor/frame.cpp:1384 LiteEditor/frame.cpp:1582 -#: LiteEditor/frame.cpp:1719 LiteEditor/frame.cpp:1888 -msgid "Highlight Word" +#: LiteEditor/context_cpp.cpp:2362 +msgid "Symbol renamed" msgstr "" -#: LiteEditor/frame.cpp:1386 LiteEditor/frame.cpp:1584 -#: LiteEditor/frame.cpp:1721 LiteEditor/frame.cpp:1890 -msgid "Highlight Matching Words" +#: LiteEditor/context_cpp.cpp:2374 +msgid "Please save the file before retagging it" msgstr "" -#: LiteEditor/frame.cpp:1415 LiteEditor/frame.cpp:1595 -#: LiteEditor/frame.cpp:1732 LiteEditor/frame.cpp:1918 -msgid "Build Active Project" +#: LiteEditor/context_cpp.cpp:2656 +msgid "Select file to open:" msgstr "" -#: LiteEditor/frame.cpp:1421 LiteEditor/frame.cpp:1601 -#: LiteEditor/frame.cpp:1737 LiteEditor/frame.cpp:1923 -msgid "Stop Current Build" +#: LiteEditor/context_cpp.cpp:2669 +msgid "New File Name:" msgstr "" -#: LiteEditor/frame.cpp:1425 LiteEditor/frame.cpp:1605 -#: LiteEditor/frame.cpp:1741 LiteEditor/frame.cpp:1927 -msgid "Clean Active Project" +#: LiteEditor/context_cpp.cpp:2669 +msgid "Create File" msgstr "" -#: LiteEditor/frame.cpp:1430 LiteEditor/frame.cpp:1610 -#: LiteEditor/frame.cpp:1746 LiteEditor/frame.cpp:1932 -msgid "Run Active Project" +#: LiteEditor/context_cpp.cpp:3113 +msgid "Find Symbol" msgstr "" -#: LiteEditor/frame.cpp:1434 LiteEditor/frame.cpp:1614 -#: LiteEditor/frame.cpp:1750 LiteEditor/frame.cpp:1936 -msgid "Stop Running Program" +#: LiteEditor/context_cpp.cpp:3114 +msgid "Go to Declaration" msgstr "" -#: LiteEditor/frame.cpp:1460 LiteEditor/frame.cpp:1462 -#: LiteEditor/frame.cpp:1621 LiteEditor/frame.cpp:1623 -#: LiteEditor/frame.cpp:1757 LiteEditor/frame.cpp:1759 -msgid "Start or Continue debugger" +#: LiteEditor/context_cpp.cpp:3115 +msgid "Go to Implementation" msgstr "" -#: LiteEditor/frame.cpp:1464 LiteEditor/frame.cpp:1466 -#: LiteEditor/frame.cpp:1625 LiteEditor/frame.cpp:1627 -#: LiteEditor/frame.cpp:1761 LiteEditor/frame.cpp:1763 -#: LiteEditor/frame.cpp:1966 LiteEditor/frame.cpp:1968 -msgid "Stop debugger" +#: LiteEditor/localstable.cpp:52 LiteEditor/debuggerpane.cpp:46 menu.xrc:597 +msgid "Locals" msgstr "" -#: LiteEditor/frame.cpp:1468 LiteEditor/frame.cpp:1470 -#: LiteEditor/frame.cpp:1629 LiteEditor/frame.cpp:1631 -#: LiteEditor/frame.cpp:1765 LiteEditor/frame.cpp:1767 -#: LiteEditor/frame.cpp:1970 LiteEditor/frame.cpp:1972 -msgid "Pause debugger" +#: LiteEditor/localstable.cpp:378 +#, c-format +msgid "Current scope is now set to: \"%s\", depth: %d\n" msgstr "" -#: LiteEditor/frame.cpp:1472 LiteEditor/frame.cpp:1474 -#: LiteEditor/frame.cpp:1633 LiteEditor/frame.cpp:1635 -#: LiteEditor/frame.cpp:1769 LiteEditor/frame.cpp:1771 -#: LiteEditor/frame.cpp:1974 LiteEditor/frame.cpp:1976 -msgid "Restart debugger" +#: LiteEditor/localstable.cpp:402 +msgid "Change value..." msgstr "" -#: LiteEditor/frame.cpp:1477 LiteEditor/frame.cpp:1479 -#: LiteEditor/frame.cpp:1638 LiteEditor/frame.cpp:1640 -#: LiteEditor/frame.cpp:1774 LiteEditor/frame.cpp:1776 -#: LiteEditor/frame.cpp:1979 LiteEditor/frame.cpp:1981 -msgid "Show Current Line" +#: LiteEditor/localstable.cpp:413 +#, c-format +msgid "Insert new value for '%s':" msgstr "" -#: LiteEditor/frame.cpp:1482 LiteEditor/frame.cpp:1643 -#: LiteEditor/frame.cpp:1779 LiteEditor/frame.cpp:1984 -msgid "Step In" +#: LiteEditor/localstable.cpp:414 +msgid "Edit expression" msgstr "" -#: LiteEditor/frame.cpp:1482 LiteEditor/frame.cpp:1643 -#: LiteEditor/frame.cpp:1779 LiteEditor/frame.cpp:1984 -msgid "Step Into" +#: LiteEditor/addincludefiledlgbase.cpp:44 +msgid "Edit the line to add:" msgstr "" -#: LiteEditor/frame.cpp:1483 LiteEditor/frame.cpp:1644 -#: LiteEditor/frame.cpp:1780 LiteEditor/frame.cpp:1985 -#: Plugin/wxcrafter_plugin.cpp:120 -msgid "Next" +#: LiteEditor/addincludefiledlgbase.cpp:58 +msgid "Move the #include statement one line up" msgstr "" -#: LiteEditor/frame.cpp:1485 LiteEditor/frame.cpp:1487 -#: LiteEditor/frame.cpp:1646 LiteEditor/frame.cpp:1648 -#: LiteEditor/frame.cpp:1782 LiteEditor/frame.cpp:1784 -#: LiteEditor/frame.cpp:1987 LiteEditor/frame.cpp:1989 -msgid "Next Instruction" +#: LiteEditor/addincludefiledlgbase.cpp:60 +msgid "Move the #include statement one line down" msgstr "" -#: LiteEditor/frame.cpp:1489 LiteEditor/frame.cpp:1650 -#: LiteEditor/frame.cpp:1786 LiteEditor/frame.cpp:1991 -msgid "Step Out" +#: LiteEditor/addincludefiledlgbase.cpp:62 +msgid "Clear Cached Paths" msgstr "" -#: LiteEditor/frame.cpp:1514 LiteEditor/frame.cpp:2015 -msgid "Main Toolbar" +#: LiteEditor/addincludefiledlgbase.cpp:123 +msgid "Line to add:" msgstr "" -#: LiteEditor/frame.cpp:1962 LiteEditor/frame.cpp:1964 -msgid "Start / Continue debugger" +#: LiteEditor/addincludefiledlgbase.cpp:143 +msgid "File's full path:" msgstr "" -#: LiteEditor/frame.cpp:2030 -msgid "Applying your choices and restarting CodeLite" +#: LiteEditor/newversionbasedlg.cpp:48 +msgid "Show me whats new !" msgstr "" -#: LiteEditor/frame.cpp:2032 -msgid "Applying your choices, this may take a few seconds" +#: LiteEditor/editcmpfileinfobase.h:83 +msgid "File Type Settings" msgstr "" -#: LiteEditor/frame.cpp:2380 -msgid "The file" +#: LiteEditor/tags_options_base_dlg.cpp:36 +msgid "Display and Behavior" msgstr "" -#: LiteEditor/frame.cpp:2381 -msgid "has been altered." +#: LiteEditor/tags_options_base_dlg.cpp:51 +msgid "Number of items to display in the completion box:" msgstr "" -#: LiteEditor/frame.cpp:2382 -msgid "Are you sure you want to lose all changes?" +#: LiteEditor/tags_options_base_dlg.cpp:62 +msgid "Code Completion is case sensitive (improves performance)" msgstr "" -#: LiteEditor/frame.cpp:2419 LiteEditor/wxcrafter.cpp:469 -msgid "Open Workspace" +#: LiteEditor/tags_options_base_dlg.cpp:64 +msgid "" +"When enabled, the code completion search engine will use case sensitive " +"searches. \n" +"So 'QString' is NOT equal 'qstring'" msgstr "" -#: LiteEditor/frame.cpp:2566 -msgid "Please enter a name for the tab group" +#: LiteEditor/tags_options_base_dlg.cpp:70 +msgid "Display type info tooltips" msgstr "" -#: LiteEditor/frame.cpp:2581 -msgid "There is already a file with this name. Do you want to overwrite it?" +#: LiteEditor/tags_options_base_dlg.cpp:72 +msgid "Display information about the hovered text" msgstr "" -#: LiteEditor/frame.cpp:2605 -msgid "Tab group saved" +#: LiteEditor/tags_options_base_dlg.cpp:78 +msgid "Display function calltip" msgstr "" -#: LiteEditor/frame.cpp:2689 -#: codelitephp/php-plugin/php_workspace_view.cpp:1343 -msgid "Open Project" +#: LiteEditor/tags_options_base_dlg.cpp:80 +msgid "Display function argument list after typing an open brace '('" msgstr "" -#: LiteEditor/frame.cpp:3000 -msgid "Build ended with errors. Continue?" +#: LiteEditor/tags_options_base_dlg.cpp:86 +msgid "Display completion box for language keywords" msgstr "" -#: LiteEditor/frame.cpp:3020 -msgid "Build starting..." +#: LiteEditor/tags_options_base_dlg.cpp:88 +msgid "" +"When enabled, codelite will auto show the code completion box for C/C++ " +"keywords after typing 2 chars" msgstr "" -#: LiteEditor/frame.cpp:3055 -msgid "Failed to find Custom Build Target for event ID" +#: LiteEditor/tags_options_base_dlg.cpp:94 +msgid "Keep function signature un-formatted" msgstr "" -#: LiteEditor/frame.cpp:3187 -msgid "" -"Would you like to build the active project\n" -"before executing it?" +#: LiteEditor/tags_options_base_dlg.cpp:99 +msgid "Behavior:" msgstr "" -#: LiteEditor/frame.cpp:3189 -msgid "Build and Execute" +#: LiteEditor/tags_options_base_dlg.cpp:109 +msgid "Perform a retag when workspace is loaded" msgstr "" -#: LiteEditor/frame.cpp:3190 -msgid "Execute" +#: LiteEditor/tags_options_base_dlg.cpp:111 +msgid "Retag workspace once loaded" msgstr "" -#: LiteEditor/frame.cpp:3260 -msgid "" -"Your workspace symbols file does not match the current version of CodeLite. " -"CodeLite will perform a full retag of the workspace" +#: LiteEditor/tags_options_base_dlg.cpp:115 +msgid "Do not parse the file after saving it" msgstr "" -#: LiteEditor/frame.cpp:3362 -msgid "No workspaces found." +#: LiteEditor/tags_options_base_dlg.cpp:117 +msgid "Do not trigger file parsing after saving a file" msgstr "" -#: LiteEditor/frame.cpp:3399 -msgid "No files found." +#: LiteEditor/tags_options_base_dlg.cpp:121 +msgid "Scan all included files to locate 'using namespace' statements" msgstr "" -#: LiteEditor/frame.cpp:3576 LiteEditor/frame.cpp:3896 -#: LiteEditor/frame.cpp:4616 -msgid "Welcome!" +#: LiteEditor/tags_options_base_dlg.cpp:123 +msgid "Allways search for 'using namespace' statements in all included files" msgstr "" -#: LiteEditor/frame.cpp:3590 -msgid "Open MS Solution File" +#: LiteEditor/tags_options_base_dlg.cpp:128 +msgid "Colouring" msgstr "" -#: LiteEditor/frame.cpp:3607 Plugin/CompilersDetectorManager.cpp:141 -msgid "Choose compiler" +#: LiteEditor/tags_options_base_dlg.cpp:141 +msgid "Track PreProcessor blocks" msgstr "" -#: LiteEditor/frame.cpp:3607 -msgid "Select the compiler to use:" +#: LiteEditor/tags_options_base_dlg.cpp:142 +msgid "" +"Track Pre Processor blocks in the code and colour unreachable code with grey " +"text (\"disabled text\")" msgstr "" -#: LiteEditor/frame.cpp:3655 -msgid "Attempting to debug workspace with no active project? Ignoring." +#: LiteEditor/tags_options_base_dlg.cpp:144 +msgid "Colour local variables" msgstr "" -#: LiteEditor/frame.cpp:3663 -msgid "Would you like to build the project before debugging it?" +#: LiteEditor/tags_options_base_dlg.cpp:145 +msgid "" +"Local variables inside functions will use their own colour to diffrentiate " +"them from other code\n" +"The colour can be selected from the 'Colours and Fonts' menu" msgstr "" -#: LiteEditor/frame.cpp:3665 -msgid "Build and Debug" +#: LiteEditor/tags_options_base_dlg.cpp:149 +msgid "class" msgstr "" -#: LiteEditor/frame.cpp:4242 -msgid "Close this workspace, and load workspace '" +#: LiteEditor/tags_options_base_dlg.cpp:150 +msgid "struct" msgstr "" -#: LiteEditor/frame.cpp:4273 -msgid "Download Now!" +#: LiteEditor/tags_options_base_dlg.cpp:151 +msgid "function" msgstr "" -#: LiteEditor/frame.cpp:4279 -msgid "A new version of codelite is available" +#: LiteEditor/tags_options_base_dlg.cpp:152 +msgid "enum" msgstr "" -#: LiteEditor/frame.cpp:4290 -msgid "CodeLite is up-to-date" +#: LiteEditor/tags_options_base_dlg.cpp:153 +msgid "enumerator" msgstr "" -#: LiteEditor/frame.cpp:4681 LiteEditor/manager.cpp:2141 -msgid "Debugging: " +#: LiteEditor/tags_options_base_dlg.cpp:154 +msgid "union" msgstr "" -#: LiteEditor/frame.cpp:4684 LiteEditor/frame.cpp:4774 -msgid "Could not start TTY console for debugger!" +#: LiteEditor/tags_options_base_dlg.cpp:155 +msgid "prototype" msgstr "" -#: LiteEditor/frame.cpp:4974 -msgid "" -"Workspace or project settings have been modified outside of CodeLite\n" -"Would you like to reload the workspace?" +#: LiteEditor/tags_options_base_dlg.cpp:156 +msgid "typedef" msgstr "" -#: LiteEditor/frame.cpp:4977 codelitephp/php-plugin/php_workspace_view.cpp:207 -msgid "Reload workspace" +#: LiteEditor/tags_options_base_dlg.cpp:157 +msgid "macro" msgstr "" -#: LiteEditor/frame.cpp:4978 LiteEditor/frame.cpp:5311 -msgid "Not now" +#: LiteEditor/tags_options_base_dlg.cpp:158 +msgid "namespace" msgstr "" -#: LiteEditor/frame.cpp:5263 -msgid "Tags cache cleared" +#: LiteEditor/tags_options_base_dlg.cpp:159 +msgid "member" msgstr "" -#: LiteEditor/frame.cpp:5300 -msgid "Some of the changes made requires restart of CodeLite" +#: LiteEditor/tags_options_base_dlg.cpp:160 +msgid "variable" msgstr "" -#: LiteEditor/frame.cpp:5304 -msgid "Restart Now!" +#: LiteEditor/tags_options_base_dlg.cpp:173 +msgid "Colour workspace symbols" msgstr "" -#: LiteEditor/frame.cpp:5314 -msgid "Some of the changes made require a restart of CodeLite. Restart now?" +#: LiteEditor/tags_options_base_dlg.cpp:174 +msgid "" +"Select from the list below which symbols type should be coloured by codelite " +"with different colour.\n" +"The colour is configurable from the 'Colours and Fonts' dialog" msgstr "" -#: LiteEditor/frame.cpp:5405 -#, c-format -msgid "INFO: Retag workspace completed in %ld seconds (%lu files were scanned)" +#: LiteEditor/tags_options_base_dlg.cpp:177 +msgid "Triggering" msgstr "" -#: LiteEditor/frame.cpp:5417 -msgid "INFO: Retag workspace completed in 0 seconds (No files were retagged)" +#: LiteEditor/tags_options_base_dlg.cpp:182 +msgid "Automatic Word Completion:" msgstr "" -#: LiteEditor/implementparentvirtualfunctionsbase.cpp:55 -msgid "Implement inherited virtual functions" +#: LiteEditor/tags_options_base_dlg.cpp:193 +msgid "Auto display code completion box when typing" msgstr "" -#: LiteEditor/implementparentvirtualfunctionsbase.cpp:55 +#: LiteEditor/tags_options_base_dlg.cpp:195 msgid "" -"Select from the list below the functions that you want to override in your " -"class" +"When enabled, codelite will auto show the code completion box after N chars " +"were typed" msgstr "" -#: LiteEditor/implementparentvirtualfunctionsbase.cpp:65 -msgid "File:" +#: LiteEditor/tags_options_base_dlg.cpp:201 +#: LiteEditor/tags_options_base_dlg.cpp:202 +msgid "Minimun chars to type:" msgstr "" -#: LiteEditor/implementparentvirtualfunctionsbase.cpp:70 -msgid "Generate the functions in this filename" +#: LiteEditor/tags_options_base_dlg.cpp:207 +msgid "Number of chars to type before showing the code completion box" msgstr "" -#: LiteEditor/implementparentvirtualfunctionsbase.cpp:79 -msgid "" -"Select which function to generate by ticking the '?' column\n" -"All fields on this table are editable" +#: LiteEditor/tags_options_base_dlg.cpp:211 +msgid "Auto insert single match" msgstr "" -#: LiteEditor/implementparentvirtualfunctionsbase.cpp:91 -msgid "public" +#: LiteEditor/tags_options_base_dlg.cpp:213 +msgid "" +"When there is only a single match don't show the code completion box but " +"rather insert the match" msgstr "" -#: LiteEditor/implementparentvirtualfunctionsbase.cpp:92 -msgid "protected" +#: LiteEditor/tags_options_base_dlg.cpp:217 +msgid "CTags" msgstr "" -#: LiteEditor/implementparentvirtualfunctionsbase.cpp:93 -msgid "private" +#: LiteEditor/tags_options_base_dlg.cpp:220 +#: LiteEditor/tags_options_base_dlg.cpp:238 +msgid "Search paths" msgstr "" -#: LiteEditor/implementparentvirtualfunctionsbase.cpp:94 -msgid "Visibility" +#: LiteEditor/tags_options_base_dlg.cpp:231 +msgid "Search Paths" msgstr "" -#: LiteEditor/implementparentvirtualfunctionsbase.cpp:97 -msgid "Virtual" +#: LiteEditor/tags_options_base_dlg.cpp:238 +msgid "codelite will search for include files in these locations" msgstr "" -#: LiteEditor/implementparentvirtualfunctionsbase.cpp:98 -msgid "Generate doxygen comment?" +#: LiteEditor/tags_options_base_dlg.cpp:265 +#: LiteEditor/tags_options_base_dlg.cpp:309 +msgid "&Add..." msgstr "" -#: LiteEditor/implementparentvirtualfunctionsbase.cpp:103 -#: LiteEditor/wxcrafter.cpp:386 -msgid "Check all" +#: LiteEditor/tags_options_base_dlg.cpp:270 +msgid "Suggest search paths based on the installed compilers" msgstr "" -#: LiteEditor/implementparentvirtualfunctionsbase.cpp:107 -#: LiteEditor/wxcrafter.cpp:390 -msgid "Uncheck all" +#: LiteEditor/tags_options_base_dlg.cpp:275 +msgid "Exclude Paths" msgstr "" -#: LiteEditor/implementparentvirtualfunctionsbase.cpp:115 -msgid "Format text after insertion" +#: LiteEditor/tags_options_base_dlg.cpp:282 +msgid "Exclude paths" msgstr "" -#: LiteEditor/importfilesdialog_new.cpp:31 -msgid "Import Files" +#: LiteEditor/tags_options_base_dlg.cpp:282 +msgid "" +"codelite code completion will ignore any files found in one of the paths " +"below" msgstr "" -#: LiteEditor/importfilesdialog_new.cpp:31 -msgid "Select the directories to import from" +#: LiteEditor/tags_options_base_dlg.cpp:314 +#: LiteEditor/tags_options_base_dlg.cpp:494 LiteEditor/compiler_pages.cpp:530 +#: LLDBDebugger/UI.cpp:451 Gizmos/newclassbasedlg.cpp:158 +msgid "Advanced" msgstr "" -#: LiteEditor/importfilesdialog_new.cpp:38 -msgid "Select the base folder for importing" +#: LiteEditor/tags_options_base_dlg.cpp:326 +msgid "File Types:" msgstr "" -#: LiteEditor/importfilesdialog_new.cpp:44 +#: LiteEditor/tags_options_base_dlg.cpp:341 msgid "" -"Check the folders you wish to import\n" -"files from" +"CodeLite can suggest a list of 'Tokens' that will be added to the 'Tokens' " +"table based on parsing the following header files \n" +"(space separated list):" msgstr "" -#: LiteEditor/importfilesdialog_new.cpp:53 -msgid "Folder" +#: LiteEditor/tags_options_base_dlg.cpp:356 +msgid "Parse!" msgstr "" -#: LiteEditor/importfilesdialog_new.cpp:54 -msgid "Files extension to import (semicolon delimited):" +#: LiteEditor/tags_options_base_dlg.cpp:366 +#: LiteEditor/tags_options_base_dlg.cpp:390 +msgid "" +"List here list of tokens to be pre-processed by codelite-indexer. \n" +"Usually, you would like to add here macros which confuse the parser\n" +"Click the below link to read more about this feature and the syntax " +"supported.\n" msgstr "" -#: LiteEditor/importfilesdialog_new.cpp:65 -msgid "Import files without extensions" +#: LiteEditor/tags_options_base_dlg.cpp:367 +msgid "Tokens" msgstr "" -#: LiteEditor/importfilesdialog_new.cpp:67 -msgid "If you wish to import files without extensions, tick this option" +#: LiteEditor/tags_options_base_dlg.cpp:389 +msgid "" +"List here list of tokens to be pre-processed by codelite-indexer usually, " +"you would like to add here\n" +"macros which confuse the parser" msgstr "" -#: LiteEditor/listctrlpanel.cpp:121 -msgid "Copy Backtrace to Clipboard" +#: LiteEditor/tags_options_base_dlg.cpp:394 +msgid "Macros Handling" msgstr "" -#: LiteEditor/listctrlpanelbase.cpp:57 codelitephp/php-plugin/php_ui.cpp:1096 -msgid "Level" +#: LiteEditor/tags_options_base_dlg.cpp:403 LLDBDebugger/UI.cpp:387 +msgid "Types" msgstr "" -#: LiteEditor/localstable.cpp:378 -#, c-format -msgid "Current scope is now set to: \"%s\", depth: %d\n" +#: LiteEditor/tags_options_base_dlg.cpp:412 +msgid "" +"Specify here a list of types which are to be specially handled while parsing " +"C and C++\n" +"source files in the format of TYPE1=TYPE2. So when TYPE1 is found, CodeLite " +"will offer\n" +"completion as if it was TYPE2 was found" msgstr "" -#: LiteEditor/localstable.cpp:402 -msgid "Change value..." +#: LiteEditor/tags_options_base_dlg.cpp:430 LiteEditor/output_pane.cpp:54 +msgid "Clang" msgstr "" -#: LiteEditor/localstable.cpp:413 -#, c-format -msgid "Insert new value for '%s':" +#: LiteEditor/tags_options_base_dlg.cpp:435 +msgid "Enable clang code completion" msgstr "" -#: LiteEditor/localstable.cpp:414 -msgid "Edit expression" +#: LiteEditor/tags_options_base_dlg.cpp:458 +msgid "Only use clang code completion" msgstr "" -#: LiteEditor/mainbook.cpp:244 -msgid "Save changes to '" +#: LiteEditor/tags_options_base_dlg.cpp:460 +msgid "" +"Check this option so codelite will use the clang's code completion over the " +"ctags one.\n" +"clang is more accurate, while ctags is faster" msgstr "" -#: LiteEditor/mainbook.cpp:474 -msgid "Untitled" +#: LiteEditor/tags_options_base_dlg.cpp:464 +#: LiteEditor/workspacesettingsbase.cpp:145 +#: LiteEditor/project_settings_base_dlg.cpp:1114 +msgid "Search paths:" msgstr "" -#: LiteEditor/mainbook.cpp:750 LiteEditor/mainbook.cpp:926 -#: LiteEditor/replaceinfilespanel.cpp:366 -msgid "Save Modified Files" +#: LiteEditor/tags_options_base_dlg.cpp:485 +msgid "Add here search paths used by clang for locating include files" msgstr "" -#: LiteEditor/mainbook.cpp:751 LiteEditor/mainbook.cpp:927 -#: LiteEditor/replaceinfilespanel.cpp:367 -msgid "" -"Some files are modified.\n" -"Choose the files you would like to save." +#: LiteEditor/tags_options_base_dlg.cpp:489 +msgid "Suggest search paths..." msgstr "" -#: LiteEditor/mainbook.cpp:828 -msgid "Reload Modified Files" +#: LiteEditor/tags_options_base_dlg.cpp:506 +msgid "Clear clang translation unit cache:" msgstr "" -#: LiteEditor/mainbook.cpp:829 +#: LiteEditor/tags_options_base_dlg.cpp:511 msgid "" -"Files have been modified outside the editor.\n" -"Choose which files you would like to reload." +"Clicking this button will erase all clang's generated PCH files. \n" +"Use this button as the first step to resolve a code completion issue" +msgstr "" + +#: LiteEditor/tags_options_base_dlg.cpp:515 +msgid "Parsing policy:" msgstr "" #: LiteEditor/manage_perspective_dlg.cpp:48 @@ -7589,23 +9979,15 @@ msgid "Are you sure you want to delete perspective '%s'?" msgstr "" -#: LiteEditor/manage_perspective_dlg.cpp:66 SFTP/SFTPTreeView.cpp:440 -msgid "Enter new name:" -msgstr "" - #: LiteEditor/manage_perspective_dlg.cpp:66 msgid "Rename perspective" msgstr "" -#: LiteEditor/manageperspectivesbasedlg.cpp:108 -msgid "Save the current layout as:" -msgstr "" - -#: LiteEditor/manager.cpp:629 -msgid "Importing MS solution..." +#: LiteEditor/manager.cpp:632 +msgid "Importing IDE solution/workspace..." msgstr "" -#: LiteEditor/manager.cpp:1107 +#: LiteEditor/manager.cpp:1112 #, c-format msgid "" "There is already a file in this folder with a name:\n" @@ -7613,1401 +9995,1449 @@ "that matches using case-insensitive comparison" msgstr "" -#: LiteEditor/manager.cpp:1111 +#: LiteEditor/manager.cpp:1116 msgid "" "\n" "This won't be a problem on Linux, but it may be on other, case-insensitive " "platforms" msgstr "" -#: LiteEditor/manager.cpp:1112 +#: LiteEditor/manager.cpp:1117 msgid "" "\n" "\n" "Add the file anyway?" msgstr "" -#: LiteEditor/manager.cpp:1114 +#: LiteEditor/manager.cpp:1119 msgid "Possible name-clash" msgstr "" -#: LiteEditor/manager.cpp:1150 +#: LiteEditor/manager.cpp:1155 #, c-format msgid "%u file(s) not added, probably due to a name-clash" msgstr "" -#: LiteEditor/manager.cpp:1962 +#: LiteEditor/manager.cpp:1967 msgid "" "Failed to locate the configured default terminal application required by " "CodeLite, please install it or check your configuration!" msgstr "" -#: LiteEditor/manager.cpp:2025 -msgid "': debugger not loaded\n" +#: LiteEditor/manager.cpp:2030 +msgid "Failed to launch debugger '" msgstr "" -#: LiteEditor/manager.cpp:2025 -msgid "Failed to launch debugger '" +#: LiteEditor/manager.cpp:2030 +msgid "': debugger not loaded\n" msgstr "" -#: LiteEditor/manager.cpp:2026 +#: LiteEditor/manager.cpp:2031 msgid "" "Make sure that you have an open workspace and that the active project is of " "type 'Executable'" msgstr "" -#: LiteEditor/manager.cpp:2075 +#: LiteEditor/manager.cpp:2080 msgid "Could not find project configuration!\n" msgstr "" -#: LiteEditor/manager.cpp:2076 +#: LiteEditor/manager.cpp:2081 msgid "Make sure that everything is set properly in your project settings" msgstr "" -#: LiteEditor/manager.cpp:2143 +#: LiteEditor/manager.cpp:2146 LiteEditor/frame.cpp:4649 +msgid "Debugging: " +msgstr "" + +#: LiteEditor/manager.cpp:2148 msgid "Could not launch terminal for debugger" msgstr "" -#: LiteEditor/manager.cpp:2183 LiteEditor/manager.cpp:2194 +#: LiteEditor/manager.cpp:2188 LiteEditor/manager.cpp:2199 msgid "Failed to initialize debugger: " msgstr "" -#: LiteEditor/manager.cpp:2223 +#: LiteEditor/manager.cpp:2228 msgid "Debug session started successfully!\n" msgstr "" -#: LiteEditor/manager.cpp:2322 +#: LiteEditor/manager.cpp:2327 msgid "Debug session ended\n" msgstr "" -#: LiteEditor/manager.cpp:2531 LiteEditor/manager.cpp:2534 +#: LiteEditor/manager.cpp:2536 LiteEditor/manager.cpp:2539 msgid "Program Received signal " msgstr "" -#: LiteEditor/manager.cpp:2535 +#: LiteEditor/manager.cpp:2540 msgid "Stack trace is available in the 'Call Stack' tab\n" msgstr "" -#: LiteEditor/manager.cpp:2567 +#: LiteEditor/manager.cpp:2572 msgid "" "Assertion failed!\n" "Stack trace is available in the 'Call Stack' tab\n" msgstr "" -#: LiteEditor/manager.cpp:2599 +#: LiteEditor/manager.cpp:2604 #, c-format msgid "" "Debugger exited with the following error string:\n" "%s" msgstr "" -#: LiteEditor/manager.cpp:2620 +#: LiteEditor/manager.cpp:2625 msgid "Continuing...\n" msgstr "" -#: LiteEditor/manager.cpp:2844 LiteEditor/manager.cpp:2895 -#: LiteEditor/manager.cpp:2934 +#: LiteEditor/manager.cpp:2849 LiteEditor/manager.cpp:2900 +#: LiteEditor/manager.cpp:2939 msgid "This would terminate the current debug session, continue?" msgstr "" -#: LiteEditor/manager.cpp:2859 +#: LiteEditor/manager.cpp:2864 +msgid "Preprocess File" +msgstr "" + +#: LiteEditor/manager.cpp:2864 msgid "Compile Single File" msgstr "" -#: LiteEditor/manager.cpp:2859 -msgid "Preprocess File" +#: LiteEditor/manager.cpp:3452 +msgid "Retagging..." +msgstr "" + +#: LiteEditor/manager.cpp:3623 +msgid "Generating compile_commands.json file..." +msgstr "" + +#: LiteEditor/manager.cpp:3671 +msgid "" +"Build cancelled. The following compilers referred by the workspace could not " +"be found:\n" +msgstr "" + +#: LiteEditor/manager.cpp:3672 +msgid "Please fix your project settings by selecting a valid compiler" +msgstr "" + +#: LiteEditor/manager.cpp:3690 +msgid "" +"Compilers updated successfully!\n" +"You can now build your workspace" +msgstr "" + +#: LiteEditor/compiler_pages.cpp:36 +msgid "Switch:" +msgstr "" + +#: LiteEditor/compiler_pages.cpp:47 +msgid "Help:" +msgstr "" + +#: LiteEditor/compiler_pages.cpp:108 +msgid "Regex Pattern:" +msgstr "" + +#: LiteEditor/compiler_pages.cpp:113 +msgid "Compiler regular expression" +msgstr "" + +#: LiteEditor/compiler_pages.cpp:120 +msgid "File Index in Pattern:" +msgstr "" + +#: LiteEditor/compiler_pages.cpp:125 +msgid "The capture index in the regex that holds the file path" +msgstr "" + +#: LiteEditor/compiler_pages.cpp:132 +msgid "Line Number in Pattern:" +msgstr "" + +#: LiteEditor/compiler_pages.cpp:137 +msgid "The capture index in the regex that holds the line number" +msgstr "" + +#: LiteEditor/compiler_pages.cpp:144 +msgid "Column Index in Pattern:" +msgstr "" + +#: LiteEditor/compiler_pages.cpp:149 +msgid "The capture index in the regex that holds the column number" +msgstr "" + +#: LiteEditor/compiler_pages.cpp:206 +msgid "New compiler name:" +msgstr "" + +#: LiteEditor/compiler_pages.cpp:218 +msgid "Copy settings from:" msgstr "" -#: LiteEditor/manager.cpp:3447 -msgid "Retagging..." +#: LiteEditor/compiler_pages.cpp:268 +msgid "Add Compilers" msgstr "" -#: LiteEditor/manager.cpp:3618 -msgid "Generating compile_commands.json file..." +#: LiteEditor/compiler_pages.cpp:306 +msgid "C++ Compiler" msgstr "" -#: LiteEditor/manager.cpp:3666 +#: LiteEditor/compiler_pages.cpp:307 msgid "" -"Build cancelled. The following compilers referred by the workspace could not " -"be found:\n" +"The C++ compiler path (plus optional flags). This tool is represented in the " +"Makefile as $(CXX)" msgstr "" -#: LiteEditor/manager.cpp:3667 -msgid "Please fix your project settings by selecting a valid compiler" +#: LiteEditor/compiler_pages.cpp:310 +msgid "C Compiler" msgstr "" -#: LiteEditor/manager.cpp:3685 +#: LiteEditor/compiler_pages.cpp:311 msgid "" -"Compilers updated successfully!\n" -"You can now build your workspace" -msgstr "" - -#: LiteEditor/memoryview.cpp:160 -#, c-format -msgid "Invalid memory value: %s" +"The C++ compiler path (plus optional flags). This tool is represented in the " +"Makefile as $(CC)" msgstr "" -#: LiteEditor/memoryviewbase.cpp:61 -msgid "Address:" +#: LiteEditor/compiler_pages.cpp:314 +msgid "Assembler Name" msgstr "" -#: LiteEditor/memoryviewbase.cpp:66 -msgid "Address or pointer to watch" +#: LiteEditor/compiler_pages.cpp:315 +msgid "The assembler tool path. This tool is referred in the Makefile as $(AS)" msgstr "" -#: LiteEditor/memoryviewbase.cpp:70 -msgid "Size:" +#: LiteEditor/compiler_pages.cpp:319 +msgid "The linker tool. Usually similar to the 'C++ Compiler' tool path" msgstr "" -#: LiteEditor/memoryviewbase.cpp:71 LiteEditor/memoryviewbase.cpp:85 -msgid "Memory size to view" +#: LiteEditor/compiler_pages.cpp:322 +msgid "Shared Object Linker" msgstr "" -#: LiteEditor/memoryviewbase.cpp:90 -msgid "Number of columns:" +#: LiteEditor/compiler_pages.cpp:323 +msgid "The tool to create shared objects" msgstr "" -#: LiteEditor/memoryviewbase.cpp:100 -msgid "Number of columns to use per row" +#: LiteEditor/compiler_pages.cpp:326 +msgid "Archive" msgstr "" -#: LiteEditor/memoryviewbase.cpp:126 -msgid "Evaluate" +#: LiteEditor/compiler_pages.cpp:327 +msgid "" +"The static archive tool \"ar\". This tool is referred in the Makefile as " +"$(AR)" msgstr "" -#: LiteEditor/memoryviewbase.cpp:128 -msgid "Evaluate the expression in the \"Address\" field" +#: LiteEditor/compiler_pages.cpp:330 +msgid "Resource Compiler" msgstr "" -#: LiteEditor/memoryviewbase.cpp:132 Subversion2/subversion2.cpp:313 -msgid "Update" +#: LiteEditor/compiler_pages.cpp:331 +msgid "The resource compiler. (Windows only)" msgstr "" -#: LiteEditor/memoryviewbase.cpp:133 -msgid "Update the memory in the main display area to apply your changes" +#: LiteEditor/compiler_pages.cpp:334 +msgid "Make" msgstr "" -#: LiteEditor/menu_event_handlers.cpp:242 -#, c-format -msgid "Go to line number (1 - %d):" +#: LiteEditor/compiler_pages.cpp:335 +msgid "" +"The Make tool. on Windows / MinGW this is usually mingw32-make.exe while on " +"other OSs its simply 'make'" msgstr "" -#: LiteEditor/menu_event_handlers.cpp:245 -#: LiteEditor/menu_event_handlers.cpp:254 -#: LiteEditor/menu_event_handlers.cpp:261 -msgid "Go To Line" +#: LiteEditor/compiler_pages.cpp:338 +msgid "mkdir" msgstr "" -#: LiteEditor/menu_event_handlers.cpp:253 -#, c-format -msgid "'%s' is not a valid line number" +#: LiteEditor/compiler_pages.cpp:339 +msgid "" +"Set the 'mkdir' for your OS.\n" +"Leave it empty to use the defualt for your OS" msgstr "" -#: LiteEditor/menu_event_handlers.cpp:260 -#, c-format -msgid "Please insert a line number in the range of (1 - %ld)" +#: LiteEditor/compiler_pages.cpp:342 +msgid "Gdb" msgstr "" -#: LiteEditor/messagepane_base.cpp:86 -msgid "Message:" +#: LiteEditor/compiler_pages.cpp:343 +msgid "" +"On various platform (e.g. Cygwin) it is recommended to use their own sepcial " +"gdb executable rather than the global one\n" +"You can specify one here, or leave this empty to use the default" msgstr "" -#: LiteEditor/messagepane_base.cpp:98 -msgid "Remember my answer and don't annoy me again!" +#: LiteEditor/compiler_pages.cpp:347 +msgid "Patterns" msgstr "" -#: LiteEditor/messagepane_base.cpp:102 -msgid "" -"If you don't want to be spammed by this message again, tick the box. You can " -"change your mind in Settings > Global Editor Preferences > Dialogs" +#: LiteEditor/compiler_pages.cpp:356 +msgid "Compiler Errors Patterns:" msgstr "" -#: LiteEditor/messagepane_base.cpp:110 -msgid "Hide" +#: LiteEditor/compiler_pages.cpp:373 +msgid "Add new error pattern" msgstr "" -#: LiteEditor/movefuncimplbasedlg.cpp:47 -msgid "Select the file in which to place the function implementation:" +#: LiteEditor/compiler_pages.cpp:378 +msgid "Delete the selected error pattern" msgstr "" -#: LiteEditor/movefuncimplbasedlg.cpp:54 -msgid "Function implementation (you can edit the code below):" +#: LiteEditor/compiler_pages.cpp:383 +msgid "Edit the selected error pattern" msgstr "" -#: LiteEditor/movefuncimpldlg.cpp:80 -msgid " does not exist" +#: LiteEditor/compiler_pages.cpp:391 +msgid "Compiler Warnings Patterns:" msgstr "" -#: LiteEditor/movefuncimpldlg.cpp:80 -msgid "File: " +#: LiteEditor/compiler_pages.cpp:408 +msgid "Add new warning pattern" msgstr "" -#: LiteEditor/new_build_tab.cpp:295 SFTP/UI.cpp:36 -msgid "Message" +#: LiteEditor/compiler_pages.cpp:413 +msgid "Delete the selected warning pattern" msgstr "" -#: LiteEditor/new_build_tab.cpp:370 -msgid "errors" +#: LiteEditor/compiler_pages.cpp:418 +msgid "Edit the selected warning pattern" msgstr "" -#: LiteEditor/new_build_tab.cpp:370 -msgid "warnings" +#: LiteEditor/compiler_pages.cpp:428 LiteEditor/compiler_pages.cpp:459 +#: LiteEditor/compiler_pages.cpp:490 LiteEditor/compiler_pages.cpp:504 +msgid "Double click on an entry to modify it:" msgstr "" -#: LiteEditor/new_build_tab.cpp:377 -msgid "seconds" +#: LiteEditor/compiler_pages.cpp:499 +msgid "File Types" msgstr "" -#: LiteEditor/new_build_tab.cpp:377 -msgid "total time" +#: LiteEditor/compiler_pages.cpp:546 +msgid "Global Paths" msgstr "" -#: LiteEditor/new_build_tab.cpp:385 -msgid "(Build Cancelled)" +#: LiteEditor/compiler_pages.cpp:557 +msgid "Include Path:" msgstr "" -#: LiteEditor/new_build_tab.cpp:949 -msgid "Select a file to open:" +#: LiteEditor/compiler_pages.cpp:562 +msgid "" +"Set here an additional include paths. Each path should be separated with a " +"semi-colon\n" +"Note that usually you don't need to modify this field and it should be left " +"empty" msgstr "" -#: LiteEditor/new_build_tab.cpp:1045 -msgid "Copy Selected Line" +#: LiteEditor/compiler_pages.cpp:573 +msgid "Libraries Path:" msgstr "" -#: LiteEditor/new_build_tab.cpp:1046 -msgid "Copy Entire Build Output To Clipboard" +#: LiteEditor/compiler_pages.cpp:578 +msgid "" +"Set here an additional library search paths. Each path should be separated " +"with a semi-colon\n" +"Note that usually you don't need to modify this field and it should be left " +"empty" msgstr "" -#: LiteEditor/new_build_tab.cpp:1047 -msgid "Open Build Output in an Empty Editor" +#: LiteEditor/compiler_pages.cpp:600 +msgid "Objects extension:" msgstr "" -#: LiteEditor/new_build_tab.cpp:1049 LiteEditor/setters_getters.cpp:88 -#: LiteEditor/tags_options_base_dlg.cpp:506 Plugin/sftp_ui.cpp:431 -#: SnipWiz/templateclassbasedlg.cpp:199 UnitTestCPP/testclassbasedlg.cpp:115 -#: codelite_terminal/wxcrafter.cpp:57 -#: cppchecker/cppchecksettingsdlgbase.cpp:141 -#: cppchecker/cppchecksettingsdlgbase.cpp:285 -#: cppchecker/cppchecksettingsdlgbase.cpp:318 -msgid "Clear" +#: LiteEditor/compiler_pages.cpp:613 +msgid "Depends extension:" msgstr "" -#: LiteEditor/new_configuration_dlg.cpp:64 -msgid "Configuration Name:" +#: LiteEditor/compiler_pages.cpp:626 +msgid "Preprocessed extension:" msgstr "" -#: LiteEditor/new_configuration_dlg.cpp:72 -msgid "Copy Settings from:" +#: LiteEditor/compiler_pages.cpp:641 +msgid "Generate dependencies files (*.o.d)" msgstr "" -#: LiteEditor/new_configuration_dlg.cpp:79 -#: LiteEditor/new_configuration_dlg.cpp:136 -msgid "-- None --" +#: LiteEditor/compiler_pages.cpp:650 +msgid "Object name is same as the file name" msgstr "" -#: LiteEditor/new_configuration_dlg.cpp:128 -msgid "Configuration Name is empty" +#: LiteEditor/compiler_pages.cpp:652 +msgid "" +"By default, codelite will prepend the relative directory to the file name to " +"compose an object name (e.g. src/a.cpp will generate object: src_a.o).\n" +"Uncheck this option to make the object name exactly as the file name without " +"any prefixes" msgstr "" -#: LiteEditor/new_item_base_dlg.cpp:73 LiteEditor/new_item_dlg.cpp:128 -msgid "Location:" +#: LiteEditor/compiler_pages.cpp:660 +msgid "Pass object list to the linker via file" msgstr "" -#: LiteEditor/new_item_dlg.cpp:67 -msgid "File Type" +#: LiteEditor/close_all_dlg.cpp:67 +msgid "Ask me for each file" msgstr "" -#: LiteEditor/new_item_dlg.cpp:184 -msgid "Missing location" +#: LiteEditor/close_all_dlg.cpp:70 menu.xrc:41 +msgid "Save all files" msgstr "" -#: LiteEditor/new_item_dlg.cpp:190 -msgid "A file with that name already exists. Please choose a different name" +#: LiteEditor/close_all_dlg.cpp:73 +msgid "Discard changes for all files" msgstr "" -#: LiteEditor/new_item_dlg.cpp:195 -msgid "Missing file name" +#: LiteEditor/close_all_dlg.cpp:83 +msgid "Some of the files are modified, what action should CodeLite take?" msgstr "" -#: LiteEditor/new_quick_watch_dlg.cpp:98 -#: LiteEditor/new_quick_watch_dlg.cpp:157 -msgid "Loading..." +#: LiteEditor/reconcileprojectbase.cpp:42 +msgid "" +"Select files from the left pane and add them to the project by clicking on " +"the right arrow button" msgstr "" -#: LiteEditor/new_quick_watch_dlg.cpp:331 -msgid "Copy Value to Clipboard" +#: LiteEditor/reconcileprojectbase.cpp:72 +msgid "" +"These files have not yet been assigned a Virtual Directory. You can do this " +"yourself by selecting one or more files and clicking the 'Forward' arrow " +"button. A Virtual Directory selector will then appear. After your choice the " +"selection(s) will be moved to the right-hand pane.\n" +"Alternatively click the 'Wizard' button for best-guess auto-allocation." msgstr "" -#: LiteEditor/new_virtual_folder.cpp:71 -msgid "Create the folder on the file system as well" +#: LiteEditor/reconcileprojectbase.cpp:76 +msgid "Unassigned files:" msgstr "" -#: LiteEditor/newquickwatch.cpp:140 -msgid "Enter new expression:" +#: LiteEditor/reconcileprojectbase.cpp:88 +msgid "Add selected files" msgstr "" -#: LiteEditor/newversionbasedlg.cpp:48 -msgid "Show me whats new !" +#: LiteEditor/reconcileprojectbase.cpp:93 +msgid "Remove selected files" msgstr "" -#: LiteEditor/newworkspacebasedlg.cpp:40 -msgid "Workspace Name:" +#: LiteEditor/reconcileprojectbase.cpp:98 +msgid "" +"Wherever possible, automatically allocate files to the appropriate virtual " +"directory" msgstr "" -#: LiteEditor/newworkspacebasedlg.cpp:52 -msgid "Workspace Path:" +#: LiteEditor/reconcileprojectbase.cpp:115 +msgid "" +"Each file here has been assigned a Virtual Directory. If you're happy with " +"the choice, select the file and click 'Apply'. Otherwise select the file and " +"use the 'back' button to return it to the Unassigned Files section." msgstr "" -#: LiteEditor/newworkspacebasedlg.cpp:72 -msgid "Create the workspace under a separate directory" +#: LiteEditor/reconcileprojectbase.cpp:123 +msgid "Assigned files:" msgstr "" -#: LiteEditor/newworkspacebasedlg.cpp:77 -msgid "File Name:" +#: LiteEditor/reconcileprojectbase.cpp:124 +msgid "Virtual Folder" msgstr "" -#: LiteEditor/newworkspacedlg.cpp:75 -msgid "Choose a folder:" +#: LiteEditor/reconcileprojectbase.cpp:129 +#: codelitephp/php-plugin/php_ui.cpp:891 +msgid "&Apply" msgstr "" -#: LiteEditor/newworkspacedlg.cpp:81 -msgid "" -"'\n" -"Contains some invalid characters\n" -"Continue anyways?" +#: LiteEditor/reconcileprojectbase.cpp:133 +msgid "A&pply All" msgstr "" -#: LiteEditor/newworkspacedlg.cpp:107 -msgid "Invalid path: " +#: LiteEditor/reconcileprojectbase.cpp:138 +#: LiteEditor/reconcileprojectbase.cpp:145 +msgid "Stale Files" msgstr "" -#: LiteEditor/openwindowspanelbase.cpp:34 +#: LiteEditor/reconcileprojectbase.cpp:145 msgid "" -"If checked, sort alphabetically. Otherwise display in the same order as the " -"editors." -msgstr "" - -#: LiteEditor/options_dlg2.cpp:111 -msgid "Editor" +"The list below contains files that exist in the project but not on the file " +"system" msgstr "" -#: LiteEditor/options_dlg2.cpp:112 -msgid "Guides" +#: LiteEditor/reconcileprojectbase.cpp:156 +msgid "" +"The files listed below are contained in the project, but no longer exist in " +"reality. You can select individual items and delete them from the project, " +"or use the Delete All button." msgstr "" -#: LiteEditor/options_dlg2.cpp:115 -msgid "Right Margin Indicator" +#: LiteEditor/reconcileprojectbase.cpp:164 +msgid "File path" msgstr "" -#: LiteEditor/options_dlg2.cpp:116 -msgid "Caret & Scrolling" +#: LiteEditor/reconcileprojectbase.cpp:181 +#: LiteEditor/edit_workspace_conf_dlg.cpp:69 menu.xrc:49 +msgid "&Close" msgstr "" -#: LiteEditor/options_dlg2.cpp:117 -msgid "Save Options" +#: LiteEditor/reconcileprojectbase.cpp:260 +msgid "Look for files starting with this directory:" msgstr "" -#: LiteEditor/options_dlg2.cpp:120 -msgid "Code" +#: LiteEditor/reconcileprojectbase.cpp:272 +msgid "Extensions to consider when looking for missing files:" msgstr "" -#: LiteEditor/options_dlg2.cpp:121 -msgid "Doxygen" +#: LiteEditor/reconcileprojectbase.cpp:277 +msgid "" +"A semi-colon separated list of extensions e.g. cpp;h;xrc\n" +"If you really want to find all possible files, just add *" msgstr "" -#: LiteEditor/options_dlg2.cpp:123 -msgid "Folding" +#: LiteEditor/reconcileprojectbase.cpp:292 +msgid "Files to ignore:" msgstr "" -#: LiteEditor/options_dlg2.cpp:124 -msgid "Bookmarks" +#: LiteEditor/reconcileprojectbase.cpp:300 +msgid "" +"Here you can add the names of any files that you want to ignore. Standard " +"wildcards will work e.g. moc_*" msgstr "" -#: LiteEditor/options_dlg2.cpp:125 -msgid "Windows & Tabs" +#: LiteEditor/reconcileprojectbase.cpp:324 +msgid "Paths to ignore:" msgstr "" -#: LiteEditor/options_dlg2.cpp:128 -msgid "Terminal" +#: LiteEditor/reconcileprojectbase.cpp:332 +msgid "" +"The filepaths of any folders that shouldn't be searched for missing files" msgstr "" -#: LiteEditor/output_pane.cpp:54 LiteEditor/tags_options_base_dlg.cpp:427 -msgid "Clang" +#: LiteEditor/reconcileprojectbase.cpp:356 +msgid "Regexs to use (optional):" msgstr "" -#: LiteEditor/outputtabwindow.cpp:196 -msgid "Keep open" +#: LiteEditor/reconcileprojectbase.cpp:363 +msgid "" +"Most of the time you should find that files automatically get added to the " +"most appropriate virtual directory. If yours don't, here you can add one or " +"more regular expressions suitable for your situation. They'll be remembered " +"for this project." msgstr "" -#: LiteEditor/outputtabwindow.cpp:198 LiteEditor/wxcrafter.cpp:93 -msgid "Don't close this pane when an editor gets focus" +#: LiteEditor/reconcileprojectbase.cpp:449 +msgid "Enter the regex:" msgstr "" -#: LiteEditor/outputtabwindow.cpp:202 LiteEditor/outputtabwindow.cpp:204 -msgid "Scroll on Output" +#: LiteEditor/reconcileprojectbase.cpp:464 +msgid "Destination Virtual Directory:" msgstr "" -#: LiteEditor/outputtabwindow.cpp:209 LiteEditor/outputtabwindow.cpp:211 -msgid "Word Wrap" +#: LiteEditor/reconcileprojectbase.cpp:471 +msgid "Select the virtual folder in which to place the matching files" msgstr "" -#: LiteEditor/outputtabwindow.cpp:215 LiteEditor/tabgroupbasedlgs.cpp:139 -msgid "Clear All" +#: LiteEditor/reconcileprojectbase.cpp:479 +msgid "Browse for virtual folder" msgstr "" -#: LiteEditor/outputtabwindow.cpp:218 LiteEditor/outputtabwindow.cpp:220 -msgid "Fold All Results" +#: LiteEditor/acceltabledlg.cpp:184 +#, c-format +msgid "'%s' is already assigned to: '%s'" msgstr "" -#: LiteEditor/outputtabwindow.cpp:223 -msgid "Repeat" +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:35 +msgid "Docking" msgstr "" -#: LiteEditor/plugindlgbase.cpp:44 -msgid "Available Plugins:" +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:45 +msgid "Transparent hint" msgstr "" -#: LiteEditor/plugindlgbase.cpp:76 Plugin/clBoostrapWizardBase.cpp:86 -msgid "Uncheck All" +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:46 +msgid "Rectangle hint" msgstr "" -#: LiteEditor/pluginmanager.cpp:273 -msgid " ToolBar" +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:47 +msgid "Venetian blinds hints" msgstr "" -#: LiteEditor/pluginmgrdlg.cpp:151 -msgid "Plugin Name:" +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:48 +msgid "Docking Style:" msgstr "" -#: LiteEditor/pluginmgrdlg.cpp:152 Subversion2/subversion2_ui.cpp:578 -msgid "Author:" +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:54 +msgid "Glossy" msgstr "" -#: LiteEditor/pluginmgrdlg.cpp:155 -msgid "Status:" +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:55 +msgid "Curved" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:114 -msgid "Project enabled" +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:56 +msgid "Tab Control Style:" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:116 -msgid "" -"When unchecked, this project will not be built for the current build " -"configuration" +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:65 +msgid "Hide Docking Windows captions" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:128 -msgid "General Project Settings" +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:70 +msgid "Ensure captions are visible on mouse hover" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:133 -msgid "Dynamic Library" +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:72 +msgid "" +"When the option 'Hide Docking Windows captions' is enabled, ensure captions " +"are visible on mouse hover. This is useful so the user can still move around " +"the docking windows" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:134 -msgid "Static Library" +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:77 +msgid "Find / Find In Files" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:135 -msgid "Executable" +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:82 +msgid "Place the Find bar at the bottom" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:136 -msgid "Project Type" +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:87 +msgid "Also show the 'Replace' section of the Find bar" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:137 -msgid "Sets the type of the project" +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:89 +msgid "" +"When ticked, extra 'replace' fields will be added. You can also Show/Hide " +"these using a keyboard shortcut." msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:141 -#: LiteEditor/project_settings_base_dlg.cpp:899 -#: LiteEditor/project_settings_dlg.cpp:132 -msgid "Compiler" +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:93 +msgid "Don't automatically fold Search results" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:142 +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:95 msgid "" -"Select the compiler to use. The compiler controls two aspects of the " -"project:\n" -"- If the project is _not_ a custom build, then this compiler is used for " -"compilation\n" -"- CodeLite uses the compiler definition for parsing the output" +"By default, all but the first results of 'Search' are automatically folded; " +"you have to click on each subsequent file to see its contained matches. Tick " +"this box to prevent this.\n" +"You can still fold and unfold results with the button in the output pane " +"toolbar." msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:144 -msgid "Intermediate Folder" +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:100 +msgid "Debug / Output panes" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:145 +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:109 msgid "" -"The name of the folder used for the generated objects during compilation" +"When user clicks inside an editor, hide the output pane -- unless it's one " +"of:" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:147 -msgid "Output File" +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:111 +msgid "" +"When e.g. you compile your project, or use 'Find in Files', the Output Pane " +"opens to show the results. If this box is ticked, it will automatically " +"close as soon as you click in the editor." msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:148 -msgid "The name of the output file (e.g. the executable file name)" +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:123 +msgid "" +"Don't automatically close the Output Pane on an editor click if this tab is " +"showing e.g. you may not want it to close while you correct one of many " +"build errors." msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:150 -#: codelitephp/php-plugin/php_ui.cpp:664 -msgid "Pause when execution ends" +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:129 +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:135 +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:141 +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:147 +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:153 +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:159 +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:165 +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:171 +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:177 +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:183 +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:189 +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:201 +msgid "" +"Don't automatically close the Output Pane on an editor click if this tab is " +"showing." msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:151 +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:195 msgid "" -"After the execution of the program ends, show a console with the message " -"\"Hit any key to continue...\"\n" -"This is useful when you wish to view the output printed to stdout before the " -"console terminates" +"Don't automatically close the Debugger Pane on an editor click if this tab " +"is showing. You probably don't want it to close whenever you set a " +"breakpoint, for example." msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:153 -msgid "Execution" +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:205 +msgid "Show 'Debug' tab on starting the debugger" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:156 -msgid "This program is a GUI application" +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:207 +msgid "" +"When starting the debugger, if the Debug tab is not visible, checking this " +"will make it visible" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:157 +#: LiteEditor/editorsettingscommentsbase.cpp:33 msgid "" -"By marking the project as a GUI project, CodeLite will launch the program " -"without any console terminal wrapping the process execution" +"When adding new files to a project, place the files in the 'include' / 'src' " +"folders respectively" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:159 -msgid "Executable to Run / Debug" +#: LiteEditor/editorsettingscommentsbase.cpp:42 +msgid "Comments:" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:160 -msgid "The executable to run / debug" +#: LiteEditor/editorsettingscommentsbase.cpp:55 +msgid "" +"Hitting in a C style comment automatically adds a '*' to the next " +"line" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:163 -msgid "Working Directory" +#: LiteEditor/editorsettingscommentsbase.cpp:60 +msgid "" +"Hitting in a C++ style comment section automatically adds a'//' to " +"the next line" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:164 -msgid "The working directory to set before executing or debugging the program" +#: LiteEditor/editorsettingscommentsbase.cpp:69 +msgid "Code Navigation Accelerators:" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:167 -msgid "Program Arguments" +#: LiteEditor/editorsettingscommentsbase.cpp:82 +msgid "Code navigation key:" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:168 +#: LiteEditor/editorsettingscommentsbase.cpp:83 msgid "" -"The command line arguments to pass to the program when executing or " -"debugging it" +"When using quick code navigation use this keys in combination with mouse " +"click\n" +"To quickly go to implementation / declaration" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:170 -msgid "Debugging" +#: LiteEditor/editorsettingscommentsbase.cpp:87 +msgid "Mouse Left Click +" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:175 -#: LiteEditor/project_settings_dlg.cpp:135 -msgid "Debugger" +#: LiteEditor/editorsettingscommentsbase.cpp:91 +msgid "Ctrl" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:176 -msgid "Select the debugger type to use for this project" +#: LiteEditor/newworkspacedlg.cpp:75 +msgid "Choose a folder:" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:178 -msgid "Use separate debugger args" +#: LiteEditor/newworkspacedlg.cpp:81 +msgid "" +"'\n" +"Contains some invalid characters\n" +"Continue anyways?" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:179 -msgid "" -"When enabled (.e.g. set to True) codelite will pass the arguments set in " -"'Debug Program Arguments'" +#: LiteEditor/newworkspacedlg.cpp:107 +msgid "Invalid path: " msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:181 -msgid "Debug Program Arguments" +#: LiteEditor/simpletable.cpp:95 +#: LiteEditor/debugger_predefined_types_page.cpp:37 +msgid "Expression" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:182 -msgid "Arguments to pass to the debugger" +#: LiteEditor/simpletable.cpp:98 LiteEditor/debuggerpane.cpp:47 menu.xrc:601 +msgid "Watches" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:219 -msgid "Compiler is not required for this project" +#: LiteEditor/simpletable.cpp:129 LLDBDebugger/LLDBLocalsView.cpp:186 +msgid "Expression to watch:" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:232 -#: LiteEditor/project_settings_base_dlg.cpp:334 -#: LiteEditor/project_settings_base_dlg.cpp:921 -msgid "Options" +#: LiteEditor/simpletable.cpp:129 +msgid "New watch" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:237 -msgid "Append to global settings" +#: LiteEditor/simpletable.cpp:255 +msgid "Update expression:" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:238 -msgid "Overwrite global settings" +#: LiteEditor/simpletable.cpp:255 +msgid "Update Watch" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:239 -msgid "Prepend to global settings" +#: LiteEditor/depend_dlg_page.cpp:42 +#, c-format +msgid "" +"Build order for configuration '%s' has been modified, would you like to save " +"it?" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:240 -msgid "Use with Global Settings" +#: LiteEditor/filechecklistbase.cpp:46 +msgid "C&lear All" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:241 +#: LiteEditor/filechecklistbase.cpp:103 msgid "" -"Define how CodeLite will merge the compiler settings defined in the 'Global " -"Settings' with the settings defined on this page" +"Some files were modified outside of the editor.\n" +"What would you like to do?" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:243 -#: LiteEditor/project_settings_base_dlg.cpp:902 -msgid "C++ Compiler Options" +#: LiteEditor/filechecklistbase.cpp:110 +msgid "Reload." msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:244 -msgid "" -"Additional compiler options to pass to the compiler provided as a semi-colon " -"delimited list" +#: LiteEditor/filechecklistbase.cpp:110 +msgid "Reload all the externally modified files" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:247 -#: LiteEditor/project_settings_base_dlg.cpp:906 -msgid "C Compiler Options" +#: LiteEditor/filechecklistbase.cpp:114 +msgid "Choose." msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:248 -msgid "" -"Additional C compiler options to pass to the compiler provided as a semi-" -"colon delimited list (used for C files only)" +#: LiteEditor/filechecklistbase.cpp:114 +msgid "Let me choose which file or files to reload" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:251 -msgid "Assembler Options" +#: LiteEditor/filechecklistbase.cpp:119 +msgid "Ignore." msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:252 -msgid "" -"Additional assembler options to pass to the assembler provided as a semi-" -"colon delimited list\n" -"(used for .s files only)" +#: LiteEditor/filechecklistbase.cpp:119 +msgid "Don't reload any the externally modified files" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:254 -msgid "Include Paths" +#: LiteEditor/addincludefiledlgbase.h:70 +msgid "Add a missing header file" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:255 -msgid "" -"Include path to pass to the compiler (provided as semi-colon delimited list)" +#: LiteEditor/manageperspectivesbasedlg.cpp:56 +#: LiteEditor/rename_symbool_dlg.cpp:150 LiteEditor/edit_configuration.cpp:85 +#: LiteEditor/edit_workspace_conf_dlg.cpp:63 +msgid "&Rename" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:259 -msgid "" -"macros (\"defines\") to pass to the compiler (provided as semi-colon " -"delimited list)" +#: LiteEditor/manageperspectivesbasedlg.cpp:108 +msgid "Save the current layout as:" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:262 -msgid "Pre Compiled Header" +#: LiteEditor/cl_editor.cpp:1209 +msgid "Failed to save file" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:265 -#: SnipWiz/templateclassbasedlg.cpp:213 -msgid "Header File" +#: LiteEditor/cl_editor.cpp:1264 +msgid "has the read-only attribute set" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:266 -msgid "Pre compiled header" +#: LiteEditor/cl_editor.cpp:1265 +msgid "Would you like CodeLite to try and remove it?" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:269 -msgid "Explicitly Include PCH" +#: LiteEditor/cl_editor.cpp:1271 LiteEditor/cl_editor.cpp:1318 +#: LiteEditor/cl_editor.cpp:1329 +msgid "Failed to open file" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:270 -msgid "" -"Explicitly include the PCH file in the command line using a compiler switch " -"(.e.g -include /path/to/pch)" +#: LiteEditor/cl_editor.cpp:1273 LiteEditor/cl_editor.cpp:1320 +#: LiteEditor/cl_editor.cpp:1329 +msgid "for write" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:272 -msgid "PCH Compile Flags" +#: LiteEditor/cl_editor.cpp:1321 +msgid "Override it?" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:273 -msgid "Use separate compilation flags for the PCH file" +#: LiteEditor/cl_editor.cpp:1342 +msgid "Save file failed!" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:278 -msgid "Append" +#: LiteEditor/cl_editor.cpp:1343 +msgid "Could not convert the file to the requested encoding" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:281 -msgid "PCH Compile Flags Policy" +#: LiteEditor/cl_editor.cpp:1353 +msgid "" +"File text conversion failed!\n" +"Check your file font encoding from\n" +"Settings | Global Editor Prefernces | Misc | Locale" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:282 -msgid "" -"Set the PCH flags policy to:\n" -"* Append - this means that the flags set in the 'PCH Compile Flags' field " -"will be appended to default flags\n" -"* Replace - the 'PCH Compile Flags' will replace any other flags" +#: LiteEditor/cl_editor.cpp:1371 +msgid "Failed to override read-only file" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:321 -msgid "Linker is not required for this project" +#: LiteEditor/cl_editor.cpp:1969 LiteEditor/cl_editor.cpp:2005 +msgid "Can not find the string '" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:339 -#: LiteEditor/project_settings_base_dlg.cpp:593 -msgid "Use with global settings" +#: LiteEditor/cl_editor.cpp:2713 +msgid "Loading file..." msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:340 -#: LiteEditor/project_settings_base_dlg.cpp:594 -msgid "" -"Define how CodeLite will merge the linker settings defined in the 'Global " -"Settings' with the settings defined on this page" +#: LiteEditor/cl_editor.cpp:3095 +msgid "Remove Bookmark" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:343 -msgid "Add additional linker options separated by semi-colon" +#: LiteEditor/cl_editor.cpp:3096 LiteEditor/frame.cpp:5738 +msgid "Remove All Bookmarks" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:346 -msgid "Libraries Search Path" +#: LiteEditor/cl_editor.cpp:3101 +msgid "Add Breakpoint" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:347 -msgid "Add additional library search paths separated by semi-colon" +#: LiteEditor/cl_editor.cpp:3102 +msgid "Add a Temporary Breakpoint" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:350 -#: LiteEditor/project_settings_base_dlg.cpp:929 WebTools/WebToolsBase.cpp:56 -msgid "Libraries" +#: LiteEditor/cl_editor.cpp:3103 +msgid "Add a Disabled Breakpoint" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:351 -#: LiteEditor/project_settings_base_dlg.cpp:930 -msgid "Enter any extra library names, separated by';' e.g. Foo or Foo;Bar" +#: LiteEditor/cl_editor.cpp:3104 +msgid "Add a Conditional Breakpoint.." msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:400 -msgid "Select debugger path. Leave empty to use the default:" +#: LiteEditor/cl_editor.cpp:3119 +msgid "Remove Breakpoint" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:425 -msgid "Debugger Search Paths" +#: LiteEditor/cl_editor.cpp:3120 +msgid "Ignore Breakpoint" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:439 -msgid "&Add.." +#: LiteEditor/cl_editor.cpp:3125 +msgid "Disable Breakpoint" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:443 -msgid "&Delete..." +#: LiteEditor/cl_editor.cpp:3125 +msgid "Enable Breakpoint" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:448 -msgid "Startup Commands" +#: LiteEditor/cl_editor.cpp:3126 +msgid "Edit Breakpoint" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:453 -msgid "" -"Enter here any commands that should be passed to the debugger on startup:" +#: LiteEditor/cl_editor.cpp:3132 +msgid "Run to here" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:464 -msgid "Remote Attach Commands" +#: LiteEditor/cl_editor.cpp:3157 +msgid "Enter the condition statement" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:469 -msgid "" -"Enter here any commands that should be passed to the debugger after " -"attaching the remote target:" +#: LiteEditor/cl_editor.cpp:3157 +msgid "Create Conditional Breakpoint" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:479 -msgid "Debugging a remote target" +#: LiteEditor/cl_editor.cpp:3191 +msgid "Failed to insert breakpoint" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:491 -msgid "Host / tty:" +#: LiteEditor/cl_editor.cpp:3196 LiteEditor/breakpointsmgr.cpp:121 +msgid "Breakpoint successfully added" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:513 -msgid "Extended Protocol" +#: LiteEditor/cl_editor.cpp:3198 +msgid "Temporary " msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:515 -msgid "" -"Enable extended mode. In extended mode, the remote server is made " -"persistent.\n" -"i.e. it does not go down after the debug session ends" +#: LiteEditor/cl_editor.cpp:3200 +msgid "Disabled " msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:588 -#: LiteEditor/project_settings_base_dlg.cpp:933 -#: LiteEditor/project_settings_dlg.cpp:136 -msgid "Resources" +#: LiteEditor/cl_editor.cpp:3202 +msgid "Conditional " msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:596 -#: LiteEditor/project_settings_base_dlg.cpp:936 -msgid "Resource Compiler Options" +#: LiteEditor/cl_editor.cpp:3228 +msgid "No breakpoint found on this line" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:597 -#: LiteEditor/project_settings_base_dlg.cpp:937 -msgid "Resource compiler options provided as semi-colon list" +#: LiteEditor/cl_editor.cpp:3231 +msgid "Breakpoint deletion failed" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:600 -#: LiteEditor/project_settings_base_dlg.cpp:940 -msgid "Additional Search Path" +#: LiteEditor/cl_editor.cpp:3234 +msgid "Breakpoint not deleted" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:601 -#: LiteEditor/project_settings_base_dlg.cpp:941 -msgid "Resource compiler search path, as semi colon list" +#: LiteEditor/cl_editor.cpp:3387 +msgid "More Watches" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:653 -msgid "Environment variable set to use:" +#: LiteEditor/cl_editor.cpp:3398 +msgid "Run to cursor" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:662 -msgid "Debugger 'PreDefined Types' set to use:" +#: LiteEditor/cl_editor.cpp:3404 +msgid "Jump to cursor" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:675 -msgid "Additional environment variables:" +#: LiteEditor/cl_editor.cpp:4327 +msgid "Watch" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:782 -msgid "Enable custom build" +#: LiteEditor/cl_editor.cpp:4327 +msgid "as" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:791 -msgid "Working Directory:" +#: LiteEditor/cl_editor.cpp:4983 LiteEditor/cl_editor.cpp:5014 +msgid "Found and selected " msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:814 -msgid "Target" +#: LiteEditor/cl_editor.cpp:4983 LiteEditor/cl_editor.cpp:5014 +msgid " matches" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:815 -msgid "Command" +#: LiteEditor/edit_workspace_conf_dlg.h:65 +msgid "Edit Workspace Configuration" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:903 +#: LiteEditor/AccelTableBaseDlg.cpp:34 msgid "" -"Additional compiler options to pass to the compiler provided as a semi-colon " -"delimited list These settings are used by _all_ build configurations (e.g. " -"Release and Debug)" +"Search for a keyboard shortcut either by its keyboard shortcut or by its " +"description" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:907 -msgid "" -"Additional C compiler options to pass to the compiler provided as a semi-" -"colon delimited list These settings are used by _all_ build configurations " -"(e.g. Release and Debug)" +#: LiteEditor/AccelTableBaseDlg.cpp:53 +msgid "Menu" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:910 -msgid "Additional Include Paths" +#: LiteEditor/AccelTableBaseDlg.cpp:54 +msgid "Keyboard Shortcut" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:911 -msgid "" -"Compiler search paths for header files. These settings are used by _all_ " -"build configurations (e.g. Release and Debug)" +#: LiteEditor/AccelTableBaseDlg.cpp:59 +msgid "&Edit..." msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:915 -msgid "" -"Additional preprocessors definitions provided as a semi-colon delimited list " -"These settings are used by _all_ build configurations (e.g. Release and " -"Debug)" +#: LiteEditor/AccelTableBaseDlg.cpp:63 +msgid "&Defaults" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:922 -msgid "" -"Additional linker options provided as a semi-colon delimited list These " -"settings are used by _all_ build configurations (e.g. Release and Debug)" +#: LiteEditor/BuildTabTopPanel.cpp:85 +msgid "Saved build log to file:\n" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:925 -msgid "Library Path" +#: LiteEditor/tasks_find_what_dlg.cpp:49 LiteEditor/breakpointslistctrl.h:43 +#: WordCompletion/UI.cpp:38 +msgid "Enabled" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:926 -msgid "" -"Additional library search path provided as a semi-colon delimited list These " -"settings are used by _all_ build configurations (e.g. Release and Debug)" +#: LiteEditor/tasks_find_what_dlg.cpp:50 +msgid "Task" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:990 -msgid "Dependencies:" +#: LiteEditor/tasks_find_what_dlg.cpp:76 +#, c-format +msgid "'%s' is not a valid regular expression" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:1010 -msgid "Rule action:" +#: LiteEditor/tasks_find_what_dlg.cpp:91 +msgid "Are you sure you want to delete this entry?" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:1031 -msgid "" -"Define here a custom makefile rule to be executed in the pre-build steps.\n" -"See the wiki for more help" +#: LiteEditor/tasks_find_what_dlg.cpp:110 +msgid "Edit Task" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:1089 -#: LiteEditor/tags_options_base_dlg.cpp:460 -#: LiteEditor/workspacesettingsbase.cpp:131 -msgid "Search paths:" +#: LiteEditor/depends_dlg.h:57 +msgid "Build Order" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:1112 -msgid "Macros (clang only):" +#: LiteEditor/options_base_dlg2.h:46 +msgid "Editor Settings" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:1133 -#: LiteEditor/workspacesettingsbase.cpp:159 -msgid "Enable C++11 Standard" +#: LiteEditor/mainbook.cpp:244 +msgid "Save changes to '" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:1135 -msgid "" -"If checked, pass -std=c++11 to the clang code completion engine to ensure " -"that all c++11 features are recognized properly" +#: LiteEditor/mainbook.cpp:474 +msgid "Untitled" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:1139 -#: LiteEditor/workspacesettingsbase.cpp:164 -msgid "Enable C++14 Standard" +#: LiteEditor/mainbook.cpp:828 +msgid "Reload Modified Files" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:1141 +#: LiteEditor/mainbook.cpp:829 msgid "" -"If checked, pass -std=c++14 to the clang code completion engine to ensure " -"that all c++14 features are recognized properly" +"Files have been modified outside the editor.\n" +"Choose which files you would like to reload." msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:1190 -msgid "Target Name:" +#: LiteEditor/mainbook.cpp:1086 +msgid "Please save your changes before marking the file as read only" msgstr "" -#: LiteEditor/project_settings_base_dlg.cpp:1201 -#: wxformbuilder/formbuildsettingsbasedlg.cpp:63 -msgid "Command:" +#: LiteEditor/debuggerpane.cpp:48 menu.xrc:613 +#: codelitephp/php-plugin/php_ui.cpp:1171 +msgid "Call Stack" msgstr "" -#: LiteEditor/project_settings_dlg.cpp:129 -msgid "Common Settings" +#: LiteEditor/debuggerpane.cpp:49 LiteEditor/debuggerpane.cpp:104 +#: LLDBDebugger/UI.cpp:134 menu.xrc:621 codelitephp/php-plugin/php_ui.cpp:1194 +#: codelitephp/php-plugin/php.cpp:651 +msgid "Breakpoints" +msgstr "" + +#: LiteEditor/debuggerpane.cpp:50 menu.xrc:609 +msgid "Threads" +msgstr "" + +#: LiteEditor/debuggerpane.cpp:51 LiteEditor/breakpointslistctrl.h:48 +#: menu.xrc:617 +msgid "Memory" msgstr "" -#: LiteEditor/project_settings_dlg.cpp:134 -#: LiteEditor/workspacesettingsbase.cpp:34 -msgid "Environment" +#: LiteEditor/debuggerpane.cpp:52 +msgid "Ascii Viewer" msgstr "" -#: LiteEditor/project_settings_dlg.cpp:138 -msgid "Pre / Post Build Commands" +#: LiteEditor/debuggerpane.cpp:54 +msgid "Disassemble" msgstr "" -#: LiteEditor/project_settings_dlg.cpp:140 -msgid "Pre Build" +#: LiteEditor/editorsettingslocal.cpp:84 +msgid "Indentation only" msgstr "" -#: LiteEditor/project_settings_dlg.cpp:142 -msgid "Post Build" +#: LiteEditor/rename_symbool_dlg.cpp:58 +msgid "New Symbol Name:" msgstr "" -#: LiteEditor/project_settings_dlg.cpp:144 -#: LiteEditor/syntaxhighlightbasedlg.cpp:80 -msgid "Customize" +#: LiteEditor/rename_symbool_dlg.cpp:83 +msgid "Location" msgstr "" -#: LiteEditor/project_settings_dlg.cpp:146 -msgid "Custom Build" +#: LiteEditor/rename_symbool_dlg.cpp:84 +msgid "Position" msgstr "" -#: LiteEditor/project_settings_dlg.cpp:148 -#: LiteEditor/project_settings_dlg.cpp:149 -msgid "Custom Makefile Rules" +#: LiteEditor/rename_symbool_dlg.cpp:89 LiteEditor/rename_symbool_dlg.cpp:215 +msgid "&Check All" msgstr "" -#: LiteEditor/project_settings_dlg.cpp:152 -#: codelitephp/php-plugin/php_ui.cpp:427 codelitephp/php-plugin/php_ui.cpp:782 -#: codelitephp/php-plugin/php_ui.cpp:1769 -msgid "Code Completion" +#: LiteEditor/rename_symbool_dlg.cpp:196 +msgid "Select Projects" msgstr "" -#: LiteEditor/project_settings_dlg.cpp:154 -#: LiteEditor/project_settings_dlg.cpp:155 -#: LiteEditor/syntaxhighlightbasedlg.cpp:102 -msgid "Global Settings" +#: LiteEditor/rename_symbool_dlg.cpp:196 +msgid "Select the 'rename symbol' project scope" msgstr "" -#: LiteEditor/project_settings_dlg.cpp:288 -#: LiteEditor/project_settings_dlg.cpp:315 -msgid "Save changes before loading new configuration?" +#: LiteEditor/editcmpfileinfobase.cpp:50 +msgid "File type:" msgstr "" -#: LiteEditor/project_settings_dlg.cpp:289 -#: LiteEditor/project_settings_dlg.cpp:316 -msgid "Save Changes" +#: LiteEditor/editcmpfileinfobase.cpp:57 +msgid "Handle file has:" msgstr "" -#: LiteEditor/project_settings_dlg.cpp:390 -msgid "This project is disabled" +#: LiteEditor/editcmpfileinfobase.cpp:67 +msgid "Compilation line:" msgstr "" -#: LiteEditor/project_settings_dlg.cpp:400 -msgid "" -"Settings on this page are disabled because this project is setup as \"Custom " -"Build\" project" +#: LiteEditor/editcmpfileinfobase.cpp:85 +msgid "Help..." msgstr "" -#: LiteEditor/ps_build_events_page.cpp:54 -msgid "Set the commands to run in the pre build stage" +#: LiteEditor/syntaxhighlightbasedlg.h:197 +#: LiteEditor/buildsettingstabbase.cpp:37 +msgid "Colours and Fonts" msgstr "" -#: LiteEditor/ps_build_events_page.cpp:58 -msgid "Set the commands to run in the post build stage" +#: LiteEditor/syntaxhighlightbasedlg.h:226 +msgid "New Theme" msgstr "" -#: LiteEditor/ps_build_events_page.cpp:60 -msgid "" -"\n" -"Commands starting with the hash sign ('#'), will not be executed" +#: LiteEditor/importfilesdialog_new.cpp:31 +msgid "Select the directories to import from" msgstr "" -#: LiteEditor/ps_compiler_page.cpp:115 -msgid "Compiler options" +#: LiteEditor/importfilesdialog_new.cpp:38 +msgid "Select the base folder for importing" msgstr "" -#: LiteEditor/ps_custom_build_page.cpp:89 -#, c-format -msgid "Target '%s' already exist!" +#: LiteEditor/importfilesdialog_new.cpp:44 +msgid "" +"Check the folders you wish to import\n" +"files from" msgstr "" -#: LiteEditor/ps_general_page.cpp:181 -msgid "Choose a directory" +#: LiteEditor/importfilesdialog_new.cpp:53 +msgid "Folder" msgstr "" -#: LiteEditor/ps_linker_page.cpp:90 -msgid "Linker options" +#: LiteEditor/importfilesdialog_new.cpp:54 +msgid "Files extension to import (semicolon delimited):" msgstr "" -#: LiteEditor/quickdebugbase.cpp:40 -msgid "Select executable:" +#: LiteEditor/importfilesdialog_new.cpp:65 +msgid "Import files without extensions" msgstr "" -#: LiteEditor/quickdebugbase.cpp:46 -msgid "" -"Enter the filepath to the program that you want to debug.\n" -"Alternatively, if you enter the path below, putting just the filename here " -"will suffice." +#: LiteEditor/importfilesdialog_new.cpp:67 +msgid "If you wish to import files without extensions, tick this option" msgstr "" -#: LiteEditor/quickdebugbase.cpp:64 -msgid "" -"Optionally, enter the path where the program that you want to debug can be " -"found" +#: LiteEditor/attachdbgprocdlg.cpp:55 +msgid "PID" msgstr "" -#: LiteEditor/quickdebugbase.cpp:75 -msgid "Program arguments:" +#: LiteEditor/messagepane_base.cpp:61 +msgid "Message:" msgstr "" -#: LiteEditor/quickdebugbase.cpp:103 -msgid "Startup commands:" +#: LiteEditor/messagepane_base.cpp:73 +msgid "Remember my answer and don't annoy me again!" msgstr "" -#: LiteEditor/quickfindbar.cpp:99 -msgid "Case sensitive match" +#: LiteEditor/messagepane_base.cpp:77 +msgid "" +"If you don't want to be spammed by this message again, tick the box. You can " +"change your mind in Settings > Global Editor Preferences > Dialogs" msgstr "" -#: LiteEditor/quickfindbar.cpp:105 LiteEditor/quickfindbarbase.cpp:72 -msgid "Match a whole word" +#: LiteEditor/messagepane_base.cpp:85 +msgid "Hide" msgstr "" -#: LiteEditor/quickfindbar.cpp:111 -msgid "Regular expression" +#: LiteEditor/findreplacedlg.cpp:52 +msgid "'Find What' is empty" msgstr "" -#: LiteEditor/quickfindbar.cpp:112 -msgid "Wildcard syntax" +#: LiteEditor/close_all_dlg.h:67 menu.xrc:53 menu.xrc:710 menu.xrc:730 +msgid "Close All" msgstr "" -#: LiteEditor/quickfindbar.cpp:118 LiteEditor/quickfindbarbase.cpp:68 -msgid "Use regular expression" +#: LiteEditor/tagsparsersearchpathsbasedlg.cpp:47 +msgid "" +"The following include paths were detected on your system and will be added " +"to your parser search path.\n" +"You may remove a path by unchecking it.\n" +"\n" +"You can always add/remove paths to the parser from the main menu:\n" +"Settings > Tags Settings > Parser" msgstr "" -#: LiteEditor/quickfindbar.cpp:130 -msgid "Highlight Occurences" +#: LiteEditor/env_var_dlg_base.h:86 +msgid "Environment Variables" msgstr "" -#: LiteEditor/quickfindbar.cpp:139 -msgid "Hit ENTER to search, or Shift + ENTER to search backward" +#: LiteEditor/FileExplorerTab.cpp:252 +msgid "' is a directory. Are you sure you want to remove it and its content?" msgstr "" -#: LiteEditor/quickfindbar.cpp:141 -msgid "Type to start a search..." +#: LiteEditor/FileExplorerTab.cpp:253 LiteEditor/FileExplorerTab.cpp:255 +msgid "Remove Directory" msgstr "" -#: LiteEditor/quickfindbar.cpp:149 -msgid "Find Next" +#: LiteEditor/FileExplorerTab.cpp:255 +msgid "Failed to remove directory" msgstr "" -#: LiteEditor/quickfindbar.cpp:152 -msgid "Find Prev" +#: LiteEditor/FileExplorerTab.cpp:362 +#, c-format +msgid "" +"Could not find default application for file '%s'\n" +"Would you like CodeLite to open it?" msgstr "" -#: LiteEditor/quickfindbar.cpp:156 -msgid "Find Previous" +#: LiteEditor/findreplacedlg.h:187 LiteEditor/findreplacedlg.h:196 +msgid "Find / Replace" msgstr "" -#: LiteEditor/quickfindbar.cpp:159 -msgid "Find All" +#: LiteEditor/advanced_settings.cpp:83 +msgid "Build Output Appearance" msgstr "" -#: LiteEditor/quickfindbar.cpp:162 -msgid "Find and select all occurrences" +#: LiteEditor/advanced_settings.cpp:86 +msgid "Build Systems" msgstr "" -#: LiteEditor/quickfindbar.cpp:177 -msgid "Type the replacement string and hit ENTER to perform the replacement" +#: LiteEditor/advanced_settings.cpp:143 +msgid "A compiler with this name already exists" msgstr "" -#: LiteEditor/quickfindbar.cpp:178 -msgid "Type any replacement string..." +#: LiteEditor/advanced_settings.cpp:160 +msgid "Remove Compiler?" msgstr "" -#: LiteEditor/quickfindbar.cpp:182 -msgid "Replace the current selection" +#: LiteEditor/advanced_settings.cpp:187 +msgid "Add an existing compiler" msgstr "" -#: LiteEditor/quickfindbarbase.cpp:60 -msgid "Case Sensitive" +#: LiteEditor/advanced_settings.cpp:188 +msgid "Clone a compiler" msgstr "" -#: LiteEditor/quickfindbarbase.cpp:62 -msgid "Use case sensitive match" +#: LiteEditor/advanced_settings.cpp:190 +msgid "Scan computer for installed compilers" msgstr "" -#: LiteEditor/quickfindbarbase.cpp:66 -msgid "Regular Expression" +#: LiteEditor/advanced_settings.cpp:249 +msgid "Select the compiler folder" msgstr "" -#: LiteEditor/quickfindbarbase.cpp:74 -msgid "Match a whole word only" +#: LiteEditor/advanced_settings.cpp:260 +msgid "Set a name to the compiler" msgstr "" -#: LiteEditor/quickfindbarbase.cpp:78 -msgid "Use wildcard syntax" +#: LiteEditor/advanced_settings.cpp:260 +msgid "New compiler found!" msgstr "" -#: LiteEditor/quickfindbarbase.cpp:80 -msgid "Use wildcard syntax (* and ?)" +#: LiteEditor/batchbuildbasedlg.h:90 +msgid "Batch Build" msgstr "" -#: LiteEditor/quickfindbarbase.cpp:84 -msgid "Enable multiple selections" +#: LiteEditor/debuggersettingsbasedlg.h:76 +msgid "Debugger Settings" msgstr "" -#: LiteEditor/quickfindbarbase.cpp:86 -msgid "Select each match without de-selectiing the previous match" +#: LiteEditor/debuggersettingsbasedlg.h:131 +msgid "Create a new 'PreDefined Types' set..." msgstr "" -#: LiteEditor/reconcileproject.cpp:191 -msgid "No new or stale files found. The project is up-to-date" +#: LiteEditor/attachdbgprocbasedlg.h:86 +msgid "Attach debugger to process:" msgstr "" -#: LiteEditor/reconcileproject.cpp:666 -#, c-format -msgid "Delete the %i selected files from the filesystem?" +#: LiteEditor/findinfiles_dlg.cpp:54 +msgid "Find What :" msgstr "" -#: LiteEditor/reconcileproject.cpp:668 -msgid "Delete the selected file from the filesystem?" +#: LiteEditor/findinfiles_dlg.cpp:60 +msgid "String to search" msgstr "" -#: LiteEditor/reconcileproject.cpp:695 -#, c-format -msgid "%i file(s) successfully deleted" +#: LiteEditor/findinfiles_dlg.cpp:63 +msgid "Type a string to search..." msgstr "" -#: LiteEditor/reconcileproject.cpp:808 -msgid "Select a directory to ignore:" +#: LiteEditor/findinfiles_dlg.cpp:68 +msgid "Look in :" msgstr "" -#: LiteEditor/reconcileprojectbase.cpp:58 -#: LiteEditor/reconcileprojectbase.cpp:65 git/GitConsole.cpp:351 -msgid "New Files" +#: LiteEditor/findinfiles_dlg.cpp:103 +msgid "Remove the selected search path" msgstr "" -#: LiteEditor/reconcileprojectbase.cpp:65 -msgid "" -"Select files from the left pane and add them to the project by clicking on " -"the right arrow button" +#: LiteEditor/findinfiles_dlg.cpp:112 +msgid "Clear the search path list" msgstr "" -#: LiteEditor/reconcileprojectbase.cpp:95 -msgid "" -"These files have not yet been assigned a Virtual Directory. You can do this " -"yourself by selecting one or more files and clicking the 'Forward' arrow " -"button. A Virtual Directory selector will then appear. After your choice the " -"selection(s) will be moved to the right-hand pane.\n" -"Alternatively click the 'Wizard' button for best-guess auto-allocation." +#: LiteEditor/findinfiles_dlg.cpp:116 +msgid "File Mask:" msgstr "" -#: LiteEditor/reconcileprojectbase.cpp:99 -msgid "Unassigned files:" +#: LiteEditor/findinfiles_dlg.cpp:123 +msgid "Search these file types" msgstr "" -#: LiteEditor/reconcileprojectbase.cpp:111 -msgid "Add selected files" +#: LiteEditor/findinfiles_dlg.cpp:131 +msgid "Files Encoding:" msgstr "" -#: LiteEditor/reconcileprojectbase.cpp:116 -msgid "Remove selected files" +#: LiteEditor/findinfiles_dlg.cpp:137 +msgid "Use this file encoding when scanning files for matches" msgstr "" -#: LiteEditor/reconcileprojectbase.cpp:121 -msgid "" -"Wherever possible, automatically allocate files to the appropriate virtual " -"directory" +#: LiteEditor/findinfiles_dlg.cpp:162 +msgid "&Match case" msgstr "" -#: LiteEditor/reconcileprojectbase.cpp:138 -msgid "" -"Each file here has been assigned a Virtual Directory. If you're happy with " -"the choice, select the file and click 'Apply'. Otherwise select the file and " -"use the 'back' button to return it to the Unassigned Files section." +#: LiteEditor/findinfiles_dlg.cpp:164 +msgid "Toggle case sensitive search" msgstr "" -#: LiteEditor/reconcileprojectbase.cpp:146 -msgid "Assigned files:" +#: LiteEditor/findinfiles_dlg.cpp:168 +msgid "Match &whole word" msgstr "" -#: LiteEditor/reconcileprojectbase.cpp:147 -msgid "Virtual Folder" +#: LiteEditor/findinfiles_dlg.cpp:170 +msgid "Toggle whole word search" msgstr "" -#: LiteEditor/reconcileprojectbase.cpp:152 -#: codelitephp/php-plugin/php_ui.cpp:832 -msgid "&Apply" +#: LiteEditor/findinfiles_dlg.cpp:174 +msgid "Regular &expression" msgstr "" -#: LiteEditor/reconcileprojectbase.cpp:156 -msgid "A&pply All" +#: LiteEditor/findinfiles_dlg.cpp:176 +msgid "The 'Find What' field is a regular expression" msgstr "" -#: LiteEditor/reconcileprojectbase.cpp:161 -#: LiteEditor/reconcileprojectbase.cpp:168 -msgid "Stale Files" +#: LiteEditor/findinfiles_dlg.cpp:180 +msgid "&Save modified files before searching" msgstr "" -#: LiteEditor/reconcileprojectbase.cpp:168 -msgid "" -"The list below contains files that exist in the project but not on the file " -"system" +#: LiteEditor/findinfiles_dlg.cpp:182 +msgid "Save any modified files before search starts" msgstr "" -#: LiteEditor/reconcileprojectbase.cpp:179 -msgid "" -"The files listed below are contained in the project, but no longer exist in " -"reality. You can select individual items and delete them from the project, " -"or use the Delete All button." +#: LiteEditor/findinfiles_dlg.cpp:186 +msgid "Display search results in separate tab" msgstr "" -#: LiteEditor/reconcileprojectbase.cpp:187 -msgid "File path" +#: LiteEditor/findinfiles_dlg.cpp:203 +msgid "Display the C++ scope of the match" msgstr "" -#: LiteEditor/reconcileprojectbase.cpp:271 -msgid "Look for files starting with this directory:" +#: LiteEditor/findinfiles_dlg.cpp:205 +msgid "Display the class + function name for the matches" msgstr "" -#: LiteEditor/reconcileprojectbase.cpp:283 -msgid "Extensions to consider when looking for missing files:" +#: LiteEditor/findinfiles_dlg.cpp:209 +msgid "Hide matches found in comments" msgstr "" -#: LiteEditor/reconcileprojectbase.cpp:288 -msgid "" -"A semi-colon separated list of extensions e.g. cpp;h;xrc\n" -"If you really want to find all possible files, just add *" +#: LiteEditor/findinfiles_dlg.cpp:214 +msgid "Hide matches found inside strings" msgstr "" -#: LiteEditor/reconcileprojectbase.cpp:300 -msgid "Files to ignore:" +#: LiteEditor/findinfiles_dlg.cpp:219 +msgid "Use different colour for matches found in comments" msgstr "" -#: LiteEditor/reconcileprojectbase.cpp:308 -msgid "" -"Here you can add the names of any files that you want to ignore. Standard " -"wildcards will work e.g. moc_*" +#: LiteEditor/findinfiles_dlg.cpp:230 +msgid "&Find" msgstr "" -#: LiteEditor/reconcileprojectbase.cpp:320 -#: LiteEditor/reconcileprojectbase.cpp:352 -#: LiteEditor/reconcileprojectbase.cpp:383 SnipWiz/editsnippetsbasedlg.cpp:104 -#: SnipWiz/templateclassbasedlg.cpp:195 -#: cppchecker/cppchecksettingsdlgbase.cpp:136 -#: cppchecker/cppchecksettingsdlgbase.cpp:174 -#: cppchecker/cppchecksettingsdlgbase.cpp:225 -#: cppchecker/cppchecksettingsdlgbase.cpp:280 -#: cppchecker/cppchecksettingsdlgbase.cpp:313 -msgid "Remove" +#: LiteEditor/findinfiles_dlg.cpp:232 +msgid "Begin search" msgstr "" -#: LiteEditor/reconcileprojectbase.cpp:332 -msgid "Paths to ignore:" +#: LiteEditor/findinfiles_dlg.cpp:236 +msgid "&Replace" msgstr "" -#: LiteEditor/reconcileprojectbase.cpp:340 +#: LiteEditor/findinfiles_dlg.cpp:237 msgid "" -"The filepaths of any folders that shouldn't be searched for missing files" +"Search for matches and place them in the 'Replace' window as candidates for " +"possible replace operation" msgstr "" -#: LiteEditor/reconcileprojectbase.cpp:364 -msgid "Regexs to use (optional):" +#: LiteEditor/findinfiles_dlg.cpp:241 +msgid "Sto&p" msgstr "" -#: LiteEditor/reconcileprojectbase.cpp:371 -msgid "" -"Most of the time you should find that files automatically get added to the " -"most appropriate virtual directory. If yours don't, here you can add one or " -"more regular expressions suitable for your situation. They'll be remembered " -"for this project." +#: LiteEditor/findinfiles_dlg.cpp:242 +msgid "Stop the current search" msgstr "" -#: LiteEditor/reconcileprojectbase.cpp:452 -msgid "Enter the regex:" +#: LiteEditor/findinfiles_dlg.cpp:247 +msgid "Close this dialog" msgstr "" -#: LiteEditor/reconcileprojectbase.cpp:464 -msgid "Destination Virtual Directory:" +#: LiteEditor/build_page.cpp:57 +msgid "Available Build Systems:" msgstr "" -#: LiteEditor/reconcileprojectbase.cpp:471 -msgid "Select the virtual folder in which to place the matching files" +#: LiteEditor/build_page.cpp:63 +msgid "Fix build tool path on startup" msgstr "" -#: LiteEditor/reconcileprojectbase.cpp:476 -msgid "Browse for virtual folder" +#: LiteEditor/CodeLiteUpgradeFrameBase.cpp:38 +#: LiteEditor/CodeLiteUpgradeFrameBase.h:34 +msgid "Initializing CodeLite" msgstr "" #: LiteEditor/refactorindexbuildjob.cpp:55 @@ -9019,2622 +11449,2709 @@ msgid "Parsing: " msgstr "" -#: LiteEditor/rename_symbool_dlg.cpp:58 -msgid "New Symbol Name:" -msgstr "" - -#: LiteEditor/rename_symbool_dlg.cpp:83 -msgid "Location" -msgstr "" - -#: LiteEditor/rename_symbool_dlg.cpp:84 -msgid "Position" -msgstr "" - -#: LiteEditor/rename_symbool_dlg.cpp:89 LiteEditor/rename_symbool_dlg.cpp:215 -msgid "&Check All" -msgstr "" - -#: LiteEditor/rename_symbool_dlg.cpp:196 -msgid "Select Projects" -msgstr "" - -#: LiteEditor/rename_symbool_dlg.cpp:196 -msgid "Select the 'rename symbol' project scope" +#: LiteEditor/breakpointslistctrl.h:47 +msgid "At" msgstr "" -#: LiteEditor/renamesymboldlg.cpp:91 -msgid "Invalid C/C++ symbol name" +#: LiteEditor/breakpointslistctrl.h:49 +msgid "What" msgstr "" -#: LiteEditor/replaceinfilespanel.cpp:55 -msgid "&Unmark All" +#: LiteEditor/breakpointslistctrl.h:50 +msgid "Ignored" msgstr "" -#: LiteEditor/replaceinfilespanel.cpp:58 -msgid "Mark &All" +#: LiteEditor/breakpointslistctrl.h:51 +msgid "Extras" msgstr "" -#: LiteEditor/replaceinfilespanel.cpp:61 Plugin/renamefilebasedlg.cpp:47 -msgid "Replace With:" +#: LiteEditor/plugindlgbase.h:59 +msgid "Manage Plugins:" msgstr "" -#: LiteEditor/replaceinfilespanel.cpp:67 -msgid "&Replace Marked" +#: LiteEditor/menu_event_handlers.cpp:247 +#, c-format +msgid "Go to line number (1 - %d):" msgstr "" -#: LiteEditor/replaceinfilespanel.cpp:167 -msgid "Failed to save file:\n" +#: LiteEditor/menu_event_handlers.cpp:250 +#: LiteEditor/menu_event_handlers.cpp:259 +#: LiteEditor/menu_event_handlers.cpp:266 +msgid "Go To Line" msgstr "" -#: LiteEditor/replaceinfilespanel.cpp:168 -#: LiteEditor/replaceinfilespanel.cpp:194 -msgid "CodeLite - Replace" +#: LiteEditor/menu_event_handlers.cpp:258 +#, c-format +msgid "'%s' is not a valid line number" msgstr "" -#: LiteEditor/replaceinfilespanel.cpp:194 -msgid "Failed to open file:\n" +#: LiteEditor/menu_event_handlers.cpp:265 +#, c-format +msgid "Please insert a line number in the range of (1 - %ld)" msgstr "" -#: LiteEditor/setters_getters.cpp:59 -#: codelitephp/php-plugin/php_editor_context_menu.cpp:151 -msgid "Generate Setters / Getters" +#: LiteEditor/WelcomePage.cpp:75 +msgid "Select file to open" msgstr "" -#: LiteEditor/setters_getters.cpp:59 LiteEditor/setters_getters_dlg.cpp:453 -msgid "Select the functions to generate from the list below" +#: LiteEditor/WelcomePage.cpp:94 +msgid "Open workspace" msgstr "" -#: LiteEditor/setters_getters.cpp:92 -msgid "Function name starts with an upper case letter" +#: LiteEditor/new_virtual_folder.cpp:71 +msgid "Create the folder on the file system as well" msgstr "" -#: LiteEditor/setters_getters.cpp:97 -msgid "Format the file when done" +#: LiteEditor/breakpointsmgr.cpp:101 +msgid "Create a breakpoint or watchpoint" msgstr "" -#: LiteEditor/setters_getters_dlg.cpp:454 -msgid "Generate Setters/Getters for class '" +#: LiteEditor/breakpointsmgr.cpp:119 +msgid "Watchpoint successfully added" msgstr "" -#: LiteEditor/shelltab.cpp:61 -msgid "Send:" +#: LiteEditor/breakpointsmgr.cpp:172 +msgid "Breakpoint# " msgstr "" -#: LiteEditor/shelltab.cpp:72 codelitephp/php-plugin/php_ui.cpp:1379 -#: codelitephp/php-plugin/php_ui.cpp:1452 -msgid "Send" +#: LiteEditor/breakpointsmgr.cpp:176 +msgid "Temporary \n" msgstr "" -#: LiteEditor/shelltab.cpp:75 -msgid "Stop" +#: LiteEditor/breakpointsmgr.cpp:181 +msgid " (disabled)\n" msgstr "" -#: LiteEditor/shelltab.cpp:268 -msgid "Continuing..." +#: LiteEditor/breakpointsmgr.cpp:186 +#, c-format +msgid "Ignore-count = %u\n" msgstr "" -#: LiteEditor/shelltab.cpp:291 -msgid "Enable debugger full logging" +#: LiteEditor/breakpointsmgr.cpp:191 +#, c-format +msgid "" +"Condition:\n" +"%s\n" msgstr "" -#: LiteEditor/simpletable.cpp:129 -msgid "New watch" +#: LiteEditor/breakpointsmgr.cpp:196 +#, c-format +msgid "" +"Commands:\n" +"%s\n" msgstr "" -#: LiteEditor/simpletable.cpp:255 -msgid "Update Watch" +#: LiteEditor/breakpointsmgr.cpp:201 +msgid "Normal breakpoint\n" msgstr "" -#: LiteEditor/simpletable.cpp:255 -msgid "Update expression:" +#: LiteEditor/breakpointsmgr.cpp:360 +msgid "Watchpoint " msgstr "" -#: LiteEditor/symbols_dialog.cpp:42 -msgid "Symbol" +#: LiteEditor/breakpointsmgr.cpp:360 +msgid "Breakpoint " msgstr "" -#: LiteEditor/syntaxhighlightbasedlg.cpp:44 -msgid "New Theme..." +#: LiteEditor/breakpointsmgr.cpp:361 +#, c-format +msgid "%u deleted" msgstr "" -#: LiteEditor/syntaxhighlightbasedlg.cpp:46 -#: abbreviation/abbreviationssettingsbase.cpp:50 -msgid "Export" +#: LiteEditor/breakpointsmgr.cpp:486 +msgid "breakpoints enabled" msgstr "" -#: LiteEditor/syntaxhighlightbasedlg.cpp:46 -msgid "Export syntax highlight settings to zip file" +#: LiteEditor/breakpointsmgr.cpp:486 +msgid "breakpoints disabled" msgstr "" -#: LiteEditor/syntaxhighlightbasedlg.cpp:51 -msgid "Export All" +#: LiteEditor/breakpointsmgr.cpp:502 +msgid "Watchpoint creation unsuccessful" msgstr "" -#: LiteEditor/syntaxhighlightbasedlg.cpp:53 -msgid "Export specific lexers" +#: LiteEditor/breakpointsmgr.cpp:504 +msgid "Breakpoint creation unsuccessful" msgstr "" -#: LiteEditor/syntaxhighlightbasedlg.cpp:53 -msgid "Export..." +#: LiteEditor/breakpointsmgr.cpp:544 +msgid "Please enter the new ignore-count" msgstr "" -#: LiteEditor/syntaxhighlightbasedlg.cpp:59 -msgid "Import settings from a zip archive" +#: LiteEditor/breakpointsmgr.cpp:544 +msgid "Set ignore-count" msgstr "" -#: LiteEditor/syntaxhighlightbasedlg.cpp:61 -msgid "Revert to default settings" +#: LiteEditor/breakpointsmgr.cpp:596 +msgid "Properties for watchpoint " msgstr "" -#: LiteEditor/syntaxhighlightbasedlg.cpp:63 -msgid "Import Eclipse Theme" +#: LiteEditor/breakpointsmgr.cpp:598 +msgid "Properties for breakpoint " msgstr "" -#: LiteEditor/syntaxhighlightbasedlg.cpp:68 -msgid "Load eclipse theme website" +#: LiteEditor/movefuncimplbasedlg.h:77 +msgid "Move Function Implementation Preview" msgstr "" -#: LiteEditor/syntaxhighlightbasedlg.cpp:114 -msgid "Available Themes:" +#: LiteEditor/editorsettingsmiscbasepanel.cpp:40 +msgid "Look and Feel:" msgstr "" -#: LiteEditor/syntaxhighlightbasedlg.cpp:127 -msgid "Global Font:" +#: LiteEditor/editorsettingsmiscbasepanel.cpp:51 +msgid "Icon Set:" msgstr "" -#: LiteEditor/syntaxhighlightbasedlg.cpp:132 -msgid "Use this to select a font to be used by *all* styles of this lexer" +#: LiteEditor/editorsettingsmiscbasepanel.cpp:64 +msgid "Toolbar Icon Size:" msgstr "" -#: LiteEditor/syntaxhighlightbasedlg.cpp:136 -#: LiteEditor/syntaxhighlightbasedlg.cpp:328 -msgid "Global background Colour:" +#: LiteEditor/editorsettingsmiscbasepanel.cpp:76 +msgid "Use Native Toolbar" msgstr "" -#: LiteEditor/syntaxhighlightbasedlg.cpp:141 +#: LiteEditor/editorsettingsmiscbasepanel.cpp:78 msgid "" -"Use this to select a background colour to be used by *all* styles of this " -"lexer" +"Using the OS native toolbar instead of the generic toolbar\n" +"When enabling this option, CodeLite will not be able to display all plugins\n" +"Tools" msgstr "" -#: LiteEditor/syntaxhighlightbasedlg.cpp:145 -msgid "File Extensions:" +#: LiteEditor/editorsettingsmiscbasepanel.cpp:82 +msgid "Enable Windows(R) theme for Vista / Windows 7" msgstr "" -#: LiteEditor/syntaxhighlightbasedlg.cpp:150 -msgid "Associate this lexer with files which have these extensions" +#: LiteEditor/editorsettingsmiscbasepanel.cpp:87 +msgid "Other:" msgstr "" -#: LiteEditor/syntaxhighlightbasedlg.cpp:158 -msgid "Styles" +#: LiteEditor/editorsettingsmiscbasepanel.cpp:91 +msgid "Show splashscreen on startup" msgstr "" -#: LiteEditor/syntaxhighlightbasedlg.cpp:183 -msgid "Style Font:" +#: LiteEditor/editorsettingsmiscbasepanel.cpp:93 +msgid "Show codelite's splashscreen when it first started" msgstr "" -#: LiteEditor/syntaxhighlightbasedlg.cpp:188 -msgid "Select a font to be used with the selected style" +#: LiteEditor/editorsettingsmiscbasepanel.cpp:97 +msgid "Allow only single instance running" msgstr "" -#: LiteEditor/syntaxhighlightbasedlg.cpp:192 -msgid "Foreground Colour:" +#: LiteEditor/editorsettingsmiscbasepanel.cpp:99 +msgid "There can be only one" msgstr "" -#: LiteEditor/syntaxhighlightbasedlg.cpp:197 -msgid "Select the foreground colour for the selected style" +#: LiteEditor/editorsettingsmiscbasepanel.cpp:103 +msgid "Check for new version on startup" msgstr "" -#: LiteEditor/syntaxhighlightbasedlg.cpp:201 -#: codelite_terminal/wxcrafter.cpp:240 -msgid "Background Colour:" +#: LiteEditor/editorsettingsmiscbasepanel.cpp:105 +msgid "" +"When codelite starts, it will connect to http://codelite.org to check if a " +"new version of codelite was released" msgstr "" -#: LiteEditor/syntaxhighlightbasedlg.cpp:206 -msgid "Select the background colour for the selected style" +#: LiteEditor/editorsettingsmiscbasepanel.cpp:109 +msgid "Load last session on startup" msgstr "" -#: LiteEditor/syntaxhighlightbasedlg.cpp:212 -msgid "Style is EOL Filled" +#: LiteEditor/editorsettingsmiscbasepanel.cpp:111 +msgid "" +"When launched, codelite will restore the last opened workspace + all open " +"editors" msgstr "" -#: LiteEditor/syntaxhighlightbasedlg.cpp:214 -msgid "" -"If a line ends with a character/word which has this style, the remaining of " -"the line will be coloured with this style background colour" +#: LiteEditor/editorsettingsmiscbasepanel.cpp:116 +msgid "Frame Title" +msgstr "" + +#: LiteEditor/editorsettingsmiscbasepanel.cpp:123 +msgid "Set CodeLite frame's title" msgstr "" -#: LiteEditor/syntaxhighlightbasedlg.cpp:220 -msgid "Styling Within Pre-processor Line" +#: LiteEditor/editorsettingsmiscbasepanel.cpp:123 +msgid "Set custom title to codelite's main frame" msgstr "" -#: LiteEditor/syntaxhighlightbasedlg.cpp:229 -msgid "Edit Lexer Keyword Sets:" +#: LiteEditor/editorsettingsmiscbasepanel.cpp:129 +msgid "You can use the following macros to construct your own frame title:" msgstr "" -#: LiteEditor/syntaxhighlightbasedlg.cpp:237 -msgid "Set &0" +#: LiteEditor/editorsettingsmiscbasepanel.cpp:140 +msgid "$user" msgstr "" -#: LiteEditor/syntaxhighlightbasedlg.cpp:241 -msgid "Set &1" +#: LiteEditor/editorsettingsmiscbasepanel.cpp:147 +msgid "the current user name inside square brackets" msgstr "" -#: LiteEditor/syntaxhighlightbasedlg.cpp:245 -msgid "Set &2" +#: LiteEditor/editorsettingsmiscbasepanel.cpp:151 +msgid "$filename" msgstr "" -#: LiteEditor/syntaxhighlightbasedlg.cpp:249 -msgid "Set &3" +#: LiteEditor/editorsettingsmiscbasepanel.cpp:158 +msgid "the current file name" msgstr "" -#: LiteEditor/syntaxhighlightbasedlg.cpp:253 -msgid "Set &4" +#: LiteEditor/editorsettingsmiscbasepanel.cpp:162 +msgid "$fullpath" msgstr "" -#: LiteEditor/syntaxhighlightbasedlg.cpp:258 -msgid "Text Selection" +#: LiteEditor/editorsettingsmiscbasepanel.cpp:169 +msgid "the current file fullpath" msgstr "" -#: LiteEditor/syntaxhighlightbasedlg.cpp:270 -msgid "Selected Text Background Colour:" +#: LiteEditor/editorsettingsmiscbasepanel.cpp:173 +msgid "$workspace" msgstr "" -#: LiteEditor/syntaxhighlightbasedlg.cpp:278 -msgid "Use Custom Selection Forground Colour:" +#: LiteEditor/editorsettingsmiscbasepanel.cpp:180 +msgid "the current workspace name inside square brackets" msgstr "" -#: LiteEditor/syntaxhighlightbasedlg.cpp:284 -msgid "" -"You can choose to override the default selection colouring by enabling this " -"checkbox" +#: LiteEditor/editorsettingsmiscbasepanel.cpp:184 +msgid "Frame title:" msgstr "" -#: LiteEditor/syntaxhighlightbasedlg.cpp:288 -msgid "Selected Text Foreground Colour:" +#: LiteEditor/editorsettingsmiscbasepanel.cpp:196 +msgid "Encoding & Locale" msgstr "" -#: LiteEditor/syntaxhighlightbasedlg.cpp:297 -msgid "Global Colours" +#: LiteEditor/editorsettingsmiscbasepanel.cpp:208 +msgid "File font encoding:" msgstr "" -#: LiteEditor/syntaxhighlightbasedlg.cpp:309 -msgid "Global theme:" +#: LiteEditor/editorsettingsmiscbasepanel.cpp:219 +msgid "Enable localization" msgstr "" -#: LiteEditor/syntaxhighlightbasedlg.cpp:315 +#: LiteEditor/editorsettingsmiscbasepanel.cpp:221 msgid "" -"Set a global theme for all the supported languages.\n" -"If the theme is not available for a given language, CodeLite will use the " -"next available theme from\n" -"the same family" +"View CodeLite's strings translated into a different language, if available. " +"This will also make CodeLite use other aspects of the locale." msgstr "" -#: LiteEditor/syntaxhighlightbasedlg.cpp:319 -msgid "Global foreground Colour:" +#: LiteEditor/editorsettingsmiscbasepanel.cpp:225 +msgid "Locale to use:" msgstr "" -#: LiteEditor/syntaxhighlightbasedlg.cpp:324 +#: LiteEditor/editorsettingsmiscbasepanel.cpp:231 msgid "" -"This is where you can set the foreground colour for the Output View panes " -"(where you can see the output from e.g. 'Build' or 'Debug') and terminal " -"(where you see the trace output while debugging)" +"These are the locales that are available on your system. There won't " +"necessarily be CodeLite translations for all of them." msgstr "" -#: LiteEditor/syntaxhighlightbasedlg.cpp:333 -msgid "" -"This is where you can set the background colour for the Output View panes " -"(where you can see the output from e.g. 'Build' or 'Debug') and terminal " -"(where you see the trace output while debugging)" +#: LiteEditor/editorsettingsmiscbasepanel.cpp:236 +msgid "History" msgstr "" -#: LiteEditor/syntaxhighlightbasedlg.cpp:492 -msgid "Theme Name:" +#: LiteEditor/editorsettingsmiscbasepanel.cpp:244 +msgid "Clear recent workspace / files history" msgstr "" -#: LiteEditor/syntaxhighlightbasedlg.cpp:497 -msgid "Set the theme name" +#: LiteEditor/editorsettingsmiscbasepanel.cpp:253 +msgid "Max items kept in find / replace dialog:" msgstr "" -#: LiteEditor/syntaxhighlightbasedlg.cpp:511 -msgid "Make this theme for this language" +#: LiteEditor/editorsettingsmiscbasepanel.cpp:264 +msgid "Maximum number of tabs opened in the editor:" msgstr "" -#: LiteEditor/syntaxhighlightbasedlg.cpp:515 -msgid "Based on Theme:" +#: LiteEditor/editorsettingsmiscbasepanel.cpp:275 +msgid "Reset annoying dialogs answers:" msgstr "" -#: LiteEditor/syntaxhighlightbasedlg.cpp:521 -msgid "Set the base theme for this new theme" +#: LiteEditor/editorsettingsmiscbasepanel.cpp:279 +msgid "&Reset" msgstr "" -#: LiteEditor/syntaxhighlightdlg.cpp:184 -msgid "Applying changes..." +#: LiteEditor/editorsettingsmiscbasepanel.cpp:297 +msgid "CodeLite's Log-file verbosity:" msgstr "" -#: LiteEditor/syntaxhighlightdlg.cpp:554 -msgid "Export Lexers" +#: LiteEditor/editorsettingsmiscbasepanel.cpp:307 +msgid "" +"codelite logs to file various events, this option controls the logging " +"verbosity" msgstr "" -#: LiteEditor/syntaxhighlightdlg.cpp:554 -msgid "Select which lexers you wish to export" +#: LiteEditor/editorsettingsmiscbasepanel.cpp:312 +msgid "Open.." msgstr "" -#: LiteEditor/syntaxhighlightdlg.cpp:561 LiteEditor/syntaxhighlightdlg.cpp:604 -#: git/gitFileDiffDlg.cpp:58 -msgid "Save as" +#: LiteEditor/editorsettingsmiscbasepanel.cpp:313 +msgid "Open the log file into an editor" msgstr "" -#: LiteEditor/syntaxhighlightdlg.cpp:572 LiteEditor/syntaxhighlightdlg.cpp:611 -msgid "Settings have been saved into:\n" +#: LiteEditor/editorsettingsmiscbasepanel.cpp:317 +msgid "GTK only: Redirect stdout/stderr output to a log file" msgstr "" -#: LiteEditor/syntaxhighlightdlg.cpp:621 +#: LiteEditor/editorsettingsmiscbasepanel.cpp:319 msgid "" -"Are you sure you want to restore colours to factory defaults?\n" -"By choosing 'Yes', you will lose all your local modifications" +"If ticked, all output from e.g. cout or wxLogDebug will be redirected to the " +"file .codelite/codelite-stdout-stderr.log" msgstr "" -#: LiteEditor/syntaxhighlightdlg.cpp:647 -msgid "Select eclipse XML theme file" +#: LiteEditor/tasksfindwhatdlgbase.cpp:53 LiteEditor/frame.cpp:1297 +#: LiteEditor/frame.cpp:1513 LiteEditor/frame.cpp:1650 +#: LiteEditor/frame.cpp:1799 +msgid "New" msgstr "" -#: LiteEditor/syntaxhighlightdlg.cpp:650 -msgid "File imported successfully!" +#: LiteEditor/tasksfindwhatdlgbase.cpp:121 +msgid "Task Name:" msgstr "" -#: LiteEditor/tabgroupbasedlgs.cpp:50 -msgid "Select a tab group, or browse for one" +#: LiteEditor/tasksfindwhatdlgbase.cpp:128 +msgid "Regular Expression:" msgstr "" -#: LiteEditor/tabgroupbasedlgs.cpp:55 -msgid "Click to search for other groups" +#: LiteEditor/debugger_predefined_types_page.cpp:38 +msgid "Debugger Command" msgstr "" -#: LiteEditor/tabgroupbasedlgs.cpp:62 -msgid "Double-click to choose one of these groups" +#: LiteEditor/debugger_predefined_types_page.cpp:88 +msgid "A Debugger type with that name already exists" msgstr "" -#: LiteEditor/tabgroupbasedlgs.cpp:67 -msgid "Replace current tabs" +#: LiteEditor/frame.cpp:782 +msgid "Edit::Split selection into multiple carets" msgstr "" -#: LiteEditor/tabgroupbasedlgs.cpp:68 -msgid "" -"By default, the tabs of this group will be added to the current tabs. Tick " -"this to replace the current tabs instead." +#: LiteEditor/frame.cpp:784 +msgid "Search::Toggle the Quick-Replace Bar" msgstr "" -#: LiteEditor/tabgroupbasedlgs.cpp:118 -msgid "Select which tabs you want to be in the group" +#: LiteEditor/frame.cpp:893 +msgid "CodeLite " msgstr "" -#: LiteEditor/tabgroupbasedlgs.cpp:134 Plugin/clBoostrapWizardBase.cpp:81 -msgid "Check All" +#: LiteEditor/frame.cpp:1041 +msgid "Output View" msgstr "" -#: LiteEditor/tabgroupbasedlgs.cpp:135 -msgid "Click to select all items" +#: LiteEditor/frame.cpp:1042 menu.xrc:264 +msgid "Workspace View" msgstr "" -#: LiteEditor/tabgroupbasedlgs.cpp:140 -msgid "Click to clear all items" +#: LiteEditor/frame.cpp:1043 +msgid "wxCrafter" msgstr "" -#: LiteEditor/tabgroupbasedlgs.cpp:154 -msgid "Choose a name for the group:" +#: LiteEditor/frame.cpp:1301 LiteEditor/frame.cpp:1517 +#: LiteEditor/frame.cpp:1654 LiteEditor/frame.cpp:1803 +#: CMakePlugin/CMakePluginUi.cpp:127 menu.xrc:745 +msgid "Reload" msgstr "" -#: LiteEditor/tabgroupdlg.cpp:67 -msgid "Select a tab group:" +#: LiteEditor/frame.cpp:1307 LiteEditor/frame.cpp:1309 +#: LiteEditor/frame.cpp:1523 LiteEditor/frame.cpp:1525 +#: LiteEditor/frame.cpp:1660 LiteEditor/frame.cpp:1662 +#: LiteEditor/frame.cpp:1809 LiteEditor/frame.cpp:1811 +msgid "Save All" msgstr "" -#: LiteEditor/tabgroupdlg.cpp:71 -msgid "Tab groups" +#: LiteEditor/frame.cpp:1312 LiteEditor/frame.cpp:1528 +#: LiteEditor/frame.cpp:1665 LiteEditor/frame.cpp:1814 +msgid "Close File" msgstr "" -#: LiteEditor/tabgroupspane.cpp:247 -msgid "I'm afraid that tabgroup no longer exists :/" +#: LiteEditor/frame.cpp:1314 LiteEditor/frame.cpp:1530 +#: LiteEditor/frame.cpp:1667 LiteEditor/frame.cpp:1816 menu.xrc:876 +#: menu.xrc:913 DatabaseExplorer/ErdPanel.cpp:174 +#: DatabaseExplorer/FrameCanvas.cpp:174 +msgid "Cut" msgstr "" -#: LiteEditor/tabgroupspane.cpp:263 -msgid "" -"Do you want to replace the existing editors? (Say 'No' to load the new ones " -"alongside)" +#: LiteEditor/frame.cpp:1322 LiteEditor/frame.cpp:1538 +#: LiteEditor/frame.cpp:1675 LiteEditor/frame.cpp:1824 +msgid "Backward" msgstr "" -#: LiteEditor/tabgroupspane.cpp:264 -msgid "Load the tabgroup" +#: LiteEditor/frame.cpp:1323 LiteEditor/frame.cpp:1539 +#: LiteEditor/frame.cpp:1676 LiteEditor/frame.cpp:1825 +msgid "Forward" msgstr "" -#: LiteEditor/tabgroupspane.cpp:289 -msgid "I'm afraid that tabgroup item no longer exists :/" +#: LiteEditor/frame.cpp:1338 LiteEditor/frame.cpp:1840 +msgid "Standard" msgstr "" -#: LiteEditor/tabgroupspane.cpp:311 -msgid "&Add a new item to this tabgroup" +#: LiteEditor/frame.cpp:1363 LiteEditor/frame.cpp:1365 +#: LiteEditor/frame.cpp:1561 LiteEditor/frame.cpp:1563 +#: LiteEditor/frame.cpp:1698 LiteEditor/frame.cpp:1700 +#: LiteEditor/frame.cpp:1867 LiteEditor/frame.cpp:1869 +msgid "Find Resource In Workspace" msgstr "" -#: LiteEditor/tabgroupspane.cpp:313 LiteEditor/tabgroupspane.cpp:322 -msgid "&Paste an item into this tabgroup" +#: LiteEditor/frame.cpp:1368 LiteEditor/frame.cpp:1566 +#: LiteEditor/frame.cpp:1703 LiteEditor/frame.cpp:1872 +msgid "Highlight Word" msgstr "" -#: LiteEditor/tabgroupspane.cpp:316 -msgid "Du&plicate this tabgroup" +#: LiteEditor/frame.cpp:1370 LiteEditor/frame.cpp:1568 +#: LiteEditor/frame.cpp:1705 LiteEditor/frame.cpp:1874 +msgid "Highlight Matching Words" msgstr "" -#: LiteEditor/tabgroupspane.cpp:317 -msgid "&Delete this tabgroup" +#: LiteEditor/frame.cpp:1399 LiteEditor/frame.cpp:1579 +#: LiteEditor/frame.cpp:1716 LiteEditor/frame.cpp:1902 +msgid "Build Active Project" msgstr "" -#: LiteEditor/tabgroupspane.cpp:319 -msgid "&Copy this item, to be pasted to another tabgroup" +#: LiteEditor/frame.cpp:1405 LiteEditor/frame.cpp:1585 +#: LiteEditor/frame.cpp:1721 LiteEditor/frame.cpp:1907 +msgid "Stop Current Build" msgstr "" -#: LiteEditor/tabgroupspane.cpp:320 -msgid "Cu&t this item, to be pasted to another tabgroup" +#: LiteEditor/frame.cpp:1409 LiteEditor/frame.cpp:1589 +#: LiteEditor/frame.cpp:1725 LiteEditor/frame.cpp:1911 +msgid "Clean Active Project" msgstr "" -#: LiteEditor/tabgroupspane.cpp:324 -msgid "&Remove this item from the tabgroup" +#: LiteEditor/frame.cpp:1414 LiteEditor/frame.cpp:1594 +#: LiteEditor/frame.cpp:1730 LiteEditor/frame.cpp:1916 +msgid "Run Active Project" msgstr "" -#: LiteEditor/tabgroupspane.cpp:409 -msgid "There is already a file with this name. Overwrite it?" +#: LiteEditor/frame.cpp:1418 LiteEditor/frame.cpp:1598 +#: LiteEditor/frame.cpp:1734 LiteEditor/frame.cpp:1920 +msgid "Stop Running Program" msgstr "" -#: LiteEditor/tabgroupspane.cpp:410 -msgid "Overwrite?" +#: LiteEditor/frame.cpp:1444 LiteEditor/frame.cpp:1446 +#: LiteEditor/frame.cpp:1605 LiteEditor/frame.cpp:1607 +#: LiteEditor/frame.cpp:1741 LiteEditor/frame.cpp:1743 +msgid "Start or Continue debugger" msgstr "" -#: LiteEditor/tabgroupspane.cpp:418 -msgid "Tabgroup renamed" +#: LiteEditor/frame.cpp:1448 LiteEditor/frame.cpp:1450 +#: LiteEditor/frame.cpp:1609 LiteEditor/frame.cpp:1611 +#: LiteEditor/frame.cpp:1745 LiteEditor/frame.cpp:1747 +#: LiteEditor/frame.cpp:1950 LiteEditor/frame.cpp:1952 +msgid "Stop debugger" msgstr "" -#: LiteEditor/tabgroupspane.cpp:483 -msgid "Select the file you want to add" +#: LiteEditor/frame.cpp:1452 LiteEditor/frame.cpp:1454 +#: LiteEditor/frame.cpp:1613 LiteEditor/frame.cpp:1615 +#: LiteEditor/frame.cpp:1749 LiteEditor/frame.cpp:1751 +#: LiteEditor/frame.cpp:1954 LiteEditor/frame.cpp:1956 +msgid "Pause debugger" msgstr "" -#: LiteEditor/tabgroupspane.cpp:489 -msgid "That filepath doesn't seem to exist. Are you sure?" +#: LiteEditor/frame.cpp:1456 LiteEditor/frame.cpp:1458 +#: LiteEditor/frame.cpp:1617 LiteEditor/frame.cpp:1619 +#: LiteEditor/frame.cpp:1753 LiteEditor/frame.cpp:1755 +#: LiteEditor/frame.cpp:1958 LiteEditor/frame.cpp:1960 +msgid "Restart debugger" msgstr "" -#: LiteEditor/tabgroupspane.cpp:558 -msgid "Failed to load the destination tabgroup :/" +#: LiteEditor/frame.cpp:1461 LiteEditor/frame.cpp:1463 +#: LiteEditor/frame.cpp:1622 LiteEditor/frame.cpp:1624 +#: LiteEditor/frame.cpp:1758 LiteEditor/frame.cpp:1760 +#: LiteEditor/frame.cpp:1963 LiteEditor/frame.cpp:1965 +msgid "Show Current Line" msgstr "" -#: LiteEditor/tabgroupspane.cpp:565 -msgid "" -"There is already an item with this filepath in the tabgroup. Overwrite it?" +#: LiteEditor/frame.cpp:1466 LiteEditor/frame.cpp:1627 +#: LiteEditor/frame.cpp:1763 LiteEditor/frame.cpp:1968 +msgid "Step Into" msgstr "" -#: LiteEditor/tabgroupspane.cpp:602 -msgid "Tabgroup item pasted" +#: LiteEditor/frame.cpp:1466 LiteEditor/frame.cpp:1627 +#: LiteEditor/frame.cpp:1763 LiteEditor/frame.cpp:1968 +msgid "Step In" msgstr "" -#: LiteEditor/tabgroupspane.cpp:626 -#, c-format -msgid "Delete tabgroup %s?" +#: LiteEditor/frame.cpp:1469 LiteEditor/frame.cpp:1471 +#: LiteEditor/frame.cpp:1630 LiteEditor/frame.cpp:1632 +#: LiteEditor/frame.cpp:1766 LiteEditor/frame.cpp:1768 +#: LiteEditor/frame.cpp:1971 LiteEditor/frame.cpp:1973 menu.xrc:566 +msgid "Next Instruction" msgstr "" -#: LiteEditor/tabgroupspane.cpp:641 -msgid "Tabgroup deleted" +#: LiteEditor/frame.cpp:1473 LiteEditor/frame.cpp:1634 +#: LiteEditor/frame.cpp:1770 LiteEditor/frame.cpp:1975 +msgid "Step Out" msgstr "" -#: LiteEditor/tabgroupspane.cpp:661 -msgid "Duplicate a tabgroup" +#: LiteEditor/frame.cpp:1498 LiteEditor/frame.cpp:1999 +msgid "Main Toolbar" msgstr "" -#: LiteEditor/tabgroupspane.cpp:661 -msgid "What name to you want to give the duplicated tabgroup?" +#: LiteEditor/frame.cpp:1946 LiteEditor/frame.cpp:1948 +msgid "Start / Continue debugger" msgstr "" -#: LiteEditor/tabgroupspane.cpp:668 -msgid "Sorry, there is already a tabgroup with this name" +#: LiteEditor/frame.cpp:2014 +msgid "Applying your choices and restarting CodeLite" msgstr "" -#: LiteEditor/tabgroupspane.cpp:673 -msgid "Sorry, duplication of the tabgroup failed :/" +#: LiteEditor/frame.cpp:2016 +msgid "Applying your choices, this may take a few seconds" msgstr "" -#: LiteEditor/tabgroupspane.cpp:678 -msgid "Tabgroup duplicated" +#: LiteEditor/frame.cpp:2349 +msgid "The file" msgstr "" -#: LiteEditor/tabgroupspane.cpp:734 -msgid "Tabgroup item copied" +#: LiteEditor/frame.cpp:2350 +msgid "has been altered." msgstr "" -#: LiteEditor/tabgroupspane.cpp:765 -#, c-format -msgid "Remove item %s from %s?" +#: LiteEditor/frame.cpp:2351 +msgid "Are you sure you want to lose all changes?" msgstr "" -#: LiteEditor/tabgroupspane.cpp:780 -msgid "Tabgroup item Cut" +#: LiteEditor/frame.cpp:2535 +msgid "Please enter a name for the tab group" msgstr "" -#: LiteEditor/tabgroupspane.cpp:782 -msgid "Tabgroup item deleted" +#: LiteEditor/frame.cpp:2550 +msgid "There is already a file with this name. Do you want to overwrite it?" msgstr "" -#: LiteEditor/tabgroupspane.cpp:789 -msgid "Failed to amend the tabgroup :/" +#: LiteEditor/frame.cpp:2574 +msgid "Tab group saved" msgstr "" -#: LiteEditor/tags_options_base_dlg.cpp:35 -msgid "Display and Behavior" +#: LiteEditor/frame.cpp:2658 +#: codelitephp/php-plugin/php_workspace_view.cpp:1358 +msgid "Open Project" msgstr "" -#: LiteEditor/tags_options_base_dlg.cpp:50 -msgid "Number of items to display in the completion box:" +#: LiteEditor/frame.cpp:2969 +msgid "Build ended with errors. Continue?" msgstr "" -#: LiteEditor/tags_options_base_dlg.cpp:61 -msgid "Code Completion is case sensitive (improves performance)" +#: LiteEditor/frame.cpp:2989 +msgid "Build starting..." msgstr "" -#: LiteEditor/tags_options_base_dlg.cpp:63 +#: LiteEditor/frame.cpp:3024 +msgid "Failed to find Custom Build Target for event ID" +msgstr "" + +#: LiteEditor/frame.cpp:3156 msgid "" -"When enabled, the code completion search engine will use case sensitive " -"searches. \n" -"So 'QString' is NOT equal 'qstring'" +"Would you like to build the active project\n" +"before executing it?" msgstr "" -#: LiteEditor/tags_options_base_dlg.cpp:69 -msgid "Display type info tooltips" +#: LiteEditor/frame.cpp:3158 +msgid "Build and Execute" msgstr "" -#: LiteEditor/tags_options_base_dlg.cpp:71 -msgid "Display information about the hovered text" +#: LiteEditor/frame.cpp:3159 +msgid "Execute" msgstr "" -#: LiteEditor/tags_options_base_dlg.cpp:77 -msgid "Display function calltip" +#: LiteEditor/frame.cpp:3229 +msgid "" +"Your workspace symbols file does not match the current version of CodeLite. " +"CodeLite will perform a full retag of the workspace" msgstr "" -#: LiteEditor/tags_options_base_dlg.cpp:79 -msgid "Display function argument list after typing an open brace '('" +#: LiteEditor/frame.cpp:3331 +msgid "No workspaces found." msgstr "" -#: LiteEditor/tags_options_base_dlg.cpp:85 -msgid "Display completion box for language keywords" +#: LiteEditor/frame.cpp:3368 +msgid "No files found." msgstr "" -#: LiteEditor/tags_options_base_dlg.cpp:87 -msgid "" -"When enabled, codelite will auto show the code completion box for C/C++ " -"keywords after typing 2 chars" +#: LiteEditor/frame.cpp:3565 +msgid "Open IDE Solution/Workspace File" msgstr "" -#: LiteEditor/tags_options_base_dlg.cpp:93 -msgid "Keep function signature un-formatted" +#: LiteEditor/frame.cpp:3582 +msgid "Select the compiler to use:" msgstr "" -#: LiteEditor/tags_options_base_dlg.cpp:98 -msgid "Behavior:" +#: LiteEditor/frame.cpp:3630 +msgid "Attempting to debug workspace with no active project? Ignoring." msgstr "" -#: LiteEditor/tags_options_base_dlg.cpp:108 -msgid "Perform a retag when workspace is loaded" +#: LiteEditor/frame.cpp:3638 +msgid "Would you like to build the project before debugging it?" msgstr "" -#: LiteEditor/tags_options_base_dlg.cpp:110 -msgid "Retag workspace once loaded" +#: LiteEditor/frame.cpp:3640 +msgid "Build and Debug" msgstr "" -#: LiteEditor/tags_options_base_dlg.cpp:114 -msgid "Do not parse the file after saving it" +#: LiteEditor/frame.cpp:4241 +msgid "Download Now!" msgstr "" -#: LiteEditor/tags_options_base_dlg.cpp:116 -msgid "Do not trigger file parsing after saving a file" +#: LiteEditor/frame.cpp:4247 +msgid "A new version of codelite is available" msgstr "" -#: LiteEditor/tags_options_base_dlg.cpp:120 -msgid "Scan all included files to locate 'using namespace' statements" +#: LiteEditor/frame.cpp:4258 +msgid "CodeLite is up-to-date" msgstr "" -#: LiteEditor/tags_options_base_dlg.cpp:122 -msgid "Allways search for 'using namespace' statements in all included files" +#: LiteEditor/frame.cpp:4652 LiteEditor/frame.cpp:4742 +msgid "Could not start TTY console for debugger!" msgstr "" -#: LiteEditor/tags_options_base_dlg.cpp:127 -msgid "Colouring" +#: LiteEditor/frame.cpp:4942 +msgid "" +"Workspace or project settings have been modified outside of CodeLite\n" +"Would you like to reload the workspace?" msgstr "" -#: LiteEditor/tags_options_base_dlg.cpp:140 -msgid "Track PreProcessor blocks" +#: LiteEditor/frame.cpp:4945 codelitephp/php-plugin/php_workspace_view.cpp:215 +msgid "Reload workspace" msgstr "" -#: LiteEditor/tags_options_base_dlg.cpp:141 -msgid "" -"Track Pre Processor blocks in the code and colour unreachable code with grey " -"text (\"disabled text\")" +#: LiteEditor/frame.cpp:4946 LiteEditor/frame.cpp:5279 +msgid "Not now" msgstr "" -#: LiteEditor/tags_options_base_dlg.cpp:143 -msgid "Colour local variables" +#: LiteEditor/frame.cpp:5231 +msgid "Tags cache cleared" msgstr "" -#: LiteEditor/tags_options_base_dlg.cpp:144 -msgid "" -"Local variables inside functions will use their own colour to diffrentiate " -"them from other code\n" -"The colour can be selected from the 'Colours and Fonts' menu" +#: LiteEditor/frame.cpp:5268 +msgid "Some of the changes made requires restart of CodeLite" msgstr "" -#: LiteEditor/tags_options_base_dlg.cpp:148 -msgid "class" +#: LiteEditor/frame.cpp:5272 +msgid "Restart Now!" msgstr "" -#: LiteEditor/tags_options_base_dlg.cpp:149 -msgid "struct" +#: LiteEditor/frame.cpp:5282 +msgid "Some of the changes made require a restart of CodeLite. Restart now?" msgstr "" -#: LiteEditor/tags_options_base_dlg.cpp:150 -msgid "function" +#: LiteEditor/frame.cpp:5373 +#, c-format +msgid "INFO: Retag workspace completed in %ld seconds (%lu files were scanned)" msgstr "" -#: LiteEditor/tags_options_base_dlg.cpp:151 -msgid "enum" +#: LiteEditor/frame.cpp:5385 +msgid "INFO: Retag workspace completed in 0 seconds (No files were retagged)" msgstr "" -#: LiteEditor/tags_options_base_dlg.cpp:152 -msgid "enumerator" +#: LiteEditor/buildsettingstabbase.cpp:40 +msgid "Font" msgstr "" -#: LiteEditor/tags_options_base_dlg.cpp:153 -msgid "union" +#: LiteEditor/buildsettingstabbase.cpp:41 +msgid "Select the font to use in the build output tab" msgstr "" -#: LiteEditor/tags_options_base_dlg.cpp:154 -msgid "prototype" +#: LiteEditor/buildsettingstabbase.cpp:44 +msgid "Error colour" msgstr "" -#: LiteEditor/tags_options_base_dlg.cpp:155 -msgid "typedef" +#: LiteEditor/buildsettingstabbase.cpp:45 +msgid "Use this colour to highlight build error messages" msgstr "" -#: LiteEditor/tags_options_base_dlg.cpp:156 -msgid "macro" +#: LiteEditor/buildsettingstabbase.cpp:47 +msgid "Warnings colour" msgstr "" -#: LiteEditor/tags_options_base_dlg.cpp:157 -msgid "namespace" +#: LiteEditor/buildsettingstabbase.cpp:48 +msgid "Use this colour to highlight build warning messages" msgstr "" -#: LiteEditor/tags_options_base_dlg.cpp:158 -msgid "member" +#: LiteEditor/buildsettingstabbase.cpp:53 +msgid "Skip warnings" msgstr "" -#: LiteEditor/tags_options_base_dlg.cpp:159 -msgid "variable" +#: LiteEditor/buildsettingstabbase.cpp:54 +msgid "When using the menu to jump to errors, skip warnings" msgstr "" -#: LiteEditor/tags_options_base_dlg.cpp:172 -msgid "Colour workspace symbols" +#: LiteEditor/buildsettingstabbase.cpp:56 +msgid "Auto hide build pane" msgstr "" -#: LiteEditor/tags_options_base_dlg.cpp:173 +#: LiteEditor/buildsettingstabbase.cpp:57 msgid "" -"Select from the list below which symbols type should be coloured by codelite " -"with different colour.\n" -"The colour is configurable from the 'Colours and Fonts' dialog" +"Automatically hide the build pane when there are neither errors nor warnings" msgstr "" -#: LiteEditor/tags_options_base_dlg.cpp:176 -msgid "Triggering" +#: LiteEditor/buildsettingstabbase.cpp:61 +msgid "When build starts" msgstr "" -#: LiteEditor/tags_options_base_dlg.cpp:181 -msgid "Automatic Word Completion:" +#: LiteEditor/buildsettingstabbase.cpp:62 +msgid "When build ends" msgstr "" -#: LiteEditor/tags_options_base_dlg.cpp:192 -msgid "Auto display code completion box when typing" +#: LiteEditor/buildsettingstabbase.cpp:63 +msgid "Don't automatically show" msgstr "" -#: LiteEditor/tags_options_base_dlg.cpp:194 -msgid "" -"When enabled, codelite will auto show the code completion box after N chars " -"were typed" +#: LiteEditor/buildsettingstabbase.cpp:67 +msgid "Auto show build pane" msgstr "" -#: LiteEditor/tags_options_base_dlg.cpp:200 -#: LiteEditor/tags_options_base_dlg.cpp:201 -msgid "Minimun chars to type:" +#: LiteEditor/buildsettingstabbase.cpp:68 +msgid "Select when to show the build pane" msgstr "" -#: LiteEditor/tags_options_base_dlg.cpp:206 -msgid "Number of chars to type before showing the code completion box" +#: LiteEditor/buildsettingstabbase.cpp:72 +msgid "The first error" msgstr "" -#: LiteEditor/tags_options_base_dlg.cpp:210 -msgid "Auto insert single match" +#: LiteEditor/buildsettingstabbase.cpp:73 +msgid "The first warning or error" msgstr "" -#: LiteEditor/tags_options_base_dlg.cpp:212 -msgid "" -"When there is only a single match don't show the code completion box but " -"rather insert the match" +#: LiteEditor/buildsettingstabbase.cpp:74 +msgid "The end" msgstr "" -#: LiteEditor/tags_options_base_dlg.cpp:216 -msgid "CTags" +#: LiteEditor/buildsettingstabbase.cpp:78 +msgid "When build ends scroll to..." msgstr "" -#: LiteEditor/tags_options_base_dlg.cpp:219 -#: LiteEditor/tags_options_base_dlg.cpp:236 -msgid "Search paths" +#: LiteEditor/buildsettingstabbase.cpp:79 +msgid "After build finishes, if showing the build pane scroll to..." msgstr "" -#: LiteEditor/tags_options_base_dlg.cpp:229 -msgid "Search Paths" +#: LiteEditor/buildsettingstabbase.cpp:81 +msgid "Build error indicators" msgstr "" -#: LiteEditor/tags_options_base_dlg.cpp:236 -msgid "codelite will search for include files in these locations" +#: LiteEditor/buildsettingstabbase.cpp:84 +msgid "Use markers" msgstr "" -#: LiteEditor/tags_options_base_dlg.cpp:263 -#: LiteEditor/tags_options_base_dlg.cpp:307 -msgid "&Add..." +#: LiteEditor/buildsettingstabbase.cpp:85 +msgid "" +"Mark the line that contains the build error with a red marker on the left " +"margin" msgstr "" -#: LiteEditor/tags_options_base_dlg.cpp:267 SpellChecker/wxcrafter.cpp:218 -msgid "Suggest" +#: LiteEditor/buildsettingstabbase.cpp:87 +msgid "Use annotations" msgstr "" -#: LiteEditor/tags_options_base_dlg.cpp:268 -msgid "Suggest search paths based on the installed compilers" +#: LiteEditor/buildsettingstabbase.cpp:88 +msgid "" +"If checked, any errors or warnings will be displayed in the editor alongside " +"the failing code." msgstr "" -#: LiteEditor/tags_options_base_dlg.cpp:273 -msgid "Exclude Paths" +#: LiteEditor/AccelTableBaseDlg.h:54 +msgid "Keyboard Shortcuts" msgstr "" -#: LiteEditor/tags_options_base_dlg.cpp:280 -msgid "Exclude paths" +#: LiteEditor/dialogspagebase.cpp:42 +msgid "" +"Below is a list of the 'annoying' dialogs answers, you can modify \n" +"the answer of a dialog by checking / unchecking the saved answer" msgstr "" -#: LiteEditor/tags_options_base_dlg.cpp:280 -msgid "" -"codelite code completion will ignore any files found in one of the paths " -"below" +#: LiteEditor/movefuncimpldlg.cpp:80 +msgid "File: " msgstr "" -#: LiteEditor/tags_options_base_dlg.cpp:324 -msgid "File Types:" +#: LiteEditor/movefuncimpldlg.cpp:80 +msgid " does not exist" msgstr "" -#: LiteEditor/tags_options_base_dlg.cpp:339 -msgid "" -"CodeLite can suggest a list of 'Tokens' that will be added to the 'Tokens' " -"table based on parsing the following header files \n" -"(space separated list):" +#: LiteEditor/findresultstab.cpp:141 LiteEditor/findresultstab.cpp:143 +msgid "Stop current search" msgstr "" -#: LiteEditor/tags_options_base_dlg.cpp:354 -msgid "Parse!" +#: LiteEditor/findresultstab.cpp:331 +msgid "The search thread is currently busy" msgstr "" -#: LiteEditor/tags_options_base_dlg.cpp:363 -#: LiteEditor/tags_options_base_dlg.cpp:387 -msgid "" -"List here list of tokens to be pre-processed by codelite-indexer. \n" -"Usually, you would like to add here macros which confuse the parser\n" -"Click the below link to read more about this feature and the syntax " -"supported.\n" +#: LiteEditor/findresultstab.cpp:413 +msgid "====== Searching for: '" msgstr "" -#: LiteEditor/tags_options_base_dlg.cpp:364 -msgid "Tokens" +#: LiteEditor/findresultstab.cpp:413 +msgid "'; Match case: " msgstr "" -#: LiteEditor/tags_options_base_dlg.cpp:386 -msgid "" -"List here list of tokens to be pre-processed by codelite-indexer usually, " -"you would like to add here\n" -"macros which confuse the parser" +#: LiteEditor/findresultstab.cpp:414 +msgid " ; Match whole word: " msgstr "" -#: LiteEditor/tags_options_base_dlg.cpp:391 -msgid "Macros Handling" +#: LiteEditor/findresultstab.cpp:415 +msgid " ; Regular expression: " msgstr "" -#: LiteEditor/tags_options_base_dlg.cpp:409 -msgid "" -"Specify here a list of types which are to be specially handled while parsing " -"C and C++\n" -"source files in the format of TYPE1=TYPE2. So when TYPE1 is found, CodeLite " -"will offer\n" -"completion as if it was TYPE2 was found" +#: LiteEditor/findresultstab.cpp:701 +msgid "Reached the end of the 'Find In Files' results" msgstr "" -#: LiteEditor/tags_options_base_dlg.cpp:432 -msgid "Enable clang code completion" +#: LiteEditor/findresultstab.cpp:731 +msgid "Reached the start of the 'Find In Files' results" msgstr "" -#: LiteEditor/tags_options_base_dlg.cpp:454 -msgid "Only use clang code completion" +#: LiteEditor/findresultstab.cpp:760 +msgid "Search result is no longer valid" msgstr "" -#: LiteEditor/tags_options_base_dlg.cpp:456 +#: LiteEditor/workspacesettingsbase.cpp:44 msgid "" -"Check this option so codelite will use the clang's code completion over the " -"ctags one.\n" -"clang is more accurate, while ctags is faster" +"By default, CodeLite uses the current active environment variables set as " +"defined in the Settings > Environment Variables dialog.\n" +"However, you may choose a different set to become the active set when this " +"workspace is loaded selecting it here." msgstr "" -#: LiteEditor/tags_options_base_dlg.cpp:481 -msgid "Add here search paths used by clang for locating include files" +#: LiteEditor/workspacesettingsbase.cpp:48 +msgid "Environment sets:" msgstr "" -#: LiteEditor/tags_options_base_dlg.cpp:485 -msgid "Suggest search paths..." +#: LiteEditor/workspacesettingsbase.cpp:63 +msgid "" +"Specify here an additional environment variables that will be shared with " +"other people who are using this workspace:" msgstr "" -#: LiteEditor/tags_options_base_dlg.cpp:502 -msgid "Clear clang translation unit cache:" +#: LiteEditor/workspacesettingsbase.cpp:150 +msgid "Add here search paths used by clang / ctags for locating include files" +msgstr "" + +#: LiteEditor/workspacesettingsbase.cpp:160 +msgid "Macros (clang):" msgstr "" -#: LiteEditor/tags_options_base_dlg.cpp:507 +#: LiteEditor/workspacesettingsbase.cpp:165 msgid "" -"Clicking this button will erase all clang's generated PCH files. \n" -"Use this button as the first step to resolve a code completion issue" +"Add here macros to pass to clang when generating PCH files\n" +"One macro per line" msgstr "" -#: LiteEditor/tags_options_base_dlg.cpp:511 -msgid "Parsing policy:" +#: LiteEditor/workspacesettingsbase.cpp:173 +#: LiteEditor/project_settings_base_dlg.cpp:1158 +msgid "Enable C++11 Standard" msgstr "" -#: LiteEditor/tags_options_dlg.cpp:253 -msgid "Add ctags Parser Exclude Path:" +#: LiteEditor/workspacesettingsbase.cpp:178 +#: LiteEditor/project_settings_base_dlg.cpp:1164 +msgid "Enable C++14 Standard" msgstr "" -#: LiteEditor/tags_options_dlg.cpp:272 -msgid "Add ctags Parser Search Path:" +#: LiteEditor/debugcoredumpbase.cpp:53 +msgid "Core dump to be opened:" msgstr "" -#: LiteEditor/tags_options_dlg.cpp:365 +#: LiteEditor/debugcoredumpbase.cpp:58 msgid "" -"Accepting this suggestion will replace your old search paths with these " -"paths\n" -"Continue?" +"Enter the full filepath of the core dump to be examined.\n" +"Or, if you enter the correct working directory below, just the filename will " +"suffice." msgstr "" -#: LiteEditor/tagsparsersearchpathsbasedlg.cpp:47 -msgid "" -"The following include paths were detected on your system and will be added " -"to your parser search path.\n" -"You may remove a path by unchecking it.\n" -"\n" -"You can always add/remove paths to the parser from the main menu:\n" -"Settings > Tags Settings > Parser" +#: LiteEditor/debugcoredumpbase.cpp:65 +msgid "Corresponding executable:" msgstr "" -#: LiteEditor/taskpanel.cpp:53 -msgid "Sources" +#: LiteEditor/debugcoredumpbase.cpp:70 +msgid "" +"Enter the full filepath of the executable that crashed to cause the core " +"dump.\n" +"Or, if you enter the correct working directory below, just the filename will " +"suffice." msgstr "" -#: LiteEditor/taskpanel.cpp:55 cppchecker/cppchecksettingsdlg.cpp:148 -msgid "All Files" +#: LiteEditor/debugcoredumpbase.cpp:77 +msgid "Working directory (optional):" msgstr "" -#: LiteEditor/taskpanel.cpp:60 -msgid "&Search" +#: LiteEditor/CompilersModifiedDlg.cpp:47 +msgid "Create a new compiler named '" msgstr "" -#: LiteEditor/taskpanel.cpp:63 -msgid "Find What..." +#: LiteEditor/quickdebugbase.h:53 +msgid "Quick Debug" msgstr "" -#: LiteEditor/taskpanel.cpp:69 -msgid "Select the scope of the search" +#: LiteEditor/edit_configuration.cpp:143 LiteEditor/edit_configuration.cpp:165 +msgid "Enter New Name:" msgstr "" -#: LiteEditor/taskpanel.cpp:74 -msgid "Encoding to use for the search" +#: LiteEditor/edit_configuration.cpp:181 +msgid "Remove configuration '" msgstr "" -#: LiteEditor/tasks_find_what_dlg.cpp:49 -msgid "Enabled" +#: LiteEditor/edit_configuration.cpp:182 +msgid "' ?" msgstr "" -#: LiteEditor/tasks_find_what_dlg.cpp:50 -msgid "Task" +#: LiteEditor/syntaxhighlightbasedlg.cpp:44 +msgid "New Theme..." msgstr "" -#: LiteEditor/tasks_find_what_dlg.cpp:72 -msgid "New Task" +#: LiteEditor/syntaxhighlightbasedlg.cpp:46 +msgid "Export syntax highlight settings to zip file" msgstr "" -#: LiteEditor/tasks_find_what_dlg.cpp:76 -#, c-format -msgid "'%s' is not a valid regular expression" +#: LiteEditor/syntaxhighlightbasedlg.cpp:51 +msgid "Export All" msgstr "" -#: LiteEditor/tasks_find_what_dlg.cpp:91 -msgid "Are you sure you want to delete this entry?" +#: LiteEditor/syntaxhighlightbasedlg.cpp:53 +msgid "Export..." msgstr "" -#: LiteEditor/tasks_find_what_dlg.cpp:110 -msgid "Edit Task" +#: LiteEditor/syntaxhighlightbasedlg.cpp:53 +msgid "Export specific lexers" msgstr "" -#: LiteEditor/tasksfindwhatdlgbase.cpp:121 -msgid "Task Name:" +#: LiteEditor/syntaxhighlightbasedlg.cpp:59 +msgid "Import settings from a zip archive" msgstr "" -#: LiteEditor/tasksfindwhatdlgbase.cpp:128 -msgid "Regular Expression:" +#: LiteEditor/syntaxhighlightbasedlg.cpp:61 +msgid "Revert to default settings" msgstr "" -#: LiteEditor/threadlistpanel.cpp:50 -msgid "Thread ID" +#: LiteEditor/syntaxhighlightbasedlg.cpp:63 +msgid "Import Eclipse Theme" msgstr "" -#: LiteEditor/threadlistpanel.cpp:51 -msgid "Active" +#: LiteEditor/syntaxhighlightbasedlg.cpp:68 +msgid "Load eclipse theme website" msgstr "" -#: LiteEditor/threadlistpanel.cpp:76 -#: codelitephp/php-plugin/php_workspace_view.cpp:663 -#: codelitephp/php-plugin/php_workspace_view.cpp:682 -msgid "No" +#: LiteEditor/syntaxhighlightbasedlg.cpp:81 +msgid "Set global colours and fonts" msgstr "" -#: LiteEditor/threadlistpanel.cpp:76 -#: codelitephp/php-plugin/php_workspace_view.cpp:662 -#: codelitephp/php-plugin/php_workspace_view.cpp:681 -msgid "Yes" +#: LiteEditor/syntaxhighlightbasedlg.cpp:94 +msgid "Global font:" msgstr "" -#: LiteEditor/workspace_pane.cpp:83 LiteEditor/workspace_pane.cpp:107 -#: LiteEditor/workspace_pane.cpp:188 LiteEditor/workspace_pane.cpp:305 -#: LiteEditor/workspace_pane.cpp:323 LiteEditor/workspace_pane.cpp:324 -msgid "Workspace" +#: LiteEditor/syntaxhighlightbasedlg.cpp:99 +msgid "Set a global font for all the supported languages" msgstr "" -#: LiteEditor/workspace_pane.cpp:88 LiteEditor/workspace_pane.cpp:166 -msgid "Parsing workspace..." +#: LiteEditor/syntaxhighlightbasedlg.cpp:103 +msgid "Global theme:" msgstr "" -#: LiteEditor/workspace_pane.cpp:118 LiteEditor/workspace_pane.cpp:189 -#: LiteEditor/workspace_pane.cpp:303 LiteEditor/workspace_pane.cpp:327 -#: LiteEditor/workspace_pane.cpp:328 -msgid "Explorer" +#: LiteEditor/syntaxhighlightbasedlg.cpp:109 +msgid "" +"Set a global theme for all the supported languages.\n" +"If the theme is not available for a given language, CodeLite will use the " +"next available theme from\n" +"the same family" msgstr "" -#: LiteEditor/workspace_pane.cpp:130 LiteEditor/workspace_pane.cpp:190 -#: LiteEditor/workspace_pane.cpp:308 LiteEditor/workspace_pane.cpp:332 -#: LiteEditor/workspace_pane.cpp:333 -msgid "Tabs" +#: LiteEditor/syntaxhighlightbasedlg.cpp:113 +msgid "Global foreground Colour:" msgstr "" -#: LiteEditor/workspace_pane.cpp:142 LiteEditor/workspace_pane.cpp:191 -#: LiteEditor/workspace_pane.cpp:311 LiteEditor/workspace_pane.cpp:337 -#: LiteEditor/workspace_pane.cpp:338 -msgid "Tabgroups" +#: LiteEditor/syntaxhighlightbasedlg.cpp:118 +msgid "" +"This is where you can set the foreground colour for the Output View panes " +"(where you can see the output from e.g. 'Build' or 'Debug') and terminal " +"(where you see the trace output while debugging)" msgstr "" -#: LiteEditor/workspace_pane.cpp:179 -#, c-format -msgid "Parsing workspace: %d%% completed" +#: LiteEditor/syntaxhighlightbasedlg.cpp:122 +#: LiteEditor/syntaxhighlightbasedlg.cpp:190 +msgid "Global background Colour:" msgstr "" -#: LiteEditor/workspacesettingsbase.cpp:43 +#: LiteEditor/syntaxhighlightbasedlg.cpp:127 msgid "" -"By default, CodeLite uses the current active environment variables set as " -"defined in the Settings > Environment Variables dialog.\n" -"However, you may choose a different set to become the active set when this " -"workspace is loaded selecting it here." +"This is where you can set the background colour for the Output View panes " +"(where you can see the output from e.g. 'Build' or 'Debug') and terminal " +"(where you see the trace output while debugging)" msgstr "" -#: LiteEditor/workspacesettingsbase.cpp:47 -msgid "Environment sets:" +#: LiteEditor/syntaxhighlightbasedlg.cpp:132 +msgid "Customize your colours and font per language" msgstr "" -#: LiteEditor/workspacesettingsbase.cpp:62 -msgid "" -"Specify here an additional environment variables that will be shared with " -"other people who are using this workspace:" +#: LiteEditor/syntaxhighlightbasedlg.cpp:168 +msgid "Available Themes:" msgstr "" -#: LiteEditor/workspacesettingsbase.cpp:136 -msgid "Add here search paths used by clang / ctags for locating include files" +#: LiteEditor/syntaxhighlightbasedlg.cpp:181 +msgid "Global Font:" msgstr "" -#: LiteEditor/workspacesettingsbase.cpp:146 -msgid "Macros (clang):" +#: LiteEditor/syntaxhighlightbasedlg.cpp:186 +msgid "Use this to select a font to be used by *all* styles of this lexer" msgstr "" -#: LiteEditor/workspacesettingsbase.cpp:151 +#: LiteEditor/syntaxhighlightbasedlg.cpp:195 msgid "" -"Add here macros to pass to clang when generating PCH files\n" -"One macro per line" +"Use this to select a background colour to be used by *all* styles of this " +"lexer" msgstr "" -#: LiteEditor/workspacesettingsdlg.cpp:61 -msgid "" +#: LiteEditor/syntaxhighlightbasedlg.cpp:199 +msgid "File Extensions:" msgstr "" -#: LiteEditor/workspacetab.cpp:45 -msgid "" +#: LiteEditor/syntaxhighlightbasedlg.cpp:204 +msgid "Associate this lexer with files which have these extensions" msgstr "" -#: LiteEditor/workspacetab.cpp:448 -msgid " Project Settings" +#: LiteEditor/syntaxhighlightbasedlg.cpp:212 +msgid "Styles" msgstr "" -#: LiteEditor/wxcAboutDlg.cpp:58 SnipWiz/editsnippetsbasedlg.cpp:127 -msgid "About" +#: LiteEditor/syntaxhighlightbasedlg.cpp:237 +msgid "Style Font:" msgstr "" -#: LiteEditor/wxcAboutDlg.cpp:68 -msgid "Credits" +#: LiteEditor/syntaxhighlightbasedlg.cpp:242 +msgid "Select a font to be used with the selected style" msgstr "" -#: LiteEditor/wxcAboutDlg.cpp:79 -msgid "License" +#: LiteEditor/syntaxhighlightbasedlg.cpp:246 +msgid "Foreground Colour:" msgstr "" -#: LiteEditor/wxcAboutDlg.cpp:98 -msgid "Home Page:" +#: LiteEditor/syntaxhighlightbasedlg.cpp:251 +msgid "Select the foreground colour for the selected style" msgstr "" -#: LiteEditor/wxcAboutDlg.cpp:102 -msgid "http://www.codelite.org" +#: LiteEditor/syntaxhighlightbasedlg.cpp:260 +msgid "Select the background colour for the selected style" msgstr "" -#: LiteEditor/wxcAboutDlg.cpp:106 -msgid "CodeLite Forum:" +#: LiteEditor/syntaxhighlightbasedlg.cpp:266 +msgid "Style is EOL Filled" msgstr "" -#: LiteEditor/wxcAboutDlg.cpp:110 -msgid "http://forums.codelite.org" +#: LiteEditor/syntaxhighlightbasedlg.cpp:268 +msgid "" +"If a line ends with a character/word which has this style, the remaining of " +"the line will be coloured with this style background colour" msgstr "" -#: LiteEditor/wxcAboutDlg.cpp:126 -msgid "Support CodeLite" +#: LiteEditor/syntaxhighlightbasedlg.cpp:274 +msgid "Styling Within Pre-processor Line" msgstr "" -#: LiteEditor/wxcrafter.cpp:93 -msgid "Keep pane open" +#: LiteEditor/syntaxhighlightbasedlg.cpp:283 +msgid "Edit Lexer Keyword Sets:" msgstr "" -#: LiteEditor/wxcrafter.cpp:95 -msgid "Auto Scroll to Bottom" +#: LiteEditor/syntaxhighlightbasedlg.cpp:291 +msgid "Set &0" msgstr "" -#: LiteEditor/wxcrafter.cpp:95 -msgid "" -"When checked, make sure that the last line added\n" -"is always visible" +#: LiteEditor/syntaxhighlightbasedlg.cpp:295 +msgid "Set &1" msgstr "" -#: LiteEditor/wxcrafter.cpp:99 -msgid "Clear Build Output" +#: LiteEditor/syntaxhighlightbasedlg.cpp:299 +msgid "Set &2" msgstr "" -#: LiteEditor/wxcrafter.cpp:101 -msgid "Save Build Log..." +#: LiteEditor/syntaxhighlightbasedlg.cpp:303 +msgid "Set &3" msgstr "" -#: LiteEditor/wxcrafter.cpp:103 -msgid "Copy Build Output to Clipboard" +#: LiteEditor/syntaxhighlightbasedlg.cpp:307 +msgid "Set &4" msgstr "" -#: LiteEditor/wxcrafter.cpp:105 -msgid "Paste Build Output into an Empty Editor" +#: LiteEditor/syntaxhighlightbasedlg.cpp:312 +msgid "Text Selection" msgstr "" -#: LiteEditor/wxcrafter.cpp:300 +#: LiteEditor/syntaxhighlightbasedlg.cpp:324 +msgid "Selected Text Background Colour:" +msgstr "" + +#: LiteEditor/syntaxhighlightbasedlg.cpp:332 +msgid "Use Custom Selection Forground Colour:" +msgstr "" + +#: LiteEditor/syntaxhighlightbasedlg.cpp:338 msgid "" -"It seems that the wxCrafter plugin is not installed\n" -"What would you like to do?" +"You can choose to override the default selection colouring by enabling this " +"checkbox" msgstr "" -#: LiteEditor/wxcrafter.cpp:300 -msgid "Plugin is not installed" +#: LiteEditor/syntaxhighlightbasedlg.cpp:342 +msgid "Selected Text Foreground Colour:" msgstr "" -#: LiteEditor/wxcrafter.cpp:313 -msgid "Download wxCrafter plugin from codelite's website" +#: LiteEditor/syntaxhighlightbasedlg.cpp:532 +msgid "Theme Name:" msgstr "" -#: LiteEditor/wxcrafter.cpp:313 Plugin/clBoostrapWizardBase.cpp:114 -msgid "Install" +#: LiteEditor/syntaxhighlightbasedlg.cpp:537 +msgid "Set the theme name" msgstr "" -#: LiteEditor/wxcrafter.cpp:319 -msgid "Continue" +#: LiteEditor/syntaxhighlightbasedlg.cpp:545 +#: CodeDesigner/codedesigneritembasedlg.cpp:43 +msgid "Language:" msgstr "" -#: LiteEditor/wxcrafter.cpp:319 -msgid "Ignore the missing plugin and create the project anyway" +#: LiteEditor/syntaxhighlightbasedlg.cpp:551 +msgid "Make this theme for this language" msgstr "" -#: LiteEditor/wxcrafter.cpp:357 -msgid "Implement functions" +#: LiteEditor/syntaxhighlightbasedlg.cpp:555 +msgid "Based on Theme:" msgstr "" -#: LiteEditor/wxcrafter.cpp:357 -msgid "Select the functions you want to implement" +#: LiteEditor/syntaxhighlightbasedlg.cpp:561 +msgid "Set the base theme for this new theme" msgstr "" -#: LiteEditor/wxcrafter.cpp:364 -msgid "The functions will be placed into this file" +#: LiteEditor/debugcoredumpbase.h:89 +msgid "Debug a core dump" msgstr "" -#: LiteEditor/wxcrafter.cpp:464 LiteEditor/wxcrafter.cpp:465 -msgid "Create a new workspace" +#: LiteEditor/debugcoredump.cpp:152 +msgid "Select core dump:" msgstr "" -#: LiteEditor/wxcrafter.cpp:464 -msgid "New Workspace" +#: LiteEditor/listctrlpanel.cpp:121 +msgid "Copy Backtrace to Clipboard" msgstr "" -#: LiteEditor/wxcrafter.cpp:469 -msgid "Open an existing workspace" +#: LiteEditor/project_settings_base_dlg.cpp:128 +msgid "Project enabled" msgstr "" -#: LiteEditor/wxcrafter.cpp:470 +#: LiteEditor/project_settings_base_dlg.cpp:130 msgid "" -"Click to create a new project.\n" -"If NO workspace is open, it will auto create a workspace before creating the " -"project" +"When unchecked, this project will not be built for the current build " +"configuration" msgstr "" -#: LiteEditor/wxcrafter.cpp:474 -msgid "Open a recently used workspace" +#: LiteEditor/project_settings_base_dlg.cpp:142 +msgid "General Project Settings" msgstr "" -#: LiteEditor/wxcrafter.cpp:474 -msgid "Recent workspaces" +#: LiteEditor/project_settings_base_dlg.cpp:147 +msgid "Dynamic Library" msgstr "" -#: LiteEditor/wxcrafter.cpp:475 -msgid "Open a workspace from a list of recently opened workspaces" +#: LiteEditor/project_settings_base_dlg.cpp:148 +msgid "Static Library" msgstr "" -#: LiteEditor/wxcrafter.cpp:479 -msgid "Open a recently used file" +#: LiteEditor/project_settings_base_dlg.cpp:149 +msgid "Executable" msgstr "" -#: LiteEditor/wxcrafter.cpp:479 -msgid "Recent files" +#: LiteEditor/project_settings_base_dlg.cpp:150 +msgid "Project Type" msgstr "" -#: LiteEditor/wxcrafter.cpp:480 -msgid "Open a file from the revcently opened files" +#: LiteEditor/project_settings_base_dlg.cpp:151 +msgid "Sets the type of the project" msgstr "" -#: LiteEditor/wxcrafter.cpp:484 -msgid "Forums" +#: LiteEditor/project_settings_base_dlg.cpp:156 +msgid "" +"Select the compiler to use. The compiler controls two aspects of the " +"project:\n" +"- If the project is _not_ a custom build, then this compiler is used for " +"compilation\n" +"- CodeLite uses the compiler definition for parsing the output" msgstr "" -#: LiteEditor/wxcrafter.cpp:484 -msgid "Visit codelite's forums" +#: LiteEditor/project_settings_base_dlg.cpp:158 +msgid "Intermediate Folder" msgstr "" -#: LiteEditor/wxcrafter.cpp:485 -msgid "Click to open a web browser in CodeLite's forums" +#: LiteEditor/project_settings_base_dlg.cpp:159 +msgid "" +"The name of the folder used for the generated objects during compilation" msgstr "" -#: LiteEditor/wxcrafter.cpp:489 -msgid "Search codelite's wiki pages" +#: LiteEditor/project_settings_base_dlg.cpp:161 +msgid "Output File" msgstr "" -#: LiteEditor/wxcrafter.cpp:489 -msgid "Wiki" +#: LiteEditor/project_settings_base_dlg.cpp:162 +msgid "The name of the output file (e.g. the executable file name)" msgstr "" -#: LiteEditor/wxcrafter.cpp:490 -msgid "Click to open a web browser in CodeLite's wiki main documentation page" +#: LiteEditor/project_settings_base_dlg.cpp:164 +#: codelitephp/php-plugin/php_ui.cpp:723 +msgid "Pause when execution ends" msgstr "" -#: LiteEditor/wxcrafter.cpp:586 LiteEditor/wxcrafter.cpp:1041 -#: Subversion2/subversion_view.cpp:253 Subversion2/subversion_view.cpp:255 -msgid "Link Editor" +#: LiteEditor/project_settings_base_dlg.cpp:165 +msgid "" +"After the execution of the program ends, show a console with the message " +"\"Hit any key to continue...\"\n" +"This is useful when you wish to view the output printed to stdout before the " +"console terminates" msgstr "" -#: LiteEditor/wxcrafter.cpp:588 LiteEditor/wxcrafter.cpp:1043 -#: codelitephp/php-plugin/php_ui.cpp:989 -msgid "Collapse All" +#: LiteEditor/project_settings_base_dlg.cpp:167 +msgid "Execution" msgstr "" -#: LiteEditor/wxcrafter.cpp:590 -msgid "Goto Active Project" +#: LiteEditor/project_settings_base_dlg.cpp:170 +msgid "This program is a GUI application" msgstr "" -#: LiteEditor/wxcrafter.cpp:592 +#: LiteEditor/project_settings_base_dlg.cpp:171 msgid "" -"Open selected project settings. If there is no project selected, open the " -"parent project of the seleced item in the tree" +"By marking the project as a GUI project, CodeLite will launch the program " +"without any console terminal wrapping the process execution" msgstr "" -#: LiteEditor/wxcrafter.cpp:592 -msgid "Project Settings" +#: LiteEditor/project_settings_base_dlg.cpp:173 +msgid "Executable to Run / Debug" msgstr "" -#: LiteEditor/wxcrafter.cpp:602 -msgid "Resize the configuration bar" +#: LiteEditor/project_settings_base_dlg.cpp:174 +msgid "The executable to run / debug" msgstr "" -#: LiteEditor/wxcrafter.cpp:615 -msgid "Select the active project" +#: LiteEditor/project_settings_base_dlg.cpp:177 +msgid "Working Directory" msgstr "" -#: LiteEditor/wxcrafter.cpp:627 -msgid "Select the workspace build configuration" +#: LiteEditor/project_settings_base_dlg.cpp:178 +msgid "The working directory to set before executing or debugging the program" msgstr "" -#: LiteEditor/wxcrafter.cpp:752 LiteEditor/wxcrafter.cpp:776 -#: LiteEditor/wxcrafter.cpp:849 -msgid "New Project" +#: LiteEditor/project_settings_base_dlg.cpp:181 +msgid "Program Arguments" msgstr "" -#: LiteEditor/wxcrafter.cpp:752 -msgid "Select the project template from the list below" +#: LiteEditor/project_settings_base_dlg.cpp:182 +msgid "" +"The command line arguments to pass to the program when executing or " +"debugging it" msgstr "" -#: LiteEditor/wxcrafter.cpp:767 -msgid "Template" +#: LiteEditor/project_settings_base_dlg.cpp:184 +msgid "Debugging" msgstr "" -#: LiteEditor/wxcrafter.cpp:776 -msgid "Set the project path and name" +#: LiteEditor/project_settings_base_dlg.cpp:190 +msgid "Select the debugger type to use for this project" msgstr "" -#: LiteEditor/wxcrafter.cpp:789 Plugin/nameanddescbasedlg.cpp:50 -#: QmakePlugin/NewQtProj.cpp:60 -msgid "Project name:" +#: LiteEditor/project_settings_base_dlg.cpp:192 +msgid "Use separate debugger args" msgstr "" -#: LiteEditor/wxcrafter.cpp:794 +#: LiteEditor/project_settings_base_dlg.cpp:193 msgid "" -"Set the project name. A project name can contains A-Z, 0-9 and _ characters " -"only" -msgstr "" - -#: LiteEditor/wxcrafter.cpp:811 -msgid "Select the location of the project. The location must exist." +"When enabled (.e.g. set to True) codelite will pass the arguments set in " +"'Debug Program Arguments'" msgstr "" -#: LiteEditor/wxcrafter.cpp:819 -msgid "Browse for folder" +#: LiteEditor/project_settings_base_dlg.cpp:195 +msgid "Debug Program Arguments" msgstr "" -#: LiteEditor/wxcrafter.cpp:827 -msgid "" -"When checked, codelite will place the project under a separate directory. " -"The full path of the project file is displayed below" +#: LiteEditor/project_settings_base_dlg.cpp:196 +msgid "Arguments to pass to the debugger" msgstr "" -#: LiteEditor/wxcrafter.cpp:849 -msgid "Select the project toolchain" +#: LiteEditor/project_settings_base_dlg.cpp:234 +msgid "Compiler is not required for this project" msgstr "" -#: LiteEditor/wxcrafter.cpp:862 -msgid "Compiler:" +#: LiteEditor/project_settings_base_dlg.cpp:247 +#: LiteEditor/project_settings_base_dlg.cpp:350 +#: LiteEditor/project_settings_base_dlg.cpp:944 +msgid "Options" msgstr "" -#: LiteEditor/wxcrafter.cpp:871 -msgid "Debugger:" +#: LiteEditor/project_settings_base_dlg.cpp:252 +msgid "Append to global settings" msgstr "" -#: LiteEditor/wxcrafter.cpp:934 -msgid "Enable Clang" +#: LiteEditor/project_settings_base_dlg.cpp:253 +msgid "Overwrite global settings" msgstr "" -#: LiteEditor/wxcrafter.cpp:936 -msgid "Enable Clang code completion" +#: LiteEditor/project_settings_base_dlg.cpp:254 +msgid "Prepend to global settings" msgstr "" -#: LiteEditor/wxcrafter.cpp:939 -msgid "Inline Errors" +#: LiteEditor/project_settings_base_dlg.cpp:255 +msgid "Use with Global Settings" msgstr "" -#: LiteEditor/wxcrafter.cpp:941 +#: LiteEditor/project_settings_base_dlg.cpp:256 msgid "" -"Display Clang errors as text annotations inside the editor (i.e. as an " -"inline messages)" +"Define how CodeLite will merge the compiler settings defined in the 'Global " +"Settings' with the settings defined on this page" msgstr "" -#: LiteEditor/wxcrafter.cpp:946 -msgid "Cache policy:" +#: LiteEditor/project_settings_base_dlg.cpp:258 +#: LiteEditor/project_settings_base_dlg.cpp:925 +msgid "C++ Compiler Options" msgstr "" -#: LiteEditor/wxcrafter.cpp:952 -msgid "Clear Clang Cache" +#: LiteEditor/project_settings_base_dlg.cpp:259 +msgid "" +"Additional compiler options to pass to the compiler provided as a semi-colon " +"delimited list" msgstr "" -#: LiteEditor/wxcrafter.cpp:954 SFTP/SFTPStatusPage.cpp:86 git/gitui.cpp:1203 -msgid "Clear Log" +#: LiteEditor/project_settings_base_dlg.cpp:262 +#: LiteEditor/project_settings_base_dlg.cpp:929 +msgid "C Compiler Options" msgstr "" -#: LiteEditor/wxcrafter.cpp:1045 -msgid "Go Home" +#: LiteEditor/project_settings_base_dlg.cpp:263 +msgid "" +"Additional C compiler options to pass to the compiler provided as a semi-" +"colon delimited list (used for C files only)" msgstr "" -#: LiteEditor/wxcrafter.cpp:1047 -msgid "Bookmark" +#: LiteEditor/project_settings_base_dlg.cpp:266 +msgid "Assembler Options" msgstr "" -#: LiteEditor/wxcrafter.cpp:1047 -msgid "Bookmark Selected Folder" +#: LiteEditor/project_settings_base_dlg.cpp:267 +msgid "" +"Additional assembler options to pass to the assembler provided as a semi-" +"colon delimited list\n" +"(used for .s files only)" msgstr "" -#: LiteEditor/wxcrafter.cpp:1053 -msgid "GoTo" +#: LiteEditor/project_settings_base_dlg.cpp:269 +msgid "Include Paths" msgstr "" -#: LiteEditor/wxcrafter.cpp:1053 -msgid "Goto Folder" +#: LiteEditor/project_settings_base_dlg.cpp:270 +msgid "" +"Include path to pass to the compiler (provided as semi-colon delimited list)" msgstr "" -#: LiteEditor/wxcrafter.cpp:1083 -msgid "Goto Folder:" +#: LiteEditor/project_settings_base_dlg.cpp:274 +msgid "" +"macros (\"defines\") to pass to the compiler (provided as semi-colon " +"delimited list)" msgstr "" -#: LiteEditor/wxcrafter.cpp:1090 -msgid "Type the folder path" +#: LiteEditor/project_settings_base_dlg.cpp:277 +msgid "Pre Compiled Header" msgstr "" -#: MacBundler/macbundler.cpp:73 -msgid "Failed to load image" +#: LiteEditor/project_settings_base_dlg.cpp:281 +msgid "Pre compiled header" msgstr "" -#: MacBundler/macbundler.cpp:88 -msgid "Choose the icon file" +#: LiteEditor/project_settings_base_dlg.cpp:284 +msgid "Explicitly Include PCH" msgstr "" -#: MacBundler/macbundler.cpp:126 -msgid "Mac Bundler Configuration" +#: LiteEditor/project_settings_base_dlg.cpp:285 +msgid "" +"Explicitly include the PCH file in the command line using a compiler switch " +"(.e.g -include /path/to/pch)" msgstr "" -#: MacBundler/macbundler.cpp:136 -msgid "Choose which target(s) to \"bundle-ize\"" +#: LiteEditor/project_settings_base_dlg.cpp:287 +msgid "PCH Compile Flags" msgstr "" -#: MacBundler/macbundler.cpp:138 -msgid "Generate Info.plist file" +#: LiteEditor/project_settings_base_dlg.cpp:288 +msgid "Use separate compilation flags for the PCH file" msgstr "" -#: MacBundler/macbundler.cpp:144 -msgid "Copy the following icon into the project" +#: LiteEditor/project_settings_base_dlg.cpp:293 +msgid "Append" msgstr "" -#: MacBundler/macbundler.cpp:146 -msgid "Warning : applying these changes cannot be undone automatically" +#: LiteEditor/project_settings_base_dlg.cpp:296 +msgid "PCH Compile Flags Policy" msgstr "" -#: MacBundler/macbundler.cpp:147 -msgid "Apply changes" +#: LiteEditor/project_settings_base_dlg.cpp:297 +msgid "" +"Set the PCH flags policy to:\n" +"* Append - this means that the flags set in the 'PCH Compile Flags' field " +"will be appended to default flags\n" +"* Replace - the 'PCH Compile Flags' will replace any other flags" msgstr "" -#: MacBundler/macbundler.cpp:160 -msgid "Get Info Version String" +#: LiteEditor/project_settings_base_dlg.cpp:337 +msgid "Linker is not required for this project" msgstr "" -#: MacBundler/macbundler.cpp:162 -msgid "Version Number" +#: LiteEditor/project_settings_base_dlg.cpp:355 +#: LiteEditor/project_settings_base_dlg.cpp:612 +msgid "Use with global settings" msgstr "" -#: MacBundler/macbundler.cpp:164 -msgid "Icon File" +#: LiteEditor/project_settings_base_dlg.cpp:356 +#: LiteEditor/project_settings_base_dlg.cpp:613 +msgid "" +"Define how CodeLite will merge the linker settings defined in the 'Global " +"Settings' with the settings defined on this page" msgstr "" -#: MacBundler/macbundler.cpp:166 -msgid "Bundle Identifier" +#: LiteEditor/project_settings_base_dlg.cpp:359 +msgid "Add additional linker options separated by semi-colon" msgstr "" -#: MacBundler/macbundler.cpp:168 -msgid "4-Character Signature" +#: LiteEditor/project_settings_base_dlg.cpp:362 +msgid "Libraries Search Path" msgstr "" -#: MacBundler/macbundler.cpp:260 -msgid "Cannot access or create file!" +#: LiteEditor/project_settings_base_dlg.cpp:363 +msgid "Add additional library search paths separated by semi-colon" msgstr "" -#: MacBundler/macbundler.cpp:293 -msgid "Failed to write Info.plist file!" +#: LiteEditor/project_settings_base_dlg.cpp:366 +#: LiteEditor/project_settings_base_dlg.cpp:952 WebTools/WebToolsBase.cpp:78 +msgid "Libraries" msgstr "" -#: MacBundler/macbundler.cpp:323 -msgid "Manage OS X app bundles" +#: LiteEditor/project_settings_base_dlg.cpp:367 +#: LiteEditor/project_settings_base_dlg.cpp:953 +msgid "Enter any extra library names, separated by';' e.g. Foo or Foo;Bar" msgstr "" -#: MacBundler/macbundler.cpp:334 -msgid "No project is active, cannot continue." +#: LiteEditor/project_settings_base_dlg.cpp:417 +msgid "Select debugger path. Leave empty to use the default:" msgstr "" -#: MacBundler/macbundler.cpp:339 -msgid "Cannot retrieve active project, cannot continue." +#: LiteEditor/project_settings_base_dlg.cpp:443 +msgid "Debugger Search Paths" msgstr "" -#: MacBundler/macbundler.cpp:361 -msgid "This menu item can only be invoked when right-clicking a project." +#: LiteEditor/project_settings_base_dlg.cpp:457 +msgid "&Add.." msgstr "" -#: MacBundler/macbundler.cpp:374 -msgid "Cannot continue, impossible to access project settings." +#: LiteEditor/project_settings_base_dlg.cpp:461 +msgid "&Delete..." msgstr "" -#: MacBundler/macbundler.cpp:412 -#, c-format -msgid "" -"The following file:\n" -"%s\n" -"already exists, overwrite it?\n" +#: LiteEditor/project_settings_base_dlg.cpp:466 +msgid "Startup Commands" msgstr "" -#: MacBundler/macbundler.cpp:414 cppchecker/cppchecker.cpp:516 -#: cppchecker/cppchecker.cpp:659 -msgid "Warning" +#: LiteEditor/project_settings_base_dlg.cpp:471 +msgid "" +"Enter here any commands that should be passed to the debugger on startup:" msgstr "" -#: MacBundler/macbundler.cpp:426 -msgid "Could not create Info.plist file\n" +#: LiteEditor/project_settings_base_dlg.cpp:482 +msgid "Remote Attach Commands" msgstr "" -#: MacBundler/macbundler.cpp:460 -msgid "Sorry, could not copy icon" +#: LiteEditor/project_settings_base_dlg.cpp:487 +msgid "" +"Enter here any commands that should be passed to the debugger after " +"attaching the remote target:" msgstr "" -#: MacBundler/macbundler.cpp:468 -msgid "Sorry, could not convert selected icon to icns format" +#: LiteEditor/project_settings_base_dlg.cpp:497 +msgid "Debugging a remote target" msgstr "" -#: MacBundler/macbundler.cpp:600 -msgid "Make active project output a bundle" +#: LiteEditor/project_settings_base_dlg.cpp:509 +msgid "Host / tty:" msgstr "" -#: MacBundler/macbundler.cpp:613 -msgid "MacBundler" +#: LiteEditor/project_settings_base_dlg.cpp:531 +msgid "Extended Protocol" msgstr "" -#: MacBundler/macbundler.cpp:636 -msgid "Make this project output a bundle" +#: LiteEditor/project_settings_base_dlg.cpp:533 +msgid "" +"Enable extended mode. In extended mode, the remote server is made " +"persistent.\n" +"i.e. it does not go down after the debug session ends" msgstr "" -#: MemCheck/memcheck.cpp:171 MemCheck/memcheck.cpp:173 -#: MemCheck/memcheck.cpp:189 MemCheck/memcheck.cpp:191 -msgid "Run MemCheck" +#: LiteEditor/project_settings_base_dlg.cpp:615 +#: LiteEditor/project_settings_base_dlg.cpp:959 +msgid "Resource Compiler Options" msgstr "" -#: MemCheck/memcheck.cpp:176 MemCheck/memcheck.cpp:178 -#: MemCheck/memcheck.cpp:194 MemCheck/memcheck.cpp:196 -msgid "Stop Check" +#: LiteEditor/project_settings_base_dlg.cpp:616 +#: LiteEditor/project_settings_base_dlg.cpp:960 +msgid "Resource compiler options provided as semi-colon list" msgstr "" -#: MemCheck/memcheck.cpp:182 MemCheck/memcheck.cpp:184 -#: MemCheck/memcheck.cpp:200 MemCheck/memcheck.cpp:202 -#: MemCheck/memcheckui.cpp:176 -msgid "Load MemCheck log from file." +#: LiteEditor/project_settings_base_dlg.cpp:619 +#: LiteEditor/project_settings_base_dlg.cpp:963 +msgid "Additional Search Path" msgstr "" -#: MemCheck/memcheck.cpp:500 -msgid "Launching MemCheck...\n" +#: LiteEditor/project_settings_base_dlg.cpp:620 +#: LiteEditor/project_settings_base_dlg.cpp:964 +msgid "Resource compiler search path, as semi colon list" msgstr "" -#: MemCheck/memcheck.cpp:502 -msgid "Working directory is set to: " +#: LiteEditor/project_settings_base_dlg.cpp:673 +msgid "Environment variable set to use:" msgstr "" -#: MemCheck/memcheck.cpp:568 -msgid "" -"\n" -"-- MemCheck process completed\n" +#: LiteEditor/project_settings_base_dlg.cpp:682 +msgid "Debugger 'PreDefined Types' set to use:" msgstr "" -#: MemCheck/memcheckui.cpp:174 -msgid "Run check" +#: LiteEditor/project_settings_base_dlg.cpp:695 +msgid "Additional environment variables:" msgstr "" -#: MemCheck/memcheckui.cpp:178 -msgid "Stop Process" +#: LiteEditor/project_settings_base_dlg.cpp:804 +msgid "Enable custom build" msgstr "" -#: MemCheck/memcheckui.cpp:182 -msgid "Expand all" +#: LiteEditor/project_settings_base_dlg.cpp:813 +msgid "Working Directory:" msgstr "" -#: MemCheck/memcheckui.cpp:184 -msgid "Jump to next error" +#: LiteEditor/project_settings_base_dlg.cpp:836 +msgid "Target" msgstr "" -#: MemCheck/memcheckui.cpp:186 -msgid "Jump to previous error" +#: LiteEditor/project_settings_base_dlg.cpp:837 +msgid "Command" msgstr "" -#: MemCheck/memcheckui.cpp:194 -msgid "Open plain output in editor window." +#: LiteEditor/project_settings_base_dlg.cpp:926 +msgid "" +"Additional compiler options to pass to the compiler provided as a semi-colon " +"delimited list These settings are used by _all_ build configurations (e.g. " +"Release and Debug)" msgstr "" -#: MemCheck/memcheckui.cpp:206 -msgid "Errors" +#: LiteEditor/project_settings_base_dlg.cpp:930 +msgid "" +"Additional C compiler options to pass to the compiler provided as a semi-" +"colon delimited list These settings are used by _all_ build configurations " +"(e.g. Release and Debug)" msgstr "" -#: MemCheck/memcheckui.cpp:219 -msgid "Current" +#: LiteEditor/project_settings_base_dlg.cpp:933 +msgid "Additional Include Paths" msgstr "" -#: MemCheck/memcheckui.cpp:220 cppchecker/cppchecksettingsdlgbase.cpp:147 -msgid "Suppress" +#: LiteEditor/project_settings_base_dlg.cpp:934 +msgid "" +"Compiler search paths for header files. These settings are used by _all_ " +"build configurations (e.g. Release and Debug)" msgstr "" -#: MemCheck/memcheckui.cpp:221 MemCheck/memcheckui.cpp:357 -msgid "Label" +#: LiteEditor/project_settings_base_dlg.cpp:938 +msgid "" +"Additional preprocessors definitions provided as a semi-colon delimited list " +"These settings are used by _all_ build configurations (e.g. Release and " +"Debug)" msgstr "" -#: MemCheck/memcheckui.cpp:224 -msgid "Object" +#: LiteEditor/project_settings_base_dlg.cpp:945 +msgid "" +"Additional linker options provided as a semi-colon delimited list These " +"settings are used by _all_ build configurations (e.g. Release and Debug)" msgstr "" -#: MemCheck/memcheckui.cpp:230 -msgid "First result page." +#: LiteEditor/project_settings_base_dlg.cpp:948 +msgid "Library Path" msgstr "" -#: MemCheck/memcheckui.cpp:245 -msgid "of" +#: LiteEditor/project_settings_base_dlg.cpp:949 +msgid "" +"Additional library search path provided as a semi-colon delimited list These " +"settings are used by _all_ build configurations (e.g. Release and Debug)" msgstr "" -#: MemCheck/memcheckui.cpp:249 -msgid "0" +#: LiteEditor/project_settings_base_dlg.cpp:1014 +msgid "Dependencies:" msgstr "" -#: MemCheck/memcheckui.cpp:264 -msgid ".supp" +#: LiteEditor/project_settings_base_dlg.cpp:1034 +msgid "Rule action:" msgstr "" -#: MemCheck/memcheckui.cpp:284 -msgid ".supp:" +#: LiteEditor/project_settings_base_dlg.cpp:1055 +msgid "" +"Define here a custom makefile rule to be executed in the pre-build steps.\n" +"See the wiki for more help" msgstr "" -#: MemCheck/memcheckui.cpp:290 -msgid "Choose suppression file to use." +#: LiteEditor/project_settings_base_dlg.cpp:1137 +msgid "Macros (clang only):" msgstr "" -#: MemCheck/memcheckui.cpp:309 -msgid "Clear filter" +#: LiteEditor/project_settings_base_dlg.cpp:1160 +msgid "" +"If checked, pass -std=c++11 to the clang code completion engine to ensure " +"that all c++11 features are recognized properly" msgstr "" -#: MemCheck/memcheckui.cpp:317 -msgid "Invert" +#: LiteEditor/project_settings_base_dlg.cpp:1166 +msgid "" +"If checked, pass -std=c++14 to the clang code completion engine to ensure " +"that all c++14 features are recognized properly" msgstr "" -#: MemCheck/memcheckui.cpp:327 -msgid "Word" +#: LiteEditor/project_settings_base_dlg.cpp:1216 +msgid "Target Name:" msgstr "" -#: MemCheck/memcheckui.cpp:332 -msgid "RegExp" +#: LiteEditor/project_settings_base_dlg.cpp:1227 +#: wxformbuilder/formbuildsettingsbasedlg.cpp:63 +msgid "Command:" msgstr "" -#: MemCheck/memcheckui.cpp:339 -msgid "Total: 0 Filtered: 0 Selected: 0" +#: LiteEditor/tabgroupbasedlgs.h:79 +msgid "Load a tab group" msgstr "" -#: MemCheck/memcheckui.cpp:362 -msgid "Suppress all" +#: LiteEditor/tabgroupbasedlgs.h:112 +msgid "Save a tab group" msgstr "" -#: MemCheck/memcheckui.cpp:366 -msgid "Suppress selected" +#: LiteEditor/edit_workspace_conf_dlg.cpp:124 +msgid "Remove workspace configuration '" msgstr "" -#: MemCheck/memcheckui.cpp:514 -msgid "Engine:" +#: LiteEditor/edit_workspace_conf_dlg.cpp:137 +msgid "New Configuration Name:" msgstr "" -#: MemCheck/memcheckui.cpp:515 -msgid "At this time (1Q 2014) only valgrind supported - development state." +#: LiteEditor/DefaultWorkspacePage.cpp:40 +msgid "Choose a View" msgstr "" -#: MemCheck/memcheckui.cpp:526 -msgid "Errors on page:" +#: LiteEditor/DefaultWorkspacePage.cpp:40 +msgid "Open folder" msgstr "" -#: MemCheck/memcheckui.cpp:534 -msgid "Show locations only from my workspace." +#: LiteEditor/tags_options_dlg.cpp:253 +msgid "Add ctags Parser Exclude Path:" msgstr "" -#: MemCheck/memcheckui.cpp:539 -msgid "Remove duplicate records." +#: LiteEditor/tags_options_dlg.cpp:272 +msgid "Add ctags Parser Search Path:" msgstr "" -#: MemCheck/memcheckui.cpp:544 -msgid "Remove suppressed errors." +#: LiteEditor/tags_options_dlg.cpp:365 +msgid "" +"Accepting this suggestion will replace your old search paths with these " +"paths\n" +"Continue?" msgstr "" -#: MemCheck/memcheckui.cpp:553 -msgid "Remove errors only if suppression rule was added without any change." +#: LiteEditor/renamesymboldlg.cpp:91 +msgid "Invalid C/C++ symbol name" msgstr "" -#: MemCheck/memcheckui.cpp:562 -msgid "Valgrind (memcheck)" +#: LiteEditor/edit_configuration.h:68 +msgid "Edit Configurations" msgstr "" -#: MemCheck/memcheckui.cpp:565 -msgid "Command Line" +#: LiteEditor/configuration_manager_base_dlg.h:75 +msgid "Configuration Manager" msgstr "" -#: MemCheck/memcheckui.cpp:577 -msgid "Valgrind executable:" +#: LiteEditor/editorsettingsbookmarksbasepanel.cpp:41 +msgid "Bookmark Shape:" msgstr "" -#: MemCheck/memcheckui.cpp:582 -msgid "Select valgrind executable" +#: LiteEditor/editorsettingsbookmarksbasepanel.cpp:50 +msgid "Select bookmark type:" msgstr "" -#: MemCheck/memcheckui.cpp:586 -msgid "Command line options" +#: LiteEditor/editorsettingsbookmarksbasepanel.cpp:61 +msgid "Select the bookmark type from the following list" msgstr "" -#: MemCheck/memcheckui.cpp:597 -msgid "Mandatory:" +#: LiteEditor/editorsettingsbookmarksbasepanel.cpp:66 +msgid "Bookmark label:" msgstr "" -#: MemCheck/memcheckui.cpp:598 MemCheck/memcheckui.cpp:603 +#: LiteEditor/editorsettingsbookmarksbasepanel.cpp:71 msgid "" -"Please do not use these options again and do not change their values!\n" -"Plugin won't work." -msgstr "" - -#: MemCheck/memcheckui.cpp:613 -msgid "Regular:" +"The label shown in e.g. a tooltip. You can set it to something descriptive " +"if you wish." msgstr "" -#: MemCheck/memcheckui.cpp:625 -msgid "Reload defaults" +#: LiteEditor/editorsettingsbookmarksbasepanel.cpp:78 +msgid "Background colour:" msgstr "" -#: MemCheck/memcheckui.cpp:629 -msgid "Temporary output file" +#: LiteEditor/editorsettingsbookmarksbasepanel.cpp:86 +msgid "Foreground colour:" msgstr "" -#: MemCheck/memcheckui.cpp:633 -msgid "Use log file in workspace private folder." +#: LiteEditor/editorsettingsbookmarksbasepanel.cpp:105 +msgid "'Highlight Matching Word' colour:" msgstr "" -#: MemCheck/memcheckui.cpp:635 MemCheck/memcheckui.cpp:640 +#: LiteEditor/editorsettingsbookmarksbasepanel.cpp:110 msgid "" -"It is used intenaly by this plugin. Valgrind outputs to this file and " -"afterwards the plugin processes this file and shows result." +"This lets you set the 'Highlight Matching Word' colour (the colour of words " +"that match the selection). To set the colour of the selection itself, see " +"'Settings > Syntax Highlight and Fonts'." msgstr "" -#: MemCheck/memcheckui.cpp:645 -msgid "Supression" +#: LiteEditor/editorsettingsbookmarksbasepanel.cpp:114 +msgid "'Highlight Matching Word' alpha:" msgstr "" -#: MemCheck/memcheckui.cpp:650 -msgid "Suppression files" +#: LiteEditor/editorsettingsbookmarksbasepanel.cpp:119 +msgid "" +"This affects the intensity of the colour set in the field above (for words " +"matching the selection). Choose a value between 0 and 256. Higher values " +"give a less-transparent background." msgstr "" -#: MemCheck/memcheckui.cpp:654 -msgid "Use workspace specific supp file as default." +#: LiteEditor/editorsettingsbookmarksbasepanel.cpp:125 +msgid "Find/FindNext clears highlit matching words" msgstr "" -#: MemCheck/memcheckui.cpp:656 +#: LiteEditor/editorsettingsbookmarksbasepanel.cpp:127 msgid "" -"This file is located in workspace private folder.\n" -"If you don't like this option, you have to add at leas one file to list " -"below." +"By default, 'Find', FindNext and FindPrevious will clear all current " +"'Highlight Matching Word' matches. Untick this box to prevent that happening." msgstr "" -#: Outline/outline.cpp:68 -msgid "Show Current the Layout of the current file" +#: LiteEditor/movefuncimplbasedlg.cpp:47 +msgid "Select the file in which to place the function implementation:" msgstr "" -#: Outline/outline.cpp:86 -msgid "Outline Plugin" +#: LiteEditor/movefuncimplbasedlg.cpp:54 +msgid "Function implementation (you can edit the code below):" msgstr "" -#: Outline/outline_symbol_tree.cpp:42 -msgid "Include Files" +#: LiteEditor/clInitializeDialog.cpp:38 +msgid "CodeLite upgrade" msgstr "" -#: Outline/outline_tab.cpp:195 -msgid "Open..." +#: LiteEditor/workspacesettingsbase.h:67 +msgid "Workspace Settings" msgstr "" -#: Outline/outline_tab.cpp:200 -msgid "Goto Declaration" +#: LiteEditor/newversionbasedlg.h:74 +msgid "A New version is available!" msgstr "" -#: Outline/outline_tab.cpp:201 -msgid "Goto Implementation" +#: LiteEditor/manageperspectivesbasedlg.h:79 +msgid "Perspectives..." msgstr "" -#: Outline/outline_tab.cpp:203 -msgid "Find References..." +#: LiteEditor/manageperspectivesbasedlg.h:100 +msgid "Save Perspective As..." msgstr "" -#: Outline/outline_tab.cpp:205 -msgid "Rename Symbol..." +#: LiteEditor/listctrlpanelbase.cpp:57 codelitephp/php-plugin/php_ui.cpp:1189 +msgid "Level" msgstr "" -#: Outline/wxcrafter.cpp:30 -msgid "Search a symbol" +#: LiteEditor/listctrlpanelbase.cpp:58 LLDBDebugger/UI.cpp:477 +msgid "Address" msgstr "" -#: Outline/wxcrafter.cpp:43 Outline/wxcrafter.cpp:49 Outline/wxcrafter.cpp:59 -#: codelitephp/php-plugin/php_ui.cpp:1521 -#: codelitephp/php-plugin/php_ui.cpp:1548 -msgid "Page" +#: LiteEditor/configuration_manager_dlg.cpp:226 +#, c-format +msgid "" +"Settings for workspace configuration '%s' have changed, would you like to " +"save them?" msgstr "" -#: Plugin/ColoursAndFontsManager.cpp:411 -msgid "Upgrading theme: " +#: LiteEditor/configuration_manager_dlg.cpp:275 +msgid "Enter New Configuration Name:" msgstr "" -#: Plugin/ColoursAndFontsManager.cpp:411 -msgid "Upgrading user theme: " +#: LiteEditor/configuration_manager_dlg.cpp:275 +#: LiteEditor/new_configuration_dlg.h:65 +msgid "New Configuration" msgstr "" -#: Plugin/CompilersDetectorManager.cpp:116 -msgid "" -"Could not locate any MinGW compiler installed on your machine, would you " -"like to install one now?" +#: LiteEditor/pluginmgrdlg.cpp:151 +msgid "Plugin Name:" msgstr "" -#: Plugin/CompilersDetectorManager.cpp:141 -msgid "Select a compiler to download" +#: LiteEditor/pluginmgrdlg.cpp:155 +msgid "Status:" msgstr "" -#: Plugin/CompilersDetectorManager.cpp:149 -msgid "After install is completed, click the 'Scan' button" +#: LiteEditor/shelltab.cpp:61 +msgid "Send:" msgstr "" -#: Plugin/DiffSideBySidePanel.cpp:89 Plugin/DiffSideBySidePanel.cpp:94 -msgid " does not exist!" +#: LiteEditor/shelltab.cpp:72 codelitephp/php-plugin/php_ui.cpp:1475 +#: codelitephp/php-plugin/php_ui.cpp:1548 +msgid "Send" msgstr "" -#: Plugin/DiffSideBySidePanel.cpp:89 -msgid "Left Side File:\n" +#: LiteEditor/shelltab.cpp:75 +msgid "Stop" msgstr "" -#: Plugin/DiffSideBySidePanel.cpp:94 -msgid "Right Side File:\n" +#: LiteEditor/shelltab.cpp:268 +msgid "Continuing..." msgstr "" -#: Plugin/DiffSideBySidePanel.cpp:365 -msgid "Don't refresh" +#: LiteEditor/shelltab.cpp:291 +msgid "Enable debugger full logging" msgstr "" -#: Plugin/DiffSideBySidePanel.cpp:365 -msgid "" -"Refreshing the view will lose all your changes\n" -"Do you want to continue?" +#: LiteEditor/ps_build_events_page.cpp:54 +msgid "Set the commands to run in the pre build stage" msgstr "" -#: Plugin/DiffSideBySidePanel.cpp:608 +#: LiteEditor/ps_build_events_page.cpp:58 +msgid "Set the commands to run in the post build stage" +msgstr "" + +#: LiteEditor/ps_build_events_page.cpp:60 msgid "" -"Closing the diff viewer, will lose all your changes.\n" -"Continue?" +"\n" +"Commands starting with the hash sign ('#'), will not be executed" msgstr "" -#: Plugin/DiffSideBySidePanel.cpp:687 -msgid "Copy to the right" +#: ContinuousBuild/continuousbuild.cpp:62 +#: ContinuousBuild/continuousbuild.cpp:83 +msgid "Continuous build plugin which compiles files on save and report errors" msgstr "" -#: Plugin/DiffSideBySidePanel.cpp:690 -msgid "Copy to the right and move to the next diff" +#: ContinuousBuild/continuousbuild.cpp:243 +msgid "Compiling" msgstr "" -#: Plugin/DiffSideBySidePanel.cpp:702 -msgid "Copy to the left" +#: ContinuousBuild/continousbuildbasepane.cpp:33 +msgid "Enable continuous build" msgstr "" -#: Plugin/DiffSideBySidePanel.cpp:705 -msgid "Copy to the left and move to the next diff" +#: ContinuousBuild/continousbuildbasepane.cpp:40 +msgid "&Clear All" msgstr "" -#: Plugin/NewKeyShortcutBaseDlg.cpp:44 -msgid "Action:" +#: ContinuousBuild/continousbuildbasepane.cpp:62 +msgid "Failed Files:" msgstr "" -#: Plugin/NewKeyShortcutBaseDlg.cpp:54 -msgid "Key:" +#: LLDBDebugger/UI.h:123 +msgid "New Breakpoint" msgstr "" -#: Plugin/NewKeyShortcutBaseDlg.cpp:59 -msgid "" -"Hit any keyboard key. Don't use the modifier keys (e.g. 'Shift') here, use " -"the checkboxes below" +#: LLDBDebugger/UI.h:186 +msgid "LLDB Settings" msgstr "" -#: Plugin/NewKeyShortcutBaseDlg.cpp:67 -msgid "Clear the keyboard shortcut" +#: LLDBDebugger/UI.h:254 +msgid "Folder Mapping" msgstr "" -#: Plugin/NewKeyShortcutBaseDlg.cpp:71 -msgid "Modifiers:" +#: LLDBDebugger/LLDBCallStack.cpp:103 +msgid "Copy backtrace" msgstr "" -#: Plugin/NewKeyShortcutBaseDlg.cpp:79 -msgid "Ctrl/Cmd" +#: LLDBDebugger/UI.cpp:33 LLDBDebugger/UI.cpp:159 LLDBDebugger/UI.cpp:556 +msgid "#" msgstr "" -#: Plugin/NewKeyShortcutBaseDlg.cpp:89 -msgid "Shift" +#: LLDBDebugger/UI.cpp:80 codelitephp/php-plugin/PHPDebugPane.cpp:26 +msgid "Console" msgstr "" -#: Plugin/SFTPBrowserDlg.cpp:118 SFTP/SFTPTreeView.cpp:643 -#: SFTP/SFTPTreeView.cpp:805 -msgid "Could not find account: " +#: LLDBDebugger/UI.cpp:126 +msgid "Send commands to lldb" msgstr "" -#: Plugin/SSHAccountManagerDlg.cpp:77 -msgid "Are you sure you want to delete the selected accounts?" +#: LLDBDebugger/UI.cpp:144 +msgid "New breakpoint" msgstr "" -#: Plugin/VirtualDirectorySelectorBase.cpp:87 -msgid "Create new virtual folder..." +#: LLDBDebugger/UI.cpp:146 +msgid "Delete Selected Breakpoint" msgstr "" -#: Plugin/VirtualDirectorySelectorDlg.cpp:324 -msgid "New Virtual Folder" +#: LLDBDebugger/UI.cpp:148 menu.xrc:895 +msgid "Delete All Breakpoints" msgstr "" -#: Plugin/VirtualDirectorySelectorDlg.cpp:324 -msgid "New Virtual Folder Name:" +#: LLDBDebugger/UI.cpp:215 +msgid "File and Line:" msgstr "" -#: Plugin/VirtualDirectorySelectorDlg.cpp:339 -msgid "Error occured while creating virtual folder:\n" +#: LLDBDebugger/UI.cpp:221 DatabaseExplorer/DbSettingDialog.cpp:50 +msgid "File name" msgstr "" -#: Plugin/async_executable_cmd.cpp:95 -msgid "Current working directory: " +#: LLDBDebugger/UI.cpp:236 +msgid "Function name:" msgstr "" -#: Plugin/async_executable_cmd.cpp:96 -msgid "Running program: " +#: LLDBDebugger/UI.cpp:312 +msgid "Add Watch..." msgstr "" -#: Plugin/async_executable_cmd.cpp:108 -msgid "Program exited with return code: " +#: LLDBDebugger/UI.cpp:314 +msgid "Delete Watch" msgstr "" -#: Plugin/bookmark_manager.cpp:80 -msgid "Next Bookmark" +#: LLDBDebugger/UI.cpp:371 +msgid "Behaviour" msgstr "" -#: Plugin/bookmark_manager.cpp:81 -msgid "Previous Bookmark" +#: LLDBDebugger/UI.cpp:374 +msgid "Raise CodeLite when breakpoint hit" msgstr "" -#: Plugin/bookmark_manager.cpp:100 -msgid "Change Active Bookmark Type..." +#: LLDBDebugger/UI.cpp:375 +msgid "When a breakpoint is hit, notify the user raising CodeLite" msgstr "" -#: Plugin/bookmark_manager.cpp:104 -msgid "Remove All Currently-Active Bookmarks" +#: LLDBDebugger/UI.cpp:377 +msgid "Display" msgstr "" -#: Plugin/bookmark_manager.cpp:107 -msgid "More..." +#: LLDBDebugger/UI.cpp:380 +msgid "Max number of array elements" msgstr "" -#: Plugin/bookmark_manager.cpp:121 -msgid "Normal bookmark" +#: LLDBDebugger/UI.cpp:381 +msgid "The maximum number of elements to display in arrays" msgstr "" -#: Plugin/bookmark_manager.cpp:124 -msgid "Find bookmark" +#: LLDBDebugger/UI.cpp:383 +msgid "Backtrace frames" msgstr "" -#: Plugin/bookmark_manager.cpp:127 -msgid "Bookmark Type" +#: LLDBDebugger/UI.cpp:384 +msgid "Maximum number of frames to show in the callstack window" msgstr "" -#: Plugin/builder_gnumake.cpp:101 -msgid "Cant open project '" +#: LLDBDebugger/UI.cpp:402 +msgid "" +"LLDB has a data formatters subsystem that allows users to define custom " +"display options for their variables\n" +"You can set here the types to pass to LLDB" msgstr "" -#: Plugin/builder_gnumake.cpp:111 Plugin/builder_gnumake.cpp:119 -msgid "Cant find build configuration for project '" +#: LLDBDebugger/UI.cpp:443 +msgid "Learn more about LLDB types" msgstr "" -#: Plugin/builder_gnumake.cpp:123 -msgid "Cant find proper compiler for project '" +#: LLDBDebugger/UI.cpp:464 +msgid "Debugger Proxy" msgstr "" -#: Plugin/builder_gnumake.cpp:161 -msgid "' which is required\n" +#: LLDBDebugger/UI.cpp:469 +msgid "Local proxy process (default)" msgstr "" -#: Plugin/builder_gnumake.cpp:161 -msgid "CodeLite can not find project '" +#: LLDBDebugger/UI.cpp:470 +msgid "Remote proxy process over TCP/IP" msgstr "" -#: Plugin/builder_gnumake.cpp:162 -msgid "for building project '" +#: LLDBDebugger/UI.cpp:471 +msgid "Proxy type" msgstr "" -#: Plugin/builder_gnumake.cpp:163 +#: LLDBDebugger/UI.cpp:472 msgid "" -"'.\n" -"Would you like to remove it from the dependency list?" +"Debugging using LLDB is always done over a proxy process (i.e. codelite-" +"lldb)\n" +"Here you can select the type of the proxy to use (local or remote):\n" +"* Local proxy is used by default to debug local processes (this is the " +"default)\n" +"* Remote proxy: use this method to connect to a remote codelite-lldb proxy " +"server over TCP/IP" msgstr "" -#: Plugin/clBoostrapWizardBase.cpp:34 -msgid "" -"This wizard will help you setup CodeLite to fit your coding style. Click " -"Next to continue" +#: LLDBDebugger/UI.cpp:474 +msgid "Remote proxy settings" msgstr "" -#: Plugin/clBoostrapWizardBase.cpp:34 -msgid "Welcome to the setup wizard" +#: LLDBDebugger/UI.cpp:477 +msgid "127.0.0.1" msgstr "" -#: Plugin/clBoostrapWizardBase.cpp:46 +#: LLDBDebugger/UI.cpp:478 msgid "" -"If your CodeLite is already configured the way you like it, click to skip " -"the Wizard" +"The IP address on which the remote proxy server is accepting connections" msgstr "" -#: Plugin/clBoostrapWizardBase.cpp:46 -msgid "Not this time!" +#: LLDBDebugger/UI.cpp:480 +msgid "Port" msgstr "" -#: Plugin/clBoostrapWizardBase.cpp:60 +#: LLDBDebugger/UI.cpp:481 msgid "" -"By default CodeLite comes with many plugins. Here you can disable some if " -"needed" +"The port number on which the remote proxy server is accepting connections" msgstr "" -#: Plugin/clBoostrapWizardBase.cpp:60 WebTools/WebToolsBase.cpp:77 -msgid "Plugins" +#: LLDBDebugger/UI.cpp:557 +msgid "Stop Reason" msgstr "" -#: Plugin/clBoostrapWizardBase.cpp:74 -msgid "X" +#: LLDBDebugger/UI.cpp:657 +msgid "" +"You are debugging on a remote machine. In order for codelite\n" +"to be able to load files into the editor, codelite needs to map the folders " +"on\n" +"your local machine to the folders on the remote machine" msgstr "" -#: Plugin/clBoostrapWizardBase.cpp:76 Plugin/macrosdlg.cpp:64 -#: UnitTestCPP/unittestspage.cpp:40 -msgid "Description" +#: LLDBDebugger/UI.cpp:672 +msgid "Local Folder:" msgstr "" -#: Plugin/clBoostrapWizardBase.cpp:82 -msgid "Check all plugins" +#: LLDBDebugger/UI.cpp:677 +msgid "Local Folder" msgstr "" -#: Plugin/clBoostrapWizardBase.cpp:87 -msgid "uncheck all plugins" +#: LLDBDebugger/UI.cpp:681 +msgid "Remote Folder:" msgstr "" -#: Plugin/clBoostrapWizardBase.cpp:91 -msgid "C++ Plugins" +#: LLDBDebugger/UI.cpp:686 +msgid "Remote Folder" msgstr "" -#: Plugin/clBoostrapWizardBase.cpp:92 -msgid "Toggle C++ plugins" +#: LLDBDebugger/LLDBProtocol/LLDBConnector.cpp:471 +msgid "Locally debugging with LLDB on Windows is not supported by LLDB" msgstr "" -#: Plugin/clBoostrapWizardBase.cpp:104 -msgid "Let CodeLite configure your installed compilers or help you install one" +#: LLDBDebugger/LLDBLocalsView.cpp:54 +msgid "Summary" msgstr "" -#: Plugin/clBoostrapWizardBase.cpp:104 -msgid "Setup compilers" +#: LLDBDebugger/LLDBLocalsView.cpp:57 +msgid "Local Vairables" msgstr "" -#: Plugin/clBoostrapWizardBase.cpp:110 -msgid "Click to scan your compuer for installed compilers" +#: LLDBDebugger/LLDBLocalsView.cpp:186 +msgid "Add New Watch" msgstr "" -#: Plugin/clBoostrapWizardBase.cpp:110 -msgid "Scan" +#: LLDBDebugger/LLDBLocalsView.cpp:251 +#: DatabaseExplorer/SqlCommandPanel.cpp:392 +msgid "Copy value to clipboard" msgstr "" -#: Plugin/clBoostrapWizardBase.cpp:114 -msgid "Click to download a MinGW compiler" +#: LLDBDebugger/LLDBPlugin.cpp:82 LLDBDebugger/LLDBPlugin.cpp:100 +msgid "LLDB Debugger for CodeLite" msgstr "" -#: Plugin/clBoostrapWizardBase.cpp:123 -msgid "Compiler Name" +#: LLDBDebugger/LLDBPlugin.cpp:231 +msgid "LLDB Settings..." msgstr "" -#: Plugin/clBoostrapWizardBase.cpp:133 -msgid "Customize colours" +#: LLDBDebugger/LLDBPlugin.cpp:310 +msgid "Could not locate project: " msgstr "" -#: Plugin/clBoostrapWizardBase.cpp:133 -msgid "Select the editor theme from the list below" +#: LLDBDebugger/LLDBPlugin.cpp:325 +msgid "Could not locate the requested buid configuration" msgstr "" -#: Plugin/clBoostrapWizardBase.cpp:141 -msgid "" -"Select the theme from a list.\n" -"If the selected theme does not exist for a given language, CodeLite will " -"select the closest one available" +#: LLDBDebugger/LLDBPlugin.cpp:393 LLDBDebugger/LLDBPlugin.cpp:1030 +msgid "Failed to start terminal for debugger" msgstr "" -#: Plugin/clBoostrapWizardBase.cpp:207 -msgid "Should CodeLite use TABS or SPACES for indentation?" +#: LLDBDebugger/LLDBPlugin.cpp:442 LLDBDebugger/LLDBPlugin.cpp:947 +#: LLDBDebugger/LLDBPlugin.cpp:994 LLDBDebugger/LLDBPlugin.cpp:1089 +msgid "Could not connect to codelite-lldb at '" msgstr "" -#: Plugin/clBoostrapWizardBase.cpp:207 -msgid "Whitespace & Indentation" +#: LLDBDebugger/LLDBPlugin.cpp:835 +msgid "LLDB crashed! Terminating debug session" msgstr "" -#: Plugin/clBoostrapWizardBase.cpp:216 -msgid "Indent using SPACES" +#: LLDBDebugger/LLDBPlugin.cpp:854 +msgid "" +"A debug session is running\n" +"Cancel debug session and continue building?" msgstr "" -#: Plugin/clBoostrapWizardBase.cpp:217 -msgid "Indent using TABS" +#: LLDBDebugger/LLDBPlugin.cpp:962 +msgid "Debug core file with LLDB is not supported under Windows" msgstr "" -#: Plugin/clBoostrapWizardBase.cpp:227 -msgid "Whitespace Visibility:" +#: LLDBDebugger/LLDBPlugin.cpp:1009 +msgid "Another debug session is already in progress. Please stop it first" msgstr "" -#: Plugin/clBootstrapWizard.cpp:298 -msgid "" -"You can always run this setup wizard from the menu:\n" -"Help -> Run the Setup Wizard" +#: LLDBDebugger/LLDBPlugin.cpp:1055 +msgid "Attach to process with LLDB is not supported under Windows" msgstr "" -#: Plugin/clStatusBar.cpp:246 -msgid "Build ended with errors. Click to view" +#: Gizmos/gizmos.cpp:76 +msgid "" +"Wizards Plugin - a collection of useful wizards for C++:\n" +"new Class Wizard, new wxWidgets Wizard, new Plugin Wizard" msgstr "" -#: Plugin/clStatusBar.cpp:248 -msgid "Build ended with warnings. Click to view" +#: Gizmos/gizmos.cpp:170 +msgid "Wizards Plugin - a collection of useful utils for C++" msgstr "" -#: Plugin/clStatusBar.cpp:282 -msgid "" -"Build is in progress\n" -"Click to view the Build Log" +#: Gizmos/gizmos.cpp:225 +msgid "New CodeLite Plugin Wizard..." msgstr "" -#: Plugin/clean_request.cpp:67 Plugin/compile_request.cpp:75 -#: Plugin/custombuildrequest.cpp:74 -msgid "Cant find project: " +#: Gizmos/gizmos.cpp:227 +msgid "New Class Wizard..." msgstr "" -#: Plugin/clean_request.cpp:81 -msgid "Sorry, there is no 'Clean' command available\n" +#: Gizmos/gizmos.cpp:229 +msgid "New wxWidgets Project Wizard..." msgstr "" -#: Plugin/clean_request.cpp:106 -msgid "Sorry, couldn't find the Build configuration\n" +#: Gizmos/gizmos.cpp:244 +msgid "&New Class..." msgstr "" -#: Plugin/clean_request.cpp:155 Plugin/compile_request.cpp:195 -#: Plugin/custombuildrequest.cpp:223 -msgid ", process terminated with exit code: 0" +#: Gizmos/gizmos.cpp:333 +msgid "Failed to load wizard's file 'plugin.cpp.wizard'" msgstr "" -#: Plugin/clean_request.cpp:155 -msgid "Failed to start clean process, command: " +#: Gizmos/gizmos.cpp:359 +msgid "Failed to load wizard's file 'plugin.h.wizard'" msgstr "" -#: Plugin/compile_request.cpp:152 Plugin/custombuildrequest.cpp:131 -msgid "Command line is empty. Build aborted." +#: Gizmos/gizmos_base.cpp:64 +msgid "Plugin name:" msgstr "" -#: Plugin/compile_request.cpp:195 Plugin/custombuildrequest.cpp:223 -msgid "Failed to start build process, command: " +#: Gizmos/gizmos_base.cpp:69 +msgid "" +"Set the plugin name.\n" +"The name should be a valid C++ variable name" msgstr "" -#: Plugin/custombuildrequest.cpp:176 -#, c-format -msgid "MESSAGE: Entering directory `%s'\n" +#: Gizmos/gizmos_base.cpp:79 +msgid "Provide the plugin a short description" msgstr "" -#: Plugin/editor_config.cpp:442 Plugin/editor_config.cpp:479 -msgid "git" +#: Gizmos/gizmos_base.cpp:102 +msgid "codelite root dir:" msgstr "" -#: Plugin/editor_config.cpp:477 -msgid "Cscope" +#: Gizmos/gizmos_base.cpp:107 +msgid "Select the location of codelite's source tree" msgstr "" -#: Plugin/macrosdlg.cpp:63 -msgid "Macro" +#: Gizmos/gizmos_base.cpp:116 +msgid "Select the plugin project path" msgstr "" -#: Plugin/macrosdlg.cpp:73 -msgid "Expands to the selected text in the active editor" +#: Gizmos/newclassbasedlg.cpp:36 +msgid "Class Name:" msgstr "" -#: Plugin/macrosdlg.cpp:74 -msgid "" -"Expands to the selected text range in bytes from beginning of file, eg. " -"150:200" +#: Gizmos/newclassbasedlg.cpp:41 +msgid "The class name" msgstr "" -#: Plugin/macrosdlg.cpp:75 -msgid "Expands to the project binary output file" +#: Gizmos/newclassbasedlg.cpp:59 codelitephp/php-plugin/new_class.cpp:71 +msgid "Namespace:" msgstr "" -#: Plugin/macrosdlg.cpp:76 -msgid "Expands to the project's build working directory" +#: Gizmos/newclassbasedlg.cpp:64 +msgid "Place this class inside a namespace" msgstr "" -#: Plugin/macrosdlg.cpp:77 -msgid "Expands to the project's run working directory" +#: Gizmos/newclassbasedlg.cpp:77 +msgid "Block Guard:" msgstr "" -#: Plugin/macrosdlg.cpp:80 -msgid "Expands to project's path" +#: Gizmos/newclassbasedlg.cpp:82 +msgid "" +"Set block guard to prevent multiple file inclusion. If left empty, the class " +"name is used" msgstr "" -#: Plugin/macrosdlg.cpp:81 -msgid "Expands to workspace's path" +#: Gizmos/newclassbasedlg.cpp:98 +msgid "" +"The new class needs to be put somewhere. Select which of the project's " +"virtual folders to use." msgstr "" -#: Plugin/macrosdlg.cpp:82 -msgid "Expands to the current project name as appears in the 'File View'" +#: Gizmos/newclassbasedlg.cpp:111 +msgid "Generated File(s) Path:" msgstr "" -#: Plugin/macrosdlg.cpp:83 Plugin/macrosdlg.cpp:106 +#: Gizmos/newclassbasedlg.cpp:116 msgid "" -"Expands to the current project intermediate directory path, as set in the " -"project settings" +"Where on the filesystem should the new class's files be put? This will " +"normally be the directory corresponding to the Virtual Directory; but you " +"can enter an alternative directory here if you wish." msgstr "" -#: Plugin/macrosdlg.cpp:84 Plugin/macrosdlg.cpp:107 -msgid "Expands to the current project selected configuration" +#: Gizmos/newclassbasedlg.cpp:131 +msgid "Generated File:" msgstr "" -#: Plugin/macrosdlg.cpp:85 Plugin/macrosdlg.cpp:108 -msgid "An alias to $(IntermediateDirectory)" +#: Gizmos/newclassbasedlg.cpp:138 +msgid "Inline class" msgstr "" -#: Plugin/macrosdlg.cpp:86 -msgid "Expands to current file name (without extension and path)" +#: Gizmos/newclassbasedlg.cpp:140 +msgid "Put both the declaration and the implementation in the header file" msgstr "" -#: Plugin/macrosdlg.cpp:87 -msgid "Expands to current file path" +#: Gizmos/newclassbasedlg.cpp:144 +msgid "Create .hpp instead of .h" msgstr "" -#: Plugin/macrosdlg.cpp:88 -msgid "Expands to current file full path (path and full name)" +#: Gizmos/newclassbasedlg.cpp:146 +msgid "If checked, the generated header file will be foo.hpp instead of foo.h" msgstr "" -#: Plugin/macrosdlg.cpp:89 -msgid "Expands to logged-in user as defined by the OS" +#: Gizmos/newclassbasedlg.cpp:151 +msgid "" +"This is the base-name for the file(s) that will be generated. If the new " +"class is called Foo, by default the files will be Foo.cpp and Foo.h. If " +"you'd prefer different names, type the base-name here." msgstr "" -#: Plugin/macrosdlg.cpp:90 -msgid "Expands to current date" +#: Gizmos/newclassbasedlg.cpp:165 +msgid "Inherits:" msgstr "" -#: Plugin/macrosdlg.cpp:91 -msgid "" -"Expands to CodeLite's startup directory on (e.g. on Unix it expands to ~/." -"codelite/" +#: Gizmos/newclassbasedlg.cpp:181 +msgid "Add..." msgstr "" -#: Plugin/macrosdlg.cpp:92 -msgid "" -"A space delimited string containing all of the project files in a relative " -"path to the project file" +#: Gizmos/newclassbasedlg.cpp:182 +msgid "Click to add a class from which to derive" msgstr "" -#: Plugin/macrosdlg.cpp:93 -msgid "" -"A space delimited string containing all of the project files in an absolute " -"path" +#: Gizmos/newclassbasedlg.cpp:198 +msgid "Declare this class non-copyable" msgstr "" -#: Plugin/macrosdlg.cpp:94 -msgid "backticks: evaluates the expression inside the backticks into a string" +#: Gizmos/newclassbasedlg.cpp:203 +msgid "Implement all virtual functions" msgstr "" -#: Plugin/macrosdlg.cpp:98 -msgid "Expands to the compiler name as set in the Tools tab" +#: Gizmos/newclassbasedlg.cpp:208 +msgid "This is a singleton class" msgstr "" -#: Plugin/macrosdlg.cpp:99 -msgid "Expands to the source switch (usually, -c)" +#: Gizmos/newclassbasedlg.cpp:213 +msgid "Implement all pure virtual functions" msgstr "" -#: Plugin/macrosdlg.cpp:100 -msgid "The file full path (includes path+name+extension)" +#: Gizmos/newclassbasedlg.cpp:218 +msgid "Virtual destructor" msgstr "" -#: Plugin/macrosdlg.cpp:101 -msgid "The file full name (includes name+extension)" +#: Gizmos/newclassbasedlg.cpp:306 +msgid "Select Parent Class:" msgstr "" -#: Plugin/macrosdlg.cpp:102 -msgid "The file name (name only)" +#: Gizmos/newclassbasedlg.cpp:311 +msgid "Type the name of the parent class" msgstr "" -#: Plugin/macrosdlg.cpp:103 -msgid "The file's path with UNIX slashes, including terminating separator" +#: Gizmos/newclassbasedlg.cpp:319 +msgid "Click here to open the open resource dialog" msgstr "" -#: Plugin/macrosdlg.cpp:104 -msgid "Expands to the compiler options as set in the project settings" +#: Gizmos/newclassbasedlg.cpp:323 +msgid "Inheritance Access:" msgstr "" -#: Plugin/macrosdlg.cpp:105 -msgid "Expands to the resource compiler name" +#: Gizmos/newclassbasedlg.h:113 codelitephp/php-plugin/new_class.h:75 +msgid "New Class" msgstr "" -#: Plugin/macrosdlg.cpp:109 -msgid "Expands to the linker name as set in the Tools tab" +#: Gizmos/newclassbasedlg.h:139 +msgid "NewIneritanceDlgBase" msgstr "" -#: Plugin/macrosdlg.cpp:110 -msgid "Expands to the archive tool (e.g. ar) name as set in the Tools tab" +#: Gizmos/gizmos_base.h:70 +msgid "New Plugin Wizard" msgstr "" -#: Plugin/macrosdlg.cpp:111 -msgid "Expands to the shared object linker name as set in the Tools tab" +#: Gizmos/newwxprojectbasedlg.cpp:79 +msgid "Choose a name to give the project" msgstr "" -#: Plugin/macrosdlg.cpp:112 -msgid "Objects suffix (usually set to .o)" +#: Gizmos/newwxprojectbasedlg.cpp:83 +msgid "Project Path:" msgstr "" -#: Plugin/macrosdlg.cpp:113 -msgid "The object name (without the suffix)" +#: Gizmos/newwxprojectbasedlg.cpp:90 +msgid "Application Type:" msgstr "" -#: Plugin/macrosdlg.cpp:114 -msgid "Objects suffix (usually set to .o.d)" +#: Gizmos/newwxprojectbasedlg.cpp:94 +msgid "Simple main with wxWidgets enabled" msgstr "" -#: Plugin/macrosdlg.cpp:115 -msgid "Objects suffix (usually set to .o.i)" +#: Gizmos/newwxprojectbasedlg.cpp:94 +msgid "GUI application with Main Frame" msgstr "" -#: Plugin/macrosdlg.cpp:116 -msgid "The compiler include switch" +#: Gizmos/newwxprojectbasedlg.cpp:94 +msgid "GUI frame-based application (wxFormBuilder)" msgstr "" -#: Plugin/macrosdlg.cpp:117 -msgid "The library switch (e.g. -l)" +#: Gizmos/newwxprojectbasedlg.cpp:94 +msgid "GUI dialog-based application (wxFormBuilder)" msgstr "" -#: Plugin/macrosdlg.cpp:118 -msgid "The output switch (e.g. -o)" +#: Gizmos/newwxprojectbasedlg.cpp:98 +msgid "" +"The normal choice will be 'GUI application', but choose 'Simple main' for a " +"wx console app" msgstr "" -#: Plugin/macrosdlg.cpp:119 -msgid "Library switch (e.g. -L)" +#: Gizmos/newwxprojectbasedlg.cpp:108 +msgid "Advanced Settings:" msgstr "" -#: Plugin/macrosdlg.cpp:120 -msgid "Preprocessor switch (e.g. -D)" +#: Gizmos/newwxprojectbasedlg.cpp:121 +msgid "Use precompiled headers" msgstr "" -#: Plugin/macrosdlg.cpp:121 -msgid "" -"Expands to all preprocessors set in the project setting where each entry is " -"prefixed with $(PreprocessorSwitch)" +#: Gizmos/newwxprojectbasedlg.cpp:124 +msgid "Use MS Windows resources" msgstr "" -#: Plugin/macrosdlg.cpp:122 -msgid "Archive switch, usually not needed (VC compiler sets it to /OUT:" +#: Gizmos/newwxprojectbasedlg.cpp:127 +msgid "Add -mwindows flag to avoid a terminal console in MSWin GUI apps" msgstr "" -#: Plugin/macrosdlg.cpp:123 -msgid "The compiler preprocess-only switch (e.g. -E)" +#: Gizmos/newwxprojectbasedlg.cpp:128 +msgid "" +"Without this flag, there will be an unnecessary, visible terminal window " +"when your app runs on MSWindows" msgstr "" -#: Plugin/macrosdlg.cpp:124 -msgid "The linker options as set in the project settings" +#: Gizmos/newwxprojectbasedlg.cpp:135 +msgid "Basics" msgstr "" -#: Plugin/macrosdlg.cpp:125 -msgid "All include paths prefixed with $(IncludeSwitch)" +#: Gizmos/newwxprojectbasedlg.cpp:140 +msgid "Use Unicode Build of wxWidgets" msgstr "" -#: Plugin/macrosdlg.cpp:126 -msgid "Resource compiler include path as set in the project settings" +#: Gizmos/newwxprojectbasedlg.cpp:142 +msgid "Uses an unicode configuration if found." msgstr "" -#: Plugin/macrosdlg.cpp:127 -msgid "" -"List of libraries to link with. Each library is prefixed with " -"$(LibrarySwitch)" +#: Gizmos/newwxprojectbasedlg.cpp:146 +msgid "Use Static wxWidgets libraries" msgstr "" -#: Plugin/macrosdlg.cpp:128 -msgid "" -"List of library paths to link with. Each library is prefixed with " -"$(LibraryPathSwitch)" +#: Gizmos/newwxprojectbasedlg.cpp:147 +msgid "Uses a static configuration if found." msgstr "" -#: Plugin/macrosdlg.cpp:129 -msgid "The output file" +#: Gizmos/newwxprojectbasedlg.cpp:151 +msgid "Use Universal wxWidgets libraries" msgstr "" -#: Plugin/nameanddescbasedlg.cpp:57 -msgid "Project category:" +#: Gizmos/newwxprojectbasedlg.cpp:152 +msgid "Uses an universal configuration if found." msgstr "" -#: Plugin/newkeyshortcutdlg.cpp:142 -msgid "F" +#: Gizmos/newwxprojectbasedlg.cpp:169 +msgid "Use selected wxWidgets version." msgstr "" -#: Plugin/newkeyshortcutdlg.cpp:146 -msgid "SPECIAL" +#: Gizmos/newwxprojectbasedlg.cpp:173 +msgid "Prefix:" msgstr "" -#: Plugin/open_resource_dialog.cpp:86 -msgid "Open resource..." +#: Gizmos/newwxprojectbasedlg.cpp:178 +msgid "Path of the wxWidgets installation (optional)." msgstr "" -#: Plugin/openresourcedialogbase.cpp:54 -msgid "" -"Type resource name to open.\n" -"You may use a space delimited list of words to narrow down the list of " -"choices\n" -"e.g. Typing: 'Open Dialog' will include results that contain both words " -"\"Open\" _and_ \"Dialog\"" +#: Gizmos/newwxprojectbasedlg.cpp:187 +msgid "wxWidgets settings" msgstr "" -#: Plugin/renamefilebasedlg.cpp:56 -msgid "The following files will be updated:" +#: Gizmos/newclassdlg.cpp:62 +msgid "Access" msgstr "" -#: Plugin/renamefilebasedlg.cpp:73 -msgid "Included From:" +#: Gizmos/newclassdlg.cpp:234 Gizmos/newclassdlg.cpp:247 +msgid "' is not a valid C++ qualifier" msgstr "" -#: Plugin/renamefilebasedlg.cpp:83 -msgid "Line:" +#: Gizmos/newclassdlg.cpp:258 +msgid "': directory does not exist" msgstr "" -#: Plugin/renamefilebasedlg.cpp:93 -msgid "Pattern:" +#: Gizmos/newclassdlg.cpp:264 +msgid "Empty file name" msgstr "" -#: Plugin/sftp_ui.cpp:54 SFTP/UI.cpp:35 -msgid "Account" +#: Gizmos/newclassdlg.cpp:271 Gizmos/newclassdlg.cpp:278 +#, c-format +msgid "A file with this name: '%s' already exists, continue anyway?" msgstr "" -#: Plugin/sftp_ui.cpp:55 -msgid "Host" +#: Gizmos/newclassdlg.cpp:284 +msgid "Please select a virtual directory" msgstr "" -#: Plugin/sftp_ui.cpp:56 -msgid "User" +#: Gizmos/newclassdlg.cpp:346 +msgid "Select Generated Files Path:" msgstr "" -#: Plugin/sftp_ui.cpp:62 -msgid "Add new account" +#: Gizmos/PluginWizard.cpp:63 +msgid "Invalid plugin name" msgstr "" -#: Plugin/sftp_ui.cpp:67 -msgid "Delete the selected accounts" +#: Gizmos/PluginWizard.cpp:69 +msgid "codelite folder does not exists" msgstr "" -#: Plugin/sftp_ui.cpp:72 -msgid "Edit the selected account" +#: Gizmos/PluginWizard.cpp:75 +msgid "The selected plugin folder does not exist" msgstr "" -#: Plugin/sftp_ui.cpp:151 -msgid "Account Name:" +#: Gizmos/newwxprojectbasedlg.h:107 +msgid "New wxWidgets Project" msgstr "" -#: Plugin/sftp_ui.cpp:152 Plugin/sftp_ui.cpp:157 -msgid "Give this account a unique name" +#: Gizmos/newinheritancedlg.cpp:31 +msgid "New Inheritance" msgstr "" -#: Plugin/sftp_ui.cpp:165 -msgid "Host / IP:" +#: Gizmos/newwxprojectdlg.cpp:76 Gizmos/newwxprojectdlg.cpp:86 +msgid "Invalid project name '" msgstr "" -#: Plugin/sftp_ui.cpp:170 -msgid "The remote host ip address or its known name" +#: Gizmos/newwxprojectdlg.cpp:77 Gizmos/newwxprojectdlg.cpp:87 +msgid "Valid characters for project name are [0-9A-Za-z_]" msgstr "" -#: Plugin/sftp_ui.cpp:182 -msgid "The SSH port. If you don't know it, leave it as 22 (SSH default port)" +#: Gizmos/newwxprojectdlg.cpp:102 +#, c-format +msgid "" +"Failed to create the path: %s\n" +"A permissions problem, perhaps?" msgstr "" -#: Plugin/sftp_ui.cpp:189 Subversion2/subversion2_ui.cpp:217 -msgid "Username:" +#: CMakePlugin/CMakePlugin.cpp:105 +msgid "CMake Help" msgstr "" -#: Plugin/sftp_ui.cpp:194 -msgid "Login user name" +#: CMakePlugin/CMakePlugin.cpp:140 +msgid "CMake integration for CodeLite" msgstr "" -#: Plugin/sftp_ui.cpp:206 -msgid "" -"This field is optional. By leaving this field empty, codelite will attempt " -"to connect only using public key authentication" +#: CMakePlugin/CMakePlugin.cpp:203 +msgid "CMake integration with CodeLite" msgstr "" -#: Plugin/sftp_ui.cpp:213 -msgid "Default folder:" +#: CMakePlugin/CMakePluginUi.h:52 +msgid "CMakePlugin Settings" msgstr "" -#: Plugin/sftp_ui.cpp:218 -msgid "Set the home folder for this account" +#: CMakePlugin/CMakePluginUi.cpp:36 +msgid "CMake program:" msgstr "" -#: Plugin/sftp_ui.cpp:225 -msgid "Test Connection" +#: CMakePlugin/CMakePluginUi.cpp:41 +msgid "Path to cmake executable." msgstr "" -#: Plugin/sftp_ui.cpp:285 SnipWiz/templateclassbasedlg.cpp:131 -#: codelitephp/php-plugin/php_ui.cpp:155 codelitephp/php-plugin/php_ui.cpp:256 -msgid "Path:" +#: CMakePlugin/CMakePluginUi.cpp:46 +msgid "Default Generator:" msgstr "" -#: Plugin/sftp_ui.cpp:290 -msgid "Set the remote folder to browse and click on the 'Refresh' button" +#: CMakePlugin/CMakePluginUi.cpp:52 +msgid "" +"You can specify default generator for all projects (if is not overrided by " +"project settings). If generator is not selected the CMake uses platform's " +"default." msgstr "" -#: Plugin/sftp_ui.cpp:298 -msgid "Connect..." +#: CMakePlugin/CMakePluginUi.cpp:113 +msgid "Select Topic:" msgstr "" -#: Plugin/sftp_ui.cpp:302 -msgid "Account:" +#: CMakePlugin/CMakePluginUi.cpp:128 +msgid "Reloads Help from CMake" msgstr "" -#: Plugin/sftp_ui.cpp:316 -msgid "Parent folder" +#: CMakePlugin/CMakePluginUi.cpp:152 +msgid "Double click to insert in the current editor." msgstr "" -#: Plugin/sftp_ui.cpp:318 -msgid "Open SSH Account Manager..." +#: CMakePlugin/CMakePluginUi.cpp:212 +msgid "Enable CMake for this project" msgstr "" -#: Plugin/sftp_ui.cpp:491 -msgid "Type a command and hit ENTER" +#: CMakePlugin/CMakePluginUi.cpp:224 +msgid "Parent project:" msgstr "" -#: Plugin/unredobase.cpp:160 -msgid "Redo " +#: CMakePlugin/CMakePluginUi.cpp:230 +msgid "" +"Allow you to specify parent project. Specify this when project is sub-" +"directory (see add_subdirectory) and it's built with the parent project." msgstr "" -#: Plugin/unredobase.cpp:160 -msgid "Undo " +#: CMakePlugin/CMakePluginUi.cpp:234 +msgid "Sources directory:" msgstr "" -#: Plugin/unredobase.cpp:226 -msgid "Undo/Redo to a pre&viously labelled state" +#: CMakePlugin/CMakePluginUi.cpp:239 +msgid "Path to directory where CMakeLists.txt is located." msgstr "" -#: Plugin/workspace.cpp:290 -msgid "AddProjectToBuildMatrix was called with NULL project" +#: CMakePlugin/CMakePluginUi.cpp:243 +msgid "Build directory:" msgstr "" -#: Plugin/workspace.cpp:480 +#: CMakePlugin/CMakePluginUi.cpp:248 msgid "" -"Failed to save workspace file to disk. Please check that you have permission " -"to write to disk" +"Directory where the project will be built. Path is relative to " +"$(WorkspacePath)." +msgstr "" + +#: CMakePlugin/CMakePluginUi.cpp:252 +msgid "Generator:" msgstr "" -#: Plugin/workspace.cpp:732 -msgid "Malformed project name" +#: CMakePlugin/CMakePluginUi.cpp:258 +msgid "" +"Generator that will be used for CMake configuration. If no generator is " +"selected, plugin uses global default generator selected in plugin settings." msgstr "" -#: Plugin/workspace.cpp:744 -msgid "No such project" +#: CMakePlugin/CMakePluginUi.cpp:262 +msgid "Build Type:" msgstr "" -#: Plugin/workspace.cpp:750 -msgid "File removal failed" +#: CMakePlugin/CMakePluginUi.cpp:273 +msgid "When is selected pass -DCMAKE_BUILD_TYPE to cmake." msgstr "" -#: Plugin/wxcrafter_plugin.cpp:111 -msgid "Text Files Comparison" +#: CMakePlugin/CMakePluginUi.cpp:280 +msgid "CMake arguments (used for configuration)" msgstr "" -#: Plugin/wxcrafter_plugin.cpp:114 -msgid "Comparison" +#: CMakePlugin/CMakePluginUi.cpp:285 +msgid "" +"Argument list used when CMake is called. Each argument must be separated by " +"new line. Multiple arguments on the one line are OK too if they're separated " +"by space.\n" +"Do not use arguments -DCMAKE_BUILD_TYPE, -G and 'path', they are passed by " +"the plugin.\n" +"\n" +"Example:\n" +"-DCMAKE_CXX_FLAGS=-g\n" +"-DCMAKE_C_FLAGS=-g" msgstr "" -#: Plugin/wxcrafter_plugin.cpp:120 -msgid "Next Diff" +#: CMakePlugin/CMakeWorkspaceMenu.cpp:68 CMakePlugin/CMakeProjectMenu.cpp:72 +msgid "Open CMakeLists.txt" msgstr "" -#: Plugin/wxcrafter_plugin.cpp:122 -msgid "Previous" +#: CMakePlugin/CMakeWorkspaceMenu.cpp:73 CMakePlugin/CMakeProjectMenu.cpp:77 +msgid "Export CMakeLists.txt" msgstr "" -#: Plugin/wxcrafter_plugin.cpp:122 -msgid "Previous Diff" +#: CMakePlugin/CMakeHelpTab.cpp:167 +msgid "CMake application path is invalid!" msgstr "" -#: Plugin/wxcrafter_plugin.cpp:129 Plugin/wxcrafter_plugin.cpp:131 -msgid " Copy" +#: CMakePlugin/CMakeGenerator.cpp:88 +msgid "Overwrite" msgstr "" -#: Plugin/wxcrafter_plugin.cpp:129 -msgid "Copy current diff sequence from the left side to the right side" +#: CMakePlugin/CMakeGenerator.cpp:89 +msgid "Don't Overwrite" msgstr "" -#: Plugin/wxcrafter_plugin.cpp:131 -msgid "Copy current diff sequence from the right side to the left side" +#: CMakePlugin/CMakeGenerator.cpp:90 +msgid "Remember my answer and don't annoy me again" msgstr "" -#: Plugin/wxcrafter_plugin.cpp:133 -msgid "All Left" +#: CMakePlugin/CMakeProjectMenu.cpp:78 +msgid "Make dirty" msgstr "" -#: Plugin/wxcrafter_plugin.cpp:133 -msgid "Copy the content of the left file to the right file" +#: CMakePlugin/CMakeProjectMenu.cpp:79 +msgid "" +"Marks CMake output files as dirty and forces cmake configuration to be call " +"again. This is very handy when you made some changes which don't change " +"CMakeLists.txt" msgstr "" -#: Plugin/wxcrafter_plugin.cpp:135 -msgid "All Right" +#: QmakePlugin/qmakesettingsbasedlg.cpp:53 +msgid "Add / modfiy qmake configurations:" msgstr "" -#: Plugin/wxcrafter_plugin.cpp:135 -msgid "Copy file from right to left" +#: QmakePlugin/qmakesettingsbasedlg.cpp:74 +msgid "Create new qmake settings" msgstr "" -#: Plugin/wxcrafter_plugin.cpp:137 -msgid "Save changes and refresh the diff view" +#: QmakePlugin/qmakesettingsbasedlg.cpp:128 +msgid "qmake executable:" msgstr "" -#: Plugin/wxcrafter_plugin.cpp:144 -msgid "Vertical" +#: QmakePlugin/qmakesettingsbasedlg.cpp:136 +msgid "QMAKESPEC:" msgstr "" -#: Plugin/wxcrafter_plugin.cpp:144 -msgid "Vertical panes" +#: QmakePlugin/qmakesettingsbasedlg.cpp:145 +msgid "QTDIR:" msgstr "" -#: Plugin/wxcrafter_plugin.cpp:146 -msgid "Horizontal" +#: QmakePlugin/qmakesettingsbasedlg.cpp:150 +msgid "Set QTDIR to the directory where you've installed Qt" msgstr "" -#: Plugin/wxcrafter_plugin.cpp:146 -msgid "Horizontal panes" +#: QmakePlugin/NewQtProj.h:69 +msgid "New Qmake project" msgstr "" -#: Plugin/wxcrafter_plugin.cpp:148 -msgid "Single" +#: QmakePlugin/qmakesettingsdlg.cpp:70 +msgid "New qmake settings name" msgstr "" -#: Plugin/wxcrafter_plugin.cpp:148 -msgid "Single view" +#: QmakePlugin/qmakesettingsdlg.cpp:70 +msgid "New qmake settings" msgstr "" -#: Plugin/wxcrafter_plugin.cpp:350 -msgid "Caption" +#: QmakePlugin/qmakesettingsdlg.cpp:119 +#, c-format +msgid "Are you sure you want to delete qmake settings '%s'?" msgstr "" -#: Plugin/wxterminal.cpp:222 Plugin/wxterminal.cpp:291 -msgid "Press any key to continue..." +#: QmakePlugin/qmakesettingsbasedlg.h:65 +msgid "QMake Settings" msgstr "" -#: Plugin/wxterminal.cpp:287 -#, c-format -msgid "" -"Failed to execute command: %s\n" -"Working Directory: %s\n" +#: QmakePlugin/qmaketabbase.cpp:53 +msgid "This project uses qmake" msgstr "" -#: QmakePlugin/NewQtProj.cpp:76 -msgid "Project kind:" +#: QmakePlugin/qmaketabbase.cpp:65 +msgid "qmake settings:" msgstr "" -#: QmakePlugin/NewQtProj.cpp:85 -msgid "QMake to use:" +#: QmakePlugin/qmaketabbase.cpp:66 QmakePlugin/qmaketabbase.cpp:72 +msgid "" +"Select the QMake to be used for this build configuration as defined in " +"'Plugins -> QMake -> Settings'" msgstr "" -#: QmakePlugin/NewQtProj.cpp:99 -msgid "Open the QMakeSettings configuration dialog" +#: QmakePlugin/qmaketabbase.cpp:76 +msgid "qmake execution line:" msgstr "" -#: QmakePlugin/NewQtProj.cpp:103 -msgid "Other settings:" +#: QmakePlugin/qmaketabbase.cpp:84 +msgid "" +"CodeLite will place the below text after the auto generated section (so you " +"may override the generated variables)" msgstr "" #: QmakePlugin/qmakeplugin.cpp:70 QmakePlugin/qmakeplugin.cpp:86 @@ -11680,3945 +14197,3836 @@ msgid "Failed to create .project file '%s'" msgstr "" -#: QmakePlugin/qmakesettingsbasedlg.cpp:53 -msgid "Add / modfiy qmake configurations:" -msgstr "" - -#: QmakePlugin/qmakesettingsbasedlg.cpp:74 -msgid "Create new qmake settings" -msgstr "" - -#: QmakePlugin/qmakesettingsbasedlg.cpp:128 -msgid "qmake executable:" -msgstr "" - -#: QmakePlugin/qmakesettingsbasedlg.cpp:136 -msgid "QMAKESPEC:" -msgstr "" - -#: QmakePlugin/qmakesettingsbasedlg.cpp:145 -msgid "QTDIR:" -msgstr "" - -#: QmakePlugin/qmakesettingsbasedlg.cpp:150 -msgid "Set QTDIR to the directory where you've installed Qt" -msgstr "" - -#: QmakePlugin/qmakesettingsdlg.cpp:70 -msgid "New qmake settings" -msgstr "" - -#: QmakePlugin/qmakesettingsdlg.cpp:70 -msgid "New qmake settings name" -msgstr "" - -#: QmakePlugin/qmakesettingsdlg.cpp:119 -#, c-format -msgid "Are you sure you want to delete qmake settings '%s'?" -msgstr "" - -#: QmakePlugin/qmakesettingsdlg.cpp:130 Subversion2/subversion2.cpp:1178 -#: Subversion2/subversion_view.cpp:1347 -msgid "New name:" -msgstr "" - -#: QmakePlugin/qmaketabbase.cpp:53 -msgid "This project uses qmake" +#: QmakePlugin/NewQtProj.cpp:76 +msgid "Project kind:" msgstr "" -#: QmakePlugin/qmaketabbase.cpp:65 -msgid "qmake settings:" +#: QmakePlugin/NewQtProj.cpp:85 +msgid "QMake to use:" msgstr "" -#: QmakePlugin/qmaketabbase.cpp:66 QmakePlugin/qmaketabbase.cpp:72 -msgid "" -"Select the QMake to be used for this build configuration as defined in " -"'Plugins -> QMake -> Settings'" +#: QmakePlugin/NewQtProj.cpp:99 +msgid "Open the QMakeSettings configuration dialog" msgstr "" -#: QmakePlugin/qmaketabbase.cpp:76 -msgid "qmake execution line:" +#: QmakePlugin/NewQtProj.cpp:103 +msgid "Other settings:" msgstr "" -#: QmakePlugin/qmaketabbase.cpp:84 -msgid "" -"CodeLite will place the below text after the auto generated section (so you " -"may override the generated variables)" +#: menu.xrc:9 +msgid "&New Empty File" msgstr "" -#: Runtime/templates/projects/executable-wx-frame/gui.cpp:19 -msgid "E&xit" +#: menu.xrc:12 +msgid "New &Workspace" msgstr "" -#: Runtime/templates/projects/executable-wx-frame/gui.cpp:22 -msgid "&File" +#: menu.xrc:15 menu.xrc:453 +msgid "New &Project" msgstr "" -#: Runtime/templates/projects/executable-wxcrafter-frame/MainFrame.cpp:23 -msgid "My MainFrame" +#: menu.xrc:19 menu.xrc:1222 +msgid "&Open" msgstr "" -#: Runtime/templates/projects/executable-wxcrafter-frame/MainFrame.cpp:24 -#: codelite_terminal/MainFrame.cpp:109 -msgid "GPL v2 or later" +#: menu.xrc:21 +msgid "&Open File..." msgstr "" -#: Runtime/templates/projects/executable-wxcrafter-frame/MainFrame.cpp:25 -msgid "Short description goes here" +#: menu.xrc:24 +msgid "Open &Workspace..." msgstr "" -#: Runtime/templates/projects/executable-wxcrafter-frame/wxcrafter.cpp:36 -#: codelite_terminal/wxcrafter.cpp:127 -msgid "Exit\tAlt-X" +#: menu.xrc:28 +msgid "&Reload File" msgstr "" -#: Runtime/templates/projects/executable-wxcrafter-frame/wxcrafter.cpp:36 -#: codelite_terminal/wxcrafter.cpp:127 -msgid "Quit" +#: menu.xrc:31 +msgid "Load a group of tabs" msgstr "" -#: SFTP/SFTPTreeView.cpp:332 -msgid "Create new directory..." +#: menu.xrc:35 +msgid "&Save File" msgstr "" -#: SFTP/SFTPTreeView.cpp:333 -msgid "Create new file..." +#: menu.xrc:38 +msgid "Save As..." msgstr "" -#: SFTP/SFTPTreeView.cpp:355 -msgid "Are you sure you want to delete the selected items?" +#: menu.xrc:44 +msgid "Save tabs as group" msgstr "" -#: SFTP/SFTPTreeView.cpp:392 -msgid "Enter the new directory name:" +#: menu.xrc:57 menu.xrc:1081 +msgid "Close Workspace" msgstr "" -#: SFTP/SFTPTreeView.cpp:392 -msgid "New Directory" +#: menu.xrc:63 +msgid "Recent &Files" msgstr "" -#: SFTP/SFTPTreeView.cpp:417 -msgid "Enter the new file name:" +#: menu.xrc:68 +msgid "Recent &Workspaces" msgstr "" -#: SFTP/SFTPTreeView.cpp:543 -msgid "Manage bookmarks..." +#: menu.xrc:84 +msgid "&Undo" msgstr "" -#: SFTP/SFTPTreeView.cpp:621 SFTP/UI.cpp:144 -msgid "Disconnected. Click to connect" +#: menu.xrc:87 +msgid "&Redo" msgstr "" -#: SFTP/SFTPTreeView.cpp:626 -msgid "Connected. Click to disconnect" +#: menu.xrc:90 +msgid "Set la&bel for current state" msgstr "" -#: SFTP/SFTPTreeView.cpp:649 SFTP/sftp.cpp:161 -msgid "SFTP" +#: menu.xrc:94 +msgid "&Cut" msgstr "" -#: SFTP/SFTPTreeView.cpp:651 -msgid "" -"\n" -"(this may take a few seconds)" +#: menu.xrc:97 +msgid "Co&py" msgstr "" -#: SFTP/SFTPTreeView.cpp:651 SFTP/SFTPTreeView.cpp:654 -msgid "Connecting to: " +#: menu.xrc:100 +msgid "Past&e" msgstr "" -#: SFTP/SFTPTreeView.cpp:672 -msgid "Connected!" +#: menu.xrc:103 +msgid "Select &All" msgstr "" -#: SFTP/SFTPTreeView.cpp:673 -msgid "Authenticating server..." +#: menu.xrc:106 +msgid "Split selection into lines" msgstr "" -#: SFTP/SFTPTreeView.cpp:679 -msgid "Accepting server authentication server..." +#: menu.xrc:112 +msgid "&Delete Line" msgstr "" -#: SFTP/SFTPTreeView.cpp:685 -msgid "Server authenticated" +#: menu.xrc:115 +msgid "D&uplicate Selection / Line" msgstr "" -#: SFTP/SFTPTreeView.cpp:690 -msgid "Logging..." +#: menu.xrc:118 +msgid "Delete to Line &End" msgstr "" -#: SFTP/SFTPTreeView.cpp:696 -msgid "Done!" +#: menu.xrc:121 +msgid "Delete to Line &Start" msgstr "" -#: SFTP/SFTPTreeView.cpp:699 -msgid "Fetching directory list..." +#: menu.xrc:124 +msgid "&Transpose Lines" msgstr "" -#: SFTP/UI.cpp:33 -msgid "Time" +#: menu.xrc:127 +msgid "Move Line Up" msgstr "" -#: SFTP/UI.cpp:34 -msgid "Status" +#: menu.xrc:130 +msgid "Move Line Down" msgstr "" -#: SFTP/UI.cpp:142 -msgid "Open account manager..." +#: menu.xrc:133 +msgid "Center Line in Editor" msgstr "" -#: SFTP/UI.cpp:146 -msgid "Select a folder from the tree view and add it as a bookmark" +#: menu.xrc:137 +msgid "Comment" msgstr "" -#: SFTP/UI.cpp:152 -msgid "Open Terminal" +#: menu.xrc:139 +msgid "Comment Selection" msgstr "" -#: SFTP/UI.cpp:167 -msgid "Go to:" +#: menu.xrc:142 +msgid "Comment Line" msgstr "" -#: SFTP/UI.cpp:172 -msgid "Type a path and hit ENTER" +#: menu.xrc:145 +msgid "Insert Comment Block" msgstr "" -#: SFTP/UI.cpp:339 Subversion2/subversion2_ui.cpp:396 -msgid "SSH Client:" +#: menu.xrc:149 +msgid "Text Conversion" msgstr "" -#: SFTP/sftp.cpp:154 SFTP/sftp.cpp:155 -msgid "Open SSH Account Manager" +#: menu.xrc:151 +msgid "Make Upper&case" msgstr "" -#: SFTP/sftp.cpp:172 -msgid "&Setup..." +#: menu.xrc:154 +msgid "Make &Lowercase" msgstr "" -#: SFTP/sftp.cpp:176 -msgid "&Disable" +#: menu.xrc:158 +msgid "Convert to Windows Format" msgstr "" -#: SFTP/sftp.cpp:181 -msgid "Workspace Mirroring" +#: menu.xrc:161 +msgid "Convert to Unix Format" msgstr "" -#: SFTP/sftp.cpp:256 -msgid "Select the remote workspace" +#: menu.xrc:165 +msgid "Convert Indentation to Tabs" msgstr "" -#: SFTP/sftp.cpp:324 SFTP/sftp.cpp:384 -msgid "Failed to synchronize file '" +#: menu.xrc:168 +msgid "Convert Indentation to Spaces" msgstr "" -#: SFTP/sftp.cpp:324 SFTP/sftp.cpp:384 -msgid "with remote server\n" +#: menu.xrc:173 +msgid "Trim T&railing Spaces" msgstr "" -#: SFTP/sftp.cpp:325 SFTP/sftp.cpp:385 -msgid "Could not locate account: " +#: menu.xrc:177 +msgid "Match &Brace" msgstr "" -#: SFTP/sftp_worker_thread.cpp:87 -msgid "Uploading file: " +#: menu.xrc:180 +msgid "S&elect to Brace" msgstr "" -#: SFTP/sftp_worker_thread.cpp:94 -msgid "Downloading file: " +#: menu.xrc:184 +msgid "Complete &Word" msgstr "" -#: SFTP/sftp_worker_thread.cpp:143 -msgid "Connecting to " +#: menu.xrc:187 +msgid "Display &Function Calltip" msgstr "" - -#: SnipWiz/editsnippetsbasedlg.cpp:64 -msgid "Menu Entry:" + +#: menu.xrc:192 +msgid "&View" msgstr "" -#: SnipWiz/editsnippetsbasedlg.cpp:74 -msgid "Keyboard Shortcut:" +#: menu.xrc:195 +msgid "Word W&rap" msgstr "" -#: SnipWiz/editsnippetsbasedlg.cpp:86 -msgid "" -"Use $ as placeholder for the selection and @ to set the caret position.\n" -"e.g. for($ = 0; $ < @; $++)\n" -"NOTE:\n" -"If your snippet contains @ or $, you can escape the placeholders with a " -"backslash: \\@ OR \\$ " +#: menu.xrc:199 +msgid "Toggle Current &Fold" msgstr "" -#: SnipWiz/editsnippetsbasedlg.cpp:101 SnipWiz/templateclassbasedlg.cpp:191 -#: SpellChecker/wxcrafter.cpp:205 -msgid "Change" +#: menu.xrc:202 +msgid "Toggle &All Folds" msgstr "" -#: SnipWiz/editsnippetsbasedlg.cpp:116 -msgid "Snippets" +#: menu.xrc:205 +msgid "Toggle All To&pmost Folds in Selection" msgstr "" -#: SnipWiz/editsnippetsdlg.cpp:78 SnipWiz/editsnippetsdlg.cpp:103 -msgid "Menu entry is not unique!" +#: menu.xrc:208 +msgid "Toggle &Every Fold in Selection" msgstr "" -#: SnipWiz/editsnippetsdlg.cpp:184 -msgid "That accelerator already exists" +#: menu.xrc:211 +msgid "&Display EOL" msgstr "" -#: SnipWiz/snipwiz.cpp:86 -msgid "A small tool to add expandable code snippets and template classes" +#: menu.xrc:215 +msgid "Show Whitespace" msgstr "" -#: SnipWiz/snipwiz.cpp:162 -msgid "Template class..." +#: menu.xrc:221 +msgid "Show Always" msgstr "" -#: SnipWiz/snipwiz.cpp:191 -msgid "New Class from Template..." +#: menu.xrc:225 +msgid "Visible After First Indent" msgstr "" -#: SnipWiz/snipwiz.cpp:221 -msgid "Enter identifier name" +#: menu.xrc:229 +msgid "Indentation Only" msgstr "" -#: SnipWiz/snipwiz.cpp:221 SnipWiz/snipwiz.cpp:224 -msgid "switch(...)" +#: menu.xrc:235 +msgid "Full Screen..." msgstr "" -#: SnipWiz/snipwiz.cpp:224 -msgid "Cases:" +#: menu.xrc:239 +msgid "Show &Welcome Page" msgstr "" -#: SnipWiz/snipwiz.cpp:224 -msgid "Enter number of cases" +#: menu.xrc:242 +msgid "Load Welcome Page at &Startup" msgstr "" -#: SnipWiz/snipwiz.cpp:363 -msgid "Paste buffer" +#: menu.xrc:247 +msgid "&Output Pane" msgstr "" -#: SnipWiz/snipwiz.cpp:367 -msgid "switch{...}" +#: menu.xrc:251 +msgid "Wor&kspace Pane" msgstr "" -#: SnipWiz/templateclassbasedlg.cpp:51 UnitTestCPP/testclassbasedlg.cpp:50 -#: wxformbuilder/wxfbitembasedlg.cpp:49 -msgid "Class name:" +#: menu.xrc:255 +msgid "&Navigation Bar" msgstr "" -#: SnipWiz/templateclassbasedlg.cpp:56 -msgid "Name of new class" +#: menu.xrc:259 +msgid "&Debugger Pane" msgstr "" -#: SnipWiz/templateclassbasedlg.cpp:70 -msgid "Template for new class" +#: menu.xrc:284 +msgid "Tool&bars" msgstr "" -#: SnipWiz/templateclassbasedlg.cpp:74 -msgid "Files" +#: menu.xrc:287 +msgid "Standard ToolBar" msgstr "" -#: SnipWiz/templateclassbasedlg.cpp:85 -msgid ".h filename:" +#: menu.xrc:291 +msgid "Search ToolBar" msgstr "" -#: SnipWiz/templateclassbasedlg.cpp:90 -msgid "Name of header file" +#: menu.xrc:295 +msgid "Build ToolBar" msgstr "" -#: SnipWiz/templateclassbasedlg.cpp:99 -msgid ".cpp filename:" +#: menu.xrc:299 +msgid "Debug ToolBar" msgstr "" -#: SnipWiz/templateclassbasedlg.cpp:104 -msgid "Name of source file" +#: menu.xrc:304 +msgid "Show/hide main toolbars" msgstr "" -#: SnipWiz/templateclassbasedlg.cpp:119 -msgid "Virtual folder to add new files" +#: menu.xrc:308 +msgid "Show/hide all plugin toolbars" msgstr "" -#: SnipWiz/templateclassbasedlg.cpp:127 -msgid "Browse virtual folders" +#: menu.xrc:316 +msgid "&Toggle All Panes" msgstr "" -#: SnipWiz/templateclassbasedlg.cpp:136 -msgid "Hd folder to add new files" +#: menu.xrc:320 +msgid "Show Status Bar" msgstr "" -#: SnipWiz/templateclassbasedlg.cpp:144 -msgid "Browse folders" +#: menu.xrc:324 +msgid "Show ToolBar" msgstr "" -#: SnipWiz/templateclassbasedlg.cpp:154 -msgid "&Generate" +#: menu.xrc:328 +msgid "Show TabBar" msgstr "" -#: SnipWiz/templateclassbasedlg.cpp:160 -msgid "&Quit" +#: menu.xrc:337 +msgid "&Find In Files..." msgstr "" -#: SnipWiz/templateclassbasedlg.cpp:174 -msgid "Class:" +#: menu.xrc:340 +msgid "Fi&nd..." msgstr "" -#: SnipWiz/templateclassbasedlg.cpp:203 -msgid "%CLASS%" +#: menu.xrc:343 +msgid "&Replace..." msgstr "" -#: SnipWiz/templateclassbasedlg.cpp:257 -msgid "Implementation File" +#: menu.xrc:346 +msgid "Select Next Occurrence" msgstr "" -#: SnipWiz/templateclassdlg.cpp:122 -msgid "Select output folder" +#: menu.xrc:349 +msgid "Select Previous Occurrence" msgstr "" -#: SnipWiz/templateclassdlg.cpp:161 -msgid "Files successfully created." +#: menu.xrc:352 +msgid "Find &Next" msgstr "" -#: SnipWiz/templateclassdlg.cpp:169 -msgid "Add template class" +#: menu.xrc:355 +msgid "Find &Previous" msgstr "" -#: SnipWiz/templateclassdlg.cpp:175 -msgid "Adding the template class failed" +#: menu.xrc:358 +msgid "Find Word At Caret" msgstr "" -#: SnipWiz/templateclassdlg.cpp:175 -msgid "Oops" +#: menu.xrc:361 +msgid "Find Word At Caret Backward" msgstr "" -#: SnipWiz/templateclassdlg.cpp:213 -msgid "Add class" +#: menu.xrc:365 +msgid "Grep Selection in the Current File" msgstr "" -#: SnipWiz/templateclassdlg.cpp:213 -msgid "" -"Class exists!\n" -"Overwrite?" +#: menu.xrc:368 +msgid "Grep Selection in the Workspace" msgstr "" -#: SnipWiz/templateclassdlg.cpp:242 -msgid "Change class" +#: menu.xrc:372 +msgid "Go to Next 'Find In File' Match" msgstr "" -#: SnipWiz/templateclassdlg.cpp:242 -msgid "" -"That class doesn't exist!\n" -"Try again?" +#: menu.xrc:375 +msgid "Go to Previous 'Find In File' Match" msgstr "" -#: SnipWiz/templateclassdlg.cpp:335 -msgid "" -"File already exists!\n" -"\n" -" Overwrite?" +#: menu.xrc:379 +msgid "Find &Resource..." msgstr "" -#: SnipWiz/templateclassdlg.cpp:336 -msgid "Generate class files" +#: menu.xrc:383 +msgid "&Quick Outline..." msgstr "" -#: SpellChecker/IHunSpell.cpp:94 -msgid "Could not find aff file!" +#: menu.xrc:386 +msgid "Find &Symbol" msgstr "" -#: SpellChecker/IHunSpell.cpp:100 -msgid "Could not find dictionary file!" +#: menu.xrc:389 +msgid "Go To Pre&vious Location" msgstr "" -#: SpellChecker/IHunSpell.cpp:108 -msgid "Could not initialize spelling engine!" +#: menu.xrc:392 +msgid "Go To For&ward Location" msgstr "" -#: SpellChecker/IHunSpell.cpp:220 SpellChecker/IHunSpell.cpp:304 -msgid "No spelling errors found!" +#: menu.xrc:397 +msgid "&Goto Line..." msgstr "" -#: SpellChecker/IHunSpell.cpp:394 -msgid "en_CA" +#: menu.xrc:403 +msgid "Toggle &Bookmark" msgstr "" -#: SpellChecker/spellcheck.cpp:154 SpellChecker/spellcheck.cpp:165 -msgid "Check spelling..." +#: menu.xrc:406 +msgid "&Next Bookmark" msgstr "" -#: SpellChecker/spellcheck.cpp:156 SpellChecker/spellcheck.cpp:167 -msgid "Run spell-checker" +#: menu.xrc:409 +msgid "Previo&us Bookmark" msgstr "" -#: SpellChecker/spellcheck.cpp:158 SpellChecker/spellcheck.cpp:169 -#: SpellChecker/spellcheck.cpp:213 -msgid "Check continuous" +#: menu.xrc:412 +msgid "Remove All &Currently-Active Bookmarks" msgstr "" -#: SpellChecker/spellcheck.cpp:160 -msgid "Run continuous check" +#: menu.xrc:415 +msgid "Remove &All Bookmarks" msgstr "" -#: SpellChecker/spellcheck.cpp:171 SpellChecker/spellcheck.cpp:213 -msgid "Start continuous check" +#: menu.xrc:423 +msgid "&Workspace" msgstr "" -#: SpellChecker/spellcheck.cpp:210 -msgid "Check..." +#: menu.xrc:426 +msgid "&New Workspace..." msgstr "" -#: SpellChecker/spellcheck.cpp:430 -msgid "No suggestions" +#: menu.xrc:429 +msgid "&Open Workspace..." msgstr "" -#: SpellChecker/spellcheck.cpp:434 SpellChecker/wxcrafter.cpp:210 -#: Subversion2/subversion2.cpp:366 codelitephp/PHPParser/php_workspace.cpp:452 -msgid "Ignore" +#: menu.xrc:432 +msgid "&Close Workspace" msgstr "" -#: SpellChecker/spellcheck.cpp:495 -msgid "Spell Checker" +#: menu.xrc:435 +msgid "&Reload Workspace" msgstr "" -#: SpellChecker/wxcrafter.cpp:33 -msgid "Dictionary path:" +#: menu.xrc:440 menu.xrc:467 menu.xrc:1092 +msgid "Workspace Settings..." msgstr "" -#: SpellChecker/wxcrafter.cpp:38 -msgid "Select the location of the installed dictionaries" +#: menu.xrc:443 menu.xrc:470 menu.xrc:1088 +msgid "Workspace Editor Preferences..." msgstr "" -#: SpellChecker/wxcrafter.cpp:42 -msgid "Find dictionaries on the web.." +#: menu.xrc:448 +msgid "&Import other IDEs solution/workspace files..." msgstr "" -#: SpellChecker/wxcrafter.cpp:58 -msgid "Dictionary base name:" +#: menu.xrc:456 +msgid "&Add an existing project" msgstr "" -#: SpellChecker/wxcrafter.cpp:77 -msgid "Check The Following:" +#: menu.xrc:459 +msgid "&Reconcile the current project" msgstr "" -#: SpellChecker/wxcrafter.cpp:81 WebTools/WebToolsBase.cpp:83 -#: WordCompletion/UI.cpp:41 -msgid "Strings" +#: menu.xrc:460 +msgid "Check project for missing and stale files" msgstr "" -#: SpellChecker/wxcrafter.cpp:86 -msgid "CPP comments" +#: menu.xrc:464 +msgid "&Open Active Project Settings..." msgstr "" -#: SpellChecker/wxcrafter.cpp:91 -msgid "C comments" +#: menu.xrc:474 +msgid "Retag Workspace ( Full )" msgstr "" -#: SpellChecker/wxcrafter.cpp:96 -msgid "doxygen */" +#: menu.xrc:475 +msgid "Retag the workspace by dropping the old tags tables, and recreate them" msgstr "" -#: SpellChecker/wxcrafter.cpp:101 -msgid "doxygen ///" +#: menu.xrc:478 +msgid "Retag Workspace ( Quick )" msgstr "" -#: SpellChecker/wxcrafter.cpp:106 -msgid "Clear ignore list" +#: menu.xrc:486 +msgid "Configuration &Manager..." msgstr "" -#: SpellChecker/wxcrafter.cpp:107 -msgid "Clear the ignore list" +#: menu.xrc:491 +msgid "&Run" msgstr "" -#: SpellChecker/wxcrafter.cpp:166 -msgid "Misspelling:" +#: menu.xrc:494 cppchecker/cppcheckreportbasepage.cpp:84 +msgid "&Stop" msgstr "" -#: SpellChecker/wxcrafter.cpp:185 -msgid "Suggestions:" +#: menu.xrc:499 +msgid "&Build Project" msgstr "" -#: Subversion2/subversion2.cpp:137 Subversion2/subversion2.cpp:155 -msgid "Subversion plugin for codelite2.0 based on the svn command line tool" +#: menu.xrc:502 +msgid "&Compile Current File" msgstr "" -#: Subversion2/subversion2.cpp:268 -msgid "Subversion Options" +#: menu.xrc:505 +msgid "Cl&ean Project" msgstr "" -#: Subversion2/subversion2.cpp:278 -msgid "Sync Project Files..." +#: menu.xrc:508 +msgid "Sto&p Build" msgstr "" -#: Subversion2/subversion2.cpp:307 -msgid "Display this path in the Subversion View" +#: menu.xrc:512 +msgid "Reb&uild Project" msgstr "" -#: Subversion2/subversion2.cpp:316 git/GitConsole.cpp:216 git/git.cpp:2370 -#: git/gitui.cpp:442 -msgid "Commit" +#: menu.xrc:515 +msgid "Build and Run Pro&ject" msgstr "" -#: Subversion2/subversion2.cpp:321 -msgid "Lock file" +#: menu.xrc:519 menu.xrc:1060 +msgid "Build Workspace" msgstr "" -#: Subversion2/subversion2.cpp:324 -msgid "UnLock file" +#: menu.xrc:522 menu.xrc:1063 +msgid "Clean Workspace" msgstr "" -#: Subversion2/subversion2.cpp:340 -msgid "Revert changes" +#: menu.xrc:525 menu.xrc:1066 +msgid "Rebuild Workspace" msgstr "" -#: Subversion2/subversion2.cpp:344 Subversion2/subversion2.cpp:1569 -msgid "Revert to revision" +#: menu.xrc:529 +msgid "Batch Build..." msgstr "" -#: Subversion2/subversion2.cpp:348 -msgid "Create Diff" +#: menu.xrc:533 +msgid "Ne&xt Build Error" msgstr "" -#: Subversion2/subversion2.cpp:350 git/git.cpp:243 -msgid "Apply Patch" +#: menu.xrc:538 +msgid "&Debugger" msgstr "" -#: Subversion2/subversion2.cpp:354 -msgid "Blame ..." +#: menu.xrc:541 +msgid "&Start/Continue Debugger" msgstr "" -#: Subversion2/subversion2.cpp:358 Subversion2/subversion_view.cpp:664 -msgid "Change Log..." +#: menu.xrc:544 +msgid "&Restart Debugger" msgstr "" -#: Subversion2/subversion2.cpp:364 Subversion2/subversion_view.cpp:638 -msgid "Ignore this file" +#: menu.xrc:547 +msgid "&Attach to process..." msgstr "" -#: Subversion2/subversion2.cpp:365 Subversion2/subversion_view.cpp:639 -msgid "Ignore this file pattern" +#: menu.xrc:550 +msgid "Debug a core d&ump..." msgstr "" -#: Subversion2/subversion2.cpp:615 -msgid "Insert base revision to diff against:" +#: menu.xrc:553 +msgid "&Pause debugger" msgstr "" -#: Subversion2/subversion2.cpp:616 -msgid "Diff against" +#: menu.xrc:556 +msgid "S&top debugger" msgstr "" -#: Subversion2/subversion2.cpp:1043 -msgid "Enter new URL:" +#: menu.xrc:560 +msgid "Step &Into" msgstr "" -#: Subversion2/subversion2.cpp:1143 -msgid "" -"Would you like to remove the following files from SVN?\n" -"\n" +#: menu.xrc:563 +msgid "Ne&xt" msgstr "" -#: Subversion2/subversion2.cpp:1178 Subversion2/subversion_view.cpp:1347 -msgid "Svn rename..." +#: menu.xrc:569 +msgid "Step &Out" msgstr "" -#: Subversion2/subversion2.cpp:1371 -msgid " - application/octet-stream" +#: menu.xrc:573 +msgid "Show &Cursor" msgstr "" -#: Subversion2/subversion2.cpp:1569 -msgid "Set the revision number:" +#: menu.xrc:577 +msgid "Toggle &Breakpoint" msgstr "" -#: Subversion2/subversion2.cpp:1577 -msgid "Invalid revision number" +#: menu.xrc:580 +msgid "Disab&le All Breakpoints" msgstr "" -#: Subversion2/subversion2_ui.cpp:134 -msgid "Source URL:" +#: menu.xrc:583 +msgid "E&nable All Breakpoints" msgstr "" -#: Subversion2/subversion2_ui.cpp:145 -msgid "Target URL:" +#: menu.xrc:586 +msgid "&Delete All Breakpoints" msgstr "" -#: Subversion2/subversion2_ui.cpp:156 -msgid "Comment:" +#: menu.xrc:590 +msgid "&Quick Debug..." msgstr "" -#: Subversion2/subversion2_ui.cpp:244 -msgid "&Login" +#: menu.xrc:594 +msgid "GDB Windows" msgstr "" -#: Subversion2/subversion2_ui.cpp:298 -msgid "Executable:" +#: menu.xrc:625 +msgid "ASCII Viewer" msgstr "" -#: Subversion2/subversion2_ui.cpp:313 -msgid "Ignore the following file patterns:" +#: menu.xrc:629 +msgid "Disassembly" msgstr "" -#: Subversion2/subversion2_ui.cpp:325 -msgid "When adding file(s) to project, add it to svn as well" +#: menu.xrc:636 +msgid "&Plugins" msgstr "" -#: Subversion2/subversion2_ui.cpp:330 -msgid "Retag workspace after svn update, revert or applying patch" +#: menu.xrc:639 +msgid "&Manage Plugins..." msgstr "" -#: Subversion2/subversion2_ui.cpp:335 -msgid "" -"When renaming a file in the project, rename it in the repository as well" +#: menu.xrc:645 +msgid "Pe&rspective" msgstr "" -#: Subversion2/subversion2_ui.cpp:340 -msgid "Use POSIX Locale" +#: menu.xrc:649 +msgid "Save Current Layout As..." msgstr "" -#: Subversion2/subversion2_ui.cpp:342 -msgid "" -"When checked, CodeLite will use the default \"C\" locale instead of the " -"current locale. This will ensure that svn command line output is parsed " -"properly." +#: menu.xrc:652 +msgid "Manage Perspectives..." msgstr "" -#: Subversion2/subversion2_ui.cpp:349 -msgid "External Diff" +#: menu.xrc:656 +msgid "Restore Default Layout" msgstr "" -#: Subversion2/subversion2_ui.cpp:354 -msgid "Use external diff tool" +#: menu.xrc:660 +msgid "Settin&gs" msgstr "" -#: Subversion2/subversion2_ui.cpp:366 -msgid "External Diff Viewer:" +#: menu.xrc:663 +msgid "Global &Editor Preferences..." msgstr "" -#: Subversion2/subversion2_ui.cpp:384 -msgid "SSH Client" +#: menu.xrc:666 +msgid "Colours and &Fonts..." msgstr "" -#: Subversion2/subversion2_ui.cpp:411 -msgid "SSH Client arguments:" +#: menu.xrc:669 +msgid "Keyboard &shortcuts..." msgstr "" -#: Subversion2/subversion2_ui.cpp:426 -msgid "" -"The SSH client field should contain the command to be\n" -"used by the SVN command line client for establishing a secured channel.\n" -"\n" -"For example, on Windows it should contain something like:\n" -"/path/to/plink.exe -l -pw \n" -"\n" -"If you don't need SSH channel, leave this field empty" +#: menu.xrc:672 +msgid "En&vironment Variables..." msgstr "" -#: Subversion2/subversion2_ui.cpp:433 -msgid "Integration" +#: menu.xrc:675 +msgid "&Build Settings..." msgstr "" -#: Subversion2/subversion2_ui.cpp:438 -msgid "Auto Revision:" +#: menu.xrc:678 +msgid "&GDB Settings..." msgstr "" -#: Subversion2/subversion2_ui.cpp:442 -msgid "Add revision number as preprocessor definition in the compilation line" +#: menu.xrc:681 +msgid "&Code Completion..." msgstr "" -#: Subversion2/subversion2_ui.cpp:451 -msgid "Preprocessor name:" +#: menu.xrc:689 +msgid "&Help" msgstr "" -#: Subversion2/subversion2_ui.cpp:536 Subversion2/wxcrafter.cpp:242 -msgid "Root URL:" +#: menu.xrc:692 +msgid "&About..." msgstr "" -#: Subversion2/subversion2_ui.cpp:550 -msgid "URL:" +#: menu.xrc:696 +msgid "&Run the Setup Wizard..." msgstr "" -#: Subversion2/subversion2_ui.cpp:564 -msgid "Revision:" +#: menu.xrc:700 +msgid "&Check for updates..." msgstr "" -#: Subversion2/subversion2_ui.cpp:592 -msgid "Date:" +#: menu.xrc:713 menu.xrc:733 +msgid "Close Other Tabs" msgstr "" -#: Subversion2/subversion2_ui.cpp:650 -msgid "URL of repository:" +#: menu.xrc:736 +msgid "Close Tabs To The Right" msgstr "" -#: Subversion2/subversion2_ui.cpp:664 -msgid "Checkout directory:" +#: menu.xrc:740 +msgid "Make Read Only" msgstr "" -#: Subversion2/subversion2_ui.cpp:736 -msgid "From revision:" +#: menu.xrc:752 +msgid "Show In" msgstr "" -#: Subversion2/subversion2_ui.cpp:747 -msgid "To revision:" +#: menu.xrc:754 +msgid "Show In Workspace" msgstr "" -#: Subversion2/subversion2_ui.cpp:758 -msgid "Create compact log" +#: menu.xrc:757 +msgid "Show In Explorer" msgstr "" -#: Subversion2/subversion2_ui.cpp:807 -msgid "From Revision:" +#: menu.xrc:761 +msgid "Copy File Name" msgstr "" -#: Subversion2/subversion2_ui.cpp:819 -msgid "To Revision:" +#: menu.xrc:763 +msgid "Copy File Name to Clipboard" msgstr "" -#: Subversion2/subversion2_ui.cpp:832 -msgid "Ignore whitespaces" +#: menu.xrc:766 +msgid "Copy Full Path to Clipboard" msgstr "" -#: Subversion2/subversion2_ui.cpp:916 -msgid "Title" +#: menu.xrc:769 +msgid "Copy Path to Clipboard" msgstr "" -#: Subversion2/subversion2_ui.cpp:931 -msgid "Bug URL Pattern:" +#: menu.xrc:774 +msgid "Detach Editor" msgstr "" -#: Subversion2/subversion2_ui.cpp:936 -msgid "" -"Enter here the URL for the bug details.\n" -"For example: http://mytracker.com?bug_id=$(BUGID)" +#: menu.xrc:778 +msgid "Open Shell at File Path" msgstr "" -#: Subversion2/subversion2_ui.cpp:943 -msgid "Bug Message Pattern:" +#: menu.xrc:781 +msgid "Open File Explorer at File Path" msgstr "" -#: Subversion2/subversion2_ui.cpp:948 -msgid "" -"Enter here the message to add to the commit log. You may use the $(BUG_URL) " -"and $(BUGID) macros.\n" -"An example: \"Fixed: BUG#$(BUGID), See $(BUG_URL) for more details\"" +#: menu.xrc:787 +msgid "Swap Header/Implementation file\tF12" msgstr "" -#: Subversion2/subversion2_ui.cpp:955 -msgid "Feature URL Pattern:" +#: menu.xrc:798 +msgid "Search for selected text in workspace" msgstr "" -#: Subversion2/subversion2_ui.cpp:960 -msgid "" -"Enter here the URL for the feature request details.\n" -"For example: http://mytracker.com?fr_id=$(FRID)" +#: menu.xrc:804 +msgid "Goto Beginning of Current Function" msgstr "" -#: Subversion2/subversion2_ui.cpp:967 -msgid "Feature Message Pattern:" +#: menu.xrc:807 +msgid "Goto Beginning of Next Function" msgstr "" -#: Subversion2/subversion2_ui.cpp:972 -msgid "" -"Enter here the message to add to the commit log. You may use the $(FR_URL) " -"and $(FRID) macros.\n" -"An example: \"Implements FR#$(FRID), See $(FR_URL) for more details\"" +#: menu.xrc:816 +msgid "Code Generation / Refactoring" msgstr "" -#: Subversion2/subversion2_ui.cpp:1034 -msgid "Do not change EOL, apply patch as it is" +#: menu.xrc:819 +msgid "Insert Doxygen Comment\tCtrl-Shift-D" msgstr "" -#: Subversion2/subversion2_ui.cpp:1035 -msgid "Change to Windows style (CRLF)" +#: menu.xrc:822 +msgid "Generate Setters/Getters..." msgstr "" -#: Subversion2/subversion2_ui.cpp:1036 -msgid "Change to UNIX style (LF)" +#: menu.xrc:826 +msgid "Comment Selection\tCtrl-Shift-/" msgstr "" -#: Subversion2/subversion2_ui.cpp:1037 -msgid "Change patch line endings (EOL):" +#: menu.xrc:829 +msgid "Toggle Line Comment\tCtrl-/" msgstr "" -#: Subversion2/subversion2_ui.cpp:1085 -msgid "Select path:" +#: menu.xrc:833 +msgid "Move Function Implementation to..." msgstr "" -#: Subversion2/subversion2_ui.cpp:1093 -msgid "Recently used paths:" +#: menu.xrc:836 +msgid "Add Function Implementation..." msgstr "" -#: Subversion2/subversion_view.cpp:183 -msgid "Choose directory" +#: menu.xrc:839 +msgid "Implement all Un-implemented Functions..." msgstr "" -#: Subversion2/subversion_view.cpp:259 Subversion2/subversion_view.cpp:261 -msgid "Select a Directory to View..." +#: menu.xrc:842 +msgid "Synchronize Signatures..." msgstr "" -#: Subversion2/subversion_view.cpp:266 Subversion2/subversion_view.cpp:268 -msgid "Stop current svn process" +#: menu.xrc:847 +msgid "Implement inherited virtual Functions..." msgstr "" -#: Subversion2/subversion_view.cpp:270 -msgid "Svn Cleanup" +#: menu.xrc:850 +msgid "Implement inherited pure virtual Functions..." msgstr "" -#: Subversion2/subversion_view.cpp:273 -msgid "Svn Checkout" +#: menu.xrc:854 +msgid "Rename Symbol...\tCtrl-Shift-H" msgstr "" -#: Subversion2/subversion_view.cpp:279 Subversion2/subversion_view.cpp:281 -msgid "Clear Svn Output Tab" +#: menu.xrc:857 +msgid "Rename Local Variable...\tCtrl-Shift-L" msgstr "" -#: Subversion2/subversion_view.cpp:284 Subversion2/subversion_view.cpp:286 -msgid "Svn Settings..." +#: menu.xrc:883 menu.xrc:926 +msgid "Select All" msgstr "" -#: Subversion2/subversion_view.cpp:287 -msgid "Svn Info" +#: menu.xrc:892 +msgid "Toggle Breakpoint" msgstr "" -#: Subversion2/subversion_view.cpp:379 Subversion2/subversion_view.cpp:1276 -#: Subversion2/subversion_view.cpp:1284 -#: Subversion2/svn_select_local_repo_dlg.cpp:105 -msgid "" +#: menu.xrc:900 +msgid "Re-Tag File" msgstr "" -#: Subversion2/subversion_view.cpp:607 Subversion2/subversion_view.cpp:630 -#: Subversion2/subversion_view.cpp:659 -msgid "Create Diff..." +#: menu.xrc:935 +msgid "Create new workspace..." msgstr "" -#: Subversion2/subversion_view.cpp:612 -msgid "Open File..." +#: menu.xrc:938 +msgid "Switch to workspace..." msgstr "" -#: Subversion2/subversion_view.cpp:633 -msgid "Blame..." +#: menu.xrc:944 menu.xrc:971 +msgid "Project" msgstr "" -#: Subversion2/subversion_view.cpp:652 Subversion2/subversion_view.cpp:818 -msgid "Create Tag" +#: menu.xrc:947 +msgid "Add a New File..." msgstr "" -#: Subversion2/subversion_view.cpp:653 Subversion2/subversion_view.cpp:784 -msgid "Create Branch" +#: menu.xrc:950 +msgid "Add an Existing File..." msgstr "" -#: Subversion2/subversion_view.cpp:656 -msgid "Switch URL..." +#: menu.xrc:957 +msgid "Sort Item" msgstr "" -#: Subversion2/subversion_view.cpp:660 -msgid "Apply Patch..." +#: menu.xrc:961 +msgid "Remove Virtual Folder" msgstr "" -#: Subversion2/subversion_view.cpp:661 -msgid "Apply Patch - Dry Run..." +#: menu.xrc:965 +msgid "Rename ..." msgstr "" -#: Subversion2/subversion_view.cpp:667 -msgid "Properties..." +#: menu.xrc:975 +msgid "Build Order..." msgstr "" -#: Subversion2/subversion_view.cpp:1469 git/git.cpp:2254 -msgid "Working copy" +#: menu.xrc:984 menu.xrc:1006 +msgid "Rebuild" msgstr "" -#: Subversion2/subversion_view.cpp:1470 git/git.cpp:2252 -msgid "HEAD version" +#: menu.xrc:987 menu.xrc:1002 +msgid "Clean" msgstr "" -#: Subversion2/subversion_view.cpp:1479 Subversion2/subversion_view.cpp:1480 -msgid "Svn Diff: " +#: menu.xrc:992 +msgid "Stop Build" msgstr "" -#: Subversion2/svn_checkout_dialog.cpp:82 -#, c-format -msgid "" -"The checkout directory '%s' already exists\n" -"continue with the checkout?" +#: menu.xrc:996 +msgid "Project Only" msgstr "" -#: Subversion2/svn_command_handlers.cpp:123 -msgid "===== APPLYING PATCH - DRY RUN =====\n" +#: menu.xrc:1011 +msgid "Import Files From Directory" msgstr "" -#: Subversion2/svn_command_handlers.cpp:125 -msgid "===== OUTPUT END =====\n" +#: menu.xrc:1017 +msgid "Set As Active" msgstr "" -#: Subversion2/svn_command_handlers.cpp:160 -msgid "Change Log" +#: menu.xrc:1023 +msgid "Export Makefile" msgstr "" -#: Subversion2/svn_command_handlers.cpp:211 -msgid "Loading Svn blame dialog...\n" +#: menu.xrc:1037 +msgid "Remove Project" msgstr "" -#: Subversion2/svn_console.cpp:178 -msgid "Aborted.\n" +#: menu.xrc:1040 +msgid "Rename Project" msgstr "" -#: Subversion2/svn_console.cpp:231 -msgid "Failed to launch Subversion client.\n" +#: menu.xrc:1045 +msgid "Save As Template..." msgstr "" -#: Subversion2/svn_preferences_dialog.cpp:98 -msgid "Select Executable:" +#: menu.xrc:1049 +msgid "Project Editor Preferences..." msgstr "" -#: Subversion2/svn_select_local_repo_dlg.cpp:73 -msgid "Remove path" +#: menu.xrc:1070 +msgid "Create New Project" msgstr "" -#: Subversion2/svn_select_local_repo_dlg.cpp:76 -msgid "Remove paths" +#: menu.xrc:1073 +msgid "Add an Existing Project" msgstr "" -#: Subversion2/svn_sync_dialog.cpp:61 -msgid "Root URL: " +#: menu.xrc:1077 +msgid "Retag Workspace" msgstr "" -#: Subversion2/svn_sync_dialog.cpp:63 -msgid "" +#: menu.xrc:1084 codelitephp/PHPParser/php_workspace.cpp:467 +msgid "Reload Workspace" msgstr "" -#: Subversion2/svnblameeditor.cpp:155 -msgid "Highlight this revision" +#: menu.xrc:1099 menu.xrc:1106 +msgid "Detach" msgstr "" -#: Subversion2/svncommand.cpp:109 -msgid "Authentication failed. Retrying...\n" +#: menu.xrc:1112 +msgid "Open in CodeLite" msgstr "" -#: Subversion2/svncommand.cpp:113 -msgid "Server certificate verification failed. Retrying...\n" +#: menu.xrc:1115 menu.xrc:1229 +msgid "Open With &Default Application" msgstr "" -#: Subversion2/wxcrafter.cpp:36 -msgid "Feature Request ID:" +#: menu.xrc:1118 +msgid "Compile" msgstr "" -#: Subversion2/wxcrafter.cpp:47 -msgid "Bug ID:" +#: menu.xrc:1121 +msgid "Preprocess" msgstr "" -#: Subversion2/wxcrafter.cpp:80 -msgid "Modified Paths:" +#: menu.xrc:1125 +msgid "Exclude from Build" msgstr "" -#: Subversion2/wxcrafter.cpp:95 git/gitui.cpp:489 git/gitui.cpp:665 -msgid "Diff:" +#: menu.xrc:1149 +msgid "Copy Value Only" msgstr "" -#: Subversion2/wxcrafter.cpp:143 git/gitui.cpp:313 git/gitui.cpp:537 -msgid "Commit message:" +#: menu.xrc:1160 +msgid "Delete All" msgstr "" -#: Subversion2/wxcrafter.cpp:186 -msgid "Recent commit messages:" +#: menu.xrc:1164 +msgid "Display Format" msgstr "" -#: Subversion2/wxcrafter.cpp:249 -msgid "" +#: menu.xrc:1166 +msgid "Natural" msgstr "" -#: Subversion2/wxcrafter.cpp:260 -msgid "Root Directory:" +#: menu.xrc:1169 +msgid "Hexadecimal" msgstr "" -#: Subversion2/wxcrafter.cpp:268 -msgid "Exclude these file extensions:" +#: menu.xrc:1172 +msgid "Binary" msgstr "" -#: Subversion2/wxcrafter.cpp:281 -msgid "Exclude binary (application/octet-stream) files" +#: menu.xrc:1175 +msgid "Octal" msgstr "" -#: Tweaks/TweaksSettingsDlg.cpp:164 -msgid "Icon changes require a workspace reload" +#: menu.xrc:1178 +msgid "Decimal" msgstr "" -#: Tweaks/tweaks.cpp:108 -msgid "Tweaks Plugin" +#: menu.xrc:1194 +msgid "Search..." msgstr "" -#: Tweaks/wxcrafter.cpp:54 -msgid "Enable Tweaks" +#: menu.xrc:1199 +msgid "Tags" msgstr "" -#: Tweaks/wxcrafter.cpp:64 -msgid "Editor Tabs" +#: menu.xrc:1201 +msgid "Global Parser Paths" msgstr "" -#: Tweaks/wxcrafter.cpp:71 -msgid "Configure Editor Tab Colours" +#: menu.xrc:1203 menu.xrc:1212 +msgid "Add to include paths" msgstr "" -#: Tweaks/wxcrafter.cpp:71 -msgid "Customize your editor tab colours globally or per project" +#: menu.xrc:1206 menu.xrc:1215 +msgid "Add to exclude paths" msgstr "" -#: Tweaks/wxcrafter.cpp:85 -msgid "Global Tab Colours" +#: menu.xrc:1210 +msgid "Workspace Parser Paths" msgstr "" -#: Tweaks/wxcrafter.cpp:88 -msgid "Tab Label Background Colour" +#: menu.xrc:1225 +msgid "Open in &editor" msgstr "" -#: Tweaks/wxcrafter.cpp:92 -msgid "Tab Label Text Colour" +#: menu.xrc:1233 +msgid "Open Shell here" msgstr "" -#: Tweaks/wxcrafter.cpp:96 -msgid "Tab Colours Per Project" +#: menu.xrc:1236 +msgid "Open File Explorer here" msgstr "" -#: Tweaks/wxcrafter.cpp:103 -msgid "&Reset colours" +#: codelite_make/cl_make_generator_app.cpp:175 +msgid "A makefile generator based on codelite's workspace" msgstr "" -#: Tweaks/wxcrafter.cpp:104 -msgid "Reset colours" +#: codelitephp/php-plugin/new_php_workspace_dlg.cpp:54 +msgid "select a folder" msgstr "" -#: Tweaks/wxcrafter.cpp:109 -msgid "Images" +#: codelitephp/php-plugin/new_class.cpp:49 +msgid "Choose the object type" msgstr "" -#: Tweaks/wxcrafter.cpp:116 -msgid "Configure Project Images" +#: codelitephp/php-plugin/new_class.cpp:61 +msgid "The name" msgstr "" -#: Tweaks/wxcrafter.cpp:116 -msgid "Set a different image for a every project in the workspace" +#: codelitephp/php-plugin/new_class.cpp:76 +msgid "If set, the generated code will be placed inside this namespace" msgstr "" -#: Tweaks/wxcrafter.cpp:130 -msgid "Projects" +#: codelitephp/php-plugin/new_class.cpp:85 +msgid "Extends:" msgstr "" -#: UnitTestCPP/newunittestbasedlg.cpp:50 -msgid "Test name:" +#: codelitephp/php-plugin/new_class.cpp:90 +msgid "A comma separated list of parents for this class" msgstr "" -#: UnitTestCPP/newunittestbasedlg.cpp:52 UnitTestCPP/newunittestbasedlg.cpp:57 -msgid "The C++ name of the test" +#: codelitephp/php-plugin/new_class.cpp:98 +#: codelitephp/php-plugin/new_class.cpp:115 +msgid "Edit in a small text editor..." msgstr "" -#: UnitTestCPP/newunittestbasedlg.cpp:61 UnitTestCPP/testclassbasedlg.cpp:71 -msgid "Fixture name (optional):" +#: codelitephp/php-plugin/new_class.cpp:102 +msgid "Implements:" msgstr "" -#: UnitTestCPP/newunittestbasedlg.cpp:68 UnitTestCPP/testclassbasedlg.cpp:78 -msgid "Output file name (optional):" +#: codelitephp/php-plugin/new_class.cpp:107 +msgid "A comma separated list of interfaces for this class" msgstr "" -#: UnitTestCPP/newunittestbasedlg.cpp:73 UnitTestCPP/testclassbasedlg.cpp:83 -msgid "" -"The name of the file of which CodeLite will generate the test code.\n" -"When left empty, CodeLite will use the first available source file in target " -"project" +#: codelitephp/php-plugin/new_class.cpp:131 +msgid "Generate consturctor" msgstr "" -#: UnitTestCPP/newunittestbasedlg.cpp:77 -msgid "Project to whom this unit test should be added to:" +#: codelitephp/php-plugin/new_class.cpp:136 +msgid "Generate desctructor" msgstr "" -#: UnitTestCPP/testclassbasedlg.cpp:60 -msgid "&Show Functions..." +#: codelitephp/php-plugin/new_class.cpp:141 +msgid "Create folder per namespace" msgstr "" -#: UnitTestCPP/testclassbasedlg.cpp:87 -msgid "Project to which these unit tests should be added:" +#: codelitephp/php-plugin/new_class.cpp:146 +msgid "Make singleton (available for classes only)" msgstr "" -#: UnitTestCPP/testclassbasedlg.cpp:98 -msgid "Functions to test:" +#: codelitephp/php-plugin/new_class.cpp:148 +msgid "" +"The generated class will be generated as a singleton\n" +"class" msgstr "" -#: UnitTestCPP/testclassdlg.cpp:119 -msgid "There are no tests to generate" +#: codelitephp/php-plugin/php_ui.h:95 +msgid "New Workspace Type..." msgstr "" -#: UnitTestCPP/testclassdlg.cpp:153 -msgid "Could not find match for class '" +#: codelitephp/php-plugin/php_ui.h:130 +msgid "New PHP Workspace" msgstr "" -#: UnitTestCPP/testclassdlg.cpp:174 -msgid "Select class:" +#: codelitephp/php-plugin/php_ui.h:240 +msgid "PHP General Settings" msgstr "" -#: UnitTestCPP/unittestpp.cpp:74 UnitTestCPP/unittestpp.cpp:111 -msgid "A Unit test plugin based on the UnitTest++ framework" +#: codelitephp/php-plugin/php_ui.h:367 +msgid "File Mapping" msgstr "" -#: UnitTestCPP/unittestpp.cpp:107 -msgid "UnitTest++" +#: codelitephp/php-plugin/php_ui.h:548 +msgid "PHP Run / Debug" msgstr "" -#: UnitTestCPP/unittestpp.cpp:133 UnitTestCPP/unittestpp.cpp:139 -msgid "Run Unit tests..." +#: codelitephp/php-plugin/php_ui.h:614 +msgid "New PHP Project" msgstr "" -#: UnitTestCPP/unittestpp.cpp:135 UnitTestCPP/unittestpp.cpp:141 -msgid "Run project as unit test project..." +#: codelitephp/php-plugin/php_ui.h:663 +msgid "XDebug Setup" msgstr "" -#: UnitTestCPP/unittestpp.cpp:156 UnitTestCPP/unittestpp.cpp:208 -msgid "Create new &test..." +#: codelitephp/php-plugin/XDebugManager.cpp:156 +msgid "" +"This project has no file mapping defined. This may result in breakpoints not " +"applied\n" msgstr "" -#: UnitTestCPP/unittestpp.cpp:160 UnitTestCPP/unittestpp.cpp:212 -msgid "Create tests for &class..." +#: codelitephp/php-plugin/XDebugManager.cpp:157 +msgid "To fix this, set file mapping from Project Settings -> Debug" msgstr "" -#: UnitTestCPP/unittestpp.cpp:165 -msgid "Mark this project as UnitTest++ project" +#: codelitephp/php-plugin/XDebugManager.cpp:161 +msgid "Remember my answer and don't show this message again" msgstr "" -#: UnitTestCPP/unittestpp.cpp:169 -msgid "Run Project as UnitTest++ and report" +#: codelitephp/php-plugin/XDebugManager.cpp:162 +msgid "OK, Continue to Debug" msgstr "" -#: UnitTestCPP/unittestpp.cpp:225 UnitTestCPP/unittestpp.cpp:294 -msgid "" -"There are currently no UnitTest project in your workspace\n" -"Would you like to create one now?" +#: codelitephp/php-plugin/XDebugManager.cpp:162 +msgid "Stop the debugger" msgstr "" -#: UnitTestCPP/unittestpp.cpp:352 -msgid "Could not find the target project" +#: codelitephp/php-plugin/XDebugManager.cpp:592 +#: codelitephp/php-plugin/XDebugManager.cpp:654 +msgid "Could not open file: " msgstr "" -#: UnitTestCPP/unittestpp.cpp:418 -#, c-format -msgid "Could not create target file '%s'" +#: codelitephp/php-plugin/XDebugManager.cpp:738 +msgid "XDebug did not connect in a timely manner" +msgstr "" + +#: codelitephp/php-plugin/XDebugManager.cpp:741 +msgid "Run XDebug Test" msgstr "" -#: UnitTestCPP/unittestpp.cpp:532 -msgid "Project contains 0 tests. Nothing to be done" +#: codelitephp/php-plugin/XDebugManager.cpp:755 +msgid "Error evaluating expression " msgstr "" -#: UnitTestCPP/unittestreport.cpp:60 -msgid "Passed:" +#: codelitephp/php-plugin/evalpane.cpp:60 +msgid "*** Error evaluating expression: " msgstr "" -#: UnitTestCPP/unittestreport.cpp:67 -msgid "Failed:" +#: codelitephp/php-plugin/php_ui.cpp:90 codelitephp/PHPParser/php_strings.h:14 +msgid "PHP Workspace" msgstr "" -#: UnitTestCPP/unittestreport.cpp:83 -msgid "Total tests:" +#: codelitephp/php-plugin/php_ui.cpp:91 +msgid "Select the workspace type:" msgstr "" -#: UnitTestCPP/unittestreport.cpp:94 -msgid "Tests failed:" +#: codelitephp/php-plugin/php_ui.cpp:161 +msgid "Set here the workspace name" msgstr "" -#: UnitTestCPP/unittestreport.cpp:105 -msgid "Tests passed:" +#: codelitephp/php-plugin/php_ui.cpp:188 +msgid "Create the workspace in a separate directory" msgstr "" -#: WebTools/JSCodeCompletion.cpp:63 +#: codelitephp/php-plugin/php_ui.cpp:335 msgid "" -"It seems that NodeJS is not installed on your machine\n" -"(Can't find file '/usr/bin/nodejs')\n" -"I have temporarily disabled Code Completion for JavaScript\n" -"Please install NodeJS and try again" +"Type the resource name (file, variable, class, function, constant or define):" msgstr "" -#: WebTools/WebToolsBase.cpp:34 -msgid "JavaScript" +#: codelitephp/php-plugin/php_ui.cpp:416 +msgid "PHP Executable:" msgstr "" -#: WebTools/WebToolsBase.cpp:50 -msgid "Enable Code Completion" +#: codelitephp/php-plugin/php_ui.cpp:421 +msgid "" +"Select the PHP executable to use when debugging / running command line " +"scripts" msgstr "" -#: WebTools/WebToolsBase.cpp:51 -msgid "Enable JavaScript code completion" +#: codelitephp/php-plugin/php_ui.cpp:426 +msgid "error_reporting:" msgstr "" -#: WebTools/WebToolsBase.cpp:53 git/gitui.cpp:145 -msgid "Verbose Logging" +#: codelitephp/php-plugin/php_ui.cpp:431 +msgid "Set the PHP error reporting level (affects command line only)" msgstr "" -#: WebTools/WebToolsBase.cpp:54 -msgid "" -"The JavaScript code completion uses the \"tern\" engine.\n" -"Check this option to start tern in verbose mode" +#: codelitephp/php-plugin/php_ui.cpp:442 codelitephp/php-plugin/php_ui.cpp:768 +msgid "Add include path:" msgstr "" -#: WebTools/WebToolsBase.cpp:57 -msgid "Enable Code Completion for the selected libraries" +#: codelitephp/php-plugin/php_ui.cpp:447 +msgid "Add include path for PHP" msgstr "" -#: WebTools/WebToolsBase.cpp:59 -msgid "Ecma5" +#: codelitephp/php-plugin/php_ui.cpp:463 +msgid "Additional include path for PHP (affects command line runs only)" msgstr "" -#: WebTools/WebToolsBase.cpp:62 -msgid "Ecma6" +#: codelitephp/php-plugin/php_ui.cpp:479 codelitephp/php-plugin/php_ui.cpp:852 +msgid "Add include path for code completion:" msgstr "" -#: WebTools/WebToolsBase.cpp:65 -msgid "jQuery" +#: codelitephp/php-plugin/php_ui.cpp:480 codelitephp/php-plugin/php_ui.cpp:491 +msgid "" +"Paths added here will only be used for code completion and NOT during " +"runtime.\n" +"If you want to add search paths for runtime (CLI mode only), Use the 'PHP " +"CLI' tab" msgstr "" -#: WebTools/WebToolsBase.cpp:66 -msgid "Support Code Completion for jQuery framework" +#: codelitephp/php-plugin/php_ui.cpp:496 +msgid "XDebug" msgstr "" -#: WebTools/WebToolsBase.cpp:68 -msgid "Underscore" +#: codelitephp/php-plugin/php_ui.cpp:508 +msgid "Listen host:" msgstr "" -#: WebTools/WebToolsBase.cpp:69 -msgid "Enable code completion for the Underscore library" +#: codelitephp/php-plugin/php_ui.cpp:513 +msgid "Wait for connection from XDebug on this host" msgstr "" -#: WebTools/WebToolsBase.cpp:71 -msgid "Browser" +#: codelitephp/php-plugin/php_ui.cpp:522 codelitephp/php-plugin/php_ui.cpp:527 +msgid "" +"The port on which codelite is accepting debug sessions from XDebug\n" +"This value must be the same as the value set in the 'xdebug.remote_port'\n" +"directive" msgstr "" -#: WebTools/WebToolsBase.cpp:72 -msgid "Enable code completion for browser mode (DOM, document, window etc)" +#: codelitephp/php-plugin/php_ui.cpp:534 +#: codelitephp/php-plugin/php_ui.cpp:2052 +msgid "IDE Key:" msgstr "" -#: WebTools/WebToolsBase.cpp:74 -msgid "Chai" +#: codelitephp/php-plugin/php_ui.cpp:535 +msgid "This field defines the session name between CodeLite and XDebug" msgstr "" -#: WebTools/WebToolsBase.cpp:75 -msgid "Enable code completion for the chain assertion library" +#: codelitephp/php-plugin/php_ui.cpp:540 +msgid "The XDebug session name" msgstr "" -#: WebTools/WebToolsBase.cpp:80 -msgid "Angular" +#: codelitephp/php-plugin/php_ui.cpp:548 +msgid "Syntax Check" msgstr "" -#: WebTools/WebToolsBase.cpp:81 -msgid "" -"Adds the angular object to the top-level environment, and tries to wire up " -"some of the bizarre dependency management scheme from this library, so that " -"dependency injections get the right types" +#: codelitephp/php-plugin/php_ui.cpp:553 +msgid "Perform syntax check when saving a file" msgstr "" -#: WebTools/WebToolsBase.cpp:84 +#: codelitephp/php-plugin/php_ui.cpp:555 msgid "" -"When enabled, this plugin will gather (short) strings in your code, and " -"completing when inside a string will try to complete to previously seen " -"strings" -msgstr "" - -#: WebTools/WebToolsBase.cpp:86 -msgid "Node.js" +"When saving a PHP script, run syntax check and report errors in the editor" msgstr "" -#: WebTools/WebToolsBase.cpp:87 -msgid "" -"Provides variables that are part of the node environment, such as process " -"and require, and hooks up require to try and find the dependencies that are " -"being loaded, and assign them the correct types. It also includes types for " -"the built-in modules that node.js provides (\"fs\", \"http\", etc)" +#: codelitephp/php-plugin/php_ui.cpp:639 +msgid "Select the project execution mode:" msgstr "" -#: WebTools/webtools.cpp:75 -msgid "WebTools" +#: codelitephp/php-plugin/php_ui.cpp:652 +msgid "Run project as command line" msgstr "" -#: WordCompletion/UI.cpp:40 -msgid "Words" +#: codelitephp/php-plugin/php_ui.cpp:665 +#: codelitephp/php-plugin/php_ui.cpp:1861 +msgid "PHP executable:" msgstr "" -#: WordCompletion/UI.cpp:42 -msgid "Numbers" +#: codelitephp/php-plugin/php_ui.cpp:670 +msgid "Select the PHP interperter to use for running this project" msgstr "" -#: WordCompletion/UI.cpp:46 -msgid "Tokens Type" +#: codelitephp/php-plugin/php_ui.cpp:675 +msgid "Select PHP INI file:" msgstr "" -#: WordCompletion/UI.cpp:47 -msgid "CodeLite will suggest word completion for the selected tokens types" +#: codelitephp/php-plugin/php_ui.cpp:676 codelitephp/php-plugin/php_ui.cpp:681 +msgid "Select the PHP INI file to use with PHP (leave empty for default)" msgstr "" -#: WordCompletion/UI.cpp:51 -msgid "Starts With" +#: codelitephp/php-plugin/php_ui.cpp:685 +msgid "Index File:" msgstr "" -#: WordCompletion/UI.cpp:52 -msgid "Contains" +#: codelitephp/php-plugin/php_ui.cpp:690 +msgid "Select the project index file" msgstr "" -#: WordCompletion/UI.cpp:53 -msgid "Comparison Method" +#: codelitephp/php-plugin/php_ui.cpp:702 +msgid "Program arguments" msgstr "" -#: WordCompletion/UI.cpp:54 +#: codelitephp/php-plugin/php_ui.cpp:703 codelitephp/php-plugin/php_ui.cpp:717 msgid "" -"Select the word completion comparison method:\n" -"\"Starts With\" - suggest all words that starts with the partial word that " -"the user typed\n" -"\"Contains\" - suggest all words that contains the partial word that the " -"user typed" +"Insert the program arguments here\n" +"Place each argument on a separate line" msgstr "" -#: WordCompletion/wordcompletion.cpp:64 -msgid "Show Word Completion" +#: codelitephp/php-plugin/php_ui.cpp:729 +msgid "Run project as web site" msgstr "" -#: ZoomNavigator/zoom_navigator.cpp:53 -msgid "Enable ZoomNavigator" +#: codelitephp/php-plugin/php_ui.cpp:737 +msgid "Project URL:" msgstr "" -#: ZoomNavigator/zoom_navigator.cpp:65 -msgid "Highlight colour:" +#: codelitephp/php-plugin/php_ui.cpp:750 +msgid "Use system default browser" msgstr "" -#: ZoomNavigator/zoom_navigator.cpp:73 -msgid "Zoom factor:" +#: codelitephp/php-plugin/php_ui.cpp:757 +msgid "Include path" msgstr "" -#: ZoomNavigator/zoom_navigator.cpp:74 ZoomNavigator/zoom_navigator.cpp:79 +#: codelitephp/php-plugin/php_ui.cpp:786 msgid "" -"Sets the preview pane zoom factor.\n" -"Valid values should be in the range of -10 and 20" -msgstr "" - -#: ZoomNavigator/zoomnavigator.cpp:133 -msgid "Zoom Navigator" +"When running project with PHP CLI tool, pass the following\n" +"include paths" msgstr "" -#: ZoomNavigator/zoomnavigator.cpp:166 -msgid "Enable plugin" +#: codelitephp/php-plugin/php_ui.cpp:805 +msgid "Project file types" msgstr "" -#: abbreviation/abbreviation.cpp:59 abbreviation/abbreviation.cpp:71 -msgid "Abbreviation plugin" +#: codelitephp/php-plugin/php_ui.cpp:806 +msgid "" +"Set the file extensions to include in this project\n" +"CodeLite will only display these file types in the project view" msgstr "" -#: abbreviation/abbreviation.cpp:93 -msgid "Insert Expansion" +#: codelitephp/php-plugin/php_ui.cpp:809 +msgid "Exclude folders" msgstr "" -#: abbreviation/abbreviation.cpp:225 -msgid "Plugins::Abbreviations::Show abbrevations completion box" +#: codelitephp/php-plugin/php_ui.cpp:810 +msgid "" +"Set a list of folders to exclude from the project.\n" +"If the last part of the folder path is equal to one of the entries in this " +"exclude list, it will not\n" +"be shown in the project view" msgstr "" -#: abbreviation/abbreviationssettingsbase.cpp:31 -msgid "" -"You can use the '|' (pipe) character to set the caret position\n" -"You may also use any of the known macros to CodeLite (click the 'Help' " -"button)" +#: codelitephp/php-plugin/php_ui.cpp:818 +msgid "File mapping" msgstr "" -#: abbreviation/abbreviationssettingsbase.cpp:42 -msgid "Create a new abbreviation" +#: codelitephp/php-plugin/php_ui.cpp:829 +msgid "Source folder" msgstr "" -#: abbreviation/abbreviationssettingsbase.cpp:44 -msgid "Delete the currently selected abbreviation" +#: codelitephp/php-plugin/php_ui.cpp:830 +msgid "Target folder" msgstr "" -#: abbreviation/abbreviationssettingsbase.cpp:48 -msgid "Import" +#: codelitephp/php-plugin/php_ui.cpp:997 +msgid "Local folder:" msgstr "" -#: abbreviation/abbreviationssettingsbase.cpp:48 -msgid "Import abbreviations from the file system..." +#: codelitephp/php-plugin/php_ui.cpp:1002 +msgid "" +"The source folder usually points to the location where you develop your code" msgstr "" -#: abbreviation/abbreviationssettingsbase.cpp:50 -msgid "Export abbreviations to the file system..." +#: codelitephp/php-plugin/php_ui.cpp:1007 +msgid "Remote folder:" msgstr "" -#: abbreviation/abbreviationssettingsbase.cpp:138 -msgid "Immediate Insert" +#: codelitephp/php-plugin/php_ui.cpp:1072 +msgid "Open Active Project Settings..." msgstr "" -#: abbreviation/abbreviationssettingsbase.cpp:152 -#: abbreviation/abbreviationssettingsbase.cpp:154 -msgid "Save changes" +#: codelitephp/php-plugin/php_ui.cpp:1074 +msgid "Setup automatic upload" msgstr "" -#: abbreviation/abbreviationssettingsbase.cpp:161 -#: abbreviation/abbreviationssettingsbase.cpp:162 -msgid "Show available macros" +#: codelitephp/php-plugin/php_ui.cpp:1074 +msgid "Setup automatic upload to a remote site" msgstr "" -#: abbreviation/abbreviationssettingsdlg.cpp:78 -msgid "Abbreviation Name:" +#: codelitephp/php-plugin/php_ui.cpp:1080 +msgid "Collapse" msgstr "" -#: abbreviation/abbreviationssettingsdlg.cpp:78 -msgid "New abbreviation..." +#: codelitephp/php-plugin/php_ui.cpp:1190 +msgid "Where" msgstr "" -#: abbreviation/abbreviationssettingsdlg.cpp:81 -msgid "An abbreviation with this name already exists!" +#: codelitephp/php-plugin/php_ui.cpp:1228 +msgid "Delete the selected breakpoints" msgstr "" -#: abbreviation/abbreviationssettingsdlg.cpp:103 -#, c-format -msgid "Are you sure you want to delete '%s'" +#: codelitephp/php-plugin/php_ui.cpp:1230 +msgid "Delete all breakpoints" msgstr "" -#: abbreviation/abbreviationssettingsdlg.cpp:252 -msgid "" -"This folder already contains a file named 'abbreviations.conf' - would you " -"like to overrite it?" +#: codelitephp/php-plugin/php_ui.cpp:1284 +msgid "Classname" msgstr "" -#: abbreviation/abbreviationssettingsdlg.cpp:256 -msgid "Abbreviations were exported to '" +#: codelitephp/php-plugin/php_ui.cpp:1410 +msgid "Eval" msgstr "" -#: abbreviation/abbreviationssettingsdlg.cpp:269 -msgid "The file does not seem to contain a valid abbreviations entries" +#: codelitephp/php-plugin/php_ui.cpp:1467 +#: codelitephp/php-plugin/php_ui.cpp:1540 +msgid "" +"Type an expression and hit the 'Send' button\n" +"This works best when wrapping the command inside a print_r function, e.g.\n" +"print_r( $mystr, true )" msgstr "" -#: abbreviation/abbreviationssettingsdlg.cpp:283 -msgid "Abbreviations imported successfully!" +#: codelitephp/php-plugin/php_ui.cpp:1483 +msgid "XDebug Console" msgstr "" -#: codelite_make/cl_make_generator_app.cpp:175 -msgid "A makefile generator based on codelite's workspace" +#: codelitephp/php-plugin/php_ui.cpp:1607 +msgid "Select the debugging method" msgstr "" -#: codelite_terminal/MainFrame.cpp:108 -msgid "by Eran Ifrah" +#: codelitephp/php-plugin/php_ui.cpp:1631 +msgid "URL to Run / Debug:" msgstr "" -#: codelite_terminal/MainFrame.cpp:110 -msgid "A terminal emulator designed for codelite IDE" +#: codelitephp/php-plugin/php_ui.cpp:1637 +msgid "Enter the URL to debug" msgstr "" -#: codelite_terminal/terminal_options.cpp:6 -msgid "codelite-terminal" +#: codelitephp/php-plugin/php_ui.cpp:1658 +msgid "File to Run / Debug:" msgstr "" -#: codelite_terminal/wxcrafter.cpp:57 -msgid "Clear view" +#: codelitephp/php-plugin/php_ui.cpp:1671 +msgid "Use the active file opened in the editor" msgstr "" -#: codelite_terminal/wxcrafter.cpp:59 -msgid "Send inferior process signal" +#: codelitephp/php-plugin/php_ui.cpp:1745 +msgid "Project Creation" msgstr "" -#: codelite_terminal/wxcrafter.cpp:232 -msgid "Text Colour:" +#: codelitephp/php-plugin/php_ui.cpp:1745 +msgid "Select the project creation method" msgstr "" -#: codelite_terminal/wxcrafter.cpp:248 -msgid "Font:" +#: codelitephp/php-plugin/php_ui.cpp:1752 +msgid "Create an empty PHP project" msgstr "" -#: codelitephp/PHPParser/php_workspace.cpp:144 -msgid "Scanning for workspace files..." +#: codelitephp/php-plugin/php_ui.cpp:1753 +msgid "Create a project from an existing source files" msgstr "" -#: codelitephp/PHPParser/php_workspace.cpp:265 -msgid "Updating workspace..." +#: codelitephp/php-plugin/php_ui.cpp:1768 +msgid "Project Details" msgstr "" -#: codelitephp/PHPParser/php_workspace.cpp:427 -msgid "" -"'\n" -"to:\n" -"'" +#: codelitephp/php-plugin/php_ui.cpp:1768 +msgid "Set the project name and path" msgstr "" -#: codelitephp/PHPParser/php_workspace.cpp:427 -msgid "" -"Failed to rename workspace file:\n" -"'" +#: codelitephp/php-plugin/php_ui.cpp:1787 +msgid "Set the project name" msgstr "" -#: codelitephp/PHPParser/php_workspace.cpp:449 -msgid "" -"Workspace file modified externally. Would you like to reload the workspace?" +#: codelitephp/php-plugin/php_ui.cpp:1800 +msgid "Select the project path" msgstr "" -#: codelitephp/PHPParser/php_workspace.cpp:452 -msgid "Reload Workspace" +#: codelitephp/php-plugin/php_ui.cpp:1806 +msgid "Create the project under a separate folder" msgstr "" -#: codelitephp/PHPParser/php_workspace.cpp:522 -msgid "A project with similar name already exists in the workspace" +#: codelitephp/php-plugin/php_ui.cpp:1815 +msgid "Preview:" msgstr "" -#: codelitephp/PHPParser/php_workspace.cpp:560 -msgid "Path '" +#: codelitephp/php-plugin/php_ui.cpp:1835 +msgid "PHP Execution" msgstr "" -#: codelitephp/PHPParser/php_workspace.cpp:560 -#: codelitephp/PHPParser/php_workspace.cpp:570 -msgid "Unable to create a project at the selected path\n" +#: codelitephp/php-plugin/php_ui.cpp:1835 +msgid "Set PHP execution method" msgstr "" -#: codelitephp/PHPParser/php_workspace.cpp:561 -msgid "' is already part of project '" +#: codelitephp/php-plugin/php_ui.cpp:1848 +msgid "Project type:" msgstr "" -#: codelitephp/PHPParser/php_workspace.cpp:570 -msgid "Project '" +#: codelitephp/php-plugin/php_ui.cpp:1856 +msgid "Select the project type from the list" msgstr "" -#: codelitephp/PHPParser/php_workspace.cpp:571 -msgid "' is located under this path" +#: codelitephp/php-plugin/php_ui.cpp:1866 +msgid "Select the PHP command line executable to use" msgstr "" -#: codelitephp/PHPParser/phpexecutor.cpp:76 -msgid "Another process is already running" +#: codelitephp/php-plugin/php_ui.cpp:1884 +msgid "Add include paths for Code Completion" msgstr "" -#: codelitephp/PHPParser/phpexecutor.cpp:179 -msgid "Please set an index file to execute in the project settings" +#: codelitephp/php-plugin/php_ui.cpp:1898 +msgid "Browse for code completion folder..." msgstr "" -#: codelitephp/PHPParser/phpexecutor.cpp:186 +#: codelitephp/php-plugin/php_ui.cpp:1917 msgid "" -"Could not find any PHP binary to execute. Please set one in from: 'PHP | " -"Settings'" +"You can add folders here for better code completion.\n" +"CodeLite will scan these folder for any PHP files for better code complete\n" +"\n" +"There is no need to add the project folders, these are parsed automatically" msgstr "" -#: codelitephp/php-plugin/NewPHPClass.cpp:68 -#: codelitephp/php-plugin/NewPHPClass.cpp:80 -msgid "Place each parent in a separate line" +#: codelitephp/php-plugin/php_ui.cpp:1973 +msgid "XDebug Port" msgstr "" -#: codelitephp/php-plugin/NewPHPClass.cpp:69 -msgid "Edit Class Extends" +#: codelitephp/php-plugin/php_ui.cpp:1973 +msgid "" +"Setup XDebug port number\n" +"CodeLite will listen on this port for new incoming messages from XDebug" msgstr "" -#: codelitephp/php-plugin/NewPHPClass.cpp:81 -msgid "Edit Class Interfaces" +#: codelitephp/php-plugin/php_ui.cpp:1986 +msgid "Port number:" msgstr "" -#: codelitephp/php-plugin/XDebugManager.cpp:156 +#: codelitephp/php-plugin/php_ui.cpp:1991 msgid "" -"This project has no file mapping defined. This may result in breakpoints not " -"applied\n" +"Set the port on which CodeLite will be listening for new connections from " +"XDebug. The default port is 9000" msgstr "" -#: codelitephp/php-plugin/XDebugManager.cpp:157 -msgid "To fix this, set file mapping from Project Settings -> Debug" +#: codelitephp/php-plugin/php_ui.cpp:2006 +msgid "CodeLite IP address" msgstr "" -#: codelitephp/php-plugin/XDebugManager.cpp:161 -msgid "Remember my answer and don't show this message again" +#: codelitephp/php-plugin/php_ui.cpp:2006 +msgid "Set the IP address on which CodeLite is running" msgstr "" -#: codelitephp/php-plugin/XDebugManager.cpp:162 -msgid "OK, Continue to Debug" +#: codelitephp/php-plugin/php_ui.cpp:2019 +msgid "IP address:" msgstr "" -#: codelitephp/php-plugin/XDebugManager.cpp:162 -msgid "Stop the debugger" +#: codelitephp/php-plugin/php_ui.cpp:2024 +msgid "" +"Set the IP address on which CodeLite is listening.\n" +"This IP needs to be visible to the machine where XDebug is running." msgstr "" -#: codelitephp/php-plugin/XDebugManager.cpp:592 -#: codelitephp/php-plugin/XDebugManager.cpp:654 -msgid "Could not open file: " +#: codelitephp/php-plugin/php_ui.cpp:2039 +msgid "IDE Key" msgstr "" -#: codelitephp/php-plugin/XDebugManager.cpp:738 -msgid "XDebug did not connect in a timely manner" +#: codelitephp/php-plugin/php_ui.cpp:2039 +#: codelitephp/php-plugin/php_ui.cpp:2057 +msgid "Set the IDE key between CodeLite and XDebug" msgstr "" -#: codelitephp/php-plugin/XDebugManager.cpp:741 -msgid "Run XDebug Test" +#: codelitephp/php-plugin/php_ui.cpp:2078 +msgid "XDebug INI Settings" msgstr "" -#: codelitephp/php-plugin/XDebugManager.cpp:755 -msgid "Error evaluating expression " +#: codelitephp/php-plugin/php_ui.cpp:2078 +msgid "Setup XDebug INI settings" msgstr "" -#: codelitephp/php-plugin/XDebugRunCmdHandler.cpp:50 -msgid "Failed to map remote file: " +#: codelitephp/php-plugin/php_ui.cpp:2084 +msgid "Copy the below text and paste it in your php.ini file:" msgstr "" -#: codelitephp/php-plugin/XDebugRunCmdHandler.cpp:51 -msgid "Check your project settings->Debug to define folder mapping" +#: codelitephp/php-plugin/php_ui.cpp:2146 +msgid "Variable" msgstr "" -#: codelitephp/php-plugin/evalpane.cpp:60 -msgid "*** Error evaluating expression: " +#: codelitephp/php-plugin/php_ui.cpp:2153 +msgid "Functions start with lowercase" msgstr "" -#: codelitephp/php-plugin/new_class.cpp:49 -msgid "Choose the object type" +#: codelitephp/php-plugin/php_ui.cpp:2155 +msgid "Generated functions start with lowercase letter" msgstr "" -#: codelitephp/php-plugin/new_class.cpp:61 -msgid "The name" +#: codelitephp/php-plugin/php_ui.cpp:2159 +msgid "Prefix getter with 'get' or 'is'" msgstr "" -#: codelitephp/php-plugin/new_class.cpp:76 -msgid "If set, the generated code will be placed inside this namespace" +#: codelitephp/php-plugin/php_ui.cpp:2161 +msgid "" +"When checked, the getter function is prefixed with 'get', otherwise, the " +"getter is same as the variable name (without the $ sign)" msgstr "" -#: codelitephp/php-plugin/new_class.cpp:85 -msgid "Extends:" +#: codelitephp/php-plugin/php_ui.cpp:2165 +msgid "Setter returns $this" msgstr "" -#: codelitephp/php-plugin/new_class.cpp:90 -msgid "A comma separated list of parents for this class" +#: codelitephp/php-plugin/php_ui.cpp:2167 +msgid "The getter returns $this object" msgstr "" -#: codelitephp/php-plugin/new_class.cpp:98 -#: codelitephp/php-plugin/new_class.cpp:115 -msgid "Edit in a small text editor..." +#: codelitephp/php-plugin/NewPHPClass.cpp:68 +#: codelitephp/php-plugin/NewPHPClass.cpp:80 +msgid "Place each parent in a separate line" msgstr "" -#: codelitephp/php-plugin/new_class.cpp:102 -msgid "Implements:" +#: codelitephp/php-plugin/NewPHPClass.cpp:69 +msgid "Edit Class Extends" msgstr "" -#: codelitephp/php-plugin/new_class.cpp:107 -msgid "A comma separated list of interfaces for this class" +#: codelitephp/php-plugin/NewPHPClass.cpp:81 +msgid "Edit Class Interfaces" msgstr "" -#: codelitephp/php-plugin/new_class.cpp:131 -msgid "Generate consturctor" +#: codelitephp/php-plugin/php_editor_context_menu.cpp:124 +msgid "Goto definition" msgstr "" -#: codelitephp/php-plugin/new_class.cpp:136 -msgid "Generate desctructor" +#: codelitephp/php-plugin/php_editor_context_menu.cpp:127 +msgid "Insert Doxygen Comment" msgstr "" -#: codelitephp/php-plugin/new_class.cpp:141 -msgid "Create folder per namespace" +#: codelitephp/php-plugin/php_editor_context_menu.cpp:131 +msgid "Code Generation" msgstr "" -#: codelitephp/php-plugin/new_class.cpp:146 -msgid "Make singleton (available for classes only)" +#: codelitephp/php-plugin/php_editor_context_menu.cpp:135 +#, c-format +msgid "Open '%s'" msgstr "" -#: codelitephp/php-plugin/new_class.cpp:148 -msgid "" -"The generated class will be generated as a singleton\n" -"class" +#: codelitephp/php-plugin/php.cpp:60 +msgid "Enable PHP support for codelite IDE" msgstr "" -#: codelitephp/php-plugin/new_php_workspace_dlg.cpp:54 -msgid "select a folder" +#: codelitephp/php-plugin/php.cpp:78 +msgid "PHP Plugin for the codelite IDE" msgstr "" -#: codelitephp/php-plugin/php.cpp:413 +#: codelitephp/php-plugin/php.cpp:394 msgid "Failed to open workspace: corrupted workspace file" msgstr "" -#: codelitephp/php-plugin/php.cpp:553 +#: codelitephp/php-plugin/php.cpp:525 msgid "Run XDebug Setup Wizard..." msgstr "" -#: codelitephp/php-plugin/php.cpp:557 +#: codelitephp/php-plugin/php.cpp:529 msgid "P&HP" msgstr "" -#: codelitephp/php-plugin/php.cpp:734 +#: codelitephp/php-plugin/php.cpp:709 msgid "Can't create PHP project. Close your current workspace first" msgstr "" -#: codelitephp/php-plugin/php_editor_context_menu.cpp:132 -msgid "&Copy" +#: codelitephp/php-plugin/XDebugRunCmdHandler.cpp:50 +msgid "Failed to map remote file: " msgstr "" -#: codelitephp/php-plugin/php_editor_context_menu.cpp:133 -msgid "&Paste" +#: codelitephp/php-plugin/XDebugRunCmdHandler.cpp:51 +msgid "Check your project settings->Debug to define folder mapping" msgstr "" -#: codelitephp/php-plugin/php_editor_context_menu.cpp:134 -msgid "&Undo" +#: codelitephp/php-plugin/php_workspace_view.cpp:125 +msgid "Can only import one folder at a time" msgstr "" -#: codelitephp/php-plugin/php_editor_context_menu.cpp:135 -msgid "&Redo" +#: codelitephp/php-plugin/php_workspace_view.cpp:142 +msgid "Failed to create workspace '" msgstr "" -#: codelitephp/php-plugin/php_editor_context_menu.cpp:137 -msgid "&Cut" +#: codelitephp/php-plugin/php_workspace_view.cpp:143 +msgid "File exists" msgstr "" -#: codelitephp/php-plugin/php_editor_context_menu.cpp:140 -msgid "&Select All" +#: codelitephp/php-plugin/php_workspace_view.cpp:196 +#: codelitephp/php-plugin/php_workspace_view.cpp:225 +#: codelitephp/php-plugin/php_workspace_view.cpp:247 +#: codelitephp/php-plugin/php_workspace_view.cpp:276 +msgid "Open in File Explorer" msgstr "" -#: codelitephp/php-plugin/php_editor_context_menu.cpp:140 -msgid "Select All" +#: codelitephp/php-plugin/php_workspace_view.cpp:197 +#: codelitephp/php-plugin/php_workspace_view.cpp:226 +#: codelitephp/php-plugin/php_workspace_view.cpp:248 +#: codelitephp/php-plugin/php_workspace_view.cpp:277 +msgid "Open Shell Here" msgstr "" -#: codelitephp/php-plugin/php_editor_context_menu.cpp:147 -msgid "Goto definition" +#: codelitephp/php-plugin/php_workspace_view.cpp:199 +msgid "Open with Default Application" msgstr "" -#: codelitephp/php-plugin/php_editor_context_menu.cpp:150 -msgid "Insert Doxygen Comment" +#: codelitephp/php-plugin/php_workspace_view.cpp:216 +msgid "Close workspace" msgstr "" -#: codelitephp/php-plugin/php_editor_context_menu.cpp:154 -msgid "Code Generation" +#: codelitephp/php-plugin/php_workspace_view.cpp:218 +msgid "Create a new project..." msgstr "" -#: codelitephp/php-plugin/php_editor_context_menu.cpp:158 -#, c-format -msgid "Open '%s'" +#: codelitephp/php-plugin/php_workspace_view.cpp:219 +msgid "Add an existing project..." msgstr "" -#: codelitephp/php-plugin/php_project_settings_dlg.cpp:106 -msgid "Select folder" +#: codelitephp/php-plugin/php_workspace_view.cpp:221 +msgid "Parse workspace" msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:81 -msgid "C++ Workspace" +#: codelitephp/php-plugin/php_workspace_view.cpp:235 +msgid "Set as active project" msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:82 -msgid "PHP Workspace" +#: codelitephp/php-plugin/php_workspace_view.cpp:237 +msgid "Remove project" msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:83 -msgid "Select the workspace type:" +#: codelitephp/php-plugin/php_workspace_view.cpp:239 +#: codelitephp/php-plugin/php_workspace_view.cpp:269 +msgid "New Class..." msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:145 -msgid "Set here the workspace name" +#: codelitephp/php-plugin/php_workspace_view.cpp:240 +#: codelitephp/php-plugin/php_workspace_view.cpp:271 +msgid "New Folder..." msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:172 -msgid "Create the workspace in a separate directory" +#: codelitephp/php-plugin/php_workspace_view.cpp:241 +#: codelitephp/php-plugin/php_workspace_view.cpp:272 +msgid "New File..." msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:303 -msgid "" -"Type the resource name (file, variable, class, function, constant or define):" +#: codelitephp/php-plugin/php_workspace_view.cpp:252 +msgid "Sync project with file system..." msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:375 -msgid "PHP Executable:" +#: codelitephp/php-plugin/php_workspace_view.cpp:256 +msgid "Run project..." msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:380 -msgid "" -"Select the PHP executable to use when debugging / running command line " -"scripts" +#: codelitephp/php-plugin/php_workspace_view.cpp:258 +msgid "Project settings..." msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:385 -msgid "error_reporting:" +#: codelitephp/php-plugin/php_workspace_view.cpp:315 +msgid "Loading Workspace View..." msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:390 -msgid "Set the PHP error reporting level (affects command line only)" +#: codelitephp/php-plugin/php_workspace_view.cpp:391 +msgid "Are you sure you want to remove project '" msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:401 codelitephp/php-plugin/php_ui.cpp:709 -msgid "Add include path:" +#: codelitephp/php-plugin/php_workspace_view.cpp:411 +msgid "New Folder Name:" msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:406 -msgid "Add include path for PHP" +#: codelitephp/php-plugin/php_workspace_view.cpp:411 +msgid "New Folder" msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:422 -msgid "Additional include path for PHP (affects command line runs only)" +#: codelitephp/php-plugin/php_workspace_view.cpp:512 +msgid "Set the file name:" msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:438 codelitephp/php-plugin/php_ui.cpp:793 -msgid "Add include path for code completion:" +#: codelitephp/php-plugin/php_workspace_view.cpp:551 +msgid "Are you sure you want to delete folder '" msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:439 codelitephp/php-plugin/php_ui.cpp:450 -msgid "" -"Paths added here will only be used for code completion and NOT during " -"runtime.\n" -"If you want to add search paths for runtime (CLI mode only), Use the 'PHP " -"CLI' tab" +#: codelitephp/php-plugin/php_workspace_view.cpp:551 +msgid "' and its content?" msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:455 -msgid "XDebug" +#: codelitephp/php-plugin/php_workspace_view.cpp:624 +msgid "Rename file" msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:467 -msgid "Listen host:" +#: codelitephp/php-plugin/php_workspace_view.cpp:667 +msgid "" +"This operation will delete the selected items.\n" +"Continue?" msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:472 -msgid "Wait for connection from XDebug on this host" +#: codelitephp/php-plugin/php_workspace_view.cpp:685 +#, c-format +msgid "" +"'%s' is a folder.\n" +"This operation will delete the folder and its content.\n" +"Continue?" msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:481 codelitephp/php-plugin/php_ui.cpp:486 +#: codelitephp/php-plugin/php_workspace_view.cpp:745 msgid "" -"The port on which codelite is accepting debug sessions from XDebug\n" -"This value must be the same as the value set in the 'xdebug.remote_port'\n" -"directive" +"No active project is set !?\n" +"Please set an active project and try again" msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:493 -#: codelitephp/php-plugin/php_ui.cpp:1929 -msgid "IDE Key:" +#: codelitephp/php-plugin/php_workspace_view.cpp:926 +msgid "New workspace name:" msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:494 -msgid "This field defines the session name between CodeLite and XDebug" +#: codelitephp/php-plugin/php_workspace_view.cpp:926 +msgid "Rename workspace" msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:499 -msgid "The XDebug session name" +#: codelitephp/php-plugin/php_workspace_view.cpp:945 +#: codelitephp/php-plugin/php_workspace_view.cpp:950 +msgid "Enable automatic upload" msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:507 -msgid "Syntax Check" +#: codelitephp/php-plugin/php_workspace_view.cpp:986 +msgid "Select the remote folder corrseponding to the current workspace file" msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:512 -msgid "Perform syntax check when saving a file" +#: codelitephp/php-plugin/php_project_settings_dlg.cpp:106 +msgid "Select folder" msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:514 +#: codelitephp/PHPParser/php_workspace.cpp:144 +msgid "Scanning for workspace files..." +msgstr "" + +#: codelitephp/PHPParser/php_workspace.cpp:270 +msgid "Updating workspace..." +msgstr "" + +#: codelitephp/PHPParser/php_workspace.cpp:442 msgid "" -"When saving a PHP script, run syntax check and report errors in the editor" +"Failed to rename workspace file:\n" +"'" msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:581 -msgid "Select the project execution mode:" +#: codelitephp/PHPParser/php_workspace.cpp:442 +msgid "" +"'\n" +"to:\n" +"'" msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:593 -msgid "Run project as command line" +#: codelitephp/PHPParser/php_workspace.cpp:464 +msgid "" +"Workspace file modified externally. Would you like to reload the workspace?" msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:606 -#: codelitephp/php-plugin/php_ui.cpp:1746 -msgid "PHP executable:" +#: codelitephp/PHPParser/php_workspace.cpp:558 +msgid "A project with similar name already exists in the workspace" msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:611 -msgid "Select the PHP interperter to use for running this project" +#: codelitephp/PHPParser/php_workspace.cpp:596 +#: codelitephp/PHPParser/php_workspace.cpp:606 +msgid "Unable to create a project at the selected path\n" +msgstr "" + +#: codelitephp/PHPParser/php_workspace.cpp:596 +msgid "Path '" msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:616 -msgid "Select PHP INI file:" +#: codelitephp/PHPParser/php_workspace.cpp:597 +msgid "' is already part of project '" msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:617 codelitephp/php-plugin/php_ui.cpp:622 -msgid "Select the PHP INI file to use with PHP (leave empty for default)" +#: codelitephp/PHPParser/php_workspace.cpp:606 +msgid "Project '" msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:626 -msgid "Index File:" +#: codelitephp/PHPParser/php_workspace.cpp:607 +msgid "' is located under this path" msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:631 -msgid "Select the project index file" +#: codelitephp/PHPParser/phpexecutor.cpp:76 +msgid "Another process is already running" msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:643 -msgid "Program arguments" +#: codelitephp/PHPParser/phpexecutor.cpp:179 +msgid "Please set an index file to execute in the project settings" msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:644 codelitephp/php-plugin/php_ui.cpp:658 +#: codelitephp/PHPParser/phpexecutor.cpp:186 msgid "" -"Insert the program arguments here\n" -"Place each argument on a separate line" +"Could not find any PHP binary to execute. Please set one in from: 'PHP | " +"Settings'" msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:670 -msgid "Run project as web site" +#: wxformbuilder/wxfbitembasedlg.cpp:61 +msgid "Title:" msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:678 -msgid "Project URL:" +#: wxformbuilder/wxformbuilder.cpp:61 wxformbuilder/wxformbuilder.cpp:77 +msgid "wxFormBuilder integration with CodeLite" msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:691 -msgid "Use system default browser" +#: wxformbuilder/wxformbuilder.cpp:158 +msgid "New wxDialog..." msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:698 -msgid "Include path" +#: wxformbuilder/wxformbuilder.cpp:163 +msgid "New wxDialog with Default Buttons..." msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:727 -msgid "" -"When running project with PHP CLI tool, pass the following\n" -"include paths" +#: wxformbuilder/wxformbuilder.cpp:168 +msgid "New wxFrame..." msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:746 -msgid "Project file types" +#: wxformbuilder/wxformbuilder.cpp:171 +msgid "New wxPanel..." msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:747 -msgid "" -"Set the file extensions to include in this project\n" -"CodeLite will only display these file types in the project view" +#: wxformbuilder/wxformbuilder.cpp:180 +msgid "New wxDialog" msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:750 -msgid "Exclude folders" +#: wxformbuilder/wxformbuilder.cpp:193 +msgid "New wxFrame" msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:751 -msgid "" -"Set a list of folders to exclude from the project.\n" -"If the last part of the folder path is equal to one of the entries in this " -"exclude list, it will not\n" -"be shown in the project view" +#: wxformbuilder/wxformbuilder.cpp:205 +msgid "New wxPanel" msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:759 -msgid "File mapping" +#: wxformbuilder/wxformbuilder.cpp:245 +#, c-format +msgid "Can't find wxFormBuilder template file '%s'" msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:770 -msgid "Source folder" +#: wxformbuilder/wxformbuilder.cpp:260 CodeDesigner/codedesigner.cpp:490 +#, c-format +msgid "Failed to copy template file to '%s'" msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:771 -msgid "Target folder" +#: wxformbuilder/wxformbuilder.cpp:268 CodeDesigner/codedesigner.cpp:497 +#, c-format +msgid "Failed to read file '%s'" msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:914 -msgid "Local folder:" +#: wxformbuilder/wxformbuilder.cpp:280 CodeDesigner/codedesigner.cpp:511 +#, c-format +msgid "Failed to write file '%s'" msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:919 -msgid "" -"The source folder usually points to the location where you develop your code" +#: wxformbuilder/wxformbuilder.cpp:325 +msgid "Please select a 'fbp' (Form Builder Project) file only" msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:924 -msgid "Remote folder:" +#: wxformbuilder/wxformbuilder.cpp:376 +msgid "New wxDialog with Default Buttons" msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:981 -msgid "Open Active Project Settings..." +#: wxformbuilder/wxformbuilder.cpp:433 +msgid "Open with wxFormBuilder..." msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:983 -msgid "Setup automatic upload" +#: wxformbuilder/formbuildsettingsdlg.cpp:49 +msgid "Select wxFormBuilder exe:" msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:983 -msgid "Setup automatic upload to a remote site" +#: wxformbuilder/formbuildsettingsbasedlg.cpp:51 +msgid "wxFormBuilder path:" msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:989 -msgid "Collapse" +#: wxformbuilder/formbuildsettingsbasedlg.cpp:67 +msgid "$(WXFB) $(WXFB_PRJ)" msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:1097 -msgid "Where" +#: wxformbuilder/formbuildsettingsbasedlg.h:81 +msgid "wxFormBuilder Settings..." msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:1135 -msgid "Delete the selected breakpoints" +#: wxformbuilder/wxfbitemdlg.cpp:51 +msgid "Invalid C++ class name" msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:1137 -msgid "Delete all breakpoints" +#: WebTools/JSCodeCompletion.cpp:62 +msgid "" +"It seems that NodeJS is not installed on your machine\n" +"(Can't find file '/usr/bin/nodejs' or '/usr/bin/node')\n" +"I have temporarily disabled Code Completion for JavaScript\n" +"Please install NodeJS and try again" msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:1190 -msgid "Classname" +#: WebTools/WebToolsBase.h:74 +msgid "WebTools Settings" msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:1314 -msgid "Eval" +#: WebTools/WebToolsBase.cpp:40 WebTools/WebToolsBase.cpp:42 +msgid "Enable JavaScript code completion" msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:1371 -#: codelitephp/php-plugin/php_ui.cpp:1444 -msgid "" -"Type an expression and hit the 'Send' button\n" -"This works best when wrapping the command inside a print_r function, e.g.\n" -"print_r( $mystr, true )" +#: WebTools/WebToolsBase.cpp:46 WebTools/WebToolsBase.cpp:48 +msgid "Enable XML code completion" msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:1387 -msgid "XDebug Console" +#: WebTools/WebToolsBase.cpp:52 WebTools/WebToolsBase.cpp:54 +msgid "Enable HTML code completion" msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:1510 -msgid "Select the debugging method" +#: WebTools/WebToolsBase.cpp:76 +msgid "" +"The JavaScript code completion uses the \"tern\" engine.\n" +"Check this option to start tern in verbose mode" msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:1533 -msgid "URL to Run / Debug:" +#: WebTools/WebToolsBase.cpp:79 +msgid "Enable Code Completion for the selected libraries" msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:1539 -msgid "Enter the URL to debug" +#: WebTools/WebToolsBase.cpp:81 +msgid "Ecma5" msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:1560 -msgid "File to Run / Debug:" +#: WebTools/WebToolsBase.cpp:84 +msgid "Ecma6" msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:1573 -msgid "Use the active file opened in the editor" +#: WebTools/WebToolsBase.cpp:87 +msgid "jQuery" msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:1630 -msgid "Project Creation" +#: WebTools/WebToolsBase.cpp:88 +msgid "Support Code Completion for jQuery framework" msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:1630 -msgid "Select the project creation method" +#: WebTools/WebToolsBase.cpp:90 +msgid "Underscore" msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:1637 -msgid "Create an empty PHP project" +#: WebTools/WebToolsBase.cpp:91 +msgid "Enable code completion for the Underscore library" msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:1638 -msgid "Create a project from an existing source files" +#: WebTools/WebToolsBase.cpp:93 +msgid "Browser" msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:1653 -msgid "Project Details" +#: WebTools/WebToolsBase.cpp:94 +msgid "Enable code completion for browser mode (DOM, document, window etc)" msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:1653 -msgid "Set the project name and path" +#: WebTools/WebToolsBase.cpp:96 +msgid "Chai" msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:1667 -msgid "Project Name:" +#: WebTools/WebToolsBase.cpp:97 +msgid "Enable code completion for the chain assertion library" msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:1672 -msgid "Set the project name" +#: WebTools/WebToolsBase.cpp:99 +msgid "QML" msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:1685 -msgid "Select the project path" +#: WebTools/WebToolsBase.cpp:100 +msgid "Support for Qt's QML extension for JavaScript" msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:1691 -msgid "Create the project under a separate folder" +#: WebTools/WebToolsBase.cpp:105 +msgid "Angular" msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:1700 -msgid "Preview:" +#: WebTools/WebToolsBase.cpp:106 +msgid "" +"Adds the angular object to the top-level environment, and tries to wire up " +"some of the bizarre dependency management scheme from this library, so that " +"dependency injections get the right types" msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:1720 -msgid "PHP Execution" +#: WebTools/WebToolsBase.cpp:109 +msgid "" +"When enabled, this plugin will gather (short) strings in your code, and " +"completing when inside a string will try to complete to previously seen " +"strings" msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:1720 -msgid "Set PHP execution method" +#: WebTools/WebToolsBase.cpp:111 +msgid "Node.js" msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:1733 -msgid "Project type:" +#: WebTools/WebToolsBase.cpp:112 +msgid "" +"Provides variables that are part of the node environment, such as process " +"and require, and hooks up require to try and find the dependencies that are " +"being loaded, and assign them the correct types. It also includes types for " +"the built-in modules that node.js provides (\"fs\", \"http\", etc)" msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:1741 -msgid "Select the project type from the list" +#: WebTools/webtools.cpp:25 +msgid "Support for JavScript, HTML and other web development tools" msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:1751 -msgid "Select the PHP command line executable to use" +#: WebTools/webtools.cpp:36 +msgid "Support for JavScript, XML, HTML and other web development tools" msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:1769 -msgid "Add include paths for Code Completion" +#: WebTools/webtools.cpp:78 +msgid "WebTools" msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:1783 -msgid "Browse for code completion folder..." +#: WordCompletion/UI.h:50 +msgid "Word Completion Settings" msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:1802 -msgid "" -"You can add folders here for better code completion.\n" -"CodeLite will scan these folder for any PHP files for better code complete\n" -"\n" -"There is no need to add the project folders, these are parsed automatically" +#: WordCompletion/UI.cpp:39 +msgid "Enable Word Completion plugin?" msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:1850 -msgid "" -"Setup XDebug port number\n" -"CodeLite will listen on this port for new incoming messages from XDebug" +#: WordCompletion/UI.cpp:43 +msgid "Starts With" msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:1850 -msgid "XDebug Port" +#: WordCompletion/UI.cpp:44 +msgid "Contains" msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:1863 -msgid "Port number:" +#: WordCompletion/UI.cpp:45 +msgid "Comparison Method" msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:1868 +#: WordCompletion/UI.cpp:46 msgid "" -"Set the port on which CodeLite will be listening for new connections from " -"XDebug. The default port is 9000" +"Select the word completion comparison method:\n" +"\"Starts With\" - suggest all words that starts with the partial word that " +"the user typed\n" +"\"Contains\" - suggest all words that contains the partial word that the " +"user typed" msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:1883 -msgid "CodeLite IP address" +#: WordCompletion/wordcompletion.cpp:29 WordCompletion/wordcompletion.cpp:39 +msgid "Suggest completion based on words typed in the editor" msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:1883 -msgid "Set the IP address on which CodeLite is running" +#: WordCompletion/wordcompletion.cpp:64 +msgid "Show Word Completion" msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:1896 -msgid "IP address:" +#: CodeDesigner/codedesignersettingsbasedlg.cpp:26 +msgid "CodeDesigner path:" msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:1901 -msgid "" -"Set the IP address on which CodeLite is listening.\n" -"This IP needs to be visible to the machine where XDebug is running." +#: CodeDesigner/codedesignersettingsbasedlg.cpp:38 +msgid "Communication port:" msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:1916 -msgid "IDE Key" +#: CodeDesigner/codedesignersettingsbasedlg.h:57 +msgid "CodeDesigner RAD Settings..." msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:1916 -#: codelitephp/php-plugin/php_ui.cpp:1934 -msgid "Set the IDE key between CodeLite and XDebug" +#: CodeDesigner/codedesigneritembasedlg.h:66 +msgid "New CodeDesigner project" msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:1955 -msgid "Setup XDebug INI settings" +#: CodeDesigner/codedesigner.cpp:49 CodeDesigner/codedesigner.cpp:63 +msgid "CodeDesigner RAD integration with CodeLite" msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:1955 -msgid "XDebug INI Settings" +#: CodeDesigner/codedesigner.cpp:136 +msgid "CodeDesigner" msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:1961 -msgid "Copy the below text and paste it in your php.ini file:" +#: CodeDesigner/codedesigner.cpp:173 +msgid "Open with CodeDesigner..." msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:2015 -msgid "Variable" +#: CodeDesigner/codedesigner.cpp:248 +msgid "New simple state chart..." msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:2022 -msgid "Functions start with lowercase" +#: CodeDesigner/codedesigner.cpp:252 +msgid "New hierarchical state chart..." msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:2024 -msgid "Generated functions start with lowercase letter" +#: CodeDesigner/codedesigner.cpp:256 +msgid "New class diagram..." msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:2028 -msgid "Prefix getter with 'get' or 'is'" +#: CodeDesigner/codedesigner.cpp:315 +msgid "Please select a 'cdp' (CodeDesigner Project) file only" msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:2030 +#: CodeDesigner/codedesigner.cpp:327 msgid "" -"When checked, the getter function is prefixed with 'get', otherwise, the " -"getter is same as the variable name (without the $ sign)" -msgstr "" - -#: codelitephp/php-plugin/php_ui.cpp:2034 -msgid "Setter returns $this" +"Failed to launch CodeDesigner, no path specified\n" +"Please set CodeDesigner path from Plugins -> CodeDesigner -> Settings..." msgstr "" -#: codelitephp/php-plugin/php_ui.cpp:2036 -msgid "The getter returns $this object" +#: CodeDesigner/codedesigner.cpp:391 +msgid "New Class Diagram" msgstr "" -#: codelitephp/php-plugin/php_workspace_view.cpp:121 -msgid "Can only import one folder at a time" +#: CodeDesigner/codedesigner.cpp:409 +msgid "New Hierarchical State Chart" msgstr "" -#: codelitephp/php-plugin/php_workspace_view.cpp:138 -msgid "Failed to create workspace '" +#: CodeDesigner/codedesigner.cpp:427 +msgid "New Simple State Chart" msgstr "" -#: codelitephp/php-plugin/php_workspace_view.cpp:139 -msgid "File exists" +#: CodeDesigner/codedesigner.cpp:475 +#, c-format +msgid "Can't find CodeDesigner template file '%s'" msgstr "" -#: codelitephp/php-plugin/php_workspace_view.cpp:188 -#: codelitephp/php-plugin/php_workspace_view.cpp:217 -#: codelitephp/php-plugin/php_workspace_view.cpp:239 -#: codelitephp/php-plugin/php_workspace_view.cpp:268 -msgid "Open in File Explorer" +#: CodeDesigner/codedesigner.cpp:592 +msgid "Insert generated files into..." msgstr "" -#: codelitephp/php-plugin/php_workspace_view.cpp:189 -#: codelitephp/php-plugin/php_workspace_view.cpp:218 -#: codelitephp/php-plugin/php_workspace_view.cpp:240 -#: codelitephp/php-plugin/php_workspace_view.cpp:269 -msgid "Open Shell Here" +#: CodeDesigner/codedesigneritembasedlg.cpp:20 +msgid "CodeDesigner project settings:" msgstr "" -#: codelitephp/php-plugin/php_workspace_view.cpp:191 -msgid "Open with Default Application" +#: CodeDesigner/codedesigneritembasedlg.cpp:27 +msgid "Package name:" msgstr "" -#: codelitephp/php-plugin/php_workspace_view.cpp:208 -msgid "Close workspace" +#: CodeDesigner/codedesigneritembasedlg.cpp:36 +msgid "Diagram name:" msgstr "" -#: codelitephp/php-plugin/php_workspace_view.cpp:210 -msgid "Create a new project..." +#: CodeDesigner/codedesigneritembasedlg.cpp:47 +msgid "C" msgstr "" -#: codelitephp/php-plugin/php_workspace_view.cpp:211 -msgid "Add an existing project..." +#: CodeDesigner/codedesigneritembasedlg.cpp:47 +msgid "Python" msgstr "" -#: codelitephp/php-plugin/php_workspace_view.cpp:213 -msgid "Parse workspace" +#: CodeDesigner/codedesigneritembasedlg.cpp:56 +msgid "Application entry point" msgstr "" -#: codelitephp/php-plugin/php_workspace_view.cpp:227 -msgid "Set as active project" +#: CodeDesigner/codedesigneritembasedlg.cpp:62 +msgid "Generate source code" msgstr "" -#: codelitephp/php-plugin/php_workspace_view.cpp:229 -msgid "Remove project" +#: CodeDesigner/codedesigneritembasedlg.cpp:70 +msgid "CodeLite settings:" msgstr "" -#: codelitephp/php-plugin/php_workspace_view.cpp:231 -#: codelitephp/php-plugin/php_workspace_view.cpp:261 -msgid "New Class..." +#: CodeDesigner/codedesignerdlg.cpp:15 +msgid "Select CodeDesigner executable:" msgstr "" -#: codelitephp/php-plugin/php_workspace_view.cpp:232 -#: codelitephp/php-plugin/php_workspace_view.cpp:263 -msgid "New Folder..." +#: CodeDesigner/codedesigneritemdlg.cpp:41 +msgid "Diagram name cannot be empty" msgstr "" -#: codelitephp/php-plugin/php_workspace_view.cpp:233 -#: codelitephp/php-plugin/php_workspace_view.cpp:264 -msgid "New File..." +#: CodeDesigner/codedesigneritemdlg.cpp:48 +msgid "Package name cannot be empty" msgstr "" -#: codelitephp/php-plugin/php_workspace_view.cpp:244 -msgid "Sync project with file system..." +#: CodeDesigner/codedesigneritemdlg.cpp:55 +#: DatabaseExplorer/ClassGenerateDialog.cpp:131 +msgid "Folder name cannot be empty" msgstr "" -#: codelitephp/php-plugin/php_workspace_view.cpp:248 -msgid "Run project..." +#: DatabaseExplorer/ErdTable.cpp:308 +msgid "New table" msgstr "" -#: codelitephp/php-plugin/php_workspace_view.cpp:250 -msgid "Project settings..." +#: DatabaseExplorer/ErdPanel.cpp:164 +msgid "Open diagram" msgstr "" -#: codelitephp/php-plugin/php_workspace_view.cpp:307 -msgid "Loading Workspace View..." +#: DatabaseExplorer/ErdPanel.cpp:165 +msgid "Save diagram" msgstr "" -#: codelitephp/php-plugin/php_workspace_view.cpp:383 -msgid "Are you sure you want to remove project '" +#: DatabaseExplorer/ErdPanel.cpp:166 +msgid "Save SQL" msgstr "" -#: codelitephp/php-plugin/php_workspace_view.cpp:403 -msgid "New Folder" +#: DatabaseExplorer/ErdPanel.cpp:167 +msgid "Commit ERD" msgstr "" -#: codelitephp/php-plugin/php_workspace_view.cpp:403 -msgid "New Folder Name:" +#: DatabaseExplorer/ErdPanel.cpp:168 +msgid "Export canvas to image" msgstr "" -#: codelitephp/php-plugin/php_workspace_view.cpp:504 -msgid "Set the file name:" +#: DatabaseExplorer/ErdPanel.cpp:170 +msgid "Print" msgstr "" -#: codelitephp/php-plugin/php_workspace_view.cpp:543 -msgid "' and its content?" +#: DatabaseExplorer/ErdPanel.cpp:170 +msgid "Print diagram" msgstr "" -#: codelitephp/php-plugin/php_workspace_view.cpp:543 -msgid "Are you sure you want to delete folder '" +#: DatabaseExplorer/ErdPanel.cpp:171 +msgid "Preview" msgstr "" -#: codelitephp/php-plugin/php_workspace_view.cpp:616 -msgid "Rename file" +#: DatabaseExplorer/ErdPanel.cpp:171 +msgid "Print preview" msgstr "" -#: codelitephp/php-plugin/php_workspace_view.cpp:659 -msgid "" -"This operation will delete the selected items.\n" -"Continue?" +#: DatabaseExplorer/ErdPanel.cpp:173 +msgid "Copy item" msgstr "" -#: codelitephp/php-plugin/php_workspace_view.cpp:677 -#, c-format -msgid "" -"'%s' is a folder.\n" -"This operation will delete the folder and its content.\n" -"Continue?" +#: DatabaseExplorer/ErdPanel.cpp:174 +msgid "Cut item" msgstr "" -#: codelitephp/php-plugin/php_workspace_view.cpp:911 -msgid "New workspace name:" +#: DatabaseExplorer/ErdPanel.cpp:175 +msgid "Paste item" msgstr "" -#: codelitephp/php-plugin/php_workspace_view.cpp:911 -msgid "Rename workspace" +#: DatabaseExplorer/ErdPanel.cpp:180 +msgid "Tool" msgstr "" -#: codelitephp/php-plugin/php_workspace_view.cpp:930 -#: codelitephp/php-plugin/php_workspace_view.cpp:935 -msgid "Enable automatic upload" +#: DatabaseExplorer/ErdPanel.cpp:180 +msgid "Design tool" msgstr "" -#: codelitephp/php-plugin/php_workspace_view.cpp:971 -msgid "Select the remote folder corrseponding to the current workspace file" +#: DatabaseExplorer/ErdPanel.cpp:181 +msgid "DBETable" msgstr "" -#: cppchecker/cppchecker.cpp:72 -msgid "CppChecker integration for CodeLite IDE" +#: DatabaseExplorer/ErdPanel.cpp:181 +msgid "Database table" msgstr "" -#: cppchecker/cppchecker.cpp:101 -msgid "CppCheck integration for CodeLite IDE" +#: DatabaseExplorer/ErdPanel.cpp:182 +msgid "Database view" msgstr "" -#: cppchecker/cppchecker.cpp:243 -msgid "CppCheckPlugin: Terminating cppcheck daemon..." +#: DatabaseExplorer/ErdPanel.cpp:183 +msgid "Constraint 1:N" msgstr "" -#: cppchecker/cppchecker.cpp:256 cppchecker/cppchecker.cpp:272 -#: cppchecker/cppchecker.cpp:286 cppchecker/cppchecker.cpp:300 -msgid "Run CppCheck" +#: DatabaseExplorer/ErdPanel.cpp:183 +msgid "Foreign key connection" msgstr "" -#: cppchecker/cppchecker.cpp:312 cppchecker/cppchecker.cpp:332 -#: cppchecker/cppchecker.cpp:352 cppchecker/cppchecker.cpp:408 -msgid "" -"CppCheckPlugin: CppCheck is currently busy please wait for it to complete " -"the current check" +#: DatabaseExplorer/ErdPanel.cpp:185 +msgid "Align into circle" msgstr "" -#: cppchecker/cppchecker.cpp:512 -#, c-format -msgid "Starting cppcheck: %s\n" +#: DatabaseExplorer/ErdPanel.cpp:186 +msgid "Align into mesh" msgstr "" -#: cppchecker/cppchecker.cpp:516 -msgid "Failed to launch codelite_cppcheck process!" +#: DatabaseExplorer/ErdPanel.cpp:187 +msgid "Align into vertical tree" msgstr "" -#: cppchecker/cppchecker.cpp:597 -msgid "No files to check" +#: DatabaseExplorer/ErdPanel.cpp:188 +msgid "Align into horizontal tree" msgstr "" -#: cppchecker/cppchecker.cpp:658 -msgid "Failed to open temporary file " +#: DatabaseExplorer/ErdPanel.cpp:191 +msgid "Zoom to all" msgstr "" -#: cppchecker/cppcheckreportbasepage.cpp:80 -msgid "Clear the CppCheck report view" +#: DatabaseExplorer/ErdPanel.cpp:219 +msgid "Load canvas from file..." msgstr "" -#: cppchecker/cppcheckreportbasepage.cpp:84 -msgid "&Stop" +#: DatabaseExplorer/ErdPanel.cpp:228 +msgid "Save canvas to file..." msgstr "" -#: cppchecker/cppcheckreportbasepage.cpp:86 -msgid "Stop the curreny analysis" +#: DatabaseExplorer/ErdPanel.cpp:237 +msgid "Save SQL create query..." msgstr "" -#: cppchecker/cppcheckreportbasepage.cpp:95 -msgid "Move to previous error" +#: DatabaseExplorer/ErdPanel.cpp:251 +#, c-format +msgid "The SQL script has been saved to '%s'." msgstr "" -#: cppchecker/cppcheckreportbasepage.cpp:100 -msgid "Move to next error" +#: DatabaseExplorer/ErdPanel.cpp:251 DatabaseExplorer/ErdPanel.cpp:403 +#: DatabaseExplorer/databaseexplorer.cpp:93 +#: DatabaseExplorer/databaseexplorer.cpp:239 +msgid "DatabaseExplorer" msgstr "" -#: cppchecker/cppcheckreportpage.cpp:197 -msgid " possible errors" +#: DatabaseExplorer/ErdPanel.cpp:388 +msgid "ERD type doesn't match current database adapter." msgstr "" -#: cppchecker/cppcheckreportpage.cpp:197 -msgid "cppcheck analysis ended. Found " +#: DatabaseExplorer/ErdPanel.cpp:388 DatabaseExplorer/DbViewerPanel.cpp:804 +#: DatabaseExplorer/DbViewerPanel.cpp:807 +#: DatabaseExplorer/DbViewerPanel.cpp:856 +#: DatabaseExplorer/DbViewerPanel.cpp:863 +#: DatabaseExplorer/SqlCommandPanel.cpp:156 +#: DatabaseExplorer/SqlCommandPanel.cpp:281 +#: DatabaseExplorer/SqlCommandPanel.cpp:286 +#: DatabaseExplorer/ErdCommitWizard.cpp:466 +#: DatabaseExplorer/ErdCommitWizard.cpp:473 +#: DatabaseExplorer/DbSettingDialog.cpp:84 +#: DatabaseExplorer/DbSettingDialog.cpp:87 +#: DatabaseExplorer/DbSettingDialog.cpp:91 +#: DatabaseExplorer/DbSettingDialog.cpp:111 +#: DatabaseExplorer/DbSettingDialog.cpp:114 +#: DatabaseExplorer/DbSettingDialog.cpp:118 +#: DatabaseExplorer/DbSettingDialog.cpp:179 +#: DatabaseExplorer/DbSettingDialog.cpp:182 +#: DatabaseExplorer/DbSettingDialog.cpp:186 +#: DatabaseExplorer/AdapterSelectDlg.cpp:45 +#: DatabaseExplorer/AdapterSelectDlg.cpp:53 +#: DatabaseExplorer/AdapterSelectDlg.cpp:61 +msgid "DB Error" msgstr "" -#: cppchecker/cppchecksettingsdlg.cpp:147 -msgid "C/C++ Files " +#: DatabaseExplorer/ErdPanel.cpp:403 +#, c-format +msgid "The chart has been saved to '%s'." msgstr "" -#: cppchecker/cppchecksettingsdlg.cpp:152 -msgid "Add File(s):" +#: DatabaseExplorer/TableSettings.cpp:92 +msgid "column" msgstr "" -#: cppchecker/cppchecksettingsdlg.cpp:192 -msgid "There is already an entry with ID string. Try again?" +#: DatabaseExplorer/DbViewerPanel.cpp:69 +msgid "Open connection" msgstr "" -#: cppchecker/cppchecksettingsdlg.cpp:214 -msgid "Really remove this warning suppression, rather than just unticking it?" +#: DatabaseExplorer/DbViewerPanel.cpp:73 DatabaseExplorer/DbViewerPanel.cpp:74 +msgid "Open new connection" msgstr "" -#: cppchecker/cppchecksettingsdlg.cpp:246 -msgid "Select the path containing include files" +#: DatabaseExplorer/DbViewerPanel.cpp:77 DatabaseExplorer/DbViewerPanel.cpp:85 +msgid "tool" msgstr "" -#: cppchecker/cppchecksettingsdlg.cpp:367 -#: cppchecker/cppchecksettingsdlgbase.cpp:52 -msgid "Missing includes" +#: DatabaseExplorer/DbViewerPanel.cpp:81 DatabaseExplorer/DbViewerPanel.cpp:82 +msgid "Close selected connection" msgstr "" -#: cppchecker/cppchecksettingsdlgbase.cpp:34 -msgid "Checks" +#: DatabaseExplorer/DbViewerPanel.cpp:93 +msgid "ERD" msgstr "" -#: cppchecker/cppchecksettingsdlgbase.cpp:39 -msgid "Run the following extra checks:" +#: DatabaseExplorer/DbViewerPanel.cpp:97 +msgid "Open ERD View" msgstr "" -#: cppchecker/cppchecksettingsdlgbase.cpp:49 -msgid "Performance" +#: DatabaseExplorer/DbViewerPanel.cpp:101 +#: DatabaseExplorer/DbViewerPanel.cpp:103 +msgid "Show ERD Thumbnail" msgstr "" -#: cppchecker/cppchecksettingsdlgbase.cpp:50 -msgid "Portability" +#: DatabaseExplorer/DbViewerPanel.cpp:409 +#: DatabaseExplorer/DbViewerPanel.cpp:440 +#: DatabaseExplorer/DbViewerPanel.cpp:455 +msgid "Open SQL panel" msgstr "" -#: cppchecker/cppchecksettingsdlgbase.cpp:51 -msgid "Unused functions" +#: DatabaseExplorer/DbViewerPanel.cpp:409 +msgid "Open SQL command panel for the database" msgstr "" -#: cppchecker/cppchecksettingsdlgbase.cpp:53 -msgid "Output informative messages" +#: DatabaseExplorer/DbViewerPanel.cpp:413 +#: DatabaseExplorer/DbViewerPanel.cpp:555 +msgid "Drop database" msgstr "" -#: cppchecker/cppchecksettingsdlgbase.cpp:54 -msgid "Posix standards" +#: DatabaseExplorer/DbViewerPanel.cpp:413 +msgid "Run SQL command for deleting Database" msgstr "" -#: cppchecker/cppchecksettingsdlgbase.cpp:55 -msgid "C99 standards" +#: DatabaseExplorer/DbViewerPanel.cpp:417 +msgid "Create ERD from DB" msgstr "" -#: cppchecker/cppchecksettingsdlgbase.cpp:56 -msgid "C++11 standards" +#: DatabaseExplorer/DbViewerPanel.cpp:417 +msgid "Create ERD diagram from the database" msgstr "" -#: cppchecker/cppchecksettingsdlgbase.cpp:65 -#: cppchecker/cppchecksettingsdlgbase.cpp:181 -msgid "Tick All" +#: DatabaseExplorer/DbViewerPanel.cpp:419 +msgid "Create classes from DB" msgstr "" -#: cppchecker/cppchecksettingsdlgbase.cpp:66 -#: cppchecker/cppchecksettingsdlgbase.cpp:182 -msgid "Tick all the boxes" +#: DatabaseExplorer/DbViewerPanel.cpp:419 +msgid "Create C++ classes for the database" msgstr "" -#: cppchecker/cppchecksettingsdlgbase.cpp:70 -#: cppchecker/cppchecksettingsdlgbase.cpp:186 -msgid "Untick All" +#: DatabaseExplorer/DbViewerPanel.cpp:423 +msgid "Import database from file" msgstr "" -#: cppchecker/cppchecksettingsdlgbase.cpp:71 -#: cppchecker/cppchecksettingsdlgbase.cpp:187 -msgid "Untick all the boxes" +#: DatabaseExplorer/DbViewerPanel.cpp:424 +msgid "Run SQL commands stored in *.sql file" msgstr "" -#: cppchecker/cppchecksettingsdlgbase.cpp:79 -msgid "Force checking unlimited numbers of configurations" +#: DatabaseExplorer/DbViewerPanel.cpp:426 +msgid "Export database to file" msgstr "" -#: cppchecker/cppchecksettingsdlgbase.cpp:81 -msgid "" -"By default the maximum number of configurations checked per file is 12. If " -"that might not be enough, tick this box." +#: DatabaseExplorer/DbViewerPanel.cpp:427 +msgid "Export database CREATE SQL statements into *.sql file" msgstr "" -#: cppchecker/cppchecksettingsdlgbase.cpp:89 -msgid "Multiple jobs (-j)" +#: DatabaseExplorer/DbViewerPanel.cpp:431 +msgid "Dump data to file" msgstr "" -#: cppchecker/cppchecksettingsdlgbase.cpp:91 -msgid "" -"Tell Cppcheck to use 'n' CPUs. NB this is incompatible with " -"'unusedFunction', and may give false-positive warnings for e.g. 'Unmatched " -"suppression' ." +#: DatabaseExplorer/DbViewerPanel.cpp:432 +msgid "Dump data from database into .sql file" msgstr "" -#: cppchecker/cppchecksettingsdlgbase.cpp:96 -msgid "Number of jobs to try to run in parallel" +#: DatabaseExplorer/DbViewerPanel.cpp:440 +msgid "Open SQL command panel for the table" msgstr "" -#: cppchecker/cppchecksettingsdlgbase.cpp:102 -msgid "Check configuration (turns off other checks)" +#: DatabaseExplorer/DbViewerPanel.cpp:443 +#: DatabaseExplorer/DbViewerPanel.cpp:624 +msgid "Drop table" msgstr "" -#: cppchecker/cppchecksettingsdlgbase.cpp:104 -msgid "" -"Pass --check-config to Cppchecker. This is useful if you get a 'Cppcheck " -"cannot find all the include files' warning: it lets you see which #include " -"aren't being located. However it turns off other checks." +#: DatabaseExplorer/DbViewerPanel.cpp:443 +msgid "Run SQL command to delete the table" msgstr "" -#: cppchecker/cppchecksettingsdlgbase.cpp:109 -msgid "Exclude" +#: DatabaseExplorer/DbViewerPanel.cpp:447 +msgid "Create ERD from Table" msgstr "" -#: cppchecker/cppchecksettingsdlgbase.cpp:114 -msgid "Files to exclude from CppCheck test:" +#: DatabaseExplorer/DbViewerPanel.cpp:447 +msgid "Create ERD diagram from the table" msgstr "" -#: cppchecker/cppchecksettingsdlgbase.cpp:132 -#: cppchecker/cppchecksettingsdlgbase.cpp:276 -#: cppchecker/cppchecksettingsdlgbase.cpp:309 -msgid "Add file(s) to the excluded files list" +#: DatabaseExplorer/DbViewerPanel.cpp:449 +msgid "Create classes from Table" msgstr "" -#: cppchecker/cppchecksettingsdlgbase.cpp:137 -#: cppchecker/cppchecksettingsdlgbase.cpp:281 -#: cppchecker/cppchecksettingsdlgbase.cpp:314 -msgid "Remove the selected file from the excluded file list" +#: DatabaseExplorer/DbViewerPanel.cpp:450 +msgid "Create C++ classes for the table" msgstr "" -#: cppchecker/cppchecksettingsdlgbase.cpp:142 -#: cppchecker/cppchecksettingsdlgbase.cpp:286 -#: cppchecker/cppchecksettingsdlgbase.cpp:319 -msgid "Clear the excluded files list" +#: DatabaseExplorer/DbViewerPanel.cpp:455 +msgid "Open SQL command panel for the view" msgstr "" -#: cppchecker/cppchecksettingsdlgbase.cpp:152 -msgid "Types of warnings NOT to display:" +#: DatabaseExplorer/DbViewerPanel.cpp:458 +#: DatabaseExplorer/DbViewerPanel.cpp:643 +msgid "Drop view" msgstr "" -#: cppchecker/cppchecksettingsdlgbase.cpp:170 -msgid "Add an extra check to suppress. You'll need to know its id..." +#: DatabaseExplorer/DbViewerPanel.cpp:458 +msgid "Run SQL command to delete the view" msgstr "" -#: cppchecker/cppchecksettingsdlgbase.cpp:175 -msgid "Remove the selected suppression from the list" +#: DatabaseExplorer/DbViewerPanel.cpp:483 +msgid "Close connection?" msgstr "" -#: cppchecker/cppchecksettingsdlgbase.cpp:191 -#: cppchecker/cppchecksettingsdlgbase.cpp:237 -msgid "Remember these settings" +#: DatabaseExplorer/DbViewerPanel.cpp:524 +msgid "Database name" msgstr "" -#: cppchecker/cppchecksettingsdlgbase.cpp:193 -msgid "" -"If ticked, these settings will be saved and be applied in the future. " -"Otherwise the warnings will be back when you restart CodeLite, which may be " -"what you should want." +#: DatabaseExplorer/DbViewerPanel.cpp:524 +msgid "Add database" msgstr "" -#: cppchecker/cppchecksettingsdlgbase.cpp:198 -msgid "Include Dirs" +#: DatabaseExplorer/DbViewerPanel.cpp:534 +msgid "Database created successfully" msgstr "" -#: cppchecker/cppchecksettingsdlgbase.cpp:203 -msgid "" -"If the 'Missing Includes' check is enabled, add here any extra\n" -"directories where Cppcheck should search for #includes" +#: DatabaseExplorer/DbViewerPanel.cpp:540 +msgid "Can't create new db in this database engine!" msgstr "" -#: cppchecker/cppchecksettingsdlgbase.cpp:221 -msgid "Add the full path to a directory to search for #includes" +#: DatabaseExplorer/DbViewerPanel.cpp:554 +#, c-format +msgid "Remove database '%s'?" msgstr "" -#: cppchecker/cppchecksettingsdlgbase.cpp:231 -msgid "Suppress warnings about 'system' includes" +#: DatabaseExplorer/DbViewerPanel.cpp:562 +msgid "Database dropped successfully" msgstr "" -#: cppchecker/cppchecksettingsdlgbase.cpp:233 -msgid "" -"If ticked, the 'missingIncludeSystem' suppression is passed to Cppcheck. " -"This stops it complaining about a missing #include , while still " -"detecting a missing #include \"bar\"" +#: DatabaseExplorer/DbViewerPanel.cpp:623 +#, c-format +msgid "Remove table '%s'?" msgstr "" -#: cppchecker/cppchecksettingsdlgbase.cpp:239 -msgid "" -"If ticked, these settings will be saved and be applied in the future. " -"Otherwise the warnings will be back when you restart CodeLite, which may be " -"what you want." +#: DatabaseExplorer/DbViewerPanel.cpp:631 +msgid "Table dropped successfully" msgstr "" -#: cppchecker/cppchecksettingsdlgbase.cpp:244 -msgid "Command-line Definitions" +#: DatabaseExplorer/DbViewerPanel.cpp:642 +#, c-format +msgid "Remove view '%s'?" msgstr "" -#: cppchecker/cppchecksettingsdlgbase.cpp:249 -msgid "" -"Here you can pass 'configurations' to cppcheck\n" -"e.g. \"Only test code branches where FOO is defined\" or\n" -"\"Don't test code branches where the value of FOO is 2\"" +#: DatabaseExplorer/DbViewerPanel.cpp:650 +msgid "View dropped successfully" msgstr "" -#: cppchecker/cppchecksettingsdlgbase.cpp:257 -msgid "Defines to pass e.g. FOO or FOO=1:" +#: DatabaseExplorer/DbViewerPanel.cpp:710 +msgid "Import database from SQL file ..." msgstr "" -#: cppchecker/cppchecksettingsdlgbase.cpp:267 -msgid "" -"Add here definitions of code branches you want to be checked e.g. 'FOO' or " -"'BAR=2'. Each will be passed to Cppcheck as '-DFOO' or -D'BAR=2' (so don't " -"write the -D yourself)." +#: DatabaseExplorer/DbViewerPanel.cpp:728 +msgid "Dump data into file ..." msgstr "" -#: cppchecker/cppchecksettingsdlgbase.cpp:290 -msgid "Undefines to pass:" +#: DatabaseExplorer/DbViewerPanel.cpp:736 +msgid "Data was saved to " msgstr "" -#: cppchecker/cppchecksettingsdlgbase.cpp:300 -msgid "" -"Here you can add undefines (branches you don't want to be checked) e.g. " -"'FOO' or 'BAR=2'. Each will be passed to Cppcheck as '-UFOO' or -" -"U'BAR=2' (so don't write the -U yourself)." +#: DatabaseExplorer/DbViewerPanel.cpp:746 +msgid "Export database..." msgstr "" -#: cppchecker/cppchecksettingsdlgbase.cpp:431 -msgid "Description to show in the dialog" +#: DatabaseExplorer/DbViewerPanel.cpp:794 +#, c-format +msgid "The database has been exported to '%s'." msgstr "" -#: cppchecker/cppchecksettingsdlgbase.cpp:436 -msgid "" -"This is what you'll see in the settings dialog. Put whatever you like here; " -"it's not used internally" +#: DatabaseExplorer/DbViewerPanel.cpp:795 +msgid "wxDbExplorer" msgstr "" -#: cppchecker/cppchecksettingsdlgbase.cpp:443 -msgid "The ID string that cppchecker will recognise" +#: DatabaseExplorer/DbViewerPanel.cpp:800 +msgid "Sorry, requested feature isn't implemented yet. " msgstr "" -#: cppchecker/cppchecksettingsdlgbase.cpp:448 -msgid "" -"Enter here the unique ID string that cppchecker can recognise. Examples are " -"\"operatorEqVarError\" and \"uninitMemberVar\". You can find these by " -"grepping the cppchecker source, or by running cppchecker on your app in a " -"terminal and passing the additional parameter '--xml'." +#: DatabaseExplorer/DbViewerPanel.cpp:800 +msgid "Sorry" msgstr "" -#: cscope/CscopeTabBase.cpp:45 -msgid "Scope" +#: DatabaseExplorer/DbViewerPanel.cpp:803 +#: DatabaseExplorer/DbViewerPanel.cpp:852 +#: DatabaseExplorer/SqlCommandPanel.cpp:280 +#: DatabaseExplorer/ErdCommitWizard.cpp:350 +#: DatabaseExplorer/ErdCommitWizard.cpp:462 +#: DatabaseExplorer/DbSettingDialog.cpp:83 +#: DatabaseExplorer/DbSettingDialog.cpp:110 +#: DatabaseExplorer/DbSettingDialog.cpp:178 +#, c-format +msgid "Error (%d): %s" msgstr "" -#: cscope/CscopeTabBase.cpp:56 -msgid "Search scope:" +#: DatabaseExplorer/DbViewerPanel.cpp:807 +#: DatabaseExplorer/DbViewerPanel.cpp:863 +#: DatabaseExplorer/SqlCommandPanel.cpp:286 +#: DatabaseExplorer/ErdCommitWizard.cpp:473 +#: DatabaseExplorer/DbSettingDialog.cpp:87 +#: DatabaseExplorer/DbSettingDialog.cpp:114 +#: DatabaseExplorer/DbSettingDialog.cpp:182 +msgid "Unknown error." msgstr "" -#: cscope/CscopeTabBase.cpp:65 -msgid "Update Db if stale" +#: DatabaseExplorer/DbViewerPanel.cpp:841 +#: DatabaseExplorer/ErdCommitWizard.cpp:451 +msgid "Successful!" msgstr "" -#: cscope/CscopeTabBase.cpp:67 -msgid "" -"If checked, before executing a command CScope will look for any changed " -"files and, if found, try to update the database. In practice this seems " -"unreliable." +#: DatabaseExplorer/DbViewerPanel.cpp:854 +#: DatabaseExplorer/ErdCommitWizard.cpp:464 +msgid "Fail!" msgstr "" -#: cscope/CscopeTabBase.cpp:71 -msgid "Create reverted Index" +#: DatabaseExplorer/GUI.h:79 DatabaseExplorer/imageexportdialog.cpp:49 +#: DatabaseExplorer/imageexportdialog.cpp:59 +msgid "Export image" msgstr "" -#: cscope/CscopeTabBase.cpp:73 -msgid "Create reverted Index database" +#: DatabaseExplorer/GUI.h:152 +msgid "Select dbAdapter" msgstr "" -#: cscope/CscopeTabBase.cpp:79 -msgid "&Update Database" +#: DatabaseExplorer/GUI.h:257 +msgid "Connection settings" msgstr "" -#: cscope/CscopeTabBase.cpp:80 -msgid "Perform an immediate database update" +#: DatabaseExplorer/GUI.h:315 +msgid "Create foreign key" msgstr "" -#: cscope/CscopeTabBase.cpp:84 -msgid "&Clear Results" +#: DatabaseExplorer/GUI.h:333 +msgid "Database log" msgstr "" -#: cscope/CscopeTabBase.cpp:149 -msgid "CScope executable:" +#: DatabaseExplorer/GUI.h:354 +msgid "View settings" msgstr "" -#: cscope/CscopeTabBase.cpp:154 -msgid "Set the path to cscope executable" +#: DatabaseExplorer/GUI.h:399 +msgid "Class generator dialog" msgstr "" -#: cscope/cscope.cpp:67 cscope/cscope.cpp:81 -msgid "CScope Integration for CodeLite" +#: DatabaseExplorer/GUI.h:416 +msgid "SQL Preview" msgstr "" -#: cscope/cscope.cpp:130 cscope/cscope.cpp:132 cscope/cscope.cpp:144 -#: cscope/cscope.cpp:146 cscope/cscope.cpp:250 -msgid "Find this C symbol" +#: DatabaseExplorer/GUI.h:495 +msgid "Table settings" msgstr "" -#: cscope/cscope.cpp:134 cscope/cscope.cpp:136 cscope/cscope.cpp:148 -#: cscope/cscope.cpp:150 cscope/cscope.cpp:269 cscope/cscope.cpp:270 -msgid "Find functions calling this function" +#: DatabaseExplorer/LogDialog.cpp:32 +msgid " --------------- Log starts at: " msgstr "" -#: cscope/cscope.cpp:138 cscope/cscope.cpp:140 cscope/cscope.cpp:152 -#: cscope/cscope.cpp:154 cscope/cscope.cpp:262 cscope/cscope.cpp:263 -msgid "Find functions called by this function" +#: DatabaseExplorer/databaseexplorer.cpp:94 +#: DatabaseExplorer/databaseexplorer.cpp:139 +msgid "DatabaseExplorer for CodeLite" msgstr "" -#: cscope/cscope.cpp:244 -msgid "Find ..." +#: DatabaseExplorer/databaseexplorer.cpp:114 +#: DatabaseExplorer/databaseexplorer.cpp:123 +#: DatabaseExplorer/databaseexplorer.cpp:228 +msgid "DbExplorer" msgstr "" -#: cscope/cscope.cpp:250 -msgid "Find selected text" +#: DatabaseExplorer/databaseexplorer.cpp:202 +msgid "Database Explorer" msgstr "" -#: cscope/cscope.cpp:255 -msgid "Find this global definition" +#: DatabaseExplorer/databaseexplorer.cpp:235 +msgid "" +"Cross-platform database plugin designed for managing data, ERD and code " +"generation.\n" +"\n" msgstr "" -#: cscope/cscope.cpp:256 -msgid "Find this C global definition" +#: DatabaseExplorer/databaseexplorer.cpp:242 +msgid "2011 - 2012 (C) Tomas Bata University, Zlin, Czech Republic" msgstr "" -#: cscope/cscope.cpp:276 cscope/cscope.cpp:406 -msgid "Find files #&including this filename" +#: DatabaseExplorer/SqlCommandPanel.cpp:119 +msgid "Executing sql..." msgstr "" -#: cscope/cscope.cpp:277 -msgid "Find files #including this filename" +#: DatabaseExplorer/SqlCommandPanel.cpp:156 +msgid "Unknown SQL error." msgstr "" -#: cscope/cscope.cpp:285 -msgid "Create CScope database" +#: DatabaseExplorer/SqlCommandPanel.cpp:272 +#, c-format +msgid "Result: %i rows" msgstr "" -#: cscope/cscope.cpp:286 cscope/cscope.cpp:416 -msgid "Create/Recreate the cscope database" +#: DatabaseExplorer/SqlCommandPanel.cpp:293 +msgid "Cant connect!" msgstr "" -#: cscope/cscope.cpp:292 -msgid "CScope settings" +#: DatabaseExplorer/SqlCommandPanel.cpp:315 +msgid "Chose a file" msgstr "" -#: cscope/cscope.cpp:292 -msgid "Configure cscope" +#: DatabaseExplorer/SqlCommandPanel.cpp:332 +msgid "Insert SELECT SQL template" msgstr "" -#: cscope/cscope.cpp:383 -msgid "&Find this C symbol" +#: DatabaseExplorer/SqlCommandPanel.cpp:332 +msgid "Insert SELECT SQL statement template into editor." +msgstr "" + +#: DatabaseExplorer/SqlCommandPanel.cpp:333 +msgid "Insert INSERT SQL template" msgstr "" -#: cscope/cscope.cpp:387 -msgid "Find this &global definition" +#: DatabaseExplorer/SqlCommandPanel.cpp:333 +msgid "Insert INSERT SQL statement template into editor." msgstr "" -#: cscope/cscope.cpp:392 -msgid "Find functions &called by this function" +#: DatabaseExplorer/SqlCommandPanel.cpp:334 +msgid "Insert UPDATE SQL template" msgstr "" -#: cscope/cscope.cpp:399 -msgid "Fi&nd functions calling this function" +#: DatabaseExplorer/SqlCommandPanel.cpp:334 +msgid "Insert UPDATE SQL statement template into editor." msgstr "" -#: cscope/cscope.cpp:415 -msgid "Create CScope &database" +#: DatabaseExplorer/SqlCommandPanel.cpp:335 +msgid "Insert DELETE SQL template" msgstr "" -#: cscope/cscope.cpp:464 -msgid "Creating file list..." +#: DatabaseExplorer/SqlCommandPanel.cpp:335 +msgid "Insert DELETE SQL statement template into editor." msgstr "" -#: cscope/cscope.cpp:523 -msgid "I can't find 'cscope' anywhere. Please check if it's installed." +#: DatabaseExplorer/ErdCommitWizard.cpp:75 +msgid "Wizard for creating db structure\n" msgstr "" -#: cscope/cscope.cpp:524 +#: DatabaseExplorer/ErdCommitWizard.cpp:76 msgid "" -"Or tell me where it can be found, from the menu: 'Plugins | CScope | " -"Settings'" +"on ERD diagram base.\n" +"\n" msgstr "" -#: cscope/cscope.cpp:525 -msgid "CScope not found" +#: DatabaseExplorer/ErdCommitWizard.cpp:77 +msgid "All tables which really exist in\n" msgstr "" -#: cscope/cscope.cpp:584 -msgid "cscope results for: find global definition of '" +#: DatabaseExplorer/ErdCommitWizard.cpp:78 +msgid "the database, will be deleted during\n" msgstr "" -#: cscope/cscope.cpp:611 -msgid "cscope results for: functions called by '" +#: DatabaseExplorer/ErdCommitWizard.cpp:79 +msgid "this process, but you can do a backup\n" msgstr "" -#: cscope/cscope.cpp:638 -msgid "cscope results for: functions calling '" +#: DatabaseExplorer/ErdCommitWizard.cpp:80 +msgid "in the second step." msgstr "" -#: cscope/cscope.cpp:680 -msgid "cscope results for: files that #include '" +#: DatabaseExplorer/ErdCommitWizard.cpp:99 +msgid "Select target database:" msgstr "" -#: cscope/cscope.cpp:704 -msgid "Recreated inverted CScope DB" +#: DatabaseExplorer/ErdCommitWizard.cpp:160 +msgid "The first time you have to select a target database!" msgstr "" -#: cscope/cscope.cpp:707 -msgid "Recreated CScope DB" +#: DatabaseExplorer/ErdCommitWizard.cpp:174 +msgid "Backup data file" msgstr "" -#: cscope/cscope.cpp:795 -msgid "Enter the symbol to search for:" +#: DatabaseExplorer/ErdCommitWizard.cpp:175 +msgid "data.sql" msgstr "" -#: cscope/cscope.cpp:796 -msgid "cscope: find symbol" +#: DatabaseExplorer/ErdCommitWizard.cpp:178 +msgid "Backup database structure" msgstr "" -#: cscope/cscopedbbuilderthread.cpp:51 -msgid "Executing cscope..." +#: DatabaseExplorer/ErdCommitWizard.cpp:180 +msgid "Backup structure file" msgstr "" -#: cscope/cscopedbbuilderthread.cpp:59 -msgid "Parsing results..." +#: DatabaseExplorer/ErdCommitWizard.cpp:181 +msgid "structure.sql" msgstr "" -#: cscope/cscopetab.cpp:119 -msgid "Line: " +#: DatabaseExplorer/ErdCommitWizard.cpp:185 +msgid "Backup!" msgstr "" -#: git/GitConsole.cpp:211 -msgid "Reset" +#: DatabaseExplorer/ErdCommitWizard.cpp:199 +msgid "" +"Backing up database data before changing the structure is really good idea. " +"Do you want to continue without doing so?" msgstr "" -#: git/GitConsole.cpp:211 git/git.cpp:865 -msgid "Reset repository" +#: DatabaseExplorer/ErdCommitWizard.cpp:199 +msgid "Backup" msgstr "" -#: git/GitConsole.cpp:214 -msgid "Pull" +#: DatabaseExplorer/ErdCommitWizard.cpp:222 +msgid "Data saved! " msgstr "" -#: git/GitConsole.cpp:214 git/git.cpp:202 git/git.cpp:2366 -msgid "Pull remote changes" +#: DatabaseExplorer/ErdCommitWizard.cpp:268 +msgid "Structure saved!" msgstr "" -#: git/GitConsole.cpp:216 git/git.cpp:207 -msgid "Commit local changes" +#: DatabaseExplorer/ErdCommitWizard.cpp:294 +msgid "Write log:" msgstr "" -#: git/GitConsole.cpp:217 git/git.cpp:2374 -msgid "Push" +#: DatabaseExplorer/ErdCommitWizard.cpp:301 +msgid "Write !!" msgstr "" -#: git/GitConsole.cpp:217 -msgid "Push local changes" +#: DatabaseExplorer/ErdCommitWizard.cpp:302 +msgid "Show SQL" msgstr "" -#: git/GitConsole.cpp:218 git/git.cpp:1610 git/git.cpp:1614 git/git.cpp:1618 -msgid "Rebase" +#: DatabaseExplorer/ErdCommitWizard.cpp:341 +msgid "Data structure written successfully!" msgstr "" -#: git/GitConsole.cpp:221 -msgid "Diffs" +#: DatabaseExplorer/ErdCommitWizard.cpp:357 +msgid "Unknown error!" msgstr "" -#: git/GitConsole.cpp:221 git/git.cpp:240 -msgid "Show current diffs" +#: DatabaseExplorer/ErdCommitWizard.cpp:363 +msgid "Would you like to continue without writing the database structure?" msgstr "" -#: git/GitConsole.cpp:223 -msgid "Browse commit history" +#: DatabaseExplorer/ErdCommitWizard.cpp:363 +msgid "Question" msgstr "" -#: git/GitConsole.cpp:227 -msgid "Open MSYS Git" +#: DatabaseExplorer/ErdCommitWizard.cpp:379 +msgid "Writing structure ended.\n" msgstr "" -#: git/GitConsole.cpp:229 -msgid "Open MSYS Git at the current file location" +#: DatabaseExplorer/ErdCommitWizard.cpp:397 +msgid "File for data restore:" msgstr "" -#: git/GitConsole.cpp:347 -msgid "Modified" +#: DatabaseExplorer/ErdCommitWizard.cpp:403 +msgid "Restore log:" msgstr "" -#: git/GitConsole.cpp:355 -msgid "Deleted Files" +#: DatabaseExplorer/ErdCommitWizard.cpp:409 +msgid "Restore" msgstr "" -#: git/GitConsole.cpp:359 -msgid "Untracked" +#: DatabaseExplorer/GUI.cpp:29 +msgid "Output file:" msgstr "" -#: git/GitConsole.cpp:456 git/git.cpp:2324 git/gitui.cpp:1209 -msgid "Add file" +#: DatabaseExplorer/GUI.cpp:49 +msgid "Scale" msgstr "" -#: git/GitConsole.cpp:457 git/git.cpp:2328 -msgid "Reset file" +#: DatabaseExplorer/GUI.cpp:53 +msgid "Current canvas scale" msgstr "" -#: git/git.cpp:210 -msgid "Push local commits" +#: DatabaseExplorer/GUI.cpp:62 +msgid "Custom scale" msgstr "" -#: git/git.cpp:215 -msgid "Reset current repository" +#: DatabaseExplorer/GUI.cpp:75 +msgid "Export canvas background" msgstr "" -#: git/git.cpp:219 -msgid "Create local branch" +#: DatabaseExplorer/GUI.cpp:168 +msgid "Load..." msgstr "" -#: git/git.cpp:223 -msgid "Switch local branch" +#: DatabaseExplorer/GUI.cpp:170 +msgid "Save..." msgstr "" -#: git/git.cpp:229 git/git.cpp:230 -msgid "Switch remote branch" +#: DatabaseExplorer/GUI.cpp:172 +msgid "Execute SQL" msgstr "" -#: git/git.cpp:236 -msgid "List commits" +#: DatabaseExplorer/GUI.cpp:176 +msgid "Insert template" msgstr "" -#: git/git.cpp:240 -msgid "Show diffs" +#: DatabaseExplorer/GUI.cpp:182 +msgid "SQL History" msgstr "" -#: git/git.cpp:249 -msgid "List modified files" +#: DatabaseExplorer/GUI.cpp:259 +msgid "Result:" msgstr "" -#: git/git.cpp:253 -msgid "Start gitk" +#: DatabaseExplorer/GUI.cpp:331 DatabaseExplorer/GUI.cpp:464 +msgid "MySql" msgstr "" -#: git/git.cpp:258 -msgid "Clean git database (garbage collection)" +#: DatabaseExplorer/GUI.cpp:335 +msgid "SQLite" msgstr "" -#: git/git.cpp:263 -msgid "Refresh file lists" +#: DatabaseExplorer/GUI.cpp:341 DatabaseExplorer/GUI.cpp:532 +msgid "PostgreSQL" msgstr "" -#: git/git.cpp:263 -msgid "Refresh git file list" +#: DatabaseExplorer/GUI.cpp:437 +msgid "Sqlite" msgstr "" -#: git/git.cpp:268 -msgid "GIT plugin settings" +#: DatabaseExplorer/GUI.cpp:450 +msgid "Database file:" msgstr "" -#: git/git.cpp:273 git/git.cpp:274 -msgid "Set GIT repository path" +#: DatabaseExplorer/GUI.cpp:476 +msgid "Connection name:" msgstr "" -#: git/git.cpp:279 -msgid "Clone a git repository" +#: DatabaseExplorer/GUI.cpp:481 +msgid "Name for this connection" msgstr "" -#: git/git.cpp:578 -msgid "Select git root directory" +#: DatabaseExplorer/GUI.cpp:489 DatabaseExplorer/GUI.cpp:556 +msgid "Server:" msgstr "" -#: git/git.cpp:686 git/git.cpp:716 -msgid "Modified files found! Commit them first before switching branches..." +#: DatabaseExplorer/GUI.cpp:490 DatabaseExplorer/GUI.cpp:495 +msgid "Host name / IP of the server hosting the MySQL server" msgstr "" -#: git/git.cpp:694 -msgid "No other local branches found." +#: DatabaseExplorer/GUI.cpp:502 DatabaseExplorer/GUI.cpp:578 +msgid "User name:" msgstr "" -#: git/git.cpp:698 -msgid "Select branch (current is " +#: DatabaseExplorer/GUI.cpp:507 +msgid "Database user name" msgstr "" -#: git/git.cpp:701 -msgid "Switch branch" +#: DatabaseExplorer/GUI.cpp:519 +msgid "Database password" msgstr "" -#: git/git.cpp:723 -msgid "No remote branches found." +#: DatabaseExplorer/GUI.cpp:600 +msgid "Default database:" msgstr "" -#: git/git.cpp:726 -msgid "Select remote branch (current is " +#: DatabaseExplorer/GUI.cpp:752 +msgid "Referencing table:" msgstr "" -#: git/git.cpp:729 -msgid "Switch to remote branch" +#: DatabaseExplorer/GUI.cpp:763 DatabaseExplorer/GUI.cpp:820 +msgid "Column:" msgstr "" -#: git/git.cpp:736 git/git.cpp:751 -msgid "Branch name" +#: DatabaseExplorer/GUI.cpp:777 +msgid "N :1" msgstr "" -#: git/git.cpp:736 -msgid "Specify the name for the local branch" +#: DatabaseExplorer/GUI.cpp:778 +msgid "N : M" msgstr "" -#: git/git.cpp:751 -msgid "Specify the name of the new branch" +#: DatabaseExplorer/GUI.cpp:779 +msgid "Relation" msgstr "" -#: git/git.cpp:757 -msgid "Switch to new branch" +#: DatabaseExplorer/GUI.cpp:785 DatabaseExplorer/GUI.cpp:795 +#: DatabaseExplorer/GUI.cpp:1416 DatabaseExplorer/GUI.cpp:1426 +msgid "restrict" msgstr "" -#: git/git.cpp:757 -msgid "Switch to new branch once it is created?" +#: DatabaseExplorer/GUI.cpp:786 DatabaseExplorer/GUI.cpp:796 +#: DatabaseExplorer/GUI.cpp:1417 DatabaseExplorer/GUI.cpp:1427 +msgid "cascade" msgstr "" -#: git/git.cpp:810 -msgid "No remotes found, can't push!" +#: DatabaseExplorer/GUI.cpp:787 DatabaseExplorer/GUI.cpp:797 +#: DatabaseExplorer/GUI.cpp:1418 DatabaseExplorer/GUI.cpp:1428 +msgid "set null" msgstr "" -#: git/git.cpp:814 -msgid "Push all local commits?" +#: DatabaseExplorer/GUI.cpp:788 DatabaseExplorer/GUI.cpp:798 +#: DatabaseExplorer/GUI.cpp:1419 DatabaseExplorer/GUI.cpp:1429 +msgid "no action" msgstr "" -#: git/git.cpp:818 -msgid "Select remote" +#: DatabaseExplorer/GUI.cpp:789 +msgid "OnDelete" msgstr "" -#: git/git.cpp:818 -msgid "Select remote to push to." +#: DatabaseExplorer/GUI.cpp:799 +msgid "OnUpdate" msgstr "" -#: git/git.cpp:840 -msgid "Save all changes and pull remote changes?" +#: DatabaseExplorer/GUI.cpp:809 +msgid "Referenced table:" msgstr "" -#: git/git.cpp:864 -msgid "Are you sure that you want to discard all local changes?" +#: DatabaseExplorer/GUI.cpp:959 +msgid "View name:" msgstr "" -#: git/git.cpp:901 -msgid "Jump to modifed file" +#: DatabaseExplorer/GUI.cpp:1076 +msgid "Class postfix:" msgstr "" -#: git/git.cpp:901 -msgid "Modifed files" +#: DatabaseExplorer/GUI.cpp:1087 +msgid "Folder:" msgstr "" -#: git/git.cpp:1315 -msgid "Colouring tracked git files..." +#: DatabaseExplorer/GUI.cpp:1095 +msgid "Virtual folder:" msgstr "" -#: git/git.cpp:1320 -msgid "Colouring modifed git files..." +#: DatabaseExplorer/GUI.cpp:1131 +msgid "Log:" msgstr "" -#: git/git.cpp:1402 -msgid "Do you want to start importing new / updating changed files?" +#: DatabaseExplorer/GUI.cpp:1292 +msgid "Table name:" msgstr "" -#: git/git.cpp:1403 -msgid "Import files" +#: DatabaseExplorer/GUI.cpp:1314 +msgid "Columns:" msgstr "" -#: git/git.cpp:1410 -msgid "Error obtaining project" +#: DatabaseExplorer/GUI.cpp:1323 +msgid "Add column" msgstr "" -#: git/git.cpp:1440 -msgid "Checking file " +#: DatabaseExplorer/GUI.cpp:1323 +msgid "Add new column" msgstr "" -#: git/git.cpp:1466 -msgid "Adding files..." +#: DatabaseExplorer/GUI.cpp:1325 +msgid "Remove column" msgstr "" -#: git/git.cpp:1516 -msgid "Finished adding files..." +#: DatabaseExplorer/GUI.cpp:1325 +msgid "Remove selected column" msgstr "" -#: git/git.cpp:1541 -msgid "" -"There was a problem while performing a git action.\n" -"Last command output:\n" +#: DatabaseExplorer/GUI.cpp:1329 +msgid "Move column up" msgstr "" -#: git/git.cpp:1544 -msgid "git error" +#: DatabaseExplorer/GUI.cpp:1329 +msgid "Move selected column up" msgstr "" -#: git/git.cpp:1552 -msgid "created" +#: DatabaseExplorer/GUI.cpp:1331 +msgid "Move column down" msgstr "" -#: git/git.cpp:1602 -msgid "Nothing to pull, already up-to-date." +#: DatabaseExplorer/GUI.cpp:1331 +msgid "Move selected column down" msgstr "" -#: git/git.cpp:1610 -msgid "Merged after pull. Rebase?" +#: DatabaseExplorer/GUI.cpp:1338 +msgid "Column name" msgstr "" -#: git/git.cpp:1614 -msgid "Rebase with what branch?" +#: DatabaseExplorer/GUI.cpp:1341 +msgid "Not null" msgstr "" -#: git/git.cpp:1618 -msgid "Rebase with " +#: DatabaseExplorer/GUI.cpp:1342 +msgid "Autoincrement" msgstr "" -#: git/git.cpp:1632 -msgid "Conflict found during merge" +#: DatabaseExplorer/GUI.cpp:1343 +msgid "Primary key" msgstr "" -#: git/git.cpp:1733 -msgid "Are you sure you want to continue connecting" +#: DatabaseExplorer/GUI.cpp:1350 +msgid "Foreign keys:" msgstr "" -#: git/git.cpp:2259 git/git.cpp:2260 -msgid "Git Diff: " +#: DatabaseExplorer/GUI.cpp:1359 +msgid "Add foreign key" msgstr "" -#: git/git.cpp:2274 -msgid "Save all changes and rebase?" +#: DatabaseExplorer/GUI.cpp:1359 +msgid "Add new foreign key" msgstr "" -#: git/git.cpp:2332 -msgid "Show file diff" +#: DatabaseExplorer/GUI.cpp:1361 +msgid "Remove foreign key" msgstr "" -#: git/git.cpp:2355 git/git.cpp:2563 -msgid "Don't know how to start MSYSGit..." +#: DatabaseExplorer/GUI.cpp:1361 +msgid "Remove selected foreign key" msgstr "" -#: git/git.cpp:2380 -msgid "Stash" +#: DatabaseExplorer/GUI.cpp:1376 +msgid "Key name" msgstr "" -#: git/git.cpp:2384 -msgid "Stash pop" +#: DatabaseExplorer/GUI.cpp:1388 +msgid "Local column:" msgstr "" -#: git/git.cpp:2390 -msgid "Open git bash" +#: DatabaseExplorer/GUI.cpp:1397 +msgid "Ref. table:" msgstr "" -#: git/git.cpp:2494 -msgid "No commit message given, aborting." +#: DatabaseExplorer/GUI.cpp:1406 +msgid "Ref. column:" msgstr "" -#: git/gitCommitDlg.cpp:143 -msgid "Git requires a commit message" +#: DatabaseExplorer/GUI.cpp:1420 +msgid "On update" msgstr "" -#: git/gitCommitListDlg.cpp:188 -msgid "Copy commit hash to clipboard" +#: DatabaseExplorer/GUI.cpp:1430 +msgid "On delete" msgstr "" -#: git/gitCommitListDlg.cpp:189 -msgid "Revert this commit" +#: DatabaseExplorer/imageexportdialog.cpp:49 +msgid "Image path cannot be empty." msgstr "" -#: git/gitui.cpp:56 -msgid "Path to git executable:" +#: DatabaseExplorer/imageexportdialog.cpp:59 +msgid "Canvas scale must be decimal value." msgstr "" -#: git/gitui.cpp:64 -msgid "Path to gitk executable:" +#: DatabaseExplorer/imageexportdialog.cpp:79 +msgid "Export ERD to image..." msgstr "" -#: git/gitui.cpp:73 -msgid "Configuration" +#: DatabaseExplorer/ClassGenerateDialog.cpp:126 +msgid "Virtual name cannot be empty" msgstr "" -#: git/gitui.cpp:85 -msgid "Global user name:" +#: DatabaseExplorer/ClassGenerateDialog.cpp:146 +#: DatabaseExplorer/ClassGenerateDialog.cpp:153 +msgid "......... Generated successfully!\n" msgstr "" -#: git/gitui.cpp:90 -msgid "Set the global user name (this name will tell git who you are)" +#: DatabaseExplorer/ClassGenerateDialog.cpp:147 +#: DatabaseExplorer/ClassGenerateDialog.cpp:154 +msgid "......... Error!!!\n" msgstr "" -#: git/gitui.cpp:97 -msgid "Global email:" +#: DatabaseExplorer/ClassGenerateDialog.cpp:193 +#, c-format +msgid "Table %s has no primary key defined!\n" msgstr "" -#: git/gitui.cpp:102 -msgid "Set the current repository email" +#: DatabaseExplorer/FrameCanvas.cpp:139 +msgid "New view" msgstr "" -#: git/gitui.cpp:109 -msgid "Local repository user name:" +#: DatabaseExplorer/FrameCanvas.cpp:178 +msgid "Add new ERD table" msgstr "" -#: git/gitui.cpp:114 -msgid "" -"Set the current repository user name (this name will tell git who you are).\n" -"If this field letf empty, the global one is used" +#: DatabaseExplorer/FrameCanvas.cpp:179 +msgid "Add new ERD view" msgstr "" -#: git/gitui.cpp:121 -msgid "Local repository email:" +#: DatabaseExplorer/FrameCanvas.cpp:182 +msgid "Copy diagram SQL to the clipboard" msgstr "" -#: git/gitui.cpp:126 -msgid "" -"Set the current repository email\n" -"If this field letf empty, the global one is used" +#: DatabaseExplorer/FrameCanvas.cpp:192 +msgid "Create foreign key for table" msgstr "" -#: git/gitui.cpp:139 -msgid "Show Terminal" +#: DatabaseExplorer/FrameCanvas.cpp:193 +msgid "Create view for table" msgstr "" -#: git/gitui.cpp:141 -msgid "" -"Mainly useful for Windows when the password\n" -"prompt is not accessible via the UI" +#: DatabaseExplorer/FrameCanvas.cpp:195 +msgid "Copy table SQL to the clipboard" msgstr "" -#: git/gitui.cpp:147 -msgid "Tick this option to enable a verbose logging of git" +#: DatabaseExplorer/FrameCanvas.cpp:214 +msgid "newcol" msgstr "" -#: git/gitui.cpp:151 -msgid "Colour modified items in the workspace view" +#: DatabaseExplorer/FrameCanvas.cpp:220 +msgid "Add drop table statement?" msgstr "" -#: git/gitui.cpp:153 -msgid "Colour modified items in the workspace view tree" +#: DatabaseExplorer/FrameCanvas.cpp:220 DatabaseExplorer/FrameCanvas.cpp:227 +#: DatabaseExplorer/FrameCanvas.cpp:301 +msgid "SQL export" msgstr "" -#: git/gitui.cpp:225 -msgid "Toggle Check All" +#: DatabaseExplorer/FrameCanvas.cpp:227 DatabaseExplorer/FrameCanvas.cpp:301 +msgid "SQL command has been copied to the clipboard." msgstr "" -#: git/gitui.cpp:229 -msgid "Recent Commits:" +#: DatabaseExplorer/DbSettingDialog.cpp:91 +msgid "MySQL connection is not supported." msgstr "" -#: git/gitui.cpp:318 -msgid "Type your commit message here" +#: DatabaseExplorer/DbSettingDialog.cpp:118 +msgid "SQLite connection is not supported." msgstr "" -#: git/gitui.cpp:357 -msgid "Amend the previous commit" +#: DatabaseExplorer/DbSettingDialog.cpp:186 +msgid "PostgreSQL connection is not supported." msgstr "" -#: git/gitui.cpp:359 -msgid "" -"The 'git commit --amend' command is a convenient way to fix up the most " -"recent commit. It lets you combine staged changes with the previous commit " -"instead of committing it as an entirely new snapshot. It can also be used to " -"simply edit the previous commit message without changing its snapshot" +#: DatabaseExplorer/AdapterSelectDlg.cpp:42 +msgid "MySQL ERD" msgstr "" -#: git/gitui.cpp:432 -msgid "" -"Search the commit list\n" -"The search is performed on all columns" +#: DatabaseExplorer/AdapterSelectDlg.cpp:45 +msgid "MySQL ERD is not supported." msgstr "" -#: git/gitui.cpp:443 -msgid "Author" +#: DatabaseExplorer/AdapterSelectDlg.cpp:50 +msgid "SQLite ERD" msgstr "" -#: git/gitui.cpp:444 -msgid "Date" +#: DatabaseExplorer/AdapterSelectDlg.cpp:53 +msgid "SQLite ERD is not supported." msgstr "" -#: git/gitui.cpp:445 -msgid "Subject" +#: DatabaseExplorer/AdapterSelectDlg.cpp:58 +msgid "PostgreSQL ERD" msgstr "" -#: git/gitui.cpp:474 git/gitui.cpp:650 -msgid "Modified files:" +#: DatabaseExplorer/AdapterSelectDlg.cpp:61 +msgid "PostgreSQL ERD is not supported." msgstr "" -#: git/gitui.cpp:727 -msgid "Clone URL:" +#: cppchecker/cppcheckreportbasepage.cpp:80 +msgid "Clear the CppCheck report view" msgstr "" -#: git/gitui.cpp:732 -msgid "git URL to clone" +#: cppchecker/cppcheckreportbasepage.cpp:86 +msgid "Stop the curreny analysis" msgstr "" -#: git/gitui.cpp:739 -msgid "Target Directory:" +#: cppchecker/cppcheckreportbasepage.cpp:95 +msgid "Move to previous error" msgstr "" -#: git/gitui.cpp:744 -msgid "Clone the sources into this target directory" +#: cppchecker/cppcheckreportbasepage.cpp:100 +msgid "Move to next error" msgstr "" -#: git/gitui.cpp:1140 -msgid "Select patch file" +#: cppchecker/cppchecksettingsdlgbase.cpp:35 +msgid "Checks" msgstr "" -#: git/gitui.cpp:1145 -msgid "Patch file to apply" +#: cppchecker/cppchecksettingsdlgbase.cpp:40 +msgid "Run the following extra checks:" msgstr "" -#: git/gitui.cpp:1150 -msgid "git apply additional flags to use:" +#: cppchecker/cppchecksettingsdlgbase.cpp:50 +msgid "Performance" msgstr "" -#: git/gitui.cpp:1155 -msgid "" -"By default, codelite uses the command 'git apply --whitespace=nowarn --" -"ignore-whitespace' for applying patch files.\n" -"Set here an extra flags to use with this command, e.g.:\n" -"\n" -"--reverse\n" -"\n" -"See the git manual for more options" +#: cppchecker/cppchecksettingsdlgbase.cpp:51 +msgid "Portability" msgstr "" -#: git/gitui.cpp:1205 -msgid "Terminate git process" +#: cppchecker/cppchecksettingsdlgbase.cpp:52 +msgid "Unused functions" msgstr "" -#: git/gitui.cpp:1205 -msgid "m_toolKill" +#: cppchecker/cppchecksettingsdlgbase.cpp:53 +#: cppchecker/cppchecksettingsdlg.cpp:367 +msgid "Missing includes" msgstr "" -#: git/gitui.cpp:1211 -msgid "Reset File" +#: cppchecker/cppchecksettingsdlgbase.cpp:54 +msgid "Output informative messages" msgstr "" -#: git/gitui.cpp:1233 -msgid "File View" +#: cppchecker/cppchecksettingsdlgbase.cpp:55 +msgid "Posix standards" msgstr "" -#: sdk/databaselayer/src/dblayer/DatabaseLayer.cpp:30 -msgid "ResultSet NOT closed and cleaned up by the DatabaseLayer dtor" +#: cppchecker/cppchecksettingsdlgbase.cpp:56 +msgid "C99 standards" msgstr "" -#: sdk/databaselayer/src/dblayer/DatabaseLayer.cpp:44 -msgid "PreparedStatement NOT closed and cleaned up by the DatabaseLayer dtor" +#: cppchecker/cppchecksettingsdlgbase.cpp:57 +msgid "C++11 standards" msgstr "" -#: sdk/databaselayer/src/dblayer/DatabaseLayer.cpp:158 -#: sdk/databaselayer/src/dblayer/DatabaseLayer.cpp:242 -#: sdk/databaselayer/src/dblayer/DatabaseLayer.cpp:326 -#: sdk/databaselayer/src/dblayer/DatabaseLayer.cpp:410 -#: sdk/databaselayer/src/dblayer/DatabaseLayer.cpp:494 -#: sdk/databaselayer/src/dblayer/DatabaseLayer.cpp:578 -#: sdk/databaselayer/src/dblayer/DatabaseLayer.cpp:662 -#: sdk/databaselayer/src/dblayer/DatabaseLayer.cpp:732 -#: sdk/databaselayer/src/dblayer/DatabaseLayer.cpp:785 -#: sdk/databaselayer/src/dblayer/DatabaseLayer.cpp:838 -#: sdk/databaselayer/src/dblayer/DatabaseLayer.cpp:892 -msgid "string" +#: cppchecker/cppchecksettingsdlgbase.cpp:66 +#: cppchecker/cppchecksettingsdlgbase.cpp:182 +msgid "Tick All" msgstr "" -#: sdk/databaselayer/src/dblayer/DatabaseQueryParser.cpp:6 -#: sdk/databaselayer/src/dblayer/OTLDatabaseLayer.cpp:73 -#: sdk/databaselayer/src/dblayer/OTLDatabaseLayer.cpp:81 -msgid ";" +#: cppchecker/cppchecksettingsdlgbase.cpp:67 +#: cppchecker/cppchecksettingsdlgbase.cpp:183 +msgid "Tick all the boxes" msgstr "" -#: sdk/databaselayer/src/dblayer/FirebirdDatabaseLayer.cpp:36 -#: sdk/databaselayer/src/dblayer/FirebirdDatabaseLayer.cpp:59 -#: sdk/databaselayer/src/dblayer/MysqlDatabaseLayer.cpp:28 -#: sdk/databaselayer/src/dblayer/MysqlDatabaseLayer.cpp:49 -#: sdk/databaselayer/src/dblayer/MysqlDatabaseLayer.cpp:90 -#: sdk/databaselayer/src/dblayer/PostgresDatabaseLayer.cpp:23 -#: sdk/databaselayer/src/dblayer/PostgresDatabaseLayer.cpp:43 -#: sdk/databaselayer/src/dblayer/PostgresDatabaseLayer.cpp:85 -#: sdk/databaselayer/src/dblayer/PostgresDatabaseLayer.cpp:160 -#: sdk/databaselayer/src/dblayer/PostgresDatabaseLayer.cpp:218 -msgid "localhost" +#: cppchecker/cppchecksettingsdlgbase.cpp:71 +#: cppchecker/cppchecksettingsdlgbase.cpp:187 +msgid "Untick All" msgstr "" -#: sdk/databaselayer/src/dblayer/FirebirdDatabaseLayer.cpp:198 -#: sdk/databaselayer/src/dblayer/MysqlDatabaseLayer.cpp:189 -#: sdk/databaselayer/src/dblayer/SqliteDatabaseLayer.cpp:18 -#: sdk/databaselayer/src/dblayer/SqliteDatabaseLayer.cpp:26 -#: sdk/databaselayer/src/dblayer/TdsDatabaseLayer.cpp:87 -#: sdk/databaselayer/src/dblayer/TdsDatabaseLayer.cpp:97 -msgid "UTF-8" +#: cppchecker/cppchecksettingsdlgbase.cpp:72 +#: cppchecker/cppchecksettingsdlgbase.cpp:188 +msgid "Untick all the boxes" msgstr "" -#: sdk/databaselayer/src/dblayer/FirebirdDatabaseLayer.cpp:238 -#: sdk/databaselayer/src/dblayer/MysqlDatabaseLayer.cpp:206 -msgid ":" +#: cppchecker/cppchecksettingsdlgbase.cpp:80 +msgid "Force checking unlimited numbers of configurations" msgstr "" -#: sdk/databaselayer/src/dblayer/FirebirdDatabaseLayer.cpp:394 -#: sdk/databaselayer/src/dblayer/FirebirdDatabaseLayer.cpp:471 -msgid "Unable to start transaction" +#: cppchecker/cppchecksettingsdlgbase.cpp:82 +msgid "" +"By default the maximum number of configurations checked per file is 12. If " +"that might not be enough, tick this box." msgstr "" -#: sdk/databaselayer/src/dblayer/FirebirdDatabaseLayer.cpp:439 -#: sdk/databaselayer/src/dblayer/FirebirdDatabaseLayer.cpp:659 -msgid "Database handle is NULL" +#: cppchecker/cppchecksettingsdlgbase.cpp:90 +msgid "Multiple jobs (-j)" msgstr "" -#: sdk/databaselayer/src/dblayer/FirebirdDatabaseLayer.cpp:697 +#: cppchecker/cppchecksettingsdlgbase.cpp:92 msgid "" -"SELECT COUNT(*) FROM RDB$RELATIONS WHERE RDB$SYSTEM_FLAG=0 AND RDB$VIEW_BLR " -"IS NULL AND RDB$RELATION_NAME=?;" +"Tell Cppcheck to use 'n' CPUs. NB this is incompatible with " +"'unusedFunction', and may give false-positive warnings for e.g. 'Unmatched " +"suppression' ." msgstr "" -#: sdk/databaselayer/src/dblayer/FirebirdDatabaseLayer.cpp:763 -msgid "" -"SELECT COUNT(*) FROM RDB$RELATIONS WHERE RDB$SYSTEM_FLAG=0 AND RDB$VIEW_BLR " -"IS NOT NULL AND RDB$RELATION_NAME=?;" +#: cppchecker/cppchecksettingsdlgbase.cpp:97 +msgid "Number of jobs to try to run in parallel" msgstr "" -#: sdk/databaselayer/src/dblayer/FirebirdDatabaseLayer.cpp:824 -msgid "" -"SELECT RDB$RELATION_NAME FROM RDB$RELATIONS WHERE RDB$SYSTEM_FLAG=0 AND RDB" -"$VIEW_BLR IS NULL" +#: cppchecker/cppchecksettingsdlgbase.cpp:103 +msgid "Check configuration (turns off other checks)" msgstr "" -#: sdk/databaselayer/src/dblayer/FirebirdDatabaseLayer.cpp:863 +#: cppchecker/cppchecksettingsdlgbase.cpp:105 msgid "" -"SELECT RDB$RELATION_NAME FROM RDB$RELATIONS WHERE RDB$SYSTEM_FLAG=0 AND RDB" -"$VIEW_BLR IS NOT NULL" +"Pass --check-config to Cppchecker. This is useful if you get a 'Cppcheck " +"cannot find all the include files' warning: it lets you see which #include " +"aren't being located. However it turns off other checks." msgstr "" -#: sdk/databaselayer/src/dblayer/FirebirdDatabaseLayer.cpp:907 -msgid "" -"SELECT RDB$FIELD_NAME FROM RDB$RELATION_FIELDS WHERE RDB$RELATION_NAME=?;" +#: cppchecker/cppchecksettingsdlgbase.cpp:110 +msgid "Exclude" msgstr "" -#: sdk/databaselayer/src/dblayer/FirebirdParameter.cpp:75 -msgid "Parameter type is not compatible with parameter of type double\n" +#: cppchecker/cppchecksettingsdlgbase.cpp:115 +msgid "Files to exclude from CppCheck test:" msgstr "" -#: sdk/databaselayer/src/dblayer/FirebirdParameterCollection.cpp:162 -msgid "Error allocating space for unknown parameter type\n" +#: cppchecker/cppchecksettingsdlgbase.cpp:133 +#: cppchecker/cppchecksettingsdlgbase.cpp:277 +#: cppchecker/cppchecksettingsdlgbase.cpp:310 +msgid "Add file(s) to the excluded files list" msgstr "" -#: sdk/databaselayer/src/dblayer/FirebirdParameterCollection.cpp:215 -msgid "Error deleting unknown parameter type\n" +#: cppchecker/cppchecksettingsdlgbase.cpp:138 +#: cppchecker/cppchecksettingsdlgbase.cpp:282 +#: cppchecker/cppchecksettingsdlgbase.cpp:315 +msgid "Remove the selected file from the excluded file list" msgstr "" -#: sdk/databaselayer/src/dblayer/FirebirdPreparedStatement.cpp:79 -msgid "No SQL Statements found" +#: cppchecker/cppchecksettingsdlgbase.cpp:143 +#: cppchecker/cppchecksettingsdlgbase.cpp:287 +#: cppchecker/cppchecksettingsdlgbase.cpp:320 +msgid "Clear the excluded files list" msgstr "" -#: sdk/databaselayer/src/dblayer/FirebirdPreparedStatement.cpp:415 -msgid "Invalid Prepared Statement Parameter" +#: cppchecker/cppchecksettingsdlgbase.cpp:153 +msgid "Types of warnings NOT to display:" msgstr "" -#: sdk/databaselayer/src/dblayer/FirebirdPreparedStatement.cpp:422 -msgid "FirebirdPreparesStatement::InterpretErrorCodes()\n" +#: cppchecker/cppchecksettingsdlgbase.cpp:171 +msgid "Add an extra check to suppress. You'll need to know its id..." msgstr "" -#: sdk/databaselayer/src/dblayer/FirebirdPreparedStatementWrapper.cpp:43 -msgid "Error calling isc_dsql_free_statement" +#: cppchecker/cppchecksettingsdlgbase.cpp:176 +msgid "Remove the selected suppression from the list" msgstr "" -#: sdk/databaselayer/src/dblayer/FirebirdPreparedStatementWrapper.cpp:309 -msgid "SELECT " +#: cppchecker/cppchecksettingsdlgbase.cpp:192 +#: cppchecker/cppchecksettingsdlgbase.cpp:238 +msgid "Remember these settings" msgstr "" -#: sdk/databaselayer/src/dblayer/FirebirdPreparedStatementWrapper.cpp:314 -msgid "FirebirdPreparesStatementWrapper::InterpretErrorCodes()\n" +#: cppchecker/cppchecksettingsdlgbase.cpp:194 +msgid "" +"If ticked, these settings will be saved and be applied in the future. " +"Otherwise the warnings will be back when you restart CodeLite, which may be " +"what you should want." msgstr "" -#: sdk/databaselayer/src/dblayer/FirebirdResultSet.cpp:55 -msgid "Error retrieving Next record\n" +#: cppchecker/cppchecksettingsdlgbase.cpp:199 +msgid "Include Dirs" msgstr "" -#: sdk/databaselayer/src/dblayer/FirebirdResultSet.cpp:139 -#: sdk/databaselayer/src/dblayer/FirebirdResultSet.cpp:181 -#: sdk/databaselayer/src/dblayer/FirebirdResultSet.cpp:254 -#: sdk/databaselayer/src/dblayer/FirebirdResultSet.cpp:310 -#: sdk/databaselayer/src/dblayer/FirebirdResultSet.cpp:376 -msgid "Invalid field type" +#: cppchecker/cppchecksettingsdlgbase.cpp:204 +msgid "" +"If the 'Missing Includes' check is enabled, add here any extra\n" +"directories where Cppcheck should search for #includes" msgstr "" -#: sdk/databaselayer/src/dblayer/FirebirdResultSet.cpp:542 -#: sdk/databaselayer/src/dblayer/MysqlPreparedStatementResultSet.cpp:297 -#: sdk/databaselayer/src/dblayer/MysqlPreparedStatementResultSet.cpp:318 -#: sdk/databaselayer/src/dblayer/OTLResultSet.cpp:321 -#: sdk/databaselayer/src/dblayer/OdbcResultSet.cpp:484 -#: sdk/databaselayer/src/dblayer/OracleResultSet.cpp:245 -#: sdk/databaselayer/src/dblayer/PostgresResultSet.cpp:243 -#: sdk/databaselayer/src/dblayer/SqliteResultSet.cpp:199 -#: sdk/databaselayer/src/dblayer/TdsResultSet.cpp:344 -msgid "' not found in the resultset" +#: cppchecker/cppchecksettingsdlgbase.cpp:222 +msgid "Add the full path to a directory to search for #includes" msgstr "" -#: sdk/databaselayer/src/dblayer/FirebirdResultSet.cpp:542 -#: sdk/databaselayer/src/dblayer/MysqlPreparedStatementResultSet.cpp:297 -#: sdk/databaselayer/src/dblayer/MysqlPreparedStatementResultSet.cpp:318 -#: sdk/databaselayer/src/dblayer/OTLResultSet.cpp:321 -#: sdk/databaselayer/src/dblayer/OdbcResultSet.cpp:484 -#: sdk/databaselayer/src/dblayer/OracleResultSet.cpp:245 -#: sdk/databaselayer/src/dblayer/PostgresResultSet.cpp:243 -#: sdk/databaselayer/src/dblayer/SqliteResultSet.cpp:199 -#: sdk/databaselayer/src/dblayer/TdsResultSet.cpp:344 -msgid "Field '" +#: cppchecker/cppchecksettingsdlgbase.cpp:232 +msgid "Suppress warnings about 'system' includes" msgstr "" -#: sdk/databaselayer/src/dblayer/FirebirdResultSet.cpp:559 -msgid "FirebirdResultSet::InterpretErrorCodes()\n" +#: cppchecker/cppchecksettingsdlgbase.cpp:234 +msgid "" +"If ticked, the 'missingIncludeSystem' suppression is passed to Cppcheck. " +"This stops it complaining about a missing #include , while still " +"detecting a missing #include \"bar\"" msgstr "" -#: sdk/databaselayer/src/dblayer/MysqlDatabaseLayer.cpp:470 -msgid "SHOW TABLE STATUS WHERE Comment != 'VIEW' AND Name=?;" +#: cppchecker/cppchecksettingsdlgbase.cpp:240 +msgid "" +"If ticked, these settings will be saved and be applied in the future. " +"Otherwise the warnings will be back when you restart CodeLite, which may be " +"what you want." msgstr "" -#: sdk/databaselayer/src/dblayer/MysqlDatabaseLayer.cpp:551 -msgid "SHOW TABLE STATUS WHERE Comment = 'VIEW' AND Name=?;" +#: cppchecker/cppchecksettingsdlgbase.cpp:245 +msgid "Command-line Definitions" msgstr "" -#: sdk/databaselayer/src/dblayer/MysqlDatabaseLayer.cpp:613 -msgid "SHOW TABLE STATUS WHERE Comment != 'VIEW';" +#: cppchecker/cppchecksettingsdlgbase.cpp:250 +msgid "" +"Here you can pass 'configurations' to cppcheck\n" +"e.g. \"Only test code branches where FOO is defined\" or\n" +"\"Don't test code branches where the value of FOO is 2\"" msgstr "" -#: sdk/databaselayer/src/dblayer/MysqlDatabaseLayer.cpp:674 -msgid "SHOW TABLE STATUS WHERE Comment = 'VIEW';" +#: cppchecker/cppchecksettingsdlgbase.cpp:258 +msgid "Defines to pass e.g. FOO or FOO=1:" msgstr "" -#: sdk/databaselayer/src/dblayer/MysqlDatabaseLayer.cpp:715 -#, c-format -msgid "SHOW COLUMNS FROM %s;" +#: cppchecker/cppchecksettingsdlgbase.cpp:268 +msgid "" +"Add here definitions of code branches you want to be checked e.g. 'FOO' or " +"'BAR=2'. Each will be passed to Cppcheck as '-DFOO' or -D'BAR=2' (so don't " +"write the -D yourself)." msgstr "" -#: sdk/databaselayer/src/dblayer/MysqlPreparedStatementParameter.cpp:82 -msgid "Error allocating buffer" +#: cppchecker/cppchecksettingsdlgbase.cpp:291 +msgid "Undefines to pass:" msgstr "" -#: sdk/databaselayer/src/dblayer/MysqlResultSetMetaData.cpp:54 -#, c-format -msgid "Don't understand type : %d\n" +#: cppchecker/cppchecksettingsdlgbase.cpp:301 +msgid "" +"Here you can add undefines (branches you don't want to be checked) e.g. " +"'FOO' or 'BAR=2'. Each will be passed to Cppcheck as '-UFOO' or -" +"U'BAR=2' (so don't write the -U yourself)." msgstr "" -#: sdk/databaselayer/src/dblayer/OTLDatabaseLayer.cpp:68 -#: sdk/databaselayer/src/dblayer/OracleDatabaseLayer.cpp:68 -msgid "Host=" +#: cppchecker/cppchecksettingsdlgbase.cpp:445 +msgid "Description to show in the dialog" msgstr "" -#: sdk/databaselayer/src/dblayer/OTLDatabaseLayer.cpp:74 -#: sdk/databaselayer/src/dblayer/OracleDatabaseLayer.cpp:72 -msgid "Port=" +#: cppchecker/cppchecksettingsdlgbase.cpp:450 +msgid "" +"This is what you'll see in the settings dialog. Put whatever you like here; " +"it's not used internally" msgstr "" -#: sdk/databaselayer/src/dblayer/OTLDatabaseLayer.cpp:82 -#: sdk/databaselayer/src/dblayer/OracleDatabaseLayer.cpp:80 -msgid "Service Name=" +#: cppchecker/cppchecksettingsdlgbase.cpp:457 +msgid "The ID string that cppchecker will recognise" msgstr "" -#: sdk/databaselayer/src/dblayer/OTLDatabaseLayer.cpp:108 -#: sdk/databaselayer/src/dblayer/OracleDatabaseLayer.cpp:101 -msgid "Error creating database connection" +#: cppchecker/cppchecksettingsdlgbase.cpp:462 +msgid "" +"Enter here the unique ID string that cppchecker can recognise. Examples are " +"\"operatorEqVarError\" and \"uninitMemberVar\". You can find these by " +"grepping the cppchecker source, or by running cppchecker on your app in a " +"terminal and passing the additional parameter '--xml'." msgstr "" -#: sdk/databaselayer/src/dblayer/OTLResultSet.cpp:123 -msgid "Invalid Date" +#: cppchecker/cppchecker.cpp:72 +msgid "CppChecker integration for CodeLite IDE" msgstr "" -#: sdk/databaselayer/src/dblayer/OTLResultSet.cpp:139 +#: cppchecker/cppchecker.cpp:101 +msgid "CppCheck integration for CodeLite IDE" +msgstr "" + +#: cppchecker/cppchecker.cpp:243 +msgid "CppCheckPlugin: Terminating cppcheck daemon..." +msgstr "" + +#: cppchecker/cppchecker.cpp:256 cppchecker/cppchecker.cpp:272 +#: cppchecker/cppchecker.cpp:286 cppchecker/cppchecker.cpp:300 +msgid "Run CppCheck" +msgstr "" + +#: cppchecker/cppchecker.cpp:312 cppchecker/cppchecker.cpp:332 +#: cppchecker/cppchecker.cpp:352 cppchecker/cppchecker.cpp:408 +msgid "" +"CppCheckPlugin: CppCheck is currently busy please wait for it to complete " +"the current check" +msgstr "" + +#: cppchecker/cppchecker.cpp:512 #, c-format -msgid "Result as string: '%s'\n" +msgid "Starting cppcheck: %s\n" msgstr "" -#: sdk/databaselayer/src/dblayer/OdbcDatabaseLayer.cpp:383 -#: sdk/databaselayer/src/dblayer/OdbcDatabaseLayer.cpp:445 -msgid "TABLE" +#: cppchecker/cppchecker.cpp:524 +msgid "Failed to launch codelite_cppcheck process!" msgstr "" -#: sdk/databaselayer/src/dblayer/OdbcDatabaseLayer.cpp:415 -#: sdk/databaselayer/src/dblayer/OdbcDatabaseLayer.cpp:496 -msgid "VIEW" +#: cppchecker/cppchecker.cpp:605 +msgid "No files to check" msgstr "" -#: sdk/databaselayer/src/dblayer/OdbcDatabaseLayer.cpp:597 -msgid "OdbcDatabaseLayer::InterpretErrorCodes()\n" +#: cppchecker/cppchecker.cpp:666 +msgid "Failed to open temporary file " msgstr "" -#: sdk/databaselayer/src/dblayer/OdbcPreparedStatement.cpp:388 -msgid "OdbcPreparedStatement::InterpretErrorCodes()\n" +#: cppchecker/cppchecksettingsdlgbase.h:168 +msgid "CppCheck settings" msgstr "" -#: sdk/databaselayer/src/dblayer/OracleDatabaseLayer.cpp:11 -msgid "1521" +#: cppchecker/cppchecksettingsdlgbase.h:195 +msgid "CppChecker add warning suppression" msgstr "" -#: sdk/databaselayer/src/dblayer/PostgresDatabaseLayer.cpp:277 -msgid "BEGIN" +#: cppchecker/cppcheckreportpage.cpp:197 +msgid "cppcheck analysis ended. Found " msgstr "" -#: sdk/databaselayer/src/dblayer/PostgresDatabaseLayer.cpp:282 -msgid "COMMIT" +#: cppchecker/cppcheckreportpage.cpp:197 +msgid " possible errors" msgstr "" -#: sdk/databaselayer/src/dblayer/PostgresDatabaseLayer.cpp:287 -msgid "ROLLBACK" +#: cppchecker/cppchecksettingsdlg.cpp:147 +msgid "C/C++ Files " msgstr "" -#: sdk/databaselayer/src/dblayer/PostgresDatabaseLayer.cpp:364 -msgid "" -"SELECT COUNT(*) FROM information_schema.tables WHERE table_type='BASE TABLE' " -"AND table_name=?;" +#: cppchecker/cppchecksettingsdlg.cpp:152 +msgid "Add File(s):" msgstr "" -#: sdk/databaselayer/src/dblayer/PostgresDatabaseLayer.cpp:429 -msgid "" -"SELECT COUNT(*) FROM information_schema.tables WHERE table_type='VIEW' AND " -"table_name=?;" +#: cppchecker/cppchecksettingsdlg.cpp:192 +msgid "There is already an entry with ID string. Try again?" msgstr "" -#: sdk/databaselayer/src/dblayer/PostgresDatabaseLayer.cpp:490 -msgid "" -"SELECT table_name FROM information_schema.tables WHERE table_type='BASE " -"TABLE' AND table_schema='public';" +#: cppchecker/cppchecksettingsdlg.cpp:214 +msgid "Really remove this warning suppression, rather than just unticking it?" msgstr "" -#: sdk/databaselayer/src/dblayer/PostgresDatabaseLayer.cpp:529 -msgid "" -"SELECT table_name FROM information_schema.tables WHERE table_type='VIEW' AND " -"table_schema='public';" +#: cppchecker/cppchecksettingsdlg.cpp:246 +msgid "Select the path containing include files" +msgstr "" + +#: Copyright/copyrights_proj_sel_base_dlg.h:74 +msgid "Batch Insert Of Copyrights" msgstr "" -#: sdk/databaselayer/src/dblayer/PostgresDatabaseLayer.cpp:573 -msgid "" -"SELECT column_name FROM information_schema.columns WHERE table_name=? ORDER " -"BY ordinal_position;" +#: Copyright/copyrights_proj_sel_base_dlg.cpp:44 +msgid "Select projects to insert copyrights block:" msgstr "" -#: sdk/databaselayer/src/dblayer/PostgresPreparedStatement.cpp:277 -#, c-format -msgid "$%d" +#: Copyright/copyrights_proj_sel_base_dlg.cpp:66 +msgid "&Un-Check All" msgstr "" -#: sdk/databaselayer/src/dblayer/PostgresResultSet.cpp:77 -#: sdk/databaselayer/src/dblayer/PostgresResultSet.cpp:98 -#: sdk/databaselayer/src/dblayer/PostgresResultSet.cpp:120 -#: sdk/databaselayer/src/dblayer/PostgresResultSet.cpp:217 -msgid "Not implemented\n" +#: Copyright/copyrights_proj_sel_base_dlg.cpp:76 +msgid "&Insert" msgstr "" -#: sdk/databaselayer/src/dblayer/PreparedStatement.cpp:24 -msgid "ResultSet NOT closed and cleaned up by the PreparedStatement dtor" +#: Copyright/copyrights_options_dlg.cpp:49 +msgid "Choose a file:" msgstr "" -#: sdk/databaselayer/src/dblayer/SqliteDatabaseLayer.cpp:42 -msgid ":memory:" +#: Copyright/copyrights_options_base_dlg.cpp:50 +msgid "Template File Path:" msgstr "" -#: sdk/databaselayer/src/dblayer/SqliteDatabaseLayer.cpp:46 -msgid "' does not exist." +#: Copyright/copyrights_options_base_dlg.cpp:55 +msgid "" +"Select the path to the file containing the template header to be prepended " +"to the source files" msgstr "" -#: sdk/databaselayer/src/dblayer/SqliteDatabaseLayer.cpp:46 -msgid "The specified database file '" +#: Copyright/copyrights_options_base_dlg.cpp:63 +msgid "File Masking:" msgstr "" -#: sdk/databaselayer/src/dblayer/SqliteDatabaseLayer.cpp:105 -#: sdk/databaselayer/src/dblayer/TdsDatabaseLayer.cpp:409 -msgid "Beginning transaction" +#: Copyright/copyrights_options_base_dlg.cpp:67 +msgid "*.hpp;*.h;*.hxx;*.inl;*.h++" msgstr "" -#: sdk/databaselayer/src/dblayer/SqliteDatabaseLayer.cpp:106 -#: sdk/databaselayer/src/dblayer/TdsDatabaseLayer.cpp:410 -msgid "begin transaction;" +#: Copyright/copyrights_options_base_dlg.cpp:73 +msgid "Ignore String:" msgstr "" -#: sdk/databaselayer/src/dblayer/SqliteDatabaseLayer.cpp:111 -#: sdk/databaselayer/src/dblayer/TdsDatabaseLayer.cpp:415 -msgid "Commiting transaction" +#: Copyright/copyrights_options_base_dlg.cpp:78 +msgid "" +"Set here a string that once found in the source file CodeLite will not " +"prepend the Copyrights block to the file" msgstr "" -#: sdk/databaselayer/src/dblayer/SqliteDatabaseLayer.cpp:112 -#: sdk/databaselayer/src/dblayer/TdsDatabaseLayer.cpp:416 -msgid "commit transaction;" +#: Copyright/copyrights_options_base_dlg.cpp:85 +msgid "Backup modified files" msgstr "" -#: sdk/databaselayer/src/dblayer/SqliteDatabaseLayer.cpp:117 -#: sdk/databaselayer/src/dblayer/TdsDatabaseLayer.cpp:421 -msgid "Rolling back transaction" +#: Copyright/copyrights_options_base_dlg.cpp:100 +msgid "&Save" msgstr "" -#: sdk/databaselayer/src/dblayer/SqliteDatabaseLayer.cpp:118 -#: sdk/databaselayer/src/dblayer/TdsDatabaseLayer.cpp:422 -msgid "rollback transaction;" +#: Copyright/copyrights_options_base_dlg.h:84 +msgid "Copyrights Settings" msgstr "" -#: sdk/databaselayer/src/dblayer/SqliteDatabaseLayer.cpp:296 -msgid "SELECT COUNT(*) FROM sqlite_master WHERE type='table' AND name=?;" +#: Copyright/copyright.cpp:70 Copyright/copyright.cpp:87 +msgid "" +"Copyright Plugin - a small plugin that allows you to place copyright block " +"on top of your source files" msgstr "" -#: sdk/databaselayer/src/dblayer/SqliteDatabaseLayer.cpp:361 -msgid "SELECT COUNT(*) FROM sqlite_master WHERE type='view' AND name=?;" +#: Copyright/copyright.cpp:106 Copyright/copyright.cpp:130 +#: Copyright/copyright.cpp:151 +msgid "Insert Copyright Block" msgstr "" -#: sdk/databaselayer/src/dblayer/SqliteDatabaseLayer.cpp:422 -msgid "SELECT name FROM sqlite_master WHERE type='table';" +#: Copyright/copyright.cpp:109 Copyright/copyright.cpp:142 +msgid "Batch Insert of Copyright Block" msgstr "" -#: sdk/databaselayer/src/dblayer/SqliteDatabaseLayer.cpp:461 -msgid "SELECT name FROM sqlite_master WHERE type='view';" +#: Copyright/copyright.cpp:116 +msgid "Copyrights" msgstr "" -#: sdk/databaselayer/src/dblayer/SqliteDatabaseLayer.cpp:505 +#: Copyright/copyright.cpp:172 Copyright/copyright.cpp:395 #, c-format -msgid "SELECT * FROM '%s' LIMIT 0;" +msgid "Template file name '%s', does not exist!" msgstr "" -#: sdk/databaselayer/src/dblayer/SqlitePreparedStatement.cpp:265 -#: sdk/databaselayer/src/dblayer/SqliteResultSet.cpp:66 -msgid "Error with RunQueryWithResults\n" +#: Copyright/copyright.cpp:179 Copyright/copyright.cpp:401 +#, c-format +msgid "Failed to read template file '%s'" msgstr "" -#: sdk/databaselayer/src/dblayer/SqliteResultSet.cpp:72 -msgid "Unknown error advancing result set" +#: Copyright/copyright.cpp:196 +msgid "Template file contains text which is not comment, continue anyway?" msgstr "" -#: sdk/databaselayer/src/dblayer/SqliteResultSetMetaData.cpp:21 -msgid "INT" +#: Copyright/copyright.cpp:210 +msgid "File contains ignore string, skipping it" msgstr "" -#: sdk/databaselayer/src/dblayer/SqliteResultSetMetaData.cpp:21 -msgid "INTEGER" +#: Copyright/copyright.cpp:229 Copyright/copyright.cpp:287 +msgid "Batch insert requires a workspace to be opened" msgstr "" -#: sdk/databaselayer/src/dblayer/SqliteResultSetMetaData.cpp:21 -msgid "LONG" +#: Copyright/copyright.cpp:342 +#, c-format +msgid "You are about to modify %u files. Continue?" msgstr "" -#: sdk/databaselayer/src/dblayer/SqliteResultSetMetaData.cpp:23 -msgid "STRING" +#: Copyright/copyright.cpp:347 +msgid "Processing file ..." msgstr "" -#: sdk/databaselayer/src/dblayer/SqliteResultSetMetaData.cpp:23 -msgid "VARCHAR" +#: Copyright/copyright.cpp:367 +msgid "File contains ignore string, skipping it: " msgstr "" -#: sdk/databaselayer/src/dblayer/SqliteResultSetMetaData.cpp:25 -msgid "DOUBLE" +#: Copyright/copyright.cpp:374 +msgid "Inserting comment to file: " msgstr "" -#: sdk/databaselayer/src/dblayer/SqliteResultSetMetaData.cpp:25 -msgid "FLOAT" +#: Copyright/copyright.cpp:412 +msgid "Template file contains text which is not comment, continue anyways?" msgstr "" -#: sdk/databaselayer/src/dblayer/SqliteResultSetMetaData.cpp:27 -msgid "BOOL" +#: UnitTestCPP/testclassbasedlg.h:92 +msgid "Create UnitTests for Class.." msgstr "" -#: sdk/databaselayer/src/dblayer/SqliteResultSetMetaData.cpp:29 -msgid "BLOB" +#: UnitTestCPP/testclassbasedlg.cpp:60 +msgid "&Show Functions..." msgstr "" -#: sdk/databaselayer/src/dblayer/SqliteResultSetMetaData.cpp:31 -msgid "DATE" +#: UnitTestCPP/testclassbasedlg.cpp:71 UnitTestCPP/newunittestbasedlg.cpp:61 +msgid "Fixture name (optional):" msgstr "" -#: sdk/databaselayer/src/dblayer/SqliteResultSetMetaData.cpp:31 -msgid "DATETIME" +#: UnitTestCPP/testclassbasedlg.cpp:78 UnitTestCPP/newunittestbasedlg.cpp:68 +msgid "Output file name (optional):" msgstr "" -#: sdk/databaselayer/src/dblayer/SqliteResultSetMetaData.cpp:31 -msgid "TIMESTAMP" +#: UnitTestCPP/testclassbasedlg.cpp:83 UnitTestCPP/newunittestbasedlg.cpp:73 +msgid "" +"The name of the file of which CodeLite will generate the test code.\n" +"When left empty, CodeLite will use the first available source file in target " +"project" msgstr "" -#: sdk/databaselayer/src/dblayer/TdsDatabaseLayer.cpp:129 -msgid "USE " +#: UnitTestCPP/testclassbasedlg.cpp:87 +msgid "Project to which these unit tests should be added:" msgstr "" -#: sdk/databaselayer/src/dblayer/TdsDatabaseLayer.cpp:582 -msgid "exec sp_tables ?, NULL, NULL, '''TABLE'''" +#: UnitTestCPP/testclassbasedlg.cpp:98 +msgid "Functions to test:" msgstr "" -#: sdk/databaselayer/src/dblayer/TdsDatabaseLayer.cpp:593 -#: sdk/databaselayer/src/dblayer/TdsDatabaseLayer.cpp:658 -#: sdk/databaselayer/src/dblayer/TdsDatabaseLayer.cpp:715 -#: sdk/databaselayer/src/dblayer/TdsDatabaseLayer.cpp:755 -msgid "TABLE_NAME" +#: UnitTestCPP/newunittestbasedlg.h:76 +msgid "New Unit Test" msgstr "" -#: sdk/databaselayer/src/dblayer/TdsDatabaseLayer.cpp:647 -msgid "exec sp_tables ?, NULL, NULL, '''VIEW'''" +#: UnitTestCPP/unittestpp.cpp:74 UnitTestCPP/unittestpp.cpp:111 +msgid "A Unit test plugin based on the UnitTest++ framework" msgstr "" -#: sdk/databaselayer/src/dblayer/TdsDatabaseLayer.cpp:709 -msgid "sp_tables NULL, NULL, NULL, '''TABLE'''" +#: UnitTestCPP/unittestpp.cpp:107 +msgid "UnitTest++" msgstr "" -#: sdk/databaselayer/src/dblayer/TdsDatabaseLayer.cpp:749 -msgid "sp_tables NULL, NULL, NULL, '''VIEW'''" +#: UnitTestCPP/unittestpp.cpp:133 UnitTestCPP/unittestpp.cpp:139 +msgid "Run Unit tests..." msgstr "" -#: sdk/databaselayer/src/dblayer/TdsDatabaseLayer.cpp:846 -#, c-format -msgid "sp_columns %s;" +#: UnitTestCPP/unittestpp.cpp:135 UnitTestCPP/unittestpp.cpp:141 +msgid "Run project as unit test project..." msgstr "" -#: sdk/databaselayer/src/dblayer/TdsDatabaseLayer.cpp:852 -msgid "COLUMN_NAME" +#: UnitTestCPP/unittestpp.cpp:156 UnitTestCPP/unittestpp.cpp:208 +msgid "Create new &test..." msgstr "" -#: wxformbuilder/formbuildsettingsbasedlg.cpp:51 -msgid "wxFormBuilder path:" +#: UnitTestCPP/unittestpp.cpp:160 UnitTestCPP/unittestpp.cpp:212 +msgid "Create tests for &class..." msgstr "" -#: wxformbuilder/formbuildsettingsbasedlg.cpp:67 -msgid "$(WXFB) $(WXFB_PRJ)" +#: UnitTestCPP/unittestpp.cpp:165 +msgid "Mark this project as UnitTest++ project" msgstr "" -#: wxformbuilder/formbuildsettingsdlg.cpp:49 -msgid "Select wxFormBuilder exe:" +#: UnitTestCPP/unittestpp.cpp:169 +msgid "Run Project as UnitTest++ and report" msgstr "" -#: wxformbuilder/wxfbitembasedlg.cpp:61 -msgid "Title:" +#: UnitTestCPP/unittestpp.cpp:225 UnitTestCPP/unittestpp.cpp:294 +msgid "" +"There are currently no UnitTest project in your workspace\n" +"Would you like to create one now?" msgstr "" -#: wxformbuilder/wxfbitemdlg.cpp:51 -msgid "Invalid C++ class name" +#: UnitTestCPP/unittestpp.cpp:352 +msgid "Could not find the target project" msgstr "" -#: wxformbuilder/wxformbuilder.cpp:61 wxformbuilder/wxformbuilder.cpp:77 -msgid "wxFormBuilder integration with CodeLite" +#: UnitTestCPP/unittestpp.cpp:418 +#, c-format +msgid "Could not create target file '%s'" msgstr "" -#: wxformbuilder/wxformbuilder.cpp:158 -msgid "New wxDialog..." +#: UnitTestCPP/unittestpp.cpp:532 +msgid "Project contains 0 tests. Nothing to be done" msgstr "" -#: wxformbuilder/wxformbuilder.cpp:163 -msgid "New wxDialog with Default Buttons..." +#: UnitTestCPP/testclassdlg.cpp:119 +msgid "There are no tests to generate" msgstr "" -#: wxformbuilder/wxformbuilder.cpp:168 -msgid "New wxFrame..." +#: UnitTestCPP/testclassdlg.cpp:153 +msgid "Could not find match for class '" msgstr "" -#: wxformbuilder/wxformbuilder.cpp:171 -msgid "New wxPanel..." +#: UnitTestCPP/testclassdlg.cpp:174 +msgid "Select class:" msgstr "" -#: wxformbuilder/wxformbuilder.cpp:180 -msgid "New wxDialog" +#: UnitTestCPP/newunittestbasedlg.cpp:50 +msgid "Test name:" msgstr "" -#: wxformbuilder/wxformbuilder.cpp:193 -msgid "New wxFrame" +#: UnitTestCPP/newunittestbasedlg.cpp:52 UnitTestCPP/newunittestbasedlg.cpp:57 +msgid "The C++ name of the test" msgstr "" -#: wxformbuilder/wxformbuilder.cpp:205 -msgid "New wxPanel" +#: UnitTestCPP/newunittestbasedlg.cpp:77 +msgid "Project to whom this unit test should be added to:" msgstr "" -#: wxformbuilder/wxformbuilder.cpp:245 -#, c-format -msgid "Can't find wxFormBuilder template file '%s'" +#: UnitTestCPP/unittestreport.cpp:60 +msgid "Passed:" msgstr "" -#: wxformbuilder/wxformbuilder.cpp:325 -msgid "Please select a 'fbp' (Form Builder Project) file only" +#: UnitTestCPP/unittestreport.cpp:67 +msgid "Failed:" msgstr "" -#: wxformbuilder/wxformbuilder.cpp:376 -msgid "New wxDialog with Default Buttons" +#: UnitTestCPP/unittestreport.cpp:83 +msgid "Total tests:" msgstr "" -#: wxformbuilder/wxformbuilder.cpp:433 -msgid "Open with wxFormBuilder..." +#: UnitTestCPP/unittestreport.cpp:94 +msgid "Tests failed:" +msgstr "" + +#: UnitTestCPP/unittestreport.cpp:105 +msgid "Tests passed:" msgstr "" Binary files /tmp/0wlVVhsoFK/codelite-8.0.1+dfsg2/translations/zh_CN/LC_MESSAGES/codelite.mo and /tmp/qKeBoHmecl/codelite-9.0+dfsg/translations/zh_CN/LC_MESSAGES/codelite.mo differ diff -Nru codelite-8.0.1+dfsg2/translations/zh_CN/LC_MESSAGES/codelite.po codelite-9.0+dfsg/translations/zh_CN/LC_MESSAGES/codelite.po --- codelite-8.0.1+dfsg2/translations/zh_CN/LC_MESSAGES/codelite.po 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/translations/zh_CN/LC_MESSAGES/codelite.po 2015-10-11 13:56:07.000000000 +0000 @@ -1,2492 +1,2558 @@ # Translation of codelite.po to Chinese Simplified for CodeLite # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. +# This file is distributed under the same license as the CodeLite package. # # Deng XueFeng , 2011. # fanhe , 2011. +# polaris , 2013,2015. +# CharlW , 2015. # msgid "" msgstr "" -"Project-Id-Version: 1.0\n" +"Project-Id-Version: CodeLite-zh_CN\n" "Report-Msgid-Bugs-To: david@codelite.co.uk\n" -"POT-Creation-Date: 2014-02-13 09:35+0000\n" -"PO-Revision-Date: 2015-05-08 18:09+0800\n" -"Last-Translator: polaris \n" -"Language-Team: xuiv.org \n" +"POT-Creation-Date: 2015-04-21 21:00+0800\n" +"PO-Revision-Date: 2015-06-30 19:59+0800\n" +"Last-Translator: CharlW \n" +"Language-Team: Chinese (simplified)\n" "Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 1.7.6\n" +"X-Generator: Poedit 1.7.5\n" -#: DatabaseExplorer/TableSettings.cpp:45 DatabaseExplorer/GUI.cpp:1174 -#: Plugin/sftp_ui.cpp:287 SFTP/UI.cpp:145 LiteEditor/localstable.cpp:25 -#: LiteEditor/breakpointslistctrl.h:42 LiteEditor/simpletable.cpp:97 -#: LiteEditor/debugger_predefined_types_page.cpp:11 -msgid "Type" -msgstr "类型" - -#: DatabaseExplorer/TableSettings.cpp:67 -msgid "column" -msgstr "列" - -#: DatabaseExplorer/SqlCommandPanel.cpp:94 -msgid "Executing sql..." -msgstr "正在执行 SQL..." - -#: DatabaseExplorer/SqlCommandPanel.cpp:131 -msgid "Unknown SQL error." -msgstr "未知 SQL 错误。" - -#: DatabaseExplorer/SqlCommandPanel.cpp:131 -#: DatabaseExplorer/SqlCommandPanel.cpp:256 -#: DatabaseExplorer/SqlCommandPanel.cpp:261 -#: DatabaseExplorer/AdapterSelectDlg.cpp:20 -#: DatabaseExplorer/AdapterSelectDlg.cpp:28 -#: DatabaseExplorer/AdapterSelectDlg.cpp:36 -#: DatabaseExplorer/DbSettingDialog.cpp:62 -#: DatabaseExplorer/DbSettingDialog.cpp:65 -#: DatabaseExplorer/DbSettingDialog.cpp:69 -#: DatabaseExplorer/DbSettingDialog.cpp:90 -#: DatabaseExplorer/DbSettingDialog.cpp:93 -#: DatabaseExplorer/DbSettingDialog.cpp:97 -#: DatabaseExplorer/DbSettingDialog.cpp:156 -#: DatabaseExplorer/DbSettingDialog.cpp:159 -#: DatabaseExplorer/DbSettingDialog.cpp:163 -#: DatabaseExplorer/ErdCommitWizard.cpp:441 -#: DatabaseExplorer/ErdCommitWizard.cpp:448 -#: DatabaseExplorer/DbViewerPanel.cpp:695 -#: DatabaseExplorer/DbViewerPanel.cpp:698 -#: DatabaseExplorer/DbViewerPanel.cpp:748 -#: DatabaseExplorer/DbViewerPanel.cpp:755 DatabaseExplorer/ErdPanel.cpp:363 -msgid "DB Error" -msgstr "DB错误" +#: MacBundler/macbundler.cpp:73 +msgid "Failed to load image" +msgstr "加载图片失败" -#: DatabaseExplorer/SqlCommandPanel.cpp:247 -#, c-format -msgid "Result: %i rows" -msgstr "返回: %i 行" +#: MacBundler/macbundler.cpp:88 +msgid "Choose the icon file" +msgstr "选择图标文件" -#: DatabaseExplorer/SqlCommandPanel.cpp:255 -#: DatabaseExplorer/DbSettingDialog.cpp:61 -#: DatabaseExplorer/DbSettingDialog.cpp:89 -#: DatabaseExplorer/DbSettingDialog.cpp:155 -#: DatabaseExplorer/ErdCommitWizard.cpp:325 -#: DatabaseExplorer/ErdCommitWizard.cpp:437 -#: DatabaseExplorer/DbViewerPanel.cpp:694 -#: DatabaseExplorer/DbViewerPanel.cpp:744 -#, c-format -msgid "Error (%d): %s" -msgstr "错误 (%d): %s" +#: MacBundler/macbundler.cpp:126 +msgid "Mac Bundler Configuration" +msgstr "Mac Bundler 配置" -#: DatabaseExplorer/SqlCommandPanel.cpp:261 -#: DatabaseExplorer/DbSettingDialog.cpp:65 -#: DatabaseExplorer/DbSettingDialog.cpp:93 -#: DatabaseExplorer/DbSettingDialog.cpp:159 -#: DatabaseExplorer/ErdCommitWizard.cpp:448 -#: DatabaseExplorer/DbViewerPanel.cpp:698 -#: DatabaseExplorer/DbViewerPanel.cpp:755 -msgid "Unknown error." -msgstr "未知错误。" +#: MacBundler/macbundler.cpp:136 +msgid "Choose which target(s) to \"bundle-ize\"" +msgstr "选择哪些目标到“bundle-ize”" -#: DatabaseExplorer/SqlCommandPanel.cpp:268 -msgid "Cant connect!" -msgstr "无法连接!" +#: MacBundler/macbundler.cpp:138 +msgid "Generate Info.plist file" +msgstr "生成 info.plist 文件" -#: DatabaseExplorer/SqlCommandPanel.cpp:274 LiteEditor/ps_general_page.cpp:133 -#: LiteEditor/new_build_tab.cpp:924 LiteEditor/ps_compiler_page.cpp:95 -msgid "Choose a file" -msgstr "选择一个文件" +#: MacBundler/macbundler.cpp:144 +msgid "Copy the following icon into the project" +msgstr "复制下面的图标到项目" -#: DatabaseExplorer/SqlCommandPanel.cpp:290 -msgid "Chose a file" -msgstr "选择一个文件" +#: MacBundler/macbundler.cpp:146 +msgid "Warning : applying these changes cannot be undone automatically" +msgstr "警告:自动应用这些变更将无法撤消" -#: DatabaseExplorer/SqlCommandPanel.cpp:307 -msgid "Insert SELECT SQL template" -msgstr "插入 SQL SELECT 模板" +#: MacBundler/macbundler.cpp:147 +msgid "Apply changes" +msgstr "应用变更" -#: DatabaseExplorer/SqlCommandPanel.cpp:307 -msgid "Insert SELECT SQL statement template into editor." -msgstr "插入 SQL SELECT 语句模板到编辑器。" +#: MacBundler/macbundler.cpp:148 SpellChecker/wxcrafter.cpp:230 +#: CLgtk3-install/share/codelite/templates/projects/executable-wxcrafter-dialog/wxcrafter.cpp:37 +#: Plugin/VirtualDirectorySelectorBase.cpp:82 +#: Subversion2/subversion2_ui.cpp:182 Subversion2/subversion2_ui.cpp:249 +#: Subversion2/subversion2_ui.cpp:690 codelite_terminal/wxcrafter.cpp:268 +#: CL-standalone-install/share/codelite/templates/projects/executable-wxcrafter-dialog/wxcrafter.cpp:37 +#: LiteEditor/configuration_manager_base_dlg.cpp:104 +#: LiteEditor/options_base_dlg2.cpp:48 +#: LiteEditor/new_configuration_dlg.cpp:106 LiteEditor/setters_getters.cpp:111 +#: LiteEditor/env_var_dlg_base.cpp:109 LiteEditor/breakpointdlgbase.cpp:302 +#: LiteEditor/newversionbasedlg.cpp:61 +#: LiteEditor/tags_options_base_dlg.cpp:536 LiteEditor/compiler_pages.cpp:73 +#: LiteEditor/depends_dlg.cpp:62 LiteEditor/editcmpfileinfobase.cpp:92 +#: LiteEditor/debugcoredumpbase.cpp:112 +#: CL-installRel/share/codelite/templates/projects/executable-wxcrafter-dialog/wxcrafter.cpp:37 +#: Runtime/templates/projects/executable-wxcrafter-dialog/wxcrafter.cpp:37 +#: CL-install/share/codelite/templates/projects/executable-wxcrafter-dialog/wxcrafter.cpp:37 +#: codelitephp/php-plugin/php_ui.cpp:299 wxformbuilder/wxfbitembasedlg.cpp:95 +#: wxformbuilder/formbuildsettingsbasedlg.cpp:88 +#: CodeDesigner/codedesignersettingsbasedlg.cpp:63 +#: CodeDesigner/codedesigneritembasedlg.cpp:109 DatabaseExplorer/GUI.cpp:837 +#: DatabaseExplorer/GUI.cpp:1145 DatabaseExplorer/GUI.cpp:1443 +#: UnitTestCPP/testclassbasedlg.cpp:132 +msgid "Cancel" +msgstr "取消" -#: DatabaseExplorer/SqlCommandPanel.cpp:308 -msgid "Insert INSERT SQL template" -msgstr "插入 INSERT SQL 模板" +#: MacBundler/macbundler.cpp:160 +msgid "Get Info Version String" +msgstr "获取版本信息字符串" -#: DatabaseExplorer/SqlCommandPanel.cpp:308 -msgid "Insert INSERT SQL statement template into editor." -msgstr "插入 INSERT SQL 语句模板到编辑器。" +#: MacBundler/macbundler.cpp:162 +msgid "Version Number" +msgstr "版本号" -#: DatabaseExplorer/SqlCommandPanel.cpp:309 -msgid "Insert UPDATE SQL template" -msgstr "插入 UPDATE SQL 模板" +#: MacBundler/macbundler.cpp:164 +msgid "Icon File" +msgstr "图标文件" -#: DatabaseExplorer/SqlCommandPanel.cpp:309 -msgid "Insert UPDATE SQL statement template into editor." -msgstr "插入 UPDATE SQL 语句模板到编辑器。" +#: MacBundler/macbundler.cpp:166 +msgid "Bundle Identifier" +msgstr "Bundle 标识" -#: DatabaseExplorer/SqlCommandPanel.cpp:310 -msgid "Insert DELETE SQL template" -msgstr "插入 DELETE SQL 模板" +#: MacBundler/macbundler.cpp:168 +msgid "4-Character Signature" +msgstr "4-字符签名" -#: DatabaseExplorer/SqlCommandPanel.cpp:310 -msgid "Insert DELETE SQL statement template into editor." -msgstr "插入 DELETE SQL 语句模板到编辑器。" +#: MacBundler/macbundler.cpp:260 +msgid "Cannot access or create file!" +msgstr "无法访问或创建文件!" -#: DatabaseExplorer/SqlCommandPanel.cpp:367 -msgid "Copy value to clipboard" -msgstr "值复制到剪贴板" +#: MacBundler/macbundler.cpp:293 +msgid "Failed to write Info.plist file!" +msgstr "写入文件 Info.plist 失败!" -#: DatabaseExplorer/AdapterSelectDlg.cpp:17 -msgid "MySQL ERD" -msgstr "MySQL ERD" +#: MacBundler/macbundler.cpp:323 +msgid "Manage OS X app bundles" +msgstr "管理 OS X 应用 bundles" -#: DatabaseExplorer/AdapterSelectDlg.cpp:20 -msgid "MySQL ERD is not supported." -msgstr "MySQL ERD 是不支持的。" +#: MacBundler/macbundler.cpp:334 +msgid "No project is active, cannot continue." +msgstr "无活动项目,无法继续。" -#: DatabaseExplorer/AdapterSelectDlg.cpp:25 -msgid "SQLite ERD" -msgstr "SQLite ERD" +#: MacBundler/macbundler.cpp:339 +msgid "Cannot retrieve active project, cannot continue." +msgstr "无法恢复活动项目,无法继续。" -#: DatabaseExplorer/AdapterSelectDlg.cpp:28 -msgid "SQLite ERD is not supported." -msgstr "SQLite ERD 是不支持的。" +#: MacBundler/macbundler.cpp:361 +msgid "This menu item can only be invoked when right-clicking a project." +msgstr "该菜单项仅在右键单击一个项时调用。" -#: DatabaseExplorer/AdapterSelectDlg.cpp:33 -msgid "PostgreSQL ERD" -msgstr "PostgreSQL ERD" +#: MacBundler/macbundler.cpp:374 +msgid "Cannot continue, impossible to access project settings." +msgstr "不能访问项目设置,无法继续。" -#: DatabaseExplorer/AdapterSelectDlg.cpp:36 -msgid "PostgreSQL ERD is not supported." -msgstr "PostgreSQL ERD 是不支持的。" +#: MacBundler/macbundler.cpp:412 +#, c-format +msgid "" +"The following file:\n" +"%s\n" +"already exists, overwrite it?\n" +msgstr "" +"以下文件:\n" +"%s\n" +"已存在,是否覆盖?\n" -#: DatabaseExplorer/ClassGenerateDialog.cpp:99 -msgid "Virtual name cannot be empty" -msgstr "虚拟名称不能为空" +#: MacBundler/macbundler.cpp:414 cppchecker/cppchecker.cpp:524 +#: cppchecker/cppchecker.cpp:667 +msgid "Warning" +msgstr "警告" -#: DatabaseExplorer/ClassGenerateDialog.cpp:99 -#: DatabaseExplorer/ClassGenerateDialog.cpp:104 -#: CodeDesigner/codedesigneritemdlg.cpp:41 -#: CodeDesigner/codedesigneritemdlg.cpp:48 -#: CodeDesigner/codedesigneritemdlg.cpp:55 CodeDesigner/codedesigner.cpp:315 -#: CodeDesigner/codedesigner.cpp:328 CodeDesigner/codedesigner.cpp:475 -#: CodeDesigner/codedesigner.cpp:490 CodeDesigner/codedesigner.cpp:497 -#: CodeDesigner/codedesigner.cpp:511 QmakePlugin/qmakesettingsdlg.cpp:93 -#: QmakePlugin/qmakeplugin.cpp:373 QmakePlugin/qmakeplugin.cpp:430 -#: QmakePlugin/qmakeplugin.cpp:441 Plugin/workspace.cpp:235 -#: Plugin/workspace.cpp:417 Plugin/builder_gnumake.cpp:181 -#: Copyright/copyright.cpp:172 Copyright/copyright.cpp:179 -#: Copyright/copyright.cpp:185 Copyright/copyright.cpp:196 -#: Copyright/copyright.cpp:229 Copyright/copyright.cpp:287 -#: Copyright/copyright.cpp:342 Copyright/copyright.cpp:395 -#: Copyright/copyright.cpp:401 Copyright/copyright.cpp:412 -#: LiteEditor/renamesymboldlg.cpp:90 LiteEditor/newprojectdlg.cpp:227 -#: LiteEditor/compilerfiletypespage.cpp:50 LiteEditor/manager.cpp:1100 -#: LiteEditor/manager.cpp:2150 LiteEditor/manager.cpp:2202 -#: LiteEditor/manager.cpp:2687 LiteEditor/manager.cpp:2718 -#: LiteEditor/manager.cpp:2751 LiteEditor/FileExplorerTab.cpp:170 -#: LiteEditor/FileExplorerTab.cpp:217 LiteEditor/frame.cpp:2027 -#: LiteEditor/frame.cpp:3649 LiteEditor/frame.cpp:4019 -#: LiteEditor/compilerpatternspage.cpp:200 -#: LiteEditor/ps_custom_build_page.cpp:79 LiteEditor/movefuncimpldlg.cpp:81 -#: LiteEditor/memoryview.cpp:160 LiteEditor/depend_dlg_page.cpp:42 -#: LiteEditor/depend_dlg_page.cpp:175 LiteEditor/reconcileproject.cpp:166 -#: LiteEditor/reconcileproject.cpp:794 -#: LiteEditor/compilercompileroptionspage.cpp:70 -#: LiteEditor/syntaxhighlightdlg.cpp:258 -#: LiteEditor/configuration_manager_dlg.cpp:226 -#: LiteEditor/new_configuration_dlg.cpp:128 LiteEditor/fileview.cpp:615 -#: LiteEditor/fileview.cpp:1013 LiteEditor/fileview.cpp:1857 -#: LiteEditor/findresultstab.cpp:310 -#: LiteEditor/debugger_predefined_types_page.cpp:63 -#: LiteEditor/compilerlinkeroptionspage.cpp:68 -#: LiteEditor/tasks_find_what_dlg.cpp:50 LiteEditor/tabgroupspane.cpp:245 -#: LiteEditor/tabgroupspane.cpp:287 LiteEditor/tabgroupspane.cpp:481 -#: LiteEditor/tabgroupspane.cpp:550 LiteEditor/tabgroupspane.cpp:557 -#: LiteEditor/tabgroupspane.cpp:619 LiteEditor/tabgroupspane.cpp:660 -#: LiteEditor/tabgroupspane.cpp:665 LiteEditor/tabgroupspane.cpp:758 -#: LiteEditor/tabgroupspane.cpp:781 LiteEditor/acceltabledlg.cpp:275 -#: LiteEditor/cl_editor.cpp:1199 LiteEditor/cl_editor.cpp:1204 -#: LiteEditor/cl_editor.cpp:1246 LiteEditor/cl_editor.cpp:1251 -#: LiteEditor/cl_editor.cpp:1262 LiteEditor/cl_editor.cpp:1285 -#: LiteEditor/cl_editor.cpp:1926 LiteEditor/cl_editor.cpp:1961 -#: LiteEditor/new_item_dlg.cpp:139 LiteEditor/edit_workspace_conf_dlg.cpp:125 -#: LiteEditor/context_cpp.cpp:1230 LiteEditor/context_cpp.cpp:1669 -#: LiteEditor/context_cpp.cpp:1769 LiteEditor/context_cpp.cpp:1875 -#: wxformbuilder/wxformbuilder.cpp:232 wxformbuilder/wxformbuilder.cpp:245 -#: wxformbuilder/wxformbuilder.cpp:251 wxformbuilder/wxformbuilder.cpp:261 -#: wxformbuilder/wxformbuilder.cpp:304 wxformbuilder/wxfbitemdlg.cpp:51 -#: Gizmos/gizmos.cpp:329 Gizmos/gizmos.cpp:357 Gizmos/newclassdlg.cpp:236 -#: Gizmos/newclassdlg.cpp:249 Gizmos/newclassdlg.cpp:260 -#: Gizmos/newclassdlg.cpp:265 Gizmos/newclassdlg.cpp:272 -#: Gizmos/newclassdlg.cpp:279 Gizmos/newclassdlg.cpp:285 -#: Gizmos/newwxprojectdlg.cpp:81 Gizmos/newwxprojectdlg.cpp:89 -#: CodeLite/clprogressdlgbase.h:39 ExternalTools/externaltooldlg.cpp:95 -#: ExternalTools/newtooldlg.cpp:102 SnipWiz/editsnippetsdlg.cpp:195 -#: SnipWiz/swGlobals.h:50 abbreviation/abbreviation.cpp:290 -#: abbreviation/abbreviationssettingsdlg.cpp:102 -#: UnitTestCPP/unittestpp.cpp:194 UnitTestCPP/unittestpp.cpp:260 -#: UnitTestCPP/unittestpp.cpp:313 UnitTestCPP/unittestpp.cpp:394 -#: UnitTestCPP/testclassdlg.cpp:124 UnitTestCPP/testclassdlg.cpp:159 -msgid "CodeLite" -msgstr "CodeLite" +#: MacBundler/macbundler.cpp:426 +msgid "Could not create Info.plist file\n" +msgstr "无法创建 Info.plist 文件\n" -#: DatabaseExplorer/ClassGenerateDialog.cpp:104 -#: CodeDesigner/codedesigneritemdlg.cpp:55 -msgid "Folder name cannot be empty" -msgstr "文件夹名称不能为空" +#: MacBundler/macbundler.cpp:460 +msgid "Sorry, could not copy icon" +msgstr "抱歉,无法复制图标" -#: DatabaseExplorer/ClassGenerateDialog.cpp:119 -#: DatabaseExplorer/ClassGenerateDialog.cpp:126 -msgid "......... Generated successfully!\n" -msgstr "......... 成功生成文件!\n" +#: MacBundler/macbundler.cpp:468 +msgid "Sorry, could not convert selected icon to icns format" +msgstr "抱歉,无法转换选定的图标到icns格式" -#: DatabaseExplorer/ClassGenerateDialog.cpp:120 -#: DatabaseExplorer/ClassGenerateDialog.cpp:127 -msgid "......... Error!!!\n" -msgstr "......... 出现错误!!!\n" +#: MacBundler/macbundler.cpp:600 +msgid "Make active project output a bundle" +msgstr "使活动项目输出 bundle" -#: DatabaseExplorer/ClassGenerateDialog.cpp:166 -#, c-format -msgid "Table %s has no primary key defined!\n" -msgstr "表格 %s 主关键字未定义!\n" +#: MacBundler/macbundler.cpp:613 +msgid "MacBundler" +msgstr "MacBundler" -#: DatabaseExplorer/imageexportdialog.cpp:24 -msgid "Image path cannot be empty." -msgstr "图片路径不能为空。" +#: MacBundler/macbundler.cpp:636 +msgid "Make this project output a bundle" +msgstr "使活动项目输出 bundle" -#: DatabaseExplorer/imageexportdialog.cpp:24 -#: DatabaseExplorer/imageexportdialog.cpp:34 DatabaseExplorer/GUI.h:67 -msgid "Export image" -msgstr "导出图片" +#: HelpPlugin/HelpPluginUI.cpp:43 +msgid "Download Zeal" +msgstr "下载 Zeal" -#: DatabaseExplorer/imageexportdialog.cpp:34 -msgid "Canvas scale must be decimal value." -msgstr "画布比例必须为十进制值。" +#: HelpPlugin/HelpPluginUI.cpp:104 +msgid "Docsets" +msgstr "文档设置 " -#: DatabaseExplorer/imageexportdialog.cpp:54 -msgid "Export ERD to image..." -msgstr "导出 ERD 到图片…" +#: HelpPlugin/HelpPluginUI.cpp:107 +msgid "C/C++" +msgstr "C/C++" -#: DatabaseExplorer/DbSettingDialog.cpp:24 -msgid "File name" -msgstr "文件名称" +#: HelpPlugin/HelpPluginUI.cpp:107 +msgid "c++,net,boost,qt 4,qt 5,cvcpp,cocos2dx,c,manpages" +msgstr "c++,net,boost,qt 4,qt 5,cvcpp,cocos2dx,c,manpages" -#: DatabaseExplorer/DbSettingDialog.cpp:69 -msgid "MySQL connection is not supported." -msgstr "MySQL 连接是不支持的。" +#: HelpPlugin/HelpPluginUI.cpp:108 +msgid "" +"Set a list of docsets to use when requesting help while inside a C/C++ files " +"(comma separated list)" +msgstr "设置文件列表,在 C/C++ 文件中请求帮助时使用(以逗号分隔的列表)" -#: DatabaseExplorer/DbSettingDialog.cpp:97 -msgid "SQLite connection is not supported." -msgstr "SQLite 连接是不支持的。" +#: HelpPlugin/HelpPluginUI.cpp:110 CodeFormatter/codeformatterdlgbase.cpp:410 +#: CodeFormatter/codeformatterdlgbase.cpp:434 +msgid "PHP" +msgstr "PHP" -#: DatabaseExplorer/DbSettingDialog.cpp:163 -msgid "PostgreSQL connection is not supported." -msgstr "PostgreSQL 连接是不支持的。" +#: HelpPlugin/HelpPluginUI.cpp:110 +msgid "" +"php,wordpress,drupal,zend,laravel,yii,joomla,ee,codeigniter,cakephp,phpunit," +"symfony,typo3,twig,smarty,phpp,html,statamic,mysql,sqlite,mongodb,psql,redis," +"zend framework 1,zend framework 2" +msgstr "" +"php,wordpress,drupal,zend,laravel,yii,joomla,ee,codeigniter,cakephp,phpunit," +"symfony,typo3,twig,smarty,phpp,html,statamic,mysql,sqlite,mongodb,psql,redis," +"zend framework 1,zend framework 2" -#: DatabaseExplorer/FrameCanvas.cpp:114 -msgid "New view" -msgstr "新建视图" +#: HelpPlugin/HelpPluginUI.cpp:111 +msgid "" +"Set a list of docsets to use when requesting help while inside a PHP files " +"(comma separated list)" +msgstr "设置文件列表,在 PHP 文件中请求帮助时使用(以逗号分隔的列表)" -#: DatabaseExplorer/FrameCanvas.cpp:148 DatabaseExplorer/ErdPanel.cpp:148 -#: menu.xrc:781 menu.xrc:835 menu.xrc:1070 LiteEditor/frame.cpp:1104 -#: LiteEditor/frame.cpp:1231 LiteEditor/frame.cpp:1307 -#: LiteEditor/frame.cpp:1396 LiteEditor/wxcrafter.cpp:238 -msgid "Copy" -msgstr "复制" +#: HelpPlugin/HelpPluginUI.cpp:113 CMakePlugin/CMakePlugin.cpp:373 +#: CMakePlugin/CMakePlugin.cpp:378 +msgid "CMake" +msgstr "CMake" -#: DatabaseExplorer/FrameCanvas.cpp:149 DatabaseExplorer/ErdPanel.cpp:149 -#: menu.xrc:795 menu.xrc:832 LiteEditor/frame.cpp:1103 -#: LiteEditor/frame.cpp:1230 LiteEditor/frame.cpp:1306 -#: LiteEditor/frame.cpp:1395 -msgid "Cut" -msgstr "剪切" +#: HelpPlugin/HelpPluginUI.cpp:113 +msgid "cmake" +msgstr "cmake" -#: DatabaseExplorer/FrameCanvas.cpp:150 DatabaseExplorer/ErdPanel.cpp:150 -#: menu.xrc:784 menu.xrc:838 LiteEditor/frame.cpp:1105 -#: LiteEditor/frame.cpp:1232 LiteEditor/frame.cpp:1308 -#: LiteEditor/frame.cpp:1397 LiteEditor/wxcrafter.cpp:240 -msgid "Paste" -msgstr "粘贴" +#: HelpPlugin/HelpPluginUI.cpp:114 +msgid "" +"Set a list of docsets to use when requesting help while inside a CMake files " +"(comma separated list)" +msgstr "设置文件列表,在 CMake 文件中请求帮助时使用(以逗号分隔的列表)" -#: DatabaseExplorer/FrameCanvas.cpp:153 -msgid "Add new ERD table" -msgstr "添加新的 ERD 表格" +#: HelpPlugin/HelpPluginUI.cpp:116 +msgid "HTML" +msgstr "HTML" -#: DatabaseExplorer/FrameCanvas.cpp:154 -msgid "Add new ERD view" -msgstr "添加新的 ERD 视图" +#: HelpPlugin/HelpPluginUI.cpp:116 HelpPlugin/HelpPluginUI.cpp:119 +#: HelpPlugin/HelpPluginUI.cpp:122 +msgid "" +"html,svg,css,bootstrap,less,foundation,awesome,statamic,javascript,jquery," +"jqueryui,jquerym,angularjs,backbone,marionette,meteor,moo,prototype,ember," +"lodash,underscore,sencha,extjs,knockout,zepto,cordova,phonegap,yu" +msgstr "" +"html,svg,css,bootstrap,less,foundation,awesome,statamic,javascript,jquery," +"jqueryui,jquerym,angularjs,backbone,marionette,meteor,moo,prototype,ember," +"lodash,underscore,sencha,extjs,knockout,zepto,cordova,phonegap,yu" -#: DatabaseExplorer/FrameCanvas.cpp:157 -msgid "Copy diagram SQL to the clipboard" -msgstr "复制 SQL 图表到剪贴板" +#: HelpPlugin/HelpPluginUI.cpp:117 +msgid "" +"Set a list of docsets to use when requesting help while inside an HTML files " +"(comma separated list)" +msgstr "设置文件列表,在 HTML 文件中请求帮助时使用(以逗号分隔的列表)" -#: DatabaseExplorer/FrameCanvas.cpp:167 -msgid "Create foreign key for table" -msgstr "为表创建外部键" +#: HelpPlugin/HelpPluginUI.cpp:119 +msgid "CSS" +msgstr "CSS" -#: DatabaseExplorer/FrameCanvas.cpp:168 -msgid "Create view for table" -msgstr "为表创建视图" +#: HelpPlugin/HelpPluginUI.cpp:120 +msgid "" +"Set a list of docsets to use when requesting help while inside an CSS files " +"(comma separated list)" +msgstr "设置文件列表,在 CSS 文件中请求帮助时使用(以逗号分隔的列表)" -#: DatabaseExplorer/FrameCanvas.cpp:170 -msgid "Copy table SQL to the clipboard" -msgstr "复制表格SQL到剪贴板" +#: HelpPlugin/HelpPluginUI.cpp:122 WebTools/WebToolsBase.cpp:59 +msgid "JavaScript" +msgstr "JavaScript" -#: DatabaseExplorer/FrameCanvas.cpp:189 -msgid "newcol" -msgstr "新列" +#: HelpPlugin/HelpPluginUI.cpp:123 +msgid "" +"Set a list of docsets to use when requesting help while inside a JavaScript " +"files (comma separated list)" +msgstr "设置文件列表,在 JavaScript 文件中请求帮助时使用(以逗号分隔的列表)" -#: DatabaseExplorer/FrameCanvas.cpp:195 -msgid "Add drop table statement?" -msgstr "添加 删除表 语句吗?" +#: HelpPlugin/HelpPluginUI.cpp:125 CodeFormatter/codeformatterdlgbase.cpp:113 +msgid "Java" +msgstr "Java" -#: DatabaseExplorer/FrameCanvas.cpp:195 DatabaseExplorer/FrameCanvas.cpp:202 -#: DatabaseExplorer/FrameCanvas.cpp:276 -msgid "SQL export" -msgstr "导出 SQL" +#: HelpPlugin/HelpPluginUI.cpp:125 +msgid "java,javafx,grails,groovy,playjava,spring,cvj,processing" +msgstr "java,javafx,grails,groovy,playjava,spring,cvj,processing" -#: DatabaseExplorer/FrameCanvas.cpp:202 DatabaseExplorer/FrameCanvas.cpp:276 -msgid "SQL command has been copied to the clipboard." -msgstr "SQL 命令已经复制到剪贴板。" +#: HelpPlugin/HelpPluginUI.cpp:126 +msgid "" +"Set a list of docsets to use when requesting help while inside a Java files " +"(comma separated list)" +msgstr "设置文件列表,在 Java 文件中请求帮助时使用(以逗号分隔的列表)" -#: DatabaseExplorer/LogDialog.cpp:7 -msgid " --------------- Log starts at: " -msgstr "--------------- 日志开始于:" +#: HelpPlugin/HelpPluginUI.h:46 +msgid "Help Plugin Error" +msgstr "帮助插件错误" -#: DatabaseExplorer/ErdCommitWizard.cpp:50 -msgid "Wizard for creating db structure\n" -msgstr "数据库结构创建向导\n" +#: HelpPlugin/HelpPluginUI.h:74 ZoomNavigator/zoomnavigator.cpp:131 +#: codelite_terminal/wxcrafter.h:92 MemCheck/memcheckui.cpp:190 +#: LLDBDebugger/LLDBPlugin.cpp:227 WordCompletion/wordcompletion.cpp:66 +#: cppchecker/cppchecker.cpp:168 cppchecker/cppchecker.cpp:259 +#: cppchecker/cppchecker.cpp:275 cppchecker/cppchecker.cpp:289 +#: cppchecker/cppchecker.cpp:303 +msgid "Settings" +msgstr "设置" -#: DatabaseExplorer/ErdCommitWizard.cpp:51 +#: HelpPlugin/HelpPluginMessageDlg.cpp:8 msgid "" -"on ERD diagram base.\n" -"\n" +"The Help plugin uses 'Dash' for displaying the offline documentation\n" +"Please click the link below to download and install Dash" msgstr "" -"基于 ERD 图表。\n" -"\n" +"帮助插件使用“Dash”显示脱机文档\n" +"点击下面的链接下载并安装“Dash”" -#: DatabaseExplorer/ErdCommitWizard.cpp:52 -msgid "All tables which really exist in\n" -msgstr "数据库中的所有表\n" +#: HelpPlugin/HelpPluginMessageDlg.cpp:10 +msgid "Go to Dash website" +msgstr "转到 Dash 网站" + +#: HelpPlugin/HelpPluginMessageDlg.cpp:13 +msgid "" +"The Help plugin uses 'Zeal' for displaying the offline documentation\n" +"Please click the link below to download and install Zeal" +msgstr "" +"帮助插件使用“Zeal”显示脱机文档\n" +"点击下面的链接下载并安装“Zeal”" + +#: HelpPlugin/HelpPluginMessageDlg.cpp:15 +msgid "Go to Zeal website" +msgstr "转到 Zeal 网站" + +#: HelpPlugin/helpplugin.cpp:42 +msgid "Provide help based on selected words" +msgstr "提供基于所选关键字的帮助" + +#: HelpPlugin/helpplugin.cpp:43 +msgid "HelpPlugin" +msgstr "帮助插件" + +#: HelpPlugin/helpplugin.cpp:62 SnipWiz/snipwiz.cpp:155 +#: SpellChecker/spellcheck.cpp:197 CallGraph/callgraph.cpp:212 +#: CallGraph/uisettings.h:99 codelite_terminal/wxcrafter.cpp:65 +#: Tweaks/tweaks.cpp:107 SFTP/sftp.cpp:159 abbreviation/abbreviation.cpp:97 +#: CMakePlugin/CMakePlugin.cpp:358 QmakePlugin/qmakeplugin.cpp:164 +#: menu.xrc:1053 codelitephp/php-plugin/php.cpp:523 +#: wxformbuilder/wxformbuilder.cpp:120 WebTools/webtools.cpp:77 +#: CodeDesigner/codedesigner.cpp:133 Copyright/copyright.cpp:113 +msgid "Settings..." +msgstr "设置..." -#: DatabaseExplorer/ErdCommitWizard.cpp:53 -msgid "the database, will be deleted during\n" -msgstr "将被删除\n" +#: HelpPlugin/helpplugin.cpp:63 +msgid "Help Plugin" +msgstr "帮助插件" + +#: HelpPlugin/helpplugin.cpp:101 +msgid "Search the docs for '" +msgstr "从文档搜索“" -#: DatabaseExplorer/ErdCommitWizard.cpp:54 -msgid "this process, but you can do a backup\n" -msgstr "在此过程中,你可以做一个备份\n" +#: SnipWiz/snipwiz.cpp:86 +msgid "A small tool to add expandable code snippets and template classes" +msgstr "一个用于添加可扩展代码片段和模板类的小工具" -#: DatabaseExplorer/ErdCommitWizard.cpp:55 -msgid "in the second step." -msgstr "第二步" +#: SnipWiz/snipwiz.cpp:112 +msgid "Snippet wizard" +msgstr "片断向导" -#: DatabaseExplorer/ErdCommitWizard.cpp:74 -msgid "Select target database:" -msgstr "请选择项目数据库:" +#: SnipWiz/snipwiz.cpp:157 +msgid "Template class..." +msgstr "类模板..." -#: DatabaseExplorer/ErdCommitWizard.cpp:135 -msgid "The first time you have to select a target database!" -msgstr "首先你需要选择一个目标数据库!" +#: SnipWiz/snipwiz.cpp:184 +msgid "New Class from Template..." +msgstr "从模板新建类..." -#: DatabaseExplorer/ErdCommitWizard.cpp:149 -msgid "Backup data file" -msgstr "备份数据文件" +#: SnipWiz/snipwiz.cpp:217 +msgid "Enter identifier name" +msgstr "输入标识名称" -#: DatabaseExplorer/ErdCommitWizard.cpp:150 -msgid "data.sql" -msgstr "data.sql" +#: SnipWiz/snipwiz.cpp:217 SnipWiz/snipwiz.cpp:219 +msgid "switch(...)" +msgstr "转换(...)" -#: DatabaseExplorer/ErdCommitWizard.cpp:150 -#: DatabaseExplorer/ErdCommitWizard.cpp:156 -#: DatabaseExplorer/ErdCommitWizard.cpp:374 LiteEditor/context_cpp.cpp:2734 -msgid "Select file" -msgstr "选择文件" +#: SnipWiz/snipwiz.cpp:219 +msgid "Enter number of cases" +msgstr "输入情况数目" -#: DatabaseExplorer/ErdCommitWizard.cpp:153 -msgid "Backup database structure" -msgstr "备份数据库结构" +#: SnipWiz/snipwiz.cpp:219 +msgid "Cases:" +msgstr "情况:" -#: DatabaseExplorer/ErdCommitWizard.cpp:155 -msgid "Backup structure file" -msgstr "备份结构文件" +#: SnipWiz/snipwiz.cpp:352 +msgid "Paste buffer" +msgstr "粘贴缓冲区" -#: DatabaseExplorer/ErdCommitWizard.cpp:156 -msgid "structure.sql" -msgstr "structure.sql" +#: SnipWiz/snipwiz.cpp:356 +msgid "switch{...}" +msgstr "转换{...}" -#: DatabaseExplorer/ErdCommitWizard.cpp:160 -msgid "Backup!" -msgstr "备份!" +#: SnipWiz/snipwiz.cpp:493 SnipWiz/editsnippetsbasedlg.cpp:116 +msgid "Snippets" +msgstr "Snippets" -#: DatabaseExplorer/ErdCommitWizard.cpp:174 -msgid "" -"Backing up database data before changing the structure is really good idea. " -"Do you want to continue without doing so?" -msgstr "" -"在改变数据库结构前备份数据库数据是个不错的主意。您确定什么也不做就继续?" +#: SnipWiz/templateclassbasedlg.h:122 +msgid "Template Class Wizard" +msgstr "类模板向导" -#: DatabaseExplorer/ErdCommitWizard.cpp:174 -msgid "Backup" -msgstr "备份" +#: SnipWiz/editsnippetsbasedlg.h:100 +msgid "Edit Snippets" +msgstr "编辑片段" -#: DatabaseExplorer/ErdCommitWizard.cpp:197 -msgid "Data saved! " -msgstr "数据已保存!" +#: SnipWiz/swGlobals.h:49 Copyright/copyright.cpp:185 +msgid "There is no active editor\n" +msgstr "无活动的编辑器\n" -#: DatabaseExplorer/ErdCommitWizard.cpp:243 -msgid "Structure saved!" -msgstr "数据库结构已保存!" - -#: DatabaseExplorer/ErdCommitWizard.cpp:269 -msgid "Write log:" -msgstr "写入日志:" +#: SnipWiz/swGlobals.h:50 SnipWiz/editsnippetsdlg.cpp:184 +#: Plugin/builder_gnumake.cpp:164 Plugin/workspace.cpp:290 +#: Plugin/workspace.cpp:481 ExternalTools/externaltooldlg.cpp:91 +#: CodeLite/clprogressdlgbase.h:64 +#: abbreviation/abbreviationssettingsdlg.cpp:104 +#: LiteEditor/new_item_dlg.cpp:140 LiteEditor/fileview.cpp:666 +#: LiteEditor/fileview.cpp:1073 LiteEditor/fileview.cpp:1915 +#: LiteEditor/tabgroupspane.cpp:247 LiteEditor/tabgroupspane.cpp:289 +#: LiteEditor/tabgroupspane.cpp:489 LiteEditor/tabgroupspane.cpp:558 +#: LiteEditor/tabgroupspane.cpp:565 LiteEditor/tabgroupspane.cpp:627 +#: LiteEditor/tabgroupspane.cpp:668 LiteEditor/tabgroupspane.cpp:673 +#: LiteEditor/tabgroupspane.cpp:766 LiteEditor/tabgroupspane.cpp:789 +#: LiteEditor/memoryview.cpp:160 LiteEditor/new_configuration_dlg.cpp:128 +#: LiteEditor/NewProjectWizard.cpp:399 LiteEditor/ps_custom_build_page.cpp:90 +#: LiteEditor/CompilerMainPage.cpp:224 LiteEditor/CompilerMainPage.cpp:237 +#: LiteEditor/CompilerMainPage.cpp:249 LiteEditor/CompilerMainPage.cpp:859 +#: LiteEditor/reconcileproject.cpp:192 LiteEditor/reconcileproject.cpp:836 +#: LiteEditor/context_cpp.cpp:1219 LiteEditor/context_cpp.cpp:1651 +#: LiteEditor/context_cpp.cpp:1749 LiteEditor/context_cpp.cpp:1859 +#: LiteEditor/manager.cpp:1157 LiteEditor/manager.cpp:1969 +#: LiteEditor/manager.cpp:2032 LiteEditor/manager.cpp:2541 +#: LiteEditor/manager.cpp:2573 LiteEditor/manager.cpp:2605 +#: LiteEditor/acceltabledlg.cpp:185 LiteEditor/depend_dlg_page.cpp:42 +#: LiteEditor/depend_dlg_page.cpp:177 LiteEditor/cl_editor.cpp:1266 +#: LiteEditor/cl_editor.cpp:1274 LiteEditor/cl_editor.cpp:1322 +#: LiteEditor/cl_editor.cpp:1330 LiteEditor/cl_editor.cpp:1345 +#: LiteEditor/cl_editor.cpp:1371 LiteEditor/cl_editor.cpp:1970 +#: LiteEditor/cl_editor.cpp:2005 LiteEditor/tasks_find_what_dlg.cpp:77 +#: LiteEditor/FileExplorerTab.cpp:364 +#: LiteEditor/debugger_predefined_types_page.cpp:88 LiteEditor/frame.cpp:2535 +#: LiteEditor/movefuncimpldlg.cpp:81 LiteEditor/findresultstab.cpp:331 +#: LiteEditor/edit_workspace_conf_dlg.cpp:125 +#: LiteEditor/renamesymboldlg.cpp:91 +#: LiteEditor/configuration_manager_dlg.cpp:228 Gizmos/gizmos.cpp:333 +#: Gizmos/gizmos.cpp:359 Gizmos/newclassdlg.cpp:235 Gizmos/newclassdlg.cpp:248 +#: Gizmos/newclassdlg.cpp:259 Gizmos/newclassdlg.cpp:264 +#: Gizmos/newclassdlg.cpp:271 Gizmos/newclassdlg.cpp:278 +#: Gizmos/newclassdlg.cpp:284 Gizmos/newwxprojectdlg.cpp:78 +#: Gizmos/newwxprojectdlg.cpp:88 QmakePlugin/qmakesettingsdlg.cpp:119 +#: QmakePlugin/qmakeplugin.cpp:448 QmakePlugin/qmakeplugin.cpp:506 +#: QmakePlugin/qmakeplugin.cpp:518 +#: codelitephp/php-plugin/php_workspace_view.cpp:393 +#: wxformbuilder/wxformbuilder.cpp:246 wxformbuilder/wxformbuilder.cpp:261 +#: wxformbuilder/wxformbuilder.cpp:269 wxformbuilder/wxformbuilder.cpp:281 +#: wxformbuilder/wxformbuilder.cpp:326 wxformbuilder/wxfbitemdlg.cpp:51 +#: CodeDesigner/codedesigner.cpp:315 CodeDesigner/codedesigner.cpp:328 +#: CodeDesigner/codedesigner.cpp:475 CodeDesigner/codedesigner.cpp:490 +#: CodeDesigner/codedesigner.cpp:497 CodeDesigner/codedesigner.cpp:511 +#: CodeDesigner/codedesigneritemdlg.cpp:41 +#: CodeDesigner/codedesigneritemdlg.cpp:48 +#: CodeDesigner/codedesigneritemdlg.cpp:55 +#: DatabaseExplorer/ClassGenerateDialog.cpp:126 +#: DatabaseExplorer/ClassGenerateDialog.cpp:131 Copyright/copyright.cpp:172 +#: Copyright/copyright.cpp:179 Copyright/copyright.cpp:185 +#: Copyright/copyright.cpp:196 Copyright/copyright.cpp:229 +#: Copyright/copyright.cpp:287 Copyright/copyright.cpp:342 +#: Copyright/copyright.cpp:395 Copyright/copyright.cpp:401 +#: Copyright/copyright.cpp:412 UnitTestCPP/unittestpp.cpp:226 +#: UnitTestCPP/unittestpp.cpp:295 UnitTestCPP/unittestpp.cpp:352 +#: UnitTestCPP/unittestpp.cpp:419 UnitTestCPP/testclassdlg.cpp:119 +#: UnitTestCPP/testclassdlg.cpp:154 +msgid "CodeLite" +msgstr "CodeLite" -#: DatabaseExplorer/ErdCommitWizard.cpp:276 -msgid "Write !!" -msgstr "写入!!" +#: SnipWiz/templateclassbasedlg.cpp:35 wxformbuilder/wxfbitembasedlg.cpp:91 +#: DatabaseExplorer/GUI.cpp:1149 +msgid "Generate" +msgstr "生成" -#: DatabaseExplorer/ErdCommitWizard.cpp:277 -msgid "Show SQL" -msgstr "显示 SQL" +#: SnipWiz/templateclassbasedlg.cpp:40 +#: CodeFormatter/codeformatterdlgbase.cpp:132 +msgid "Class" +msgstr "类" -#: DatabaseExplorer/ErdCommitWizard.cpp:316 -msgid "Data structure written successfully!" -msgstr "数据结构成功写入!" +#: SnipWiz/templateclassbasedlg.cpp:51 wxformbuilder/wxfbitembasedlg.cpp:49 +#: UnitTestCPP/testclassbasedlg.cpp:50 +msgid "Class name:" +msgstr "类名称:" -#: DatabaseExplorer/ErdCommitWizard.cpp:332 -msgid "Unknown error!" -msgstr "未知错误!" +#: SnipWiz/templateclassbasedlg.cpp:56 +msgid "Name of new class" +msgstr "新类名称" -#: DatabaseExplorer/ErdCommitWizard.cpp:338 -msgid "Would you like to continue without writing the database structure?" -msgstr "你是否确认不编辑数据库结构就继续?" +#: SnipWiz/templateclassbasedlg.cpp:64 DatabaseExplorer/GUI.cpp:1117 +msgid "Template:" +msgstr "模板:" -#: DatabaseExplorer/ErdCommitWizard.cpp:338 -msgid "Question" -msgstr "问题" +#: SnipWiz/templateclassbasedlg.cpp:70 +msgid "Template for new class" +msgstr "新类的模板" -#: DatabaseExplorer/ErdCommitWizard.cpp:354 -msgid "Writing structure ended.\n" -msgstr "写入结构结束。\n" +#: SnipWiz/templateclassbasedlg.cpp:74 +msgid "Files" +msgstr "文件" -#: DatabaseExplorer/ErdCommitWizard.cpp:372 -msgid "File for data restore:" -msgstr "数据恢复文件:" +#: SnipWiz/templateclassbasedlg.cpp:85 +msgid ".h filename:" +msgstr ".h 文件名:" -#: DatabaseExplorer/ErdCommitWizard.cpp:378 -msgid "Restore log:" -msgstr "恢复日志:" +#: SnipWiz/templateclassbasedlg.cpp:90 +msgid "Name of header file" +msgstr "头文件名称" -#: DatabaseExplorer/ErdCommitWizard.cpp:384 -msgid "Restore" -msgstr "还原" +#: SnipWiz/templateclassbasedlg.cpp:99 +msgid ".cpp filename:" +msgstr ".cpp 文件名:" -#: DatabaseExplorer/ErdCommitWizard.cpp:426 -#: DatabaseExplorer/DbViewerPanel.cpp:733 -msgid "Successful!" -msgstr "操作成功!" +#: SnipWiz/templateclassbasedlg.cpp:104 +msgid "Name of source file" +msgstr "源文件名称" -#: DatabaseExplorer/ErdCommitWizard.cpp:439 -#: DatabaseExplorer/DbViewerPanel.cpp:746 -msgid "Fail!" -msgstr "失败!" +#: SnipWiz/templateclassbasedlg.cpp:113 wxformbuilder/wxfbitembasedlg.cpp:71 +#: CodeDesigner/codedesigneritembasedlg.cpp:77 +msgid "Project tree folder:" +msgstr "项目树文件夹:" -#: DatabaseExplorer/GUI.h:133 -msgid "Select dbAdapter" -msgstr "选择dbAdapter" +#: SnipWiz/templateclassbasedlg.cpp:119 +msgid "Virtual folder to add new files" +msgstr "虚拟文件夹添加新文件" -#: DatabaseExplorer/GUI.h:215 -msgid "Connection settings" -msgstr "连接设置" +#: SnipWiz/templateclassbasedlg.cpp:126 SnipWiz/templateclassbasedlg.cpp:143 +#: SnipWiz/editsnippetsbasedlg.cpp:81 LiteEditor/newworkspacebasedlg.cpp:68 +#: LiteEditor/tabgroupbasedlgs.cpp:54 +#: LiteEditor/project_settings_base_dlg.cpp:433 +#: LiteEditor/project_settings_base_dlg.cpp:824 Gizmos/newclassbasedlg.cpp:318 +#: codelitephp/php-plugin/new_class.cpp:97 +#: codelitephp/php-plugin/new_class.cpp:114 +#: wxformbuilder/wxfbitembasedlg.cpp:80 +#: wxformbuilder/formbuildsettingsbasedlg.cpp:60 +#: CodeDesigner/codedesignersettingsbasedlg.cpp:35 +#: CodeDesigner/codedesigneritembasedlg.cpp:90 DatabaseExplorer/GUI.cpp:1113 +#: Copyright/copyrights_options_base_dlg.cpp:60 +#: UnitTestCPP/testclassbasedlg.cpp:57 +msgid "..." +msgstr "..." -#: DatabaseExplorer/GUI.h:265 -msgid "Create foreign key" -msgstr "为表创建外部键" +#: SnipWiz/templateclassbasedlg.cpp:127 +msgid "Browse virtual folders" +msgstr "浏览虚拟文件夹" -#: DatabaseExplorer/GUI.h:284 -msgid "Database log" -msgstr "数据库日志" +#: SnipWiz/templateclassbasedlg.cpp:131 Plugin/sftp_ui.cpp:304 +#: codelitephp/php-plugin/php_ui.cpp:171 codelitephp/php-plugin/php_ui.cpp:280 +msgid "Path:" +msgstr "路径:" -#: DatabaseExplorer/GUI.h:304 -msgid "View settings" -msgstr "查看设置" +#: SnipWiz/templateclassbasedlg.cpp:136 +msgid "Hd folder to add new files" +msgstr "Hd 文件夹添加新文件" -#: DatabaseExplorer/GUI.h:338 -msgid "Class generator dialog" -msgstr "类生成对话框" +#: SnipWiz/templateclassbasedlg.cpp:144 +msgid "Browse folders" +msgstr "浏览文件夹" -#: DatabaseExplorer/GUI.h:354 -msgid "SQL Preview" -msgstr "SQL预览" +#: SnipWiz/templateclassbasedlg.cpp:154 +msgid "&Generate" +msgstr "生成(&G)" -#: DatabaseExplorer/GUI.h:418 -msgid "Table settings" -msgstr "表设置" +#: SnipWiz/templateclassbasedlg.cpp:160 +msgid "&Quit" +msgstr "推出(&Q)" -#: DatabaseExplorer/DbViewerPanel.cpp:43 -msgid "Open connection" -msgstr "打开连接" +#: SnipWiz/templateclassbasedlg.cpp:165 +#: LiteEditor/editorsettingscommentsdoxygenpanelbase.cpp:43 +msgid "Templates" +msgstr "模板" -#: DatabaseExplorer/DbViewerPanel.cpp:43 -msgid "Open new connection" -msgstr "打开新连接" +#: SnipWiz/templateclassbasedlg.cpp:174 +msgid "Class:" +msgstr "类:" -#: DatabaseExplorer/DbViewerPanel.cpp:44 DatabaseExplorer/DbViewerPanel.cpp:45 -msgid "tool" -msgstr "工具" +#: SnipWiz/templateclassbasedlg.cpp:186 SnipWiz/editsnippetsbasedlg.cpp:98 +#: SpellChecker/spellcheck.cpp:435 SpellChecker/wxcrafter.cpp:222 +#: Subversion2/subversion2.cpp:329 LiteEditor/compiler_pages.cpp:372 +#: LiteEditor/compiler_pages.cpp:407 LiteEditor/reconcileprojectbase.cpp:308 +#: LiteEditor/reconcileprojectbase.cpp:340 +#: LiteEditor/reconcileprojectbase.cpp:371 +#: cppchecker/cppchecksettingsdlgbase.cpp:132 +#: cppchecker/cppchecksettingsdlgbase.cpp:170 +#: cppchecker/cppchecksettingsdlgbase.cpp:221 +#: cppchecker/cppchecksettingsdlgbase.cpp:276 +#: cppchecker/cppchecksettingsdlgbase.cpp:309 +msgid "Add" +msgstr "添加" -#: DatabaseExplorer/DbViewerPanel.cpp:44 -msgid "Close selected connection" -msgstr "关闭已选择连接" +#: SnipWiz/templateclassbasedlg.cpp:191 SnipWiz/editsnippetsbasedlg.cpp:101 +#: SpellChecker/wxcrafter.cpp:213 +msgid "Change" +msgstr "更改" -#: DatabaseExplorer/DbViewerPanel.cpp:45 Plugin/wxcrafter_plugin.cpp:118 -#: Subversion2/subversion_view.cpp:192 -msgid "Refresh View" -msgstr "刷新视图" +#: SnipWiz/templateclassbasedlg.cpp:195 SnipWiz/editsnippetsbasedlg.cpp:104 +#: LiteEditor/reconcileprojectbase.cpp:312 +#: LiteEditor/reconcileprojectbase.cpp:344 +#: LiteEditor/reconcileprojectbase.cpp:375 menu.xrc:1134 +#: cppchecker/cppchecksettingsdlgbase.cpp:137 +#: cppchecker/cppchecksettingsdlgbase.cpp:175 +#: cppchecker/cppchecksettingsdlgbase.cpp:226 +#: cppchecker/cppchecksettingsdlgbase.cpp:281 +#: cppchecker/cppchecksettingsdlgbase.cpp:314 +msgid "Remove" +msgstr "移除" -#: DatabaseExplorer/DbViewerPanel.cpp:46 -msgid "ERD" -msgstr "ERD" +#: SnipWiz/templateclassbasedlg.cpp:199 Plugin/sftp_ui.cpp:456 +#: codelite_terminal/wxcrafter.cpp:57 LiteEditor/new_build_tab.cpp:1055 +#: LiteEditor/setters_getters.cpp:88 LiteEditor/tags_options_base_dlg.cpp:510 +#: cppchecker/cppchecksettingsdlgbase.cpp:142 +#: cppchecker/cppchecksettingsdlgbase.cpp:286 +#: cppchecker/cppchecksettingsdlgbase.cpp:319 +#: UnitTestCPP/testclassbasedlg.cpp:115 +msgid "Clear" +msgstr "清除" -#: DatabaseExplorer/DbViewerPanel.cpp:46 -msgid "Open ERD View" -msgstr "打开ERD视图" +#: SnipWiz/templateclassbasedlg.cpp:203 +msgid "%CLASS%" +msgstr "%CLASS%" -#: DatabaseExplorer/DbViewerPanel.cpp:47 -msgid "Show ERD Thumbnail" -msgstr "显示 ERD 缩略图" +#: SnipWiz/templateclassbasedlg.cpp:213 +#: LiteEditor/project_settings_base_dlg.cpp:280 +msgid "Header File" +msgstr "头文件" -#: DatabaseExplorer/DbViewerPanel.cpp:345 -#: DatabaseExplorer/DbViewerPanel.cpp:366 -#: DatabaseExplorer/DbViewerPanel.cpp:378 -msgid "Open SQL panel" -msgstr "打开SQL命令面板" +#: SnipWiz/templateclassbasedlg.cpp:257 +msgid "Implementation File" +msgstr "实现文件" -#: DatabaseExplorer/DbViewerPanel.cpp:345 -msgid "Open SQL command panel for the database" -msgstr "为此数据库打开SQL命令面板" +#: SnipWiz/editsnippetsdlg.cpp:78 SnipWiz/editsnippetsdlg.cpp:103 +msgid "Menu entry is not unique!" +msgstr "菜单项不唯一!" -#: DatabaseExplorer/DbViewerPanel.cpp:348 -#: DatabaseExplorer/DbViewerPanel.cpp:474 -msgid "Drop database" -msgstr "删除数据库" +#: SnipWiz/editsnippetsdlg.cpp:184 +msgid "That accelerator already exists" +msgstr "此快捷键已存在" -#: DatabaseExplorer/DbViewerPanel.cpp:348 -msgid "Run SQL command for deleting Database" -msgstr "为正在删除的数据库运行 SQL 命令" +#: SnipWiz/templateclassdlg.cpp:122 +msgid "Select output folder" +msgstr "选择输出文件夹" -#: DatabaseExplorer/DbViewerPanel.cpp:351 -msgid "Create ERD from DB" -msgstr "从DB创建ERD" +#: SnipWiz/templateclassdlg.cpp:161 +msgid "Files successfully created." +msgstr "文件成功创建。" -#: DatabaseExplorer/DbViewerPanel.cpp:351 -msgid "Create ERD diagram from the database" -msgstr "为当前数据库创建ERD图" +#: SnipWiz/templateclassdlg.cpp:169 +msgid "Add template class" +msgstr "添加模板类" -#: DatabaseExplorer/DbViewerPanel.cpp:352 -msgid "Create classes from DB" -msgstr "为DB创建类" +#: SnipWiz/templateclassdlg.cpp:175 +msgid "Adding the template class failed" +msgstr "添加模板类失败" -#: DatabaseExplorer/DbViewerPanel.cpp:352 -msgid "Create C++ classes for the database" -msgstr "为数据库创建 C++ 类" +#: SnipWiz/templateclassdlg.cpp:175 +msgid "Oops" +msgstr "哎呦" -#: DatabaseExplorer/DbViewerPanel.cpp:355 -msgid "Import database from file" -msgstr "从文件导入数据库" +#: SnipWiz/templateclassdlg.cpp:213 +msgid "" +"Class exists!\n" +"Overwrite?" +msgstr "" +"类存在!\n" +"是否覆盖?" -#: DatabaseExplorer/DbViewerPanel.cpp:355 -msgid "Run SQL commands stored in *.sql file" -msgstr "运行储存在 *.sql 文件中的 SQL 命令" +#: SnipWiz/templateclassdlg.cpp:213 +msgid "Add class" +msgstr "添加类" -#: DatabaseExplorer/DbViewerPanel.cpp:356 -msgid "Export database to file" -msgstr "导出数据库到文件" +#: SnipWiz/templateclassdlg.cpp:242 +msgid "" +"That class doesn't exist!\n" +"Try again?" +msgstr "" +"该类不存在!\n" +"是否重试?" -#: DatabaseExplorer/DbViewerPanel.cpp:356 -msgid "Export database CREATE SQL statements into *.sql file" -msgstr "导出 CREATE SQL 语句到 *.sql 文件" +#: SnipWiz/templateclassdlg.cpp:242 +msgid "Change class" +msgstr "更改类" -#: DatabaseExplorer/DbViewerPanel.cpp:359 -msgid "Dump data to file" -msgstr "转储数据到文件" +#: SnipWiz/templateclassdlg.cpp:335 +msgid "" +"File already exists!\n" +"\n" +" Overwrite?" +msgstr "" +"文件已存在!\n" +"\n" +" 覆盖?" -#: DatabaseExplorer/DbViewerPanel.cpp:359 -msgid "Dump data from database into .sql file" -msgstr "从数据库中转储数据到 .sql 文件" +#: SnipWiz/templateclassdlg.cpp:336 +msgid "Generate class files" +msgstr "生成类文件" -#: DatabaseExplorer/DbViewerPanel.cpp:366 -msgid "Open SQL command panel for the table" -msgstr "为该表打开 SQL 命令面板" +#: SnipWiz/editsnippetsbasedlg.cpp:64 +msgid "Menu Entry:" +msgstr "菜单项:" -#: DatabaseExplorer/DbViewerPanel.cpp:369 -#: DatabaseExplorer/DbViewerPanel.cpp:536 -msgid "Drop table" -msgstr "删除表" +#: SnipWiz/editsnippetsbasedlg.cpp:74 +msgid "Keyboard Shortcut:" +msgstr "快捷键:" -#: DatabaseExplorer/DbViewerPanel.cpp:369 -msgid "Run SQL command to delete the table" -msgstr "运行 SQL 命令以删除该表" +#: SnipWiz/editsnippetsbasedlg.cpp:86 +msgid "" +"Use $ as placeholder for the selection and @ to set the caret position.\n" +"e.g. for($ = 0; $ < @; $++)\n" +"NOTE:\n" +"If your snippet contains @ or $, you can escape the placeholders with a " +"backslash: \\@ OR \\$ " +msgstr "" +"使用 $ 作为选择的占位符并使用 @ 来设置插入符号的位置。\n" +"例如:for($ = 0; $ < @; $++)\n" +"注意:\n" +"如果您的片段包含 @ 或 $,您可以通过反斜杠符号来避免使用占位符: \\@ 或者 \\$" -#: DatabaseExplorer/DbViewerPanel.cpp:372 -msgid "Create ERD from Table" -msgstr "从当前表创建 ERD" +#: SnipWiz/editsnippetsbasedlg.cpp:127 LiteEditor/wxcAboutDlg.cpp:35 +msgid "About" +msgstr "关于" -#: DatabaseExplorer/DbViewerPanel.cpp:372 -msgid "Create ERD diagram from the table" -msgstr "从当前表创建 ERD 表" +#: SnipWiz/editsnippetsbasedlg.cpp:134 LiteEditor/quickfindbar.cpp:92 +#: LiteEditor/batchbuildbasedlg.cpp:97 LiteEditor/wxcrafter.cpp:645 +#: LiteEditor/findinfiles_dlg.cpp:246 LiteEditor/frame.cpp:1312 +#: LiteEditor/frame.cpp:1528 LiteEditor/frame.cpp:1665 +#: LiteEditor/frame.cpp:1814 LiteEditor/edit_configuration.cpp:100 +#: menu.xrc:707 menu.xrc:718 menu.xrc:727 +#: DatabaseExplorer/DbViewerPanel.cpp:483 DatabaseExplorer/GUI.cpp:903 +msgid "Close" +msgstr "关闭" -#: DatabaseExplorer/DbViewerPanel.cpp:373 -msgid "Create classes from Table" -msgstr "为当前表创建类" +#: SpellChecker/spellcheck.cpp:77 +msgid "CodeLite spell checker" +msgstr "CodeLite 拼写检查" + +#: SpellChecker/spellcheck.cpp:115 +msgid "CodeLite spell-checker" +msgstr "CodeLite spell-checker" + +#: SpellChecker/spellcheck.cpp:154 SpellChecker/spellcheck.cpp:165 +msgid "Check spelling..." +msgstr "正在进行拼写检查..." + +#: SpellChecker/spellcheck.cpp:156 SpellChecker/spellcheck.cpp:167 +msgid "Run spell-checker" +msgstr "运行 spell-checker" + +#: SpellChecker/spellcheck.cpp:158 SpellChecker/spellcheck.cpp:169 +#: SpellChecker/spellcheck.cpp:213 +msgid "Check continuous" +msgstr "连续检查" + +#: SpellChecker/spellcheck.cpp:160 +msgid "Run continuous check" +msgstr "运行连续检查" + +#: SpellChecker/spellcheck.cpp:171 SpellChecker/spellcheck.cpp:213 +msgid "Start continuous check" +msgstr "开始连续检查" + +#: SpellChecker/spellcheck.cpp:210 +msgid "Check..." +msgstr "检查..." + +#: SpellChecker/spellcheck.cpp:430 +msgid "No suggestions" +msgstr "无建议" -#: DatabaseExplorer/DbViewerPanel.cpp:373 -msgid "Create C++ classes for the table" -msgstr "为当前表创建C++类" +#: SpellChecker/spellcheck.cpp:434 SpellChecker/wxcrafter.cpp:218 +#: Subversion2/subversion2.cpp:366 codelitephp/PHPParser/php_workspace.cpp:467 +msgid "Ignore" +msgstr "忽略" -#: DatabaseExplorer/DbViewerPanel.cpp:378 -msgid "Open SQL command panel for the view" -msgstr "为该视图打开 SQL 命令面板" +#: SpellChecker/spellcheck.cpp:495 +msgid "Spell Checker" +msgstr "拼写检查" + +#: SpellChecker/wxcrafter.h:76 +msgid "SpellChecker Settings" +msgstr "拼写检查设置" + +#: SpellChecker/wxcrafter.h:113 +msgid "Misspelling found!" +msgstr "发现拼写错误!" + +#: SpellChecker/wxcrafter.cpp:33 +msgid "Dictionary path:" +msgstr "词典路径:" + +#: SpellChecker/wxcrafter.cpp:37 git/gitui.cpp:789 +#: Subversion2/subversion2_ui.cpp:1089 LiteEditor/reconcileprojectbase.cpp:264 +#: LiteEditor/ps_debugger_page.cpp:159 LLDBDebugger/UI.cpp:676 +#: CMakePlugin/CMakePluginUi.cpp:238 CMakePlugin/CMakePluginUi.cpp:247 +#: codelitephp/php-plugin/php_ui.cpp:284 codelitephp/php-plugin/php_ui.cpp:698 +#: codelitephp/php-plugin/php_ui.cpp:1001 +#: codelitephp/php-plugin/php_ui.cpp:1799 DatabaseExplorer/GUI.cpp:1091 +msgid "Select a folder" +msgstr "选择文件夹" -#: DatabaseExplorer/DbViewerPanel.cpp:381 -#: DatabaseExplorer/DbViewerPanel.cpp:552 -msgid "Drop view" -msgstr "删除视图" +#: SpellChecker/wxcrafter.cpp:38 +msgid "Select the location of the installed dictionaries" +msgstr "选择安装的词典的位置" + +#: SpellChecker/wxcrafter.cpp:42 +msgid "Find dictionaries on the web.." +msgstr "在网络上查找字典..." + +#: SpellChecker/wxcrafter.cpp:58 +msgid "Dictionary base name:" +msgstr "词典基本名称:" + +#: SpellChecker/wxcrafter.cpp:77 +msgid "Check The Following:" +msgstr "检查以下项目:" + +#: SpellChecker/wxcrafter.cpp:81 WebTools/WebToolsBase.cpp:108 +msgid "Strings" +msgstr "字符串" + +#: SpellChecker/wxcrafter.cpp:86 +msgid "CPP comments" +msgstr "CPP 注释" + +#: SpellChecker/wxcrafter.cpp:91 +msgid "C comments" +msgstr "C 注释" + +#: SpellChecker/wxcrafter.cpp:96 +msgid "doxygen */" +msgstr "程序生成 */" + +#: SpellChecker/wxcrafter.cpp:101 +msgid "doxygen ///" +msgstr "程序生成 ///" + +#: SpellChecker/wxcrafter.cpp:106 +msgid "Clear ignore list" +msgstr "清除忽略列表" + +#: SpellChecker/wxcrafter.cpp:107 +msgid "Clear the ignore list" +msgstr "清除该忽略列表" + +#: SpellChecker/wxcrafter.cpp:174 +msgid "Misspelling:" +msgstr "拼写错误:" + +#: SpellChecker/wxcrafter.cpp:193 +msgid "Suggestions:" +msgstr "建议:" + +#: SpellChecker/wxcrafter.cpp:226 LiteEditor/tags_options_base_dlg.cpp:269 +msgid "Suggest" +msgstr "建议" + +#: SpellChecker/IHunSpell.cpp:94 +msgid "Could not find aff file!" +msgstr "找不到 aff 文件!" + +#: SpellChecker/IHunSpell.cpp:100 +msgid "Could not find dictionary file!" +msgstr "找不到字典文件!" + +#: SpellChecker/IHunSpell.cpp:108 +msgid "Could not initialize spelling engine!" +msgstr "不能初始化拼写引擎!" + +#: SpellChecker/IHunSpell.cpp:220 SpellChecker/IHunSpell.cpp:304 +msgid "No spelling errors found!" +msgstr "未发现拼写错误!" + +#: SpellChecker/IHunSpell.cpp:394 +msgid "en_CA" +msgstr "en_CA" -#: DatabaseExplorer/DbViewerPanel.cpp:381 -msgid "Run SQL command to delete the view" -msgstr "运行 SQL 命令以删除该视图" +#: CLgtk3-install/share/codelite/templates/projects/executable-wx-frame/gui.cpp:19 +#: CL-standalone-install/share/codelite/templates/projects/executable-wx-frame/gui.cpp:19 +#: CL-installRel/share/codelite/templates/projects/executable-wx-frame/gui.cpp:19 +#: Runtime/templates/projects/executable-wx-frame/gui.cpp:19 +#: CL-install/share/codelite/templates/projects/executable-wx-frame/gui.cpp:19 +#: menu.xrc:73 +msgid "E&xit" +msgstr "退出(&X)" -#: DatabaseExplorer/DbViewerPanel.cpp:406 -msgid "Close connection?" -msgstr "关闭连接?" +#: CLgtk3-install/share/codelite/templates/projects/executable-wx-frame/gui.cpp:22 +#: CL-standalone-install/share/codelite/templates/projects/executable-wx-frame/gui.cpp:22 +#: CL-installRel/share/codelite/templates/projects/executable-wx-frame/gui.cpp:22 +#: Runtime/templates/projects/executable-wx-frame/gui.cpp:22 +#: CL-install/share/codelite/templates/projects/executable-wx-frame/gui.cpp:22 +#: menu.xrc:4 +msgid "&File" +msgstr "文件(&F)" -#: DatabaseExplorer/DbViewerPanel.cpp:406 DatabaseExplorer/GUI.cpp:785 -#: menu.xrc:638 menu.xrc:649 menu.xrc:658 LiteEditor/frame.cpp:1101 -#: LiteEditor/frame.cpp:1228 LiteEditor/frame.cpp:1304 -#: LiteEditor/frame.cpp:1393 LiteEditor/wxcrafter.cpp:791 -#: LiteEditor/batchbuildbasedlg.cpp:72 LiteEditor/edit_configuration.cpp:100 -#: LiteEditor/findinfiles_dlg.cpp:221 LiteEditor/quickfindbarbase.cpp:38 -#: SnipWiz/editsnippetsbasedlg.cpp:109 -msgid "Close" -msgstr "关闭" +#: CLgtk3-install/share/codelite/templates/projects/executable-wxcrafter-dialog/wxcrafter.h:22 +#: CL-standalone-install/share/codelite/templates/projects/executable-wxcrafter-dialog/wxcrafter.h:22 +#: CL-installRel/share/codelite/templates/projects/executable-wxcrafter-dialog/wxcrafter.h:22 +#: Runtime/templates/projects/executable-wxcrafter-dialog/wxcrafter.h:22 +#: CL-install/share/codelite/templates/projects/executable-wxcrafter-dialog/wxcrafter.h:22 +msgid "My Dialog" +msgstr "我的对话框" -#: DatabaseExplorer/DbViewerPanel.cpp:446 -msgid "Database name" -msgstr "数据库名" +#: CLgtk3-install/share/codelite/templates/projects/executable-wxcrafter-dialog/wxcrafter.cpp:33 +#: Plugin/VirtualDirectorySelectorBase.cpp:77 +#: Subversion2/subversion2_ui.cpp:685 +#: CL-standalone-install/share/codelite/templates/projects/executable-wxcrafter-dialog/wxcrafter.cpp:33 +#: CL-installRel/share/codelite/templates/projects/executable-wxcrafter-dialog/wxcrafter.cpp:33 +#: Runtime/templates/projects/executable-wxcrafter-dialog/wxcrafter.cpp:33 +#: CL-install/share/codelite/templates/projects/executable-wxcrafter-dialog/wxcrafter.cpp:33 +#: codelitephp/php-plugin/XDebugManager.cpp:741 +#: CodeDesigner/codedesigneritembasedlg.cpp:105 DatabaseExplorer/GUI.cpp:841 +#: DatabaseExplorer/GUI.cpp:1017 DatabaseExplorer/GUI.cpp:1241 +#: DatabaseExplorer/GUI.cpp:1447 +msgid "OK" +msgstr "确定" -#: DatabaseExplorer/DbViewerPanel.cpp:446 -msgid "Add database" -msgstr "添加数据库" +#: CLgtk3-install/share/codelite/templates/projects/executable-wxcrafter-frame/MainFrame.cpp:23 +#: CL-standalone-install/share/codelite/templates/projects/executable-wxcrafter-frame/MainFrame.cpp:23 +#: CL-installRel/share/codelite/templates/projects/executable-wxcrafter-frame/MainFrame.cpp:23 +#: Runtime/templates/projects/executable-wxcrafter-frame/MainFrame.cpp:23 +#: CL-install/share/codelite/templates/projects/executable-wxcrafter-frame/MainFrame.cpp:23 +msgid "My MainFrame" +msgstr "我的主机" -#: DatabaseExplorer/DbViewerPanel.cpp:456 -msgid "Database created successfully" -msgstr "数据库创建成功" +#: CLgtk3-install/share/codelite/templates/projects/executable-wxcrafter-frame/MainFrame.cpp:24 +#: codelite_terminal/MainFrame.cpp:109 +#: CL-standalone-install/share/codelite/templates/projects/executable-wxcrafter-frame/MainFrame.cpp:24 +#: CL-installRel/share/codelite/templates/projects/executable-wxcrafter-frame/MainFrame.cpp:24 +#: Runtime/templates/projects/executable-wxcrafter-frame/MainFrame.cpp:24 +#: CL-install/share/codelite/templates/projects/executable-wxcrafter-frame/MainFrame.cpp:24 +msgid "GPL v2 or later" +msgstr "GPL v2 or later" -#: DatabaseExplorer/DbViewerPanel.cpp:461 -msgid "Can't create new db in this database engine!" -msgstr "无法在该数据库引擎中创建新数据库!" +#: CLgtk3-install/share/codelite/templates/projects/executable-wxcrafter-frame/MainFrame.cpp:25 +#: CL-standalone-install/share/codelite/templates/projects/executable-wxcrafter-frame/MainFrame.cpp:25 +#: CL-installRel/share/codelite/templates/projects/executable-wxcrafter-frame/MainFrame.cpp:25 +#: Runtime/templates/projects/executable-wxcrafter-frame/MainFrame.cpp:25 +#: CL-install/share/codelite/templates/projects/executable-wxcrafter-frame/MainFrame.cpp:25 +msgid "Short description goes here" +msgstr "简短描述" -#: DatabaseExplorer/DbViewerPanel.cpp:461 LiteEditor/newprojectdlg.cpp:191 -#: LiteEditor/newprojectdlg.cpp:196 LiteEditor/newprojectdlg.cpp:201 -#: LiteEditor/manager.cpp:263 LiteEditor/manager.cpp:280 -#: LiteEditor/manager.cpp:467 LiteEditor/manager.cpp:549 -#: LiteEditor/manager.cpp:610 LiteEditor/manager.cpp:945 -#: LiteEditor/manager.cpp:972 LiteEditor/manager.cpp:1116 -#: LiteEditor/manager.cpp:1266 LiteEditor/newworkspacedlg.cpp:106 -#: LiteEditor/fileview.cpp:977 LiteEditor/fileview.cpp:981 -#: LiteEditor/advanced_settings.cpp:231 LiteEditor/cl_editor.cpp:1156 -#: Gizmos/newwxprojectdlg.cpp:102 -msgid "Error" -msgstr "错误" - -#: DatabaseExplorer/DbViewerPanel.cpp:474 -#, c-format -msgid "Remove database '%s'?" -msgstr "移除数据库 '%s'?" - -#: DatabaseExplorer/DbViewerPanel.cpp:480 -msgid "Database dropped successfully" -msgstr "数据库成功删除" - -#: DatabaseExplorer/DbViewerPanel.cpp:536 -#, c-format -msgid "Remove table '%s'?" -msgstr "移除表格 '%s' ?" +#: CLgtk3-install/share/codelite/templates/projects/executable-wxcrafter-frame/wxcrafter.h:29 +#: CL-standalone-install/share/codelite/templates/projects/executable-wxcrafter-frame/wxcrafter.h:29 +#: CL-installRel/share/codelite/templates/projects/executable-wxcrafter-frame/wxcrafter.h:29 +#: Runtime/templates/projects/executable-wxcrafter-frame/wxcrafter.h:29 +#: CL-install/share/codelite/templates/projects/executable-wxcrafter-frame/wxcrafter.h:29 +msgid "My Frame" +msgstr "我的框架" -#: DatabaseExplorer/DbViewerPanel.cpp:542 -msgid "Table dropped successfully" -msgstr "表成功删除" +#: CLgtk3-install/share/codelite/templates/projects/executable-wxcrafter-frame/wxcrafter.cpp:34 +#: codelite_terminal/wxcrafter.cpp:125 +#: CL-standalone-install/share/codelite/templates/projects/executable-wxcrafter-frame/wxcrafter.cpp:34 +#: MemCheck/memcheckui.cpp:223 LiteEditor/threadlistpanel.cpp:53 +#: LiteEditor/symbols_dialog.cpp:44 LiteEditor/breakpointslistctrl.h:44 +#: LiteEditor/listctrlpanelbase.cpp:60 +#: CL-installRel/share/codelite/templates/projects/executable-wxcrafter-frame/wxcrafter.cpp:34 +#: Runtime/templates/projects/executable-wxcrafter-frame/wxcrafter.cpp:34 +#: LLDBDebugger/UI.cpp:35 LLDBDebugger/UI.cpp:160 LLDBDebugger/UI.cpp:559 +#: Gizmos/newclassdlg.cpp:64 +#: CL-install/share/codelite/templates/projects/executable-wxcrafter-frame/wxcrafter.cpp:34 +#: codelitephp/php-plugin/php_ui.cpp:353 +#: codelitephp/php-plugin/php_ui.cpp:1191 +#: codelitephp/php-plugin/php_ui.cpp:1217 UnitTestCPP/unittestspage.cpp:38 +msgid "File" +msgstr "文件" -#: DatabaseExplorer/DbViewerPanel.cpp:552 -#, c-format -msgid "Remove view '%s'?" -msgstr "移除视图 '%s' ?" +#: CLgtk3-install/share/codelite/templates/projects/executable-wxcrafter-frame/wxcrafter.cpp:36 +#: codelite_terminal/wxcrafter.cpp:127 +#: CL-standalone-install/share/codelite/templates/projects/executable-wxcrafter-frame/wxcrafter.cpp:36 +#: CL-installRel/share/codelite/templates/projects/executable-wxcrafter-frame/wxcrafter.cpp:36 +#: Runtime/templates/projects/executable-wxcrafter-frame/wxcrafter.cpp:36 +#: CL-install/share/codelite/templates/projects/executable-wxcrafter-frame/wxcrafter.cpp:36 +msgid "Exit\tAlt-X" +msgstr "退出\tAlt-X" -#: DatabaseExplorer/DbViewerPanel.cpp:558 -msgid "View dropped successfully" -msgstr "视图成功删除" +#: CLgtk3-install/share/codelite/templates/projects/executable-wxcrafter-frame/wxcrafter.cpp:36 +#: codelite_terminal/wxcrafter.cpp:127 +#: CL-standalone-install/share/codelite/templates/projects/executable-wxcrafter-frame/wxcrafter.cpp:36 +#: CL-installRel/share/codelite/templates/projects/executable-wxcrafter-frame/wxcrafter.cpp:36 +#: Runtime/templates/projects/executable-wxcrafter-frame/wxcrafter.cpp:36 +#: CL-install/share/codelite/templates/projects/executable-wxcrafter-frame/wxcrafter.cpp:36 +msgid "Quit" +msgstr "退出" -#: DatabaseExplorer/DbViewerPanel.cpp:614 -msgid "Import database from SQL file ..." -msgstr "从 SQL 文件导入数据库……" +#: CLgtk3-install/share/codelite/templates/projects/executable-wxcrafter-frame/wxcrafter.cpp:40 +#: codelite_terminal/wxcrafter.cpp:131 +#: CL-standalone-install/share/codelite/templates/projects/executable-wxcrafter-frame/wxcrafter.cpp:40 +#: LiteEditor/CompilerMainPage.cpp:96 LiteEditor/CompilerMainPage.cpp:102 +#: CL-installRel/share/codelite/templates/projects/executable-wxcrafter-frame/wxcrafter.cpp:40 +#: Runtime/templates/projects/executable-wxcrafter-frame/wxcrafter.cpp:40 +#: CL-install/share/codelite/templates/projects/executable-wxcrafter-frame/wxcrafter.cpp:40 +#: codelitephp/php-plugin/php.cpp:527 +msgid "Help" +msgstr "帮助" -#: DatabaseExplorer/DbViewerPanel.cpp:627 -msgid "Dump data into file ..." -msgstr "转储数据到文件..." +#: CLgtk3-install/share/codelite/templates/projects/executable-wxcrafter-frame/wxcrafter.cpp:42 +#: CallGraph/callgraph.cpp:214 codelite_terminal/wxcrafter.cpp:133 +#: CL-standalone-install/share/codelite/templates/projects/executable-wxcrafter-frame/wxcrafter.cpp:42 +#: CL-installRel/share/codelite/templates/projects/executable-wxcrafter-frame/wxcrafter.cpp:42 +#: Runtime/templates/projects/executable-wxcrafter-frame/wxcrafter.cpp:42 +#: CL-install/share/codelite/templates/projects/executable-wxcrafter-frame/wxcrafter.cpp:42 +#: DatabaseExplorer/databaseexplorer.cpp:195 +msgid "About..." +msgstr "关于..." -#: DatabaseExplorer/DbViewerPanel.cpp:631 -msgid "Data was saved to " -msgstr "数据已被保存到" +#: Plugin/builder_gnumake.cpp:101 +msgid "Cant open project '" +msgstr "无法打开项目“" -#: DatabaseExplorer/DbViewerPanel.cpp:641 -msgid "Export database..." -msgstr "导出数据库..." +#: Plugin/builder_gnumake.cpp:111 Plugin/builder_gnumake.cpp:119 +msgid "Cant find build configuration for project '" +msgstr "无法找到构建配置为项目“" -#: DatabaseExplorer/DbViewerPanel.cpp:685 -#, c-format -msgid "The database has been exported to '%s'." -msgstr "该数据库已被导出到 '%s'。" +#: Plugin/builder_gnumake.cpp:123 +msgid "Cant find proper compiler for project '" +msgstr "项目编译器不存在“" -#: DatabaseExplorer/DbViewerPanel.cpp:685 -msgid "wxDbExplorer" -msgstr "wxDbExplorer" +#: Plugin/builder_gnumake.cpp:161 +msgid "CodeLite can not find project '" +msgstr "CodeLite 无法找到项目“" -#: DatabaseExplorer/DbViewerPanel.cpp:691 -msgid "Sorry, requested feature isn't implemented yet. " -msgstr "抱歉,请求的特性没有实现。" +#: Plugin/builder_gnumake.cpp:161 +msgid "' which is required\n" +msgstr "”这是必要的\n" -#: DatabaseExplorer/DbViewerPanel.cpp:691 -msgid "Sorry" -msgstr "抱歉" +#: Plugin/builder_gnumake.cpp:162 +msgid "for building project '" +msgstr "为构建项目“" -#: DatabaseExplorer/databaseexplorer.cpp:22 -msgid "0.5.1 Beta" +#: Plugin/builder_gnumake.cpp:163 +msgid "" +"'.\n" +"Would you like to remove it from the dependency list?" msgstr "" +"”。\n" +"您想要从依赖列表中移除它吗?" -#: DatabaseExplorer/databaseexplorer.cpp:69 -#: DatabaseExplorer/databaseexplorer.cpp:245 DatabaseExplorer/ErdPanel.cpp:226 -#: DatabaseExplorer/ErdPanel.cpp:378 -msgid "DatabaseExplorer" -msgstr "DatabaseExplorer" +#: Plugin/nameanddescbasedlg.cpp:50 LiteEditor/wxcrafter.cpp:743 +#: QmakePlugin/NewQtProj.cpp:60 +msgid "Project name:" +msgstr "项目名称:" -#: DatabaseExplorer/databaseexplorer.cpp:70 -#: DatabaseExplorer/databaseexplorer.cpp:116 -msgid "DatabaseExplorer for CodeLite" -msgstr "DatabaseExplorer for CodeLite" +#: Plugin/nameanddescbasedlg.cpp:57 +msgid "Project category:" +msgstr "项目级别:" -#: DatabaseExplorer/databaseexplorer.cpp:166 -#: Runtime/templates/projects/executable-wxcrafter-frame/wxcrafter.cpp:42 -#: CLgtk3-install/share/codelite/templates/projects/executable-wxcrafter-frame/wxcrafter.cpp:42 -#: CallGraph/callgraph.cpp:189 -#: ~/.codelite/templates/projects/executable-wxcrafter-frame/wxcrafter.cpp:42 -#: codelite_terminal/wxcrafter.cpp:129 -#: CL-install/share/codelite/templates/projects/executable-wxcrafter-frame/wxcrafter.cpp:42 -msgid "About..." -msgstr "关于..." +#: Plugin/nameanddescbasedlg.cpp:69 LiteEditor/plugindlgbase.cpp:59 +#: LiteEditor/pluginmgrdlg.cpp:154 Gizmos/gizmos_base.cpp:74 +msgid "Description:" +msgstr "描述:" -#: DatabaseExplorer/databaseexplorer.cpp:172 -msgid "Database Explorer" -msgstr "Database Explorer" +#: Plugin/nameanddescbasedlg.cpp:84 Plugin/macrosbasedlg.cpp:58 +#: Plugin/wxcrafter_plugin.cpp:73 Plugin/NewKeyShortcutBaseDlg.cpp:98 +#: Plugin/sftp_ui.cpp:80 Plugin/sftp_ui.cpp:250 Plugin/sftp_ui.cpp:367 +#: ExternalTools/external_tools.cpp:57 ZoomNavigator/zoom_navigator.cpp:90 +#: Subversion2/subversion2_ui.cpp:177 Subversion2/subversion2_ui.cpp:466 +#: Subversion2/subversion2_ui.cpp:610 Subversion2/subversion2_ui.cpp:767 +#: Subversion2/subversion2_ui.cpp:841 Subversion2/subversion2_ui.cpp:989 +#: Subversion2/wxcrafter.cpp:292 codelite_terminal/wxcrafter.cpp:272 +#: Tweaks/wxcrafter.cpp:117 +#: sdk/wxflatnotebook/src/wxFlatNotebook/fnb_customize_dlg.cpp:39 +#: LiteEditor/configuration_manager_base_dlg.cpp:101 +#: LiteEditor/dbgcommandbasedlg.cpp:79 +#: LiteEditor/implementparentvirtualfunctionsbase.cpp:124 +#: LiteEditor/plugindlgbase.cpp:84 LiteEditor/options_base_dlg2.cpp:43 +#: LiteEditor/new_configuration_dlg.cpp:103 LiteEditor/setters_getters.cpp:106 +#: LiteEditor/newquickwatch.cpp:131 LiteEditor/env_var_dlg_base.cpp:105 +#: LiteEditor/breakpointdlgbase.cpp:297 LiteEditor/symbols_dialog_base.cpp:63 +#: LiteEditor/add_option_dialog.cpp:67 LiteEditor/wxcrafter.cpp:334 +#: LiteEditor/wxcAboutDlg.cpp:111 LiteEditor/debuggersettingsbasedlg.cpp:62 +#: LiteEditor/debuggersettingsbasedlg.cpp:244 +#: LiteEditor/free_text_dialog.cpp:65 LiteEditor/addincludefiledlgbase.cpp:161 +#: LiteEditor/newversionbasedlg.cpp:57 +#: LiteEditor/tags_options_base_dlg.cpp:531 LiteEditor/compiler_pages.cpp:68 +#: LiteEditor/manageperspectivesbasedlg.cpp:121 LiteEditor/depends_dlg.cpp:59 +#: LiteEditor/rename_symbool_dlg.cpp:227 LiteEditor/editcmpfileinfobase.cpp:88 +#: LiteEditor/new_item_base_dlg.cpp:93 LiteEditor/new_virtual_folder.cpp:90 +#: LiteEditor/tasksfindwhatdlgbase.cpp:146 +#: LiteEditor/movefuncimplbasedlg.cpp:107 Gizmos/newclassbasedlg.cpp:227 +#: Gizmos/newwxprojectbasedlg.cpp:197 QmakePlugin/qmakesettingsbasedlg.cpp:82 +#: QmakePlugin/NewQtProj.cpp:122 codelitephp/php-plugin/new_class.cpp:158 +#: codelitephp/php-plugin/php_ui.cpp:208 codelitephp/php-plugin/php_ui.cpp:294 +#: codelitephp/php-plugin/php_ui.cpp:563 codelitephp/php-plugin/php_ui.cpp:882 +#: wxformbuilder/formbuildsettingsbasedlg.cpp:84 +#: CodeDesigner/codedesignersettingsbasedlg.cpp:59 +#: DatabaseExplorer/GUI.cpp:624 cppchecker/cppchecksettingsdlgbase.cpp:332 +#: cppchecker/cppchecksettingsdlgbase.cpp:477 +#: UnitTestCPP/testclassbasedlg.cpp:128 UnitTestCPP/newunittestbasedlg.cpp:94 +msgid "&OK" +msgstr "确定(&O)" -#: DatabaseExplorer/databaseexplorer.cpp:192 -msgid "Open with DatabaseExplorer..." -msgstr "用DatabaseExplorer打开..." +#: Plugin/nameanddescbasedlg.cpp:88 Plugin/renamefilebasedlg.cpp:114 +#: Plugin/wxcrafter_plugin.cpp:78 Plugin/NewKeyShortcutBaseDlg.cpp:103 +#: Plugin/sftp_ui.cpp:85 Plugin/sftp_ui.cpp:255 Plugin/sftp_ui.cpp:372 +#: CallGraph/uisettings.cpp:169 ExternalTools/external_tools.cpp:62 +#: ZoomNavigator/zoom_navigator.cpp:95 Subversion2/subversion2_ui.cpp:471 +#: Subversion2/subversion2_ui.cpp:772 Subversion2/subversion2_ui.cpp:846 +#: Subversion2/subversion2_ui.cpp:994 Subversion2/wxcrafter.cpp:297 +#: Tweaks/wxcrafter.cpp:113 +#: sdk/wxflatnotebook/src/wxFlatNotebook/fnb_customize_dlg.cpp:42 +#: LiteEditor/dbgcommandbasedlg.cpp:83 +#: LiteEditor/implementparentvirtualfunctionsbase.cpp:129 +#: LiteEditor/plugindlgbase.cpp:89 LiteEditor/newquickwatch.cpp:136 +#: LiteEditor/symbols_dialog_base.cpp:67 LiteEditor/tabgroupbasedlgs.cpp:82 +#: LiteEditor/tabgroupbasedlgs.cpp:173 LiteEditor/add_option_dialog.cpp:70 +#: LiteEditor/wxcrafter.cpp:339 LiteEditor/debuggersettingsbasedlg.cpp:67 +#: LiteEditor/debuggersettingsbasedlg.cpp:249 +#: LiteEditor/free_text_dialog.cpp:68 LiteEditor/attachdbgprocbasedlg.cpp:85 +#: LiteEditor/addincludefiledlgbase.cpp:166 +#: LiteEditor/manageperspectivesbasedlg.cpp:73 +#: LiteEditor/manageperspectivesbasedlg.cpp:125 +#: LiteEditor/rename_symbool_dlg.cpp:155 LiteEditor/rename_symbool_dlg.cpp:232 +#: LiteEditor/tagsparsersearchpathsbasedlg.cpp:71 +#: LiteEditor/new_item_base_dlg.cpp:97 LiteEditor/new_virtual_folder.cpp:86 +#: LiteEditor/tasksfindwhatdlgbase.cpp:76 +#: LiteEditor/tasksfindwhatdlgbase.cpp:150 +#: LiteEditor/workspacesettingsbase.cpp:86 +#: LiteEditor/movefuncimplbasedlg.cpp:110 Gizmos/newclassbasedlg.cpp:232 +#: Gizmos/newwxprojectbasedlg.cpp:201 QmakePlugin/qmakesettingsbasedlg.cpp:78 +#: QmakePlugin/NewQtProj.cpp:118 codelitephp/php-plugin/new_class.cpp:163 +#: codelitephp/php-plugin/php_ui.cpp:213 codelitephp/php-plugin/php_ui.cpp:568 +#: codelitephp/php-plugin/php_ui.cpp:887 DatabaseExplorer/GUI.cpp:620 +#: cppchecker/cppchecksettingsdlgbase.cpp:337 +#: cppchecker/cppchecksettingsdlgbase.cpp:482 +#: Copyright/copyrights_proj_sel_base_dlg.cpp:80 +#: Copyright/copyrights_options_base_dlg.cpp:104 +#: UnitTestCPP/newunittestbasedlg.cpp:98 +msgid "&Cancel" +msgstr "取消(&C)" -#: DatabaseExplorer/databaseexplorer.cpp:241 -msgid "" -"Cross-platform database plugin designed for managing data, ERD and code " -"generation.\n" -"\n" -msgstr "" -"用于管理数据、ERD以及代码生成的跨平台数据库插件。\n" -"\n" +#: Plugin/renamefilebasedlg.cpp:47 LiteEditor/replaceinfilespanel.cpp:61 +msgid "Replace With:" +msgstr "替换为:" -#: DatabaseExplorer/databaseexplorer.cpp:248 -msgid "2011 - 2012 (C) Tomas Bata University, Zlin, Czech Republic" -msgstr "" +#: Plugin/renamefilebasedlg.cpp:56 +msgid "The following files will be updated:" +msgstr "以下文件将被更新:" -#: DatabaseExplorer/databaseexplorer.cpp:249 CallGraph/callgraph.cpp:272 -msgid "http://www.fai.utb.cz" -msgstr "" +#: Plugin/renamefilebasedlg.cpp:73 +msgid "Included From:" +msgstr "包含文件来自:" -#: DatabaseExplorer/ErdPanel.cpp:139 SFTP/SFTPTreeView.cpp:289 -#: LiteEditor/frame.cpp:1095 LiteEditor/frame.cpp:1222 -#: LiteEditor/frame.cpp:1298 LiteEditor/frame.cpp:1387 -#: LiteEditor/wxcrafter.cpp:581 -msgid "Open" -msgstr "打开" +#: Plugin/renamefilebasedlg.cpp:83 +msgid "Line:" +msgstr "行:" -#: DatabaseExplorer/ErdPanel.cpp:139 -msgid "Open diagram" -msgstr "打开图表" +#: Plugin/renamefilebasedlg.cpp:93 +msgid "Pattern:" +msgstr "模式:" -#: DatabaseExplorer/ErdPanel.cpp:140 Plugin/wxcrafter_plugin.cpp:137 -#: menu.xrc:652 menu.xrc:672 LiteEditor/frame.cpp:1098 -#: LiteEditor/frame.cpp:1225 LiteEditor/frame.cpp:1301 -#: LiteEditor/frame.cpp:1390 LiteEditor/wxcrafter.cpp:789 -#: codelite_terminal/wxcrafter.cpp:63 -msgid "Save" -msgstr "保存" +#: Plugin/renamefilebasedlg.cpp:110 CallGraph/uisettings.cpp:165 +#: LiteEditor/tabgroupbasedlgs.cpp:78 LiteEditor/tabgroupbasedlgs.cpp:169 +#: LiteEditor/manageperspectivesbasedlg.cpp:69 +#: LiteEditor/tagsparsersearchpathsbasedlg.cpp:67 +#: LiteEditor/tasksfindwhatdlgbase.cpp:72 +#: LiteEditor/workspacesettingsbase.cpp:81 +msgid "&Ok" +msgstr "确定(&O)" -#: DatabaseExplorer/ErdPanel.cpp:140 -msgid "Save diagram" -msgstr "保存图表" +#: Plugin/clWorkspaceView.cpp:9 Plugin/clWorkspaceView.cpp:80 +#: LiteEditor/env_var_dlg_base.cpp:76 LiteEditor/workspacetab.cpp:120 +#: LiteEditor/workspacetab.cpp:121 LiteEditor/workspacetab.cpp:122 +#: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:68 +#: LiteEditor/editorsettingslocal.cpp:100 Gizmos/newwxprojectdlg.cpp:41 +msgid "Default" +msgstr "默认" -#: DatabaseExplorer/ErdPanel.cpp:141 -msgid "Save SQL" -msgstr "保存SQL" +#: Plugin/filepicker.h:68 +msgid "Select a file:" +msgstr "选择一个文件:" -#: DatabaseExplorer/ErdPanel.cpp:142 -msgid "Commit ERD" -msgstr "提交 ERD" +#: Plugin/filepicker.h:70 Subversion2/subversion2_ui.cpp:309 +#: Subversion2/subversion2_ui.cpp:377 Subversion2/subversion2_ui.cpp:407 +#: Subversion2/subversion2_ui.cpp:675 LiteEditor/quickdebugbase.cpp:54 +#: LiteEditor/quickdebugbase.cpp:71 LiteEditor/breakpointdlgbase.cpp:201 +#: LiteEditor/debuggersettingsbasedlg.cpp:299 +#: LiteEditor/new_item_base_dlg.cpp:82 LiteEditor/debugcoredumpbase.cpp:62 +#: LiteEditor/debugcoredumpbase.cpp:74 LiteEditor/debugcoredumpbase.cpp:84 +#: codelitephp/php-plugin/php_ui.cpp:182 codelitephp/php-plugin/php_ui.cpp:446 +#: codelitephp/php-plugin/php_ui.cpp:484 codelitephp/php-plugin/php_ui.cpp:772 +#: codelitephp/php-plugin/php_ui.cpp:858 +#: codelitephp/php-plugin/php_ui.cpp:1902 DatabaseExplorer/GUI.cpp:45 +msgid "Browse" +msgstr "浏览" -#: DatabaseExplorer/ErdPanel.cpp:143 -msgid "Export canvas to image" -msgstr "导出画布到图片" +#: Plugin/dirpicker.h:69 LiteEditor/findinfiles_dlg.cpp:76 +msgid "Select a folder:" +msgstr "选择文件夹:" -#: DatabaseExplorer/ErdPanel.cpp:145 -msgid "Print" -msgstr "打印" +#: Plugin/evnvarlist.h:64 LiteEditor/workspacesettingsdlg.cpp:61 +msgid "" +msgstr "<使用活动设置>" -#: DatabaseExplorer/ErdPanel.cpp:145 -msgid "Print diagram" -msgstr "打印图表" +#: Plugin/async_executable_cmd.cpp:95 +msgid "Current working directory: " +msgstr "当前工作目录:" -#: DatabaseExplorer/ErdPanel.cpp:146 -msgid "Preview" -msgstr "预览" +#: Plugin/async_executable_cmd.cpp:96 +msgid "Running program: " +msgstr "正在运行的程序:" -#: DatabaseExplorer/ErdPanel.cpp:146 -msgid "Print preview" -msgstr "打印预览:" +#: Plugin/async_executable_cmd.cpp:108 +msgid "Program exited with return code: " +msgstr "程序退出码:" -#: DatabaseExplorer/ErdPanel.cpp:148 -msgid "Copy item" -msgstr "复制项" +#: Plugin/WSImporterDlgs.cpp:33 codelitephp/php-plugin/php_ui.cpp:1782 +msgid "Project Name:" +msgstr "项目名称:" -#: DatabaseExplorer/ErdPanel.cpp:149 -msgid "Cut item" -msgstr "剪切项" +#: Plugin/WSImporterDlgs.cpp:37 Plugin/WSImporterDlgs.cpp:48 +msgid "Static Text Label" +msgstr "静态文本标签" -#: DatabaseExplorer/ErdPanel.cpp:150 -msgid "Paste item" -msgstr "粘贴项" +#: Plugin/WSImporterDlgs.cpp:44 LiteEditor/new_configuration_dlg.cpp:64 +msgid "Configuration Name:" +msgstr "配置名称:" -#: DatabaseExplorer/ErdPanel.cpp:152 menu.xrc:788 menu.xrc:825 -#: LiteEditor/frame.cpp:1107 LiteEditor/frame.cpp:1234 -#: LiteEditor/frame.cpp:1310 LiteEditor/frame.cpp:1399 -#: LiteEditor/wxcrafter.cpp:797 -msgid "Undo" -msgstr "撤销" +#: Plugin/WSImporterDlgs.cpp:59 +msgid "Please define the value of the following variables:" +msgstr "请定义以下变量的值:" + +#: Plugin/WSImporterDlgs.cpp:72 abbreviation/abbreviationssettingsbase.cpp:48 +msgid "Import" +msgstr "导入" -#: DatabaseExplorer/ErdPanel.cpp:153 menu.xrc:791 menu.xrc:828 -#: LiteEditor/frame.cpp:1108 LiteEditor/frame.cpp:1235 -#: LiteEditor/frame.cpp:1311 LiteEditor/frame.cpp:1400 -#: LiteEditor/wxcrafter.cpp:799 -msgid "Redo" -msgstr "重做" +#: Plugin/WSImporterDlgs.cpp:76 +msgid "Continue" +msgstr "继续" -#: DatabaseExplorer/ErdPanel.cpp:155 -msgid "Tool" -msgstr "工具" +#: Plugin/WSImporterDlgs.cpp:80 +msgid "Skip" +msgstr "跳过" -#: DatabaseExplorer/ErdPanel.cpp:155 -msgid "Design tool" -msgstr "设计工具" +#: Plugin/macrosdlg.cpp:63 +msgid "Macro" +msgstr "宏" -#: DatabaseExplorer/ErdPanel.cpp:156 -msgid "DBETable" -msgstr "DBE 表" +#: Plugin/macrosdlg.cpp:64 Plugin/clBoostrapWizardBase.cpp:76 +#: UnitTestCPP/unittestspage.cpp:40 +msgid "Description" +msgstr "描述" -#: DatabaseExplorer/ErdPanel.cpp:156 -msgid "Database table" -msgstr "数据库表" +#: Plugin/macrosdlg.cpp:73 +msgid "Expands to the selected text in the active editor" +msgstr "在活动的编辑器中展开选择的文本" -#: DatabaseExplorer/ErdPanel.cpp:157 Plugin/wxcrafter_plugin.cpp:140 -msgid "View" -msgstr "视图" +#: Plugin/macrosdlg.cpp:74 +msgid "" +"Expands to the selected text range in bytes from beginning of file, eg. " +"150:200" +msgstr "展开为选择的文本的范围的一组数值,例如 150:200" -#: DatabaseExplorer/ErdPanel.cpp:157 -msgid "Database view" -msgstr "数据库视图" +#: Plugin/macrosdlg.cpp:75 +msgid "Expands to the project binary output file" +msgstr "展开为项目的二进制输出文件" -#: DatabaseExplorer/ErdPanel.cpp:158 -msgid "Constraint 1:N" -msgstr "限制 1:N" +#: Plugin/macrosdlg.cpp:76 +msgid "Expands to the project's build working directory" +msgstr "展开为项目的构建工作目录" -#: DatabaseExplorer/ErdPanel.cpp:158 -msgid "Foreign key connection" -msgstr "外部键连接" +#: Plugin/macrosdlg.cpp:77 +msgid "Expands to the project's run working directory" +msgstr "展开为项目的运行工作目录" -#: DatabaseExplorer/ErdPanel.cpp:160 -msgid "Align into circle" -msgstr "对齐到圆形" +#: Plugin/macrosdlg.cpp:80 +msgid "Expands to project's path" +msgstr "展开为项目的路径" -#: DatabaseExplorer/ErdPanel.cpp:161 -msgid "Align into mesh" -msgstr "对齐到网格" +#: Plugin/macrosdlg.cpp:81 +msgid "Expands to workspace's path" +msgstr "展开为工作区的路径" -#: DatabaseExplorer/ErdPanel.cpp:162 -msgid "Align into vertical tree" -msgstr "对齐到垂直树" +#: Plugin/macrosdlg.cpp:82 +msgid "Expands to the current project name as appears in the 'File View'" +msgstr "展开为当前项目的名称,如”文件视图“那里显示的一样" -#: DatabaseExplorer/ErdPanel.cpp:163 -msgid "Align into horizontal tree" -msgstr "对齐到水平树" +#: Plugin/macrosdlg.cpp:83 Plugin/macrosdlg.cpp:106 +msgid "" +"Expands to the current project intermediate directory path, as set in the " +"project settings" +msgstr "展开为当前项目的过渡目录路径" -#: DatabaseExplorer/ErdPanel.cpp:165 CallGraph/uicallgraph.cpp:85 -msgid "Zoom 100%" -msgstr "缩放 100%" +#: Plugin/macrosdlg.cpp:84 Plugin/macrosdlg.cpp:107 +msgid "Expands to the current project selected configuration" +msgstr "展开为当前项目选择的配置" -#: DatabaseExplorer/ErdPanel.cpp:166 -msgid "Zoom to all" -msgstr "全部显示" +#: Plugin/macrosdlg.cpp:85 Plugin/macrosdlg.cpp:108 +msgid "An alias to $(IntermediateDirectory)" +msgstr "一个 $(IntermediateDirectory) 的别名" -#: DatabaseExplorer/ErdPanel.cpp:194 -msgid "Load canvas from file..." -msgstr "从文件载入画布" +#: Plugin/macrosdlg.cpp:86 +msgid "Expands to current file name (without extension and path)" +msgstr "展开为当前文件名(不包括扩展名)" -#: DatabaseExplorer/ErdPanel.cpp:203 -msgid "Save canvas to file..." -msgstr "画布保存到文件" +#: Plugin/macrosdlg.cpp:87 +msgid "Expands to current file path" +msgstr "展开为当前文件的路径" -#: DatabaseExplorer/ErdPanel.cpp:212 -msgid "Save SQL create query..." -msgstr "保存SQL创建查询" +#: Plugin/macrosdlg.cpp:88 +msgid "Expands to current file full path (path and full name)" +msgstr "展开为当前文件的完整路径" -#: DatabaseExplorer/ErdPanel.cpp:226 -#, c-format -msgid "The SQL script has been saved to '%s'." -msgstr "该 SQL 脚本已被保存到 '%s'。" +#: Plugin/macrosdlg.cpp:89 +msgid "Expands to logged-in user as defined by the OS" +msgstr "展开为登陆的用户名" -#: DatabaseExplorer/ErdPanel.cpp:363 -msgid "ERD type doesn't match current database adapter." -msgstr "ERD 类型无法匹配当前数据库适配器。" +#: Plugin/macrosdlg.cpp:90 +msgid "Expands to current date" +msgstr "展开为现在的日期" -#: DatabaseExplorer/ErdPanel.cpp:378 -#, c-format -msgid "The chart has been saved to '%s'." -msgstr "该图表已被保存到 '%s'。" +#: Plugin/macrosdlg.cpp:91 +msgid "" +"Expands to CodeLite's startup directory on (e.g. on Unix it expands to ~/." +"codelite/" +msgstr "展开为 CodeLite 启动时所在的目录(例如,Unix 下是 ~/.codelite/)" -#: DatabaseExplorer/ErdTable.cpp:283 -msgid "New table" -msgstr "新建表" +#: Plugin/macrosdlg.cpp:92 +msgid "" +"A space delimited string containing all of the project files in a relative " +"path to the project file" +msgstr "在项目文件的相对路径中以空格分隔所有包含项目文件的字符串" -#: DatabaseExplorer/GUI.cpp:28 -msgid "Output file:" -msgstr "输出文件:" +#: Plugin/macrosdlg.cpp:93 +msgid "" +"A space delimited string containing all of the project files in an absolute " +"path" +msgstr "在项目文件的绝对路径中以空格分隔所有包含项目文件的字符串" -#: DatabaseExplorer/GUI.cpp:41 Plugin/filepicker.h:70 -#: LiteEditor/quickdebugbase.cpp:37 LiteEditor/quickdebugbase.cpp:49 -#: LiteEditor/breakpointdlgbase.cpp:187 LiteEditor/wxcrafter.cpp:82 -#: LiteEditor/new_item_base_dlg.cpp:57 -#: LiteEditor/debuggersettingsbasedlg.cpp:274 -#: LiteEditor/debugcoredumpbase.cpp:37 LiteEditor/debugcoredumpbase.cpp:49 -#: LiteEditor/debugcoredumpbase.cpp:59 Subversion2/subversion2_ui.cpp:285 -#: Subversion2/subversion2_ui.cpp:350 Subversion2/subversion2_ui.cpp:377 -#: Subversion2/subversion2_ui.cpp:618 -msgid "Browse" -msgstr "浏览" +#: Plugin/macrosdlg.cpp:94 +msgid "backticks: evaluates the expression inside the backticks into a string" +msgstr "反引号:将反引号中的表达式赋值给一个字符串" -#: DatabaseExplorer/GUI.cpp:45 -msgid "Scale" -msgstr "缩放" +#: Plugin/macrosdlg.cpp:98 +msgid "Expands to the compiler name as set in the Tools tab" +msgstr "展开为在工具标签那里设置编译器的名称" -#: DatabaseExplorer/GUI.cpp:49 -msgid "Current canvas scale" -msgstr "当前画布缩放" +#: Plugin/macrosdlg.cpp:99 +msgid "Expands to the source switch (usually, -c)" +msgstr "展开为源文件的编译参数" -#: DatabaseExplorer/GUI.cpp:58 -msgid "Custom scale" -msgstr "自定缩放" +#: Plugin/macrosdlg.cpp:100 +msgid "The file full path (includes path+name+extension)" +msgstr "该文件的完整路径(包括路径扩展名)" -#: DatabaseExplorer/GUI.cpp:68 -msgid "Export canvas background" -msgstr "导出画布背景" +#: Plugin/macrosdlg.cpp:101 +msgid "The file full name (includes name+extension)" +msgstr "该文件的全名(包括扩展名)" -#: DatabaseExplorer/GUI.cpp:152 -msgid "Load..." -msgstr "载入…" +#: Plugin/macrosdlg.cpp:102 +msgid "The file name (name only)" +msgstr "文件名(仅名称)" -#: DatabaseExplorer/GUI.cpp:154 -msgid "Save..." -msgstr "保存为…" +#: Plugin/macrosdlg.cpp:103 +msgid "The file's path with UNIX slashes, including terminating separator" +msgstr "该文件的路径使用UNIX斜线,包含结束分隔符" -#: DatabaseExplorer/GUI.cpp:156 -msgid "Execute SQL" -msgstr "执行 SQL" +#: Plugin/macrosdlg.cpp:104 +msgid "Expands to the compiler options as set in the project settings" +msgstr "展开为项目设置中的编译器选项" -#: DatabaseExplorer/GUI.cpp:160 -msgid "Insert template" -msgstr "插入模板" +#: Plugin/macrosdlg.cpp:105 +msgid "Expands to the resource compiler name" +msgstr "展开为资源编译器的名称" -#: DatabaseExplorer/GUI.cpp:162 -msgid "SQL History" -msgstr "SQL 历史记录" +#: Plugin/macrosdlg.cpp:109 +msgid "Expands to the linker name as set in the Tools tab" +msgstr "给连接器的名称可以扩大在工具选项卡设置" -#: DatabaseExplorer/GUI.cpp:235 -msgid "Result:" -msgstr "结果:" +#: Plugin/macrosdlg.cpp:110 +msgid "Expands to the archive tool (e.g. ar) name as set in the Tools tab" +msgstr "展开为工具标签设置的归档工具(如 ar)的名称" -#: DatabaseExplorer/GUI.cpp:278 DatabaseExplorer/GUI.cpp:400 -msgid "MySql" -msgstr "" +#: Plugin/macrosdlg.cpp:111 +msgid "Expands to the shared object linker name as set in the Tools tab" +msgstr "展开为工具标签设置的共享库链接器名称" -#: DatabaseExplorer/GUI.cpp:282 -msgid "SQLite" -msgstr "" +#: Plugin/macrosdlg.cpp:112 +msgid "Objects suffix (usually set to .o)" +msgstr "对象文件后缀(一般设为 .o)" -#: DatabaseExplorer/GUI.cpp:288 DatabaseExplorer/GUI.cpp:464 -msgid "PostgreSQL" -msgstr "" +#: Plugin/macrosdlg.cpp:113 +msgid "The object name (without the suffix)" +msgstr "对象名称(不带后缀名)" -#: DatabaseExplorer/GUI.cpp:374 -msgid "Sqlite" -msgstr "" +#: Plugin/macrosdlg.cpp:114 +msgid "Objects suffix (usually set to .o.d)" +msgstr "对象后缀(通常设置为 .o.d)" -#: DatabaseExplorer/GUI.cpp:387 -msgid "Database file:" -msgstr "数据库文件:" +#: Plugin/macrosdlg.cpp:115 +msgid "Objects suffix (usually set to .o.i)" +msgstr "对象后缀(通常设置为 .o.i)" -#: DatabaseExplorer/GUI.cpp:416 -msgid "Connection name:" -msgstr "连接名称:" +#: Plugin/macrosdlg.cpp:116 +msgid "The compiler include switch" +msgstr "编译器包含开关" -#: DatabaseExplorer/GUI.cpp:421 -msgid "Name for this connection" -msgstr "当前连接名称:" +#: Plugin/macrosdlg.cpp:117 +msgid "The library switch (e.g. -l)" +msgstr "链接库开关(如 -l)" -#: DatabaseExplorer/GUI.cpp:426 DatabaseExplorer/GUI.cpp:485 -msgid "Server:" -msgstr "服务器:" +#: Plugin/macrosdlg.cpp:118 +msgid "The output switch (e.g. -o)" +msgstr "输出选项开关(如 -o)" -#: DatabaseExplorer/GUI.cpp:427 DatabaseExplorer/GUI.cpp:432 -msgid "Host name / IP of the server hosting the MySQL server" -msgstr "MySQL服务器主机名称/IP地址" +#: Plugin/macrosdlg.cpp:119 +msgid "Library switch (e.g. -L)" +msgstr "链接库开关(如 -L)" -#: DatabaseExplorer/GUI.cpp:436 DatabaseExplorer/GUI.cpp:501 -msgid "User name:" -msgstr "用户名:" +#: Plugin/macrosdlg.cpp:120 +msgid "Preprocessor switch (e.g. -D)" +msgstr "预处理器开关(如 -D)" -#: DatabaseExplorer/GUI.cpp:441 -msgid "Database user name" -msgstr "数据库用户名" +#: Plugin/macrosdlg.cpp:121 +msgid "" +"Expands to all preprocessors set in the project setting where each entry is " +"prefixed with $(PreprocessorSwitch)" +msgstr "扩展到项目设置中前缀有 $(PreprocessorSwitch) 条目的所有预处理设置" -#: DatabaseExplorer/GUI.cpp:445 DatabaseExplorer/GUI.cpp:509 -#: Plugin/sftp_ui.cpp:176 Subversion2/subversion2_ui.cpp:211 -msgid "Password:" -msgstr "密码:" +#: Plugin/macrosdlg.cpp:122 +msgid "Archive switch, usually not needed (VC compiler sets it to /OUT:" +msgstr "存档开关,通常不需要(VC 的编译器将其设置为 /输出:" -#: DatabaseExplorer/GUI.cpp:450 -msgid "Database password" -msgstr "数据库密码" +#: Plugin/macrosdlg.cpp:123 +msgid "The compiler preprocess-only switch (e.g. -E)" +msgstr "编译器预处理专用开关(如-" -#: DatabaseExplorer/GUI.cpp:476 LiteEditor/new_item_base_dlg.cpp:38 -#: LiteEditor/debuggersettingsbasedlg.cpp:189 -#: LiteEditor/new_virtual_folder.cpp:35 Gizmos/newwxprojectbasedlg.cpp:49 -#: ExternalTools/newtoolbase.cpp:38 -#: abbreviation/abbreviationssettingsbase.cpp:46 -msgid "Name:" -msgstr "名称:" +#: Plugin/macrosdlg.cpp:124 +msgid "The linker options as set in the project settings" +msgstr "链接器选项设置在项目设置" -#: DatabaseExplorer/GUI.cpp:493 Plugin/sftp_ui.cpp:158 -#: LiteEditor/project_settings_base_dlg.cpp:485 -msgid "Port:" -msgstr "端口:" +#: Plugin/macrosdlg.cpp:125 +msgid "All include paths prefixed with $(IncludeSwitch)" +msgstr "所有 $(IncludeSwitch) 前缀开头的包含路径" -#: DatabaseExplorer/GUI.cpp:517 -msgid "Default database:" -msgstr "默认数据库:" +#: Plugin/macrosdlg.cpp:126 +msgid "Resource compiler include path as set in the project settings" +msgstr "资源编译器包括了在项目设置中设置包含路径" -#: DatabaseExplorer/GUI.cpp:534 -#: sdk/wxflatnotebook/src/wxFlatNotebook/fnb_customize_dlg.cpp:42 -#: ZoomNavigator/zoom_navigator.cpp:70 QmakePlugin/NewQtProj.cpp:93 -#: QmakePlugin/qmakesettingsbasedlg.cpp:53 Plugin/sftp_ui.cpp:76 -#: Plugin/sftp_ui.cpp:204 Plugin/sftp_ui.cpp:307 -#: Plugin/wxcrafter_plugin.cpp:78 Plugin/renamefilebasedlg.cpp:89 -#: Plugin/openresourcedialogbase.cpp:52 Plugin/nameanddescbasedlg.cpp:63 -#: Copyright/copyrights_options_base_dlg.cpp:79 -#: Copyright/copyrights_proj_sel_base_dlg.cpp:55 CallGraph/uisettings.cpp:144 -#: LiteEditor/tagsparsersearchpathsbasedlg.cpp:46 -#: LiteEditor/tasksfindwhatdlgbase.cpp:51 -#: LiteEditor/tasksfindwhatdlgbase.cpp:125 LiteEditor/free_text_dialog.cpp:68 -#: LiteEditor/implementparentvirtualfunctionsbase.cpp:104 -#: LiteEditor/plugindlgbase.cpp:89 LiteEditor/wxcrafter.cpp:509 -#: LiteEditor/workspacesettingsbase.cpp:84 LiteEditor/new_item_base_dlg.cpp:72 -#: LiteEditor/symbols_dialog_base.cpp:42 -#: LiteEditor/addincludefiledlgbase.cpp:143 -#: LiteEditor/syntaxhighlightbasedlg.cpp:66 LiteEditor/newquickwatch.cpp:132 -#: LiteEditor/attachdbgprocbasedlg.cpp:60 -#: LiteEditor/NewKeyShortcutBaseDlg.cpp:92 -#: LiteEditor/debuggersettingsbasedlg.cpp:42 -#: LiteEditor/debuggersettingsbasedlg.cpp:224 -#: LiteEditor/filechecklistbase.cpp:61 LiteEditor/dbgcommandbasedlg.cpp:58 -#: LiteEditor/AccelTableBaseDlg.cpp:70 LiteEditor/movefuncimplbasedlg.cpp:85 -#: LiteEditor/new_virtual_folder.cpp:61 -#: LiteEditor/manageperspectivesbasedlg.cpp:48 -#: LiteEditor/manageperspectivesbasedlg.cpp:100 -#: LiteEditor/rename_symbool_dlg.cpp:129 LiteEditor/rename_symbool_dlg.cpp:205 -#: LiteEditor/tabgroupbasedlgs.cpp:57 LiteEditor/tabgroupbasedlgs.cpp:148 -#: LiteEditor/importfilesdialog_new.cpp:81 LiteEditor/add_option_dialog.cpp:70 -#: Subversion2/subversion2_ui.cpp:435 Subversion2/subversion2_ui.cpp:713 -#: Subversion2/subversion2_ui.cpp:781 Subversion2/subversion2_ui.cpp:910 -#: Subversion2/subversion2_ui.cpp:966 Subversion2/wxcrafter.cpp:288 -#: Gizmos/newwxprojectbasedlg.cpp:176 Gizmos/newinheritancebasedlg.cpp:60 -#: Gizmos/newclassbasedlg.cpp:219 cppchecker/cppchecksettingsdlgbase.cpp:169 -#: cppchecker/cppchecksettingsdlgbase.cpp:256 -#: CodeFormatter/codeformatterdlgbase.cpp:303 -#: ExternalTools/externaltoolsbasedlg.cpp:52 Tweaks/wxcrafter.cpp:112 -#: UnitTestCPP/newunittestbasedlg.cpp:73 -msgid "&Cancel" -msgstr "取消(&C)" +#: Plugin/macrosdlg.cpp:127 +msgid "" +"List of libraries to link with. Each library is prefixed with " +"$(LibrarySwitch)" +msgstr "与库列表连接,每个库需要添加前缀 $(LibrarySwitch)" -#: DatabaseExplorer/GUI.cpp:538 -#: sdk/wxflatnotebook/src/wxFlatNotebook/fnb_customize_dlg.cpp:39 -#: ZoomNavigator/zoom_navigator.cpp:65 -#: CodeDesigner/codedesignersettingsbasedlg.cpp:59 -#: QmakePlugin/NewQtProj.cpp:97 QmakePlugin/qmakesettingsbasedlg.cpp:57 -#: Plugin/sftp_ui.cpp:71 Plugin/sftp_ui.cpp:199 Plugin/sftp_ui.cpp:302 -#: Plugin/wxcrafter_plugin.cpp:73 Plugin/macrosbasedlg.cpp:33 -#: Plugin/nameanddescbasedlg.cpp:59 LiteEditor/newversionbasedlg.cpp:32 -#: LiteEditor/configuration_manager_base_dlg.cpp:76 -#: LiteEditor/tags_options_base_dlg.cpp:557 LiteEditor/setters_getters.cpp:81 -#: LiteEditor/wxcAboutDlg.cpp:109 LiteEditor/tasksfindwhatdlgbase.cpp:121 -#: LiteEditor/breakpointdlgbase.cpp:283 LiteEditor/free_text_dialog.cpp:65 -#: LiteEditor/implementparentvirtualfunctionsbase.cpp:99 -#: LiteEditor/compiler_pages.cpp:663 LiteEditor/plugindlgbase.cpp:84 -#: LiteEditor/wxcrafter.cpp:115 LiteEditor/wxcrafter.cpp:504 -#: LiteEditor/env_var_dlg_base.cpp:80 LiteEditor/new_item_base_dlg.cpp:68 -#: LiteEditor/symbols_dialog_base.cpp:38 -#: LiteEditor/new_configuration_dlg.cpp:103 LiteEditor/depends_dlg.cpp:70 -#: LiteEditor/addincludefiledlgbase.cpp:138 -#: LiteEditor/syntaxhighlightbasedlg.cpp:61 LiteEditor/newquickwatch.cpp:127 -#: LiteEditor/editcmpfileinfobase.cpp:63 -#: LiteEditor/NewKeyShortcutBaseDlg.cpp:87 -#: LiteEditor/debuggersettingsbasedlg.cpp:37 -#: LiteEditor/debuggersettingsbasedlg.cpp:219 -#: LiteEditor/filechecklistbase.cpp:57 LiteEditor/dbgcommandbasedlg.cpp:54 -#: LiteEditor/movefuncimplbasedlg.cpp:82 LiteEditor/options_base_dlg2.cpp:41 -#: LiteEditor/new_virtual_folder.cpp:65 -#: LiteEditor/manageperspectivesbasedlg.cpp:96 -#: LiteEditor/rename_symbool_dlg.cpp:200 LiteEditor/add_option_dialog.cpp:67 -#: Subversion2/subversion2_ui.cpp:100 Subversion2/subversion2_ui.cpp:430 -#: Subversion2/subversion2_ui.cpp:559 Subversion2/subversion2_ui.cpp:708 -#: Subversion2/subversion2_ui.cpp:776 Subversion2/subversion2_ui.cpp:905 -#: Subversion2/subversion2_ui.cpp:970 Subversion2/subversion2_ui.cpp:1031 -#: Subversion2/wxcrafter.cpp:283 codelite_terminal/wxcrafter.cpp:238 -#: wxformbuilder/formbuildsettingsbasedlg.cpp:59 -#: Gizmos/newwxprojectbasedlg.cpp:172 Gizmos/newinheritancebasedlg.cpp:57 -#: Gizmos/newclassbasedlg.cpp:214 cppchecker/cppchecksettingsdlgbase.cpp:165 -#: cppchecker/cppchecksettingsdlgbase.cpp:252 -#: CodeFormatter/codeformatterdlgbase.cpp:298 -#: ExternalTools/newtoolbase.cpp:129 ExternalTools/externaltoolsbasedlg.cpp:48 -#: Tweaks/wxcrafter.cpp:116 UnitTestCPP/testclassbasedlg.cpp:103 -#: UnitTestCPP/newunittestbasedlg.cpp:69 -msgid "&OK" -msgstr "确定(&O)" +#: Plugin/macrosdlg.cpp:128 +msgid "" +"List of library paths to link with. Each library is prefixed with " +"$(LibraryPathSwitch)" +msgstr "与库路径列表连接,每个库需要添加前缀 $(LibraryPathSwitch)" -#: DatabaseExplorer/GUI.cpp:648 -msgid "Referencing table:" -msgstr "正在引用的表:" +#: Plugin/macrosdlg.cpp:129 +msgid "The output file" +msgstr "输出文件" -#: DatabaseExplorer/GUI.cpp:656 DatabaseExplorer/GUI.cpp:710 -msgid "Column:" -msgstr "列:" +#: Plugin/search_thread.h:306 +msgid "Number of files scanned: " +msgstr "扫描的文件数:" -#: DatabaseExplorer/GUI.cpp:672 -msgid "Relation" -msgstr "关联" +#: Plugin/search_thread.h:308 +msgid " Matches found: " +msgstr " 发现匹配: " -#: DatabaseExplorer/GUI.cpp:682 -msgid "OnDelete" -msgstr "OnDelete" +#: Plugin/search_thread.h:313 +msgid ", elapsed time: " +msgstr ",经过时间:" -#: DatabaseExplorer/GUI.cpp:692 -msgid "OnUpdate" -msgstr "OnUpdate" +#: Plugin/search_thread.h:313 +msgid " seconds" +msgstr " 秒" -#: DatabaseExplorer/GUI.cpp:702 -msgid "Referenced table:" -msgstr "已引用的表格:" +#: Plugin/wxcrafter_plugin.cpp:119 +msgid "Text Files Comparison" +msgstr "文本文件比较" -#: DatabaseExplorer/GUI.cpp:727 DatabaseExplorer/GUI.cpp:999 -#: DatabaseExplorer/GUI.cpp:1278 CodeDesigner/codedesigneritembasedlg.cpp:109 -#: CodeDesigner/codedesignersettingsbasedlg.cpp:63 -#: MacBundler/macbundler.cpp:129 Plugin/VirtualDirectorySelectorBase.cpp:57 -#: Runtime/templates/projects/executable-wxcrafter-dialog/wxcrafter.cpp:37 -#: CLgtk3-install/share/codelite/templates/projects/executable-wxcrafter-dialog/wxcrafter.cpp:37 -#: ~/.codelite/templates/projects/executable-wxcrafter-dialog/wxcrafter.cpp:37 -#: LiteEditor/newversionbasedlg.cpp:36 -#: LiteEditor/configuration_manager_base_dlg.cpp:79 -#: LiteEditor/tags_options_base_dlg.cpp:562 -#: LiteEditor/newworkspacebasedlg.cpp:73 LiteEditor/quickdebugbase.cpp:97 -#: LiteEditor/setters_getters.cpp:86 LiteEditor/breakpointdlgbase.cpp:288 -#: LiteEditor/compiler_pages.cpp:668 LiteEditor/wxcrafter.cpp:120 -#: LiteEditor/env_var_dlg_base.cpp:84 LiteEditor/new_configuration_dlg.cpp:106 -#: LiteEditor/depends_dlg.cpp:73 LiteEditor/editcmpfileinfobase.cpp:67 -#: LiteEditor/options_base_dlg2.cpp:46 LiteEditor/debugcoredumpbase.cpp:87 -#: Subversion2/subversion2_ui.cpp:105 Subversion2/subversion2_ui.cpp:228 -#: Subversion2/subversion2_ui.cpp:633 Subversion2/subversion2_ui.cpp:1036 -#: codelite_terminal/wxcrafter.cpp:234 wxformbuilder/wxfbitembasedlg.cpp:70 -#: wxformbuilder/formbuildsettingsbasedlg.cpp:63 -#: CL-install/share/codelite/templates/projects/executable-wxcrafter-dialog/wxcrafter.cpp:37 -#: ExternalTools/newtoolbase.cpp:133 UnitTestCPP/testclassbasedlg.cpp:107 -msgid "Cancel" -msgstr "取消" +#: Plugin/wxcrafter_plugin.cpp:122 +msgid "Comparison" +msgstr "对比" -#: DatabaseExplorer/GUI.cpp:731 DatabaseExplorer/GUI.cpp:888 -#: DatabaseExplorer/GUI.cpp:1087 DatabaseExplorer/GUI.cpp:1282 -#: CodeDesigner/codedesigneritembasedlg.cpp:105 -#: Plugin/VirtualDirectorySelectorBase.cpp:52 -#: Runtime/templates/projects/executable-wxcrafter-dialog/wxcrafter.cpp:33 -#: CLgtk3-install/share/codelite/templates/projects/executable-wxcrafter-dialog/wxcrafter.cpp:33 -#: ~/.codelite/templates/projects/executable-wxcrafter-dialog/wxcrafter.cpp:33 -#: LiteEditor/compiler_pages.cpp:737 Subversion2/subversion2_ui.cpp:628 -#: CL-install/share/codelite/templates/projects/executable-wxcrafter-dialog/wxcrafter.cpp:33 -msgid "OK" -msgstr "确定" +#: Plugin/wxcrafter_plugin.cpp:126 Plugin/DiffSideBySidePanel.cpp:365 +#: CallGraph/uicallgraph.cpp:69 git/GitConsole.cpp:137 +#: SFTP/SFTPTreeView.cpp:361 LiteEditor/debuggersettingsbasedlg.cpp:712 +#: menu.xrc:1186 +msgid "Refresh" +msgstr "刷新" -#: DatabaseExplorer/GUI.cpp:772 LiteEditor/editorsettingsmiscbasepanel.cpp:273 -#: git/GitConsole.cpp:174 -msgid "Log" -msgstr "日志" +#: Plugin/wxcrafter_plugin.cpp:126 Subversion2/subversion_view.cpp:276 +#: DatabaseExplorer/DbViewerPanel.cpp:89 +msgid "Refresh View" +msgstr "刷新视图" -#: DatabaseExplorer/GUI.cpp:833 -msgid "View name:" -msgstr "视图名称:" +#: Plugin/wxcrafter_plugin.cpp:128 LiteEditor/frame.cpp:1467 +#: LiteEditor/frame.cpp:1628 LiteEditor/frame.cpp:1764 +#: LiteEditor/frame.cpp:1969 +msgid "Next" +msgstr "下一个" -#: DatabaseExplorer/GUI.cpp:928 LiteEditor/commentpagebase.cpp:74 -#: LiteEditor/editorsettingscommentsdoxygenpanelbase.cpp:61 -msgid "Class prefix:" -msgstr "类前缀:" +#: Plugin/wxcrafter_plugin.cpp:128 +msgid "Next Diff" +msgstr "下一个 Diff" -#: DatabaseExplorer/GUI.cpp:936 -msgid "Class postfix:" -msgstr "类后缀:" +#: Plugin/wxcrafter_plugin.cpp:130 +msgid "Previous" +msgstr "上一个" -#: DatabaseExplorer/GUI.cpp:944 -msgid "Folder:" -msgstr "文件夹:" +#: Plugin/wxcrafter_plugin.cpp:130 +msgid "Previous Diff" +msgstr "当前修订版本 " -#: DatabaseExplorer/GUI.cpp:952 -msgid "Virtual folder:" -msgstr "虚拟文件夹:" +#: Plugin/wxcrafter_plugin.cpp:133 +#: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:129 +#: LiteEditor/CompilerMainPage.cpp:626 LiteEditor/options_dlg2.cpp:110 +#: LiteEditor/add_option_dialog.h:57 LiteEditor/tasksfindwhatdlgbase.cpp:56 +#: LiteEditor/free_text_dialog.h:57 menu.xrc:1153 +msgid "Edit" +msgstr "编辑" -#: DatabaseExplorer/GUI.cpp:967 CodeDesigner/codedesigneritembasedlg.cpp:90 -#: CodeDesigner/codedesignersettingsbasedlg.cpp:35 -#: Copyright/copyrights_options_base_dlg.cpp:35 -#: LiteEditor/newworkspacebasedlg.cpp:43 -#: LiteEditor/project_settings_base_dlg.cpp:402 -#: LiteEditor/project_settings_base_dlg.cpp:773 -#: LiteEditor/tabgroupbasedlgs.cpp:29 wxformbuilder/wxfbitembasedlg.cpp:55 -#: wxformbuilder/formbuildsettingsbasedlg.cpp:35 -#: SnipWiz/templateclassbasedlg.cpp:102 SnipWiz/templateclassbasedlg.cpp:118 -#: SnipWiz/editsnippetsbasedlg.cpp:56 UnitTestCPP/testclassbasedlg.cpp:32 -msgid "..." -msgstr "..." +#: Plugin/wxcrafter_plugin.cpp:137 Plugin/wxcrafter_plugin.cpp:139 +msgid " Copy" +msgstr " 复制" -#: DatabaseExplorer/GUI.cpp:971 SnipWiz/templateclassbasedlg.cpp:43 -msgid "Template:" -msgstr "模板:" +#: Plugin/wxcrafter_plugin.cpp:137 +msgid "Copy current diff sequence from the left side to the right side" +msgstr "从左边复制当前diff序列到右边" -#: DatabaseExplorer/GUI.cpp:985 -msgid "Log:" -msgstr "日志:" +#: Plugin/wxcrafter_plugin.cpp:139 +msgid "Copy current diff sequence from the right side to the left side" +msgstr "从右边复制当前diff序列到左边" -#: DatabaseExplorer/GUI.cpp:1003 wxformbuilder/wxfbitembasedlg.cpp:66 -#: SnipWiz/templateclassbasedlg.cpp:145 -msgid "Generate" -msgstr "生成" +#: Plugin/wxcrafter_plugin.cpp:141 +msgid "All Left" +msgstr "全部向左" -#: DatabaseExplorer/GUI.cpp:1130 -msgid "Table name:" -msgstr "表格名称:" +#: Plugin/wxcrafter_plugin.cpp:141 +msgid "Copy the content of the left file to the right file" +msgstr "从左边文件复制内容到右边" -#: DatabaseExplorer/GUI.cpp:1149 -msgid "Columns:" -msgstr "列:" +#: Plugin/wxcrafter_plugin.cpp:143 +msgid "All Right" +msgstr "全部向右" -#: DatabaseExplorer/GUI.cpp:1158 -msgid "Add column" -msgstr "添加列" +#: Plugin/wxcrafter_plugin.cpp:143 +msgid "Copy file from right to left" +msgstr "从右边文件复制内容到左边" -#: DatabaseExplorer/GUI.cpp:1158 -msgid "Add new column" -msgstr "添加新列" +#: Plugin/wxcrafter_plugin.cpp:145 codelite_terminal/wxcrafter.cpp:67 +#: LiteEditor/wxcrafter.cpp:643 LiteEditor/frame.cpp:1305 +#: LiteEditor/frame.cpp:1521 LiteEditor/frame.cpp:1658 +#: LiteEditor/frame.cpp:1807 menu.xrc:721 menu.xrc:748 +#: DatabaseExplorer/ErdPanel.cpp:165 +msgid "Save" +msgstr "保存" -#: DatabaseExplorer/GUI.cpp:1160 -msgid "Remove column" -msgstr "删除列" +#: Plugin/wxcrafter_plugin.cpp:145 +msgid "Save changes and refresh the diff view" +msgstr "保存变更并刷新 diff 视图 " -#: DatabaseExplorer/GUI.cpp:1160 -msgid "Remove selected column" -msgstr "删除所选列" +#: Plugin/wxcrafter_plugin.cpp:148 codelitephp/php-plugin/php_ui.cpp:791 +#: DatabaseExplorer/ErdPanel.cpp:182 +msgid "View" +msgstr "视图" -#: DatabaseExplorer/GUI.cpp:1164 -msgid "Move column up" -msgstr "列上移" +#: Plugin/wxcrafter_plugin.cpp:152 +msgid "Vertical" +msgstr "垂直" -#: DatabaseExplorer/GUI.cpp:1164 -msgid "Move selected column up" -msgstr "选定列上移" +#: Plugin/wxcrafter_plugin.cpp:152 +msgid "Vertical panes" +msgstr "垂直窗格" -#: DatabaseExplorer/GUI.cpp:1166 -msgid "Move column down" -msgstr "列下移" +#: Plugin/wxcrafter_plugin.cpp:154 +msgid "Horizontal" +msgstr "水平" -#: DatabaseExplorer/GUI.cpp:1166 -msgid "Move selected column down" -msgstr "选定列下移" +#: Plugin/wxcrafter_plugin.cpp:154 +msgid "Horizontal panes" +msgstr "水平窗格" -#: DatabaseExplorer/GUI.cpp:1173 -msgid "Column name" -msgstr "列名称" +#: Plugin/wxcrafter_plugin.cpp:156 +msgid "Single" +msgstr "单一" + +#: Plugin/wxcrafter_plugin.cpp:156 +msgid "Single view" +msgstr "单一视图" + +#: Plugin/wxcrafter_plugin.cpp:170 Plugin/wxcrafter_plugin.cpp:226 +#: git/gitui.cpp:61 git/gitui.cpp:69 git/gitui.cpp:1206 +#: Subversion2/subversion2_ui.cpp:1029 SFTP/UI.cpp:351 +#: MemCheck/memcheckui.cpp:584 MemCheck/memcheckui.cpp:642 +#: cscope/CscopeTabBase.cpp:154 LiteEditor/wxcrafter.cpp:299 +#: LiteEditor/CompilerMainPage.cpp:212 LiteEditor/BuildTabTopPanel.cpp:75 +#: CMakePlugin/CMakePluginUi.cpp:40 codelitephp/php-plugin/php_ui.cpp:420 +#: codelitephp/php-plugin/php_ui.cpp:669 codelitephp/php-plugin/php_ui.cpp:680 +#: codelitephp/php-plugin/php_ui.cpp:689 +#: codelitephp/php-plugin/php_ui.cpp:1865 DatabaseExplorer/GUI.cpp:454 +msgid "Select a file" +msgstr "选择文件" -#: DatabaseExplorer/GUI.cpp:1175 Plugin/sftp_ui.cpp:288 SFTP/UI.cpp:146 -msgid "Size" -msgstr "大小" +#: Plugin/wxcrafter_plugin.cpp:359 +msgid "Caption" +msgstr "标题" -#: DatabaseExplorer/GUI.cpp:1176 -msgid "Not null" -msgstr "不能为空" +#: Plugin/VirtualDirectorySelectorDlg.cpp:324 +msgid "New Virtual Folder Name:" +msgstr "新的虚拟文件夹名称:" -#: DatabaseExplorer/GUI.cpp:1177 -msgid "Autoincrement" -msgstr "自动递增" +#: Plugin/VirtualDirectorySelectorDlg.cpp:324 +#: LiteEditor/new_virtual_folder.h:66 menu.xrc:953 menu.xrc:1032 +msgid "New Virtual Folder" +msgstr "新建虚拟文件夹" -#: DatabaseExplorer/GUI.cpp:1178 -msgid "Primary key" -msgstr "主键" +#: Plugin/VirtualDirectorySelectorDlg.cpp:339 +msgid "Error occured while creating virtual folder:\n" +msgstr "创建虚拟文件夹错误:\n" -#: DatabaseExplorer/GUI.cpp:1185 -msgid "Foreign keys:" -msgstr "外部键" +#: Plugin/WSImporterDlgs.h:40 +msgid "Import - Environment variable" +msgstr "导入 - 环境变量" -#: DatabaseExplorer/GUI.cpp:1194 -msgid "Add foreign key" -msgstr "添加外部键" +#: Plugin/macrosbasedlg.h:70 +msgid "Available Macros:" +msgstr "可用的宏命令:" -#: DatabaseExplorer/GUI.cpp:1194 -msgid "Add new foreign key" -msgstr "添加新的外部键" +#: Plugin/sftp_ui.h:67 +msgid "SSH Account Manager" +msgstr "SSH 账户管理" -#: DatabaseExplorer/GUI.cpp:1196 -msgid "Remove foreign key" -msgstr "移除外部键" +#: Plugin/sftp_ui.h:115 +msgid "Add Account" +msgstr "添加账户" -#: DatabaseExplorer/GUI.cpp:1196 -msgid "Remove selected foreign key" -msgstr "移除已选择的外部键" +#: Plugin/sftp_ui.h:167 +msgid "SFTP Browser" +msgstr "SFTP 浏览器" -#: DatabaseExplorer/GUI.cpp:1211 -msgid "Key name" -msgstr "键名称" +#: Plugin/sftp_ui.h:190 +msgid "SSHTerminalBase" +msgstr "SSH 终端基础" -#: DatabaseExplorer/GUI.cpp:1223 -msgid "Local column:" -msgstr "本地列:" +#: Plugin/SSHAccountManagerDlg.cpp:77 +msgid "Are you sure you want to delete the selected accounts?" +msgstr "您确定要删除已选择的账号吗?" -#: DatabaseExplorer/GUI.cpp:1232 -msgid "Ref. table:" -msgstr "引用表:" +#: Plugin/clBoostrapWizardBase.cpp:34 +msgid "Welcome to the setup wizard" +msgstr "欢迎来到设置向导" + +#: Plugin/clBoostrapWizardBase.cpp:34 +msgid "" +"This wizard will help you setup CodeLite to fit your coding style. Click " +"Next to continue" +msgstr "此向导将帮助您设置 CodeLite 以适合您的编码风格。单击下一步继续" + +#: Plugin/clBoostrapWizardBase.cpp:46 +msgid "Not this time!" +msgstr "现在不需要了!" + +#: Plugin/clBoostrapWizardBase.cpp:46 +msgid "" +"If your CodeLite is already configured the way you like it, click to skip " +"the Wizard" +msgstr "如果你的 CodeLite 已经按您喜欢的方式配置,请单击以跳过向导" + +#: Plugin/clBoostrapWizardBase.cpp:60 WebTools/WebToolsBase.cpp:102 +msgid "Plugins" +msgstr "插件" + +#: Plugin/clBoostrapWizardBase.cpp:60 +msgid "" +"By default CodeLite comes with many plugins. Here you can disable some if " +"needed" +msgstr "默认情况下,CodeLite 配备了很多插件。您可以在这里禁用一些不必要的插件" + +#: Plugin/clBoostrapWizardBase.cpp:74 +msgid "X" +msgstr "X" + +#: Plugin/clBoostrapWizardBase.cpp:75 Plugin/sftp_ui.cpp:348 +#: ExternalTools/externaltooldlg.cpp:101 SFTP/UI.cpp:184 +#: LiteEditor/implementparentvirtualfunctionsbase.cpp:88 +#: LiteEditor/setters_getters.cpp:77 LiteEditor/CompilerMainPage.cpp:82 +#: LiteEditor/localstable.cpp:49 LiteEditor/attachdbgprocdlg.cpp:56 +#: LLDBDebugger/LLDBLocalsView.cpp:52 Gizmos/newclassdlg.cpp:61 +#: codelitephp/php-plugin/php_ui.cpp:351 +#: codelitephp/php-plugin/php_ui.cpp:1282 +msgid "Name" +msgstr "名称" -#: DatabaseExplorer/GUI.cpp:1241 -msgid "Ref. column:" -msgstr "引用列:" +#: Plugin/clBoostrapWizardBase.cpp:81 LiteEditor/tabgroupbasedlgs.cpp:134 +msgid "Check All" +msgstr "全选" -#: DatabaseExplorer/GUI.cpp:1255 -msgid "On update" -msgstr "On update" +#: Plugin/clBoostrapWizardBase.cpp:82 +msgid "Check all plugins" +msgstr "选中所有的插件" -#: DatabaseExplorer/GUI.cpp:1265 -msgid "On delete" -msgstr "On delete" +#: Plugin/clBoostrapWizardBase.cpp:86 LiteEditor/plugindlgbase.cpp:76 +msgid "Uncheck All" +msgstr "取消所有" -#: sdk/wxshapeframework/include/wx/wxsf/EditTextShape.h:89 -msgid "Edit content" -msgstr "编辑内容" +#: Plugin/clBoostrapWizardBase.cpp:87 +msgid "uncheck all plugins" +msgstr "取消选中所有的插件" -#: sdk/databaselayer/src/dblayer/PreparedStatement.cpp:24 -msgid "ResultSet NOT closed and cleaned up by the PreparedStatement dtor" -msgstr "结果集没有通过数据库层析构函数关闭以及清理" +#: Plugin/clBoostrapWizardBase.cpp:91 +msgid "C++ Plugins" +msgstr "C++ 插件" -#: sdk/databaselayer/src/dblayer/OdbcDatabaseLayer.cpp:383 -#: sdk/databaselayer/src/dblayer/OdbcDatabaseLayer.cpp:445 -msgid "TABLE" -msgstr "" +#: Plugin/clBoostrapWizardBase.cpp:92 +msgid "Toggle C++ plugins" +msgstr "切换 C++ 插件" -#: sdk/databaselayer/src/dblayer/OdbcDatabaseLayer.cpp:415 -#: sdk/databaselayer/src/dblayer/OdbcDatabaseLayer.cpp:496 -msgid "VIEW" -msgstr "" +#: Plugin/clBoostrapWizardBase.cpp:104 +msgid "Setup compilers" +msgstr "设置编译器" -#: sdk/databaselayer/src/dblayer/OdbcDatabaseLayer.cpp:597 -msgid "OdbcDatabaseLayer::InterpretErrorCodes()\n" -msgstr "" +#: Plugin/clBoostrapWizardBase.cpp:104 +msgid "Let CodeLite configure your installed compilers or help you install one" +msgstr "让 CodeLite 配置您已安装的编译器或帮助您安装一个" -#: sdk/databaselayer/src/dblayer/MysqlPreparedStatementResultSet.cpp:297 -#: sdk/databaselayer/src/dblayer/MysqlPreparedStatementResultSet.cpp:318 -#: sdk/databaselayer/src/dblayer/TdsResultSet.cpp:344 -#: sdk/databaselayer/src/dblayer/OdbcResultSet.cpp:484 -#: sdk/databaselayer/src/dblayer/OTLResultSet.cpp:321 -#: sdk/databaselayer/src/dblayer/SqliteResultSet.cpp:199 -#: sdk/databaselayer/src/dblayer/PostgresResultSet.cpp:243 -#: sdk/databaselayer/src/dblayer/FirebirdResultSet.cpp:542 -#: sdk/databaselayer/src/dblayer/OracleResultSet.cpp:245 -msgid "Field '" -msgstr "" +#: Plugin/clBoostrapWizardBase.cpp:110 +msgid "Scan" +msgstr "扫描" -#: sdk/databaselayer/src/dblayer/MysqlPreparedStatementResultSet.cpp:297 -#: sdk/databaselayer/src/dblayer/MysqlPreparedStatementResultSet.cpp:318 -#: sdk/databaselayer/src/dblayer/TdsResultSet.cpp:344 -#: sdk/databaselayer/src/dblayer/OdbcResultSet.cpp:484 -#: sdk/databaselayer/src/dblayer/OTLResultSet.cpp:321 -#: sdk/databaselayer/src/dblayer/SqliteResultSet.cpp:199 -#: sdk/databaselayer/src/dblayer/PostgresResultSet.cpp:243 -#: sdk/databaselayer/src/dblayer/FirebirdResultSet.cpp:542 -#: sdk/databaselayer/src/dblayer/OracleResultSet.cpp:245 -msgid "' not found in the resultset" -msgstr "' 没有在结果集中发现" +#: Plugin/clBoostrapWizardBase.cpp:110 +msgid "Click to scan your computer for installed compilers" +msgstr "单击来扫描电脑中已安装的编译器" -#: sdk/databaselayer/src/dblayer/SqliteResultSetMetaData.cpp:21 -msgid "INTEGER" -msgstr "" +#: Plugin/clBoostrapWizardBase.cpp:114 +msgid "Install" +msgstr "安装" -#: sdk/databaselayer/src/dblayer/SqliteResultSetMetaData.cpp:21 -msgid "INT" -msgstr "" +#: Plugin/clBoostrapWizardBase.cpp:114 +msgid "Click to download a MinGW compiler" +msgstr "单击下载 MinGW 编译器" + +#: Plugin/clBoostrapWizardBase.cpp:123 +msgid "Compiler Name" +msgstr "编译器名称" + +#: Plugin/clBoostrapWizardBase.cpp:124 LiteEditor/CompilersFoundDlgBase.cpp:71 +msgid "Installation Path" +msgstr "安装路径" + +#: Plugin/clBoostrapWizardBase.cpp:133 +msgid "Customize colours" +msgstr "自定义颜色" + +#: Plugin/clBoostrapWizardBase.cpp:133 +msgid "Select the editor theme from the list below" +msgstr "从下面的列表中选择编辑器主题" + +#: Plugin/clBoostrapWizardBase.cpp:141 +msgid "" +"Select the theme from a list.\n" +"If the selected theme does not exist for a given language, CodeLite will " +"select the closest one available" +msgstr "" +"从列表中选择一个主题。 \n" +"如果对于所选语言的主题不存在,CodeLite 将选择最接近的一个" + +#: Plugin/clBoostrapWizardBase.cpp:207 +msgid "Whitespace & Indentation" +msgstr "空白 & 缩进" + +#: Plugin/clBoostrapWizardBase.cpp:207 +msgid "Should CodeLite use TABS or SPACES for indentation?" +msgstr "CodeLite 需要使用制表符或空格来缩进吗?" + +#: Plugin/clBoostrapWizardBase.cpp:216 +msgid "Indent using SPACES" +msgstr "使用空格缩进" + +#: Plugin/clBoostrapWizardBase.cpp:217 +msgid "Indent using TABS" +msgstr "使用制表符缩进" + +#: Plugin/clBoostrapWizardBase.cpp:218 +#: CodeFormatter/codeformatterdlgbase.cpp:152 +#: LiteEditor/editorsettingslocalbase.cpp:46 LiteEditor/options_dlg2.cpp:111 +msgid "Indentation" +msgstr "缩进" -#: sdk/databaselayer/src/dblayer/SqliteResultSetMetaData.cpp:21 -msgid "LONG" -msgstr "" +#: Plugin/clBoostrapWizardBase.cpp:224 +#: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:60 +#: LiteEditor/editorsettingslocal.cpp:81 menu.xrc:217 +msgid "Invisible" +msgstr "不可见" -#: sdk/databaselayer/src/dblayer/SqliteResultSetMetaData.cpp:23 -msgid "STRING" -msgstr "" +#: Plugin/clBoostrapWizardBase.cpp:225 +#: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:61 +#: LiteEditor/editorsettingslocal.cpp:82 +msgid "Visible always" +msgstr "总是可见" -#: sdk/databaselayer/src/dblayer/SqliteResultSetMetaData.cpp:23 -msgid "VARCHAR" -msgstr "" +#: Plugin/clBoostrapWizardBase.cpp:226 +#: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:62 +#: LiteEditor/editorsettingslocal.cpp:83 +msgid "Visible after indentation" +msgstr "缩进后可见" -#: sdk/databaselayer/src/dblayer/SqliteResultSetMetaData.cpp:25 -msgid "DOUBLE" -msgstr "" +#: Plugin/clBoostrapWizardBase.cpp:227 +msgid "Whitespace Visibility:" +msgstr "空白可见性:" -#: sdk/databaselayer/src/dblayer/SqliteResultSetMetaData.cpp:25 -msgid "FLOAT" -msgstr "" +#: Plugin/nameanddescbasedlg.h:80 +msgid "Save Project As Template" +msgstr "另存为项目模板" -#: sdk/databaselayer/src/dblayer/SqliteResultSetMetaData.cpp:27 -msgid "BOOL" -msgstr "" +#: Plugin/wxcrafter_plugin.h:54 +msgid "Edit Text" +msgstr "编辑文本" -#: sdk/databaselayer/src/dblayer/SqliteResultSetMetaData.cpp:29 -msgid "BLOB" -msgstr "" +#: Plugin/custombuildrequest.cpp:74 Plugin/clean_request.cpp:67 +#: Plugin/compile_request.cpp:75 +msgid "Cant find project: " +msgstr "项目不存在:" -#: sdk/databaselayer/src/dblayer/SqliteResultSetMetaData.cpp:31 -msgid "DATE" -msgstr "" +#: Plugin/custombuildrequest.cpp:131 Plugin/compile_request.cpp:152 +msgid "Command line is empty. Build aborted." +msgstr "命令行为空,构建中止。" -#: sdk/databaselayer/src/dblayer/SqliteResultSetMetaData.cpp:31 -msgid "DATETIME" -msgstr "" +#: Plugin/custombuildrequest.cpp:176 +#, c-format +msgid "MESSAGE: Entering directory `%s'\n" +msgstr "消息:正在进入目录“%s”\n" -#: sdk/databaselayer/src/dblayer/SqliteResultSetMetaData.cpp:31 -msgid "TIMESTAMP" -msgstr "" +#: Plugin/custombuildrequest.cpp:223 Plugin/compile_request.cpp:195 +msgid "Failed to start build process, command: " +msgstr "启动构建进程失败,命令:" -#: sdk/databaselayer/src/dblayer/PostgresDatabaseLayer.cpp:23 -#: sdk/databaselayer/src/dblayer/PostgresDatabaseLayer.cpp:43 -#: sdk/databaselayer/src/dblayer/PostgresDatabaseLayer.cpp:85 -#: sdk/databaselayer/src/dblayer/PostgresDatabaseLayer.cpp:160 -#: sdk/databaselayer/src/dblayer/PostgresDatabaseLayer.cpp:218 -#: sdk/databaselayer/src/dblayer/FirebirdDatabaseLayer.cpp:36 -#: sdk/databaselayer/src/dblayer/FirebirdDatabaseLayer.cpp:59 -#: sdk/databaselayer/src/dblayer/MysqlDatabaseLayer.cpp:28 -#: sdk/databaselayer/src/dblayer/MysqlDatabaseLayer.cpp:49 -#: sdk/databaselayer/src/dblayer/MysqlDatabaseLayer.cpp:90 -msgid "localhost" -msgstr "" +#: Plugin/custombuildrequest.cpp:223 Plugin/clean_request.cpp:155 +#: Plugin/compile_request.cpp:195 +msgid ", process terminated with exit code: 0" +msgstr ",过程终止,退出代码: 0" -#: sdk/databaselayer/src/dblayer/PostgresDatabaseLayer.cpp:277 -#: LiteEditor/newkeyshortcutdlg.cpp:81 -msgid "BEGIN" -msgstr "" +#: Plugin/bookmark_manager.cpp:80 +msgid "Next Bookmark" +msgstr "下一个书签" -#: sdk/databaselayer/src/dblayer/PostgresDatabaseLayer.cpp:282 -msgid "COMMIT" -msgstr "" +#: Plugin/bookmark_manager.cpp:81 +msgid "Previous Bookmark" +msgstr "上一个书签" -#: sdk/databaselayer/src/dblayer/PostgresDatabaseLayer.cpp:287 -msgid "ROLLBACK" -msgstr "" +#: Plugin/bookmark_manager.cpp:100 +msgid "Change Active Bookmark Type..." +msgstr "更改活跃的书签类型..." -#: sdk/databaselayer/src/dblayer/PostgresDatabaseLayer.cpp:364 -msgid "" -"SELECT COUNT(*) FROM information_schema.tables WHERE table_type='BASE TABLE' " -"AND table_name=?;" -msgstr "" +#: Plugin/bookmark_manager.cpp:104 +msgid "Remove All Currently-Active Bookmarks" +msgstr "移除所有当前活动的书签" -#: sdk/databaselayer/src/dblayer/PostgresDatabaseLayer.cpp:429 -msgid "" -"SELECT COUNT(*) FROM information_schema.tables WHERE table_type='VIEW' AND " -"table_name=?;" -msgstr "" +#: Plugin/bookmark_manager.cpp:107 +msgid "More..." +msgstr "更多..." -#: sdk/databaselayer/src/dblayer/PostgresDatabaseLayer.cpp:490 -msgid "" -"SELECT table_name FROM information_schema.tables WHERE table_type='BASE " -"TABLE' AND table_schema='public';" -msgstr "" +#: Plugin/bookmark_manager.cpp:121 +msgid "Normal bookmark" +msgstr "普通书签" -#: sdk/databaselayer/src/dblayer/PostgresDatabaseLayer.cpp:529 -msgid "" -"SELECT table_name FROM information_schema.tables WHERE table_type='VIEW' AND " -"table_schema='public';" -msgstr "" +#: Plugin/bookmark_manager.cpp:124 +msgid "Find bookmark" +msgstr "查找书签" -#: sdk/databaselayer/src/dblayer/PostgresDatabaseLayer.cpp:573 -msgid "" -"SELECT column_name FROM information_schema.columns WHERE table_name=? ORDER " -"BY ordinal_position;" -msgstr "" +#: Plugin/bookmark_manager.cpp:127 +msgid "Bookmark Type" +msgstr "书签类型" -#: sdk/databaselayer/src/dblayer/FirebirdPreparedStatementWrapper.cpp:43 -msgid "Error calling isc_dsql_free_statement" -msgstr "" +#: Plugin/clean_request.cpp:81 +msgid "Sorry, there is no 'Clean' command available\n" +msgstr "对不起,“清理”命令不可用\n" -#: sdk/databaselayer/src/dblayer/FirebirdPreparedStatementWrapper.cpp:309 -msgid "SELECT " -msgstr "" +#: Plugin/clean_request.cpp:106 +msgid "Sorry, couldn't find the Build configuration\n" +msgstr "对不起, 找不到构建配置\n" -#: sdk/databaselayer/src/dblayer/FirebirdPreparedStatementWrapper.cpp:314 -msgid "FirebirdPreparesStatementWrapper::InterpretErrorCodes()\n" -msgstr "" +#: Plugin/clean_request.cpp:155 +msgid "Failed to start clean process, command: " +msgstr "启动清理进程失败,命令:" -#: sdk/databaselayer/src/dblayer/OTLResultSet.cpp:123 -msgid "Invalid Date" -msgstr "无效日期" +#: Plugin/newkeyshortcutdlg.cpp:33 Plugin/newkeyshortcutdlg.cpp:85 +msgid "DEL" +msgstr "DEL" -#: sdk/databaselayer/src/dblayer/OTLResultSet.cpp:139 -#, c-format -msgid "Result as string: '%s'\n" -msgstr "结果字符串:'%s'\n" +#: Plugin/newkeyshortcutdlg.cpp:34 +msgid "DELETE" +msgstr "DELETE" -#: sdk/databaselayer/src/dblayer/SqlitePreparedStatement.cpp:265 -#: sdk/databaselayer/src/dblayer/SqliteResultSet.cpp:66 -msgid "Error with RunQueryWithResults\n" -msgstr "" +#: Plugin/newkeyshortcutdlg.cpp:35 +msgid "BACK" +msgstr "BACK" -#: sdk/databaselayer/src/dblayer/OracleDatabaseLayer.cpp:11 -msgid "1521" -msgstr "" +#: Plugin/newkeyshortcutdlg.cpp:36 Plugin/newkeyshortcutdlg.cpp:84 +msgid "INS" +msgstr "INS" -#: sdk/databaselayer/src/dblayer/OracleDatabaseLayer.cpp:68 -#: sdk/databaselayer/src/dblayer/OTLDatabaseLayer.cpp:68 -msgid "Host=" -msgstr "" +#: Plugin/newkeyshortcutdlg.cpp:37 Plugin/newkeyshortcutdlg.cpp:72 +msgid "ENTER" +msgstr "ENTER" -#: sdk/databaselayer/src/dblayer/OracleDatabaseLayer.cpp:72 -#: sdk/databaselayer/src/dblayer/OTLDatabaseLayer.cpp:74 -msgid "Port=" -msgstr "" +#: Plugin/newkeyshortcutdlg.cpp:38 +msgid "RETURN" +msgstr "RETURN" -#: sdk/databaselayer/src/dblayer/OracleDatabaseLayer.cpp:80 -#: sdk/databaselayer/src/dblayer/OTLDatabaseLayer.cpp:82 -msgid "Service Name=" -msgstr "" +#: Plugin/newkeyshortcutdlg.cpp:39 Plugin/newkeyshortcutdlg.cpp:79 +msgid "PGUP" +msgstr "PGUP" -#: sdk/databaselayer/src/dblayer/OracleDatabaseLayer.cpp:101 -#: sdk/databaselayer/src/dblayer/OTLDatabaseLayer.cpp:108 -msgid "Error creating database connection" -msgstr "创建数据库连接错误" +#: Plugin/newkeyshortcutdlg.cpp:40 Plugin/newkeyshortcutdlg.cpp:81 +msgid "PGDN" +msgstr "PGDN" -#: sdk/databaselayer/src/dblayer/FirebirdDatabaseLayer.cpp:198 -#: sdk/databaselayer/src/dblayer/MysqlDatabaseLayer.cpp:189 -#: sdk/databaselayer/src/dblayer/TdsDatabaseLayer.cpp:87 -#: sdk/databaselayer/src/dblayer/TdsDatabaseLayer.cpp:97 -#: sdk/databaselayer/src/dblayer/SqliteDatabaseLayer.cpp:18 -#: sdk/databaselayer/src/dblayer/SqliteDatabaseLayer.cpp:26 -msgid "UTF-8" -msgstr "" +#: Plugin/newkeyshortcutdlg.cpp:41 Plugin/newkeyshortcutdlg.cpp:74 +msgid "LEFT" +msgstr "LEFT" -#: sdk/databaselayer/src/dblayer/FirebirdDatabaseLayer.cpp:238 -#: sdk/databaselayer/src/dblayer/MysqlDatabaseLayer.cpp:206 -msgid ":" -msgstr "" +#: Plugin/newkeyshortcutdlg.cpp:42 Plugin/newkeyshortcutdlg.cpp:76 +msgid "RIGHT" +msgstr "RIGHT" -#: sdk/databaselayer/src/dblayer/FirebirdDatabaseLayer.cpp:394 -#: sdk/databaselayer/src/dblayer/FirebirdDatabaseLayer.cpp:471 -msgid "Unable to start transaction" -msgstr "无法开始事务" +#: Plugin/newkeyshortcutdlg.cpp:43 Plugin/newkeyshortcutdlg.cpp:75 +msgid "UP" +msgstr "UP" -#: sdk/databaselayer/src/dblayer/FirebirdDatabaseLayer.cpp:439 -#: sdk/databaselayer/src/dblayer/FirebirdDatabaseLayer.cpp:659 -msgid "Database handle is NULL" -msgstr "数据库句柄为空" +#: Plugin/newkeyshortcutdlg.cpp:44 Plugin/newkeyshortcutdlg.cpp:77 +msgid "DOWN" +msgstr "DOWN" -#: sdk/databaselayer/src/dblayer/FirebirdDatabaseLayer.cpp:697 -msgid "" -"SELECT COUNT(*) FROM RDB$RELATIONS WHERE RDB$SYSTEM_FLAG=0 AND RDB$VIEW_BLR " -"IS NULL AND RDB$RELATION_NAME=?;" -msgstr "" +#: Plugin/newkeyshortcutdlg.cpp:45 Plugin/newkeyshortcutdlg.cpp:73 +msgid "HOME" +msgstr "HOME" -#: sdk/databaselayer/src/dblayer/FirebirdDatabaseLayer.cpp:763 -msgid "" -"SELECT COUNT(*) FROM RDB$RELATIONS WHERE RDB$SYSTEM_FLAG=0 AND RDB$VIEW_BLR " -"IS NOT NULL AND RDB$RELATION_NAME=?;" -msgstr "" +#: Plugin/newkeyshortcutdlg.cpp:46 Plugin/newkeyshortcutdlg.cpp:82 +msgid "END" +msgstr "END" -#: sdk/databaselayer/src/dblayer/FirebirdDatabaseLayer.cpp:824 -msgid "" -"SELECT RDB$RELATION_NAME FROM RDB$RELATIONS WHERE RDB$SYSTEM_FLAG=0 AND RDB" -"$VIEW_BLR IS NULL" -msgstr "" +#: Plugin/newkeyshortcutdlg.cpp:47 Plugin/newkeyshortcutdlg.cpp:70 +msgid "SPACE" +msgstr "SPACE" -#: sdk/databaselayer/src/dblayer/FirebirdDatabaseLayer.cpp:863 -msgid "" -"SELECT RDB$RELATION_NAME FROM RDB$RELATIONS WHERE RDB$SYSTEM_FLAG=0 AND RDB" -"$VIEW_BLR IS NOT NULL" -msgstr "" +#: Plugin/newkeyshortcutdlg.cpp:48 Plugin/newkeyshortcutdlg.cpp:71 +msgid "TAB" +msgstr "TAB" -#: sdk/databaselayer/src/dblayer/FirebirdDatabaseLayer.cpp:907 -msgid "" -"SELECT RDB$FIELD_NAME FROM RDB$RELATION_FIELDS WHERE RDB$RELATION_NAME=?;" -msgstr "" +#: Plugin/newkeyshortcutdlg.cpp:49 +msgid "ESC" +msgstr "ESC" -#: sdk/databaselayer/src/dblayer/MysqlDatabaseLayer.cpp:470 -msgid "SHOW TABLE STATUS WHERE Comment != 'VIEW' AND Name=?;" -msgstr "" +#: Plugin/newkeyshortcutdlg.cpp:50 +msgid "ESCAPE" +msgstr "ESCAPE" -#: sdk/databaselayer/src/dblayer/MysqlDatabaseLayer.cpp:551 -msgid "SHOW TABLE STATUS WHERE Comment = 'VIEW' AND Name=?;" -msgstr "" +#: Plugin/newkeyshortcutdlg.cpp:51 +msgid "CANCEL" +msgstr "CANCEL" -#: sdk/databaselayer/src/dblayer/MysqlDatabaseLayer.cpp:613 -msgid "SHOW TABLE STATUS WHERE Comment != 'VIEW';" -msgstr "" +#: Plugin/newkeyshortcutdlg.cpp:52 +msgid "CLEAR" +msgstr "CLEAR" -#: sdk/databaselayer/src/dblayer/MysqlDatabaseLayer.cpp:674 -msgid "SHOW TABLE STATUS WHERE Comment = 'VIEW';" -msgstr "" +#: Plugin/newkeyshortcutdlg.cpp:53 +msgid "MENU" +msgstr "MENU" -#: sdk/databaselayer/src/dblayer/MysqlDatabaseLayer.cpp:715 -#, c-format -msgid "SHOW COLUMNS FROM %s;" -msgstr "" +#: Plugin/newkeyshortcutdlg.cpp:54 +msgid "PAUSE" +msgstr "PAUSE" -#: sdk/databaselayer/src/dblayer/PostgresPreparedStatement.cpp:277 -#, c-format -msgid "$%d" -msgstr "" +#: Plugin/newkeyshortcutdlg.cpp:55 +msgid "CAPITAL" +msgstr "CAPITAL" -#: sdk/databaselayer/src/dblayer/FirebirdParameter.cpp:75 -msgid "Parameter type is not compatible with parameter of type double\n" -msgstr "参数类型与 double 类型参数不兼容\n" +#: Plugin/newkeyshortcutdlg.cpp:56 +msgid "SELECT" +msgstr "SELECT" -#: sdk/databaselayer/src/dblayer/SqliteResultSet.cpp:72 -msgid "Unknown error advancing result set" -msgstr "" +#: Plugin/newkeyshortcutdlg.cpp:57 +msgid "PRINT" +msgstr "PRINT" -#: sdk/databaselayer/src/dblayer/PostgresResultSet.cpp:77 -#: sdk/databaselayer/src/dblayer/PostgresResultSet.cpp:98 -#: sdk/databaselayer/src/dblayer/PostgresResultSet.cpp:120 -#: sdk/databaselayer/src/dblayer/PostgresResultSet.cpp:217 -msgid "Not implemented\n" -msgstr "未实现\n" +#: Plugin/newkeyshortcutdlg.cpp:58 +msgid "EXECUTE" +msgstr "EXECUTE" -#: sdk/databaselayer/src/dblayer/FirebirdParameterCollection.cpp:162 -msgid "Error allocating space for unknown parameter type\n" -msgstr "分配空间到未知参数类型错误\n" +#: Plugin/newkeyshortcutdlg.cpp:59 +msgid "SNAPSHOT" +msgstr "SNAPSHOT" -#: sdk/databaselayer/src/dblayer/FirebirdParameterCollection.cpp:215 -msgid "Error deleting unknown parameter type\n" -msgstr "删除未知参数类型错误\n" +#: Plugin/newkeyshortcutdlg.cpp:60 +msgid "HELP" +msgstr "HELP" -#: sdk/databaselayer/src/dblayer/MysqlPreparedStatementParameter.cpp:82 -msgid "Error allocating buffer" -msgstr "分配缓冲区错误" +#: Plugin/newkeyshortcutdlg.cpp:61 +msgid "ADD" +msgstr "ADD" -#: sdk/databaselayer/src/dblayer/FirebirdPreparedStatement.cpp:79 -msgid "No SQL Statements found" -msgstr "没有找到 SQL 语句" +#: Plugin/newkeyshortcutdlg.cpp:62 +msgid "SEPARATOR" +msgstr "SEPARATOR" -#: sdk/databaselayer/src/dblayer/FirebirdPreparedStatement.cpp:415 -msgid "Invalid Prepared Statement Parameter" -msgstr "无效的预先声明参数" +#: Plugin/newkeyshortcutdlg.cpp:63 +msgid "SUBTRACT" +msgstr "SUBTRACT" -#: sdk/databaselayer/src/dblayer/FirebirdPreparedStatement.cpp:422 -msgid "FirebirdPreparesStatement::InterpretErrorCodes()\n" -msgstr "" +#: Plugin/newkeyshortcutdlg.cpp:64 +msgid "DECIMAL" +msgstr "DECIMAL" -#: sdk/databaselayer/src/dblayer/FirebirdResultSet.cpp:55 -msgid "Error retrieving Next record\n" -msgstr "获取下一个记录错误\n" +#: Plugin/newkeyshortcutdlg.cpp:65 +msgid "DIVIDE" +msgstr "DIVIDE" -#: sdk/databaselayer/src/dblayer/FirebirdResultSet.cpp:139 -#: sdk/databaselayer/src/dblayer/FirebirdResultSet.cpp:181 -#: sdk/databaselayer/src/dblayer/FirebirdResultSet.cpp:254 -#: sdk/databaselayer/src/dblayer/FirebirdResultSet.cpp:310 -#: sdk/databaselayer/src/dblayer/FirebirdResultSet.cpp:376 -msgid "Invalid field type" -msgstr "无效的字段名称" +#: Plugin/newkeyshortcutdlg.cpp:66 +msgid "NUM_LOCK" +msgstr "NUM_LOCK" -#: sdk/databaselayer/src/dblayer/FirebirdResultSet.cpp:559 -msgid "FirebirdResultSet::InterpretErrorCodes()\n" -msgstr "" +#: Plugin/newkeyshortcutdlg.cpp:67 +msgid "SCROLL_LOCK" +msgstr "SCROLL_LOCK" -#: sdk/databaselayer/src/dblayer/DatabaseLayer.cpp:30 -msgid "ResultSet NOT closed and cleaned up by the DatabaseLayer dtor" -msgstr "结果集没有通过数据库层析构函数关闭以及清理" +#: Plugin/newkeyshortcutdlg.cpp:68 +msgid "PAGEUP" +msgstr "PAGEUP" -#: sdk/databaselayer/src/dblayer/DatabaseLayer.cpp:44 -msgid "PreparedStatement NOT closed and cleaned up by the DatabaseLayer dtor" -msgstr "预处理语句没有通过数据库层析构函数关闭以及清理" +#: Plugin/newkeyshortcutdlg.cpp:69 +msgid "PAGEDOWN" +msgstr "PAGEDOWN" -#: sdk/databaselayer/src/dblayer/DatabaseLayer.cpp:158 -#: sdk/databaselayer/src/dblayer/DatabaseLayer.cpp:242 -#: sdk/databaselayer/src/dblayer/DatabaseLayer.cpp:326 -#: sdk/databaselayer/src/dblayer/DatabaseLayer.cpp:410 -#: sdk/databaselayer/src/dblayer/DatabaseLayer.cpp:494 -#: sdk/databaselayer/src/dblayer/DatabaseLayer.cpp:578 -#: sdk/databaselayer/src/dblayer/DatabaseLayer.cpp:662 -#: sdk/databaselayer/src/dblayer/DatabaseLayer.cpp:732 -#: sdk/databaselayer/src/dblayer/DatabaseLayer.cpp:785 -#: sdk/databaselayer/src/dblayer/DatabaseLayer.cpp:838 -#: sdk/databaselayer/src/dblayer/DatabaseLayer.cpp:892 -msgid "string" -msgstr "" +#: Plugin/newkeyshortcutdlg.cpp:78 +msgid "PRIOR" +msgstr "PRIOR" -#: sdk/databaselayer/src/dblayer/OTLDatabaseLayer.cpp:73 -#: sdk/databaselayer/src/dblayer/OTLDatabaseLayer.cpp:81 -#: sdk/databaselayer/src/dblayer/DatabaseQueryParser.cpp:6 -msgid ";" -msgstr "" +#: Plugin/newkeyshortcutdlg.cpp:80 +msgid "NEXT" +msgstr "NEXT" -#: sdk/databaselayer/src/dblayer/MysqlResultSetMetaData.cpp:54 -#, c-format -msgid "Don't understand type : %d\n" -msgstr "无法理解的类型: %d\n" +#: Plugin/newkeyshortcutdlg.cpp:83 +#: sdk/databaselayer/src/dblayer/PostgresDatabaseLayer.cpp:277 +msgid "BEGIN" +msgstr "BEGIN" -#: sdk/databaselayer/src/dblayer/OdbcPreparedStatement.cpp:388 -msgid "OdbcPreparedStatement::InterpretErrorCodes()\n" -msgstr "" +#: Plugin/newkeyshortcutdlg.cpp:86 +msgid "=" +msgstr "=" -#: sdk/databaselayer/src/dblayer/TdsDatabaseLayer.cpp:129 -msgid "USE " -msgstr "" +#: Plugin/newkeyshortcutdlg.cpp:87 Gizmos/newclassbasedlg.cpp:49 +msgid "*" +msgstr "*" -#: sdk/databaselayer/src/dblayer/TdsDatabaseLayer.cpp:409 -#: sdk/databaselayer/src/dblayer/SqliteDatabaseLayer.cpp:105 -msgid "Beginning transaction" -msgstr "正在开始事务" +#: Plugin/newkeyshortcutdlg.cpp:88 +msgid "+" +msgstr "+" -#: sdk/databaselayer/src/dblayer/TdsDatabaseLayer.cpp:410 -#: sdk/databaselayer/src/dblayer/SqliteDatabaseLayer.cpp:106 -msgid "begin transaction;" -msgstr "开始事务;" +#: Plugin/newkeyshortcutdlg.cpp:89 +msgid "KP_SEPARATOR" +msgstr "KP_SEPARATOR" -#: sdk/databaselayer/src/dblayer/TdsDatabaseLayer.cpp:415 -#: sdk/databaselayer/src/dblayer/SqliteDatabaseLayer.cpp:111 -msgid "Commiting transaction" -msgstr "提交事务中" +#: Plugin/newkeyshortcutdlg.cpp:90 +msgid "-" +msgstr "-" -#: sdk/databaselayer/src/dblayer/TdsDatabaseLayer.cpp:416 -#: sdk/databaselayer/src/dblayer/SqliteDatabaseLayer.cpp:112 -msgid "commit transaction;" -msgstr "提交事务;" +#: Plugin/newkeyshortcutdlg.cpp:91 +msgid "." +msgstr "." -#: sdk/databaselayer/src/dblayer/TdsDatabaseLayer.cpp:421 -#: sdk/databaselayer/src/dblayer/SqliteDatabaseLayer.cpp:117 -msgid "Rolling back transaction" -msgstr "正在回滚事务" +#: Plugin/newkeyshortcutdlg.cpp:92 +msgid "/" +msgstr "/" -#: sdk/databaselayer/src/dblayer/TdsDatabaseLayer.cpp:422 -#: sdk/databaselayer/src/dblayer/SqliteDatabaseLayer.cpp:118 -msgid "rollback transaction;" -msgstr "回滚事务;" +#: Plugin/newkeyshortcutdlg.cpp:93 +msgid "WINDOWS_LEFT" +msgstr "WINDOWS_LEFT" -#: sdk/databaselayer/src/dblayer/TdsDatabaseLayer.cpp:582 -msgid "exec sp_tables ?, NULL, NULL, '''TABLE'''" -msgstr "" +#: Plugin/newkeyshortcutdlg.cpp:94 +msgid "WINDOWS_RIGHT" +msgstr "WINDOWS_RIGHT" -#: sdk/databaselayer/src/dblayer/TdsDatabaseLayer.cpp:593 -#: sdk/databaselayer/src/dblayer/TdsDatabaseLayer.cpp:658 -#: sdk/databaselayer/src/dblayer/TdsDatabaseLayer.cpp:715 -#: sdk/databaselayer/src/dblayer/TdsDatabaseLayer.cpp:755 -msgid "TABLE_NAME" -msgstr "" +#: Plugin/newkeyshortcutdlg.cpp:95 +msgid "WINDOWS_MENU" +msgstr "WINDOWS_MENU" -#: sdk/databaselayer/src/dblayer/TdsDatabaseLayer.cpp:647 -msgid "exec sp_tables ?, NULL, NULL, '''VIEW'''" -msgstr "" +#: Plugin/newkeyshortcutdlg.cpp:96 +msgid "COMMAND" +msgstr "COMMAND" -#: sdk/databaselayer/src/dblayer/TdsDatabaseLayer.cpp:709 -msgid "sp_tables NULL, NULL, NULL, '''TABLE'''" -msgstr "" +#: Plugin/newkeyshortcutdlg.cpp:142 +msgid "F" +msgstr "F" -#: sdk/databaselayer/src/dblayer/TdsDatabaseLayer.cpp:749 -msgid "sp_tables NULL, NULL, NULL, '''VIEW'''" -msgstr "" +#: Plugin/newkeyshortcutdlg.cpp:146 +msgid "SPECIAL" +msgstr "SPECIAL" -#: sdk/databaselayer/src/dblayer/TdsDatabaseLayer.cpp:846 -#, c-format -msgid "sp_columns %s;" -msgstr "" +#: Plugin/NewKeyShortcutBaseDlg.h:46 +msgid "Set New Key Accelerator" +msgstr "设置新的密钥加速器" -#: sdk/databaselayer/src/dblayer/TdsDatabaseLayer.cpp:852 -msgid "COLUMN_NAME" -msgstr "" +#: Plugin/SFTPBrowserDlg.cpp:118 SFTP/SFTPTreeView.cpp:698 +#: SFTP/SFTPTreeView.cpp:860 +msgid "Could not find account: " +msgstr "无法找到账户:" -#: sdk/databaselayer/src/dblayer/SqliteDatabaseLayer.cpp:42 -msgid ":memory:" +#: Plugin/VirtualDirectorySelectorBase.h:64 +msgid "Virtual Directory Selector" +msgstr "虚拟目录选择器" + +#: Plugin/clBootstrapWizard.cpp:301 +msgid "" +"You can always run this setup wizard from the menu:\n" +"Help -> Run the Setup Wizard" msgstr "" +"你将可以从菜单中运行此设置向导: \n" +"帮助 -> 运行设置向导" -#: sdk/databaselayer/src/dblayer/SqliteDatabaseLayer.cpp:46 -msgid "The specified database file '" -msgstr "这个指定的数据库文件 '" +#: Plugin/editor_config.cpp:417 Plugin/editor_config.cpp:455 +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:121 +#: LiteEditor/frame.cpp:1427 LiteEditor/frame.cpp:1929 +#: LiteEditor/output_pane.cpp:47 menu.xrc:980 menu.xrc:999 +msgid "Build" +msgstr "构建" -#: sdk/databaselayer/src/dblayer/SqliteDatabaseLayer.cpp:46 -msgid "' does not exist." -msgstr "' 不存在。" +#: Plugin/editor_config.cpp:420 Plugin/editor_config.cpp:457 +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:127 +#: LiteEditor/frame.cpp:1381 LiteEditor/frame.cpp:1885 +#: LiteEditor/output_pane.cpp:46 menu.xrc:801 +msgid "Search" +msgstr "搜索" -#: sdk/databaselayer/src/dblayer/SqliteDatabaseLayer.cpp:296 -msgid "SELECT COUNT(*) FROM sqlite_master WHERE type='table' AND name=?;" -msgstr "" +#: Plugin/editor_config.cpp:422 Plugin/editor_config.cpp:459 +#: LiteEditor/quickfindbar.cpp:181 +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:133 +#: LiteEditor/frame.cpp:1356 LiteEditor/frame.cpp:1554 +#: LiteEditor/frame.cpp:1691 LiteEditor/frame.cpp:1860 +#: LiteEditor/output_pane.cpp:50 LiteEditor/project_settings_base_dlg.cpp:292 +msgid "Replace" +msgstr "替换" -#: sdk/databaselayer/src/dblayer/SqliteDatabaseLayer.cpp:361 -msgid "SELECT COUNT(*) FROM sqlite_master WHERE type='view' AND name=?;" -msgstr "" +#: Plugin/editor_config.cpp:424 Plugin/editor_config.cpp:461 +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:139 +#: LiteEditor/output_pane.cpp:53 +msgid "References" +msgstr "引用" -#: sdk/databaselayer/src/dblayer/SqliteDatabaseLayer.cpp:422 -msgid "SELECT name FROM sqlite_master WHERE type='table';" -msgstr "" +#: Plugin/editor_config.cpp:426 Plugin/editor_config.cpp:463 +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:145 +#: LiteEditor/debuggerpane.cpp:53 LiteEditor/output_pane.cpp:48 menu.xrc:605 +msgid "Output" +msgstr "输出" -#: sdk/databaselayer/src/dblayer/SqliteDatabaseLayer.cpp:461 -msgid "SELECT name FROM sqlite_master WHERE type='view';" -msgstr "" +#: Plugin/editor_config.cpp:428 Plugin/editor_config.cpp:465 +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:193 +#: LiteEditor/frame.cpp:1482 LiteEditor/frame.cpp:1984 +#: LiteEditor/frame.cpp:3641 LiteEditor/output_pane.cpp:49 +#: LiteEditor/debugcoredumpbase.cpp:109 +#: LiteEditor/configuration_manager_dlg.cpp:123 +#: codelitephp/php-plugin/php_ui.cpp:813 +msgid "Debug" +msgstr "调试" -#: sdk/databaselayer/src/dblayer/SqliteDatabaseLayer.cpp:505 -#, c-format -msgid "SELECT * FROM '%s' LIMIT 0;" -msgstr "" +#: Plugin/editor_config.cpp:430 Plugin/editor_config.cpp:467 +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:151 +#: LiteEditor/output_pane.cpp:52 +msgid "Trace" +msgstr "跟踪" -#: sdk/wxsqlite3/src/wxsqlite3.cpp:99 -msgid "No Database opened" -msgstr "" +#: Plugin/editor_config.cpp:432 Plugin/editor_config.cpp:469 +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:157 +#: LiteEditor/output_pane.cpp:51 +msgid "Tasks" +msgstr "任务" -#: sdk/wxsqlite3/src/wxsqlite3.cpp:100 -msgid "Statement not accessible" -msgstr "无法访问声明" +#: Plugin/editor_config.cpp:434 Plugin/editor_config.cpp:471 +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:163 +#: ContinuousBuild/continuousbuild.cpp:77 +msgid "BuildQ" +msgstr "构建" -#: sdk/wxsqlite3/src/wxsqlite3.cpp:101 -msgid "Out of memory" -msgstr "内存不足" +#: Plugin/editor_config.cpp:436 Plugin/editor_config.cpp:473 +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:169 +#: cppchecker/cppchecker.cpp:150 cppchecker/cppchecker.cpp:178 +#: cppchecker/cppchecker.cpp:184 cppchecker/cppchecker.cpp:190 +#: cppchecker/cppchecker.cpp:699 cppchecker/cppchecksettingsdlg.cpp:193 +#: cppchecker/cppchecksettingsdlg.cpp:215 +msgid "CppCheck" +msgstr "CppCheck" -#: sdk/wxsqlite3/src/wxsqlite3.cpp:102 -msgid "Cannot decode binary" -msgstr "无法解码二进制数据" +#: Plugin/editor_config.cpp:438 Plugin/editor_config.cpp:475 +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:175 +msgid "Subversion" +msgstr "Subversion" -#: sdk/wxsqlite3/src/wxsqlite3.cpp:103 -msgid "Invalid field index" -msgstr "无效的字段索引" +#: Plugin/editor_config.cpp:440 cscope/cscope.cpp:51 cscope/cscope.cpp:832 +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:181 +msgid "CScope" +msgstr "CScope" -#: sdk/wxsqlite3/src/wxsqlite3.cpp:104 -msgid "Invalid field name" -msgstr "无效的字段名称" +#: Plugin/editor_config.cpp:442 Plugin/editor_config.cpp:479 git/git.cpp:182 +msgid "git" +msgstr "git" -#: sdk/wxsqlite3/src/wxsqlite3.cpp:105 -msgid "Invalid row index" -msgstr "无效行索引" +#: Plugin/editor_config.cpp:444 Plugin/editor_config.cpp:481 +#: MemCheck/memcheck.cpp:142 +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:199 +msgid "MemCheck" +msgstr "MemCheck" -#: sdk/wxsqlite3/src/wxsqlite3.cpp:106 -msgid "Invalid scalar query" -msgstr "无效的标量查询" +#: Plugin/editor_config.cpp:477 +msgid "Cscope" +msgstr "Cscope" -#: sdk/wxsqlite3/src/wxsqlite3.cpp:108 -msgid "Null Results pointer" -msgstr "空结果指针" +#: Plugin/NewKeyShortcutBaseDlg.cpp:44 +msgid "Action:" +msgstr "动作:" -#: sdk/wxsqlite3/src/wxsqlite3.cpp:109 -msgid "Error binding string param" -msgstr "绑定 string 参数错误" +#: Plugin/NewKeyShortcutBaseDlg.cpp:54 +msgid "Key:" +msgstr "Key:" -#: sdk/wxsqlite3/src/wxsqlite3.cpp:110 -msgid "Error binding int param" -msgstr "绑定 int 参数错误" +#: Plugin/NewKeyShortcutBaseDlg.cpp:59 +msgid "" +"Hit any keyboard key. Don't use the modifier keys (e.g. 'Shift') here, use " +"the checkboxes below" +msgstr "敲击任意按键。不要在这里使用修改键 (例如“Shift”键),请使用下面的复选框" -#: sdk/wxsqlite3/src/wxsqlite3.cpp:111 -msgid "Error binding int64 param" -msgstr "绑定 int64 参数错误" +#: Plugin/NewKeyShortcutBaseDlg.cpp:66 +#: LiteEditor/debuggerasciiviewerbase.cpp:56 +#: LiteEditor/editorsettingsmiscbasepanel.cpp:248 +#: cppchecker/cppcheckreportbasepage.cpp:79 +msgid "&Clear" +msgstr "清理(&C)" -#: sdk/wxsqlite3/src/wxsqlite3.cpp:112 -msgid "Error binding double param" -msgstr "绑定 double 参数错误" +#: Plugin/NewKeyShortcutBaseDlg.cpp:67 +msgid "Clear the keyboard shortcut" +msgstr "清除键盘快捷键" -#: sdk/wxsqlite3/src/wxsqlite3.cpp:113 -msgid "Error binding blob param" -msgstr "绑定 blob 参数错误" +#: Plugin/NewKeyShortcutBaseDlg.cpp:71 +msgid "Modifiers:" +msgstr "修改:" -#: sdk/wxsqlite3/src/wxsqlite3.cpp:114 -msgid "Error binding date/time param" -msgstr "绑定 date/time 参数错误" +#: Plugin/NewKeyShortcutBaseDlg.cpp:79 +msgid "Ctrl/Cmd" +msgstr "Ctrl/Cmd" -#: sdk/wxsqlite3/src/wxsqlite3.cpp:115 -msgid "Error binding NULL param" -msgstr "绑定 NULL 参数错误" +#: Plugin/NewKeyShortcutBaseDlg.cpp:84 +#: LiteEditor/editorsettingscommentsbase.cpp:96 +msgid "Alt" +msgstr "Alt" -#: sdk/wxsqlite3/src/wxsqlite3.cpp:116 -msgid "Error clearing bindings" -msgstr "清除绑定的错误" +#: Plugin/NewKeyShortcutBaseDlg.cpp:89 +msgid "Shift" +msgstr "Shift" -#: sdk/wxsqlite3/src/wxsqlite3.cpp:118 -msgid "Meta data support not available" -msgstr "元数据支持不可用" +#: Plugin/clStatusBar.cpp:179 +msgid "Build ended with errors. Click to view" +msgstr "构建错误,已结束。单击此处可查看" -#: sdk/wxsqlite3/src/wxsqlite3.cpp:119 -msgid "Encryption support not available" -msgstr "加密支持不可用" +#: Plugin/clStatusBar.cpp:181 +msgid "Build ended with warnings. Click to view" +msgstr "构建结束,但出现警告。单击此处可查看" -#: sdk/wxsqlite3/src/wxsqlite3.cpp:120 -msgid "Loadable extension support not available" -msgstr "可加载扩展支持不可用" +#: Plugin/clStatusBar.cpp:215 +msgid "" +"Build is in progress\n" +"Click to view the Build Log" +msgstr "" +"正在构建中\n" +"单击此处查看生成的日志" -#: ZoomNavigator/zoom_navigator.cpp:28 -msgid "Enable ZoomNavigator" -msgstr "启用缩放导航器" +#: Plugin/clStatusBar.cpp:271 +msgid "Language" +msgstr "语言" -#: ZoomNavigator/zoom_navigator.cpp:40 -msgid "Highlight colour:" -msgstr "高亮颜色:" +#: Plugin/clStatusBar.cpp:272 +msgid "Colour Themes" +msgstr "颜色主题" -#: ZoomNavigator/zoom_navigator.cpp:48 -msgid "Zoom factor:" -msgstr "缩放因子:" +#: Plugin/globals.h:452 LiteEditor/threadlistpanel.cpp:76 +#: codelitephp/php-plugin/php_workspace_view.cpp:670 +#: codelitephp/php-plugin/php_workspace_view.cpp:689 +msgid "Yes" +msgstr "是" -#: ZoomNavigator/zoom_navigator.cpp:49 ZoomNavigator/zoom_navigator.cpp:54 -msgid "" -"Sets the preview pane zoom factor.\n" -"Valid values should be in the range of -10 and 20" -msgstr "" -"设置预览窗格缩放系数。\n" -"有效值的范围应该在 -10~20 之间" +#: Plugin/globals.h:453 LiteEditor/threadlistpanel.cpp:76 +#: codelitephp/php-plugin/php_workspace_view.cpp:671 +#: codelitephp/php-plugin/php_workspace_view.cpp:690 +msgid "No" +msgstr "不" -#: ZoomNavigator/zoom_navigator.h:35 -msgid "ZoomNavigator Settings" -msgstr "ZoomNavigator设置" +#: Plugin/globals.h:454 LiteEditor/context_cpp.cpp:952 +#: codelitephp/php-plugin/php_workspace_view.cpp:672 +#: codelitephp/php-plugin/php_workspace_view.cpp:691 +msgid "Remember my answer and don't ask me again" +msgstr "记住我的回答,不要再询问我" -#: ZoomNavigator/zoomnavigator.cpp:106 codelite_terminal/wxcrafter.h:87 -#: cppchecker/cppchecker.cpp:115 cppchecker/cppchecker.cpp:176 -#: cppchecker/cppchecker.cpp:191 cppchecker/cppchecker.cpp:205 -msgid "Settings" -msgstr "设置" +#: Plugin/macros.h:87 +msgid "" +msgstr "<新建...>" -#: ZoomNavigator/zoomnavigator.cpp:108 -msgid "Zoom Navigator" -msgstr "缩放导航器" +#: Plugin/macros.h:88 +msgid "" +msgstr "<编辑...>" -#: ZoomNavigator/zoomnavigator.cpp:141 -msgid "Enable plugin" -msgstr "启用插件" +#: Plugin/macros.h:92 +msgid "----------Build Started--------\n" +msgstr "----------构建开始----------\n" -#: CodeDesigner/codedesignerdlg.cpp:15 -msgid "Select CodeDesigner executable:" -msgstr "选择 CodeDesigner 可执行文件:" +#: Plugin/macros.h:93 +msgid "----------Build Ended----------\n" +msgstr "----------构建结束----------\n" -#: CodeDesigner/codedesigneritemdlg.cpp:41 -msgid "Diagram name cannot be empty" -msgstr "图名称不能为空" +#: Plugin/macros.h:94 +msgid "----------Building project:[ " +msgstr "----------正在构建项目:[ " -#: CodeDesigner/codedesigneritemdlg.cpp:48 -msgid "Package name cannot be empty" -msgstr "包名称不能为空" +#: Plugin/macros.h:95 +msgid "----------Cleaning project:[ " +msgstr "----------正在清理项目:[ " -#: CodeDesigner/codedesignersettingsbasedlg.h:57 -msgid "CodeDesigner RAD Settings..." -msgstr "CodeDesigner RAD设置..." +#: Plugin/macros.h:96 cscope/cscopetab.cpp:54 +msgid "Entire Workspace" +msgstr "整个工作区" -#: CodeDesigner/codedesigneritembasedlg.cpp:20 -msgid "CodeDesigner project settings:" -msgstr "CodeDesigner 项目设置:" +#: Plugin/macros.h:97 cscope/cscopetab.cpp:54 +msgid "Active Project" +msgstr "活动项目" -#: CodeDesigner/codedesigneritembasedlg.cpp:27 -msgid "Package name:" -msgstr "包名称:" +#: Plugin/macros.h:98 +msgid "Current File's Project" +msgstr "当前文件的项目" -#: CodeDesigner/codedesigneritembasedlg.cpp:36 -msgid "Diagram name:" -msgstr "图名称:" +#: Plugin/macros.h:99 +msgid "Current File" +msgstr "当前文件" -#: CodeDesigner/codedesigneritembasedlg.cpp:43 -msgid "Language:" -msgstr "语言:" +#: Plugin/macros.h:100 +msgid "Open Files" +msgstr "打开文件" -#: CodeDesigner/codedesigneritembasedlg.cpp:47 -msgid "C" -msgstr "" +#: Plugin/macros.h:102 Plugin/macros.h:103 +msgid "" +msgstr "<使用默认>" -#: CodeDesigner/codedesigneritembasedlg.cpp:47 -#: LiteEditor/findinfiles_dlg.cpp:166 -msgid "C++" -msgstr "" +#: Plugin/clTreeCtrlPanel.cpp:19 +msgid "Folders" +msgstr "文件夹" -#: CodeDesigner/codedesigneritembasedlg.cpp:47 -msgid "Python" -msgstr "" +#: Plugin/clTreeCtrlPanel.cpp:43 +msgid "File Viewer" +msgstr "文件查看" -#: CodeDesigner/codedesigneritembasedlg.cpp:56 -msgid "Application entry point" -msgstr "应用程序入口点" +#: Plugin/CompilersDetectorManager.cpp:116 +msgid "" +"Could not locate any MinGW compiler installed on your machine, would you " +"like to install one now?" +msgstr "" +"在您计算机上找不到任意一个已安装的 MinGW 编译器,您现在想要安装一个吗?" -#: CodeDesigner/codedesigneritembasedlg.cpp:62 -msgid "Generate source code" -msgstr "生成源代码" +#: Plugin/CompilersDetectorManager.cpp:141 +msgid "Select a compiler to download" +msgstr "选择一个编译器下载" -#: CodeDesigner/codedesigneritembasedlg.cpp:70 -msgid "CodeLite settings:" -msgstr "CodeLite 设置:" +#: Plugin/CompilersDetectorManager.cpp:141 LiteEditor/frame.cpp:3582 +msgid "Choose compiler" +msgstr "选择编译器" -#: CodeDesigner/codedesigneritembasedlg.cpp:77 -#: wxformbuilder/wxfbitembasedlg.cpp:46 SnipWiz/templateclassbasedlg.cpp:89 -msgid "Project tree folder:" -msgstr "项目树文件夹:" +#: Plugin/CompilersDetectorManager.cpp:149 +msgid "After install is completed, click the 'Scan' button" +msgstr "安装完成后,单击“扫描”按钮" -#: CodeDesigner/codedesignersettingsbasedlg.cpp:26 -msgid "CodeDesigner path:" -msgstr "CodeDesigner 路径:" +#: Plugin/AddSSHAcountDlg.cpp:108 +msgid "" +"Default folder must be set to full path (i.e. it should start with a '/')" +msgstr "默认文件夹必须设置为完整路径(即它应以“/”开始)" -#: CodeDesigner/codedesignersettingsbasedlg.cpp:38 -msgid "Communication port:" -msgstr "通信端口:" +#: Plugin/VirtualDirectorySelectorBase.cpp:54 Gizmos/newclassbasedlg.cpp:93 +msgid "Select Virtual Directory:" +msgstr "选择虚拟目录:" -#: CodeDesigner/codedesigner.cpp:133 QmakePlugin/qmakeplugin.cpp:117 -#: Copyright/copyright.cpp:113 CallGraph/uisettings.h:74 -#: CallGraph/callgraph.cpp:187 menu.xrc:977 CMakePlugin/CMakePlugin.cpp:349 -#: codelite_terminal/wxcrafter.cpp:61 wxformbuilder/wxformbuilder.cpp:107 -#: Tweaks/tweaks.cpp:82 SnipWiz/snipwiz.cpp:160 -#: abbreviation/abbreviation.cpp:97 -msgid "Settings..." -msgstr "设置..." +#: Plugin/VirtualDirectorySelectorBase.cpp:86 +#: ExternalTools/external_tools.cpp:41 +#: abbreviation/abbreviationssettingsbase.cpp:42 +#: LiteEditor/debuggersettingsbasedlg.cpp:716 +#: LiteEditor/compiler_pages.cpp:444 LiteEditor/compiler_pages.cpp:475 +#: LiteEditor/compiler_pages.cpp:520 +#: LiteEditor/project_settings_base_dlg.cpp:842 QmakePlugin/NewQtProj.cpp:98 +msgid "New..." +msgstr "新建..." -#: CodeDesigner/codedesigner.cpp:136 -msgid "CodeDesigner" -msgstr "" +#: Plugin/VirtualDirectorySelectorBase.cpp:87 +msgid "Create new virtual folder..." +msgstr "创建新的虚拟文件夹..." -#: CodeDesigner/codedesigner.cpp:173 -msgid "Open with CodeDesigner..." -msgstr "用 CodeDesigner 打开..." +#: Plugin/renamefilebasedlg.h:82 +msgid "Fix Include Statement" +msgstr "修复 include 语句" -#: CodeDesigner/codedesigner.cpp:248 -msgid "New simple state chart..." -msgstr "新建简单状态表..." +#: Plugin/unredobase.cpp:160 +msgid "Undo " +msgstr "撤销" -#: CodeDesigner/codedesigner.cpp:252 -msgid "New hierarchical state chart..." -msgstr "新建分层状态表..." +#: Plugin/unredobase.cpp:160 +msgid "Redo " +msgstr "重复" -#: CodeDesigner/codedesigner.cpp:256 -msgid "New class diagram..." -msgstr "新建类图..." +#: Plugin/unredobase.cpp:226 +msgid "Undo/Redo to a pre&viously labelled state" +msgstr "撤消/重复到一个过去标记的状态(&V)" -#: CodeDesigner/codedesigner.cpp:315 -msgid "Please select a 'cdp' (CodeDesigner Project) file only" -msgstr "请选择一个 'cdp' (CodeDesigner项目)文件" +#: Plugin/workspace.cpp:290 +msgid "AddProjectToBuildMatrix was called with NULL project" +msgstr "将项目添加到构建矩阵 被空项目调用" -#: CodeDesigner/codedesigner.cpp:327 +#: Plugin/workspace.cpp:480 msgid "" -"Failed to launch CodeDesigner, no path specified\n" -"Please set CodeDesigner path from Plugins -> CodeDesigner -> Settings..." -msgstr "" -"启动 CodeDesigner 失败,没有指定路径\n" -"请在 插件 -> CodeDesigner -> 设置... 中设置 CodeDesigner 的路径" +"Failed to save workspace file to disk. Please check that you have permission " +"to write to disk" +msgstr "保存工作区到硬盘失败,请检查您是否有权限保存" -#: CodeDesigner/codedesigner.cpp:391 -msgid "New Class Diagram" -msgstr "新建类图" +#: Plugin/workspace.cpp:732 +msgid "Malformed project name" +msgstr "无效的项目名称" -#: CodeDesigner/codedesigner.cpp:409 -msgid "New Hierarchical State Chart" -msgstr "新建分层状态表" +#: Plugin/workspace.cpp:744 +msgid "No such project" +msgstr "无此项目" -#: CodeDesigner/codedesigner.cpp:427 -msgid "New Simple State Chart" -msgstr "新建简单状态表" - -#: CodeDesigner/codedesigner.cpp:475 -#, c-format -msgid "Can't find CodeDesigner template file '%s'" -msgstr "找不到 CodeDesigner 模板文件 '%s'" - -#: CodeDesigner/codedesigner.cpp:490 wxformbuilder/wxformbuilder.cpp:245 -#, c-format -msgid "Failed to copy template file to '%s'" -msgstr "无法复制模板文件到 '%s'" - -#: CodeDesigner/codedesigner.cpp:497 wxformbuilder/wxformbuilder.cpp:251 -#, c-format -msgid "Failed to read file '%s'" -msgstr "无法读取文件 '%s'" - -#: CodeDesigner/codedesigner.cpp:511 wxformbuilder/wxformbuilder.cpp:261 -#, c-format -msgid "Failed to write file '%s'" -msgstr "无法写入文件 '%s'" - -#: CodeDesigner/codedesigner.cpp:592 -msgid "Insert generated files into..." -msgstr "将生成的文件插入..." - -#: CodeDesigner/codedesigneritembasedlg.h:66 -msgid "New CodeDesigner project" -msgstr "" - -#: QmakePlugin/qmakesettingsdlg.cpp:44 -msgid "New qmake settings name" -msgstr "新建 qmake 设置的名称" - -#: QmakePlugin/qmakesettingsdlg.cpp:44 -msgid "New qmake settings" -msgstr "新建 qmake 设置" - -#: QmakePlugin/qmakesettingsdlg.cpp:79 QmakePlugin/qmakesettingsdlg.cpp:104 -#: menu.xrc:1054 -msgid "Rename..." -msgstr "重命名..." - -#: QmakePlugin/qmakesettingsdlg.cpp:80 menu.xrc:798 menu.xrc:841 menu.xrc:1081 -#: menu.xrc:1114 SFTP/SFTPTreeView.cpp:296 -#: LiteEditor/tasksfindwhatdlgbase.cpp:34 LiteEditor/compiler_pages.cpp:54 -#: LiteEditor/compiler_pages.cpp:93 LiteEditor/compiler_pages.cpp:319 -#: LiteEditor/compiler_pages.cpp:527 LiteEditor/compiler_pages.cpp:589 -#: LiteEditor/project_settings_base_dlg.cpp:797 -#: LiteEditor/debuggersettingsbasedlg.cpp:667 Subversion2/subversion2.cpp:238 -#: Gizmos/newclassbasedlg.cpp:173 -#: abbreviation/abbreviationssettingsbase.cpp:124 -msgid "Delete" -msgstr "删除" - -#: QmakePlugin/qmakesettingsdlg.cpp:93 -#, c-format -msgid "Are you sure you want to delete qmake settings '%s'?" -msgstr "您确定要删除 qmake 设置”%s“吗?" - -#: QmakePlugin/qmakesettingsdlg.cpp:104 Subversion2/subversion2.cpp:1029 -#: Subversion2/subversion_view.cpp:1273 -msgid "New name:" -msgstr "新名称:" - -#: QmakePlugin/NewQtProj.cpp:35 Plugin/nameanddescbasedlg.cpp:25 -#: LiteEditor/wxcrafter.cpp:62 -msgid "Project name:" -msgstr "项目名称:" - -#: QmakePlugin/NewQtProj.cpp:43 LiteEditor/wxcrafter.cpp:70 -#: Gizmos/gizmos_base.cpp:85 -msgid "Project path:" -msgstr "项目路径:" - -#: QmakePlugin/NewQtProj.cpp:51 -msgid "Project kind:" -msgstr "项目类型:" - -#: QmakePlugin/NewQtProj.cpp:60 -msgid "QMake to use:" -msgstr "QMake使用:" - -#: QmakePlugin/NewQtProj.cpp:73 Plugin/VirtualDirectorySelectorBase.cpp:61 -#: LiteEditor/compiler_pages.cpp:314 LiteEditor/compiler_pages.cpp:522 -#: LiteEditor/compiler_pages.cpp:584 -#: LiteEditor/project_settings_base_dlg.cpp:789 -#: LiteEditor/debuggersettingsbasedlg.cpp:665 -#: LiteEditor/advanced_settings.cpp:75 -#: ExternalTools/externaltoolsbasedlg.cpp:29 -#: abbreviation/abbreviationssettingsbase.cpp:119 -msgid "New..." -msgstr "新建..." - -#: QmakePlugin/NewQtProj.cpp:74 -msgid "Open the QMakeSettings configuration dialog" -msgstr "打开 QMakeSettings 配置对话框" - -#: QmakePlugin/NewQtProj.cpp:78 -msgid "Other settings:" -msgstr "其它设置:" - -#: QmakePlugin/NewQtProj.cpp:82 LiteEditor/wxcrafter.cpp:98 -#: Gizmos/newwxprojectbasedlg.cpp:92 -msgid "Create the project under a separate directory" -msgstr "在独立的目录下创建项目" - -#: QmakePlugin/qmaketabbase.cpp:28 -msgid "This project uses qmake" -msgstr "此项目采用 qmake" +#: Plugin/workspace.cpp:750 +msgid "File removal failed" +msgstr "文件删除失败" -#: QmakePlugin/qmaketabbase.cpp:40 -msgid "qmake settings:" -msgstr "qmake 设置:" +#: Plugin/DiffSideBySidePanel.cpp:89 +msgid "Left Side File:\n" +msgstr "左侧文件:\n" -#: QmakePlugin/qmaketabbase.cpp:41 QmakePlugin/qmaketabbase.cpp:47 -msgid "" -"Select the QMake to be used for this build configuration as defined in " -"'Plugins -> QMake -> Settings'" -msgstr "为此构建配置选择要用的 QMake (定义在 “插件 --> QMake --> 设置”" +#: Plugin/DiffSideBySidePanel.cpp:89 Plugin/DiffSideBySidePanel.cpp:94 +msgid " does not exist!" +msgstr " 不存在!" -#: QmakePlugin/qmaketabbase.cpp:51 -msgid "qmake execution line:" -msgstr "qmake 执行行:" +#: Plugin/DiffSideBySidePanel.cpp:94 +msgid "Right Side File:\n" +msgstr "右侧文件:\n" -#: QmakePlugin/qmaketabbase.cpp:59 +#: Plugin/DiffSideBySidePanel.cpp:365 msgid "" -"CodeLite will place the below text after the auto generated section (so you " -"may override the generated variables)" -msgstr "CodeLite 将把以下文字放在自动生成段后面(所以您可以覆盖此生成的变量)" - -#: QmakePlugin/qmakesettingsbasedlg.cpp:28 -msgid "Add / modfiy qmake configurations:" -msgstr "添加/修改 qmake 配置" - -#: QmakePlugin/qmakesettingsbasedlg.cpp:48 -#: LiteEditor/debuggersettingsbasedlg.cpp:131 -msgid "&New..." -msgstr "新建(&N)..." - -#: QmakePlugin/qmakesettingsbasedlg.cpp:49 -msgid "Create new qmake settings" -msgstr "创建新建 qmake 设置" - -#: QmakePlugin/qmakesettingsbasedlg.cpp:103 -msgid "qmake executable:" -msgstr "qmake 可执行文件:" - -#: QmakePlugin/qmakesettingsbasedlg.cpp:111 -msgid "QMAKESPEC:" -msgstr "" - -#: QmakePlugin/qmakesettingsbasedlg.cpp:120 -msgid "QTDIR:" +"Refreshing the view will lose all your changes\n" +"Do you want to continue?" msgstr "" +"刷新视图将会丢失您所有的更改\n" +"您想要继续吗?" -#: QmakePlugin/qmakesettingsbasedlg.cpp:125 -msgid "Set QTDIR to the directory where you've installed Qt" -msgstr "设置 QTDIR 到您已经安装Qt的目录" - -#: QmakePlugin/qmakesettingsbasedlg.h:40 -msgid "QMake Settings" -msgstr "QMake 设置" - -#: QmakePlugin/NewQtProj.h:44 -msgid "New Qmake project" -msgstr "新建 Qmake 项目" - -#: QmakePlugin/qmakeplugin.cpp:41 QmakePlugin/qmakeplugin.cpp:54 -msgid "Qt's QMake integration with CodeLite" -msgstr "Qt 的 qmake 整合到 CodeLite" - -#: QmakePlugin/qmakeplugin.cpp:93 QmakePlugin/qmakeplugin.cpp:96 -msgid "Configure qmake" -msgstr "配置 qmake" - -#: QmakePlugin/qmakeplugin.cpp:94 QmakePlugin/qmakeplugin.cpp:97 -msgid "Create new qmake based project" -msgstr "创建基于 qmake 的新项目" - -#: QmakePlugin/qmakeplugin.cpp:114 -msgid "New qmake based project..." -msgstr "新建基于 qmake 的项目..." - -#: QmakePlugin/qmakeplugin.cpp:373 -msgid "" -"There is no qmake defined, please define one from 'Plugins -> Qmake -> " -"Settings'" -msgstr "没有定义 qmake,请通过“插件 --> Qmake --> 设置“来定义" - -#: QmakePlugin/qmakeplugin.cpp:430 -msgid "Invalid project path!" -msgstr "无效的项目路径!" - -#: QmakePlugin/qmakeplugin.cpp:440 -#, c-format -msgid "Failed to create .project file '%s'" -msgstr "无法创建 .project 文件”%s“" - -#: MacBundler/macbundler.cpp:52 -msgid "Failed to load image" -msgstr "加载图片失败" - -#: MacBundler/macbundler.cpp:68 -msgid "Choose the icon file" -msgstr "选择图标文件" - -#: MacBundler/macbundler.cpp:111 -msgid "Mac Bundler Configuration" -msgstr "Mac Bundler 配置" - -#: MacBundler/macbundler.cpp:118 -msgid "Choose which target(s) to \"bundle-ize\"" -msgstr "选择哪些目标到“bundle-ize”" - -#: MacBundler/macbundler.cpp:120 -msgid "Generate Info.plist file" -msgstr "生成 info.plist 文件" - -#: MacBundler/macbundler.cpp:126 -msgid "Copy the following icon into the project" -msgstr "复制下面的图标到项目" - -#: MacBundler/macbundler.cpp:127 -msgid "Warning : applying these changes cannot be undone automatically" -msgstr "警告:应用这些更改无法自动撤消" - -#: MacBundler/macbundler.cpp:128 -msgid "Apply changes" -msgstr "应用更改" - -#: MacBundler/macbundler.cpp:141 -msgid "Get Info Version String" -msgstr "获取版本信息字符串" - -#: MacBundler/macbundler.cpp:143 -msgid "Version Number" -msgstr "版本号" - -#: MacBundler/macbundler.cpp:145 -msgid "Icon File" -msgstr "图标文件" - -#: MacBundler/macbundler.cpp:147 -msgid "Bundle Identifier" -msgstr "Bundle 标识" - -#: MacBundler/macbundler.cpp:149 -msgid "4-Character Signature" -msgstr "4字符签名" - -#: MacBundler/macbundler.cpp:245 -msgid "Cannot access or create file!" -msgstr "无法访问或创建文件!" - -#: MacBundler/macbundler.cpp:278 -msgid "Failed to write Info.plist file!" -msgstr "写入文件 Info.plist 失败!" - -#: MacBundler/macbundler.cpp:313 -msgid "Manage OS X app bundles" -msgstr "管理 OS X 应用 bundles" - -#: MacBundler/macbundler.cpp:327 -msgid "No project is active, cannot continue." -msgstr "无活动项目,无法继续。" - -#: MacBundler/macbundler.cpp:335 -msgid "Cannot retrieve active project, cannot continue." -msgstr "无法恢复活动项目,无法继续。" - -#: MacBundler/macbundler.cpp:362 -msgid "This menu item can only be invoked when right-clicking a project." -msgstr "该菜单项仅在右键单击一个项时调用。" - -#: MacBundler/macbundler.cpp:377 -msgid "Cannot continue, impossible to access project settings." -msgstr "不能访问项目设置,无法继续。" +#: Plugin/DiffSideBySidePanel.cpp:365 +msgid "Don't refresh" +msgstr "不刷新" -#: MacBundler/macbundler.cpp:418 -#, c-format +#: Plugin/DiffSideBySidePanel.cpp:608 msgid "" -"The following file:\n" -"%s\n" -"already exists, overwrite it?\n" +"Closing the diff viewer, will lose all your changes.\n" +"Continue?" msgstr "" -"以下文件:\n" -"%s\n" -"已存在,覆盖?\n" - -#: MacBundler/macbundler.cpp:419 cppchecker/cppchecker.cpp:364 -#: cppchecker/cppchecker.cpp:490 -msgid "Warning" -msgstr "警告" - -#: MacBundler/macbundler.cpp:434 -msgid "Could not create Info.plist file\n" -msgstr "无法创建 Info.plist 文件\n" +"关闭 diff 查看器,将会丢失您所有的变更。\n" +"是否继续?" -#: MacBundler/macbundler.cpp:475 -msgid "Sorry, could not copy icon" -msgstr "抱歉,无法复制图标" +#: Plugin/DiffSideBySidePanel.cpp:687 +msgid "Copy to the right" +msgstr "向右复制" -#: MacBundler/macbundler.cpp:485 -msgid "Sorry, could not convert selected icon to icns format" -msgstr "抱歉,无法转换选定的图标到icns格式" +#: Plugin/DiffSideBySidePanel.cpp:690 +msgid "Copy to the right and move to the next diff" +msgstr "向右复制并转到下一个差异" -#: MacBundler/macbundler.cpp:612 -msgid "Make active project output a bundle" -msgstr "使活动项目输出 bundle" +#: Plugin/DiffSideBySidePanel.cpp:702 +msgid "Copy to the left" +msgstr "向左复制" -#: MacBundler/macbundler.cpp:622 -msgid "MacBundler" -msgstr "" +#: Plugin/DiffSideBySidePanel.cpp:705 +msgid "Copy to the left and move to the next diff" +msgstr "向左复制并转到下一个差异" -#: MacBundler/macbundler.cpp:642 -msgid "Make this project output a bundle" -msgstr "使活动项目输出 bundle" +#: Plugin/sftp_ui.cpp:54 SFTP/UI.cpp:35 +msgid "Account" +msgstr "账户" -#: Plugin/sftp_ui.cpp:53 +#: Plugin/sftp_ui.cpp:55 msgid "Host" msgstr "主机" -#: Plugin/sftp_ui.cpp:54 +#: Plugin/sftp_ui.cpp:56 msgid "User" -msgstr "用户名:" +msgstr "用户" -#: Plugin/sftp_ui.cpp:59 LiteEditor/breakpointdlgbase.cpp:37 -#: LiteEditor/findinfiles_dlg.cpp:57 +#: Plugin/sftp_ui.cpp:61 LiteEditor/breakpointdlgbase.cpp:37 +#: LiteEditor/findinfiles_dlg.cpp:79 msgid "&Add" msgstr "添加(&A)" -#: Plugin/sftp_ui.cpp:63 LiteEditor/breakpointdlgbase.cpp:47 +#: Plugin/sftp_ui.cpp:62 +msgid "Add new account" +msgstr "添加新的帐户" + +#: Plugin/sftp_ui.cpp:66 LiteEditor/breakpointdlgbase.cpp:47 +#: LiteEditor/debuggersettingsbasedlg.cpp:164 +#: LiteEditor/debuggersettingsbasedlg.cpp:551 +#: LiteEditor/reconcileprojectbase.cpp:169 +#: LiteEditor/manageperspectivesbasedlg.cpp:53 #: LiteEditor/edit_configuration.cpp:82 -#: LiteEditor/debuggersettingsbasedlg.cpp:139 -#: LiteEditor/debuggersettingsbasedlg.cpp:526 -#: LiteEditor/reconcileprojectbase.cpp:167 -#: LiteEditor/manageperspectivesbasedlg.cpp:28 #: LiteEditor/edit_workspace_conf_dlg.cpp:66 msgid "&Delete" msgstr "删除(&D)" -#: Plugin/sftp_ui.cpp:138 +#: Plugin/sftp_ui.cpp:67 +msgid "Delete the selected accounts" +msgstr "删除所选的帐户" + +#: Plugin/sftp_ui.cpp:71 LiteEditor/breakpointdlgbase.cpp:42 menu.xrc:81 +msgid "&Edit" +msgstr "编辑(&E)" + +#: Plugin/sftp_ui.cpp:72 +msgid "Edit the selected account" +msgstr "编辑所选的帐户" + +#: Plugin/sftp_ui.cpp:162 msgid "Account Name:" msgstr "账户名:" -#: Plugin/sftp_ui.cpp:139 Plugin/sftp_ui.cpp:144 +#: Plugin/sftp_ui.cpp:163 Plugin/sftp_ui.cpp:168 msgid "Give this account a unique name" -msgstr "给这个帐户一个唯一名称" +msgstr "给这个帐户一个惟一名称" -#: Plugin/sftp_ui.cpp:149 +#: Plugin/sftp_ui.cpp:176 msgid "Host / IP:" msgstr "主机 / IP:" -#: Plugin/sftp_ui.cpp:154 +#: Plugin/sftp_ui.cpp:181 msgid "The remote host ip address or its known name" msgstr "远程主机 IP 地址或已知的名称" -#: Plugin/sftp_ui.cpp:163 +#: Plugin/sftp_ui.cpp:188 LiteEditor/project_settings_base_dlg.cpp:520 +#: codelitephp/php-plugin/php_ui.cpp:521 DatabaseExplorer/GUI.cpp:567 +msgid "Port:" +msgstr "端口:" + +#: Plugin/sftp_ui.cpp:193 msgid "The SSH port. If you don't know it, leave it as 22 (SSH default port)" -msgstr "这个SSH 端口。如果您不知道端口,请填写22(SSH 默认端口)" +msgstr "SSH 端口号,如果您不知道端口号,请填写 22 (SSH 默认端口)" -#: Plugin/sftp_ui.cpp:167 Subversion2/subversion2_ui.cpp:202 +#: Plugin/sftp_ui.cpp:200 Subversion2/subversion2_ui.cpp:217 msgid "Username:" msgstr "用户名:" -#: Plugin/sftp_ui.cpp:172 +#: Plugin/sftp_ui.cpp:205 msgid "Login user name" -msgstr "登录用户名" +msgstr "登录用户名 " -#: Plugin/sftp_ui.cpp:181 +#: Plugin/sftp_ui.cpp:212 Subversion2/subversion2_ui.cpp:229 +#: DatabaseExplorer/GUI.cpp:514 DatabaseExplorer/GUI.cpp:589 +msgid "Password:" +msgstr "密码:" + +#: Plugin/sftp_ui.cpp:217 msgid "" "This field is optional. By leaving this field empty, codelite will attempt " "to connect only using public key authentication" @@ -2494,8175 +2560,8166 @@ "该字段是可选的。把这个字段是留空,CodeLite 就会在尝试连接时只使用公共密钥身份" "验证" -#: Plugin/sftp_ui.cpp:185 +#: Plugin/sftp_ui.cpp:224 +msgid "Default folder:" +msgstr "默认文件夹:" + +#: Plugin/sftp_ui.cpp:229 +msgid "Set the home folder for this account" +msgstr "设置此帐户的主文件夹" + +#: Plugin/sftp_ui.cpp:236 msgid "Test Connection" msgstr "尝试连接" -#: Plugin/sftp_ui.cpp:245 SnipWiz/templateclassbasedlg.cpp:108 -msgid "Path:" -msgstr "路径:" - -#: Plugin/sftp_ui.cpp:250 +#: Plugin/sftp_ui.cpp:309 msgid "Set the remote folder to browse and click on the 'Refresh' button" msgstr "设置远程文件夹浏览并点击“刷新”按钮" -#: Plugin/sftp_ui.cpp:255 +#: Plugin/sftp_ui.cpp:317 msgid "Connect..." msgstr "连接..." -#: Plugin/sftp_ui.cpp:259 +#: Plugin/sftp_ui.cpp:321 msgid "Account:" -msgstr "账户:" +msgstr "账户:" -#: Plugin/sftp_ui.cpp:273 +#: Plugin/sftp_ui.cpp:335 msgid "Parent folder" msgstr "父目录" -#: Plugin/sftp_ui.cpp:275 +#: Plugin/sftp_ui.cpp:337 msgid "Open SSH Account Manager..." msgstr "打开 SSH 账户管理..." -#: Plugin/sftp_ui.cpp:286 SFTP/UI.cpp:144 LiteEditor/localstable.cpp:23 -#: LiteEditor/compilerswitchespage.cpp:84 LiteEditor/setters_getters.cpp:52 -#: LiteEditor/implementparentvirtualfunctionsbase.cpp:63 -#: LiteEditor/attachdbgprocdlg.cpp:57 Gizmos/newclassdlg.cpp:61 -#: ExternalTools/externaltooldlg.cpp:108 -msgid "Name" -msgstr "名称" +#: Plugin/sftp_ui.cpp:349 SFTP/SFTPTreeView.cpp:907 SFTP/SFTPTreeView.cpp:932 +#: SFTP/UI.cpp:185 LiteEditor/localstable.cpp:51 LiteEditor/simpletable.cpp:97 +#: LiteEditor/breakpointslistctrl.h:42 +#: LiteEditor/debugger_predefined_types_page.cpp:36 +#: LLDBDebugger/LLDBLocalsView.cpp:55 codelitephp/php-plugin/php_ui.cpp:1283 +#: DatabaseExplorer/TableSettings.cpp:70 DatabaseExplorer/GUI.cpp:1339 +msgid "Type" +msgstr "类型" -#: Plugin/bookmark_manager.cpp:53 -msgid "Next Bookmark" -msgstr "下一个书签" +#: Plugin/sftp_ui.cpp:350 SFTP/SFTPTreeView.cpp:895 SFTP/SFTPTreeView.cpp:920 +#: SFTP/UI.cpp:186 DatabaseExplorer/GUI.cpp:1340 +msgid "Size" +msgstr "尺寸" -#: Plugin/bookmark_manager.cpp:54 -msgid "Previous Bookmark" -msgstr "上一个书签" +#: Plugin/sftp_ui.cpp:516 +msgid "Type a command and hit ENTER" +msgstr "键入命令并按下<回车键>" -#: Plugin/bookmark_manager.cpp:70 -msgid "Change Active Bookmark Type..." -msgstr "更改当前书签类型..." +#: Plugin/openresourcedialogbase.h:46 +msgid "Open Resource" +msgstr "打开资源" -#: Plugin/bookmark_manager.cpp:74 -msgid "Remove All Currently-Active Bookmarks" -msgstr "移除所有当前活动的书签" +#: Plugin/openresourcedialogbase.cpp:30 +msgid "" +"Type resource name to open.\n" +"You may use a space delimited list of words to narrow down the list of " +"choices\n" +"e.g. Typing: 'Open Dialog' will include results that contain both words " +"\"Open\" _and_ \"Dialog\"" +msgstr "" +"输入要打开的资源名称。\n" +"您可以使用空格来分隔单词列表来缩小选择列表的范围\n" +"例如输入:“打开对话框”将在结果中包含 \"打开\" 和 \"对话框\" 这两个词语" -#: Plugin/bookmark_manager.cpp:77 Gizmos/newinheritancebasedlg.cpp:32 -msgid "More..." -msgstr "更多..." +#: Plugin/clBoostrapWizardBase.h:98 LiteEditor/frame.cpp:3545 +#: LiteEditor/frame.cpp:3871 LiteEditor/frame.cpp:4584 +msgid "Welcome!" +msgstr "欢迎您!" -#: Plugin/bookmark_manager.cpp:91 -msgid "Normal bookmark" -msgstr "普通书签" +#: Plugin/open_resource_dialog.cpp:86 codelitephp/php-plugin/php_ui.h:176 +msgid "Open resource..." +msgstr "打开资源..." -#: Plugin/bookmark_manager.cpp:94 -msgid "Find bookmark" -msgstr "查找书签" +#: Plugin/wxterminal.cpp:222 Plugin/wxterminal.cpp:291 +msgid "Press any key to continue..." +msgstr "按任意键继续..." -#: Plugin/bookmark_manager.cpp:97 -msgid "Bookmark Type" -msgstr "书签类型" +#: Plugin/wxterminal.cpp:287 +#, c-format +msgid "" +"Failed to execute command: %s\n" +"Working Directory: %s\n" +msgstr "" +"运行命令失败:%s\n" +"工作目录:%s\n" -#: Plugin/nameanddescbasedlg.h:80 -msgid "Save Project As Template" -msgstr "另存为项目模板" +#: CallGraph/callgraph.cpp:93 CallGraph/callgraph.cpp:111 +msgid "" +"Create application call graph from profiling information provided by gprof " +"tool." +msgstr "从 gprof 工具提供的分析信息中创建应用程序调用图" -#: Plugin/globals.h:412 LiteEditor/threadlistpanel.cpp:76 -msgid "Yes" -msgstr "是" +#: CallGraph/callgraph.cpp:185 CallGraph/callgraph.cpp:191 +#: CallGraph/callgraph.cpp:209 CallGraph/callgraph.cpp:228 +msgid "Show call graph" +msgstr "显示调用图" -#: Plugin/globals.h:413 LiteEditor/threadlistpanel.cpp:76 -msgid "No" -msgstr "不" +#: CallGraph/callgraph.cpp:187 CallGraph/callgraph.cpp:193 +#: CallGraph/callgraph.cpp:209 +msgid "Show call graph for selected/active project" +msgstr "为已选择/活动的项目显示调用图" -#: Plugin/globals.h:414 -msgid "Remember my answer and don't ask me again" -msgstr "记住我的回答,不要再询问我" +#: CallGraph/callgraph.cpp:228 +msgid "Show call graph for selected project" +msgstr "为已选择的项目显示调用图" -#: Plugin/search_thread.h:428 -msgid "Number of files scanned: " -msgstr "扫描的文件数:" +#: CallGraph/callgraph.cpp:248 CallGraph/callgraph.cpp:293 +msgid "Call Graph" +msgstr "调用图" -#: Plugin/search_thread.h:430 -msgid " Matches found: " -msgstr "找到匹配:" +#: CallGraph/callgraph.cpp:289 +msgid "" +"Create application call graph from profiling information provided by gprof " +"tool. \n" +"\n" +msgstr "" +"从 gprof 工具提供的分析信息中创建应用程序调用图。\n" +"\n" -#: Plugin/search_thread.h:435 -msgid ", elapsed time: " -msgstr ", 已用时间:" +#: CallGraph/callgraph.cpp:294 +msgid "v1.1.0" +msgstr "v1.1.0" -#: Plugin/search_thread.h:435 -msgid " seconds" -msgstr "秒" +#: CallGraph/callgraph.cpp:296 +msgid "2012 (C) Tomas Bata University, Zlin, Czech Republic" +msgstr "2012 (C) Tomas Bata University, Zlin, Czech Republic" -#: Plugin/macrosbasedlg.h:70 -msgid "Available Macros:" -msgstr "可用的宏命令:" +#: CallGraph/callgraph.cpp:297 DatabaseExplorer/databaseexplorer.cpp:243 +msgid "http://www.fai.utb.cz" +msgstr "http://www.codelite.org" -#: Plugin/macrosdlg.cpp:63 -msgid "Macro" -msgstr "宏" +#: CallGraph/callgraph.cpp:406 CallGraph/callgraph.cpp:418 +msgid "Unable to get opened workspace." +msgstr "无法获取已打开工作区。" -#: Plugin/macrosdlg.cpp:64 UnitTestCPP/unittestspage.cpp:40 -msgid "Description" -msgstr "描述" +#: CallGraph/callgraph.cpp:413 +msgid "Unable to get current build matrix." +msgstr "无法获得当前构建模型。" -#: Plugin/macrosdlg.cpp:74 -msgid "Expands to the selected text in the active editor" -msgstr "展开为编辑器中选择的文本" +#: CallGraph/callgraph.cpp:481 +msgid "wxProcess::GetInputStream() can't be opened, aborting" +msgstr "wxProcess::GetInputStream() 无法被打开,正在中止" -#: Plugin/macrosdlg.cpp:75 +#: CallGraph/callgraph.cpp:517 +#, c-format msgid "" -"Expands to the selected text range in bytes from beginning of file, eg. " -"150:200" -msgstr "展开为选择的文本的范围的一组数值,例如 150:200" +"The CallGraph plugin has suggested node threshold %d to speed-up the call " +"graph creation. You can alter it on the call graph panel." +msgstr "" +"CallGraph 插件建议调节节点阈值 %d 来加速创建调用图。您可以在调用图面板调节" +"它。" -#: Plugin/macrosdlg.cpp:76 -msgid "Expands to the project binary output file" -msgstr "展开为项目的二进制输出文件" +#: CallGraph/callgraph.cpp:553 +msgid "" +"Failed to open file CallGraph.png. Please check the project settings, " +"rebuild the project and try again." +msgstr "打开 CallGraph.png 失败。 请检查该项目设置,重新构建该项目并再次尝试。" -#: Plugin/macrosdlg.cpp:77 -msgid "Expands to the project's build working directory" -msgstr "展开为项目的构建工作目录" +#: CallGraph/uisettingsdlg.cpp:63 +msgid "Select gprof..." +msgstr "选择 gprof..." -#: Plugin/macrosdlg.cpp:78 -msgid "Expands to the project's run working directory" -msgstr "展开为项目的运行工作目录" +#: CallGraph/uisettingsdlg.cpp:78 +msgid "Select dot..." +msgstr "选择 dot..." -#: Plugin/macrosdlg.cpp:81 -msgid "Expands to project's path" -msgstr "展开为项目的路径" +#: CallGraph/uisettingsdlg.cpp:110 +msgid "Please check the external tools' paths settings." +msgstr "请检查外部工具的路径设置。" -#: Plugin/macrosdlg.cpp:82 -msgid "Expands to workspace's path" -msgstr "展开为工作空间的路径" +#: CallGraph/uicallgraph.cpp:46 +msgid "Node threshold [%] :" +msgstr "节点阈值 [%]:" -#: Plugin/macrosdlg.cpp:83 -msgid "Expands to the current project name as appears in the 'File View'" -msgstr "展开为当前项目的名称,如”文件视图“那里显示的一样" +#: CallGraph/uicallgraph.cpp:53 +msgid "Edge threshold [%] :" +msgstr "边缘阈值 [%]:" -#: Plugin/macrosdlg.cpp:84 Plugin/macrosdlg.cpp:107 -msgid "" -"Expands to the current project intermediate directory path, as set in the " -"project settings" -msgstr "展开为当前项目的过渡目录路径" +#: CallGraph/uicallgraph.cpp:60 CallGraph/uisettings.cpp:133 +msgid "Hide parameters" +msgstr "隐藏的参数" -#: Plugin/macrosdlg.cpp:85 Plugin/macrosdlg.cpp:108 -msgid "Expands to the current project selected configuration" -msgstr "展开为当前项目选择的配置" +#: CallGraph/uicallgraph.cpp:63 CallGraph/uisettings.cpp:153 +msgid "Hide namespaces" +msgstr "隐藏名称空间" -#: Plugin/macrosdlg.cpp:86 Plugin/macrosdlg.cpp:109 -msgid "An alias to $(IntermediateDirectory)" -msgstr "$(IntermediateDirectory) 的别名" +#: CallGraph/uicallgraph.cpp:92 +msgid "Save call graph to..." +msgstr "保存调用图到……" -#: Plugin/macrosdlg.cpp:87 -msgid "Expands to current file name (without extension and path)" -msgstr "展开为当前文件名(不包括扩展名)" +#: CallGraph/uicallgraph.cpp:96 +msgid "Close call graph" +msgstr "关闭调用图" -#: Plugin/macrosdlg.cpp:88 -msgid "Expands to current file path" -msgstr "展开为当前文件的路径" +#: CallGraph/uicallgraph.cpp:102 +msgid "Zoom in" +msgstr "放大" -#: Plugin/macrosdlg.cpp:89 -msgid "Expands to current file full path (path and full name)" -msgstr "展开为当前文件的完整路径" +#: CallGraph/uicallgraph.cpp:106 +msgid "Zoom out" +msgstr "缩小" -#: Plugin/macrosdlg.cpp:90 -msgid "Expands to logged-in user as defined by the OS" -msgstr "展开为登陆的用户名" +#: CallGraph/uicallgraph.cpp:110 DatabaseExplorer/ErdPanel.cpp:190 +msgid "Zoom 100%" +msgstr "缩放 100%" -#: Plugin/macrosdlg.cpp:91 -msgid "Expands to current date" -msgstr "展开为现在的日期" +#: CallGraph/uicallgraph.cpp:114 +msgid "Zoom 1:1" +msgstr "缩放比例 1:1" -#: Plugin/macrosdlg.cpp:92 -msgid "" -"Expands to CodeLite's startup directory on (e.g. on Unix it expands to ~/." -"codelite/" -msgstr "展开为 CodeLite 启动时所在的目录(例如,Unix 下是 ~/.codelite/)" +#: CallGraph/uicallgraph.cpp:146 +msgid " Function name " +msgstr " 函数名" -#: Plugin/macrosdlg.cpp:93 -msgid "" -"A space delimited string containing all of the project files in a relative " -"path to the project file" -msgstr "以空格分割的字符串,包含项目全部的文件(相对路径)" +#: CallGraph/uicallgraph.cpp:147 +msgid " Total time [%] " +msgstr " 总时间 [%] " -#: Plugin/macrosdlg.cpp:94 -msgid "" -"A space delimited string containing all of the project files in an absolute " -"path" -msgstr "以空格分割的字符串,包含项目全部的文件(绝对路径)" +#: CallGraph/uicallgraph.cpp:148 +msgid " Self time [s]" +msgstr " 自拍定时 [s]" -#: Plugin/macrosdlg.cpp:95 -msgid "backticks: evaluates the expression inside the backticks into a string" -msgstr "反引号:将反引号中的表达式赋值给一个字符串" +#: CallGraph/uicallgraph.cpp:149 +msgid " Called " +msgstr " 已访问 " -#: Plugin/macrosdlg.cpp:99 -msgid "Expands to the compiler name as set in the Tools tab" -msgstr "展开为在工具标签那里设置编译器的名称" +#: CallGraph/uicallgraphpanel.cpp:90 +msgid "Save call graph..." +msgstr "保存调用图……" -#: Plugin/macrosdlg.cpp:100 -msgid "Expands to the source switch (usually, -c)" -msgstr "展开为源文件的编译参数" +#: CallGraph/uicallgraphpanel.cpp:175 +msgid "" +"CallGraph failed to save file with DOT language, please build the project " +"again." +msgstr "调用图通过 DOT 语言保存失败,请重新构建该项目。" -#: Plugin/macrosdlg.cpp:101 -msgid "The file full path (includes path+name+extension)" -msgstr "该文件的完整路径(包括路径扩展名)" +#: CallGraph/uisettings.cpp:50 +msgid "Select path for Gprof:" +msgstr "Gprof 路径选择:" -#: Plugin/macrosdlg.cpp:102 -msgid "The file full name (includes name+extension)" -msgstr "该文件的全名(包括扩展名)" +#: CallGraph/uisettings.cpp:57 CallGraph/uisettings.cpp:67 +msgid "Select..." +msgstr "选择..." -#: Plugin/macrosdlg.cpp:103 -msgid "The file name (name only)" -msgstr "文件名(仅名称)" +#: CallGraph/uisettings.cpp:60 +msgid "Select path for Dot:" +msgstr "Dot 路径选择:" -#: Plugin/macrosdlg.cpp:104 -msgid "The file's path with UNIX slashes, including terminating separator" -msgstr "该文件的路径使用UNIX斜线,包含结束分隔符" +#: CallGraph/uisettings.cpp:83 +msgid "Settings for CALL graph" +msgstr "调用图设置" -#: Plugin/macrosdlg.cpp:105 -msgid "Expands to the compiler options as set in the project settings" -msgstr "展开为项目设置中的编译器选项" +#: CallGraph/uisettings.cpp:85 +msgid "Resolutions:" +msgstr "解决:" -#: Plugin/macrosdlg.cpp:106 -msgid "Expands to the resource compiler name" -msgstr "展开为资源编译器的名称" +#: CallGraph/uisettings.cpp:97 +msgid "Node threshold (0 - 100) [%]:" +msgstr "节点阈值(0 - 100)[%]:" -#: Plugin/macrosdlg.cpp:110 -msgid "Expands to the linker name as set in the Tools tab" -msgstr "给连接器的名称可以扩大在工具选项卡设置" +#: CallGraph/uisettings.cpp:104 +msgid "Edge threshold (0 - 100) [%]:" +msgstr "边缘阈值(0 - 100)[%]:" -#: Plugin/macrosdlg.cpp:111 -msgid "Expands to the archive tool (e.g. ar) name as set in the Tools tab" -msgstr "展开为工具标签设置的归档工具(如 ar)的名称" +#: CallGraph/uisettings.cpp:120 +#: LiteEditor/implementparentvirtualfunctionsbase.cpp:111 +#: LiteEditor/debuggersettingsbasedlg.cpp:303 +#: LiteEditor/findinfiles_dlg.cpp:141 codelitephp/php-plugin/new_class.cpp:119 +msgid "Options:" +msgstr "选项:" -#: Plugin/macrosdlg.cpp:112 -msgid "Expands to the shared object linker name as set in the Tools tab" -msgstr "展开为工具标签设置的共享库链接器名称" +#: CallGraph/uisettings.cpp:136 +msgid "Number of node load level colors (max 10):" +msgstr "负载级别颜色数量节点(最大值 10)" -#: Plugin/macrosdlg.cpp:113 -msgid "Objects suffix (usually set to .o)" -msgstr "对象文件后缀(一般设为 .o)" +#: CallGraph/uisettings.cpp:143 +msgid "Strip parameters " +msgstr "带参数" -#: Plugin/macrosdlg.cpp:114 -msgid "The object name (without the suffix)" -msgstr "对象名称(不带后缀名)" +#: CallGraph/uisettings.cpp:146 +msgid "Number of edge load level colors (max 10):" +msgstr "负载级别颜色数量限值(最大值 10):" -#: Plugin/macrosdlg.cpp:115 -msgid "Objects suffix (usually set to .o.d)" -msgstr "对象后缀(通常设置为 .o.d)" +#: ExternalTools/external_tools.h:42 ExternalTools/externaltools.cpp:460 +msgid "External Tools" +msgstr "外部工具" -#: Plugin/macrosdlg.cpp:116 -msgid "Objects suffix (usually set to .o.i)" -msgstr "对象后缀(通常设置为 .o.i)" +#: ExternalTools/external_tools.cpp:45 LiteEditor/new_quick_watch_dlg.cpp:341 +#: LiteEditor/debuggersettingsbasedlg.cpp:160 +#: LiteEditor/compiler_pages.cpp:382 LiteEditor/compiler_pages.cpp:417 +#: LiteEditor/compiler_pages.cpp:569 LiteEditor/compiler_pages.cpp:585 +#: LiteEditor/project_settings_base_dlg.cpp:846 +msgid "Edit..." +msgstr "编辑..." -#: Plugin/macrosdlg.cpp:117 -msgid "The compiler include switch" -msgstr "编译器包含开关" +#: ExternalTools/external_tools.cpp:49 +msgid "Delete..." +msgstr "删除..." -#: Plugin/macrosdlg.cpp:118 -msgid "The library switch (e.g. -l)" -msgstr "链接库开关(如 -l)" +#: ExternalTools/newtoolbase.cpp:36 +msgid "Tool ID:" +msgstr "工具 ID:" + +#: ExternalTools/newtoolbase.cpp:47 +#: abbreviation/abbreviationssettingsbase.cpp:76 +#: LiteEditor/debuggersettingsbasedlg.cpp:214 +#: LiteEditor/new_item_base_dlg.cpp:63 LiteEditor/new_virtual_folder.cpp:60 +#: Gizmos/newwxprojectbasedlg.cpp:74 codelitephp/php-plugin/new_class.cpp:56 +#: codelitephp/php-plugin/php_ui.cpp:156 codelitephp/php-plugin/php_ui.cpp:269 +#: DatabaseExplorer/GUI.cpp:544 +msgid "Name:" +msgstr "名称:" -#: Plugin/macrosdlg.cpp:119 -msgid "The output switch (e.g. -o)" -msgstr "输出选项开关(如 -o)" +#: ExternalTools/newtoolbase.cpp:52 +msgid "The name is used to identify this tool in the 'External Tools' toobar" +msgstr "此工具在“外部工具”工具栏中显示的名称" -#: Plugin/macrosdlg.cpp:120 -msgid "Library switch (e.g. -L)" -msgstr "链接库开关(如 -L)" +#: ExternalTools/newtoolbase.cpp:61 +msgid "Tool path:" +msgstr "工具路径:" -#: Plugin/macrosdlg.cpp:121 -msgid "Preprocessor switch (e.g. -D)" -msgstr "预处理器开关(如 -D)" +#: ExternalTools/newtoolbase.cpp:72 ExternalTools/newtoolbase.cpp:87 +#: ExternalTools/newtoolbase.cpp:126 ExternalTools/newtoolbase.cpp:141 +#: LiteEditor/wxcrafter.cpp:772 Gizmos/newclassbasedlg.cpp:71 +#: Gizmos/newclassbasedlg.cpp:105 Gizmos/newclassbasedlg.cpp:123 +msgid "Browse..." +msgstr "浏览..." -#: Plugin/macrosdlg.cpp:122 -msgid "" -"Expands to all preprocessors set in the project setting where each entry is " -"prefixed with $(PreprocessorSwitch)" -msgstr "扩展所有项目设置中有 $(PreprocessorSwitch) 前缀的预处理条目" +#: ExternalTools/newtoolbase.cpp:76 LiteEditor/quickdebugbase.cpp:58 +#: codelitephp/php-plugin/php_ui.cpp:694 +msgid "Working directory:" +msgstr "工作目录:" -#: Plugin/macrosdlg.cpp:123 -msgid "Archive switch, usually not needed (VC compiler sets it to /OUT:" -msgstr "存档开关,通常不需要(VC的编译器将其设置为输入/输出:" +#: ExternalTools/newtoolbase.cpp:91 +msgid "Arguments:" +msgstr "参数:" -#: Plugin/macrosdlg.cpp:124 -msgid "The compiler preprocess-only switch (e.g. -E)" -msgstr "编译器预处理专用开关(如-" +#: ExternalTools/newtoolbase.cpp:104 +msgid "Toolbar:" +msgstr "工具栏:" -#: Plugin/macrosdlg.cpp:125 -msgid "The linker options as set in the project settings" -msgstr "链接器选项设置在项目设置" +#: ExternalTools/newtoolbase.cpp:115 +msgid "Toolbar icon (24x24):" +msgstr "工具栏图标(24x24):" -#: Plugin/macrosdlg.cpp:126 -msgid "All include paths prefixed with $(IncludeSwitch)" -msgstr "全部 $(IncludeSwitch) 前缀开头的包含路径" +#: ExternalTools/newtoolbase.cpp:130 +msgid "Toolbar icon (16x16):" +msgstr "工具栏图标(16x16):" -#: Plugin/macrosdlg.cpp:127 -msgid "Resource compiler include path as set in the project settings" -msgstr "资源编译器包括了在项目设置中设置包含路径" +#: ExternalTools/newtoolbase.cpp:145 LiteEditor/commentpagebase.cpp:45 +#: codelitephp/php-plugin/new_class.cpp:29 +msgid "General:" +msgstr "常规:" -#: Plugin/macrosdlg.cpp:128 -msgid "" -"List of libraries to link with. Each library is prefixed with " -"$(LibrarySwitch)" -msgstr "与库列表连接,每个库需要添加前缀 $(LibrarySwitch)" +#: ExternalTools/newtoolbase.cpp:149 +msgid "Save all files before executing this tool" +msgstr "在运行外部工具前保存全部文件" -#: Plugin/macrosdlg.cpp:129 -msgid "" -"List of library paths to link with. Each library is prefixed with " -"$(LibraryPathSwitch)" -msgstr "与库路径列表连接,每个库需要添加前缀 $(LibraryPathSwitch)" +#: ExternalTools/newtoolbase.cpp:154 +msgid "Capture process output" +msgstr "捕获进程输出" -#: Plugin/macrosdlg.cpp:130 -msgid "The output file" -msgstr "输出文件" +#: ExternalTools/newtoolbase.cpp:173 ExternalTools/newtoolbase.cpp:174 +msgid "Show list of available macros" +msgstr "显示可用的宏命令列表" -#: Plugin/wxcrafter_plugin.cpp:111 -msgid "Text Files Comparison" -msgstr "文本文件比较" +#: ExternalTools/newtooldlg.cpp:71 +msgid "Select a program:" +msgstr "选择程序:" -#: Plugin/wxcrafter_plugin.cpp:114 -msgid "Comparison" -msgstr "比较" +#: ExternalTools/newtooldlg.cpp:82 LiteEditor/ps_custom_build_page.cpp:75 +#: LiteEditor/quickdebugdlg.cpp:153 LiteEditor/debugcoredump.cpp:189 +msgid "Select working directory:" +msgstr "选择工作目录:" -#: Plugin/wxcrafter_plugin.cpp:118 Plugin/DiffSideBySidePanel.cpp:305 -#: CallGraph/uicallgraph.cpp:44 menu.xrc:1110 -#: LiteEditor/debuggersettingsbasedlg.cpp:661 git/GitConsole.cpp:97 -msgid "Refresh" -msgstr "刷新" +#: ExternalTools/newtooldlg.cpp:118 ExternalTools/newtooldlg.cpp:129 +msgid "Select an icon:" +msgstr "选择图标:" -#: Plugin/wxcrafter_plugin.cpp:120 LiteEditor/frame.cpp:1191 -#: LiteEditor/frame.cpp:1280 LiteEditor/frame.cpp:1354 -#: LiteEditor/frame.cpp:1484 -msgid "Next" -msgstr "下一条指令" +#: ExternalTools/newtoolbase.h:64 +msgid "External Tool" +msgstr "外部工具" -#: Plugin/wxcrafter_plugin.cpp:120 -msgid "Next Diff" -msgstr "下一个差异" +#: ExternalTools/externaltools.cpp:67 ExternalTools/externaltools.cpp:80 +msgid "A plugin that allows user to launch external tools from within CodeLite" +msgstr "一个允许用户在 CodeLite 中启动外部工具的插件" -#: Plugin/wxcrafter_plugin.cpp:122 -msgid "Previous" -msgstr "前一个" +#: ExternalTools/externaltools.cpp:176 ExternalTools/externaltools.cpp:178 +#: ExternalTools/externaltools.cpp:185 ExternalTools/externaltools.cpp:187 +#: ExternalTools/externaltools.cpp:242 ExternalTools/externaltools.cpp:244 +#: ExternalTools/externaltools.cpp:251 ExternalTools/externaltools.cpp:253 +#: ExternalTools/externaltools.cpp:445 +msgid "Configure external tools..." +msgstr "配置外部工具..." -#: Plugin/wxcrafter_plugin.cpp:122 -msgid "Previous Diff" -msgstr "前一个差异" +#: ExternalTools/externaltools.cpp:180 ExternalTools/externaltools.cpp:182 +#: ExternalTools/externaltools.cpp:189 ExternalTools/externaltools.cpp:191 +#: ExternalTools/externaltools.cpp:246 ExternalTools/externaltools.cpp:248 +#: ExternalTools/externaltools.cpp:255 ExternalTools/externaltools.cpp:257 +msgid "Stop external tool" +msgstr "停止外部工具" -#: Plugin/wxcrafter_plugin.cpp:125 menu.xrc:1077 -#: LiteEditor/compilerswitchespage.cpp:32 -#: LiteEditor/tasksfindwhatdlgbase.cpp:31 LiteEditor/free_text_dialog.h:57 -#: LiteEditor/add_option_dialog.h:57 -msgid "Edit" -msgstr "编辑" +#: ExternalTools/externaltooldlg.cpp:91 +msgid "Are you sure you want to delete this tool?" +msgstr "您确定要删除这个工具吗?" -#: Plugin/wxcrafter_plugin.cpp:129 -msgid "Copy Left" -msgstr "向左复制" +#: ExternalTools/externaltooldlg.cpp:100 LiteEditor/breakpointslistctrl.h:41 +#: codelitephp/php-plugin/php_ui.cpp:1216 +msgid "ID" +msgstr "ID" -#: Plugin/wxcrafter_plugin.cpp:129 -msgid "Copy current diff sequence from the left side to the right side" -msgstr "从左边复制当前diff序列到右边" +#: ExternalTools/externaltooldlg.cpp:102 +#: LiteEditor/openwindowspanelbase.cpp:41 +#: LiteEditor/project_settings_base_dlg.cpp:452 +msgid "Path" +msgstr "路径" -#: Plugin/wxcrafter_plugin.cpp:131 -msgid "Copy Right" -msgstr "向右复制" +#: ZoomNavigator/zoom_navigator.cpp:53 +msgid "Enable ZoomNavigator" +msgstr "启用缩放导航器" -#: Plugin/wxcrafter_plugin.cpp:131 -msgid "Copy current diff sequence from the right side to the left side" -msgstr "从右边复制当前diff序列到左边" +#: ZoomNavigator/zoom_navigator.cpp:65 +msgid "Highlight colour:" +msgstr "高亮颜色:" -#: Plugin/wxcrafter_plugin.cpp:133 -msgid "All Left" -msgstr "全部靠左" +#: ZoomNavigator/zoom_navigator.cpp:73 +msgid "Zoom factor:" +msgstr "缩放因子:" -#: Plugin/wxcrafter_plugin.cpp:133 -msgid "Copy the content of the left file to the right file" -msgstr "将左边的文件的内容复制到右边的文件" +#: ZoomNavigator/zoom_navigator.cpp:74 ZoomNavigator/zoom_navigator.cpp:79 +msgid "" +"Sets the preview pane zoom factor.\n" +"Valid values should be in the range of -10 and 20" +msgstr "" +"设置预览窗格缩放系数。\n" +"有效值的范围应该在 -10~20 之间" -#: Plugin/wxcrafter_plugin.cpp:135 -msgid "All Right" -msgstr "全部靠右" +#: ZoomNavigator/zoom_navigator.h:60 +msgid "ZoomNavigator Settings" +msgstr "Zoom Navigator 设置" -#: Plugin/wxcrafter_plugin.cpp:135 -msgid "Copy file from right to left" -msgstr "从右边复制文件到左边" +#: ZoomNavigator/zoomnavigator.cpp:48 ZoomNavigator/zoomnavigator.cpp:87 +#: ZoomNavigator/zoomnavigator.cpp:133 +msgid "Zoom Navigator" +msgstr "Zoom Navigator" -#: Plugin/wxcrafter_plugin.cpp:137 -msgid "Save changes and refresh the diff view" -msgstr "保存变更并刷新 diff 视图" +#: ZoomNavigator/zoomnavigator.cpp:64 +msgid "A dockable pane that shows a zoomed-out view of your code." +msgstr "一个可停靠的窗格,其中显示您的代码缩略图。" -#: Plugin/wxcrafter_plugin.cpp:144 -msgid "Vertical" -msgstr "垂直" +#: ZoomNavigator/zoomnavigator.cpp:166 +msgid "Enable plugin" +msgstr "启用插件" -#: Plugin/wxcrafter_plugin.cpp:144 -msgid "Vertical panes" -msgstr "垂直面板" +#: git/gitCommitDlg.cpp:145 +msgid "Git requires a commit message" +msgstr "Git 需要一个提交消息" -#: Plugin/wxcrafter_plugin.cpp:146 -msgid "Horizontal" -msgstr "水平" +#: git/gitui.cpp:45 LiteEditor/compiler_pages.cpp:290 +#: LiteEditor/compiler_pages.cpp:303 +msgid "Tools" +msgstr "工具" -#: Plugin/wxcrafter_plugin.cpp:146 -msgid "Horizontal panes" -msgstr "水平面板" +#: git/gitui.cpp:57 +msgid "Path to git executable:" +msgstr "git 可执行文件路径:" -#: Plugin/wxcrafter_plugin.cpp:203 Plugin/wxcrafter_plugin.cpp:258 -msgid "Static Text Label" -msgstr "静态文本标签" +#: git/gitui.cpp:65 +msgid "Path to gitk executable:" +msgstr "gitk 可执行文件路径:" -#: Plugin/open_resource_dialog.cpp:59 -msgid "Open resource..." -msgstr "打开资源..." +#: git/gitui.cpp:74 +msgid "Configuration" +msgstr "配置" -#: Plugin/async_executable_cmd.cpp:91 -msgid "Current working directory: " -msgstr "当前工作目录:" +#: git/gitui.cpp:86 +msgid "Global user name:" +msgstr "全局用户名称:" -#: Plugin/async_executable_cmd.cpp:92 -msgid "Running program: " -msgstr "正在运行的程序:" +#: git/gitui.cpp:91 +msgid "Set the global user name (this name will tell git who you are)" +msgstr "设置当前仓库用户名(这个名称将告诉 git 您是谁)" -#: Plugin/async_executable_cmd.cpp:104 -msgid "Program exited with return code: " -msgstr "程序退出码:" +#: git/gitui.cpp:98 +msgid "Global email:" +msgstr "全局邮箱:" -#: Plugin/dirpicker.h:69 LiteEditor/findinfiles_dlg.cpp:54 -msgid "Select a folder:" -msgstr "选择文件夹:" +#: git/gitui.cpp:103 +msgid "Set the current repository email" +msgstr "设置当前仓库邮箱" -#: Plugin/sftp_ui.h:42 -msgid "SSH Account Manager" -msgstr "SSH 账户管理" +#: git/gitui.cpp:110 +msgid "Local repository user name:" +msgstr "本地仓库用户名:" -#: Plugin/sftp_ui.h:70 -msgid "Add Account" -msgstr "添加账户" +#: git/gitui.cpp:115 +msgid "" +"Set the current repository user name (this name will tell git who you are).\n" +"If this field letf empty, the global one is used" +msgstr "" +"设置当前仓库用户名(这个名称将告诉 git 您是谁)。\n" +"如果这个字段留空,全局设置将被启用" -#: Plugin/sftp_ui.h:112 -msgid "SFTP Browser" -msgstr "SFTP 浏览器" +#: git/gitui.cpp:122 +msgid "Local repository email:" +msgstr "本地仓库邮箱:" -#: Plugin/wxcrafter_plugin.h:40 -msgid "Edit Text" -msgstr "编辑文本" +#: git/gitui.cpp:127 +msgid "" +"Set the current repository email\n" +"If this field letf empty, the global one is used" +msgstr "" +"设置当前仓库邮箱\n" +"如果此项留空,将启用全局设置项" -#: Plugin/VirtualDirectorySelectorBase.cpp:29 Gizmos/newclassbasedlg.cpp:83 -msgid "Select Virtual Directory:" -msgstr "选择虚拟目录:" +#: git/gitui.cpp:135 LiteEditor/editorsettingslocalbase.cpp:172 +#: LiteEditor/options_dlg2.cpp:126 LiteEditor/compiler_pages.cpp:589 +msgid "Misc" +msgstr "其他" -#: Plugin/VirtualDirectorySelectorBase.cpp:62 -msgid "Create new virtual folder..." -msgstr "创建新的虚拟文件夹..." +#: git/gitui.cpp:140 +msgid "Show Terminal" +msgstr "显示终端" -#: Plugin/filepicker.h:68 -msgid "Select a file:" -msgstr "选择文件:" +#: git/gitui.cpp:142 +msgid "" +"Mainly useful for Windows when the password\n" +"prompt is not accessible via the UI" +msgstr "" +"当密码提示不是通过 UI 来输出时\n" +"这对 Windows 是有用的" -#: Plugin/custombuildrequest.cpp:77 Plugin/compile_request.cpp:71 -#: Plugin/clean_request.cpp:68 -msgid "Cant find project: " -msgstr "没有找到项目:" +#: git/gitui.cpp:146 WebTools/WebToolsBase.cpp:75 +msgid "Verbose Logging" +msgstr "冗长的日志记录" -#: Plugin/custombuildrequest.cpp:142 Plugin/compile_request.cpp:142 -msgid "Command line is empty. Build aborted." -msgstr "命令行为空,构建中止。" +#: git/gitui.cpp:148 +msgid "Tick this option to enable a verbose logging of git" +msgstr "勾选这个选项来启用一个详细的 git 日志" -#: Plugin/custombuildrequest.cpp:184 -#, c-format -msgid "MESSAGE: Entering directory `%s'\n" -msgstr "消息:进入目录”%s“\n" +#: git/gitui.cpp:152 +msgid "Colour modified items in the workspace view" +msgstr "在工作区视图中着色已修改项" -#: Plugin/custombuildrequest.cpp:232 Plugin/compile_request.cpp:185 -msgid "Failed to start build process, command: " -msgstr "无法启动构建进程,命令:" +#: git/gitui.cpp:154 +msgid "Colour modified items in the workspace view tree" +msgstr "在工作区视图树中着色已修改项" -#: Plugin/custombuildrequest.cpp:232 Plugin/compile_request.cpp:185 -#: Plugin/clean_request.cpp:147 -msgid ", process terminated with exit code: 0" -msgstr ",过程终止,退出代码: 0" +#: git/gitui.cpp:242 +msgid "Toggle Files" +msgstr "切换文件" + +#: git/gitui.cpp:242 +msgid "Toggle Check All" +msgstr "切换所有检查" + +#: git/gitui.cpp:248 +msgid "Recent commits" +msgstr "最近提交" + +#: git/gitui.cpp:251 +msgid "Clear History" +msgstr "清除历史记录" -#: Plugin/workspace.cpp:235 -msgid "AddProjectToBuildMatrix was called with NULL project" -msgstr "AddProjectToBuildMatrix 被称为用 NULL 项目" +#: git/gitui.cpp:331 git/gitui.cpp:567 Subversion2/wxcrafter.cpp:143 +msgid "Commit message:" +msgstr "提交信息:" -#: Plugin/workspace.cpp:416 -msgid "" -"Failed to save workspace file to disk. Please check that you have permission " -"to write to disk" -msgstr "保存工作空间到硬盘失败,请检查您是否有权限保存" +#: git/gitui.cpp:336 +msgid "Type your commit message here" +msgstr "在此输入提交信息:" -#: Plugin/workspace.cpp:658 -msgid "Malformed project name" -msgstr "无效的项目名称" +#: git/gitui.cpp:375 +msgid "Amend the previous commit" +msgstr "修改前一次提交" -#: Plugin/workspace.cpp:670 -msgid "No such project" -msgstr "无此项目" +#: git/gitui.cpp:377 +msgid "" +"The 'git commit --amend' command is a convenient way to fix up the most " +"recent commit. It lets you combine staged changes with the previous commit " +"instead of committing it as an entirely new snapshot. It can also be used to " +"simply edit the previous commit message without changing its snapshot" +msgstr "" +"“git commit --amend”命令是一种能够方便的来修复最近提交的方法。它能让你结合前" +"一次提交进行更改而不必重新提交新的快照。它也可以用来简单地编辑以前的提交消息" +"而不是改变它的快照" -#: Plugin/workspace.cpp:676 -msgid "File removal failed" -msgstr "文件删除失败" +#: git/gitui.cpp:462 +msgid "" +"Search the commit list\n" +"The search is performed on all columns" +msgstr "" +"搜索提交列表\n" +"在所有列上执行搜索" -#: Plugin/VirtualDirectorySelectorDlg.cpp:306 -msgid "New Virtual Folder Name:" -msgstr "新建虚拟文件夹名称:" +#: git/gitui.cpp:472 git/git.cpp:2370 git/GitConsole.cpp:216 +#: Subversion2/subversion2.cpp:316 +msgid "Commit" +msgstr "提交" -#: Plugin/VirtualDirectorySelectorDlg.cpp:306 menu.xrc:872 menu.xrc:959 -#: LiteEditor/new_virtual_folder.h:41 -msgid "New Virtual Folder" -msgstr "新建虚拟文件夹" +#: git/gitui.cpp:473 +msgid "Author" +msgstr "作者" -#: Plugin/VirtualDirectorySelectorDlg.cpp:320 -msgid "Error occured while creating virtual folder:\n" -msgstr "创建虚拟文件夹遇到错误:\n" +#: git/gitui.cpp:474 +msgid "Date" +msgstr "日期" -#: Plugin/SFTPBrowserDlg.cpp:104 SFTP/SFTPTreeView.cpp:68 -msgid "Could not find account: " -msgstr "无法找到记录:" +#: git/gitui.cpp:475 +msgid "Subject" +msgstr "主题" -#: Plugin/evnvarlist.h:64 LiteEditor/workspacesettingsdlg.cpp:36 -msgid "" -msgstr "<使用活动设置>" +#: git/gitui.cpp:504 git/gitui.cpp:688 +msgid "Modified files:" +msgstr "已修改的文件:" -#: Plugin/VirtualDirectorySelectorBase.h:64 -msgid "Virtual Directory Selector" -msgstr "虚拟目录选择器" +#: git/gitui.cpp:519 git/gitui.cpp:703 Subversion2/wxcrafter.cpp:95 +msgid "Diff:" +msgstr "Diff:" -#: Plugin/renamefilebasedlg.h:82 -msgid "Fix Include Statement" -msgstr "修复 include 语句" +#: git/gitui.cpp:773 +msgid "Clone URL:" +msgstr "克隆 URL:" -#: Plugin/renamefilebasedlg.cpp:22 LiteEditor/replaceinfilespanel.cpp:63 -msgid "Replace With:" -msgstr "替换为:" +#: git/gitui.cpp:778 +msgid "git URL to clone" +msgstr "git URL克隆" -#: Plugin/renamefilebasedlg.cpp:31 -msgid "The following files will be updated:" -msgstr "以下文件将被更新:" +#: git/gitui.cpp:785 +msgid "Target Directory:" +msgstr "目标目录:" -#: Plugin/renamefilebasedlg.cpp:48 -msgid "Included From:" -msgstr "包含文件来自:" +#: git/gitui.cpp:790 +msgid "Clone the sources into this target directory" +msgstr "克隆资源到这个目标目录" -#: Plugin/renamefilebasedlg.cpp:58 -msgid "Line:" -msgstr "行:" +#: git/gitui.cpp:1202 +msgid "Select patch file" +msgstr "选择补丁文件" -#: Plugin/renamefilebasedlg.cpp:68 -msgid "Pattern:" -msgstr "模式:" +#: git/gitui.cpp:1207 +msgid "Patch file to apply" +msgstr "应用补丁文件" -#: Plugin/renamefilebasedlg.cpp:85 Plugin/openresourcedialogbase.cpp:47 -#: CallGraph/uisettings.cpp:140 LiteEditor/tagsparsersearchpathsbasedlg.cpp:42 -#: LiteEditor/tasksfindwhatdlgbase.cpp:47 -#: LiteEditor/workspacesettingsbase.cpp:79 LiteEditor/AccelTableBaseDlg.cpp:65 -#: LiteEditor/manageperspectivesbasedlg.cpp:44 -#: LiteEditor/tabgroupbasedlgs.cpp:53 LiteEditor/tabgroupbasedlgs.cpp:144 -#: LiteEditor/importfilesdialog_new.cpp:76 -msgid "&Ok" -msgstr "确定(&O)" +#: git/gitui.cpp:1212 +msgid "git apply additional flags to use:" +msgstr "git 可用的附加参数:" -#: Plugin/macros.h:87 -msgid "" -msgstr "<新建...>" +#: git/gitui.cpp:1217 +msgid "" +"By default, codelite uses the command 'git apply --whitespace=nowarn --" +"ignore-whitespace' for applying patch files.\n" +"Set here an extra flags to use with this command, e.g.:\n" +"\n" +"--reverse\n" +"\n" +"See the git manual for more options" +msgstr "" +"默认情况下,CodeLite 使用“git apply --whitespace=nowarn --ignore-" +"whitespace”命令来应用补丁文件。\n" +"设置一个临时的标志来使用这条命令,例如:\n" +"\n" +"--reverse\n" +"\n" +"查看 Git 用户手册可以得到更多选项" -#: Plugin/macros.h:88 -msgid "" -msgstr "<编辑...>" +#: git/gitui.cpp:1279 SFTP/SFTPStatusPage.cpp:86 LiteEditor/wxcrafter.cpp:912 +msgid "Clear Log" +msgstr "清除日志" -#: Plugin/macros.h:92 -msgid "----------Build Started--------\n" -msgstr "----------构建开始--------\n" +#: git/gitui.cpp:1281 +msgid "m_toolKill" +msgstr "m_toolKill" -#: Plugin/macros.h:93 -msgid "----------Build Ended----------\n" -msgstr "----------构建结束----------\n" +#: git/gitui.cpp:1281 +msgid "Terminate git process" +msgstr "终止 git 进程" -#: Plugin/macros.h:94 -msgid "----------Building project:[ " -msgstr "----------构建项目:[" +#: git/gitui.cpp:1285 git/git.cpp:2324 git/GitConsole.cpp:456 +msgid "Add file" +msgstr "添加文件" -#: Plugin/macros.h:95 -msgid "----------Cleaning project:[ " -msgstr "----------清理项目:[" +#: git/gitui.cpp:1287 +msgid "Reset File" +msgstr "重置文件" -#: Plugin/macros.h:96 cscope/cscopetab.cpp:54 -msgid "Entire Workspace" -msgstr "整个工作空间" +#: git/gitui.cpp:1309 +msgid "File View" +msgstr "文件视图" -#: Plugin/macros.h:97 cscope/cscopetab.cpp:54 -msgid "Active Project" -msgstr "活动项目" +#: git/gitCommitListDlg.cpp:188 +msgid "Copy commit hash to clipboard" +msgstr "复制提交散列到剪贴板" -#: Plugin/macros.h:98 -msgid "Current File's Project" -msgstr "当前文件的项目" +#: git/gitCommitListDlg.cpp:189 +msgid "Revert this commit" +msgstr "恢复这次合并" -#: Plugin/macros.h:99 -msgid "Current File" -msgstr "当前文件" +#: git/gitFileDiffDlg.cpp:58 LiteEditor/syntaxhighlightdlg.cpp:561 +#: LiteEditor/syntaxhighlightdlg.cpp:601 +msgid "Save as" +msgstr "另存为" -#: Plugin/macros.h:100 -msgid "Open Files" -msgstr "打开文件" +#: git/gitui.h:100 +msgid "Git settings..." +msgstr "Git 设置..." -#: Plugin/macros.h:102 Plugin/macros.h:103 -msgid "" -msgstr "<默认>" +#: git/gitui.h:151 +msgid "Git commit" +msgstr "Git 提交" -#: Plugin/openresourcedialogbase.h:59 -msgid "Open Resource" -msgstr "打开资源..." +#: git/gitui.h:205 +msgid "Commit List" +msgstr "提交列表" -#: Plugin/wxterminal.cpp:193 Plugin/wxterminal.cpp:264 -msgid "Press any key to continue..." -msgstr "按任意键继续..." +#: git/gitui.h:234 +msgid "Current Diffs" +msgstr "当前差别" -#: Plugin/wxterminal.cpp:260 -#, c-format -msgid "" -"Failed to execute command: %s\n" -"Working Directory: %s\n" -msgstr "" -"无法运行命令:%s\n" -"工作目录:%s\n" +#: git/gitui.h:258 +msgid "git clone.." +msgstr "git 克隆.." -#: Plugin/DiffSideBySidePanel.cpp:46 -msgid "Left Side File:\n" -msgstr "左侧文件:\n" +#: git/gitui.h:277 +msgid "File diff" +msgstr "文件比较" -#: Plugin/DiffSideBySidePanel.cpp:46 Plugin/DiffSideBySidePanel.cpp:51 -msgid " does not exist!" -msgstr "不存在!" +#: git/gitui.h:320 +msgid "Git Apply Patch" +msgstr "Git 应用补丁" -#: Plugin/DiffSideBySidePanel.cpp:51 -msgid "Right Side File:\n" -msgstr "右侧文件:\n" +#: git/git.cpp:89 +msgid "Simple GIT plugin" +msgstr "简单的 GIT 插件" + +#: git/git.cpp:134 +msgid "GIT plugin" +msgstr "GIT 插件" -#: Plugin/DiffSideBySidePanel.cpp:70 -msgid "Files are the same!" -msgstr "文件是相同的!" +#: git/git.cpp:202 git/git.cpp:2366 git/GitConsole.cpp:214 +msgid "Pull remote changes" +msgstr "拉取远程变更" -#: Plugin/DiffSideBySidePanel.cpp:305 -msgid "" -"Refreshing the view will lose all your changes\n" -"Do you want to continue?" -msgstr "" -"刷新视图将会丢失您所有的更改\n" -"您想要继续吗?" +#: git/git.cpp:207 git/GitConsole.cpp:216 +msgid "Commit local changes" +msgstr "提交本地变更" -#: Plugin/DiffSideBySidePanel.cpp:305 -msgid "Don't refresh" -msgstr "不刷新" +#: git/git.cpp:210 +msgid "Push local commits" +msgstr "推送本地提交" -#: Plugin/DiffSideBySidePanel.cpp:541 -msgid "" -"Closing the diff viewer, will lose all your changes.\n" -"Continue?" -msgstr "" -"关闭 diff 查看器,将会丢失您所有的变更。\n" -"是否继续?" +#: git/git.cpp:215 +msgid "Reset current repository" +msgstr "重置当前仓库" -#: Plugin/builder_gnumake.cpp:110 -msgid "Exporting makefile...\n" -msgstr "正在生成 Makefile...\n" - -#: Plugin/builder_gnumake.cpp:114 -msgid "Exporting makefile...done\n" -msgstr "导出 Makefile...完成\n" +#: git/git.cpp:219 git/GitConsole.cpp:135 +msgid "Create local branch" +msgstr "创建本地分支" -#: Plugin/builder_gnumake.cpp:118 -msgid "Cant open project '" -msgstr "无法打开项目 '" +#: git/git.cpp:223 +msgid "Switch local branch" +msgstr "切换本地分支" -#: Plugin/builder_gnumake.cpp:128 Plugin/builder_gnumake.cpp:136 -msgid "Cant find build configuration for project '" -msgstr "构建配置不存在于项目 '" +#: git/git.cpp:229 git/git.cpp:230 +msgid "Switch remote branch" +msgstr "开关远程分支" -#: Plugin/builder_gnumake.cpp:140 -msgid "Cant find proper compiler for project '" -msgstr "构建配置不存在于项目 '" +#: git/git.cpp:236 +msgid "List commits" +msgstr "列出合并" -#: Plugin/builder_gnumake.cpp:144 -msgid "Reading project dependencies...\n" -msgstr "读取项目依赖...\n" +#: git/git.cpp:240 git/GitConsole.cpp:221 +msgid "Show current diffs" +msgstr "显示当前差别" -#: Plugin/builder_gnumake.cpp:146 -msgid "Reading project dependencies...done\n" -msgstr "读取项目依赖...完成\n" +#: git/git.cpp:240 +msgid "Show diffs" +msgstr "显示差别" -#: Plugin/builder_gnumake.cpp:179 -msgid "CodeLite can not find project '" -msgstr "CodeLite 找不到项目”" +#: git/git.cpp:243 git/GitConsole.cpp:137 Subversion2/subversion2.cpp:350 +msgid "Apply Patch" +msgstr "应用补丁" -#: Plugin/builder_gnumake.cpp:179 -msgid "' which is required\n" -msgstr "“这是必要的\n" +#: git/git.cpp:249 +msgid "List modified files" +msgstr "列出已修改文件" -#: Plugin/builder_gnumake.cpp:180 -msgid "for building project '" -msgstr "为构建项目”" +#: git/git.cpp:253 git/GitConsole.cpp:138 +msgid "Start gitk" +msgstr "启动 gitk" -#: Plugin/builder_gnumake.cpp:180 -msgid "" -"'.\n" -"Would you like to remove it from the dependency list?" -msgstr "" -"'.\n" -"您要删除从依赖列表中移除它吗?" +#: git/git.cpp:258 +msgid "Clean git database (garbage collection)" +msgstr "清理 git 数据库(垃圾回收)" -#: Plugin/builder_gnumake.cpp:216 -msgid "Generating makefile...\n" -msgstr "正在生成 Makefile...\n" +#: git/git.cpp:263 +msgid "Refresh git file list" +msgstr "刷新 git 文件列表" -#: Plugin/builder_gnumake.cpp:305 -#, c-format -msgid "Generating makefile for project %s...\n" -msgstr "为项目 %s 生成 Makefile...\n" +#: git/git.cpp:263 +msgid "Refresh file lists" +msgstr "刷新文件列表" -#: Plugin/builder_gnumake.cpp:313 -#, c-format -msgid "Generating makefile for project %s...done\n" -msgstr "为项目 %s 生成 Makefile...完成\n" +#: git/git.cpp:268 +msgid "GIT plugin settings" +msgstr "Git 插件设置" -#: Plugin/builder_gnumake.cpp:459 -msgid "Generating makefile...done\n" -msgstr "生成Makefile...完成\n" +#: git/git.cpp:273 git/git.cpp:274 +msgid "Set GIT repository path" +msgstr "设置 Git 仓库路径" -#: Plugin/builder_gnumake.cpp:462 -msgid "Writing makefile...\n" -msgstr "写入Makefile...\n" +#: git/git.cpp:279 git/GitConsole.cpp:141 +msgid "Clone a git repository" +msgstr "克隆一个 git 仓库" -#: Plugin/builder_gnumake.cpp:466 -msgid "Writing makefile...done\n" -msgstr "写入Makefile...完成\n" +#: git/git.cpp:578 +msgid "Select git root directory" +msgstr "选择 git 的根目录" -#: Plugin/builder_gnumake.cpp:915 -msgid "Looping over the file list...done\n" -msgstr "遍历文件列表...完成\n" +#: git/git.cpp:686 git/git.cpp:716 +msgid "Modified files found! Commit them first before switching branches..." +msgstr "发现修改的文件!提交之前请先切换分支..." -#: Plugin/builder_gnumake.cpp:916 -msgid "Creating file targets...done\n" -msgstr "创建文件目标...完成\n" +#: git/git.cpp:694 +msgid "No other local branches found." +msgstr "没有发现其他本地分支。" -#: Plugin/builder_gnumake.cpp:921 -msgid "Creating clean targets...\n" -msgstr "创建清理目标...\n" +#: git/git.cpp:698 +msgid "Select branch (current is " +msgstr "选择分支(当前是" -#: Plugin/builder_gnumake.cpp:939 -msgid "Loading file list for clean...\n" -msgstr "加载要清理的文件列表...\n" +#: git/git.cpp:701 +msgid "Switch branch" +msgstr "切换分支" -#: Plugin/builder_gnumake.cpp:954 -msgid "Loading file list...done\n" -msgstr "加载文件列表...完成\n" +#: git/git.cpp:723 +msgid "No remote branches found." +msgstr "没有发现远程分支。" -#: Plugin/clean_request.cpp:82 -msgid "Sorry, there is no 'Clean' command available\n" -msgstr "对不起,没有”清理“命令可用\n" +#: git/git.cpp:726 +msgid "Select remote branch (current is " +msgstr "选择远程分支(当前是" -#: Plugin/clean_request.cpp:98 -msgid "Sorry, couldn't find the Build configuration\n" -msgstr "对不起, 找不到构建配置\n" +#: git/git.cpp:729 git/GitConsole.cpp:136 +msgid "Switch to remote branch" +msgstr "切换到远程分支" -#: Plugin/clean_request.cpp:147 -msgid "Failed to start clean process, command: " -msgstr "无法启动清理进程,命令:" +#: git/git.cpp:736 +msgid "Specify the name for the local branch" +msgstr "指定本地分支名称" -#: Plugin/SSHAccountManagerDlg.cpp:51 -msgid "Are you sure you want to delete the selected accounts?" -msgstr "您确定要删除此记录吗?" +#: git/git.cpp:736 git/git.cpp:751 +msgid "Branch name" +msgstr "分支名称" -#: Plugin/openresourcedialogbase.cpp:29 -msgid "" -"Type resource name to open.\n" -"You may use a space delimited list of words to narrow down the list of " -"choices\n" -"e.g. Typing: 'Open Dialog' will include results that contain both words " -"\"Open\" _and_ \"Dialog\"" -msgstr "" -"输入要打开的资源名称。\n" -"您可以使用空格来分隔单词列表来缩小选择列表的范围\n" -"例如输入:’打开对话框‘将在结果中包含 \"打开\" 和 \"对话框\" 这两个词语" +#: git/git.cpp:751 +msgid "Specify the name of the new branch" +msgstr "指定新分支的名称" -#: Plugin/nameanddescbasedlg.cpp:32 -msgid "Project category:" -msgstr "项目类别:" +#: git/git.cpp:757 +msgid "Switch to new branch once it is created?" +msgstr "一旦创建就切换到新的分支吗?" -#: Plugin/nameanddescbasedlg.cpp:44 LiteEditor/pluginmgrdlg.cpp:146 -#: LiteEditor/plugindlgbase.cpp:59 Gizmos/gizmos_base.cpp:48 -msgid "Description:" -msgstr "描述:" +#: git/git.cpp:757 +msgid "Switch to new branch" +msgstr "切换到新的分支" -#: Plugin/editor_config.cpp:679 Plugin/editor_config.cpp:714 menu.xrc:902 -#: menu.xrc:916 LiteEditor/frame.cpp:1169 LiteEditor/frame.cpp:1462 -#: LiteEditor/editorsettingsdockingwindowsbase.cpp:44 -#: LiteEditor/output_pane.cpp:43 -msgid "Build" -msgstr "构建" +#: git/git.cpp:810 +msgid "No remotes found, can't push!" +msgstr "没有发现远程端,无法推送!" -#: Plugin/editor_config.cpp:681 Plugin/editor_config.cpp:716 menu.xrc:720 -#: LiteEditor/frame.cpp:1144 LiteEditor/frame.cpp:1439 -#: LiteEditor/editorsettingsdockingwindowsbase.cpp:50 -#: LiteEditor/output_pane.cpp:42 -msgid "Search" -msgstr "搜索" +#: git/git.cpp:814 +msgid "Push all local commits?" +msgstr "推送所有本地提交吗?" -#: Plugin/editor_config.cpp:683 Plugin/editor_config.cpp:718 -#: LiteEditor/frame.cpp:1133 LiteEditor/frame.cpp:1247 -#: LiteEditor/frame.cpp:1323 LiteEditor/frame.cpp:1427 -#: LiteEditor/editorsettingsdockingwindowsbase.cpp:56 -#: LiteEditor/output_pane.cpp:46 -msgid "Replace" -msgstr "替换" +#: git/git.cpp:818 +msgid "Select remote to push to." +msgstr "选择远程推送。" -#: Plugin/editor_config.cpp:685 Plugin/editor_config.cpp:720 -#: LiteEditor/editorsettingsdockingwindowsbase.cpp:62 -#: LiteEditor/output_pane.cpp:49 -msgid "References" -msgstr "引用" +#: git/git.cpp:818 +msgid "Select remote" +msgstr "选择远程" -#: Plugin/editor_config.cpp:687 Plugin/editor_config.cpp:722 menu.xrc:540 -#: LiteEditor/debuggerpane.cpp:53 -#: LiteEditor/editorsettingsdockingwindowsbase.cpp:68 -#: LiteEditor/output_pane.cpp:44 -msgid "Output" -msgstr "输出" +#: git/git.cpp:840 +msgid "Save all changes and pull remote changes?" +msgstr "保存所有变更并拉取远程变更吗?" -#: Plugin/editor_config.cpp:689 Plugin/editor_config.cpp:724 -#: LiteEditor/frame.cpp:1198 LiteEditor/frame.cpp:1491 -#: LiteEditor/quickdebugbase.cpp:93 -#: LiteEditor/configuration_manager_dlg.cpp:126 -#: LiteEditor/editorsettingsdockingwindowsbase.cpp:116 -#: LiteEditor/output_pane.cpp:45 LiteEditor/debugcoredumpbase.cpp:84 -msgid "Debug" -msgstr "调试" +#: git/git.cpp:864 +msgid "Are you sure that you want to discard all local changes?" +msgstr "您确定要放弃所有本地变更?" -#: Plugin/editor_config.cpp:691 Plugin/editor_config.cpp:726 -#: LiteEditor/editorsettingsdockingwindowsbase.cpp:74 -#: LiteEditor/output_pane.cpp:48 -msgid "Trace" -msgstr "跟踪" +#: git/git.cpp:865 git/GitConsole.cpp:211 +msgid "Reset repository" +msgstr "重置仓库" -#: Plugin/editor_config.cpp:693 Plugin/editor_config.cpp:728 -#: LiteEditor/editorsettingsdockingwindowsbase.cpp:80 -#: LiteEditor/output_pane.cpp:47 -msgid "Tasks" -msgstr "任务" +#: git/git.cpp:901 +msgid "Jump to modifed file" +msgstr "跳转到已修改文件" -#: Plugin/editor_config.cpp:695 Plugin/editor_config.cpp:730 -#: LiteEditor/editorsettingsdockingwindowsbase.cpp:86 -msgid "BuildQ" -msgstr "" +#: git/git.cpp:901 +msgid "Modifed files" +msgstr "已修改的文件" -#: Plugin/editor_config.cpp:697 Plugin/editor_config.cpp:732 -#: LiteEditor/editorsettingsdockingwindowsbase.cpp:92 -#: cppchecker/cppchecksettingsdlg.cpp:132 -#: cppchecker/cppchecksettingsdlg.cpp:151 cppchecker/cppchecker.cpp:125 -#: cppchecker/cppchecker.cpp:130 cppchecker/cppchecker.cpp:136 -#: cppchecker/cppchecker.cpp:142 -msgid "CppCheck" -msgstr "" +#: git/git.cpp:1315 +msgid "Colouring tracked git files..." +msgstr "着色跟踪的 git 文件..." -#: Plugin/editor_config.cpp:699 Plugin/editor_config.cpp:734 -#: LiteEditor/editorsettingsdockingwindowsbase.cpp:98 -msgid "Subversion" -msgstr "" +#: git/git.cpp:1320 +msgid "Colouring modifed git files..." +msgstr "着色已修改的 git 文件..." -#: Plugin/editor_config.cpp:701 -#: LiteEditor/editorsettingsdockingwindowsbase.cpp:104 -msgid "CScope" -msgstr "" +#: git/git.cpp:1402 +msgid "Do you want to start importing new / updating changed files?" +msgstr "您想开始导入新的/更新了的文件吗?" -#: Plugin/editor_config.cpp:703 Plugin/editor_config.cpp:738 -msgid "git" -msgstr "" +#: git/git.cpp:1403 +msgid "Import files" +msgstr "导入文件" -#: Plugin/editor_config.cpp:736 -msgid "Cscope" -msgstr "" +#: git/git.cpp:1410 +msgid "Error obtaining project" +msgstr "获取项目错误" -#: Runtime/templates/projects/executable-wxcrafter-frame/MainFrame.cpp:23 -#: CLgtk3-install/share/codelite/templates/projects/executable-wxcrafter-frame/MainFrame.cpp:23 -#: ~/.codelite/templates/projects/executable-wxcrafter-frame/MainFrame.cpp:23 -#: CL-install/share/codelite/templates/projects/executable-wxcrafter-frame/MainFrame.cpp:23 -msgid "My MainFrame" -msgstr "我的主框架" +#: git/git.cpp:1426 LiteEditor/fileview.cpp:1731 LiteEditor/fileview.cpp:1820 +msgid "Importing files ..." +msgstr "导入文件..." -#: Runtime/templates/projects/executable-wxcrafter-frame/MainFrame.cpp:24 -#: CLgtk3-install/share/codelite/templates/projects/executable-wxcrafter-frame/MainFrame.cpp:24 -#: ~/.codelite/templates/projects/executable-wxcrafter-frame/MainFrame.cpp:24 -#: codelite_terminal/MainFrame.cpp:102 -#: CL-install/share/codelite/templates/projects/executable-wxcrafter-frame/MainFrame.cpp:24 -msgid "GPL v2 or later" -msgstr "" +#: git/git.cpp:1440 +msgid "Checking file " +msgstr "检查文件" -#: Runtime/templates/projects/executable-wxcrafter-frame/MainFrame.cpp:25 -#: CLgtk3-install/share/codelite/templates/projects/executable-wxcrafter-frame/MainFrame.cpp:25 -#: ~/.codelite/templates/projects/executable-wxcrafter-frame/MainFrame.cpp:25 -#: CL-install/share/codelite/templates/projects/executable-wxcrafter-frame/MainFrame.cpp:25 -msgid "Short description goes here" -msgstr "在此处简短描述" +#: git/git.cpp:1466 +msgid "Adding files..." +msgstr "正在添加文件..." -#: Runtime/templates/projects/executable-wxcrafter-frame/wxcrafter.cpp:34 -#: CLgtk3-install/share/codelite/templates/projects/executable-wxcrafter-frame/wxcrafter.cpp:34 -#: ~/.codelite/templates/projects/executable-wxcrafter-frame/wxcrafter.cpp:34 -#: LiteEditor/breakpointslistctrl.h:44 LiteEditor/symbols_dialog.cpp:44 -#: LiteEditor/listctrlpanelbase.cpp:35 LiteEditor/threadlistpanel.cpp:53 -#: codelite_terminal/wxcrafter.cpp:121 -#: CL-install/share/codelite/templates/projects/executable-wxcrafter-frame/wxcrafter.cpp:34 -#: Gizmos/newclassdlg.cpp:64 UnitTestCPP/unittestspage.cpp:38 -msgid "File" -msgstr "文件" +#: git/git.cpp:1516 +msgid "Finished adding files..." +msgstr "添加文件已完成..." -#: Runtime/templates/projects/executable-wxcrafter-frame/wxcrafter.cpp:36 -#: CLgtk3-install/share/codelite/templates/projects/executable-wxcrafter-frame/wxcrafter.cpp:36 -#: ~/.codelite/templates/projects/executable-wxcrafter-frame/wxcrafter.cpp:36 -#: codelite_terminal/wxcrafter.cpp:123 -#: CL-install/share/codelite/templates/projects/executable-wxcrafter-frame/wxcrafter.cpp:36 -msgid "Exit\tAlt-X" +#: git/git.cpp:1541 +msgid "" +"There was a problem while performing a git action.\n" +"Last command output:\n" msgstr "" +"执行 git 动作出现问题。\n" +"最后一个命令输出:\n" -#: Runtime/templates/projects/executable-wxcrafter-frame/wxcrafter.cpp:36 -#: CLgtk3-install/share/codelite/templates/projects/executable-wxcrafter-frame/wxcrafter.cpp:36 -#: ~/.codelite/templates/projects/executable-wxcrafter-frame/wxcrafter.cpp:36 -#: codelite_terminal/wxcrafter.cpp:123 -#: CL-install/share/codelite/templates/projects/executable-wxcrafter-frame/wxcrafter.cpp:36 -msgid "Quit" -msgstr "退出" +#: git/git.cpp:1544 +msgid "git error" +msgstr "git 错误" -#: Runtime/templates/projects/executable-wxcrafter-frame/wxcrafter.cpp:40 -#: CLgtk3-install/share/codelite/templates/projects/executable-wxcrafter-frame/wxcrafter.cpp:40 -#: ~/.codelite/templates/projects/executable-wxcrafter-frame/wxcrafter.cpp:40 -#: LiteEditor/compilercompileroptionspage.cpp:12 -#: LiteEditor/compilerlinkeroptionspage.cpp:12 -#: codelite_terminal/wxcrafter.cpp:127 -#: CL-install/share/codelite/templates/projects/executable-wxcrafter-frame/wxcrafter.cpp:40 -msgid "Help" -msgstr "帮助" +#: git/git.cpp:1552 +msgid "created" +msgstr "已创建" -#: Runtime/templates/projects/executable-wxcrafter-frame/wxcrafter.h:29 -#: CLgtk3-install/share/codelite/templates/projects/executable-wxcrafter-frame/wxcrafter.h:29 -#: ~/.codelite/templates/projects/executable-wxcrafter-frame/wxcrafter.h:29 -#: CL-install/share/codelite/templates/projects/executable-wxcrafter-frame/wxcrafter.h:29 -msgid "My Frame" -msgstr "我的框架" +#: git/git.cpp:1602 +msgid "Nothing to pull, already up-to-date." +msgstr "没有文件来拉取,仓库已经是最新的。" -#: Runtime/templates/projects/executable-wxcrafter-dialog/wxcrafter.h:22 -#: CLgtk3-install/share/codelite/templates/projects/executable-wxcrafter-dialog/wxcrafter.h:22 -#: ~/.codelite/templates/projects/executable-wxcrafter-dialog/wxcrafter.h:22 -#: CL-install/share/codelite/templates/projects/executable-wxcrafter-dialog/wxcrafter.h:22 -msgid "My Dialog" -msgstr "我的对话框" +#: git/git.cpp:1610 +msgid "Merged after pull. Rebase?" +msgstr "拉取后合并,并重新定义版本库状态?" -#: Runtime/templates/projects/executable-wx-frame/gui.cpp:19 -#: CLgtk3-install/share/codelite/templates/projects/executable-wx-frame/gui.cpp:19 -#: menu.xrc:54 ~/.codelite/templates/projects/executable-wx-frame/gui.cpp:19 -#: CL-install/share/codelite/templates/projects/executable-wx-frame/gui.cpp:19 -msgid "E&xit" -msgstr "退出(&x)" +#: git/git.cpp:1610 git/git.cpp:1614 git/git.cpp:1618 git/GitConsole.cpp:218 +msgid "Rebase" +msgstr "重新定义版本库状态" -#: Runtime/templates/projects/executable-wx-frame/gui.cpp:22 -#: CLgtk3-install/share/codelite/templates/projects/executable-wx-frame/gui.cpp:22 -#: menu.xrc:4 ~/.codelite/templates/projects/executable-wx-frame/gui.cpp:22 -#: CL-install/share/codelite/templates/projects/executable-wx-frame/gui.cpp:22 -msgid "&File" -msgstr "文件(&F)" +#: git/git.cpp:1614 +msgid "Rebase with what branch?" +msgstr "重新定义哪一个分支的版本库状态?" -#: Copyright/copyrights_options_base_dlg.h:59 -msgid "Copyrights Settings" -msgstr "版权设置" +#: git/git.cpp:1618 +msgid "Rebase with " +msgstr "重新定义版本库状态为" -#: Copyright/copyrights_options_base_dlg.cpp:25 -msgid "Template File Path:" -msgstr "模板文件路径:" +#: git/git.cpp:1632 +msgid "Conflict found during merge" +msgstr "合并时发现冲突" -#: Copyright/copyrights_options_base_dlg.cpp:30 -msgid "" -"Select the path to the file containing the template header to be prepended " -"to the source files" -msgstr "选择添加到源文件的标题模板文件路径" +#: git/git.cpp:1733 +msgid "Are you sure you want to continue connecting" +msgstr "您确定要继续连接" -#: Copyright/copyrights_options_base_dlg.cpp:38 -msgid "File Masking:" -msgstr "文件掩码:" +#: git/git.cpp:2252 Subversion2/subversion_view.cpp:1470 +msgid "HEAD version" +msgstr "HEAD 版本" -#: Copyright/copyrights_options_base_dlg.cpp:42 -msgid "*.hpp;*.h;*.hxx;*.inl;*.h++" -msgstr "*.hpp;*.h;*.hxx;*.inl;*.h++" +#: git/git.cpp:2254 Subversion2/subversion_view.cpp:1469 +msgid "Working copy" +msgstr "工作副本" -#: Copyright/copyrights_options_base_dlg.cpp:48 -msgid "Ignore String:" -msgstr "忽略字符串:" +#: git/git.cpp:2259 git/git.cpp:2260 +msgid "Git Diff: " +msgstr "Git Diff:" -#: Copyright/copyrights_options_base_dlg.cpp:53 -msgid "" -"Set here a string that once found in the source file CodeLite will not " -"prepend the Copyrights block to the file" -msgstr "" -"在此设置一个字符串,当 CodeLite 找到包含这个字符串文件时,不会在文件插入版权" -"信息" +#: git/git.cpp:2274 +msgid "Save all changes and rebase?" +msgstr "保存所有变更并重新定义版本库状态吗?" -#: Copyright/copyrights_options_base_dlg.cpp:60 -msgid "Backup modified files" -msgstr "备份修改的文件" +#: git/git.cpp:2328 git/GitConsole.cpp:457 +msgid "Reset file" +msgstr "重置文件" -#: Copyright/copyrights_options_base_dlg.cpp:75 -#: abbreviation/abbreviationssettingsbase.cpp:113 -msgid "&Save" -msgstr "保存(&S)" +#: git/git.cpp:2332 +msgid "Show file diff" +msgstr "显示文件差别" -#: Copyright/copyright.cpp:70 Copyright/copyright.cpp:87 -msgid "" -"Copyright Plugin - a small plugin that allows you to place copyright block " -"on top of your source files" -msgstr "版权插件 - 允许您在源文件头部插入版权信息的小插件" +#: git/git.cpp:2336 git/git.cpp:2395 +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:187 +msgid "Git" +msgstr "Git" -#: Copyright/copyright.cpp:106 Copyright/copyright.cpp:130 -#: Copyright/copyright.cpp:151 -msgid "Insert Copyright Block" -msgstr "插入版权块" +#: git/git.cpp:2355 git/git.cpp:2563 +msgid "Don't know how to start MSYSGit..." +msgstr "不知道如何开始启动 MSYSGit ..." -#: Copyright/copyright.cpp:109 Copyright/copyright.cpp:142 -msgid "Batch Insert of Copyright Block" -msgstr "批量插入版权块" +#: git/git.cpp:2374 git/GitConsole.cpp:217 +msgid "Push" +msgstr "推送" -#: Copyright/copyright.cpp:116 -msgid "Copyrights" -msgstr "版权" +#: git/git.cpp:2380 +msgid "Stash" +msgstr "存放" + +#: git/git.cpp:2384 +msgid "Stash pop" +msgstr "Stash pop" + +#: git/git.cpp:2390 +msgid "Open git bash" +msgstr "打开 git bash" + +#: git/git.cpp:2494 +msgid "No commit message given, aborting." +msgstr "没有给出提交信息,正在中止。" -#: Copyright/copyright.cpp:172 Copyright/copyright.cpp:395 -#, c-format -msgid "Template file name '%s', does not exist!" -msgstr "模板文件名 '%s',不存在!" +#: git/GitConsole.cpp:135 +msgid "Switch to local branch" +msgstr "切换到本地分支" -#: Copyright/copyright.cpp:179 Copyright/copyright.cpp:401 -#, c-format -msgid "Failed to read template file '%s'" -msgstr "无法读取模板文件 '%s'" +#: git/GitConsole.cpp:139 +msgid "Garbage collect" +msgstr "垃圾回收" -#: Copyright/copyright.cpp:185 SnipWiz/swGlobals.h:49 -msgid "There is no active editor\n" -msgstr "无活动的编辑器\n" +#: git/GitConsole.cpp:140 +msgid "Plugin settings" +msgstr "插件设置" -#: Copyright/copyright.cpp:196 -msgid "Template file contains text which is not comment, continue anyway?" -msgstr "模板文件包含非注释文本, 继续吗?" +#: git/GitConsole.cpp:140 +msgid "Set repository path" +msgstr "设置仓库路径" -#: Copyright/copyright.cpp:210 -msgid "File contains ignore string, skipping it" -msgstr "文件包含忽略字符串? 跳过它" +#: git/GitConsole.cpp:211 +msgid "Reset" +msgstr "重置" -#: Copyright/copyright.cpp:229 Copyright/copyright.cpp:287 -msgid "Batch insert requires a workspace to be opened" -msgstr "工作空间打开后才能批量插入" +#: git/GitConsole.cpp:214 +msgid "Pull" +msgstr "拉取" -#: Copyright/copyright.cpp:342 -#, c-format -msgid "You are about to modify %u files. Continue?" -msgstr "您要修改 %u 文件,是否继续?" +#: git/GitConsole.cpp:217 +msgid "Push local changes" +msgstr "推送本地变更" -#: Copyright/copyright.cpp:347 -msgid "Processing file ..." -msgstr "处理文件..." +#: git/GitConsole.cpp:221 +msgid "Diffs" +msgstr "Diffs" -#: Copyright/copyright.cpp:367 -msgid "File contains ignore string, skipping it: " -msgstr "文件包含忽略字符串,跳过它:" +#: git/GitConsole.cpp:223 LiteEditor/editorsettingsmiscbasepanel.cpp:284 +#: DatabaseExplorer/GUI.cpp:890 +msgid "Log" +msgstr "日志" -#: Copyright/copyright.cpp:374 -msgid "Inserting comment to file: " -msgstr "插入注释到文件:" +#: git/GitConsole.cpp:223 +msgid "Browse commit history" +msgstr "浏览提交历史记录" -#: Copyright/copyright.cpp:412 -msgid "Template file contains text which is not comment, continue anyways?" -msgstr "模板文件包含非注释文本,总是继续?" +#: git/GitConsole.cpp:227 +msgid "Open MSYS Git" +msgstr "打开 MSYS Git" + +#: git/GitConsole.cpp:229 +msgid "Open MSYS Git at the current file location" +msgstr "在当前文件位置打开 MSYS Git" -#: Copyright/copyrights_options_dlg.cpp:49 -msgid "Choose a file:" -msgstr "选择文件:" +#: git/GitConsole.cpp:347 +msgid "Modified" +msgstr "已修改" -#: Copyright/copyrights_proj_sel_base_dlg.cpp:19 -msgid "Select projects to insert copyrights block:" -msgstr "选择要插入版权块的项目:" +#: git/GitConsole.cpp:351 LiteEditor/reconcileprojectbase.cpp:35 +#: LiteEditor/reconcileprojectbase.cpp:42 +msgid "New Files" +msgstr "新建文件" -#: Copyright/copyrights_proj_sel_base_dlg.cpp:38 -#: LiteEditor/setters_getters.cpp:58 LiteEditor/plugindlgbase.cpp:72 -#: LiteEditor/batchbuildbasedlg.cpp:43 LiteEditor/filechecklistbase.cpp:39 -#: UnitTestCPP/testclassbasedlg.cpp:87 -msgid "Check &All" -msgstr "全选(&A)" +#: git/GitConsole.cpp:355 Subversion2/subversion_strings.h:32 +msgid "Deleted Files" +msgstr "已删除的文件" -#: Copyright/copyrights_proj_sel_base_dlg.cpp:41 -msgid "&Un-Check All" -msgstr "取消全部(&U)" +#: git/GitConsole.cpp:359 +msgid "Untracked" +msgstr "无路径" -#: Copyright/copyrights_proj_sel_base_dlg.cpp:51 -msgid "&Insert" -msgstr "插入(&I)" +#: git/GitConsole.cpp:454 LiteEditor/frame.cpp:1299 LiteEditor/frame.cpp:1515 +#: LiteEditor/frame.cpp:1652 LiteEditor/frame.cpp:1801 +#: LiteEditor/frame.cpp:2477 +msgid "Open File" +msgstr "打开文件" -#: Copyright/copyrights_proj_sel_base_dlg.h:49 -msgid "Batch Insert Of Copyrights" -msgstr "批量插入版权" +#: CodeLiteDiff/codelitediff.cpp:47 CodeLiteDiff/codelitediff.cpp:60 +msgid "CodeLite Diff Plugin" +msgstr "CodeLite 比较插件" + +#: CodeLiteDiff/codelitediff.cpp:108 +msgid "New Diff.." +msgstr "新的 Diff ..." + +#: CodeLiteDiff/codelitediff.cpp:108 +msgid "Start new diff" +msgstr "启动一个新的 diff" + +#: CodeLiteDiff/codelitediff.cpp:110 +msgid "Diff Tool" +msgstr "Diff 工具" + +#: CodeLiteDiff/codelitediff.cpp:133 +msgid "Diff" +msgstr "Diff" -#: CLgtk3-install/share/codelite/templates/projects/executable-wx-dialog/gui.h:48 -#: CLgtk3-install/share/codelite/templates/projects/executable-wx-frame/gui.h:48 -msgid "wxMiniApp" -msgstr "wxMiniApp" +#: Subversion2/svn_console.cpp:178 +msgid "Aborted.\n" +msgstr "中止。\n" -#: CallGraph/uicallgraph.cpp:21 -msgid "Node threshold [%] :" -msgstr "节点阈值 [%]:" +#: Subversion2/svn_console.cpp:231 +msgid "Failed to launch Subversion client.\n" +msgstr "运行 Subversion 客户端失败。\n" -#: CallGraph/uicallgraph.cpp:28 -msgid "Edge threshold [%] :" -msgstr "边缘阈值 [%]:" +#: Subversion2/svn_checkout_dialog.cpp:82 +#, c-format +msgid "" +"The checkout directory '%s' already exists\n" +"continue with the checkout?" +msgstr "" +"检出目录“%s”已存在\n" +"继续检出?" -#: CallGraph/uicallgraph.cpp:35 CallGraph/uisettings.cpp:108 -msgid "Hide parameters" -msgstr "隐藏参数" +#: Subversion2/svn_checkout_dialog.cpp:84 LiteEditor/fileview.cpp:977 +#: LiteEditor/fileview.cpp:1015 LiteEditor/fileview.cpp:1210 +#: LiteEditor/syntaxhighlightdlg.cpp:617 LiteEditor/manager.cpp:2850 +#: LiteEditor/manager.cpp:2901 LiteEditor/manager.cpp:2940 +#: LiteEditor/tasks_find_what_dlg.cpp:91 LiteEditor/mainbook.cpp:250 +#: LiteEditor/advanced_settings.cpp:160 LiteEditor/frame.cpp:2352 +#: LiteEditor/frame.cpp:2969 LiteEditor/edit_configuration.cpp:183 +msgid "Confirm" +msgstr "确认" -#: CallGraph/uicallgraph.cpp:38 CallGraph/uisettings.cpp:128 -msgid "Hide namespaces" -msgstr "隐藏名称空间" +#: Subversion2/subversion2_ui.cpp:134 +msgid "Source URL:" +msgstr "源 URL:" -#: CallGraph/uicallgraph.cpp:67 -msgid "Save call graph to..." -msgstr "保存调用图到…" +#: Subversion2/subversion2_ui.cpp:145 +msgid "Target URL:" +msgstr "目标 URL:" -#: CallGraph/uicallgraph.cpp:71 -msgid "Close call graph" -msgstr "关闭调用图" +#: Subversion2/subversion2_ui.cpp:156 +msgid "Comment:" +msgstr "注释:" -#: CallGraph/uicallgraph.cpp:77 -msgid "Zoom in" -msgstr "放大" +#: Subversion2/subversion2_ui.cpp:244 +msgid "&Login" +msgstr "登陆(&L)" -#: CallGraph/uicallgraph.cpp:81 -msgid "Zoom out" -msgstr "縮小" +#: Subversion2/subversion2_ui.cpp:286 MemCheck/memcheckui.cpp:505 +#: CodeFormatter/codeformatterdlgbase.cpp:41 +#: LiteEditor/editorsettingscommentsdoxygenpanelbase.cpp:37 +#: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:37 +#: LiteEditor/project_settings_dlg.cpp:125 +#: LiteEditor/project_settings_dlg.cpp:130 +#: LiteEditor/tags_options_base_dlg.cpp:446 LiteEditor/findinfiles_dlg.cpp:151 +#: LiteEditor/editorsettingsmiscbasepanel.cpp:35 +#: LiteEditor/buildsettingstabbase.cpp:50 +#: LiteEditor/syntaxhighlightbasedlg.cpp:82 LLDBDebugger/UI.cpp:358 +#: codelitephp/php-plugin/php_ui.cpp:404 codelitephp/php-plugin/php_ui.cpp:634 +#: WebTools/WebToolsBase.cpp:72 +msgid "General" +msgstr "常规" -#: CallGraph/uicallgraph.cpp:89 -msgid "Zoom 1:1" -msgstr "缩放比例 1:1" +#: Subversion2/subversion2_ui.cpp:298 +msgid "Executable:" +msgstr "可执行文件:" -#: CallGraph/uicallgraph.cpp:121 -msgid " Function name " -msgstr "函数名" +#: Subversion2/subversion2_ui.cpp:313 +msgid "Ignore the following file patterns:" +msgstr "忽略以下文件模式:" -#: CallGraph/uicallgraph.cpp:122 -msgid " Total time [%] " -msgstr "总时间 [%]" +#: Subversion2/subversion2_ui.cpp:325 +msgid "When adding file(s) to project, add it to svn as well" +msgstr "当添加文件到项目时,同时添加到 svn" -#: CallGraph/uicallgraph.cpp:123 -msgid " Self time [s]" -msgstr "自定时间 [s]" +#: Subversion2/subversion2_ui.cpp:330 +msgid "Retag workspace after svn update, revert or applying patch" +msgstr "在 svn update, revert 或者应用 patch 后重建工作区标签文件" -#: CallGraph/uicallgraph.cpp:124 -msgid " Called " -msgstr "已访问" +#: Subversion2/subversion2_ui.cpp:335 +msgid "" +"When renaming a file in the project, rename it in the repository as well" +msgstr "当在项目中重命名了一个文件,同时也在仓库中重命名它" + +#: Subversion2/subversion2_ui.cpp:340 +msgid "Use POSIX Locale" +msgstr "使用 POSIX 语言环境" -#: CallGraph/callgraph.cpp:68 CallGraph/callgraph.cpp:86 +#: Subversion2/subversion2_ui.cpp:342 msgid "" -"Create application call graph from profiling information provided by gprof " -"tool." -msgstr "从 gprof 工具提供的分析信息中创建应用程序调用图" +"When checked, CodeLite will use the default \"C\" locale instead of the " +"current locale. This will ensure that svn command line output is parsed " +"properly." +msgstr "当勾选时,CodeLite 将使用默认“C”语言环境,而非当前语言环境" -#: CallGraph/callgraph.cpp:160 CallGraph/callgraph.cpp:166 -#: CallGraph/callgraph.cpp:184 CallGraph/callgraph.cpp:203 -msgid "Show call graph" -msgstr "显示调用图" +#: Subversion2/subversion2_ui.cpp:349 +msgid "External Diff" +msgstr "外部比较" -#: CallGraph/callgraph.cpp:162 CallGraph/callgraph.cpp:168 -#: CallGraph/callgraph.cpp:184 -msgid "Show call graph for selected/active project" -msgstr "为已选择/活动的项目显示调用图" +#: Subversion2/subversion2_ui.cpp:354 +msgid "Use external diff tool" +msgstr "使用外部比较工具" -#: CallGraph/callgraph.cpp:203 -msgid "Show call graph for selected project" -msgstr "为已选择的项目显示调用图" +#: Subversion2/subversion2_ui.cpp:366 +msgid "External Diff Viewer:" +msgstr "外部比较视图:" -#: CallGraph/callgraph.cpp:223 CallGraph/callgraph.cpp:268 -msgid "Call Graph" -msgstr "调用图" +#: Subversion2/subversion2_ui.cpp:384 +msgid "SSH Client" +msgstr "SSH 客户端" + +#: Subversion2/subversion2_ui.cpp:396 SFTP/UI.cpp:347 +msgid "SSH Client:" +msgstr "SSH 客户端:" -#: CallGraph/callgraph.cpp:264 +#: Subversion2/subversion2_ui.cpp:411 +msgid "SSH Client arguments:" +msgstr "SSH 客户端参数:" + +#: Subversion2/subversion2_ui.cpp:426 msgid "" -"Create application call graph from profiling information provided by gprof " -"tool. \n" +"The SSH client field should contain the command to be\n" +"used by the SVN command line client for establishing a secured channel.\n" "\n" -msgstr "" -"从 gprof 工具提供的分析信息中创建应用程序调用图。\n" +"For example, on Windows it should contain something like:\n" +"/path/to/plink.exe -l -pw \n" "\n" - -#: CallGraph/callgraph.cpp:269 -msgid "v1.1.0" +"If you don't need SSH channel, leave this field empty" msgstr "" +"SSH 客户端字段应当包含\n" +"SVN 命令行客户端用来建立一个加密管道的命令。\n" +"\n" +"例如,在 Windows 上,它应该类似:\n" +"/path/to/plink.exe-l -pw \n" +"\n" +"如果你不需要 SSH 通道,请将此字段留空" -#: CallGraph/callgraph.cpp:271 -msgid "2012 (C) Tomas Bata University, Zlin, Czech Republic" -msgstr "2012 (C) Tomas Bata 大学, Zlin, 捷克共和国" +#: Subversion2/subversion2_ui.cpp:433 +msgid "Integration" +msgstr "集成" -#: CallGraph/callgraph.cpp:381 CallGraph/callgraph.cpp:393 -msgid "Unable to get opened workspace." -msgstr "无法获取已打开的工作空间。" +#: Subversion2/subversion2_ui.cpp:438 +msgid "Auto Revision:" +msgstr "自动修正:" -#: CallGraph/callgraph.cpp:388 -msgid "Unable to get current build matrix." -msgstr "无法获得当前构建模型。" +#: Subversion2/subversion2_ui.cpp:442 +msgid "Add revision number as preprocessor definition in the compilation line" +msgstr "把修订编号作为预处理器定义添加到编译行" -#: CallGraph/callgraph.cpp:456 -msgid "wxProcess::GetInputStream() can't be opened, aborting" -msgstr "wxProcess::GetInputStream() 无法被打开,正在中止" +#: Subversion2/subversion2_ui.cpp:451 +msgid "Preprocessor name:" +msgstr "预处理器名称:" -#: CallGraph/callgraph.cpp:492 -#, c-format -msgid "" -"The CallGraph plugin has suggested node threshold %d to speed-up the call " -"graph creation. You can alter it on the call graph panel." -msgstr "" -"CallGraph 插件建议调节节点阈值 %d 来加速创建调用图。您可以在调用图面板调节" -"它。" +#: Subversion2/subversion2_ui.cpp:536 Subversion2/wxcrafter.cpp:242 +msgid "Root URL:" +msgstr "根 URL:" -#: CallGraph/callgraph.cpp:528 -msgid "" -"Failed to open file CallGraph.png. Please check the project settings, " -"rebuild the project and try again." -msgstr "打开 CallGraph.png 失败。 请检查该项目设置,重新构建该项目并再次尝试。" +#: Subversion2/subversion2_ui.cpp:550 +msgid "URL:" +msgstr "URL:" -#: CallGraph/uicallgraphpanel.cpp:65 -msgid "Save call graph..." -msgstr "保存调用图…" +#: Subversion2/subversion2_ui.cpp:564 +msgid "Revision:" +msgstr "版次:" -#: CallGraph/uicallgraphpanel.cpp:150 -msgid "" -"CallGraph failed to save file with DOT language, please build the project " -"again." -msgstr "调用图通过 DOT 语言无法保存,请重新构建该项目。" +#: Subversion2/subversion2_ui.cpp:578 LiteEditor/pluginmgrdlg.cpp:152 +msgid "Author:" +msgstr "作者:" -#: CallGraph/uisettingsdlg.cpp:41 -msgid "Select gprof..." -msgstr "选择 gprof..." +#: Subversion2/subversion2_ui.cpp:592 +msgid "Date:" +msgstr "日期:" -#: CallGraph/uisettingsdlg.cpp:50 -msgid "Select dot..." -msgstr "选择点..." +#: Subversion2/subversion2_ui.cpp:650 +msgid "URL of repository:" +msgstr "仓库 URL:" -#: CallGraph/uisettingsdlg.cpp:76 -msgid "Please check the external tools' paths settings." -msgstr "请检查外部工具的路径设置。" +#: Subversion2/subversion2_ui.cpp:664 +msgid "Checkout directory:" +msgstr "检验目录:" -#: CallGraph/uisettings.cpp:25 -msgid "Select path for Gprof:" -msgstr "Gprof 路径选择:" +#: Subversion2/subversion2_ui.cpp:736 +msgid "From revision:" +msgstr "从修订版本:" -#: CallGraph/uisettings.cpp:32 CallGraph/uisettings.cpp:42 -msgid "Select..." -msgstr "选择..." +#: Subversion2/subversion2_ui.cpp:747 +msgid "To revision:" +msgstr "到修订版本:" -#: CallGraph/uisettings.cpp:35 -msgid "Select path for Dot:" -msgstr "Dot 路径选择:" +#: Subversion2/subversion2_ui.cpp:758 +msgid "Create compact log" +msgstr "创建紧凑日志" -#: CallGraph/uisettings.cpp:58 -msgid "Settings for CALL graph" -msgstr "调用图设置" +#: Subversion2/subversion2_ui.cpp:807 +msgid "From Revision:" +msgstr "从修订版本:" -#: CallGraph/uisettings.cpp:60 -msgid "Resolutions:" -msgstr "分辨率..." +#: Subversion2/subversion2_ui.cpp:819 +msgid "To Revision:" +msgstr "到修订版本:" -#: CallGraph/uisettings.cpp:72 -msgid "Node threshold (0 - 100) [%]:" -msgstr "节点阈值 (0 - 100) [%]:" +#: Subversion2/subversion2_ui.cpp:832 +msgid "Ignore whitespaces" +msgstr "忽略空白" -#: CallGraph/uisettings.cpp:79 -msgid "Edge threshold (0 - 100) [%]:" -msgstr "边缘阈值 (0 - 100) [%]:" +#: Subversion2/subversion2_ui.cpp:916 +msgid "Title" +msgstr "标题" -#: CallGraph/uisettings.cpp:95 -#: LiteEditor/implementparentvirtualfunctionsbase.cpp:86 -#: LiteEditor/findinfiles_dlg.cpp:116 -#: LiteEditor/debuggersettingsbasedlg.cpp:278 -msgid "Options:" -msgstr "选项:" +#: Subversion2/subversion2_ui.cpp:931 +msgid "Bug URL Pattern:" +msgstr "错误 URL 模式:" -#: CallGraph/uisettings.cpp:111 -msgid "Number of node load level colors (max 10):" -msgstr "节点负载级别颜色数 (最大值 10)" +#: Subversion2/subversion2_ui.cpp:936 +msgid "" +"Enter here the URL for the bug details.\n" +"For example: http://mytracker.com?bug_id=$(BUGID)" +msgstr "" +"在这里输入 BUG 的 URL。\n" +"例如:http://mytracker.com?bug_id=$(BUGID)" -#: CallGraph/uisettings.cpp:118 -msgid "Strip parameters " -msgstr "带参数" +#: Subversion2/subversion2_ui.cpp:943 +msgid "Bug Message Pattern:" +msgstr "Bug 消息模式:" -#: CallGraph/uisettings.cpp:121 -msgid "Number of edge load level colors (max 10):" -msgstr "边负载级别颜色数 (最大值 10)" +#: Subversion2/subversion2_ui.cpp:948 +msgid "" +"Enter here the message to add to the commit log. You may use the $(BUG_URL) " +"and $(BUGID) macros.\n" +"An example: \"Fixed: BUG#$(BUGID), See $(BUG_URL) for more details\"" +msgstr "" +"在这里输入添加到提交日志的信息。您可以使用 $(BUG_URL) 和 $(BUGID) 宏。\n" +"例如:“实现了BUG#$(BUGID),参考 $(BUG_URL) 获得更多细节”" -#: codelite_make/cl_make_generator_app.cpp:131 -msgid "A makefile generator based on codelite's workspace" -msgstr "一个基于 CodeLite 工作区的 makefile 文件生成器" +#: Subversion2/subversion2_ui.cpp:955 +msgid "Feature URL Pattern:" +msgstr "特性 URL 模式:" -#: CodeBeautifier/codebeautifier.cpp:39 -msgid "Uncrustify Error" -msgstr "未知错误。" +#: Subversion2/subversion2_ui.cpp:960 +msgid "" +"Enter here the URL for the feature request details.\n" +"For example: http://mytracker.com?fr_id=$(FRID)" +msgstr "" +"在这里输入特性需求的 URL。\n" +"例如:http://mytracker.com?fr_id=$(FRID)" -#: CodeBeautifier/codebeautifier.cpp:148 CodeFormatter/codeformatter.cpp:149 -msgid "Format Current Source" -msgstr "格式化当前源文件格式" +#: Subversion2/subversion2_ui.cpp:967 +msgid "Feature Message Pattern:" +msgstr "特性消息模式:" -#: CodeBeautifier/codebeautifier.cpp:150 -msgid "Code Beautifier" -msgstr "代码美化" +#: Subversion2/subversion2_ui.cpp:972 +msgid "" +"Enter here the message to add to the commit log. You may use the $(FR_URL) " +"and $(FRID) macros.\n" +"An example: \"Implements FR#$(FRID), See $(FR_URL) for more details\"" +msgstr "" +"在这里输入添加到提交日志的信息。您可以使用 $(FR_URL) 和 $(FRID) 宏。\n" +"例如:“实现了FR#$(FRID),参考 $(FR_URL) 获得更多细节“" -#: CodeBeautifier/codebeautifier.cpp:181 -#: CodeFormatter/codeformatterdlgbase.cpp:157 -#: CodeFormatter/codeformatter.cpp:179 -msgid "Formatting" -msgstr "格式化" +#: Subversion2/subversion2_ui.cpp:1034 +msgid "Do not change EOL, apply patch as it is" +msgstr "不更改 EOL,依照原样应用补丁" + +#: Subversion2/subversion2_ui.cpp:1035 +msgid "Change to Windows style (CRLF)" +msgstr "更改为 Windows 风格(CRLF)" + +#: Subversion2/subversion2_ui.cpp:1036 +msgid "Change to UNIX style (LF)" +msgstr "更改为 UNIX 风格(LF)" -#: CodeBeautifier/codebeautifier.cpp:190 LiteEditor/manager.cpp:3619 -#: LiteEditor/frame.cpp:965 LiteEditor/frame.cpp:2495 -#: LiteEditor/frame.cpp:4799 cscope/cscopedbbuilderthread.cpp:62 -#: cppchecker/cppcheckreportpage.cpp:182 CodeFormatter/codeformatter.cpp:181 -msgid "Done" -msgstr "完成" +#: Subversion2/subversion2_ui.cpp:1037 +msgid "Change patch line endings (EOL):" +msgstr "更改补丁行结尾(EOL):" -#: menu.xrc:7 -msgid "&New File" -msgstr "新建文件(&N)" +#: Subversion2/subversion2_ui.cpp:1085 +msgid "Select path:" +msgstr "路径选择:" -#: menu.xrc:10 -msgid "&Open File..." -msgstr "打开文件(&O)..." +#: Subversion2/subversion2_ui.cpp:1093 +msgid "Recently used paths:" +msgstr "最近使用的路径:" -#: menu.xrc:13 -msgid "&Reload File" -msgstr "重新加载文件(&R)" +#: Subversion2/svn_preferences_dialog.cpp:98 +msgid "Select Executable:" +msgstr "选择可执行文件:" -#: menu.xrc:16 -msgid "Load a group of tabs" -msgstr "加载一组标签" +#: Subversion2/wxcrafter.h:59 +msgid "Svn Commit" +msgstr "Svn 提交" -#: menu.xrc:20 -msgid "&Save File" -msgstr "保存文件(&S)" +#: Subversion2/wxcrafter.h:82 +msgid "Sync Workspace to SVN" +msgstr "同步工作区到 SVN" -#: menu.xrc:23 -msgid "Save As..." -msgstr "另存为..." +#: Subversion2/subversion2.cpp:137 Subversion2/subversion2.cpp:155 +msgid "Subversion plugin for codelite2.0 based on the svn command line tool" +msgstr "基于 svn 命令行工具的 codelite 2.0 Subversion 插件" -#: menu.xrc:26 LiteEditor/close_all_dlg.cpp:70 -msgid "Save all files" -msgstr "保存全部文件" +#: Subversion2/subversion2.cpp:268 +msgid "Subversion Options" +msgstr "Subversion 选项" -#: menu.xrc:29 -msgid "Save tabs as group" -msgstr "标签另存为组" +#: Subversion2/subversion2.cpp:278 +msgid "Sync Project Files..." +msgstr "同步项目文件..." -#: menu.xrc:34 LiteEditor/reconcileprojectbase.cpp:179 -#: LiteEditor/edit_workspace_conf_dlg.cpp:69 -#: abbreviation/abbreviationssettingsbase.cpp:143 -msgid "&Close" -msgstr "关闭(&C)" +#: Subversion2/subversion2.cpp:307 +msgid "Display this path in the Subversion View" +msgstr "在 Subversion 视图中显示此路径" -#: menu.xrc:38 menu.xrc:641 menu.xrc:661 LiteEditor/close_all_dlg.h:67 -msgid "Close All" -msgstr "全部关闭" +#: Subversion2/subversion2.cpp:313 LiteEditor/memoryviewbase.cpp:132 +msgid "Update" +msgstr "更新" -#: menu.xrc:44 -msgid "Recent &Files" -msgstr "最近打开的文件(&F)" +#: Subversion2/subversion2.cpp:321 +msgid "Lock file" +msgstr "锁住文件" -#: menu.xrc:49 -msgid "Recent &Workspaces" -msgstr "最近工作空间(&W)" +#: Subversion2/subversion2.cpp:324 +msgid "UnLock file" +msgstr "解锁文件" -#: menu.xrc:62 LiteEditor/breakpointdlgbase.cpp:42 -msgid "&Edit" -msgstr "编辑(&E)" +#: Subversion2/subversion2.cpp:332 SFTP/SFTPTreeView.cpp:364 SFTP/UI.cpp:287 +#: abbreviation/abbreviationssettingsbase.cpp:44 +#: LiteEditor/debuggersettingsbasedlg.cpp:718 +#: LiteEditor/compiler_pages.cpp:377 LiteEditor/compiler_pages.cpp:412 +#: LiteEditor/compiler_pages.cpp:449 LiteEditor/compiler_pages.cpp:480 +#: LiteEditor/compiler_pages.cpp:525 LiteEditor/tasksfindwhatdlgbase.cpp:59 +#: LiteEditor/project_settings_base_dlg.cpp:850 Gizmos/newclassbasedlg.cpp:186 +#: QmakePlugin/qmakesettingsdlg.cpp:106 menu.xrc:879 menu.xrc:922 +#: menu.xrc:1157 menu.xrc:1190 codelitephp/php-plugin/php_ui.cpp:1228 +#: codelitephp/php-plugin/php_workspace_view.cpp:194 +#: codelitephp/php-plugin/php_workspace_view.cpp:274 +msgid "Delete" +msgstr "删除" -#: menu.xrc:65 -msgid "&Undo" -msgstr "撤销(&U)" +#: Subversion2/subversion2.cpp:335 SFTP/SFTPTreeView.cpp:370 +#: SFTP/SFTPTreeView.cpp:486 LiteEditor/edit_configuration.cpp:143 +#: LiteEditor/edit_configuration.cpp:165 +#: LiteEditor/edit_workspace_conf_dlg.cpp:137 +#: codelitephp/php-plugin/php_workspace_view.cpp:192 +#: codelitephp/php-plugin/php_workspace_view.cpp:223 +msgid "Rename" +msgstr "重命名" -#: menu.xrc:68 -msgid "&Redo" -msgstr "重做(&R)" +#: Subversion2/subversion2.cpp:340 +msgid "Revert changes" +msgstr "恢复变更" -#: menu.xrc:72 -msgid "&Cut" -msgstr "剪切(&C)" +#: Subversion2/subversion2.cpp:344 Subversion2/subversion2.cpp:1570 +msgid "Revert to revision" +msgstr "恢复到版次" -#: menu.xrc:75 -msgid "Co&py" -msgstr "复制(&p)" +#: Subversion2/subversion2.cpp:348 +msgid "Create Diff" +msgstr "创建 Diff" -#: menu.xrc:78 -msgid "Past&e" -msgstr "粘贴(&e)" +#: Subversion2/subversion2.cpp:354 +msgid "Blame ..." +msgstr "归咎于..." -#: menu.xrc:81 -msgid "D&uplicate Selection / Line" -msgstr "复制选择的内容/行(&u)" +#: Subversion2/subversion2.cpp:358 Subversion2/subversion_view.cpp:664 +msgid "Change Log..." +msgstr "更改日志..." -#: menu.xrc:84 -msgid "Select &All" -msgstr "选择全部(&A)" +#: Subversion2/subversion2.cpp:364 Subversion2/subversion_view.cpp:638 +msgid "Ignore this file" +msgstr "忽略此文件" -#: menu.xrc:88 -msgid "&Delete Line" -msgstr "删除行(&D)" +#: Subversion2/subversion2.cpp:365 Subversion2/subversion_view.cpp:639 +msgid "Ignore this file pattern" +msgstr "忽略此文件模式" -#: menu.xrc:91 -msgid "Delete to Line &End" -msgstr "删除到行尾(&E)" +#: Subversion2/subversion2.cpp:615 +msgid "Insert base revision to diff against:" +msgstr "插入要 Diff 的 BASE 版本:" -#: menu.xrc:94 -msgid "Delete to Line &Start" -msgstr "删除到行首(&S)" +#: Subversion2/subversion2.cpp:616 +msgid "Diff against" +msgstr "反向比较" -#: menu.xrc:97 -msgid "&Transpose Lines" -msgstr "上下行交换(&T)" +#: Subversion2/subversion2.cpp:1044 +msgid "Enter new URL:" +msgstr "输入新 URL:" -#: menu.xrc:100 -msgid "Move Line Up" -msgstr "行上移" +#: Subversion2/subversion2.cpp:1144 +msgid "" +"Would you like to remove the following files from SVN?\n" +"\n" +msgstr "" +"您想从 SVN 移除以下文件吗?\n" +"\n" -#: menu.xrc:103 -msgid "Move Line Down" -msgstr "行下移" +#: Subversion2/subversion2.cpp:1179 Subversion2/subversion_view.cpp:1347 +#: QmakePlugin/qmakesettingsdlg.cpp:130 +msgid "New name:" +msgstr "新名称:" -#: menu.xrc:106 -msgid "Center &Line in Editor" -msgstr "行居中(&L)" +#: Subversion2/subversion2.cpp:1179 Subversion2/subversion_view.cpp:1347 +msgid "Svn rename..." +msgstr "SVN 重命名..." -#: menu.xrc:109 -msgid "Center &Line in Editor by Rolling" -msgstr "行滚动居中(&L)" +#: Subversion2/subversion2.cpp:1372 +msgid " - application/octet-stream" +msgstr " - 应用程序/字节流" -#: menu.xrc:113 -msgid "Trim T&railing Spaces" -msgstr "修整行尾空格(&R)" +#: Subversion2/subversion2.cpp:1442 Subversion2/subversion2.cpp:1541 +#: LiteEditor/findresultstab.cpp:414 LiteEditor/findresultstab.cpp:415 +#: LiteEditor/findresultstab.cpp:416 +msgid "false" +msgstr "假" -#: menu.xrc:117 -msgid "Make Upper&case" -msgstr "转为大写(&c)" +#: Subversion2/subversion2.cpp:1539 LiteEditor/findresultstab.cpp:414 +#: LiteEditor/findresultstab.cpp:415 LiteEditor/findresultstab.cpp:416 +msgid "true" +msgstr "真" -#: menu.xrc:120 -msgid "Make &Lowercase" -msgstr "转为小写(&L)" +#: Subversion2/subversion2.cpp:1570 +msgid "Set the revision number:" +msgstr "设置修订号:" -#: menu.xrc:124 -msgid "Match &Brace" -msgstr "匹配括号(&B)" +#: Subversion2/subversion2.cpp:1578 +msgid "Invalid revision number" +msgstr "无效的版本号" -#: menu.xrc:127 -msgid "S&elect to Brace" -msgstr "选择到括号(&e)" +#: Subversion2/svnblameeditor.cpp:155 +msgid "Highlight this revision" +msgstr "高亮此修订版本" -#: menu.xrc:131 -msgid "Complete &Word" -msgstr "代码补全(&W)" +#: Subversion2/subversion2_ui.h:91 +msgid "Create Svn Tag" +msgstr "创建 SVN 标签" -#: menu.xrc:134 -msgid "Display &Function Calltip" -msgstr "显示函数调用提示(&F)" +#: Subversion2/subversion2_ui.h:115 +msgid "Login" +msgstr "登陆" -#: menu.xrc:138 -msgid "Convert to Windows Format" -msgstr "转换为 Windows 格式" +#: Subversion2/subversion2_ui.h:191 +msgid "Subversion Preferences" +msgstr "Subversion 首选项" -#: menu.xrc:141 -msgid "Convert to Unix Format" -msgstr "转换为 UNIX 格式" +#: Subversion2/subversion2_ui.h:225 Subversion2/subversion_view.cpp:287 +msgid "Svn Info" +msgstr "SVN 信息" -#: menu.xrc:151 -msgid "&View" -msgstr "查看(&V)" +#: Subversion2/subversion2_ui.h:255 Subversion2/subversion_view.cpp:273 +msgid "Svn Checkout" +msgstr "SVN 检出" -#: menu.xrc:154 -msgid "Word W&rap" -msgstr "自动换行(&r)" +#: Subversion2/subversion2_ui.h:281 +msgid "Svn Log" +msgstr "SVN 日志" -#: menu.xrc:158 -msgid "Toggle Current &Fold" -msgstr "切换当前折叠(&F)" +#: Subversion2/subversion2_ui.h:307 +msgid "Svn Diff..." +msgstr "SVN 比较" -#: menu.xrc:161 -msgid "Toggle &All Folds" -msgstr "切换全部折叠(&A)" +#: Subversion2/subversion2_ui.h:358 +msgid "Svn Properties..." +msgstr "SVN 属性..." -#: menu.xrc:164 -msgid "Toggle All To&pmost Folds in Selection" -msgstr "切换选择的所有折叠(&P)" +#: Subversion2/subversion2_ui.h:377 +msgid "Select patch file:" +msgstr "选择补丁文件:" -#: menu.xrc:167 -msgid "Toggle &Every Fold in Selection" -msgstr "切换选择的每个折叠(&E)" +#: Subversion2/subversion2_ui.h:403 +msgid "Select Local Repository:" +msgstr "选择本地仓库:" -#: menu.xrc:170 -msgid "&Display EOL" -msgstr "显示 EOL(&D)" +#: Subversion2/subversion2_ui.h:419 +msgid "Blame" +msgstr "归咎于" -#: menu.xrc:174 -msgid "Show Whitespace" -msgstr "显示空白" +#: Subversion2/subversion_view.cpp:183 +msgid "Choose directory" +msgstr "选择目录" -#: menu.xrc:176 LiteEditor/editor_options_general_guides_panel.cpp:52 -#: LiteEditor/editorsettingslocal.cpp:75 -msgid "Invisible" -msgstr "不可见" +#: Subversion2/subversion_view.cpp:253 Subversion2/subversion_view.cpp:255 +#: LiteEditor/wxcrafter.cpp:574 LiteEditor/wxcrafter.cpp:1015 +msgid "Link Editor" +msgstr "链接编辑器" -#: menu.xrc:180 -msgid "Show Always" -msgstr "总是可见" +#: Subversion2/subversion_view.cpp:259 Subversion2/subversion_view.cpp:261 +msgid "Select a Directory to View..." +msgstr "选择一个目录来查看..." -#: menu.xrc:184 -msgid "Visible After First Indent" -msgstr "首次缩进后可见" +#: Subversion2/subversion_view.cpp:266 Subversion2/subversion_view.cpp:268 +msgid "Stop current svn process" +msgstr "停止当前 SVN 进程" -#: menu.xrc:188 -msgid "Indentation Only" -msgstr "仅缩进" +#: Subversion2/subversion_view.cpp:270 +msgid "Svn Cleanup" +msgstr "SVN 清除" -#: menu.xrc:194 -msgid "Full Screen..." -msgstr "全屏..." +#: Subversion2/subversion_view.cpp:279 Subversion2/subversion_view.cpp:281 +msgid "Clear Svn Output Tab" +msgstr "清除 SVN 输出标签" -#: menu.xrc:198 -msgid "Show &Welcome Page" -msgstr "显示欢迎信息(&W)" +#: Subversion2/subversion_view.cpp:284 Subversion2/subversion_view.cpp:286 +msgid "Svn Settings..." +msgstr "SVN 设置..." -#: menu.xrc:201 -msgid "Load Welcome Page at &Startup" -msgstr "启动时加载欢迎页面(&S)" +#: Subversion2/subversion_view.cpp:379 Subversion2/subversion_view.cpp:1276 +#: Subversion2/subversion_view.cpp:1284 Subversion2/subversion_view.h:190 +#: Subversion2/svn_select_local_repo_dlg.cpp:105 +msgid "" +msgstr "<没有仓库路径被选中>" -#: menu.xrc:206 -msgid "&Output Pane" -msgstr "输出面板(&O)" +#: Subversion2/subversion_view.cpp:607 Subversion2/subversion_view.cpp:630 +#: Subversion2/subversion_view.cpp:659 +msgid "Create Diff..." +msgstr "创建 Diff..." -#: menu.xrc:210 -msgid "Wor&kspace Pane" -msgstr "工作空间面板(&k)" +#: Subversion2/subversion_view.cpp:612 +msgid "Open File..." +msgstr "打开文件..." -#: menu.xrc:214 -msgid "&Navigation Bar" -msgstr "导航栏(&N)" +#: Subversion2/subversion_view.cpp:633 +msgid "Blame..." +msgstr "归咎于..." -#: menu.xrc:218 -msgid "&Debugger Pane" -msgstr "调试面板(&D)" +#: Subversion2/subversion_view.cpp:652 Subversion2/subversion_view.cpp:818 +msgid "Create Tag" +msgstr "创建标签" -#: menu.xrc:223 LiteEditor/frame.cpp:895 -msgid "Workspace View" -msgstr "工作空间视图" +#: Subversion2/subversion_view.cpp:653 Subversion2/subversion_view.cpp:784 +msgid "Create Branch" +msgstr "创建分支" -#: menu.xrc:226 LiteEditor/workspace_pane.cpp:84 -#: LiteEditor/workspace_pane.cpp:108 LiteEditor/workspace_pane.cpp:190 -#: LiteEditor/workspace_pane.cpp:306 LiteEditor/workspace_pane.cpp:322 -#: LiteEditor/workspace_pane.cpp:323 -msgid "Workspace" -msgstr "工作空间" +#: Subversion2/subversion_view.cpp:656 +msgid "Switch URL..." +msgstr "切换 URL..." -#: menu.xrc:230 LiteEditor/workspace_pane.cpp:119 -#: LiteEditor/workspace_pane.cpp:191 LiteEditor/workspace_pane.cpp:304 -#: LiteEditor/workspace_pane.cpp:326 LiteEditor/workspace_pane.cpp:327 -msgid "Explorer" -msgstr "资源管理器" +#: Subversion2/subversion_view.cpp:660 +msgid "Apply Patch..." +msgstr "应用补丁..." -#: menu.xrc:234 LiteEditor/workspace_pane.cpp:130 -#: LiteEditor/workspace_pane.cpp:192 LiteEditor/workspace_pane.cpp:308 -#: LiteEditor/workspace_pane.cpp:330 LiteEditor/workspace_pane.cpp:331 -msgid "Tabs" -msgstr "标签" +#: Subversion2/subversion_view.cpp:661 +msgid "Apply Patch - Dry Run..." +msgstr "应用补丁 - 试运行..." -#: menu.xrc:238 LiteEditor/workspace_pane.cpp:141 -#: LiteEditor/workspace_pane.cpp:193 LiteEditor/workspace_pane.cpp:310 -#: LiteEditor/workspace_pane.cpp:334 LiteEditor/workspace_pane.cpp:335 -msgid "Tabgroups" -msgstr "标签组" +#: Subversion2/subversion_view.cpp:667 +msgid "Properties..." +msgstr "属性..." -#: menu.xrc:243 -msgid "Tool&bars" -msgstr "工具栏(&b)" +#: Subversion2/subversion_view.cpp:1479 Subversion2/subversion_view.cpp:1480 +msgid "Svn Diff: " +msgstr "SVN 比较:" -#: menu.xrc:246 -msgid "Standard ToolBar" -msgstr "标准工具栏" +#: Subversion2/wxcrafter.cpp:36 +msgid "Feature Request ID:" +msgstr "特性需求 ID:" -#: menu.xrc:250 -msgid "Search ToolBar" -msgstr "搜索工具栏" +#: Subversion2/wxcrafter.cpp:47 +msgid "Bug ID:" +msgstr "Bug 编号:" -#: menu.xrc:254 -msgid "Build ToolBar" -msgstr "构建工具栏" +#: Subversion2/wxcrafter.cpp:80 +msgid "Modified Paths:" +msgstr "修改的路径:" -#: menu.xrc:258 -msgid "Debug ToolBar" -msgstr "调试工具栏" +#: Subversion2/wxcrafter.cpp:186 +msgid "Recent commit messages:" +msgstr "最近提交信息:" -#: menu.xrc:263 -msgid "Show/hide main toolbars" -msgstr "显示/隐藏主工具栏" +#: Subversion2/wxcrafter.cpp:249 +msgid "" +msgstr "<没有发现>" -#: menu.xrc:267 -msgid "Show/hide all plugin toolbars" -msgstr "显示/隐藏所有插件工具栏" +#: Subversion2/wxcrafter.cpp:260 +msgid "Root Directory:" +msgstr "根目录:" -#: menu.xrc:275 -msgid "&Toggle All Panes" -msgstr "切换全部面板(&T)" +#: Subversion2/wxcrafter.cpp:268 +msgid "Exclude these file extensions:" +msgstr "排除这些文件扩展名:" -#: menu.xrc:281 LiteEditor/taskpanel.cpp:60 -msgid "&Search" -msgstr "搜索(&S)" +#: Subversion2/wxcrafter.cpp:281 +msgid "Exclude binary (application/octet-stream) files" +msgstr "排除二进制(应用程序/八位字节流)文件" -#: menu.xrc:284 -msgid "&Find In Files..." -msgstr "在文件中查找(&F)..." +#: Subversion2/svn_command_handlers.cpp:123 +msgid "===== APPLYING PATCH - DRY RUN =====\n" +msgstr "===== 应用补丁 - 试运行 =====\n" -#: menu.xrc:287 -msgid "Fi&nd..." -msgstr "查找(&n)" +#: Subversion2/svn_command_handlers.cpp:125 +msgid "===== OUTPUT END =====\n" +msgstr "===== 输出结束=====\n" -#: menu.xrc:290 -msgid "&Replace..." -msgstr "替换(&R)..." +#: Subversion2/svn_command_handlers.cpp:160 +msgid "Change Log" +msgstr "更改日志" -#: menu.xrc:293 -msgid "Find &Next" -msgstr "查找下一个(&N)" +#: Subversion2/svn_command_handlers.cpp:211 +msgid "Loading Svn blame dialog...\n" +msgstr "正在加载错误对话框...\n" -#: menu.xrc:296 -msgid "Find &Previous" -msgstr "查找上一个(&P)" +#: Subversion2/svncommand.cpp:109 +msgid "Authentication failed. Retrying...\n" +msgstr "身份验证失败,正在重试...\n" -#: menu.xrc:299 -msgid "Find Word At Caret" -msgstr "查找光标处的字" +#: Subversion2/svncommand.cpp:113 +msgid "Server certificate verification failed. Retrying...\n" +msgstr "服务器身份验证失败,请重试...\n" -#: menu.xrc:302 -msgid "Find Word At Caret Backward" -msgstr "查找光标向后的字" +#: Subversion2/svn_select_local_repo_dlg.cpp:73 +msgid "Remove path" +msgstr "移除路径" -#: menu.xrc:306 -msgid "Grep Selection in the Current File" -msgstr "在当前文件中查找选择" +#: Subversion2/svn_select_local_repo_dlg.cpp:76 +msgid "Remove paths" +msgstr "移除路径" -#: menu.xrc:309 -msgid "Grep Selection in the Workspace" -msgstr "在工作空间中查找选择" +#: Subversion2/subversion_strings.h:29 +msgid "No Files to Display" +msgstr "没有文件可以显示" -#: menu.xrc:313 -msgid "Go to Next 'Find In File' Match" -msgstr "转到“文件中查找”下一个匹配" +#: Subversion2/subversion_strings.h:30 +msgid "Modified Files" +msgstr "修改的文件" -#: menu.xrc:316 -msgid "Go to Previous 'Find In File' Match" -msgstr "转到“文件中查找”上一个匹配" +#: Subversion2/subversion_strings.h:31 +msgid "Added Files" +msgstr "已添加的文件" -#: menu.xrc:320 -msgid "Find &Resource..." -msgstr "查找资源(&R)" +#: Subversion2/subversion_strings.h:33 +msgid "Conflicted Files" +msgstr "已冲突的文件" -#: menu.xrc:324 -msgid "&Quick Outline..." -msgstr "快速概述(&Q)..." +#: Subversion2/subversion_strings.h:34 +msgid "Locked Files" +msgstr "已锁住的文件" -#: menu.xrc:327 -msgid "Find &Symbol" -msgstr "查找符号(&S)" +#: Subversion2/subversion_strings.h:35 +msgid "Unversioned Files" +msgstr "为进行版本管理的文件" -#: menu.xrc:330 -msgid "Go To Pre&vious Location" -msgstr "转到前一个位置(&v)" +#: Subversion2/subversion_strings.h:36 +msgid "Svn" +msgstr "Svn" -#: menu.xrc:333 -msgid "Go To For&ward Location" -msgstr "转到后一个位置(&W)" +#: Subversion2/subversion_strings.h:37 +msgid "" +"\n" +"MESSAGE: Another process is already running.\n" +"MESSAGE: Ignoring last command.\n" +msgstr "" +"\n" +"消息: 另一个进程已经正在运行。\n" +"消息: 正在忽略最后的命令。\n" -#: menu.xrc:338 -msgid "&Go To..." -msgstr "转到(&G)..." +#: Subversion2/svn_sync_dialog.cpp:61 +msgid "Root URL: " +msgstr "根 URL:" -#: menu.xrc:344 -msgid "Toggle &Bookmark" -msgstr "切换书签(&B)" +#: Subversion2/svn_sync_dialog.cpp:63 +msgid "" +msgstr "<没有合适的>" -#: menu.xrc:347 -msgid "&Next Bookmark" -msgstr "下一个书签(&N)" +#: Outline/outline_symbol_tree.cpp:42 +msgid "Include Files" +msgstr "头文件" -#: menu.xrc:350 -msgid "Previo&us Bookmark" -msgstr "上一个书签(&u)" +#: Outline/outline_tab.cpp:195 +msgid "Open..." +msgstr "打开..." -#: menu.xrc:353 -msgid "Remove All &Currently-Active Bookmarks" -msgstr "移除所有当前活动的书签(&C)" +#: Outline/outline_tab.cpp:200 menu.xrc:791 +msgid "Goto Declaration" +msgstr "转到函数声明" -#: menu.xrc:356 -msgid "Remove &All Bookmarks" -msgstr "移除所有书签(&A)" +#: Outline/outline_tab.cpp:201 menu.xrc:794 +msgid "Goto Implementation" +msgstr "转到函数实现" -#: menu.xrc:364 -msgid "&Workspace" -msgstr "工作空间(&W)" +#: Outline/outline_tab.cpp:203 menu.xrc:811 +msgid "Find References..." +msgstr "查找引用..." -#: menu.xrc:367 -msgid "&New Workspace..." -msgstr "新建工作空间(&N)..." +#: Outline/outline_tab.cpp:205 +msgid "Rename Symbol..." +msgstr "重命名符号..." -#: menu.xrc:370 -msgid "&Open Workspace..." -msgstr "打开工作空间(&O)..." +#: Outline/outline.cpp:68 +msgid "Show Current the Layout of the current file" +msgstr "显示当前文件的当前布局" -#: menu.xrc:373 -msgid "&Close Workspace" -msgstr "关闭工作空间(&C)" +#: Outline/outline.cpp:86 +msgid "Outline Plugin" +msgstr "Outline 插件" -#: menu.xrc:376 -msgid "&Reload Workspace" -msgstr "重新加载工作空间(&R)" +#: Outline/outline.cpp:95 Outline/outline.cpp:101 Outline/outline.cpp:137 +msgid "Outline" +msgstr "大纲" -#: menu.xrc:381 menu.xrc:1016 -msgid "Workspace Settings..." -msgstr "工作空间设置..." +#: Outline/wxcrafter.cpp:30 +msgid "Search a symbol" +msgstr "搜索符号" -#: menu.xrc:384 menu.xrc:1012 -msgid "Workspace Editor Preferences..." -msgstr "工作空间编辑器偏好..." +#: Outline/wxcrafter.cpp:43 Outline/wxcrafter.cpp:49 Outline/wxcrafter.cpp:59 +#: codelitephp/php-plugin/php_ui.cpp:1619 +#: codelitephp/php-plugin/php_ui.cpp:1646 +msgid "Page" +msgstr "页面" -#: menu.xrc:389 -msgid "&Import MS Visual Studio solution file..." -msgstr "导入 MS Visual Studio 解决方案文件(&I)..." +#: CodeLite/refactorengine.cpp:348 +msgid "Updating cache..." +msgstr "更新缓存..." -#: menu.xrc:394 -msgid "New &Project" -msgstr "新建工程(&P)" +#: CodeLite/refactorengine.cpp:355 +msgid "Caching file: " +msgstr "缓存文件:" -#: menu.xrc:397 -msgid "&Add an existing project" -msgstr "添加现有项目(&A)" +#: CodeLite/refactorengine.cpp:392 +msgid "Stage 2/2: Parsing matches..." +msgstr "阶段 2/2:分析匹配..." -#: menu.xrc:400 -msgid "&Reconcile the current project" -msgstr "协调当前项目(&R)" +#: CodeLite/refactorengine.cpp:399 +msgid "Parsing expression " +msgstr "正在分析表达式" -#: menu.xrc:401 -msgid "Check project for missing and stale files" -msgstr "检查项目中丢失以及过期的文件" +#: CodeLite/refactorengine.cpp:399 +msgid " in file: " +msgstr " 在文件:" -#: menu.xrc:405 -msgid "&Open Active Project Settings..." -msgstr "打开活动项目设置(&O)..." +#: CodeLite/TerminalEmulatorUIBase.cpp:71 +msgid "Send command to the process" +msgstr "发送命令到进程" -#: menu.xrc:409 -msgid "Retag Workspace ( Full )" -msgstr "重建工作空间标签文件(全部)" +#: CodeLite/cl_sftp.cpp:120 +msgid "Can't open file: " +msgstr "无法打开文件" -#: menu.xrc:410 -msgid "Retag the workspace by dropping the old tags tables, and recreate them" -msgstr "重建工作空间标签文件,删除旧标签文件,并重新创建它们" +#: CodeLite/cl_sftp.cpp:128 +msgid "Can't write data to file: " +msgstr "无法写入数据到文件:" -#: menu.xrc:413 -msgid "Retag Workspace ( Quick )" -msgstr "重建工作空间标签文件(快速)" +#: CodeLite/cl_sftp.cpp:146 +msgid "Failed to list directory: " +msgstr "列出目录失败:" -#: menu.xrc:418 LiteEditor/batchbuildbasedlg.cpp:36 -msgid "&Build" -msgstr "构建(&B)" +#: CodeLite/cl_sftp.cpp:204 +msgid "Failed to open remote file: " +msgstr "打开远程文件失败:" -#: menu.xrc:421 -msgid "Configuration &Manager..." -msgstr "配置管理器(&M)" +#: CodeLite/cl_sftp.cpp:222 +msgid "Failed to read remote file: " +msgstr "读取远程文件失败:" -#: menu.xrc:426 -msgid "&Run" -msgstr "运行(&R)" +#: CodeLite/cl_sftp.cpp:239 +msgid "Failed to create directory: " +msgstr "创建目录失败:" -#: menu.xrc:429 cppchecker/cppcheckreportbasepage.cpp:45 -msgid "&Stop" -msgstr "停止(&S)" +#: CodeLite/cl_sftp.cpp:255 +msgid "Failed to rename path. " +msgstr "重命名路径失败。" -#: menu.xrc:434 -msgid "&Build Project" -msgstr "构建项目(&B)" +#: CodeLite/cl_sftp.cpp:270 +msgid "Failed to remove directory: " +msgstr "移除目录失败:" -#: menu.xrc:437 -msgid "&Compile Current File" -msgstr "编译当前文件(&C)" +#: CodeLite/cl_sftp.cpp:286 +msgid "Failed to unlink path: " +msgstr "分离路径失败:" -#: menu.xrc:440 -msgid "Cl&ean Project" -msgstr "清除项目(&e)" +#: CodeLite/cl_sftp.cpp:300 +msgid "Could not stat: " +msgstr "无法统计:" -#: menu.xrc:443 -msgid "Sto&p Build" -msgstr "停止构建(&p)" +#: CodeLite/TerminalEmulatorUIBase.h:46 LiteEditor/options_dlg2.cpp:125 +msgid "Terminal" +msgstr "终端" -#: menu.xrc:447 -msgid "Reb&uild Project" -msgstr "重建项目(&u)" +#: CodeLite/PHPLookupTable.cpp:670 +msgid "PHP: parsed " +msgstr "PHP:已解析 " -#: menu.xrc:450 -msgid "Build and Run Pro&ject" -msgstr "构建并运行项目(&J)" +#: CodeLite/clprogressdlgbase.cpp:44 +msgid "MyLabel" +msgstr "我的标签" -#: menu.xrc:454 menu.xrc:984 -msgid "Build Workspace" -msgstr "构建工作空间" +#: CodeLite/clCommandProcessor.cpp:30 +msgid "Executing: " +msgstr "正在执行:" -#: menu.xrc:457 menu.xrc:987 -msgid "Clean Workspace" -msgstr "清除工作空间" +#: CodeLite/clCommandProcessor.cpp:40 +#, c-format +msgid "Failed to execute command: %s" +msgstr "执行命令失败: %s" -#: menu.xrc:460 menu.xrc:990 -msgid "Rebuild Workspace" -msgstr "重建工作空间" +#: CodeLite/cl_ssh.cpp:160 +msgid "Host key for server changed: it is now:\n" +msgstr "现在:主机服务器密钥已更改:\n" -#: menu.xrc:464 -msgid "Batch Build..." -msgstr "批量构建" +#: CodeLite/cl_ssh.cpp:160 CodeLite/cl_ssh.cpp:168 CodeLite/cl_ssh.cpp:179 +msgid "Accept server authentication?" +msgstr "接受服务器身份验证?" -#: menu.xrc:468 -msgid "Ne&xt Build Error" -msgstr "下一个构建错误(&x)" +#: CodeLite/cl_ssh.cpp:166 +msgid "" +"The host key for this server was not found but another type of key exists.\n" +msgstr "没有发现该服务器主机密钥,但存在一个其他类型的密钥。\n" -#: menu.xrc:473 -msgid "&GDB" -msgstr "" +#: CodeLite/cl_ssh.cpp:167 +msgid "" +"An attacker might change the default server key to confuse your client into " +"thinking the key does not exist\n" +msgstr "入侵者可能改变默认服务器密钥来迷惑您的客户端认为密钥不存在\n" -#: menu.xrc:476 -msgid "&Start/Continue Debugger" -msgstr "开始/继续调试(&S)" +#: CodeLite/cl_ssh.cpp:173 +msgid "Could not find known host file.\n" +msgstr "无法发现已知的主机文件。\n" -#: menu.xrc:479 -msgid "&Restart Debugger" -msgstr "重启调试器(&R)" +#: CodeLite/cl_ssh.cpp:174 +msgid "" +"If you accept the host key here, the file will be automatically created.\n" +msgstr "如果您接受主机密钥,该文件将被自动创建。\n" -#: menu.xrc:482 -msgid "&Attach to process..." -msgstr "连接到进程(&A)..." +#: CodeLite/cl_ssh.cpp:178 +msgid "The server is unknown. Do you trust the host key?\n" +msgstr "服务器是未知的,您是否信任此主机密钥?\n" -#: menu.xrc:485 -msgid "Debug a core d&ump..." -msgstr "调试核心转储(&U)" +#: CodeLite/cl_ssh.cpp:178 +msgid "Public key hash: " +msgstr "公钥 hash:" -#: menu.xrc:488 -msgid "&Pause debugger" -msgstr "暂停调试器(&P)" +#: CodeLite/cl_ssh.cpp:221 +msgid "Authentication error: " +msgstr "身份验证错误:" -#: menu.xrc:491 -msgid "S&top debugger" -msgstr "停止调试器(&t)" +#: CodeLite/cl_ssh.cpp:278 +msgid "Public Key error: " +msgstr "公钥错误:" -#: menu.xrc:495 -msgid "Step &Into" -msgstr "单步跳入(&I)" +#: codelite_terminal/MainFrame.cpp:108 +msgid "by Eran Ifrah" +msgstr "by Eran Ifrah" -#: menu.xrc:498 -msgid "Ne&xt" -msgstr "单步跳过(&x)" +#: codelite_terminal/MainFrame.cpp:110 +msgid "A terminal emulator designed for codelite IDE" +msgstr "一个用于 CodeLite 的终端模拟器" -#: menu.xrc:501 LiteEditor/frame.cpp:1192 LiteEditor/frame.cpp:1281 -#: LiteEditor/frame.cpp:1355 LiteEditor/frame.cpp:1485 -msgid "Next Instruction" -msgstr "下一条指示" +#: codelite_terminal/MainFrame.cpp:450 LiteEditor/cl_editor.cpp:1198 +msgid "Save As" +msgstr "另存为" -#: menu.xrc:504 -msgid "Step &Out" -msgstr "单步跳出(&O)" +#: codelite_terminal/wxcrafter.h:69 codelite_terminal/terminal_options.cpp:6 +msgid "codelite-terminal" +msgstr "CodeLite 终端" -#: menu.xrc:508 -msgid "Show &Cursor" -msgstr "显示光标(&C)" +#: codelite_terminal/wxcrafter.cpp:57 +msgid "Clear view" +msgstr "清除视图" -#: menu.xrc:512 -msgid "Toggle &Breakpoint" -msgstr "切换断点(&B)" +#: codelite_terminal/wxcrafter.cpp:59 +msgid "Send inferior process signal" +msgstr "发送劣质进程信号" -#: menu.xrc:515 -msgid "Disab&le All Breakpoints" -msgstr "禁用全部断点(&L)" +#: codelite_terminal/wxcrafter.cpp:232 +msgid "Text Colour:" +msgstr "文本颜色:" -#: menu.xrc:518 -msgid "E&nable All Breakpoints" -msgstr "启用全部断点(&N)" +#: codelite_terminal/wxcrafter.cpp:240 +#: LiteEditor/syntaxhighlightbasedlg.cpp:255 +msgid "Background Colour:" +msgstr "背景色:" -#: menu.xrc:521 -msgid "&Delete All Breakpoints" -msgstr "删除全部断点(&D)" +#: codelite_terminal/wxcrafter.cpp:248 +msgid "Font:" +msgstr "字体:" -#: menu.xrc:525 -msgid "&Quick Debug..." -msgstr "快速调试(&Q)..." +#: Debugger/dbgcmd.cpp:411 +#, c-format +msgid "" +"Internal breakpoint was hit (id=%d), Applying user breakpoints and continuing" +msgstr "内部断点(id=%d)被触发,应用用户断点并继续" -#: menu.xrc:529 -msgid "Windows" -msgstr "窗口" +#: Debugger/dbgcmd.cpp:489 +msgid "Program exited normally." +msgstr "程序正常退出." -#: menu.xrc:532 LiteEditor/localstable.cpp:26 LiteEditor/debuggerpane.cpp:46 -msgid "Locals" -msgstr "局部变量" +#: Debugger/dbgcmd.cpp:539 +#, c-format +msgid "ERROR: failed to place breakpoint: \"%s\"" +msgstr "错误:设置断点失败: \"%s\"" -#: menu.xrc:536 LiteEditor/debuggerpane.cpp:47 LiteEditor/simpletable.cpp:98 -msgid "Watches" -msgstr "监视点" +#: Debugger/dbgcmd.cpp:554 +msgid "Found the breakpoint ID!" +msgstr "找到断点 ID!" -#: menu.xrc:544 LiteEditor/debuggerpane.cpp:50 -msgid "Threads" -msgstr "线程" +#: Debugger/dbgcmd.cpp:576 +#, c-format +msgid "Successfully set breakpoint %ld at: " +msgstr "成功设置断点 %ld 于:" -#: menu.xrc:548 LiteEditor/debuggerpane.cpp:48 -msgid "Call Stack" -msgstr "调用栈" +#: Debugger/dbgcmd.cpp:579 +#, c-format +msgid "Successfully set conditional breakpoint %ld at: " +msgstr "成功设置条件断点 %ld 于:" -#: menu.xrc:552 LiteEditor/breakpointslistctrl.h:48 -#: LiteEditor/debuggerpane.cpp:51 -msgid "Memory" -msgstr "内存" +#: Debugger/dbgcmd.cpp:582 +#, c-format +msgid "Successfully set temporary breakpoint %ld at: " +msgstr "成功设置临时断点 %ld 于:" -#: menu.xrc:556 LiteEditor/debuggerpane.cpp:49 LiteEditor/debuggerpane.cpp:109 -msgid "Breakpoints" -msgstr "断点" +#: Debugger/dbgcmd.cpp:587 +#, c-format +msgid "Successfully set watchpoint %ld watching: " +msgstr "成功设置监视点 %ld :" -#: menu.xrc:560 -msgid "ASCII Viewer" -msgstr "ASCII 视图" +#: Debugger/dbgcmd.cpp:590 +#, c-format +msgid "Successfully set read watchpoint %ld watching: " +msgstr "成功设置读取监视点 %ld :" -#: menu.xrc:564 -msgid "Disassembly" -msgstr "反汇编" +#: Debugger/dbgcmd.cpp:593 +#, c-format +msgid "Successfully set read/write watchpoint %ld watching: " +msgstr "成功设置读/写监视点 %ld :" -#: menu.xrc:571 -msgid "&Plugins" -msgstr "插件(&P)" +#: Debugger/dbgcmd.cpp:601 +msgid "address " +msgstr "地址" -#: menu.xrc:574 -msgid "&Manage Plugins..." -msgstr "管理插件(&M)..." +#: Debugger/dbgcmd.cpp:807 +msgid "Successfully connected to debugger server" +msgstr "成功连接到调试服务器" -#: menu.xrc:580 -msgid "Pe&rspective" -msgstr "透视图(&R)" +#: Debugger/dbgcmd.cpp:810 +msgid "Applying breakpoints..." +msgstr "正在应用断点..." -#: menu.xrc:584 -msgid "Save Current Layout As..." -msgstr "保存当前布局为..." +#: Debugger/dbgcmd.cpp:815 +msgid "Applying breakpoints... done" +msgstr "正在应用断点... 完成" -#: menu.xrc:587 -msgid "Manage Perspectives..." -msgstr "视角管理..." +#: Debugger/dbgcmd.cpp:967 +#, c-format +msgid "Breakpoint %d condition cleared" +msgstr "断点 %d 的条件已清除" -#: menu.xrc:591 -msgid "Restore Default Layout" -msgstr "恢复默认布局" +#: Debugger/dbgcmd.cpp:970 +#, c-format +msgid "Condition %s set for breakpoint %d" +msgstr "条件 %s 已设置,针对断点 %d" -#: menu.xrc:595 -msgid "Settin&gs" -msgstr "设置(&g)" +#: Debugger/debuggergdb.cpp:571 +msgid "Can't interrupt debuggee process: I don't know its PID!" +msgstr "无法中断被调试程序进程:不知道它的 PID!" -#: menu.xrc:598 -msgid "Global &Editor Preferences..." -msgstr "全局编辑器偏好(&E)" +#: Debugger/debuggergdb.cpp:710 +msgid "Failed to start debugger: permission denied" +msgstr "启动调试器失败:权限不够" -#: menu.xrc:601 -msgid "Syntax Highlight and &Fonts..." -msgstr "语法高亮显示和字体(&F)" +#: Tweaks/tweaks.cpp:54 Tweaks/tweaks.cpp:69 +msgid "Tweak codelite" +msgstr "调整 codelite" -#: menu.xrc:604 -msgid "Keyboard &shortcuts..." -msgstr "快捷键(&s)" +#: Tweaks/tweaks.cpp:108 +msgid "Tweaks Plugin" +msgstr "Tweaks 插件" -#: menu.xrc:607 -msgid "En&vironment Variables..." -msgstr "环境变量" +#: Tweaks/wxcrafter.h:74 +msgid "Tweaks Setting" +msgstr "Tweaks 设置" -#: menu.xrc:610 -msgid "&Build Settings..." -msgstr "构建设置(&B)..." +#: Tweaks/TweaksSettingsDlg.cpp:164 +msgid "Icon changes require a workspace reload" +msgstr "图标更改后需要重新载入工作区" -#: menu.xrc:613 -msgid "&GDB Settings..." -msgstr "GDB 设置(&G)..." +#: Tweaks/TweaksSettingsDlg.cpp:165 LiteEditor/filechecklistbase.cpp:123 +msgid "Remember my answer" +msgstr "记住我的回答" -#: menu.xrc:616 -msgid "&Tags Settings..." -msgstr "标签文件设置(&T)..." +#: Tweaks/wxcrafter.cpp:29 +msgid "Enable Tweaks" +msgstr "启用调整工具" -#: menu.xrc:624 CodeFormatter/codeformatterdlgbase.cpp:307 -msgid "&Help" -msgstr "帮助(&H)" +#: Tweaks/wxcrafter.cpp:40 +msgid "Editor Tabs" +msgstr "编辑器选项卡" -#: menu.xrc:627 -msgid "&About..." -msgstr "关于(&A)…" +#: Tweaks/wxcrafter.cpp:47 +msgid "Configure Editor Tab Colours" +msgstr "配置编辑选项卡颜色" -#: menu.xrc:631 -msgid "&Check for updates..." -msgstr "检查更新(&C)..." +#: Tweaks/wxcrafter.cpp:47 +msgid "Customize your editor tab colours globally or per project" +msgstr "针对全局或每个项目自定义您的编辑选项卡颜色" -#: menu.xrc:644 menu.xrc:664 -msgid "Close Other Tabs" -msgstr "关闭其它标签" +#: Tweaks/wxcrafter.cpp:61 +msgid "Global Tab Colours" +msgstr "全局标签颜色" -#: menu.xrc:668 LiteEditor/frame.cpp:1096 LiteEditor/frame.cpp:1223 -#: LiteEditor/frame.cpp:1299 LiteEditor/frame.cpp:1388 -#: CMakePlugin/CMakePluginUi.cpp:127 -msgid "Reload" -msgstr "重新加载" +#: Tweaks/wxcrafter.cpp:64 +msgid "Tab Label Background Colour" +msgstr "选项卡标签背景颜色" + +#: Tweaks/wxcrafter.cpp:68 +msgid "Tab Label Text Colour" +msgstr "选项卡标签文本颜色" -#: menu.xrc:675 LiteEditor/cl_editor.cpp:1148 -#: codelite_terminal/MainFrame.cpp:435 -msgid "Save As" -msgstr "另存为" +#: Tweaks/wxcrafter.cpp:72 +msgid "Tab Colours Per Project" +msgstr "标记每个项目的颜色" -#: menu.xrc:679 -msgid "Show In Workspace" -msgstr "显示在工作空间" +#: Tweaks/wxcrafter.cpp:79 +msgid "&Reset colours" +msgstr "重置配色(&R)" -#: menu.xrc:682 -msgid "Show In Explorer" -msgstr "显示在资源管理器" +#: Tweaks/wxcrafter.cpp:80 +msgid "Reset colours" +msgstr "重置配色" -#: menu.xrc:686 -msgid "Detach Editor" -msgstr "分离编辑器" +#: Tweaks/wxcrafter.cpp:85 +msgid "Images" +msgstr "图片" -#: menu.xrc:690 -msgid "Copy File Name to Clipboard" -msgstr "复制文件名到剪贴板" +#: Tweaks/wxcrafter.cpp:92 +msgid "Configure Project Images" +msgstr "配置项目图片" -#: menu.xrc:693 -msgid "Copy Full Path to Clipboard" -msgstr "复制完整路径到剪贴板" +#: Tweaks/wxcrafter.cpp:92 +msgid "Set a different image for a every project in the workspace" +msgstr "在工作区中为每个项目设置不同的图像" -#: menu.xrc:696 -msgid "Copy Path to Clipboard" -msgstr "复制路径到剪贴板" +#: Tweaks/wxcrafter.cpp:106 +msgid "Projects" +msgstr "项目" -#: menu.xrc:700 -msgid "Open Shell at File Path" -msgstr "在文件路径打开Shell" +#: SFTP/UI.h:139 +msgid "Manage Bookmarks" +msgstr "管理书签" + +#: SFTP/UI.h:158 +msgid "SFTP / SSH Settings" +msgstr "SFTP / SSH 设置" + +#: SFTP/SFTPTreeView.cpp:354 MemCheck/memcheckui.cpp:295 +#: LiteEditor/frame.cpp:1299 LiteEditor/frame.cpp:1515 +#: LiteEditor/frame.cpp:1652 LiteEditor/frame.cpp:1801 +#: codelitephp/php-plugin/php_workspace_view.cpp:191 +#: DatabaseExplorer/ErdPanel.cpp:164 +msgid "Open" +msgstr "打开" -#: menu.xrc:706 -msgid "Swap Header/Implementation file" -msgstr "交换头/源的文件" +#: SFTP/SFTPTreeView.cpp:358 +msgid "Create new directory..." +msgstr "创建新目录..." + +#: SFTP/SFTPTreeView.cpp:359 +msgid "Create new file..." +msgstr "创建新的文件..." + +#: SFTP/SFTPTreeView.cpp:379 +msgid "Show 'Type' column" +msgstr "显示“类型”列" + +#: SFTP/SFTPTreeView.cpp:380 +msgid "Show 'Size' column" +msgstr "显示“大小”列" -#: menu.xrc:710 Outline/outline_tab.cpp:137 -msgid "Goto Declaration" -msgstr "转到函数声明" +#: SFTP/SFTPTreeView.cpp:401 +msgid "Are you sure you want to delete the selected items?" +msgstr "您确定要删除已选择项吗?" -#: menu.xrc:713 Outline/outline_tab.cpp:138 -msgid "Goto Implementation" -msgstr "转到函数实现" +#: SFTP/SFTPTreeView.cpp:438 +msgid "Enter the new directory name:" +msgstr "输入新的目录名称:" -#: menu.xrc:717 -msgid "Search selected text in workspace" -msgstr "在工作空间中搜索已选择的文本" +#: SFTP/SFTPTreeView.cpp:438 +msgid "New Directory" +msgstr "新建目录" -#: menu.xrc:723 -msgid "Goto Beginning of Current Function" -msgstr "转到当前函数开始" +#: SFTP/SFTPTreeView.cpp:463 +msgid "Enter the new file name:" +msgstr "请输入新的文件名:" + +#: SFTP/SFTPTreeView.cpp:463 LiteEditor/frame.cpp:1297 +#: LiteEditor/frame.cpp:1513 LiteEditor/frame.cpp:1650 +#: LiteEditor/frame.cpp:1799 codelitephp/php-plugin/php_ui.h:154 +#: codelitephp/php-plugin/php_workspace_view.cpp:512 +msgid "New File" +msgstr "新建文件" -#: menu.xrc:726 -msgid "Goto Beginning of Next Function" -msgstr "转到下一个函数的开始" +#: SFTP/SFTPTreeView.cpp:486 LiteEditor/manage_perspective_dlg.cpp:66 +msgid "Enter new name:" +msgstr "输入新名称:" -#: menu.xrc:730 Outline/outline_tab.cpp:140 -msgid "Find References..." -msgstr "查找引用..." +#: SFTP/SFTPTreeView.cpp:598 +msgid "Manage bookmarks..." +msgstr "管理书签..." + +#: SFTP/SFTPTreeView.cpp:676 SFTP/UI.cpp:145 +msgid "Disconnected. Click to connect" +msgstr "已断开连接。单击此处重新连接" + +#: SFTP/SFTPTreeView.cpp:681 +msgid "Connected. Click to disconnect" +msgstr "已连接。单击此处断开连接" -#: menu.xrc:735 -msgid "Code Generation / Refactoring" -msgstr "代码生成/重构" +#: SFTP/SFTPTreeView.cpp:704 SFTP/sftp.cpp:123 SFTP/sftp.cpp:126 +#: SFTP/sftp.cpp:161 SFTP/sftp.cpp:326 SFTP/sftp.cpp:386 +msgid "SFTP" +msgstr "SFTP" -#: menu.xrc:738 -msgid "Insert Doxygen Comment" -msgstr "插入 Doxygen 注释" +#: SFTP/SFTPTreeView.cpp:706 SFTP/SFTPTreeView.cpp:709 +msgid "Connecting to: " +msgstr "连接到:" -#: menu.xrc:741 -msgid "Generate Setters/Getters..." -msgstr "生成 Setters/Getters..." +#: SFTP/SFTPTreeView.cpp:706 +msgid "" +"\n" +"(this may take a few seconds)" +msgstr "" +"\n" +"(这可能需要几秒钟)" -#: menu.xrc:745 -msgid "Comment Selection" -msgstr "注释所选" +#: SFTP/SFTPTreeView.cpp:727 +msgid "Connected!" +msgstr "已连接!" -#: menu.xrc:748 -msgid "Toggle Line Comment" -msgstr "切换行注释" +#: SFTP/SFTPTreeView.cpp:728 +msgid "Authenticating server..." +msgstr "服务器身份验证..." -#: menu.xrc:752 -msgid "Move Function Implementation to..." -msgstr "移动函数实现到..." +#: SFTP/SFTPTreeView.cpp:734 +msgid "Accepting server authentication server..." +msgstr "接受服务器的身份验证..." -#: menu.xrc:755 -msgid "Add Function Implementation..." -msgstr "添加函数实现..." +#: SFTP/SFTPTreeView.cpp:740 +msgid "Server authenticated" +msgstr "通过服务器的身份验证" -#: menu.xrc:758 -msgid "Implement all Un-implemented Functions..." -msgstr "实现全部未实现函数..." +#: SFTP/SFTPTreeView.cpp:745 +msgid "Logging..." +msgstr "正在登录..." -#: menu.xrc:761 -msgid "Synchronize Signatures..." -msgstr "同步签名..." +#: SFTP/SFTPTreeView.cpp:751 +msgid "Done!" +msgstr "完成!" -#: menu.xrc:766 -msgid "Implement inherited virtual Functions..." -msgstr "实现继承的虚函数" +#: SFTP/SFTPTreeView.cpp:754 +msgid "Fetching directory list..." +msgstr "正在获取目录列表..." + +#: SFTP/SFTPTreeView.cpp:758 CodeFormatter/codeformatter.cpp:251 +#: cscope/cscopedbbuilderthread.cpp:62 LiteEditor/manager.cpp:3501 +#: LiteEditor/frame.cpp:5362 cppchecker/cppcheckreportpage.cpp:201 +msgid "Done" +msgstr "完成" -#: menu.xrc:769 -msgid "Implement inherited pure virtual Functions..." -msgstr "实现继承的纯虚函数..." +#: SFTP/UI.cpp:33 +msgid "Time" +msgstr "时间" -#: menu.xrc:773 Outline/outline_tab.cpp:142 -msgid "Rename Symbol..." -msgstr "重命名符号..." +#: SFTP/UI.cpp:34 +msgid "Status" +msgstr "状态" -#: menu.xrc:776 -msgid "Rename Local Variable..." -msgstr "重命名局部变量..." +#: SFTP/UI.cpp:36 LiteEditor/new_build_tab.cpp:295 +msgid "Message" +msgstr "消息" -#: menu.xrc:802 menu.xrc:845 -msgid "Select All" -msgstr "全选" +#: SFTP/UI.cpp:143 +msgid "Open account manager..." +msgstr "打开账户管理..." -#: menu.xrc:807 LiteEditor/frame.cpp:1112 LiteEditor/frame.cpp:1239 -#: LiteEditor/frame.cpp:1315 LiteEditor/frame.cpp:1404 -#: LiteEditor/wxcrafter.cpp:801 -msgid "Toggle Bookmark" -msgstr "切换书签" +#: SFTP/UI.cpp:147 LiteEditor/cl_editor.cpp:3095 +msgid "Add Bookmark" +msgstr "添加书签" -#: menu.xrc:811 -msgid "Toggle Breakpoint" -msgstr "切换断点" +#: SFTP/UI.cpp:147 +msgid "Select a folder from the tree view and add it as a bookmark" +msgstr "从树视图中选择一个文件夹并将其添加为书签" + +#: SFTP/UI.cpp:153 +msgid "Open Terminal" +msgstr "打开终端" + +#: SFTP/UI.cpp:168 +msgid "Go to:" +msgstr "转到:" + +#: SFTP/UI.cpp:173 +msgid "Type a path and hit ENTER" +msgstr "键入一个路径,然后按下 Enter 键" + +#: SFTP/sftp.cpp:81 SFTP/sftp.cpp:91 +msgid "SFTP plugin for codelite IDE" +msgstr "SFTP 插件" -#: menu.xrc:814 -msgid "Delete All Breakpoints" -msgstr "删除全部断点" +#: SFTP/sftp.cpp:154 SFTP/sftp.cpp:155 +msgid "Open SSH Account Manager" +msgstr "打开 SSH 账户管理" -#: menu.xrc:819 -msgid "Re-Tag File" -msgstr "重建文件标签文件" +#: SFTP/sftp.cpp:172 +msgid "&Setup..." +msgstr "设置(&S)..." -#: menu.xrc:854 -msgid "Create new workspace..." -msgstr "创建新工作空间..." +#: SFTP/sftp.cpp:176 +msgid "&Disable" +msgstr "禁用(&D)" -#: menu.xrc:857 -msgid "Switch to workspace..." -msgstr "切换到工作空间..." +#: SFTP/sftp.cpp:181 +msgid "Workspace Mirroring" +msgstr "正在镜像工作区" -#: menu.xrc:863 menu.xrc:890 -msgid "Project" -msgstr "项目" +#: SFTP/sftp.cpp:256 +msgid "Select the remote workspace" +msgstr "选择远程工作区" -#: menu.xrc:866 -msgid "Add a New File..." -msgstr "添加新文件..." +#: SFTP/sftp.cpp:324 SFTP/sftp.cpp:384 +msgid "Failed to synchronize file '" +msgstr "未能同步文件“" -#: menu.xrc:869 -msgid "Add an Existing File..." -msgstr "添加现有文件..." +#: SFTP/sftp.cpp:324 SFTP/sftp.cpp:384 +msgid "with remote server\n" +msgstr "与远程服务器\n" -#: menu.xrc:876 menu.xrc:956 -msgid "Sort Item" -msgstr "排序项目" +#: SFTP/sftp.cpp:325 SFTP/sftp.cpp:385 +msgid "Could not locate account: " +msgstr "无法定位账户:" -#: menu.xrc:880 -msgid "Remove Virtual Folder" -msgstr "删除虚拟文件夹" +#: SFTP/sftp_worker_thread.cpp:87 +msgid "Uploading file: " +msgstr "正在上传文件:" -#: menu.xrc:884 -msgid "Rename ..." -msgstr "重命名..." +#: SFTP/sftp_worker_thread.cpp:94 +msgid "Downloading file: " +msgstr "正在下载文件:" -#: menu.xrc:894 -msgid "Import Files From Directory" -msgstr "从目录导入文件" +#: SFTP/sftp_worker_thread.cpp:143 +msgid "Connecting to " +msgstr "连接到" -#: menu.xrc:897 LiteEditor/reconcileprojectbase.h:98 -msgid "Reconcile Project" -msgstr "协调项目" +#: abbreviation/abbreviation.cpp:59 abbreviation/abbreviation.cpp:71 +msgid "Abbreviation plugin" +msgstr "缩略语插件" -#: menu.xrc:906 menu.xrc:923 -msgid "Rebuild" -msgstr "重建" +#: abbreviation/abbreviation.cpp:93 +msgid "Insert Expansion" +msgstr "插入阐述" -#: menu.xrc:909 menu.xrc:919 -msgid "Clean" -msgstr "清除" +#: abbreviation/abbreviation.cpp:225 +msgid "Plugins::Abbreviations::Show abbrevations completion box" +msgstr "插件::缩略语表::显示缩写补全框" -#: menu.xrc:913 -msgid "Project Only" -msgstr "仅项目" +#: abbreviation/abbreviationssettingsdlg.cpp:78 +msgid "Abbreviation Name:" +msgstr "缩写名称:" -#: menu.xrc:929 -msgid "Stop Build" -msgstr "停止构建" +#: abbreviation/abbreviationssettingsdlg.cpp:78 +msgid "New abbreviation..." +msgstr "新建缩写..." -#: menu.xrc:935 -msgid "Export Makefile" -msgstr "导出 Makefile" +#: abbreviation/abbreviationssettingsdlg.cpp:81 +msgid "An abbreviation with this name already exists!" +msgstr "同名缩写已存在!" -#: menu.xrc:939 -msgid "Set As Active" -msgstr "设置为活动" +#: abbreviation/abbreviationssettingsdlg.cpp:103 +#, c-format +msgid "Are you sure you want to delete '%s'" +msgstr "您确定要删除“%s”" -#: menu.xrc:944 -msgid "Build Order..." -msgstr "构建顺序..." +#: abbreviation/abbreviationssettingsdlg.cpp:252 +msgid "" +"This folder already contains a file named 'abbreviations.conf' - would you " +"like to overrite it?" +msgstr "该文件夹已包含一个名为“abbreviations.conf”的文件 - 您想要覆盖它吗?" -#: menu.xrc:950 -msgid "Re-Tag Project" -msgstr "重建项目标签文件" +#: abbreviation/abbreviationssettingsdlg.cpp:256 +msgid "Abbreviations were exported to '" +msgstr "缩略语表导出到 ”" -#: menu.xrc:964 -msgid "Remove Project" -msgstr "移除项目" +#: abbreviation/abbreviationssettingsdlg.cpp:256 +#: LiteEditor/setters_getters_dlg.cpp:454 LiteEditor/FileExplorerTab.cpp:252 +msgid "'" +msgstr "“" -#: menu.xrc:969 -msgid "Save As Template..." -msgstr "另存为模板..." +#: abbreviation/abbreviationssettingsdlg.cpp:269 +msgid "The file does not seem to contain a valid abbreviations entries" +msgstr "文件似乎并没有包含一个有效的缩写条目" -#: menu.xrc:973 -msgid "Project Editor Preferences..." -msgstr "项目编辑器偏好..." +#: abbreviation/abbreviationssettingsdlg.cpp:283 +msgid "Abbreviations imported successfully!" +msgstr "成功导入缩略语表!" -#: menu.xrc:994 -msgid "Create New Project" -msgstr "创建新项目" +#: abbreviation/abbreviationssettingsbase.cpp:31 +msgid "" +"You can use the '|' (pipe) character to set the caret position\n" +"You may also use any of the known macros to CodeLite (click the 'Help' " +"button)" +msgstr "" +"您可以使用“|”字符设置插入符号的位置\n" +"您也可以使用任意已知的 Codelite 宏命令(点击“帮助”按钮)" -#: menu.xrc:997 -msgid "Add an Existing Project" -msgstr "添加现有项目" +#: abbreviation/abbreviationssettingsbase.cpp:42 +msgid "Create a new abbreviation" +msgstr "新建缩写..." -#: menu.xrc:1001 -msgid "Retag Workspace" -msgstr "重新标记工作空间" +#: abbreviation/abbreviationssettingsbase.cpp:44 +msgid "Delete the currently selected abbreviation" +msgstr "删除当前已选择缩写" -#: menu.xrc:1005 -msgid "Close Workspace" -msgstr "关闭工作空间" +#: abbreviation/abbreviationssettingsbase.cpp:48 +msgid "Import abbreviations from the file system..." +msgstr "从文件系统中导入缩略语表..." -#: menu.xrc:1008 -msgid "Reload Workspace" -msgstr "重新加载工作空间" +#: abbreviation/abbreviationssettingsbase.cpp:50 +#: LiteEditor/syntaxhighlightbasedlg.cpp:46 +msgid "Export" +msgstr "导出" -#: menu.xrc:1023 menu.xrc:1030 -msgid "Detach" -msgstr "分离" +#: abbreviation/abbreviationssettingsbase.cpp:50 +msgid "Export abbreviations to the file system..." +msgstr "导出缩略表到文件系统..." -#: menu.xrc:1036 -msgid "Open in CodeLite" -msgstr "用CodeLite打开" +#: abbreviation/abbreviationssettingsbase.cpp:138 +msgid "Immediate Insert" +msgstr "直接插入" -#: menu.xrc:1039 menu.xrc:1153 -msgid "Open With &Default Application" -msgstr "用默认程序打开(&D)" +#: abbreviation/abbreviationssettingsbase.cpp:152 +#: abbreviation/abbreviationssettingsbase.cpp:154 +msgid "Save changes" +msgstr "保存变更" + +#: abbreviation/abbreviationssettingsbase.cpp:161 +#: abbreviation/abbreviationssettingsbase.cpp:162 +msgid "Show available macros" +msgstr "显示可用的宏" -#: menu.xrc:1042 -msgid "Compile" -msgstr "编译" +#: abbreviation/abbreviationssettingsbase.h:82 +msgid "Abbreviations Settings..." +msgstr "缩略语表设置..." -#: menu.xrc:1045 -msgid "Preprocess" -msgstr "预处理" +#: MemCheck/memcheck.cpp:44 +msgid "" +"MemCheck plugin detects memory leaks. Uses Valgrind (memcheck tool) as " +"backend." +msgstr "MemCheck 插件检测内存泄漏。后端使用 Valgrind (memcheck 工具)。" + +#: MemCheck/memcheck.cpp:62 +msgid "Detects memory management problems. Uses Valgrind - memcheck skin." +msgstr "检测到内存管理问题。使用 Valgrind - memcheck 皮肤。" + +#: MemCheck/memcheck.cpp:171 MemCheck/memcheck.cpp:173 +#: MemCheck/memcheck.cpp:189 MemCheck/memcheck.cpp:191 +msgid "Run MemCheck" +msgstr "运行内存检测" + +#: MemCheck/memcheck.cpp:176 MemCheck/memcheck.cpp:178 +#: MemCheck/memcheck.cpp:194 MemCheck/memcheck.cpp:196 +msgid "Stop Check" +msgstr "停止检查" + +#: MemCheck/memcheck.cpp:182 MemCheck/memcheck.cpp:184 +#: MemCheck/memcheck.cpp:200 MemCheck/memcheck.cpp:202 +#: MemCheck/memcheckui.cpp:176 +msgid "Load MemCheck log from file." +msgstr "从文件中加载 MemCheck 日志。" + +#: MemCheck/memcheck.cpp:500 +msgid "Launching MemCheck...\n" +msgstr "正在启动内存检测...\n" + +#: MemCheck/memcheck.cpp:502 +msgid "Working directory is set to: " +msgstr "工作目录设置为:" -#: menu.xrc:1049 -msgid "Exclude from Build" -msgstr "从构建中排除" +#: MemCheck/memcheck.cpp:568 +msgid "" +"\n" +"-- MemCheck process completed\n" +msgstr "" +"\n" +"-- 内存检测进程已完成\n" -#: menu.xrc:1058 LiteEditor/reconcileprojectbase.cpp:295 -#: LiteEditor/reconcileprojectbase.cpp:327 -#: LiteEditor/reconcileprojectbase.cpp:358 -#: cppchecker/cppchecksettingsdlgbase.cpp:84 -#: cppchecker/cppchecksettingsdlgbase.cpp:125 -#: SnipWiz/templateclassbasedlg.cpp:168 SnipWiz/editsnippetsbasedlg.cpp:79 -msgid "Remove" -msgstr "移除" +#: MemCheck/memcheckoutputview.cpp:28 MemCheck/memcheckui.cpp:222 +#: MemCheck/memcheckui.cpp:358 +msgid "Label" +msgstr "标签" -#: menu.xrc:1064 -msgid "Delete Compiler" -msgstr "删除编译器" +#: MemCheck/memcheckoutputview.cpp:396 MemCheck/memcheckui.cpp:220 +msgid "Current" +msgstr "当前" + +#: MemCheck/memcheckoutputview.cpp:486 MemCheck/memcheckoutputview.cpp:507 +#: MemCheck/memcheckoutputview.cpp:674 MemCheck/memcheckoutputview.cpp:766 +#: MemCheck/memcheckui.cpp:221 cppchecker/cppchecksettingsdlgbase.cpp:148 +msgid "Suppress" +msgstr "抑制" -#: menu.xrc:1073 -msgid "Copy Value Only" -msgstr "仅复制值" +#: MemCheck/memcheckui.cpp:174 +msgid "Run check" +msgstr "运行检查" + +#: MemCheck/memcheckui.cpp:178 +msgid "Stop Process" +msgstr "停止进程" + +#: MemCheck/memcheckui.cpp:182 +msgid "Expand all" +msgstr "全部展开" + +#: MemCheck/memcheckui.cpp:184 +msgid "Jump to next error" +msgstr "跳转到下一个错误" + +#: MemCheck/memcheckui.cpp:186 +msgid "Jump to previous error" +msgstr "跳转到上一个错误" + +#: MemCheck/memcheckui.cpp:194 +msgid "Open plain output in editor window." +msgstr "在编辑器中打开构建输出" -#: menu.xrc:1084 -msgid "Delete All" -msgstr "删除全部" +#: MemCheck/memcheckui.cpp:207 +msgid "Errors" +msgstr "错误" -#: menu.xrc:1088 -msgid "Display Format" -msgstr "显示格式" +#: MemCheck/memcheckui.cpp:224 cscope/CscopeTabBase.cpp:46 +#: LiteEditor/threadlistpanel.cpp:54 +#: LiteEditor/editoroptionsgeneralrightmarginpanelbase.cpp:49 +#: LiteEditor/symbols_dialog.cpp:45 LiteEditor/breakpointslistctrl.h:45 +#: LiteEditor/listctrlpanelbase.cpp:61 LLDBDebugger/UI.cpp:36 +#: LLDBDebugger/UI.cpp:161 LLDBDebugger/UI.cpp:560 menu.xrc:110 +#: codelitephp/php-plugin/php_ui.cpp:1192 +#: codelitephp/php-plugin/php_ui.cpp:1218 UnitTestCPP/unittestspage.cpp:39 +msgid "Line" +msgstr "行" -#: menu.xrc:1090 -msgid "Natural" -msgstr "自然的" +#: MemCheck/memcheckui.cpp:225 +msgid "Object" +msgstr "对象" + +#: MemCheck/memcheckui.cpp:231 +msgid "First result page." +msgstr "第一个结果页面。" + +#: MemCheck/memcheckui.cpp:246 +msgid "of" +msgstr "共" + +#: MemCheck/memcheckui.cpp:250 +msgid "0" +msgstr "总计:0 已过滤:0 已选择:0" + +#: MemCheck/memcheckui.cpp:265 +msgid ".supp" +msgstr ".supp" + +#: MemCheck/memcheckui.cpp:285 +msgid ".supp:" +msgstr ".supp:" + +#: MemCheck/memcheckui.cpp:291 +msgid "Choose suppression file to use." +msgstr "选择要使用的抑制文件。" + +#: MemCheck/memcheckui.cpp:310 +msgid "Clear filter" +msgstr "清除过滤规则" + +#: MemCheck/memcheckui.cpp:318 +msgid "Invert" +msgstr "反转" -#: menu.xrc:1093 -msgid "Hexadecimal" -msgstr "十六进制" +#: MemCheck/memcheckui.cpp:323 CodeFormatter/codeformatterdlgbase.cpp:136 +msgid "Case" +msgstr "匹配大小写" -#: menu.xrc:1096 -msgid "Binary" -msgstr "二进制" +#: MemCheck/memcheckui.cpp:328 +msgid "Word" +msgstr "匹配整字" -#: menu.xrc:1099 -msgid "Octal" -msgstr "八进制" +#: MemCheck/memcheckui.cpp:333 +msgid "RegExp" +msgstr "正则表达式" -#: menu.xrc:1102 -msgid "Decimal" -msgstr "十进制" +#: MemCheck/memcheckui.cpp:340 +msgid "Total: 0 Filtered: 0 Selected: 0" +msgstr "总计:0 已过滤:0 已选择:0" + +#: MemCheck/memcheckui.cpp:363 +msgid "Suppress all" +msgstr "抑制全部" + +#: MemCheck/memcheckui.cpp:367 +msgid "Suppress selected" +msgstr "抑制所选" + +#: MemCheck/memcheckui.cpp:517 +msgid "Engine:" +msgstr "引擎:" + +#: MemCheck/memcheckui.cpp:518 +msgid "At this time (1Q 2014) only valgrind supported - development state." +msgstr "此时(2014年1季度)只有 valgrind 在支持-开发状态。" + +#: MemCheck/memcheckui.cpp:529 +msgid "Errors on page:" +msgstr "页面上的错误:" + +#: MemCheck/memcheckui.cpp:537 +msgid "Show locations only from my workspace." +msgstr "只从我的工作区中显示位置。" + +#: MemCheck/memcheckui.cpp:542 +msgid "Remove duplicate records." +msgstr "删除重复的记录。" + +#: MemCheck/memcheckui.cpp:547 +msgid "Remove suppressed errors." +msgstr "消除抑制错误。" + +#: MemCheck/memcheckui.cpp:556 +msgid "Remove errors only if suppression rule was added without any change." +msgstr "只有抑制规则未作任何更改时删除错误。" + +#: MemCheck/memcheckui.cpp:565 +msgid "Valgrind (memcheck)" +msgstr "Valgrind (内存检测)" -#: menu.xrc:1118 -msgid "Search..." -msgstr "搜索..." +#: MemCheck/memcheckui.cpp:568 +msgid "Command Line" +msgstr "命令行" -#: menu.xrc:1123 -msgid "Tags" -msgstr "标签" +#: MemCheck/memcheckui.cpp:580 +msgid "Valgrind executable:" +msgstr "Valgrind 可执行文件:" -#: menu.xrc:1125 -msgid "Global Parser Paths" -msgstr "全局分析器路径" +#: MemCheck/memcheckui.cpp:585 +msgid "Select valgrind executable" +msgstr "选择 valgrind 可执行文件" -#: menu.xrc:1127 menu.xrc:1136 -msgid "Add to include paths" -msgstr "添加到包括路径" +#: MemCheck/memcheckui.cpp:589 +msgid "Command line options" +msgstr "命令行选项" -#: menu.xrc:1130 menu.xrc:1139 -msgid "Add to exclude paths" -msgstr "添加到排除路径" +#: MemCheck/memcheckui.cpp:600 +msgid "Mandatory:" +msgstr "强制性:" -#: menu.xrc:1134 -msgid "Workspace Parser Paths" -msgstr "工作空间标签分析器路径" +#: MemCheck/memcheckui.cpp:601 MemCheck/memcheckui.cpp:606 +msgid "" +"Please do not use these options again and do not change their values!\n" +"Plugin won't work." +msgstr "" +"请不要再使用这些选项并且不要改变它们的值! \n" +"插件将不会工作。" -#: menu.xrc:1146 -msgid "&Open" -msgstr "打开(&O)" +#: MemCheck/memcheckui.cpp:616 +msgid "Regular:" +msgstr "规律:" -#: menu.xrc:1149 -msgid "Open in &editor" -msgstr "在编辑器中打开" +#: MemCheck/memcheckui.cpp:628 +msgid "Reload defaults" +msgstr "重新加载默认值" -#: menu.xrc:1157 -msgid "Open Shell here" -msgstr "在这里打开 Shell" +#: MemCheck/memcheckui.cpp:632 +msgid "Temporary output file" +msgstr "临时输出文件" -#: SFTP/UI.cpp:33 -msgid "Time" -msgstr "时间" +#: MemCheck/memcheckui.cpp:636 +msgid "Use log file in workspace private folder." +msgstr "使用工作区私有文件夹中的日志文件。" -#: SFTP/UI.cpp:34 -msgid "Status" -msgstr "状态" +#: MemCheck/memcheckui.cpp:638 MemCheck/memcheckui.cpp:643 +msgid "" +"It is used intenaly by this plugin. Valgrind outputs to this file and " +"afterwards the plugin processes this file and shows result." +msgstr "" +"它是在这个插件内部使用的。Valgrind 输出到此文件之后插件将会处理文件并显示结" +"果。" -#: SFTP/UI.cpp:35 -msgid "Account" -msgstr "账户" +#: MemCheck/memcheckui.cpp:648 +msgid "Supression" +msgstr "抑制" -#: SFTP/UI.cpp:36 LiteEditor/new_build_tab.cpp:272 -msgid "Message" -msgstr "消息" +#: MemCheck/memcheckui.cpp:653 +msgid "Suppression files" +msgstr "抑制文件" + +#: MemCheck/memcheckui.cpp:657 +msgid "Use workspace specific supp file as default." +msgstr "使用工作区指定 supp 文件为默认值。" + +#: MemCheck/memcheckui.cpp:659 +msgid "" +"This file is located in workspace private folder.\n" +"If you don't like this option, you have to add at leas one file to list " +"below." +msgstr "" +"此文件位于工作区私有文件夹中。\n" +"如果您不喜欢这个选项,您至少需要把一个文件添加到下面的列表中。" + +#: MemCheck/memcheckui.h:265 +msgid "MemCheck Settings" +msgstr "MemCheck 设置" + +#: CodeFormatter/codeformatter.cpp:93 +msgid "Source Code Formatter (Supports C/C++/Obj-C/JavaScript/PHP files)" +msgstr "源代码格式化程序(支持 C/C++/Obj-C/JavaScript/PHP 文件)" + +#: CodeFormatter/codeformatter.cpp:103 CodeFormatter/codeformatter.cpp:224 +#: CodeFormatter/codeformatter.cpp:428 CodeFormatter/codeformatter.cpp:709 +#: CodeFormatter/codeformatter.cpp:737 CodeFormatter/codeformatter.cpp:782 +msgid "Source Code Formatter" +msgstr "源文件格式化器" -#: SFTP/UI.cpp:124 -msgid "Open account manager..." -msgstr "打开账户管理..." +#: CodeFormatter/codeformatter.cpp:165 CodeFormatter/codeformatter.cpp:175 +msgid "Format Source" +msgstr "格式源文件" -#: SFTP/UI.cpp:126 -msgid "Connect" -msgstr "连接..." +#: CodeFormatter/codeformatter.cpp:167 CodeFormatter/codeformatter.cpp:177 +msgid "Format Source Code" +msgstr "格式源文件" -#: SFTP/UI.cpp:126 -msgid "Establish connection to the selected account" -msgstr "建立连接到选定的帐户" - -#: SFTP/UI.cpp:128 -msgid "Disconnect" -msgstr "断开连接" - -#: SFTP/UI.cpp:128 -msgid "Close the current connection" -msgstr "关闭当前连接" +#: CodeFormatter/codeformatter.cpp:169 CodeFormatter/codeformatter.cpp:179 +msgid "Format Options" +msgstr "格式选项" -#: SFTP/SFTPStatusPage.cpp:61 git/gitui.cpp:1008 -msgid "Clear Log" -msgstr "清除日志" +#: CodeFormatter/codeformatter.cpp:171 CodeFormatter/codeformatter.cpp:181 +msgid "Source Code Formatter Options..." +msgstr "源文件格式化器选项..." -#: SFTP/sftp.cpp:110 -msgid "Open SSH Account Manager" -msgstr "打开 SSH 账户管理" +#: CodeFormatter/codeformatter.cpp:219 +msgid "Format Current Source" +msgstr "格式化当前源文件格式" -#: SFTP/sftp.cpp:112 -msgid "SFTP" -msgstr "SFTP" +#: CodeFormatter/codeformatter.cpp:222 +msgid "Options..." +msgstr "选项..." -#: SFTP/sftp.cpp:122 -msgid "&Setup..." -msgstr "设置(&S)..." +#: CodeFormatter/codeformatter.cpp:249 +#: CodeFormatter/codeformatterdlgbase.cpp:179 +msgid "Formatting" +msgstr "格式化" -#: SFTP/sftp.cpp:125 -msgid "&Disable" -msgstr "禁用(&D)" +#: CodeFormatter/codeformatter.cpp:312 +msgid "Source code formatting error!" +msgstr "源文件格式化错误!" -#: SFTP/sftp.cpp:130 -msgid "Workspace Mirroring" -msgstr "工作空间镜像" +#: CodeFormatter/codeformatter.cpp:703 +msgid "Nothing to be done here" +msgstr "这儿什么也不需要做" -#: SFTP/sftp.cpp:190 -msgid "Select the remote workspace" -msgstr "选择远程工作区" +#: CodeFormatter/codeformatter.cpp:708 +msgid "You are about to beautify " +msgstr "您是要美化" -#: SFTP/sftp.cpp:261 SFTP/sftp.cpp:328 -msgid "Failed to synchronize file '" -msgstr "同步文件失败 '" +#: CodeFormatter/codeformatter.cpp:708 +msgid "" +" files\n" +"Continue?" +msgstr "" +" 文件\n" +"是否继续?" -#: SFTP/sftp.cpp:262 SFTP/sftp.cpp:329 -msgid "with remote server\n" -msgstr "与远程服务器\n" +#: CodeFormatter/codeformatter.cpp:737 CodeFormatter/codeformatter.cpp:782 +msgid "Formatting files..." +msgstr "格式化文件..." -#: SFTP/sftp.cpp:263 SFTP/sftp.cpp:330 -msgid "Could not locate account: " -msgstr "无法定位账户:" +#: CodeFormatter/astyle_main.cpp:379 +msgid "" +"\n" +"Artistic Style has terminated" +msgstr "" +"\n" +"艺术风格已终止" -#: SFTP/SFTPTreeView.cpp:75 -msgid "Connecting to: " -msgstr "连接到:" +#: CodeFormatter/astyle_main.cpp:456 +msgid "Cannot process the input stream" +msgstr "无法处理输入数据流" -#: SFTP/SFTPTreeView.cpp:86 -msgid "Done!" -msgstr "完成" +#: CodeFormatter/astyle_main.cpp:537 +#, c-format +msgid "Formatted %s\n" +msgstr "格式化 %s\n" -#: SFTP/SFTPTreeView.cpp:293 -msgid "Create directory" -msgstr "创建目录" +#: CodeFormatter/astyle_main.cpp:540 +#, c-format +msgid "Unchanged %s\n" +msgstr "%s 未变更\n" -#: SFTP/SFTPTreeView.cpp:302 SFTP/SFTPTreeView.cpp:374 -#: LiteEditor/edit_configuration.cpp:143 LiteEditor/edit_configuration.cpp:165 -#: LiteEditor/edit_workspace_conf_dlg.cpp:137 Subversion2/subversion2.cpp:241 -msgid "Rename" -msgstr "重命名" +#: CodeFormatter/astyle_main.cpp:639 +msgid "Cannot process UTF-32 encoding" +msgstr "无法处理 UTF-32 字符集" -#: SFTP/SFTPTreeView.cpp:314 -msgid "Are you sure you want to delete the selected items?" -msgstr "您确定要删除已选择项吗?" +#: CodeFormatter/astyle_main.cpp:765 CodeFormatter/astyle_main.cpp:890 +msgid "Cannot open directory" +msgstr "无法打开文件夹" -#: SFTP/SFTPTreeView.cpp:352 -msgid "Enter the new directory name:" -msgstr "输入新的目录名称:" +#: CodeFormatter/astyle_main.cpp:781 CodeFormatter/astyle_main.cpp:794 +#: CodeFormatter/astyle_main.cpp:913 CodeFormatter/astyle_main.cpp:926 +#, c-format +msgid "Exclude %s\n" +msgstr "排除 %s\n" -#: SFTP/SFTPTreeView.cpp:352 -msgid "New Directory" -msgstr "新建目录" +#: CodeFormatter/astyle_main.cpp:1041 +#, c-format +msgid "Missing filename in %s\n" +msgstr "缺失文件名在 %s \n" -#: SFTP/SFTPTreeView.cpp:374 LiteEditor/manage_perspective_dlg.cpp:43 -msgid "Enter new name:" -msgstr "输入新名称:" +#: CodeFormatter/astyle_main.cpp:1056 +msgid "Recursive option with no wildcard" +msgstr "递归选项没有通配符" -#: SFTP/sftp_worker_thread.cpp:57 -msgid "Uploading file: " -msgstr "正在上传文件:" +#: CodeFormatter/astyle_main.cpp:1058 +msgid "Did you intend quote the filename" +msgstr "您打算引用这个文件名吗" -#: SFTP/sftp_worker_thread.cpp:64 -msgid "Downloading file: " -msgstr "正在下载文件:" +#: CodeFormatter/astyle_main.cpp:1066 +#, c-format +msgid "Directory %s\n" +msgstr "目录 %s\n" -#: SFTP/sftp_worker_thread.cpp:108 -msgid "Connecting to " -msgstr "连接到:" +#: CodeFormatter/astyle_main.cpp:1086 CodeFormatter/astyle_main.cpp:1088 +#: CodeFormatter/astyle_main.cpp:1090 +#, c-format +msgid "Exclude (unmatched) %s\n" +msgstr "排除(未匹配的)%s\n" -#: LiteEditor/debuggerasciiviewerbase.cpp:20 -msgid "Displaying:" -msgstr "显示:" +#: CodeFormatter/astyle_main.cpp:1096 CodeFormatter/astyle_main.cpp:1103 +msgid "Did you intend to use --recursive" +msgstr "您打算使用参数 --recursive 吗" -#: LiteEditor/debuggerasciiviewerbase.cpp:31 -#: LiteEditor/editorsettingsmiscbasepanel.cpp:243 -#: cppchecker/cppcheckreportbasepage.cpp:40 -msgid "&Clear" -msgstr "清理(&C)" +#: CodeFormatter/astyle_main.cpp:1102 +#, c-format +msgid "No file to process %s\n" +msgstr "没有文件来处理 %s\n" -#: LiteEditor/memoryviewbase.cpp:36 -msgid "Address:" -msgstr "地址:" +#: CodeFormatter/astyle_main.cpp:1616 +msgid "Invalid option file options:" +msgstr "无效选项文件选项:" -#: LiteEditor/memoryviewbase.cpp:41 -msgid "Address or pointer to watch" -msgstr "查看地址或指针" +#: CodeFormatter/astyle_main.cpp:1618 +msgid "Cannot open options file" +msgstr "无法打开配置文件" -#: LiteEditor/memoryviewbase.cpp:45 -msgid "Size:" -msgstr "大小:" +#: CodeFormatter/astyle_main.cpp:1625 CodeFormatter/astyle_main.cpp:1633 +msgid "For help on options type 'astyle -h'" +msgstr "获取帮助请输入“astyle -h”选项" -#: LiteEditor/memoryviewbase.cpp:46 LiteEditor/memoryviewbase.cpp:60 -msgid "Memory size to view" -msgstr "要查看的内存大小" +#: CodeFormatter/astyle_main.cpp:1630 +msgid "Invalid command line options:" +msgstr "无效的命令行选项:" -#: LiteEditor/memoryviewbase.cpp:65 -msgid "Number of columns:" -msgstr "栏数" +#: CodeFormatter/astyle_main.cpp:1752 +#, c-format +msgid "Using default options file %s\n" +msgstr "使用默认选项文件 %s\n" -#: LiteEditor/memoryviewbase.cpp:75 -msgid "Number of columns to use per row" -msgstr "每行要使用的列数" +#: CodeFormatter/astyle_main.cpp:1762 +#, c-format +msgid " %s formatted %s unchanged " +msgstr " %s 已格式化 %s 未改变 " -#: LiteEditor/memoryviewbase.cpp:101 -msgid "Evaluate" -msgstr "评价" +#: CodeFormatter/astyle_main.cpp:1774 +msgid " seconds " +msgstr " 秒 " -#: LiteEditor/memoryviewbase.cpp:103 -msgid "Evaluate the expression in the \"Address\" field" -msgstr "在 \"Address\" 字段中对表达式求值" +#: CodeFormatter/astyle_main.cpp:1780 +#, c-format +msgid "%d min %d sec " +msgstr "%d 分 %d 秒 " -#: LiteEditor/memoryviewbase.cpp:107 Subversion2/subversion2.cpp:219 -msgid "Update" -msgstr "更新" +#: CodeFormatter/astyle_main.cpp:1784 +#, c-format +msgid "%s lines\n" +msgstr "%s 行\n" -#: LiteEditor/memoryviewbase.cpp:108 -msgid "Update the memory in the main display area to apply your changes" -msgstr "在主显示区域更新内存来应用您的更改" +#: CodeFormatter/codeformatterdlgbase.cpp:53 +msgid "Format editor on file save:" +msgstr "文件保存时格式编辑器:" -#: LiteEditor/renamesymboldlg.cpp:90 -msgid "Invalid C/C++ symbol name" -msgstr "无效的C/C++符号名称" +#: CodeFormatter/codeformatterdlgbase.cpp:59 +msgid "When saving a file, automatically format it" +msgstr "当保存文件时,自动格式化" -#: LiteEditor/advance_settings_base.cpp:37 -msgid "Restore Defaults..." -msgstr "恢复默认值..." +#: CodeFormatter/codeformatterdlgbase.cpp:63 +msgid "Select C++ formatter:" +msgstr "选择 C++ 格式化器:" -#: LiteEditor/advance_settings_base.cpp:38 +#: CodeFormatter/codeformatterdlgbase.cpp:71 msgid "" -"Revert all the changes and restore all the build settings to the factory " -"defaults" -msgstr "恢复所有的变更并还原所有构建设置为出厂默认值" +"Select the formatter engine for C/C++\n" +"Note that JavaScript, clang-format is always used" +msgstr "" +"为 C/C++ 选择格式化程序引擎\n" +"注意这条 JavaScript 脚本,clang-format 默认总是使用的" -#: LiteEditor/newprojectdlg.cpp:82 -msgid "Others" -msgstr "其它" +#: CodeFormatter/codeformatterdlgbase.cpp:78 +#: LiteEditor/findinfiles_dlg.cpp:192 +#: CodeDesigner/codedesigneritembasedlg.cpp:47 +msgid "C++" +msgstr "C++" -#: LiteEditor/newprojectdlg.cpp:191 -msgid "" -"Project name can only contain alpha numeric characters and/or the underscore " -"'_'" -msgstr "项目名称仅能包含字母、数字以及下划线“_”字符" +#: CodeFormatter/codeformatterdlgbase.cpp:83 +msgid "AStyle" +msgstr "AStyle" + +#: CodeFormatter/codeformatterdlgbase.cpp:107 +msgid "AStyle Options" +msgstr "AStyle 选项" + +#: CodeFormatter/codeformatterdlgbase.cpp:112 +#: CodeFormatter/codeformatterdlgbase.cpp:296 +msgid "GNU" +msgstr "GNU" + +#: CodeFormatter/codeformatterdlgbase.cpp:114 +msgid "K&R" +msgstr "K&R" + +#: CodeFormatter/codeformatterdlgbase.cpp:115 +#: CodeFormatter/codeformatterdlgbase.cpp:124 +#: CodeFormatter/codeformatterdlgbase.cpp:292 +msgid "Linux" +msgstr "Linux" -#: LiteEditor/newprojectdlg.cpp:196 -msgid "Please provide a name for the project" -msgstr "请提供项目名称" +#: CodeFormatter/codeformatterdlgbase.cpp:116 +msgid "ANSI" +msgstr "ANSI" -#: LiteEditor/newprojectdlg.cpp:201 LiteEditor/newworkspacedlg.cpp:106 -msgid "Invalid path: " -msgstr "无效路径:" +#: CodeFormatter/codeformatterdlgbase.cpp:117 +msgid "PreDefined Styles" +msgstr "预定义风格" -#: LiteEditor/newprojectdlg.cpp:206 -msgid "A project with this name already exists. Please select a different name" -msgstr "同名的项目已存在。请选择一个不同的名称" +#: CodeFormatter/codeformatterdlgbase.cpp:118 +msgid "Choose the formatting from one of the known styles" +msgstr "从一个已知的格式样式中选择一种" + +#: CodeFormatter/codeformatterdlgbase.cpp:122 +msgid "Break closing" +msgstr "中断关闭" + +#: CodeFormatter/codeformatterdlgbase.cpp:123 +#: CodeFormatter/codeformatterdlgbase.cpp:293 +msgid "Attach" +msgstr "连接" + +#: CodeFormatter/codeformatterdlgbase.cpp:125 +msgid "Break" +msgstr "中断" + +#: CodeFormatter/codeformatterdlgbase.cpp:126 LiteEditor/quickfindbar.cpp:110 +msgid "None" +msgstr "无" -#: LiteEditor/newprojectdlg.cpp:224 -msgid "The File '" -msgstr "文件 '" +#: CodeFormatter/codeformatterdlgbase.cpp:127 +#: CodeFormatter/codeformatterdlgbase.cpp:133 +msgid "Brackets" +msgstr "括号" -#: LiteEditor/newprojectdlg.cpp:224 -msgid "' already exists at the target directory '" -msgstr "' 已存在于目标目录 '" +#: CodeFormatter/codeformatterdlgbase.cpp:128 +msgid "Bracket Style options define the bracket style to use" +msgstr "使用括号风格选项来定义括号风格" -#: LiteEditor/newprojectdlg.cpp:225 -msgid "Please select a different project path\n" -msgstr "请重新选择项目路径\n" +#: CodeFormatter/codeformatterdlgbase.cpp:134 +#: LiteEditor/compiler_pages.cpp:485 +msgid "Switches" +msgstr "开关" -#: LiteEditor/newprojectdlg.cpp:226 -msgid "The file '" -msgstr "文件 '" +#: CodeFormatter/codeformatterdlgbase.cpp:135 +msgid "Namespaces" +msgstr "命名空间" -#: LiteEditor/newprojectdlg.cpp:226 -msgid "' is part of the template project [" -msgstr "' 属于模板项目 [" +#: CodeFormatter/codeformatterdlgbase.cpp:137 +msgid "Labels" +msgstr "标签" -#: LiteEditor/newprojectdlg.cpp:319 -msgid "Select Project Path:" -msgstr "请选择项目路径:" +#: CodeFormatter/codeformatterdlgbase.cpp:138 +msgid "Blocks" +msgstr "块" -#: LiteEditor/newprojectdlg.cpp:324 LiteEditor/newworkspacedlg.cpp:84 -msgid "The selected project path '" -msgstr "已选择项目路径 '" +#: CodeFormatter/codeformatterdlgbase.cpp:139 +#: LiteEditor/project_settings_base_dlg.cpp:273 +#: LiteEditor/project_settings_base_dlg.cpp:937 +msgid "Preprocessors" +msgstr "预处理器" -#: LiteEditor/newprojectdlg.cpp:324 LiteEditor/newworkspacedlg.cpp:84 -msgid "" -"'\n" -"Contains some invalid characters\n" -"Continue anyways?" -msgstr "" -"‘\n" -"包含一些无效字符\n" -"是否继续?" +#: CodeFormatter/codeformatterdlgbase.cpp:140 +msgid "Max Instatement Indent" +msgstr "最大的连续声明缩进" -#: LiteEditor/compilerfiletypespage.cpp:50 -msgid "Are you sure you want to delete this file type?" -msgstr "您确定要删除这个文件类型?" +#: CodeFormatter/codeformatterdlgbase.cpp:141 +msgid "Min Instatement Indent" +msgstr "最小化连续声明缩进" -#: LiteEditor/compilerfiletypespage.cpp:72 -msgid "Extension" -msgstr "扩展" +#: CodeFormatter/codeformatterdlgbase.cpp:157 +msgid "Break Blocks" +msgstr "中断块" -#: LiteEditor/compilerfiletypespage.cpp:73 LiteEditor/symbols_dialog.cpp:43 -msgid "Kind" -msgstr "类型" +#: CodeFormatter/codeformatterdlgbase.cpp:158 +msgid "Pad Parenthesis" +msgstr "在括号内外都加上空格" -#: LiteEditor/compilerfiletypespage.cpp:74 -msgid "Compilation Line" -msgstr "编译行" +#: CodeFormatter/codeformatterdlgbase.cpp:159 +msgid "Break Blocks All" +msgstr "中断所有块" -#: LiteEditor/compilerfiletypespage.cpp:86 -#: LiteEditor/editcmpfileinfobase.cpp:36 -msgid "Source" -msgstr "源文件" +#: CodeFormatter/codeformatterdlgbase.cpp:160 +msgid "Pad Parenthesis Outside" +msgstr "在括号外加上空格" -#: LiteEditor/compilerfiletypespage.cpp:86 -#: LiteEditor/compilerfiletypespage.cpp:105 -#: LiteEditor/editcmpfileinfobase.cpp:36 -msgid "Resource" -msgstr "资源" +#: CodeFormatter/codeformatterdlgbase.cpp:161 +msgid "Break else-if" +msgstr "中断 else-if 语句" -#: LiteEditor/debugcoredump.cpp:149 -msgid "Select core dump:" -msgstr "选择核心转储:" +#: CodeFormatter/codeformatterdlgbase.cpp:162 +msgid "Pad Parenthesis Inside" +msgstr "在圆括号内填补空格" -#: LiteEditor/debugcoredump.cpp:170 LiteEditor/quickdebugdlg.cpp:107 -#: LiteEditor/breakpointpropertiesdlg.cpp:164 -#: LiteEditor/breakpointpropertiesdlg.cpp:166 -msgid "Select file:" -msgstr "选择文件:" +#: CodeFormatter/codeformatterdlgbase.cpp:163 +msgid "Pad Operators" +msgstr "运算符前后加空格" -#: LiteEditor/debugcoredump.cpp:186 LiteEditor/ps_custom_build_page.cpp:54 -#: LiteEditor/quickdebugdlg.cpp:176 ExternalTools/newtooldlg.cpp:73 -msgid "Select working directory:" -msgstr "选择工作目录:" +#: CodeFormatter/codeformatterdlgbase.cpp:164 +msgid "UnPad Parenthesis" +msgstr "移除括号内外的空格" -#: LiteEditor/movefuncimplbasedlg.h:77 -msgid "Move Function Implementation Preview" -msgstr "移动函数实现预览..." +#: CodeFormatter/codeformatterdlgbase.cpp:165 +msgid "One Line Keep Statement" +msgstr "维持一行里的多条语句不变" -#: LiteEditor/manager.cpp:584 -msgid "Importing MS solution..." -msgstr "导入 MS 解决方案..." +#: CodeFormatter/codeformatterdlgbase.cpp:166 +msgid "Fill Empty Lines" +msgstr "填补空行" -#: LiteEditor/manager.cpp:898 -msgid "Scanning for include files to parse..." -msgstr "扫描头文件并分析..." +#: CodeFormatter/codeformatterdlgbase.cpp:167 +msgid "One Line Keep Blocks" +msgstr "维持一行里面的块" -#: LiteEditor/manager.cpp:1061 -#, c-format -msgid "" -"There is already a file in this folder with a name:\n" -"%s\n" -"that matches using case-insensitive comparison" -msgstr "" -"该文件夹中已经有一个文件,名称是:\n" -"%s\n" -"该匹配使用的对比是不区分大小写" - -#: LiteEditor/manager.cpp:1063 -msgid "" -"\n" -"This won't be a problem on Linux, but it may be on other, case-insensitive " -"platforms" -msgstr "" -"\n" -"在 Linux 平台上这并不会成为一个问题,但这并不代表在其他不区分大小写的平台上也" -"是如此" +#: CodeFormatter/codeformatterdlgbase.cpp:180 +msgid "Select one or more formatting option from the list below" +msgstr "从下面的列表中选择一个或多个格式化选项" + +#: CodeFormatter/codeformatterdlgbase.cpp:190 +msgid "AStyle Only:" +msgstr "仅 AStyle:" + +#: CodeFormatter/codeformatterdlgbase.cpp:197 +msgid "Custom user settings" +msgstr "自定义用户设置" + +#: CodeFormatter/codeformatterdlgbase.cpp:254 +msgid "clang-format" +msgstr "clang-format" + +#: CodeFormatter/codeformatterdlgbase.cpp:278 +msgid "ClangFormat Options" +msgstr "ClangFormat 选项" + +#: CodeFormatter/codeformatterdlgbase.cpp:281 +msgid "clang-format path" +msgstr "clang-format 路径" + +#: CodeFormatter/codeformatterdlgbase.cpp:285 +msgid "Select the path to clang-format executable tool" +msgstr "选择 clang-format 可执行工具的路径" + +#: CodeFormatter/codeformatterdlgbase.cpp:287 +msgid "Column Limit" +msgstr "列限制" + +#: CodeFormatter/codeformatterdlgbase.cpp:288 +msgid "" +"The column limit\n" +"A column limit of 0 means that there is no column limit.\n" +"In this case, clang-format will respect the input's line breaking decisions " +"within statements unless they contradict other rules" +msgstr "" +"列限制\n" +"列限制为 0 意味着没有列限制。\n" +"在这种情况下,clang-format 将会尊重语句内折断线的决定,除非该决定与其他规则相" +"矛盾" + +#: CodeFormatter/codeformatterdlgbase.cpp:294 +msgid "Stroustrup" +msgstr "Stroustrup" + +#: CodeFormatter/codeformatterdlgbase.cpp:295 +msgid "Allman" +msgstr "Allman" + +#: CodeFormatter/codeformatterdlgbase.cpp:302 +msgid "Brace breaking style" +msgstr "括号折断风格" -#: LiteEditor/manager.cpp:1064 -msgid "" -"\n" -"\n" -"Add the file anyway?" -msgstr "" -"\n" -"\n" -"无论如何都添加文件?" - -#: LiteEditor/manager.cpp:1065 -msgid "Possible name-clash" -msgstr "名称可能冲突" +#: CodeFormatter/codeformatterdlgbase.cpp:303 +msgid "The brace breaking style to use." +msgstr "使用括号折断风格。" -#: LiteEditor/manager.cpp:1099 -#, c-format -msgid "%u file(s) not added, probably due to a name-clash" -msgstr "%u 文件没有被添加,可能是由于名称出现冲突" +#: CodeFormatter/codeformatterdlgbase.cpp:307 +msgid "LLVM" +msgstr "LLVM" + +#: CodeFormatter/codeformatterdlgbase.cpp:308 +msgid "Google" +msgstr "Google" + +#: CodeFormatter/codeformatterdlgbase.cpp:309 +msgid "WebKit" +msgstr "WebKit" + +#: CodeFormatter/codeformatterdlgbase.cpp:310 +msgid "Chromium" +msgstr "Chromium" + +#: CodeFormatter/codeformatterdlgbase.cpp:311 +msgid "Mozilla" +msgstr "Mozilla" + +#: CodeFormatter/codeformatterdlgbase.cpp:317 +msgid "Style" +msgstr "样式" -#: LiteEditor/manager.cpp:2150 -msgid "" -"Failed to locate the configured and default terminal application required by " -"CodeLite, please install it or check your configuration!" -msgstr "定位 Codelite 已配置的默认终端程序失败,请安装它或者检查您的配置!" +#: CodeFormatter/codeformatterdlgbase.cpp:318 +#: cppchecker/cppchecksettingsdlgbase.cpp:49 +msgid "Coding style" +msgstr "代码风格" -#: LiteEditor/manager.cpp:2200 -msgid "Failed to launch debugger '" -msgstr "无法启动调试器“" +#: CodeFormatter/codeformatterdlgbase.cpp:322 +msgid "Align Escaped Newlines Left" +msgstr "向左对齐溢出的新行" + +#: CodeFormatter/codeformatterdlgbase.cpp:323 +msgid "Align Trailing Comments" +msgstr "对齐末端注释" + +#: CodeFormatter/codeformatterdlgbase.cpp:324 +msgid "Allow All Parameters Of Declaration On Next Line" +msgstr "允许在下一行声明所有参数" + +#: CodeFormatter/codeformatterdlgbase.cpp:325 +msgid "Allow Short Functions On A Single Line" +msgstr "单行模式允许短函数" + +#: CodeFormatter/codeformatterdlgbase.cpp:326 +msgid "Allow Short Blocks On A Single Line" +msgstr "单行模式允许短块" + +#: CodeFormatter/codeformatterdlgbase.cpp:327 +msgid "Allow Short Loops On A Single Line" +msgstr "单行模式允许短循环" + +#: CodeFormatter/codeformatterdlgbase.cpp:328 +msgid "Allow Short If Statements On A SingleLine" +msgstr "单行模式允许短 If 语句" + +#: CodeFormatter/codeformatterdlgbase.cpp:329 +msgid "Always Break Before Multiline Strings" +msgstr "总是在多行字符串前打断" + +#: CodeFormatter/codeformatterdlgbase.cpp:330 +msgid "Always Break Template Declarations" +msgstr "总是打断模板声明" + +#: CodeFormatter/codeformatterdlgbase.cpp:331 +msgid "Bin Pack Parameters" +msgstr "本组参数" + +#: CodeFormatter/codeformatterdlgbase.cpp:332 +msgid "Break Before Binary Operators" +msgstr "在二元运算符前打断" + +#: CodeFormatter/codeformatterdlgbase.cpp:333 +msgid "Break Before Ternary Operators" +msgstr "在三元运算符前打断" + +#: CodeFormatter/codeformatterdlgbase.cpp:334 +msgid "Break Constructor Initializers Before Comma" +msgstr "在构造函数初始化停顿之前打断" + +#: CodeFormatter/codeformatterdlgbase.cpp:335 +msgid "Indent Case Labels" +msgstr "缩进实例标签" + +#: CodeFormatter/codeformatterdlgbase.cpp:336 +msgid "Indent Function DeclarationAfterType" +msgstr "缩进类型后的函数声明" + +#: CodeFormatter/codeformatterdlgbase.cpp:337 +msgid "Space Before Assignment Operators" +msgstr "赋值运算符之前使用空格" + +#: CodeFormatter/codeformatterdlgbase.cpp:338 +msgid "Space Before Parentheses" +msgstr "括号前加空格" + +#: CodeFormatter/codeformatterdlgbase.cpp:339 +msgid "Spaces In Parentheses" +msgstr "括号内加空格" + +#: CodeFormatter/codeformatterdlgbase.cpp:340 +msgid "Pointer And Reference Aligned to the Right" +msgstr "指针和引用已向右对齐" + +#: CodeFormatter/codeformatterdlgbase.cpp:360 +msgid "Clang Formatting Options" +msgstr "Clang 格式化选项" + +#: CodeFormatter/codeformatterdlgbase.cpp:435 +msgid "PHP related settings" +msgstr "PHP 关联设置" + +#: CodeFormatter/codeformatterdlgbase.cpp:439 +msgid "Break before class" +msgstr "在类之前中断" + +#: CodeFormatter/codeformatterdlgbase.cpp:440 +msgid "Break before function" +msgstr "函数前打断" + +#: CodeFormatter/codeformatterdlgbase.cpp:441 +msgid "Break before 'while'" +msgstr "在“while”之前打断行" + +#: CodeFormatter/codeformatterdlgbase.cpp:442 +msgid "Break before 'foreach'" +msgstr "在“foreach”之前打断行" + +#: CodeFormatter/codeformatterdlgbase.cpp:443 +msgid "'else' doesn't break" +msgstr "“else” 不打断行" + +#: CodeFormatter/codeformatterdlgbase.cpp:444 +msgid "Break after 'heredoc' statement" +msgstr "“heredoc”语句后打断" + +#: CodeFormatter/codeformatterdlgbase.cpp:445 +msgid "Break PHP Arrays vertically" +msgstr "垂直打断 PHP 数组" + +#: CodeFormatter/codeformatterdlgbase.cpp:446 +msgid "Break after string concatentation operator (\".\")" +msgstr "打断字符串后连接运算符(\".\")" + +#: CodeFormatter/codeformatterdlgbase.cpp:455 +msgid "PHPFormatter Options" +msgstr "PHP 格式化选项" + +#: CodeFormatter/codeformatterdlg.cpp:201 +msgid "AStyle help page" +msgstr "AStyle 帮助页面" + +#: CodeFormatter/codeformatterdlg.cpp:202 +msgid "clang-format help page" +msgstr "clang-format 帮助页面" + +#: CodeFormatter/codeformatterdlgbase.h:131 +msgid "Source Code Formatter Options" +msgstr "源代码格式化选项" -#: LiteEditor/manager.cpp:2200 -msgid "': debugger not loaded\n" -msgstr ":调试无法加载\n" +#: cscope/cscopedbbuilderthread.cpp:51 +msgid "Executing cscope..." +msgstr "执行 cscope ..." -#: LiteEditor/manager.cpp:2201 -msgid "" -"Make sure that you have an open workspace and that the active project is of " -"type 'Executable'" -msgstr "请确认您已打开工作空间,并且活动项目的类型是”可执行“" +#: cscope/cscopedbbuilderthread.cpp:59 +msgid "Parsing results..." +msgstr "分析结果..." -#: LiteEditor/manager.cpp:2255 -msgid "Could not find project configuration!\n" -msgstr "无法找到项目配置!\n" +#: cscope/CscopeTabBase.h:87 +msgid "CScope Settings" +msgstr "Cscope 设置" -#: LiteEditor/manager.cpp:2255 -msgid "Make sure that everything is set properly in your project settings" -msgstr "请确定您项目设置中的所有设置项都是正确的" +#: cscope/cscope.cpp:67 cscope/cscope.cpp:81 +msgid "CScope Integration for CodeLite" +msgstr "CScope 已集成到 CodeLite" -#: LiteEditor/manager.cpp:2321 LiteEditor/frame.cpp:4096 -msgid "Debugging: " -msgstr "调试:" +#: cscope/cscope.cpp:130 cscope/cscope.cpp:132 cscope/cscope.cpp:144 +#: cscope/cscope.cpp:146 cscope/cscope.cpp:250 +msgid "Find this C symbol" +msgstr "查找此 C 符号" -#: LiteEditor/manager.cpp:2348 LiteEditor/manager.cpp:2359 -msgid "Failed to initialize debugger: " -msgstr "无法初始化调试器:" +#: cscope/cscope.cpp:134 cscope/cscope.cpp:136 cscope/cscope.cpp:148 +#: cscope/cscope.cpp:150 cscope/cscope.cpp:269 cscope/cscope.cpp:270 +msgid "Find functions calling this function" +msgstr "查找调用此函数的函数" -#: LiteEditor/manager.cpp:2388 -msgid "Debug session started successfully!\n" -msgstr "成功启动调试会话!\n" +#: cscope/cscope.cpp:138 cscope/cscope.cpp:140 cscope/cscope.cpp:152 +#: cscope/cscope.cpp:154 cscope/cscope.cpp:262 cscope/cscope.cpp:263 +msgid "Find functions called by this function" +msgstr "寻找此函数调用的函数" -#: LiteEditor/manager.cpp:2486 -msgid "Debug session ended\n" -msgstr "调试会话结束\n" +#: cscope/cscope.cpp:244 +msgid "Find ..." +msgstr "查找..." -#: LiteEditor/manager.cpp:2683 LiteEditor/manager.cpp:2685 -msgid "Program Received signal " -msgstr "程序收到信号" +#: cscope/cscope.cpp:250 +msgid "Find selected text" +msgstr "查找选定的文本" -#: LiteEditor/manager.cpp:2686 -msgid "Stack trace is available in the 'Call Stack' tab\n" -msgstr "堆栈跟踪可用于’调用栈‘标签\n" +#: cscope/cscope.cpp:255 +msgid "Find this global definition" +msgstr "查找这个全局定义" -#: LiteEditor/manager.cpp:2717 -msgid "" -"Assertion failed!\n" -"Stack trace is available in the 'Call Stack' tab\n" -msgstr "" -"断言失败!\n" -"可用的堆栈跟踪中位于'调用栈'标签\n" +#: cscope/cscope.cpp:256 +msgid "Find this C global definition" +msgstr "查找此 C 全局定义" -#: LiteEditor/manager.cpp:2749 -#, c-format -msgid "" -"Debugger exited with the following error string:\n" -"%s" -msgstr "" -"调试器退出错误:\n" -"%s" +#: cscope/cscope.cpp:276 cscope/cscope.cpp:406 +msgid "Find files #&including this filename" +msgstr "查找包含此文件名的文件(&I)" -#: LiteEditor/manager.cpp:2771 -msgid "Continuing...\n" -msgstr "持续...\n" +#: cscope/cscope.cpp:277 +msgid "Find files #including this filename" +msgstr "查找包含此文件名的文件" -#: LiteEditor/manager.cpp:3001 LiteEditor/manager.cpp:3052 -#: LiteEditor/manager.cpp:3091 -msgid "This would terminate the current debug session, continue?" -msgstr "这将结束当前的调试会话,继续?" +#: cscope/cscope.cpp:285 +msgid "Create CScope database" +msgstr "创建 cscope 数据库" -#: LiteEditor/manager.cpp:3002 LiteEditor/manager.cpp:3053 -#: LiteEditor/manager.cpp:3092 LiteEditor/frame.cpp:1849 -#: LiteEditor/frame.cpp:2457 LiteEditor/fileview.cpp:928 -#: LiteEditor/fileview.cpp:962 LiteEditor/fileview.cpp:1152 -#: LiteEditor/edit_configuration.cpp:183 LiteEditor/tasks_find_what_dlg.cpp:64 -#: LiteEditor/advanced_settings.cpp:286 LiteEditor/mainbook.cpp:235 -#: Subversion2/svn_checkout_dialog.cpp:63 -msgid "Confirm" -msgstr "确认" +#: cscope/cscope.cpp:286 cscope/cscope.cpp:416 +msgid "Create/Recreate the cscope database" +msgstr "创建/重新创建 cscope 数据库" -#: LiteEditor/manager.cpp:3015 -msgid "Preprocess File" -msgstr "预处理文件" +#: cscope/cscope.cpp:292 +msgid "CScope settings" +msgstr "Cscope 设置" -#: LiteEditor/manager.cpp:3015 -msgid "Compile Single File" -msgstr "编译单个文件" +#: cscope/cscope.cpp:292 +msgid "Configure cscope" +msgstr "配置 cscope" -#: LiteEditor/manager.cpp:3570 -msgid "Retagging..." -msgstr "重建标签文件..." +#: cscope/cscope.cpp:383 +msgid "&Find this C symbol" +msgstr "查找此 C 符号(&F)" -#: LiteEditor/newversionbasedlg.cpp:23 -msgid "Show me whats new !" -msgstr "显示更新内容!" +#: cscope/cscope.cpp:387 +msgid "Find this &global definition" +msgstr "查找这个全局定义(&g)" -#: LiteEditor/FileExplorerTab.cpp:101 LiteEditor/setters_getters_dlg.cpp:453 -#: abbreviation/abbreviationssettingsdlg.cpp:254 -msgid "'" -msgstr "" +#: cscope/cscope.cpp:392 +msgid "Find functions &called by this function" +msgstr "查找此函数调用的函数(&c)" -#: LiteEditor/FileExplorerTab.cpp:101 -msgid "' is a directory. Are you sure you want to remove it and its content?" -msgstr "'是一个文件夹。您确定要移除它以及它里面文件吗?" +#: cscope/cscope.cpp:399 +msgid "Fi&nd functions calling this function" +msgstr "查找调用此函数的函数(&n)" -#: LiteEditor/FileExplorerTab.cpp:102 LiteEditor/FileExplorerTab.cpp:104 -msgid "Remove Directory" -msgstr "移除目录" +#: cscope/cscope.cpp:415 +msgid "Create CScope &database" +msgstr "创建 cscope 数据库(&D)" -#: LiteEditor/FileExplorerTab.cpp:104 -msgid "Failed to remove directory" -msgstr "无法移除目录" +#: cscope/cscope.cpp:464 +msgid "Creating file list..." +msgstr "创建文件列表..." -#: LiteEditor/FileExplorerTab.cpp:170 -msgid "Failed to load shell terminal" -msgstr "无法加载 SHELL 终端" +#: cscope/cscope.cpp:523 +msgid "I can't find 'cscope' anywhere. Please check if it's installed." +msgstr "我找不到“cscope”,请检查它是否安装。" -#: LiteEditor/FileExplorerTab.cpp:217 -#, c-format +#: cscope/cscope.cpp:524 msgid "" -"Could not find default application for file '%s'\n" -"Would you like CodeLite to open it?" -msgstr "" -"找不到默认的应用程序文件 '%s'\n" -"您想用CodeLite打开它吗?" +"Or tell me where it can be found, from the menu: 'Plugins | CScope | " +"Settings'" +msgstr "或者告诉我哪里可用找到它, 从菜单:“插件 | CScope | 设置”" -#: LiteEditor/frame.cpp:747 -msgid "CodeLite " -msgstr "CodeLite" +#: cscope/cscope.cpp:525 +msgid "CScope not found" +msgstr "找不到 Cscope" -#: LiteEditor/frame.cpp:894 -msgid "Output View" -msgstr "输出视图" +#: cscope/cscope.cpp:584 +msgid "cscope results for: find global definition of '" +msgstr "cscope 结果:找到全局定义“" -#: LiteEditor/frame.cpp:964 cscope/cscopetab.cpp:62 cscope/cscopetab.cpp:188 -msgid "Ready" -msgstr "准备" +#: cscope/cscope.cpp:611 +msgid "cscope results for: functions called by '" +msgstr "cscope 结果:函数调用者为”" -#: LiteEditor/frame.cpp:1058 -msgid "View As" -msgstr "查看为" - -#: LiteEditor/frame.cpp:1094 LiteEditor/frame.cpp:1221 -#: LiteEditor/frame.cpp:1297 LiteEditor/frame.cpp:1386 -#: LiteEditor/tasksfindwhatdlgbase.cpp:28 LiteEditor/wxcrafter.cpp:577 -msgid "New" -msgstr "新建" +#: cscope/cscope.cpp:638 +msgid "cscope results for: functions calling '" +msgstr "cscope 结果:函数调用了“" -#: LiteEditor/frame.cpp:1094 LiteEditor/frame.cpp:1221 -#: LiteEditor/frame.cpp:1297 LiteEditor/frame.cpp:1386 -msgid "New File" -msgstr "新建文件" +#: cscope/cscope.cpp:680 +msgid "cscope results for: files that #include '" +msgstr "cscope 结果:函数调用者为“" -#: LiteEditor/frame.cpp:1095 LiteEditor/frame.cpp:1222 -#: LiteEditor/frame.cpp:1298 LiteEditor/frame.cpp:1387 -#: LiteEditor/frame.cpp:1980 git/GitConsole.cpp:385 -msgid "Open File" -msgstr "打开文件" +#: cscope/cscope.cpp:704 +msgid "Recreated inverted CScope DB" +msgstr "重建反向的 CScope 数据库" -#: LiteEditor/frame.cpp:1096 LiteEditor/frame.cpp:1223 -#: LiteEditor/frame.cpp:1299 LiteEditor/frame.cpp:1388 -#: LiteEditor/wxcrafter.cpp:793 -msgid "Reload File" -msgstr "重新加载文件" +#: cscope/cscope.cpp:707 +msgid "Recreated CScope DB" +msgstr "重建 CScope 数据库" -#: LiteEditor/frame.cpp:1099 LiteEditor/frame.cpp:1226 -#: LiteEditor/frame.cpp:1302 LiteEditor/frame.cpp:1391 -msgid "Save All" -msgstr "保存全部" +#: cscope/cscope.cpp:795 +msgid "Enter the symbol to search for:" +msgstr "输入符号来搜索:" -#: LiteEditor/frame.cpp:1101 LiteEditor/frame.cpp:1228 -#: LiteEditor/frame.cpp:1304 LiteEditor/frame.cpp:1393 -msgid "Close File" -msgstr "关闭文件" +#: cscope/cscope.cpp:796 +msgid "cscope: find symbol" +msgstr "cscope: 查找符号" -#: LiteEditor/frame.cpp:1109 LiteEditor/frame.cpp:1236 -#: LiteEditor/frame.cpp:1312 LiteEditor/frame.cpp:1401 -msgid "Backward" -msgstr "向后" +#: cscope/cscopetab.cpp:62 cscope/cscopetab.cpp:189 +#: LiteEditor/cl_editor.cpp:2750 +msgid "Ready" +msgstr "准备" -#: LiteEditor/frame.cpp:1110 LiteEditor/frame.cpp:1237 -#: LiteEditor/frame.cpp:1313 LiteEditor/frame.cpp:1402 -msgid "Forward" -msgstr "向前" +#: cscope/cscopetab.cpp:119 +msgid "Line: " +msgstr "行:" -#: LiteEditor/frame.cpp:1118 LiteEditor/frame.cpp:1410 -msgid "Standard" -msgstr "标准" +#: cscope/CscopeTabBase.cpp:45 +msgid "Scope" +msgstr "范围" -#: LiteEditor/frame.cpp:1132 LiteEditor/frame.cpp:1246 -#: LiteEditor/frame.cpp:1322 LiteEditor/frame.cpp:1426 -#: LiteEditor/wxcrafter.cpp:795 -msgid "Find" -msgstr "查找" +#: cscope/CscopeTabBase.cpp:47 LiteEditor/symbols_dialog.cpp:46 +#: LiteEditor/CompilerMainPage.cpp:59 LiteEditor/CompilerMainPage.cpp:69 +msgid "Pattern" +msgstr "模式" -#: LiteEditor/frame.cpp:1134 LiteEditor/frame.cpp:1248 -#: LiteEditor/frame.cpp:1324 LiteEditor/frame.cpp:1428 -msgid "Find In Files" -msgstr "在文件中查找" +#: cscope/CscopeTabBase.cpp:56 +msgid "Search scope:" +msgstr "搜索范围:" -#: LiteEditor/frame.cpp:1136 LiteEditor/frame.cpp:1250 -#: LiteEditor/frame.cpp:1326 LiteEditor/frame.cpp:1430 -msgid "Find Resource In Workspace" -msgstr "在工作空间搜索资源" +#: cscope/CscopeTabBase.cpp:65 +msgid "Update Db if stale" +msgstr "如果数据库过期,更新数据库" -#: LiteEditor/frame.cpp:1138 LiteEditor/frame.cpp:1252 -#: LiteEditor/frame.cpp:1328 LiteEditor/frame.cpp:1432 -msgid "Highlight Word" -msgstr "高亮字" +#: cscope/CscopeTabBase.cpp:67 +msgid "" +"If checked, before executing a command CScope will look for any changed " +"files and, if found, try to update the database. In practice this seems " +"unreliable." +msgstr "" +"如果勾选此项,在执行命令之前 CScope 将寻找已变更的文件,如果找到,将会试着更" +"新数据库。在实践中这似乎是不可靠的。" -#: LiteEditor/frame.cpp:1138 LiteEditor/frame.cpp:1252 -#: LiteEditor/frame.cpp:1328 LiteEditor/frame.cpp:1432 -msgid "Highlight Matching Words" -msgstr "高亮匹配词" +#: cscope/CscopeTabBase.cpp:71 +msgid "Create reverted Index" +msgstr "创建反向索引" -#: LiteEditor/frame.cpp:1157 LiteEditor/frame.cpp:1260 -#: LiteEditor/frame.cpp:1335 LiteEditor/frame.cpp:1451 -msgid "Build Active Project" -msgstr "构建活动项目" +#: cscope/CscopeTabBase.cpp:73 +msgid "Create reverted Index database" +msgstr "创建反向索引数据库" -#: LiteEditor/frame.cpp:1160 LiteEditor/frame.cpp:1262 -#: LiteEditor/frame.cpp:1336 LiteEditor/frame.cpp:1453 -msgid "Stop Current Build" -msgstr "停止当前构建" +#: cscope/CscopeTabBase.cpp:79 +msgid "&Update Database" +msgstr "更新数据库(&U)" -#: LiteEditor/frame.cpp:1161 LiteEditor/frame.cpp:1263 -#: LiteEditor/frame.cpp:1337 LiteEditor/frame.cpp:1454 -msgid "Clean Active Project" -msgstr "清理活动项目" +#: cscope/CscopeTabBase.cpp:80 +msgid "Perform an immediate database update" +msgstr "立即执行数据库更新" -#: LiteEditor/frame.cpp:1163 LiteEditor/frame.cpp:1265 -#: LiteEditor/frame.cpp:1339 LiteEditor/frame.cpp:1456 -msgid "Run Active Project" -msgstr "运行活动项目" +#: cscope/CscopeTabBase.cpp:84 +msgid "&Clear Results" +msgstr "清除结果(&C)" -#: LiteEditor/frame.cpp:1164 LiteEditor/frame.cpp:1266 -#: LiteEditor/frame.cpp:1340 LiteEditor/frame.cpp:1457 -msgid "Stop Running Program" -msgstr "停止正在运行的程序" +#: cscope/CscopeTabBase.cpp:150 +msgid "CScope executable:" +msgstr "Cscope 可执行文件:" + +#: cscope/CscopeTabBase.cpp:155 +msgid "Set the path to cscope executable" +msgstr "设置 Cscope 可执行文件的路径" -#: LiteEditor/frame.cpp:1183 LiteEditor/frame.cpp:1272 -#: LiteEditor/frame.cpp:1346 -msgid "Start or Continue debugger" -msgstr "开始或继续调试" +#: sdk/wxsqlite3/src/wxsqlite3.cpp:99 +msgid "No Database opened" +msgstr "无打开的数据库" -#: LiteEditor/frame.cpp:1184 LiteEditor/frame.cpp:1273 -#: LiteEditor/frame.cpp:1347 LiteEditor/frame.cpp:1477 -msgid "Stop debugger" -msgstr "停止调试器" +#: sdk/wxsqlite3/src/wxsqlite3.cpp:100 +msgid "Statement not accessible" +msgstr "无法访问声明" -#: LiteEditor/frame.cpp:1185 LiteEditor/frame.cpp:1274 -#: LiteEditor/frame.cpp:1348 LiteEditor/frame.cpp:1478 -msgid "Pause debugger" -msgstr "暂停调试器" +#: sdk/wxsqlite3/src/wxsqlite3.cpp:101 +msgid "Out of memory" +msgstr "内存不足" -#: LiteEditor/frame.cpp:1186 LiteEditor/frame.cpp:1275 -#: LiteEditor/frame.cpp:1349 LiteEditor/frame.cpp:1479 -msgid "Restart debugger" -msgstr "重启调试器" +#: sdk/wxsqlite3/src/wxsqlite3.cpp:102 +msgid "Cannot decode binary" +msgstr "无法解码二进制数据" -#: LiteEditor/frame.cpp:1188 LiteEditor/frame.cpp:1277 -#: LiteEditor/frame.cpp:1351 LiteEditor/frame.cpp:1481 -msgid "Show Current Line" -msgstr "显示当前行" +#: sdk/wxsqlite3/src/wxsqlite3.cpp:103 +msgid "Invalid field index" +msgstr "无效的字段索引" -#: LiteEditor/frame.cpp:1190 LiteEditor/frame.cpp:1279 -#: LiteEditor/frame.cpp:1353 LiteEditor/frame.cpp:1483 -msgid "Step Into" -msgstr "跟进" +#: sdk/wxsqlite3/src/wxsqlite3.cpp:104 +msgid "Invalid field name" +msgstr "无效的字段名称" -#: LiteEditor/frame.cpp:1190 LiteEditor/frame.cpp:1279 -#: LiteEditor/frame.cpp:1353 LiteEditor/frame.cpp:1483 -msgid "Step In" -msgstr "跟进" +#: sdk/wxsqlite3/src/wxsqlite3.cpp:105 +msgid "Invalid row index" +msgstr "无效的行索引" -#: LiteEditor/frame.cpp:1193 LiteEditor/frame.cpp:1282 -#: LiteEditor/frame.cpp:1356 LiteEditor/frame.cpp:1486 -msgid "Step Out" -msgstr "跟出" - -#: LiteEditor/frame.cpp:1208 LiteEditor/frame.cpp:1500 -msgid "Main Toolbar" -msgstr "主工具栏" - -#: LiteEditor/frame.cpp:1476 -msgid "Start / Continue debugger" -msgstr "开始/继续调试" - -#: LiteEditor/frame.cpp:1847 -msgid "The file" -msgstr "文件" - -#: LiteEditor/frame.cpp:1847 -msgid "has been altered." -msgstr "已更改." - -#: LiteEditor/frame.cpp:1848 -msgid "Are you sure you want to lose all changes?" -msgstr "您确定放弃全部更改吗?" - -#: LiteEditor/frame.cpp:1909 -msgid "Open Workspace" -msgstr "打开工作空间" - -#: LiteEditor/frame.cpp:2027 -msgid "Please enter a name for the tab group" -msgstr "请输入标签组的名称" +#: sdk/wxsqlite3/src/wxsqlite3.cpp:106 +msgid "Invalid scalar query" +msgstr "无效的标量查询" -#: LiteEditor/frame.cpp:2041 -msgid "There is already a file with this name. Do you want to overwrite it?" -msgstr "同名文件已存在,是否覆盖?" +#: sdk/wxsqlite3/src/wxsqlite3.cpp:108 +msgid "Null Results pointer" +msgstr "空结果指针" -#: LiteEditor/frame.cpp:2041 LiteEditor/fileview.cpp:934 -#: LiteEditor/fileview.cpp:967 -msgid "Are you sure?" -msgstr "您确定吗?" +#: sdk/wxsqlite3/src/wxsqlite3.cpp:109 +msgid "Error binding string param" +msgstr "绑定 string 参数错误" -#: LiteEditor/frame.cpp:2063 -msgid "Tab group saved" -msgstr "标签组已保存" +#: sdk/wxsqlite3/src/wxsqlite3.cpp:110 +msgid "Error binding int param" +msgstr "绑定 int 参数错误" -#: LiteEditor/frame.cpp:2135 -msgid "Open Project" -msgstr "打开项目" +#: sdk/wxsqlite3/src/wxsqlite3.cpp:111 +msgid "Error binding int64 param" +msgstr "绑定 int64 参数错误" -#: LiteEditor/frame.cpp:2457 -msgid "Build ended with errors. Continue?" -msgstr "构建结束,遇到错误,继续吗?" +#: sdk/wxsqlite3/src/wxsqlite3.cpp:112 +msgid "Error binding double param" +msgstr "绑定 double 参数错误" -#: LiteEditor/frame.cpp:2476 -msgid "Build starting..." -msgstr "构建开始..." +#: sdk/wxsqlite3/src/wxsqlite3.cpp:113 +msgid "Error binding blob param" +msgstr "绑定 blob 参数错误" -#: LiteEditor/frame.cpp:2509 -msgid "Failed to find Custom Build Target for event ID" -msgstr "查找事件 ID 对应的自定义构建目标失败" +#: sdk/wxsqlite3/src/wxsqlite3.cpp:114 +msgid "Error binding date/time param" +msgstr "绑定 date/time 参数错误" -#: LiteEditor/frame.cpp:2633 -msgid "" -"Would you like to build the active project\n" -"before executing it?" -msgstr "" -"您想在执行之前\n" -"构建这个活动项目吗?" +#: sdk/wxsqlite3/src/wxsqlite3.cpp:115 +msgid "Error binding NULL param" +msgstr "绑定 NULL 参数错误" -#: LiteEditor/frame.cpp:2635 -msgid "Build before execute" -msgstr "执行前构建" - -#: LiteEditor/frame.cpp:2636 -msgid "No, just execute it" -msgstr "不要,只是执行它" +#: sdk/wxsqlite3/src/wxsqlite3.cpp:116 +msgid "Error clearing bindings" +msgstr "清除绑定错误" -#: LiteEditor/frame.cpp:2748 -msgid "" -"Your workspace symbols file does not match the current version of CodeLite. " -"CodeLite will perform a full retag of the workspace" -msgstr "" -"您工作空间的符号表与当前版本的 CodeLite 不匹配。CodeLite 会重建完整的工作空间" -"标签文件。" +#: sdk/wxsqlite3/src/wxsqlite3.cpp:118 +msgid "Meta data support not available" +msgstr "元数据支持不可用" -#: LiteEditor/frame.cpp:2816 -msgid "No workspaces found." -msgstr "没有找到工作空间。" +#: sdk/wxsqlite3/src/wxsqlite3.cpp:119 +msgid "Encryption support not available" +msgstr "加密支持不可用" -#: LiteEditor/frame.cpp:2857 -msgid "No files found." -msgstr "没有找到文件。" +#: sdk/wxsqlite3/src/wxsqlite3.cpp:120 +msgid "Loadable extension support not available" +msgstr "可加载扩展支持不可用" -#: LiteEditor/frame.cpp:3037 LiteEditor/frame.cpp:3334 -#: LiteEditor/frame.cpp:4026 -msgid "Welcome!" -msgstr "欢迎!" +#: sdk/wxshapeframework/include/wx/wxsf/EditTextShape.h:89 +msgid "Edit content" +msgstr "编辑内容" -#: LiteEditor/frame.cpp:3051 -msgid "Open MS Solution File" -msgstr "打开 MS 解决方案文件" +#: sdk/databaselayer/src/dblayer/MysqlDatabaseLayer.cpp:28 +#: sdk/databaselayer/src/dblayer/MysqlDatabaseLayer.cpp:49 +#: sdk/databaselayer/src/dblayer/MysqlDatabaseLayer.cpp:90 +#: sdk/databaselayer/src/dblayer/PostgresDatabaseLayer.cpp:23 +#: sdk/databaselayer/src/dblayer/PostgresDatabaseLayer.cpp:43 +#: sdk/databaselayer/src/dblayer/PostgresDatabaseLayer.cpp:85 +#: sdk/databaselayer/src/dblayer/PostgresDatabaseLayer.cpp:160 +#: sdk/databaselayer/src/dblayer/PostgresDatabaseLayer.cpp:218 +#: sdk/databaselayer/src/dblayer/FirebirdDatabaseLayer.cpp:36 +#: sdk/databaselayer/src/dblayer/FirebirdDatabaseLayer.cpp:59 +msgid "localhost" +msgstr "本地主机" -#: LiteEditor/frame.cpp:3063 -msgid "Select the compiler to use:" -msgstr "选择要使用的编译器:" +#: sdk/databaselayer/src/dblayer/MysqlDatabaseLayer.cpp:189 +#: sdk/databaselayer/src/dblayer/SqliteDatabaseLayer.cpp:18 +#: sdk/databaselayer/src/dblayer/SqliteDatabaseLayer.cpp:26 +#: sdk/databaselayer/src/dblayer/TdsDatabaseLayer.cpp:87 +#: sdk/databaselayer/src/dblayer/TdsDatabaseLayer.cpp:97 +#: sdk/databaselayer/src/dblayer/FirebirdDatabaseLayer.cpp:198 +msgid "UTF-8" +msgstr "UTF-8" -#: LiteEditor/frame.cpp:3063 -msgid "Choose compiler" -msgstr "选择编译器" +#: sdk/databaselayer/src/dblayer/MysqlDatabaseLayer.cpp:206 +#: sdk/databaselayer/src/dblayer/FirebirdDatabaseLayer.cpp:238 +msgid ":" +msgstr ":" -#: LiteEditor/frame.cpp:3088 -msgid "Attempting to debug workspace with no active project? Ignoring." -msgstr "试图调试没有活动项目的工作空间?忽略。" +#: sdk/databaselayer/src/dblayer/MysqlDatabaseLayer.cpp:470 +msgid "SHOW TABLE STATUS WHERE Comment != 'VIEW' AND Name=?;" +msgstr "SHOW TABLE STATUS WHERE Comment != 'VIEW' AND Name=?;" -#: LiteEditor/frame.cpp:3095 -msgid "Would you like to build the project before debugging it?" -msgstr "您想在调试它前构建项目吗?" +#: sdk/databaselayer/src/dblayer/MysqlDatabaseLayer.cpp:551 +msgid "SHOW TABLE STATUS WHERE Comment = 'VIEW' AND Name=?;" +msgstr "SHOW TABLE STATUS WHERE Comment = 'VIEW' AND Name=?;" -#: LiteEditor/frame.cpp:3097 -msgid "Build and Debug" -msgstr "构建并调试" +#: sdk/databaselayer/src/dblayer/MysqlDatabaseLayer.cpp:613 +msgid "SHOW TABLE STATUS WHERE Comment != 'VIEW';" +msgstr "SHOW TABLE STATUS WHERE Comment != 'VIEW';" -#: LiteEditor/frame.cpp:3097 -msgid "Debug without building" -msgstr "调试但不构建" - -#: LiteEditor/frame.cpp:3649 -msgid "Close this workspace, and load workspace '" -msgstr "关闭此工作空间,并加载工作空间”" +#: sdk/databaselayer/src/dblayer/MysqlDatabaseLayer.cpp:674 +msgid "SHOW TABLE STATUS WHERE Comment = 'VIEW';" +msgstr "SHOW TABLE STATUS WHERE Comment = 'VIEW';" -#: LiteEditor/frame.cpp:3677 -msgid "Download Now!" -msgstr "立即下载!" +#: sdk/databaselayer/src/dblayer/MysqlDatabaseLayer.cpp:715 +#, c-format +msgid "SHOW COLUMNS FROM %s;" +msgstr "SHOW COLUMNS FROM %s;" -#: LiteEditor/frame.cpp:3682 -msgid "A new version of codelite is available" -msgstr "有新的 CodeLite 版本可用" +#: sdk/databaselayer/src/dblayer/PostgresDatabaseLayer.cpp:282 +msgid "COMMIT" +msgstr "提交" -#: LiteEditor/frame.cpp:3692 -msgid "CodeLite is up-to-date" -msgstr "CodeLite 已更新到最新" +#: sdk/databaselayer/src/dblayer/PostgresDatabaseLayer.cpp:287 +msgid "ROLLBACK" +msgstr "ROLLBACK" -#: LiteEditor/frame.cpp:4099 LiteEditor/frame.cpp:4177 -msgid "Could not start TTY console for debugger!" -msgstr "无法为调试器启动 TTY 控制台" +#: sdk/databaselayer/src/dblayer/PostgresDatabaseLayer.cpp:364 +msgid "" +"SELECT COUNT(*) FROM information_schema.tables WHERE table_type='BASE TABLE' " +"AND table_name=?;" +msgstr "" +"SELECT COUNT(*) FROM information_schema.tables WHERE table_type='BASE TABLE' " +"AND table_name=?;" -#: LiteEditor/frame.cpp:4099 LiteEditor/frame.cpp:4177 -#: LiteEditor/context_cpp.cpp:1242 -msgid "codelite" +#: sdk/databaselayer/src/dblayer/PostgresDatabaseLayer.cpp:429 +msgid "" +"SELECT COUNT(*) FROM information_schema.tables WHERE table_type='VIEW' AND " +"table_name=?;" msgstr "" +"SELECT COUNT(*) FROM information_schema.tables WHERE table_type='VIEW' AND " +"table_name=?;" -#: LiteEditor/frame.cpp:4174 -msgid "Debugging: '" -msgstr "调试中: '" +#: sdk/databaselayer/src/dblayer/PostgresDatabaseLayer.cpp:490 +msgid "" +"SELECT table_name FROM information_schema.tables WHERE table_type='BASE " +"TABLE' AND table_schema='public';" +msgstr "" +"SELECT table_name FROM information_schema.tables WHERE table_type='BASE " +"TABLE' AND table_schema='public';" -#: LiteEditor/frame.cpp:4174 -msgid "' from '" +#: sdk/databaselayer/src/dblayer/PostgresDatabaseLayer.cpp:529 +msgid "" +"SELECT table_name FROM information_schema.tables WHERE table_type='VIEW' AND " +"table_schema='public';" msgstr "" +"SELECT table_name FROM information_schema.tables WHERE table_type='VIEW' AND " +"table_schema='public';" -#: LiteEditor/frame.cpp:4372 +#: sdk/databaselayer/src/dblayer/PostgresDatabaseLayer.cpp:573 msgid "" -"Workspace or project settings have been modified outside of CodeLite\n" -"Would you like to reload the workspace?" +"SELECT column_name FROM information_schema.columns WHERE table_name=? ORDER " +"BY ordinal_position;" msgstr "" -"工作空间或项目设置已被外部程序修改\n" -"您要重新加载工作空间吗?" +"SELECT column_name FROM information_schema.columns WHERE table_name=? ORDER " +"BY ordinal_position;" -#: LiteEditor/frame.cpp:4374 -msgid "Yes, reload the workspace" -msgstr "是的,重新载入工作空间" - -#: LiteEditor/frame.cpp:4375 -msgid "Don't reload the workspace" -msgstr "不要重新载入工作空间" +#: sdk/databaselayer/src/dblayer/PostgresPreparedStatement.cpp:277 +#, c-format +msgid "$%d" +msgstr "$%d" -#: LiteEditor/frame.cpp:4642 -msgid "Tags cache cleared" -msgstr "标签文件缓存已清除" +#: sdk/databaselayer/src/dblayer/OdbcDatabaseLayer.cpp:383 +#: sdk/databaselayer/src/dblayer/OdbcDatabaseLayer.cpp:445 +msgid "TABLE" +msgstr "TABLE" -#: LiteEditor/frame.cpp:4702 -msgid "Some of the changes made requires restart of CodeLite" -msgstr "部分更改需要重新启动 CodeLite" +#: sdk/databaselayer/src/dblayer/OdbcDatabaseLayer.cpp:415 +#: sdk/databaselayer/src/dblayer/OdbcDatabaseLayer.cpp:496 +msgid "VIEW" +msgstr "视图" -#: LiteEditor/frame.cpp:4706 -msgid "Restart Now!" -msgstr "立即重启!" +#: sdk/databaselayer/src/dblayer/OdbcDatabaseLayer.cpp:597 +msgid "OdbcDatabaseLayer::InterpretErrorCodes()\n" +msgstr "OdbcDatabaseLayer::InterpretErrorCodes()\n" -#: LiteEditor/frame.cpp:4713 -msgid "Not now" -msgstr "稍后重启" +#: sdk/databaselayer/src/dblayer/FirebirdResultSet.cpp:55 +msgid "Error retrieving Next record\n" +msgstr "获取下一个记录错误\n" -#: LiteEditor/frame.cpp:4716 -msgid "Some of the changes made require a restart of CodeLite. Restart now?" -msgstr "部分更改需要重新启动 CodeLite,重新启动吗?" +#: sdk/databaselayer/src/dblayer/FirebirdResultSet.cpp:139 +#: sdk/databaselayer/src/dblayer/FirebirdResultSet.cpp:181 +#: sdk/databaselayer/src/dblayer/FirebirdResultSet.cpp:254 +#: sdk/databaselayer/src/dblayer/FirebirdResultSet.cpp:310 +#: sdk/databaselayer/src/dblayer/FirebirdResultSet.cpp:376 +msgid "Invalid field type" +msgstr "无效的字段类型" -#: LiteEditor/frame.cpp:4810 -#, c-format -msgid "INFO: Retag workspace completed in %ld seconds (%lu files were scanned)" -msgstr "信息:重建工作空间标签文件完成,用时 %ld 秒(扫描了 %lu 个文件)" +#: sdk/databaselayer/src/dblayer/FirebirdResultSet.cpp:542 +#: sdk/databaselayer/src/dblayer/OracleResultSet.cpp:245 +#: sdk/databaselayer/src/dblayer/OdbcResultSet.cpp:484 +#: sdk/databaselayer/src/dblayer/PostgresResultSet.cpp:243 +#: sdk/databaselayer/src/dblayer/OTLResultSet.cpp:321 +#: sdk/databaselayer/src/dblayer/TdsResultSet.cpp:344 +#: sdk/databaselayer/src/dblayer/MysqlPreparedStatementResultSet.cpp:297 +#: sdk/databaselayer/src/dblayer/MysqlPreparedStatementResultSet.cpp:318 +#: sdk/databaselayer/src/dblayer/SqliteResultSet.cpp:199 +msgid "Field '" +msgstr "字段“" -#: LiteEditor/frame.cpp:4820 -msgid "INFO: Retag workspace completed in 0 seconds (No files were retagged)" -msgstr "信息:重建工作空间标签文件完成,用时 0 秒(无文件被重建标签文件)" +#: sdk/databaselayer/src/dblayer/FirebirdResultSet.cpp:542 +#: sdk/databaselayer/src/dblayer/OracleResultSet.cpp:245 +#: sdk/databaselayer/src/dblayer/OdbcResultSet.cpp:484 +#: sdk/databaselayer/src/dblayer/PostgresResultSet.cpp:243 +#: sdk/databaselayer/src/dblayer/OTLResultSet.cpp:321 +#: sdk/databaselayer/src/dblayer/TdsResultSet.cpp:344 +#: sdk/databaselayer/src/dblayer/MysqlPreparedStatementResultSet.cpp:297 +#: sdk/databaselayer/src/dblayer/MysqlPreparedStatementResultSet.cpp:318 +#: sdk/databaselayer/src/dblayer/SqliteResultSet.cpp:199 +msgid "' not found in the resultset" +msgstr "”没有在结果集中发现" -#: LiteEditor/frame.cpp:5167 LiteEditor/cl_editor.cpp:3097 -msgid "Remove All Bookmarks" -msgstr "移除所有书签" +#: sdk/databaselayer/src/dblayer/FirebirdResultSet.cpp:559 +msgid "FirebirdResultSet::InterpretErrorCodes()\n" +msgstr "FirebirdResultSet::InterpretErrorCodes()\n" -#: LiteEditor/configuration_manager_base_dlg.cpp:34 -msgid "Workspace Configuration:" -msgstr "工作空间配置:" +#: sdk/databaselayer/src/dblayer/FirebirdParameter.cpp:75 +msgid "Parameter type is not compatible with parameter of type double\n" +msgstr "参数类型与 double 类型参数不兼容\n" -#: LiteEditor/configuration_manager_base_dlg.cpp:48 -msgid "Available project configurations:" -msgstr "可用的项目配置:" +#: sdk/databaselayer/src/dblayer/FirebirdPreparedStatementWrapper.cpp:43 +msgid "Error calling isc_dsql_free_statement" +msgstr "错误调用isc_dsql_free_statement" -#: LiteEditor/configuration_manager_base_dlg.cpp:82 -#: LiteEditor/syntaxhighlightbasedlg.cpp:70 -#: LiteEditor/options_base_dlg2.cpp:50 LiteEditor/buildorderbasepage.cpp:89 -msgid "Apply" -msgstr "应用" +#: sdk/databaselayer/src/dblayer/FirebirdPreparedStatementWrapper.cpp:309 +msgid "SELECT " +msgstr "SELECT" -#: LiteEditor/tags_options_base_dlg.cpp:34 -msgid "Display and Behavior" -msgstr "显示和行为" +#: sdk/databaselayer/src/dblayer/FirebirdPreparedStatementWrapper.cpp:314 +msgid "FirebirdPreparesStatementWrapper::InterpretErrorCodes()\n" +msgstr "FirebirdPreparesStatementWrapper::InterpretErrorCodes()\n" -#: LiteEditor/tags_options_base_dlg.cpp:39 -#: LiteEditor/debuggersettingsbasedlg.cpp:334 -msgid "Display:" -msgstr "显示:" +#: sdk/databaselayer/src/dblayer/FirebirdPreparedStatement.cpp:79 +msgid "No SQL Statements found" +msgstr "没有找到 SQL 语句" -#: LiteEditor/tags_options_base_dlg.cpp:50 -msgid "Number of items to display in the completion box:" -msgstr "显示代码补全框前输入的字符数目" +#: sdk/databaselayer/src/dblayer/FirebirdPreparedStatement.cpp:415 +msgid "Invalid Prepared Statement Parameter" +msgstr "无效的预先声明参数" -#: LiteEditor/tags_options_base_dlg.cpp:58 -msgid "Code Completion is case sensitive (improves performance)" -msgstr "代码补全是区分大小写的(提升性能)" - -#: LiteEditor/tags_options_base_dlg.cpp:60 -msgid "" -"When enabled, the code completion search engine will use case sensitive " -"searches. \n" -"So 'QString' is NOT equal 'qstring'" -msgstr "" -"当启用时,代码补全搜索引擎将会使用区分大小写的搜索。\n" -"因此‘QString’不等于‘qstring’" +#: sdk/databaselayer/src/dblayer/FirebirdPreparedStatement.cpp:422 +msgid "FirebirdPreparesStatement::InterpretErrorCodes()\n" +msgstr "FirebirdPreparesStatement::InterpretErrorCodes()\n" -#: LiteEditor/tags_options_base_dlg.cpp:64 -msgid "Display type info tooltips" -msgstr "显示类型信息提示" +#: sdk/databaselayer/src/dblayer/PostgresResultSet.cpp:77 +#: sdk/databaselayer/src/dblayer/PostgresResultSet.cpp:98 +#: sdk/databaselayer/src/dblayer/PostgresResultSet.cpp:120 +#: sdk/databaselayer/src/dblayer/PostgresResultSet.cpp:217 +msgid "Not implemented\n" +msgstr "无法执行\n" -#: LiteEditor/tags_options_base_dlg.cpp:66 -msgid "Display information about the hovered text" -msgstr "显示覆盖文本的信息" +#: sdk/databaselayer/src/dblayer/MysqlPreparedStatementParameter.cpp:82 +msgid "Error allocating buffer" +msgstr "分配缓冲区错误" -#: LiteEditor/tags_options_base_dlg.cpp:70 -msgid "Display function calltip" -msgstr "显示函数调用提示" +#: sdk/databaselayer/src/dblayer/SqliteResultSetMetaData.cpp:21 +msgid "INTEGER" +msgstr "INTEGER" -#: LiteEditor/tags_options_base_dlg.cpp:72 -msgid "Display function argument list after typing an open brace '('" -msgstr "在输入左括号”(“后显示函数参数列表" +#: sdk/databaselayer/src/dblayer/SqliteResultSetMetaData.cpp:21 +msgid "INT" +msgstr "INT" -#: LiteEditor/tags_options_base_dlg.cpp:76 -msgid "Display completion box for language keywords" -msgstr "为语言关键字显示代码补全框" +#: sdk/databaselayer/src/dblayer/SqliteResultSetMetaData.cpp:21 +msgid "LONG" +msgstr "LONG" -#: LiteEditor/tags_options_base_dlg.cpp:78 -msgid "" -"When enabled, codelite will auto show the code completion box for C/C++ " -"keywords after typing 2 chars" -msgstr "当启用时,CodeLite 将在输入两个字符后 为 C/C++ 关键字显示代码补全框" +#: sdk/databaselayer/src/dblayer/SqliteResultSetMetaData.cpp:23 +msgid "STRING" +msgstr "STRING" -#: LiteEditor/tags_options_base_dlg.cpp:82 -msgid "Keep function signature un-formatted" -msgstr "保持函数签名未格式化" +#: sdk/databaselayer/src/dblayer/SqliteResultSetMetaData.cpp:23 +msgid "VARCHAR" +msgstr "VARCHAR" -#: LiteEditor/tags_options_base_dlg.cpp:87 -msgid "Behavior:" -msgstr "行为:" +#: sdk/databaselayer/src/dblayer/SqliteResultSetMetaData.cpp:25 +msgid "DOUBLE" +msgstr "DOUBLE" -#: LiteEditor/tags_options_base_dlg.cpp:95 -msgid "Perform a retag when workspace is loaded" -msgstr "加载工作空间时重建标签文件" +#: sdk/databaselayer/src/dblayer/SqliteResultSetMetaData.cpp:25 +msgid "FLOAT" +msgstr "FLOAT" -#: LiteEditor/tags_options_base_dlg.cpp:97 -msgid "Retag workspace once loaded" -msgstr "加载工作空间时重建标签文件" +#: sdk/databaselayer/src/dblayer/SqliteResultSetMetaData.cpp:27 +msgid "BOOL" +msgstr "BOOL" -#: LiteEditor/tags_options_base_dlg.cpp:101 -msgid "Do not parse the file after saving it" -msgstr "文件保存后不作文件分析" +#: sdk/databaselayer/src/dblayer/SqliteResultSetMetaData.cpp:29 +msgid "BLOB" +msgstr "BLOB" -#: LiteEditor/tags_options_base_dlg.cpp:103 -msgid "Do not trigger file parsing after saving a file" -msgstr "文件保存后不触发文件分析" +#: sdk/databaselayer/src/dblayer/SqliteResultSetMetaData.cpp:31 +msgid "DATE" +msgstr "DATE" -#: LiteEditor/tags_options_base_dlg.cpp:107 -msgid "Scan all included files to locate 'using namespace' statements" -msgstr "在全部包含的文件中查找”using namespace“声明" +#: sdk/databaselayer/src/dblayer/SqliteResultSetMetaData.cpp:31 +msgid "DATETIME" +msgstr "DATETIME" -#: LiteEditor/tags_options_base_dlg.cpp:109 -msgid "Allways search for 'using namespace' statements in all included files" -msgstr "总在全部包含的文件中查找”using namespace“声明" +#: sdk/databaselayer/src/dblayer/SqliteResultSetMetaData.cpp:31 +msgid "TIMESTAMP" +msgstr "TIMESTAMP" -#: LiteEditor/tags_options_base_dlg.cpp:114 -msgid "Colouring" -msgstr "着色" +#: sdk/databaselayer/src/dblayer/SqliteDatabaseLayer.cpp:42 +msgid ":memory:" +msgstr ":内存:" -#: LiteEditor/tags_options_base_dlg.cpp:127 -msgid "Maximum number of *workspace* symbols to colour:" -msgstr "“工作空间”符号最大着色数目:" +#: sdk/databaselayer/src/dblayer/SqliteDatabaseLayer.cpp:46 +msgid "The specified database file '" +msgstr "这个指定的数据库文件“" -#: LiteEditor/tags_options_base_dlg.cpp:135 -msgid "Colour local variables" -msgstr "着色局部变量" +#: sdk/databaselayer/src/dblayer/SqliteDatabaseLayer.cpp:46 +msgid "' does not exist." +msgstr "”不存在。" -#: LiteEditor/tags_options_base_dlg.cpp:140 -msgid "Colour macro blocks with gray text colour when the macro is not defined" -msgstr "宏块颜色和文字颜色灰宏时没有定义" +#: sdk/databaselayer/src/dblayer/SqliteDatabaseLayer.cpp:105 +#: sdk/databaselayer/src/dblayer/TdsDatabaseLayer.cpp:409 +msgid "Beginning transaction" +msgstr "正在处理" -#: LiteEditor/tags_options_base_dlg.cpp:145 -msgid "Colour workspace tags" -msgstr "着色工作区标签" +#: sdk/databaselayer/src/dblayer/SqliteDatabaseLayer.cpp:106 +#: sdk/databaselayer/src/dblayer/TdsDatabaseLayer.cpp:410 +msgid "begin transaction;" +msgstr "开始处理;" -#: LiteEditor/tags_options_base_dlg.cpp:156 -msgid "class" -msgstr "类" +#: sdk/databaselayer/src/dblayer/SqliteDatabaseLayer.cpp:111 +#: sdk/databaselayer/src/dblayer/TdsDatabaseLayer.cpp:415 +msgid "Commiting transaction" +msgstr "提交事务中" -#: LiteEditor/tags_options_base_dlg.cpp:161 -msgid "struct" -msgstr "结构" +#: sdk/databaselayer/src/dblayer/SqliteDatabaseLayer.cpp:112 +#: sdk/databaselayer/src/dblayer/TdsDatabaseLayer.cpp:416 +msgid "commit transaction;" +msgstr "提交事务:" -#: LiteEditor/tags_options_base_dlg.cpp:166 -msgid "function" -msgstr "函数" +#: sdk/databaselayer/src/dblayer/SqliteDatabaseLayer.cpp:117 +#: sdk/databaselayer/src/dblayer/TdsDatabaseLayer.cpp:421 +msgid "Rolling back transaction" +msgstr "正在回滚事务" -#: LiteEditor/tags_options_base_dlg.cpp:171 -msgid "enum" -msgstr "枚举" +#: sdk/databaselayer/src/dblayer/SqliteDatabaseLayer.cpp:118 +#: sdk/databaselayer/src/dblayer/TdsDatabaseLayer.cpp:422 +msgid "rollback transaction;" +msgstr "回滚事务;" -#: LiteEditor/tags_options_base_dlg.cpp:176 -msgid "enumerator" -msgstr "枚举器" +#: sdk/databaselayer/src/dblayer/SqliteDatabaseLayer.cpp:296 +msgid "SELECT COUNT(*) FROM sqlite_master WHERE type='table' AND name=?;" +msgstr "SELECT COUNT(*) FROM sqlite_master WHERE type='table' AND name=?;" -#: LiteEditor/tags_options_base_dlg.cpp:181 -msgid "union" -msgstr "联合" +#: sdk/databaselayer/src/dblayer/SqliteDatabaseLayer.cpp:361 +msgid "SELECT COUNT(*) FROM sqlite_master WHERE type='view' AND name=?;" +msgstr "SELECT COUNT(*) FROM sqlite_master WHERE type='view' AND name=?;" -#: LiteEditor/tags_options_base_dlg.cpp:186 -msgid "prototype" -msgstr "原型" +#: sdk/databaselayer/src/dblayer/SqliteDatabaseLayer.cpp:422 +msgid "SELECT name FROM sqlite_master WHERE type='table';" +msgstr "SELECT name FROM sqlite_master WHERE type='table';" -#: LiteEditor/tags_options_base_dlg.cpp:191 -msgid "typedef" -msgstr "类型定义" +#: sdk/databaselayer/src/dblayer/SqliteDatabaseLayer.cpp:461 +msgid "SELECT name FROM sqlite_master WHERE type='view';" +msgstr "SELECT name FROM sqlite_master WHERE type='view';" -#: LiteEditor/tags_options_base_dlg.cpp:196 -msgid "macro" -msgstr "宏" +#: sdk/databaselayer/src/dblayer/SqliteDatabaseLayer.cpp:505 +#, c-format +msgid "SELECT * FROM '%s' LIMIT 0;" +msgstr "SELECT * FROM '%s' LIMIT 0;" -#: LiteEditor/tags_options_base_dlg.cpp:201 -msgid "namespace" -msgstr "命名空间" +#: sdk/databaselayer/src/dblayer/FirebirdParameterCollection.cpp:162 +msgid "Error allocating space for unknown parameter type\n" +msgstr "分配空间到未知参数类型错误\n" -#: LiteEditor/tags_options_base_dlg.cpp:206 -msgid "member" -msgstr "成员" +#: sdk/databaselayer/src/dblayer/FirebirdParameterCollection.cpp:215 +msgid "Error deleting unknown parameter type\n" +msgstr "删除未知参数类型错误\n" -#: LiteEditor/tags_options_base_dlg.cpp:211 -msgid "variable" -msgstr "变量" +#: sdk/databaselayer/src/dblayer/OTLResultSet.cpp:123 +msgid "Invalid Date" +msgstr "无效日期" -#: LiteEditor/tags_options_base_dlg.cpp:217 -msgid "Triggering" -msgstr "触发" +#: sdk/databaselayer/src/dblayer/OTLResultSet.cpp:139 +#, c-format +msgid "Result as string: '%s'\n" +msgstr "结果字符串:'%s'\n" -#: LiteEditor/tags_options_base_dlg.cpp:222 -msgid "Automatic Word Completion:" -msgstr "自动代码补全:" +#: sdk/databaselayer/src/dblayer/DatabaseQueryParser.cpp:6 +#: sdk/databaselayer/src/dblayer/OTLDatabaseLayer.cpp:73 +#: sdk/databaselayer/src/dblayer/OTLDatabaseLayer.cpp:81 +msgid ";" +msgstr ";" -#: LiteEditor/tags_options_base_dlg.cpp:233 -msgid "Auto-Display wordcompletion-box on typing" -msgstr "键入时自动显示代码完成框" +#: sdk/databaselayer/src/dblayer/SqliteResultSet.cpp:66 +#: sdk/databaselayer/src/dblayer/SqlitePreparedStatement.cpp:265 +msgid "Error with RunQueryWithResults\n" +msgstr "运行结果查询出现错误\n" -#: LiteEditor/tags_options_base_dlg.cpp:235 -msgid "" -"When enabled, codelite will auto show the code completion box after N chars " -"were typed" -msgstr "当使用时,CodeLite 将在输入 N 字符后显示代码补全框" +#: sdk/databaselayer/src/dblayer/SqliteResultSet.cpp:72 +msgid "Unknown error advancing result set" +msgstr "超出结果集的未知错误" -#: LiteEditor/tags_options_base_dlg.cpp:241 -msgid "Minimum number of chars to type to show wordcompletion-box:" -msgstr "显示代码补全框前输入的最少字符数目:" +#: sdk/databaselayer/src/dblayer/OdbcPreparedStatement.cpp:388 +msgid "OdbcPreparedStatement::InterpretErrorCodes()\n" +msgstr "OdbcPreparedStatement::InterpretErrorCodes()\n" -#: LiteEditor/tags_options_base_dlg.cpp:242 -#: LiteEditor/tags_options_base_dlg.cpp:247 -msgid "Number of chars to type before showing the code completion box" -msgstr "显示代码补全框前输入的字符数目" +#: sdk/databaselayer/src/dblayer/TdsDatabaseLayer.cpp:129 +msgid "USE " +msgstr "启用" -#: LiteEditor/tags_options_base_dlg.cpp:251 -msgid "Auto-Insert single match" -msgstr "自动插入单个匹配" +#: sdk/databaselayer/src/dblayer/TdsDatabaseLayer.cpp:582 +msgid "exec sp_tables ?, NULL, NULL, '''TABLE'''" +msgstr "exec sp_tables ?, NULL, NULL, '''TABLE'''" -#: LiteEditor/tags_options_base_dlg.cpp:253 -msgid "" -"When there is only a single match dont show the code completion box but " -"rather insert the match" -msgstr "当只有唯一匹配时,不显示代码补全框,直接插入此匹配" +#: sdk/databaselayer/src/dblayer/TdsDatabaseLayer.cpp:593 +#: sdk/databaselayer/src/dblayer/TdsDatabaseLayer.cpp:658 +#: sdk/databaselayer/src/dblayer/TdsDatabaseLayer.cpp:715 +#: sdk/databaselayer/src/dblayer/TdsDatabaseLayer.cpp:755 +msgid "TABLE_NAME" +msgstr "TABLE_NAME" -#: LiteEditor/tags_options_base_dlg.cpp:257 -msgid "CTags" -msgstr "" +#: sdk/databaselayer/src/dblayer/TdsDatabaseLayer.cpp:647 +msgid "exec sp_tables ?, NULL, NULL, '''VIEW'''" +msgstr "exec sp_tables ?, NULL, NULL, '''VIEW'''" -#: LiteEditor/tags_options_base_dlg.cpp:260 -#: LiteEditor/tags_options_base_dlg.cpp:277 -msgid "Search paths" -msgstr "搜索路径" +#: sdk/databaselayer/src/dblayer/TdsDatabaseLayer.cpp:709 +msgid "sp_tables NULL, NULL, NULL, '''TABLE'''" +msgstr "sp_tables NULL, NULL, NULL, '''TABLE'''" -#: LiteEditor/tags_options_base_dlg.cpp:270 -msgid "Search Paths" -msgstr "搜索路径" +#: sdk/databaselayer/src/dblayer/TdsDatabaseLayer.cpp:749 +msgid "sp_tables NULL, NULL, NULL, '''VIEW'''" +msgstr "sp_tables NULL, NULL, NULL, '''VIEW'''" -#: LiteEditor/tags_options_base_dlg.cpp:277 -msgid "codelite will search for include files in these locations" -msgstr "CodeLite 将会在这些位置搜索头文件" +#: sdk/databaselayer/src/dblayer/TdsDatabaseLayer.cpp:846 +#, c-format +msgid "sp_columns %s;" +msgstr "sp_columns %s;" -#: LiteEditor/tags_options_base_dlg.cpp:304 -#: LiteEditor/tags_options_base_dlg.cpp:343 -msgid "&Add..." -msgstr "添加(&A)..." +#: sdk/databaselayer/src/dblayer/TdsDatabaseLayer.cpp:852 +msgid "COLUMN_NAME" +msgstr "COLUMN_NAME" -#: LiteEditor/tags_options_base_dlg.cpp:309 -msgid "Exclude Paths" -msgstr "排除路径" +#: sdk/databaselayer/src/dblayer/FirebirdDatabaseLayer.cpp:394 +#: sdk/databaselayer/src/dblayer/FirebirdDatabaseLayer.cpp:471 +msgid "Unable to start transaction" +msgstr "无法开始事务" -#: LiteEditor/tags_options_base_dlg.cpp:316 -msgid "Exclude paths" -msgstr "排除路径" +#: sdk/databaselayer/src/dblayer/FirebirdDatabaseLayer.cpp:439 +#: sdk/databaselayer/src/dblayer/FirebirdDatabaseLayer.cpp:659 +msgid "Database handle is NULL" +msgstr "数据库句柄为空" -#: LiteEditor/tags_options_base_dlg.cpp:316 +#: sdk/databaselayer/src/dblayer/FirebirdDatabaseLayer.cpp:697 msgid "" -"codelite code completion will ignore any files found in one of the paths " -"below" -msgstr "codelite 代码补全将会忽略在以下路径中发现的文件" - -#: LiteEditor/tags_options_base_dlg.cpp:348 -#: LiteEditor/advance_settings_base.h:34 LiteEditor/advanced_settings.cpp:279 -#: Gizmos/newclassbasedlg.cpp:145 -msgid "Advanced" -msgstr "高级" - -#: LiteEditor/tags_options_base_dlg.cpp:360 -msgid "File Types:" -msgstr "文件类型:" +"SELECT COUNT(*) FROM RDB$RELATIONS WHERE RDB$SYSTEM_FLAG=0 AND RDB$VIEW_BLR " +"IS NULL AND RDB$RELATION_NAME=?;" +msgstr "" +"SELECT COUNT(*) FROM RDB$RELATIONS WHERE RDB$SYSTEM_FLAG=0 AND RDB$VIEW_BLR " +"IS NULL AND RDB$RELATION_NAME=?;" -#: LiteEditor/tags_options_base_dlg.cpp:372 +#: sdk/databaselayer/src/dblayer/FirebirdDatabaseLayer.cpp:763 msgid "" -"CodeLite can suggest a list of 'Tokens' that will be added to the 'Tokens' " -"table based on parsing the following header files \n" -"(space separated list):" +"SELECT COUNT(*) FROM RDB$RELATIONS WHERE RDB$SYSTEM_FLAG=0 AND RDB$VIEW_BLR " +"IS NOT NULL AND RDB$RELATION_NAME=?;" msgstr "" -"CodeLite 能够在分析下列头文件的基础上将一个‘Tokens’列表添加到‘Tokens’标签\n" -"(用空格分隔列表)" - -#: LiteEditor/tags_options_base_dlg.cpp:384 -msgid "Parse!" -msgstr "分析!" +"SELECT COUNT(*) FROM RDB$RELATIONS WHERE RDB$SYSTEM_FLAG=0 AND RDB$VIEW_BLR " +"IS NOT NULL AND RDB$RELATION_NAME=?;" -#: LiteEditor/tags_options_base_dlg.cpp:393 -#: LiteEditor/tags_options_base_dlg.cpp:417 +#: sdk/databaselayer/src/dblayer/FirebirdDatabaseLayer.cpp:824 msgid "" -"List here list of tokens to be pre-processed by codelite-indexer. \n" -"Usually, you would like to add here macros which confuse the parser\n" -"Click the below link to read more about this feature and the syntax " -"supported.\n" +"SELECT RDB$RELATION_NAME FROM RDB$RELATIONS WHERE RDB$SYSTEM_FLAG=0 AND RDB" +"$VIEW_BLR IS NULL" msgstr "" -"列出需要 codelite-indexer 进行预处理的符号列表。\n" -"通常,您可以在这里添加那些会混淆解析器的宏命令\n" -"点击以下链接阅读关于该特性和语法的更多信息。\n" - -#: LiteEditor/tags_options_base_dlg.cpp:394 -msgid "Tokens" -msgstr "符号" - -#: LiteEditor/tags_options_base_dlg.cpp:416 -msgid "" -"List here list of tokens to be pre-processed by codelite-indexer usually, " -"you would like to add here\n" -"macros which confuse the parser" -msgstr "" -"列出需要 codelite-indexer 进行预处理的符号列表,您可以在这里添加\n" -"那些会混淆解析器的宏命令" - -#: LiteEditor/tags_options_base_dlg.cpp:421 -msgid "Macros Handling" -msgstr "宏处理" - -#: LiteEditor/tags_options_base_dlg.cpp:430 -msgid "Types" -msgstr "类型" - -#: LiteEditor/tags_options_base_dlg.cpp:439 -msgid "" -"Specify here a list of types which are to be specially handled while parsing " -"C and C++ source files in the format of TYPE1=TYPE2.\n" -"So when TYPE1 is found, CodeLite will offer completion as if it was TYPE2 " -"was found" -msgstr "" -"在这里指定类型的列表将会在分析 C 和 C++ 源文件时对“格式1=格式2”进行特别处" -"理。\n" -"因此,当发现类型1时,CodeLite 就会像发现类型2一样提供代码补全" - -#: LiteEditor/tags_options_base_dlg.cpp:457 -msgid "Clang" -msgstr "Clang" - -#: LiteEditor/tags_options_base_dlg.cpp:462 -msgid "Enable clang code completion" -msgstr "启用 clang 代码补全" - -#: LiteEditor/tags_options_base_dlg.cpp:472 -#: LiteEditor/editorsettingsmiscbasepanel.cpp:34 -#: LiteEditor/findinfiles_dlg.cpp:125 LiteEditor/project_settings_dlg.cpp:112 -#: LiteEditor/project_settings_dlg.cpp:117 Subversion2/subversion2_ui.cpp:265 -msgid "General" -msgstr "常规" - -#: LiteEditor/tags_options_base_dlg.cpp:484 -msgid "Only use clang code completion" -msgstr "仅使用 clang 代码补全功能" +"SELECT RDB$RELATION_NAME FROM RDB$RELATIONS WHERE RDB$SYSTEM_FLAG=0 AND RDB" +"$VIEW_BLR IS NULL" -#: LiteEditor/tags_options_base_dlg.cpp:486 +#: sdk/databaselayer/src/dblayer/FirebirdDatabaseLayer.cpp:863 msgid "" -"Check this option so codelite will use the clang's code completion over the " -"ctags one.\n" -"clang is more accurate, while ctags is faster" -msgstr "" -"选中此选项以便clang代码补全代理 ctags。 \n" -"clang 更准确,而 ctags 更快" - -#: LiteEditor/tags_options_base_dlg.cpp:490 -#: LiteEditor/workspacesettingsbase.cpp:130 -#: LiteEditor/project_settings_base_dlg.cpp:1057 -msgid "Search paths:" -msgstr "搜索路径:" - -#: LiteEditor/tags_options_base_dlg.cpp:511 -msgid "Add here search paths used by clang for locating include files" -msgstr "在此处添加 clang 定位头文件的搜索路径" - -#: LiteEditor/tags_options_base_dlg.cpp:515 -msgid "Suggest search paths..." -msgstr "建议搜索路径..." - -#: LiteEditor/tags_options_base_dlg.cpp:520 -msgid "Cache" +"SELECT RDB$RELATION_NAME FROM RDB$RELATIONS WHERE RDB$SYSTEM_FLAG=0 AND RDB" +"$VIEW_BLR IS NOT NULL" msgstr "" +"SELECT RDB$RELATION_NAME FROM RDB$RELATIONS WHERE RDB$SYSTEM_FLAG=0 AND RDB" +"$VIEW_BLR IS NOT NULL" -#: LiteEditor/tags_options_base_dlg.cpp:532 -msgid "Clear clang translation unit cache:" -msgstr "清除clang转换单元缓存" - -#: LiteEditor/tags_options_base_dlg.cpp:536 LiteEditor/setters_getters.cpp:63 -#: LiteEditor/new_build_tab.cpp:1011 codelite_terminal/wxcrafter.cpp:57 -#: cppchecker/cppchecksettingsdlgbase.cpp:89 -#: SnipWiz/templateclassbasedlg.cpp:172 UnitTestCPP/testclassbasedlg.cpp:90 -msgid "Clear" -msgstr "清除" - -#: LiteEditor/tags_options_base_dlg.cpp:537 +#: sdk/databaselayer/src/dblayer/FirebirdDatabaseLayer.cpp:907 msgid "" -"Clicking this button will erase all clang's generated PCH files. \n" -"Use this button as the first step to resolve a code completion issue" +"SELECT RDB$FIELD_NAME FROM RDB$RELATION_FIELDS WHERE RDB$RELATION_NAME=?;" msgstr "" -"单击此按钮将删除所有clang的生成PCH文件。 \n" -"使用此按钮为解决代码完成问题的第一步" - -#: LiteEditor/tags_options_base_dlg.cpp:541 -msgid "Parsing policy:" -msgstr "正在解析规则:" - -#: LiteEditor/localstable.cpp:24 LiteEditor/compilerswitchespage.cpp:85 -#: LiteEditor/simpletable.cpp:96 -msgid "Value" -msgstr "值" - -#: LiteEditor/localstable.cpp:350 -#, c-format -msgid "Current scope is now set to: \"%s\", depth: %d\n" -msgstr "目前范围设置为:‘%s’深度: %d\n" - -#: LiteEditor/localstable.cpp:374 -msgid "Change value..." -msgstr "更改值..." +"SELECT RDB$FIELD_NAME FROM RDB$RELATION_FIELDS WHERE RDB$RELATION_NAME=?;" -#: LiteEditor/localstable.cpp:385 +#: sdk/databaselayer/src/dblayer/MysqlResultSetMetaData.cpp:54 #, c-format -msgid "Insert new value for '%s':" -msgstr "插入‘%s’的新值:" - -#: LiteEditor/localstable.cpp:386 -msgid "Edit expression" -msgstr "编辑表达式" - -#: LiteEditor/compilerswitchespage.cpp:31 -msgid " switch:" -msgstr "开关:" - -#: LiteEditor/editor_options_caret.cpp:35 -msgid "Caret blink period (milliseconds):" -msgstr "光标闪烁周期(毫秒):" - -#: LiteEditor/editor_options_caret.cpp:40 -msgid "Sets the caret blinking period in millisconds" -msgstr "设置光标闪烁周期为毫秒:" - -#: LiteEditor/editor_options_caret.cpp:44 -msgid "Caret width (pixels):" -msgstr "光标宽度(像素):" - -#: LiteEditor/editor_options_caret.cpp:49 -msgid "Set the caret width in pixels" -msgstr "设置光标宽度为像素" +msgid "Don't understand type : %d\n" +msgstr "无法理解的类型: %d\n" -#: LiteEditor/editor_options_caret.cpp:53 -msgid "Allow caret to scroll beyond end of file" -msgstr "允许光标滚动到文件结尾后" +#: sdk/databaselayer/src/dblayer/PreparedStatement.cpp:24 +msgid "ResultSet NOT closed and cleaned up by the PreparedStatement dtor" +msgstr "构造函数声明无法关闭并清除接口" -#: LiteEditor/editor_options_caret.cpp:55 -msgid "" -"When scrolling with the mouse, the scrolling can go beyond the end of file" -msgstr "当使用鼠标滚动时,滚动可以超出文件底部" +#: sdk/databaselayer/src/dblayer/OTLDatabaseLayer.cpp:68 +#: sdk/databaselayer/src/dblayer/OracleDatabaseLayer.cpp:68 +msgid "Host=" +msgstr "主机=" -#: LiteEditor/editor_options_caret.cpp:59 -msgid "Auto-adjust horizontal scrollbar width" -msgstr "自动调整水平滚动条宽度" +#: sdk/databaselayer/src/dblayer/OTLDatabaseLayer.cpp:74 +#: sdk/databaselayer/src/dblayer/OracleDatabaseLayer.cpp:72 +msgid "Port=" +msgstr "端口=" -#: LiteEditor/editor_options_caret.cpp:61 -msgid "Auto adjust the borizontal toolbar to fit to the page content" -msgstr "自动调整水平滚动条宽度以适配页面内容" +#: sdk/databaselayer/src/dblayer/OTLDatabaseLayer.cpp:82 +#: sdk/databaselayer/src/dblayer/OracleDatabaseLayer.cpp:80 +msgid "Service Name=" +msgstr "服务器名=" -#: LiteEditor/editor_options_caret.cpp:65 -msgid "Allow caret to be placed beyond the end of line" -msgstr "允许光标滚动到文件结尾后" +#: sdk/databaselayer/src/dblayer/OTLDatabaseLayer.cpp:108 +#: sdk/databaselayer/src/dblayer/OracleDatabaseLayer.cpp:101 +msgid "Error creating database connection" +msgstr "创建数据库连接错误" -#: LiteEditor/editor_options_caret.cpp:67 -msgid "" -"Allow the user to place the caret using the mouse beyond the end of line" -msgstr "允许用户使用鼠标将插入符号放在文本的末尾" +#: sdk/databaselayer/src/dblayer/DatabaseLayer.cpp:30 +msgid "ResultSet NOT closed and cleaned up by the DatabaseLayer dtor" +msgstr "结果集没有通过数据库层析构函数关闭以及清理" -#: LiteEditor/editor_options_caret.cpp:71 -msgid "Caret jumps between word segments" -msgstr "插入符单词之间跳转" +#: sdk/databaselayer/src/dblayer/DatabaseLayer.cpp:44 +msgid "PreparedStatement NOT closed and cleaned up by the DatabaseLayer dtor" +msgstr "预处理语句没有通过数据库层析构函数关闭以及清理" -#: LiteEditor/editor_options_caret.cpp:73 -msgid "" -"Caret jumps between word segments marked by capitalisation (CamelCase) or " -"underscores" -msgstr "光标在用大写字母(驼峰格式)或下划线标记的字段间跳跃" +#: sdk/databaselayer/src/dblayer/DatabaseLayer.cpp:158 +#: sdk/databaselayer/src/dblayer/DatabaseLayer.cpp:242 +#: sdk/databaselayer/src/dblayer/DatabaseLayer.cpp:326 +#: sdk/databaselayer/src/dblayer/DatabaseLayer.cpp:410 +#: sdk/databaselayer/src/dblayer/DatabaseLayer.cpp:494 +#: sdk/databaselayer/src/dblayer/DatabaseLayer.cpp:578 +#: sdk/databaselayer/src/dblayer/DatabaseLayer.cpp:662 +#: sdk/databaselayer/src/dblayer/DatabaseLayer.cpp:732 +#: sdk/databaselayer/src/dblayer/DatabaseLayer.cpp:785 +#: sdk/databaselayer/src/dblayer/DatabaseLayer.cpp:838 +#: sdk/databaselayer/src/dblayer/DatabaseLayer.cpp:892 +msgid "string" +msgstr "字符串" -#: LiteEditor/tagsparsersearchpathsbasedlg.cpp:22 -msgid "" -"The following include paths were detected on your system and will be added " -"to your parser search path.\n" -"You may remove a path by unchecking it.\n" -"\n" -"You can always add/remove paths to the parser from the main menu:\n" -"Settings > Tags Settings > Parser" -msgstr "" -"在您的系统发现以下包含路径,这些路径将会添加到分析器的搜索路径。\n" -"您可以通过取消勾选来移除它。\n" -"\n" -"您也可以在主菜单中为分析器添加/移除路径:\n" -"设置 > 标签文件设置 > 包含文件" +#: sdk/databaselayer/src/dblayer/OracleDatabaseLayer.cpp:11 +msgid "1521" +msgstr "1521" -#: LiteEditor/ps_build_events_page.cpp:29 -msgid "Set the commands to run in the pre build stage" -msgstr "设置构建阶段前运行的命令" +#: LiteEditor/tabgroupdlg.cpp:67 +msgid "Select a tab group:" +msgstr "选择标签组:" -#: LiteEditor/ps_build_events_page.cpp:33 -msgid "Set the commands to run in the post build stage" -msgstr "设置构建阶段后运行的命令" +#: LiteEditor/tabgroupdlg.cpp:71 +msgid "Tab groups" +msgstr "标签组" -#: LiteEditor/ps_build_events_page.cpp:35 -msgid "" -"\n" -"Commands starting with the hash sign ('#'), will not be executed" -msgstr "" -"\n" -"以 ('#')开头的命令,将不会被执行" +#: LiteEditor/new_item_dlg.cpp:67 +msgid "File Type" +msgstr "文件类型" -#: LiteEditor/newworkspacebasedlg.cpp:26 -msgid "Workspace Name:" -msgstr "工作空间名称:" +#: LiteEditor/new_item_dlg.cpp:128 LiteEditor/new_item_base_dlg.cpp:73 +msgid "Location:" +msgstr "位置:" -#: LiteEditor/newworkspacebasedlg.cpp:33 -msgid "Workspace Path:" -msgstr "工作空间路径:" +#: LiteEditor/new_item_dlg.cpp:184 +msgid "Missing location" +msgstr "缺失位置" -#: LiteEditor/newworkspacebasedlg.cpp:48 -msgid "Create the workspace under a separate directory" -msgstr "在单独目录下创建工作空间" +#: LiteEditor/new_item_dlg.cpp:190 +msgid "A file with that name already exists. Please choose a different name" +msgstr "同名的文件已存在,请选择一个不同的名称" -#: LiteEditor/newworkspacebasedlg.cpp:53 -msgid "File Name:" -msgstr "文件名:" +#: LiteEditor/new_item_dlg.cpp:195 +msgid "Missing file name" +msgstr "缺少文件名" -#: LiteEditor/newworkspacebasedlg.cpp:69 -msgid "&Create" -msgstr "创建(&C)" +#: LiteEditor/configuration_manager_base_dlg.cpp:59 +msgid "Workspace Configuration:" +msgstr "工作区配置:" -#: LiteEditor/new_configuration_dlg.h:65 -#: LiteEditor/configuration_manager_dlg.cpp:273 -msgid "New Configuration" -msgstr "新建配置" +#: LiteEditor/configuration_manager_base_dlg.cpp:73 +msgid "Available project configurations:" +msgstr "可用的项目配置:" -#: LiteEditor/commentpagebase.cpp:20 LiteEditor/buildsettingstabbase.cpp:80 -#: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:28 -#: ExternalTools/newtoolbase.cpp:116 -msgid "General:" -msgstr "常规:" +#: LiteEditor/configuration_manager_base_dlg.cpp:107 +#: LiteEditor/options_base_dlg2.cpp:52 LiteEditor/buildorderbasepage.cpp:121 +msgid "Apply" +msgstr "应用" -#: LiteEditor/commentpagebase.cpp:31 -msgid "" -"When hitting in a C style comment section,automatically add '*' at " -"the next line" -msgstr "当在 C 风格注释里面按<回车键>时, 自动添加‘*’到新行" +#: LiteEditor/importfilesdialog_new.h:47 +#: LiteEditor/importfilesdialog_new.cpp:31 +msgid "Import Files" +msgstr "导入文件" -#: LiteEditor/commentpagebase.cpp:35 -msgid "" -"When hitting in a C++ style comment section,automatically add '//' " -"at the next line" -msgstr "当在 C++ 风格注释里面按<回车键>时,自动添加‘//’到新行" +#: LiteEditor/outputtabwindow.cpp:196 +msgid "Keep open" +msgstr "保持打开" -#: LiteEditor/commentpagebase.cpp:41 -msgid "Doxygen:" -msgstr "Doxygen:" +#: LiteEditor/outputtabwindow.cpp:198 LiteEditor/wxcrafter.cpp:93 +msgid "Don't close this pane when an editor gets focus" +msgstr "当编辑器获得焦点时,不要关闭此面板" -#: LiteEditor/commentpagebase.cpp:52 -#: LiteEditor/editorsettingscommentsdoxygenpanelbase.cpp:32 -msgid "Use '/**' as doxygen block start (else use '/*!')" -msgstr "使用‘/**’作为 doxygen 块开始 (否则使用‘/*!’)" +#: LiteEditor/outputtabwindow.cpp:202 LiteEditor/outputtabwindow.cpp:204 +msgid "Scroll on Output" +msgstr "滚动输出" -#: LiteEditor/commentpagebase.cpp:56 -#: LiteEditor/editorsettingscommentsdoxygenpanelbase.cpp:37 -msgid "Use '@' as doxygen keyword prefix" -msgstr "使用‘@’作为 doxygen 关键字前缀" +#: LiteEditor/outputtabwindow.cpp:209 LiteEditor/outputtabwindow.cpp:211 +msgid "Word Wrap" +msgstr "自动换行" -#: LiteEditor/commentpagebase.cpp:62 -msgid "" -"CodeLite contains a built-in doxygen documentation generator which adds " -"doxygen comments to your code.\n" -"Here you can set the prefix that will placed on top of the dynamic content " -"of the comment:" -msgstr "" -"CodeLite 包含内建 doxygen 文档生成器,它将会添加 doxygen 注释到您的代码。\n" -"在此设置动态内容注释顶部的前缀:" +#: LiteEditor/outputtabwindow.cpp:215 LiteEditor/tabgroupbasedlgs.cpp:139 +msgid "Clear All" +msgstr "清理全部" -#: LiteEditor/commentpagebase.cpp:81 -#: LiteEditor/editorsettingscommentsdoxygenpanelbase.cpp:78 -msgid "Function prefix:" -msgstr "函数前缀:" +#: LiteEditor/outputtabwindow.cpp:218 LiteEditor/outputtabwindow.cpp:220 +msgid "Fold All Results" +msgstr "折叠全部结果" -#: LiteEditor/commentpagebase.cpp:93 -msgid "" -"The following macros are available:\n" -"$(CurrentFileName), $(CurrentFilePath), $(User), $(Date), $(Name)\n" -"$(CurrentFileFullPath), $(CurrentFileExt), $(ProjectName), $(WorksapceName)" -msgstr "" -"以下为可用的宏:\n" -"$(CurrentFileName),$(CurrentFilePath),$(User),$(Date),$(Name)\n" -"$(CurrentFileFullPath),$(CurrentFileExt),$(ProjectName),$(WorksapceName)" +#: LiteEditor/outputtabwindow.cpp:223 +msgid "Repeat" +msgstr "重复" -#: LiteEditor/quickdebugbase.cpp:28 -msgid "Select executable:" -msgstr "选择可执行文件:" +#: LiteEditor/dbgcommandbasedlg.cpp:50 codelitephp/php-plugin/new_class.cpp:40 +msgid "Type:" +msgstr "类型:" -#: LiteEditor/quickdebugbase.cpp:33 -msgid "" -"Enter the filepath to the program that you want to debug.\n" -"Alternatively, if you enter the path below, putting just the filename here " -"will suffice." -msgstr "" -"输入您想要调试程序的文件路径。\n" -"或者,如果您输入的是下列路径,只需要填写文件名就可以了。" - -#: LiteEditor/quickdebugbase.cpp:40 ExternalTools/newtoolbase.cpp:60 -msgid "Working directory:" -msgstr "工作目录:" - -#: LiteEditor/quickdebugbase.cpp:45 -msgid "" -"Optionally, enter the path where the program that you want to debug can be " -"found" -msgstr "可选项,输入您想要调试的程序的路径" - -#: LiteEditor/quickdebugbase.cpp:52 -msgid "Program arguments:" -msgstr "程序参数:" - -#: LiteEditor/quickdebugbase.cpp:62 LiteEditor/ps_debugger_page.cpp:79 -#: LiteEditor/debugcoredumpbase.cpp:62 -msgid "Select debugger:" -msgstr "选择调试器:" - -#: LiteEditor/quickdebugbase.cpp:76 -msgid "Startup commands:" -msgstr "启动命令:" - -#: LiteEditor/compilerpatternspage.cpp:11 -#: LiteEditor/compilerpatternspage.cpp:15 LiteEditor/symbols_dialog.cpp:46 -#: cscope/CscopeTabBase.cpp:46 -msgid "Pattern" -msgstr "模式" - -#: LiteEditor/compilerpatternspage.cpp:12 -#: LiteEditor/compilerpatternspage.cpp:16 -msgid "File name index" -msgstr "文件名索引" - -#: LiteEditor/compilerpatternspage.cpp:13 -#: LiteEditor/compilerpatternspage.cpp:17 -msgid "Line number index" -msgstr "行号索引" - -#: LiteEditor/compilerpatternspage.cpp:72 -msgid "Add compiler error pattern" -msgstr "添加编译器错误模式" - -#: LiteEditor/compilerpatternspage.cpp:110 -msgid "Update compiler error pattern" -msgstr "更新编译器错误模式" - -#: LiteEditor/compilerpatternspage.cpp:121 -msgid "Add compiler warning pattern" -msgstr "添加编译器警告模式" - -#: LiteEditor/compilerpatternspage.cpp:158 -msgid "Update compiler warning pattern" -msgstr "更新编译器警告模式" - -#: LiteEditor/compilerpatternspage.cpp:200 -msgid "Please fill all the fields" -msgstr "请填写全部字段" - -#: LiteEditor/env_var_dlg_base.h:86 -msgid "Environment Variables" -msgstr "环境变量" - -#: LiteEditor/tagsparsersearchpathsbasedlg.h:71 -msgid "Add Search Paths to Code Completion Parser" -msgstr "添加搜索路径到代码补全分析器中" - -#: LiteEditor/edit_workspace_conf_dlg.h:65 -msgid "Edit Workspace Configuration" -msgstr "编辑工作空间配置" - -#: LiteEditor/ps_custom_build_page.cpp:16 -msgid "Target" -msgstr "目标" - -#: LiteEditor/ps_custom_build_page.cpp:17 -msgid "Command" -msgstr "命令" - -#: LiteEditor/ps_custom_build_page.cpp:79 -#, c-format -msgid "Target '%s' already exist!" -msgstr "目标“%s”已存在!" - -#: LiteEditor/newworkspacedlg.cpp:79 -msgid "Choose a folder:" -msgstr "选择一个文件夹:" - -#: LiteEditor/setters_getters.cpp:34 -msgid "Generate Setters / Getters" -msgstr "生成 Setters/Getters..." - -#: LiteEditor/setters_getters.cpp:34 LiteEditor/setters_getters_dlg.cpp:452 -msgid "Select the functions to generate from the list below" -msgstr "从以下列表中选择函数:" - -#: LiteEditor/setters_getters.cpp:53 -#: LiteEditor/implementparentvirtualfunctionsbase.cpp:62 -#: LiteEditor/wxcrafter.cpp:486 LiteEditor/rename_symbool_dlg.cpp:56 -#: CMakePlugin/CMakePluginUi.cpp:104 -msgid "?" -msgstr "" - -#: LiteEditor/setters_getters.cpp:67 -msgid "Function name starts with an upper case letter" -msgstr "大写字母开头的函数名" - -#: LiteEditor/setters_getters.cpp:72 -msgid "Format the file when done" -msgstr "完成后格式化文件" - -#: LiteEditor/movefuncimpldlg.cpp:80 -msgid "File: " -msgstr "文件:" - -#: LiteEditor/movefuncimpldlg.cpp:80 -msgid " does not exist" -msgstr "不存在" - -#: LiteEditor/findreplacedlg.h:192 LiteEditor/findreplacedlg.h:201 -msgid "Find / Replace" -msgstr "查找/替换" - -#: LiteEditor/memoryview.cpp:160 -#, c-format -msgid "Invalid memory value: %s" -msgstr "无效的内存值:%s" - -#: LiteEditor/depend_dlg_page.cpp:42 -#, c-format -msgid "" -"Build order for configuration '%s' has been modified, would you like to save " -"it?" -msgstr "配置‘%s’的构建顺序已修改,您要保存吗?" - -#: LiteEditor/clang_driver.cpp:259 -msgid "" -"Could not locate compilation database or database version is not up-to-date: " -msgstr "无法定位编译器数据库或数据库版本不是最新的:" - -#: LiteEditor/clang_driver.cpp:261 -msgid "" -"This file should be created automatically for you.\n" -"If you don't have it, please run a full rebuild of your workspace\n" -"\n" -msgstr "" -"将自动为您创建该文件。\n" -"如果您没有看到它,请为您的工作空间重新运行一次完整的构建\n" - -#: LiteEditor/clang_driver.cpp:262 -msgid "" -"If this is a custom build project (i.e. project that uses a custom " -"makefile),\n" -"please set the CXX and CC environment variables like this:\n" -msgstr "" -"如果这是一个自定义的构建项目(即,项目使用一个自定义的 makefile),\n" -"请像这样设置 CXX 和 CC 的环境变量:\n" - -#: LiteEditor/clang_driver.cpp:263 -msgid "CXX=codelitegcc g++\n" -msgstr "" - -#: LiteEditor/clang_driver.cpp:264 -msgid "" -"CC=codelitegcc gcc\n" -"\n" -msgstr "" - -#: LiteEditor/reconcileproject.cpp:166 -msgid "No new or stale files found. The project is up-to-date" -msgstr "没有发现新的或过期的文件。该项目是最新的" - -#: LiteEditor/reconcileproject.cpp:627 -#, c-format -msgid "Delete the %i selected files from the filesystem?" -msgstr "从文件系统中删除 %i 个已选择的文件?" - -#: LiteEditor/reconcileproject.cpp:629 -msgid "Delete the selected file from the filesystem?" -msgstr "从文件系统中删除已选择的文件?" - -#: LiteEditor/reconcileproject.cpp:656 -#, c-format -msgid "%i file(s) successfully deleted" -msgstr "%i 个文件已成功删除" - -#: LiteEditor/reconcileproject.cpp:766 -msgid "Select a directory to ignore:" -msgstr "选择一个忽略的目录:" - -#: LiteEditor/wxcAboutDlg.cpp:33 SnipWiz/editsnippetsbasedlg.cpp:102 -msgid "About" -msgstr "关于" - -#: LiteEditor/wxcAboutDlg.cpp:43 -msgid "Credits" -msgstr "荣誉" - -#: LiteEditor/wxcAboutDlg.cpp:54 -msgid "License" -msgstr "许可证" - -#: LiteEditor/wxcAboutDlg.cpp:73 -msgid "Home Page:" -msgstr "主页:" - -#: LiteEditor/wxcAboutDlg.cpp:77 -msgid "http://www.codelite.org" -msgstr "http://www.codelite.org" - -#: LiteEditor/wxcAboutDlg.cpp:81 -msgid "CodeLite Forum:" -msgstr "CodeLite 论坛:" - -#: LiteEditor/wxcAboutDlg.cpp:85 -msgid "http://forums.codelite.org" -msgstr "http://www.codelite.org" - -#: LiteEditor/wxcAboutDlg.cpp:89 LiteEditor/pluginmgrdlg.cpp:145 -#: CMakePlugin/CMakePluginUi.cpp:100 Gizmos/newwxprojectbasedlg.cpp:137 -msgid "Version:" -msgstr "版本:" - -#: LiteEditor/wxcAboutDlg.cpp:101 -msgid "Support CodeLite" -msgstr "支持 CodeLite" - -#: LiteEditor/breakpointslistctrl.h:41 ExternalTools/externaltooldlg.cpp:107 -msgid "ID" -msgstr "ID" - -#: LiteEditor/breakpointslistctrl.h:43 LiteEditor/tasks_find_what_dlg.cpp:21 -msgid "Enabled" -msgstr "启用" - -#: LiteEditor/breakpointslistctrl.h:45 LiteEditor/symbols_dialog.cpp:45 -#: LiteEditor/listctrlpanelbase.cpp:36 LiteEditor/threadlistpanel.cpp:54 -#: LiteEditor/editoroptionsgeneralrightmarginpanelbase.cpp:24 -#: cscope/CscopeTabBase.cpp:45 UnitTestCPP/unittestspage.cpp:39 -msgid "Line" -msgstr "行" - -#: LiteEditor/breakpointslistctrl.h:46 LiteEditor/wxcrafter.cpp:487 -#: LiteEditor/listctrlpanelbase.cpp:34 LiteEditor/threadlistpanel.cpp:52 -msgid "Function" -msgstr "函数" - -#: LiteEditor/breakpointslistctrl.h:47 -msgid "At" -msgstr "" - -#: LiteEditor/breakpointslistctrl.h:49 -msgid "What" -msgstr "什么" - -#: LiteEditor/breakpointslistctrl.h:50 -msgid "Ignored" -msgstr "忽略" - -#: LiteEditor/breakpointslistctrl.h:51 -msgid "Extras" -msgstr "附加功能" - -#: LiteEditor/tasksfindwhatdlgbase.cpp:96 -msgid "Task Name:" -msgstr "任务名称:" - -#: LiteEditor/tasksfindwhatdlgbase.cpp:103 -msgid "Regular Expression:" -msgstr "正则表达式:" - -#: LiteEditor/editorsettingsbookmarksbasepanel.cpp:29 -#: LiteEditor/editorsettingslocalbase.cpp:130 -msgid "Display Breakpoints / Bookmarks margin" -msgstr "显示断点/书签页边" - -#: LiteEditor/editorsettingsbookmarksbasepanel.cpp:41 -msgid "Bookmark Shape:" -msgstr "书签形状:" - -#: LiteEditor/editorsettingsbookmarksbasepanel.cpp:50 -msgid "Select bookmark type:" -msgstr "选择书签类型:" - -#: LiteEditor/editorsettingsbookmarksbasepanel.cpp:61 -msgid "Select the bookmark type from the following list" -msgstr "从下面的列表中选择书签类型" - -#: LiteEditor/editorsettingsbookmarksbasepanel.cpp:66 -msgid "Bookmark label:" -msgstr "书签标签:" - -#: LiteEditor/editorsettingsbookmarksbasepanel.cpp:71 -msgid "" -"The label shown in e.g. a tooltip. You can set it to something descriptive " -"if you wish." -msgstr "所示的标签如工具提示。如果您愿意,您可以将它设置为描述性的东西。" - -#: LiteEditor/editorsettingsbookmarksbasepanel.cpp:75 -msgid "Background colour:" -msgstr "背景色:" - -#: LiteEditor/editorsettingsbookmarksbasepanel.cpp:83 -#: LiteEditor/buildsettingstabbase.cpp:40 -msgid "Foreground colour:" -msgstr "前景色:" - -#: LiteEditor/editorsettingsbookmarksbasepanel.cpp:102 -msgid "'Highlight Matching Word' colour:" -msgstr "‘高亮匹配词’颜色:" - -#: LiteEditor/editorsettingsbookmarksbasepanel.cpp:107 -msgid "" -"This lets you set the 'Highlight Matching Word' colour (the colour of words " -"that match the selection). To set the colour of the selection itself, see " -"'Settings > Syntax Highlight and Fonts'." -msgstr "" -"在这里,您可以设置‘高亮匹配词’的颜色(匹配选择词的颜色)。设置选择本身和颜" -"色,请到‘设置’> ‘语法高亮显示与字体’中设置。" - -#: LiteEditor/editorsettingsbookmarksbasepanel.cpp:111 -msgid "'Highlight Matching Word' alpha:" -msgstr "‘高亮匹配词’透明度:" - -#: LiteEditor/editorsettingsbookmarksbasepanel.cpp:116 -msgid "" -"This affects the intensity of the colour set in the field above (for words " -"matching the selection). Choose a value between 0 and 256. Higher values " -"give a less-transparent background." -msgstr "" -"设置颜色强度将会影响上述的字段(匹配选择的单词)。选择一个在 0 到 256 之间的" -"数值。不那么透明的背景应该有一个较大的数值。" - -#: LiteEditor/editoroptionsgeneralsavepanelbase.cpp:17 -#: LiteEditor/editorsettingslocalbase.cpp:210 -msgid "When saving files, trim empty lines" -msgstr "保存文件时,删除空行" - -#: LiteEditor/editoroptionsgeneralsavepanelbase.cpp:27 -msgid "Do not trim the caret line" -msgstr "不删除光标所在行" - -#: LiteEditor/editoroptionsgeneralsavepanelbase.cpp:39 -msgid "Trim only modified lines" -msgstr "只删除已修改行" - -#: LiteEditor/editoroptionsgeneralsavepanelbase.cpp:44 -#: LiteEditor/editorsettingslocalbase.cpp:220 -msgid "If missing, append EOL at end of file" -msgstr "如果文件尾不存在 EOL 时,添加之" - -#: LiteEditor/editor_options_general_guides_panel.cpp:43 -#: LiteEditor/env_var_dlg_base.cpp:51 LiteEditor/editorsettingslocal.cpp:90 -#: Gizmos/newwxprojectdlg.cpp:40 -msgid "Default" -msgstr "默认" - -#: LiteEditor/editor_options_general_guides_panel.cpp:52 -#: LiteEditor/editorsettingslocal.cpp:75 -msgid "Visible always" -msgstr "总是可见" - -#: LiteEditor/editor_options_general_guides_panel.cpp:52 -#: LiteEditor/editorsettingslocal.cpp:75 -msgid "Visible after indentation" -msgstr "缩进后可见" - -#: LiteEditor/compilercompileroptionspage.cpp:11 -#: LiteEditor/compilerlinkeroptionspage.cpp:11 -msgid "Switch" -msgstr "开关" - -#: LiteEditor/compilercompileroptionspage.cpp:70 -msgid "Are you sure you want to delete this compiler option?" -msgstr "您确定要删除此编译器选项?" - -#: LiteEditor/breakpointdlgbase.cpp:38 -msgid "Add a new breakpoint or watchpoint" -msgstr "添加新断点或监视点" - -#: LiteEditor/breakpointdlgbase.cpp:43 -msgid "Edit the selected item" -msgstr "编辑所选项" - -#: LiteEditor/breakpointdlgbase.cpp:48 -msgid "Delete the selected item" -msgstr "删除所选项" - -#: LiteEditor/breakpointdlgbase.cpp:52 LiteEditor/reconcileprojectbase.cpp:171 -msgid "Delete &All" -msgstr "删除全部(&A)" - -#: LiteEditor/breakpointdlgbase.cpp:53 -msgid "Delete all breakpoints and watchpoints" -msgstr "删除全部断点和监视点" - -#: LiteEditor/breakpointdlgbase.cpp:57 -msgid "Set Pending" -msgstr "设置待定" - -#: LiteEditor/breakpointdlgbase.cpp:58 -msgid "" -"If this button is visible, there are breakpoints that you tried to set, but " -"that the debugger refused. This most often happens when the breakpoint is " -"inside a library that hadn't been loaded when the debugger started.\n" -"\n" -"Click to offer the breakpoints to the debugger again." -msgstr "" -"如果此按钮可见,表示调试器拒绝了您要设置的断点。这通常因为断点位于调试器启动" -"时没有加载的库里面。\n" -"点击将重新提交断点到调试器。" - -#: LiteEditor/breakpointdlgbase.cpp:107 -msgid "Select the type of the breakpoint:" -msgstr "选择断点类型:" - -#: LiteEditor/breakpointdlgbase.cpp:116 LiteEditor/breakpointdlg.cpp:194 -#: LiteEditor/breakpointpropertiesdlg.cpp:205 -msgid "Breakpoint" -msgstr "断点" - -#: LiteEditor/breakpointdlgbase.cpp:121 -msgid "Break by line, function or memory address:" -msgstr "中断行,函数或内存地址:" - -#: LiteEditor/breakpointdlgbase.cpp:136 -msgid "Line number" -msgstr "行号" - -#: LiteEditor/breakpointdlgbase.cpp:142 -msgid "" -"Enter the line-number on which you wish to break. It's assumed to refer to " -"the current file: if it doesn't, please enter the correct filepath below." -msgstr "" -"输入您要中断的行号,默认指当前文件。如果不是,请在下面输入正确的文件路径。" - -#: LiteEditor/breakpointdlgbase.cpp:146 -msgid "Function name" -msgstr "函数名" - -#: LiteEditor/breakpointdlgbase.cpp:152 -msgid "" -"If you wish to break when a particular function is entered, insert its name " -"here. In C just the name will do e.g. 'main' or 'myFoo'. For C++ class " -"methods, you need to do 'MyClass::myFoo'\n" -"\n" -"Alternatively you can enter a regular expression, and tick the checkbox " -"below. A breakpoint will then be set on all matching functions." -msgstr "" -"如果您想在进入特定函数时中断,在此输入它的名称。在 C 里面的名称形如 'main' 或" -"者 'myFoo',而 C++ 类的方法,您需要用 'MyClass::myFoo'\n" -"\n" -"或者,您可以输入正则表达式,并且勾选下面的复选框,这将为所有匹配的函数添加断" -"点。" - -#: LiteEditor/breakpointdlgbase.cpp:158 -msgid "This is a regex" -msgstr "这是个正则表达式" - -#: LiteEditor/breakpointdlgbase.cpp:160 -msgid "" -"If you wish to insert a breakpoint on several functions, you can tick this " -"box, then enter a suitable regular expression in the textctrl above." -msgstr "如果您想在多个函数插入断点,勾选此复选框,并输入合适的正则表达式。" - -#: LiteEditor/breakpointdlgbase.cpp:164 -msgid "Memory address:" -msgstr "内存地址:" - -#: LiteEditor/breakpointdlgbase.cpp:170 -msgid "" -"To break on a memory address, enter the address here.\n" -"e.g. 0x0a1b2c3d or 12345678" -msgstr "" -"要在某内存地址中断,在此输入地址。\n" -"例如 0x0a1b2c3d 或 12345678" - -#: LiteEditor/breakpointdlgbase.cpp:174 -msgid "In file:" -msgstr "在文件:" - -#: LiteEditor/breakpointdlgbase.cpp:183 -msgid "" -"If you've entered a line-number, its assumed to refer to the current file. " -"If it isn't, enter the correct filename here.\n" -"\n" -"For a function, a file is usually not required. However, if you have several " -"functions with the same name, in several different files (do people _really_ " -"do that?) and you want to break on only one of those, enter the correct " -"filename here." -msgstr "" -"如果您输入一个行编号,它会假定参考当前文件。如果不是,请在这里输入正确的文件" -"名称。\n" -"\n" -"对于一个函数,文件通常不是必需的。然而,如果您有有多个名称相同的函数位于几个" -"不同的文件中(人们真的这样做吗?),并且您只想要找到其中的一个,请在这里输入" -"正确的文件名称。" - -#: LiteEditor/breakpointdlgbase.cpp:196 LiteEditor/breakpointdlg.cpp:194 -#: LiteEditor/breakpointpropertiesdlg.cpp:83 -msgid "Watchpoint" -msgstr "监视点" - -#: LiteEditor/breakpointdlgbase.cpp:205 -msgid "Type of watchpoint:" -msgstr "监视点类型" - -#: LiteEditor/breakpointdlgbase.cpp:206 -msgid "" -"The usual type of watchpoint is 'write-only': that is, it's triggered " -"whenever the target is changed.\n" -"\n" -"Alternatively you can choose for it to trigger when the target is read from, " -"or either written to or read from." -msgstr "" -"监视点的通常类型为’只写‘:即,它会在目标被改变时触发。\n" -"\n" -"或者您可在目标读取、或写入、读取时选择触发类型。" - -#: LiteEditor/breakpointdlgbase.cpp:211 -msgid "Data to watch:" -msgstr "要监视的数据:" - -#: LiteEditor/breakpointdlgbase.cpp:216 -msgid "" -"Identify the data to be watched. It can be one of:\n" -"1) Any variable name e.g. 'foo'\n" -"2) A memory address, suitably cast e.g.*(int*)0x12345678 will watch an int-" -"sized block starting at this address.\n" -"Don't include spaces in the expression: gdb can't understand them.\n" -"3) A complex expression e.g. a*b + c/d'. The expression can use any " -"operators valid in the program's native language.\n" -"\n" -"NB. A watchpoint set on a local variable will automatically be removed when " -"the variable loses scope." -msgstr "" -"指定要查看的数据。它可以是以下情况之一:\n" -"1) 任意的变量名称,例如:‘foo’\n" -"2) 一个内存地址, 合适的例子:从 *(int*)0x12345678 开始,将查看一个整型大小的" -"字节块。\n" -"表达式中不要包含空格:gdb 无法理解它们的。\n" -"3) 一个复杂的表达式,例如:‘a*b + c/d’。 在程序的本机语言中表达式能够使用任意" -"有效的计算符。\n" -"\n" -"NB. 当变量失去范围后,设置在局部变量中的监视点将自动被移除。" - -#: LiteEditor/breakpointdlgbase.cpp:224 -msgid "Conditional Breaks: Add any condition here" -msgstr "条件断点:在这里添加任何条件" - -#: LiteEditor/breakpointdlgbase.cpp:229 -msgid "" -"You can add a condition to any breakpoint or watchpoint. The debugger will " -"then stop only if the condition is met.\n" -"\n" -"The condition can be any simple or complex expression in your programming " -"language,providing it returns a bool. However any variables that you use " -"must be in scope.\n" -"\n" -"If you've previously set a condition and no longer want it, just clear this " -"textctrl." -msgstr "" -"您可以添加一个条件断点或监视点。调试器将只有在条件满足时停止。\n" -"\n" -"该条件可以是任何在你的编程语言中简单的或复杂的表达式,它将返回一个 bool 值。" -"当然,使用任何变量都必须在范围之内。\n" -"\n" -"如果您之前已经设置了一个条件但现在又不再想要了,就可以清除掉它们。" - -#: LiteEditor/breakpointdlgbase.cpp:233 -msgid "Command List: Add any command(s) here" -msgstr "命令列表:在此添加任何命令" - -#: LiteEditor/breakpointdlgbase.cpp:238 -msgid "" -"You can add a list of commands to any breakpoint or watchpoint. When the " -"breakpoint is hit and the program interrupted, those commands will be " -"executed.\n" -"\n" -"For example, to print the value of the variable foo and then continue " -"running the program, enter:\n" -"print foo\n" -"cont\n" -"\n" -"If you've previously entered commands, and no longer want them, just clear " -"this textctrl." -msgstr "" -"您可以给任何断点或监视点添加命令列表。当断点到达时程序将中断,这些命令将被执" -"行。\n" -"\n" -"比如,打印输出变量 foo 的值并继续运行程序,输入:\n" -"print foo\n" -"cont\n" -"\n" -"如果您之前已经输入了命令但现在又不再想要了,就可以清除掉它们。" - -#: LiteEditor/breakpointdlgbase.cpp:252 -msgid "Disable" -msgstr "禁用" - -#: LiteEditor/breakpointdlgbase.cpp:254 -msgid "" -"If you check this box, the breakpoint (or watchpoint) will still exist, but " -"it won't trigger. If you uncheck it in the future, the breakpoint will work " -"again." -msgstr "" -"如您勾选它,断点(或监视点)将依旧存在,但不会被触发。如您在以后取消勾选它,此" -"断点将重新工作。" - -#: LiteEditor/breakpointdlgbase.cpp:258 -msgid "Make temporary" -msgstr "设为临时" - -#: LiteEditor/breakpointdlgbase.cpp:260 -msgid "" -"A temporary breakpoint (or watchpoint) is one that works only once. When " -"it's hit it behaves like any other, except that it's then deleted." -msgstr "" -"临时断点(或监视点)近工作一次。除了事后会被删除外,它被触发时表现和其它一样。" - -#: LiteEditor/breakpointdlgbase.cpp:264 -msgid "Ignore count:" -msgstr "忽略数目:" - -#: LiteEditor/breakpointdlgbase.cpp:265 -msgid "" -"Enter a count >0 to ignore this breakpoint (or watchpoint) for that number " -"of times. It then behaves as though it is disabled, except that every time " -"it would have triggered, the ignore count decrements.\n" -"When the count reaches zero, the breakpoint becomes active again." -msgstr "" -"输入一个大于 0 的用于忽略断点(或监视点)次数的数字。然后,除了每次触发时计数" -"的递减,它就像被禁用了。\n" -"当计数到达零时,断点将再次变为活动状态。" - -#: LiteEditor/breakpointdlgbase.h:103 -msgid "Breakpoint and Watchpoint Properties" -msgstr "断点和监视点属性" - -#: LiteEditor/listctrlpanel.cpp:119 -msgid "Copy Backtrace to Clipboard" -msgstr "复制栈信息到剪贴板" - -#: LiteEditor/quickdebugbase.h:91 -msgid "Quick Debug" -msgstr "快速调试" - -#: LiteEditor/dialogspagebase.cpp:17 -msgid "" -"Below is a list of the 'annoying' dialogs answers, you can modify \n" -"the answer of a dialog by checking / unchecking the saved answer" -msgstr "" -"以下为’讨厌‘对话框回答列表,您可以修改\n" -"这些对话框的答案,通过勾选/取消勾选那些已保存的回答" - -#: LiteEditor/symbols_dialog_base.h:74 -msgid "Resolve Ambiguity" -msgstr "解决歧义" - -#: LiteEditor/pluginmgrdlg.cpp:143 -msgid "Plugin Name:" -msgstr "插件名称:" - -#: LiteEditor/pluginmgrdlg.cpp:144 Subversion2/subversion2_ui.cpp:533 -msgid "Author:" -msgstr "作者:" - -#: LiteEditor/pluginmgrdlg.cpp:147 -msgid "Status:" -msgstr "状态:" - -#: LiteEditor/editorsettingsmiscbasepanel.cpp:39 -msgid "Look and Feel:" -msgstr "界面外观:" - -#: LiteEditor/editorsettingsmiscbasepanel.cpp:50 -msgid "Icon Set:" -msgstr "图标设置:" - -#: LiteEditor/editorsettingsmiscbasepanel.cpp:63 -msgid "Toolbar Icon Size:" -msgstr "工具栏图标尺寸:" - -#: LiteEditor/editorsettingsmiscbasepanel.cpp:75 -msgid "Use single toolbar" -msgstr "使用单一工具栏" - -#: LiteEditor/editorsettingsmiscbasepanel.cpp:80 -msgid "Enable Windows(R) theme for Vista / Windows 7" -msgstr "为Vista / Windows 7 启用 Windows(R) 主题" - -#: LiteEditor/editorsettingsmiscbasepanel.cpp:85 -msgid "Other:" -msgstr "其它:" - -#: LiteEditor/editorsettingsmiscbasepanel.cpp:89 -msgid "Show splashscreen on startup" -msgstr "启动时显示画面" - -#: LiteEditor/editorsettingsmiscbasepanel.cpp:91 -msgid "Show codelite's splashscreen when it first started" -msgstr "启动 CodeLite 时显示启动画面" - -#: LiteEditor/editorsettingsmiscbasepanel.cpp:95 -msgid "Allow only single instance running" -msgstr "仅允许运行一个实例" - -#: LiteEditor/editorsettingsmiscbasepanel.cpp:97 -msgid "There can be only one" -msgstr "只能有一个" - -#: LiteEditor/editorsettingsmiscbasepanel.cpp:101 -msgid "Check for new version on startup" -msgstr "启动时检查更新" - -#: LiteEditor/editorsettingsmiscbasepanel.cpp:103 -msgid "" -"When codelite starts, it will connect to http://codelite.org to check if a " -"new version of codelite was released" -msgstr "" -"当 CodeLite 启动时,它将连接到 http://codelite.org 来检查 CodeLite 是否有新的" -"版本更新" - -#: LiteEditor/editorsettingsmiscbasepanel.cpp:107 -msgid "Load last session on startup" -msgstr "启动时载入上次会话" - -#: LiteEditor/editorsettingsmiscbasepanel.cpp:109 -msgid "" -"When launched, codelite will restore the last opened workspace + all open " -"editors" -msgstr "启动时,CodeLite 将恢复最后打开的工作空间和所有打开的编辑器" - -#: LiteEditor/editorsettingsmiscbasepanel.cpp:114 -msgid "Frame Title" -msgstr "框架标题" - -#: LiteEditor/editorsettingsmiscbasepanel.cpp:121 -msgid "Set CodeLite frame's title" -msgstr "设置 CodeLite 框架标题" - -#: LiteEditor/editorsettingsmiscbasepanel.cpp:121 -msgid "Set custom title to codelite's main frame" -msgstr "在 CodeLite 主框架中设置自定义标题" - -#: LiteEditor/editorsettingsmiscbasepanel.cpp:127 -msgid "You can use the following macros to construct your own frame title:" -msgstr "您可以使用下面的宏命令来构建自己的框架标题:" - -#: LiteEditor/editorsettingsmiscbasepanel.cpp:138 -msgid "$user" -msgstr "$user" - -#: LiteEditor/editorsettingsmiscbasepanel.cpp:145 -msgid "the current user name inside square brackets" -msgstr "当前用户名在方括号内" - -#: LiteEditor/editorsettingsmiscbasepanel.cpp:149 -msgid "$filename" -msgstr "$filename" - -#: LiteEditor/editorsettingsmiscbasepanel.cpp:156 -msgid "the current file name" -msgstr "当前文件名称" - -#: LiteEditor/editorsettingsmiscbasepanel.cpp:160 -msgid "$fullpath" -msgstr "$fullpath" - -#: LiteEditor/editorsettingsmiscbasepanel.cpp:167 -msgid "the current file fullpath" -msgstr "当前文件完整路径" - -#: LiteEditor/editorsettingsmiscbasepanel.cpp:171 -msgid "$workspace" -msgstr "$workspace" - -#: LiteEditor/editorsettingsmiscbasepanel.cpp:178 -msgid "the current workspace name inside square brackets" -msgstr "当前工作空间名称在方括号内" - -#: LiteEditor/editorsettingsmiscbasepanel.cpp:182 -msgid "Frame title:" -msgstr "框架标题:" - -#: LiteEditor/editorsettingsmiscbasepanel.cpp:191 -msgid "Encoding & Locale" -msgstr "编码和语言环境" - -#: LiteEditor/editorsettingsmiscbasepanel.cpp:203 -msgid "File font encoding:" -msgstr "文件字体编码:" - -#: LiteEditor/editorsettingsmiscbasepanel.cpp:214 -msgid "Enable localization" -msgstr "启用本地化" - -#: LiteEditor/editorsettingsmiscbasepanel.cpp:216 -msgid "" -"View CodeLite's strings translated into a different language, if available. " -"This will also make CodeLite use other aspects of the locale." -msgstr "" -"如果可用的话,查看 CodeLite 已被翻译成另一种语言的字符串。这将让 CodeLite 使" -"用其他的语言。" - -#: LiteEditor/editorsettingsmiscbasepanel.cpp:220 -msgid "Locale to use:" -msgstr "要使用的语言环境:" - -#: LiteEditor/editorsettingsmiscbasepanel.cpp:226 -msgid "" -"These are the locales that are available on your system. There won't " -"necessarily be CodeLite translations for all of them." -msgstr "" -"在您的系统上这些区域设置都是可用的。但它们不一定都有 CodeLite 翻译文件。" +#: LiteEditor/dbgcommandbasedlg.cpp:57 +msgid "Expression:" +msgstr "表达式:" -#: LiteEditor/editorsettingsmiscbasepanel.cpp:231 -msgid "History" -msgstr "历史" +#: LiteEditor/dbgcommandbasedlg.cpp:64 +msgid "Debugger command:" +msgstr "调试器命令:" -#: LiteEditor/editorsettingsmiscbasepanel.cpp:239 -msgid "Clear recent workspace / files history" -msgstr "清除最近工作空间/文件历史记录" +#: LiteEditor/ps_general_page.cpp:172 LiteEditor/new_build_tab.cpp:949 +#: LiteEditor/ps_compiler_page.cpp:120 +#: DatabaseExplorer/SqlCommandPanel.cpp:299 +msgid "Choose a file" +msgstr "选择一个文件" -#: LiteEditor/editorsettingsmiscbasepanel.cpp:248 -msgid "Max items kept in find / replace dialog:" -msgstr "查找/替换会话中最多结果项:" +#: LiteEditor/ps_general_page.cpp:181 +msgid "Choose a directory" +msgstr "单击选择一个目录" -#: LiteEditor/editorsettingsmiscbasepanel.cpp:256 -msgid "Maximum number of tabs opened in the editor:" -msgstr "编辑器中打开的最大标签数目:" +#: LiteEditor/newworkspacebasedlg.h:54 LiteEditor/wxcrafter.cpp:400 +msgid "New Workspace" +msgstr "新建工作区" -#: LiteEditor/editorsettingsmiscbasepanel.cpp:264 -msgid "Reset annoying dialogs answers:" -msgstr "重置讨厌的对话框回答:" +#: LiteEditor/filechecklistbase.h:46 +msgid "Select Files" +msgstr "选择文件" -#: LiteEditor/editorsettingsmiscbasepanel.cpp:268 -msgid "&Reset" -msgstr "重置(&R)" +#: LiteEditor/filechecklistbase.h:77 +msgid "Files were modified outside the editor" +msgstr "文件在编辑器外已被修改" -#: LiteEditor/editorsettingsmiscbasepanel.cpp:286 -msgid "CodeLite's Log-file verbosity:" -msgstr "CodeLite 日志文件信息显示:" +#: LiteEditor/addoptioncheckdlgbase.cpp:44 +msgid "Check the command line options you need" +msgstr "检查您需要的命令行选项" -#: LiteEditor/editorsettingsmiscbasepanel.cpp:296 -msgid "" -"codelite logs to file various events, this option controls the logging " -"verbosity" -msgstr "codelite 日志记录各种事件,这个选项控制着日志记录的详细程度" +#: LiteEditor/addoptioncheckdlgbase.cpp:55 +msgid "Enter other options" +msgstr "输入其它选项" -#: LiteEditor/editorsettingsmiscbasepanel.cpp:301 -msgid "Open.." -msgstr "打开.." +#: LiteEditor/addoptioncheckdlgbase.cpp:63 +msgid "Command line" +msgstr "命令行" -#: LiteEditor/editorsettingsmiscbasepanel.cpp:302 -msgid "Open the log file into an editor" -msgstr "在编辑器中打开日志文件" +#: LiteEditor/rename_symbool_dlg.h:81 +msgid "Rename Symbol" +msgstr "重命名符号" -#: LiteEditor/editorsettingsmiscbasepanel.cpp:306 -msgid "GTK only: Redirect stdout/stderr output to a log file" -msgstr "仅 GTK:将 stdout/stderr 输出重定向到日志文件中" +#: LiteEditor/rename_symbool_dlg.h:106 +msgid "Rename Symbol Scope" +msgstr "重命名符号范围" -#: LiteEditor/editorsettingsmiscbasepanel.cpp:308 -msgid "" -"If ticked, all output from e.g. cout or wxLogDebug will be redirected to the " -"file .codelite/codelite-stdout-stderr.log" -msgstr "" -"如果勾选此项,所有例如如 cout 或 wxLogDebug 的输出将被重定向到 .codelite/" -"codelite-stdout-stderr.log 文件" +#: LiteEditor/new_build_tab.cpp:370 +msgid "errors" +msgstr "错误" -#: LiteEditor/syntaxhighlightdlg.cpp:89 -msgid "Colouring scheme:" -msgstr "着色方案:" - -#: LiteEditor/syntaxhighlightdlg.cpp:258 -msgid "" -"Are you sure you want to load all default syntax highlight settings and lose " -"all your changes?" -msgstr "是否确定加载所有默认的语法高亮设置并丢弃您所有的更改?" +#: LiteEditor/new_build_tab.cpp:370 +msgid "warnings" +msgstr "警告" -#: LiteEditor/new_quick_watch_dlg.cpp:74 -#: LiteEditor/new_quick_watch_dlg.cpp:133 -msgid "Loading..." -msgstr "加载..." +#: LiteEditor/new_build_tab.cpp:377 +msgid "total time" +msgstr "总时间" -#: LiteEditor/new_quick_watch_dlg.cpp:309 LiteEditor/cl_editor.cpp:3379 -msgid "Add Watch" -msgstr "添加监视点" +#: LiteEditor/new_build_tab.cpp:377 +msgid "seconds" +msgstr "秒" -#: LiteEditor/new_quick_watch_dlg.cpp:310 -msgid "Copy Value to Clipboard" -msgstr "复制值到剪贴板" +#: LiteEditor/new_build_tab.cpp:385 +msgid "(Build Cancelled)" +msgstr "(构建已取消)" -#: LiteEditor/new_quick_watch_dlg.cpp:311 LiteEditor/compiler_pages.cpp:59 -#: LiteEditor/compiler_pages.cpp:98 LiteEditor/compiler_pages.cpp:391 -#: LiteEditor/compiler_pages.cpp:404 -#: LiteEditor/project_settings_base_dlg.cpp:793 -#: LiteEditor/debuggersettingsbasedlg.cpp:135 -#: ExternalTools/externaltoolsbasedlg.cpp:32 -msgid "Edit..." -msgstr "编辑..." +#: LiteEditor/new_build_tab.cpp:949 +msgid "Select a file to open:" +msgstr "选择要打开的文件:" -#: LiteEditor/filechecklistbase.h:81 -msgid "Select Files" -msgstr "选择文件" +#: LiteEditor/new_build_tab.cpp:1051 +msgid "Copy Selected Line" +msgstr "复制已选择行" -#: LiteEditor/editcmpfileinfobase.h:83 -msgid "File Type Settings" -msgstr "文件类型设置" +#: LiteEditor/new_build_tab.cpp:1052 +msgid "Copy Entire Build Output To Clipboard" +msgstr "复制整个构建输出到剪贴板" -#: LiteEditor/implementparentvirtualfunctionsbase.cpp:30 +#: LiteEditor/new_build_tab.cpp:1053 +msgid "Open Build Output in an Empty Editor" +msgstr "在空的编辑器中打开构建输出" + +#: LiteEditor/implementparentvirtualfunctionsbase.cpp:55 msgid "Implement inherited virtual functions" msgstr "实现继承的虚函数" -#: LiteEditor/implementparentvirtualfunctionsbase.cpp:30 +#: LiteEditor/implementparentvirtualfunctionsbase.cpp:55 msgid "" "Select from the list below the functions that you want to override in your " "class" msgstr "从以下列表中选择你想要在类中覆盖的函数" -#: LiteEditor/implementparentvirtualfunctionsbase.cpp:40 +#: LiteEditor/implementparentvirtualfunctionsbase.cpp:65 msgid "File:" msgstr "文件:" -#: LiteEditor/implementparentvirtualfunctionsbase.cpp:45 +#: LiteEditor/implementparentvirtualfunctionsbase.cpp:70 msgid "Generate the functions in this filename" msgstr "在这个文件名中生成函数" -#: LiteEditor/implementparentvirtualfunctionsbase.cpp:54 +#: LiteEditor/implementparentvirtualfunctionsbase.cpp:79 msgid "" "Select which function to generate by ticking the '?' column\n" "All fields on this table are editable" msgstr "" -"选择标记有‘?’的函数生成的列\n" +"选择标记有“?”的函数生成的列\n" "在此表中所有字段都是可编辑的" -#: LiteEditor/implementparentvirtualfunctionsbase.cpp:66 +#: LiteEditor/implementparentvirtualfunctionsbase.cpp:87 +#: LiteEditor/setters_getters.cpp:78 LiteEditor/wxcrafter.cpp:316 +#: LiteEditor/rename_symbool_dlg.cpp:82 +#: LiteEditor/importfilesdialog_new.cpp:52 CMakePlugin/CMakePluginUi.cpp:104 +#: codelitephp/php-plugin/php_ui.cpp:2145 +msgid "?" +msgstr "?" + +#: LiteEditor/implementparentvirtualfunctionsbase.cpp:91 msgid "public" -msgstr "" +msgstr "公共" -#: LiteEditor/implementparentvirtualfunctionsbase.cpp:67 +#: LiteEditor/implementparentvirtualfunctionsbase.cpp:92 msgid "protected" -msgstr "" +msgstr "受保护的" -#: LiteEditor/implementparentvirtualfunctionsbase.cpp:68 +#: LiteEditor/implementparentvirtualfunctionsbase.cpp:93 msgid "private" -msgstr "" +msgstr "私有" -#: LiteEditor/implementparentvirtualfunctionsbase.cpp:69 +#: LiteEditor/implementparentvirtualfunctionsbase.cpp:94 msgid "Visibility" -msgstr "" +msgstr "可见度" -#: LiteEditor/implementparentvirtualfunctionsbase.cpp:72 +#: LiteEditor/implementparentvirtualfunctionsbase.cpp:97 msgid "Virtual" -msgstr "" +msgstr "虚拟" -#: LiteEditor/implementparentvirtualfunctionsbase.cpp:73 +#: LiteEditor/implementparentvirtualfunctionsbase.cpp:98 msgid "Generate doxygen comment?" -msgstr "插入 Doxygen 注释?" +msgstr "生成 Doxygen 注释吗?" -#: LiteEditor/implementparentvirtualfunctionsbase.cpp:78 -#: LiteEditor/wxcrafter.cpp:492 +#: LiteEditor/implementparentvirtualfunctionsbase.cpp:103 +#: LiteEditor/wxcrafter.cpp:322 msgid "Check all" msgstr "全选" -#: LiteEditor/implementparentvirtualfunctionsbase.cpp:82 -#: LiteEditor/wxcrafter.cpp:496 +#: LiteEditor/implementparentvirtualfunctionsbase.cpp:107 +#: LiteEditor/wxcrafter.cpp:326 msgid "Uncheck all" -msgstr "全不选" +msgstr "取消所有" -#: LiteEditor/implementparentvirtualfunctionsbase.cpp:90 +#: LiteEditor/implementparentvirtualfunctionsbase.cpp:115 msgid "Format text after insertion" msgstr "插入后格式化" -#: LiteEditor/reconcileprojectbase.h:138 -msgid "Select filetypes to reconcile" -msgstr "选择文件类型来调解一致" +#: LiteEditor/taskpanel.cpp:53 +msgid "Sources" +msgstr "源文件" -#: LiteEditor/reconcileprojectbase.h:161 -msgid "Allocate by regex" -msgstr "通过正则表达式分配" +#: LiteEditor/taskpanel.cpp:55 cppchecker/cppchecksettingsdlg.cpp:148 +msgid "All Files" +msgstr "所有文件" -#: LiteEditor/ps_general_page.cpp:142 -msgid "Choose a directory" -msgstr "选择一个目录" +#: LiteEditor/taskpanel.cpp:60 menu.xrc:334 +msgid "&Search" +msgstr "搜索(&S)" -#: LiteEditor/editorsettingslocalbase.h:90 LiteEditor/editorsettingslocal.h:36 -msgid "Local Preferences" -msgstr "本地偏好" +#: LiteEditor/taskpanel.cpp:63 LiteEditor/tasksfindwhatdlgbase.h:81 +msgid "Find What..." +msgstr "查找内容..." -#: LiteEditor/new_build_tab.cpp:315 -msgid "errors" +#: LiteEditor/taskpanel.cpp:69 +msgid "Select the scope of the search" +msgstr "选择搜索范围" + +#: LiteEditor/taskpanel.cpp:74 +msgid "Encoding to use for the search" +msgstr "用于搜索的编码" + +#: LiteEditor/clang_driver.cpp:285 +msgid "" +"Could not locate compilation database or database version is not up-to-date: " +msgstr "无法定位编译器数据库或数据库版本不是最新的:" + +#: LiteEditor/clang_driver.cpp:287 +msgid "" +"This file should be created automatically for you.\n" +"If you don't have it, please run a full rebuild of your workspace\n" +"\n" +msgstr "" +"将自动为您创建该文件。\n" +"如果您没有看到它,请为您的工作区重新运行一次完整的构建\n" + +#: LiteEditor/clang_driver.cpp:289 +msgid "" +"If this is a custom build project (i.e. project that uses a custom " +"makefile),\n" +"please set the CXX and CC environment variables like this:\n" +msgstr "" +"如果这是一个自定义的构建项目(即,项目使用一个自定义的 makefile),\n" +"请像这样设置 CXX 和 CC 的环境变量:\n" + +#: LiteEditor/clang_driver.cpp:290 +msgid "CXX=codelite-cc g++\n" +msgstr "CXX=codelitegcc g++\n" + +#: LiteEditor/clang_driver.cpp:291 +msgid "" +"CC=codelite-cc gcc\n" +"\n" +msgstr "" +"CC=codelitegcc gcc\n" +"\n" + +#: LiteEditor/plugindlgbase.cpp:44 +msgid "Available Plugins:" +msgstr "可用的插件:" + +#: LiteEditor/plugindlgbase.cpp:72 LiteEditor/setters_getters.cpp:83 +#: LiteEditor/batchbuildbasedlg.cpp:68 LiteEditor/filechecklistbase.cpp:50 +#: Copyright/copyrights_proj_sel_base_dlg.cpp:63 +#: UnitTestCPP/testclassbasedlg.cpp:112 +msgid "Check &All" +msgstr "全选(&A)" + +#: LiteEditor/pluginmanager.cpp:273 +msgid " ToolBar" +msgstr " 工具栏" + +#: LiteEditor/quickdebugbase.cpp:40 +msgid "Select executable:" +msgstr "选择可执行文件:" + +#: LiteEditor/quickdebugbase.cpp:46 +msgid "" +"Enter the filepath to the program that you want to debug.\n" +"Alternatively, if you enter the path below, putting just the filename here " +"will suffice." +msgstr "" +"输入您想要调试程序的文件路径。\n" +"或者,如果您输入的是下列路径,只需要填写文件名就可以了。" + +#: LiteEditor/quickdebugbase.cpp:64 +msgid "" +"Optionally, enter the path where the program that you want to debug can be " +"found" +msgstr "可选项,输入您想要调试的程序的路径" + +#: LiteEditor/quickdebugbase.cpp:75 +msgid "Program arguments:" +msgstr "程序参数:" + +#: LiteEditor/quickdebugbase.cpp:90 LiteEditor/ps_debugger_page.cpp:106 +#: LiteEditor/debugcoredumpbase.cpp:87 +msgid "Select debugger:" +msgstr "选择调试器:" + +#: LiteEditor/quickdebugbase.cpp:103 +msgid "Startup commands:" +msgstr "启动命令:" + +#: LiteEditor/threadlistpanel.cpp:50 +msgid "Thread ID" +msgstr "线程 ID" + +#: LiteEditor/threadlistpanel.cpp:51 +msgid "Active" +msgstr "活动" + +#: LiteEditor/threadlistpanel.cpp:52 LiteEditor/wxcrafter.cpp:317 +#: LiteEditor/breakpointslistctrl.h:46 LiteEditor/listctrlpanelbase.cpp:59 +#: LLDBDebugger/UI.cpp:34 LLDBDebugger/UI.cpp:162 LLDBDebugger/UI.cpp:558 +msgid "Function" +msgstr "函数" + +#: LiteEditor/CompilerMainPage.h:78 +msgid "Compiler option" +msgstr "编译器选项" + +#: LiteEditor/CompilerMainPage.h:87 +msgid "Linker option" +msgstr "链接器选项" + +#: LiteEditor/dbcontentcacher.cpp:58 +#, c-format +msgid "Symbols file loaded into OS file system cache (%ld seconds)" +msgstr "符号文件加载到系统文件系统缓存(%ld 秒)" + +#: LiteEditor/wxcrafter.h:159 +msgid "Add function implementation" +msgstr "添加函数实现" + +#: LiteEditor/wxcrafter.h:296 +msgid "EditorFrame" +msgstr "编辑框" + +#: LiteEditor/wxcrafter.h:362 +msgid "New Project Wizard" +msgstr "新建项目向导" + +#: LiteEditor/wxcrafter.h:441 +msgid "Open Folder" +msgstr "打开文件夹" + +#: LiteEditor/fileview.cpp:445 +msgid "Run " +msgstr "运行" + +#: LiteEditor/fileview.cpp:837 +msgid "Add Existing Item" +msgstr "添加现有项" + +#: LiteEditor/fileview.cpp:869 +msgid "New Item" +msgstr "新建项" + +#: LiteEditor/fileview.cpp:971 +msgid "Are you sure you want remove '" +msgstr "您确定要移除“" + +#: LiteEditor/fileview.cpp:979 LiteEditor/fileview.cpp:1018 +msgid "Remember my answer and apply it all files" +msgstr "记住我的回答并应用到所有文件" + +#: LiteEditor/fileview.cpp:984 LiteEditor/fileview.cpp:1023 +#: LiteEditor/frame.cpp:2551 +msgid "Are you sure?" +msgstr "您确定吗?" + +#: LiteEditor/fileview.cpp:1010 +msgid "Do you also want to delete the file '" +msgstr "您还想要删除这个文件“" + +#: LiteEditor/fileview.cpp:1010 +msgid "' from disc?" +msgstr "”来自光盘?" + +#: LiteEditor/fileview.cpp:1031 +msgid "" +"An error occurred during file removal. Maybe it has been already deleted or " +"you don't have the necessary permissions" +msgstr "文件移动时出现错误。可能它已经被删除或者您没有足够的权限" + +#: LiteEditor/fileview.cpp:1035 LiteEditor/fileview.cpp:1039 +#: LiteEditor/manager.cpp:287 LiteEditor/manager.cpp:304 +#: LiteEditor/manager.cpp:498 LiteEditor/manager.cpp:592 +#: LiteEditor/manager.cpp:660 LiteEditor/manager.cpp:994 +#: LiteEditor/manager.cpp:1021 LiteEditor/manager.cpp:1173 +#: LiteEditor/manager.cpp:1324 LiteEditor/newworkspacedlg.cpp:107 +#: LiteEditor/cl_editor.cpp:1209 LiteEditor/advanced_settings.cpp:143 +#: Gizmos/newwxprojectdlg.cpp:103 DatabaseExplorer/DbViewerPanel.cpp:540 +msgid "Error" msgstr "错误" -#: LiteEditor/new_build_tab.cpp:315 -msgid "warnings" -msgstr "警告" +#: LiteEditor/fileview.cpp:1071 +msgid " and all its content will be removed from the project." +msgstr " 以及它的全部内容将从该项目移除。" -#: LiteEditor/new_build_tab.cpp:322 -msgid "total time" -msgstr "总时间" +#: LiteEditor/fileview.cpp:1207 +msgid "You are about to remove project '" +msgstr "您将要移除项目“" -#: LiteEditor/new_build_tab.cpp:322 -msgid "seconds" -msgstr "秒" +#: LiteEditor/fileview.cpp:1209 +msgid " from the workspace, click 'Yes' to proceed or 'No' to abort." +msgstr " 从该工作区,点击“是”继续或“否”中止。" -#: LiteEditor/new_build_tab.cpp:330 -msgid "(Build Cancelled)" -msgstr "(构建取消)" +#: LiteEditor/fileview.cpp:1340 +msgid "Compiling file: " +msgstr "编译文件:" -#: LiteEditor/new_build_tab.cpp:924 -msgid "Select a file to open:" -msgstr "选择要打开的文件:" +#: LiteEditor/fileview.cpp:1340 LiteEditor/fileview.cpp:1360 +msgid " of project " +msgstr " 项目 " -#: LiteEditor/new_build_tab.cpp:1007 -msgid "Copy Selected Line" -msgstr "复制已选择行" +#: LiteEditor/fileview.cpp:1360 +msgid "Preprocessing file: " +msgstr "预处理文件:" -#: LiteEditor/new_build_tab.cpp:1008 -msgid "Copy Entire Build Output To Clipboard" -msgstr "复制整个构建输出到剪贴板" +#: LiteEditor/fileview.cpp:1571 +msgid "Failed to find file: " +msgstr "查找文件失败:" -#: LiteEditor/new_build_tab.cpp:1009 -msgid "Open Build Output in an Empty Editor" -msgstr "在空的编辑器中打开构建输出" +#: LiteEditor/fileview.cpp:1571 +msgid " in FileView." +msgstr " 在文件视图。" -#: LiteEditor/compiler_pages.cpp:33 -msgid "Compiler Errors Patterns:" -msgstr "编译器错误模式?" +#: LiteEditor/fileview.cpp:1772 LiteEditor/fileview.cpp:1843 +msgid "Adding file: " +msgstr "正在添加文件:" + +#: LiteEditor/fileview.cpp:1907 +#: codelitephp/php-plugin/php_workspace_view.cpp:624 +msgid "New file name:" +msgstr "新建文件名称:" + +#: LiteEditor/fileview.cpp:1907 +msgid "Rename file:" +msgstr "重命名文件:" + +#: LiteEditor/fileview.cpp:1915 +msgid "A File with that name already exists!" +msgstr "同名的文件已经存在!" -#: LiteEditor/compiler_pages.cpp:49 LiteEditor/compiler_pages.cpp:88 -#: LiteEditor/reconcileprojectbase.cpp:291 -#: LiteEditor/reconcileprojectbase.cpp:323 -#: LiteEditor/reconcileprojectbase.cpp:354 Subversion2/subversion2.cpp:235 -#: cppchecker/cppchecksettingsdlgbase.cpp:79 -#: cppchecker/cppchecksettingsdlgbase.cpp:120 -#: SnipWiz/templateclassbasedlg.cpp:160 SnipWiz/editsnippetsbasedlg.cpp:73 -msgid "Add" -msgstr "添加" +#: LiteEditor/fileview.cpp:1945 +msgid "New virtual folder name:" +msgstr "新建虚拟文件夹名称:" -#: LiteEditor/compiler_pages.cpp:50 -msgid "Add new error pattern" -msgstr "添加新建错误模式" +#: LiteEditor/fileview.cpp:1945 +msgid "Rename virtual folder:" +msgstr "重命名虚拟文件夹:" -#: LiteEditor/compiler_pages.cpp:55 -msgid "Delete the selected error pattern" -msgstr "删除选定的错误模式" +#: LiteEditor/fileview.cpp:1958 LiteEditor/fileview.cpp:1964 +msgid "failed to rename virtual folder: " +msgstr "重命名虚拟文件夹失败:" -#: LiteEditor/compiler_pages.cpp:60 -msgid "Edit the selected error pattern" -msgstr "编辑选定的错误模式" +#: LiteEditor/fileview.cpp:1958 +msgid ", reason: could not locate project " +msgstr ",原因: 无法定位项目 " -#: LiteEditor/compiler_pages.cpp:72 -msgid "Compiler Warnings Patterns:" -msgstr "编译器警告模式:" +#: LiteEditor/fileview.cpp:2400 +msgid "Project new name:" +msgstr "项目新名称:" -#: LiteEditor/compiler_pages.cpp:89 -msgid "Add new warning pattern" -msgstr "添加新建警告模式" +#: LiteEditor/fileview.cpp:2400 +msgid "Rename project" +msgstr "重命名项目" -#: LiteEditor/compiler_pages.cpp:94 -msgid "Delete the selected warning pattern" -msgstr "删除选定的警告模式" +#: LiteEditor/fileview.cpp:2421 +msgid "You can only drag one folder at a time" +msgstr "您一次只能拖动一个文件夹" -#: LiteEditor/compiler_pages.cpp:99 -msgid "Edit the selected warning pattern" -msgstr "编辑选定的警告模式" +#: LiteEditor/fileview.cpp:2438 +msgid "Failed to create workspace:\n" +msgstr "创建工作区失败: \n" -#: LiteEditor/compiler_pages.cpp:161 -msgid "C++ Compiler Name:" -msgstr "C++ 编译器名称:" - -#: LiteEditor/compiler_pages.cpp:169 -msgid "C Compiler Name:" -msgstr "C 编译器名称:" - -#: LiteEditor/compiler_pages.cpp:177 -msgid "Assembler Name:" -msgstr "汇编器名称:" - -#: LiteEditor/compiler_pages.cpp:185 -msgid "Linker Name:" -msgstr "链接器名称:" - -#: LiteEditor/compiler_pages.cpp:193 -msgid "Shared Object Linker:" -msgstr "共享对象链接器:" - -#: LiteEditor/compiler_pages.cpp:201 -msgid "Archive Tool:" -msgstr "归档工具:" - -#: LiteEditor/compiler_pages.cpp:209 -msgid "Resource Compiler:" -msgstr "资源编译器:" - -#: LiteEditor/compiler_pages.cpp:217 -msgid "Make:" -msgstr "Make:" - -#: LiteEditor/compiler_pages.cpp:225 -msgid "PATH environment variable:" -msgstr "PATH环境变量:" - -#: LiteEditor/compiler_pages.cpp:226 LiteEditor/compiler_pages.cpp:231 -msgid "" -"You can set here the PATH environment variable that will be used for this " -"toolset only. The value sets here will override the value set in " -"'Environement Variables' table. To concatenate a value to the current PATH, " -"use the following format: $(PATH);C:\n" -"ewpath (Windows) OR $(PATH):/home/eran/bin (*nix)" -msgstr "" -"您可以在此设置近用于此工具的 PATH 环境变量。此值会覆盖“环境变量”表中的对应" -"项。如果要连接当前 PATH,请使用以下格式:$(PATH);C:\n" -"ewpath (Windows) 或者 $(PATH):/home/eran/bin (*nix)" +#: LiteEditor/fileview.cpp:2472 +msgid "Can't import files to workspace without projects" +msgstr "工作区没有项目时无法导入文件" -#: LiteEditor/compiler_pages.cpp:259 LiteEditor/compiler_pages.cpp:298 -#: LiteEditor/compiler_pages.cpp:506 LiteEditor/compiler_pages.cpp:568 -msgid "Double click on an entry to modify it:" -msgstr "双击一项进行修改:" +#: LiteEditor/fileview.cpp:2479 +msgid "Select project:" +msgstr "选择项目:" -#: LiteEditor/compiler_pages.cpp:371 -msgid "Global Paths" -msgstr "全局路径" +#: LiteEditor/fileview.cpp:2479 +msgid "Import files to project" +msgstr "导入文件到项目" -#: LiteEditor/compiler_pages.cpp:382 -msgid "Include Path:" -msgstr "包含路径:" +#: LiteEditor/CompilersFoundDlgBase.h:69 +msgid "Find Installed Compilers" +msgstr "查找已安装的编译器" -#: LiteEditor/compiler_pages.cpp:387 -msgid "" -"Set here an additional include paths. Each path should be separated with a " -"semi-colon\n" -"Note that usually you don't need to modify this field and it should be left " -"empty" -msgstr "" -"在这里设置一个附加的头文件路径。每个路径应该用分号分隔\n" -"注意,通常您不需要修改这个字段并且它应该是空的" +#: LiteEditor/CompilersFoundDlgBase.h:89 +msgid "Could not find selected compiler..." +msgstr "找不到选定的编译器..." -#: LiteEditor/compiler_pages.cpp:395 -msgid "Libraries Path:" -msgstr "库路径:" +#: LiteEditor/tabgroupspane.cpp:247 +msgid "I'm afraid that tabgroup no longer exists :/" +msgstr "标签组恐怕不存在:/" -#: LiteEditor/compiler_pages.cpp:400 +#: LiteEditor/tabgroupspane.cpp:263 msgid "" -"Set here an additional library search paths. Each path should be separated " -"with a semi-colon\n" -"Note that usually you don't need to modify this field and it should be left " -"empty" -msgstr "" -"在这里设置一个附加的库搜索路径。每个路径应该用分号分隔\n" -"注意,通常您不需要修改这个字段并且它应该是空的" +"Do you want to replace the existing editors? (Say 'No' to load the new ones " +"alongside)" +msgstr "您是否要替换现有编辑器?(选择“否”会在旁边加载一个新的)" -#: LiteEditor/compiler_pages.cpp:408 LiteEditor/options_dlg2.cpp:137 -#: LiteEditor/editorsettingslocalbase.cpp:171 git/gitui.cpp:112 -msgid "Misc" -msgstr "杂项" +#: LiteEditor/tabgroupspane.cpp:264 +msgid "Load the tabgroup" +msgstr "加载标签组" -#: LiteEditor/compiler_pages.cpp:419 -msgid "Objects extension:" -msgstr "对象扩展名:" +#: LiteEditor/tabgroupspane.cpp:289 +msgid "I'm afraid that tabgroup item no longer exists :/" +msgstr "标签组项恐怕不再存在:/" -#: LiteEditor/compiler_pages.cpp:429 -msgid "Depends extension:" -msgstr "依赖文件扩展名:" +#: LiteEditor/tabgroupspane.cpp:311 +msgid "&Add a new item to this tabgroup" +msgstr "添加新项到此标签组(&A)" -#: LiteEditor/compiler_pages.cpp:439 -msgid "Preprocessed extension:" -msgstr "预处理扩展名:" +#: LiteEditor/tabgroupspane.cpp:313 LiteEditor/tabgroupspane.cpp:322 +msgid "&Paste an item into this tabgroup" +msgstr "粘贴项到此标签组(&P)" -#: LiteEditor/compiler_pages.cpp:451 -msgid "Generate dependencies files (*.o.d)" -msgstr "生成依赖文件(*.o.d)" +#: LiteEditor/tabgroupspane.cpp:316 +msgid "Du&plicate this tabgroup" +msgstr "复制此标签组(&p)" -#: LiteEditor/compiler_pages.cpp:460 -msgid "Object name is same as the file name" -msgstr "对象名称与文件名称是一样的" +#: LiteEditor/tabgroupspane.cpp:317 +msgid "&Delete this tabgroup" +msgstr "删除此标签组(&D)" -#: LiteEditor/compiler_pages.cpp:462 -msgid "" -"By default, codelite will prepend the relative directory to the file name to " -"compose an object name (e.g. src/a.cpp will generate object: src_a.o).\n" -"Uncheck this option to make the object name exactly as the file name without " -"any prefixes" -msgstr "" -"默认情况下,CodeLite 会预先考虑通过相关目录以及文件名称来构成一个目标文件名称" -"(例如 src/a.cpp 将生成目标:src_a.o)。\n" -"取消这个选项会省略目标文件名称的前缀来与文件名称保持一致" +#: LiteEditor/tabgroupspane.cpp:319 +msgid "&Copy this item, to be pasted to another tabgroup" +msgstr "复制此项以便粘贴到其它标签组(&C)" -#: LiteEditor/compiler_pages.cpp:470 -msgid "Pass object list to the linker via file" -msgstr "通过文件传递对象类表到链接器" +#: LiteEditor/tabgroupspane.cpp:320 +msgid "Cu&t this item, to be pasted to another tabgroup" +msgstr "剪切此项以便粘贴到其它标签组(&T)" -#: LiteEditor/compiler_pages.cpp:637 -msgid "Switch:" -msgstr "开关:" +#: LiteEditor/tabgroupspane.cpp:324 +msgid "&Remove this item from the tabgroup" +msgstr "从此标签组中移除此项(&R)" -#: LiteEditor/compiler_pages.cpp:645 -msgid "Help:" -msgstr "帮助:" +#: LiteEditor/tabgroupspane.cpp:409 +msgid "There is already a file with this name. Overwrite it?" +msgstr "同名文件已存在。覆盖?" -#: LiteEditor/compiler_pages.cpp:703 -msgid "Regex Pattern:" -msgstr "正则表达式:" +#: LiteEditor/tabgroupspane.cpp:410 +msgid "Overwrite?" +msgstr "覆盖?" -#: LiteEditor/compiler_pages.cpp:711 -msgid "File Index in Pattern:" -msgstr "模式中的文件索引:" +#: LiteEditor/tabgroupspane.cpp:418 +msgid "Tabgroup renamed" +msgstr "标签主已重命名" -#: LiteEditor/compiler_pages.cpp:719 -msgid "Line Number in Pattern:" -msgstr "模式中的行号:" +#: LiteEditor/tabgroupspane.cpp:483 +msgid "Select the file you want to add" +msgstr "选择您想要添加的文件" -#: LiteEditor/compiler_pages.cpp:742 -msgid "cancel" -msgstr "取消" +#: LiteEditor/tabgroupspane.cpp:489 +msgid "That filepath doesn't seem to exist. Are you sure?" +msgstr "此文件路径不存在。请确认?" -#: LiteEditor/compiler_pages.cpp:782 -msgid "New compiler name:" -msgstr "新编译器名称:" +#: LiteEditor/tabgroupspane.cpp:558 +msgid "Failed to load the destination tabgroup :/" +msgstr "加载目标标签组失败:/" -#: LiteEditor/compiler_pages.cpp:791 -msgid "Copy settings from:" -msgstr "复制设置从:" +#: LiteEditor/tabgroupspane.cpp:565 +msgid "" +"There is already an item with this filepath in the tabgroup. Overwrite it?" +msgstr "标签组已存在同文件路径项,覆盖?" -#: LiteEditor/plugindlgbase.cpp:44 -msgid "Available Plugins:" -msgstr "可用插件:" +#: LiteEditor/tabgroupspane.cpp:602 +msgid "Tabgroup item pasted" +msgstr "标签组项已粘贴" -#: LiteEditor/plugindlgbase.cpp:76 -msgid "Uncheck All" -msgstr "全不选" +#: LiteEditor/tabgroupspane.cpp:626 +#, c-format +msgid "Delete tabgroup %s?" +msgstr "删除标签组 %s?" -#: LiteEditor/addincludefiledlgbase.h:53 -msgid "Add a missing header file" -msgstr "添加缺少的头文件" +#: LiteEditor/tabgroupspane.cpp:641 +msgid "Tabgroup deleted" +msgstr "标签组已删除" -#: LiteEditor/editorsettingsfoldingbase.cpp:17 -msgid "Display Folding Margin" -msgstr "显示折叠页边" +#: LiteEditor/tabgroupspane.cpp:661 +msgid "What name to you want to give the duplicated tabgroup?" +msgstr "复制标签组为?" -#: LiteEditor/editorsettingsfoldingbase.cpp:31 -msgid "Underline Folded Line" -msgstr "下划线折叠行" +#: LiteEditor/tabgroupspane.cpp:661 +msgid "Duplicate a tabgroup" +msgstr "复制标签组" -#: LiteEditor/editorsettingsfoldingbase.cpp:35 -msgid "Fold At Else" -msgstr "在 Else 处折叠" +#: LiteEditor/tabgroupspane.cpp:668 +msgid "Sorry, there is already a tabgroup with this name" +msgstr "对不起,已存在此名称标签组" -#: LiteEditor/editorsettingsfoldingbase.cpp:38 -msgid "Fold Preprocessors" -msgstr "折叠预处理器" +#: LiteEditor/tabgroupspane.cpp:673 +msgid "Sorry, duplication of the tabgroup failed :/" +msgstr "对不起,复制此标签组失败:/" -#: LiteEditor/editorsettingsfoldingbase.cpp:41 -msgid "Fold Compact" -msgstr "折叠紧缩" +#: LiteEditor/tabgroupspane.cpp:678 +msgid "Tabgroup duplicated" +msgstr "标签组已复制" -#: LiteEditor/editorsettingsfoldingbase.cpp:44 -msgid "Fold Style:" -msgstr "折叠风格:" +#: LiteEditor/tabgroupspane.cpp:734 +msgid "Tabgroup item copied" +msgstr "标签组项已复制" -#: LiteEditor/advanced_settings.h:92 -msgid "Build Settings" -msgstr "构建设置" +#: LiteEditor/tabgroupspane.cpp:765 +#, c-format +msgid "Remove item %s from %s?" +msgstr "从 %s 移除项目 %s 吗?" -#: LiteEditor/wxcrafter.cpp:48 -msgid "Template" -msgstr "模板" +#: LiteEditor/tabgroupspane.cpp:780 +msgid "Tabgroup item Cut" +msgstr "剪切标签组项" -#: LiteEditor/wxcrafter.cpp:83 -msgid "Browse for folder" -msgstr "浏览文件夹" +#: LiteEditor/tabgroupspane.cpp:782 +msgid "Tabgroup item deleted" +msgstr "标签组项已删除" -#: LiteEditor/wxcrafter.cpp:87 -msgid "Compiler:" -msgstr "编译器:" +#: LiteEditor/tabgroupspane.cpp:789 +msgid "Failed to amend the tabgroup :/" +msgstr "修改标签组失败:/" -#: LiteEditor/wxcrafter.cpp:228 -msgid "Keep pane open" -msgstr "保持面板打开" +#: LiteEditor/editorsettingslocalbase.cpp:29 +msgid "Untick one or more checkboxes to set any local preferences," +msgstr "取消勾选一个或多个复选框即可设置任意局部首选项" -#: LiteEditor/wxcrafter.cpp:228 LiteEditor/outputtabwindow.cpp:198 -msgid "Don't close this pane when an editor gets focus" -msgstr "当编辑器获得焦点时,不要关闭此面板" +#: LiteEditor/editorsettingslocalbase.cpp:58 +#: LiteEditor/editorsettingslocalbase.cpp:69 +#: LiteEditor/editorsettingslocalbase.cpp:90 +#: LiteEditor/editorsettingslocalbase.cpp:126 +#: LiteEditor/editorsettingslocalbase.cpp:136 +#: LiteEditor/editorsettingslocalbase.cpp:147 +#: LiteEditor/editorsettingslocalbase.cpp:158 +#: LiteEditor/editorsettingslocalbase.cpp:184 +#: LiteEditor/editorsettingslocalbase.cpp:195 +#: LiteEditor/editorsettingslocalbase.cpp:206 +#: LiteEditor/editorsettingslocalbase.cpp:216 +#: LiteEditor/editorsettingslocalbase.cpp:234 +#: LiteEditor/editorsettingslocalbase.cpp:248 +#: LiteEditor/editorsettingslocalbase.cpp:263 +msgid "Use global setting" +msgstr "使用全局设置" -#: LiteEditor/wxcrafter.cpp:230 -msgid "Auto Scroll to Bottom" -msgstr "自动滚动到底部" +#: LiteEditor/editorsettingslocalbase.cpp:63 +#: LiteEditor/editoroptionsgeneralindetationpanelbase.cpp:45 +msgid "Use tabs in indentation" +msgstr "在缩进中使用标签" -#: LiteEditor/wxcrafter.cpp:230 +#: LiteEditor/editorsettingslocalbase.cpp:65 msgid "" -"When checked, make sure that the last line added\n" -"is always visible" +"If clear, only spaces will be used for indentation.\n" +"If set, a mixture of tabs and spaces will be used." msgstr "" -"当选中时,请确保最后添加的一行\n" -"总是可见的" +"如果清除,将只使用空格来缩进\n" +"如果设置,将会使用制表符和空格的混合体" -#: LiteEditor/wxcrafter.cpp:234 -msgid "Clear Build Output" -msgstr "清除构建输出" +#: LiteEditor/editorsettingslocalbase.cpp:78 +#: LiteEditor/editoroptionsgeneralindetationpanelbase.cpp:61 +msgid "Columns per tab character in document:" +msgstr "文档内制表符所占列数:" -#: LiteEditor/wxcrafter.cpp:236 -msgid "Save Build Log..." -msgstr "保存构建日志..." +#: LiteEditor/editorsettingslocalbase.cpp:99 +#: LiteEditor/editoroptionsgeneralindetationpanelbase.cpp:54 +msgid "Columns per indentation level:" +msgstr "每层缩进所占列数:" -#: LiteEditor/wxcrafter.cpp:238 -msgid "Copy Build Output to Clipboard" -msgstr "复制构建输出到剪贴板" +#: LiteEditor/editorsettingslocalbase.cpp:114 +msgid "Margins" +msgstr "页边" -#: LiteEditor/wxcrafter.cpp:240 -msgid "Paste Build Output into an Empty Editor" -msgstr "将构建输出粘贴到一个空的编辑器" +#: LiteEditor/editorsettingslocalbase.cpp:131 +#: LiteEditor/editorsettingsbookmarksbasepanel.cpp:29 +msgid "Display Breakpoints / Bookmarks margin" +msgstr "显示断点/书签页边" -#: LiteEditor/wxcrafter.cpp:407 -msgid "Plugin is not installed" -msgstr "插件没有安装" +#: LiteEditor/editorsettingslocalbase.cpp:141 +msgid "Display Folding margin" +msgstr "显示折叠页边" -#: LiteEditor/wxcrafter.cpp:407 +#: LiteEditor/editorsettingslocalbase.cpp:143 msgid "" -"It seems that the wxCrafter plugin is not installed\n" -"What would you like to do?" -msgstr "" -"wxCrafter 插件似乎没有安装\n" -"您想做点什么吗?" - -#: LiteEditor/wxcrafter.cpp:420 -msgid "Install" -msgstr "安装" - -#: LiteEditor/wxcrafter.cpp:420 -msgid "Download wxCrafter plugin from codelite's website" -msgstr "从 CodeLite 网址下载 wxCrafter 插件" - -#: LiteEditor/wxcrafter.cpp:426 -msgid "Continue" -msgstr "继续" - -#: LiteEditor/wxcrafter.cpp:426 -msgid "Ignore the missing plugin and create the project anyway" -msgstr "忽略丢失的插件并创建项目" +"Display the margin that lets you 'fold' individual functions, or sections of " +"functions, to hide their contents" +msgstr "显示页边以便“折叠”单独的函数或者函数中一段,从而隐藏其内容" -#: LiteEditor/wxcrafter.cpp:463 -msgid "Implement functions" -msgstr "实现函数" +#: LiteEditor/editorsettingslocalbase.cpp:152 +msgid "Hide change marker margin" +msgstr "隐藏更改标记页边" -#: LiteEditor/wxcrafter.cpp:463 -msgid "Select the functions you want to implement" -msgstr "选择您想要实现的函数" +#: LiteEditor/editorsettingslocalbase.cpp:154 +msgid "Display the margin in which a coloured line marks any altered line" +msgstr "当用颜色标记被修改行时显示页边" -#: LiteEditor/wxcrafter.cpp:470 -msgid "The functions will be placed into this file" -msgstr "函数将被放置到这个文件" +#: LiteEditor/editorsettingslocalbase.cpp:163 +msgid "Display line numbers" +msgstr "显示行号" -#: LiteEditor/wxcrafter.cpp:569 -msgid "Recent workspaces" -msgstr "最近工作空间" +#: LiteEditor/editorsettingslocalbase.cpp:165 +msgid "Display line numbers margin" +msgstr "显示行号页边" -#: LiteEditor/wxcrafter.cpp:569 -msgid "Open a recently used workspace" -msgstr "打开一个最近使用的工作空间" +#: LiteEditor/editorsettingslocalbase.cpp:189 +msgid "Show indentation guidelines" +msgstr "显示缩进标记" -#: LiteEditor/wxcrafter.cpp:573 -msgid "Recent files" -msgstr "最近打开的文件" +#: LiteEditor/editorsettingslocalbase.cpp:191 +msgid "Display horizontal guides for matching braces \"{\"" +msgstr "显示水平匹配指南 \"{\"" -#: LiteEditor/wxcrafter.cpp:573 -msgid "Open a recently used file" -msgstr "打开一个最近使用的文件" +#: LiteEditor/editorsettingslocalbase.cpp:200 +#: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:78 +msgid "Highlight caret line" +msgstr "高亮光标所在行" -#: LiteEditor/wxcrafter.cpp:577 -msgid "Start a new project" -msgstr "启动一个新项目" - -#: LiteEditor/wxcrafter.cpp:581 -msgid "Open a workspace" -msgstr "打开一个工作空间" +#: LiteEditor/editorsettingslocalbase.cpp:202 +msgid "Set a different background colour for the line containing the caret" +msgstr "为包含插入行设置不同的颜色" -#: LiteEditor/wxcrafter.cpp:585 -msgid "Forums" -msgstr "论坛" +#: LiteEditor/editorsettingslocalbase.cpp:211 +#: LiteEditor/editoroptionsgeneralsavepanelbase.cpp:42 +msgid "When saving files, trim empty lines" +msgstr "保存文件时,删除空行" -#: LiteEditor/wxcrafter.cpp:585 -msgid "Visit codelite's forums" -msgstr "浏览 CodeLite 论坛" +#: LiteEditor/editorsettingslocalbase.cpp:221 +#: LiteEditor/editoroptionsgeneralsavepanelbase.cpp:69 +msgid "If missing, append EOL at end of file" +msgstr "如果文件尾不存在 EOL 时,添加之" -#: LiteEditor/wxcrafter.cpp:589 -msgid "Wiki" -msgstr "Wiki" +#: LiteEditor/editorsettingslocalbase.cpp:223 +msgid "Make sure the file finishes with an end-of-line" +msgstr "请确保该文件用行尾结束符" -#: LiteEditor/wxcrafter.cpp:589 -msgid "Search codelite's wiki pages" -msgstr "搜索 codelite 的 wiki 页" +#: LiteEditor/editorsettingslocalbase.cpp:239 +msgid "Whitespace visibility:" +msgstr "空白可见性" -#: LiteEditor/wxcrafter.cpp:683 LiteEditor/fileexplorer.cpp:72 -#: Subversion2/subversion_view.cpp:182 -msgid "Link Editor" -msgstr "链接编辑器" +#: LiteEditor/editorsettingslocalbase.cpp:253 +msgid "EOL Mode:" +msgstr "EOL 模式:" -#: LiteEditor/wxcrafter.cpp:685 LiteEditor/fileexplorer.cpp:74 -msgid "Collapse All" -msgstr "折叠全部" +#: LiteEditor/editorsettingslocalbase.cpp:259 +msgid "" +"Set the editor's EOL mode (End Of Line). When set to 'Default' CodeLite will " +"set the EOL according to the hosting OS" +msgstr "" +"设置编辑器的 EOL 模式(End Of Line)。当设置为”默认“时,CodeLite 将依据主机系统" +"进行设置EOL模式" -#: LiteEditor/wxcrafter.cpp:687 -msgid "Goto Active Project" -msgstr "转到活动项目" +#: LiteEditor/editorsettingslocalbase.cpp:268 +msgid "File font encoding" +msgstr "文件字体编码" -#: LiteEditor/wxcrafter.cpp:689 -msgid "Open Active Project Settings" -msgstr "打开活动项目设置" +#: LiteEditor/memoryview.cpp:160 +#, c-format +msgid "Invalid memory value: %s" +msgstr "无效的内存值:%s" -#: LiteEditor/wxcrafter.cpp:699 -msgid "Resize the configuration bar" -msgstr "调整配置栏的大小" +#: LiteEditor/editoroptionsgeneralrightmarginpanelbase.cpp:45 +msgid "Disabled" +msgstr "已禁用" -#: LiteEditor/wxcrafter.cpp:712 -msgid "Select the active porject" -msgstr "选择活动项目" +#: LiteEditor/editoroptionsgeneralrightmarginpanelbase.cpp:52 +msgid "Background" +msgstr "背景" -#: LiteEditor/wxcrafter.cpp:724 -msgid "Select the workspace build configuration" -msgstr "选择工作空间构建配置" +#: LiteEditor/editoroptionsgeneralrightmarginpanelbase.cpp:63 +msgid "Indicator Column" +msgstr "指示列" -#: LiteEditor/pluginmanager.cpp:256 -msgid " ToolBar" -msgstr "工具栏" +#: LiteEditor/editoroptionsgeneralrightmarginpanelbase.cpp:67 +msgid "80" +msgstr "80" -#: LiteEditor/editorsettingscommentsdoxygenpanelbase.cpp:46 -msgid "" -"CodeLite contains a built-in doxygen documentation generator which\n" -"adds doxygen comments to your code. Here you can set the prefix \n" -"that will be placed on top of the dynamic content of the comment:" -msgstr "" -"CodeLite 包含内建 doxygen 文档生成器,它将会添加 doxygen 注释到您的代码。\n" -"在此设置动态内容注释顶部的前缀:" +#: LiteEditor/editoroptionsgeneralrightmarginpanelbase.cpp:70 +msgid "Indicator Colour:" +msgstr "指示颜色:" -#: LiteEditor/editorsettingscommentsdoxygenpanelbase.cpp:95 -msgid "" -"The following macros are available:\n" -"$(CurrentFileName), $(CurrentFilePath),\n" -"$(User), $(Date), $(Name)\n" -"$(CurrentFileFullPath), $(CurrentFileExt),\n" -"$(ProjectName), $(WorkspaceName)" -msgstr "" -"以下宏命令是可用的:\n" -"$(CurrentFileName),$(CurrentFilePath),\n" -"$(User),$(Date),$(Name)\n" -"$(CurrentFileFullPath),$(CurrentFileExt),\n" -"$(ProjectName),$(WorksapceName)" +#: LiteEditor/quickfindbarbase.cpp:60 +msgid "Case Sensitive" +msgstr "区分大小写" -#: LiteEditor/rename_symbool_dlg.h:55 -msgid "Rename Symbol" -msgstr "重命名符号" +#: LiteEditor/quickfindbarbase.cpp:62 +msgid "Use case sensitive match" +msgstr "启用区分大小写匹配" -#: LiteEditor/rename_symbool_dlg.h:80 -msgid "Rename Symbol Scope" -msgstr "重命名符号范围" +#: LiteEditor/quickfindbarbase.cpp:66 +msgid "Regular Expression" +msgstr "正则表达式" -#: LiteEditor/workspacesettingsbase.cpp:33 -#: LiteEditor/project_settings_dlg.cpp:120 -msgid "Environment" -msgstr "环境" +#: LiteEditor/quickfindbarbase.cpp:68 LiteEditor/quickfindbar.cpp:118 +msgid "Use regular expression" +msgstr "启用正则表达式" -#: LiteEditor/workspacesettingsbase.cpp:42 -msgid "" -"By default, CodeLite uses the current active environment variables set as " -"defined in the Settings > Environment Variables dialog.\n" -"However, you may choose a different set to become the active set when this " -"workspace is loaded selecting it here." -msgstr "" -"默认情况下,CodeLite使用当前活动环境变量设置(定义在 设置 > 环境变量。\n" -"不过,您可以在此工作空间加载时选择其它设置变成活动设置。" +#: LiteEditor/quickfindbarbase.cpp:72 LiteEditor/quickfindbar.cpp:105 +msgid "Match a whole word" +msgstr "匹配整字" -#: LiteEditor/workspacesettingsbase.cpp:46 -msgid "Environment sets:" -msgstr "环境设置:" +#: LiteEditor/quickfindbarbase.cpp:74 +msgid "Match a whole word only" +msgstr "仅整个单词" -#: LiteEditor/workspacesettingsbase.cpp:61 -msgid "" -"Specify here an additional environment variables that will be shared with " -"other people who are using this workspace:" -msgstr "在这里指定一个将与其他使用该工作空间的人共享的附加环境变量:" +#: LiteEditor/quickfindbarbase.cpp:78 +msgid "Use wildcard syntax" +msgstr "使用通配字符语法" -#: LiteEditor/workspacesettingsbase.cpp:135 -msgid "Add here search paths used by clang / ctags for locating include files" -msgstr "在此处添加 clang / ctags 定位头文件的搜索路径" +#: LiteEditor/quickfindbarbase.cpp:80 +msgid "Use wildcard syntax (* and ?)" +msgstr "使用统配字符(* 和 ?)" -#: LiteEditor/workspacesettingsbase.cpp:145 -msgid "Macros (clang):" -msgstr "宏命令(clang):" +#: LiteEditor/quickfindbarbase.cpp:84 +msgid "Enable multiple selections" +msgstr "启用多重选择" -#: LiteEditor/workspacesettingsbase.cpp:150 -msgid "" -"Add here macros to pass to clang when generating PCH files\n" -"One macro per line" -msgstr "" -"当生成 PCH 文件时在此处添加宏命令并传递给 clang\n" -"每行一个宏命令" +#: LiteEditor/quickfindbarbase.cpp:86 +msgid "Select each match without de-selectiing the previous match" +msgstr "选择任何匹配而无需取消选择前一次匹配" -#: LiteEditor/workspacesettingsbase.cpp:154 -msgid "Enable C++11 Standard (clang)" -msgstr "启用 C++11 标准 (clang)" +#: LiteEditor/editorsettingsfoldingbase.cpp:29 +msgid "Display Folding Margin" +msgstr "显示折叠页边" -#: LiteEditor/symbols_dialog.cpp:42 -msgid "Symbol" -msgstr "符号" +#: LiteEditor/editorsettingsfoldingbase.cpp:40 +msgid "Select the folding style" +msgstr "选择折叠样式" -#: LiteEditor/env_var_dlg_base.cpp:22 -msgid "" -"Define here set of environment variables which will be applied by CodeLite " -"before launching processes.\n" -"\n" -"Variables are defined in the format of NAME=VALUE" -msgstr "" -"这里设置环境变量,CodeLite 将会在运行进程前应用这些环境变量\n" -"\n" -"变量定义格式 NAME=VALUE" +#: LiteEditor/editorsettingsfoldingbase.cpp:52 +msgid "Underline Folded Line" +msgstr "下划线折叠行" -#: LiteEditor/env_var_dlg_base.cpp:28 -msgid "Available environment sets:" -msgstr "可用的环境设置:" +#: LiteEditor/editorsettingsfoldingbase.cpp:57 +msgid "Fold At Else" +msgstr "在 Else 处折叠" -#: LiteEditor/env_var_dlg_base.cpp:59 -msgid "&New Set..." -msgstr "新建设置(&N)..." +#: LiteEditor/editorsettingsfoldingbase.cpp:62 +msgid "Fold Preprocessors" +msgstr "折叠预处理器" -#: LiteEditor/env_var_dlg_base.cpp:62 -msgid "Delete Set" -msgstr "删除设置" +#: LiteEditor/editorsettingsfoldingbase.cpp:67 +msgid "Fold Compact" +msgstr "折叠紧凑" -#: LiteEditor/env_var_dlg_base.cpp:65 -msgid "&Export" -msgstr "导出(&E)" +#: LiteEditor/editorsettingsfoldingbase.cpp:72 +msgid "Highlight Active Fold Block" +msgstr "高亮显示折叠块" -#: LiteEditor/env_var_dlg_base.cpp:66 +#: LiteEditor/editorsettingsfoldingbase.cpp:74 msgid "" -"Export the current set to a platform \n" -"specific environment file" -msgstr "" -"导出当前设置到一个平台\n" -"特定环境设置文件" +"Allows to enable/disable the highlight folding block when it is selected. (i." +"e. block that contains the caret)" +msgstr "当被选中时允许启用/禁用高亮折叠块。(即块包含插入符号)" -#: LiteEditor/tasksfindwhatdlgbase.h:81 LiteEditor/taskpanel.cpp:63 -msgid "Find What..." -msgstr "查找什么..." +#: LiteEditor/symbols_dialog_base.h:74 +msgid "Resolve Ambiguity" +msgstr "解决歧义" -#: LiteEditor/tasksfindwhatdlgbase.h:105 LiteEditor/tasks_find_what_dlg.cpp:46 -msgid "New Task" -msgstr "新键任务" +#: LiteEditor/replaceinfilespanel.cpp:55 +msgid "&Unmark All" +msgstr "取消标记全部(&U)" -#: LiteEditor/setters_getters_dlg.cpp:453 -msgid "Generate Setters/Getters for class '" -msgstr "生成 Setters/Getters 类" +#: LiteEditor/replaceinfilespanel.cpp:58 +msgid "Mark &All" +msgstr "标记全部(&A)" -#: LiteEditor/editor_options_copy_paste.cpp:32 -msgid "What to copy/cut when there is no selection:" -msgstr "当没有选择时复制/剪切什么:" +#: LiteEditor/replaceinfilespanel.cpp:67 +msgid "&Replace Marked" +msgstr "替换已标记(&R)" -#: LiteEditor/editor_options_copy_paste.cpp:37 -msgid "Multiple selections && Caret:" -msgstr "多重选择&&插入符号:" +#: LiteEditor/replaceinfilespanel.cpp:167 +msgid "Failed to save file:\n" +msgstr "保存文件失败:\n" -#: LiteEditor/editor_options_copy_paste.cpp:41 -msgid "Disable multiple selection" -msgstr "禁用多重选择" +#: LiteEditor/replaceinfilespanel.cpp:168 +#: LiteEditor/replaceinfilespanel.cpp:194 +msgid "CodeLite - Replace" +msgstr "CodeLite - 替换" -#: LiteEditor/editor_options_copy_paste.cpp:43 -msgid "" -"When multiple selection is disabled, it is not possible to select multiple " -"ranges by holding down the Ctrl key while dragging with the mouse." -msgstr "当多个选择被禁用时,通过按住 Ctrl 键拖动鼠标并不能选择多个范围。" +#: LiteEditor/replaceinfilespanel.cpp:194 +msgid "Failed to open file:\n" +msgstr "打开文件失败:\n" -#: LiteEditor/editor_options_copy_paste.cpp:47 -msgid "Disable multi caret paste" -msgstr "禁用多符号粘贴" +#: LiteEditor/replaceinfilespanel.cpp:366 LiteEditor/mainbook.cpp:750 +#: LiteEditor/mainbook.cpp:926 +msgid "Save Modified Files" +msgstr "保存修改的文件" -#: LiteEditor/editor_options_copy_paste.cpp:49 +#: LiteEditor/replaceinfilespanel.cpp:367 LiteEditor/mainbook.cpp:751 +#: LiteEditor/mainbook.cpp:927 msgid "" -"When pasting into multiple selections, the pasted text can go into just the " -"main selection or into each selection" -msgstr "当粘贴到多个选择时,粘贴的文本仅可以进入主要的选择或进入各个选择中" +"Some files are modified.\n" +"Choose the files you would like to save." +msgstr "" +"部分文件已修改。\n" +"选中您要保存的文件。" -#: LiteEditor/project_settings_base_dlg.cpp:114 -msgid "Project enabled" -msgstr "启用项目" +#: LiteEditor/new_configuration_dlg.cpp:72 +msgid "Copy Settings from:" +msgstr "复制设置来自:" -#: LiteEditor/project_settings_base_dlg.cpp:116 -msgid "" -"When unchecked, this project will not be built for the current build " -"configuration" -msgstr "未选中时,对于当前构建配置该项目将不会被构建" +#: LiteEditor/new_configuration_dlg.cpp:79 +#: LiteEditor/new_configuration_dlg.cpp:136 +msgid "-- None --" +msgstr "-- 无 --" -#: LiteEditor/project_settings_base_dlg.cpp:128 -msgid "General Project Settings" -msgstr "常规项目设置" +#: LiteEditor/new_configuration_dlg.cpp:128 +msgid "Configuration Name is empty" +msgstr "配置名称为空" -#: LiteEditor/project_settings_base_dlg.cpp:133 -msgid "Dynamic Library" -msgstr "动态链接库" +#: LiteEditor/setters_getters.cpp:59 codelitephp/php-plugin/php_ui.h:687 +#: codelitephp/php-plugin/php_editor_context_menu.cpp:128 +msgid "Generate Setters / Getters" +msgstr "生成 Setters / Getters" -#: LiteEditor/project_settings_base_dlg.cpp:134 -msgid "Static Library" -msgstr "静态库" +#: LiteEditor/setters_getters.cpp:59 LiteEditor/setters_getters_dlg.cpp:453 +msgid "Select the functions to generate from the list below" +msgstr "从下面的列表中选择功能来生成" -#: LiteEditor/project_settings_base_dlg.cpp:135 -msgid "Executable" -msgstr "可执行" +#: LiteEditor/setters_getters.cpp:92 +msgid "Function name starts with an upper case letter" +msgstr "函数名称以大写字母开始" -#: LiteEditor/project_settings_base_dlg.cpp:136 -msgid "Project Type" -msgstr "项目类型" +#: LiteEditor/setters_getters.cpp:97 +msgid "Format the file when done" +msgstr "完成格式化文件" -#: LiteEditor/project_settings_base_dlg.cpp:137 -msgid "Sets the type of the project" -msgstr "设置项目类型" +#: LiteEditor/advanced_settings.h:97 LiteEditor/advance_settings_base.h:42 +msgid "Build Settings" +msgstr "构建设置" -#: LiteEditor/project_settings_base_dlg.cpp:141 -#: LiteEditor/project_settings_base_dlg.cpp:870 -#: LiteEditor/project_settings_dlg.cpp:118 -msgid "Compiler" -msgstr "编译器" +#: LiteEditor/findusagetab.cpp:94 +#, c-format +msgid "===== Finding references of '%s' =====\n" +msgstr "===== 正在查找引用“%s”=====\n" -#: LiteEditor/project_settings_base_dlg.cpp:142 -msgid "" -"Select the compiler to use. The compiler controls two aspects of the " -"project:\n" -"- If the project is _not_ a custom build, then this compiler is used for " -"compilation\n" -"- CodeLite uses the compiler definition for parsing the output" -msgstr "" -"选择要使用的编译器。编译器将控制该项目的两个方面:\n" -"- 如果该项目不属于自定义构建,那么这个编译器将被用来编译\n" -"- CodeLite 使用编译器定义来解析输出" +#: LiteEditor/findusagetab.cpp:147 +#, c-format +msgid "===== Found total of %u matches =====\n" +msgstr "===== 共发现 %u 个匹配 =====\n" -#: LiteEditor/project_settings_base_dlg.cpp:144 -msgid "Intermediate Folder" -msgstr "临时文件夹" +#: LiteEditor/newquickwatch.h:80 +msgid "Edit Item" +msgstr "编辑项" -#: LiteEditor/project_settings_base_dlg.cpp:145 -msgid "" -"The name of the folder used for the generated objects during compilation" -msgstr "在编译过程中文件夹的名称将会用于生成的对象" +#: LiteEditor/ps_compiler_page.cpp:115 +msgid "Compiler options" +msgstr "编译器选项" -#: LiteEditor/project_settings_base_dlg.cpp:147 -msgid "Output File" -msgstr "输出文件" +#: LiteEditor/newworkspacebasedlg.cpp:40 +msgid "Workspace Name:" +msgstr "工作区名称:" -#: LiteEditor/project_settings_base_dlg.cpp:148 -msgid "The name of the output file (e.g. the executable file name)" -msgstr "输出文件的名称(如可执行文件名)" +#: LiteEditor/newworkspacebasedlg.cpp:52 +msgid "Workspace Path:" +msgstr "工作区路径:" -#: LiteEditor/project_settings_base_dlg.cpp:150 -msgid "Pause when execution ends" -msgstr "执行结束时暂停" +#: LiteEditor/newworkspacebasedlg.cpp:72 +msgid "Create the workspace under a separate directory" +msgstr "在单独目录下创建工作区" -#: LiteEditor/project_settings_base_dlg.cpp:151 -msgid "" -"After the execution of the program ends, show a console with the message " -"\"Hit any key to continue...\"\n" -"This is useful when you wish to view the output printed to stdout before the " -"console terminates" -msgstr "" -"在程序运行结束后,显示一个控制台消息 \"按任意键继续...\"\n" -"当你希望在控制台终止之后看到标准输出,这是非常有用的" +#: LiteEditor/newworkspacebasedlg.cpp:77 +msgid "File Name:" +msgstr "文件名:" -#: LiteEditor/project_settings_base_dlg.cpp:153 -msgid "Execution" -msgstr "执行" +#: LiteEditor/debuggerasciiviewerbase.cpp:45 +msgid "Displaying:" +msgstr "显示:" -#: LiteEditor/project_settings_base_dlg.cpp:156 -msgid "This program is a GUI application" -msgstr "这个程序是一个 GUI 应用程序" +#: LiteEditor/editorsettingscommentsdoxygenpanelbase.cpp:40 +msgid "Generate doxygen comment after \"/**\"" +msgstr "在 \"/**\" 后生成 Doxygen 注释" -#: LiteEditor/project_settings_base_dlg.cpp:157 +#: LiteEditor/editorsettingscommentsdoxygenpanelbase.cpp:41 msgid "" -"By marking the project as a GUI project, CodeLite will launch the program " -"without any console terminal wrapping the process execution" -msgstr "" -"通过标记项目为一个 GUI 项目,在程序启动时CodeLite 将会避免任何控制台终端来包" -"装流程执行" - -#: LiteEditor/project_settings_base_dlg.cpp:159 -msgid "Executable to Run / Debug" -msgstr "运行/调试可执行文件" - -#: LiteEditor/project_settings_base_dlg.cpp:160 -msgid "The executable to run / debug" -msgstr "运行/调试可执行文件" +"When the user hit ENTER after \"/**\" generate the proper documentation block" +msgstr "当用户按下<回车键>后的\"/ *\"生成适当的文件块" -#: LiteEditor/project_settings_base_dlg.cpp:163 -msgid "Working Directory" -msgstr "工作目录" +#: LiteEditor/editorsettingscommentsdoxygenpanelbase.cpp:46 +msgid "Class documentation template" +msgstr "类文档模板" -#: LiteEditor/project_settings_base_dlg.cpp:164 -msgid "The working directory to set before executing or debugging the program" -msgstr "工作目录需要在执行或调试程序前设置" +#: LiteEditor/editorsettingscommentsdoxygenpanelbase.cpp:47 +msgid "" +"Set the template to use when generating documetation for a class (or C/C++ " +"struct).\n" +"The following macros are available: $(CurrentFileName), $(CurrentFilePath), " +"$(User), $(Date), $(Name) $(CurrentFileFullPath), $(CurrentFileExt), " +"$(ProjectName), $(WorkspaceName)" +msgstr "" +"当生成类(或 C/C++ 结构)的文档模版设为可用时.\n" +"以下为可用的宏命令: $(CurrentFileName), $(CurrentFilePath), $(User), " +"$(Date), $(Name) $(CurrentFileFullPath), $(CurrentFileExt), $(ProjectName), " +"$(WorkspaceName)" + +#: LiteEditor/editorsettingscommentsdoxygenpanelbase.cpp:49 +msgid "Function documentation template" +msgstr "函数文档模板" + +#: LiteEditor/editorsettingscommentsdoxygenpanelbase.cpp:50 +msgid "" +"Set the template to use when generating documetation for a function\n" +"The following macros are available: $(CurrentFileName), $(CurrentFilePath), " +"$(User), $(Date), $(Name) $(CurrentFileFullPath), $(CurrentFileExt), " +"$(ProjectName), $(WorkspaceName)" +msgstr "" +"当生成函数文档的模版设为可用时\n" +"以下为可用的宏命令:$(CurrentFileName), $(CurrentFilePath), $(User), " +"$(Date), $(Name) $(CurrentFileFullPath), $(CurrentFileExt), $(ProjectName), " +"$(WorkspaceName)" + +#: LiteEditor/workspace_pane.cpp:86 LiteEditor/workspace_pane.cpp:110 +#: LiteEditor/workspace_pane.cpp:192 LiteEditor/workspace_pane.cpp:309 +#: LiteEditor/workspace_pane.cpp:327 LiteEditor/workspace_pane.cpp:328 +#: menu.xrc:267 +msgid "Workspace" +msgstr "工作区" -#: LiteEditor/project_settings_base_dlg.cpp:167 -msgid "Program Arguments" -msgstr "程序参数" +#: LiteEditor/workspace_pane.cpp:91 LiteEditor/workspace_pane.cpp:170 +msgid "Parsing workspace..." +msgstr "分析工作区..." -#: LiteEditor/project_settings_base_dlg.cpp:168 -msgid "" -"The command line arguments to pass to the program when executing or " -"debugging it" -msgstr "当执行或调试时传递命令行参数给程序" +#: LiteEditor/workspace_pane.cpp:121 LiteEditor/workspace_pane.cpp:193 +#: LiteEditor/workspace_pane.cpp:307 LiteEditor/workspace_pane.cpp:331 +#: LiteEditor/workspace_pane.cpp:332 LiteEditor/fileexplorer.cpp:81 +#: menu.xrc:271 +msgid "Explorer" +msgstr "资源管理器" -#: LiteEditor/project_settings_base_dlg.cpp:170 -msgid "Debugging" -msgstr "调试中" +#: LiteEditor/workspace_pane.cpp:132 +msgid "File Explorer" +msgstr "文件浏览器" + +#: LiteEditor/workspace_pane.cpp:136 LiteEditor/workspace_pane.cpp:194 +#: LiteEditor/workspace_pane.cpp:312 LiteEditor/workspace_pane.cpp:336 +#: LiteEditor/workspace_pane.cpp:337 menu.xrc:275 +msgid "Tabs" +msgstr "标签" -#: LiteEditor/project_settings_base_dlg.cpp:175 -#: LiteEditor/project_settings_dlg.cpp:121 -msgid "Debugger" -msgstr "调试器" +#: LiteEditor/workspace_pane.cpp:148 LiteEditor/workspace_pane.cpp:195 +#: LiteEditor/workspace_pane.cpp:315 LiteEditor/workspace_pane.cpp:341 +#: LiteEditor/workspace_pane.cpp:342 menu.xrc:279 +msgid "Tabgroups" +msgstr "标签组" -#: LiteEditor/project_settings_base_dlg.cpp:176 -msgid "Select the debugger type to use for this project" -msgstr "选择用于这个项目的调试器类型" +#: LiteEditor/workspace_pane.cpp:183 +#, c-format +msgid "Parsing workspace: %d%% completed" +msgstr "分析工作区:已完成 %d%%" -#: LiteEditor/project_settings_base_dlg.cpp:178 -msgid "Use separate debugger args" -msgstr "启用单独的调试器参数" +#: LiteEditor/syntaxhighlightdlg.cpp:184 +msgid "Applying changes..." +msgstr "正在应用更改..." + +#: LiteEditor/syntaxhighlightdlg.cpp:554 +msgid "Select which lexers you wish to export" +msgstr "选择要导出的词法分析器" + +#: LiteEditor/syntaxhighlightdlg.cpp:554 +msgid "Export Lexers" +msgstr "导出词法分析器" + +#: LiteEditor/syntaxhighlightdlg.cpp:572 LiteEditor/syntaxhighlightdlg.cpp:608 +msgid "Settings have been saved into:\n" +msgstr "设置已经保存到:\n" + +#: LiteEditor/syntaxhighlightdlg.cpp:577 LiteEditor/context_cpp.cpp:2656 +#: DatabaseExplorer/ErdCommitWizard.cpp:175 +#: DatabaseExplorer/ErdCommitWizard.cpp:181 +#: DatabaseExplorer/ErdCommitWizard.cpp:399 +msgid "Select file" +msgstr "选择文件" -#: LiteEditor/project_settings_base_dlg.cpp:179 +#: LiteEditor/syntaxhighlightdlg.cpp:615 msgid "" -"When enabled (.e.g. set to True) codelite will pass the arguments set in " -"'Debug Program Arguments'" -msgstr "当启用(如设置为 True)CodeLite时将会在’调试程序参数‘中传递参数设置" - -#: LiteEditor/project_settings_base_dlg.cpp:181 -msgid "Debug Program Arguments" -msgstr "调试程序参数" +"Are you sure you want to restore colours to factory defaults?\n" +"By choosing 'Yes', you will lose all your local modifications" +msgstr "" +"您是否需要将颜色还原到默认值? \n" +"如果选择“是”,你将失去你所有的本地修改" -#: LiteEditor/project_settings_base_dlg.cpp:182 -msgid "Arguments to pass to the debugger" -msgstr "要传递给调试器的参数" +#: LiteEditor/syntaxhighlightdlg.cpp:633 +msgid "Select eclipse XML theme file" +msgstr "选择 eclipse XML 主题文件" -#: LiteEditor/project_settings_base_dlg.cpp:219 -msgid "Compiler is not required for this project" -msgstr "该项目不需要编译器" +#: LiteEditor/syntaxhighlightdlg.cpp:650 +msgid "File imported successfully!" +msgstr "已成功导入的文件!" -#: LiteEditor/project_settings_base_dlg.cpp:232 -#: LiteEditor/project_settings_base_dlg.cpp:325 -#: LiteEditor/project_settings_base_dlg.cpp:892 -msgid "Options" -msgstr "选项" +#: LiteEditor/editor_options_caret.cpp:60 +msgid "Caret blink period (milliseconds):" +msgstr "光标闪烁周期(毫秒):" -#: LiteEditor/project_settings_base_dlg.cpp:237 -msgid "Append to global settings" -msgstr "追加到全局设置" +#: LiteEditor/editor_options_caret.cpp:65 +msgid "Sets the caret blinking period in millisconds" +msgstr "设置插入符号闪烁周期(毫秒):" -#: LiteEditor/project_settings_base_dlg.cpp:238 -msgid "Overwrite global settings" -msgstr "覆盖全局设置" +#: LiteEditor/editor_options_caret.cpp:69 +msgid "Caret width (pixels):" +msgstr "光标宽度(像素):" -#: LiteEditor/project_settings_base_dlg.cpp:239 -msgid "Prepend to global settings" -msgstr "优先考虑全局设置" +#: LiteEditor/editor_options_caret.cpp:74 +msgid "Set the caret width in pixels" +msgstr "设置光标宽度(像素):" -#: LiteEditor/project_settings_base_dlg.cpp:240 -msgid "Use with Global Settings" -msgstr "启用全局设置" +#: LiteEditor/editor_options_caret.cpp:78 +msgid "Allow caret to scroll beyond end of file" +msgstr "允许光标滚动到文件底部" -#: LiteEditor/project_settings_base_dlg.cpp:241 +#: LiteEditor/editor_options_caret.cpp:80 msgid "" -"Define how CodeLite will merge the compiler settings defined in the 'Global " -"Settings' with the settings defined on this page" -msgstr "定义CodeLite如何合并编译器在全局设置以及本页中的设置" +"When scrolling with the mouse, the scrolling can go beyond the end of file" +msgstr "当使用鼠标滚动时,滚动可以超出文件底部" -#: LiteEditor/project_settings_base_dlg.cpp:243 -#: LiteEditor/project_settings_base_dlg.cpp:873 -msgid "C++ Compiler Options" -msgstr "C++编译器选项" +#: LiteEditor/editor_options_caret.cpp:84 +msgid "Auto-adjust horizontal scrollbar width" +msgstr "自动调整水平滚动条宽度" -#: LiteEditor/project_settings_base_dlg.cpp:244 -msgid "" -"Additional compiler options to pass to the compiler provided as a semi-colon " -"delimited list" -msgstr "传递给编译器的额外选项(以分号分隔的列表)" +#: LiteEditor/editor_options_caret.cpp:86 +msgid "Auto adjust the horizontal toolbar to fit to the page content" +msgstr "自动调整水平滚动条宽度以适配页面内容" -#: LiteEditor/project_settings_base_dlg.cpp:247 -#: LiteEditor/project_settings_base_dlg.cpp:877 -msgid "C Compiler Options" -msgstr "C编译器选项" +#: LiteEditor/editor_options_caret.cpp:90 +msgid "Allow caret to be placed beyond the end of line" +msgstr "允许将插入符号放在一行的末尾" -#: LiteEditor/project_settings_base_dlg.cpp:248 +#: LiteEditor/editor_options_caret.cpp:92 msgid "" -"Additional C compiler options to pass to the compiler provided as a semi-" -"colon delimited list (used for C files only)" -msgstr "传递给编译器的额外选项(以分号分隔的列表,仅用于 C 文件)" +"Allow the user to place the caret using the mouse beyond the end of line" +msgstr "允许用户使用鼠标将插入符号放在一行的末尾" -#: LiteEditor/project_settings_base_dlg.cpp:251 -msgid "Assembler Options" -msgstr "汇编器选项" +#: LiteEditor/editor_options_caret.cpp:96 +msgid "Caret jumps between word segments" +msgstr "光标在字段间跳跃" -#: LiteEditor/project_settings_base_dlg.cpp:252 +#: LiteEditor/editor_options_caret.cpp:98 msgid "" -"Additional assembler options to pass to the assembler provided as a semi-" -"colon delimited list\n" -"(used for .s files only)" -msgstr "" -"传递给汇编器的附加选项以分号分隔列表\n" -"(仅用于 .s 文件)" +"Caret jumps between word segments marked by capitalisation (CamelCase) or " +"underscores" +msgstr "光标在用大写字母(驼峰格式)或下划线标记的字段间跳跃" -#: LiteEditor/project_settings_base_dlg.cpp:254 -msgid "Include Paths" -msgstr "Include 路径" +#: LiteEditor/newquickwatch.cpp:116 +msgid "Enter new expression:" +msgstr "输入新表达式:" -#: LiteEditor/project_settings_base_dlg.cpp:255 -msgid "" -"Include path to pass to the compiler (provided as semi-colon delimited list)" -msgstr "传递给编译器的包含路径(以分号分隔的列表)" +#: LiteEditor/editoroptionsgeneralindetationpanelbase.cpp:42 +msgid "Disable Smart Indentation" +msgstr "禁用智能缩进" -#: LiteEditor/project_settings_base_dlg.cpp:258 -#: LiteEditor/project_settings_base_dlg.cpp:885 -#: CodeFormatter/codeformatterdlgbase.cpp:141 -msgid "Preprocessors" -msgstr "预处理器" +#: LiteEditor/editoroptionsgeneralindetationpanelbase.cpp:58 +#: LiteEditor/editoroptionsgeneralindetationpanelbase.cpp:65 +msgid "4" +msgstr "4" -#: LiteEditor/project_settings_base_dlg.cpp:259 -msgid "" -"macros (\"defines\") to pass to the compiler (provided as semi-colon " -"delimited list)" -msgstr "传递给编译器的宏定义(以分号分隔的列表)" +#: LiteEditor/editorsettingsbookmarkspanel.cpp:42 +msgid "Small Rectangle" +msgstr "小矩形" -#: LiteEditor/project_settings_base_dlg.cpp:262 -msgid "Pre Compiled Header" -msgstr "预编译头文件" +#: LiteEditor/editorsettingsbookmarkspanel.cpp:43 +msgid "Rounded Rectangle" +msgstr "圆角矩形" -#: LiteEditor/project_settings_base_dlg.cpp:265 -#: SnipWiz/templateclassbasedlg.cpp:194 -msgid "Header File" -msgstr "头文件" +#: LiteEditor/editorsettingsbookmarkspanel.cpp:44 +msgid "Circle" +msgstr "圆圈" -#: LiteEditor/project_settings_base_dlg.cpp:266 -msgid "Pre compiled header" -msgstr "预编译头文件" +#: LiteEditor/editorsettingsbookmarkspanel.cpp:45 +msgid "Small Arrow" +msgstr "小箭头" -#: LiteEditor/project_settings_base_dlg.cpp:269 -msgid "Excplicitly Include PCH" -msgstr "显式包含 PCH" +#: LiteEditor/buildorderbasepage.cpp:54 +msgid "Select build order for configuration:" +msgstr "为配置选择构建顺序:" -#: LiteEditor/project_settings_base_dlg.cpp:270 -msgid "" -"Explicitly include the PCH file in the command line using a compiler switch " -"(.e.g -include /path/to/pch)" -msgstr "" -"在命令行中使用编译器开关可以明确地将 PCH 文件包含在内(例如 -include /path/" -"to/pch)" +#: LiteEditor/buildorderbasepage.cpp:71 +msgid "Projects:" +msgstr "项目:" -#: LiteEditor/project_settings_base_dlg.cpp:272 -msgid "PCH Compile Flags" -msgstr "PCH 编译标志" +#: LiteEditor/buildorderbasepage.cpp:84 +msgid "Build Order:" +msgstr "构建顺序:" -#: LiteEditor/project_settings_base_dlg.cpp:273 -msgid "Use separate compilation flags for the PCH file" -msgstr "为 PCH 文件使用单独的编译标志" +#: LiteEditor/buildorderbasepage.cpp:109 +#: cppchecker/cppcheckreportbasepage.cpp:94 +msgid "Up" +msgstr "向上" -#: LiteEditor/project_settings_base_dlg.cpp:312 -msgid "Linker is not required for this project" -msgstr "此项目不需要链接器" +#: LiteEditor/buildorderbasepage.cpp:113 +#: cppchecker/cppcheckreportbasepage.cpp:99 +msgid "Down" +msgstr "向下" -#: LiteEditor/project_settings_base_dlg.cpp:330 -#: LiteEditor/project_settings_base_dlg.cpp:563 -msgid "Use with global settings" -msgstr "启用全局设置" +#: LiteEditor/new_quick_watch_dlg.cpp:107 +#: LiteEditor/new_quick_watch_dlg.cpp:166 +msgid "Loading..." +msgstr "加载..." -#: LiteEditor/project_settings_base_dlg.cpp:331 -#: LiteEditor/project_settings_base_dlg.cpp:564 -msgid "" -"Define how CodeLite will merge the linker settings defined in the 'Global " -"Settings' with the settings defined on this page" -msgstr "定义CodeLite如何合并链接器在全局设置以及本页中的设置" +#: LiteEditor/new_quick_watch_dlg.cpp:339 LiteEditor/cl_editor.cpp:3390 +msgid "Add Watch" +msgstr "添加监视点" -#: LiteEditor/project_settings_base_dlg.cpp:333 -#: LiteEditor/project_settings_dlg.cpp:501 -msgid "Linker Options" -msgstr "链接器选项" +#: LiteEditor/new_quick_watch_dlg.cpp:340 +msgid "Copy Value to Clipboard" +msgstr "复制值到剪贴板" -#: LiteEditor/project_settings_base_dlg.cpp:334 -msgid "Add additional linker options separated by semi-colon" -msgstr "添加附加的链接选项并使用分号分隔" +#: LiteEditor/breakpointdlgbase.h:145 +msgid "Breakpoint and Watchpoint Properties" +msgstr "断点和监视点属性" -#: LiteEditor/project_settings_base_dlg.cpp:337 -msgid "Libraries Search Path" -msgstr "库搜索路径" +#: LiteEditor/env_var_dlg_base.cpp:47 +msgid "" +"Define here set of environment variables which will be applied by CodeLite " +"before launching processes.\n" +"\n" +"Variables are defined in the format of NAME=VALUE" +msgstr "" +"这里设置环境变量,CodeLite 将会在运行进程前应用这些环境变量\n" +"\n" +"变量定义格式 NAME=VALUE" -#: LiteEditor/project_settings_base_dlg.cpp:338 -msgid "Add additional library search paths separated by semi-colon" -msgstr "添加附加的库搜索路径并使用分号分隔" +#: LiteEditor/env_var_dlg_base.cpp:53 +msgid "Available environment sets:" +msgstr "可用的环境设置:" -#: LiteEditor/project_settings_base_dlg.cpp:341 -#: LiteEditor/project_settings_base_dlg.cpp:900 -msgid "Libraries" -msgstr "库" +#: LiteEditor/env_var_dlg_base.cpp:84 +msgid "&New Set..." +msgstr "新建设置(&N)..." -#: LiteEditor/project_settings_base_dlg.cpp:342 -#: LiteEditor/project_settings_base_dlg.cpp:901 -msgid "Enter any extra library names, separated by';' e.g. Foo or Foo;Bar" -msgstr "输入任意附加 lib 库名称,并使用‘;’分隔,例如 Foo 或 Foo;Bar" +#: LiteEditor/env_var_dlg_base.cpp:87 +msgid "Delete Set" +msgstr "删除设置" -#: LiteEditor/project_settings_base_dlg.cpp:389 -msgid "Select debugger path. Leave empty to use the default:" -msgstr "选择调试器路径。填空使用默认值:" +#: LiteEditor/env_var_dlg_base.cpp:90 +msgid "&Export" +msgstr "导出(&E)" -#: LiteEditor/project_settings_base_dlg.cpp:411 -msgid "Debugger Search Paths" -msgstr "调试器搜索路径" +#: LiteEditor/env_var_dlg_base.cpp:91 +msgid "" +"Export the current set to a platform \n" +"specific environment file" +msgstr "" +"导出当前设置到一个平台\n" +"特定环境设置文件" -#: LiteEditor/project_settings_base_dlg.cpp:420 -#: ExternalTools/externaltooldlg.cpp:109 -msgid "Path" -msgstr "路径" +#: LiteEditor/commentpagebase.cpp:56 +msgid "" +"When hitting in a C style comment section,automatically add '*' at " +"the next line" +msgstr "当在 C 风格注释里面按<回车>时, 自动添加“*”到新行" -#: LiteEditor/project_settings_base_dlg.cpp:425 -msgid "&Add.." -msgstr "添加(&A)..." +#: LiteEditor/commentpagebase.cpp:60 +msgid "" +"When hitting in a C++ style comment section,automatically add '//' " +"at the next line" +msgstr "当在 C++ 风格注释里面按<回车>时, 自动添加”//“到新行" -#: LiteEditor/project_settings_base_dlg.cpp:429 -msgid "&Delete..." -msgstr "删除(&D)..." +#: LiteEditor/commentpagebase.cpp:66 +msgid "Doxygen:" +msgstr "程序生成器:" -#: LiteEditor/project_settings_base_dlg.cpp:434 -msgid "Startup Commands" -msgstr "启动命令" +#: LiteEditor/commentpagebase.cpp:77 +msgid "Use '/**' as doxygen block start (else use '/*!')" +msgstr "使用“/**”作为 doxygen 块开始 (否则使用“/*!”)" + +#: LiteEditor/commentpagebase.cpp:81 +msgid "Use '@' as doxygen keyword prefix" +msgstr "使用“@”作为 doxygen 关键字前缀" -#: LiteEditor/project_settings_base_dlg.cpp:439 +#: LiteEditor/commentpagebase.cpp:87 msgid "" -"Enter here any commands that should be passed to the debugger on startup:" -msgstr "在此输入传递给调试器启动时的命令:" +"CodeLite contains a built-in doxygen documentation generator which adds " +"doxygen comments to your code.\n" +"Here you can set the prefix that will placed on top of the dynamic content " +"of the comment:" +msgstr "" +"CodeLite 包含内建 doxygen 文档生成器,它将会添加 doxygen 注释到您的代码。\n" +"在此设置动态内容注释顶部的前缀:" -#: LiteEditor/project_settings_base_dlg.cpp:450 -msgid "Remote Attach Commands" -msgstr "远程连接命令" +#: LiteEditor/commentpagebase.cpp:99 DatabaseExplorer/GUI.cpp:1065 +msgid "Class prefix:" +msgstr "类前缀:" + +#: LiteEditor/commentpagebase.cpp:106 +msgid "Function prefix:" +msgstr "函数前缀:" -#: LiteEditor/project_settings_base_dlg.cpp:455 +#: LiteEditor/commentpagebase.cpp:118 msgid "" -"Enter here any commands that should be passed to the debugger after " -"attaching the remote target:" -msgstr "在此输入传递给调试器连接到远程目标时的命令:" +"The following macros are available:\n" +"$(CurrentFileName), $(CurrentFilePath), $(User), $(Date), $(Name)\n" +"$(CurrentFileFullPath), $(CurrentFileExt), $(ProjectName), $(WorksapceName)" +msgstr "" +"以下为可用的宏:\n" +"$(CurrentFileName),$(CurrentFilePath),$(User),$(Date),$(Name)\n" +"$(CurrentFileFullPath),$(CurrentFileExt),$(ProjectName),$(WorksapceName)" -#: LiteEditor/project_settings_base_dlg.cpp:465 -msgid "Debugging a remote target" -msgstr "调试远程目标" +#: LiteEditor/ps_linker_page.cpp:90 +msgid "Linker options" +msgstr "链接器选项" -#: LiteEditor/project_settings_base_dlg.cpp:477 -msgid "Host / tty:" -msgstr "主机 / 终端:" +#: LiteEditor/editorsettingslocalbase.h:134 +#: LiteEditor/editorsettingslocal.h:36 +msgid "Local Preferences" +msgstr "本地偏好" -#: LiteEditor/project_settings_base_dlg.cpp:558 -#: LiteEditor/project_settings_base_dlg.cpp:904 -#: LiteEditor/project_settings_dlg.cpp:122 -msgid "Resources" -msgstr "资源" +#: LiteEditor/setters_getters_dlg.cpp:454 +msgid "Generate Setters/Getters for class '" +msgstr "为类生成 Setters / Getters“" -#: LiteEditor/project_settings_base_dlg.cpp:566 -#: LiteEditor/project_settings_base_dlg.cpp:907 -msgid "Resource Compiler Options" -msgstr "资源编译器选项" +#: LiteEditor/project_settings_base_dlg.h:69 LiteEditor/wxcrafter.cpp:572 +#: codelitephp/php-plugin/php_ui.h:343 +msgid "Project Settings" +msgstr "项目设置" -#: LiteEditor/project_settings_base_dlg.cpp:567 -#: LiteEditor/project_settings_base_dlg.cpp:908 -msgid "Resource compiler options provided as semi-colon list" -msgstr "资源编译器选项以分号分隔列表" +#: LiteEditor/project_settings_base_dlg.h:451 +msgid "Build Target" +msgstr "构建目标" + +#: LiteEditor/breakpointdlgbase.cpp:38 +msgid "Add a new breakpoint or watchpoint" +msgstr "添加新的断点或监视点" + +#: LiteEditor/breakpointdlgbase.cpp:43 +msgid "Edit the selected item" +msgstr "编辑已选项" + +#: LiteEditor/breakpointdlgbase.cpp:48 +msgid "Delete the selected item" +msgstr "删除所选项" + +#: LiteEditor/breakpointdlgbase.cpp:52 LiteEditor/reconcileprojectbase.cpp:173 +msgid "Delete &All" +msgstr "删除全部(&A)" -#: LiteEditor/project_settings_base_dlg.cpp:570 -#: LiteEditor/project_settings_base_dlg.cpp:911 -msgid "Additional Search Path" -msgstr "附加搜索路径" +#: LiteEditor/breakpointdlgbase.cpp:53 +msgid "Delete all breakpoints and watchpoints" +msgstr "删除全部断点和监视点" -#: LiteEditor/project_settings_base_dlg.cpp:571 -#: LiteEditor/project_settings_base_dlg.cpp:912 -msgid "Resource compiler search path, as semi colon list" -msgstr "资源编译器搜索路径,以分号分隔列表" +#: LiteEditor/breakpointdlgbase.cpp:57 +msgid "Set Pending" +msgstr "设置待定" -#: LiteEditor/project_settings_base_dlg.cpp:623 -msgid "Environment variable set to use:" -msgstr "使用的环境变量设置:" +#: LiteEditor/breakpointdlgbase.cpp:58 +msgid "" +"If this button is visible, there are breakpoints that you tried to set, but " +"that the debugger refused. This most often happens when the breakpoint is " +"inside a library that hadn't been loaded when the debugger started.\n" +"\n" +"Click to offer the breakpoints to the debugger again." +msgstr "" +"如果此按钮可见,表示调试器拒绝了您要设置的断点。这通常因为断点位于调试器启动" +"时没有加载的库里面。\n" +"点击将重新提交断点到调试器。" -#: LiteEditor/project_settings_base_dlg.cpp:632 -msgid "Debugger 'PreDefined Types' set to use:" -msgstr "使用的调试器“预定义类型”:" +#: LiteEditor/breakpointdlgbase.cpp:108 +msgid "Select the type of the breakpoint:" +msgstr "选择断点类型:" -#: LiteEditor/project_settings_base_dlg.cpp:645 -msgid "Additional environment variables:" -msgstr "附加环境变量:" +#: LiteEditor/breakpointdlgbase.cpp:118 +#: LiteEditor/breakpointpropertiesdlg.cpp:241 LiteEditor/breakpointdlg.cpp:194 +msgid "Breakpoint" +msgstr "断点" -#: LiteEditor/project_settings_base_dlg.cpp:752 -msgid "Enable custom build" -msgstr "启用自定义构建" +#: LiteEditor/breakpointdlgbase.cpp:123 +msgid "Break by line, function or memory address:" +msgstr "函数或内存地址使用行中断:" -#: LiteEditor/project_settings_base_dlg.cpp:765 -msgid "Working Directory:" -msgstr "工作目录:" +#: LiteEditor/breakpointdlgbase.cpp:138 LLDBDebugger/UI.cpp:229 +msgid "Line number" +msgstr "行号" -#: LiteEditor/project_settings_base_dlg.cpp:874 +#: LiteEditor/breakpointdlgbase.cpp:144 msgid "" -"Additional compiler options to pass to the compiler provided as a semi-colon " -"delimited list These settings are used by _all_ build configurations (e.g. " -"Release and Debug)" +"Enter the line-number on which you wish to break. It's assumed to refer to " +"the current file: if it doesn't, please enter the correct filepath below." msgstr "" -"传递给编译器的附加编译选项以分号分隔列表,这些设置将被所有构建配置使用(例如 " -"Release 和 Debug)" +"输入您要中断的行号,默认指当前文件。如果不是,请在下面输入正确的文件路径。" + +#: LiteEditor/breakpointdlgbase.cpp:151 +msgid "Function name" +msgstr "函数名" -#: LiteEditor/project_settings_base_dlg.cpp:878 +#: LiteEditor/breakpointdlgbase.cpp:157 msgid "" -"Additional C compiler options to pass to the compiler provided as a semi-" -"colon delimited list These settings are used by _all_ build configurations " -"(e.g. Release and Debug)" +"If you wish to break when a particular function is entered, insert its name " +"here. In C just the name will do e.g. 'main' or 'myFoo'. For C++ class " +"methods, you need to do 'MyClass::myFoo'\n" +"\n" +"Alternatively you can enter a regular expression, and tick the checkbox " +"below. A breakpoint will then be set on all matching functions." msgstr "" -"传递给编译器的附加 C 编译选项以分号分隔列表,这些设置将被所有构建配置使用(例" -"如 Release 和 Debug)" +"如果您想在进入特定函数时中断,在此输入它的名称。在 C 里面的名称形如 'main' 或" +"者 'myFoo',而 C++ 类的方法,您需要用 'MyClass::myFoo'\n" +"\n" +"或者,您可以输入正则表达式,并且勾选下面的复选框,这将为所有匹配的函数添加断" +"点。" -#: LiteEditor/project_settings_base_dlg.cpp:881 -msgid "Additional Include Paths" -msgstr "附加头文件路径" +#: LiteEditor/breakpointdlgbase.cpp:166 +msgid "This is a regex" +msgstr "这是个正则表达式" -#: LiteEditor/project_settings_base_dlg.cpp:882 +#: LiteEditor/breakpointdlgbase.cpp:168 msgid "" -"Compiler search paths for header files. These settings are used by _all_ " -"build configurations (e.g. Release and Debug)" -msgstr "" -"编译器搜索头文件的路径。这些设置会被所有构建配置使用(例如 Release 和 Debug)" +"If you wish to insert a breakpoint on several functions, you can tick this " +"box, then enter a suitable regular expression in the textctrl above." +msgstr "如果您想在多个函数插入断点,勾选此复选框,并输入合适的正则表达式。" + +#: LiteEditor/breakpointdlgbase.cpp:172 +msgid "Memory address:" +msgstr "内存地址:" -#: LiteEditor/project_settings_base_dlg.cpp:886 +#: LiteEditor/breakpointdlgbase.cpp:178 msgid "" -"Additional preprocessors definitions provided as a semi-colon delimited list " -"These settings are used by _all_ build configurations (e.g. Release and " -"Debug)" +"To break on a memory address, enter the address here.\n" +"e.g. 0x0a1b2c3d or 12345678" msgstr "" -"附加的预处理定义以分号分隔列表,这些设置将被所有构建配置使用(例如 Release " -"和 Debug)" +"要在某内存地址中断,在此输入地址。\n" +"例如 0x0a1b2c3d 或 12345678" -#: LiteEditor/project_settings_base_dlg.cpp:889 -#: LiteEditor/project_settings_dlg.cpp:119 -msgid "Linker" -msgstr "链接器" +#: LiteEditor/breakpointdlgbase.cpp:185 +msgid "In file:" +msgstr "在文件:" -#: LiteEditor/project_settings_base_dlg.cpp:893 +#: LiteEditor/breakpointdlgbase.cpp:194 msgid "" -"Additional linker options provided as a semi-colon delimited list These " -"settings are used by _all_ build configurations (e.g. Release and Debug)" +"If you've entered a line-number, its assumed to refer to the current file. " +"If it isn't, enter the correct filename here.\n" +"\n" +"For a function, a file is usually not required. However, if you have several " +"functions with the same name, in several different files (do people _really_ " +"do that?) and you want to break on only one of those, enter the correct " +"filename here." msgstr "" -"附加的链接选项以分号分隔列表,这些设置将被所有构建配置使用(例如 Release 和 " -"Debug)" +"如果您输入一个行编号,它会假定参考当前文件。如果不是,请在这里输入正确的文件" +"名称。\n" +"\n" +"对于一个函数,文件通常不是必需的。然而,如果您有有多个名称相同的函数位于几个" +"不同的文件中(人们真的这样做吗?),并且您只想要找到其中的一个,请在这里输入正" +"确的文件名称。" -#: LiteEditor/project_settings_base_dlg.cpp:896 -msgid "Library Path" -msgstr "库文件路径" +#: LiteEditor/breakpointdlgbase.cpp:210 +#: LiteEditor/breakpointpropertiesdlg.cpp:111 LiteEditor/breakpointdlg.cpp:194 +msgid "Watchpoint" +msgstr "监视点" -#: LiteEditor/project_settings_base_dlg.cpp:897 -msgid "" -"Additional library search path provided as a semi-colon delimited list These " -"settings are used by _all_ build configurations (e.g. Release and Debug)" -msgstr "" -"附加的库搜索路径以分号分隔列表,这些设置将被所有构建配置使用(例如 Release " -"和 Debug)" +#: LiteEditor/breakpointdlgbase.cpp:216 +msgid "write only" +msgstr "只写" -#: LiteEditor/project_settings_base_dlg.cpp:961 -msgid "Dependencies:" -msgstr "依赖:" +#: LiteEditor/breakpointdlgbase.cpp:217 +msgid "read only" +msgstr "只读" + +#: LiteEditor/breakpointdlgbase.cpp:218 +msgid "read-write" +msgstr "读写" -#: LiteEditor/project_settings_base_dlg.cpp:978 -msgid "Rule action:" -msgstr "规则操作:" +#: LiteEditor/breakpointdlgbase.cpp:219 +msgid "Type of watchpoint:" +msgstr "监视点类型" -#: LiteEditor/project_settings_base_dlg.cpp:999 +#: LiteEditor/breakpointdlgbase.cpp:220 msgid "" -"Define here a custom makefile rule to be executed in the pre-build steps.\n" -"See the wiki for more help" +"The usual type of watchpoint is 'write-only': that is, it's triggered " +"whenever the target is changed.\n" +"\n" +"Alternatively you can choose for it to trigger when the target is read from, " +"or either written to or read from." msgstr "" -"在此定义构建前步骤中运行的自定义 makefile 规则。\n" -"查看 wiki 获取更多信息" - -#: LiteEditor/project_settings_base_dlg.cpp:1080 -msgid "Macros (clang only):" -msgstr "宏命令(仅 clang):" +"监视点的通常类型为“只写”:即,它会在目标被改变时触发。\n" +"\n" +"或者您可在目标读取、或写入、读取时选择触发类型。" -#: LiteEditor/project_settings_base_dlg.cpp:1101 -msgid "Enable C++11 Standard" -msgstr "启用 C++11 标准" +#: LiteEditor/breakpointdlgbase.cpp:225 +msgid "Data to watch:" +msgstr "要监视的数据:" -#: LiteEditor/project_settings_base_dlg.cpp:1149 -msgid "Target Name:" -msgstr "目标名称:" +#: LiteEditor/breakpointdlgbase.cpp:230 +msgid "" +"Identify the data to be watched. It can be one of:\n" +"1) Any variable name e.g. 'foo'\n" +"2) A memory address, suitably cast e.g.*(int*)0x12345678 will watch an int-" +"sized block starting at this address.\n" +"Don't include spaces in the expression: gdb can't understand them.\n" +"3) A complex expression e.g. a*b + c/d'. The expression can use any " +"operators valid in the program's native language.\n" +"\n" +"NB. A watchpoint set on a local variable will automatically be removed when " +"the variable loses scope." +msgstr "" +"指定要查看的数据。它可以是以下情况之一:\n" +"1) 任意的变量名称,例如:“foo”\n" +"2) 一个内存地址, 合适的例子:从 *(int*)0x12345678 开始,将查看一个整型大小的" +"字节块。\n" +"表达式中不要包含空格:gdb 无法理解它们的。\n" +"3) 一个复杂的表达式,例如:“a*b + c/d”。 在程序的本机语言中表达式能够使用任意" +"有效的计算符。\n" +"\n" +"NB. 当变量失去范围后,设置在局部变量中的监视点将自动被移除。" -#: LiteEditor/project_settings_base_dlg.cpp:1157 -#: wxformbuilder/formbuildsettingsbasedlg.cpp:38 -msgid "Command:" -msgstr "命令:" +#: LiteEditor/breakpointdlgbase.cpp:238 +msgid "Conditional Breaks: Add any condition here" +msgstr "条件断点:在此处添加任何条件" -#: LiteEditor/newkeyshortcutdlg.cpp:31 LiteEditor/newkeyshortcutdlg.cpp:83 -msgid "DEL" +#: LiteEditor/breakpointdlgbase.cpp:243 +msgid "" +"You can add a condition to any breakpoint or watchpoint. The debugger will " +"then stop only if the condition is met.\n" +"\n" +"The condition can be any simple or complex expression in your programming " +"language,providing it returns a bool. However any variables that you use " +"must be in scope.\n" +"\n" +"If you've previously set a condition and no longer want it, just clear this " +"textctrl." msgstr "" +"您可以添加一个条件断点或监视点。调试器将只有在条件满足时停止。\n" +"\n" +"该条件可以是任何在你的编程语言中简单的或复杂的表达式,它将返回一个 bool 值。" +"当然,使用任何变量都必须在范围之内。\n" +"\n" +"如果您之前已经设置了一个条件但现在又不再想要了,就可以清除掉它们。" -#: LiteEditor/newkeyshortcutdlg.cpp:32 -msgid "DELETE" -msgstr "" +#: LiteEditor/breakpointdlgbase.cpp:247 +msgid "Command List: Add any command(s) here" +msgstr "命令列表:在此添加任何命令" -#: LiteEditor/newkeyshortcutdlg.cpp:33 -msgid "BACK" +#: LiteEditor/breakpointdlgbase.cpp:252 +msgid "" +"You can add a list of commands to any breakpoint or watchpoint. When the " +"breakpoint is hit and the program interrupted, those commands will be " +"executed.\n" +"\n" +"For example, to print the value of the variable foo and then continue " +"running the program, enter:\n" +"print foo\n" +"cont\n" +"\n" +"If you've previously entered commands, and no longer want them, just clear " +"this textctrl." msgstr "" +"您可以给任何断点或监视点添加命令列表。当断点到达时程序将中断,这些命令将被执" +"行。\n" +"\n" +"比如,打印输出变量 foo 的值并继续运行程序,输入:\n" +"print foo\n" +"cont\n" +"\n" +"如果您之前已经输入了命令但现在又不再想要了,就可以清除掉它们。" -#: LiteEditor/newkeyshortcutdlg.cpp:34 LiteEditor/newkeyshortcutdlg.cpp:82 -msgid "INS" -msgstr "" +#: LiteEditor/breakpointdlgbase.cpp:266 +msgid "Disable" +msgstr "禁用" -#: LiteEditor/newkeyshortcutdlg.cpp:35 LiteEditor/newkeyshortcutdlg.cpp:70 -msgid "ENTER" +#: LiteEditor/breakpointdlgbase.cpp:268 +msgid "" +"If you check this box, the breakpoint (or watchpoint) will still exist, but " +"it won't trigger. If you uncheck it in the future, the breakpoint will work " +"again." msgstr "" +"如您勾选它,断点(或监视点)将依旧存在,但不会被触发。如您在以后取消勾选它,此" +"断点将重新工作。" -#: LiteEditor/newkeyshortcutdlg.cpp:36 -msgid "RETURN" -msgstr "" +#: LiteEditor/breakpointdlgbase.cpp:272 +msgid "Make temporary" +msgstr "设为临时" -#: LiteEditor/newkeyshortcutdlg.cpp:37 LiteEditor/newkeyshortcutdlg.cpp:77 -msgid "PGUP" +#: LiteEditor/breakpointdlgbase.cpp:274 +msgid "" +"A temporary breakpoint (or watchpoint) is one that works only once. When " +"it's hit it behaves like any other, except that it's then deleted." msgstr "" +"一个临时断点(或监视点)只工作一次。除了触发后被删除外,它表现的和其它断点(或监" +"视点)一样。" -#: LiteEditor/newkeyshortcutdlg.cpp:38 LiteEditor/newkeyshortcutdlg.cpp:79 -msgid "PGDN" -msgstr "" +#: LiteEditor/breakpointdlgbase.cpp:278 +msgid "Ignore count:" +msgstr "忽略数目:" -#: LiteEditor/newkeyshortcutdlg.cpp:39 LiteEditor/newkeyshortcutdlg.cpp:72 -msgid "LEFT" +#: LiteEditor/breakpointdlgbase.cpp:279 +msgid "" +"Enter a count >0 to ignore this breakpoint (or watchpoint) for that number " +"of times. It then behaves as though it is disabled, except that every time " +"it would have triggered, the ignore count decrements.\n" +"When the count reaches zero, the breakpoint becomes active again." msgstr "" +"输入一个大于 0 的用于忽略断点(或监视点)次数的数字。然后,除了每次触发时计数的" +"递减,它就像被禁用了。\n" +"当计数到达零时,断点将再次变为活动状态。" -#: LiteEditor/newkeyshortcutdlg.cpp:40 LiteEditor/newkeyshortcutdlg.cpp:74 -msgid "RIGHT" -msgstr "" +#: LiteEditor/workspacetab.cpp:49 +msgid "" +msgstr "<打开配置管理...>" -#: LiteEditor/newkeyshortcutdlg.cpp:41 LiteEditor/newkeyshortcutdlg.cpp:73 -msgid "UP" -msgstr "" +#: LiteEditor/workspacetab.cpp:441 +msgid " Project Settings" +msgstr " 项目设置" -#: LiteEditor/newkeyshortcutdlg.cpp:42 LiteEditor/newkeyshortcutdlg.cpp:75 -msgid "DOWN" -msgstr "" +#: LiteEditor/findinfiles_dlg.h:113 LiteEditor/wxcrafter.cpp:1011 +#: LiteEditor/frame.cpp:1358 LiteEditor/frame.cpp:1360 +#: LiteEditor/frame.cpp:1556 LiteEditor/frame.cpp:1558 +#: LiteEditor/frame.cpp:1693 LiteEditor/frame.cpp:1695 +#: LiteEditor/frame.cpp:1862 LiteEditor/frame.cpp:1864 +#: codelitephp/php-plugin/php_workspace_view.cpp:228 +#: codelitephp/php-plugin/php_workspace_view.cpp:243 +#: codelitephp/php-plugin/php_workspace_view.cpp:279 +msgid "Find In Files" +msgstr "在文件中查找" -#: LiteEditor/newkeyshortcutdlg.cpp:43 LiteEditor/newkeyshortcutdlg.cpp:71 -msgid "HOME" -msgstr "" +#: LiteEditor/openwindowspanelbase.cpp:34 +msgid "" +"If checked, sort alphabetically. Otherwise display in the same order as the " +"editors." +msgstr "如果勾选此项,将按字母顺序排序。否则将以相同的顺序显示在编辑器中。" -#: LiteEditor/newkeyshortcutdlg.cpp:44 LiteEditor/newkeyshortcutdlg.cpp:80 -msgid "END" -msgstr "" +#: LiteEditor/tasksfindwhatdlgbase.h:105 LiteEditor/tasks_find_what_dlg.cpp:72 +msgid "New Task" +msgstr "新建任务" -#: LiteEditor/newkeyshortcutdlg.cpp:45 LiteEditor/newkeyshortcutdlg.cpp:68 -msgid "SPACE" -msgstr "" +#: LiteEditor/wxcAboutDlg.h:74 +msgid "About CodeLite" +msgstr "关于 CodeLite" -#: LiteEditor/newkeyshortcutdlg.cpp:46 LiteEditor/newkeyshortcutdlg.cpp:69 -msgid "TAB" -msgstr "" +#: LiteEditor/tabgroupbasedlgs.cpp:50 +msgid "Select a tab group, or browse for one" +msgstr "选择一个标签组, 或浏览一个" + +#: LiteEditor/tabgroupbasedlgs.cpp:55 +msgid "Click to search for other groups" +msgstr "点击查询其它组" + +#: LiteEditor/tabgroupbasedlgs.cpp:62 +msgid "Double-click to choose one of these groups" +msgstr "双击选择组中一个" -#: LiteEditor/newkeyshortcutdlg.cpp:47 -msgid "ESC" -msgstr "" +#: LiteEditor/tabgroupbasedlgs.cpp:67 +msgid "Replace current tabs" +msgstr "替换当前标签" -#: LiteEditor/newkeyshortcutdlg.cpp:48 -msgid "ESCAPE" -msgstr "" +#: LiteEditor/tabgroupbasedlgs.cpp:68 +msgid "" +"By default, the tabs of this group will be added to the current tabs. Tick " +"this to replace the current tabs instead." +msgstr "默认情况下,此组标签将被添加到当前标签组,勾选它以替换当前标签组" -#: LiteEditor/newkeyshortcutdlg.cpp:49 -msgid "CANCEL" -msgstr "" +#: LiteEditor/tabgroupbasedlgs.cpp:118 +msgid "Select which tabs you want to be in the group" +msgstr "选择哪些标签要在组" -#: LiteEditor/newkeyshortcutdlg.cpp:50 -msgid "CLEAR" -msgstr "" +#: LiteEditor/tabgroupbasedlgs.cpp:135 +msgid "Click to select all items" +msgstr "单击选择全部项" -#: LiteEditor/newkeyshortcutdlg.cpp:51 -msgid "MENU" -msgstr "" +#: LiteEditor/tabgroupbasedlgs.cpp:140 +msgid "Click to clear all items" +msgstr "单击清除全部项" -#: LiteEditor/newkeyshortcutdlg.cpp:52 -msgid "PAUSE" -msgstr "" +#: LiteEditor/tabgroupbasedlgs.cpp:154 +msgid "Choose a name for the group:" +msgstr "选择一个组名:" -#: LiteEditor/newkeyshortcutdlg.cpp:53 -msgid "CAPITAL" -msgstr "" +#: LiteEditor/quickfindbar.cpp:99 +msgid "Case sensitive match" +msgstr "区分大小写匹配" -#: LiteEditor/newkeyshortcutdlg.cpp:54 -msgid "SELECT" -msgstr "" +#: LiteEditor/quickfindbar.cpp:111 +msgid "Regular expression" +msgstr "正则表达式" -#: LiteEditor/newkeyshortcutdlg.cpp:55 -msgid "PRINT" -msgstr "" +#: LiteEditor/quickfindbar.cpp:112 +msgid "Wildcard syntax" +msgstr "通配字符语法" -#: LiteEditor/newkeyshortcutdlg.cpp:56 -msgid "EXECUTE" -msgstr "" +#: LiteEditor/quickfindbar.cpp:130 +msgid "Highlight Occurences" +msgstr "高亮匹配" -#: LiteEditor/newkeyshortcutdlg.cpp:57 -msgid "SNAPSHOT" -msgstr "" +#: LiteEditor/quickfindbar.cpp:139 +msgid "Hit ENTER to search, or Shift + ENTER to search backward" +msgstr "按 ENTER 进行搜索,或 Shift + ENTER 向后搜索" -#: LiteEditor/newkeyshortcutdlg.cpp:58 -msgid "HELP" -msgstr "" +#: LiteEditor/quickfindbar.cpp:141 +msgid "Type to start a search..." +msgstr "输入并开始搜索..." + +#: LiteEditor/quickfindbar.cpp:145 LiteEditor/wxcrafter.cpp:649 +#: LiteEditor/frame.cpp:1354 LiteEditor/frame.cpp:1552 +#: LiteEditor/frame.cpp:1689 LiteEditor/frame.cpp:1858 +msgid "Find" +msgstr "查找" -#: LiteEditor/newkeyshortcutdlg.cpp:59 -msgid "ADD" -msgstr "" +#: LiteEditor/quickfindbar.cpp:149 +msgid "Find Next" +msgstr "查找下一个" -#: LiteEditor/newkeyshortcutdlg.cpp:60 -msgid "SEPARATOR" -msgstr "" +#: LiteEditor/quickfindbar.cpp:152 +msgid "Find Prev" +msgstr "查找上一个" -#: LiteEditor/newkeyshortcutdlg.cpp:61 -msgid "SUBTRACT" -msgstr "" +#: LiteEditor/quickfindbar.cpp:156 +msgid "Find Previous" +msgstr "查找上一个" -#: LiteEditor/newkeyshortcutdlg.cpp:62 -msgid "DECIMAL" -msgstr "" +#: LiteEditor/quickfindbar.cpp:159 +msgid "Find All" +msgstr "查找全部" + +#: LiteEditor/quickfindbar.cpp:162 +msgid "Find and select all occurrences" +msgstr "查找并选择所有" + +#: LiteEditor/quickfindbar.cpp:177 +msgid "Type the replacement string and hit ENTER to perform the replacement" +msgstr "输入替换字符串并按下<回车键>来执行更换" + +#: LiteEditor/quickfindbar.cpp:178 +msgid "Type any replacement string..." +msgstr "输入任意替换字符串..." + +#: LiteEditor/quickfindbar.cpp:182 +msgid "Replace the current selection" +msgstr "替换当前所选内容" -#: LiteEditor/newkeyshortcutdlg.cpp:63 -msgid "DIVIDE" -msgstr "" +#: LiteEditor/editoroptionsgeneralsavepanelbase.cpp:52 +msgid "Do not trim the caret line" +msgstr "不删除光标所在行" -#: LiteEditor/newkeyshortcutdlg.cpp:64 -msgid "NUM_LOCK" -msgstr "" +#: LiteEditor/editoroptionsgeneralsavepanelbase.cpp:64 +msgid "Trim only modified lines" +msgstr "只删除已修改行" -#: LiteEditor/newkeyshortcutdlg.cpp:65 -msgid "SCROLL_LOCK" -msgstr "" +#: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:40 +#: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:41 +msgid "Show line numbers margin" +msgstr "显示行号页边" -#: LiteEditor/newkeyshortcutdlg.cpp:66 -msgid "PAGEUP" -msgstr "" +#: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:43 +#: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:44 +msgid "Highlight matched braces" +msgstr "高亮匹配的括号" -#: LiteEditor/newkeyshortcutdlg.cpp:67 -msgid "PAGEDOWN" -msgstr "" +#: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:46 +msgid "Hide the edit margin" +msgstr "隐藏编辑页边空白" -#: LiteEditor/newkeyshortcutdlg.cpp:76 -msgid "PRIOR" -msgstr "" +#: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:47 +msgid "Hide the edit margin ( the red/green marks when a line is modified)" +msgstr "隐藏编辑页边空白(红色/绿色标志在已改动的行时)" -#: LiteEditor/newkeyshortcutdlg.cpp:78 -msgid "NEXT" -msgstr "" +#: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:49 +msgid "Show indentation gudelines" +msgstr "显示缩进标记" -#: LiteEditor/newkeyshortcutdlg.cpp:84 -msgid "=" -msgstr "" +#: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:50 +msgid "Show indentation guidelines (vertical lines)" +msgstr "显示缩进标记(垂直线条)" -#: LiteEditor/newkeyshortcutdlg.cpp:85 Gizmos/newclassbasedlg.cpp:45 -msgid "*" -msgstr "" +#: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:52 +msgid "Disable semicolon shift" +msgstr "禁用分号的转变" -#: LiteEditor/newkeyshortcutdlg.cpp:86 -msgid "+" +#: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:53 +msgid "" +"By default when typing \";\" next to a close brace \")\" CodeLite will move " +"the \";\" to the right\n" +"This option enables or disables this behavior" msgstr "" +"在默认情况下当输入 \";\" 后紧接着输入 \")\" 时,CodeLite 将移动该 \";\" 到括" +"号的右侧\n" +"该选项可以启用或禁用此行为" -#: LiteEditor/newkeyshortcutdlg.cpp:87 -msgid "KP_SEPARATOR" -msgstr "" +#: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:55 +msgid "Whitespaces" +msgstr "空白" -#: LiteEditor/newkeyshortcutdlg.cpp:88 -msgid "-" -msgstr "" +#: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:63 +msgid "Whitespace visibility" +msgstr "空白可见性" -#: LiteEditor/newkeyshortcutdlg.cpp:89 -msgid "." -msgstr "" +#: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:64 +msgid "Whitespace visibility policy" +msgstr "空白的可见性规则" -#: LiteEditor/newkeyshortcutdlg.cpp:90 -msgid "/" -msgstr "" +#: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:69 +msgid "Mac (CR)" +msgstr "Mac (CR)" -#: LiteEditor/newkeyshortcutdlg.cpp:91 -msgid "WINDOWS_LEFT" -msgstr "" +#: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:70 +msgid "Windows (CRLF)" +msgstr "Windows (回车换行符)" -#: LiteEditor/newkeyshortcutdlg.cpp:92 -msgid "WINDOWS_RIGHT" -msgstr "" +#: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:71 +msgid "Unix (LF)" +msgstr "Unix (LF)" + +#: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:72 +msgid "EOL Mode" +msgstr "行尾模式" -#: LiteEditor/newkeyshortcutdlg.cpp:93 -msgid "WINDOWS_MENU" -msgstr "" +#: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:73 +msgid "Set the editor's EOL mode (End Of Line)" +msgstr "设置编辑器的 EOL 模式(End Of Line)" -#: LiteEditor/newkeyshortcutdlg.cpp:94 -msgid "COMMAND" -msgstr "" +#: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:75 +msgid "Caret line" +msgstr "插入符号所在行" -#: LiteEditor/newkeyshortcutdlg.cpp:137 -msgid "F" -msgstr "" +#: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:79 +msgid "Highlight caret line with a background colour" +msgstr "突出显示插入符号行的背景颜色" -#: LiteEditor/newkeyshortcutdlg.cpp:141 -msgid "SPECIAL" -msgstr "" +#: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:81 +#: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:82 +msgid "Caret line background colour" +msgstr "插入符号行背景颜色" -#: LiteEditor/attachdbgprocbasedlg.h:86 -msgid "Attach debugger to process:" -msgstr "连接调试器到进程:" +#: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:84 +msgid "Caret line colour alpha" +msgstr "插入符号所在行透明度" + +#: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:85 +msgid "" +"Set the caret line colour transparency value. Where 0 mean complete " +"transparent and 255 means fully opaque" +msgstr "设置插入符号的颜色透明度。0 意味着完全透明而 255 意味着完全不透明" + +#: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:87 +#: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:88 +msgid "Debugger Marker" +msgstr "调试器标志" -#: LiteEditor/new_item_base_dlg.cpp:48 LiteEditor/new_item_dlg.cpp:127 -msgid "Location:" -msgstr "位置:" +#: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:90 +msgid "Highlight debugger line" +msgstr "高亮调试器行" -#: LiteEditor/syntaxhighlightbasedlg.h:72 -msgid "Syntax Highlight:" -msgstr "语法高亮:" +#: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:91 +msgid "When debugging, highlight the current line with a background colour" +msgstr "调试时,使用背景色高亮当前行" + +#: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:93 +#: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:95 +msgid "Debugger line background colour" +msgstr "调试器行背景颜色" + +#: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:132 +msgid "Smart curly brackets" +msgstr "智能大括号" + +#: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:133 +msgid "When user types '{', automatically insert the closing brace" +msgstr "当用户输入“{”时,自动插入大括号“}”" + +#: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:135 +msgid "Smart square brackets / Parentheses" +msgstr "智能方括号/括号" -#: LiteEditor/newworkspacebasedlg.h:84 -msgid "New Workspace" -msgstr "新建工作空间" +#: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:136 +msgid "" +"When user types '[' or '(' automatically insert the closing bracket.\n" +"In addition, if a user types ']' or ')' next to ']' or ')' just move the " +"caret one position to the right" +msgstr "" +"当用户输入“[”或“(”,自动插入反括号“]”或“)”。\n" +"此外,如果用户紧挨着“]”或“)”输入“]”或“)”时仅移动插入符号的位置到右侧" -#: LiteEditor/manageperspectivesbasedlg.h:79 -msgid "Perspectives..." -msgstr "视角..." +#: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:138 +msgid "Smart quotes" +msgstr "智能引号" -#: LiteEditor/manageperspectivesbasedlg.h:100 -msgid "Save Perspective As..." -msgstr "保存视角为..." +#: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:139 +msgid "" +"When typing \" or ', automatically add another one to the right, unless one " +"already exists (in this case, simply move the caret one position to the " +"right)" +msgstr "" +"当输入 \" 或 ' 时,将自动添加另一半引号,除非另一个已经存在(在这种情况下,只" +"会移动插入符号的位置到右侧)" -#: LiteEditor/batchbuildbasedlg.cpp:19 -msgid "Select the configurations to build/clean:" -msgstr "选择要构建/清理的配置:" +#: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:141 +msgid "Typing in selection" +msgstr "在选择中输入" -#: LiteEditor/batchbuildbasedlg.cpp:40 -msgid "&Clean" -msgstr "清理(&C)" +#: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:144 +msgid "Wrap with quotes" +msgstr "使用引号包裹" -#: LiteEditor/batchbuildbasedlg.cpp:46 LiteEditor/rename_symbool_dlg.cpp:67 -#: LiteEditor/rename_symbool_dlg.cpp:192 -msgid "&Uncheck All" -msgstr "全否(&U)" +#: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:145 +msgid "" +"When typing ' or \" on a selection, instead of replacing the selection with " +"the character, wrap it with quotes" +msgstr "" +"当在一个选择中输入 ' 或 \" 时,不是使用字符替换选择,而是使用引号包裹它" -#: LiteEditor/batchbuildbasedlg.cpp:54 LiteEditor/addincludefiledlgbase.cpp:76 -msgid "Move Up" -msgstr "上移" +#: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:147 +msgid "Wrap with brackets" +msgstr "使用括号包裹" -#: LiteEditor/batchbuildbasedlg.cpp:57 LiteEditor/addincludefiledlgbase.cpp:78 -msgid "Move Down" -msgstr "下移" +#: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:148 +msgid "" +"When typing '(' or '[' on a selection, instead of replacing the selection " +"with the character, wrap it with brackets" +msgstr "当在一个选择中输入“(”或“[”时,不是使用字符替换选择,而是使用括号包裹它" -#: LiteEditor/debuggerpane.cpp:52 -msgid "Ascii Viewer" -msgstr "ASCII 视图" +#: LiteEditor/NewProjectWizard.cpp:332 +msgid "Select Project Path:" +msgstr "请选择项目路径:" -#: LiteEditor/debuggerpane.cpp:54 -msgid "Disassemble" -msgstr "反汇编" +#: LiteEditor/NewProjectWizard.cpp:337 LiteEditor/newworkspacedlg.cpp:80 +msgid "The selected project path '" +msgstr "已选择项目路径“" -#: LiteEditor/configuration_manager_dlg.cpp:226 -#, c-format +#: LiteEditor/NewProjectWizard.cpp:338 msgid "" -"Settings for workspace configuration '%s' have changed, would you like to " -"save them?" -msgstr "为工作区配置 ‘%s’ 设置已更改,您想要保存他们吗?" +"'\n" +"contains some invalid characters\n" +"Continue anyway?" +msgstr "" +"”\n" +"包含一些无效字符\n" +"是否继续?" -#: LiteEditor/configuration_manager_dlg.cpp:273 -msgid "Enter New Configuration Name:" -msgstr "输入新配置名称:" +#: LiteEditor/NewProjectWizard.cpp:394 +msgid "The File '" +msgstr "文件“" -#: LiteEditor/batchbuildbasedlg.h:90 -msgid "Batch Build" -msgstr "批量构建" +#: LiteEditor/NewProjectWizard.cpp:394 +msgid "' already exists at the target directory '" +msgstr "”已存在于目标目录“" -#: LiteEditor/simpletable.cpp:95 -#: LiteEditor/debugger_predefined_types_page.cpp:12 -msgid "Expression" -msgstr "表达式" +#: LiteEditor/NewProjectWizard.cpp:396 +msgid "Please select a different project path\n" +msgstr "请重新选择项目路径\n" -#: LiteEditor/simpletable.cpp:129 -msgid "Expression to watch:" -msgstr "表达式监视点:" +#: LiteEditor/NewProjectWizard.cpp:397 +msgid "The file '" +msgstr "文件“" -#: LiteEditor/simpletable.cpp:129 -msgid "New watch" -msgstr "新建监视点" +#: LiteEditor/NewProjectWizard.cpp:397 +msgid "' is part of the template project [" +msgstr "”属于模板项目 [" -#: LiteEditor/simpletable.cpp:255 -msgid "Update expression:" -msgstr "更新表达式:" +#: LiteEditor/NewProjectWizard.cpp:492 +msgid "Project names may contain only the following characters [a-z0-9_-]" +msgstr "项目名称只能包含下列字符 [a-z0-9_-]" + +#: LiteEditor/NewProjectWizard.cpp:506 +msgid "Invalid project path selected: " +msgstr "无效的项目路径选择:" + +#: LiteEditor/NewProjectWizard.cpp:517 +msgid "Please select a template from the list" +msgstr "请从列表中选择一个模板" -#: LiteEditor/simpletable.cpp:255 -msgid "Update Watch" -msgstr "更新监视点" +#: LiteEditor/dbgcommandbasedlg.h:73 +msgid "Debugger Type" +msgstr "调试器类型" -#: LiteEditor/editorsettingslocal.cpp:75 -msgid "Indentation only" -msgstr "仅缩进" +#: LiteEditor/project_settings_dlg.cpp:129 +msgid "Common Settings" +msgstr "通用设置" -#: LiteEditor/editorsettingsdockingwindowsbase.cpp:28 -msgid "Output Pane:" -msgstr "输出面板:" +#: LiteEditor/project_settings_dlg.cpp:132 +#: LiteEditor/project_settings_base_dlg.cpp:155 +#: LiteEditor/project_settings_base_dlg.cpp:922 +msgid "Compiler" +msgstr "编译器" -#: LiteEditor/editorsettingsdockingwindowsbase.cpp:32 -msgid "" -"When user clicks inside an editor, hide the output pane -- unless it's one " -"of:" -msgstr "当用户编辑器内点击时,隐藏输出面板" +#: LiteEditor/project_settings_dlg.cpp:133 LiteEditor/compiler_pages.cpp:318 +#: LiteEditor/project_settings_base_dlg.cpp:941 +msgid "Linker" +msgstr "链接器" -#: LiteEditor/editorsettingsdockingwindowsbase.cpp:34 -msgid "" -"When e.g. you compile your project, or use 'Find in Files', the Output Pane " -"opens to show the results. If this box is ticked, it will automatically " -"close as soon as you click in the editor." -msgstr "" -"比如当您编译项目或者使用”在文件中查询“时,输出面板显示结果。当您在编辑器内点" -"击的时候,如果此面板被标记, 它将会尽快自动关闭。" +#: LiteEditor/project_settings_dlg.cpp:134 +#: LiteEditor/workspacesettingsbase.cpp:35 +msgid "Environment" +msgstr "环境" -#: LiteEditor/editorsettingsdockingwindowsbase.cpp:46 -msgid "" -"Don't automatically close the Output Pane on an editor click if this tab is " -"showing e.g. you may not want it to close while you correct one of many " -"build errors." -msgstr "" -"当输出面板显示时,点击编辑器区域时不要自动关闭输出面板。例如,您可能不想在修" -"正许多构建错误中的一个时关闭面板。" +#: LiteEditor/project_settings_dlg.cpp:135 +#: LiteEditor/project_settings_base_dlg.cpp:189 +msgid "Debugger" +msgstr "调试器" -#: LiteEditor/editorsettingsdockingwindowsbase.cpp:52 -#: LiteEditor/editorsettingsdockingwindowsbase.cpp:58 -#: LiteEditor/editorsettingsdockingwindowsbase.cpp:64 -#: LiteEditor/editorsettingsdockingwindowsbase.cpp:70 -#: LiteEditor/editorsettingsdockingwindowsbase.cpp:76 -#: LiteEditor/editorsettingsdockingwindowsbase.cpp:82 -#: LiteEditor/editorsettingsdockingwindowsbase.cpp:88 -#: LiteEditor/editorsettingsdockingwindowsbase.cpp:94 -#: LiteEditor/editorsettingsdockingwindowsbase.cpp:100 -#: LiteEditor/editorsettingsdockingwindowsbase.cpp:106 -#: LiteEditor/editorsettingsdockingwindowsbase.cpp:112 -msgid "" -"Don't automatically close the Output Pane on an editor click if this tab is " -"showing." -msgstr "当输出面板显示时,点击编辑器区域时不要自动关闭输出面板。" +#: LiteEditor/project_settings_dlg.cpp:136 +#: LiteEditor/project_settings_base_dlg.cpp:607 +#: LiteEditor/project_settings_base_dlg.cpp:956 +msgid "Resources" +msgstr "资源" -#: LiteEditor/editorsettingsdockingwindowsbase.cpp:110 -msgid "Git" -msgstr "" +#: LiteEditor/project_settings_dlg.cpp:138 +msgid "Pre / Post Build Commands" +msgstr "构建前/后命令" -#: LiteEditor/editorsettingsdockingwindowsbase.cpp:118 -msgid "" -"Don't automatically close the Debugger Pane on an editor click if this tab " -"is showing. You probably don't want it to close whenever you set a " -"breakpoint, for example." -msgstr "" -"当调试面板显示时,点击编辑器不要自动关闭调试器面板。例如,您可能不想在设置断" -"点时关闭面板。" +#: LiteEditor/project_settings_dlg.cpp:140 +msgid "Pre Build" +msgstr "预构建" + +#: LiteEditor/project_settings_dlg.cpp:142 +msgid "Post Build" +msgstr "构建后" + +#: LiteEditor/project_settings_dlg.cpp:144 +#: LiteEditor/syntaxhighlightbasedlg.cpp:133 +msgid "Customize" +msgstr "自定义" -#: LiteEditor/editorsettingsdockingwindowsbase.cpp:122 -msgid "Don't automatically fold Search results" -msgstr "不要自动折叠搜索结果" +#: LiteEditor/project_settings_dlg.cpp:146 +msgid "Custom Build" +msgstr "自定义构建" -#: LiteEditor/editorsettingsdockingwindowsbase.cpp:124 -msgid "" -"By default, all but the first results of 'Search' are automatically folded; " -"you have to click on each subsequent file to see its contained matches. Tick " -"this box to prevent this.\n" -"You can still fold and unfold results with the button in the output pane " -"toolbar." -msgstr "" -"默认情况下,所有’搜索‘结果的第一条会被自动折叠;您需要点击每个后续的文件来查" -"看它所包含的匹配。您可以勾选方框来避免这种情况。\n" -"在输出面板工具栏中你仍然可以通过这个按钮来折叠再还原结果。" +#: LiteEditor/project_settings_dlg.cpp:148 +#: LiteEditor/project_settings_dlg.cpp:149 +msgid "Custom Makefile Rules" +msgstr "自定义 Makefile 规则" -#: LiteEditor/editorsettingsdockingwindowsbase.cpp:128 -msgid "Find Bar:" -msgstr "查找栏:" +#: LiteEditor/project_settings_dlg.cpp:152 +#: LiteEditor/tags_options_base_dlg.h:186 +#: codelitephp/php-plugin/php_ui.cpp:468 codelitephp/php-plugin/php_ui.cpp:841 +#: codelitephp/php-plugin/php_ui.cpp:1884 WebTools/WebToolsBase.cpp:35 +msgid "Code Completion" +msgstr "代码补全" -#: LiteEditor/editorsettingsdockingwindowsbase.cpp:132 -msgid "Place the find bar at the bottom" -msgstr "把查找栏置底" +#: LiteEditor/project_settings_dlg.cpp:154 +#: LiteEditor/project_settings_dlg.cpp:155 +#: LiteEditor/syntaxhighlightbasedlg.cpp:156 +msgid "Global Settings" +msgstr "全局设置" -#: LiteEditor/editorsettingsdockingwindowsbase.cpp:137 -msgid "Debug Pane:" -msgstr "调试面板:" +#: LiteEditor/project_settings_dlg.cpp:288 +#: LiteEditor/project_settings_dlg.cpp:315 +msgid "Save changes before loading new configuration?" +msgstr "加载新配置前保存变更?" -#: LiteEditor/editorsettingsdockingwindowsbase.cpp:141 -msgid "Show 'Debug' tab on starting the debugger" -msgstr "启动调试器时显示“调试”标签" +#: LiteEditor/project_settings_dlg.cpp:289 +#: LiteEditor/project_settings_dlg.cpp:316 +msgid "Save Changes" +msgstr "保存变更" + +#: LiteEditor/project_settings_dlg.cpp:390 +msgid "This project is disabled" +msgstr "此项目已禁用" -#: LiteEditor/editorsettingsdockingwindowsbase.cpp:143 +#: LiteEditor/project_settings_dlg.cpp:400 msgid "" -"When starting the debugger, if the Debug tab is not visible, checking this " -"will make it visible" -msgstr "当开始调试时,如果调试面板不可见,选择此项可以使之可见" +"Settings on this page are disabled because this project is setup as \"Custom " +"Build\" project" +msgstr "因为该项目被设置为 \"自定义构建\" ,所以本页的设置被禁用了。" -#: LiteEditor/editorsettingsdockingwindowsbase.cpp:155 -msgid "Docking Style:" -msgstr "停靠风格:" +#: LiteEditor/project_settings_dlg.cpp:514 LiteEditor/compiler_pages.cpp:423 +msgid "Compiler Options" +msgstr "编译器选项" -#: LiteEditor/editorsettingsdockingwindowsbase.cpp:163 -msgid "Tab Control Style:" -msgstr "选项卡控件风格:" +#: LiteEditor/project_settings_dlg.cpp:525 LiteEditor/compiler_pages.cpp:454 +#: LiteEditor/project_settings_base_dlg.cpp:358 +msgid "Linker Options" +msgstr "链接器选项" -#: LiteEditor/new_configuration_dlg.cpp:64 -msgid "Configuration Name:" -msgstr "配置名称:" +#: LiteEditor/CompilersFoundDlgBase.cpp:56 +msgid "Found Compilers" +msgstr "已找到编译器" -#: LiteEditor/new_configuration_dlg.cpp:72 -msgid "Copy Settings from:" -msgstr "从设置复制:" +#: LiteEditor/CompilersFoundDlgBase.cpp:56 +msgid "" +"Below is a list of compilers found on your computer.\n" +"Click 'OK' to replace the current list of compilers with this list. 'Cancel' " +"to abort." +msgstr "" +"以下是在您的电脑上发现的编译器列表。\n" +"点击“确定”就使用该列表替换当前的编译器列表。点击“取消”就退出。" -#: LiteEditor/new_configuration_dlg.cpp:79 -#: LiteEditor/new_configuration_dlg.cpp:136 -msgid "-- None --" -msgstr "-- 无 --" +#: LiteEditor/CompilersFoundDlgBase.cpp:70 +msgid "Compiler Name / Family" +msgstr "编译器名称/科:" -#: LiteEditor/new_configuration_dlg.cpp:128 -msgid "Configuration Name is empty" -msgstr "配置名称为空" +#: LiteEditor/CompilersFoundDlgBase.cpp:80 +msgid "Double click a compiler to make it the default for its compiler family" +msgstr "双击一个编译器来让它成为当前编译程序的默认选项" -#: LiteEditor/fileview.cpp:397 -msgid "Run " -msgstr "运行" +#: LiteEditor/CompilersFoundDlgBase.cpp:125 +msgid "" +"Some of the compilers referred by the workspace no longer exist.\n" +"Define each missing compiler by cloning an existing compiler." +msgstr "" +"该工作区查阅到一些编译器是不存在的。\n" +"可以通过克隆现有的编译器来定义各个丢失的编译器。" -#: LiteEditor/fileview.cpp:787 -msgid "Add Existing Item" -msgstr "添加现有项目" +#: LiteEditor/CompilersFoundDlgBase.cpp:137 +#: LiteEditor/advanced_settings.cpp:81 +msgid "Compilers" +msgstr "编译器" -#: LiteEditor/fileview.cpp:819 -msgid "New Item" -msgstr "新建项目" +#: LiteEditor/breakpointpropertiesdlg.cpp:116 +msgid "" +"You don't seem to have entered a variable for the watchpoint to watch. " +"Please try again." +msgstr "您没有为此监视点输入要监视的变量,请重试。" -#: LiteEditor/fileview.cpp:924 -msgid "Are you sure you want remove '" -msgstr "您确定要移除”" +#: LiteEditor/breakpointpropertiesdlg.cpp:136 +msgid "The breakpoint's line-number is invalid. Please try again." +msgstr "无效的断点行号。请再试一次。" -#: LiteEditor/fileview.cpp:929 LiteEditor/fileview.cpp:963 -msgid "Remember my answer and apply it all files" -msgstr "记住我的回答并应用到所有文件" +#: LiteEditor/breakpointpropertiesdlg.cpp:136 +#: LiteEditor/breakpointpropertiesdlg.cpp:147 +msgid ":/" +msgstr ":/" -#: LiteEditor/fileview.cpp:959 -msgid "Do you also want to delete the file '" -msgstr "您也想要删除这个文件 '" +#: LiteEditor/breakpointpropertiesdlg.cpp:146 +msgid "" +"You don't seem to have entered a name for the function. Please try again." +msgstr "您没有为函数输入名称,请重试。" -#: LiteEditor/fileview.cpp:959 -msgid "' from disc?" -msgstr "' 来自光盘?" +#: LiteEditor/breakpointpropertiesdlg.cpp:197 +#: LiteEditor/breakpointpropertiesdlg.cpp:199 LiteEditor/quickdebugdlg.cpp:96 +#: LiteEditor/debugcoredump.cpp:173 +msgid "Select file:" +msgstr "选择文件:" -#: LiteEditor/fileview.cpp:974 +#: LiteEditor/breakpointpropertiesdlg.cpp:232 msgid "" -"An error occurred during file removal. Maybe it has been already deleted or " -"you don't have the necessary permissions" -msgstr "文件移动时出现错误。可能它已经被删除或者您没有足够的权限" +"Sorry, you can't change a breakpoint to a watchpoint, or vice versa, while " +"the debugger is running" +msgstr "对不起,您不能在调试器运行时把断点改为监视点,反之亦然" -#: LiteEditor/fileview.cpp:1011 -msgid " and all its content will be removed from the project." -msgstr "以及它的全部内容将从该项目移除。" +#: LiteEditor/breakpointpropertiesdlg.cpp:233 +msgid "Not possible" +msgstr "不可能" -#: LiteEditor/fileview.cpp:1149 -msgid "You are about to remove project '" -msgstr "您将要移除项目“" +#: LiteEditor/batchbuildbasedlg.cpp:44 +msgid "Select the configurations to build/clean:" +msgstr "选择要构建/清理的配置:" -#: LiteEditor/fileview.cpp:1151 -msgid " from the workspace, click 'Yes' to proceed or 'No' to abort." -msgstr "从工作空间,点击”是“继续或”否“中止." +#: LiteEditor/batchbuildbasedlg.cpp:61 menu.xrc:483 +msgid "&Build" +msgstr "构建(&B)" -#: LiteEditor/fileview.cpp:1283 -msgid "Compiling file: " -msgstr "编译文件:" +#: LiteEditor/batchbuildbasedlg.cpp:65 +msgid "&Clean" +msgstr "清理(&C)" -#: LiteEditor/fileview.cpp:1283 LiteEditor/fileview.cpp:1303 -msgid " of project " -msgstr "项目" +#: LiteEditor/batchbuildbasedlg.cpp:71 LiteEditor/rename_symbool_dlg.cpp:93 +#: LiteEditor/rename_symbool_dlg.cpp:219 +msgid "&Uncheck All" +msgstr "全否(&U)" -#: LiteEditor/fileview.cpp:1303 -msgid "Preprocessing file: " -msgstr "预处理文件:" +#: LiteEditor/batchbuildbasedlg.cpp:79 LiteEditor/addincludefiledlgbase.cpp:58 +msgid "Move Up" +msgstr "上移" -#: LiteEditor/fileview.cpp:1508 -msgid "Failed to find file: " -msgstr "查找文件失败:" +#: LiteEditor/batchbuildbasedlg.cpp:82 LiteEditor/addincludefiledlgbase.cpp:60 +msgid "Move Down" +msgstr "下移" -#: LiteEditor/fileview.cpp:1508 -msgid " in FileView." -msgstr "在文件视图。" +#: LiteEditor/tagsparsersearchpathsbasedlg.h:71 +msgid "Add Search Paths to Code Completion Parser" +msgstr "添加搜索路径到代码补全分析器中" -#: LiteEditor/fileview.cpp:1668 LiteEditor/fileview.cpp:1761 git/git.cpp:1221 -msgid "Importing files ..." -msgstr "导入文件..." +#: LiteEditor/wxcrafter.cpp:93 +msgid "Keep pane open" +msgstr "保持面板打开" -#: LiteEditor/fileview.cpp:1711 LiteEditor/fileview.cpp:1786 -msgid "Adding file: " -msgstr "添加文件:" +#: LiteEditor/wxcrafter.cpp:95 +msgid "Auto Scroll to Bottom" +msgstr "自动滚动到底部" -#: LiteEditor/fileview.cpp:1850 -msgid "New file name:" -msgstr "新建文件的名称:" +#: LiteEditor/wxcrafter.cpp:95 +msgid "" +"When checked, make sure that the last line added\n" +"is always visible" +msgstr "" +"当检查时,请确保最后一行的添加\n" +"总是可见的" -#: LiteEditor/fileview.cpp:1850 -msgid "Rename file:" -msgstr "重命名文件:" +#: LiteEditor/wxcrafter.cpp:99 +msgid "Clear Build Output" +msgstr "清理构建输出" -#: LiteEditor/fileview.cpp:1857 -msgid "A File with that name already exists!" -msgstr "同名文件已经存在!" +#: LiteEditor/wxcrafter.cpp:101 +msgid "Save Build Log..." +msgstr "保存构建日志..." -#: LiteEditor/fileview.cpp:1886 -msgid "New virtual folder name:" -msgstr "新建虚拟文件夹名称:" +#: LiteEditor/wxcrafter.cpp:103 LiteEditor/frame.cpp:1315 +#: LiteEditor/frame.cpp:1531 LiteEditor/frame.cpp:1668 +#: LiteEditor/frame.cpp:1817 menu.xrc:862 menu.xrc:916 menu.xrc:1146 +#: DatabaseExplorer/ErdPanel.cpp:173 DatabaseExplorer/FrameCanvas.cpp:173 +msgid "Copy" +msgstr "复制" -#: LiteEditor/fileview.cpp:1886 -msgid "Rename virtual folder:" -msgstr "重命名虚拟文件夹:" +#: LiteEditor/wxcrafter.cpp:103 +msgid "Copy Build Output to Clipboard" +msgstr "复制构建输出到剪贴板" -#: LiteEditor/fileview.cpp:1899 LiteEditor/fileview.cpp:1904 -msgid "failed to rename virtual folder: " -msgstr "重命名虚拟文件夹失败:" +#: LiteEditor/wxcrafter.cpp:105 LiteEditor/frame.cpp:1316 +#: LiteEditor/frame.cpp:1532 LiteEditor/frame.cpp:1669 +#: LiteEditor/frame.cpp:1818 menu.xrc:865 menu.xrc:919 +#: DatabaseExplorer/ErdPanel.cpp:175 DatabaseExplorer/FrameCanvas.cpp:175 +msgid "Paste" +msgstr "粘贴" -#: LiteEditor/fileview.cpp:1899 -msgid ", reason: could not locate project " -msgstr ",原因: 无法定位项目" +#: LiteEditor/wxcrafter.cpp:105 +msgid "Paste Build Output into an Empty Editor" +msgstr "将构建输出粘贴到一个空的编辑器" -#: LiteEditor/findresultstab.cpp:130 -msgid "Stop current search" -msgstr "停止当前搜索" +#: LiteEditor/wxcrafter.cpp:293 +msgid "Implement functions" +msgstr "实现函数" -#: LiteEditor/findresultstab.cpp:310 -msgid "The search thread is currently busy" -msgstr "搜索线程正忙" +#: LiteEditor/wxcrafter.cpp:293 +msgid "Select the functions you want to implement" +msgstr "选择您想要实现的功能" -#: LiteEditor/findresultstab.cpp:391 -msgid "====== Searching for: '" -msgstr "====== 查询: '" +#: LiteEditor/wxcrafter.cpp:300 +msgid "The functions will be placed into this file" +msgstr "函数将被放置到这个文件" -#: LiteEditor/findresultstab.cpp:392 -msgid "'; Match case: " -msgstr ";匹配大小写:" +#: LiteEditor/wxcrafter.cpp:400 LiteEditor/wxcrafter.cpp:401 +msgid "Create a new workspace" +msgstr "创建一个新的工作区" -#: LiteEditor/findresultstab.cpp:392 LiteEditor/findresultstab.cpp:393 -#: LiteEditor/findresultstab.cpp:394 Subversion2/subversion2.cpp:1385 -msgid "true" -msgstr "真" +#: LiteEditor/wxcrafter.cpp:405 LiteEditor/frame.cpp:2388 +msgid "Open Workspace" +msgstr "打开工作区" -#: LiteEditor/findresultstab.cpp:392 LiteEditor/findresultstab.cpp:393 -#: LiteEditor/findresultstab.cpp:394 Subversion2/subversion2.cpp:1293 -#: Subversion2/subversion2.cpp:1387 -msgid "false" -msgstr "假" +#: LiteEditor/wxcrafter.cpp:405 +msgid "Open an existing workspace" +msgstr "打开现有的工作空间" -#: LiteEditor/findresultstab.cpp:393 -msgid " ; Match whole word: " -msgstr ";匹配整字:" +#: LiteEditor/wxcrafter.cpp:406 +msgid "" +"Click to create a new project.\n" +"If NO workspace is open, it will auto create a workspace before creating the " +"project" +msgstr "" +"单击以创建一个新的项目。 \n" +"如果没有工作区被打开,它将自动在创建该项目之前创建一个工作区" -#: LiteEditor/findresultstab.cpp:394 -msgid " ; Regular expression: " -msgstr ";正则表达式:" +#: LiteEditor/wxcrafter.cpp:410 +msgid "Recent workspaces" +msgstr "最近工作区" -#: LiteEditor/findresultstab.cpp:692 -msgid "Reached the end of 'find in files' search results list" -msgstr "到达’在文件中查找‘搜索结果列表的末尾" +#: LiteEditor/wxcrafter.cpp:410 +msgid "Open a recently used workspace" +msgstr "打开一个最近使用的工作区" -#: LiteEditor/findresultstab.cpp:726 -msgid "Reached the beginning of 'find in files' search results list" -msgstr "到达“在文件中查找”搜索结果的列表开头" +#: LiteEditor/wxcrafter.cpp:411 +msgid "Open a workspace from a list of recently opened workspaces" +msgstr "从最近打开工作区列表中打开工作区" -#: LiteEditor/findresultstab.cpp:759 -msgid "Search result no longer valid" -msgstr "搜索结果不再有效" +#: LiteEditor/wxcrafter.cpp:415 +msgid "Recent files" +msgstr "最近的文件" -#: LiteEditor/edit_configuration.cpp:85 -#: LiteEditor/manageperspectivesbasedlg.cpp:31 -#: LiteEditor/rename_symbool_dlg.cpp:124 -#: LiteEditor/edit_workspace_conf_dlg.cpp:63 -msgid "&Rename" -msgstr "重命名(&R)" +#: LiteEditor/wxcrafter.cpp:415 +msgid "Open a recently used file" +msgstr "打开一个最近使用的文件" -#: LiteEditor/edit_configuration.cpp:143 LiteEditor/edit_configuration.cpp:165 -msgid "Enter New Name:" -msgstr "输入新名称:" +#: LiteEditor/wxcrafter.cpp:416 +msgid "Open a file from the revcently opened files" +msgstr "从最近打开文件列表中打开文件" -#: LiteEditor/edit_configuration.cpp:181 -msgid "Remove configuration '" -msgstr "删除配置 '" +#: LiteEditor/wxcrafter.cpp:420 +msgid "Forums" +msgstr "论坛" -#: LiteEditor/edit_configuration.cpp:182 -msgid "' ?" -msgstr "" +#: LiteEditor/wxcrafter.cpp:420 +msgid "Visit codelite's forums" +msgstr "浏览 CodeLite 论坛" -#: LiteEditor/debugcoredumpbase.h:89 -msgid "Debug a core dump" -msgstr "调试核心转储" +#: LiteEditor/wxcrafter.cpp:421 +msgid "Click to open a web browser in CodeLite's forums" +msgstr "点击打开浏览器浏览 CodeLite 论坛" -#: LiteEditor/options_base_dlg2.h:35 -msgid "Editor Settings" -msgstr "编辑器设置" +#: LiteEditor/wxcrafter.cpp:425 +msgid "Wiki" +msgstr "Wiki" -#: LiteEditor/listctrlpanelbase.cpp:32 -msgid "Level" -msgstr "级别" +#: LiteEditor/wxcrafter.cpp:425 +msgid "Search codelite's wiki pages" +msgstr "搜索 CodeLite 的百科页面" -#: LiteEditor/listctrlpanelbase.cpp:33 -msgid "Address" -msgstr "地址" +#: LiteEditor/wxcrafter.cpp:426 +msgid "Click to open a web browser in CodeLite's wiki main documentation page" +msgstr "点击打开浏览器浏览 CodeLite's wiki 文档主页" -#: LiteEditor/editorsettingscommentsbase.cpp:20 -msgid "" -"When adding new files to a project, place the files in the 'include' / 'src' " -"folders respectively" -msgstr "当添加新的文件到项目时,请把该文件放到 ’include‘或’src‘文件夹" +#: LiteEditor/wxcrafter.cpp:524 LiteEditor/manager.cpp:394 +#: codelitephp/php-plugin/php_ui.cpp:89 +msgid "C++ Workspace" +msgstr "C++ 工作区" -#: LiteEditor/editorsettingscommentsbase.cpp:26 -msgid "" -"When hitting in a C style comment section automatically add '*' at " -"the next line" -msgstr "当在 C 风格注释里面按<回车键>时, 自动添加“*”到新行" +#: LiteEditor/wxcrafter.cpp:534 +msgid "Resize the configuration bar" +msgstr "调整配置栏" -#: LiteEditor/editorsettingscommentsbase.cpp:30 -msgid "" -"When hitting in a C++ style comment section, automatically add '//' " -"at the next line" -msgstr "当在 C++ 风格注释里面按<回车键>时,自动添加‘//’到新行" +#: LiteEditor/wxcrafter.cpp:547 +msgid "Select the active project" +msgstr "选择活动项目" -#: LiteEditor/editorsettingscommentsbase.cpp:39 -msgid "Code navigation key:" -msgstr "代码导航键:" +#: LiteEditor/wxcrafter.cpp:559 +msgid "Select the workspace build configuration" +msgstr "选择工作区构建配置" + +#: LiteEditor/wxcrafter.cpp:568 LiteEditor/wxcrafter.cpp:999 +#: codelitephp/php-plugin/php_ui.cpp:1080 +msgid "Collapse All" +msgstr "折叠全部" + +#: LiteEditor/wxcrafter.cpp:570 +msgid "Goto Active Project" +msgstr "转到活动项目" -#: LiteEditor/editorsettingscommentsbase.cpp:41 +#: LiteEditor/wxcrafter.cpp:572 msgid "" -"When using quick code navigation use this keys in combination with mouse " -"click\n" -"To quickly go to implementation / declaration" -msgstr "" -"当使用这个按键并结合鼠标单击来使用快速代码导航时\n" -"可以快速进行实现 / 声明" +"Open selected project settings. If there is no project selected, open the " +"parent project of the seleced item in the tree" +msgstr "打开选定的项目设置。如果未选择任何项目,将在树中打开所选项的父项目" + +#: LiteEditor/wxcrafter.cpp:647 LiteEditor/frame.cpp:1303 +#: LiteEditor/frame.cpp:1519 LiteEditor/frame.cpp:1656 +#: LiteEditor/frame.cpp:1805 +msgid "Reload File" +msgstr "重新载入文件" -#: LiteEditor/editorsettingscommentsbase.cpp:45 -msgid "Mouse Left Click +" -msgstr "鼠标左键单击 +" +#: LiteEditor/wxcrafter.cpp:651 LiteEditor/frame.cpp:1318 +#: LiteEditor/frame.cpp:1535 LiteEditor/frame.cpp:1672 +#: LiteEditor/frame.cpp:1820 menu.xrc:869 menu.xrc:906 +#: DatabaseExplorer/ErdPanel.cpp:177 +msgid "Undo" +msgstr "撤销" -#: LiteEditor/editorsettingscommentsbase.cpp:49 -#: LiteEditor/NewKeyShortcutBaseDlg.cpp:78 -msgid "Shift" -msgstr "" +#: LiteEditor/wxcrafter.cpp:653 LiteEditor/frame.cpp:1320 +#: LiteEditor/frame.cpp:1537 LiteEditor/frame.cpp:1674 +#: LiteEditor/frame.cpp:1822 menu.xrc:872 menu.xrc:909 +#: DatabaseExplorer/ErdPanel.cpp:178 +msgid "Redo" +msgstr "重做" -#: LiteEditor/editorsettingscommentsbase.cpp:53 -msgid "Ctrl" -msgstr "" +#: LiteEditor/wxcrafter.cpp:655 LiteEditor/frame.cpp:1326 +#: LiteEditor/frame.cpp:1328 LiteEditor/frame.cpp:1542 +#: LiteEditor/frame.cpp:1544 LiteEditor/frame.cpp:1679 +#: LiteEditor/frame.cpp:1681 LiteEditor/frame.cpp:1828 +#: LiteEditor/frame.cpp:1830 menu.xrc:888 +msgid "Toggle Bookmark" +msgstr "切换书签" -#: LiteEditor/editorsettingscommentsbase.cpp:56 -#: LiteEditor/NewKeyShortcutBaseDlg.cpp:73 -msgid "Alt" -msgstr "" +#: LiteEditor/wxcrafter.cpp:706 LiteEditor/wxcrafter.cpp:730 +#: LiteEditor/wxcrafter.cpp:803 +msgid "New Project" +msgstr "新建项目" + +#: LiteEditor/wxcrafter.cpp:706 +msgid "Select the project template from the list below" +msgstr "请从下面的列表中选择项目模板" -#: LiteEditor/implementparentvirtualfunctionsbase.h:69 -msgid "Implement Parent Virtual Functions" -msgstr "实现父虚函数" +#: LiteEditor/wxcrafter.cpp:721 +msgid "Template" +msgstr "模板" -#: LiteEditor/findreplacedlg.cpp:51 -msgid "'Find What' is empty" -msgstr "“查找内容”为空" +#: LiteEditor/wxcrafter.cpp:730 +msgid "Set the project path and name" +msgstr "设置项目的路径和名称" + +#: LiteEditor/wxcrafter.cpp:748 +msgid "" +"Set the project name. A project name can contains A-Z, 0-9 and _ characters " +"only" +msgstr "设置项目名称。项目名称仅可以包含 A-Z,0-9 和 _ 字符" -#: LiteEditor/threadlistpanel.cpp:50 -msgid "Thread ID" -msgstr "线程 ID" +#: LiteEditor/wxcrafter.cpp:756 Gizmos/gizmos_base.cpp:111 +#: QmakePlugin/NewQtProj.cpp:68 codelitephp/php-plugin/php_ui.cpp:1795 +msgid "Project path:" +msgstr "项目路径:" -#: LiteEditor/threadlistpanel.cpp:51 -msgid "Active" -msgstr "活动" +#: LiteEditor/wxcrafter.cpp:765 +msgid "Select the location of the project. The location must exist." +msgstr "选择该项目的位置,该路径必须存在。" -#: LiteEditor/project_settings_base_dlg.h:60 -msgid "Project Settings" -msgstr "项目设置" +#: LiteEditor/wxcrafter.cpp:773 +msgid "Browse for folder" +msgstr "浏览文件夹" -#: LiteEditor/project_settings_base_dlg.h:371 -msgid "Build Target" +#: LiteEditor/wxcrafter.cpp:779 Gizmos/newwxprojectbasedlg.cpp:117 +#: QmakePlugin/NewQtProj.cpp:107 +msgid "Create the project under a separate directory" +msgstr "在独立的目录下创建项目" + +#: LiteEditor/wxcrafter.cpp:781 +msgid "" +"When checked, codelite will place the project under a separate directory. " +"The full path of the project file is displayed below" msgstr "" +"选中时,codelite 将把项目放置在一个单独的目录下。项目文件的完整路径将显示在下" +"面。" -#: LiteEditor/findinfiles_dlg.cpp:36 -msgid "Find What :" -msgstr "查找内容:" +#: LiteEditor/wxcrafter.cpp:803 +msgid "Select the project toolchain" +msgstr "选择项目工具链" -#: LiteEditor/findinfiles_dlg.cpp:42 -msgid "String to search" -msgstr "要搜索的字符串" +#: LiteEditor/wxcrafter.cpp:816 +msgid "Compiler:" +msgstr "编译器:" -#: LiteEditor/findinfiles_dlg.cpp:46 -msgid "Look in :" -msgstr "查找范围:" +#: LiteEditor/wxcrafter.cpp:825 +msgid "Debugger:" +msgstr "调试器:" + +#: LiteEditor/wxcrafter.cpp:892 +msgid "Enable Clang" +msgstr "启用 clang" -#: LiteEditor/findinfiles_dlg.cpp:81 -msgid "Remove the selected search path" -msgstr "移除选定的搜索路径" +#: LiteEditor/wxcrafter.cpp:894 +msgid "Enable Clang code completion" +msgstr "启用 clang 代码补全" -#: LiteEditor/findinfiles_dlg.cpp:90 -msgid "Clear the search path list" -msgstr "清除搜索路径列表" +#: LiteEditor/wxcrafter.cpp:897 +msgid "Inline Errors" +msgstr "内联错误" + +#: LiteEditor/wxcrafter.cpp:899 +msgid "" +"Display Clang errors as text annotations inside the editor (i.e. as an " +"inline messages)" +msgstr "将 Clang 错误作为文本注释显示在编辑器中 (即作为一条内联消息)" + +#: LiteEditor/wxcrafter.cpp:904 +msgid "Cache policy:" +msgstr "缓存策略:" + +#: LiteEditor/wxcrafter.cpp:910 +msgid "Clear Clang Cache" +msgstr "清除 Clang 缓存" + +#: LiteEditor/wxcrafter.cpp:1001 +msgid "Go Home" +msgstr "返回首页" -#: LiteEditor/findinfiles_dlg.cpp:94 -msgid "File Mask:" -msgstr "文件掩码:" +#: LiteEditor/wxcrafter.cpp:1003 +msgid "Bookmark" +msgstr "书签" -#: LiteEditor/findinfiles_dlg.cpp:101 -msgid "Search these file types" -msgstr "搜索这些文件类型" +#: LiteEditor/wxcrafter.cpp:1003 +msgid "Bookmark Selected Folder" +msgstr "书签标记选定的文件夹" -#: LiteEditor/findinfiles_dlg.cpp:106 -msgid "Files Encoding:" -msgstr "文件编码:" +#: LiteEditor/wxcrafter.cpp:1009 +msgid "GoTo" +msgstr "转到" -#: LiteEditor/findinfiles_dlg.cpp:112 -msgid "Use this file encoding when scanning files for matches" -msgstr "扫描文件时要匹配此文件编码" +#: LiteEditor/wxcrafter.cpp:1009 +msgid "Goto Folder" +msgstr "转到文件夹" -#: LiteEditor/findinfiles_dlg.cpp:136 -msgid "&Match case" -msgstr "匹配大小写(&M)" +#: LiteEditor/wxcrafter.cpp:1050 +msgid "Goto Folder:" +msgstr "转到文件夹:" -#: LiteEditor/findinfiles_dlg.cpp:138 -msgid "Toggle case sensitive search" -msgstr "切换大小写敏感" +#: LiteEditor/wxcrafter.cpp:1057 +msgid "Type the folder path" +msgstr "输入文件夹路径" -#: LiteEditor/findinfiles_dlg.cpp:142 -msgid "Match &whole word" -msgstr "匹配整字(&w)" +#: LiteEditor/wxcrafter.cpp:1109 +msgid "" +"DRAG AND DROP\n" +"A FOLDER HERE" +msgstr "" +"拖放一个文件夹\n" +"到这里" -#: LiteEditor/findinfiles_dlg.cpp:144 -msgid "Toggle whole word search" -msgstr "切换整字搜索" +#: LiteEditor/symbols_dialog.cpp:42 +msgid "Symbol" +msgstr "符号" -#: LiteEditor/findinfiles_dlg.cpp:148 -msgid "Regular &expression" -msgstr "正则表达式(&e)" +#: LiteEditor/symbols_dialog.cpp:43 LiteEditor/CompilerMainPage.cpp:89 +#: codelitephp/php-plugin/php_ui.cpp:352 +msgid "Kind" +msgstr "类型" -#: LiteEditor/findinfiles_dlg.cpp:150 -msgid "The 'Find What' field is a regular expression" -msgstr "‘查找内容’字段是一个正则表达式" +#: LiteEditor/ps_custom_build_page.cpp:89 +#, c-format +msgid "Target '%s' already exist!" +msgstr "目标“%s”已存在!" -#: LiteEditor/findinfiles_dlg.cpp:154 -msgid "&Save modified files before searching" -msgstr "搜索前保存修改的文件(&S)" +#: LiteEditor/CompilerMainPage.cpp:60 LiteEditor/CompilerMainPage.cpp:70 +msgid "File name index" +msgstr "文件名索引" -#: LiteEditor/findinfiles_dlg.cpp:156 -msgid "Save any modified files before search starts" -msgstr "搜索前保存修改的文件" +#: LiteEditor/CompilerMainPage.cpp:61 LiteEditor/CompilerMainPage.cpp:71 +msgid "Line number index" +msgstr "行号索引" -#: LiteEditor/findinfiles_dlg.cpp:160 -msgid "Display search results in separate tab" -msgstr "在单独标签里面显示搜索结果" +#: LiteEditor/CompilerMainPage.cpp:62 LiteEditor/CompilerMainPage.cpp:72 +msgid "Column index" +msgstr "列索引" + +#: LiteEditor/CompilerMainPage.cpp:83 +#: LiteEditor/debuggersettingsbasedlg.cpp:674 +#: LiteEditor/debuggersettingsbasedlg.cpp:676 LiteEditor/localstable.cpp:50 +#: LiteEditor/simpletable.cpp:96 LLDBDebugger/LLDBLocalsView.cpp:53 +#: codelitephp/php-plugin/php_ui.cpp:1285 +msgid "Value" +msgstr "值" -#: LiteEditor/findinfiles_dlg.cpp:177 -msgid "Display the C++ scope of the match" -msgstr "显示匹配的 C++ 的作用域" +#: LiteEditor/CompilerMainPage.cpp:88 +msgid "Extension" +msgstr "扩展" -#: LiteEditor/findinfiles_dlg.cpp:179 -msgid "Display the class + function name for the matches" -msgstr "显示匹配的类和函数名称" +#: LiteEditor/CompilerMainPage.cpp:90 +msgid "Compilation Line" +msgstr "编译行" -#: LiteEditor/findinfiles_dlg.cpp:183 -msgid "Hide matches found in comments" -msgstr "隐藏注释中的匹配" +#: LiteEditor/CompilerMainPage.cpp:95 LiteEditor/CompilerMainPage.cpp:101 +msgid "Switch" +msgstr "开关" -#: LiteEditor/findinfiles_dlg.cpp:188 -msgid "Hide matches found inside strings" -msgstr "隐藏字符串内的匹配" +#: LiteEditor/CompilerMainPage.cpp:109 +msgid "Add compiler error pattern" +msgstr "添加编译器错误模式" -#: LiteEditor/findinfiles_dlg.cpp:193 -msgid "Use different colour for matches found in comments" -msgstr "为注释中发现的匹配使用不同颜色" +#: LiteEditor/CompilerMainPage.cpp:122 +msgid "Add compiler warning pattern" +msgstr "添加编译器警告模式" -#: LiteEditor/findinfiles_dlg.cpp:204 -msgid "&Find" -msgstr "查找(&F)" +#: LiteEditor/CompilerMainPage.cpp:223 +msgid "Are you sure you want to delete this compiler option?" +msgstr "您确定要删除这个编译器选项吗?" -#: LiteEditor/findinfiles_dlg.cpp:206 -msgid "Begin search" -msgstr "开始搜索" +#: LiteEditor/CompilerMainPage.cpp:237 +msgid "Are you sure you want to delete this file type?" +msgstr "您确定要删除这个文件类型吗?" -#: LiteEditor/findinfiles_dlg.cpp:211 -msgid "&Replace" -msgstr "替换(&R)" +#: LiteEditor/CompilerMainPage.cpp:249 +msgid "Are you sure you want to delete this linker option?" +msgstr "您确定要删除这个链接器选项吗?" -#: LiteEditor/findinfiles_dlg.cpp:212 -msgid "" -"Search for matches and place them in the 'Replace' window as candidates for " -"possible replace operation" -msgstr "搜索匹配并将它们作为‘替换’窗口的候选,进行可能的替换操作" +#: LiteEditor/CompilerMainPage.cpp:303 +msgid "Update compiler warning pattern" +msgstr "更新编译器警告模式" -#: LiteEditor/findinfiles_dlg.cpp:216 -msgid "Sto&p" -msgstr "停止(&p)" +#: LiteEditor/CompilerMainPage.cpp:319 +msgid "Update compiler error pattern" +msgstr "更新编译器错误模式" -#: LiteEditor/findinfiles_dlg.cpp:217 -msgid "Stop the current search" -msgstr "停止当前搜索" +#: LiteEditor/CompilerMainPage.cpp:625 +msgid " switch:" +msgstr " 开关:" -#: LiteEditor/findinfiles_dlg.cpp:222 -msgid "Close this dialog" -msgstr "关闭此对话框" +#: LiteEditor/CompilerMainPage.cpp:672 LiteEditor/editcmpfileinfobase.cpp:61 +msgid "Source" +msgstr "源文件" -#: LiteEditor/ps_compiler_page.cpp:90 LiteEditor/advanced_settings.cpp:271 -msgid "Compiler options" -msgstr "编译器选项" +#: LiteEditor/CompilerMainPage.cpp:672 LiteEditor/CompilerMainPage.cpp:690 +#: LiteEditor/editcmpfileinfobase.cpp:61 +msgid "Resource" +msgstr "资源" -#: LiteEditor/addincludefiledlgbase.cpp:43 -msgid "Edit the include line:" -msgstr "编辑 include 行:" +#: LiteEditor/CompilerMainPage.cpp:859 +msgid "Please fill all the fields" +msgstr "请填写全部字段" -#: LiteEditor/addincludefiledlgbase.cpp:52 -msgid "File's full path:" -msgstr "文件完整路径:" +#: LiteEditor/CompilerMainPage.cpp:874 QmakePlugin/qmakesettingsdlg.cpp:105 +#: QmakePlugin/qmakesettingsdlg.cpp:130 menu.xrc:1130 +msgid "Rename..." +msgstr "重命名..." -#: LiteEditor/addincludefiledlgbase.cpp:64 -msgid "Preview (read only):" -msgstr "预览(只读):" +#: LiteEditor/CompilerMainPage.cpp:893 +msgid "" +"Are you sure you want to delete compiler\n" +"'" +msgstr "" +"您确定您要删除编译器吗\n" +"'" -#: LiteEditor/addincludefiledlgbase.cpp:76 -msgid "Move the #include statement one line up" -msgstr "#include 声明行上移" +#: LiteEditor/CompilerMainPage.cpp:895 menu.xrc:1140 +msgid "Delete Compiler" +msgstr "删除编译器" -#: LiteEditor/addincludefiledlgbase.cpp:78 -msgid "Move the #include statement one line down" -msgstr "#include 声明行下移" +#: LiteEditor/CompilerMainPage.cpp:912 +msgid "New Compiler Name" +msgstr "新编译器名称" + +#: LiteEditor/CompilerMainPage.cpp:912 +msgid "Rename Compiler" +msgstr "重命名编译器" -#: LiteEditor/addincludefiledlgbase.cpp:80 -msgid "Clear Cached Paths" -msgstr "清除路径缓存" +#: LiteEditor/wxcAboutDlg.cpp:45 +msgid "Credits" +msgstr "荣誉" -#: LiteEditor/debugger_predefined_types_page.cpp:13 -msgid "Debugger Command" -msgstr "调试器命令" +#: LiteEditor/wxcAboutDlg.cpp:56 +msgid "License" +msgstr "许可证" -#: LiteEditor/debugger_predefined_types_page.cpp:63 -msgid "A Debugger type with that name already exists" -msgstr "同名的调试器类型已经存在" +#: LiteEditor/wxcAboutDlg.cpp:75 +msgid "Home Page:" +msgstr "主页:" -#: LiteEditor/taskpanel.cpp:53 -msgid "Sources" -msgstr "源文件" +#: LiteEditor/wxcAboutDlg.cpp:79 +msgid "http://www.codelite.org" +msgstr "http://www.codelite.org" -#: LiteEditor/taskpanel.cpp:55 cppchecker/cppchecksettingsdlg.cpp:91 -msgid "All Files" -msgstr "全部文件" +#: LiteEditor/wxcAboutDlg.cpp:83 +msgid "CodeLite Forum:" +msgstr "CodeLite 论坛:" -#: LiteEditor/taskpanel.cpp:69 -msgid "Select the scope of the search" -msgstr "选择搜索范围" +#: LiteEditor/wxcAboutDlg.cpp:87 +msgid "http://forums.codelite.org" +msgstr "http://forums.codelite.org" -#: LiteEditor/taskpanel.cpp:74 -msgid "Encoding to use for the search" -msgstr "用于搜索的编码" +#: LiteEditor/wxcAboutDlg.cpp:91 LiteEditor/pluginmgrdlg.cpp:153 +#: Gizmos/newwxprojectbasedlg.cpp:162 CMakePlugin/CMakePluginUi.cpp:100 +msgid "Version:" +msgstr "版本:" -#: LiteEditor/importfilesdialog_new.h:50 -#: LiteEditor/importfilesdialog_new.cpp:31 -msgid "Import Files" -msgstr "导入文件" +#: LiteEditor/wxcAboutDlg.cpp:103 +msgid "Support CodeLite" +msgstr "支持 CodeLite" -#: LiteEditor/editorsettings_terminal_base.cpp:28 -msgid "Use CodeLite built in terminal emulator" -msgstr "在终端模拟器使用 CodeLite 构建" +#: LiteEditor/debuggersettingsbasedlg.cpp:156 +#: QmakePlugin/qmakesettingsbasedlg.cpp:73 +msgid "&New..." +msgstr "新建(&N)..." -#: LiteEditor/editorsettings_terminal_base.cpp:33 -msgid "Enter here the command to be used by CodeLite for launching consoles:" -msgstr "在这里输入启用控制台的命令:" +#: LiteEditor/debuggersettingsbasedlg.cpp:222 +msgid "Copy Values From:" +msgstr "复制值来自:" -#: LiteEditor/editorsettings_terminal_base.cpp:41 -msgid "Where:" -msgstr "哪里:" +#: LiteEditor/debuggersettingsbasedlg.cpp:233 +msgid "Make this 'PreDefined Types' set active" +msgstr "使此“预定义类型”设置为活动" -#: LiteEditor/editorsettings_terminal_base.cpp:52 -msgid "$(TITLE)" -msgstr "" +#: LiteEditor/debuggersettingsbasedlg.cpp:291 +msgid "Debugger path:" +msgstr "调试器路径:" -#: LiteEditor/editorsettings_terminal_base.cpp:56 -msgid "The console title" -msgstr "控制台标题" +#: LiteEditor/debuggersettingsbasedlg.cpp:311 +msgid "Enable pending breakpoints" +msgstr "启用待定断点" -#: LiteEditor/editorsettings_terminal_base.cpp:60 -msgid "$(CMD)" +#: LiteEditor/debuggersettingsbasedlg.cpp:313 +msgid "" +"Some breakpoints can't be applied before the program is run, or even later. " +"This is especially a problem when trying to debug inside a library that is " +"dynamically loaded (CodeLite itself contains examples of this).\n" +"\n" +"gdb has an option to 'remember' any breakpoints that it can't initially set, " +"and automatically to set them when it becomes possible. It doesn't always " +"work! However, tick this box to tell gdb to try." msgstr "" +"一些断点不能应用在程序运行之前,或者更晚的时候。尤其是调试一个位于动态加载库" +"中的问题时(CodeLite 本身就包含这样的例子)。\n" +"\n" +"gdb 有一个选项可以“记住”不能初始设置的任意断点,并在可能的时候自动设置它们。" +"它并不总是起作用!然而,勾选此选项来告诉 gdb 尝试一下。" -#: LiteEditor/editorsettings_terminal_base.cpp:64 -msgid "The command to execute" -msgstr "要执行的命令" - -#: LiteEditor/setters_getters.h:71 -msgid "Generate Setters/Getters for class" -msgstr "生成 Setters/Getters 类" - -#: LiteEditor/project_settings_dlg.cpp:116 -msgid "Common Settings" -msgstr "通用设置" +#: LiteEditor/debuggersettingsbasedlg.cpp:317 +msgid "Apply breakpoints after main function is hit" +msgstr "当命中主函数后应用断点" -#: LiteEditor/project_settings_dlg.cpp:124 -msgid "Pre / Post Build Commands" -msgstr "构建前/后命令" +#: LiteEditor/debuggersettingsbasedlg.cpp:319 +msgid "" +"Sometimes, some breakpoints won't apply cleanly until after main() has been " +"reached. If this box is ticked, CodeLite won't try to apply them earlier." +msgstr "" +"有时候,一些断点在 main() 函数执行完成之后并不会完全应用。如果勾选此项," +"CodeLite 在早期不会试着应用它们。" -#: LiteEditor/project_settings_dlg.cpp:125 -msgid "Pre Build" -msgstr "预构建" +#: LiteEditor/debuggersettingsbasedlg.cpp:323 +msgid "Automatically set breakpoint at main" +msgstr "自动在 main 函数处设置断点" -#: LiteEditor/project_settings_dlg.cpp:126 -msgid "Post Build" -msgstr "构建后" +#: LiteEditor/debuggersettingsbasedlg.cpp:325 +msgid "" +"Every time the debugger runs, set a breakpoint at main(). You may wish to " +"stop then anyway; but it's especially useful when you want to set " +"breakpoints that won't 'take' earlier (however, first try enabling Pending " +"breakpoints, or 'Apply breakpoints after main is hit'" +msgstr "" +"每次调试器运行时,您可以在 mian() 函数处设置一个断点。然后您可能想要停止它;" +"但您想要设置断点又不想过早起作用时,这是非常有用的(无论如何,尝试一下使用断点" +"等待,或者“在命中 main 函数后应用断点”)" -#: LiteEditor/project_settings_dlg.cpp:128 -#: LiteEditor/syntaxhighlightbasedlg.cpp:165 -msgid "Customize" -msgstr "自定义" +#: LiteEditor/debuggersettingsbasedlg.cpp:329 +msgid "Break when C++ exception is thrown" +msgstr "当 C++ 抛出异常时中断" -#: LiteEditor/project_settings_dlg.cpp:129 -msgid "Custom Build" -msgstr "自定义构建" +#: LiteEditor/debuggersettingsbasedlg.cpp:334 +msgid "Raise CodeLite when a breakpoint is hit" +msgstr "当到达断点时前置 CodeLite" -#: LiteEditor/project_settings_dlg.cpp:130 -msgid "Custom Makefile Rules" -msgstr "自定义 Makefile 规则" +#: LiteEditor/debuggersettingsbasedlg.cpp:336 +msgid "" +"Normally, when a breakpoint is hit, you'll want CodeLite to be raise to the " +"top of the window z-order, so that you can examine values of variables etc.\n" +"However you won't always want that to happen; in particular, not if the " +"breakpoint has commands, which end in 'continue'. If so untick this box to " +"stop it happening." +msgstr "" +"通常情况下,到达一个断点时,您会希望前置 CodeLite 窗口,以便您可以检查变量的" +"值等。\n" +"然而您可能不会总是希望这样的事情发生;尤其是,当断点有指令的时候。因此取消勾" +"选可以阻止这种情况发生。" -#: LiteEditor/project_settings_dlg.cpp:132 -msgid "Code Completion" -msgstr "代码补全" +#: LiteEditor/debuggersettingsbasedlg.cpp:340 +msgid "Debugger Tooltip:" +msgstr "调试器提示:" -#: LiteEditor/project_settings_dlg.cpp:133 -#: LiteEditor/syntaxhighlightbasedlg.cpp:125 -msgid "Global Settings" -msgstr "全局设置" +#: LiteEditor/debuggersettingsbasedlg.cpp:348 +msgid "Use CTRL key to evaluate expressions under the cursor" +msgstr "用 CTRL 键对光标下面的表达式求值" -#: LiteEditor/project_settings_dlg.cpp:261 -#: LiteEditor/project_settings_dlg.cpp:286 -msgid "Save changes before loading new configuration?" -msgstr "加载新配置前保存更改?" +#: LiteEditor/debuggersettingsbasedlg.cpp:350 +msgid "" +"When enabled, codelite will evaluate the expression under the cursor only if " +"the CTRL key is down. \n" +"Otherwise, it will evaluate it automatically" +msgstr "" +"当启用时,codelite 仅在按下 CTRL 键时对光标下的表达式求值。\n" +"否则自动对它求值。" -#: LiteEditor/project_settings_dlg.cpp:261 -#: LiteEditor/project_settings_dlg.cpp:286 -msgid "Save Changes" -msgstr "保存更改" +#: LiteEditor/debuggersettingsbasedlg.cpp:354 +msgid "Auto expand items under the cursor" +msgstr "自动展开光标下的项" -#: LiteEditor/project_settings_dlg.cpp:361 -msgid "This project is disabled" -msgstr "此项目已禁用" +#: LiteEditor/debuggersettingsbasedlg.cpp:359 +#: LiteEditor/tags_options_base_dlg.cpp:41 +msgid "Display:" +msgstr "显示:" -#: LiteEditor/project_settings_dlg.cpp:370 -msgid "" -"Settings on this page are disabled because this project is setup as \"Custom " -"Build\" project" -msgstr "因为该项目被设置为 \"自定义构建\" ,所以本页的设置被禁用了。" +#: LiteEditor/debuggersettingsbasedlg.cpp:369 +msgid "Number of elements to display for arrays / strings:" +msgstr "显示数组/字符串中的元素数目:" -#: LiteEditor/project_settings_dlg.cpp:485 -msgid "Compiler Options" -msgstr "编译器选项" +#: LiteEditor/debuggersettingsbasedlg.cpp:370 +#: LiteEditor/debuggersettingsbasedlg.cpp:375 +msgid "For no limit, set it to 0" +msgstr "没有限制时,设置为0" -#: LiteEditor/breakpointdlg.cpp:93 LiteEditor/cl_editor.cpp:3212 -msgid "Breakpoint successfully deleted" -msgstr "删除断点成功" +#: LiteEditor/debuggersettingsbasedlg.cpp:381 +msgid "Use 'PreDefined types for the 'Locals' view" +msgstr "为本地视图使用预定义类型" -#: LiteEditor/breakpointdlg.cpp:106 -msgid "All Breakpoints deleted" -msgstr "全部断点已删除" +#: LiteEditor/debuggersettingsbasedlg.cpp:388 +msgid "Auto cast 'char[]' into 'char*'" +msgstr "自动转换“char[]”为“char*”" -#: LiteEditor/breakpointdlg.cpp:118 -msgid "Pending Breakpoints reapplied" -msgstr "待定断点已重新应用" +#: LiteEditor/debuggersettingsbasedlg.cpp:395 +msgid "Enable GDB Pretty Printing" +msgstr "启用 GDB 整齐打印" -#: LiteEditor/breakpointdlg.cpp:192 -msgid "Temp. " -msgstr "临时。" +#: LiteEditor/debuggersettingsbasedlg.cpp:397 +msgid "" +"If ticked, examining the contents of e.g. std::string, wxString, " +"wxArrayString will be much easier" +msgstr "" +"如果勾选此项,检查如 std::string, wxString, wxArrayString 等字符串的内容将会" +"更加容易" -#: LiteEditor/breakpointdlg.cpp:199 -msgid "disabled" -msgstr "禁用" +#: LiteEditor/debuggersettingsbasedlg.cpp:447 +msgid "Use file name only for breakpoints (NO full paths)" +msgstr "文件名称仅用于断点(没有完整路径)" -#: LiteEditor/dbcontentcacher.cpp:33 -#, c-format -msgid "Symbols file loaded into OS file system cache (%ld seconds)" -msgstr "符号文件加载到系统文件系统缓存(%ld 秒)" +#: LiteEditor/debuggersettingsbasedlg.cpp:452 +msgid "Enable full debugger logging" +msgstr "启用调试完整日志记录" -#: LiteEditor/syntaxhighlightbasedlg.cpp:28 -msgid "Global Windows Colours:" -msgstr "全局窗口颜色:" +#: LiteEditor/debuggersettingsbasedlg.cpp:457 +msgid "Show debugger terminal" +msgstr "显示调试器终端" -#: LiteEditor/syntaxhighlightbasedlg.cpp:39 -msgid "Global foreground Colour:" -msgstr "全局前景色:" +#: LiteEditor/debuggersettingsbasedlg.cpp:466 +msgid "Max number of frames to allow in a call-stack" +msgstr "在调用堆栈中允许的最大值帧数" -#: LiteEditor/syntaxhighlightbasedlg.cpp:44 +#: LiteEditor/debuggersettingsbasedlg.cpp:471 msgid "" -"This is where you can set the foreground colour for the Output View panes " -"(where you can see the output from e.g. 'Build' or 'Debug') and terminal " -"(where you see the trace output while debugging)" +"The maximum number of frames that CodeLite will display in the Call Stack " +"tab. This protects against a very long hang while trying to show 100,000 " +"frames in an infinite recursion situation." msgstr "" -"在这里,您可以设置输出视图面板的前景颜色(在这里您可以看到如“构建”或“调试”的" -"输出)和终端(在这里您可以看到调试时的跟踪输出)" +"CodeLite 将在调用堆栈选项卡中显示帧数的最大值。这可以防止在无限递归的情况下试" +"图显示 100,000 帧时的程序挂起。" -#: LiteEditor/syntaxhighlightbasedlg.cpp:48 -#: LiteEditor/syntaxhighlightbasedlg.cpp:146 -msgid "Global background Colour:" -msgstr "全局背景色:" +#: LiteEditor/debuggersettingsbasedlg.cpp:477 +msgid "MinGW / Cygwin:" +msgstr "MinGW / Cygwin" -#: LiteEditor/syntaxhighlightbasedlg.cpp:53 -msgid "" -"This is where you can set the background colour for the Output View panes " -"(where you can see the output from e.g. 'Build' or 'Debug') and terminal " -"(where you see the trace output while debugging)" -msgstr "" -"在这里,您可以设置输出视图面板的背景颜色(在这里您可以看到如‘构建’或‘调试’的" -"输出)和终端(在这里您可以看到调试时的跟踪输出)" +#: LiteEditor/debuggersettingsbasedlg.cpp:485 +msgid "Break at assertion failure (MinGW only)" +msgstr "声明失败时中断(仅 MinGW )" -#: LiteEditor/syntaxhighlightbasedlg.cpp:71 -msgid "Apply the current changes to the editor without closing the dialog" -msgstr "应用更改到当前编辑器而不关闭对话框" - -#: LiteEditor/syntaxhighlightbasedlg.cpp:75 -msgid "Defaults..." -msgstr "默认值..." +#: LiteEditor/debuggersettingsbasedlg.cpp:490 +msgid "Cygwin path conversion command:" +msgstr "Cygwin 路径转换命令:" -#: LiteEditor/syntaxhighlightbasedlg.cpp:76 -msgid "Restore all lexers to default values" -msgstr "恢复全部语法分析器为默认值" +#: LiteEditor/debuggersettingsbasedlg.cpp:491 +#: LiteEditor/debuggersettingsbasedlg.cpp:496 +msgid "" +"Set here the command to use in order to convert cygwin paths into native " +"Windows paths (use $(File) as a place holder for the file name)" +msgstr "" +"在此设置把 cygwin 路径转换为 Windows 本地路径的命令(使用 $(File) 作为文件名的" +"占位符)" -#: LiteEditor/syntaxhighlightbasedlg.cpp:137 -msgid "Global Font:" -msgstr "全局字体:" +#: LiteEditor/debuggersettingsbasedlg.cpp:546 menu.xrc:7 +msgid "&New" +msgstr "新建(&N)" -#: LiteEditor/syntaxhighlightbasedlg.cpp:142 -msgid "Use this to select a font to be used by *all* styles of this lexer" -msgstr "为此语法分析器的全部风格选择字体" +#: LiteEditor/debuggersettingsbasedlg.cpp:547 +msgid "Create new 'PreDefined' set" +msgstr "创建新建“预定义”设置" -#: LiteEditor/syntaxhighlightbasedlg.cpp:151 -msgid "" -"Use this to select a background colour to be used by *all* styles of this " -"lexer" -msgstr "为此语法分析器的全部风格选择背景色" +#: LiteEditor/debuggersettingsbasedlg.cpp:552 +msgid "Delete the currently selected set" +msgstr "删除当前已选择设置" -#: LiteEditor/syntaxhighlightbasedlg.cpp:155 -msgid "File Extensions:" -msgstr "文件扩展名:" +#: LiteEditor/debuggersettingsbasedlg.cpp:556 +msgid "Available sets:" +msgstr "可用的设置:" -#: LiteEditor/syntaxhighlightbasedlg.cpp:160 -msgid "Associate this lexer with files which have these extensions" -msgstr "关联此语法分析器到具有这些扩展名的文件" +#: LiteEditor/debuggersettingsbasedlg.cpp:606 +msgid "Current function:" +msgstr "当前活动:" -#: LiteEditor/syntaxhighlightbasedlg.cpp:190 -msgid "Style Font:" -msgstr "风格字体:" +#: LiteEditor/debuggersettingsbasedlg.cpp:673 +#: LiteEditor/debuggersettingsbasedlg.cpp:675 +msgid "Register" +msgstr "寄存器" -#: LiteEditor/syntaxhighlightbasedlg.cpp:195 -msgid "Select a font to be used with the selected style" -msgstr "为所选风格选择字体" +#: LiteEditor/compiler_pages.h:91 +msgid "New Compiler" +msgstr "新键编译器" -#: LiteEditor/syntaxhighlightbasedlg.cpp:199 -msgid "Foreground Colour:" -msgstr "前景色:" +#: LiteEditor/reconcileprojectbase.h:101 menu.xrc:1014 +msgid "Reconcile Project" +msgstr "协调项目" -#: LiteEditor/syntaxhighlightbasedlg.cpp:204 -msgid "Select the foreground colour for the selected style" -msgstr "为所选风格选择前景色" +#: LiteEditor/reconcileprojectbase.h:157 +msgid "Select filetypes to reconcile" +msgstr "选择文件类型来调解一致" -#: LiteEditor/syntaxhighlightbasedlg.cpp:208 -#: codelite_terminal/wxcrafter.cpp:206 -msgid "Background Colour:" -msgstr "背景色:" +#: LiteEditor/reconcileprojectbase.h:185 +msgid "Allocate by regex" +msgstr "通过正则表达式分配" -#: LiteEditor/syntaxhighlightbasedlg.cpp:213 -msgid "Select the background colour for the selected style" -msgstr "为所选风格选择背景色" +#: LiteEditor/options_dlg2.cpp:108 +msgid "Editor" +msgstr "编辑器" -#: LiteEditor/syntaxhighlightbasedlg.cpp:219 -msgid "Style is EOL Filled" -msgstr "风格使用EOL填充" +#: LiteEditor/options_dlg2.cpp:109 +msgid "Guides" +msgstr "向导" -#: LiteEditor/syntaxhighlightbasedlg.cpp:221 -msgid "" -"If a line ends with a character/word which has this style, the remaining of " -"the line will be coloured with this style background colour" -msgstr "如果某行使用此样式的字符/单词结尾,此行剩余部分将着色为此样式背景色" +#: LiteEditor/options_dlg2.cpp:112 +msgid "Right Margin Indicator" +msgstr "右边距指示符" -#: LiteEditor/syntaxhighlightbasedlg.cpp:227 -msgid "Styling Within Pre-processor Line" -msgstr "预处理行中应用样式" +#: LiteEditor/options_dlg2.cpp:113 +msgid "Caret & Scrolling" +msgstr "光标和滚动" -#: LiteEditor/syntaxhighlightbasedlg.cpp:236 -msgid "Edit Lexer Keyword Sets:" -msgstr "编辑词法分析程序关键字设置:" +#: LiteEditor/options_dlg2.cpp:114 +msgid "Save Options" +msgstr "保存选项" -#: LiteEditor/syntaxhighlightbasedlg.cpp:244 -msgid "Set &0" -msgstr "设置 &0" +#: LiteEditor/options_dlg2.cpp:117 +msgid "Code" +msgstr "代码" -#: LiteEditor/syntaxhighlightbasedlg.cpp:248 -msgid "Set &1" -msgstr "设置 &1" +#: LiteEditor/options_dlg2.cpp:118 +msgid "Doxygen" +msgstr "程序生成器" -#: LiteEditor/syntaxhighlightbasedlg.cpp:252 -msgid "Set &2" -msgstr "设置 &2" +#: LiteEditor/options_dlg2.cpp:120 +msgid "Folding" +msgstr "折叠" -#: LiteEditor/syntaxhighlightbasedlg.cpp:256 -msgid "Set &3" -msgstr "设置 &3" +#: LiteEditor/options_dlg2.cpp:121 +msgid "Bookmarks" +msgstr "书签" -#: LiteEditor/syntaxhighlightbasedlg.cpp:260 -msgid "Set &4" -msgstr "设置 &4" +#: LiteEditor/options_dlg2.cpp:122 +msgid "Windows & Tabs" +msgstr "窗口与选项卡" -#: LiteEditor/syntaxhighlightbasedlg.cpp:265 -msgid "Text Selection" -msgstr "选择文本" +#: LiteEditor/memoryviewbase.cpp:61 +msgid "Address:" +msgstr "地址:" -#: LiteEditor/syntaxhighlightbasedlg.cpp:277 -msgid "Selected Text Background Colour:" -msgstr "选择文本背景色:" +#: LiteEditor/memoryviewbase.cpp:66 +msgid "Address or pointer to watch" +msgstr "查看地址或指针" -#: LiteEditor/syntaxhighlightbasedlg.cpp:285 -msgid "Apply these choices to all lexers" -msgstr "应用这些选择到所有的词法分析器" - -#: LiteEditor/syntaxhighlightbasedlg.cpp:286 -msgid "" -"To save having to go through every lexer to set your text selection " -"preferences, click here to apply these settings to all the lexers in this " -"theme" -msgstr "" -"您需要在每一个词法分析器来设置并保存您的文本选择偏好,在这个选项中点击应用这" -"些设置到所有的词法分析器" +#: LiteEditor/memoryviewbase.cpp:70 +msgid "Size:" +msgstr "大小:" -#: LiteEditor/build_page.cpp:57 -msgid "Available Build Systems:" -msgstr "可用的构建系统:" +#: LiteEditor/memoryviewbase.cpp:71 LiteEditor/memoryviewbase.cpp:85 +msgid "Memory size to view" +msgstr "查看内存大小" -#: LiteEditor/build_page.cpp:63 -msgid "Fix build tool path on startup" -msgstr "修正启动时的构建工具路径" +#: LiteEditor/memoryviewbase.cpp:90 +msgid "Number of columns:" +msgstr "列数:" -#: LiteEditor/build_page.cpp:66 -msgid "Use asterisk (*) for the clean target (e.g. rm -f *.o)" -msgstr "使用星号(*)来清理目标(如:rm -f *.o)" +#: LiteEditor/memoryviewbase.cpp:100 +msgid "Number of columns to use per row" +msgstr "使用每一行的列数" -#: LiteEditor/manage_perspective_dlg.cpp:26 -#, c-format -msgid "Are you sure you want to delete perspective '%s'?" -msgstr "您确定要删除透视图‘%s’吗?" +#: LiteEditor/memoryviewbase.cpp:126 +msgid "Evaluate" +msgstr "取值" -#: LiteEditor/manage_perspective_dlg.cpp:43 -msgid "Rename perspective" -msgstr "重命名透视图" +#: LiteEditor/memoryviewbase.cpp:128 +msgid "Evaluate the expression in the \"Address\" field" +msgstr "在 \"Address\" 字段中对表达式求值" -#: LiteEditor/wxcrafter.h:74 -msgid "New Project" -msgstr "新建项目" +#: LiteEditor/memoryviewbase.cpp:133 +msgid "Update the memory in the main display area to apply your changes" +msgstr "在主显示区域更新内存来应用您的更改" -#: LiteEditor/wxcrafter.h:156 -msgid "Plugin is missing" -msgstr "插件丢失" +#: LiteEditor/editorsettings_terminal_base.cpp:29 +msgid "Use CodeLite built in terminal emulator" +msgstr "在终端模拟器使用 CodeLite 构建" -#: LiteEditor/wxcrafter.h:180 -msgid "Add function implementation" -msgstr "添加函数实现" +#: LiteEditor/editorsettings_terminal_base.cpp:34 +msgid "" +"Windows only: commands executed with CMD.EXE are wrapped with double quotes" +msgstr "仅 Windows:通过 CMD.EXE 执行的命令需要用双引号包裹" -#: LiteEditor/wxcrafter.h:281 -msgid "EditorFrame" -msgstr "编辑框" +#: LiteEditor/editorsettings_terminal_base.cpp:36 +msgid "" +"Windows only: commands executed with CMD.EXE are wrapped with double quotes\n" +"This is often needed to allow executing commands with spaces in their path" +msgstr "" +"仅 Windows:通过 CMD.EXE 执行的命令需要用双引号包裹\n" +"这通常是需要允许执行命令的路径中包含空格" -#: LiteEditor/edit_configuration.h:68 -msgid "Edit Configurations" -msgstr "编辑配置" +#: LiteEditor/editorsettings_terminal_base.cpp:40 +msgid "Enter here the command to be used by CodeLite for launching consoles:" +msgstr "在这里输入启用控制台的命令:" -#: LiteEditor/tabgroupbasedlgs.h:79 -msgid "Load a tab group" -msgstr "加载标签组" +#: LiteEditor/editorsettings_terminal_base.cpp:51 +msgid "Where:" +msgstr "哪里:" -#: LiteEditor/tabgroupbasedlgs.h:112 -msgid "Save a tab group" -msgstr "保存标签组" +#: LiteEditor/editorsettings_terminal_base.cpp:62 +msgid "$(TITLE)" +msgstr "$(TITLE)" -#: LiteEditor/newquickwatch.cpp:115 -msgid "Enter new expression:" -msgstr "输入新表达式:" +#: LiteEditor/editorsettings_terminal_base.cpp:66 +msgid "The console title" +msgstr "控制台标题" -#: LiteEditor/ps_debugger_page.cpp:132 -msgid "Select a folder" -msgstr "选择文件夹" +#: LiteEditor/editorsettings_terminal_base.cpp:70 +msgid "$(CMD)" +msgstr "$(CMD)" -#: LiteEditor/buildsettingstabbase.cpp:46 -msgid "Font weight:" -msgstr "字体宽度:" - -#: LiteEditor/buildsettingstabbase.cpp:52 -msgid "Compiler errors colour:" -msgstr "编译器错误颜色:" - -#: LiteEditor/buildsettingstabbase.cpp:60 -#: LiteEditor/buildsettingstabbase.cpp:75 -msgid "Bold" -msgstr "粗体" - -#: LiteEditor/buildsettingstabbase.cpp:65 -msgid "Compiler warnings colour:" -msgstr "编译器警告色:" +#: LiteEditor/editorsettings_terminal_base.cpp:74 +msgid "The command to execute" +msgstr "要执行的命令" -#: LiteEditor/buildsettingstabbase.cpp:84 -msgid "When using the menu to jump to errors, skip warnings" -msgstr "当使用菜单跳转到错误时,忽略警告" +#: LiteEditor/reconcileproject.cpp:191 +msgid "No new or stale files found. The project is up-to-date" +msgstr "没有发现新的或过期的文件。该项目是最新的" -#: LiteEditor/buildsettingstabbase.cpp:89 -msgid "" -"Automatically hide the build pane when there are neither errors nor warnings" -msgstr "自动隐藏构建窗格时,有没有错误,也没有警告" +#: LiteEditor/reconcileproject.cpp:666 +#, c-format +msgid "Delete the %i selected files from the filesystem?" +msgstr "从文件系统中删除 %i 个已选择的文件?" -#: LiteEditor/buildsettingstabbase.cpp:98 -msgid "After build finishes, if showing the build pane scroll to:" -msgstr "构建完成后,如果显示构建面板就滚动到:" +#: LiteEditor/reconcileproject.cpp:668 +msgid "Delete the selected file from the filesystem?" +msgstr "从文件系统中删除已选择的文件?" -#: LiteEditor/buildsettingstabbase.cpp:107 -msgid "Show build pane:" -msgstr "显示构建面板:" +#: LiteEditor/reconcileproject.cpp:695 +#, c-format +msgid "%i file(s) successfully deleted" +msgstr "%i 文件已成功删除" -#: LiteEditor/buildsettingstabbase.cpp:112 -msgid "Errors / warnings markers:" -msgstr "错误/警告标记:" +#: LiteEditor/reconcileproject.cpp:808 +msgid "Select a directory to ignore:" +msgstr "选择一个忽略的目录:" -#: LiteEditor/buildsettingstabbase.cpp:116 -msgid "Compiler errors / warnings marked with bookmarks" -msgstr "用书签标记编译器错误/警告" +#: LiteEditor/attachdbgprocbasedlg.cpp:50 +msgid "Debugger to use:" +msgstr "要使用的调试器:" -#: LiteEditor/buildsettingstabbase.cpp:121 -msgid "Compiler errors / warnings displayed inline" -msgstr "编译器错误/警告显示内联" +#: LiteEditor/attachdbgprocbasedlg.cpp:59 +msgid "Filter:" +msgstr "过滤器:" -#: LiteEditor/buildsettingstabbase.cpp:123 -msgid "" -"If checked, any errors or warnings will be displayed in the editor alongside " -"the failing code." -msgstr "如果勾选此项,错误或警告将被显示在编辑器中失败代码的旁边。" +#: LiteEditor/attachdbgprocbasedlg.cpp:68 +msgid "Processes:" +msgstr "进程:" -#: LiteEditor/openwindowspanelbase.cpp:33 -msgid "" -"If checked, sort alphabetically. Otherwise display in the same order as the " -"editors." -msgstr "如果勾选此项,将按字母顺序排序。否则将以相同的顺序显示在编辑器中。" +#: LiteEditor/attachdbgprocbasedlg.cpp:81 +msgid "&Attach" +msgstr "连接(&A)" -#: LiteEditor/wxcAboutDlg.h:51 -msgid "About CodeLite" -msgstr "关于CodeLite" +#: LiteEditor/attachdbgprocbasedlg.cpp:88 +msgid "&Refresh" +msgstr "刷新(&R)" -#: LiteEditor/editorsettingsfolding.cpp:40 +#: LiteEditor/editorsettingsfolding.cpp:41 msgid "Simple" msgstr "简单标记" -#: LiteEditor/editorsettingsfolding.cpp:41 +#: LiteEditor/editorsettingsfolding.cpp:42 msgid "Arrows" msgstr "箭头" -#: LiteEditor/editorsettingsfolding.cpp:42 +#: LiteEditor/editorsettingsfolding.cpp:43 msgid "Flatten Tree Square Headers" msgstr "方头的平面树" -#: LiteEditor/editorsettingsfolding.cpp:43 +#: LiteEditor/editorsettingsfolding.cpp:44 msgid "Flatten Tree Circular Headers" msgstr "圆头的平面树" -#: LiteEditor/editorsettingsfolding.cpp:61 +#: LiteEditor/editorsettingsfolding.cpp:62 msgid "Arrows with Background Colour" msgstr "带背景色的箭头" -#: LiteEditor/editorsettingsfolding.cpp:61 +#: LiteEditor/editorsettingsfolding.cpp:62 msgid "Simple with Background Colour" msgstr "带背景色的简单标记" -#: LiteEditor/findinfiles_dlg.h:106 -msgid "Find in files" -msgstr "在文件中查找" +#: LiteEditor/setters_getters.h:71 +msgid "Generate Setters/Getters for class" +msgstr "生成 Setters/Getters 类" -#: LiteEditor/options_dlg2.cpp:119 -msgid "Editor" -msgstr "编辑器" +#: LiteEditor/envvar_table.cpp:206 +#, c-format +msgid "Failed to open file: '%s' for write" +msgstr "打开文件失败:“%s”为写" -#: LiteEditor/options_dlg2.cpp:120 -msgid "Guides" -msgstr "向导" +#: LiteEditor/envvar_table.cpp:240 +#, c-format +msgid "Environment exported to: '%s' successfully" +msgstr "成功导出环境到 “%s”" -#: LiteEditor/options_dlg2.cpp:121 -msgid "Copy / Cut Behavior" -msgstr "复制/剪切行为" +#: LiteEditor/implementparentvirtualfunctionsbase.h:69 +msgid "Implement Parent Virtual Functions" +msgstr "实现父虚函数" -#: LiteEditor/options_dlg2.cpp:122 LiteEditor/editorsettingslocalbase.cpp:45 -#: CodeFormatter/codeformatterdlgbase.cpp:94 -msgid "Indentation" -msgstr "缩进" +#: LiteEditor/breakpointdlg.cpp:93 LiteEditor/cl_editor.cpp:3223 +msgid "Breakpoint successfully deleted" +msgstr "删除断点成功" -#: LiteEditor/options_dlg2.cpp:123 -msgid "Right Margin Indicator" -msgstr "右边距指示符" +#: LiteEditor/breakpointdlg.cpp:106 +msgid "All Breakpoints deleted" +msgstr "删除所有断点" -#: LiteEditor/options_dlg2.cpp:124 -msgid "Caret & Scrolling" -msgstr "光标和滚动" +#: LiteEditor/breakpointdlg.cpp:118 +msgid "Pending Breakpoints reapplied" +msgstr "待定断点已重新应用" -#: LiteEditor/options_dlg2.cpp:125 -msgid "Save Options" -msgstr "保存选项" +#: LiteEditor/breakpointdlg.cpp:192 +msgid "Temp. " +msgstr "临时。" -#: LiteEditor/options_dlg2.cpp:128 -msgid "Code" -msgstr "" +#: LiteEditor/breakpointdlg.cpp:199 +msgid "disabled" +msgstr "已禁用" -#: LiteEditor/options_dlg2.cpp:129 -msgid "Doxygen" -msgstr "" +#: LiteEditor/context_cpp.cpp:538 +msgid "Open Include File \"" +msgstr "打开头文件“" -#: LiteEditor/options_dlg2.cpp:131 -msgid "Folding" -msgstr "折叠" +#: LiteEditor/context_cpp.cpp:554 +msgid "Add Forward Declaration for \"" +msgstr "添加前置声明为 \"" -#: LiteEditor/options_dlg2.cpp:132 -msgid "Bookmarks" -msgstr "书签" +#: LiteEditor/context_cpp.cpp:558 +msgid "Add Include File for \"" +msgstr "添加头文件为 \"" -#: LiteEditor/options_dlg2.cpp:133 -msgid "Windows & Tabs" -msgstr "窗口与选项卡" +#: LiteEditor/context_cpp.cpp:652 +msgid "Select File to Include:" +msgstr "选择包含文件:" -#: LiteEditor/options_dlg2.cpp:136 -msgid "Terminal" -msgstr "终端" +#: LiteEditor/context_cpp.cpp:652 +msgid "Add Include File" +msgstr "添加头文件" -#: LiteEditor/attachdbgprocbasedlg.cpp:25 -msgid "Debugger to use:" -msgstr "要使用的调试器:" +#: LiteEditor/context_cpp.cpp:922 +msgid "Multiple candidates found. Select a file to open:" +msgstr "已发现多个候选项。选择一个文件来打开:" -#: LiteEditor/attachdbgprocbasedlg.cpp:34 LiteEditor/AccelTableBaseDlg.cpp:32 -msgid "Filter:" -msgstr "过滤器:" +#: LiteEditor/context_cpp.cpp:923 +msgid "Swap Header/Source Implementation" +msgstr "交换头/源的实现文件" -#: LiteEditor/attachdbgprocbasedlg.cpp:43 -msgid "Processes:" -msgstr "进程:" +#: LiteEditor/context_cpp.cpp:948 +msgid "No matched file was found, would you like to create one?" +msgstr "没有发现符合条件的文件,您想创建一个?" -#: LiteEditor/attachdbgprocbasedlg.cpp:56 -msgid "&Attach" -msgstr "连接(&A)" +#: LiteEditor/context_cpp.cpp:950 +msgid "Create" +msgstr "创建" + +#: LiteEditor/context_cpp.cpp:951 +msgid "Don't Create" +msgstr "无法创建" -#: LiteEditor/attachdbgprocbasedlg.cpp:63 -msgid "&Refresh" -msgstr "刷新(&R)" +#: LiteEditor/context_cpp.cpp:1215 +msgid "This file does not seem to contain the declaration for '" +msgstr "此文件似乎不包含的声明“" -#: LiteEditor/editorsettingslocalbase.cpp:29 -msgid "Untick one or more checkboxes to set any local preferences," -msgstr "取消任何勾选即可设置局部首选项," +#: LiteEditor/context_cpp.cpp:1216 +msgid "The declaration of '" +msgstr "声明“" -#: LiteEditor/editorsettingslocalbase.cpp:57 -#: LiteEditor/editorsettingslocalbase.cpp:68 -#: LiteEditor/editorsettingslocalbase.cpp:89 -#: LiteEditor/editorsettingslocalbase.cpp:125 -#: LiteEditor/editorsettingslocalbase.cpp:135 -#: LiteEditor/editorsettingslocalbase.cpp:146 -#: LiteEditor/editorsettingslocalbase.cpp:157 -#: LiteEditor/editorsettingslocalbase.cpp:183 -#: LiteEditor/editorsettingslocalbase.cpp:194 -#: LiteEditor/editorsettingslocalbase.cpp:205 -#: LiteEditor/editorsettingslocalbase.cpp:215 -#: LiteEditor/editorsettingslocalbase.cpp:233 -#: LiteEditor/editorsettingslocalbase.cpp:247 -#: LiteEditor/editorsettingslocalbase.cpp:262 -msgid "Use global setting" -msgstr "使用全局设置" +#: LiteEditor/context_cpp.cpp:1216 +msgid "' is located at '" +msgstr "”位于“" -#: LiteEditor/editorsettingslocalbase.cpp:62 -#: LiteEditor/editoroptionsgeneralindetationpanelbase.cpp:20 -msgid "Use tabs in indentation" -msgstr "在缩进中使用标签" +#: LiteEditor/context_cpp.cpp:1217 +msgid "Would you like CodeLite to open this file for you?" +msgstr "您希望用CodeLite打开此文件吗?" -#: LiteEditor/editorsettingslocalbase.cpp:64 -msgid "" -"If clear, only spaces will be used for indentation.\n" -"If set, a mixture of tabs and spaces will be used." -msgstr "" -"如果清除,将只使用空格来缩进\n" -"如果设置,将会使用制表符和空格的混合体" +#: LiteEditor/context_cpp.cpp:1231 +msgid "Seems like you have all the getters/setters you need..." +msgstr "似乎有您所有需要的 getters/setters ..." -#: LiteEditor/editorsettingslocalbase.cpp:77 -#: LiteEditor/editoroptionsgeneralindetationpanelbase.cpp:36 -msgid "Columns per tab character in document:" -msgstr "文档内制表符所占列数:" +#: LiteEditor/context_cpp.cpp:1231 LiteEditor/frame.cpp:4652 +#: LiteEditor/frame.cpp:4742 +msgid "codelite" +msgstr "codelite" -#: LiteEditor/editorsettingslocalbase.cpp:98 -#: LiteEditor/editoroptionsgeneralindetationpanelbase.cpp:29 -msgid "Columns per indentation level:" -msgstr "每层缩进所占列数:" +#: LiteEditor/context_cpp.cpp:1651 +msgid "Cant resolve scope properly. Found <" +msgstr "不能严格处理范围。发现 <" -#: LiteEditor/editorsettingslocalbase.cpp:113 -msgid "Margins" -msgstr "页边" +#: LiteEditor/context_cpp.cpp:1748 +msgid "'Add Functions Implementation' can only work inside valid scope, got (" +msgstr "“添加函数实现”仅在有效的范围内工作, 得到 (" -#: LiteEditor/editorsettingslocalbase.cpp:140 -msgid "Display Folding margin" -msgstr "显示折叠页边" +#: LiteEditor/context_cpp.cpp:1759 +msgid "All your functions seems to have an implementation!" +msgstr "您所有的功能似乎已经实现!" -#: LiteEditor/editorsettingslocalbase.cpp:142 -msgid "" -"Display the margin that lets you 'fold' individual functions, or sections of " -"functions, to hide their contents" -msgstr "显示页边以便“折叠”单独的函数或者函数中一段,从而隐藏其内容" +#: LiteEditor/context_cpp.cpp:1859 +msgid "Function '" +msgstr "函数”" -#: LiteEditor/editorsettingslocalbase.cpp:151 -#: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:75 -msgid "Hide change marker margin" -msgstr "隐藏更改标记页边" +#: LiteEditor/context_cpp.cpp:1859 +msgid "' already has a body" +msgstr "”已经拥有实体" -#: LiteEditor/editorsettingslocalbase.cpp:153 -msgid "Display the margin in which a coloured line marks any altered line" -msgstr "当用颜色标记被修改行时显示页边" +#: LiteEditor/context_cpp.cpp:1880 +msgid "Add Function Implementation" +msgstr "添加函数实现" -#: LiteEditor/editorsettingslocalbase.cpp:162 -#: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:40 -msgid "Display line numbers" -msgstr "显示行号" +#: LiteEditor/context_cpp.cpp:2205 +msgid "No matches were found!" +msgstr "没有找到相匹配的内容!" -#: LiteEditor/editorsettingslocalbase.cpp:164 -msgid "Display line numbers margin" -msgstr "显示行号页边" +#: LiteEditor/context_cpp.cpp:2205 LiteEditor/context_cpp.cpp:2209 +msgid "Refactoring local variable" +msgstr "重构局部变量" -#: LiteEditor/editorsettingslocalbase.cpp:188 -#: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:46 -msgid "Show indentation guidelines" -msgstr "显示缩进标记" +#: LiteEditor/context_cpp.cpp:2209 +msgid "Insert New Variable Name:" +msgstr "插入新变量名:" -#: LiteEditor/editorsettingslocalbase.cpp:190 -msgid "Display horizontal guides for matching braces \"{\"" -msgstr "显示水平匹配指南“{”" +#: LiteEditor/context_cpp.cpp:2265 LiteEditor/context_cpp.cpp:2967 +msgid "" +"Refactoring engine is still caching workspace info. Try again in a few " +"seconds" +msgstr "重构引擎仍在缓存工作区信息。几秒后再重试" -#: LiteEditor/editorsettingslocalbase.cpp:199 -#: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:128 -msgid "Highlight caret line" -msgstr "突出显示插入符号行" +#: LiteEditor/context_cpp.cpp:2362 +msgid "Symbol renamed" +msgstr "符号已重命名" -#: LiteEditor/editorsettingslocalbase.cpp:201 -msgid "Set a different background colour for the line containing the caret" -msgstr "为包含插入行设置不同的颜色" +#: LiteEditor/context_cpp.cpp:2374 +msgid "Please save the file before retagging it" +msgstr "请在重建标签文件前保存文件" -#: LiteEditor/editorsettingslocalbase.cpp:222 -msgid "Make sure the file finishes with an end-of-line" -msgstr "请确保该文件用行尾结束符" +#: LiteEditor/context_cpp.cpp:2656 +msgid "Select file to open:" +msgstr "选择要打开的文件:" -#: LiteEditor/editorsettingslocalbase.cpp:238 -#: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:97 -msgid "Whitespace visibility:" -msgstr "空白可见性" +#: LiteEditor/context_cpp.cpp:2669 +msgid "New File Name:" +msgstr "新建文件名称:" -#: LiteEditor/editorsettingslocalbase.cpp:252 -#: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:106 -msgid "EOL Mode:" -msgstr "EOL 模式:" +#: LiteEditor/context_cpp.cpp:2669 +msgid "Create File" +msgstr "创建文件" -#: LiteEditor/editorsettingslocalbase.cpp:258 -#: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:113 -msgid "" -"Set the editor's EOL mode (End Of Line). When set to 'Default' CodeLite will " -"set the EOL according to the hosting OS" -msgstr "" -"设置编辑器的 EOL 模式(End Of Line)。当设置为”默认“时,CodeLite 将依据主机系统" -"进行设置EOL模式" +#: LiteEditor/context_cpp.cpp:3113 +msgid "Find Symbol" +msgstr "查找符号" -#: LiteEditor/editorsettingslocalbase.cpp:267 -msgid "File font encoding" -msgstr "文件字体编码" +#: LiteEditor/context_cpp.cpp:3114 +msgid "Go to Declaration" +msgstr "转至声明" -#: LiteEditor/addoptioncheckdlgbase.cpp:19 -msgid "Check the command line options you need" -msgstr "检查您需要的命令行选项" +#: LiteEditor/context_cpp.cpp:3115 +msgid "Go to Implementation" +msgstr "转至实现" -#: LiteEditor/addoptioncheckdlgbase.cpp:30 -msgid "Enter other options" -msgstr "输入其它选项" +#: LiteEditor/localstable.cpp:52 LiteEditor/debuggerpane.cpp:46 menu.xrc:597 +msgid "Locals" +msgstr "局部变量" -#: LiteEditor/addoptioncheckdlgbase.cpp:38 -msgid "Command line" -msgstr "命令行" +#: LiteEditor/localstable.cpp:378 +#, c-format +msgid "Current scope is now set to: \"%s\", depth: %d\n" +msgstr "目前范围设置为:“%s”,深度: %d\n" -#: LiteEditor/workspace_pane.cpp:89 LiteEditor/workspace_pane.cpp:167 -msgid "Parsing workspace..." -msgstr "分析工作空间..." +#: LiteEditor/localstable.cpp:402 +msgid "Change value..." +msgstr "更改值..." -#: LiteEditor/workspace_pane.cpp:180 +#: LiteEditor/localstable.cpp:413 #, c-format -msgid "Parsing workspace: %d%% completed" -msgstr "分析工作空间:已完成 %d%%" +msgid "Insert new value for '%s':" +msgstr "插入“%s”的新值:" -#: LiteEditor/breakpointsmgr.cpp:100 -msgid "Create a breakpoint or watchpoint" -msgstr "创建一个断点或监视点" +#: LiteEditor/localstable.cpp:414 +msgid "Edit expression" +msgstr "编辑表达式" -#: LiteEditor/breakpointsmgr.cpp:118 -msgid "Watchpoint successfully added" -msgstr "监视点成功添加" +#: LiteEditor/addincludefiledlgbase.cpp:44 +msgid "Edit the line to add:" +msgstr "编辑添加行:" -#: LiteEditor/breakpointsmgr.cpp:120 LiteEditor/cl_editor.cpp:3185 -msgid "Breakpoint successfully added" -msgstr "添加断点成功" +#: LiteEditor/addincludefiledlgbase.cpp:58 +msgid "Move the #include statement one line up" +msgstr "#include 声明行上移" -#: LiteEditor/breakpointsmgr.cpp:176 -msgid "Breakpoint: " -msgstr " 断点:" +#: LiteEditor/addincludefiledlgbase.cpp:60 +msgid "Move the #include statement one line down" +msgstr "#include 声明行下移" -#: LiteEditor/breakpointsmgr.cpp:176 -msgid "\n" -msgstr "" +#: LiteEditor/addincludefiledlgbase.cpp:62 +msgid "Clear Cached Paths" +msgstr "清理已缓存的路径" -#: LiteEditor/breakpointsmgr.cpp:180 -msgid "Temporary \n" -msgstr "临时 \n" +#: LiteEditor/addincludefiledlgbase.cpp:123 +msgid "Line to add:" +msgstr "将被添加的行:" -#: LiteEditor/breakpointsmgr.cpp:185 -msgid " (disabled)\n" -msgstr "(禁用)\n" +#: LiteEditor/addincludefiledlgbase.cpp:143 +msgid "File's full path:" +msgstr "文件完整路径:" -#: LiteEditor/breakpointsmgr.cpp:190 -#, c-format -msgid "Ignore-count = %u\n" -msgstr "忽略数目 = %u\n" +#: LiteEditor/newversionbasedlg.cpp:48 +msgid "Show me whats new !" +msgstr "显示更新内容!" + +#: LiteEditor/editcmpfileinfobase.h:83 +msgid "File Type Settings" +msgstr "文件类型设置" + +#: LiteEditor/tags_options_base_dlg.cpp:36 +msgid "Display and Behavior" +msgstr "显示和行为" + +#: LiteEditor/tags_options_base_dlg.cpp:51 +msgid "Number of items to display in the completion box:" +msgstr "显示代码补全框前输入的字符数目:" -#: LiteEditor/breakpointsmgr.cpp:195 -#, c-format -msgid "" -"Condition:\n" -"%s\n" -msgstr "" -"条件:\n" -"%s\n" +#: LiteEditor/tags_options_base_dlg.cpp:62 +msgid "Code Completion is case sensitive (improves performance)" +msgstr "代码补全是区分大小写的(提升性能)" -#: LiteEditor/breakpointsmgr.cpp:200 -#, c-format +#: LiteEditor/tags_options_base_dlg.cpp:64 msgid "" -"Commands:\n" -"%s\n" +"When enabled, the code completion search engine will use case sensitive " +"searches. \n" +"So 'QString' is NOT equal 'qstring'" msgstr "" -"命令:\n" -"%s\n" - -#: LiteEditor/breakpointsmgr.cpp:205 -msgid "Normal breakpoint\n" -msgstr "普通断点\n" - -#: LiteEditor/breakpointsmgr.cpp:367 -msgid "Watchpoint " -msgstr "监视点" +"当启用时,代码补全搜索引擎将会使用区分大小写的搜索。\n" +"因此“QString”不等于“qstring”" -#: LiteEditor/breakpointsmgr.cpp:367 -msgid "Breakpoint " -msgstr "断点" +#: LiteEditor/tags_options_base_dlg.cpp:70 +msgid "Display type info tooltips" +msgstr "显示类型信息提示" -#: LiteEditor/breakpointsmgr.cpp:368 -#, c-format -msgid "%u deleted" -msgstr "%u 已删除" +#: LiteEditor/tags_options_base_dlg.cpp:72 +msgid "Display information about the hovered text" +msgstr "显示覆盖文本的信息" -#: LiteEditor/breakpointsmgr.cpp:493 -msgid "breakpoints enabled" -msgstr "启用断点" +#: LiteEditor/tags_options_base_dlg.cpp:78 +msgid "Display function calltip" +msgstr "显示函数调用提示" -#: LiteEditor/breakpointsmgr.cpp:493 -msgid "breakpoints disabled" -msgstr "禁用断点" +#: LiteEditor/tags_options_base_dlg.cpp:80 +msgid "Display function argument list after typing an open brace '('" +msgstr "在输入左括号“(”后显示函数参数列表" -#: LiteEditor/breakpointsmgr.cpp:509 -msgid "Watchpoint creation unsuccessful" -msgstr "监视点创建失败" +#: LiteEditor/tags_options_base_dlg.cpp:86 +msgid "Display completion box for language keywords" +msgstr "为语言关键字显示代码补全框" -#: LiteEditor/breakpointsmgr.cpp:511 -msgid "Breakpoint creation unsuccessful" -msgstr "断点创建失败" +#: LiteEditor/tags_options_base_dlg.cpp:88 +msgid "" +"When enabled, codelite will auto show the code completion box for C/C++ " +"keywords after typing 2 chars" +msgstr "当启用时,CodeLite 将在输入两个字符后 为 C/C++ 关键字显示代码补全框" -#: LiteEditor/breakpointsmgr.cpp:551 -msgid "Please enter the new ignore-count" -msgstr "请输入新忽略数目" +#: LiteEditor/tags_options_base_dlg.cpp:94 +msgid "Keep function signature un-formatted" +msgstr "保持函数签名未格式化" -#: LiteEditor/breakpointsmgr.cpp:551 -msgid "Set ignore-count" -msgstr "设置忽略数目" +#: LiteEditor/tags_options_base_dlg.cpp:99 +msgid "Behavior:" +msgstr "行为:" -#: LiteEditor/breakpointsmgr.cpp:603 -msgid "Properties for watchpoint " -msgstr "监视点属性" +#: LiteEditor/tags_options_base_dlg.cpp:109 +msgid "Perform a retag when workspace is loaded" +msgstr "载入工作区时重建标签文件" -#: LiteEditor/breakpointsmgr.cpp:605 -msgid "Properties for breakpoint " -msgstr "断点属性" +#: LiteEditor/tags_options_base_dlg.cpp:111 +msgid "Retag workspace once loaded" +msgstr "加载工作区时重建标签文件" -#: LiteEditor/ps_linker_page.cpp:63 LiteEditor/advanced_settings.cpp:275 -msgid "Linker options" -msgstr "链接器选项" +#: LiteEditor/tags_options_base_dlg.cpp:115 +msgid "Do not parse the file after saving it" +msgstr "文件保存后不进行文件分析" -#: LiteEditor/messagepane_base.cpp:61 -msgid "Message:" -msgstr "消息:" +#: LiteEditor/tags_options_base_dlg.cpp:117 +msgid "Do not trigger file parsing after saving a file" +msgstr "文件保存后不触发文件分析" -#: LiteEditor/messagepane_base.cpp:73 -msgid "Remember my answer and don't annoy me again!" -msgstr "记住我的回答,不要再问我" +#: LiteEditor/tags_options_base_dlg.cpp:121 +msgid "Scan all included files to locate 'using namespace' statements" +msgstr "在全部包含的文件中查找“using namespace”声明" -#: LiteEditor/messagepane_base.cpp:77 -msgid "" -"If you don't want to be spammed by this message again, tick the box. You can " -"change your mind in Settings > Global Editor Preferences > Dialogs" -msgstr "" -"如您不想被此信息再次骚扰,勾选它。你可以改变您的决定通过设置 > 全局编辑偏好 " -"> 对话框" +#: LiteEditor/tags_options_base_dlg.cpp:123 +msgid "Allways search for 'using namespace' statements in all included files" +msgstr "总在全部包含的文件中查找“正在使用命名空间”声明" -#: LiteEditor/messagepane_base.cpp:85 -msgid "Hide" -msgstr "隐藏" +#: LiteEditor/tags_options_base_dlg.cpp:128 +msgid "Colouring" +msgstr "着色" -#: LiteEditor/configuration_manager_base_dlg.h:75 -msgid "Configuration Manager" -msgstr "配置管理" +#: LiteEditor/tags_options_base_dlg.cpp:141 +msgid "Track PreProcessor blocks" +msgstr "跟踪预处理块" -#: LiteEditor/compilerlinkeroptionspage.cpp:68 -msgid "Are you sure you want to delete this linker option?" -msgstr "您确定要删除此链接器选项?" +#: LiteEditor/tags_options_base_dlg.cpp:142 +msgid "" +"Track Pre Processor blocks in the code and colour unreachable code with grey " +"text (\"disabled text\")" +msgstr "跟踪代码中的预处理块并用灰色显示无法达到的代码 (\"失效文本\")" -#: LiteEditor/menu_event_handlers.cpp:284 -#, c-format -msgid "Go to line number (1 - %d):" -msgstr "跳转到行号(1 - %d):" +#: LiteEditor/tags_options_base_dlg.cpp:144 +msgid "Colour local variables" +msgstr "着色局部变量" -#: LiteEditor/menu_event_handlers.cpp:287 -#: LiteEditor/menu_event_handlers.cpp:296 -#: LiteEditor/menu_event_handlers.cpp:303 -msgid "Go To Line" -msgstr "跳转到行" +#: LiteEditor/tags_options_base_dlg.cpp:145 +msgid "" +"Local variables inside functions will use their own colour to diffrentiate " +"them from other code\n" +"The colour can be selected from the 'Colours and Fonts' menu" +msgstr "" +"函数内的本地变量将使用它们自己的颜色来与其它代码区分\n" +"颜色可以从“颜色和字体”菜单中选择" -#: LiteEditor/menu_event_handlers.cpp:295 -#, c-format -msgid "'%s' is not a valid line number" -msgstr "‘%s’不是一个有效行数" +#: LiteEditor/tags_options_base_dlg.cpp:149 +msgid "class" +msgstr "类" -#: LiteEditor/menu_event_handlers.cpp:302 -#, c-format -msgid "Please insert a line number in the range of (1 - %ld)" -msgstr "请输入范围 (1 - %ld) 内的行号" +#: LiteEditor/tags_options_base_dlg.cpp:150 +msgid "struct" +msgstr "结构" -#: LiteEditor/editcmpfileinfobase.cpp:25 -msgid "File type:" -msgstr "文件类型:" +#: LiteEditor/tags_options_base_dlg.cpp:151 +msgid "function" +msgstr "函数" -#: LiteEditor/editcmpfileinfobase.cpp:32 -msgid "Handle file has:" -msgstr "处理为:" +#: LiteEditor/tags_options_base_dlg.cpp:152 +msgid "enum" +msgstr "枚举" -#: LiteEditor/editcmpfileinfobase.cpp:42 -msgid "Compilation line:" -msgstr "编译行:" +#: LiteEditor/tags_options_base_dlg.cpp:153 +msgid "enumerator" +msgstr "枚举器" -#: LiteEditor/editcmpfileinfobase.cpp:60 ExternalTools/newtoolbase.cpp:136 -msgid "Help..." -msgstr "帮助..." +#: LiteEditor/tags_options_base_dlg.cpp:154 +msgid "union" +msgstr "联合" -#: LiteEditor/replaceinfilespanel.cpp:57 -msgid "&Unmark All" -msgstr "取消标记全部(&U)" +#: LiteEditor/tags_options_base_dlg.cpp:155 +msgid "prototype" +msgstr "原型" -#: LiteEditor/replaceinfilespanel.cpp:60 -msgid "Mark &All" -msgstr "标记全部(&A)" +#: LiteEditor/tags_options_base_dlg.cpp:156 +msgid "typedef" +msgstr "类型定义" -#: LiteEditor/replaceinfilespanel.cpp:69 -msgid "&Replace Marked" -msgstr "替换已标记(&R)" +#: LiteEditor/tags_options_base_dlg.cpp:157 +msgid "macro" +msgstr "宏" -#: LiteEditor/replaceinfilespanel.cpp:179 -msgid "Failed to save file:\n" -msgstr "保存文件失败:\n" +#: LiteEditor/tags_options_base_dlg.cpp:158 +msgid "namespace" +msgstr "命名空间" -#: LiteEditor/replaceinfilespanel.cpp:179 -#: LiteEditor/replaceinfilespanel.cpp:205 -msgid "CodeLite - Replace" -msgstr "CodeLite - 替换" +#: LiteEditor/tags_options_base_dlg.cpp:159 +msgid "member" +msgstr "成员" -#: LiteEditor/replaceinfilespanel.cpp:205 -msgid "Failed to open file:\n" -msgstr "打开文件失败:\n" +#: LiteEditor/tags_options_base_dlg.cpp:160 +msgid "variable" +msgstr "变量" -#: LiteEditor/replaceinfilespanel.cpp:376 LiteEditor/mainbook.cpp:716 -#: LiteEditor/mainbook.cpp:817 -msgid "Save Modified Files" -msgstr "保存修改的文件" +#: LiteEditor/tags_options_base_dlg.cpp:173 +msgid "Colour workspace symbols" +msgstr "着色工作区符号" -#: LiteEditor/replaceinfilespanel.cpp:377 LiteEditor/mainbook.cpp:717 -#: LiteEditor/mainbook.cpp:818 +#: LiteEditor/tags_options_base_dlg.cpp:174 msgid "" -"Some files are modified.\n" -"Choose the files you would like to save." +"Select from the list below which symbols type should be coloured by codelite " +"with different colour.\n" +"The colour is configurable from the 'Colours and Fonts' dialog" msgstr "" -"部分文件已修改。\n" -"选中您要保存的文件。" - -#: LiteEditor/NewKeyShortcutBaseDlg.cpp:42 -msgid "Action:" -msgstr "操作:" +"从以下列表中选择哪些符号类型需要 Codelite 使用不同的颜色来标记。\n" +"颜色可以在“颜色和字体”对话框中配置" -#: LiteEditor/NewKeyShortcutBaseDlg.cpp:50 -msgid "Key:" -msgstr "键:" +#: LiteEditor/tags_options_base_dlg.cpp:177 +msgid "Triggering" +msgstr "触发" -#: LiteEditor/NewKeyShortcutBaseDlg.cpp:55 -msgid "Hit any keyboard key" -msgstr "按任意键" +#: LiteEditor/tags_options_base_dlg.cpp:182 +msgid "Automatic Word Completion:" +msgstr "自动代码补全:" -#: LiteEditor/NewKeyShortcutBaseDlg.cpp:60 -msgid "Modifiers:" -msgstr "修改:" +#: LiteEditor/tags_options_base_dlg.cpp:193 +msgid "Auto display code completion box when typing" +msgstr "输入时自动显示代码补全框" -#: LiteEditor/NewKeyShortcutBaseDlg.cpp:68 -msgid "Ctrl/Cmd" -msgstr "Ctrl/Cmd" +#: LiteEditor/tags_options_base_dlg.cpp:195 +msgid "" +"When enabled, codelite will auto show the code completion box after N chars " +"were typed" +msgstr "当使用时,CodeLite 将在输入 N 字符后显示代码补全框" -#: LiteEditor/tasks_find_what_dlg.cpp:22 -msgid "Task" -msgstr "任务" +#: LiteEditor/tags_options_base_dlg.cpp:201 +#: LiteEditor/tags_options_base_dlg.cpp:202 +msgid "Minimun chars to type:" +msgstr "至少键入的字符数:" -#: LiteEditor/tasks_find_what_dlg.cpp:50 -#, c-format -msgid "'%s' is not a valid regular expression" -msgstr "“%s”不是一个有效的正则表达式" +#: LiteEditor/tags_options_base_dlg.cpp:207 +msgid "Number of chars to type before showing the code completion box" +msgstr "显示代码补全框前输入的字符数目" -#: LiteEditor/tasks_find_what_dlg.cpp:64 -msgid "Are you sure you want to delete this entry?" -msgstr "您确定要删除此记录吗?" +#: LiteEditor/tags_options_base_dlg.cpp:211 +msgid "Auto insert single match" +msgstr "自动插入单个匹配项" -#: LiteEditor/tasks_find_what_dlg.cpp:83 -msgid "Edit Task" -msgstr "编辑任务" +#: LiteEditor/tags_options_base_dlg.cpp:213 +msgid "" +"When there is only a single match don't show the code completion box but " +"rather insert the match" +msgstr "当只有一个匹配项时,直接插入此匹配项而不显示代码补全框" -#: LiteEditor/workspacesettingsbase.h:72 -msgid "Workspace Settings" -msgstr "工作空间设置..." +#: LiteEditor/tags_options_base_dlg.cpp:217 +msgid "CTags" +msgstr "CTags" -#: LiteEditor/tags_options_dlg.cpp:296 -msgid "Add ctags Parser Exclude Path:" -msgstr "添加ctags分析器排除路径:" +#: LiteEditor/tags_options_base_dlg.cpp:220 +#: LiteEditor/tags_options_base_dlg.cpp:238 +msgid "Search paths" +msgstr "搜索路径" -#: LiteEditor/tags_options_dlg.cpp:314 -msgid "Add ctags Parser Search Path:" -msgstr "添加ctags分析器搜索路径:" +#: LiteEditor/tags_options_base_dlg.cpp:231 +msgid "Search Paths" +msgstr "搜索路径" -#: LiteEditor/NewKeyShortcutBaseDlg.h:46 -msgid "Set New Key Accelerator" -msgstr "设置新的加速键" +#: LiteEditor/tags_options_base_dlg.cpp:238 +msgid "codelite will search for include files in these locations" +msgstr "CodeLite 将会在这些位置搜索头文件" -#: LiteEditor/debuggersettingsbasedlg.cpp:197 -msgid "Copy Values From:" -msgstr "复制值来自:" +#: LiteEditor/tags_options_base_dlg.cpp:265 +#: LiteEditor/tags_options_base_dlg.cpp:309 +msgid "&Add..." +msgstr "添加(&A)..." -#: LiteEditor/debuggersettingsbasedlg.cpp:208 -msgid "Make this 'PreDefined Types' set active" -msgstr "使此‘预定义类型’设置为活动" +#: LiteEditor/tags_options_base_dlg.cpp:270 +msgid "Suggest search paths based on the installed compilers" +msgstr "基于已安装编译器的建议搜索路径" -#: LiteEditor/debuggersettingsbasedlg.cpp:266 -msgid "Debugger path:" -msgstr "调试器路径:" +#: LiteEditor/tags_options_base_dlg.cpp:275 +msgid "Exclude Paths" +msgstr "排除路径" -#: LiteEditor/debuggersettingsbasedlg.cpp:286 -msgid "Enable pending breakpoints" -msgstr "启用待定断点" +#: LiteEditor/tags_options_base_dlg.cpp:282 +msgid "Exclude paths" +msgstr "排除路径" -#: LiteEditor/debuggersettingsbasedlg.cpp:288 +#: LiteEditor/tags_options_base_dlg.cpp:282 msgid "" -"Some breakpoints can't be applied before the program is run, or even later. " -"This is especially a problem when trying to debug inside a library that is " -"dynamically loaded (CodeLite itself contains examples of this).\n" -"\n" -"gdb has an option to 'remember' any breakpoints that it can't initially set, " -"and automatically to set them when it becomes possible. It doesn't always " -"work! However, tick this box to tell gdb to try." -msgstr "" -"一些断点不能应用在程序运行之前,或者更晚的时候。尤其是调试一个位于动态加载库" -"中的问题时(CodeLite 本身就包含这样的例子)。\n" -"\n" -"gdb 有一个选项可以’记住‘不能初始设置的任意断点,并在可能的时候自动设置它们。" -"它并不总是起作用!然而,勾选此选项来告诉 gdb 尝试一下。" - -#: LiteEditor/debuggersettingsbasedlg.cpp:292 -msgid "Apply breakpoints after main function is hit" -msgstr "当 main 函数运行后应用断点" +"codelite code completion will ignore any files found in one of the paths " +"below" +msgstr "codelite 代码补全将会忽略在以下路径中发现的文件" -#: LiteEditor/debuggersettingsbasedlg.cpp:294 -msgid "" -"Sometimes, some breakpoints won't apply cleanly until after main() has been " -"reached. If this box is ticked, CodeLite won't try to apply them earlier." -msgstr "" -"有时候,一些断点在 main() 函数执行完成之后并不会完全应用。如果勾选此项," -"CodeLite 在早期不会试着应用它们。" +#: LiteEditor/tags_options_base_dlg.cpp:314 +#: LiteEditor/tags_options_base_dlg.cpp:494 LiteEditor/compiler_pages.cpp:530 +#: LLDBDebugger/UI.cpp:451 Gizmos/newclassbasedlg.cpp:158 +msgid "Advanced" +msgstr "高级" -#: LiteEditor/debuggersettingsbasedlg.cpp:298 -msgid "Automatically set breakpoint at main" -msgstr "自动在 main 函数设置断点" +#: LiteEditor/tags_options_base_dlg.cpp:326 +msgid "File Types:" +msgstr "文件类型:" -#: LiteEditor/debuggersettingsbasedlg.cpp:300 +#: LiteEditor/tags_options_base_dlg.cpp:341 msgid "" -"Every time the debugger runs, set a breakpoint at main(). You may wish to " -"stop then anyway; but it's especially useful when you want to set " -"breakpoints that won't 'take' earlier (however, first try enabling Pending " -"breakpoints, or 'Apply breakpoints after main is hit'" +"CodeLite can suggest a list of 'Tokens' that will be added to the 'Tokens' " +"table based on parsing the following header files \n" +"(space separated list):" msgstr "" -"每次调试器运行时,在 mian() 函数处设置一个断点。然后您可能想停止,当您想设置" -"断点时这不会显得太早非常有用(无论如何,尝试一下使用断点等待,或者)" - -#: LiteEditor/debuggersettingsbasedlg.cpp:304 -msgid "Break when C++ exception is thrown" -msgstr "当 C++ 抛出异常时中断" +"CodeLite 能够通过分析以下头文件来提供将要被添加到“令牌”表中的“令牌”列表建议\n" +"(使用空格来分隔列表)" -#: LiteEditor/debuggersettingsbasedlg.cpp:309 -msgid "Raise CodeLite when a breakpoint is hit" -msgstr "当到达断点时前置 CodeLite" +#: LiteEditor/tags_options_base_dlg.cpp:356 +msgid "Parse!" +msgstr "分析!" -#: LiteEditor/debuggersettingsbasedlg.cpp:311 +#: LiteEditor/tags_options_base_dlg.cpp:366 +#: LiteEditor/tags_options_base_dlg.cpp:390 msgid "" -"Normally, when a breakpoint is hit, you'll want CodeLite to be raise to the " -"top of the window z-order, so that you can examine values of variables etc.\n" -"However you won't always want that to happen; in particular, not if the " -"breakpoint has commands, which end in 'continue'. If so untick this box to " -"stop it happening." +"List here list of tokens to be pre-processed by codelite-indexer. \n" +"Usually, you would like to add here macros which confuse the parser\n" +"Click the below link to read more about this feature and the syntax " +"supported.\n" msgstr "" -"通常情况下,到达一个断点时,您会希望前置 CodeLite 窗口,以便您可以检查变量的" -"值等。\n" -"然而您可能不会总是希望这样的事情发生;尤其是,当断点有指令的时候。因此取消勾" -"选可以阻止这种情况发生。" - -#: LiteEditor/debuggersettingsbasedlg.cpp:315 -msgid "Debugger Tooltip:" -msgstr "调试器提示:" +"列出需要 codelite-indexer 进行预处理的符号列表。\n" +"通常,您可以在这里添加那些会混淆解析器的宏命令\n" +"点击以下链接阅读关于该特性和语法的更多信息。\n" -#: LiteEditor/debuggersettingsbasedlg.cpp:323 -msgid "Use CTRL key to evaluate expressions under the cursor" -msgstr "用 CTRL 键对光标下面的表达式求值" +#: LiteEditor/tags_options_base_dlg.cpp:367 +msgid "Tokens" +msgstr "Tokens" -#: LiteEditor/debuggersettingsbasedlg.cpp:325 +#: LiteEditor/tags_options_base_dlg.cpp:389 msgid "" -"When enabled, codelite will evaluate the expression under the cursor only if " -"the CTRL key is down. \n" -"Otherwise, it will evaluate it automatically" +"List here list of tokens to be pre-processed by codelite-indexer usually, " +"you would like to add here\n" +"macros which confuse the parser" msgstr "" -"当启用时,codelite 仅在按下 CTRL 键时对光标下的表达式求值。\n" -"否则自动对它求值。" +"列出需要 codelite-indexer 进行预处理的符号列表,您可以在这里添加\n" +"那些会混淆解析器的宏命令" -#: LiteEditor/debuggersettingsbasedlg.cpp:329 -msgid "Auto expand items under the cursor" -msgstr "自动展开光标下的项" +#: LiteEditor/tags_options_base_dlg.cpp:394 +msgid "Macros Handling" +msgstr "宏处理" -#: LiteEditor/debuggersettingsbasedlg.cpp:344 -msgid "Number of elements to display for arrays / strings:" -msgstr "显示数组/字符串中的元素数目:" +#: LiteEditor/tags_options_base_dlg.cpp:403 LLDBDebugger/UI.cpp:387 +msgid "Types" +msgstr "类型" -#: LiteEditor/debuggersettingsbasedlg.cpp:345 -#: LiteEditor/debuggersettingsbasedlg.cpp:350 -msgid "For no limit, set it to 0" -msgstr "没有限制时,设置为0" +#: LiteEditor/tags_options_base_dlg.cpp:412 +msgid "" +"Specify here a list of types which are to be specially handled while parsing " +"C and C++\n" +"source files in the format of TYPE1=TYPE2. So when TYPE1 is found, CodeLite " +"will offer\n" +"completion as if it was TYPE2 was found" +msgstr "" +"在这里指定类型的列表将会在分析 C 和 C++ 源文件时\n" +"对 格式1=格式2进行特别处理。\n" +"因此,当发现 类型1 时,CodeLite 就会像发现 类型2 一样提供代码补全" -#: LiteEditor/debuggersettingsbasedlg.cpp:356 -msgid "Use 'PreDefined types for the 'Locals' view" -msgstr "为本地视图使用预定义类型" +#: LiteEditor/tags_options_base_dlg.cpp:430 LiteEditor/output_pane.cpp:54 +msgid "Clang" +msgstr "Clang" -#: LiteEditor/debuggersettingsbasedlg.cpp:363 -msgid "Auto cast 'char[]' into 'char*'" -msgstr "自动转换’char[]‘为’char*‘" +#: LiteEditor/tags_options_base_dlg.cpp:435 +msgid "Enable clang code completion" +msgstr "启用 clang 代码补全" -#: LiteEditor/debuggersettingsbasedlg.cpp:370 -msgid "Enable GDB Pretty Printing" -msgstr "启用 GDB 整齐打印" +#: LiteEditor/tags_options_base_dlg.cpp:458 +msgid "Only use clang code completion" +msgstr "仅使用 clang 代码补全功能" -#: LiteEditor/debuggersettingsbasedlg.cpp:372 +#: LiteEditor/tags_options_base_dlg.cpp:460 msgid "" -"If ticked, examining the contents of e.g. std::string, wxString, " -"wxArrayString will be much easier" +"Check this option so codelite will use the clang's code completion over the " +"ctags one.\n" +"clang is more accurate, while ctags is faster" msgstr "" -"如果勾选此项,检查如 std::string, wxString, wxArrayString 等字符串的内容将会" -"更加容易" +"检查这个选项以便 CodeLite 能够在 ctags 中使用 clang 的代码完成功能。\n" +"clang 是非常准确的,尽管 ctags 更快" -#: LiteEditor/debuggersettingsbasedlg.cpp:422 -msgid "Use file name only for breakpoints (NO full paths)" -msgstr "文件名称仅用于断点(没有完整路径)" +#: LiteEditor/tags_options_base_dlg.cpp:464 +#: LiteEditor/workspacesettingsbase.cpp:145 +#: LiteEditor/project_settings_base_dlg.cpp:1114 +msgid "Search paths:" +msgstr "搜索路径:" -#: LiteEditor/debuggersettingsbasedlg.cpp:427 -msgid "Enable full debugger logging" -msgstr "启用调试完整日志记录" +#: LiteEditor/tags_options_base_dlg.cpp:485 +msgid "Add here search paths used by clang for locating include files" +msgstr "在此处添加 clang 定位头文件的搜索路径" -#: LiteEditor/debuggersettingsbasedlg.cpp:432 -msgid "Show debugger terminal" -msgstr "显示调试器终端" +#: LiteEditor/tags_options_base_dlg.cpp:489 +msgid "Suggest search paths..." +msgstr "建议搜索路径..." -#: LiteEditor/debuggersettingsbasedlg.cpp:441 -msgid "Max number of frames to allow in a call-stack" -msgstr "在调用堆栈中允许的最大值帧数" +#: LiteEditor/tags_options_base_dlg.cpp:506 +msgid "Clear clang translation unit cache:" +msgstr "清理 clang 翻译组件缓存:" -#: LiteEditor/debuggersettingsbasedlg.cpp:446 +#: LiteEditor/tags_options_base_dlg.cpp:511 msgid "" -"The maximum number of frames that CodeLite will display in the Call Stack " -"tab. This protects against a very long hang while trying to show 100,000 " -"frames in an infinite recursion situation." +"Clicking this button will erase all clang's generated PCH files. \n" +"Use this button as the first step to resolve a code completion issue" msgstr "" -"CodeLite 将在调用堆栈选项卡中显示帧数的最大值。这可以防止在无限递归的情况下试" -"图显示 100,000 帧时的程序挂起。" +"单击此按钮时将删除所有 clang 已生成的 PCH 文件。\n" +"使用此按钮为解决代码补全问题的第一步" -#: LiteEditor/debuggersettingsbasedlg.cpp:452 -msgid "MinGW / Cygwin:" -msgstr "MinGW / Cygwin" +#: LiteEditor/tags_options_base_dlg.cpp:515 +msgid "Parsing policy:" +msgstr "正在解析政策:" -#: LiteEditor/debuggersettingsbasedlg.cpp:460 -msgid "Break at assertion failure (MinGW only)" -msgstr "断言失败时中断(仅 MinGW )" +#: LiteEditor/manage_perspective_dlg.cpp:48 +#, c-format +msgid "Are you sure you want to delete perspective '%s'?" +msgstr "您确定要删除透视图“%s”吗?" -#: LiteEditor/debuggersettingsbasedlg.cpp:465 -msgid "Cygwin path conversion command:" -msgstr "Cygwin 路径转换命令:" +#: LiteEditor/manage_perspective_dlg.cpp:66 +msgid "Rename perspective" +msgstr "重命名透视图" -#: LiteEditor/debuggersettingsbasedlg.cpp:466 -#: LiteEditor/debuggersettingsbasedlg.cpp:471 +#: LiteEditor/manager.cpp:632 +msgid "Importing IDE solution/workspace..." +msgstr "正在导入 IDE 解决方案/工作区..." + +#: LiteEditor/manager.cpp:1112 +#, c-format msgid "" -"Set here the command to use in order to convert cygwin paths into native " -"Windows paths (use $(File) as a place holder for the file name)" +"There is already a file in this folder with a name:\n" +"%s\n" +"that matches using case-insensitive comparison" msgstr "" -"在此设置把 cygwin 路径转换为 Windows 本地路径的命令(使用 $(File) 作为文件名的" -"占位符)" - -#: LiteEditor/debuggersettingsbasedlg.cpp:521 -msgid "&New" -msgstr "新建(&N)" +"该文件夹中已经有一个文件,名称是:\n" +"%s\n" +"该匹配使用的对比是不区分大小写" -#: LiteEditor/debuggersettingsbasedlg.cpp:522 -msgid "Create new 'PreDefined' set" -msgstr "创建新建‘预定义’设置" +#: LiteEditor/manager.cpp:1116 +msgid "" +"\n" +"This won't be a problem on Linux, but it may be on other, case-insensitive " +"platforms" +msgstr "" +"\n" +"在 Linux 平台上这并不会成为一个问题,但这并不代表在其他不区分大小写的平台上也" +"是如此" -#: LiteEditor/debuggersettingsbasedlg.cpp:527 -msgid "Delete the currently selected set" -msgstr "删除当前选择设置" +#: LiteEditor/manager.cpp:1117 +msgid "" +"\n" +"\n" +"Add the file anyway?" +msgstr "" +"\n" +"\n" +"无论如何都添加文件?" -#: LiteEditor/debuggersettingsbasedlg.cpp:531 -msgid "Available sets:" -msgstr "可用设置:" +#: LiteEditor/manager.cpp:1119 +msgid "Possible name-clash" +msgstr "名称可能冲突" -#: LiteEditor/debuggersettingsbasedlg.cpp:581 -msgid "Current function:" -msgstr "当前函数:" +#: LiteEditor/manager.cpp:1155 +#, c-format +msgid "%u file(s) not added, probably due to a name-clash" +msgstr "%u 文件没有被添加,可能是由于命名出现冲突" -#: LiteEditor/filechecklistbase.cpp:36 -msgid "C&lear All" -msgstr "清理全部(&l)" +#: LiteEditor/manager.cpp:1967 +msgid "" +"Failed to locate the configured default terminal application required by " +"CodeLite, please install it or check your configuration!" +msgstr "定位 Codelite 已配置的默认终端程序失败,请安装它或者检查您的配置!" -#: LiteEditor/outputtabwindow.cpp:196 -msgid "Keep open" -msgstr "保持打开" +#: LiteEditor/manager.cpp:2030 +msgid "Failed to launch debugger '" +msgstr "无法启动调试器“" -#: LiteEditor/outputtabwindow.cpp:202 LiteEditor/outputtabwindow.cpp:204 -msgid "Scroll on Output" -msgstr "滚动输出" +#: LiteEditor/manager.cpp:2030 +msgid "': debugger not loaded\n" +msgstr "”:调试器无法加载\n" -#: LiteEditor/outputtabwindow.cpp:209 LiteEditor/outputtabwindow.cpp:211 -msgid "Word Wrap" -msgstr "自动换行" +#: LiteEditor/manager.cpp:2031 +msgid "" +"Make sure that you have an open workspace and that the active project is of " +"type 'Executable'" +msgstr "请确认您已打开工作区,并且活动项目的类型是”可执行“" -#: LiteEditor/outputtabwindow.cpp:215 LiteEditor/outputtabwindow.cpp:217 -#: LiteEditor/tabgroupbasedlgs.cpp:114 -msgid "Clear All" -msgstr "全部清除" +#: LiteEditor/manager.cpp:2080 +msgid "Could not find project configuration!\n" +msgstr "无法找到项目配置!\n" -#: LiteEditor/outputtabwindow.cpp:220 LiteEditor/outputtabwindow.cpp:222 -msgid "Find..." -msgstr "查找..." +#: LiteEditor/manager.cpp:2081 +msgid "Make sure that everything is set properly in your project settings" +msgstr "请确定您项目设置中的所有设置项都是设置正确的" -#: LiteEditor/outputtabwindow.cpp:225 LiteEditor/outputtabwindow.cpp:227 -msgid "Fold All Results" -msgstr "折叠全部结果" +#: LiteEditor/manager.cpp:2146 LiteEditor/frame.cpp:4649 +msgid "Debugging: " +msgstr "调试中:" -#: LiteEditor/outputtabwindow.cpp:229 LiteEditor/outputtabwindow.cpp:231 -msgid "Repeat" -msgstr "重复" +#: LiteEditor/manager.cpp:2148 +msgid "Could not launch terminal for debugger" +msgstr "无法启动调试器的终端" -#: LiteEditor/AccelTableBaseDlg.h:65 -msgid "Keyboard Shortcuts:" -msgstr "键盘快捷键:" +#: LiteEditor/manager.cpp:2188 LiteEditor/manager.cpp:2199 +msgid "Failed to initialize debugger: " +msgstr "初始化调试器失败:" -#: LiteEditor/envvar_table.cpp:175 -#, c-format -msgid "Failed to open file: '%s' for write" -msgstr "打开文件失败:’%s‘为写" +#: LiteEditor/manager.cpp:2228 +msgid "Debug session started successfully!\n" +msgstr "成功启动调试会话!\n" -#: LiteEditor/envvar_table.cpp:207 -#, c-format -msgid "Environment exported to: '%s' successfully" -msgstr "环境导出到: '%s' 成功" +#: LiteEditor/manager.cpp:2327 +msgid "Debug session ended\n" +msgstr "调试会话结束\n" -#: LiteEditor/quickfindbarbase.cpp:48 -msgid "Find:" -msgstr "查找:" +#: LiteEditor/manager.cpp:2536 LiteEditor/manager.cpp:2539 +msgid "Program Received signal " +msgstr "程序收到信号" -#: LiteEditor/quickfindbarbase.cpp:53 -msgid "Hit ENTER to search, or Shift + ENTER to search backward" -msgstr "按 ENTER 进行搜索,或 Shift + ENTER 向后搜索" +#: LiteEditor/manager.cpp:2540 +msgid "Stack trace is available in the 'Call Stack' tab\n" +msgstr "堆栈跟踪可用于”调用栈“标签\n" -#: LiteEditor/quickfindbarbase.cpp:63 -msgid "Find Next" -msgstr "查找下一个" +#: LiteEditor/manager.cpp:2572 +msgid "" +"Assertion failed!\n" +"Stack trace is available in the 'Call Stack' tab\n" +msgstr "" +"声明失败!\n" +"在“调用栈”标签中堆栈跟踪是可用的\n" -#: LiteEditor/quickfindbarbase.cpp:65 -msgid "Find Previous" -msgstr "查找上一个" +#: LiteEditor/manager.cpp:2604 +#, c-format +msgid "" +"Debugger exited with the following error string:\n" +"%s" +msgstr "" +"调试器退出错误:\n" +"%s" -#: LiteEditor/quickfindbarbase.cpp:67 -msgid "Highlight matches" -msgstr "高亮匹配" +#: LiteEditor/manager.cpp:2625 +msgid "Continuing...\n" +msgstr "继续...\n" -#: LiteEditor/quickfindbarbase.cpp:70 -msgid "Replace:" -msgstr "替换:" - -#: LiteEditor/quickfindbarbase.cpp:83 -msgid "Replace Selection" -msgstr "替代选择" +#: LiteEditor/manager.cpp:2849 LiteEditor/manager.cpp:2900 +#: LiteEditor/manager.cpp:2939 +msgid "This would terminate the current debug session, continue?" +msgstr "这将结束当前的调试会话,继续?" -#: LiteEditor/quickfindbarbase.cpp:96 -#: CodeFormatter/codeformatterdlgbase.cpp:126 -msgid "Case" -msgstr "匹配大小写" +#: LiteEditor/manager.cpp:2864 +msgid "Preprocess File" +msgstr "预处理文件" -#: LiteEditor/quickfindbarbase.cpp:98 -msgid "Use case sensitive match" -msgstr "启用区分大小写" +#: LiteEditor/manager.cpp:2864 +msgid "Compile Single File" +msgstr "编译单个文件" -#: LiteEditor/quickfindbarbase.cpp:102 -msgid "Word" -msgstr "匹配整字" +#: LiteEditor/manager.cpp:3452 +msgid "Retagging..." +msgstr "重建标签文件..." -#: LiteEditor/quickfindbarbase.cpp:104 -msgid "Match a whole word only" -msgstr "匹配整字" +#: LiteEditor/manager.cpp:3623 +msgid "Generating compile_commands.json file..." +msgstr "正在生成 compile_commands.json 文件..." -#: LiteEditor/quickfindbarbase.cpp:108 -msgid "Regexp" -msgstr "正则表达式" +#: LiteEditor/manager.cpp:3671 +msgid "" +"Build cancelled. The following compilers referred by the workspace could not " +"be found:\n" +msgstr "构建被取消。找不到下面该工作区中使用的编译器: \n" -#: LiteEditor/quickfindbarbase.cpp:110 -msgid "Use regular expression" -msgstr "启用正则表达式" +#: LiteEditor/manager.cpp:3672 +msgid "Please fix your project settings by selecting a valid compiler" +msgstr "请选择一个有效的编译器来修复您的项目设置" -#: LiteEditor/quickfindbarbase.cpp:114 -msgid "Wildcard" -msgstr "通配符" +#: LiteEditor/manager.cpp:3690 +msgid "" +"Compilers updated successfully!\n" +"You can now build your workspace" +msgstr "" +"编译器已成功更新!\n" +"您现在可以构建您的工作区了" -#: LiteEditor/quickfindbarbase.cpp:116 -msgid "Use wildcard syntax (* and ?)" -msgstr "使用统配字符(* 和 ?)" +#: LiteEditor/compiler_pages.cpp:36 +msgid "Switch:" +msgstr "开关:" -#: LiteEditor/advanced_settings.cpp:72 -msgid "Create New Compiler:" -msgstr "创建新的编译器:" +#: LiteEditor/compiler_pages.cpp:47 +msgid "Help:" +msgstr "帮助:" -#: LiteEditor/advanced_settings.cpp:87 -msgid "Compilers" -msgstr "编译器" +#: LiteEditor/compiler_pages.cpp:108 +msgid "Regex Pattern:" +msgstr "正则表达式:" -#: LiteEditor/advanced_settings.cpp:93 -msgid "Build Output Appearance" -msgstr "构建输出的外观" +#: LiteEditor/compiler_pages.cpp:113 +msgid "Compiler regular expression" +msgstr "编译器正则表达式" -#: LiteEditor/advanced_settings.cpp:96 -msgid "Build Systems" -msgstr "构建系统" +#: LiteEditor/compiler_pages.cpp:120 +msgid "File Index in Pattern:" +msgstr "模式中的文件索引:" -#: LiteEditor/advanced_settings.cpp:231 -msgid "A compiler with this name already exists" -msgstr "同名编译器已存在" +#: LiteEditor/compiler_pages.cpp:125 +msgid "The capture index in the regex that holds the file path" +msgstr "正则表达式中的捕捉索引可以保存文件路径" -#: LiteEditor/advanced_settings.cpp:255 git/gitui.cpp:34 -msgid "Tools" -msgstr "工具" +#: LiteEditor/compiler_pages.cpp:132 +msgid "Line Number in Pattern:" +msgstr "模式中的行号:" -#: LiteEditor/advanced_settings.cpp:259 -msgid "Patterns" -msgstr "模式" +#: LiteEditor/compiler_pages.cpp:137 +msgid "The capture index in the regex that holds the line number" +msgstr "正则表达式中的捕捉索引可以保存行号" + +#: LiteEditor/compiler_pages.cpp:144 +msgid "Column Index in Pattern:" +msgstr "列索引模式:" + +#: LiteEditor/compiler_pages.cpp:149 +msgid "The capture index in the regex that holds the column number" +msgstr "正则表达式中的捕捉索引可以保存列数" -#: LiteEditor/advanced_settings.cpp:263 -#: CodeFormatter/codeformatterdlgbase.cpp:116 -msgid "Switches" -msgstr "开关" +#: LiteEditor/compiler_pages.cpp:206 +msgid "New compiler name:" +msgstr "新编译器名称:" -#: LiteEditor/advanced_settings.cpp:267 -msgid "File Types" -msgstr "文件类型" +#: LiteEditor/compiler_pages.cpp:218 +msgid "Copy settings from:" +msgstr "复制设置来自:" -#: LiteEditor/advanced_settings.cpp:286 -msgid "Remove Compiler?" -msgstr "移除编译器?" +#: LiteEditor/compiler_pages.cpp:268 +msgid "Add Compilers" +msgstr "添加编译器" -#: LiteEditor/advanced_settings.cpp:306 -msgid "Are you sure you want to revert to the default settings?" -msgstr "您确定要恢复到默认设置吗?" +#: LiteEditor/compiler_pages.cpp:306 +msgid "C++ Compiler" +msgstr "C++ 编译器" -#: LiteEditor/dbgcommandbasedlg.cpp:25 -msgid "Type:" -msgstr "类型:" +#: LiteEditor/compiler_pages.cpp:307 +msgid "" +"The C++ compiler path (plus optional flags). This tool is represented in the " +"Makefile as $(CXX)" +msgstr "C++ 的编译器路径(加上可选的标记),该工具在 Makefile 中被书写为 $(CXX)" -#: LiteEditor/dbgcommandbasedlg.cpp:32 -msgid "Expression:" -msgstr "表达式:" +#: LiteEditor/compiler_pages.cpp:310 +msgid "C Compiler" +msgstr "C 编译器" -#: LiteEditor/dbgcommandbasedlg.cpp:39 -msgid "Debugger command:" -msgstr "调试器命令:" +#: LiteEditor/compiler_pages.cpp:311 +msgid "" +"The C++ compiler path (plus optional flags). This tool is represented in the " +"Makefile as $(CC)" +msgstr "C++ 的编译器路径(加上可选的标记),该工具在 Makefile 中被书写为 $(CC)" -#: LiteEditor/depends_dlg.h:63 -msgid "Build Order" -msgstr "构建顺序" +#: LiteEditor/compiler_pages.cpp:314 +msgid "Assembler Name" +msgstr "汇编器名称" -#: LiteEditor/AccelTableBaseDlg.cpp:37 -msgid "Type here to find an entry by its action" -msgstr "通过操作查找项" +#: LiteEditor/compiler_pages.cpp:315 +msgid "The assembler tool path. This tool is referred in the Makefile as $(AS)" +msgstr "汇编器路径,该工具在 Makefile 中被书写为 $(AS)" -#: LiteEditor/AccelTableBaseDlg.cpp:53 -msgid "&Edit..." -msgstr "编辑(&E)..." +#: LiteEditor/compiler_pages.cpp:319 +msgid "The linker tool. Usually similar to the 'C++ Compiler' tool path" +msgstr "链接器工具,通常与“C++ 编译器”的工具路径是相似的" -#: LiteEditor/AccelTableBaseDlg.cpp:57 -msgid "&Defaults" -msgstr "缺省(&D)" +#: LiteEditor/compiler_pages.cpp:322 +msgid "Shared Object Linker" +msgstr "已共享对象链接" -#: LiteEditor/editorsettingsbookmarkspanel.cpp:40 -msgid "Small Rectangle" -msgstr "小矩形" +#: LiteEditor/compiler_pages.cpp:323 +msgid "The tool to create shared objects" +msgstr "该工具可以创建共享对象" -#: LiteEditor/editorsettingsbookmarkspanel.cpp:40 -msgid "Rounded Rectangle" -msgstr "圆角矩形" +#: LiteEditor/compiler_pages.cpp:326 +msgid "Archive" +msgstr "归档工具" -#: LiteEditor/editorsettingsbookmarkspanel.cpp:40 -msgid "Circle" -msgstr "圆圈" +#: LiteEditor/compiler_pages.cpp:327 +msgid "" +"The static archive tool \"ar\". This tool is referred in the Makefile as " +"$(AR)" +msgstr "静态归档工具 \"ar\",该工具在 Makefile 中被书写为 $(AR)" -#: LiteEditor/editorsettingsbookmarkspanel.cpp:40 -msgid "Small Arrow" -msgstr "小箭头" +#: LiteEditor/compiler_pages.cpp:330 +msgid "Resource Compiler" +msgstr "资源编译器" -#: LiteEditor/compilercompileroptionspage.h:80 -msgid "Compiler option" -msgstr "编译器选项" +#: LiteEditor/compiler_pages.cpp:331 +msgid "The resource compiler. (Windows only)" +msgstr "资源编译器。(仅 Windows)" -#: LiteEditor/tabgroupspane.cpp:245 -msgid "I'm afraid that tabgroup no longer exists :/" -msgstr "标签组恐怕不存在:/" +#: LiteEditor/compiler_pages.cpp:334 +msgid "Make" +msgstr "Make" -#: LiteEditor/tabgroupspane.cpp:261 +#: LiteEditor/compiler_pages.cpp:335 msgid "" -"Do you want to replace the existing editors? (Say 'No' to load the new ones " -"alongside)" -msgstr "您是否要替换现有编辑器?(选择“否”会在旁边加载一个新的)" - -#: LiteEditor/tabgroupspane.cpp:262 -msgid "Load the tabgroup" -msgstr "加载标签组" +"The Make tool. on Windows / MinGW this is usually mingw32-make.exe while on " +"other OSs its simply 'make'" +msgstr "" +"Make 工具,在 Windows / MinGW 中它通常是 mingw32-make.exe,但在其他操作系统中" +"它只是简单的“make”" -#: LiteEditor/tabgroupspane.cpp:287 -msgid "I'm afraid that tabgroup item no longer exists :/" -msgstr "标签组项恐怕不再存在:/" +#: LiteEditor/compiler_pages.cpp:338 +msgid "mkdir" +msgstr "mkdir" -#: LiteEditor/tabgroupspane.cpp:309 -msgid "&Add a new item to this tabgroup" -msgstr "添加新项到此标签组(&A)" +#: LiteEditor/compiler_pages.cpp:339 +msgid "" +"Set the 'mkdir' for your OS.\n" +"Leave it empty to use the defualt for your OS" +msgstr "" +"为您的系统设置“mkdir”。\n" +"留空就表示在您的系统中使用默认设置" -#: LiteEditor/tabgroupspane.cpp:311 LiteEditor/tabgroupspane.cpp:320 -msgid "&Paste an item into this tabgroup" -msgstr "粘贴项到此标签组(&P)" +#: LiteEditor/compiler_pages.cpp:342 +msgid "Gdb" +msgstr "Gdb" -#: LiteEditor/tabgroupspane.cpp:314 -msgid "Du&plicate this tabgroup" -msgstr "复制此标签组(&p)" +#: LiteEditor/compiler_pages.cpp:343 +msgid "" +"On various platform (e.g. Cygwin) it is recommended to use their own sepcial " +"gdb executable rather than the global one\n" +"You can specify one here, or leave this empty to use the default" +msgstr "" +"在不同的平台上(如 Cygwin)它们通常推荐使用自己专用的 gdb 可执行程序而不是全局" +"设置中的\n" +"您可以在这里指定一个,或留空来使用默认设置" -#: LiteEditor/tabgroupspane.cpp:315 -msgid "&Delete this tabgroup" -msgstr "删除此标签组(&D)" +#: LiteEditor/compiler_pages.cpp:347 +msgid "Patterns" +msgstr "模式" -#: LiteEditor/tabgroupspane.cpp:317 -msgid "&Copy this item, to be pasted to another tabgroup" -msgstr "复制此项以便粘贴到其它标签组(&C)" +#: LiteEditor/compiler_pages.cpp:356 +msgid "Compiler Errors Patterns:" +msgstr "编译器错误模式:" -#: LiteEditor/tabgroupspane.cpp:318 -msgid "Cu&t this item, to be pasted to another tabgroup" -msgstr "剪切次项以便粘贴到其它标签组(&t)" +#: LiteEditor/compiler_pages.cpp:373 +msgid "Add new error pattern" +msgstr "添加新的错误类型" -#: LiteEditor/tabgroupspane.cpp:322 -msgid "&Remove this item from the tabgroup" -msgstr "从此标签组中移除此项(&R)" +#: LiteEditor/compiler_pages.cpp:378 +msgid "Delete the selected error pattern" +msgstr "删除已选择错误类型" -#: LiteEditor/tabgroupspane.cpp:407 -msgid "There is already a file with this name. Overwrite it?" -msgstr "同名文件已存在。覆盖?" +#: LiteEditor/compiler_pages.cpp:383 +msgid "Edit the selected error pattern" +msgstr "编辑已选择的错误模式" -#: LiteEditor/tabgroupspane.cpp:408 -msgid "Overwrite?" -msgstr "覆盖?" +#: LiteEditor/compiler_pages.cpp:391 +msgid "Compiler Warnings Patterns:" +msgstr "编译器警告模式:" -#: LiteEditor/tabgroupspane.cpp:416 -msgid "Tabgroup renamed" -msgstr "标签主已重命名" +#: LiteEditor/compiler_pages.cpp:408 +msgid "Add new warning pattern" +msgstr "添加新的警告类型" -#: LiteEditor/tabgroupspane.cpp:475 -msgid "What is the filepath to use for the new tabgroup item?" -msgstr "新标签组项的文件路径?" - -#: LiteEditor/tabgroupspane.cpp:475 -msgid "Add a new tabgroup item" -msgstr "添加新的标签组项" +#: LiteEditor/compiler_pages.cpp:413 +msgid "Delete the selected warning pattern" +msgstr "删除选定的警告模式" -#: LiteEditor/tabgroupspane.cpp:481 -msgid "That filepath doesn't seem to exist. Are you sure?" -msgstr "此文件路径不存在。请确认?" +#: LiteEditor/compiler_pages.cpp:418 +msgid "Edit the selected warning pattern" +msgstr "编辑已选择的警告模式" -#: LiteEditor/tabgroupspane.cpp:550 -msgid "Failed to load the destination tabgroup :/" -msgstr "无法加载目标标签组:/" +#: LiteEditor/compiler_pages.cpp:428 LiteEditor/compiler_pages.cpp:459 +#: LiteEditor/compiler_pages.cpp:490 LiteEditor/compiler_pages.cpp:504 +msgid "Double click on an entry to modify it:" +msgstr "双击一项进行修改:" -#: LiteEditor/tabgroupspane.cpp:557 -msgid "" -"There is already an item with this filepath in the tabgroup. Overwrite it?" -msgstr "标签组已存在同文件路径项,覆盖?" +#: LiteEditor/compiler_pages.cpp:499 +msgid "File Types" +msgstr "文件类型" -#: LiteEditor/tabgroupspane.cpp:594 -msgid "Tabgroup item pasted" -msgstr "标签组项已粘贴" +#: LiteEditor/compiler_pages.cpp:546 +msgid "Global Paths" +msgstr "全局路径" -#: LiteEditor/tabgroupspane.cpp:618 -#, c-format -msgid "Delete tabgroup %s?" -msgstr "删除标签组 %s?" +#: LiteEditor/compiler_pages.cpp:557 +msgid "Include Path:" +msgstr "包含路径:" -#: LiteEditor/tabgroupspane.cpp:633 -msgid "Tabgroup deleted" -msgstr "标签组已删除" +#: LiteEditor/compiler_pages.cpp:562 +msgid "" +"Set here an additional include paths. Each path should be separated with a " +"semi-colon\n" +"Note that usually you don't need to modify this field and it should be left " +"empty" +msgstr "" +"在这里设置一个附加的 include 路径。每个路径应该用分号分隔\n" +"注意,通常您不需要修改这个字段并且它应该是空的" -#: LiteEditor/tabgroupspane.cpp:653 -msgid "What name to you want to give the duplicated tabgroup?" -msgstr "复制标签组为?" +#: LiteEditor/compiler_pages.cpp:573 +msgid "Libraries Path:" +msgstr "库路径:" -#: LiteEditor/tabgroupspane.cpp:653 -msgid "Duplicate a tabgroup" -msgstr "复制标签组" +#: LiteEditor/compiler_pages.cpp:578 +msgid "" +"Set here an additional library search paths. Each path should be separated " +"with a semi-colon\n" +"Note that usually you don't need to modify this field and it should be left " +"empty" +msgstr "" +"在这里设置一个附加的 library 搜索路径。每个路径应该用分号分隔\n" +"注意,通常您不需要修改这个字段并且它应该是空的" -#: LiteEditor/tabgroupspane.cpp:660 -msgid "Sorry, there is already a tabgroup with this name" -msgstr "对不起,已存在此名称标签组" +#: LiteEditor/compiler_pages.cpp:600 +msgid "Objects extension:" +msgstr "对象扩展名:" -#: LiteEditor/tabgroupspane.cpp:665 -msgid "Sorry, duplication of the tabgroup failed :/" -msgstr "对不起,无法复制此标签组:/" +#: LiteEditor/compiler_pages.cpp:613 +msgid "Depends extension:" +msgstr "依赖文件扩展名:" -#: LiteEditor/tabgroupspane.cpp:670 -msgid "Tabgroup duplicated" -msgstr "标签组已复制" +#: LiteEditor/compiler_pages.cpp:626 +msgid "Preprocessed extension:" +msgstr "预处理扩展名:" -#: LiteEditor/tabgroupspane.cpp:726 -msgid "Tabgroup item copied" -msgstr "标签组项已复制" +#: LiteEditor/compiler_pages.cpp:641 +msgid "Generate dependencies files (*.o.d)" +msgstr "生成依赖文件(*.o.d)" -#: LiteEditor/tabgroupspane.cpp:757 -#, c-format -msgid "Remove item %s from %s?" -msgstr "从 %s 移除项目 %s 吗?" +#: LiteEditor/compiler_pages.cpp:650 +msgid "Object name is same as the file name" +msgstr "对象名称与文件名称是一样的" -#: LiteEditor/tabgroupspane.cpp:772 -msgid "Tabgroup item Cut" -msgstr "剪切标签组项" +#: LiteEditor/compiler_pages.cpp:652 +msgid "" +"By default, codelite will prepend the relative directory to the file name to " +"compose an object name (e.g. src/a.cpp will generate object: src_a.o).\n" +"Uncheck this option to make the object name exactly as the file name without " +"any prefixes" +msgstr "" +"默认情况下,CodeLite 会预先考虑通过相关目录以及文件名称来构成一个目标文件名称" +"(例如 src/a.cpp 将生成目标:src_a.o)。\n" +"取消这个选项会省略目标文件名称的前缀来与文件名称保持一致" -#: LiteEditor/tabgroupspane.cpp:774 -msgid "Tabgroup item deleted" -msgstr "标签组项已删除" +#: LiteEditor/compiler_pages.cpp:660 +msgid "Pass object list to the linker via file" +msgstr "通过文件传递对象类表到链接器" -#: LiteEditor/tabgroupspane.cpp:781 -msgid "Failed to amend the tabgroup :/" -msgstr "无法修改标签组:/" +#: LiteEditor/close_all_dlg.cpp:67 +msgid "Ask me for each file" +msgstr "每个文件都询问我" -#: LiteEditor/movefuncimplbasedlg.cpp:22 -msgid "Select the file in which to place the function implementation:" -msgstr "选择放置函数实现的文件:" +#: LiteEditor/close_all_dlg.cpp:70 menu.xrc:41 +msgid "Save all files" +msgstr "保存全部文件" -#: LiteEditor/movefuncimplbasedlg.cpp:29 -msgid "Function implementation (you can edit the code below):" -msgstr "函数实现(您可以编辑下面的代码):" +#: LiteEditor/close_all_dlg.cpp:73 +msgid "Discard changes for all files" +msgstr "放弃全部文件的变更" -#: LiteEditor/reconcileprojectbase.cpp:33 -#: LiteEditor/reconcileprojectbase.cpp:40 git/GitConsole.cpp:290 -msgid "New Files" -msgstr "新建文件" +#: LiteEditor/close_all_dlg.cpp:83 +msgid "Some of the files are modified, what action should CodeLite take?" +msgstr "部分文件已修改,CodeLite 将进行什么操作?" -#: LiteEditor/reconcileprojectbase.cpp:40 +#: LiteEditor/reconcileprojectbase.cpp:42 msgid "" "Select files from the left pane and add them to the project by clicking on " "the right arrow button" msgstr "从左侧面板选择文件并通过右箭头按钮将它们添加到该项目中" -#: LiteEditor/reconcileprojectbase.cpp:70 +#: LiteEditor/reconcileprojectbase.cpp:72 msgid "" "These files have not yet been assigned a Virtual Directory. You can do this " "yourself by selecting one or more files and clicking the 'Forward' arrow " @@ -10670,86 +10727,92 @@ "selection(s) will be moved to the right-hand pane.\n" "Alternatively click the 'Wizard' button for best-guess auto-allocation." msgstr "" -"这些文件还没有被分配一个虚拟目录。你可以通过选择一个或多个文件,单击‘向前’箭" +"这些文件还没有被分配一个虚拟目录。你可以通过选择一个或多个文件,单击“向前”箭" "头按钮。然后将显示一个虚拟目录选择器。您之后的选择将会被转移到右侧面板中。\n" -"或者点击‘向导’按钮将自动按猜测进行分配。" +"或者点击“向导”按钮将自动按猜测进行分配。" -#: LiteEditor/reconcileprojectbase.cpp:74 +#: LiteEditor/reconcileprojectbase.cpp:76 msgid "Unassigned files:" msgstr "未指定文件:" -#: LiteEditor/reconcileprojectbase.cpp:86 +#: LiteEditor/reconcileprojectbase.cpp:88 msgid "Add selected files" msgstr "添加已选择的文件" -#: LiteEditor/reconcileprojectbase.cpp:91 +#: LiteEditor/reconcileprojectbase.cpp:93 msgid "Remove selected files" -msgstr "删除已选择的文件" +msgstr "移除选定文件" -#: LiteEditor/reconcileprojectbase.cpp:96 +#: LiteEditor/reconcileprojectbase.cpp:98 msgid "" "Wherever possible, automatically allocate files to the appropriate virtual " "directory" msgstr "只要有可能,将自动分配文件到适当的虚拟文件夹中" -#: LiteEditor/reconcileprojectbase.cpp:113 +#: LiteEditor/reconcileprojectbase.cpp:115 msgid "" "Each file here has been assigned a Virtual Directory. If you're happy with " "the choice, select the file and click 'Apply'. Otherwise select the file and " "use the 'back' button to return it to the Unassigned Files section." msgstr "" "每个文件已经被分配一个虚拟目录。如果您能愉快的接受这个建议,请选择这个文件并" -"点击‘应用’。否则,请选择文件并使用‘后退’按钮返回到指定的文件部分。" +"点击“应用”。否则,请选择文件并使用“后退”按钮返回到指定的文件部分。" -#: LiteEditor/reconcileprojectbase.cpp:121 +#: LiteEditor/reconcileprojectbase.cpp:123 msgid "Assigned files:" msgstr "指定文件:" -#: LiteEditor/reconcileprojectbase.cpp:122 +#: LiteEditor/reconcileprojectbase.cpp:124 msgid "Virtual Folder" msgstr "虚拟文件夹" -#: LiteEditor/reconcileprojectbase.cpp:127 +#: LiteEditor/reconcileprojectbase.cpp:129 +#: codelitephp/php-plugin/php_ui.cpp:891 msgid "&Apply" msgstr "应用(&A)" -#: LiteEditor/reconcileprojectbase.cpp:131 +#: LiteEditor/reconcileprojectbase.cpp:133 msgid "A&pply All" msgstr "应用到全部(&P)" -#: LiteEditor/reconcileprojectbase.cpp:136 -#: LiteEditor/reconcileprojectbase.cpp:143 +#: LiteEditor/reconcileprojectbase.cpp:138 +#: LiteEditor/reconcileprojectbase.cpp:145 msgid "Stale Files" msgstr "过期文件" -#: LiteEditor/reconcileprojectbase.cpp:143 +#: LiteEditor/reconcileprojectbase.cpp:145 msgid "" "The list below contains files that exist in the project but not on the file " "system" msgstr "下面列表中包含的文件存在于该项目中,但在文件系统中并不存在" -#: LiteEditor/reconcileprojectbase.cpp:154 +#: LiteEditor/reconcileprojectbase.cpp:156 msgid "" "The files listed below are contained in the project, but no longer exist in " "reality. You can select individual items and delete them from the project, " "or use the Delete All button." msgstr "" "以下列出的文件都包含在该项目中,但实际上它们是不存在的。您可以选择个别项并将" -"它们从项目中删除,或者使用‘删除全部’按钮。" +"它们从项目中删除,或者使用“删除全部”按钮。" -#: LiteEditor/reconcileprojectbase.cpp:162 +#: LiteEditor/reconcileprojectbase.cpp:164 msgid "File path" msgstr "文件路径" -#: LiteEditor/reconcileprojectbase.cpp:246 +#: LiteEditor/reconcileprojectbase.cpp:181 +#: LiteEditor/edit_workspace_conf_dlg.cpp:69 menu.xrc:49 +msgid "&Close" +msgstr "关闭(&C)" + +#: LiteEditor/reconcileprojectbase.cpp:260 msgid "Look for files starting with this directory:" -msgstr "从此目录开始查找文件:" +msgstr "启动时在这个目录查找文件:" -#: LiteEditor/reconcileprojectbase.cpp:258 +#: LiteEditor/reconcileprojectbase.cpp:272 msgid "Extensions to consider when looking for missing files:" msgstr "当查找丢失的文件时考虑文件扩展名:" -#: LiteEditor/reconcileprojectbase.cpp:263 +#: LiteEditor/reconcileprojectbase.cpp:277 msgid "" "A semi-colon separated list of extensions e.g. cpp;h;xrc\n" "If you really want to find all possible files, just add *" @@ -10757,30 +10820,30 @@ "扩展名使用分号分隔列表如 cpp;h;xrc\n" "如果您确实想要找到所有可能的文件,请添加 *" -#: LiteEditor/reconcileprojectbase.cpp:275 +#: LiteEditor/reconcileprojectbase.cpp:292 msgid "Files to ignore:" msgstr "忽略的文件:" -#: LiteEditor/reconcileprojectbase.cpp:283 +#: LiteEditor/reconcileprojectbase.cpp:300 msgid "" "Here you can add the names of any files that you want to ignore. Standard " "wildcards will work e.g. moc_*" msgstr "在这里您可以添加任何您想忽略的文件的名称。标准通配符是可用的如 moc_*" -#: LiteEditor/reconcileprojectbase.cpp:307 +#: LiteEditor/reconcileprojectbase.cpp:324 msgid "Paths to ignore:" msgstr "要忽略的路径:" -#: LiteEditor/reconcileprojectbase.cpp:315 +#: LiteEditor/reconcileprojectbase.cpp:332 msgid "" "The filepaths of any folders that shouldn't be searched for missing files" msgstr "丢失文件时不应搜索任意目录的文件路径" -#: LiteEditor/reconcileprojectbase.cpp:339 +#: LiteEditor/reconcileprojectbase.cpp:356 msgid "Regexs to use (optional):" -msgstr "使用的正则表达式(可选):" +msgstr "使用的正则表达式(可选):" -#: LiteEditor/reconcileprojectbase.cpp:346 +#: LiteEditor/reconcileprojectbase.cpp:363 msgid "" "Most of the time you should find that files automatically get added to the " "most appropriate virtual directory. If yours don't, here you can add one or " @@ -10790,218 +10853,357 @@ "大部分的时间你会发现自动添加文件到合适的虚拟目录。如果您不想这么做,在这里您" "可以添加一个或多个正则表达式来适用于您的情况。它们将会被这个项目记录。" -#: LiteEditor/reconcileprojectbase.cpp:427 +#: LiteEditor/reconcileprojectbase.cpp:449 msgid "Enter the regex:" msgstr "输入正则表达式:" -#: LiteEditor/reconcileprojectbase.cpp:439 +#: LiteEditor/reconcileprojectbase.cpp:464 msgid "Destination Virtual Directory:" msgstr "目标虚拟目录:" -#: LiteEditor/reconcileprojectbase.cpp:446 +#: LiteEditor/reconcileprojectbase.cpp:471 msgid "Select the virtual folder in which to place the matching files" -msgstr "选择要在其中放置匹配的文件的虚拟文件夹" +msgstr "选择匹配文件位置的虚拟文件夹" -#: LiteEditor/reconcileprojectbase.cpp:451 +#: LiteEditor/reconcileprojectbase.cpp:479 msgid "Browse for virtual folder" msgstr "浏览虚拟文件夹" -#: LiteEditor/workspacetab.cpp:44 -msgid "" -msgstr "<打开配置管理...>" +#: LiteEditor/acceltabledlg.cpp:184 +#, c-format +msgid "'%s' is already assigned to: '%s'" +msgstr "“%s”已分配给:“%s”" -#: LiteEditor/workspacetab.cpp:408 -msgid " Project Settings" -msgstr "项目设置" +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:35 +msgid "Docking" +msgstr "停靠" + +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:45 +msgid "Transparent hint" +msgstr "透明提示" -#: LiteEditor/new_virtual_folder.cpp:46 -msgid "Create the folder on the file system as well" -msgstr "在文件系统中创建文件夹" +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:46 +msgid "Rectangle hint" +msgstr "矩形提示" -#: LiteEditor/close_all_dlg.cpp:67 -msgid "Ask me for each file" -msgstr "每个文件都询问我" +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:47 +msgid "Venetian blinds hints" +msgstr "百叶窗提示" + +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:48 +msgid "Docking Style:" +msgstr "停靠风格:" + +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:54 +msgid "Glossy" +msgstr "光滑" + +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:55 +msgid "Curved" +msgstr "倒弧角" + +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:56 +msgid "Tab Control Style:" +msgstr "选项卡控件风格:" + +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:65 +msgid "Hide Docking Windows captions" +msgstr "隐藏对接窗口标题" + +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:70 +msgid "Ensure captions are visible on mouse hover" +msgstr "确保鼠标悬停时标题可见" + +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:72 +msgid "" +"When the option 'Hide Docking Windows captions' is enabled, ensure captions " +"are visible on mouse hover. This is useful so the user can still move around " +"the docking windows" +msgstr "" +"当启用“隐藏停靠窗口标题”选项时,确保鼠标悬停时标题可见。如此一来用户仍旧可以" +"移动停靠窗口" + +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:77 +msgid "Find / Find In Files" +msgstr "查找/在文件中查找" + +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:82 +msgid "Place the Find bar at the bottom" +msgstr "把查找栏置底" + +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:87 +msgid "Also show the 'Replace' section of the Find bar" +msgstr "同时显示查找栏的“替换”部分" + +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:89 +msgid "" +"When ticked, extra 'replace' fields will be added. You can also Show/Hide " +"these using a keyboard shortcut." +msgstr "" +"一旦勾选,临时“替换”字段将被添加。您也可以使用键盘快捷键来显示/隐藏这些字段。" + +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:93 +msgid "Don't automatically fold Search results" +msgstr "不要自动折叠搜索结果" + +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:95 +msgid "" +"By default, all but the first results of 'Search' are automatically folded; " +"you have to click on each subsequent file to see its contained matches. Tick " +"this box to prevent this.\n" +"You can still fold and unfold results with the button in the output pane " +"toolbar." +msgstr "" +"默认情况下,所有“搜索”结果的第一条会被自动折叠;您需要点击每个后续的文件来查" +"看它所包含的匹配。您可以勾选方框来避免这种情况。\n" +"在输出面板工具栏中你仍然可以通过这个按钮来折叠再还原结果。" + +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:100 +msgid "Debug / Output panes" +msgstr "调试/输出面板" + +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:109 +msgid "" +"When user clicks inside an editor, hide the output pane -- unless it's one " +"of:" +msgstr "当用户编辑器内点击时,隐藏输出面板" + +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:111 +msgid "" +"When e.g. you compile your project, or use 'Find in Files', the Output Pane " +"opens to show the results. If this box is ticked, it will automatically " +"close as soon as you click in the editor." +msgstr "" +"比如当您编译项目或者使用”在文件中查询“时,输出面板显示结果。当您在编辑器内点" +"击的时候,如果此面板被标记, 它将会尽快自动关闭。" + +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:123 +msgid "" +"Don't automatically close the Output Pane on an editor click if this tab is " +"showing e.g. you may not want it to close while you correct one of many " +"build errors." +msgstr "" +"当输出面板显示时,点击编辑器区域时不要自动关闭输出面板。例如,您可能不想在修" +"正许多构建错误中的一个时关闭面板。" + +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:129 +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:135 +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:141 +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:147 +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:153 +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:159 +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:165 +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:171 +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:177 +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:183 +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:189 +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:201 +msgid "" +"Don't automatically close the Output Pane on an editor click if this tab is " +"showing." +msgstr "当输出面板显示时,点击编辑器区域时不要自动关闭输出面板。" + +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:195 +msgid "" +"Don't automatically close the Debugger Pane on an editor click if this tab " +"is showing. You probably don't want it to close whenever you set a " +"breakpoint, for example." +msgstr "" +"当调试面板显示时,点击编辑器不要自动关闭调试器面板。例如,您可能不想在设置断" +"点时关闭面板。" -#: LiteEditor/close_all_dlg.cpp:73 -msgid "Discard changes for all files" -msgstr "放弃全部文件的更改" +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:205 +msgid "Show 'Debug' tab on starting the debugger" +msgstr "启动调试器时显示“调试”标签" -#: LiteEditor/close_all_dlg.cpp:83 -msgid "Some of the files are modified, what action should CodeLite take?" -msgstr "部分文件已修改,CodeLite 将进行什么操作?" +#: LiteEditor/editorsettingsdockingwindowsbase.cpp:207 +msgid "" +"When starting the debugger, if the Debug tab is not visible, checking this " +"will make it visible" +msgstr "当开始调试时,如果调试面板不可见,选择此项可以使之可见" -#: LiteEditor/WelcomePage.cpp:66 -msgid "Select file to open" -msgstr "选择要打开的文件" +#: LiteEditor/editorsettingscommentsbase.cpp:33 +msgid "" +"When adding new files to a project, place the files in the 'include' / 'src' " +"folders respectively" +msgstr "当添加新的文件到项目时,请把该文件放到 “include”或“src”文件夹" -#: LiteEditor/WelcomePage.cpp:85 -msgid "Open workspace" -msgstr "打开工作空间" +#: LiteEditor/editorsettingscommentsbase.cpp:42 +msgid "Comments:" +msgstr "注释:" -#: LiteEditor/manageperspectivesbasedlg.cpp:83 -msgid "Save the current layout as:" -msgstr "保存当前布局为:" +#: LiteEditor/editorsettingscommentsbase.cpp:55 +msgid "" +"Hitting in a C style comment automatically adds a '*' to the next " +"line" +msgstr "当在 C 风格注释里面敲击<回车键>时, 将自动添加“*”到新行" -#: LiteEditor/acceltabledlg.cpp:88 -msgid "Menu" -msgstr "菜单" +#: LiteEditor/editorsettingscommentsbase.cpp:60 +msgid "" +"Hitting in a C++ style comment section automatically adds a'//' to " +"the next line" +msgstr "当在 C++ 风格注释里面敲击<回车键>时,将自动添加“//”到新行" -#: LiteEditor/acceltabledlg.cpp:89 -msgid "Action" -msgstr "动作" +#: LiteEditor/editorsettingscommentsbase.cpp:69 +msgid "Code Navigation Accelerators:" +msgstr "代码导航加速器:" -#: LiteEditor/acceltabledlg.cpp:90 -msgid "Accelerator" -msgstr "快捷键" +#: LiteEditor/editorsettingscommentsbase.cpp:82 +msgid "Code navigation key:" +msgstr "代码导航键:" -#: LiteEditor/acceltabledlg.cpp:275 -#, c-format -msgid "'%s' is already assigned to: '%s'" -msgstr "'%s' 已分配给:'%s'" +#: LiteEditor/editorsettingscommentsbase.cpp:83 +msgid "" +"When using quick code navigation use this keys in combination with mouse " +"click\n" +"To quickly go to implementation / declaration" +msgstr "" +"当使用这个按键并结合鼠标单击来使用快速代码导航时\n" +"可以快速进行实现 / 声明" -#: LiteEditor/mainbook.cpp:229 -msgid "Save changes to '" -msgstr "保存更改到“" +#: LiteEditor/editorsettingscommentsbase.cpp:87 +msgid "Mouse Left Click +" +msgstr "鼠标左键单击 +" -#: LiteEditor/mainbook.cpp:462 -msgid "Untitled" -msgstr "无标题" +#: LiteEditor/editorsettingscommentsbase.cpp:91 +msgid "Ctrl" +msgstr "Ctrl" -#: LiteEditor/mainbook.cpp:750 -msgid "Reload Modified Files" -msgstr "重新加载修改的文件" +#: LiteEditor/newworkspacedlg.cpp:75 +msgid "Choose a folder:" +msgstr "选择一个文件夹:" -#: LiteEditor/mainbook.cpp:750 +#: LiteEditor/newworkspacedlg.cpp:81 msgid "" -"Files have been modified outside the editor.\n" -"Choose which files you would like to reload." +"'\n" +"Contains some invalid characters\n" +"Continue anyways?" msgstr "" -"文件已经被外部编辑器修改。\n" -"选择您想重新加载的文件。" - -#: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:42 -msgid "Show line numbers margin" -msgstr "显示行号页边" +"”\n" +"包含一些无效字符\n" +"是否继续?" -#: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:48 -msgid "Turn on indentation highlights guides (small vertical lines)" -msgstr "打开缩进高亮标记(小竖线)" +#: LiteEditor/newworkspacedlg.cpp:107 +msgid "Invalid path: " +msgstr "无效路径:" -#: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:52 -#: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:54 -msgid "Highlight matched braces" -msgstr "高亮匹配的括号" +#: LiteEditor/simpletable.cpp:95 +#: LiteEditor/debugger_predefined_types_page.cpp:37 +msgid "Expression" +msgstr "表达式" -#: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:58 -msgid "Auto Complete Curly Braces \"{\"" -msgstr "自动补全括号 \"{\"" +#: LiteEditor/simpletable.cpp:98 LiteEditor/debuggerpane.cpp:47 menu.xrc:601 +msgid "Watches" +msgstr "监视点" -#: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:60 -msgid "Auto add matching close brace" -msgstr "自动添加匹配的右括号" +#: LiteEditor/simpletable.cpp:129 LLDBDebugger/LLDBLocalsView.cpp:186 +msgid "Expression to watch:" +msgstr "表达式监视点:" -#: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:64 -msgid "Disable semicolon shift" -msgstr "禁用分号位置变换" +#: LiteEditor/simpletable.cpp:129 +msgid "New watch" +msgstr "新建监视点" -#: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:66 -msgid "Auto swap between semicolon and closing brace" -msgstr "自动交换分号与右括号" +#: LiteEditor/simpletable.cpp:255 +msgid "Update expression:" +msgstr "更新表达式:" -#: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:70 -msgid "Auto Complete Braces \"[(\"" -msgstr "自动补全括号 \"[(\"" +#: LiteEditor/simpletable.cpp:255 +msgid "Update Watch" +msgstr "更新监视点" -#: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:77 +#: LiteEditor/depend_dlg_page.cpp:42 +#, c-format msgid "" -"Hide / Display the change marker margin (red/green marks when line is " -"modified)" -msgstr "隐藏编辑页边距 (红色/绿色标志在已改动的行时)" - -#: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:81 -msgid "Auto Complete Double / Single Quotes" -msgstr "自动补全双/单引号" +"Build order for configuration '%s' has been modified, would you like to save " +"it?" +msgstr "配置“%s”的构建顺序已修改,您要保存吗?" -#: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:86 -msgid "Whitespaces:" -msgstr "空白:" +#: LiteEditor/filechecklistbase.cpp:46 +msgid "C&lear All" +msgstr "清理全部(&L)" -#: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:107 -msgid "Set the editor's EOL mode (End Of Line)" -msgstr "设置编辑器的 EOL 模式(End Of Line)" +#: LiteEditor/filechecklistbase.cpp:103 +msgid "" +"Some files were modified outside of the editor.\n" +"What would you like to do?" +msgstr "" +"文件已经被外部编辑器修改。\n" +"你想做些什么?" -#: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:117 -msgid "Caret line:" -msgstr "插入符号所在行" +#: LiteEditor/filechecklistbase.cpp:110 +msgid "Reload." +msgstr "重新加载。" -#: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:130 -msgid "Highlight the caret line" -msgstr "高亮光标所在行" +#: LiteEditor/filechecklistbase.cpp:110 +msgid "Reload all the externally modified files" +msgstr "重新加载所有外部修改的文件" -#: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:136 -msgid "Caret line background colour:" -msgstr "插入符号行背景颜色" +#: LiteEditor/filechecklistbase.cpp:114 +msgid "Choose." +msgstr "选择。" -#: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:144 -msgid "Debugger Marker:" -msgstr "调试器标记:" +#: LiteEditor/filechecklistbase.cpp:114 +msgid "Let me choose which file or files to reload" +msgstr "让我选择重新加载哪一个文件或哪些文件" -#: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:155 -msgid "Highlight debugger line" -msgstr "突出显示调试器行" +#: LiteEditor/filechecklistbase.cpp:119 +msgid "Ignore." +msgstr "忽略。" -#: LiteEditor/editoroptionsgeneralguidespanelbase.cpp:162 -msgid "Debugger line colour:" -msgstr "调试器行颜色:" +#: LiteEditor/filechecklistbase.cpp:119 +msgid "Don't reload any the externally modified files" +msgstr "不加载任何外部修改的文件" -#: LiteEditor/refactorindexbuildjob.cpp:55 -#: LiteEditor/refactorindexbuildjob.cpp:56 -msgid "Gathering required information..." -msgstr "收集所需的信息..." +#: LiteEditor/addincludefiledlgbase.h:70 +msgid "Add a missing header file" +msgstr "添加丢失的头文件" -#: LiteEditor/refactorindexbuildjob.cpp:65 -msgid "Parsing: " -msgstr "分析:" +#: LiteEditor/manageperspectivesbasedlg.cpp:56 +#: LiteEditor/rename_symbool_dlg.cpp:150 LiteEditor/edit_configuration.cpp:85 +#: LiteEditor/edit_workspace_conf_dlg.cpp:63 +msgid "&Rename" +msgstr "重命名(&R)" -#: LiteEditor/cl_editor.cpp:973 -msgid "Bookmark type" -msgstr "书签类型" +#: LiteEditor/manageperspectivesbasedlg.cpp:108 +msgid "Save the current layout as:" +msgstr "保存当前布局为:" -#: LiteEditor/cl_editor.cpp:1156 +#: LiteEditor/cl_editor.cpp:1209 msgid "Failed to save file" msgstr "保存文件失败" -#: LiteEditor/cl_editor.cpp:1199 +#: LiteEditor/cl_editor.cpp:1264 msgid "has the read-only attribute set" msgstr "拥有只读属性" -#: LiteEditor/cl_editor.cpp:1199 +#: LiteEditor/cl_editor.cpp:1265 msgid "Would you like CodeLite to try and remove it?" msgstr "您希望 CodeLite 尝试移除它?" -#: LiteEditor/cl_editor.cpp:1203 LiteEditor/cl_editor.cpp:1245 -#: LiteEditor/cl_editor.cpp:1251 +#: LiteEditor/cl_editor.cpp:1271 LiteEditor/cl_editor.cpp:1318 +#: LiteEditor/cl_editor.cpp:1329 msgid "Failed to open file" msgstr "打开文件失败" -#: LiteEditor/cl_editor.cpp:1203 LiteEditor/cl_editor.cpp:1245 -#: LiteEditor/cl_editor.cpp:1251 +#: LiteEditor/cl_editor.cpp:1273 LiteEditor/cl_editor.cpp:1320 +#: LiteEditor/cl_editor.cpp:1329 msgid "for write" msgstr "为写入" -#: LiteEditor/cl_editor.cpp:1245 +#: LiteEditor/cl_editor.cpp:1321 msgid "Override it?" msgstr "覆盖它?" -#: LiteEditor/cl_editor.cpp:1261 +#: LiteEditor/cl_editor.cpp:1342 msgid "Save file failed!" msgstr "保存文件失败!" -#: LiteEditor/cl_editor.cpp:1261 +#: LiteEditor/cl_editor.cpp:1343 msgid "Could not convert the file to the requested encoding" msgstr "不能转换文件为所请求的编码" -#: LiteEditor/cl_editor.cpp:1269 +#: LiteEditor/cl_editor.cpp:1353 msgid "" "File text conversion failed!\n" "Check your file font encoding from\n" @@ -11009,41 +11211,41 @@ msgstr "" "文本文件转换失败!\n" "请检查您的文件字型编码在\n" -"设置 | 全局编辑器首选项 | 其他 | 语言环境" +"设置 | 全局编辑器首选项 | 其他 | 语言环境 中" -#: LiteEditor/cl_editor.cpp:1285 +#: LiteEditor/cl_editor.cpp:1371 msgid "Failed to override read-only file" msgstr "覆盖只读文件失败" -#: LiteEditor/cl_editor.cpp:1925 LiteEditor/cl_editor.cpp:1960 +#: LiteEditor/cl_editor.cpp:1969 LiteEditor/cl_editor.cpp:2005 msgid "Can not find the string '" -msgstr "找不到字符串 '" +msgstr "找不到字符串“" -#: LiteEditor/cl_editor.cpp:2675 +#: LiteEditor/cl_editor.cpp:2713 msgid "Loading file..." msgstr "加载文件..." -#: LiteEditor/cl_editor.cpp:3096 +#: LiteEditor/cl_editor.cpp:3095 msgid "Remove Bookmark" msgstr "移除书签" -#: LiteEditor/cl_editor.cpp:3096 -msgid "Add Bookmark" -msgstr "添加书签" +#: LiteEditor/cl_editor.cpp:3096 LiteEditor/frame.cpp:5738 +msgid "Remove All Bookmarks" +msgstr "移除所有书签" -#: LiteEditor/cl_editor.cpp:3102 +#: LiteEditor/cl_editor.cpp:3101 msgid "Add Breakpoint" msgstr "添加断点" -#: LiteEditor/cl_editor.cpp:3103 +#: LiteEditor/cl_editor.cpp:3102 msgid "Add a Temporary Breakpoint" msgstr "添加临时断点" -#: LiteEditor/cl_editor.cpp:3104 +#: LiteEditor/cl_editor.cpp:3103 msgid "Add a Disabled Breakpoint" msgstr "添加已禁用的断点" -#: LiteEditor/cl_editor.cpp:3105 +#: LiteEditor/cl_editor.cpp:3104 msgid "Add a Conditional Breakpoint.." msgstr "添加条件断点.." @@ -11055,6838 +11257,7914 @@ msgid "Ignore Breakpoint" msgstr "忽略断点" -#: LiteEditor/cl_editor.cpp:3124 +#: LiteEditor/cl_editor.cpp:3125 msgid "Disable Breakpoint" msgstr "禁用断点" -#: LiteEditor/cl_editor.cpp:3124 +#: LiteEditor/cl_editor.cpp:3125 msgid "Enable Breakpoint" msgstr "启用断点" -#: LiteEditor/cl_editor.cpp:3125 +#: LiteEditor/cl_editor.cpp:3126 msgid "Edit Breakpoint" msgstr "编辑断点" -#: LiteEditor/cl_editor.cpp:3131 +#: LiteEditor/cl_editor.cpp:3132 msgid "Run to here" msgstr "运行到这里" -#: LiteEditor/cl_editor.cpp:3150 +#: LiteEditor/cl_editor.cpp:3157 msgid "Enter the condition statement" msgstr "输入条件语句" -#: LiteEditor/cl_editor.cpp:3150 +#: LiteEditor/cl_editor.cpp:3157 msgid "Create Conditional Breakpoint" msgstr "创建条件断点" -#: LiteEditor/cl_editor.cpp:3180 +#: LiteEditor/cl_editor.cpp:3191 msgid "Failed to insert breakpoint" msgstr "插入断点失败" -#: LiteEditor/cl_editor.cpp:3187 +#: LiteEditor/cl_editor.cpp:3196 LiteEditor/breakpointsmgr.cpp:121 +msgid "Breakpoint successfully added" +msgstr "添加断点成功" + +#: LiteEditor/cl_editor.cpp:3198 msgid "Temporary " msgstr "临时" -#: LiteEditor/cl_editor.cpp:3189 +#: LiteEditor/cl_editor.cpp:3200 msgid "Disabled " -msgstr "禁用" +msgstr "已禁用" -#: LiteEditor/cl_editor.cpp:3191 +#: LiteEditor/cl_editor.cpp:3202 msgid "Conditional " msgstr "条件" -#: LiteEditor/cl_editor.cpp:3217 +#: LiteEditor/cl_editor.cpp:3228 msgid "No breakpoint found on this line" msgstr "此行无断点" -#: LiteEditor/cl_editor.cpp:3220 +#: LiteEditor/cl_editor.cpp:3231 msgid "Breakpoint deletion failed" msgstr "删除断点失败" -#: LiteEditor/cl_editor.cpp:3223 +#: LiteEditor/cl_editor.cpp:3234 msgid "Breakpoint not deleted" msgstr "没有删除断点" -#: LiteEditor/cl_editor.cpp:3376 +#: LiteEditor/cl_editor.cpp:3387 msgid "More Watches" msgstr "更多监视点" -#: LiteEditor/cl_editor.cpp:3386 +#: LiteEditor/cl_editor.cpp:3398 msgid "Run to cursor" msgstr "运行到光标处" -#: LiteEditor/cl_editor.cpp:3391 +#: LiteEditor/cl_editor.cpp:3404 msgid "Jump to cursor" msgstr "跳转到光标处" -#: LiteEditor/cl_editor.cpp:3521 LiteEditor/cl_editor.cpp:3547 -#, c-format -msgid "" -"Too many matches found, displaying %u. Keep typing to narrow the choices\n" -"You can increase the number of displayed items from the menu: 'Settings | " -"Tags Settings'" -msgstr "" -"发现太多的匹配,显示 %u。请保持输入以缩小选择的范围\n" -"您可以从菜单:“设置 | 标签设置”中增加显示条目的数量" - -#: LiteEditor/cl_editor.cpp:4281 +#: LiteEditor/cl_editor.cpp:4327 msgid "Watch" msgstr "监视点" -#: LiteEditor/cl_editor.cpp:4281 +#: LiteEditor/cl_editor.cpp:4327 msgid "as" msgstr "为" -#: LiteEditor/buildorderbasepage.cpp:29 -msgid "Select build order for configuration:" -msgstr "为配置选择构建顺序:" - -#: LiteEditor/buildorderbasepage.cpp:44 -msgid "Projects:" -msgstr "项目:" - -#: LiteEditor/buildorderbasepage.cpp:57 -msgid "Build Order:" -msgstr "构建顺序:" - -#: LiteEditor/buildorderbasepage.cpp:78 -msgid "Up" -msgstr "向上" - -#: LiteEditor/buildorderbasepage.cpp:81 -msgid "Down" -msgstr "向下" - -#: LiteEditor/rename_symbool_dlg.cpp:32 -msgid "New Symbol Name:" -msgstr "新建符号名称:" - -#: LiteEditor/rename_symbool_dlg.cpp:57 -msgid "Location" -msgstr "位置" - -#: LiteEditor/rename_symbool_dlg.cpp:58 -msgid "Position" -msgstr "位置" - -#: LiteEditor/rename_symbool_dlg.cpp:63 LiteEditor/rename_symbool_dlg.cpp:188 -msgid "&Check All" -msgstr "全选(&C)" - -#: LiteEditor/rename_symbool_dlg.cpp:170 -msgid "Select Projects" -msgstr "选择项目" - -#: LiteEditor/rename_symbool_dlg.cpp:170 -msgid "Select the 'rename symbol' project scope" -msgstr "选择“重命名符号”项目范围" - -#: LiteEditor/BuildTabTopPanel.cpp:50 -msgid "Select a file" -msgstr "选择文件" - -#: LiteEditor/BuildTabTopPanel.cpp:60 -msgid "Saved build log to file:\n" -msgstr "保存生成日志到文件:\n" - -#: LiteEditor/compiler_pages.h:256 -msgid "New Compiler" -msgstr "新建编译器" - -#: LiteEditor/dbgcommandbasedlg.h:73 -msgid "Debugger Type" -msgstr "调试器类型" - -#: LiteEditor/tabgroupbasedlgs.cpp:25 -msgid "Select a tab group, or browse for one" -msgstr "选择一个标签组, 或浏览一个" - -#: LiteEditor/tabgroupbasedlgs.cpp:30 -msgid "Click to search for other groups" -msgstr "点击查询其它群体" - -#: LiteEditor/tabgroupbasedlgs.cpp:37 -msgid "Double-click to choose one of these groups" -msgstr "双击选择组中一个" - -#: LiteEditor/tabgroupbasedlgs.cpp:42 -msgid "Replace current tabs" -msgstr "替换当前标签" - -#: LiteEditor/tabgroupbasedlgs.cpp:43 -msgid "" -"By default, the tabs of this group will be added to the current tabs. Tick " -"this to replace the current tabs instead." -msgstr "默认情况下,此组标签将被添加到当前标签,勾选它以替换当前标签" - -#: LiteEditor/tabgroupbasedlgs.cpp:93 -msgid "Select which tabs you want to be in the group" -msgstr "选择哪些标签要在组" - -#: LiteEditor/tabgroupbasedlgs.cpp:109 -msgid "Check All" -msgstr "全选" - -#: LiteEditor/tabgroupbasedlgs.cpp:110 -msgid "Click to select all items" -msgstr "单击选择全部项" - -#: LiteEditor/tabgroupbasedlgs.cpp:115 -msgid "Click to clear all items" -msgstr "单击清除全部项" - -#: LiteEditor/tabgroupbasedlgs.cpp:129 -msgid "Choose a name for the group:" -msgstr "选择一个组名:" - -#: LiteEditor/shelltab.cpp:61 -msgid "Send:" -msgstr "发送:" - -#: LiteEditor/shelltab.cpp:72 -msgid "Send" -msgstr "发送" - -#: LiteEditor/shelltab.cpp:75 -msgid "Stop" -msgstr "停止" - -#: LiteEditor/shelltab.cpp:268 -msgid "Continuing..." -msgstr "继续..." - -#: LiteEditor/shelltab.cpp:291 -msgid "Enable debugger full logging" -msgstr "启用完整的调试记录" - -#: LiteEditor/importfilesdialog_new.cpp:31 -msgid "Select the directories to import from" -msgstr "选择要导入的目录" - -#: LiteEditor/importfilesdialog_new.cpp:38 -msgid "Select the base folder for importing" -msgstr "选择基本文件夹来导入" - -#: LiteEditor/importfilesdialog_new.cpp:44 -msgid "" -"Check the folders you wish to import\n" -"files from" -msgstr "" -"请检查您希望从中\n" -"导入文件的文件夹" - -#: LiteEditor/importfilesdialog_new.cpp:52 -msgid "Folder" -msgstr "目录" - -#: LiteEditor/importfilesdialog_new.cpp:53 -msgid "Import?" -msgstr "是否导入?" - -#: LiteEditor/importfilesdialog_new.cpp:54 -msgid "Files extension to import:" -msgstr "导入文件的扩展名:" - -#: LiteEditor/importfilesdialog_new.cpp:62 -msgid "Import files without extensions" -msgstr "不带扩展名的文件也导入" - -#: LiteEditor/importfilesdialog_new.cpp:64 -msgid "If you wish to import files without extensions, tick this option" -msgstr "如果您希望导入不带扩展名的文件,勾选此选项" +#: LiteEditor/cl_editor.cpp:4983 LiteEditor/cl_editor.cpp:5014 +msgid "Found and selected " +msgstr "找到并选择" + +#: LiteEditor/cl_editor.cpp:4983 LiteEditor/cl_editor.cpp:5014 +msgid " matches" +msgstr " 匹配" -#: LiteEditor/compilerlinkeroptionspage.h:62 -msgid "Linker option" -msgstr "链接器选项" +#: LiteEditor/edit_workspace_conf_dlg.h:65 +msgid "Edit Workspace Configuration" +msgstr "编辑工作区配置" -#: LiteEditor/breakpointpropertiesdlg.cpp:88 +#: LiteEditor/AccelTableBaseDlg.cpp:34 msgid "" -"You don't seem to have entered a variable for the watchpoint to watch. " -"Please try again." -msgstr "您没有为此监视点输入要监视的变量,请重试。" - -#: LiteEditor/breakpointpropertiesdlg.cpp:105 -msgid "The breakpoint's line-number is invalid. Please try again." -msgstr "无效的断点行号。请再试一次。" +"Search for a keyboard shortcut either by its keyboard shortcut or by its " +"description" +msgstr "通过键盘快捷键或描述来搜索一个键盘快捷命令" -#: LiteEditor/breakpointpropertiesdlg.cpp:105 -#: LiteEditor/breakpointpropertiesdlg.cpp:115 -msgid ":/" -msgstr "" +#: LiteEditor/AccelTableBaseDlg.cpp:53 +msgid "Menu" +msgstr "菜单" -#: LiteEditor/breakpointpropertiesdlg.cpp:115 -msgid "" -"You don't seem to have entered a name for the function. Please try again." -msgstr "您没有为函数输入名称,请重试。" +#: LiteEditor/AccelTableBaseDlg.cpp:54 +msgid "Keyboard Shortcut" +msgstr "键盘快捷键" -#: LiteEditor/breakpointpropertiesdlg.cpp:198 -msgid "" -"Sorry, you can't change a breakpoint to a watchpoint, or vice versa, while " -"the debugger is running" -msgstr "对不起,您不能在调试器运行时把断点改为监视点,反之亦然" +#: LiteEditor/AccelTableBaseDlg.cpp:59 +msgid "&Edit..." +msgstr "编辑(&E)..." -#: LiteEditor/breakpointpropertiesdlg.cpp:198 -msgid "Not possible" -msgstr "不可能" +#: LiteEditor/AccelTableBaseDlg.cpp:63 +msgid "&Defaults" +msgstr "默认(&D)" -#: LiteEditor/editoroptionsgeneralrightmarginpanelbase.cpp:20 -msgid "Disabled" -msgstr "已禁用" +#: LiteEditor/BuildTabTopPanel.cpp:85 +msgid "Saved build log to file:\n" +msgstr "保存构建日志到文件:\n" -#: LiteEditor/editoroptionsgeneralrightmarginpanelbase.cpp:27 -msgid "Background" -msgstr "背景" +#: LiteEditor/tasks_find_what_dlg.cpp:49 LiteEditor/breakpointslistctrl.h:43 +#: WordCompletion/UI.cpp:38 +msgid "Enabled" +msgstr "已启用" -#: LiteEditor/editoroptionsgeneralrightmarginpanelbase.cpp:38 -msgid "Indicator Column" -msgstr "指示列" +#: LiteEditor/tasks_find_what_dlg.cpp:50 +msgid "Task" +msgstr "任务" -#: LiteEditor/editoroptionsgeneralrightmarginpanelbase.cpp:42 -msgid "80" -msgstr "" +#: LiteEditor/tasks_find_what_dlg.cpp:76 +#, c-format +msgid "'%s' is not a valid regular expression" +msgstr "“%s”不是一个有效的正则表达式" -#: LiteEditor/editoroptionsgeneralrightmarginpanelbase.cpp:45 -msgid "Indicator Colour:" -msgstr "指示颜色:" +#: LiteEditor/tasks_find_what_dlg.cpp:91 +msgid "Are you sure you want to delete this entry?" +msgstr "您确定要删除这个条目吗?" -#: LiteEditor/plugindlgbase.h:54 -msgid "Manage Plugins:" -msgstr "管理插件:" +#: LiteEditor/tasks_find_what_dlg.cpp:110 +msgid "Edit Task" +msgstr "编辑任务" -#: LiteEditor/new_item_dlg.cpp:67 -msgid "File Type" -msgstr "文件类型" +#: LiteEditor/depends_dlg.h:57 +msgid "Build Order" +msgstr "构建顺序" -#: LiteEditor/new_item_dlg.cpp:183 -msgid "Missing location" -msgstr "缺少位置" +#: LiteEditor/options_base_dlg2.h:46 +msgid "Editor Settings" +msgstr "编辑器设置" -#: LiteEditor/new_item_dlg.cpp:189 -msgid "A file with that name already exists. Please choose a different name" -msgstr "同名文件已存在,请选择一个不同的名称" +#: LiteEditor/mainbook.cpp:244 +msgid "Save changes to '" +msgstr "保存变更到“" -#: LiteEditor/new_item_dlg.cpp:194 -msgid "Missing file name" -msgstr "缺少文件名" +#: LiteEditor/mainbook.cpp:474 +msgid "Untitled" +msgstr "无标题" -#: LiteEditor/editoroptionsgeneralindetationpanelbase.cpp:17 -msgid "Disable Smart Indentation" -msgstr "禁用智能缩进" +#: LiteEditor/mainbook.cpp:828 +msgid "Reload Modified Files" +msgstr "重新载入已修改的文件" -#: LiteEditor/editoroptionsgeneralindetationpanelbase.cpp:33 -#: LiteEditor/editoroptionsgeneralindetationpanelbase.cpp:40 -msgid "4" +#: LiteEditor/mainbook.cpp:829 +msgid "" +"Files have been modified outside the editor.\n" +"Choose which files you would like to reload." msgstr "" +"文件已经被外部编辑器修改。\n" +"选择您想要重新载入的文件。" -#: LiteEditor/newquickwatch.h:64 -msgid "Edit Item" -msgstr "编辑项目" +#: LiteEditor/mainbook.cpp:1086 +msgid "Please save your changes before marking the file as read only" +msgstr "将文件标记为只读之前,请保存您的更改" -#: LiteEditor/debuggersettingsbasedlg.h:47 -msgid "Debugger Settings" -msgstr "调试器设置" +#: LiteEditor/debuggerpane.cpp:48 menu.xrc:613 +#: codelitephp/php-plugin/php_ui.cpp:1171 +msgid "Call Stack" +msgstr "调用栈" -#: LiteEditor/debuggersettingsbasedlg.h:102 -msgid "Create a new 'PreDefined Types' set..." -msgstr "创建新的”预定义类型“集合..." +#: LiteEditor/debuggerpane.cpp:49 LiteEditor/debuggerpane.cpp:104 +#: LLDBDebugger/UI.cpp:134 menu.xrc:621 codelitephp/php-plugin/php_ui.cpp:1194 +#: codelitephp/php-plugin/php.cpp:651 +msgid "Breakpoints" +msgstr "断点" -#: LiteEditor/fileexplorer.cpp:75 -msgid "Goto Current Directory" -msgstr "转到当前目录" +#: LiteEditor/debuggerpane.cpp:50 menu.xrc:609 +msgid "Threads" +msgstr "线程" -#: LiteEditor/debugcoredumpbase.cpp:28 -msgid "Core dump to be opened:" -msgstr "核心转储被打开:" +#: LiteEditor/debuggerpane.cpp:51 LiteEditor/breakpointslistctrl.h:48 +#: menu.xrc:617 +msgid "Memory" +msgstr "内存" -#: LiteEditor/debugcoredumpbase.cpp:33 -msgid "" -"Enter the full filepath of the core dump to be examined.\n" -"Or, if you enter the correct working directory below, just the filename will " -"suffice." -msgstr "" -"输入核心转储的完整文件路径进行检查。\n" -"或者,如果您输入的是下列正确的工作目录,只需要填写文件名就可以了。" +#: LiteEditor/debuggerpane.cpp:52 +msgid "Ascii Viewer" +msgstr "ASCII 视图" -#: LiteEditor/debugcoredumpbase.cpp:40 -msgid "Corresponding executable:" -msgstr "对应的可执行文件:" +#: LiteEditor/debuggerpane.cpp:54 +msgid "Disassemble" +msgstr "反汇编" -#: LiteEditor/debugcoredumpbase.cpp:45 -msgid "" -"Enter the full filepath of the executable that crashed to cause the core " -"dump.\n" -"Or, if you enter the correct working directory below, just the filename will " -"suffice." -msgstr "" -"输入运行崩溃导致核心转储的可执行文件的完整路径。\n" -"或者,如果您输入的是下列正确的工作目录,只需要填写文件名就可以了。" +#: LiteEditor/editorsettingslocal.cpp:84 +msgid "Indentation only" +msgstr "仅缩进" -#: LiteEditor/debugcoredumpbase.cpp:52 -msgid "Working directory (optional):" -msgstr "工作目录(可选):" +#: LiteEditor/rename_symbool_dlg.cpp:58 +msgid "New Symbol Name:" +msgstr "新建符号名称:" -#: LiteEditor/findusagetab.cpp:74 -#, c-format -msgid "===== Finding references of '%s' =====\n" -msgstr "===== 正在查找引用 '%s' =====\n" +#: LiteEditor/rename_symbool_dlg.cpp:83 +msgid "Location" +msgstr "位置" -#: LiteEditor/findusagetab.cpp:128 -#, c-format -msgid "===== Found total of %u matches =====\n" -msgstr "===== 共发现 %u 个匹配 =====\n" +#: LiteEditor/rename_symbool_dlg.cpp:84 +msgid "Position" +msgstr "位置" -#: LiteEditor/newversionbasedlg.h:74 -msgid "A New version is available!" -msgstr "有新版本可用!" +#: LiteEditor/rename_symbool_dlg.cpp:89 LiteEditor/rename_symbool_dlg.cpp:215 +msgid "&Check All" +msgstr "全选(&A)" -#: LiteEditor/edit_workspace_conf_dlg.cpp:124 -msgid "Remove workspace configuration '" -msgstr "删除工作区配置 '" +#: LiteEditor/rename_symbool_dlg.cpp:196 +msgid "Select Projects" +msgstr "选择项目" -#: LiteEditor/edit_workspace_conf_dlg.cpp:137 -msgid "New Configuration Name:" -msgstr "新配置名称:" +#: LiteEditor/rename_symbool_dlg.cpp:196 +msgid "Select the 'rename symbol' project scope" +msgstr "选择“重命名符号”项目范围" -#: LiteEditor/attachdbgprocdlg.cpp:56 -msgid "PID" -msgstr "进程号" +#: LiteEditor/editcmpfileinfobase.cpp:50 +msgid "File type:" +msgstr "文件类型:" -#: LiteEditor/tags_options_base_dlg.h:126 -msgid "Tags Options" -msgstr "标签文件选项" +#: LiteEditor/editcmpfileinfobase.cpp:57 +msgid "Handle file has:" +msgstr "处理为:" -#: LiteEditor/context_cpp.cpp:561 -msgid "Open Include File \"" -msgstr "打开头文件 \"" +#: LiteEditor/editcmpfileinfobase.cpp:67 +msgid "Compilation line:" +msgstr "编译行:" -#: LiteEditor/context_cpp.cpp:576 -msgid "Add Forward Declaration for \"" -msgstr "添加前置声明为 \"" +#: LiteEditor/editcmpfileinfobase.cpp:85 +msgid "Help..." +msgstr "帮助..." -#: LiteEditor/context_cpp.cpp:580 -msgid "Add Include File for \"" -msgstr "添加头文件为 \"" +#: LiteEditor/syntaxhighlightbasedlg.h:197 +#: LiteEditor/buildsettingstabbase.cpp:37 +msgid "Colours and Fonts" +msgstr "颜色和字体" + +#: LiteEditor/syntaxhighlightbasedlg.h:226 +msgid "New Theme" +msgstr "新主题" -#: LiteEditor/context_cpp.cpp:677 -msgid "Select File to Include:" -msgstr "选择包含文件:" +#: LiteEditor/importfilesdialog_new.cpp:31 +msgid "Select the directories to import from" +msgstr "选择要导入的目录" -#: LiteEditor/context_cpp.cpp:677 -msgid "Add Include File" -msgstr "添加包含文件" +#: LiteEditor/importfilesdialog_new.cpp:38 +msgid "Select the base folder for importing" +msgstr "选择基本文件夹来导入" -#: LiteEditor/context_cpp.cpp:956 -msgid "Multiple candidates found. Select a file to open:" -msgstr "已发现多个候选项。选择一个文件来打开:" +#: LiteEditor/importfilesdialog_new.cpp:44 +msgid "" +"Check the folders you wish to import\n" +"files from" +msgstr "" +"检查你希望导入文件的文件夹\n" +"从" -#: LiteEditor/context_cpp.cpp:956 -msgid "Swap Header/Source Implementation" -msgstr "交换头/源的文件" +#: LiteEditor/importfilesdialog_new.cpp:53 +msgid "Folder" +msgstr "折叠" -#: LiteEditor/context_cpp.cpp:981 -msgid "No matched file was found, would you like to create one?" -msgstr "没有发现符合条件的文件,您想创建一个?" +#: LiteEditor/importfilesdialog_new.cpp:54 +msgid "Files extension to import (semicolon delimited):" +msgstr "导入文件的扩展名(用分号分隔):" -#: LiteEditor/context_cpp.cpp:1226 -msgid "This file does not seem to contain the declaration for '" -msgstr "此文件似乎不包含的声明 '" +#: LiteEditor/importfilesdialog_new.cpp:65 +msgid "Import files without extensions" +msgstr "不带扩展名的文件也导入" -#: LiteEditor/context_cpp.cpp:1227 -msgid "The declaration of '" -msgstr "声明 '" +#: LiteEditor/importfilesdialog_new.cpp:67 +msgid "If you wish to import files without extensions, tick this option" +msgstr "如果您希望导入不带扩展名的文件,勾选此选项" -#: LiteEditor/context_cpp.cpp:1227 -msgid "' is located at '" -msgstr "' 位于 '" +#: LiteEditor/attachdbgprocdlg.cpp:55 +msgid "PID" +msgstr "进程号" -#: LiteEditor/context_cpp.cpp:1228 -msgid "Would you like CodeLite to open this file for you?" -msgstr "您希望用CodeLite打开此文件吗?" +#: LiteEditor/messagepane_base.cpp:61 +msgid "Message:" +msgstr "消息:" -#: LiteEditor/context_cpp.cpp:1242 -msgid "Seems like you have all the getters/setters you need..." -msgstr "似乎有您所需要的 getters/setters ..." +#: LiteEditor/messagepane_base.cpp:73 +msgid "Remember my answer and don't annoy me again!" +msgstr "记住我的回答,不要再骚扰我!" -#: LiteEditor/context_cpp.cpp:1669 -msgid "Cant resolve scope properly. Found <" -msgstr "不能严格处理范围。发现 <" +#: LiteEditor/messagepane_base.cpp:77 +msgid "" +"If you don't want to be spammed by this message again, tick the box. You can " +"change your mind in Settings > Global Editor Preferences > Dialogs" +msgstr "" +"如您不想被此信息再次骚扰,勾选它。你可以改变您的决定通过设置 > 全局编辑偏好 " +"> 对话框" -#: LiteEditor/context_cpp.cpp:1769 -msgid "'Add Functions Implementation' can only work inside valid scope, got (" -msgstr "‘添加函数实现’仅在有效的范围内工作, 得到 (" +#: LiteEditor/messagepane_base.cpp:85 +msgid "Hide" +msgstr "隐藏" -#: LiteEditor/context_cpp.cpp:1778 -msgid "All your functions seems to have an implementation!" -msgstr "您所有的功能似乎已经实现!" +#: LiteEditor/findreplacedlg.cpp:52 +msgid "'Find What' is empty" +msgstr "“查找内容”为空" -#: LiteEditor/context_cpp.cpp:1875 -msgid "Function '" -msgstr "函数 '" +#: LiteEditor/close_all_dlg.h:67 menu.xrc:53 menu.xrc:710 menu.xrc:730 +msgid "Close All" +msgstr "全部关闭" -#: LiteEditor/context_cpp.cpp:1875 -msgid "' already has a body" -msgstr "‘ 已经拥有实体" +#: LiteEditor/tagsparsersearchpathsbasedlg.cpp:47 +msgid "" +"The following include paths were detected on your system and will be added " +"to your parser search path.\n" +"You may remove a path by unchecking it.\n" +"\n" +"You can always add/remove paths to the parser from the main menu:\n" +"Settings > Tags Settings > Parser" +msgstr "" +"在您的系统发现以下包含路径,这些路径将会添加到分析器的搜索路径。\n" +"您可以通过取消勾选来移除它。\n" +"\n" +"您也可以在主菜单中为分析器添加/移除路径:\n" +"设置 > 标签设置 > 包含文件" -#: LiteEditor/context_cpp.cpp:1895 -msgid "Add Function Implementation" -msgstr "添加函数实现" +#: LiteEditor/env_var_dlg_base.h:86 +msgid "Environment Variables" +msgstr "环境变量" -#: LiteEditor/context_cpp.cpp:2269 -msgid "No matches were found!" -msgstr "没有找到相匹配的内容!" +#: LiteEditor/FileExplorerTab.cpp:252 +msgid "' is a directory. Are you sure you want to remove it and its content?" +msgstr "”是一个文件夹。您确定要移除它以及它里面文件吗?" -#: LiteEditor/context_cpp.cpp:2269 LiteEditor/context_cpp.cpp:2273 -msgid "Refactoring local variable" -msgstr "重构局部变量" +#: LiteEditor/FileExplorerTab.cpp:253 LiteEditor/FileExplorerTab.cpp:255 +msgid "Remove Directory" +msgstr "移除目录" -#: LiteEditor/context_cpp.cpp:2273 -msgid "Insert New Variable Name:" -msgstr "插入新变量名:" +#: LiteEditor/FileExplorerTab.cpp:255 +msgid "Failed to remove directory" +msgstr "移除目录失败" -#: LiteEditor/context_cpp.cpp:2324 LiteEditor/context_cpp.cpp:3059 +#: LiteEditor/FileExplorerTab.cpp:362 +#, c-format msgid "" -"Refactoring engine is still caching workspace info. Try again in a few " -"seconds" -msgstr "重构引擎仍在缓存工作空间信息。几秒后再重试" - -#: LiteEditor/context_cpp.cpp:2414 -msgid "Symbol renamed" -msgstr "符号已重命名" +"Could not find default application for file '%s'\n" +"Would you like CodeLite to open it?" +msgstr "" +"没有找到文件"%s"的默认打开程序\n" +"是否使用 CodeLite 打开?" -#: LiteEditor/context_cpp.cpp:2426 -msgid "Please save the file before retagging it" -msgstr "请在重建标签文件前保存文件" +#: LiteEditor/findreplacedlg.h:187 LiteEditor/findreplacedlg.h:196 +msgid "Find / Replace" +msgstr "查找/替换" -#: LiteEditor/context_cpp.cpp:2734 -msgid "Select file to open:" -msgstr "选择要打开的文件:" +#: LiteEditor/advanced_settings.cpp:83 +msgid "Build Output Appearance" +msgstr "构建输出的外观" -#: LiteEditor/context_cpp.cpp:2748 -msgid "New File Name:" -msgstr "新文件名:" +#: LiteEditor/advanced_settings.cpp:86 +msgid "Build Systems" +msgstr "构建系统" -#: LiteEditor/context_cpp.cpp:2748 -msgid "Create File" -msgstr "创建文件" +#: LiteEditor/advanced_settings.cpp:143 +msgid "A compiler with this name already exists" +msgstr "同名的编译器已存在" -#: LiteEditor/context_cpp.cpp:3208 -msgid "Find Symbol" -msgstr "查找符号" +#: LiteEditor/advanced_settings.cpp:160 +msgid "Remove Compiler?" +msgstr "移除编译器?" -#: LiteEditor/context_cpp.cpp:3209 -msgid "Go to Declaration" -msgstr "转至声明" +#: LiteEditor/advanced_settings.cpp:187 +msgid "Add an existing compiler" +msgstr "添加现有的编译器" + +#: LiteEditor/advanced_settings.cpp:188 +msgid "Clone a compiler" +msgstr "克隆一个编译器" + +#: LiteEditor/advanced_settings.cpp:190 +msgid "Scan computer for installed compilers" +msgstr "扫描电脑中已安装编译器" + +#: LiteEditor/advanced_settings.cpp:249 +msgid "Select the compiler folder" +msgstr "选择编译器文件夹" + +#: LiteEditor/advanced_settings.cpp:260 +msgid "Set a name to the compiler" +msgstr "设置编译器的名字" + +#: LiteEditor/advanced_settings.cpp:260 +msgid "New compiler found!" +msgstr "已找到新编译器!" -#: LiteEditor/context_cpp.cpp:3210 -msgid "Go to Implementation" -msgstr "转至实现" +#: LiteEditor/batchbuildbasedlg.h:90 +msgid "Batch Build" +msgstr "批量构建" -#: LiteEditor/tabgroupdlg.cpp:68 -msgid "Select a tab group:" -msgstr "选择标签组:" +#: LiteEditor/debuggersettingsbasedlg.h:76 +msgid "Debugger Settings" +msgstr "调试器设置" -#: LiteEditor/tabgroupdlg.cpp:69 -msgid "Tab groups" -msgstr "标签组" +#: LiteEditor/debuggersettingsbasedlg.h:131 +msgid "Create a new 'PreDefined Types' set..." +msgstr "创建新的“预定义”类型集合..." -#: CMakePlugin/CMakeWorkspaceMenu.cpp:43 CMakePlugin/CMakeProjectMenu.cpp:47 -msgid "Open CMakeLists.txt" -msgstr "打开 CMakeLists.txt" +#: LiteEditor/attachdbgprocbasedlg.h:86 +msgid "Attach debugger to process:" +msgstr "连接调试器到进程:" -#: CMakePlugin/CMakeWorkspaceMenu.cpp:48 CMakePlugin/CMakeProjectMenu.cpp:52 -msgid "Export CMakeLists.txt" -msgstr "导出 CMakeLists.txt" +#: LiteEditor/findinfiles_dlg.cpp:54 +msgid "Find What :" +msgstr "查找内容:" -#: CMakePlugin/CMakePluginUi.h:50 -msgid "CMakePlugin Settings" -msgstr "CMakePlugin设置" +#: LiteEditor/findinfiles_dlg.cpp:60 +msgid "String to search" +msgstr "要搜索的字符串" -#: CMakePlugin/CMakePluginUi.cpp:36 -msgid "CMake program:" -msgstr "CMake 程序:" +#: LiteEditor/findinfiles_dlg.cpp:63 +msgid "Type a string to search..." +msgstr "输入要搜索的字符串..." -#: CMakePlugin/CMakePluginUi.cpp:41 -msgid "Path to cmake executable." -msgstr "qmake 可执行文件:" +#: LiteEditor/findinfiles_dlg.cpp:68 +msgid "Look in :" +msgstr "查找范围:" -#: CMakePlugin/CMakePluginUi.cpp:46 -msgid "Default Generator:" -msgstr "默认生成器:" +#: LiteEditor/findinfiles_dlg.cpp:103 +msgid "Remove the selected search path" +msgstr "移除选定的搜索路径" -#: CMakePlugin/CMakePluginUi.cpp:52 -msgid "" -"You can specify default generator for all projects (if is not overrided by " -"project settings). If generator is not selected the CMake uses platform's " -"default." -msgstr "" -"您可以为所有项目指定默认的生成器(如果没有被项目设置覆盖的话)。如果没有生成" -"器,那么 CMake 将使用平台默认的生成器。" +#: LiteEditor/findinfiles_dlg.cpp:112 +msgid "Clear the search path list" +msgstr "清除搜索路径列表" -#: CMakePlugin/CMakePluginUi.cpp:113 -msgid "Select Topic:" -msgstr "选择主题:" +#: LiteEditor/findinfiles_dlg.cpp:116 +msgid "File Mask:" +msgstr "文件掩码:" -#: CMakePlugin/CMakePluginUi.cpp:128 -msgid "Reloads Help from CMake" -msgstr "从 CMake 重新载入帮助" +#: LiteEditor/findinfiles_dlg.cpp:123 +msgid "Search these file types" +msgstr "搜索这些文件类型" -#: CMakePlugin/CMakePluginUi.cpp:153 -msgid "Double click to insert in the current editor." -msgstr "在当前编辑器中双击进行插入" +#: LiteEditor/findinfiles_dlg.cpp:131 +msgid "Files Encoding:" +msgstr "文件编码:" -#: CMakePlugin/CMakePluginUi.cpp:235 -msgid "Enable CMake for this project" -msgstr "为该项目启用 CMake" +#: LiteEditor/findinfiles_dlg.cpp:137 +msgid "Use this file encoding when scanning files for matches" +msgstr "扫描文件时要匹配此文件编码" -#: CMakePlugin/CMakePluginUi.cpp:247 -msgid "Parent project:" -msgstr "父项目:" +#: LiteEditor/findinfiles_dlg.cpp:162 +msgid "&Match case" +msgstr "匹配大小写(&M)" -#: CMakePlugin/CMakePluginUi.cpp:253 -msgid "" -"Allow you to specify parent project. Specify this when project is sub-" -"directory (see add_subdirectory) and it's built with the parent project." -msgstr "" -"允许您指定父项目。尤其是当前项目为子目录 (见 add_subdirectory)并且它是与父" -"项目一起建立的。" +#: LiteEditor/findinfiles_dlg.cpp:164 +msgid "Toggle case sensitive search" +msgstr "切换大小写敏感" -#: CMakePlugin/CMakePluginUi.cpp:257 -msgid "Sources directory:" -msgstr "源目录:" +#: LiteEditor/findinfiles_dlg.cpp:168 +msgid "Match &whole word" +msgstr "匹配整字(&W)" -#: CMakePlugin/CMakePluginUi.cpp:262 -msgid "Path to directory where CMakeLists.txt is located." -msgstr "CMakeLists.txt 所在的目录路径。" +#: LiteEditor/findinfiles_dlg.cpp:170 +msgid "Toggle whole word search" +msgstr "切换整字搜索" -#: CMakePlugin/CMakePluginUi.cpp:266 -msgid "Build directory:" -msgstr "构建目录:" +#: LiteEditor/findinfiles_dlg.cpp:174 +msgid "Regular &expression" +msgstr "正则表达式(&E)" -#: CMakePlugin/CMakePluginUi.cpp:271 -msgid "" -"Directory where the project will be built. Path is relative to " -"$(ProjectPath)." -msgstr "构建该项目的目录,路径相对于 $(WorkspacePath) 。" +#: LiteEditor/findinfiles_dlg.cpp:176 +msgid "The 'Find What' field is a regular expression" +msgstr "“查找内容”字段是一个正则表达式" -#: CMakePlugin/CMakePluginUi.cpp:275 -msgid "Generator:" -msgstr "生成器:" +#: LiteEditor/findinfiles_dlg.cpp:180 +msgid "&Save modified files before searching" +msgstr "搜索前保存修改的文件(&S)" -#: CMakePlugin/CMakePluginUi.cpp:281 -msgid "" -"Generator that will be used for CMake configuration. If no generator is " -"selected, plugin uses global default generator selected in plugin settings." -msgstr "" -"生成器将被用于 CMake 配置。如果没有生成器被选中,插件将在插件设置中使用全局默" -"认的生成器。" +#: LiteEditor/findinfiles_dlg.cpp:182 +msgid "Save any modified files before search starts" +msgstr "搜索前保存修改的文件" -#: CMakePlugin/CMakePluginUi.cpp:285 -msgid "Build Type:" -msgstr "构建类型:" +#: LiteEditor/findinfiles_dlg.cpp:186 +msgid "Display search results in separate tab" +msgstr "在单独标签里面显示搜索结果" -#: CMakePlugin/CMakePluginUi.cpp:296 -msgid "When is selected pass -DCMAKE_BUILD_TYPE to cmake." -msgstr "当被选中时传递 -DCMAKE_BUILD_TYPE 给 CMake。" +#: LiteEditor/findinfiles_dlg.cpp:203 +msgid "Display the C++ scope of the match" +msgstr "显示匹配的 C++ 的作用域" -#: CMakePlugin/CMakePluginUi.cpp:300 -msgid "CMake arguments (used for configuration)" -msgstr "CMake 参数(用于配置)" +#: LiteEditor/findinfiles_dlg.cpp:205 +msgid "Display the class + function name for the matches" +msgstr "显示匹配的类和函数名称" -#: CMakePlugin/CMakePluginUi.cpp:305 -msgid "" -"Argument list used when CMake is called. Each argument must be separated by " -"new line. Multiple arguments on the one line are OK too if they're separated " -"by space.\n" -"Do not use arguments -DCMAKE_BUILD_TYPE, -G and 'path', they are passed by " -"the plugin.\n" -"\n" -"Example:\n" -"-DCMAKE_CXX_FLAGS=-g\n" -"-DCMAKE_C_FLAGS=-g" -msgstr "" -"CMake 调用时使用的参数列表。每个参数必须用新行分隔。在同一行上使用空格分隔多" -"个参数也是可以的。 \n" -"不要使用参数 -DCMAKE_BUILD_TYPE,-G 和‘path’,它们都可以被插件传递。\n" -"\n" -"例如:\n" -"-DCMAKE_CXX_FLAGS=-g\n" -"-DCMAKE_C_FLAGS=-g" +#: LiteEditor/findinfiles_dlg.cpp:209 +msgid "Hide matches found in comments" +msgstr "隐藏注释中的匹配" -#: CMakePlugin/CMakeHelpTab.cpp:147 -msgid "CMake application path is invalid!" -msgstr "CMake的应用程序路径是无效的!" +#: LiteEditor/findinfiles_dlg.cpp:214 +msgid "Hide matches found inside strings" +msgstr "隐藏字符串内的匹配" -#: CMakePlugin/CMakePlugin.cpp:115 -msgid "CMake integration for CodeLite" -msgstr "CMake 集成到 CodeLite" +#: LiteEditor/findinfiles_dlg.cpp:219 +msgid "Use different colour for matches found in comments" +msgstr "为注释中发现的匹配使用不同颜色" -#: CMakePlugin/CMakePlugin.cpp:184 -msgid "CMake integration with CodeLite" -msgstr "CMake 整合到 CodeLite" +#: LiteEditor/findinfiles_dlg.cpp:230 +msgid "&Find" +msgstr "查找(&F)" -#: CMakePlugin/CMakePlugin.cpp:365 CMakePlugin/CMakePlugin.cpp:370 -msgid "CMake" -msgstr "" +#: LiteEditor/findinfiles_dlg.cpp:232 +msgid "Begin search" +msgstr "开始搜索" -#: CMakePlugin/CMakeProjectMenu.cpp:53 -msgid "Make dirty" -msgstr "弄脏" +#: LiteEditor/findinfiles_dlg.cpp:236 +msgid "&Replace" +msgstr "替换(&R)" -#: CMakePlugin/CMakeProjectMenu.cpp:54 +#: LiteEditor/findinfiles_dlg.cpp:237 msgid "" -"Marks CMake output files as dirty and forces cmake configuration to be call " -"again. This is very handy when you made some changes which don't change " -"CMakeLists.txt" -msgstr "" -"标记 CMake 输出文件已变脏并强制调用 CMake 配置。这是非常方便的,尤其是当您不" -"改变 CMakeLists.txt 文件而做出一些更改时" +"Search for matches and place them in the 'Replace' window as candidates for " +"possible replace operation" +msgstr "搜索匹配并将它们作为“替换”窗口的候选进行可能的替换操作" -#: Subversion2/subversion2_ui.cpp:70 -msgid "Source URL:" -msgstr "源 URL:" +#: LiteEditor/findinfiles_dlg.cpp:241 +msgid "Sto&p" +msgstr "停止(&P)" -#: Subversion2/subversion2_ui.cpp:78 -msgid "Target URL:" -msgstr "目标 URL:" +#: LiteEditor/findinfiles_dlg.cpp:242 +msgid "Stop the current search" +msgstr "停止当前搜索" -#: Subversion2/subversion2_ui.cpp:86 -msgid "Comment:" -msgstr "注释:" +#: LiteEditor/findinfiles_dlg.cpp:247 +msgid "Close this dialog" +msgstr "关闭此对话框" -#: Subversion2/subversion2_ui.cpp:223 -msgid "&Login" -msgstr "登陆(&L)" +#: LiteEditor/build_page.cpp:57 +msgid "Available Build Systems:" +msgstr "可用的构建系统:" -#: Subversion2/subversion2_ui.cpp:277 -msgid "Executable:" -msgstr "可执行文件:" +#: LiteEditor/build_page.cpp:63 +msgid "Fix build tool path on startup" +msgstr "启动时修正构建工具路径" -#: Subversion2/subversion2_ui.cpp:289 -msgid "Ignore the following file patterns:" -msgstr "忽略以下文件模式:" +#: LiteEditor/CodeLiteUpgradeFrameBase.cpp:38 +#: LiteEditor/CodeLiteUpgradeFrameBase.h:34 +msgid "Initializing CodeLite" +msgstr "初始化 CodeLite" -#: Subversion2/subversion2_ui.cpp:301 -msgid "When adding file(s) to project, add it to svn as well" -msgstr "当添加文件到项目时,同时添加到 svn" +#: LiteEditor/refactorindexbuildjob.cpp:55 +#: LiteEditor/refactorindexbuildjob.cpp:56 +msgid "Gathering required information..." +msgstr "收集所需的信息..." -#: Subversion2/subversion2_ui.cpp:306 -msgid "Retag workspace after svn update, revert or applying patch" -msgstr "在 svn update, revert 或者应用 patch 后重建工作空间标签文件" +#: LiteEditor/refactorindexbuildjob.cpp:65 +msgid "Parsing: " +msgstr "分析:" -#: Subversion2/subversion2_ui.cpp:311 -msgid "" -"When renaming a file in the project, rename it in the repository as well" -msgstr "当在项目中重命名了一个文件,同时也在仓库中重命名它" +#: LiteEditor/breakpointslistctrl.h:47 +msgid "At" +msgstr "在" -#: Subversion2/subversion2_ui.cpp:316 -msgid "Use POSIX Locale" -msgstr "使用 POSIX 语言环境" +#: LiteEditor/breakpointslistctrl.h:49 +msgid "What" +msgstr "什么" -#: Subversion2/subversion2_ui.cpp:318 -msgid "" -"When checked, CodeLite will use the default \"C\" locale instead of the " -"current locale. This will ensure that svn command line output is parsed " -"properly." -msgstr "当勾选时,CodeLite 将使用默认“C“语言环境,而非当前语言环境" +#: LiteEditor/breakpointslistctrl.h:50 +msgid "Ignored" +msgstr "已忽略" -#: Subversion2/subversion2_ui.cpp:325 -msgid "External Diff" -msgstr "外部比较" +#: LiteEditor/breakpointslistctrl.h:51 +msgid "Extras" +msgstr "附加功能" -#: Subversion2/subversion2_ui.cpp:330 -msgid "Use external diff tool" -msgstr "使用外部比较工具" +#: LiteEditor/plugindlgbase.h:59 +msgid "Manage Plugins:" +msgstr "管理插件:" -#: Subversion2/subversion2_ui.cpp:342 -msgid "External Diff Viewer:" -msgstr "外部比较视图:" +#: LiteEditor/menu_event_handlers.cpp:247 +#, c-format +msgid "Go to line number (1 - %d):" +msgstr "跳转到行号(1 - %d):" -#: Subversion2/subversion2_ui.cpp:357 -msgid "SSH Client" -msgstr "SSH 客户端" +#: LiteEditor/menu_event_handlers.cpp:250 +#: LiteEditor/menu_event_handlers.cpp:259 +#: LiteEditor/menu_event_handlers.cpp:266 +msgid "Go To Line" +msgstr "跳转到行" -#: Subversion2/subversion2_ui.cpp:369 -msgid "SSH Client:" -msgstr "SSH 客户端:" +#: LiteEditor/menu_event_handlers.cpp:258 +#, c-format +msgid "'%s' is not a valid line number" +msgstr "“%s”不是一个有效行数" -#: Subversion2/subversion2_ui.cpp:381 -msgid "SSH Client arguments:" -msgstr "SSH 客户端参数:" +#: LiteEditor/menu_event_handlers.cpp:265 +#, c-format +msgid "Please insert a line number in the range of (1 - %ld)" +msgstr "请输入范围 (1 - %ld) 内的行号" + +#: LiteEditor/WelcomePage.cpp:75 +msgid "Select file to open" +msgstr "选择要打开的文件" + +#: LiteEditor/WelcomePage.cpp:94 +msgid "Open workspace" +msgstr "打开工作区" + +#: LiteEditor/new_virtual_folder.cpp:71 +msgid "Create the folder on the file system as well" +msgstr "在文件系统中创建文件夹" -#: Subversion2/subversion2_ui.cpp:393 -msgid "" -"The SSH client field should contain the command to be\n" -"used by the SVN command line client for establishing a secured channel. \n" -"\n" -"For example, on Windows it should contain something like:\n" -"/path/to/plink.exe -l -pw \n" -"\n" -"If you dont need SSH channel, leave this field empty" -msgstr "" -"SSH 客户端字段应包含命令被\n" -"SVN 命令行客户端用来建立一个加密管道.\n" -"\n" -"例子,在 Windows 上,它应该类似:\n" -"/path/to/plink.exe-l -pw \n" -"\n" -"如果你不需要 SSH 通道,请将此字段留空" +#: LiteEditor/breakpointsmgr.cpp:101 +msgid "Create a breakpoint or watchpoint" +msgstr "创建一个断点或监视点" -#: Subversion2/subversion2_ui.cpp:400 -msgid "Integration" -msgstr "整合" +#: LiteEditor/breakpointsmgr.cpp:119 +msgid "Watchpoint successfully added" +msgstr "监视点成功添加" -#: Subversion2/subversion2_ui.cpp:405 -msgid "Auto Revision:" -msgstr "自动版本:" +#: LiteEditor/breakpointsmgr.cpp:172 +msgid "Breakpoint# " +msgstr "断点# " -#: Subversion2/subversion2_ui.cpp:409 -msgid "Add revision number as preprocessor definition in the compilation line" -msgstr "把版本版本作为预处理器定义添加到编译行" +#: LiteEditor/breakpointsmgr.cpp:176 +msgid "Temporary \n" +msgstr "临时 \n" -#: Subversion2/subversion2_ui.cpp:418 -msgid "Preprocessor name:" -msgstr "预处理器名称:" +#: LiteEditor/breakpointsmgr.cpp:181 +msgid " (disabled)\n" +msgstr " (已禁用)\n" -#: Subversion2/subversion2_ui.cpp:500 Subversion2/wxcrafter.cpp:236 -msgid "Root URL:" -msgstr "根 URL:" +#: LiteEditor/breakpointsmgr.cpp:186 +#, c-format +msgid "Ignore-count = %u\n" +msgstr "忽略数目 = %u\n" -#: Subversion2/subversion2_ui.cpp:511 -msgid "URL:" +#: LiteEditor/breakpointsmgr.cpp:191 +#, c-format +msgid "" +"Condition:\n" +"%s\n" msgstr "" +"条件:\n" +"%s\n" -#: Subversion2/subversion2_ui.cpp:522 -msgid "Revision:" -msgstr "修订版本:" +#: LiteEditor/breakpointsmgr.cpp:196 +#, c-format +msgid "" +"Commands:\n" +"%s\n" +msgstr "" +"命令:\n" +"%s\n" -#: Subversion2/subversion2_ui.cpp:544 -msgid "Date:" -msgstr "日期:" +#: LiteEditor/breakpointsmgr.cpp:201 +msgid "Normal breakpoint\n" +msgstr "普通断点\n" -#: Subversion2/subversion2_ui.cpp:599 -msgid "URL of repository:" -msgstr "仓库 URL:" +#: LiteEditor/breakpointsmgr.cpp:360 +msgid "Watchpoint " +msgstr "监视点" -#: Subversion2/subversion2_ui.cpp:610 -msgid "Checkout directory:" -msgstr "检出目录:" +#: LiteEditor/breakpointsmgr.cpp:360 +msgid "Breakpoint " +msgstr "断点" -#: Subversion2/subversion2_ui.cpp:679 -msgid "From revision:" -msgstr "从修订版本:" +#: LiteEditor/breakpointsmgr.cpp:361 +#, c-format +msgid "%u deleted" +msgstr "%u 已删除" -#: Subversion2/subversion2_ui.cpp:687 -msgid "To revision:" -msgstr "到修订版本:" +#: LiteEditor/breakpointsmgr.cpp:486 +msgid "breakpoints enabled" +msgstr "启用断点" -#: Subversion2/subversion2_ui.cpp:695 -msgid "Create compact log" -msgstr "创建紧凑日志" +#: LiteEditor/breakpointsmgr.cpp:486 +msgid "breakpoints disabled" +msgstr "禁用断点" -#: Subversion2/subversion2_ui.cpp:748 -msgid "From Revision:" -msgstr "从修订版本:" +#: LiteEditor/breakpointsmgr.cpp:502 +msgid "Watchpoint creation unsuccessful" +msgstr "监视点创建失败" -#: Subversion2/subversion2_ui.cpp:757 -msgid "To Revision:" -msgstr "到修订版本:" +#: LiteEditor/breakpointsmgr.cpp:504 +msgid "Breakpoint creation unsuccessful" +msgstr "断点创建失败" -#: Subversion2/subversion2_ui.cpp:767 -msgid "Ignore whitespaces" -msgstr "忽略空白" +#: LiteEditor/breakpointsmgr.cpp:544 +msgid "Please enter the new ignore-count" +msgstr "请输入新忽略数目" -#: Subversion2/subversion2_ui.cpp:844 -msgid "Title" -msgstr "标题" +#: LiteEditor/breakpointsmgr.cpp:544 +msgid "Set ignore-count" +msgstr "设置忽略数目" -#: Subversion2/subversion2_ui.cpp:859 -msgid "Bug URL Pattern:" -msgstr "错误 URL 模式:" +#: LiteEditor/breakpointsmgr.cpp:596 +msgid "Properties for watchpoint " +msgstr "监视点属性" -#: Subversion2/subversion2_ui.cpp:864 -msgid "" -"Enter here the URL for the bug details.\n" -"For example: http://mytracker.com?bug_id=$(BUGID)" -msgstr "" -"在这里输入 BUG 的 URL。\n" -"例如:http://mytracker.com?bug_id=$(BUGID)" +#: LiteEditor/breakpointsmgr.cpp:598 +msgid "Properties for breakpoint " +msgstr "断点属性" -#: Subversion2/subversion2_ui.cpp:868 -msgid "Bug Message Pattern:" -msgstr "错误消息模式:" +#: LiteEditor/movefuncimplbasedlg.h:77 +msgid "Move Function Implementation Preview" +msgstr "移动函数实现预览" -#: Subversion2/subversion2_ui.cpp:873 -msgid "" -"Enter here the message to add to the commit log. You may use the $(BUG_URL) " -"and $(BUGID) macros.\n" -"An example: \"Fixed: BUG#$(BUGID), See $(BUG_URL) for more details\"" -msgstr "" -"在这里输入添加到提交日志的信息。您可以使用 $(BUG_URL) 和 $(BUGID) 宏。\n" -"例如:“实现了BUG#$(BUGID),参考 $(BUG_URL) 获得更多细节“" +#: LiteEditor/editorsettingsmiscbasepanel.cpp:40 +msgid "Look and Feel:" +msgstr "界面外观:" -#: Subversion2/subversion2_ui.cpp:877 -msgid "Feature URL Pattern:" -msgstr "特性 URL模式:" +#: LiteEditor/editorsettingsmiscbasepanel.cpp:51 +msgid "Icon Set:" +msgstr "图标设置:" -#: Subversion2/subversion2_ui.cpp:882 -msgid "" -"Enter here the URL for the feature request details.\n" -"For example: http://mytracker.com?fr_id=$(FRID)" -msgstr "" -"在这里输入特性需求的 URL。\n" -"例如:http://mytracker.com?fr_id=$(FRID)" +#: LiteEditor/editorsettingsmiscbasepanel.cpp:64 +msgid "Toolbar Icon Size:" +msgstr "工具栏图标尺寸:" -#: Subversion2/subversion2_ui.cpp:886 -msgid "Feature Message Pattern:" -msgstr "特性消息模式:" +#: LiteEditor/editorsettingsmiscbasepanel.cpp:76 +msgid "Use Native Toolbar" +msgstr "使用自带工具栏" -#: Subversion2/subversion2_ui.cpp:891 +#: LiteEditor/editorsettingsmiscbasepanel.cpp:78 msgid "" -"Enter here the message to add to the commit log. You may use the $(FR_URL) " -"and $(FRID) macros.\n" -"An example: \"Implements FR#$(FRID), See $(FR_URL) for more details\"" +"Using the OS native toolbar instead of the generic toolbar\n" +"When enabling this option, CodeLite will not be able to display all plugins\n" +"Tools" msgstr "" -"在这里输入添加到提交日志的信息。您可以使用 $(FR_URL) 和 $(FRID) 宏。\n" -"例如:“实现了FR#$(FRID),参考 $(FR_URL) 获得更多细节“" - -#: Subversion2/subversion2_ui.cpp:953 -msgid "Change patch line endings (EOL):" -msgstr "更改补丁行结尾(EOL):" +"正在使用操作系统自带的工具栏替代通用的工具栏\n" +"当启用此选项,CodeLite 将不能显示所有的插件\n" +"工具" -#: Subversion2/subversion2_ui.cpp:1006 -msgid "Select path:" -msgstr "路径选择:" +#: LiteEditor/editorsettingsmiscbasepanel.cpp:82 +msgid "Enable Windows(R) theme for Vista / Windows 7" +msgstr "为 Vista / Windows 7 启用 Windows(R) 主题" -#: Subversion2/subversion2_ui.cpp:1014 -msgid "Recently used paths:" -msgstr "最近使用的路径:" +#: LiteEditor/editorsettingsmiscbasepanel.cpp:87 +msgid "Other:" +msgstr "其它:" -#: Subversion2/svn_console.cpp:149 -msgid "Aborted.\n" -msgstr "中止。\n" +#: LiteEditor/editorsettingsmiscbasepanel.cpp:91 +msgid "Show splashscreen on startup" +msgstr "启动时显示画面" -#: Subversion2/svn_console.cpp:219 -msgid "Failed to launch Subversion client.\n" -msgstr "运行 Subversion 客户端失败.\n" +#: LiteEditor/editorsettingsmiscbasepanel.cpp:93 +msgid "Show codelite's splashscreen when it first started" +msgstr "启动 CodeLite 时显示启动画面" -#: Subversion2/svn_command_handlers.cpp:94 -msgid "===== APPLYING PATCH - DRY RUN =====\n" -msgstr "===== 应用补丁- DRY RUN =====\n" +#: LiteEditor/editorsettingsmiscbasepanel.cpp:97 +msgid "Allow only single instance running" +msgstr "仅允许运行一个实例" -#: Subversion2/svn_command_handlers.cpp:96 -msgid "===== OUTPUT END =====\n" -msgstr "===== 输出结束=====\n" +#: LiteEditor/editorsettingsmiscbasepanel.cpp:99 +msgid "There can be only one" +msgstr "只能有一个" -#: Subversion2/svn_command_handlers.cpp:131 -msgid "Change Log" -msgstr "更改日志" +#: LiteEditor/editorsettingsmiscbasepanel.cpp:103 +msgid "Check for new version on startup" +msgstr "启动时检查更新" -#: Subversion2/svn_command_handlers.cpp:182 -msgid "Loading Svn blame dialog...\n" -msgstr "正在加载错误对话框...\n" +#: LiteEditor/editorsettingsmiscbasepanel.cpp:105 +msgid "" +"When codelite starts, it will connect to http://codelite.org to check if a " +"new version of codelite was released" +msgstr "" +"当 CodeLite 启动时,它将连接到 http://codelite.org 来检查 CodeLite 是否有新的" +"版本更新" -#: Subversion2/wxcrafter.cpp:36 -msgid "Feature Request ID:" -msgstr "特性需求 ID:" +#: LiteEditor/editorsettingsmiscbasepanel.cpp:109 +msgid "Load last session on startup" +msgstr "启动时载入上次会话" -#: Subversion2/wxcrafter.cpp:44 -msgid "Bug ID:" -msgstr "错误 ID:" +#: LiteEditor/editorsettingsmiscbasepanel.cpp:111 +msgid "" +"When launched, codelite will restore the last opened workspace + all open " +"editors" +msgstr "启动时,CodeLite 将恢复最后打开的工作区和所有打开的编辑器" -#: Subversion2/wxcrafter.cpp:74 -msgid "Modified Paths:" -msgstr "修改的路径:" +#: LiteEditor/editorsettingsmiscbasepanel.cpp:116 +msgid "Frame Title" +msgstr "框架标题" -#: Subversion2/wxcrafter.cpp:89 git/gitui.cpp:225 git/gitui.cpp:389 -#: git/gitui.cpp:551 -msgid "Diff:" -msgstr "" +#: LiteEditor/editorsettingsmiscbasepanel.cpp:123 +msgid "Set CodeLite frame's title" +msgstr "设置 CodeLite 框架标题" -#: Subversion2/wxcrafter.cpp:137 git/gitui.cpp:238 git/gitui.cpp:437 -msgid "Commit message:" -msgstr "提交信息:" +#: LiteEditor/editorsettingsmiscbasepanel.cpp:123 +msgid "Set custom title to codelite's main frame" +msgstr "在 CodeLite 主框架中设置自定义标题" -#: Subversion2/wxcrafter.cpp:180 -msgid "Recent commit messages:" -msgstr "最近提交信息:" +#: LiteEditor/editorsettingsmiscbasepanel.cpp:129 +msgid "You can use the following macros to construct your own frame title:" +msgstr "您可以使用下面的宏命令来构建自己的框架标题:" -#: Subversion2/wxcrafter.cpp:243 -msgid "" -msgstr "<没有发现>" +#: LiteEditor/editorsettingsmiscbasepanel.cpp:140 +msgid "$user" +msgstr "$user" -#: Subversion2/wxcrafter.cpp:254 -msgid "Root Directory:" -msgstr "根目录:" +#: LiteEditor/editorsettingsmiscbasepanel.cpp:147 +msgid "the current user name inside square brackets" +msgstr "当前用户名在方括号内" -#: Subversion2/wxcrafter.cpp:262 -msgid "Exclude these file extensions:" -msgstr "排除这些文件扩展名:" +#: LiteEditor/editorsettingsmiscbasepanel.cpp:151 +msgid "$filename" +msgstr "$filename" -#: Subversion2/wxcrafter.cpp:272 -msgid "Exclude binary (application/octet-stream) files" -msgstr "排除二进制文件 (application/octet-stream)" +#: LiteEditor/editorsettingsmiscbasepanel.cpp:158 +msgid "the current file name" +msgstr "当前文件名称" -#: Subversion2/svnblameeditor.cpp:136 -msgid "Highlight this revision" -msgstr "高亮此修订版本" +#: LiteEditor/editorsettingsmiscbasepanel.cpp:162 +msgid "$fullpath" +msgstr "$fullpath" -#: Subversion2/svn_sync_dialog.cpp:34 -msgid "Root URL: " -msgstr "根 URL:" +#: LiteEditor/editorsettingsmiscbasepanel.cpp:169 +msgid "the current file fullpath" +msgstr "当前文件完整路径" -#: Subversion2/svn_sync_dialog.cpp:36 -msgid "" -msgstr "<没有合适的>" +#: LiteEditor/editorsettingsmiscbasepanel.cpp:173 +msgid "$workspace" +msgstr "$workspace" -#: Subversion2/subversion2.cpp:111 Subversion2/subversion2.cpp:131 -msgid "Subversion plugin for codelite2.0 based on the svn command line tool" -msgstr "基于 svn 命令行工具的 codelite 2.0 Subversion 插件" +#: LiteEditor/editorsettingsmiscbasepanel.cpp:180 +msgid "the current workspace name inside square brackets" +msgstr "当前工作区在方括号内" -#: Subversion2/subversion2.cpp:177 -msgid "Subversion Options" -msgstr "Subversion 选项" +#: LiteEditor/editorsettingsmiscbasepanel.cpp:184 +msgid "Frame title:" +msgstr "框架标题:" -#: Subversion2/subversion2.cpp:187 -msgid "Sync Project Files..." -msgstr "同步项目文件..." +#: LiteEditor/editorsettingsmiscbasepanel.cpp:196 +msgid "Encoding & Locale" +msgstr "编码和语言环境:" -#: Subversion2/subversion2.cpp:215 -msgid "Display this path in the Subversion View" -msgstr "在 Subversion 视图中显示此路径" +#: LiteEditor/editorsettingsmiscbasepanel.cpp:208 +msgid "File font encoding:" +msgstr "文件字体编码:" -#: Subversion2/subversion2.cpp:222 git/gitui.cpp:342 git/GitConsole.cpp:170 -msgid "Commit" -msgstr "提交" +#: LiteEditor/editorsettingsmiscbasepanel.cpp:219 +msgid "Enable localization" +msgstr "启用本地化" -#: Subversion2/subversion2.cpp:227 -msgid "Lock file" -msgstr "锁住文件" +#: LiteEditor/editorsettingsmiscbasepanel.cpp:221 +msgid "" +"View CodeLite's strings translated into a different language, if available. " +"This will also make CodeLite use other aspects of the locale." +msgstr "" +"如果可用的话,查看 CodeLite 已被翻译成另一种语言的字符串。这将让 CodeLite 使" +"用其他的语言。" -#: Subversion2/subversion2.cpp:230 -msgid "UnLock file" -msgstr "解锁文件" +#: LiteEditor/editorsettingsmiscbasepanel.cpp:225 +msgid "Locale to use:" +msgstr "要使用的语言环境:" -#: Subversion2/subversion2.cpp:246 -msgid "Revert changes" -msgstr "恢复变更" +#: LiteEditor/editorsettingsmiscbasepanel.cpp:231 +msgid "" +"These are the locales that are available on your system. There won't " +"necessarily be CodeLite translations for all of them." +msgstr "" +"在您的系统上这些区域设置都是可用的。但它们不一定都有 CodeLite 翻译文件。" -#: Subversion2/subversion2.cpp:249 Subversion2/subversion2.cpp:1417 -msgid "Revert to revision" -msgstr "恢复到版本" +#: LiteEditor/editorsettingsmiscbasepanel.cpp:236 +msgid "History" +msgstr "历史记录" -#: Subversion2/subversion2.cpp:253 -msgid "Create Diff" -msgstr "创建 Diff" +#: LiteEditor/editorsettingsmiscbasepanel.cpp:244 +msgid "Clear recent workspace / files history" +msgstr "清除最近工作区/文件历史记录" -#: Subversion2/subversion2.cpp:255 git/git.cpp:172 git/GitConsole.cpp:97 -msgid "Apply Patch" -msgstr "应用程序" +#: LiteEditor/editorsettingsmiscbasepanel.cpp:253 +msgid "Max items kept in find / replace dialog:" +msgstr "查找/替换会话中最多结果项:" -#: Subversion2/subversion2.cpp:259 -msgid "Blame ..." -msgstr "错误..." +#: LiteEditor/editorsettingsmiscbasepanel.cpp:264 +msgid "Maximum number of tabs opened in the editor:" +msgstr "编辑器中打开的最大标签数目:" -#: Subversion2/subversion2.cpp:263 Subversion2/subversion_view.cpp:553 -msgid "Change Log..." -msgstr "更改日志..." +#: LiteEditor/editorsettingsmiscbasepanel.cpp:275 +msgid "Reset annoying dialogs answers:" +msgstr "重置讨厌的对话框回答:" -#: Subversion2/subversion2.cpp:269 Subversion2/subversion_view.cpp:527 -msgid "Ignore this file" -msgstr "忽略此文件" +#: LiteEditor/editorsettingsmiscbasepanel.cpp:279 +msgid "&Reset" +msgstr "重置(&R)" -#: Subversion2/subversion2.cpp:270 Subversion2/subversion_view.cpp:528 -msgid "Ignore this file pattern" -msgstr "忽略此文件模式" +#: LiteEditor/editorsettingsmiscbasepanel.cpp:297 +msgid "CodeLite's Log-file verbosity:" +msgstr "CodeLite 日志文件信息显示:" -#: Subversion2/subversion2.cpp:271 -msgid "Ignore" -msgstr "忽略" +#: LiteEditor/editorsettingsmiscbasepanel.cpp:307 +msgid "" +"codelite logs to file various events, this option controls the logging " +"verbosity" +msgstr "codelite 日志记录各种事件,这个选项控制着日志记录的详细程度" -#: Subversion2/subversion2.cpp:445 -msgid "Insert base revision to diff against:" -msgstr "插入要 Diff 的 BASE 版本:" +#: LiteEditor/editorsettingsmiscbasepanel.cpp:312 +msgid "Open.." +msgstr "打开.." -#: Subversion2/subversion2.cpp:445 -msgid "Diff against" -msgstr "Diff 所选" +#: LiteEditor/editorsettingsmiscbasepanel.cpp:313 +msgid "Open the log file into an editor" +msgstr "在编辑器中打开日志文件" -#: Subversion2/subversion2.cpp:895 -msgid "Enter new URL:" -msgstr "输入新 URL:" +#: LiteEditor/editorsettingsmiscbasepanel.cpp:317 +msgid "GTK only: Redirect stdout/stderr output to a log file" +msgstr "仅 GTK:将 stdout/stderr 输出重定向到日志文件中" -#: Subversion2/subversion2.cpp:991 +#: LiteEditor/editorsettingsmiscbasepanel.cpp:319 msgid "" -"Would you like to remove the following files from SVN?\n" -"\n" +"If ticked, all output from e.g. cout or wxLogDebug will be redirected to the " +"file .codelite/codelite-stdout-stderr.log" msgstr "" -"您想从 SVN 移除以下文件吗?\n" -"\n" +"如果勾选此项,所有例如 cout 或 wxLogDebug 的输出将被重定向到 .codelite/" +"codelite-stdout-stderr.log 文件" -#: Subversion2/subversion2.cpp:1029 Subversion2/subversion_view.cpp:1273 -msgid "Svn rename..." -msgstr "Svn 重命名..." +#: LiteEditor/tasksfindwhatdlgbase.cpp:53 LiteEditor/frame.cpp:1297 +#: LiteEditor/frame.cpp:1513 LiteEditor/frame.cpp:1650 +#: LiteEditor/frame.cpp:1799 +msgid "New" +msgstr "新建" -#: Subversion2/subversion2.cpp:1224 -msgid " - application/octet-stream" -msgstr " - application/octet-stream" +#: LiteEditor/tasksfindwhatdlgbase.cpp:121 +msgid "Task Name:" +msgstr "任务名称:" -#: Subversion2/subversion2.cpp:1286 Subversion2/subversion2.cpp:1392 -msgid "subversion2" -msgstr "" +#: LiteEditor/tasksfindwhatdlgbase.cpp:128 +msgid "Regular Expression:" +msgstr "正则表达式:" -#: Subversion2/subversion2.cpp:1288 -msgid "\n" -msgstr "" +#: LiteEditor/debugger_predefined_types_page.cpp:38 +msgid "Debugger Command" +msgstr "调试器命令" -#: Subversion2/subversion2.cpp:1313 -#, c-format -msgid "excludeBinary=%d\n" -msgstr "" +#: LiteEditor/debugger_predefined_types_page.cpp:88 +msgid "A Debugger type with that name already exists" +msgstr "同名的调试器类型已经存在" -#: Subversion2/subversion2.cpp:1391 -#, c-format -msgid "rawData=%s\n" -msgstr "" +#: LiteEditor/frame.cpp:782 +msgid "Edit::Split selection into multiple carets" +msgstr "编辑::分割选择到多个插入符号" + +#: LiteEditor/frame.cpp:784 +msgid "Search::Toggle the Quick-Replace Bar" +msgstr "搜索::开关快速替换栏" -#: Subversion2/subversion2.cpp:1417 -msgid "Set the revision number:" -msgstr "设置修订版本号:" +#: LiteEditor/frame.cpp:893 +msgid "CodeLite " +msgstr "CodeLite" -#: Subversion2/subversion2.cpp:1425 -msgid "Invalid revision number" -msgstr "无效的版本号" +#: LiteEditor/frame.cpp:1041 +msgid "Output View" +msgstr "输出视图" -#: Subversion2/subversion2_ui.h:62 -msgid "Create Svn Tag" -msgstr "创建 Svn 标签" +#: LiteEditor/frame.cpp:1042 menu.xrc:264 +msgid "Workspace View" +msgstr "工作区视图" -#: Subversion2/subversion2_ui.h:93 -msgid "Login" -msgstr "登录" +#: LiteEditor/frame.cpp:1043 +msgid "wxCrafter" +msgstr "wxCrafter" + +#: LiteEditor/frame.cpp:1301 LiteEditor/frame.cpp:1517 +#: LiteEditor/frame.cpp:1654 LiteEditor/frame.cpp:1803 +#: CMakePlugin/CMakePluginUi.cpp:127 menu.xrc:745 +msgid "Reload" +msgstr "重新载入" -#: Subversion2/subversion2_ui.h:140 -msgid "Subversion Preferences" -msgstr "Subversion 首选项" +#: LiteEditor/frame.cpp:1307 LiteEditor/frame.cpp:1309 +#: LiteEditor/frame.cpp:1523 LiteEditor/frame.cpp:1525 +#: LiteEditor/frame.cpp:1660 LiteEditor/frame.cpp:1662 +#: LiteEditor/frame.cpp:1809 LiteEditor/frame.cpp:1811 +msgid "Save All" +msgstr "保存全部" -#: Subversion2/subversion2_ui.h:163 Subversion2/subversion_view.cpp:196 -msgid "Svn Info" -msgstr "Svn 信息" +#: LiteEditor/frame.cpp:1312 LiteEditor/frame.cpp:1528 +#: LiteEditor/frame.cpp:1665 LiteEditor/frame.cpp:1814 +msgid "Close File" +msgstr "关闭文件" -#: Subversion2/subversion2_ui.h:186 Subversion2/subversion_view.cpp:190 -msgid "Svn Checkout" -msgstr "svn 检出" +#: LiteEditor/frame.cpp:1314 LiteEditor/frame.cpp:1530 +#: LiteEditor/frame.cpp:1667 LiteEditor/frame.cpp:1816 menu.xrc:876 +#: menu.xrc:913 DatabaseExplorer/ErdPanel.cpp:174 +#: DatabaseExplorer/FrameCanvas.cpp:174 +msgid "Cut" +msgstr "剪切" -#: Subversion2/subversion2_ui.h:206 -msgid "Svn Log" -msgstr "Svn 日志" +#: LiteEditor/frame.cpp:1322 LiteEditor/frame.cpp:1538 +#: LiteEditor/frame.cpp:1675 LiteEditor/frame.cpp:1824 +msgid "Backward" +msgstr "向后" -#: Subversion2/subversion2_ui.h:225 -msgid "Svn Diff..." -msgstr "Svn 比较:" +#: LiteEditor/frame.cpp:1323 LiteEditor/frame.cpp:1539 +#: LiteEditor/frame.cpp:1676 LiteEditor/frame.cpp:1825 +msgid "Forward" +msgstr "向前" -#: Subversion2/subversion2_ui.h:263 -msgid "Svn Properties..." -msgstr "SVN属性..." +#: LiteEditor/frame.cpp:1338 LiteEditor/frame.cpp:1840 +msgid "Standard" +msgstr "标准" -#: Subversion2/subversion2_ui.h:280 -msgid "Select patch file:" -msgstr "选择补丁文件:" +#: LiteEditor/frame.cpp:1363 LiteEditor/frame.cpp:1365 +#: LiteEditor/frame.cpp:1561 LiteEditor/frame.cpp:1563 +#: LiteEditor/frame.cpp:1698 LiteEditor/frame.cpp:1700 +#: LiteEditor/frame.cpp:1867 LiteEditor/frame.cpp:1869 +msgid "Find Resource In Workspace" +msgstr "在工作区搜索资源" -#: Subversion2/subversion2_ui.h:302 -msgid "Select Local Repository:" -msgstr "选择本地仓库:" +#: LiteEditor/frame.cpp:1368 LiteEditor/frame.cpp:1566 +#: LiteEditor/frame.cpp:1703 LiteEditor/frame.cpp:1872 +msgid "Highlight Word" +msgstr "高亮字" -#: Subversion2/subversion_strings.h:29 -msgid "No Files to Display" -msgstr "没有文件可以显示" +#: LiteEditor/frame.cpp:1370 LiteEditor/frame.cpp:1568 +#: LiteEditor/frame.cpp:1705 LiteEditor/frame.cpp:1874 +msgid "Highlight Matching Words" +msgstr "高亮匹配词" -#: Subversion2/subversion_strings.h:30 -msgid "Modified Files" -msgstr "修改过的文件" +#: LiteEditor/frame.cpp:1399 LiteEditor/frame.cpp:1579 +#: LiteEditor/frame.cpp:1716 LiteEditor/frame.cpp:1902 +msgid "Build Active Project" +msgstr "构建活动项目" -#: Subversion2/subversion_strings.h:31 -msgid "Added Files" -msgstr "已添加的文件" +#: LiteEditor/frame.cpp:1405 LiteEditor/frame.cpp:1585 +#: LiteEditor/frame.cpp:1721 LiteEditor/frame.cpp:1907 +msgid "Stop Current Build" +msgstr "停止当前构建" -#: Subversion2/subversion_strings.h:32 git/GitConsole.cpp:294 -msgid "Deleted Files" -msgstr "已删除的文件" +#: LiteEditor/frame.cpp:1409 LiteEditor/frame.cpp:1589 +#: LiteEditor/frame.cpp:1725 LiteEditor/frame.cpp:1911 +msgid "Clean Active Project" +msgstr "清理活动项目" -#: Subversion2/subversion_strings.h:33 -msgid "Conflicted Files" -msgstr "已冲突的文件" +#: LiteEditor/frame.cpp:1414 LiteEditor/frame.cpp:1594 +#: LiteEditor/frame.cpp:1730 LiteEditor/frame.cpp:1916 +msgid "Run Active Project" +msgstr "运行活动项目" -#: Subversion2/subversion_strings.h:34 -msgid "Locked Files" -msgstr "已锁住的文件" +#: LiteEditor/frame.cpp:1418 LiteEditor/frame.cpp:1598 +#: LiteEditor/frame.cpp:1734 LiteEditor/frame.cpp:1920 +msgid "Stop Running Program" +msgstr "停止正在运行的程序" -#: Subversion2/subversion_strings.h:35 -msgid "Unversioned Files" -msgstr "版本文件" +#: LiteEditor/frame.cpp:1444 LiteEditor/frame.cpp:1446 +#: LiteEditor/frame.cpp:1605 LiteEditor/frame.cpp:1607 +#: LiteEditor/frame.cpp:1741 LiteEditor/frame.cpp:1743 +msgid "Start or Continue debugger" +msgstr "开始或继续调试" -#: Subversion2/subversion_strings.h:37 -msgid "" -"\n" -"MESSAGE: Another process is already running.\n" -"MESSAGE: Ignoring last command.\n" -msgstr "" -"\n" -"消息: 另一个进程已经正在运行。\n" -"消息: 正在忽略最后的命令。\n" +#: LiteEditor/frame.cpp:1448 LiteEditor/frame.cpp:1450 +#: LiteEditor/frame.cpp:1609 LiteEditor/frame.cpp:1611 +#: LiteEditor/frame.cpp:1745 LiteEditor/frame.cpp:1747 +#: LiteEditor/frame.cpp:1950 LiteEditor/frame.cpp:1952 +msgid "Stop debugger" +msgstr "停止调试器" -#: Subversion2/svn_checkout_dialog.cpp:63 -#, c-format -msgid "" -"The checkout directory '%s' already exists\n" -"continue with the checkout?" -msgstr "" -"检出目录“%s”已存在\n" -"继续检出?" +#: LiteEditor/frame.cpp:1452 LiteEditor/frame.cpp:1454 +#: LiteEditor/frame.cpp:1613 LiteEditor/frame.cpp:1615 +#: LiteEditor/frame.cpp:1749 LiteEditor/frame.cpp:1751 +#: LiteEditor/frame.cpp:1954 LiteEditor/frame.cpp:1956 +msgid "Pause debugger" +msgstr "暂停调试器" -#: Subversion2/wxcrafter.h:59 -msgid "Svn Commit" -msgstr "Svn 提交" +#: LiteEditor/frame.cpp:1456 LiteEditor/frame.cpp:1458 +#: LiteEditor/frame.cpp:1617 LiteEditor/frame.cpp:1619 +#: LiteEditor/frame.cpp:1753 LiteEditor/frame.cpp:1755 +#: LiteEditor/frame.cpp:1958 LiteEditor/frame.cpp:1960 +msgid "Restart debugger" +msgstr "重启调试器" -#: Subversion2/wxcrafter.h:82 -msgid "Sync Workspace to SVN" -msgstr "同步工作空间到 SVN" +#: LiteEditor/frame.cpp:1461 LiteEditor/frame.cpp:1463 +#: LiteEditor/frame.cpp:1622 LiteEditor/frame.cpp:1624 +#: LiteEditor/frame.cpp:1758 LiteEditor/frame.cpp:1760 +#: LiteEditor/frame.cpp:1963 LiteEditor/frame.cpp:1965 +msgid "Show Current Line" +msgstr "显示当前行" -#: Subversion2/svncommand.cpp:82 -msgid "Authentication failed. Retrying...\n" -msgstr "身份验证失败,重试...\n" +#: LiteEditor/frame.cpp:1466 LiteEditor/frame.cpp:1627 +#: LiteEditor/frame.cpp:1763 LiteEditor/frame.cpp:1968 +msgid "Step Into" +msgstr "跟进" -#: Subversion2/svncommand.cpp:86 -msgid "Server certificate verification failed. Retrying...\n" -msgstr "服务器身份验证失败,请重试...\n" +#: LiteEditor/frame.cpp:1466 LiteEditor/frame.cpp:1627 +#: LiteEditor/frame.cpp:1763 LiteEditor/frame.cpp:1968 +msgid "Step In" +msgstr "跟进" -#: Subversion2/svn_select_local_repo_dlg.cpp:47 -msgid "Remove path" -msgstr "移除路径" +#: LiteEditor/frame.cpp:1469 LiteEditor/frame.cpp:1471 +#: LiteEditor/frame.cpp:1630 LiteEditor/frame.cpp:1632 +#: LiteEditor/frame.cpp:1766 LiteEditor/frame.cpp:1768 +#: LiteEditor/frame.cpp:1971 LiteEditor/frame.cpp:1973 menu.xrc:566 +msgid "Next Instruction" +msgstr "下一条指示" -#: Subversion2/svn_select_local_repo_dlg.cpp:50 -msgid "Remove paths" -msgstr "移除路径" +#: LiteEditor/frame.cpp:1473 LiteEditor/frame.cpp:1634 +#: LiteEditor/frame.cpp:1770 LiteEditor/frame.cpp:1975 +msgid "Step Out" +msgstr "跟出" -#: Subversion2/svn_select_local_repo_dlg.cpp:79 -#: Subversion2/subversion_view.cpp:274 Subversion2/subversion_view.cpp:1202 -#: Subversion2/subversion_view.cpp:1210 -msgid "" -msgstr "<没有仓库路径被选中>" +#: LiteEditor/frame.cpp:1498 LiteEditor/frame.cpp:1999 +msgid "Main Toolbar" +msgstr "主工具栏" -#: Subversion2/subversion_view.cpp:113 -msgid "Choose directory" -msgstr "选择目录" +#: LiteEditor/frame.cpp:1946 LiteEditor/frame.cpp:1948 +msgid "Start / Continue debugger" +msgstr "开始/继续调试" -#: Subversion2/subversion_view.cpp:184 -msgid "Select a Directory to View..." -msgstr "选择一个目录来查看..." +#: LiteEditor/frame.cpp:2014 +msgid "Applying your choices and restarting CodeLite" +msgstr "正在应用您的选择并重新启动 CodeLite" + +#: LiteEditor/frame.cpp:2016 +msgid "Applying your choices, this may take a few seconds" +msgstr "正在应用您的选择,这可能需要几秒钟" -#: Subversion2/subversion_view.cpp:187 -msgid "Stop current svn process" -msgstr "停止当前svn进程" +#: LiteEditor/frame.cpp:2349 +msgid "The file" +msgstr "文件" -#: Subversion2/subversion_view.cpp:188 -msgid "Svn Cleanup" -msgstr "SVN 清除" +#: LiteEditor/frame.cpp:2350 +msgid "has been altered." +msgstr "已更改." -#: Subversion2/subversion_view.cpp:194 -msgid "Clear Svn Output Tab" -msgstr "清除 Svn 输出标签" +#: LiteEditor/frame.cpp:2351 +msgid "Are you sure you want to lose all changes?" +msgstr "您确定放弃全部更改吗?" -#: Subversion2/subversion_view.cpp:195 -msgid "Svn Settings..." -msgstr "SVN 设置..." +#: LiteEditor/frame.cpp:2535 +msgid "Please enter a name for the tab group" +msgstr "请输入标签组的名称" -#: Subversion2/subversion_view.cpp:496 Subversion2/subversion_view.cpp:519 -#: Subversion2/subversion_view.cpp:548 -msgid "Create Diff..." -msgstr "创建 Diff..." +#: LiteEditor/frame.cpp:2550 +msgid "There is already a file with this name. Do you want to overwrite it?" +msgstr "同名文件已存在,是否覆盖?" -#: Subversion2/subversion_view.cpp:501 -msgid "Open File..." -msgstr "打开文件..." +#: LiteEditor/frame.cpp:2574 +msgid "Tab group saved" +msgstr "标签组已保存" -#: Subversion2/subversion_view.cpp:522 -msgid "Blame..." -msgstr "Blame..." +#: LiteEditor/frame.cpp:2658 +#: codelitephp/php-plugin/php_workspace_view.cpp:1358 +msgid "Open Project" +msgstr "打开项目" -#: Subversion2/subversion_view.cpp:541 Subversion2/subversion_view.cpp:710 -msgid "Create Tag" -msgstr "创建标签" +#: LiteEditor/frame.cpp:2969 +msgid "Build ended with errors. Continue?" +msgstr "遇到错误构建结束。是否继续?" -#: Subversion2/subversion_view.cpp:542 Subversion2/subversion_view.cpp:669 -msgid "Create Branch" -msgstr "创建分支" +#: LiteEditor/frame.cpp:2989 +msgid "Build starting..." +msgstr "构建正在开始..." -#: Subversion2/subversion_view.cpp:545 -msgid "Switch URL..." -msgstr "切换 URL..." +#: LiteEditor/frame.cpp:3024 +msgid "Failed to find Custom Build Target for event ID" +msgstr "查找事件 ID 对应的自定义构建目标失败" -#: Subversion2/subversion_view.cpp:549 -msgid "Apply Patch..." -msgstr "应用补丁..." +#: LiteEditor/frame.cpp:3156 +msgid "" +"Would you like to build the active project\n" +"before executing it?" +msgstr "" +"您想构建这个活动项目\n" +"在执行之前吗?" -#: Subversion2/subversion_view.cpp:550 -msgid "Apply Patch - Dry Run..." -msgstr "应用补丁 - Dry Run..." +#: LiteEditor/frame.cpp:3158 +msgid "Build and Execute" +msgstr "构建并执行" -#: Subversion2/subversion_view.cpp:556 -msgid "Properties..." -msgstr "属性..." +#: LiteEditor/frame.cpp:3159 +msgid "Execute" +msgstr "执行" -#: Subversion2/subversion_view.cpp:997 git/git.cpp:2071 -msgid "Working copy" -msgstr "工作副本" +#: LiteEditor/frame.cpp:3229 +msgid "" +"Your workspace symbols file does not match the current version of CodeLite. " +"CodeLite will perform a full retag of the workspace" +msgstr "" +"您工作区的符号表与当前版本的 CodeLite 不匹配。CodeLite 会重建完整的工作区标签" +"文件。" -#: Subversion2/subversion_view.cpp:998 git/git.cpp:2069 -msgid "HEAD version" -msgstr "HEAD 版本" +#: LiteEditor/frame.cpp:3331 +msgid "No workspaces found." +msgstr "没有找到工作区。" -#: Subversion2/subversion_view.cpp:1006 -msgid "Svn Diff: " -msgstr "Svn Diff:" +#: LiteEditor/frame.cpp:3368 +msgid "No files found." +msgstr "没有找到文件。" -#: Subversion2/svn_preferences_dialog.cpp:75 -msgid "Select Executable:" -msgstr "选择可执行文件:" +#: LiteEditor/frame.cpp:3565 +msgid "Open IDE Solution/Workspace File" +msgstr "打开 IDE 解决方案/工作区文件" -#: cscope/cscope.cpp:64 cscope/cscope.cpp:78 -msgid "CScope Integration for CodeLite" -msgstr "cscope 集成到 CodeLite" +#: LiteEditor/frame.cpp:3582 +msgid "Select the compiler to use:" +msgstr "选择要使用的编译器:" + +#: LiteEditor/frame.cpp:3630 +msgid "Attempting to debug workspace with no active project? Ignoring." +msgstr "正在试图调试没有活动项目的工作区?正在忽略。" + +#: LiteEditor/frame.cpp:3638 +msgid "Would you like to build the project before debugging it?" +msgstr "您想在调试它前构建项目吗?" + +#: LiteEditor/frame.cpp:3640 +msgid "Build and Debug" +msgstr "构建并调试" -#: cscope/cscope.cpp:111 cscope/cscope.cpp:116 cscope/cscope.cpp:153 -msgid "Find this C symbol" -msgstr "查找此 C 符号" +#: LiteEditor/frame.cpp:4241 +msgid "Download Now!" +msgstr "立即下载!" -#: cscope/cscope.cpp:112 cscope/cscope.cpp:117 cscope/cscope.cpp:162 -msgid "Find functions calling this function" -msgstr "查找调用此函数的函数" +#: LiteEditor/frame.cpp:4247 +msgid "A new version of codelite is available" +msgstr "有新的 CodeLite 版本可用" -#: cscope/cscope.cpp:113 cscope/cscope.cpp:118 cscope/cscope.cpp:159 -msgid "Find functions called by this function" -msgstr "寻找此函数调用的函数" +#: LiteEditor/frame.cpp:4258 +msgid "CodeLite is up-to-date" +msgstr "CodeLite 已更新到最新版本" -#: cscope/cscope.cpp:148 -msgid "Find ..." -msgstr "查找..." +#: LiteEditor/frame.cpp:4652 LiteEditor/frame.cpp:4742 +msgid "Could not start TTY console for debugger!" +msgstr "无法为调试器启动 TTY 控制台" -#: cscope/cscope.cpp:153 -msgid "Find selected text" -msgstr "查找选定的文本" +#: LiteEditor/frame.cpp:4942 +msgid "" +"Workspace or project settings have been modified outside of CodeLite\n" +"Would you like to reload the workspace?" +msgstr "工作区或项目已被修改,您想要重新载入工作区吗?" -#: cscope/cscope.cpp:156 -msgid "Find this global definition" -msgstr "找到这个全局定义" +#: LiteEditor/frame.cpp:4945 codelitephp/php-plugin/php_workspace_view.cpp:215 +msgid "Reload workspace" +msgstr "重新载入工作区" -#: cscope/cscope.cpp:156 -msgid "Find this C global definition" -msgstr "查找此 C 全局定义" +#: LiteEditor/frame.cpp:4946 LiteEditor/frame.cpp:5279 +msgid "Not now" +msgstr "稍后重启" -#: cscope/cscope.cpp:165 cscope/cscope.cpp:238 -msgid "Find files #&including this filename" -msgstr "查找包含此文件名的文件(&I)" +#: LiteEditor/frame.cpp:5231 +msgid "Tags cache cleared" +msgstr "标签文件缓存已清除" -#: cscope/cscope.cpp:165 -msgid "Find files #including this filename" -msgstr "查找包含此文件名的文件" +#: LiteEditor/frame.cpp:5268 +msgid "Some of the changes made requires restart of CodeLite" +msgstr "部分变更需要重新启动 CodeLite" -#: cscope/cscope.cpp:170 -msgid "Create CScope database" -msgstr "创建 cscope 数据库" +#: LiteEditor/frame.cpp:5272 +msgid "Restart Now!" +msgstr "立即重启!" -#: cscope/cscope.cpp:170 cscope/cscope.cpp:243 -msgid "Create/Recreate the cscope database" -msgstr "创建/重新创建 cscope 数据库" +#: LiteEditor/frame.cpp:5282 +msgid "Some of the changes made require a restart of CodeLite. Restart now?" +msgstr "部分变更需要重新启动 CodeLite,重新启动吗?" -#: cscope/cscope.cpp:175 -msgid "CScope settings" -msgstr "Cscope 设置" +#: LiteEditor/frame.cpp:5373 +#, c-format +msgid "INFO: Retag workspace completed in %ld seconds (%lu files were scanned)" +msgstr "信息:重建工作区标签文件完成,用时 %ld 秒(扫描了 %lu 个文件)" -#: cscope/cscope.cpp:175 -msgid "Configure cscope" -msgstr "配置 cscope" +#: LiteEditor/frame.cpp:5385 +msgid "INFO: Retag workspace completed in 0 seconds (No files were retagged)" +msgstr "信息:重建工作区标签文件完成,用时 0 秒(无文件被重建标签文件)" -#: cscope/cscope.cpp:226 -msgid "&Find this C symbol" -msgstr "查找此 C 符号(&F)" +#: LiteEditor/buildsettingstabbase.cpp:40 +msgid "Font" +msgstr "字体" -#: cscope/cscope.cpp:229 -msgid "Find this &global definition" -msgstr "查找此全局定义(&g)" +#: LiteEditor/buildsettingstabbase.cpp:41 +msgid "Select the font to use in the build output tab" +msgstr "选择要在生成输出选项卡中使用的字体" + +#: LiteEditor/buildsettingstabbase.cpp:44 +msgid "Error colour" +msgstr "错误颜色" + +#: LiteEditor/buildsettingstabbase.cpp:45 +msgid "Use this colour to highlight build error messages" +msgstr "使用这种颜色来高亮显示生成的错误消息" + +#: LiteEditor/buildsettingstabbase.cpp:47 +msgid "Warnings colour" +msgstr "警告颜色" + +#: LiteEditor/buildsettingstabbase.cpp:48 +msgid "Use this colour to highlight build warning messages" +msgstr "使用这种颜色来高亮显示生成的警告消息" + +#: LiteEditor/buildsettingstabbase.cpp:53 +msgid "Skip warnings" +msgstr "跳过警告" -#: cscope/cscope.cpp:232 -msgid "Find functions &called by this function" -msgstr "查找此函数调用的函数(&c)" +#: LiteEditor/buildsettingstabbase.cpp:54 +msgid "When using the menu to jump to errors, skip warnings" +msgstr "当使用菜单跳转到错误时,忽略警告" -#: cscope/cscope.cpp:235 -msgid "Fi&nd functions calling this function" -msgstr "查找调用此函数的函数(&n)" +#: LiteEditor/buildsettingstabbase.cpp:56 +msgid "Auto hide build pane" +msgstr "自动隐藏构建面板" -#: cscope/cscope.cpp:243 -msgid "Create CScope &database" -msgstr "创建 cscope 数据库(&d)" +#: LiteEditor/buildsettingstabbase.cpp:57 +msgid "" +"Automatically hide the build pane when there are neither errors nor warnings" +msgstr "当没有错误或者警告时,自动隐藏构建面板" -#: cscope/cscope.cpp:270 -msgid "Creating file list..." -msgstr "创建文件列表..." +#: LiteEditor/buildsettingstabbase.cpp:61 +msgid "When build starts" +msgstr "当构建开始时" + +#: LiteEditor/buildsettingstabbase.cpp:62 +msgid "When build ends" +msgstr "当构建结束时" + +#: LiteEditor/buildsettingstabbase.cpp:63 +msgid "Don't automatically show" +msgstr "不要自动显示" + +#: LiteEditor/buildsettingstabbase.cpp:67 +msgid "Auto show build pane" +msgstr "自动显示构建面板" + +#: LiteEditor/buildsettingstabbase.cpp:68 +msgid "Select when to show the build pane" +msgstr "选择什么时候显示构建面板" + +#: LiteEditor/buildsettingstabbase.cpp:72 +msgid "The first error" +msgstr "第一个错误" + +#: LiteEditor/buildsettingstabbase.cpp:73 +msgid "The first warning or error" +msgstr "第一次警告或错误" + +#: LiteEditor/buildsettingstabbase.cpp:74 +msgid "The end" +msgstr "结尾" + +#: LiteEditor/buildsettingstabbase.cpp:78 +msgid "When build ends scroll to..." +msgstr "当构建结束滚动到..." + +#: LiteEditor/buildsettingstabbase.cpp:79 +msgid "After build finishes, if showing the build pane scroll to..." +msgstr "构建完成后,如果显示构建面板就滚动到..." + +#: LiteEditor/buildsettingstabbase.cpp:81 +msgid "Build error indicators" +msgstr "构建错误指示器" -#: cscope/cscope.cpp:328 -msgid "I can't find 'cscope' anywhere. Please check if it's installed." -msgstr "我找不到“cscope”,请检查它是否安装。" +#: LiteEditor/buildsettingstabbase.cpp:84 +msgid "Use markers" +msgstr "使用标记" -#: cscope/cscope.cpp:329 +#: LiteEditor/buildsettingstabbase.cpp:85 msgid "" -"Or tell me where it can be found, from the menu: 'Plugins | CScope | " -"Settings'" -msgstr "或者告诉我哪里可用找到它, 从菜单:“插件 | CScope | 设置”" +"Mark the line that contains the build error with a red marker on the left " +"margin" +msgstr "在左边空白处为包含构建错误的行作一个红色标记" -#: cscope/cscope.cpp:330 -msgid "CScope not found" -msgstr "找不到 Cscope" +#: LiteEditor/buildsettingstabbase.cpp:87 +msgid "Use annotations" +msgstr "使用注释语法" -#: cscope/cscope.cpp:389 -msgid "cscope results for: find global definition of '" -msgstr "cscope 结果:找到全局定义“" +#: LiteEditor/buildsettingstabbase.cpp:88 +msgid "" +"If checked, any errors or warnings will be displayed in the editor alongside " +"the failing code." +msgstr "如果勾选此项,错误或警告将被显示在编辑器中失败代码的旁边。" -#: cscope/cscope.cpp:416 -msgid "cscope results for: functions called by '" -msgstr "cscope 结果:函数调用者为”" +#: LiteEditor/AccelTableBaseDlg.h:54 +msgid "Keyboard Shortcuts" +msgstr "快捷键" -#: cscope/cscope.cpp:443 -msgid "cscope results for: functions calling '" -msgstr "cscope 结果:函数调用了“" +#: LiteEditor/dialogspagebase.cpp:42 +msgid "" +"Below is a list of the 'annoying' dialogs answers, you can modify \n" +"the answer of a dialog by checking / unchecking the saved answer" +msgstr "" +"以下为“讨厌”对话框回答列表,您可以修改\n" +"这些对话框的答案,通过勾选/取消勾选那些已保存的回答" -#: cscope/cscope.cpp:485 -msgid "cscope results for: files that #include '" -msgstr "cscope 结果:文件名含了“" +#: LiteEditor/movefuncimpldlg.cpp:80 +msgid "File: " +msgstr "文件:" -#: cscope/cscope.cpp:509 -msgid "Recreated inverted CScope DB" -msgstr "重建反向的 CScope 数据库" +#: LiteEditor/movefuncimpldlg.cpp:80 +msgid " does not exist" +msgstr " 不存在" -#: cscope/cscope.cpp:512 -msgid "Recreated CScope DB" -msgstr "重建 CScope 数据库" +#: LiteEditor/findresultstab.cpp:141 LiteEditor/findresultstab.cpp:143 +msgid "Stop current search" +msgstr "停止当前搜索" -#: cscope/cscope.cpp:532 -msgid "Please enter the filepath where cscope can be found" -msgstr "请输入 cscope 的文件路径" - -#: cscope/cscope.cpp:532 -msgid "Where is cscope?" -msgstr "cscope 在哪?" +#: LiteEditor/findresultstab.cpp:331 +msgid "The search thread is currently busy" +msgstr "搜索线程正忙" -#: cscope/cscope.cpp:603 -msgid "Enter the symbol to search for:" -msgstr "输入要搜索的符号:" +#: LiteEditor/findresultstab.cpp:413 +msgid "====== Searching for: '" +msgstr "====== 正在搜索:“" -#: cscope/cscope.cpp:603 -msgid "cscope: find symbol" -msgstr "cscope: 查找符号" +#: LiteEditor/findresultstab.cpp:413 +msgid "'; Match case: " +msgstr "”;区分大小写:" -#: cscope/cscopetab.cpp:119 -msgid "Line: " -msgstr "行:" +#: LiteEditor/findresultstab.cpp:414 +msgid " ; Match whole word: " +msgstr " ;匹配整字:" -#: cscope/CscopeTabBase.cpp:44 -msgid "Scope" -msgstr "范围" +#: LiteEditor/findresultstab.cpp:415 +msgid " ; Regular expression: " +msgstr " ;正则表达式:" -#: cscope/CscopeTabBase.cpp:55 -msgid "Search scope:" -msgstr "搜索范围:" +#: LiteEditor/findresultstab.cpp:701 +msgid "Reached the end of the 'Find In Files' results" +msgstr "到达“在文件中查找”搜索结果的列表末尾" -#: cscope/CscopeTabBase.cpp:64 -msgid "Update Db if stale" -msgstr "如果数据库过期,更新数据库" +#: LiteEditor/findresultstab.cpp:731 +msgid "Reached the start of the 'Find In Files' results" +msgstr "到达“在文件中查找”搜索结果的列表开头" + +#: LiteEditor/findresultstab.cpp:760 +msgid "Search result is no longer valid" +msgstr "搜索结果不再有效" -#: cscope/CscopeTabBase.cpp:66 +#: LiteEditor/workspacesettingsbase.cpp:44 msgid "" -"If checked, before executing a command CScope will look for any changed " -"files and, if found, try to update the database. In practice this seems " -"unreliable." +"By default, CodeLite uses the current active environment variables set as " +"defined in the Settings > Environment Variables dialog.\n" +"However, you may choose a different set to become the active set when this " +"workspace is loaded selecting it here." msgstr "" -"如果勾选此项,在执行命令之前 CScope 将寻找已变更的文件,如果找到,将会试着更" -"新数据库。在实践中这似乎是不可靠的。" - -#: cscope/CscopeTabBase.cpp:70 -msgid "Create reverted Index" -msgstr "创建反向索引" - -#: cscope/CscopeTabBase.cpp:72 -msgid "Create reverted Index database" -msgstr "创建反向索引数据库" - -#: cscope/CscopeTabBase.cpp:78 -msgid "&Update Database" -msgstr "更新数据库(&U)" +"默认情况下,CodeLite 使用当前活动环境变量设置(定义在 设置 > 环境变量...。\n" +"不过,您可以在此工作区加载时选择其它设置变成活动设置。" -#: cscope/CscopeTabBase.cpp:79 -msgid "Perform an immediate database update" -msgstr "立即执行数据库更新" +#: LiteEditor/workspacesettingsbase.cpp:48 +msgid "Environment sets:" +msgstr "环境设置:" -#: cscope/CscopeTabBase.cpp:83 -msgid "&Clear Results" -msgstr "清除结果(&C)" +#: LiteEditor/workspacesettingsbase.cpp:63 +msgid "" +"Specify here an additional environment variables that will be shared with " +"other people who are using this workspace:" +msgstr "在这里指定一个将与其他使用该工作区的人共享的附加环境变量:" -#: cscope/cscopedbbuilderthread.cpp:51 -msgid "Executing cscope..." -msgstr "执行 cscope..." +#: LiteEditor/workspacesettingsbase.cpp:150 +msgid "Add here search paths used by clang / ctags for locating include files" +msgstr "在此处添加 clang / ctags 定位头文件的搜索路径" -#: cscope/cscopedbbuilderthread.cpp:59 -msgid "Parsing results..." -msgstr "分析结果..." +#: LiteEditor/workspacesettingsbase.cpp:160 +msgid "Macros (clang):" +msgstr "宏命令(clang):" -#: codelite_terminal/MainFrame.cpp:101 -msgid "by Eran Ifrah" -msgstr "by Eran Ifrah" +#: LiteEditor/workspacesettingsbase.cpp:165 +msgid "" +"Add here macros to pass to clang when generating PCH files\n" +"One macro per line" +msgstr "" +"当生成 PCH 文件时在此处添加宏命令并传递给 clang\n" +"每行一个宏命令" -#: codelite_terminal/MainFrame.cpp:103 -msgid "A terminal emulator designed for codelite IDE" -msgstr "codelite IDE专用终端" +#: LiteEditor/workspacesettingsbase.cpp:173 +#: LiteEditor/project_settings_base_dlg.cpp:1158 +msgid "Enable C++11 Standard" +msgstr "启用 C++11 标准" -#: codelite_terminal/terminal_options.cpp:6 codelite_terminal/wxcrafter.h:64 -msgid "codelite-terminal" -msgstr "codelite-terminal" +#: LiteEditor/workspacesettingsbase.cpp:178 +#: LiteEditor/project_settings_base_dlg.cpp:1164 +msgid "Enable C++14 Standard" +msgstr "启用 C++14 标准" -#: codelite_terminal/wxcrafter.cpp:57 -msgid "Clear view" -msgstr "清理视图" +#: LiteEditor/debugcoredumpbase.cpp:53 +msgid "Core dump to be opened:" +msgstr "核心转储被打开:" -#: codelite_terminal/wxcrafter.cpp:59 -msgid "Send inferior process signal" -msgstr "发送降级进程信号" +#: LiteEditor/debugcoredumpbase.cpp:58 +msgid "" +"Enter the full filepath of the core dump to be examined.\n" +"Or, if you enter the correct working directory below, just the filename will " +"suffice." +msgstr "" +"输入核心转储的完整文件路径进行检查。\n" +"或者,如果您输入的是下列正确的工作目录,只需要填写文件名就可以了。" -#: codelite_terminal/wxcrafter.cpp:198 -msgid "Text Colour:" -msgstr "文本颜色:" +#: LiteEditor/debugcoredumpbase.cpp:65 +msgid "Corresponding executable:" +msgstr "对应的可执行文件:" -#: codelite_terminal/wxcrafter.cpp:214 -msgid "Font:" -msgstr "字体:" +#: LiteEditor/debugcoredumpbase.cpp:70 +msgid "" +"Enter the full filepath of the executable that crashed to cause the core " +"dump.\n" +"Or, if you enter the correct working directory below, just the filename will " +"suffice." +msgstr "" +"输入运行崩溃导致核心转储的可执行文件的完整路径。\n" +"或者,如果您输入的是下列正确的工作目录,只需要填写文件名就可以了。" -#: wxformbuilder/formbuildsettingsbasedlg.h:56 -msgid "wxFormBuilder Settings..." -msgstr "wxFormBuilder 设置..." +#: LiteEditor/debugcoredumpbase.cpp:77 +msgid "Working directory (optional):" +msgstr "工作目录(可选):" -#: wxformbuilder/wxformbuilder.cpp:61 wxformbuilder/wxformbuilder.cpp:81 -msgid "wxFormBuilder integration with CodeLite" -msgstr "wxFormBuilder 集成到 CodeLite" +#: LiteEditor/CompilersModifiedDlg.cpp:47 +msgid "Create a new compiler named '" +msgstr "创建一个新的编译器名为“" -#: wxformbuilder/wxformbuilder.cpp:126 -msgid "Open with wxFormBuilder..." -msgstr "用 wxFormBuilder 打开" +#: LiteEditor/quickdebugbase.h:53 +msgid "Quick Debug" +msgstr "快速调试" -#: wxformbuilder/wxformbuilder.cpp:149 -msgid "New wxDialog..." -msgstr "新建 wxDialog" +#: LiteEditor/edit_configuration.cpp:143 LiteEditor/edit_configuration.cpp:165 +msgid "Enter New Name:" +msgstr "输入新名称:" -#: wxformbuilder/wxformbuilder.cpp:152 -msgid "New wxDialog with Default Buttons..." -msgstr "新建包含默认按钮的 wxDialog..." +#: LiteEditor/edit_configuration.cpp:181 +msgid "Remove configuration '" +msgstr "移除配置”" -#: wxformbuilder/wxformbuilder.cpp:155 -msgid "New wxFrame..." -msgstr "新建 wxFrame" +#: LiteEditor/edit_configuration.cpp:182 +msgid "' ?" +msgstr "“?" -#: wxformbuilder/wxformbuilder.cpp:158 -msgid "New wxPanel..." -msgstr "新建 wxPanel" +#: LiteEditor/syntaxhighlightbasedlg.cpp:44 +msgid "New Theme..." +msgstr "新主题..." -#: wxformbuilder/wxformbuilder.cpp:167 -msgid "New wxDialog" -msgstr "新建 wxDialog" +#: LiteEditor/syntaxhighlightbasedlg.cpp:46 +msgid "Export syntax highlight settings to zip file" +msgstr "导出语法高亮设置到 zip 归档文件" + +#: LiteEditor/syntaxhighlightbasedlg.cpp:51 +msgid "Export All" +msgstr "导出全部" -#: wxformbuilder/wxformbuilder.cpp:180 -msgid "New wxFrame" -msgstr "新建 wxFrame" +#: LiteEditor/syntaxhighlightbasedlg.cpp:53 +msgid "Export..." +msgstr "导出..." -#: wxformbuilder/wxformbuilder.cpp:192 -msgid "New wxPanel" -msgstr "新建 wxPanel" +#: LiteEditor/syntaxhighlightbasedlg.cpp:53 +msgid "Export specific lexers" +msgstr "导出特定的词法分析器" -#: wxformbuilder/wxformbuilder.cpp:232 -#, c-format -msgid "Can't find wxFormBuilder template file '%s'" -msgstr "找不到 wxFormBuilder 模板文件“%s”" +#: LiteEditor/syntaxhighlightbasedlg.cpp:59 +msgid "Import settings from a zip archive" +msgstr "从 zip 归档文件中导入设置" + +#: LiteEditor/syntaxhighlightbasedlg.cpp:61 +msgid "Revert to default settings" +msgstr "还原到默认设置" + +#: LiteEditor/syntaxhighlightbasedlg.cpp:63 +msgid "Import Eclipse Theme" +msgstr "导入 Eclipse 主题" + +#: LiteEditor/syntaxhighlightbasedlg.cpp:68 +msgid "Load eclipse theme website" +msgstr "载入 Eclipse 主题网址" + +#: LiteEditor/syntaxhighlightbasedlg.cpp:81 +msgid "Set global colours and fonts" +msgstr "设置全局颜色和字体" -#: wxformbuilder/wxformbuilder.cpp:304 -msgid "Please select a 'fbp' (Form Builder Project) file only" -msgstr "请选择一个“fbp”(从构建项目) 文件" +#: LiteEditor/syntaxhighlightbasedlg.cpp:94 +msgid "Global font:" +msgstr "全局字体:" -#: wxformbuilder/wxformbuilder.cpp:351 -msgid "New wxDialog with Default Buttons" -msgstr "新建使用默认按钮的 wxDialog" +#: LiteEditor/syntaxhighlightbasedlg.cpp:99 +msgid "Set a global font for all the supported languages" +msgstr "为所有已支持的语言设置全局字体" + +#: LiteEditor/syntaxhighlightbasedlg.cpp:103 +msgid "Global theme:" +msgstr "全局主题:" + +#: LiteEditor/syntaxhighlightbasedlg.cpp:109 +msgid "" +"Set a global theme for all the supported languages.\n" +"If the theme is not available for a given language, CodeLite will use the " +"next available theme from\n" +"the same family" +msgstr "" +"为所有已支持的语言设置全局主题。\n" +"如果主题对给定的语言不可用,CodeLite 将使用下一个可用的主题从\n" +"同一个类型中" -#: wxformbuilder/wxfbitemdlg.cpp:51 -msgid "Invalid C++ class name" -msgstr "无效的 C++ 类名称" +#: LiteEditor/syntaxhighlightbasedlg.cpp:113 +msgid "Global foreground Colour:" +msgstr "全局前景色:" -#: wxformbuilder/formbuildsettingsdlg.cpp:49 -msgid "Select wxFormBuilder exe:" -msgstr "选择 wxFormBuilder exe" +#: LiteEditor/syntaxhighlightbasedlg.cpp:118 +msgid "" +"This is where you can set the foreground colour for the Output View panes " +"(where you can see the output from e.g. 'Build' or 'Debug') and terminal " +"(where you see the trace output while debugging)" +msgstr "" +"在这里,您可以设置输出视图面板的前景颜色(在这里您可以看到如“构建”或“调试”的输" +"出)和终端(在这里您可以看到调试时的跟踪输出)" -#: wxformbuilder/wxfbitembasedlg.cpp:24 SnipWiz/templateclassbasedlg.cpp:34 -#: UnitTestCPP/testclassbasedlg.cpp:25 -msgid "Class name:" -msgstr "类名:" +#: LiteEditor/syntaxhighlightbasedlg.cpp:122 +#: LiteEditor/syntaxhighlightbasedlg.cpp:190 +msgid "Global background Colour:" +msgstr "全局背景色:" -#: wxformbuilder/wxfbitembasedlg.cpp:36 -msgid "Title:" -msgstr "标题:" +#: LiteEditor/syntaxhighlightbasedlg.cpp:127 +msgid "" +"This is where you can set the background colour for the Output View panes " +"(where you can see the output from e.g. 'Build' or 'Debug') and terminal " +"(where you see the trace output while debugging)" +msgstr "" +"在这里,您可以设置输出视图面板的背景颜色(在这里您可以看到如“构建”或“调试”的输" +"出)和终端(在这里您可以看到调试时的跟踪输出)" -#: wxformbuilder/formbuildsettingsbasedlg.cpp:26 -msgid "wxFormBuilder path:" -msgstr "wxFormBuilder 路径:" +#: LiteEditor/syntaxhighlightbasedlg.cpp:132 +msgid "Customize your colours and font per language" +msgstr "为每种语言自定义颜色和字体" + +#: LiteEditor/syntaxhighlightbasedlg.cpp:168 +msgid "Available Themes:" +msgstr "可用的主题:" -#: wxformbuilder/formbuildsettingsbasedlg.cpp:42 -msgid "$(WXFB) $(WXFB_PRJ)" -msgstr "$(WXFB) $(WXFB_PRJ)" +#: LiteEditor/syntaxhighlightbasedlg.cpp:181 +msgid "Global Font:" +msgstr "全局字体:" -#: Gizmos/gizmos_base.h:43 -msgid "New Plugin Wizard" -msgstr "新建插件向导" +#: LiteEditor/syntaxhighlightbasedlg.cpp:186 +msgid "Use this to select a font to be used by *all* styles of this lexer" +msgstr "为此语法分析器的全部风格选择字体" -#: Gizmos/newinheritancebasedlg.h:53 Gizmos/newinheritancedlg.cpp:31 -msgid "New Inheritance" -msgstr "新建继承" +#: LiteEditor/syntaxhighlightbasedlg.cpp:195 +msgid "" +"Use this to select a background colour to be used by *all* styles of this " +"lexer" +msgstr "为此语法分析器的全部风格选择背景色" -#: Gizmos/gizmos_base.cpp:38 -msgid "Plugin name:" -msgstr "插件名称:" +#: LiteEditor/syntaxhighlightbasedlg.cpp:199 +msgid "File Extensions:" +msgstr "文件扩展名:" -#: Gizmos/gizmos_base.cpp:43 -msgid "" -"Set the plugin name.\n" -"The name should be a valid C++ variable name" -msgstr "" -"设置插件名称。\n" -"该名称应该是一个有效的 C++ 变量名" +#: LiteEditor/syntaxhighlightbasedlg.cpp:204 +msgid "Associate this lexer with files which have these extensions" +msgstr "关联此语法分析器到这些扩展名的文件" -#: Gizmos/gizmos_base.cpp:53 -msgid "Provide the plugin a short description" -msgstr "为插件提供一个简短的描述" +#: LiteEditor/syntaxhighlightbasedlg.cpp:212 +msgid "Styles" +msgstr "样式" -#: Gizmos/gizmos_base.cpp:76 -msgid "codelite root dir:" -msgstr "CodeLite 根目录:" +#: LiteEditor/syntaxhighlightbasedlg.cpp:237 +msgid "Style Font:" +msgstr "风格字体:" -#: Gizmos/gizmos_base.cpp:81 -msgid "Select the location of codelite's source tree" -msgstr "选择 CodeLite 源代码树的位置" +#: LiteEditor/syntaxhighlightbasedlg.cpp:242 +msgid "Select a font to be used with the selected style" +msgstr "为所选风格选择字体" -#: Gizmos/gizmos_base.cpp:90 -msgid "Select the plugin project path" -msgstr "选择插件项目路径" +#: LiteEditor/syntaxhighlightbasedlg.cpp:246 +msgid "Foreground Colour:" +msgstr "前景色:" -#: Gizmos/PluginWizard.cpp:38 -msgid "Invalid plugin name" -msgstr "无效的插件名称" +#: LiteEditor/syntaxhighlightbasedlg.cpp:251 +msgid "Select the foreground colour for the selected style" +msgstr "为所选风格选择前景色" -#: Gizmos/PluginWizard.cpp:44 -msgid "codelite folder does not exists" -msgstr "CodeLite 文件夹不存在" +#: LiteEditor/syntaxhighlightbasedlg.cpp:260 +msgid "Select the background colour for the selected style" +msgstr "为所选风格选择背景色" -#: Gizmos/PluginWizard.cpp:50 -msgid "The selected plugin folder does not exist" -msgstr "已选择插件目录不存在" +#: LiteEditor/syntaxhighlightbasedlg.cpp:266 +msgid "Style is EOL Filled" +msgstr "风格使用EOL填充" -#: Gizmos/gizmos.cpp:72 +#: LiteEditor/syntaxhighlightbasedlg.cpp:268 msgid "" -"Wizards Plugin - a collection of useful wizards for C++:\n" -"new Class Wizard, new wxWidgets Wizard, new Plugin Wizard" -msgstr "" -"向导插件 - 实用的 C++ 向导合集:\n" -"新建类向导,新建 wxWidgets 向导,新建插件向导" +"If a line ends with a character/word which has this style, the remaining of " +"the line will be coloured with this style background colour" +msgstr "如果某行使用此样式的字符/单词结尾,此行剩余部分将配色为此样式背景色" -#: Gizmos/gizmos.cpp:166 -msgid "Wizards Plugin - a collection of useful utils for C++" -msgstr "向导插件 - 有用的C++工具集" +#: LiteEditor/syntaxhighlightbasedlg.cpp:274 +msgid "Styling Within Pre-processor Line" +msgstr "预处理程序行样式" -#: Gizmos/gizmos.cpp:221 -msgid "New CodeLite Plugin Wizard..." -msgstr "新建 CodeLite 插件向导..." +#: LiteEditor/syntaxhighlightbasedlg.cpp:283 +msgid "Edit Lexer Keyword Sets:" +msgstr "编辑词法分析程序关键字设置:" -#: Gizmos/gizmos.cpp:223 -msgid "New Class Wizard..." -msgstr "新建类向导..." +#: LiteEditor/syntaxhighlightbasedlg.cpp:291 +msgid "Set &0" +msgstr "设置 &0" -#: Gizmos/gizmos.cpp:225 -msgid "New wxWidgets Project Wizard..." -msgstr "新建 wxWidgets 项目向导..." +#: LiteEditor/syntaxhighlightbasedlg.cpp:295 +msgid "Set &1" +msgstr "设置 &1" -#: Gizmos/gizmos.cpp:240 -msgid "&New Class..." -msgstr "新建类(&N)..." +#: LiteEditor/syntaxhighlightbasedlg.cpp:299 +msgid "Set &2" +msgstr "设置 &2" -#: Gizmos/gizmos.cpp:329 -msgid "Failed to load wizard's file 'plugin.cpp.wizard'" -msgstr "无法加载向导的文件 'plugin.cpp.wizard'" +#: LiteEditor/syntaxhighlightbasedlg.cpp:303 +msgid "Set &3" +msgstr "设置 &3" -#: Gizmos/gizmos.cpp:357 -msgid "Failed to load wizard's file 'plugin.h.wizard'" -msgstr "无法加载向导的文件 'plugin.h.wizard'" +#: LiteEditor/syntaxhighlightbasedlg.cpp:307 +msgid "Set &4" +msgstr "设置 &4" -#: Gizmos/newwxprojectbasedlg.cpp:54 -msgid "Choose a name to give the project" -msgstr "为项目选择一个名称" +#: LiteEditor/syntaxhighlightbasedlg.cpp:312 +msgid "Text Selection" +msgstr "选择文本" -#: Gizmos/newwxprojectbasedlg.cpp:58 -msgid "Project Path:" -msgstr "项目路径:" +#: LiteEditor/syntaxhighlightbasedlg.cpp:324 +msgid "Selected Text Background Colour:" +msgstr "选择文本背景色:" -#: Gizmos/newwxprojectbasedlg.cpp:65 -msgid "Application Type:" -msgstr "应用程序类型:" +#: LiteEditor/syntaxhighlightbasedlg.cpp:332 +msgid "Use Custom Selection Forground Colour:" +msgstr "使用自定义选择设置前景颜色:" -#: Gizmos/newwxprojectbasedlg.cpp:69 -msgid "Simple main with wxWidgets enabled" -msgstr "启用wxWidgets 的简单 main 函数" +#: LiteEditor/syntaxhighlightbasedlg.cpp:338 +msgid "" +"You can choose to override the default selection colouring by enabling this " +"checkbox" +msgstr "启用此选框您就可以覆盖默认选定的颜色" -#: Gizmos/newwxprojectbasedlg.cpp:69 -msgid "GUI application with Main Frame" -msgstr "包含主要框架的 GUI 程序" +#: LiteEditor/syntaxhighlightbasedlg.cpp:342 +msgid "Selected Text Foreground Colour:" +msgstr "已选定的文本前景色:" -#: Gizmos/newwxprojectbasedlg.cpp:69 -msgid "GUI frame-based application (wxFormBuilder)" -msgstr "基于框架的 GUI 程序(wxFormBuilder)" +#: LiteEditor/syntaxhighlightbasedlg.cpp:532 +msgid "Theme Name:" +msgstr "主题名称:" -#: Gizmos/newwxprojectbasedlg.cpp:69 -msgid "GUI dialog-based application (wxFormBuilder)" -msgstr "基于对话框的 GUI 程序(wxformbuilder)" +#: LiteEditor/syntaxhighlightbasedlg.cpp:537 +msgid "Set the theme name" +msgstr "设置主题名称" -#: Gizmos/newwxprojectbasedlg.cpp:73 -msgid "" -"The normal choice will be 'GUI application', but choose 'Simple main' for a " -"wx console app" -msgstr "一般选择为‘GUI 程序’,wx 控制台程序请选择‘简单 main’" +#: LiteEditor/syntaxhighlightbasedlg.cpp:545 +#: CodeDesigner/codedesigneritembasedlg.cpp:43 +msgid "Language:" +msgstr "编程语言:" -#: Gizmos/newwxprojectbasedlg.cpp:83 -msgid "Advanced Settings:" -msgstr "高级设置:" +#: LiteEditor/syntaxhighlightbasedlg.cpp:551 +msgid "Make this theme for this language" +msgstr "为该语言使用此主题" + +#: LiteEditor/syntaxhighlightbasedlg.cpp:555 +msgid "Based on Theme:" +msgstr "基于主题:" + +#: LiteEditor/syntaxhighlightbasedlg.cpp:561 +msgid "Set the base theme for this new theme" +msgstr "为新的主题设置基本主题" -#: Gizmos/newwxprojectbasedlg.cpp:96 -msgid "Use precompiled headers" -msgstr "使用预编译的头文件" +#: LiteEditor/debugcoredumpbase.h:89 +msgid "Debug a core dump" +msgstr "调试核心转储" -#: Gizmos/newwxprojectbasedlg.cpp:99 -msgid "Use MS Windows resources" -msgstr "使用 MS Windows资源" +#: LiteEditor/debugcoredump.cpp:152 +msgid "Select core dump:" +msgstr "选择核心转储:" -#: Gizmos/newwxprojectbasedlg.cpp:102 -msgid "Add -mwindows flag to avoid a terminal console in MSWin GUI apps" -msgstr "附加 -mwindows 标志,以避免在MSWin GUI程序中启用终端" +#: LiteEditor/listctrlpanel.cpp:121 +msgid "Copy Backtrace to Clipboard" +msgstr "复制回溯到剪贴板" -#: Gizmos/newwxprojectbasedlg.cpp:103 -msgid "" -"Without this flag, there will be an unnecessary, visible terminal window " -"when your app runs on MSWindows" -msgstr "" -"如果无此标志,您将会在运行MSWindows程序时,出现一个不必要的可视终端窗口" +#: LiteEditor/project_settings_base_dlg.cpp:128 +msgid "Project enabled" +msgstr "启用项目" -#: Gizmos/newwxprojectbasedlg.cpp:110 -msgid "Basics" -msgstr "基本" +#: LiteEditor/project_settings_base_dlg.cpp:130 +msgid "" +"When unchecked, this project will not be built for the current build " +"configuration" +msgstr "未选中时,对于当前构建配置该项目将不会被构建" -#: Gizmos/newwxprojectbasedlg.cpp:115 -msgid "Use Unicode Build of wxWidgets" -msgstr "使用 wxWidgets 的 Unicode 构建版本" +#: LiteEditor/project_settings_base_dlg.cpp:142 +msgid "General Project Settings" +msgstr "常规项目设置" -#: Gizmos/newwxprojectbasedlg.cpp:117 -msgid "Uses an unicode configuration if found." -msgstr "如果存在,使用现有的 Unicode 配置。" +#: LiteEditor/project_settings_base_dlg.cpp:147 +msgid "Dynamic Library" +msgstr "动态链接库" -#: Gizmos/newwxprojectbasedlg.cpp:121 -msgid "Use Static wxWidgets libraries" -msgstr "使用静态 wxWidgets 库" +#: LiteEditor/project_settings_base_dlg.cpp:148 +msgid "Static Library" +msgstr "静态库" -#: Gizmos/newwxprojectbasedlg.cpp:122 -msgid "Uses a static configuration if found." -msgstr "如果存在,使用现有的静态配置。" +#: LiteEditor/project_settings_base_dlg.cpp:149 +msgid "Executable" +msgstr "可执行文件:" -#: Gizmos/newwxprojectbasedlg.cpp:126 -msgid "Use Universal wxWidgets libraries" -msgstr "使用通用的 wxWidgets 库" +#: LiteEditor/project_settings_base_dlg.cpp:150 +msgid "Project Type" +msgstr "项目类型:" -#: Gizmos/newwxprojectbasedlg.cpp:127 -msgid "Uses an universal configuration if found." -msgstr "如果存在,使用现有的通用配置." +#: LiteEditor/project_settings_base_dlg.cpp:151 +msgid "Sets the type of the project" +msgstr "选择项目类型" -#: Gizmos/newwxprojectbasedlg.cpp:144 -msgid "Use selected wxWidgets version." -msgstr "使用选定的 wxWidgets 版本。" +#: LiteEditor/project_settings_base_dlg.cpp:156 +msgid "" +"Select the compiler to use. The compiler controls two aspects of the " +"project:\n" +"- If the project is _not_ a custom build, then this compiler is used for " +"compilation\n" +"- CodeLite uses the compiler definition for parsing the output" +msgstr "" +"选择要使用的编译器。编译器将控制该项目的两个方面:\n" +"- 如果该项目不属于自定义构建,那么这个编译器将被用来编译\n" +"- CodeLite 使用编译器定义来解析输出" -#: Gizmos/newwxprojectbasedlg.cpp:148 -msgid "Prefix:" -msgstr "前缀:" +#: LiteEditor/project_settings_base_dlg.cpp:158 +msgid "Intermediate Folder" +msgstr "中间文件夹" -#: Gizmos/newwxprojectbasedlg.cpp:153 -msgid "Path of the wxWidgets installation (optional)." -msgstr "wxWidgets 安装路径(可选)。" +#: LiteEditor/project_settings_base_dlg.cpp:159 +msgid "" +"The name of the folder used for the generated objects during compilation" +msgstr "在编译过程中文件夹的名称将会用于生成的对象" -#: Gizmos/newwxprojectbasedlg.cpp:162 -msgid "wxWidgets settings" -msgstr "wxWidgets 设置" +#: LiteEditor/project_settings_base_dlg.cpp:161 +msgid "Output File" +msgstr "输出文件" -#: Gizmos/newinheritancebasedlg.cpp:22 -msgid "Parent class:" -msgstr "父类:" +#: LiteEditor/project_settings_base_dlg.cpp:162 +msgid "The name of the output file (e.g. the executable file name)" +msgstr "输出文件的名称(如可执行文件名)" -#: Gizmos/newinheritancebasedlg.cpp:37 -msgid "Inheritance access:" -msgstr "继承访问:" +#: LiteEditor/project_settings_base_dlg.cpp:164 +#: codelitephp/php-plugin/php_ui.cpp:723 +msgid "Pause when execution ends" +msgstr "执行结束时暂停" -#: Gizmos/newclassbasedlg.cpp:35 -msgid "Class Name:" -msgstr "类名称:" +#: LiteEditor/project_settings_base_dlg.cpp:165 +msgid "" +"After the execution of the program ends, show a console with the message " +"\"Hit any key to continue...\"\n" +"This is useful when you wish to view the output printed to stdout before the " +"console terminates" +msgstr "" +"在程序运行结束后,显示一个控制台消息 \"按任意键继续...\"\n" +"当你希望在控制台终止之后看到标准输出,这是非常有用的" -#: Gizmos/newclassbasedlg.cpp:40 -msgid "The class name" -msgstr "类名称" +#: LiteEditor/project_settings_base_dlg.cpp:167 +msgid "Execution" +msgstr "执行" -#: Gizmos/newclassbasedlg.cpp:55 -msgid "Namespace:" -msgstr "命名空间:" +#: LiteEditor/project_settings_base_dlg.cpp:170 +msgid "This program is a GUI application" +msgstr "这个程序是一个 GUI 应用程序" -#: Gizmos/newclassbasedlg.cpp:60 -msgid "Place this class inside a namespace" -msgstr "把这个类放进命名空间内" +#: LiteEditor/project_settings_base_dlg.cpp:171 +msgid "" +"By marking the project as a GUI project, CodeLite will launch the program " +"without any console terminal wrapping the process execution" +msgstr "" +"通过标记项目为一个 GUI 项目,在程序启动时CodeLite 将会避免任何控制台终端来包" +"装流程执行" -#: Gizmos/newclassbasedlg.cpp:64 Gizmos/newclassbasedlg.cpp:92 -#: Gizmos/newclassbasedlg.cpp:107 ExternalTools/newtoolbase.cpp:57 -#: ExternalTools/newtoolbase.cpp:67 ExternalTools/newtoolbase.cpp:98 -#: ExternalTools/newtoolbase.cpp:108 -msgid "Browse..." -msgstr "浏览..." +#: LiteEditor/project_settings_base_dlg.cpp:173 +msgid "Executable to Run / Debug" +msgstr "运行/调试可执行文件" -#: Gizmos/newclassbasedlg.cpp:70 -msgid "Block Guard:" -msgstr "段落向导:" +#: LiteEditor/project_settings_base_dlg.cpp:174 +msgid "The executable to run / debug" +msgstr "运行/调试可执行文件" -#: Gizmos/newclassbasedlg.cpp:75 -msgid "" -"Set block guard to prevent multiple file inclusion. If left empty, the class " -"name is used" -msgstr "设置保护段落以防止被多次包含。如果留空,类名会使用。" +#: LiteEditor/project_settings_base_dlg.cpp:177 +msgid "Working Directory" +msgstr "工作目录" -#: Gizmos/newclassbasedlg.cpp:88 -msgid "" -"The new class needs to be put somewhere. Select which of the project's " -"virtual folders to use." -msgstr "新建类需要存放在某个地方。请选择项目所使用的虚拟文件夹。" +#: LiteEditor/project_settings_base_dlg.cpp:178 +msgid "The working directory to set before executing or debugging the program" +msgstr "工作目录需要在执行或调试程序前设置" -#: Gizmos/newclassbasedlg.cpp:98 -msgid "Generated File(s) Path:" -msgstr "生成的文件路径:" +#: LiteEditor/project_settings_base_dlg.cpp:181 +msgid "Program Arguments" +msgstr "程序参数" -#: Gizmos/newclassbasedlg.cpp:103 +#: LiteEditor/project_settings_base_dlg.cpp:182 msgid "" -"Where on the filesystem should the new class's files be put? This will " -"normally be the directory corresponding to the Virtual Directory; but you " -"can enter an alternative directory here if you wish." -msgstr "" -"在文件系统中新建类的文件应该放在哪里?通常是该目录对应到虚拟文件夹;但是如果" -"您愿意的话,您可以在这里输入另一个目录。" +"The command line arguments to pass to the program when executing or " +"debugging it" +msgstr "当执行或调试时传递命令行参数给程序" -#: Gizmos/newclassbasedlg.cpp:115 -msgid "Generated File:" -msgstr "生成的文件:" +#: LiteEditor/project_settings_base_dlg.cpp:184 +msgid "Debugging" +msgstr "调试中" + +#: LiteEditor/project_settings_base_dlg.cpp:190 +msgid "Select the debugger type to use for this project" +msgstr "选择用于这个项目的调试器类型" -#: Gizmos/newclassbasedlg.cpp:122 -msgid "Use underscores to separate filename words (see tooltip) " -msgstr "启用下划线分割文件名单词(见工具提示)" +#: LiteEditor/project_settings_base_dlg.cpp:192 +msgid "Use separate debugger args" +msgstr "启用单独的调试器参数" -#: Gizmos/newclassbasedlg.cpp:124 +#: LiteEditor/project_settings_base_dlg.cpp:193 msgid "" -"If the class name is FooBarBaz, call the files foo_bar_baz.cpp etc instead " -"of foobarbaz.cpp" -msgstr "" -"如果类的名称是 FooBarBaz 之类的,将会使用 foo_bar_baz.cpp 等替换 foobarbaz." -"cpp" - -#: Gizmos/newclassbasedlg.cpp:128 -msgid "Inline class" -msgstr "内联类" +"When enabled (.e.g. set to True) codelite will pass the arguments set in " +"'Debug Program Arguments'" +msgstr "当启用(如设置为 True)CodeLite时将会在“调试程序参数”中传递参数设置" -#: Gizmos/newclassbasedlg.cpp:130 -msgid "Put both the declaration and the implementation in the header file" -msgstr "声明和实现都放在头文件" +#: LiteEditor/project_settings_base_dlg.cpp:195 +msgid "Debug Program Arguments" +msgstr "调试程序参数" -#: Gizmos/newclassbasedlg.cpp:134 -msgid "Create .hpp instead of .h" -msgstr "创建 .hpp 文件替代 .h 文件" +#: LiteEditor/project_settings_base_dlg.cpp:196 +msgid "Arguments to pass to the debugger" +msgstr "参数传递给调试器" -#: Gizmos/newclassbasedlg.cpp:136 -msgid "If checked, the generated header file will be foo.hpp instead of foo.h" -msgstr "如果勾选此项,生成的头文件将用 foo.hpp 代替 foo.h" +#: LiteEditor/project_settings_base_dlg.cpp:234 +msgid "Compiler is not required for this project" +msgstr "该项目不需要编译器" -#: Gizmos/newclassbasedlg.cpp:141 -msgid "" -"This is the base-name for the file(s) that will be generated. If the new " -"class is called Foo, by default the files will be foo.cpp and foo.h. If " -"you'd prefer different names, type the base-name here." -msgstr "" -"这是将要生成的文件的基本名称。如果新的类被称作 Foo ,那么在默认情况下文件将被" -"命名为 foo.cpp 和 foo.h。如果您喜欢不同的名称,请在这里输入基本名称。" +#: LiteEditor/project_settings_base_dlg.cpp:247 +#: LiteEditor/project_settings_base_dlg.cpp:350 +#: LiteEditor/project_settings_base_dlg.cpp:944 +msgid "Options" +msgstr "选项" -#: Gizmos/newclassbasedlg.cpp:152 -msgid "Inherits:" -msgstr "继承:" +#: LiteEditor/project_settings_base_dlg.cpp:252 +msgid "Append to global settings" +msgstr "追加到全局设置" -#: Gizmos/newclassbasedlg.cpp:168 -msgid "Add..." -msgstr "添加..." +#: LiteEditor/project_settings_base_dlg.cpp:253 +msgid "Overwrite global settings" +msgstr "覆盖全局设置" -#: Gizmos/newclassbasedlg.cpp:169 -msgid "Click to add a class from which to derive" -msgstr "单击以添加一个派生类" +#: LiteEditor/project_settings_base_dlg.cpp:254 +msgid "Prepend to global settings" +msgstr "优先考虑全局设置" -#: Gizmos/newclassbasedlg.cpp:185 -msgid "Declare this class non-copyable" -msgstr "声明此类不可复制" +#: LiteEditor/project_settings_base_dlg.cpp:255 +msgid "Use with Global Settings" +msgstr "启用全局设置" -#: Gizmos/newclassbasedlg.cpp:190 -msgid "Implement all virtual functions" -msgstr "实现全部虚函数" +#: LiteEditor/project_settings_base_dlg.cpp:256 +msgid "" +"Define how CodeLite will merge the compiler settings defined in the 'Global " +"Settings' with the settings defined on this page" +msgstr "定义CodeLite如何合并编译器的全局设置以及本页中的设置" -#: Gizmos/newclassbasedlg.cpp:195 -msgid "This is a singleton class" -msgstr "这是一个单体类" +#: LiteEditor/project_settings_base_dlg.cpp:258 +#: LiteEditor/project_settings_base_dlg.cpp:925 +msgid "C++ Compiler Options" +msgstr "C++ 编译器选项:" -#: Gizmos/newclassbasedlg.cpp:200 -msgid "Implement all pure virtual functions" -msgstr "实现全部纯虚函数" +#: LiteEditor/project_settings_base_dlg.cpp:259 +msgid "" +"Additional compiler options to pass to the compiler provided as a semi-colon " +"delimited list" +msgstr "传递给编译器的附加编译选项以分号分隔列表" -#: Gizmos/newclassbasedlg.cpp:205 -msgid "Virtual destructor" -msgstr "虚拟析构函数" +#: LiteEditor/project_settings_base_dlg.cpp:262 +#: LiteEditor/project_settings_base_dlg.cpp:929 +msgid "C Compiler Options" +msgstr "C 编译器选项" -#: Gizmos/newclassdlg.cpp:62 -msgid "Access" -msgstr "访问" +#: LiteEditor/project_settings_base_dlg.cpp:263 +msgid "" +"Additional C compiler options to pass to the compiler provided as a semi-" +"colon delimited list (used for C files only)" +msgstr "传递给编译器的附加 C 编译选项以分号分隔列表(仅用于 C 文件)" -#: Gizmos/newclassdlg.cpp:235 Gizmos/newclassdlg.cpp:248 -msgid "' is not a valid C++ qualifier" -msgstr "' 不是有效的 C++ 限定词" +#: LiteEditor/project_settings_base_dlg.cpp:266 +msgid "Assembler Options" +msgstr "汇编器选项" -#: Gizmos/newclassdlg.cpp:259 -msgid "': directory does not exist" -msgstr "': 目录不存在" +#: LiteEditor/project_settings_base_dlg.cpp:267 +msgid "" +"Additional assembler options to pass to the assembler provided as a semi-" +"colon delimited list\n" +"(used for .s files only)" +msgstr "" +"传递给汇编器的附加选项以分号分隔列表\n" +"(仅用于 .s 文件)" -#: Gizmos/newclassdlg.cpp:265 -msgid "Empty file name" -msgstr "文件名为空" +#: LiteEditor/project_settings_base_dlg.cpp:269 +msgid "Include Paths" +msgstr "Include 路径" -#: Gizmos/newclassdlg.cpp:272 Gizmos/newclassdlg.cpp:279 -#, c-format -msgid "A file with this name: '%s' already exists, continue anyway?" -msgstr "文件: '%s' 已存在,是否继续?" +#: LiteEditor/project_settings_base_dlg.cpp:270 +msgid "" +"Include path to pass to the compiler (provided as semi-colon delimited list)" +msgstr "传递给编译器的包含路径(以分号分隔的列表)" -#: Gizmos/newclassdlg.cpp:285 -msgid "Please select a virtual directory" -msgstr "请选择虚拟目录" +#: LiteEditor/project_settings_base_dlg.cpp:274 +msgid "" +"macros (\"defines\") to pass to the compiler (provided as semi-colon " +"delimited list)" +msgstr "传递给编译器的宏定义(以分号分隔的列表)" -#: Gizmos/newclassdlg.cpp:363 -msgid "Select Generated Files Path:" -msgstr "选择生成的文件路径:" +#: LiteEditor/project_settings_base_dlg.cpp:277 +msgid "Pre Compiled Header" +msgstr "预编译头文件" -#: Gizmos/newwxprojectdlg.cpp:79 Gizmos/newwxprojectdlg.cpp:87 -msgid "Invalid project name '" -msgstr "无效的项目名称 '" +#: LiteEditor/project_settings_base_dlg.cpp:281 +msgid "Pre compiled header" +msgstr "预编译头文件" -#: Gizmos/newwxprojectdlg.cpp:80 Gizmos/newwxprojectdlg.cpp:88 -msgid "Valid characters for project name are [0-9A-Za-z_]" -msgstr "项目名称有效字符为 [0-9A-Za-z_]" +#: LiteEditor/project_settings_base_dlg.cpp:284 +msgid "Explicitly Include PCH" +msgstr "明确包含 PCH" -#: Gizmos/newwxprojectdlg.cpp:102 -#, c-format +#: LiteEditor/project_settings_base_dlg.cpp:285 msgid "" -"Failed to create the path: %s\n" -"A permissions problem, perhaps?" +"Explicitly include the PCH file in the command line using a compiler switch " +"(.e.g -include /path/to/pch)" msgstr "" -"无法创建路径:%s\n" -"可能是权限问题" +"在命令行中使用编译器开关可以明确地将 PCH 文件包含在内(例如 -include /path/to/" +"pch)" -#: Gizmos/newclassbasedlg.h:74 -msgid "New Class" -msgstr "新建类" +#: LiteEditor/project_settings_base_dlg.cpp:287 +msgid "PCH Compile Flags" +msgstr "PCH 编译标志" -#: Gizmos/newwxprojectbasedlg.h:82 -msgid "New wxWidgets Project" -msgstr "新建 wxWidgets 项目" +#: LiteEditor/project_settings_base_dlg.cpp:288 +msgid "Use separate compilation flags for the PCH file" +msgstr "为 PCH 文件使用单独的编译标志" -#: Debugger/dbgcmd.cpp:413 -#, c-format +#: LiteEditor/project_settings_base_dlg.cpp:293 +msgid "Append" +msgstr "追加" + +#: LiteEditor/project_settings_base_dlg.cpp:296 +msgid "PCH Compile Flags Policy" +msgstr "PCH 编译标志规则" + +#: LiteEditor/project_settings_base_dlg.cpp:297 +msgid "" +"Set the PCH flags policy to:\n" +"* Append - this means that the flags set in the 'PCH Compile Flags' field " +"will be appended to default flags\n" +"* Replace - the 'PCH Compile Flags' will replace any other flags" +msgstr "" +"设置 PCH 标志规则为:\n" +"* 追加 - 这意味着设置在“PCH 编译标志”字段的标志将被追加到默认标志\n" +"* 替换 - “PCH 编译标志”将取代任意其它标志" + +#: LiteEditor/project_settings_base_dlg.cpp:337 +msgid "Linker is not required for this project" +msgstr "此项目不需要链接器" + +#: LiteEditor/project_settings_base_dlg.cpp:355 +#: LiteEditor/project_settings_base_dlg.cpp:612 +msgid "Use with global settings" +msgstr "启用全局设置" + +#: LiteEditor/project_settings_base_dlg.cpp:356 +#: LiteEditor/project_settings_base_dlg.cpp:613 msgid "" -"Internal breakpoint was hit (id=%d), Applying user breakpoints and continuing" -msgstr "内部断点(id=%d)被触发,应用用户断点并继续" +"Define how CodeLite will merge the linker settings defined in the 'Global " +"Settings' with the settings defined on this page" +msgstr "定义CodeLite如何合并链接器的全局设置以及本页中的设置" -#: Debugger/dbgcmd.cpp:491 -msgid "Program exited normally." -msgstr "程序正常退出." +#: LiteEditor/project_settings_base_dlg.cpp:359 +msgid "Add additional linker options separated by semi-colon" +msgstr "添加附加的链接选项并使用分号分隔" -#: Debugger/dbgcmd.cpp:541 -#, c-format -msgid "ERROR: failed to place breakpoint: \"%s\"" -msgstr "错误:无法放置断点:\"%s\"" +#: LiteEditor/project_settings_base_dlg.cpp:362 +msgid "Libraries Search Path" +msgstr "库搜索路径" -#: Debugger/dbgcmd.cpp:556 -msgid "Found the breakpoint ID!" -msgstr "找到断点 ID!" +#: LiteEditor/project_settings_base_dlg.cpp:363 +msgid "Add additional library search paths separated by semi-colon" +msgstr "添加附加的库搜索路径并使用分号分隔" -#: Debugger/dbgcmd.cpp:577 -#, c-format -msgid "Successfully set breakpoint %ld at: " -msgstr "成功设置断点 %ld 于:" +#: LiteEditor/project_settings_base_dlg.cpp:366 +#: LiteEditor/project_settings_base_dlg.cpp:952 WebTools/WebToolsBase.cpp:78 +msgid "Libraries" +msgstr "库" -#: Debugger/dbgcmd.cpp:580 -#, c-format -msgid "Successfully set conditional breakpoint %ld at: " -msgstr "成功设置条件断点 %ld 于:" +#: LiteEditor/project_settings_base_dlg.cpp:367 +#: LiteEditor/project_settings_base_dlg.cpp:953 +msgid "Enter any extra library names, separated by';' e.g. Foo or Foo;Bar" +msgstr "输入任意附加 lib 库名称,并使用“;”分隔,例如 Foo 或 Foo;Bar" -#: Debugger/dbgcmd.cpp:583 -#, c-format -msgid "Successfully set temporary breakpoint %ld at: " -msgstr "成功设置临时断点 %ld 于:" +#: LiteEditor/project_settings_base_dlg.cpp:417 +msgid "Select debugger path. Leave empty to use the default:" +msgstr "选择调试器路径。填空使用默认值:" -#: Debugger/dbgcmd.cpp:588 -#, c-format -msgid "Successfully set watchpoint %ld watching: " -msgstr "成功设置监视点 %ld :" +#: LiteEditor/project_settings_base_dlg.cpp:443 +msgid "Debugger Search Paths" +msgstr "调试器搜索路径:" -#: Debugger/dbgcmd.cpp:591 -#, c-format -msgid "Successfully set read watchpoint %ld watching: " -msgstr "成功设置读取监视点 %ld :" +#: LiteEditor/project_settings_base_dlg.cpp:457 +msgid "&Add.." +msgstr "添加(&A)..." -#: Debugger/dbgcmd.cpp:594 -#, c-format -msgid "Successfully set read/write watchpoint %ld watching: " -msgstr "成功设置读/写监视点 %ld :" +#: LiteEditor/project_settings_base_dlg.cpp:461 +msgid "&Delete..." +msgstr "删除(&D)..." -#: Debugger/dbgcmd.cpp:602 -msgid "address " -msgstr "地址" +#: LiteEditor/project_settings_base_dlg.cpp:466 +msgid "Startup Commands" +msgstr "启动命令" -#: Debugger/dbgcmd.cpp:808 -msgid "Successfully connected to debugger server" -msgstr "成功连接到调试服务器" +#: LiteEditor/project_settings_base_dlg.cpp:471 +msgid "" +"Enter here any commands that should be passed to the debugger on startup:" +msgstr "在此输入传递给调试器启动时的命令:" -#: Debugger/dbgcmd.cpp:811 -msgid "Applying breakpoints..." -msgstr "应用断点..." +#: LiteEditor/project_settings_base_dlg.cpp:482 +msgid "Remote Attach Commands" +msgstr "远程连接命令" -#: Debugger/dbgcmd.cpp:816 -msgid "Applying breakpoints... done" -msgstr "应用断点...完成" +#: LiteEditor/project_settings_base_dlg.cpp:487 +msgid "" +"Enter here any commands that should be passed to the debugger after " +"attaching the remote target:" +msgstr "在此输入连接远程目标后需要传递给调试器的命令:" -#: Debugger/dbgcmd.cpp:967 -#, c-format -msgid "Breakpoint %d condition cleared" -msgstr "断点 %d 的条件已清除" +#: LiteEditor/project_settings_base_dlg.cpp:497 +msgid "Debugging a remote target" +msgstr "调试远程目标" -#: Debugger/dbgcmd.cpp:969 -#, c-format -msgid "Condition %s set for breakpoint %d" -msgstr "条件 %s 已设置,针对断点 %d" +#: LiteEditor/project_settings_base_dlg.cpp:509 +msgid "Host / tty:" +msgstr "主机 / 终端:" -#: Debugger/debuggergdb.cpp:534 -msgid "Can't interrupt debuggee process: I don't know its PID!" -msgstr "不能中断调试过程:我不知道它的PID!" +#: LiteEditor/project_settings_base_dlg.cpp:531 +msgid "Extended Protocol" +msgstr "已扩展协议" -#: Debugger/debuggergdb.cpp:677 -msgid "Failed to start debugger: permission denied" -msgstr "启动调试器失败:权限不够" +#: LiteEditor/project_settings_base_dlg.cpp:533 +msgid "" +"Enable extended mode. In extended mode, the remote server is made " +"persistent.\n" +"i.e. it does not go down after the debug session ends" +msgstr "" +"启用扩展模式。在扩展模式中,远程服务器是持续的。\n" +"即:它不会在调试会话结束后停止" -#: Outline/wxcrafter.cpp:29 -msgid "Search a symbol" -msgstr "搜索符号" +#: LiteEditor/project_settings_base_dlg.cpp:615 +#: LiteEditor/project_settings_base_dlg.cpp:959 +msgid "Resource Compiler Options" +msgstr "资源编译器选项" -#: Outline/outline_symbol_tree.cpp:42 -msgid "Include Files" -msgstr "包含文件" +#: LiteEditor/project_settings_base_dlg.cpp:616 +#: LiteEditor/project_settings_base_dlg.cpp:960 +msgid "Resource compiler options provided as semi-colon list" +msgstr "资源编译器选项以分号分隔列表" -#: Outline/outline.cpp:68 -msgid "Show Current the Layout of the current file" -msgstr "显示当前文件的当前布局" +#: LiteEditor/project_settings_base_dlg.cpp:619 +#: LiteEditor/project_settings_base_dlg.cpp:963 +msgid "Additional Search Path" +msgstr "附加搜索路径" -#: Outline/outline.cpp:86 -msgid "Outline Plugin" -msgstr "Outline 插件" +#: LiteEditor/project_settings_base_dlg.cpp:620 +#: LiteEditor/project_settings_base_dlg.cpp:964 +msgid "Resource compiler search path, as semi colon list" +msgstr "资源编译器搜索选项,以分号分隔列表" -#: Outline/outline_tab.cpp:133 -msgid "Open..." -msgstr "打开..." +#: LiteEditor/project_settings_base_dlg.cpp:673 +msgid "Environment variable set to use:" +msgstr "环境变量设置为使用:" -#: CodeLite/clprogressdlgbase.cpp:19 -msgid "MyLabel" -msgstr "我的标签" +#: LiteEditor/project_settings_base_dlg.cpp:682 +msgid "Debugger 'PreDefined Types' set to use:" +msgstr "使用的调试器“预定义类型”:" -#: CodeLite/refactorengine.cpp:323 -msgid "Updating cache..." -msgstr "更新缓存..." +#: LiteEditor/project_settings_base_dlg.cpp:695 +msgid "Additional environment variables:" +msgstr "附加环境变量:" -#: CodeLite/refactorengine.cpp:330 -msgid "Caching file: " -msgstr "缓存文件:" +#: LiteEditor/project_settings_base_dlg.cpp:804 +msgid "Enable custom build" +msgstr "启用自定义构建" -#: CodeLite/refactorengine.cpp:367 -msgid "Stage 2/2: Parsing matches..." -msgstr "阶段2/2:分析匹配..." +#: LiteEditor/project_settings_base_dlg.cpp:813 +msgid "Working Directory:" +msgstr "工作目录:" -#: CodeLite/refactorengine.cpp:374 -msgid "Parsing expression " -msgstr "分析表达式" +#: LiteEditor/project_settings_base_dlg.cpp:836 +msgid "Target" +msgstr "目标" -#: CodeLite/refactorengine.cpp:374 -msgid " in file: " -msgstr "在文件:" +#: LiteEditor/project_settings_base_dlg.cpp:837 +msgid "Command" +msgstr "命令" -#: CodeLite/cl_sftp.cpp:91 -msgid "Can't open file: " -msgstr "无法打开文件:" +#: LiteEditor/project_settings_base_dlg.cpp:926 +msgid "" +"Additional compiler options to pass to the compiler provided as a semi-colon " +"delimited list These settings are used by _all_ build configurations (e.g. " +"Release and Debug)" +msgstr "" +"传递给编译器的附加编译选项以分号分隔列表,这些设置将被所有构建配置使用(例如 " +"Release 和 Debug)" -#: CodeLite/cl_sftp.cpp:97 -msgid "Can't write data to file: " -msgstr "无法写入文件:" +#: LiteEditor/project_settings_base_dlg.cpp:930 +msgid "" +"Additional C compiler options to pass to the compiler provided as a semi-" +"colon delimited list These settings are used by _all_ build configurations " +"(e.g. Release and Debug)" +msgstr "" +"传递给编译器的附加 C 编译选项以分号分隔列表,这些设置将被所有构建配置使用(例" +"如 Release 和 Debug)" -#: CodeLite/cl_sftp.cpp:114 -msgid "Failed to list directory: " -msgstr "列出目录失败:" +#: LiteEditor/project_settings_base_dlg.cpp:933 +msgid "Additional Include Paths" +msgstr "附加包含路径" -#: CodeLite/cl_sftp.cpp:169 -msgid "Failed to open remote file: " -msgstr "打开远程文件失败:" +#: LiteEditor/project_settings_base_dlg.cpp:934 +msgid "" +"Compiler search paths for header files. These settings are used by _all_ " +"build configurations (e.g. Release and Debug)" +msgstr "" +"编译器搜索头文件的路径。这些设置会被所有构建配置使用(例如 Release 和 Debug)" -#: CodeLite/cl_sftp.cpp:186 -msgid "Failed to read remote file: " -msgstr "读取远程文件失败:" +#: LiteEditor/project_settings_base_dlg.cpp:938 +msgid "" +"Additional preprocessors definitions provided as a semi-colon delimited list " +"These settings are used by _all_ build configurations (e.g. Release and " +"Debug)" +msgstr "" +"附加的预处理定义以分号分隔列表,这些设置将被所有构建配置使用(例如 Release 和 " +"Debug)" -#: CodeLite/cl_sftp.cpp:202 -msgid "Failed to create directory: " -msgstr "创建目录失败:" +#: LiteEditor/project_settings_base_dlg.cpp:945 +msgid "" +"Additional linker options provided as a semi-colon delimited list These " +"settings are used by _all_ build configurations (e.g. Release and Debug)" +msgstr "" +"附加的链接选项以分号分隔列表,这些设置将被所有构建配置使用(例如 Release 和 " +"Debug)" -#: CodeLite/cl_sftp.cpp:218 -msgid "Failed to rename path. " -msgstr "重命名路径失败。" +#: LiteEditor/project_settings_base_dlg.cpp:948 +msgid "Library Path" +msgstr "库路径" -#: CodeLite/cl_sftp.cpp:233 -msgid "Failed to remove directory: " -msgstr "移除目录失败:" +#: LiteEditor/project_settings_base_dlg.cpp:949 +msgid "" +"Additional library search path provided as a semi-colon delimited list These " +"settings are used by _all_ build configurations (e.g. Release and Debug)" +msgstr "" +"附加的库搜索路径以分号分隔列表,这些设置将被所有构建配置使用(例如 Release 和 " +"Debug)" -#: CodeLite/cl_sftp.cpp:248 -msgid "Failed to unlink path: " -msgstr "分离路径失败:" +#: LiteEditor/project_settings_base_dlg.cpp:1014 +msgid "Dependencies:" +msgstr "依赖:" -#: CodeLite/cl_sftp.cpp:260 -msgid "Could not stat: " -msgstr "无法统计:" +#: LiteEditor/project_settings_base_dlg.cpp:1034 +msgid "Rule action:" +msgstr "规则操作:" -#: CodeLite/cl_ssh.cpp:71 -msgid "Host key for server changed: it is now:\n" -msgstr "现在:主机服务器密钥已更改:\n" +#: LiteEditor/project_settings_base_dlg.cpp:1055 +msgid "" +"Define here a custom makefile rule to be executed in the pre-build steps.\n" +"See the wiki for more help" +msgstr "" +"在此定义构建前步骤中运行的自定义 makefile 规则。\n" +"查看 wiki 获取更多信息" -#: CodeLite/cl_ssh.cpp:73 CodeLite/cl_ssh.cpp:81 CodeLite/cl_ssh.cpp:93 -msgid "Accept server authentication?" -msgstr "接受服务器身份验证?" +#: LiteEditor/project_settings_base_dlg.cpp:1137 +msgid "Macros (clang only):" +msgstr "宏命令(仅 clang)" -#: CodeLite/cl_ssh.cpp:79 +#: LiteEditor/project_settings_base_dlg.cpp:1160 msgid "" -"The host key for this server was not found but an other type of key exists.\n" -msgstr "没有发现该服务器主机密钥,但存在一个其他类型的密钥。\n" +"If checked, pass -std=c++11 to the clang code completion engine to ensure " +"that all c++11 features are recognized properly" +msgstr "" +"如果选中此选项,将传递 -std=c++11 到 clang 代码补全引擎以确保所有 c++11 特性" +"能够被正确识别" -#: CodeLite/cl_ssh.cpp:80 +#: LiteEditor/project_settings_base_dlg.cpp:1166 msgid "" -"An attacker might change the default server key to confuse your client into " -"thinking the key does not exist\n" -msgstr "入侵者可能改变默认服务器密钥来迷惑您的客户端认为密钥不存在\n" +"If checked, pass -std=c++14 to the clang code completion engine to ensure " +"that all c++14 features are recognized properly" +msgstr "" +"如果选中此选项,将传递 -std=c++14 到 clang 代码补全引擎以确保所有 c++14 特性" +"能够被正确识别" -#: CodeLite/cl_ssh.cpp:86 -msgid "Could not find known host file.\n" -msgstr "无法发现已知的主机文件。\n" +#: LiteEditor/project_settings_base_dlg.cpp:1216 +msgid "Target Name:" +msgstr "目标名称:" -#: CodeLite/cl_ssh.cpp:87 -msgid "" -"If you accept the host key here, the file will be automatically created.\n" -msgstr "如果您接受主机密钥,该文件将被自动创建。\n" +#: LiteEditor/project_settings_base_dlg.cpp:1227 +#: wxformbuilder/formbuildsettingsbasedlg.cpp:63 +msgid "Command:" +msgstr "命令:" -#: CodeLite/cl_ssh.cpp:91 -msgid "The server is unknown. Do you trust the host key?\n" -msgstr "服务器是未知的,您是否信任此主机密钥?\n" +#: LiteEditor/tabgroupbasedlgs.h:79 +msgid "Load a tab group" +msgstr "加载标签组" -#: CodeLite/cl_ssh.cpp:92 -msgid "Public key hash: " -msgstr "公钥 hash:" +#: LiteEditor/tabgroupbasedlgs.h:112 +msgid "Save a tab group" +msgstr "保存标签组" -#: CodeLite/cl_ssh.cpp:135 -msgid "Authentication error: " -msgstr "身份验证错误:" +#: LiteEditor/edit_workspace_conf_dlg.cpp:124 +msgid "Remove workspace configuration '" +msgstr "移除工作区配置“" -#: CodeLite/cl_ssh.cpp:193 -msgid "Public Key error: " -msgstr "公钥错误:" +#: LiteEditor/edit_workspace_conf_dlg.cpp:137 +msgid "New Configuration Name:" +msgstr "新配置名称:" -#: cppchecker/cppcheckreportpage.cpp:52 -msgid "Check Interrupted!" -msgstr "检查中断!" +#: LiteEditor/DefaultWorkspacePage.cpp:40 +msgid "Choose a View" +msgstr "请选择一个视图" + +#: LiteEditor/DefaultWorkspacePage.cpp:40 +msgid "Open folder" +msgstr "打开文件夹" -#: cppchecker/cppcheckreportpage.cpp:178 -msgid "cppcheck analysis ended. Found " -msgstr "cppcheck 分析结束, 发现" +#: LiteEditor/tags_options_dlg.cpp:253 +msgid "Add ctags Parser Exclude Path:" +msgstr "添加 ctags 分析器排除路径:" -#: cppchecker/cppcheckreportpage.cpp:178 -msgid " possible errors" -msgstr "可能的错误" +#: LiteEditor/tags_options_dlg.cpp:272 +msgid "Add ctags Parser Search Path:" +msgstr "添加 ctags 分析器搜索路径:" -#: cppchecker/cppcheckreportbasepage.cpp:41 -msgid "Clear the CppCheck report view" -msgstr "清除 CppCheck 报告视图" +#: LiteEditor/tags_options_dlg.cpp:365 +msgid "" +"Accepting this suggestion will replace your old search paths with these " +"paths\n" +"Continue?" +msgstr "" +"接受这项建议,您旧的搜索路径将会被这些路径替换\n" +"是否继续?" -#: cppchecker/cppcheckreportbasepage.cpp:47 -msgid "Stop the current analysis" -msgstr "停止当前分析" - -#: cppchecker/cppchecksettingsdlgbase.h:91 -msgid "CppChecker settings" -msgstr "CppChecker 设置" +#: LiteEditor/renamesymboldlg.cpp:91 +msgid "Invalid C/C++ symbol name" +msgstr "无效的C/C++符号名称" -#: cppchecker/cppchecksettingsdlgbase.h:118 -msgid "CppChecker add warning suppression" -msgstr "CppChecker 添加警告限制" +#: LiteEditor/edit_configuration.h:68 +msgid "Edit Configurations" +msgstr "编辑配置" -#: cppchecker/cppchecksettingsdlg.cpp:89 -msgid "C/C++ Files " -msgstr "C/C++ 文件" +#: LiteEditor/configuration_manager_base_dlg.h:75 +msgid "Configuration Manager" +msgstr "配置管理" -#: cppchecker/cppchecksettingsdlg.cpp:94 -msgid "Add File(s):" -msgstr "添加文件:" +#: LiteEditor/editorsettingsbookmarksbasepanel.cpp:41 +msgid "Bookmark Shape:" +msgstr "书签形状:" -#: cppchecker/cppchecksettingsdlg.cpp:132 -msgid "There is already an entry with ID string. Try again?" -msgstr "已经存在具有ID字符串的条目。再试一次?" +#: LiteEditor/editorsettingsbookmarksbasepanel.cpp:50 +msgid "Select bookmark type:" +msgstr "选择书签类型:" -#: cppchecker/cppchecksettingsdlg.cpp:151 -msgid "Really remove this warning suppression, rather than just unticking it?" -msgstr "真的要删除此警告的抑制,而不是仅仅不选中呢?" +#: LiteEditor/editorsettingsbookmarksbasepanel.cpp:61 +msgid "Select the bookmark type from the following list" +msgstr "从下面的列表中选择书签类型" -#: cppchecker/cppchecksettingsdlgbase.cpp:24 -msgid "Run the following extra checks:" -msgstr "运行以下附加检查:" +#: LiteEditor/editorsettingsbookmarksbasepanel.cpp:66 +msgid "Bookmark label:" +msgstr "书签标签:" -#: cppchecker/cppchecksettingsdlgbase.cpp:31 -msgid "Coding style" -msgstr "代码样式" +#: LiteEditor/editorsettingsbookmarksbasepanel.cpp:71 +msgid "" +"The label shown in e.g. a tooltip. You can set it to something descriptive " +"if you wish." +msgstr "所示的标签如工具提示。如果您愿意,您可以将它设置为描述性的东西。" -#: cppchecker/cppchecksettingsdlgbase.cpp:31 -msgid "Performance" -msgstr "性能" +#: LiteEditor/editorsettingsbookmarksbasepanel.cpp:78 +msgid "Background colour:" +msgstr "背景色:" -#: cppchecker/cppchecksettingsdlgbase.cpp:31 -msgid "Portability" -msgstr "可移植性" +#: LiteEditor/editorsettingsbookmarksbasepanel.cpp:86 +msgid "Foreground colour:" +msgstr "前景色:" -#: cppchecker/cppchecksettingsdlgbase.cpp:31 -msgid "Unused functions" -msgstr "未使用的函数" +#: LiteEditor/editorsettingsbookmarksbasepanel.cpp:105 +msgid "'Highlight Matching Word' colour:" +msgstr "“高亮匹配词”颜色:" -#: cppchecker/cppchecksettingsdlgbase.cpp:31 -msgid "Missing includes" -msgstr "缺失 includes" +#: LiteEditor/editorsettingsbookmarksbasepanel.cpp:110 +msgid "" +"This lets you set the 'Highlight Matching Word' colour (the colour of words " +"that match the selection). To set the colour of the selection itself, see " +"'Settings > Syntax Highlight and Fonts'." +msgstr "" +"在这里,您可以设置“高亮匹配词”的颜色(匹配选择词的颜色)。设置选择本身和颜色," +"请到“设置”> “语法高亮显示与字体”中设置。" -#: cppchecker/cppchecksettingsdlgbase.cpp:31 -msgid "Output informative messages" -msgstr "输出的信息" +#: LiteEditor/editorsettingsbookmarksbasepanel.cpp:114 +msgid "'Highlight Matching Word' alpha:" +msgstr "“高亮匹配词”透明度:" -#: cppchecker/cppchecksettingsdlgbase.cpp:31 -msgid "Posix standards" -msgstr "Posix 标准" +#: LiteEditor/editorsettingsbookmarksbasepanel.cpp:119 +msgid "" +"This affects the intensity of the colour set in the field above (for words " +"matching the selection). Choose a value between 0 and 256. Higher values " +"give a less-transparent background." +msgstr "" +"设置颜色强度将会影响上述的字段(匹配选择的单词)。选择一个在 0 到 256 之间的数" +"值。不那么透明的背景应该有一个较大的数值。" -#: cppchecker/cppchecksettingsdlgbase.cpp:31 -msgid "C99 standards" -msgstr "C99 标准" +#: LiteEditor/editorsettingsbookmarksbasepanel.cpp:125 +msgid "Find/FindNext clears highlit matching words" +msgstr "查找/查找下一个清除高亮匹配词" -#: cppchecker/cppchecksettingsdlgbase.cpp:31 -msgid "C++11 standards" -msgstr "C++11 标准" +#: LiteEditor/editorsettingsbookmarksbasepanel.cpp:127 +msgid "" +"By default, 'Find', FindNext and FindPrevious will clear all current " +"'Highlight Matching Word' matches. Untick this box to prevent that happening." +msgstr "" +"默认情况下,“查找”,查找下一个 和 查找前一个 将清除当前的所有“高亮显示匹配" +"词”的匹配项。去掉这个复选框,可以防止这种情况发生。" -#: cppchecker/cppchecksettingsdlgbase.cpp:39 -#: cppchecker/cppchecksettingsdlgbase.cpp:133 -msgid "Tick All" -msgstr "选择全部" +#: LiteEditor/movefuncimplbasedlg.cpp:47 +msgid "Select the file in which to place the function implementation:" +msgstr "选择放置函数实现的文件:" -#: cppchecker/cppchecksettingsdlgbase.cpp:40 -#: cppchecker/cppchecksettingsdlgbase.cpp:134 -msgid "Tick all the boxes" -msgstr "勾选所有方框" +#: LiteEditor/movefuncimplbasedlg.cpp:54 +msgid "Function implementation (you can edit the code below):" +msgstr "函数实现(您可以编辑下面的代码):" -#: cppchecker/cppchecksettingsdlgbase.cpp:44 -#: cppchecker/cppchecksettingsdlgbase.cpp:138 -msgid "Untick All" -msgstr "取消选中所有" +#: LiteEditor/clInitializeDialog.cpp:38 +msgid "CodeLite upgrade" +msgstr "CodeLite 升级" -#: cppchecker/cppchecksettingsdlgbase.cpp:45 -#: cppchecker/cppchecksettingsdlgbase.cpp:139 -msgid "Untick all the boxes" -msgstr "取消所有的勾选" +#: LiteEditor/workspacesettingsbase.h:67 +msgid "Workspace Settings" +msgstr "工作区设置" -#: cppchecker/cppchecksettingsdlgbase.cpp:53 -msgid "Force checking unlimited numbers of configurations" -msgstr "强制检查文件拥有“太多”的配置" +#: LiteEditor/newversionbasedlg.h:74 +msgid "A New version is available!" +msgstr "有新的版本可用!" -#: cppchecker/cppchecksettingsdlgbase.cpp:54 +#: LiteEditor/manageperspectivesbasedlg.h:79 +msgid "Perspectives..." +msgstr "视角..." + +#: LiteEditor/manageperspectivesbasedlg.h:100 +msgid "Save Perspective As..." +msgstr "保存视角为..." + +#: LiteEditor/listctrlpanelbase.cpp:57 codelitephp/php-plugin/php_ui.cpp:1189 +msgid "Level" +msgstr "级别" + +#: LiteEditor/listctrlpanelbase.cpp:58 LLDBDebugger/UI.cpp:477 +msgid "Address" +msgstr "地址" + +#: LiteEditor/configuration_manager_dlg.cpp:226 +#, c-format msgid "" -"By default the maximum number of configurations checked per file is 12. If " -"that might not be enough, tick this box." -msgstr "默认每个文件配置检查数量是 12 个。如果您觉得数量不够,请勾选方框。" +"Settings for workspace configuration '%s' have changed, would you like to " +"save them?" +msgstr "工作区“%s”的设置已改变,是否保存修改?" -#: cppchecker/cppchecksettingsdlgbase.cpp:61 -msgid "Checks" -msgstr "检查" +#: LiteEditor/configuration_manager_dlg.cpp:275 +msgid "Enter New Configuration Name:" +msgstr "输入新配置名称:" -#: cppchecker/cppchecksettingsdlgbase.cpp:66 -msgid "Files to exclude from CppCheck test:" -msgstr "从 CppCheck 测试中排除文件:" +#: LiteEditor/configuration_manager_dlg.cpp:275 +#: LiteEditor/new_configuration_dlg.h:65 +msgid "New Configuration" +msgstr "新建配置" -#: cppchecker/cppchecksettingsdlgbase.cpp:80 -msgid "Add file(s) to the excluded files list" -msgstr "添加文件到排除文件列表" +#: LiteEditor/pluginmgrdlg.cpp:151 +msgid "Plugin Name:" +msgstr "插件名称:" -#: cppchecker/cppchecksettingsdlgbase.cpp:85 -msgid "Remove the selected file from the excluded file list" -msgstr "从排除文件列表中移除选择的文件" +#: LiteEditor/pluginmgrdlg.cpp:155 +msgid "Status:" +msgstr "状态:" -#: cppchecker/cppchecksettingsdlgbase.cpp:90 -msgid "Clear the excluded files list" -msgstr "清除排除文件列表" +#: LiteEditor/shelltab.cpp:61 +msgid "Send:" +msgstr "发送:" -#: cppchecker/cppchecksettingsdlgbase.cpp:101 -msgid "Exclude" -msgstr "排除" +#: LiteEditor/shelltab.cpp:72 codelitephp/php-plugin/php_ui.cpp:1475 +#: codelitephp/php-plugin/php_ui.cpp:1548 +msgid "Send" +msgstr "发送" + +#: LiteEditor/shelltab.cpp:75 +msgid "Stop" +msgstr "停止" -#: cppchecker/cppchecksettingsdlgbase.cpp:106 -msgid "Types of warnings NOT to display:" -msgstr "不显示的警告类型:" +#: LiteEditor/shelltab.cpp:268 +msgid "Continuing..." +msgstr "继续..." -#: cppchecker/cppchecksettingsdlgbase.cpp:121 -msgid "Add an extra check to suppress. You'll need to know its id..." -msgstr "添加一个额外的抑制检查。你需要知道它的ID..." +#: LiteEditor/shelltab.cpp:291 +msgid "Enable debugger full logging" +msgstr "启用完整的调试记录" -#: cppchecker/cppchecksettingsdlgbase.cpp:126 -msgid "Remove the selected suppression from the list" -msgstr "从列表中移除已选择的限制" +#: LiteEditor/ps_build_events_page.cpp:54 +msgid "Set the commands to run in the pre build stage" +msgstr "设置构建阶段前运行的命令" -#: cppchecker/cppchecksettingsdlgbase.cpp:147 -msgid "Remember these settings" -msgstr "记住这些设置" +#: LiteEditor/ps_build_events_page.cpp:58 +msgid "Set the commands to run in the post build stage" +msgstr "设置构建阶段后运行的命令" -#: cppchecker/cppchecksettingsdlgbase.cpp:148 +#: LiteEditor/ps_build_events_page.cpp:60 msgid "" -"If ticked, these settings will be saved and be applied in the future. " -"Otherwise the warnings will be back when you restart CodeLite, which may be " -"what you should want." +"\n" +"Commands starting with the hash sign ('#'), will not be executed" msgstr "" -"如果勾选此项,这些设置将被保存并在将来使用。否则当您重启 CodeLite 时该警告将" -"会重新出现,哪一个可能是你想要的。" +"\n" +"以“#”开头的命令,将不会被执行" -#: cppchecker/cppchecksettingsdlgbase.cpp:155 -msgid "Suppress" -msgstr "抑制" +#: ContinuousBuild/continuousbuild.cpp:62 +#: ContinuousBuild/continuousbuild.cpp:83 +msgid "Continuous build plugin which compiles files on save and report errors" +msgstr "用于编译已保存文件和报告错误的可持续构建插件" -#: cppchecker/cppchecksettingsdlgbase.cpp:228 -msgid "Description to show in the dialog" -msgstr "在对话框中显示的描述" +#: ContinuousBuild/continuousbuild.cpp:243 +msgid "Compiling" +msgstr "编译" -#: cppchecker/cppchecksettingsdlgbase.cpp:233 -msgid "" -"This is what you'll see in the settings dialog. Put whatever you like here; " -"it's not used internally" -msgstr "" -"这就是您将在设置对话框中看到。您可以把任何您喜欢的放在这里;这不是在内部使用" +#: ContinuousBuild/continousbuildbasepane.cpp:33 +msgid "Enable continuous build" +msgstr "启用可持续构建" -#: cppchecker/cppchecksettingsdlgbase.cpp:237 -msgid "The ID string that cppchecker will recognise" -msgstr "cppchecker 将会识别该 ID 字符串" +#: ContinuousBuild/continousbuildbasepane.cpp:40 +msgid "&Clear All" +msgstr "清理全部(&C)" -#: cppchecker/cppchecksettingsdlgbase.cpp:242 -msgid "" -"Enter here the unique ID string that cppchecker can recognise. Examples are " -"\"operatorEqVarError\" and \"uninitMemberVar\". You can find these by " -"grepping the cppchecker source, or by running cppchecker on your app in a " -"terminal and passing the additional parameter '--xml'." -msgstr "" -"此处输入 cppchecker 能识别的唯一 ID 字符串. 例如: \"operatorEqVarError\" " -"and \"uninitMemberVar\". 用来查找代码, 或以附加参数 '--xml'在命令行中为你的程" -"序运行cppchecker" +#: ContinuousBuild/continousbuildbasepane.cpp:62 +msgid "Failed Files:" +msgstr "失败文件:" -#: cppchecker/cppchecker.cpp:43 -msgid "CppChecker integration for CodeLite IDE" -msgstr "CppChecker 集成到 CodeLite IDE" +#: LLDBDebugger/UI.h:123 +msgid "New Breakpoint" +msgstr "新建断点" -#: cppchecker/cppchecker.cpp:73 -msgid "CppCheck integration for CodeLite IDE" -msgstr "CppCheck 集成到 CodeLite IDE" +#: LLDBDebugger/UI.h:186 +msgid "LLDB Settings" +msgstr "LLDB 设置" -#: cppchecker/cppchecker.cpp:160 -msgid "CppCheckPlugin: Terminating cppcheck daemon..." -msgstr "CppCheckPlugin:终止cppcheck进程..." +#: LLDBDebugger/UI.h:254 +msgid "Folder Mapping" +msgstr "文件夹映射" -#: cppchecker/cppchecker.cpp:173 cppchecker/cppchecker.cpp:188 -#: cppchecker/cppchecker.cpp:202 -msgid "Run CppCheck" -msgstr "运行 CppCheck" +#: LLDBDebugger/LLDBCallStack.cpp:103 +msgid "Copy backtrace" +msgstr "复制回溯" -#: cppchecker/cppchecker.cpp:214 cppchecker/cppchecker.cpp:234 -#: cppchecker/cppchecker.cpp:272 -msgid "" -"CppCheckPlugin: CppCheck is currently busy please wait for it to complete " -"the current check" -msgstr "CppCheckPlugin: CppCheck 当前正忙,请等待它完成当前检查" +#: LLDBDebugger/UI.cpp:33 LLDBDebugger/UI.cpp:159 LLDBDebugger/UI.cpp:556 +msgid "#" +msgstr "#" -#: cppchecker/cppchecker.cpp:360 -#, c-format -msgid "Starting cppcheck: %s\n" -msgstr "开始 cppcheck: %s\n" +#: LLDBDebugger/UI.cpp:80 codelitephp/php-plugin/PHPDebugPane.cpp:26 +msgid "Console" +msgstr "控制台" -#: cppchecker/cppchecker.cpp:364 -msgid "Failed to launch codelite_cppcheck process!" -msgstr "无法运行 codelite_cppcheck 进程!" +#: LLDBDebugger/UI.cpp:126 +msgid "Send commands to lldb" +msgstr "发送命令 LLDB" -#: cppchecker/cppchecker.cpp:490 -msgid "Failed to open temporary file " -msgstr "无法打开临时文件" +#: LLDBDebugger/UI.cpp:144 +msgid "New breakpoint" +msgstr "新的断点" -#: ContinuousBuild/continousbuildbasepane.cpp:20 -msgid "Enable continous build" -msgstr "启用持续构建" +#: LLDBDebugger/UI.cpp:146 +msgid "Delete Selected Breakpoint" +msgstr "删除已选择断点" -#: ContinuousBuild/continousbuildbasepane.cpp:26 -msgid "&Clear All" -msgstr "清除全部(&C)" +#: LLDBDebugger/UI.cpp:148 menu.xrc:895 +msgid "Delete All Breakpoints" +msgstr "删除全部断点" -#: ContinuousBuild/continousbuildbasepane.cpp:41 -msgid "Queued Files:" -msgstr "已排队文件:" +#: LLDBDebugger/UI.cpp:215 +msgid "File and Line:" +msgstr "文件和行:" -#: ContinuousBuild/continousbuildbasepane.cpp:55 -msgid "Failed Files:" -msgstr "已失败文件:" +#: LLDBDebugger/UI.cpp:221 DatabaseExplorer/DbSettingDialog.cpp:50 +msgid "File name" +msgstr "文件名" -#: ContinuousBuild/continuousbuild.cpp:37 -#: ContinuousBuild/continuousbuild.cpp:58 -msgid "Continuous build plugin which compiles files on save and report errors" -msgstr "用于编译已保存文件和报告错误的可持续构建插件" +#: LLDBDebugger/UI.cpp:236 +msgid "Function name:" +msgstr "函数名:" + +#: LLDBDebugger/UI.cpp:312 +msgid "Add Watch..." +msgstr "添加监视..." + +#: LLDBDebugger/UI.cpp:314 +msgid "Delete Watch" +msgstr "删除监视" + +#: LLDBDebugger/UI.cpp:371 +msgid "Behaviour" +msgstr "行为" -#: ContinuousBuild/continuousbuild.cpp:218 -msgid "Compiling" -msgstr "编译" +#: LLDBDebugger/UI.cpp:374 +msgid "Raise CodeLite when breakpoint hit" +msgstr "当到达断点时前置 CodeLite" -#: CodeFormatter/codeformatterdlgbase.cpp:44 -msgid "Predefined Styles" -msgstr "预定义风格" +#: LLDBDebugger/UI.cpp:375 +msgid "When a breakpoint is hit, notify the user raising CodeLite" +msgstr "当到达一个断点时,通过前置 Codelite 来通知用户" -#: CodeFormatter/codeformatterdlgbase.cpp:53 -msgid "" -"Choose one of the following predefined styles.\n" -"You may optionally override one or more of its settings from the next pages" -msgstr "" -"选择一个预定义样式。\n" -"您可以从下页选择覆盖一个或多个它的设置" +#: LLDBDebugger/UI.cpp:377 +msgid "Display" +msgstr "显示" -#: CodeFormatter/codeformatterdlgbase.cpp:63 -msgid "Predefined Style:" -msgstr "预定义风格:" +#: LLDBDebugger/UI.cpp:380 +msgid "Max number of array elements" +msgstr "数组元素的最大数量" -#: CodeFormatter/codeformatterdlgbase.cpp:77 -#: CodeFormatter/codeformatterdlgbase.cpp:111 -msgid "Brackets" -msgstr "括号" +#: LLDBDebugger/UI.cpp:381 +msgid "The maximum number of elements to display in arrays" +msgstr "在数组中显示元素的最大数量" -#: CodeFormatter/codeformatterdlgbase.cpp:88 -msgid "Brackets:" -msgstr "括号:" - -#: CodeFormatter/codeformatterdlgbase.cpp:96 -msgid "Indentation:" -msgstr "缩进:" +#: LLDBDebugger/UI.cpp:383 +msgid "Backtrace frames" +msgstr "回溯帧" -#: CodeFormatter/codeformatterdlgbase.cpp:106 -#: SnipWiz/templateclassbasedlg.cpp:26 -msgid "Class" -msgstr "类" +#: LLDBDebugger/UI.cpp:384 +msgid "Maximum number of frames to show in the callstack window" +msgstr "在调用堆栈窗口显示框架的最大数量" -#: CodeFormatter/codeformatterdlgbase.cpp:121 -msgid "Namespaces" -msgstr "命名空间" +#: LLDBDebugger/UI.cpp:402 +msgid "" +"LLDB has a data formatters subsystem that allows users to define custom " +"display options for their variables\n" +"You can set here the types to pass to LLDB" +msgstr "" +"LLDB具有数据格式化子系统,允许用户为自己的变量进行自定义显示选项\n" +"您可以在这里设置传递给 LLDB 的类型定义" -#: CodeFormatter/codeformatterdlgbase.cpp:131 -msgid "Labels" -msgstr "标签" +#: LLDBDebugger/UI.cpp:443 +msgid "Learn more about LLDB types" +msgstr "了解更多关于 LLDB 的类型" -#: CodeFormatter/codeformatterdlgbase.cpp:136 -msgid "Blocks" -msgstr "块" +#: LLDBDebugger/UI.cpp:464 +msgid "Debugger Proxy" +msgstr "调试器代理" -#: CodeFormatter/codeformatterdlgbase.cpp:146 -msgid "Max Instatement Indent" -msgstr "最大的连续声明缩进" +#: LLDBDebugger/UI.cpp:469 +msgid "Local proxy process (default)" +msgstr "本地代理进程(默认)" -#: CodeFormatter/codeformatterdlgbase.cpp:151 -msgid "Min Conditional Indent" -msgstr "最小条件缩进" +#: LLDBDebugger/UI.cpp:470 +msgid "Remote proxy process over TCP/IP" +msgstr "在 TCP/IP 上的远程代理进程" -#: CodeFormatter/codeformatterdlgbase.cpp:159 -msgid "Formatting Options:" -msgstr "格式化选项:" +#: LLDBDebugger/UI.cpp:471 +msgid "Proxy type" +msgstr "代理类型" -#: CodeFormatter/codeformatterdlgbase.cpp:169 -msgid "Break Blocks" -msgstr "在循环语句前后加空行" +#: LLDBDebugger/UI.cpp:472 +msgid "" +"Debugging using LLDB is always done over a proxy process (i.e. codelite-" +"lldb)\n" +"Here you can select the type of the proxy to use (local or remote):\n" +"* Local proxy is used by default to debug local processes (this is the " +"default)\n" +"* Remote proxy: use this method to connect to a remote codelite-lldb proxy " +"server over TCP/IP" +msgstr "" +"使用 LLDB 进行调试总是通过一个代理进程来工作的(即 CodeLite-LLDB)\n" +"在这里您可以选择使用的代理类型(本地或远程):\n" +"* 默认本地代理来调试本地进程(这是默认的)\n" +"* 远程代理:此方法是通过 TCP/IP 来连接到远程 CodeLite-LLDB 代理服务器" -#: CodeFormatter/codeformatterdlgbase.cpp:174 -msgid "Pad Parenthesis" -msgstr "在括号内外都加上空格" +#: LLDBDebugger/UI.cpp:474 +msgid "Remote proxy settings" +msgstr "远程代理设置" -#: CodeFormatter/codeformatterdlgbase.cpp:179 -msgid "Break Blocks All" -msgstr "在循环语句前后、else、catch前加空行" +#: LLDBDebugger/UI.cpp:477 +msgid "127.0.0.1" +msgstr "127.0.0.1" -#: CodeFormatter/codeformatterdlgbase.cpp:184 -msgid "Pad Parenthesis Outside" -msgstr "在括号外加上空格" +#: LLDBDebugger/UI.cpp:478 +msgid "" +"The IP address on which the remote proxy server is accepting connections" +msgstr "远程代理服务器上的 IP 地址正在接受连接" -#: CodeFormatter/codeformatterdlgbase.cpp:189 -msgid "Break else-if" -msgstr "让 else if 语句拆开缩进" +#: LLDBDebugger/UI.cpp:480 +msgid "Port" +msgstr "端口" -#: CodeFormatter/codeformatterdlgbase.cpp:194 -msgid "Pad Parenthesis Inside" -msgstr "在括号内加上空格" +#: LLDBDebugger/UI.cpp:481 +msgid "" +"The port number on which the remote proxy server is accepting connections" +msgstr "远程代理服务器上的端口号正在接受连接" -#: CodeFormatter/codeformatterdlgbase.cpp:199 -msgid "Pad Operators" -msgstr "运算符前后加空格" +#: LLDBDebugger/UI.cpp:557 +msgid "Stop Reason" +msgstr "停止原因" -#: CodeFormatter/codeformatterdlgbase.cpp:204 -msgid "UnPad Parenthesis" -msgstr "移除括号内外的空格" +#: LLDBDebugger/UI.cpp:657 +msgid "" +"You are debugging on a remote machine. In order for codelite\n" +"to be able to load files into the editor, codelite needs to map the folders " +"on\n" +"your local machine to the folders on the remote machine" +msgstr "" +"您正在远程机器上进行调试。为了让 CodeLite\n" +"能够将文件载入到编辑器中,CodeLite 需要在您的本地机器上映射\n" +"远程机器上的文件夹" -#: CodeFormatter/codeformatterdlgbase.cpp:209 -msgid "One Line Keep Statement" -msgstr "维持一行里的多条语句不变" +#: LLDBDebugger/UI.cpp:672 +msgid "Local Folder:" +msgstr "本地目录:" -#: CodeFormatter/codeformatterdlgbase.cpp:214 -msgid "Fill Empty Lines" -msgstr "以空格对齐填充前一行空行" +#: LLDBDebugger/UI.cpp:677 +msgid "Local Folder" +msgstr "本地目录" -#: CodeFormatter/codeformatterdlgbase.cpp:219 -msgid "One Line Keep Blocks" -msgstr "维持一行里面的块" +#: LLDBDebugger/UI.cpp:681 +msgid "Remote Folder:" +msgstr "远程目录:" -#: CodeFormatter/codeformatterdlgbase.cpp:225 -msgid "Custom Settings" -msgstr "自定义设置" - -#: CodeFormatter/codeformatterdlgbase.cpp:230 -msgid "Custom user settings:" -msgstr "自定义用户设置:" - -#: CodeFormatter/codeformatter.cpp:85 -msgid "Source Code Formatter based on the open source AStyle tool" -msgstr "基于开放源码的 AStyle工具的源文件格式化器" +#: LLDBDebugger/UI.cpp:686 +msgid "Remote Folder" +msgstr "远程目录" -#: CodeFormatter/codeformatter.cpp:98 -msgid "Source Code Formatter (AStyle)" -msgstr "源文件格式化器 (AStyle)" +#: LLDBDebugger/LLDBProtocol/LLDBConnector.cpp:471 +msgid "Locally debugging with LLDB on Windows is not supported by LLDB" +msgstr "在 Windows 中使用 LLDB 进行本地调试是不被 LLDB 所支持的" -#: CodeFormatter/codeformatter.cpp:123 CodeFormatter/codeformatter.cpp:127 -msgid "Format Source" -msgstr "格式源文件" +#: LLDBDebugger/LLDBLocalsView.cpp:54 +msgid "Summary" +msgstr "摘要" -#: CodeFormatter/codeformatter.cpp:123 CodeFormatter/codeformatter.cpp:127 -msgid "Format Source Code" -msgstr "格式源文件" +#: LLDBDebugger/LLDBLocalsView.cpp:57 +msgid "Local Vairables" +msgstr "局部变量" -#: CodeFormatter/codeformatter.cpp:124 CodeFormatter/codeformatter.cpp:128 -msgid "Format Options" -msgstr "格式选项" +#: LLDBDebugger/LLDBLocalsView.cpp:186 +msgid "Add New Watch" +msgstr "新建监视点" -#: CodeFormatter/codeformatter.cpp:124 CodeFormatter/codeformatter.cpp:128 -msgid "Source Code Formatter Options..." -msgstr "源文件格式化器选项..." +#: LLDBDebugger/LLDBLocalsView.cpp:251 +#: DatabaseExplorer/SqlCommandPanel.cpp:392 +msgid "Copy value to clipboard" +msgstr "复制值到剪贴板" -#: CodeFormatter/codeformatter.cpp:152 -msgid "Options..." -msgstr "选项..." +#: LLDBDebugger/LLDBPlugin.cpp:82 LLDBDebugger/LLDBPlugin.cpp:100 +msgid "LLDB Debugger for CodeLite" +msgstr "CodeLite LLDB 调试器" -#: CodeFormatter/codeformatter.cpp:154 -msgid "Source Code Formatter" -msgstr "源文件格式化器" +#: LLDBDebugger/LLDBPlugin.cpp:231 +msgid "LLDB Settings..." +msgstr "LLDB 设置..." -#: CodeFormatter/codeformatterdlg.cpp:284 -msgid "GNU style formatting/indenting. Brackets are broken,\n" -msgstr "GNU 风格格式和缩进。括号会被破坏,\n" +#: LLDBDebugger/LLDBPlugin.cpp:310 +msgid "Could not locate project: " +msgstr "无法定位项目:" -#: CodeFormatter/codeformatterdlg.cpp:285 -msgid "blocks are indented, and indentation is 2 spaces. \n" -msgstr "段落用两个空格缩进。\n" +#: LLDBDebugger/LLDBPlugin.cpp:325 +msgid "Could not locate the requested buid configuration" +msgstr "无法定位请求的构建配置" -#: CodeFormatter/codeformatterdlg.cpp:286 -msgid "Namespaces, classes, and switches are NOT indented." -msgstr "Namespaces, classes,和 switches 不会被缩进。" +#: LLDBDebugger/LLDBPlugin.cpp:393 LLDBDebugger/LLDBPlugin.cpp:1030 +msgid "Failed to start terminal for debugger" +msgstr "为调试器启动终端失败" -#: CodeFormatter/codeformatterdlg.cpp:290 -msgid "Java style formatting/indenting. Brackets are attached,\n" -msgstr "Java 风格格式和缩进。括号会被连接,\n" +#: LLDBDebugger/LLDBPlugin.cpp:442 LLDBDebugger/LLDBPlugin.cpp:947 +#: LLDBDebugger/LLDBPlugin.cpp:994 LLDBDebugger/LLDBPlugin.cpp:1089 +msgid "Could not connect to codelite-lldb at '" +msgstr "无法连接到 codelite-lldb 在“" -#: CodeFormatter/codeformatterdlg.cpp:291 -msgid "indentation is 4 spaces. Switches are NOT indented." -msgstr "用 4 个空格缩进,switchs 不会缩进。" +#: LLDBDebugger/LLDBPlugin.cpp:835 +msgid "LLDB crashed! Terminating debug session" +msgstr "LLDB 已崩溃!正在终止调试对话" -#: CodeFormatter/codeformatterdlg.cpp:296 +#: LLDBDebugger/LLDBPlugin.cpp:854 msgid "" -"Kernighan & Ritchie style formatting/indenting.\n" -"Brackets are attached, indentation is 4 spaces.\n" -"Namespaces, classes, and switches are NOT indented." +"A debug session is running\n" +"Cancel debug session and continue building?" msgstr "" -"Kernighan & Ritchie 风格格式和缩进。\n" -"括号会被连接,以 4 个空格缩进。\n" -"Namespaces, classes, 和 switches 不会被缩进。" +"一个调试会话正在运行中\n" +"取消调试会话并继续构建吗?" -#: CodeFormatter/codeformatterdlg.cpp:301 -msgid "" -"Linux style formatting/indenting.\n" -"All brackets are linux style, indentation is 8 spaces.\n" -"Namespaces, classes, and switches are NOT indented." -msgstr "" -"Linux 风格格式和缩进。\n" -"全部括号会使用 linux 风格,以 8 个空格缩进。\n" -"Namespaces, classes, 和 switches 不会被缩进。" +#: LLDBDebugger/LLDBPlugin.cpp:962 +msgid "Debug core file with LLDB is not supported under Windows" +msgstr "在 Windows 下使用 LLDB 调试核心文件是不支持的" -#: CodeFormatter/codeformatterdlg.cpp:305 -msgid "" -"ANSI style formatting/indenting.\n" -"Brackets are broken, indentation is 4 spaces.\n" -"Namespaces, classes, and switches are NOT indented." -msgstr "" -"ANSI 风格格式和缩进。\n" -"括号会被破坏,以 4 个空格缩进。\n" -"Namespaces, classes, 和 switches 不会被缩进。" +#: LLDBDebugger/LLDBPlugin.cpp:1009 +msgid "Another debug session is already in progress. Please stop it first" +msgstr "另一个调试会话已在进程中。请先终止它" + +#: LLDBDebugger/LLDBPlugin.cpp:1055 +msgid "Attach to process with LLDB is not supported under Windows" +msgstr "在 Windows 下使用 LLDB 连接到进程是不支持的" -#: CodeFormatter/astyle_main.cpp:410 +#: Gizmos/gizmos.cpp:76 msgid "" -"\n" -"Artistic Style has terminated" +"Wizards Plugin - a collection of useful wizards for C++:\n" +"new Class Wizard, new wxWidgets Wizard, new Plugin Wizard" msgstr "" -"\n" -"Artistic风格已终止" - -#: CodeFormatter/astyle_main.cpp:494 -msgid "Cannot process the input stream" -msgstr "无法处理输入流" - -#: CodeFormatter/astyle_main.cpp:587 -#, c-format -msgid "Formatted %s\n" -msgstr "格式化的 %s\n" - -#: CodeFormatter/astyle_main.cpp:593 -#, c-format -msgid "Unchanged %s\n" -msgstr "未变更的 %s\n" +"向导插件 - 实用的 C++ 向导合集:\n" +"新建类向导,新建 wxWidgets 向导,新建插件向导" -#: CodeFormatter/astyle_main.cpp:726 -msgid "Cannot process UTF-32 encoding" -msgstr "不能处理UTF-32编码" +#: Gizmos/gizmos.cpp:170 +msgid "Wizards Plugin - a collection of useful utils for C++" +msgstr "向导插件 - 有用的C++工具集" -#: CodeFormatter/astyle_main.cpp:874 CodeFormatter/astyle_main.cpp:1014 -msgid "Cannot open directory" -msgstr "无法打开目录" +#: Gizmos/gizmos.cpp:225 +msgid "New CodeLite Plugin Wizard..." +msgstr "新建 CodeLite 插件向导..." -#: CodeFormatter/astyle_main.cpp:894 CodeFormatter/astyle_main.cpp:908 -#: CodeFormatter/astyle_main.cpp:1041 CodeFormatter/astyle_main.cpp:1056 -#, c-format -msgid "Exclude %s\n" -msgstr "排除 %s\n" +#: Gizmos/gizmos.cpp:227 +msgid "New Class Wizard..." +msgstr "新建类向导..." -#: CodeFormatter/astyle_main.cpp:1185 -#, c-format -msgid "Missing filename in %s\n" -msgstr "缺失文件名在 %s\n" +#: Gizmos/gizmos.cpp:229 +msgid "New wxWidgets Project Wizard..." +msgstr "新建 wxWidgets 项目向导..." -#: CodeFormatter/astyle_main.cpp:1202 -msgid "Recursive option with no wildcard" -msgstr "递归选项没有通配符" +#: Gizmos/gizmos.cpp:244 +msgid "&New Class..." +msgstr "新建类(&N)..." -#: CodeFormatter/astyle_main.cpp:1204 -msgid "Did you intend quote the filename" -msgstr "您打算引用这个文件名吗" +#: Gizmos/gizmos.cpp:333 +msgid "Failed to load wizard's file 'plugin.cpp.wizard'" +msgstr "加载向导文件“plugin.cpp.wizard”失败" -#: CodeFormatter/astyle_main.cpp:1213 -#, c-format -msgid "Directory %s\n" -msgstr "目录 %s\n" +#: Gizmos/gizmos.cpp:359 +msgid "Failed to load wizard's file 'plugin.h.wizard'" +msgstr "加载向导文件“plugin.h.wizard”失败" -#: CodeFormatter/astyle_main.cpp:1238 CodeFormatter/astyle_main.cpp:1240 -#: CodeFormatter/astyle_main.cpp:1245 -#, c-format -msgid "Exclude (unmatched) %s\n" -msgstr "排除(未匹配的)%s\n" +#: Gizmos/gizmos_base.cpp:64 +msgid "Plugin name:" +msgstr "插件名字:" -#: CodeFormatter/astyle_main.cpp:1253 CodeFormatter/astyle_main.cpp:1262 -msgid "Did you intend to use --recursive" -msgstr "您打算使用参数 --recursive 吗" +#: Gizmos/gizmos_base.cpp:69 +msgid "" +"Set the plugin name.\n" +"The name should be a valid C++ variable name" +msgstr "" +"设置插件名称。\n" +"该名称应该是一个有效的 C++ 变量名" -#: CodeFormatter/astyle_main.cpp:1260 -#, c-format -msgid "No file to process %s\n" -msgstr "没有文件来处理 %s\n" +#: Gizmos/gizmos_base.cpp:79 +msgid "Provide the plugin a short description" +msgstr "插件提供了一个简短的描述" -#: CodeFormatter/astyle_main.cpp:1822 -msgid "Invalid option file options:" -msgstr "无效选项文件选项:" +#: Gizmos/gizmos_base.cpp:102 +msgid "codelite root dir:" +msgstr "CodeLite 根目录:" -#: CodeFormatter/astyle_main.cpp:1827 -msgid "Cannot open options file" -msgstr "无法打开选项文件" +#: Gizmos/gizmos_base.cpp:107 +msgid "Select the location of codelite's source tree" +msgstr "选择 CodeLite 源代码树的位置" -#: CodeFormatter/astyle_main.cpp:1835 CodeFormatter/astyle_main.cpp:1845 -msgid "For help on options type 'astyle -h'" -msgstr "获取帮助请输入'astyle -h'选项" +#: Gizmos/gizmos_base.cpp:116 +msgid "Select the plugin project path" +msgstr "选择插件项目路径" -#: CodeFormatter/astyle_main.cpp:1841 -msgid "Invalid command line options:" -msgstr "无效的命令行选项:" +#: Gizmos/newclassbasedlg.cpp:36 +msgid "Class Name:" +msgstr "类名称:" -#: CodeFormatter/astyle_main.cpp:1980 -#, c-format -msgid "Using default options file %s\n" -msgstr "使用默认选项文件 %s\n" +#: Gizmos/newclassbasedlg.cpp:41 +msgid "The class name" +msgstr "类名称" -#: CodeFormatter/astyle_main.cpp:1992 -#, c-format -msgid " %s formatted %s unchanged " -msgstr "%s 已格式化 %s 未改变" +#: Gizmos/newclassbasedlg.cpp:59 codelitephp/php-plugin/new_class.cpp:71 +msgid "Namespace:" +msgstr "命名空间:" -#: CodeFormatter/astyle_main.cpp:2005 -msgid " seconds " -msgstr "秒" +#: Gizmos/newclassbasedlg.cpp:64 +msgid "Place this class inside a namespace" +msgstr "把这个类放进命名空间内" -#: CodeFormatter/astyle_main.cpp:2013 -#, c-format -msgid "%d min %d sec " -msgstr "%d 分 %d 秒" +#: Gizmos/newclassbasedlg.cpp:77 +msgid "Block Guard:" +msgstr "块向导:" -#: CodeFormatter/astyle_main.cpp:2017 -#, c-format -msgid "%s lines\n" -msgstr "%s 行\n" +#: Gizmos/newclassbasedlg.cpp:82 +msgid "" +"Set block guard to prevent multiple file inclusion. If left empty, the class " +"name is used" +msgstr "设置保护段落以防止被多次包含。如果留空,类名会使用。" -#: CodeFormatter/codeformatterdlgbase.h:78 -msgid "Formatter Options" -msgstr "格式化选项" +#: Gizmos/newclassbasedlg.cpp:98 +msgid "" +"The new class needs to be put somewhere. Select which of the project's " +"virtual folders to use." +msgstr "新建类需要存放在某个地方。请选择项目所使用的虚拟文件夹。" -#: ExternalTools/newtoolbase.h:78 -msgid "External Tool" -msgstr "外部工具" +#: Gizmos/newclassbasedlg.cpp:111 +msgid "Generated File(s) Path:" +msgstr "生成的文件路径:" -#: ExternalTools/newtoolbase.cpp:26 -msgid "ID:" +#: Gizmos/newclassbasedlg.cpp:116 +msgid "" +"Where on the filesystem should the new class's files be put? This will " +"normally be the directory corresponding to the Virtual Directory; but you " +"can enter an alternative directory here if you wish." msgstr "" +"在文件系统中新建类的文件应该放在哪里?通常是该目录对应到虚拟文件夹;但是如果" +"您愿意的话,您可以在这里输入另一个目录。" -#: ExternalTools/newtoolbase.cpp:43 -msgid "The name is used to identify this tool in the 'External Tools' toobar" -msgstr "该名称用于在’外部工具‘工具栏标示" - -#: ExternalTools/newtoolbase.cpp:50 -msgid "Tool path:" -msgstr "工具路径:" - -#: ExternalTools/newtoolbase.cpp:70 -msgid "Arguments:" -msgstr "参数:" - -#: ExternalTools/newtoolbase.cpp:83 -msgid "Toolbar:" -msgstr "工具栏:" +#: Gizmos/newclassbasedlg.cpp:131 +msgid "Generated File:" +msgstr "生成的文件:" -#: ExternalTools/newtoolbase.cpp:91 -msgid "Toolbar icon (24x24):" -msgstr "工具栏图标(24x24):" +#: Gizmos/newclassbasedlg.cpp:138 +msgid "Inline class" +msgstr "将类内联化" -#: ExternalTools/newtoolbase.cpp:101 -msgid "Toolbar icon (16x16):" -msgstr "工具栏图标(16x16):" +#: Gizmos/newclassbasedlg.cpp:140 +msgid "Put both the declaration and the implementation in the header file" +msgstr "把声明和实现都放在头文件" -#: ExternalTools/newtoolbase.cpp:118 -msgid "Save all files before executing this tool" -msgstr "在运行外部工具前保存全部文件" +#: Gizmos/newclassbasedlg.cpp:144 +msgid "Create .hpp instead of .h" +msgstr "创建 .hpp 文件替代 .h 文件" -#: ExternalTools/newtoolbase.cpp:121 -msgid "Capture process output" -msgstr "捕获进程输出" +#: Gizmos/newclassbasedlg.cpp:146 +msgid "If checked, the generated header file will be foo.hpp instead of foo.h" +msgstr "如果勾选此项,生成的头文件将用 foo.hpp 代替 foo.h" -#: ExternalTools/externaltoolsbasedlg.h:57 ExternalTools/externaltools.cpp:350 -msgid "External Tools" -msgstr "外部工具" +#: Gizmos/newclassbasedlg.cpp:151 +msgid "" +"This is the base-name for the file(s) that will be generated. If the new " +"class is called Foo, by default the files will be Foo.cpp and Foo.h. If " +"you'd prefer different names, type the base-name here." +msgstr "" +"这是将要生成的文件的基本名称。如果新的类被称作 Foo ,在默认情况下文件将被命名" +"为 foo.cpp 和 foo.h。如果您喜欢不同的名称,请在这里输入基本名称。" -#: ExternalTools/externaltoolsbasedlg.cpp:35 -msgid "Delete..." -msgstr "删除..." +#: Gizmos/newclassbasedlg.cpp:165 +msgid "Inherits:" +msgstr "继承:" -#: ExternalTools/externaltooldlg.cpp:95 -msgid "Are you sure you want to delete this tool?" -msgstr "您确定要删除这个工具?" +#: Gizmos/newclassbasedlg.cpp:181 +msgid "Add..." +msgstr "添加..." -#: ExternalTools/externaltools.cpp:66 ExternalTools/externaltools.cpp:82 -msgid "A plugin that allows user to launch external tools from within CodeLite" -msgstr "允许用户从 CodeLite 中启动外部工具的插件" +#: Gizmos/newclassbasedlg.cpp:182 +msgid "Click to add a class from which to derive" +msgstr "单击以添加一个派生类" -#: ExternalTools/externaltools.cpp:125 ExternalTools/externaltools.cpp:128 -#: ExternalTools/externaltools.cpp:336 -msgid "Configure external tools..." -msgstr "配置外部工具..." +#: Gizmos/newclassbasedlg.cpp:198 +msgid "Declare this class non-copyable" +msgstr "声明此类不可复制" -#: ExternalTools/externaltools.cpp:126 ExternalTools/externaltools.cpp:129 -msgid "Stop external tool" -msgstr "停止外部工具" +#: Gizmos/newclassbasedlg.cpp:203 +msgid "Implement all virtual functions" +msgstr "实现全部虚函数" -#: ExternalTools/newtooldlg.cpp:63 -msgid "Select a program:" -msgstr "选择程序:" +#: Gizmos/newclassbasedlg.cpp:208 +msgid "This is a singleton class" +msgstr "这是一个单体类" -#: ExternalTools/newtooldlg.cpp:102 -#, c-format -msgid "Continue updating tool ID '%s'" -msgstr "继续更新工具 ID”%s“" +#: Gizmos/newclassbasedlg.cpp:213 +msgid "Implement all pure virtual functions" +msgstr "实现全部纯虚函数" -#: ExternalTools/newtooldlg.cpp:122 ExternalTools/newtooldlg.cpp:132 -msgid "Select an icon:" -msgstr "选择图标:" +#: Gizmos/newclassbasedlg.cpp:218 +msgid "Virtual destructor" +msgstr "虚拟析构函数" -#: Tweaks/TweaksSettingsDlg.cpp:137 -msgid "Icon changes require a workspace reload" -msgstr "图标更改后需要重新载入工作空间" +#: Gizmos/newclassbasedlg.cpp:306 +msgid "Select Parent Class:" +msgstr "选择父类:" + +#: Gizmos/newclassbasedlg.cpp:311 +msgid "Type the name of the parent class" +msgstr "输入父类的名称" + +#: Gizmos/newclassbasedlg.cpp:319 +msgid "Click here to open the open resource dialog" +msgstr "点击这里打开 打开资源 对话框" -#: Tweaks/TweaksSettingsDlg.cpp:138 -msgid "Remember my answer" -msgstr "记住我的回答" +#: Gizmos/newclassbasedlg.cpp:323 +msgid "Inheritance Access:" +msgstr "继承访问:" -#: Tweaks/wxcrafter.cpp:29 -msgid "Enable Tweaks" -msgstr "启用调整工具" +#: Gizmos/newclassbasedlg.h:113 codelitephp/php-plugin/new_class.h:75 +msgid "New Class" +msgstr "新建类" -#: Tweaks/wxcrafter.cpp:39 -msgid "Editor Tabs" -msgstr "编辑器选项卡" +#: Gizmos/newclassbasedlg.h:139 +msgid "NewIneritanceDlgBase" +msgstr "新建继承对话框" -#: Tweaks/wxcrafter.cpp:46 -msgid "Configure Editor Tab Colours" -msgstr "配置编辑选项卡颜色" +#: Gizmos/gizmos_base.h:70 +msgid "New Plugin Wizard" +msgstr "新建插件向导" -#: Tweaks/wxcrafter.cpp:46 -msgid "Customize your editor tab colours globally or per project" -msgstr "自定义您的编辑器选项卡颜色,全局或每个项目" +#: Gizmos/newwxprojectbasedlg.cpp:79 +msgid "Choose a name to give the project" +msgstr "为项目选择一个名称" -#: Tweaks/wxcrafter.cpp:60 -msgid "Global Tab Colours" -msgstr "全局标签颜色" +#: Gizmos/newwxprojectbasedlg.cpp:83 +msgid "Project Path:" +msgstr "项目路径:" -#: Tweaks/wxcrafter.cpp:63 -msgid "File background colour" -msgstr "文件背景色" - -#: Tweaks/wxcrafter.cpp:67 -msgid "File text colour" -msgstr "文件文本颜色" +#: Gizmos/newwxprojectbasedlg.cpp:90 +msgid "Application Type:" +msgstr "应用程序类型:" -#: Tweaks/wxcrafter.cpp:71 -msgid "Tab Colours Per Project" -msgstr "每个项目标签颜色" +#: Gizmos/newwxprojectbasedlg.cpp:94 +msgid "Simple main with wxWidgets enabled" +msgstr "启用wxWidgets 的简单 main 函数" -#: Tweaks/wxcrafter.cpp:78 -msgid "&Reset colours" -msgstr "重置配色(&R)" +#: Gizmos/newwxprojectbasedlg.cpp:94 +msgid "GUI application with Main Frame" +msgstr "包含主要框架的 GUI 程序" -#: Tweaks/wxcrafter.cpp:79 -msgid "Reset colours" -msgstr "重置配色" +#: Gizmos/newwxprojectbasedlg.cpp:94 +msgid "GUI frame-based application (wxFormBuilder)" +msgstr "基于框架的 GUI 程序(wxFormBuilder)" -#: Tweaks/wxcrafter.cpp:84 -msgid "Images" -msgstr "图片" +#: Gizmos/newwxprojectbasedlg.cpp:94 +msgid "GUI dialog-based application (wxFormBuilder)" +msgstr "基于对话框的 GUI 程序(wxformbuilder)" -#: Tweaks/wxcrafter.cpp:91 -msgid "Configure Project Images" -msgstr "配置项目图片" +#: Gizmos/newwxprojectbasedlg.cpp:98 +msgid "" +"The normal choice will be 'GUI application', but choose 'Simple main' for a " +"wx console app" +msgstr "一般选择为“GUI 程序”,wx 控制台程序请选择“简单 main”" -#: Tweaks/wxcrafter.cpp:91 -msgid "Set a different image for a every project in the workspace" -msgstr "在工作空间中为每个项目设置不同的图像" +#: Gizmos/newwxprojectbasedlg.cpp:108 +msgid "Advanced Settings:" +msgstr "高级设置:" -#: Tweaks/wxcrafter.cpp:105 -msgid "Projects" -msgstr "项目" +#: Gizmos/newwxprojectbasedlg.cpp:121 +msgid "Use precompiled headers" +msgstr "使用预编译的头文件" -#: Tweaks/wxcrafter.h:57 -msgid "Tweaks Setting" -msgstr "Tweaks 设置" +#: Gizmos/newwxprojectbasedlg.cpp:124 +msgid "Use MS Windows resources" +msgstr "使用 MS Windows资源" -#: Tweaks/tweaks.cpp:83 -msgid "Tweaks Plugin" -msgstr "Tweaks 插件" +#: Gizmos/newwxprojectbasedlg.cpp:127 +msgid "Add -mwindows flag to avoid a terminal console in MSWin GUI apps" +msgstr "附加 -mwindows 标记以避免在 MSWin GUI 程序中启用终端" -#: SnipWiz/editsnippetsbasedlg.h:75 -msgid "Edit Snippets" -msgstr "编辑 Snippets" +#: Gizmos/newwxprojectbasedlg.cpp:128 +msgid "" +"Without this flag, there will be an unnecessary, visible terminal window " +"when your app runs on MSWindows" +msgstr "" +"如果无此标志,您将会在运行MSWindows程序时,出现一个不必要的可视终端窗口" -#: SnipWiz/editsnippetsdlg.cpp:78 SnipWiz/editsnippetsdlg.cpp:102 -msgid "Menu entry is not unique!" -msgstr "菜单项不唯一!" +#: Gizmos/newwxprojectbasedlg.cpp:135 +msgid "Basics" +msgstr "基本" -#: SnipWiz/editsnippetsdlg.cpp:195 -msgid "That accelerator already exists" -msgstr "此快捷键已存在" +#: Gizmos/newwxprojectbasedlg.cpp:140 +msgid "Use Unicode Build of wxWidgets" +msgstr "使用 wxWidgets 的 Unicode 构建版本" -#: SnipWiz/templateclassbasedlg.cpp:39 -msgid "Name of new class" -msgstr "新类名称" +#: Gizmos/newwxprojectbasedlg.cpp:142 +msgid "Uses an unicode configuration if found." +msgstr "如果存在,使用现有的 Unicode 配置。" -#: SnipWiz/templateclassbasedlg.cpp:48 -msgid "Template for new class" -msgstr "新类的模板" +#: Gizmos/newwxprojectbasedlg.cpp:146 +msgid "Use Static wxWidgets libraries" +msgstr "使用静态 wxWidgets 库" -#: SnipWiz/templateclassbasedlg.cpp:57 -msgid "Files" -msgstr "文件" +#: Gizmos/newwxprojectbasedlg.cpp:147 +msgid "Uses a static configuration if found." +msgstr "如果存在,使用现有的静态配置。" -#: SnipWiz/templateclassbasedlg.cpp:65 -msgid ".h filename:" -msgstr ".h 文件名:" +#: Gizmos/newwxprojectbasedlg.cpp:151 +msgid "Use Universal wxWidgets libraries" +msgstr "使用通用的 wxWidgets 库" -#: SnipWiz/templateclassbasedlg.cpp:70 -msgid "Name of header file" -msgstr "头文件名称" +#: Gizmos/newwxprojectbasedlg.cpp:152 +msgid "Uses an universal configuration if found." +msgstr "如果存在,使用现有的通用配置." -#: SnipWiz/templateclassbasedlg.cpp:77 -msgid ".cpp filename:" -msgstr ".cpp 文件名:" +#: Gizmos/newwxprojectbasedlg.cpp:169 +msgid "Use selected wxWidgets version." +msgstr "使用选定的 wxWidgets 版本。" -#: SnipWiz/templateclassbasedlg.cpp:82 -msgid "Name of source file" -msgstr "源文件名称" +#: Gizmos/newwxprojectbasedlg.cpp:173 +msgid "Prefix:" +msgstr "前缀:" -#: SnipWiz/templateclassbasedlg.cpp:98 -msgid "Virtual folder to add new files" -msgstr "虚拟文件夹添加新文件" +#: Gizmos/newwxprojectbasedlg.cpp:178 +msgid "Path of the wxWidgets installation (optional)." +msgstr "wxWidgets 安装路径(可选)。" -#: SnipWiz/templateclassbasedlg.cpp:104 -msgid "Browse virtual folders" -msgstr "浏览虚拟文件夹" +#: Gizmos/newwxprojectbasedlg.cpp:187 +msgid "wxWidgets settings" +msgstr "wxWidgets 设置" -#: SnipWiz/templateclassbasedlg.cpp:114 -msgid "Hd folder to add new files" -msgstr "Hd 文件夹添加新文件" +#: Gizmos/newclassdlg.cpp:62 +msgid "Access" +msgstr "访问" -#: SnipWiz/templateclassbasedlg.cpp:120 -msgid "Browse folders" -msgstr "浏览文件夹" +#: Gizmos/newclassdlg.cpp:234 Gizmos/newclassdlg.cpp:247 +msgid "' is not a valid C++ qualifier" +msgstr "”不是有效的 C++ 限定词" -#: SnipWiz/templateclassbasedlg.cpp:131 -msgid "&Generate" -msgstr "生成(&G)" +#: Gizmos/newclassdlg.cpp:258 +msgid "': directory does not exist" +msgstr "”:目录不存在" -#: SnipWiz/templateclassbasedlg.cpp:137 -msgid "&Quit" -msgstr "推出(&Q)" +#: Gizmos/newclassdlg.cpp:264 +msgid "Empty file name" +msgstr "文件名为空" -#: SnipWiz/templateclassbasedlg.cpp:153 -msgid "Class:" -msgstr "类:" +#: Gizmos/newclassdlg.cpp:271 Gizmos/newclassdlg.cpp:278 +#, c-format +msgid "A file with this name: '%s' already exists, continue anyway?" +msgstr "文件:“%s”已存在,是否继续?" -#: SnipWiz/templateclassbasedlg.cpp:164 SnipWiz/editsnippetsbasedlg.cpp:76 -msgid "Change" -msgstr "更改" +#: Gizmos/newclassdlg.cpp:284 +msgid "Please select a virtual directory" +msgstr "请选择虚拟目录" -#: SnipWiz/templateclassbasedlg.cpp:175 -msgid "%CLASS%" -msgstr "%CLASS%" +#: Gizmos/newclassdlg.cpp:346 +msgid "Select Generated Files Path:" +msgstr "选择生成的文件路径:" -#: SnipWiz/templateclassbasedlg.cpp:207 -msgid "Implementation File" -msgstr "实现文件" +#: Gizmos/PluginWizard.cpp:63 +msgid "Invalid plugin name" +msgstr "无效的插件名称" -#: SnipWiz/templateclassbasedlg.cpp:214 -msgid "Templates" -msgstr "模板" +#: Gizmos/PluginWizard.cpp:69 +msgid "codelite folder does not exists" +msgstr "CodeLite 文件夹不存在" -#: SnipWiz/templateclassdlg.cpp:125 -msgid "Select output folder" -msgstr "选择输出文件夹" +#: Gizmos/PluginWizard.cpp:75 +msgid "The selected plugin folder does not exist" +msgstr "已选择插件目录不存在" -#: SnipWiz/templateclassdlg.cpp:162 -msgid "Files successfully created." -msgstr "文件成功创建。" +#: Gizmos/newwxprojectbasedlg.h:107 +msgid "New wxWidgets Project" +msgstr "新建 wxWidgets 项目" -#: SnipWiz/templateclassdlg.cpp:170 -msgid "Add template class" -msgstr "添加模板类" +#: Gizmos/newinheritancedlg.cpp:31 +msgid "New Inheritance" +msgstr "新建继承" -#: SnipWiz/templateclassdlg.cpp:176 -msgid "Adding the template class failed" -msgstr "添加模板类失败" +#: Gizmos/newwxprojectdlg.cpp:76 Gizmos/newwxprojectdlg.cpp:86 +msgid "Invalid project name '" +msgstr "无效的项目名称“" -#: SnipWiz/templateclassdlg.cpp:176 -msgid "Oops" -msgstr "哎呦" +#: Gizmos/newwxprojectdlg.cpp:77 Gizmos/newwxprojectdlg.cpp:87 +msgid "Valid characters for project name are [0-9A-Za-z_]" +msgstr "项目名称有效字符为 [0-9A-Za-z_]" -#: SnipWiz/templateclassdlg.cpp:215 +#: Gizmos/newwxprojectdlg.cpp:102 +#, c-format msgid "" -"Class exists!\n" -"Overwrite?" +"Failed to create the path: %s\n" +"A permissions problem, perhaps?" msgstr "" -"类存在!\n" -"覆盖?" +"创建路径失败:%s\n" +"可能是权限问题" -#: SnipWiz/templateclassdlg.cpp:215 -msgid "Add class" -msgstr "添加类" +#: CMakePlugin/CMakePlugin.cpp:105 +msgid "CMake Help" +msgstr "CMake 帮助" -#: SnipWiz/templateclassdlg.cpp:243 -msgid "" -"That class doesn't exist!\n" -"Try again?" -msgstr "" -"类不存在!\n" -"重试?" +#: CMakePlugin/CMakePlugin.cpp:140 +msgid "CMake integration for CodeLite" +msgstr "CMake 已集成到 CodeLite" -#: SnipWiz/templateclassdlg.cpp:243 -msgid "Change class" -msgstr "更改类" +#: CMakePlugin/CMakePlugin.cpp:203 +msgid "CMake integration with CodeLite" +msgstr "CMake 已集成到 CodeLite" -#: SnipWiz/templateclassdlg.cpp:358 -msgid "" -"File already exists!\n" -"\n" -" Overwrite?" -msgstr "" -"文件已存在!\n" -"\n" -" 覆盖?" +#: CMakePlugin/CMakePluginUi.h:52 +msgid "CMakePlugin Settings" +msgstr "CMake 插件设置" -#: SnipWiz/templateclassdlg.cpp:358 -msgid "Generate class files" -msgstr "生成类文件" +#: CMakePlugin/CMakePluginUi.cpp:36 +msgid "CMake program:" +msgstr "CMake 程序:" -#: SnipWiz/snipwiz.cpp:86 -msgid "A small tool to add expandable code snippets and template classes" -msgstr "一个小工具,添加扩展代码片断和模板类" +#: CMakePlugin/CMakePluginUi.cpp:41 +msgid "Path to cmake executable." +msgstr "cmake 可执行文件路径:" + +#: CMakePlugin/CMakePluginUi.cpp:46 +msgid "Default Generator:" +msgstr "默认生成器:" -#: SnipWiz/snipwiz.cpp:162 -msgid "Template class..." -msgstr "类模板..." +#: CMakePlugin/CMakePluginUi.cpp:52 +msgid "" +"You can specify default generator for all projects (if is not overrided by " +"project settings). If generator is not selected the CMake uses platform's " +"default." +msgstr "" +"您可以为所有项目指定默认的生成器(如果没有被项目设置覆盖的话)。如果没有生成" +"器,那么 CMake 将使用平台默认的生成器。" -#: SnipWiz/snipwiz.cpp:191 -msgid "New Class from Template..." -msgstr "从模板新建类..." +#: CMakePlugin/CMakePluginUi.cpp:113 +msgid "Select Topic:" +msgstr "选择主题:" -#: SnipWiz/snipwiz.cpp:221 -msgid "Enter identifier name" -msgstr "输入标识名称" +#: CMakePlugin/CMakePluginUi.cpp:128 +msgid "Reloads Help from CMake" +msgstr "从 CMake 重新载入帮助" -#: SnipWiz/snipwiz.cpp:221 SnipWiz/snipwiz.cpp:224 -msgid "switch(...)" -msgstr "选择(...)" +#: CMakePlugin/CMakePluginUi.cpp:152 +msgid "Double click to insert in the current editor." +msgstr "在当前编辑器中双击进行插入" -#: SnipWiz/snipwiz.cpp:224 -msgid "Enter number of cases" -msgstr "输入情况数目" +#: CMakePlugin/CMakePluginUi.cpp:212 +msgid "Enable CMake for this project" +msgstr "为该项目启用 CMake" -#: SnipWiz/snipwiz.cpp:224 -msgid "Cases:" -msgstr "情况:" +#: CMakePlugin/CMakePluginUi.cpp:224 +msgid "Parent project:" +msgstr "父项目:" -#: SnipWiz/snipwiz.cpp:363 -msgid "Paste buffer" -msgstr "粘贴缓冲区" +#: CMakePlugin/CMakePluginUi.cpp:230 +msgid "" +"Allow you to specify parent project. Specify this when project is sub-" +"directory (see add_subdirectory) and it's built with the parent project." +msgstr "" +"允许您指定父项目。当项目为子目录 (见 add_subdirectory)并且是与父项目一起建立" +"时。" -#: SnipWiz/snipwiz.cpp:367 -msgid "switch{...}" -msgstr "switch{...}" +#: CMakePlugin/CMakePluginUi.cpp:234 +msgid "Sources directory:" +msgstr "源目录:" -#: SnipWiz/editsnippetsbasedlg.cpp:39 -msgid "Menu Entry:" -msgstr "菜单项:" +#: CMakePlugin/CMakePluginUi.cpp:239 +msgid "Path to directory where CMakeLists.txt is located." +msgstr "CMakeLists.txt 所在的目录路径。" -#: SnipWiz/editsnippetsbasedlg.cpp:49 -msgid "Keyboard Shortcut:" -msgstr "快捷键:" +#: CMakePlugin/CMakePluginUi.cpp:243 +msgid "Build directory:" +msgstr "构建目录:" -#: SnipWiz/editsnippetsbasedlg.cpp:61 +#: CMakePlugin/CMakePluginUi.cpp:248 msgid "" -"Use $ as placeholder for the selection and @ to set the caret position.\n" -"e.g. for($ = 0; $ < @; $++)\n" -"NOTE:\n" -"If you snippet contains @ or $, you can escape the placeholders with a " -"backslash: \\@ OR \\$ " -msgstr "" -"使用 $ 作为选择的占位符并使用 @ 来设置插入符号的位置。\n" -"例如:for($ = 0; $ < @; $++)\n" -"注意:\n" -"如果您的片段包含 @ 或 $,您可以通过反斜杠来避免使用占位符: \\@ OR \\$" +"Directory where the project will be built. Path is relative to " +"$(WorkspacePath)." +msgstr "构建该项目的目录,路径与 $(WorkspacePath) 是相对应的。" -#: SnipWiz/editsnippetsbasedlg.cpp:91 -msgid "Snippets" -msgstr "片段" +#: CMakePlugin/CMakePluginUi.cpp:252 +msgid "Generator:" +msgstr "生成器:" -#: SnipWiz/templateclassbasedlg.h:100 -msgid "Template Class Wizard " -msgstr "类模板向导" +#: CMakePlugin/CMakePluginUi.cpp:258 +msgid "" +"Generator that will be used for CMake configuration. If no generator is " +"selected, plugin uses global default generator selected in plugin settings." +msgstr "" +"生成器将被用于 CMake 配置。如果没有生成器被选中,插件将在插件设置中使用全局默" +"认的生成器。" -#: git/git.cpp:138 git/GitConsole.cpp:168 -msgid "Pull remote changes" -msgstr "拉取远程变更" +#: CMakePlugin/CMakePluginUi.cpp:262 +msgid "Build Type:" +msgstr "构建类型:" -#: git/git.cpp:143 git/GitConsole.cpp:170 -msgid "Commit local changes" -msgstr "提交本地变更" +#: CMakePlugin/CMakePluginUi.cpp:273 +msgid "When is selected pass -DCMAKE_BUILD_TYPE to cmake." +msgstr "当被选中传递 -DCMAKE_BUILD_TYPE 给 CMake 时。" -#: git/git.cpp:146 -msgid "Push local commits" -msgstr "推送本地提交" +#: CMakePlugin/CMakePluginUi.cpp:280 +msgid "CMake arguments (used for configuration)" +msgstr "CMake 参数(用于配置)" -#: git/git.cpp:151 -msgid "Reset current repository" -msgstr "重置当前仓库" +#: CMakePlugin/CMakePluginUi.cpp:285 +msgid "" +"Argument list used when CMake is called. Each argument must be separated by " +"new line. Multiple arguments on the one line are OK too if they're separated " +"by space.\n" +"Do not use arguments -DCMAKE_BUILD_TYPE, -G and 'path', they are passed by " +"the plugin.\n" +"\n" +"Example:\n" +"-DCMAKE_CXX_FLAGS=-g\n" +"-DCMAKE_C_FLAGS=-g" +msgstr "" +"CMake 调用时使用的参数列表。每个参数必须用新行分隔。在同一行上使用空格分隔多" +"个参数也是可以的。 \n" +"不要使用参数 -DCMAKE_BUILD_TYPE,-G 和“path”,它们都可以被插件传递。\n" +"\n" +"例如:\n" +"-DCMAKE_CXX_FLAGS=-g\n" +"-DCMAKE_C_FLAGS=-g" -#: git/git.cpp:155 git/GitConsole.cpp:96 -msgid "Create local branch" -msgstr "创建本地分支" +#: CMakePlugin/CMakeWorkspaceMenu.cpp:68 CMakePlugin/CMakeProjectMenu.cpp:72 +msgid "Open CMakeLists.txt" +msgstr "打开 CMakeLists.txt" -#: git/git.cpp:158 -msgid "Switch local branch" -msgstr "切换到本地分支" +#: CMakePlugin/CMakeWorkspaceMenu.cpp:73 CMakePlugin/CMakeProjectMenu.cpp:77 +msgid "Export CMakeLists.txt" +msgstr "导出 CMakeLists.txt" -#: git/git.cpp:162 -msgid "Switch remote branch" -msgstr "切换到远程分支" +#: CMakePlugin/CMakeHelpTab.cpp:167 +msgid "CMake application path is invalid!" +msgstr "CMake 应用程序路径是无效的!" -#: git/git.cpp:166 -msgid "List commits" -msgstr "列出合并" +#: CMakePlugin/CMakeGenerator.cpp:88 +msgid "Overwrite" +msgstr "覆盖" -#: git/git.cpp:169 git/GitConsole.cpp:173 -msgid "Show current diffs" -msgstr "显示当前差别" +#: CMakePlugin/CMakeGenerator.cpp:89 +msgid "Don't Overwrite" +msgstr "无法覆盖" -#: git/git.cpp:169 -msgid "Show diffs" -msgstr "显示差别" +#: CMakePlugin/CMakeGenerator.cpp:90 +msgid "Remember my answer and don't annoy me again" +msgstr "记住我的回答,不要再打扰我了!" -#: git/git.cpp:177 -msgid "List modified files" -msgstr "列出已修改文件" +#: CMakePlugin/CMakeProjectMenu.cpp:78 +msgid "Make dirty" +msgstr "弄脏" -#: git/git.cpp:181 git/GitConsole.cpp:98 -msgid "Start gitk" -msgstr "启动 gitk" +#: CMakePlugin/CMakeProjectMenu.cpp:79 +msgid "" +"Marks CMake output files as dirty and forces cmake configuration to be call " +"again. This is very handy when you made some changes which don't change " +"CMakeLists.txt" +msgstr "" +"标记 CMake 输出文件是脏的并强制再次调用 CMake 配置。这是非常方便的,在您不改" +"变 CMakeLists.txt 文件而做出一些更改时" -#: git/git.cpp:186 -msgid "Clean git database (garbage collection)" -msgstr "清理Git数据库(垃圾收集)" +#: QmakePlugin/qmakesettingsbasedlg.cpp:53 +msgid "Add / modfiy qmake configurations:" +msgstr "添加/修改 qmake 配置:" -#: git/git.cpp:190 -msgid "Refresh git file list" -msgstr "刷新 git 文件列表" +#: QmakePlugin/qmakesettingsbasedlg.cpp:74 +msgid "Create new qmake settings" +msgstr "创建新的 qmake 设置" -#: git/git.cpp:190 -msgid "Refresh file lists" -msgstr "刷新文件列表" +#: QmakePlugin/qmakesettingsbasedlg.cpp:128 +msgid "qmake executable:" +msgstr "qmake 可执行文件:" -#: git/git.cpp:194 -msgid "GIT plugin settings" -msgstr "Git 插件设置" +#: QmakePlugin/qmakesettingsbasedlg.cpp:136 +msgid "QMAKESPEC:" +msgstr "QMAKESPEC:" -#: git/git.cpp:197 -msgid "Set GIT repository path" -msgstr "设置 Git 仓库路径" +#: QmakePlugin/qmakesettingsbasedlg.cpp:145 +msgid "QTDIR:" +msgstr "QTDIR:" -#: git/git.cpp:200 git/GitConsole.cpp:99 -msgid "Clone a git repository" -msgstr "克隆一个 git 仓库" +#: QmakePlugin/qmakesettingsbasedlg.cpp:150 +msgid "Set QTDIR to the directory where you've installed Qt" +msgstr "设置 QTDIR 到您已经安装Qt的目录" -#: git/git.cpp:254 git/gitui.cpp:1014 git/GitConsole.cpp:387 -msgid "Add file" -msgstr "添加文件" +#: QmakePlugin/NewQtProj.h:69 +msgid "New Qmake project" +msgstr "新建 Qmake 项目" -#: git/git.cpp:259 git/GitConsole.cpp:388 -msgid "Reset file" -msgstr "重置文件" +#: QmakePlugin/qmakesettingsdlg.cpp:70 +msgid "New qmake settings name" +msgstr "新建 qmake 设置的名称" -#: git/git.cpp:264 -msgid "Show file diff" -msgstr "显示文件差别" +#: QmakePlugin/qmakesettingsdlg.cpp:70 +msgid "New qmake settings" +msgstr "新建 qmake 设置" -#: git/git.cpp:333 -msgid "Select git root directory for this workspace" -msgstr "选择此工作区的 git 根目录" +#: QmakePlugin/qmakesettingsdlg.cpp:119 +#, c-format +msgid "Are you sure you want to delete qmake settings '%s'?" +msgstr "您确定要删除 qmake 设置“%s”吗?" -#: git/git.cpp:372 -msgid "" -"The selected directory does not contain a .git directory.\n" -"Are you sure this is a git repository?" -msgstr "" -"选定的文件夹不包含 .git 目录。\n" -"您是否确定这是一个 git 仓库?" +#: QmakePlugin/qmakesettingsbasedlg.h:65 +msgid "QMake Settings" +msgstr "QMake 设置" -#: git/git.cpp:470 git/git.cpp:498 -msgid "Modified files found! Commit them first before switching branches..." -msgstr "发现修改的文件!提交之前请先切换分支..." +#: QmakePlugin/qmaketabbase.cpp:53 +msgid "This project uses qmake" +msgstr "此项目采用 qmake" -#: git/git.cpp:475 -msgid "No other local branches found." -msgstr "没有发现其他本地分支。" +#: QmakePlugin/qmaketabbase.cpp:65 +msgid "qmake settings:" +msgstr "qmake 设置:" -#: git/git.cpp:479 -msgid "Select branch (current is " -msgstr "选择分支(当前是" +#: QmakePlugin/qmaketabbase.cpp:66 QmakePlugin/qmaketabbase.cpp:72 +msgid "" +"Select the QMake to be used for this build configuration as defined in " +"'Plugins -> QMake -> Settings'" +msgstr "为此构建配置在“插件 -> QMake -> 设置”中选择定义要使用的 QMake" -#: git/git.cpp:482 -msgid "Switch branch" -msgstr "切换分支" +#: QmakePlugin/qmaketabbase.cpp:76 +msgid "qmake execution line:" +msgstr "qmake 执行行:" -#: git/git.cpp:502 -msgid "No remote branches found." -msgstr "没有发现远程分支。" +#: QmakePlugin/qmaketabbase.cpp:84 +msgid "" +"CodeLite will place the below text after the auto generated section (so you " +"may override the generated variables)" +msgstr "CodeLite 将把以下文字放在自动生成段后面(所以您可以覆盖此生成的变量)" -#: git/git.cpp:505 -msgid "Select remote branch (current is " -msgstr "选择远程分支(当前是" +#: QmakePlugin/qmakeplugin.cpp:70 QmakePlugin/qmakeplugin.cpp:86 +msgid "Qt's QMake integration with CodeLite" +msgstr "Qt's QMake 已集成到 CodeLite" -#: git/git.cpp:508 git/GitConsole.cpp:96 -msgid "Switch to remote branch" -msgstr "切换到远程分支" +#: QmakePlugin/qmakeplugin.cpp:128 QmakePlugin/qmakeplugin.cpp:130 +#: QmakePlugin/qmakeplugin.cpp:137 QmakePlugin/qmakeplugin.cpp:139 +msgid "Configure qmake" +msgstr "配置 qmake" -#: git/git.cpp:516 -msgid "Specify the name for the local branch" -msgstr "指定本地分支名称" +#: QmakePlugin/qmakeplugin.cpp:132 QmakePlugin/qmakeplugin.cpp:134 +#: QmakePlugin/qmakeplugin.cpp:141 QmakePlugin/qmakeplugin.cpp:143 +msgid "Create new qmake based project" +msgstr "创建基于 qmake 的新项目" -#: git/git.cpp:517 git/git.cpp:533 -msgid "Branch name" -msgstr "分支名称" +#: QmakePlugin/qmakeplugin.cpp:161 +msgid "New qmake based project..." +msgstr "新建基于 qmake 的项目..." -#: git/git.cpp:532 -msgid "Specify the name of the new branch" -msgstr "指定新分支的名称" +#: QmakePlugin/qmakeplugin.cpp:191 +msgid "Run qmake..." +msgstr "运行 qmake..." -#: git/git.cpp:540 -msgid "Switch to new branch once it is created?" -msgstr "一旦创建就切换到新的分支吗?" +#: QmakePlugin/qmakeplugin.cpp:328 +msgid "" +"Could not locate pro file.\n" +"Did you remember to run qmake? (right click on the project" +msgstr "" +"找不到 pro 文件。 \n" +"您是否记得运行过 qmake 吗?(右键单击该项目" -#: git/git.cpp:541 -msgid "Switch to new branch" -msgstr "切换到新的分支" +#: QmakePlugin/qmakeplugin.cpp:447 +msgid "" +"There is no qmake defined, please define one from 'Plugins -> Qmake -> " +"Settings'" +msgstr "没有定义 qmake,请通过“插件 --> Qmake --> 设置”来定义它" -#: git/git.cpp:593 -msgid "No remotes found, can't push!" -msgstr "没有发现远程端,无法推送!" +#: QmakePlugin/qmakeplugin.cpp:506 +msgid "Invalid project path!" +msgstr "无效的项目路径!" -#: git/git.cpp:597 -msgid "Push all local commits?" -msgstr "推送所有本地提交吗?" +#: QmakePlugin/qmakeplugin.cpp:516 +#, c-format +msgid "Failed to create .project file '%s'" +msgstr "创建 .project 文件“%s”失败" -#: git/git.cpp:601 -msgid "Select remote to push to." -msgstr "选择远程推送。" +#: QmakePlugin/NewQtProj.cpp:76 +msgid "Project kind:" +msgstr "项目类型:" -#: git/git.cpp:602 -msgid "Select remote" -msgstr "选择远程" +#: QmakePlugin/NewQtProj.cpp:85 +msgid "QMake to use:" +msgstr "使用 QMake:" -#: git/git.cpp:621 -msgid "Save all changes and pull remote changes?" -msgstr "保存所有变更并拉取远程变更吗?" +#: QmakePlugin/NewQtProj.cpp:99 +msgid "Open the QMakeSettings configuration dialog" +msgstr "打开 QMakeSettings 配置对话框" -#: git/git.cpp:635 -msgid "Are you sure that you want to discard all local changes?" -msgstr "您确定要放弃所有本地变更?" +#: QmakePlugin/NewQtProj.cpp:103 +msgid "Other settings:" +msgstr "其它设置:" -#: git/git.cpp:636 git/GitConsole.cpp:165 -msgid "Reset repository" -msgstr "重置仓库" +#: menu.xrc:9 +msgid "&New Empty File" +msgstr "新建空白文件(&N)" + +#: menu.xrc:12 +msgid "New &Workspace" +msgstr "新建工作区(&W)" -#: git/git.cpp:672 -msgid "Jump to modifed file" -msgstr "跳转到已修改文件" +#: menu.xrc:15 menu.xrc:453 +msgid "New &Project" +msgstr "新建项目(&P)" -#: git/git.cpp:673 -msgid "Modifed files" -msgstr "已修改的文件" +#: menu.xrc:19 menu.xrc:1222 +msgid "&Open" +msgstr "打开(&O)" -#: git/git.cpp:1113 -msgid "Colouring tracked git files..." -msgstr "着色跟踪的 git 文件..." +#: menu.xrc:21 +msgid "&Open File..." +msgstr "打开文件(&O)..." -#: git/git.cpp:1118 -msgid "Colouring modifed git files..." -msgstr "着色已修改的 git 文件..." +#: menu.xrc:24 +msgid "Open &Workspace..." +msgstr "打开工作区(&W)..." -#: git/git.cpp:1201 -msgid "Do you want to start importing new / updating changed files?" -msgstr "您想开始导入新的/更新了的文件吗?" +#: menu.xrc:28 +msgid "&Reload File" +msgstr "重新载入文件(&R)" -#: git/git.cpp:1202 -msgid "Import files" -msgstr "导入文件" +#: menu.xrc:31 +msgid "Load a group of tabs" +msgstr "加载一组标签" -#: git/git.cpp:1207 -msgid "Error obtaining project" -msgstr "获取项目错误" +#: menu.xrc:35 +msgid "&Save File" +msgstr "保存文件(&S)" -#: git/git.cpp:1235 -msgid "Checking file " -msgstr "检查文件" +#: menu.xrc:38 +msgid "Save As..." +msgstr "另存为..." -#: git/git.cpp:1263 -msgid "Adding files..." -msgstr "正在添加文件..." +#: menu.xrc:44 +msgid "Save tabs as group" +msgstr "标签另存为组" -#: git/git.cpp:1314 -msgid "Finished adding files..." -msgstr "添加文件已完成..." +#: menu.xrc:57 menu.xrc:1081 +msgid "Close Workspace" +msgstr "关闭工作区" -#: git/git.cpp:1338 -msgid "" -"There was a problem while performing a git action.\n" -"Last command output:\n" -msgstr "" -"执行 git 动作出现问题。\n" -"最后一个命令输出:\n" +#: menu.xrc:63 +msgid "Recent &Files" +msgstr "最近文件(&F)" -#: git/git.cpp:1341 -msgid "git error" -msgstr "git 错误" +#: menu.xrc:68 +msgid "Recent &Workspaces" +msgstr "最近工作区(&W)" -#: git/git.cpp:1354 -msgid "created" -msgstr "已创建" +#: menu.xrc:84 +msgid "&Undo" +msgstr "撤销(&U)" -#: git/git.cpp:1392 -msgid "No commit message given, aborting..." -msgstr "没有提交信息,正在中止..." +#: menu.xrc:87 +msgid "&Redo" +msgstr "重做(&R)" -#: git/git.cpp:1421 -msgid "Nothing to pull, already up-to-date." -msgstr "没有文件来拉取,仓库已经是最新的。" +#: menu.xrc:90 +msgid "Set la&bel for current state" +msgstr "为当前状态设置标签(&B)" -#: git/git.cpp:1425 -msgid "Pull log" -msgstr "拉取日志" +#: menu.xrc:94 +msgid "&Cut" +msgstr "剪切(&C)" -#: git/git.cpp:1430 -msgid "Merged after pull. Rebase?" -msgstr "拉后合并。变更?" +#: menu.xrc:97 +msgid "Co&py" +msgstr "复制(&P)" -#: git/git.cpp:1430 git/git.cpp:1433 git/git.cpp:1436 -msgid "Rebase" -msgstr "变更" +#: menu.xrc:100 +msgid "Past&e" +msgstr "粘贴(&E)" -#: git/git.cpp:1433 -msgid "Rebase with what branch?" -msgstr "变更到什么分支?" +#: menu.xrc:103 +msgid "Select &All" +msgstr "选择全部(&A)" -#: git/git.cpp:1436 -msgid "Rebase with " -msgstr "变更为" +#: menu.xrc:106 +msgid "Split selection into lines" +msgstr "多行尾部插入" -#: git/git.cpp:1450 -msgid "Conflict found during merge" -msgstr "合并时发现冲突" +#: menu.xrc:112 +msgid "&Delete Line" +msgstr "删除行(&D)" -#: git/git.cpp:1532 -msgid "Are you sure you want to continue connecting" -msgstr "您确定要继续连接" +#: menu.xrc:115 +msgid "D&uplicate Selection / Line" +msgstr "复制选择内容/行(&U)" -#: git/git.cpp:2075 -msgid "Git Diff: " -msgstr "git的差异:" +#: menu.xrc:118 +msgid "Delete to Line &End" +msgstr "删除到行尾(&E)" -#: git/gitCommitListDlg.cpp:164 -msgid "Copy commit hash to clipboard" -msgstr "复制提交散列到剪贴板" +#: menu.xrc:121 +msgid "Delete to Line &Start" +msgstr "删除到行首(&S)" -#: git/gitCommitListDlg.cpp:165 -msgid "Revert this commit" -msgstr "恢复这次合并" +#: menu.xrc:124 +msgid "&Transpose Lines" +msgstr "上下行交换(&T)" -#: git/gitui.h:71 -msgid "Git settings..." -msgstr "Git 设置..." +#: menu.xrc:127 +msgid "Move Line Up" +msgstr "行上移" -#: git/gitui.h:100 -msgid "Git commit..." -msgstr "Git 提交..." +#: menu.xrc:130 +msgid "Move Line Down" +msgstr "行下移" -#: git/gitui.h:136 -msgid "Commit List" -msgstr "提交列表" +#: menu.xrc:133 +msgid "Center Line in Editor" +msgstr "行居中" + +#: menu.xrc:137 +msgid "Comment" +msgstr "注释" -#: git/gitui.h:158 -msgid "Current Diffs" -msgstr "显示当前差别" +#: menu.xrc:139 +msgid "Comment Selection" +msgstr "注释所选" -#: git/gitui.h:178 -msgid "git clone.." -msgstr "git 复制..." +#: menu.xrc:142 +msgid "Comment Line" +msgstr "注释行" + +#: menu.xrc:145 +msgid "Insert Comment Block" +msgstr "插入注释块" + +#: menu.xrc:149 +msgid "Text Conversion" +msgstr "文本转换" -#: git/gitui.h:196 -msgid "File diff" -msgstr "文件差异" +#: menu.xrc:151 +msgid "Make Upper&case" +msgstr "转为大写(&C)" -#: git/gitui.h:235 -msgid "Git Apply Patch" -msgstr "Git 应用补丁" +#: menu.xrc:154 +msgid "Make &Lowercase" +msgstr "转为小写(&L)" -#: git/gitFileDiffDlg.cpp:34 -msgid "Save as" -msgstr "另存为" +#: menu.xrc:158 +msgid "Convert to Windows Format" +msgstr "转换为 Windows 格式" -#: git/gitCommitDlg.cpp:107 -msgid "Git requires a commit message" -msgstr "Git 需要一个提交消息" +#: menu.xrc:161 +msgid "Convert to Unix Format" +msgstr "转换为 Unix 格式" -#: git/gitui.cpp:46 -msgid "Path to git executable:" -msgstr "git 可执行文件路径:" +#: menu.xrc:165 +msgid "Convert Indentation to Tabs" +msgstr "将缩进转换为制表符" -#: git/gitui.cpp:54 -msgid "Path to gitk executable:" -msgstr "gitk 可执行文件路径:" +#: menu.xrc:168 +msgid "Convert Indentation to Spaces" +msgstr "将缩进转换为空格" -#: git/gitui.cpp:63 -msgid "Configuration" -msgstr "配置" +#: menu.xrc:173 +msgid "Trim T&railing Spaces" +msgstr "修整行尾空格(&R)" -#: git/gitui.cpp:75 -msgid "Global user name:" -msgstr "全局用户名称:" +#: menu.xrc:177 +msgid "Match &Brace" +msgstr "匹配括号(&B)" -#: git/gitui.cpp:80 -msgid "Set the global user name (this name will tell git who you are)" -msgstr "设置全局用户名(这个名字会告诉git你是谁)" +#: menu.xrc:180 +msgid "S&elect to Brace" +msgstr "选择括号内(&E)" -#: git/gitui.cpp:84 -msgid "Global email:" -msgstr "全局邮箱:" +#: menu.xrc:184 +msgid "Complete &Word" +msgstr "代码补全(&W)" -#: git/gitui.cpp:89 -msgid "Set the current repository email" -msgstr "设置当前仓库邮箱" +#: menu.xrc:187 +msgid "Display &Function Calltip" +msgstr "显示函数调用提示(&F)" -#: git/gitui.cpp:93 -msgid "Local repository user name:" -msgstr "本地仓库用户名:" +#: menu.xrc:192 +msgid "&View" +msgstr "视图(&V)" -#: git/gitui.cpp:98 -msgid "" -"Set the current repository user name (this name will tell git who you are).\n" -"If this field letf empty, the global one is used" -msgstr "" -"设置当前仓库用户名(这个名称将告诉 git 您是谁)。\n" -"如果这个字段留空,全局设置将被启用" +#: menu.xrc:195 +msgid "Word W&rap" +msgstr "自动换行(&R)" -#: git/gitui.cpp:102 -msgid "Local repository email:" -msgstr "设置当前仓库邮箱" +#: menu.xrc:199 +msgid "Toggle Current &Fold" +msgstr "切换当前折叠(&F)" -#: git/gitui.cpp:107 -msgid "" -"Set the current repository email\n" -"If this field letf empty, the global one is used" -msgstr "" -"设置当前仓库用户名(这个名称将告诉 git 您是谁)。\n" -"如果这个字段留空,全局设置将被启用" +#: menu.xrc:202 +msgid "Toggle &All Folds" +msgstr "切换全部折叠(&A)" -#: git/gitui.cpp:117 -msgid "Show Terminal" -msgstr "显示终端" +#: menu.xrc:205 +msgid "Toggle All To&pmost Folds in Selection" +msgstr "切换选择的所有折叠(&P)" -#: git/gitui.cpp:119 -msgid "" -"Mainly useful for Windows when the password\n" -"prompt is not accessible via the UI" -msgstr "" -"当密码提示不是通过 UI 来输出时\n" -"这对 Windows 是有用的" +#: menu.xrc:208 +msgid "Toggle &Every Fold in Selection" +msgstr "切换选择的每个折叠(&E)" -#: git/gitui.cpp:123 -msgid "Verbose Logging" -msgstr "启用详细记录" +#: menu.xrc:211 +msgid "&Display EOL" +msgstr "显示 EOL(&D)" -#: git/gitui.cpp:125 -msgid "Tick this option to enable a verbose logging of git" -msgstr "勾选这个选项来启用一个详细的 git 日志" +#: menu.xrc:215 +msgid "Show Whitespace" +msgstr "显示空白" -#: git/gitui.cpp:129 -msgid "Colour modified items in the workspace view" -msgstr "在工作区视图中着色已修改项" +#: menu.xrc:221 +msgid "Show Always" +msgstr "总是可见" -#: git/gitui.cpp:131 -msgid "Colour modified items in the workspace view tree" -msgstr "在工作区视图树中着色已修改项" +#: menu.xrc:225 +msgid "Visible After First Indent" +msgstr "首次缩进后可见" -#: git/gitui.cpp:210 -msgid "Modified paths:" -msgstr "修改的路径:" +#: menu.xrc:229 +msgid "Indentation Only" +msgstr "仅缩进" -#: git/gitui.cpp:334 -msgid "Commit list:" -msgstr "提交列表:" +#: menu.xrc:235 +msgid "Full Screen..." +msgstr "全屏..." -#: git/gitui.cpp:343 -msgid "Author" -msgstr "作者" +#: menu.xrc:239 +msgid "Show &Welcome Page" +msgstr "显示欢迎信息(&W)" -#: git/gitui.cpp:344 -msgid "Date" -msgstr "日期" +#: menu.xrc:242 +msgid "Load Welcome Page at &Startup" +msgstr "启动时加载欢迎页面(&S)" -#: git/gitui.cpp:345 -msgid "Subject" -msgstr "主题" +#: menu.xrc:247 +msgid "&Output Pane" +msgstr "输出面板(&O)" -#: git/gitui.cpp:374 git/gitui.cpp:536 -msgid "Modified files:" -msgstr "已修改的文件:" +#: menu.xrc:251 +msgid "Wor&kspace Pane" +msgstr "工作区面板(&K)" -#: git/gitui.cpp:603 -msgid "Clone URL:" -msgstr "复制 URL:" +#: menu.xrc:255 +msgid "&Navigation Bar" +msgstr "导航栏(&N)" -#: git/gitui.cpp:608 -msgid "git URL to clone" -msgstr "用来git clone的网址" +#: menu.xrc:259 +msgid "&Debugger Pane" +msgstr "调试器面板(&D)" -#: git/gitui.cpp:612 -msgid "Target Directory:" -msgstr "目标目录:" +#: menu.xrc:284 +msgid "Tool&bars" +msgstr "工具栏(&B)" -#: git/gitui.cpp:617 -msgid "Clone the sources into this target directory" -msgstr "复制资源到这个目标目录" +#: menu.xrc:287 +msgid "Standard ToolBar" +msgstr "标准工具栏" -#: git/gitui.cpp:948 -msgid "Select patch file" -msgstr "选择补丁文件" +#: menu.xrc:291 +msgid "Search ToolBar" +msgstr "搜索工具栏" -#: git/gitui.cpp:953 -msgid "Patch file to apply" -msgstr "应用补丁文件" +#: menu.xrc:295 +msgid "Build ToolBar" +msgstr "构建工具栏" -#: git/gitui.cpp:958 -msgid "git apply additional flags to use:" -msgstr "git 可用的附加参数:" +#: menu.xrc:299 +msgid "Debug ToolBar" +msgstr "调试工具栏" -#: git/gitui.cpp:963 -msgid "" -"By default, codelite uses the command 'git apply --whitespace=nowarn --" -"ignore-whitespace' for applying patch files.\n" -"Set here an extra flags to use with this command, e.g.:\n" -"\n" -"--reverse\n" -"\n" -"See the git manual for more options" -msgstr "" -"默认情况下,CodeLite 使用“git apply --whitespace=nowarn --ignore-" -"whitespace”命令来应用补丁文件。\n" -"设置一个临时的标志来使用这条命令,例如:\n" -"\n" -"--reverse\n" -"\n" -"查看 Git 用户手册可以得到更多选项" +#: menu.xrc:304 +msgid "Show/hide main toolbars" +msgstr "显示/隐藏主工具栏" -#: git/gitui.cpp:1010 -msgid "m_toolKill" -msgstr "" +#: menu.xrc:308 +msgid "Show/hide all plugin toolbars" +msgstr "显示/隐藏所有插件工具栏" -#: git/gitui.cpp:1010 -msgid "Terminate git process" -msgstr "终止 git 进程" +#: menu.xrc:316 +msgid "&Toggle All Panes" +msgstr "切换全部面板(&T)" -#: git/gitui.cpp:1016 -msgid "Reset File" -msgstr "重置文件" +#: menu.xrc:320 +msgid "Show Status Bar" +msgstr "显示状态栏" -#: git/gitui.cpp:1038 -msgid "File View" -msgstr "文件视图" +#: menu.xrc:324 +msgid "Show ToolBar" +msgstr "显示工具栏" -#: git/GitConsole.cpp:96 -msgid "Switch to local branch" -msgstr "切换到本地分支" +#: menu.xrc:328 +msgid "Show TabBar" +msgstr "显示标签栏" + +#: menu.xrc:337 +msgid "&Find In Files..." +msgstr "在文件中查找(&F)..." -#: git/GitConsole.cpp:98 -msgid "Garbage collect" -msgstr "垃圾回收" +#: menu.xrc:340 +msgid "Fi&nd..." +msgstr "查找(&N)..." -#: git/GitConsole.cpp:99 -msgid "Plugin settings" -msgstr "插件设置" +#: menu.xrc:343 +msgid "&Replace..." +msgstr "替换(&R)..." -#: git/GitConsole.cpp:99 -msgid "Set repository path" -msgstr "设置仓库路径" +#: menu.xrc:346 +msgid "Select Next Occurrence" +msgstr "选择下一个匹配项" + +#: menu.xrc:349 +msgid "Select Previous Occurrence" +msgstr "选择上一个匹配项" -#: git/GitConsole.cpp:165 -msgid "Reset" -msgstr "重置" +#: menu.xrc:352 +msgid "Find &Next" +msgstr "查找下一个(&N)" -#: git/GitConsole.cpp:168 -msgid "Pull" -msgstr "拉取" +#: menu.xrc:355 +msgid "Find &Previous" +msgstr "查找上一个(&P)" -#: git/GitConsole.cpp:171 -msgid "Push" -msgstr "推送" +#: menu.xrc:358 +msgid "Find Word At Caret" +msgstr "查找光标处的词语" -#: git/GitConsole.cpp:171 -msgid "Push local changes" -msgstr "推送本地变更" +#: menu.xrc:361 +msgid "Find Word At Caret Backward" +msgstr "查找光标后的词语" -#: git/GitConsole.cpp:173 -msgid "Diffs" -msgstr "" +#: menu.xrc:365 +msgid "Grep Selection in the Current File" +msgstr "在当前文件中查询选择" -#: git/GitConsole.cpp:174 -msgid "Browse commit history" -msgstr "浏览提交历史记录" +#: menu.xrc:368 +msgid "Grep Selection in the Workspace" +msgstr "在工作区中查找选择" -#: git/GitConsole.cpp:286 -msgid "Modified" -msgstr "已修改" +#: menu.xrc:372 +msgid "Go to Next 'Find In File' Match" +msgstr "转到“文件中查找”下一个匹配" -#: git/GitConsole.cpp:298 -msgid "Untracked" -msgstr "未跟踪" +#: menu.xrc:375 +msgid "Go to Previous 'Find In File' Match" +msgstr "转到“文件中查找”上一个匹配" -#: abbreviation/abbreviationssettingsbase.cpp:56 -msgid "" -"You can use | (pipe) character to indicate where the caret should be " -"placed. \n" -"You can use $(VariableName) to indicate CodeLite to prompt you for suitable " -"replacement" -msgstr "" -"您可以使用 | (管道) 字符来指示光标要放的地方。\n" -"您可以使用 $(VariableName) 来指出 CodeLite 提示的使用替代" +#: menu.xrc:379 +msgid "Find &Resource..." +msgstr "查找资源(&R)..." -#: abbreviation/abbreviationssettingsbase.cpp:100 -msgid "Immediate Insert" -msgstr "直接插入" +#: menu.xrc:383 +msgid "&Quick Outline..." +msgstr "快速概述(&Q)..." -#: abbreviation/abbreviationssettingsbase.cpp:115 -msgid "Save the current changes" -msgstr "保存当前更改" +#: menu.xrc:386 +msgid "Find &Symbol" +msgstr "查找符号(&S)" -#: abbreviation/abbreviationssettingsbase.cpp:120 -msgid "Create a new abbreviation" -msgstr "创建一个新的缩写" +#: menu.xrc:389 +msgid "Go To Pre&vious Location" +msgstr "转到前一个位置(&V)" -#: abbreviation/abbreviationssettingsbase.cpp:125 -msgid "Delete the currently selected abbreviation" -msgstr "删除当前已选择缩写" +#: menu.xrc:392 +msgid "Go To For&ward Location" +msgstr "转到前一个位置(&W)" -#: abbreviation/abbreviationssettingsbase.cpp:131 -msgid "Import..." -msgstr "导入..." +#: menu.xrc:397 +msgid "&Goto Line..." +msgstr "转到指定行(&G)..." -#: abbreviation/abbreviationssettingsbase.cpp:132 -msgid "Import abbreviations from the file system..." -msgstr "从文件系统中导入缩写表..." +#: menu.xrc:403 +msgid "Toggle &Bookmark" +msgstr "切换书签(&B)" -#: abbreviation/abbreviationssettingsbase.cpp:136 -msgid "Export..." -msgstr "导出..." +#: menu.xrc:406 +msgid "&Next Bookmark" +msgstr "下一个书签(&N)" -#: abbreviation/abbreviationssettingsbase.cpp:137 -msgid "Export abbreviations to the file system..." -msgstr "导出缩写表到文件系统..." +#: menu.xrc:409 +msgid "Previo&us Bookmark" +msgstr "上一个书签(&U)" -#: abbreviation/abbreviation.cpp:55 abbreviation/abbreviation.cpp:70 -msgid "Abbreviation plugin" -msgstr "缩写插件" +#: menu.xrc:412 +msgid "Remove All &Currently-Active Bookmarks" +msgstr "移除所有当前活动的书签(&C)" -#: abbreviation/abbreviation.cpp:93 -msgid "Insert Expansion" -msgstr "插入扩展" +#: menu.xrc:415 +msgid "Remove &All Bookmarks" +msgstr "移除全部书签(&A)" -#: abbreviation/abbreviation.cpp:290 -#, c-format -msgid "Enter replacement for '%s':" -msgstr "替换“%s”为:" +#: menu.xrc:423 +msgid "&Workspace" +msgstr "工作区(&W)" -#: abbreviation/abbreviationssettingsdlg.cpp:76 -msgid "What is the name of the new abbreviation name:" -msgstr "新缩写名称是什么:" +#: menu.xrc:426 +msgid "&New Workspace..." +msgstr "新建工作区(&N)..." -#: abbreviation/abbreviationssettingsdlg.cpp:76 -msgid "New abbreviation..." -msgstr "新建缩写..." +#: menu.xrc:429 +msgid "&Open Workspace..." +msgstr "打开工作区(&O)..." -#: abbreviation/abbreviationssettingsdlg.cpp:79 -msgid "An abbreviation with this name already exists!" -msgstr "同名缩写已存在!" +#: menu.xrc:432 +msgid "&Close Workspace" +msgstr "关闭工作区(&C)" -#: abbreviation/abbreviationssettingsdlg.cpp:101 -#, c-format -msgid "Are you sure you want to delete '%s'" -msgstr "您确定要删除“%s“吗" +#: menu.xrc:435 +msgid "&Reload Workspace" +msgstr "重新载入工作区(&R)" -#: abbreviation/abbreviationssettingsdlg.cpp:250 -msgid "" -"This folder already contains a file named 'abbreviations.conf' - would you " -"like to overrite it?" -msgstr "该文件夹已包含一个名为“abbreviations.conf”的文件 - 您想要覆盖它吗?" +#: menu.xrc:440 menu.xrc:467 menu.xrc:1092 +msgid "Workspace Settings..." +msgstr "工作区设置..." -#: abbreviation/abbreviationssettingsdlg.cpp:254 -msgid "Abbreviations were exported to '" -msgstr "缩写表被导出到 '" +#: menu.xrc:443 menu.xrc:470 menu.xrc:1088 +msgid "Workspace Editor Preferences..." +msgstr "工作区编辑器参数..." -#: abbreviation/abbreviationssettingsdlg.cpp:267 -msgid "The file does not seem to contain a valid abbreviations entries" -msgstr "文件似乎并没有包含一个有效的缩写条目" +#: menu.xrc:448 +msgid "&Import other IDEs solution/workspace files..." +msgstr "导入其他 IDE 解决方案/工作区文件(&I)..." -#: abbreviation/abbreviationssettingsdlg.cpp:281 -msgid "Abbreviations imported successfully!" -msgstr "成功导入缩写表!" +#: menu.xrc:456 +msgid "&Add an existing project" +msgstr "添加已有项目(&A)" -#: abbreviation/abbreviationssettingsbase.h:52 -msgid "Abbreviations Settings..." -msgstr "缩写设置..." +#: menu.xrc:459 +msgid "&Reconcile the current project" +msgstr "协调当前项目(&R)" -#: UnitTestCPP/testclassbasedlg.h:67 -msgid "Create UnitTests for Class.." -msgstr "为类创建单元测试.." +#: menu.xrc:460 +msgid "Check project for missing and stale files" +msgstr "检查项目中丢失的以及过期的文件" -#: UnitTestCPP/testclassbasedlg.cpp:35 -msgid "&Show Functions..." -msgstr "显示函数(&S)..." +#: menu.xrc:464 +msgid "&Open Active Project Settings..." +msgstr "打开活动项目设置(&O)..." -#: UnitTestCPP/testclassbasedlg.cpp:46 UnitTestCPP/newunittestbasedlg.cpp:36 -msgid "Fixture name (optional):" -msgstr "固定名称(可选):" +#: menu.xrc:474 +msgid "Retag Workspace ( Full )" +msgstr "重建工作区标签文件(全部)" -#: UnitTestCPP/testclassbasedlg.cpp:53 UnitTestCPP/newunittestbasedlg.cpp:43 -msgid "Output file name (optional):" -msgstr "输出文件名(可选):" +#: menu.xrc:475 +msgid "Retag the workspace by dropping the old tags tables, and recreate them" +msgstr "重建工作区标签文件,删除旧标签文件,并重新创建它们" -#: UnitTestCPP/testclassbasedlg.cpp:58 UnitTestCPP/newunittestbasedlg.cpp:48 -msgid "" -"The name of the file of which CodeLite will generate the test code.\n" -"When left empty, CodeLite will use the first available source file in target " -"project" -msgstr "" -"CodeLite 生成测试代码得文件名。\n" -"当留空时,CodeLite 将使用目标项目中首个可用源文件" +#: menu.xrc:478 +msgid "Retag Workspace ( Quick )" +msgstr "重建工作区标签文件(快速)" -#: UnitTestCPP/testclassbasedlg.cpp:62 -msgid "Project to which these unit tests should be added:" -msgstr "项目的这些单元测试应该被添加:" +#: menu.xrc:486 +msgid "Configuration &Manager..." +msgstr "配置管理器(&M)" -#: UnitTestCPP/testclassbasedlg.cpp:73 -msgid "Functions to test:" -msgstr "函数测试:" +#: menu.xrc:491 +msgid "&Run" +msgstr "运行(&R)" -#: UnitTestCPP/unittestpp.cpp:72 UnitTestCPP/unittestpp.cpp:94 -msgid "A Unit test plugin based on the UnitTest++ framework" -msgstr "一个基于 UnitTest++ 框架的单元测试插件" +#: menu.xrc:494 cppchecker/cppcheckreportbasepage.cpp:84 +msgid "&Stop" +msgstr "停止(&S)" -#: UnitTestCPP/unittestpp.cpp:92 UnitTestCPP/unittestpp.cpp:163 -msgid "UnitTest++" -msgstr "UnitTest++" +#: menu.xrc:499 +msgid "&Build Project" +msgstr "构建项目(&B)" -#: UnitTestCPP/unittestpp.cpp:117 UnitTestCPP/unittestpp.cpp:120 -msgid "Run Unit tests..." -msgstr "运行单元测试..." +#: menu.xrc:502 +msgid "&Compile Current File" +msgstr "编译当前文件(&C)" -#: UnitTestCPP/unittestpp.cpp:117 UnitTestCPP/unittestpp.cpp:120 -msgid "Run project as unit test project..." -msgstr "项目作为单元测试项目运行..." +#: menu.xrc:505 +msgid "Cl&ean Project" +msgstr "清除项目(&E)" -#: UnitTestCPP/unittestpp.cpp:138 UnitTestCPP/unittestpp.cpp:180 -msgid "Create new &test..." -msgstr "创建新测试(&t)" +#: menu.xrc:508 +msgid "Sto&p Build" +msgstr "停止构建(&P)" -#: UnitTestCPP/unittestpp.cpp:141 UnitTestCPP/unittestpp.cpp:183 -msgid "Create tests for &class..." -msgstr "为类创建测试(&c)" +#: menu.xrc:512 +msgid "Reb&uild Project" +msgstr "重建项目(&U)" -#: UnitTestCPP/unittestpp.cpp:146 -msgid "Mark this project as UnitTest++ project" -msgstr "标记项目为 UnitTest++ 项目" +#: menu.xrc:515 +msgid "Build and Run Pro&ject" +msgstr "构建并运行项目(&J)" -#: UnitTestCPP/unittestpp.cpp:149 -msgid "Run Project as UnitTest++ and report" -msgstr "项目作为单元测试运行并报告" +#: menu.xrc:519 menu.xrc:1060 +msgid "Build Workspace" +msgstr "构建工作区" -#: UnitTestCPP/unittestpp.cpp:194 UnitTestCPP/unittestpp.cpp:260 -msgid "" -"There are currently no UnitTest project in your workspace\n" -"Would you like to create one now?" -msgstr "" -"您的工作空间当前无单元测试项目\n" -"您要现在创建一个吗?" +#: menu.xrc:522 menu.xrc:1063 +msgid "Clean Workspace" +msgstr "清除工作区" -#: UnitTestCPP/unittestpp.cpp:313 -msgid "Could not find the target project" -msgstr "找不到目标项目" +#: menu.xrc:525 menu.xrc:1066 +msgid "Rebuild Workspace" +msgstr "重建工作区" -#: UnitTestCPP/unittestpp.cpp:394 -#, c-format -msgid "Could not create target file '%s'" -msgstr "无法创建目标文件”%s“" +#: menu.xrc:529 +msgid "Batch Build..." +msgstr "批量构建..." -#: UnitTestCPP/unittestreport.cpp:35 -msgid "Passed:" -msgstr "通过:" +#: menu.xrc:533 +msgid "Ne&xt Build Error" +msgstr "下一个构建错误(&X)" -#: UnitTestCPP/unittestreport.cpp:42 -msgid "Failed:" -msgstr "失败:" +#: menu.xrc:538 +msgid "&Debugger" +msgstr "调试器(&D)" -#: UnitTestCPP/unittestreport.cpp:58 -msgid "Total tests:" -msgstr "共测试了:" +#: menu.xrc:541 +msgid "&Start/Continue Debugger" +msgstr "开始/继续调试器(&S)" -#: UnitTestCPP/unittestreport.cpp:69 -msgid "Tests failed:" -msgstr "测试失败:" +#: menu.xrc:544 +msgid "&Restart Debugger" +msgstr "重启调试器(&R)" -#: UnitTestCPP/unittestreport.cpp:80 -msgid "Tests passed:" -msgstr "测试通过:" +#: menu.xrc:547 +msgid "&Attach to process..." +msgstr "连接到进程(&A)..." -#: UnitTestCPP/newunittestbasedlg.h:51 -msgid "New Unit Test" -msgstr "新建单元测试" +#: menu.xrc:550 +msgid "Debug a core d&ump..." +msgstr "调试核心转储(&U)..." -#: UnitTestCPP/newunittestbasedlg.cpp:25 -msgid "Test name:" -msgstr "测试名称:" +#: menu.xrc:553 +msgid "&Pause debugger" +msgstr "暂停调试器(&P)" -#: UnitTestCPP/newunittestbasedlg.cpp:27 UnitTestCPP/newunittestbasedlg.cpp:32 -msgid "The C++ name of the test" -msgstr "测试的 C++ 名称" +#: menu.xrc:556 +msgid "S&top debugger" +msgstr "停止调试器(&T)" -#: UnitTestCPP/newunittestbasedlg.cpp:52 -msgid "Project to whom this unit test should be added to:" -msgstr "项目的这个单元测试应该被添加到:" +#: menu.xrc:560 +msgid "Step &Into" +msgstr "单步跳入(&I)" -#: UnitTestCPP/testclassdlg.cpp:124 -msgid "There are no tests to generate" -msgstr "没有测试产生" +#: menu.xrc:563 +msgid "Ne&xt" +msgstr "单步跳过(&X)" -#: UnitTestCPP/testclassdlg.cpp:159 -msgid "Could not find match for class '" -msgstr "找不到类匹配”" +#: menu.xrc:569 +msgid "Step &Out" +msgstr "单步跳出(&O)" -#: UnitTestCPP/testclassdlg.cpp:178 -msgid "Select class:" -msgstr "选择类:" +#: menu.xrc:573 +msgid "Show &Cursor" +msgstr "显示光标(&C)" -#~ msgid "Overwrite" -#~ msgstr "覆盖" +#: menu.xrc:577 +msgid "Toggle &Breakpoint" +msgstr "切换断点(&B)" -#~ msgid "Don't Overwrite" -#~ msgstr "不要覆盖" +#: menu.xrc:580 +msgid "Disab&le All Breakpoints" +msgstr "禁用全部断点(&L)" -#~ msgid "Remember my answer and don't annoy me again" -#~ msgstr "记住我的回答,不要再询问我" +#: menu.xrc:583 +msgid "E&nable All Breakpoints" +msgstr "启用全部断点(&N)" -#~ msgid "" -#~ "Directory where the project will be built. Path is relative to " -#~ "$(WorkspacePath)." -#~ msgstr "构建该项目的目录,路径相对于 $(WorkspacePath) 。" +#: menu.xrc:586 +msgid "&Delete All Breakpoints" +msgstr "删除全部断点(&D)" -#~ msgid "Source Code Formatter (Supports C/C++/Obj-C/JavaScript/PHP files)" -#~ msgstr "源代码格式化程序(支持 C/C++/Obj-C/JavaScript/PHP 文件)" +#: menu.xrc:590 +msgid "&Quick Debug..." +msgstr "快速调试(&Q)..." -#~ msgid "Source code formatting error!" -#~ msgstr "源代码格式化出错!" +#: menu.xrc:594 +msgid "GDB Windows" +msgstr "GDB 窗口" -#~ msgid "Nothing to be done here" -#~ msgstr "这儿什么也没做" +#: menu.xrc:625 +msgid "ASCII Viewer" +msgstr "ASCII 视图" -#~ msgid "" -#~ " files\n" -#~ "Continue?" -#~ msgstr "" -#~ "文件\n" -#~ "是否继续?" +#: menu.xrc:629 +msgid "Disassembly" +msgstr "反汇编" -#~ msgid "You are about to beautify " -#~ msgstr "您是要美化" +#: menu.xrc:636 +msgid "&Plugins" +msgstr "插件(&P)" -#~ msgid "Formatting files..." -#~ msgstr "格式化文件..." +#: menu.xrc:639 +msgid "&Manage Plugins..." +msgstr "管理插件(&M)..." -#~ msgid "AStyle help page" -#~ msgstr "AStyle 帮助页面" +#: menu.xrc:645 +msgid "Pe&rspective" +msgstr "视图(&R)" -#~ msgid "clang-format help page" -#~ msgstr "clang-format 帮助页面" +#: menu.xrc:649 +msgid "Save Current Layout As..." +msgstr "保存当前布局为..." -#~ msgid "Format editor on file save:" -#~ msgstr "文件保存时格式编辑器:" +#: menu.xrc:652 +msgid "Manage Perspectives..." +msgstr "视图管理..." -#~ msgid "When saving a file, automatically format it" -#~ msgstr "当保存文件时,自动格式化" +#: menu.xrc:656 +msgid "Restore Default Layout" +msgstr "恢复默认布局" -#~ msgid "Select C++ formatter:" -#~ msgstr "选择 C++ 格式化器:" +#: menu.xrc:660 +msgid "Settin&gs" +msgstr "设置(&G)" -#~ msgid "" -#~ "Select the formatter engine for C/C++\n" -#~ "Note that JavaScript, clang-format is always used" -#~ msgstr "" -#~ "为 C/C++ 选择格式化程序引擎\n" -#~ "注意这条 JavaScript 脚本,clang-format 默认总是使用的" +#: menu.xrc:663 +msgid "Global &Editor Preferences..." +msgstr "全局编辑器参数(&E)..." -#~ msgid "AStyle" -#~ msgstr "AStyle" +#: menu.xrc:666 +msgid "Colours and &Fonts..." +msgstr "颜色和字体(&F)..." -#~ msgid "AStyle Options" -#~ msgstr "AStyle 选项" +#: menu.xrc:669 +msgid "Keyboard &shortcuts..." +msgstr "键盘快捷键(&S)..." -#~ msgid "GNU" -#~ msgstr "GNU" +#: menu.xrc:672 +msgid "En&vironment Variables..." +msgstr "环境变量(&V)..." -#~ msgid "Java" -#~ msgstr "Java" +#: menu.xrc:675 +msgid "&Build Settings..." +msgstr "构建设置(&B)..." -#~ msgid "K&R" -#~ msgstr "K&R" +#: menu.xrc:678 +msgid "&GDB Settings..." +msgstr "GDB 设置(&G)..." -#~ msgid "Linux" -#~ msgstr "Linux" +#: menu.xrc:681 +msgid "&Code Completion..." +msgstr "代码补全(&C)..." -#~ msgid "ANSI" -#~ msgstr "ANSI" +#: menu.xrc:689 +msgid "&Help" +msgstr "帮助(&H)" -#~ msgid "PreDefined Styles" -#~ msgstr "预定义风格" +#: menu.xrc:692 +msgid "&About..." +msgstr "关于(&A)..." -#~ msgid "Choose the formatting from one of the known styles" -#~ msgstr "从一个已知的格式样式中选择一种" +#: menu.xrc:696 +msgid "&Run the Setup Wizard..." +msgstr "运行设置向导(&R)..." -#~ msgid "Break closing" -#~ msgstr "打断关闭" +#: menu.xrc:700 +msgid "&Check for updates..." +msgstr "检查更新(&C)..." -#~ msgid "Attach" -#~ msgstr "连接" +#: menu.xrc:713 menu.xrc:733 +msgid "Close Other Tabs" +msgstr "关闭其它标签" -#~ msgid "Break" -#~ msgstr "打断" +#: menu.xrc:736 +msgid "Close Tabs To The Right" +msgstr "右键单击关闭标签" + +#: menu.xrc:740 +msgid "Make Read Only" +msgstr "设定为只读" -#~ msgid "None" -#~ msgstr "无" +#: menu.xrc:752 +msgid "Show In" +msgstr "显示在" -#~ msgid "Bracket Style options define the bracket style to use" -#~ msgstr "使用括号风格选项来定义括号风格" +#: menu.xrc:754 +msgid "Show In Workspace" +msgstr "显示在工作区中" -#~ msgid "Min Instatement Indent" -#~ msgstr "最小的连续声明缩进" +#: menu.xrc:757 +msgid "Show In Explorer" +msgstr "显示在资源管理器中" -#~ msgid "Pad Parenthesis Inside" -#~ msgstr "在括号内加上空格" +#: menu.xrc:761 +msgid "Copy File Name" +msgstr "复制文件名" -#~ msgid "Select one or more formatting option from the list below" -#~ msgstr "从下面的列表中选择一个或多个格式化选项" +#: menu.xrc:763 +msgid "Copy File Name to Clipboard" +msgstr "复制文件名到剪贴板" -#~ msgid "AStyle Only:" -#~ msgstr "只有astyle:" +#: menu.xrc:766 +msgid "Copy Full Path to Clipboard" +msgstr "复制完整路径到剪贴板" -#~ msgid "Custom user settings" -#~ msgstr "自定义用户设置:" +#: menu.xrc:769 +msgid "Copy Path to Clipboard" +msgstr "复制路径到剪贴板" -#~ msgid "clang-format" -#~ msgstr "clang-format" +#: menu.xrc:774 +msgid "Detach Editor" +msgstr "分离编辑器" -#~ msgid "ClangFormat Options" -#~ msgstr "ClangFormat 选项" +#: menu.xrc:778 +msgid "Open Shell at File Path" +msgstr "在文件路径打开 Shell" -#~ msgid "clang-format path" -#~ msgstr "clang-format 路径" +#: menu.xrc:781 +msgid "Open File Explorer at File Path" +msgstr "在文件路径中打开文件浏览器" -#~ msgid "Select the path to clang-format executable tool" -#~ msgstr "选择 clang-format 可执行工具的路径" +#: menu.xrc:787 +msgid "Swap Header/Implementation file\tF12" +msgstr "切换头/源文件\tF12" -#~ msgid "Column Limit" -#~ msgstr "列的限制" +#: menu.xrc:798 +msgid "Search for selected text in workspace" +msgstr "在工作区中搜索已选择的文本" -#~ msgid "" -#~ "The column limit\n" -#~ "A column limit of 0 means that there is no column limit.\n" -#~ "In this case, clang-format will respect the input's line breaking " -#~ "decisions within statements unless they contradict other rules" -#~ msgstr "" -#~ "列限制\n" -#~ "列限制为 0 意味着没有列限制。\n" -#~ "在这种情况下,clang-format 将会尊重语句内打断的决定,除非与其他规则相矛盾" +#: menu.xrc:804 +msgid "Goto Beginning of Current Function" +msgstr "转到当前函数开始" -#~ msgid "Stroustrup" -#~ msgstr "Stroustrup" +#: menu.xrc:807 +msgid "Goto Beginning of Next Function" +msgstr "转到下一个函数开始" -#~ msgid "Allman" -#~ msgstr "Allman" +#: menu.xrc:816 +msgid "Code Generation / Refactoring" +msgstr "代码生成/重构" -#~ msgid "Brace breaking style" -#~ msgstr "括号打断风格" +#: menu.xrc:819 +msgid "Insert Doxygen Comment\tCtrl-Shift-D" +msgstr "插入 Doxygen 注释\tCtrl-Shift-D" -#~ msgid "The brace breaking style to use." -#~ msgstr "使用括号打断风格。" +#: menu.xrc:822 +msgid "Generate Setters/Getters..." +msgstr "生成 Setters/Getters..." -#~ msgid "LLVM" -#~ msgstr "LLVM" +#: menu.xrc:826 +msgid "Comment Selection\tCtrl-Shift-/" +msgstr "注释所选\tCtrl-Shift-/" + +#: menu.xrc:829 +msgid "Toggle Line Comment\tCtrl-/" +msgstr "切换行注释\tCtrl-/" -#~ msgid "Google" -#~ msgstr "Google" +#: menu.xrc:833 +msgid "Move Function Implementation to..." +msgstr "移动函数实现到..." -#~ msgid "WebKit" -#~ msgstr "WebKit" +#: menu.xrc:836 +msgid "Add Function Implementation..." +msgstr "添加函数实现..." -#~ msgid "Chromium" -#~ msgstr "Chromium" +#: menu.xrc:839 +msgid "Implement all Un-implemented Functions..." +msgstr "实现全部未实现函数..." -#~ msgid "Mozilla" -#~ msgstr "Mozilla" +#: menu.xrc:842 +msgid "Synchronize Signatures..." +msgstr "同步签名..." -#~ msgid "Style" -#~ msgstr "样式" +#: menu.xrc:847 +msgid "Implement inherited virtual Functions..." +msgstr "实现继承的虚函数..." -#~ msgid "Align Escaped Newlines Left" -#~ msgstr "向左对齐溢出的新行" +#: menu.xrc:850 +msgid "Implement inherited pure virtual Functions..." +msgstr "实现继承的纯虚函数..." -#~ msgid "Align Trailing Comments" -#~ msgstr "对齐注释" +#: menu.xrc:854 +msgid "Rename Symbol...\tCtrl-Shift-H" +msgstr "重命名符号...\tCtrl-Shift-H" -#~ msgid "Allow All Parameters Of Declaration On Next Line" -#~ msgstr "允许在下一行声明所有参数" +#: menu.xrc:857 +msgid "Rename Local Variable...\tCtrl-Shift-L" +msgstr "重命名局部变量...\tCtrl-Shift-L" -#~ msgid "Allow Short Functions On A Single Line" -#~ msgstr "单行允许短函数" +#: menu.xrc:883 menu.xrc:926 +msgid "Select All" +msgstr "选择全部" -#~ msgid "Allow Short Blocks On A Single Line" -#~ msgstr "单行允许短块" +#: menu.xrc:892 +msgid "Toggle Breakpoint" +msgstr "切换断点" -#~ msgid "Allow Short Loops On A Single Line" -#~ msgstr "单行允许短循环" +#: menu.xrc:900 +msgid "Re-Tag File" +msgstr "重建标签文件" -#~ msgid "Allow Short If Statements On A SingleLine" -#~ msgstr "单行允许短 If 语句" +#: menu.xrc:935 +msgid "Create new workspace..." +msgstr "创建新工作区..." -#~ msgid "Always Break Before Multiline Strings" -#~ msgstr "总是在多行字符串前打断" +#: menu.xrc:938 +msgid "Switch to workspace..." +msgstr "切换到工作区..." -#~ msgid "Always Break Template Declarations" -#~ msgstr "总是打断模板声明" +#: menu.xrc:944 menu.xrc:971 +msgid "Project" +msgstr "项目" -#~ msgid "Bin Pack Parameters" -#~ msgstr "本组参数" +#: menu.xrc:947 +msgid "Add a New File..." +msgstr "添加新的文件..." -#~ msgid "Break Before Binary Operators" -#~ msgstr "在二元运算符前打断" +#: menu.xrc:950 +msgid "Add an Existing File..." +msgstr "添加现有文件..." -#~ msgid "Break Before Ternary Operators" -#~ msgstr "在三元运算符前打断" +#: menu.xrc:957 +msgid "Sort Item" +msgstr "排序项目" -#~ msgid "Break Constructor Initializers Before Comma" -#~ msgstr "在逗号前的初始化器前加空行" +#: menu.xrc:961 +msgid "Remove Virtual Folder" +msgstr "移除虚拟文件夹" -#~ msgid "Indent Case Labels" -#~ msgstr "缩进实例标签" +#: menu.xrc:965 +msgid "Rename ..." +msgstr "重命名 ..." -#~ msgid "Indent Function DeclarationAfterType" -#~ msgstr "缩进类型后的函数声明" +#: menu.xrc:975 +msgid "Build Order..." +msgstr "构建顺序..." -#~ msgid "Space Before Assignment Operators" -#~ msgstr "赋值运算符之前使用空格" +#: menu.xrc:984 menu.xrc:1006 +msgid "Rebuild" +msgstr "重建" -#~ msgid "Space Before Parentheses" -#~ msgstr "括号前加空格" +#: menu.xrc:987 menu.xrc:1002 +msgid "Clean" +msgstr "清除" -#~ msgid "Spaces In Parentheses" -#~ msgstr "括号内加空格" +#: menu.xrc:992 +msgid "Stop Build" +msgstr "停止构建" -#~ msgid "Pointer And Reference Aligned to the Right" -#~ msgstr "指针和引用向右对齐" +#: menu.xrc:996 +msgid "Project Only" +msgstr "仅项目" -#~ msgid "Clang Formatting Options" -#~ msgstr "Clang 格式化选项" +#: menu.xrc:1011 +msgid "Import Files From Directory" +msgstr "从目录导入文件" -#~ msgid "PHP" -#~ msgstr "PHP" +#: menu.xrc:1017 +msgid "Set As Active" +msgstr "设置为活动" -#~ msgid "PHP related settings" -#~ msgstr "PHP相关设置" +#: menu.xrc:1023 +msgid "Export Makefile" +msgstr "导出 Makefile 文件" -#~ msgid "Break before class" -#~ msgstr "类前打断" +#: menu.xrc:1037 +msgid "Remove Project" +msgstr "移除项目" -#~ msgid "Break before function" -#~ msgstr "函数前打断" +#: menu.xrc:1040 +msgid "Rename Project" +msgstr "重命名项目" -#~ msgid "Break before 'while'" -#~ msgstr "'while'前打断" +#: menu.xrc:1045 +msgid "Save As Template..." +msgstr "另存为模板..." -#~ msgid "Break before 'foreach'" -#~ msgstr "'foreach'前打断" +#: menu.xrc:1049 +msgid "Project Editor Preferences..." +msgstr "项目编辑器偏好..." -#~ msgid "'else' doesn't break" -#~ msgstr "'else'不打断" +#: menu.xrc:1070 +msgid "Create New Project" +msgstr "创建新项目" -#~ msgid "Break after 'heredoc' statement" -#~ msgstr "'heredoc'语句后打断" +#: menu.xrc:1073 +msgid "Add an Existing Project" +msgstr "添加现有项目" -#~ msgid "PHPFormatter Options" -#~ msgstr "PHPFormatter选项" +#: menu.xrc:1077 +msgid "Retag Workspace" +msgstr "重建工作区标签文件" -#~ msgid "PHP: parsed " -#~ msgstr "PHP:已解析" +#: menu.xrc:1084 codelitephp/PHPParser/php_workspace.cpp:467 +msgid "Reload Workspace" +msgstr "重新载入工作区" -#~ msgid "Send command to the process" -#~ msgstr "发送命令到进程" +#: menu.xrc:1099 menu.xrc:1106 +msgid "Detach" +msgstr "分离" -#~ msgid "Executing: " -#~ msgstr "正在执行:" +#: menu.xrc:1112 +msgid "Open in CodeLite" +msgstr "在 CodeLite 中打开" -#~ msgid "Failed to execute command: %s" -#~ msgstr "无法执行命令: %s" +#: menu.xrc:1115 menu.xrc:1229 +msgid "Open With &Default Application" +msgstr "用默认程序打开(&D)" -#~ msgid "" -#~ "The host key for this server was not found but another type of key " -#~ "exists.\n" -#~ msgstr "没有发现该服务器主机密钥,但存在一个其他类型的密钥。\n" +#: menu.xrc:1118 +msgid "Compile" +msgstr "编译" -#~ msgid "New Diff.." -#~ msgstr "创建 Diff..." +#: menu.xrc:1121 +msgid "Preprocess" +msgstr "预处理" -#~ msgid "Start new diff" -#~ msgstr "开始新建 diff" +#: menu.xrc:1125 +msgid "Exclude from Build" +msgstr "从构建中排除" -#~ msgid "Diff Tool" -#~ msgstr "Diff 工具" +#: menu.xrc:1149 +msgid "Copy Value Only" +msgstr "仅复制值" -#~ msgid "Diff" -#~ msgstr "Diff" +#: menu.xrc:1160 +msgid "Delete All" +msgstr "删除全部" -#~ msgid "Enable continuous build" -#~ msgstr "启用持续构建" +#: menu.xrc:1164 +msgid "Display Format" +msgstr "显示格式" -#~ msgid "0.5.2 Beta" -#~ msgstr "0.5.2 Beta" +#: menu.xrc:1166 +msgid "Natural" +msgstr "自然的" -#~ msgid "Tool ID:" -#~ msgstr "工具 ID:" +#: menu.xrc:1169 +msgid "Hexadecimal" +msgstr "十六进制" -#~ msgid "Show list of available macros" -#~ msgstr "显示可用宏列表" +#: menu.xrc:1172 +msgid "Binary" +msgstr "二进制" -#~ msgid "" -#~ "This is the base-name for the file(s) that will be generated. If the new " -#~ "class is called Foo, by default the files will be Foo.cpp and Foo.h. If " -#~ "you'd prefer different names, type the base-name here." -#~ msgstr "" -#~ "这是将要生成的文件的基本名称。如果新的类被称作 Foo ,那么在默认情况下文件" -#~ "将被命名为 foo.cpp 和 foo.h。如果您喜欢不同的名称,请在这里输入基本名称。" +#: menu.xrc:1175 +msgid "Octal" +msgstr "八进制" -#~ msgid "Select Parent Class:" -#~ msgstr "选择父类:" +#: menu.xrc:1178 +msgid "Decimal" +msgstr "十进制" -#~ msgid "Type the name of the parent class" -#~ msgstr "输入父类的名称" +#: menu.xrc:1194 +msgid "Search..." +msgstr "搜索..." -#~ msgid "Click here to open the open resource dialog" -#~ msgstr "点击这里打开 打开资源 对话框" +#: menu.xrc:1199 +msgid "Tags" +msgstr "标签文件" -#~ msgid "Inhertiance Access:" -#~ msgstr "继承访问:" +#: menu.xrc:1201 +msgid "Global Parser Paths" +msgstr "全局标签分析器路径" -#~ msgid "Copy backtrace" -#~ msgstr "复制栈信息" +#: menu.xrc:1203 menu.xrc:1212 +msgid "Add to include paths" +msgstr "添加到包含路径" -#~ msgid "Summary" -#~ msgstr "摘要" +#: menu.xrc:1206 menu.xrc:1215 +msgid "Add to exclude paths" +msgstr "添加到排除路径" -#~ msgid "Local Vairables" -#~ msgstr "局部变量" +#: menu.xrc:1210 +msgid "Workspace Parser Paths" +msgstr "工作区标签分析器路径" -#~ msgid "Add New Watch" -#~ msgstr "添加监视点" +#: menu.xrc:1225 +msgid "Open in &editor" +msgstr "用编辑器打开(&e)" -#~ msgid "LLDB Settings..." -#~ msgstr "LLDB 设置..." +#: menu.xrc:1233 +msgid "Open Shell here" +msgstr "在这里打开 Shell" -#~ msgid "Could not locate project: " -#~ msgstr "无法定位项目:" +#: menu.xrc:1236 +msgid "Open File Explorer here" +msgstr "在这里打开文件浏览器" -#~ msgid "Could not locate the requested buid configuration" -#~ msgstr "无法定位请求的构建配置" +#: codelite_make/cl_make_generator_app.cpp:175 +msgid "A makefile generator based on codelite's workspace" +msgstr "一个基于 CodeLite 工作区的 makefile 文件生成器" -#~ msgid "Failed to start terminal for debugger" -#~ msgstr "为调试器启动终端失败" +#: codelitephp/php-plugin/new_php_workspace_dlg.cpp:54 +msgid "select a folder" +msgstr "选择一个文件夹" + +#: codelitephp/php-plugin/new_class.cpp:49 +msgid "Choose the object type" +msgstr "选择对象类型" + +#: codelitephp/php-plugin/new_class.cpp:61 +msgid "The name" +msgstr "该名称" + +#: codelitephp/php-plugin/new_class.cpp:76 +msgid "If set, the generated code will be placed inside this namespace" +msgstr "如果设置,生成的代码将放置在此命名空间内" + +#: codelitephp/php-plugin/new_class.cpp:85 +msgid "Extends:" +msgstr "扩展:" + +#: codelitephp/php-plugin/new_class.cpp:90 +msgid "A comma separated list of parents for this class" +msgstr "逗号分隔的父类列表" + +#: codelitephp/php-plugin/new_class.cpp:98 +#: codelitephp/php-plugin/new_class.cpp:115 +msgid "Edit in a small text editor..." +msgstr "在一个小的文本编辑器中进行编辑..." + +#: codelitephp/php-plugin/new_class.cpp:102 +msgid "Implements:" +msgstr "实现:" + +#: codelitephp/php-plugin/new_class.cpp:107 +msgid "A comma separated list of interfaces for this class" +msgstr "逗号分隔的接口列表" + +#: codelitephp/php-plugin/new_class.cpp:131 +msgid "Generate consturctor" +msgstr "生成 consturctor" + +#: codelitephp/php-plugin/new_class.cpp:136 +msgid "Generate desctructor" +msgstr "生成 desctructor" + +#: codelitephp/php-plugin/new_class.cpp:141 +msgid "Create folder per namespace" +msgstr "为每个命名空间创建文件夹" + +#: codelitephp/php-plugin/new_class.cpp:146 +msgid "Make singleton (available for classes only)" +msgstr "设为单体(仅类可用)" -#~ msgid "Could not connect to codelite-lldb at '" -#~ msgstr "无法连接到 codelite-lldb 在 '" +#: codelitephp/php-plugin/new_class.cpp:148 +msgid "" +"The generated class will be generated as a singleton\n" +"class" +msgstr "" +"该类将被生成为\n" +"一个单独类" -#~ msgid "LLDB crashed! Terminating debug session" -#~ msgstr "LLDB 已崩溃!正在终止调试对话" +#: codelitephp/php-plugin/php_ui.h:95 +msgid "New Workspace Type..." +msgstr "新建工作区类型..." + +#: codelitephp/php-plugin/php_ui.h:130 +msgid "New PHP Workspace" +msgstr "新建 PHP 工作区" + +#: codelitephp/php-plugin/php_ui.h:240 +msgid "PHP General Settings" +msgstr "PHP 常规设置" + +#: codelitephp/php-plugin/php_ui.h:367 +msgid "File Mapping" +msgstr "正在进行文件映射" + +#: codelitephp/php-plugin/php_ui.h:548 +msgid "PHP Run / Debug" +msgstr "PHP 运行/调试" + +#: codelitephp/php-plugin/php_ui.h:614 +msgid "New PHP Project" +msgstr "新建 PHP 项目" + +#: codelitephp/php-plugin/php_ui.h:663 +msgid "XDebug Setup" +msgstr "XDebug 设置" + +#: codelitephp/php-plugin/XDebugManager.cpp:156 +msgid "" +"This project has no file mapping defined. This may result in breakpoints not " +"applied\n" +msgstr "该项目没有定义文件映射。这可能会导致断点无法使用\n" + +#: codelitephp/php-plugin/XDebugManager.cpp:157 +msgid "To fix this, set file mapping from Project Settings -> Debug" +msgstr "若要解决此问题,请在 项目设置 -> 调试 设置文件映射" + +#: codelitephp/php-plugin/XDebugManager.cpp:161 +msgid "Remember my answer and don't show this message again" +msgstr "记得我的回答并不再显示此消息" + +#: codelitephp/php-plugin/XDebugManager.cpp:162 +msgid "OK, Continue to Debug" +msgstr "OK,继续调试" + +#: codelitephp/php-plugin/XDebugManager.cpp:162 +msgid "Stop the debugger" +msgstr "停止调试" + +#: codelitephp/php-plugin/XDebugManager.cpp:592 +#: codelitephp/php-plugin/XDebugManager.cpp:654 +msgid "Could not open file: " +msgstr "无法打开文件:" -#~ msgid "" -#~ "A debug session is running\n" -#~ "Cancel debug session and continue building?" -#~ msgstr "" -#~ "一个调试会话正在运行中\n" -#~ "取消调试会话并继续构建吗?" +#: codelitephp/php-plugin/XDebugManager.cpp:738 +msgid "XDebug did not connect in a timely manner" +msgstr "XDebug 没有及时连接" -#~ msgid "Debug core file with LLDB is not supported under Windows" -#~ msgstr "在 Windows 下使用 LLDB 调试核心文件是不支持的" +#: codelitephp/php-plugin/XDebugManager.cpp:741 +msgid "Run XDebug Test" +msgstr "运行 XDebug 测试" -#~ msgid "Another debug session is already in progress. Please stop it first" -#~ msgstr "另一个调试会话已在进程中。请先终止它" +#: codelitephp/php-plugin/XDebugManager.cpp:755 +msgid "Error evaluating expression " +msgstr "计算表达式时出错" -#~ msgid "Attach to process with LLDB is not supported under Windows" -#~ msgstr "在 Windows 下使用 LLDB 连接到进程是不支持的" +#: codelitephp/php-plugin/evalpane.cpp:60 +msgid "*** Error evaluating expression: " +msgstr "*** 计算表达式时出错:" -#~ msgid "Locally debugging with LLDB on Windows is not supported by LLDB" -#~ msgstr "在 Windows 中使用 LLDB 进行本地调试是不被 LLDB 所支持的" +#: codelitephp/php-plugin/php_ui.cpp:90 codelitephp/PHPParser/php_strings.h:14 +msgid "PHP Workspace" +msgstr "PHP 工作区" -#~ msgid "#" -#~ msgstr "#" +#: codelitephp/php-plugin/php_ui.cpp:91 +msgid "Select the workspace type:" +msgstr "选择该工作区类型:" -#~ msgid "Console" -#~ msgstr "控制台" +#: codelitephp/php-plugin/php_ui.cpp:161 +msgid "Set here the workspace name" +msgstr "在这里设置工作区名称" -#~ msgid "Send commands to lldb" -#~ msgstr "发送命令 LLDB" +#: codelitephp/php-plugin/php_ui.cpp:188 +msgid "Create the workspace in a separate directory" +msgstr "在一个单独的目录中创建工作区" -#~ msgid "New breakpoint" -#~ msgstr "新建断点" +#: codelitephp/php-plugin/php_ui.cpp:335 +msgid "" +"Type the resource name (file, variable, class, function, constant or define):" +msgstr "输入资源的名称(文件、变量、类、函数、常量或定义):" -#~ msgid "Delete Selected Breakpoint" -#~ msgstr "删除已选择断点" +#: codelitephp/php-plugin/php_ui.cpp:416 +msgid "PHP Executable:" +msgstr "PHP 可执行文件:" -#~ msgid "File and Line:" -#~ msgstr "文件和行:" +#: codelitephp/php-plugin/php_ui.cpp:421 +msgid "" +"Select the PHP executable to use when debugging / running command line " +"scripts" +msgstr "选择 PHP 可执行文件,用来调试/运行命令行脚本" -#~ msgid "Function name:" -#~ msgstr "函数名:" +#: codelitephp/php-plugin/php_ui.cpp:426 +msgid "error_reporting:" +msgstr "错误报告:" -#~ msgid "Add Watch..." -#~ msgstr "添加监视点..." +#: codelitephp/php-plugin/php_ui.cpp:431 +msgid "Set the PHP error reporting level (affects command line only)" +msgstr "设置 PHP 的错误报告的级别(仅影响命令行)" -#~ msgid "Delete Watch" -#~ msgstr "删除监视点" +#: codelitephp/php-plugin/php_ui.cpp:442 codelitephp/php-plugin/php_ui.cpp:768 +msgid "Add include path:" +msgstr "添加到包含路径:" -#~ msgid "Behaviour" -#~ msgstr "行为" +#: codelitephp/php-plugin/php_ui.cpp:447 +msgid "Add include path for PHP" +msgstr "添加 PHP 包含路径" -#~ msgid "Raise CodeLite when breakpoint hit" -#~ msgstr "当到达断点时前置 CodeLite" +#: codelitephp/php-plugin/php_ui.cpp:463 +msgid "Additional include path for PHP (affects command line runs only)" +msgstr "PHP 附加包含路径(只影响命令行)" -#~ msgid "When a breakpoint is hit, notify the user raising CodeLite" -#~ msgstr "当到达一个断点时,通过前置 Codelite 来通知用户" +#: codelitephp/php-plugin/php_ui.cpp:479 codelitephp/php-plugin/php_ui.cpp:852 +msgid "Add include path for code completion:" +msgstr "添加搜索路径到代码补全:" -#~ msgid "Display" -#~ msgstr "显示" +#: codelitephp/php-plugin/php_ui.cpp:480 codelitephp/php-plugin/php_ui.cpp:491 +msgid "" +"Paths added here will only be used for code completion and NOT during " +"runtime.\n" +"If you want to add search paths for runtime (CLI mode only), Use the 'PHP " +"CLI' tab" +msgstr "" +"在此处添加的路径仅用于代码补全,并不在程序运行时起作用。\n" +"如果您想要为运行时添加搜索路径(仅适用于 CLI 模式),请使用“PHP CLI”选项卡" -#~ msgid "Max number of array elements" -#~ msgstr "数组元素的最大数量" +#: codelitephp/php-plugin/php_ui.cpp:496 +msgid "XDebug" +msgstr "XDebug" -#~ msgid "The maximum number of eleements to display in arrays" -#~ msgstr "在数组中显示元素的最大数量" +#: codelitephp/php-plugin/php_ui.cpp:508 +msgid "Listen host:" +msgstr "侦听主机:" -#~ msgid "Backtrace frames" -#~ msgstr "堆栈" +#: codelitephp/php-plugin/php_ui.cpp:513 +msgid "Wait for connection from XDebug on this host" +msgstr "在该主机上等待来自 XDebug 的连接" -#~ msgid "Maximum number of frames to show in the callstack window" -#~ msgstr "在调用堆栈窗口显示框架的最大数量" +#: codelitephp/php-plugin/php_ui.cpp:522 codelitephp/php-plugin/php_ui.cpp:527 +msgid "" +"The port on which codelite is accepting debug sessions from XDebug\n" +"This value must be the same as the value set in the 'xdebug.remote_port'\n" +"directive" +msgstr "" +"codelite 上的该端口正在接受来自 XDebug 调试会话\n" +"这个值必须与“xdebug.remote_port”指令中的值\n" +"相同" -#~ msgid "" -#~ "LLDB has a data formatters subsystem that allows users to define custom " -#~ "display options for their variables\n" -#~ "You can set here the types to pass to LLDB" -#~ msgstr "" -#~ "LLDB具有数据格式化子系统,允许用户为自己的变量进行自定义显示选项\n" -#~ "您可以在这里设置传递给 LLDB 的类型定义" +#: codelitephp/php-plugin/php_ui.cpp:534 +#: codelitephp/php-plugin/php_ui.cpp:2052 +msgid "IDE Key:" +msgstr "IDE Key:" -#~ msgid "Learn more about LLDB types" -#~ msgstr "了解更多关于 LLDB 的类型" +#: codelitephp/php-plugin/php_ui.cpp:535 +msgid "This field defines the session name between CodeLite and XDebug" +msgstr "此字段定义 CodeLite 和 XDebug 之间的会话名称" -#~ msgid "Debugger Proxy" -#~ msgstr "调试器代理" +#: codelitephp/php-plugin/php_ui.cpp:540 +msgid "The XDebug session name" +msgstr "XDebug 会话名称" -#~ msgid "Local proxy process (default)" -#~ msgstr "本地代理进程(默认)" +#: codelitephp/php-plugin/php_ui.cpp:548 +msgid "Syntax Check" +msgstr "语法检查" -#~ msgid "Remote proxy process over TCP/IP" -#~ msgstr "在 TCP/IP 上的远程代理进程" +#: codelitephp/php-plugin/php_ui.cpp:553 +msgid "Perform syntax check when saving a file" +msgstr "在保存文件时执行语法检查" -#~ msgid "Proxy type" -#~ msgstr "代理类型" +#: codelitephp/php-plugin/php_ui.cpp:555 +msgid "" +"When saving a PHP script, run syntax check and report errors in the editor" +msgstr "当保存一个 PHP 脚本时,在编辑器中运行语法检查并报告错误" -#~ msgid "" -#~ "Debugging using LLDB is always done over a proxy process (i.e. codelite-" -#~ "lldb)\n" -#~ "Here you can select the type of the proxy to use (local or remote):\n" -#~ "* Local proxy is used by default to debug local processes (this is the " -#~ "default)\n" -#~ "* Remote proxy: use this method to connect to a remote codelite-lldb " -#~ "proxy server over TCP/IP" -#~ msgstr "" -#~ "使用 LLDB 进行调试总是通过一个代理进程来工作的(即 CodeLite-LLDB)\n" -#~ "在这里您可以选择使用的代理类型(本地或远程):\n" -#~ "* 默认本地代理来调试本地进程(这是默认的)\n" -#~ "* 远程代理:此方法是通过 TCP/IP 来连接到远程 CodeLite-LLDB 代理服务器" +#: codelitephp/php-plugin/php_ui.cpp:639 +msgid "Select the project execution mode:" +msgstr "选择该项目的执行模式:" -#~ msgid "Remote proxy settings" -#~ msgstr "远程代理设置" +#: codelitephp/php-plugin/php_ui.cpp:652 +msgid "Run project as command line" +msgstr "作为命令行运行项目" -#~ msgid "127.0.0.1" -#~ msgstr "127.0.0.1" +#: codelitephp/php-plugin/php_ui.cpp:665 +#: codelitephp/php-plugin/php_ui.cpp:1861 +msgid "PHP executable:" +msgstr "PHP 可执行文件:" -#~ msgid "" -#~ "The IP address on which the remote proxy server is accepting connections" -#~ msgstr "此IP地址的远程代理服务器正在接受连接" +#: codelitephp/php-plugin/php_ui.cpp:670 +msgid "Select the PHP interperter to use for running this project" +msgstr "选择 PHP 解释器来运行该项目" -#~ msgid "Port" -#~ msgstr "端口" +#: codelitephp/php-plugin/php_ui.cpp:675 +msgid "Select PHP INI file:" +msgstr "选择 PHP 初始化配置文件:" -#~ msgid "" -#~ "The port number on which the remote proxy server is accepting connections" -#~ msgstr "远程代理服务器上的端口号正在接受连接" +#: codelitephp/php-plugin/php_ui.cpp:676 codelitephp/php-plugin/php_ui.cpp:681 +msgid "Select the PHP INI file to use with PHP (leave empty for default)" +msgstr "选择 PHP 要使用的 INI 文件(默认为留空) " -#~ msgid "Stop Reason" -#~ msgstr "停止原因" +#: codelitephp/php-plugin/php_ui.cpp:685 +msgid "Index File:" +msgstr "索引文件:" -#~ msgid "" -#~ "You are debugging on a remote machine. In order for codelite\n" -#~ "to be able to load files into the editor, codelite needs to map the " -#~ "folders on\n" -#~ "your local machine to the folders on the remote machine" -#~ msgstr "" -#~ "您正在远程机器上进行调试。为了让 CodeLite\n" -#~ "能够将文件载入到编辑器中,CodeLite 需要在您的本地机器上映射\n" -#~ "远程机器上的文件夹" +#: codelitephp/php-plugin/php_ui.cpp:690 +msgid "Select the project index file" +msgstr "选择该项目索引文件" -#~ msgid "Local Folder:" -#~ msgstr "本地目录:" +#: codelitephp/php-plugin/php_ui.cpp:702 +msgid "Program arguments" +msgstr "程序参数" -#~ msgid "Local Folder" -#~ msgstr "本地目录" +#: codelitephp/php-plugin/php_ui.cpp:703 codelitephp/php-plugin/php_ui.cpp:717 +msgid "" +"Insert the program arguments here\n" +"Place each argument on a separate line" +msgstr "" +"在此处插入程序参数\n" +"每行设置一个参数" -#~ msgid "Remote Folder:" -#~ msgstr "远程目录:" +#: codelitephp/php-plugin/php_ui.cpp:729 +msgid "Run project as web site" +msgstr "项目作为网站运行" -#~ msgid "Remote Folder" -#~ msgstr "远程目录" +#: codelitephp/php-plugin/php_ui.cpp:737 +msgid "Project URL:" +msgstr "项目 URL:" -#~ msgid "" -#~ "Search for a keyboard shortcut either by its keyboard shortcut or by its " -#~ "description" -#~ msgstr "通过键盘快捷键或描述来搜索一个键盘快捷命令" +#: codelitephp/php-plugin/php_ui.cpp:750 +msgid "Use system default browser" +msgstr "使用系统默认浏览器" -#~ msgid "Keyboard Shortcut" -#~ msgstr "键盘快捷键" +#: codelitephp/php-plugin/php_ui.cpp:757 +msgid "Include path" +msgstr "包含路径" -#~ msgid "Initializing CodeLite" -#~ msgstr "初始化 CodeLite" +#: codelitephp/php-plugin/php_ui.cpp:786 +msgid "" +"When running project with PHP CLI tool, pass the following\n" +"include paths" +msgstr "" +"当使用 PHP 命令行工具运行项目时,将传递以下\n" +"include 路径" -#~ msgid "Column index" -#~ msgstr "列索引" +#: codelitephp/php-plugin/php_ui.cpp:805 +msgid "Project file types" +msgstr "项目文件类型" -#~ msgid "" -#~ "Are you sure you want to delete compiler\n" -#~ "'" -#~ msgstr "" -#~ "您确定您要删除编译器吗\n" -#~ "'" +#: codelitephp/php-plugin/php_ui.cpp:806 +msgid "" +"Set the file extensions to include in this project\n" +"CodeLite will only display these file types in the project view" +msgstr "" +"设置要在此项目中包含的文件扩展名\n" +"CodeLite 在项目视图中只会显示这些类型的文件" -#~ msgid "New Compiler Name" -#~ msgstr "新编译器名称" +#: codelitephp/php-plugin/php_ui.cpp:809 +msgid "Exclude folders" +msgstr "排除文件夹" -#~ msgid "Rename Compiler" -#~ msgstr "重命名编译器" +#: codelitephp/php-plugin/php_ui.cpp:810 +msgid "" +"Set a list of folders to exclude from the project.\n" +"If the last part of the folder path is equal to one of the entries in this " +"exclude list, it will not\n" +"be shown in the project view" +msgstr "" +"设置从项目中排除的文件夹列表。\n" +"如果文件夹路径的最后一部分等于此排除列表中的一项,\n" +"它将不会在项目视图中显示" -#~ msgid "" -#~ "Below is a list of compilers found on your computer.\n" -#~ "Click 'OK' to replace the current list of compilers with this list. " -#~ "'Cancel' to abort." -#~ msgstr "" -#~ "以下是在您的电脑上发现的编译器列表。\n" -#~ "点击‘确定’就使用该列表替换当前的编译器列表。点击‘取消’就退出。" +#: codelitephp/php-plugin/php_ui.cpp:818 +msgid "File mapping" +msgstr "正在映射文件" -#~ msgid "Found Compilers" -#~ msgstr "发现编译器" +#: codelitephp/php-plugin/php_ui.cpp:829 +msgid "Source folder" +msgstr "源目录" -#~ msgid "Compiler Name / Family" -#~ msgstr "编译器名称/科:" +#: codelitephp/php-plugin/php_ui.cpp:830 +msgid "Target folder" +msgstr "目标目录" -#~ msgid "Installation Path" -#~ msgstr "安装路径" +#: codelitephp/php-plugin/php_ui.cpp:997 +msgid "Local folder:" +msgstr "本地目录:" -#~ msgid "" -#~ "Double click a compiler to make it the default for its compiler family" -#~ msgstr "双击一个编译器来让它成为当前编译程序的默认选项" +#: codelitephp/php-plugin/php_ui.cpp:1002 +msgid "" +"The source folder usually points to the location where you develop your code" +msgstr "源文件夹通常指向您开发代码的位置" -#~ msgid "" -#~ "Some of the compilers referred by the workspace no longer exist.\n" -#~ "Define each missing compiler by cloning an existing compiler." -#~ msgstr "" -#~ "该工作区查阅到一些编译器是不存在的。\n" -#~ "可以通过克隆现有的编译器来定义各个丢失的编译器。" +#: codelitephp/php-plugin/php_ui.cpp:1007 +msgid "Remote folder:" +msgstr "远程目录:" -#~ msgid "Create a new compiler named '" -#~ msgstr "创建一个新的编译器名为 '" +#: codelitephp/php-plugin/php_ui.cpp:1072 +msgid "Open Active Project Settings..." +msgstr "打开活动项目设置..." -#~ msgid "" -#~ "'\n" -#~ "contains some invalid characters\n" -#~ "Continue anyway?" -#~ msgstr "" -#~ "'\n" -#~ "包含一些无效的字符\n" -#~ "继续吗?" +#: codelitephp/php-plugin/php_ui.cpp:1074 +msgid "Setup automatic upload" +msgstr "设置自动上传" -#~ msgid "Project names may contain only the following characters [a-z0-9_-]" -#~ msgstr "项目名称只能包含下列字符 [a-z0-9_-]" +#: codelitephp/php-plugin/php_ui.cpp:1074 +msgid "Setup automatic upload to a remote site" +msgstr "设置自动上传到一个远程站点" -#~ msgid "Invalid project path selected: " -#~ msgstr "无效的项目路径选择:" +#: codelitephp/php-plugin/php_ui.cpp:1080 +msgid "Collapse" +msgstr "折叠" -#~ msgid "Please select a template from the list" -#~ msgstr "请从列表中选择一个模板" +#: codelitephp/php-plugin/php_ui.cpp:1190 +msgid "Where" +msgstr "哪里" + +#: codelitephp/php-plugin/php_ui.cpp:1228 +msgid "Delete the selected breakpoints" +msgstr "删除所有已选的断点" -#~ msgid "Edit the line to add:" -#~ msgstr "编辑添加行:" +#: codelitephp/php-plugin/php_ui.cpp:1230 +msgid "Delete all breakpoints" +msgstr "删除全部断点" -#~ msgid "Line to add:" -#~ msgstr "将被添加的行:" +#: codelitephp/php-plugin/php_ui.cpp:1284 +msgid "Classname" +msgstr "类名称" -#~ msgid "Add an existing compiler" -#~ msgstr "添加现有的编译器" +#: codelitephp/php-plugin/php_ui.cpp:1410 +msgid "Eval" +msgstr "取值" + +#: codelitephp/php-plugin/php_ui.cpp:1467 +#: codelitephp/php-plugin/php_ui.cpp:1540 +msgid "" +"Type an expression and hit the 'Send' button\n" +"This works best when wrapping the command inside a print_r function, e.g.\n" +"print_r( $mystr, true )" +msgstr "" +"键入表达式并点击“发送”按钮\n" +"该工作最好包裹在 print_r 函数中,如:\n" +"print_r( $mystr, true )" + +#: codelitephp/php-plugin/php_ui.cpp:1483 +msgid "XDebug Console" +msgstr "XDebug 控制台" + +#: codelitephp/php-plugin/php_ui.cpp:1607 +msgid "Select the debugging method" +msgstr "选择调试方法" + +#: codelitephp/php-plugin/php_ui.cpp:1631 +msgid "URL to Run / Debug:" +msgstr "运行/调试 URL :" + +#: codelitephp/php-plugin/php_ui.cpp:1637 +msgid "Enter the URL to debug" +msgstr "输入 URL 来调试" + +#: codelitephp/php-plugin/php_ui.cpp:1658 +msgid "File to Run / Debug:" +msgstr "运行/调试文件:" + +#: codelitephp/php-plugin/php_ui.cpp:1671 +msgid "Use the active file opened in the editor" +msgstr "使用编辑器中打开的活动文件" + +#: codelitephp/php-plugin/php_ui.cpp:1745 +msgid "Project Creation" +msgstr "项目创建" + +#: codelitephp/php-plugin/php_ui.cpp:1745 +msgid "Select the project creation method" +msgstr "选择该项目创建向导" + +#: codelitephp/php-plugin/php_ui.cpp:1752 +msgid "Create an empty PHP project" +msgstr "创建一个空的 PHP 项目" + +#: codelitephp/php-plugin/php_ui.cpp:1753 +msgid "Create a project from an existing source files" +msgstr "从已存在的原始文件创建项目" + +#: codelitephp/php-plugin/php_ui.cpp:1768 +msgid "Project Details" +msgstr "项目详细资料" + +#: codelitephp/php-plugin/php_ui.cpp:1768 +msgid "Set the project name and path" +msgstr "设置该项目路径及名称" + +#: codelitephp/php-plugin/php_ui.cpp:1787 +msgid "Set the project name" +msgstr "设置该项目名称" + +#: codelitephp/php-plugin/php_ui.cpp:1800 +msgid "Select the project path" +msgstr "选择该项目路径" -#~ msgid "Clone a compiler" -#~ msgstr "复制一个编译器设置" +#: codelitephp/php-plugin/php_ui.cpp:1806 +msgid "Create the project under a separate folder" +msgstr "在独立的目录下创建项目" -#~ msgid "Scan computer for installed compilers" -#~ msgstr "扫描电脑中已安装编译器" +#: codelitephp/php-plugin/php_ui.cpp:1815 +msgid "Preview:" +msgstr "预览:" + +#: codelitephp/php-plugin/php_ui.cpp:1835 +msgid "PHP Execution" +msgstr "执行 PHP" + +#: codelitephp/php-plugin/php_ui.cpp:1835 +msgid "Set PHP execution method" +msgstr "设置 PHP 执行方法" -#~ msgid "Select the compiler folder" -#~ msgstr "选择编译器文件夹" +#: codelitephp/php-plugin/php_ui.cpp:1848 +msgid "Project type:" +msgstr "项目类型:" -#~ msgid "New compiler found!" -#~ msgstr "已找到新编译器!" +#: codelitephp/php-plugin/php_ui.cpp:1856 +msgid "Select the project type from the list" +msgstr "从列表中选择项目类型" + +#: codelitephp/php-plugin/php_ui.cpp:1866 +msgid "Select the PHP command line executable to use" +msgstr "选择要使用的 PHP 命令行可执行文件" + +#: codelitephp/php-plugin/php_ui.cpp:1884 +msgid "Add include paths for Code Completion" +msgstr "添加 include 路径到代码补全分析器" + +#: codelitephp/php-plugin/php_ui.cpp:1898 +msgid "Browse for code completion folder..." +msgstr "浏览代码补全文件夹..." -#~ msgid "Set a name to the compiler" -#~ msgstr "设置编译器的名字" +#: codelitephp/php-plugin/php_ui.cpp:1917 +msgid "" +"You can add folders here for better code completion.\n" +"CodeLite will scan these folder for any PHP files for better code complete\n" +"\n" +"There is no need to add the project folders, these are parsed automatically" +msgstr "" +"为使代码补全更好工作您可以在这里添加文件夹\n" +"Codelite 将会扫描这些文件夹以使 PHP 文件的代码补全能够更好的工作\n" +"\n" +"不需要在这里添加项目文件夹,因为它们都是自动解析的" -#~ msgid "Breakpoint# " -#~ msgstr "断点#" +#: codelitephp/php-plugin/php_ui.cpp:1973 +msgid "XDebug Port" +msgstr "XDebug 端口" -#~ msgid "CodeLite upgrade" -#~ msgstr "CodeLite 升级" +#: codelitephp/php-plugin/php_ui.cpp:1973 +msgid "" +"Setup XDebug port number\n" +"CodeLite will listen on this port for new incoming messages from XDebug" +msgstr "" +"设置 XDebug 端口号\n" +"CodeLite 将会在此端口上侦听来自 XDebug 的新传入消息" -#~ msgid "CXX=codelite-cc g++\n" -#~ msgstr "CXX=codelite-cc g++\n" +#: codelitephp/php-plugin/php_ui.cpp:1986 +msgid "Port number:" +msgstr "端口号:" -#~ msgid "" -#~ "CC=codelite-cc gcc\n" -#~ "\n" -#~ msgstr "" -#~ "CC=codelite-cc gcc\n" -#~ "\n" +#: codelitephp/php-plugin/php_ui.cpp:1991 +msgid "" +"Set the port on which CodeLite will be listening for new connections from " +"XDebug. The default port is 9000" +msgstr "设置 CodeLite 能够侦听来自 XDebug 的新连接的端口。默认端口号为 9000" -#~ msgid "Compiler regular expression" -#~ msgstr "编译器正则表达式" +#: codelitephp/php-plugin/php_ui.cpp:2006 +msgid "CodeLite IP address" +msgstr "CodeLite IP 地址" -#~ msgid "The capture index in the regex that holds the file path" -#~ msgstr "正则表达式中的捕捉索引可以保存文件路径" +#: codelitephp/php-plugin/php_ui.cpp:2006 +msgid "Set the IP address on which CodeLite is running" +msgstr "CodeLite 运行时设置 IP 地址" -#~ msgid "The capture index in the regex that holds the line number" -#~ msgstr "正则表达式中的捕捉索引可以保存行号" +#: codelitephp/php-plugin/php_ui.cpp:2019 +msgid "IP address:" +msgstr "IP 地址:" -#~ msgid "Column Index in Pattern:" -#~ msgstr "模式中的列索引:" +#: codelitephp/php-plugin/php_ui.cpp:2024 +msgid "" +"Set the IP address on which CodeLite is listening.\n" +"This IP needs to be visible to the machine where XDebug is running." +msgstr "" +"CodeLite 侦听时设置 IP 地址。\n" +"对于运行 XDebug 的机器,此 IP 必须是可见的。" -#~ msgid "The capture index in the regex that holds the column number" -#~ msgstr "正则表达式中的捕捉索引可以保存列数" +#: codelitephp/php-plugin/php_ui.cpp:2039 +msgid "IDE Key" +msgstr "IDE Key" -#~ msgid "Add Compilers" -#~ msgstr "添加编译器" +#: codelitephp/php-plugin/php_ui.cpp:2039 +#: codelitephp/php-plugin/php_ui.cpp:2057 +msgid "Set the IDE key between CodeLite and XDebug" +msgstr "设置 CodeLite 和 Xdebug 之间的 IDE key" -#~ msgid "C++ Compiler" -#~ msgstr "C + + 编译器" +#: codelitephp/php-plugin/php_ui.cpp:2078 +msgid "XDebug INI Settings" +msgstr "XDebug INI 设置" -#~ msgid "" -#~ "The C++ compiler path (plus optional flags). This tool is represented in " -#~ "the Makefile as $(CXX)" -#~ msgstr "" -#~ "C++ 的编译器路径(加上可选的标记),该工具在 Makefile 中被书写为 $(CXX)" +#: codelitephp/php-plugin/php_ui.cpp:2078 +msgid "Setup XDebug INI settings" +msgstr "配置 XDebug INI 设置" -#~ msgid "C Compiler" -#~ msgstr "C 编译器" +#: codelitephp/php-plugin/php_ui.cpp:2084 +msgid "Copy the below text and paste it in your php.ini file:" +msgstr "复制下面的文本,并将其粘贴在您的 php.ini 文件中:" -#~ msgid "" -#~ "The C++ compiler path (plus optional flags). This tool is represented in " -#~ "the Makefile as $(CC)" -#~ msgstr "" -#~ "C++ 的编译器路径(加上可选的标记),该工具在 Makefile 中被书写为 $(CC)" +#: codelitephp/php-plugin/php_ui.cpp:2146 +msgid "Variable" +msgstr "变量" -#~ msgid "Assembler Name" -#~ msgstr "汇编器名称:" +#: codelitephp/php-plugin/php_ui.cpp:2153 +msgid "Functions start with lowercase" +msgstr "函数以小写的字母开头" + +#: codelitephp/php-plugin/php_ui.cpp:2155 +msgid "Generated functions start with lowercase letter" +msgstr "生成以小写字母开头的函数" + +#: codelitephp/php-plugin/php_ui.cpp:2159 +msgid "Prefix getter with 'get' or 'is'" +msgstr "getter 前缀使用“get”或“is”" + +#: codelitephp/php-plugin/php_ui.cpp:2161 +msgid "" +"When checked, the getter function is prefixed with 'get', otherwise, the " +"getter is same as the variable name (without the $ sign)" +msgstr "勾选时,getter 函数前缀带有“get”, 否则与该变量同名(不带 $ 符号)" + +#: codelitephp/php-plugin/php_ui.cpp:2165 +msgid "Setter returns $this" +msgstr "Setter 返回 $this" + +#: codelitephp/php-plugin/php_ui.cpp:2167 +msgid "The getter returns $this object" +msgstr "getter 返回 $this 对象" + +#: codelitephp/php-plugin/NewPHPClass.cpp:68 +#: codelitephp/php-plugin/NewPHPClass.cpp:80 +msgid "Place each parent in a separate line" +msgstr "将每个父类放在单独的行" + +#: codelitephp/php-plugin/NewPHPClass.cpp:69 +msgid "Edit Class Extends" +msgstr "编辑类继承" + +#: codelitephp/php-plugin/NewPHPClass.cpp:81 +msgid "Edit Class Interfaces" +msgstr "编辑类接口" + +#: codelitephp/php-plugin/php_editor_context_menu.cpp:124 +msgid "Goto definition" +msgstr "转到定义" -#~ msgid "" -#~ "The assembler tool path. This tool is referred in the Makefile as $(AS)" -#~ msgstr "汇编器路径,该工具在 Makefile 中被书写为 $(AS)" +#: codelitephp/php-plugin/php_editor_context_menu.cpp:127 +msgid "Insert Doxygen Comment" +msgstr "插入 Doxygen 注释" -#~ msgid "The linker tool. Usually similar to the 'C++ Compiler' tool path" -#~ msgstr "链接器工具,通常与‘C++ 编译器’的工具路径是相似的" +#: codelitephp/php-plugin/php_editor_context_menu.cpp:131 +msgid "Code Generation" +msgstr "代码生成" + +#: codelitephp/php-plugin/php_editor_context_menu.cpp:135 +#, c-format +msgid "Open '%s'" +msgstr "打开 “%s”" + +#: codelitephp/php-plugin/php.cpp:60 +msgid "Enable PHP support for codelite IDE" +msgstr "对 codelite IDE 启用 PHP 支持" + +#: codelitephp/php-plugin/php.cpp:78 +msgid "PHP Plugin for the codelite IDE" +msgstr "Codelite 的 PHP 插件" + +#: codelitephp/php-plugin/php.cpp:394 +msgid "Failed to open workspace: corrupted workspace file" +msgstr "打开工作区失败:工作区文件已损坏" + +#: codelitephp/php-plugin/php.cpp:525 +msgid "Run XDebug Setup Wizard..." +msgstr "运行 XDebug 设置向导..." + +#: codelitephp/php-plugin/php.cpp:529 +msgid "P&HP" +msgstr "PHP(&H)" + +#: codelitephp/php-plugin/php.cpp:709 +msgid "Can't create PHP project. Close your current workspace first" +msgstr "未能创建 PHP 项目。首先请关闭您当前的工作区" + +#: codelitephp/php-plugin/XDebugRunCmdHandler.cpp:50 +msgid "Failed to map remote file: " +msgstr "映射远程文件失败:" + +#: codelitephp/php-plugin/XDebugRunCmdHandler.cpp:51 +msgid "Check your project settings->Debug to define folder mapping" +msgstr "检查您的项目设置 -> 调试来定义文件夹映射" + +#: codelitephp/php-plugin/php_workspace_view.cpp:125 +msgid "Can only import one folder at a time" +msgstr "只能在一次导入一个文件夹" + +#: codelitephp/php-plugin/php_workspace_view.cpp:142 +msgid "Failed to create workspace '" +msgstr "未能创建工作区“" + +#: codelitephp/php-plugin/php_workspace_view.cpp:143 +msgid "File exists" +msgstr "文件存在" + +#: codelitephp/php-plugin/php_workspace_view.cpp:196 +#: codelitephp/php-plugin/php_workspace_view.cpp:225 +#: codelitephp/php-plugin/php_workspace_view.cpp:247 +#: codelitephp/php-plugin/php_workspace_view.cpp:276 +msgid "Open in File Explorer" +msgstr "在文件浏览器中打开" + +#: codelitephp/php-plugin/php_workspace_view.cpp:197 +#: codelitephp/php-plugin/php_workspace_view.cpp:226 +#: codelitephp/php-plugin/php_workspace_view.cpp:248 +#: codelitephp/php-plugin/php_workspace_view.cpp:277 +msgid "Open Shell Here" +msgstr "在这里打开 Shell " + +#: codelitephp/php-plugin/php_workspace_view.cpp:199 +msgid "Open with Default Application" +msgstr "用默认应用打开" + +#: codelitephp/php-plugin/php_workspace_view.cpp:216 +msgid "Close workspace" +msgstr "关闭工作区" + +#: codelitephp/php-plugin/php_workspace_view.cpp:218 +msgid "Create a new project..." +msgstr "创建一个新项目..." + +#: codelitephp/php-plugin/php_workspace_view.cpp:219 +msgid "Add an existing project..." +msgstr "添加现有项目..." + +#: codelitephp/php-plugin/php_workspace_view.cpp:221 +msgid "Parse workspace" +msgstr "分析工作区" + +#: codelitephp/php-plugin/php_workspace_view.cpp:235 +msgid "Set as active project" +msgstr "设置为活动项目" -#~ msgid "Shared Object Linker" -#~ msgstr "共享对象链接:" +#: codelitephp/php-plugin/php_workspace_view.cpp:237 +msgid "Remove project" +msgstr "移除项目" -#~ msgid "The tool to create shared objects" -#~ msgstr "该工具可以创建共享对象" +#: codelitephp/php-plugin/php_workspace_view.cpp:239 +#: codelitephp/php-plugin/php_workspace_view.cpp:269 +msgid "New Class..." +msgstr "新建类..." + +#: codelitephp/php-plugin/php_workspace_view.cpp:240 +#: codelitephp/php-plugin/php_workspace_view.cpp:271 +msgid "New Folder..." +msgstr "新建文件夹..." + +#: codelitephp/php-plugin/php_workspace_view.cpp:241 +#: codelitephp/php-plugin/php_workspace_view.cpp:272 +msgid "New File..." +msgstr "新建文件..." + +#: codelitephp/php-plugin/php_workspace_view.cpp:252 +msgid "Sync project with file system..." +msgstr "从文件系统同步项目..." + +#: codelitephp/php-plugin/php_workspace_view.cpp:256 +msgid "Run project..." +msgstr "运行项目..." + +#: codelitephp/php-plugin/php_workspace_view.cpp:258 +msgid "Project settings..." +msgstr "项目设置..." + +#: codelitephp/php-plugin/php_workspace_view.cpp:315 +msgid "Loading Workspace View..." +msgstr "载入工作区视图..." + +#: codelitephp/php-plugin/php_workspace_view.cpp:391 +msgid "Are you sure you want to remove project '" +msgstr "您是否确定要移除项目“" + +#: codelitephp/php-plugin/php_workspace_view.cpp:411 +msgid "New Folder Name:" +msgstr "新建文件夹名称:" + +#: codelitephp/php-plugin/php_workspace_view.cpp:411 +msgid "New Folder" +msgstr "新建文件夹" + +#: codelitephp/php-plugin/php_workspace_view.cpp:512 +msgid "Set the file name:" +msgstr "设置文件名:" + +#: codelitephp/php-plugin/php_workspace_view.cpp:551 +msgid "Are you sure you want to delete folder '" +msgstr "您是否要删除文件夹“" + +#: codelitephp/php-plugin/php_workspace_view.cpp:551 +msgid "' and its content?" +msgstr "”和它的内容吗?" + +#: codelitephp/php-plugin/php_workspace_view.cpp:624 +msgid "Rename file" +msgstr "重命名文件" -#~ msgid "Archive" -#~ msgstr "存档" +#: codelitephp/php-plugin/php_workspace_view.cpp:667 +msgid "" +"This operation will delete the selected items.\n" +"Continue?" +msgstr "" +"此操作将删除所选的项目。\n" +"是否继续?" -#~ msgid "" -#~ "The static archive tool \"ar\". This tool is referred in the Makefile as " -#~ "$(AR)" -#~ msgstr "静态归档工具 \"ar\",该工具在 Makefile 中被书写为 $(AR)" +#: codelitephp/php-plugin/php_workspace_view.cpp:685 +#, c-format +msgid "" +"'%s' is a folder.\n" +"This operation will delete the folder and its content.\n" +"Continue?" +msgstr "" +"'%s' 是一个文件夹。\n" +"此操作将删除该文件夹及其内容。\n" +"是否继续?" -#~ msgid "Resource Compiler" -#~ msgstr "资源编译器" +#: codelitephp/php-plugin/php_workspace_view.cpp:745 +msgid "" +"No active project is set !?\n" +"Please set an active project and try again" +msgstr "" +"没有设置活动的项目?\n" +"请设置活动项目并重试" -#~ msgid "The resource compiler. (Windows only)" -#~ msgstr "资源编译器。(仅限 Windows)" +#: codelitephp/php-plugin/php_workspace_view.cpp:926 +msgid "New workspace name:" +msgstr "新的工作区名称:" -#~ msgid "Make" -#~ msgstr "Make" +#: codelitephp/php-plugin/php_workspace_view.cpp:926 +msgid "Rename workspace" +msgstr "重命名工作区" -#~ msgid "" -#~ "The Make tool. on Windows / MinGW this is usually mingw32-make.exe while " -#~ "on other OSs its simply 'make'" -#~ msgstr "" -#~ "Make 工具,在 Windows / MinGW 中它通常是 mingw32-make.exe,但在其他操作系" -#~ "统中它只是简单的‘make’" +#: codelitephp/php-plugin/php_workspace_view.cpp:945 +#: codelitephp/php-plugin/php_workspace_view.cpp:950 +msgid "Enable automatic upload" +msgstr "启用自动上传" -#~ msgid "mkdir" -#~ msgstr "mkdir" +#: codelitephp/php-plugin/php_workspace_view.cpp:986 +msgid "Select the remote folder corrseponding to the current workspace file" +msgstr "选择在当前工作区生成的远程文件夹" -#~ msgid "" -#~ "Set the 'mkdir' for your OS.\n" -#~ "Leave it empty to use the defualt for your OS" -#~ msgstr "" -#~ "为您的系统设置‘mkdir’。\n" -#~ "留空就表示在您的系统中使用默认设置" +#: codelitephp/php-plugin/php_project_settings_dlg.cpp:106 +msgid "Select folder" +msgstr "选择文件夹" -#~ msgid "Gdb" -#~ msgstr "Gdb" +#: codelitephp/PHPParser/php_workspace.cpp:144 +msgid "Scanning for workspace files..." +msgstr "正在扫描工作区文件..." -#~ msgid "" -#~ "On various platform (e.g. Cygwin) it is recommended to use their own " -#~ "sepcial gdb executable rather than the global one\n" -#~ "You can specify one here, or leave this empty to use the default" -#~ msgstr "" -#~ "在不同的平台上(如 Cygwin)它们通常推荐使用自己专用的 gdb 可执行程序而不是" -#~ "全局设置中的\n" -#~ "您可以在这里指定一个,或留空来使用默认设置" +#: codelitephp/PHPParser/php_workspace.cpp:270 +msgid "Updating workspace..." +msgstr "正在更新工作区..." -#~ msgid "Create" -#~ msgstr "创建" +#: codelitephp/PHPParser/php_workspace.cpp:442 +msgid "" +"Failed to rename workspace file:\n" +"'" +msgstr "" +"重命名工作区文件失败:\n" +"“" -#~ msgid "Don't Create" -#~ msgstr "不要创建" +#: codelitephp/PHPParser/php_workspace.cpp:442 +msgid "" +"'\n" +"to:\n" +"'" +msgstr "" +"”\n" +"到:\n" +"“" -#~ msgid "Register" -#~ msgstr "寄存器" +#: codelitephp/PHPParser/php_workspace.cpp:464 +msgid "" +"Workspace file modified externally. Would you like to reload the workspace?" +msgstr "工作区文件已被外部程序修改,您要重新加载该工作区吗?" -#~ msgid "Auto adjust the horizontal toolbar to fit to the page content" -#~ msgstr "自动调整水平滚动条宽度以适配页面内容" +#: codelitephp/PHPParser/php_workspace.cpp:558 +msgid "A project with similar name already exists in the workspace" +msgstr "工作区中已经存在具有相同名称的项目" -#~ msgid "Hide the edit margin" -#~ msgstr "隐藏编辑页边距" +#: codelitephp/PHPParser/php_workspace.cpp:596 +#: codelitephp/PHPParser/php_workspace.cpp:606 +msgid "Unable to create a project at the selected path\n" +msgstr "无法在所选路径创建项目\n" -#~ msgid "Hide the edit margin ( the red/green marks when a line is modified)" -#~ msgstr "隐藏编辑页边距 (红色/绿色标志在已改动的行时)" +#: codelitephp/PHPParser/php_workspace.cpp:596 +msgid "Path '" +msgstr "路径“" -#~ msgid "Show indentation gudelines" -#~ msgstr "显示缩进标记" +#: codelitephp/PHPParser/php_workspace.cpp:597 +msgid "' is already part of project '" +msgstr "”已经是项目的一部分“" -#~ msgid "Show indentation guidelines (vertical lines)" -#~ msgstr "显示缩进标记 (垂直线条)" +#: codelitephp/PHPParser/php_workspace.cpp:606 +msgid "Project '" +msgstr "项目“" -#~ msgid "" -#~ "By default when typing \";\" next to a close brace \")\" CodeLite will " -#~ "move the \";\" to the right\n" -#~ "This option enables or disables this behavior" -#~ msgstr "" -#~ "在默认情况下当输入 \";\" 后紧接着输入 \")\" 时,CodeLite 将移动该 \";\" 到" -#~ "括号的右侧\n" -#~ "该选项可以启用或禁用此行为" +#: codelitephp/PHPParser/php_workspace.cpp:607 +msgid "' is located under this path" +msgstr "”已经定位到此路径下" -#~ msgid "Whitespaces" -#~ msgstr "空格" +#: codelitephp/PHPParser/phpexecutor.cpp:76 +msgid "Another process is already running" +msgstr "另一个进程已在运行" -#~ msgid "Whitespace visibility" -#~ msgstr "空白可见性" +#: codelitephp/PHPParser/phpexecutor.cpp:179 +msgid "Please set an index file to execute in the project settings" +msgstr "请设置索引文件来执行项目中的设置" -#~ msgid "Whitespace visibility policy" -#~ msgstr "空白的可见性规则" +#: codelitephp/PHPParser/phpexecutor.cpp:186 +msgid "" +"Could not find any PHP binary to execute. Please set one in from: 'PHP | " +"Settings'" +msgstr "找不到任何 PHP 二进制文件来执行。请从:“PHP | 设置”设置一个" -#~ msgid "Mac (CR)" -#~ msgstr "Mac (CR)" +#: wxformbuilder/wxfbitembasedlg.cpp:61 +msgid "Title:" +msgstr "标题:" -#~ msgid "Windows (CRLF)" -#~ msgstr "Windows (CRLF)" +#: wxformbuilder/wxformbuilder.cpp:61 wxformbuilder/wxformbuilder.cpp:77 +msgid "wxFormBuilder integration with CodeLite" +msgstr "wxFormBuilder 已集成到 CodeLite" -#~ msgid "Unix (LF)" -#~ msgstr "Unix (LF)" +#: wxformbuilder/wxformbuilder.cpp:158 +msgid "New wxDialog..." +msgstr "新建 wxWidgets 对话框..." -#~ msgid "EOL Mode" -#~ msgstr "EOL 模式" +#: wxformbuilder/wxformbuilder.cpp:163 +msgid "New wxDialog with Default Buttons..." +msgstr "新建包含默认按钮的 wxWidgets 对话框..." -#~ msgid "Caret line" -#~ msgstr "插入符号所在行" +#: wxformbuilder/wxformbuilder.cpp:168 +msgid "New wxFrame..." +msgstr "新建 wxWidgets 框架..." -#~ msgid "Highlight caret line with a background colour" -#~ msgstr "突出显示插入符号行的背景颜色" +#: wxformbuilder/wxformbuilder.cpp:171 +msgid "New wxPanel..." +msgstr "新建 wxWidgets 面板..." -#~ msgid "Caret line background colour" -#~ msgstr "插入符号行背景颜色" +#: wxformbuilder/wxformbuilder.cpp:180 +msgid "New wxDialog" +msgstr "新建 wxWidgets 对话框" -#~ msgid "Caret line colour alpha" -#~ msgstr "插入符号所在行透明度" +#: wxformbuilder/wxformbuilder.cpp:193 +msgid "New wxFrame" +msgstr "新建 wxWidgets 框架" -#~ msgid "" -#~ "Set the caret line colour transparency value. Where 0 mean complete " -#~ "transparent and 255 means fully opaque" -#~ msgstr "设置插入符号的颜色透明度。0 意味着完全透明而 255 意味着完全不透明" +#: wxformbuilder/wxformbuilder.cpp:205 +msgid "New wxPanel" +msgstr "新建 wxWidgets 面板" -#~ msgid "Debugger Marker" -#~ msgstr "调试器标记" +#: wxformbuilder/wxformbuilder.cpp:245 +#, c-format +msgid "Can't find wxFormBuilder template file '%s'" +msgstr "找不到 wxFormBuilder 模板文件“%s”" -#~ msgid "When debugging, highlight the current line with a background colour" -#~ msgstr "调试时,使用背景色高亮显示当前行" +#: wxformbuilder/wxformbuilder.cpp:260 CodeDesigner/codedesigner.cpp:490 +#, c-format +msgid "Failed to copy template file to '%s'" +msgstr "复制模板文件到“%s”失败" -#~ msgid "Debugger line background colour" -#~ msgstr "调试器行背景颜色" +#: wxformbuilder/wxformbuilder.cpp:268 CodeDesigner/codedesigner.cpp:497 +#, c-format +msgid "Failed to read file '%s'" +msgstr "读取文件“%s”失败" -#~ msgid "Smart curly brackets" -#~ msgstr "智能大括号" +#: wxformbuilder/wxformbuilder.cpp:280 CodeDesigner/codedesigner.cpp:511 +#, c-format +msgid "Failed to write file '%s'" +msgstr "写入文件“%s”失败" -#~ msgid "When user types '{', automatically insert the closing brace" -#~ msgstr "当用户输入‘{’时,自动插入大括号‘}’" +#: wxformbuilder/wxformbuilder.cpp:325 +msgid "Please select a 'fbp' (Form Builder Project) file only" +msgstr "请选择一个“fbp”(从构建项目) 文件" -#~ msgid "Smart square brackets / Parentheses" -#~ msgstr "智能方括号/圆括号" +#: wxformbuilder/wxformbuilder.cpp:376 +msgid "New wxDialog with Default Buttons" +msgstr "新建使用默认按钮的 wxWidgets 对话框" -#~ msgid "" -#~ "When user types '[' or '(' automatically insert the closing bracket.\n" -#~ "In addition, if a user types ']' or ')' next to ']' or ')' just move the " -#~ "caret one position to the right" -#~ msgstr "" -#~ "当用户输入‘[’或‘(’,自动插入反括号‘]’或‘)’。\n" -#~ "此外,如果用户紧挨着‘]’或‘)’输入‘]’或‘)’时仅移动插入符号的位置到右侧" +#: wxformbuilder/wxformbuilder.cpp:433 +msgid "Open with wxFormBuilder..." +msgstr "用 wxFormBuilder 打开" -#~ msgid "Smart quotes" -#~ msgstr "智能引号" +#: wxformbuilder/formbuildsettingsdlg.cpp:49 +msgid "Select wxFormBuilder exe:" +msgstr "选择 wxFormBuilder exe" -#~ msgid "" -#~ "When typing \" or ', automatically add another one to the right, unless " -#~ "one already exists (in this case, simply move the caret one position to " -#~ "the right)" -#~ msgstr "" -#~ "当输入 \" 或 ' 时,将自动添加另一半引号,除非另一个已经存在(在这种情况" -#~ "下,只会移动插入符号的位置到右侧)" +#: wxformbuilder/formbuildsettingsbasedlg.cpp:51 +msgid "wxFormBuilder path:" +msgstr "wxFormBuilder 路径:" -#~ msgid "Typing in selection" -#~ msgstr "在选择中键入" +#: wxformbuilder/formbuildsettingsbasedlg.cpp:67 +msgid "$(WXFB) $(WXFB_PRJ)" +msgstr "$(WXFB) $(WXFB_PRJ)" -#~ msgid "Wrap with quotes" -#~ msgstr "使用引号包裹" +#: wxformbuilder/formbuildsettingsbasedlg.h:81 +msgid "wxFormBuilder Settings..." +msgstr "wxFormBuilder 设置..." -#~ msgid "" -#~ "When typing ' or \" on a selection, instead of replacing the selection " -#~ "with the character, wrap it with quotes" -#~ msgstr "" -#~ "当在一个选择中输入 ' 或 \" 时,不是使用字符替换选择,而是使用引号包裹它" +#: wxformbuilder/wxfbitemdlg.cpp:51 +msgid "Invalid C++ class name" +msgstr "无效的 C++ 类名称" -#~ msgid "Wrap with brackets" -#~ msgstr "使用括号包裹" +#: WebTools/JSCodeCompletion.cpp:62 +msgid "" +"It seems that NodeJS is not installed on your machine\n" +"(Can't find file '/usr/bin/nodejs' or '/usr/bin/node')\n" +"I have temporarily disabled Code Completion for JavaScript\n" +"Please install NodeJS and try again" +msgstr "" +"看来在您的计算机中 NodeJS 并没有安装\n" +"(找不到文件“/usr/bin/nodejs”或“/usr/bin/node”)\n" +"已暂时禁用 JavaScript 代码补全功能\n" +"请安装 NodeJS 后,再试一次" -#~ msgid "" -#~ "When typing '(' or '[' on a selection, instead of replacing the selection " -#~ "with the character, wrap it with brackets" -#~ msgstr "" -#~ "当在一个选择中输入‘(’或‘[’时,不是使用字符替换选择,而是使用括号包裹它" +#: WebTools/WebToolsBase.h:74 +msgid "WebTools Settings" +msgstr "WebTools 设置" -#~ msgid "" -#~ "Windows only: commands executed with CMD.EXE are wrapped with double " -#~ "quotes" -#~ msgstr "仅 Windows:通过 CMD.EXE 执行的命令需要用双引号包裹" +#: WebTools/WebToolsBase.cpp:40 WebTools/WebToolsBase.cpp:42 +msgid "Enable JavaScript code completion" +msgstr "启用 JavaScript 代码完成" -#~ msgid "" -#~ "Windows only: commands executed with CMD.EXE are wrapped with double " -#~ "quotes\n" -#~ "This is often needed to allow executing commands with spaces in their path" -#~ msgstr "" -#~ "仅 Windows:通过 CMD.EXE 执行的命令需要用双引号包裹\n" -#~ "这通常是需要允许执行命令的路径中包含空格" +#: WebTools/WebToolsBase.cpp:46 WebTools/WebToolsBase.cpp:48 +msgid "Enable XML code completion" +msgstr "启用 XML 代码补全" -#~ msgid "Find/FindNext clears highlit matching words" -#~ msgstr "查找/查找下一个 清除高亮配单词" +#: WebTools/WebToolsBase.cpp:52 WebTools/WebToolsBase.cpp:54 +msgid "Enable HTML code completion" +msgstr "启用 HTML 代码补全" -#~ msgid "" -#~ "By default, 'Find', FindNext and FindPrevious will clear all current " -#~ "'Highlight Matching Word' matches. Untick this box to prevent that " -#~ "happening." -#~ msgstr "" -#~ "默认情况下,'查找',查找下一个 和 查找前一个 将清除当前的所有 '突出显示匹" -#~ "配词' 匹配项。勾去掉这个框,以防止这种情况发生。" +#: WebTools/WebToolsBase.cpp:76 +msgid "" +"The JavaScript code completion uses the \"tern\" engine.\n" +"Check this option to start tern in verbose mode" +msgstr "" +"JavaScript 代码补全使用 \"tern\" 引擎。\n" +"设置此选项将在详细模式下启动 tern 引擎" -#~ msgid "Comments:" -#~ msgstr "注释:" +#: WebTools/WebToolsBase.cpp:79 +msgid "Enable Code Completion for the selected libraries" +msgstr "为选定的库启用代码补全" -#~ msgid "" -#~ "Hitting in a C style comment automatically adds a '*' to the next " -#~ "line" -#~ msgstr "当在 C 风格注释里面按<回车键>时, 自动添加‘*’到新行" +#: WebTools/WebToolsBase.cpp:81 +msgid "Ecma5" +msgstr "Ecma5" -#~ msgid "" -#~ "Hitting in a C++ style comment section automatically adds a'//' " -#~ "to the next line" -#~ msgstr "当在 C++ 风格注释里面按<回车键>时,自动添加‘//’到新行" +#: WebTools/WebToolsBase.cpp:84 +msgid "Ecma6" +msgstr "Ecma6" -#~ msgid "Code Navigation Accelerators:" -#~ msgstr "代码导航快捷键:" +#: WebTools/WebToolsBase.cpp:87 +msgid "jQuery" +msgstr "jQuery" -#~ msgid "Generate doxygen comment after \"/**\"" -#~ msgstr "在 \"/**\" 后生成 Doxygen 注释" +#: WebTools/WebToolsBase.cpp:88 +msgid "Support Code Completion for jQuery framework" +msgstr "对 JQuery 框架的代码补全支持" -#~ msgid "" -#~ "When the user hit ENTER after \"/**\" generate the proper documentation " -#~ "block" -#~ msgstr "当用户按下回车键后的\"/ *\"生成适当的文件块" +#: WebTools/WebToolsBase.cpp:90 +msgid "Underscore" +msgstr "下划线" -#~ msgid "Class documentation template" -#~ msgstr "类文档模板" +#: WebTools/WebToolsBase.cpp:91 +msgid "Enable code completion for the Underscore library" +msgstr "启用下划线库的代码补全" -#~ msgid "" -#~ "Set the template to use when generating documetation for a class (or C/C+" -#~ "+ struct).\n" -#~ "The following macros are available: $(CurrentFileName), " -#~ "$(CurrentFilePath), $(User), $(Date), $(Name) $(CurrentFileFullPath), " -#~ "$(CurrentFileExt), $(ProjectName), $(WorkspaceName)" -#~ msgstr "" -#~ "设置生成类 (或 C/C++ 结构)文档的模版为可用时.\n" -#~ "以下为可用的宏:" -#~ "$(CurrentFileName),$(CurrentFilePath),$(User),$(Date),$(Name) " -#~ "$(CurrentFileFullPath),$(CurrentFileExt),$(ProjectName),$(WorksapceName)" +#: WebTools/WebToolsBase.cpp:93 +msgid "Browser" +msgstr "浏览器" -#~ msgid "Function documentation template" -#~ msgstr "函数的文档模板" +#: WebTools/WebToolsBase.cpp:94 +msgid "Enable code completion for browser mode (DOM, document, window etc)" +msgstr "启用代码完成功能的浏览器模式(DOM、文档、窗口等)" -#~ msgid "" -#~ "Set the template to use when generating documetation for a function\n" -#~ "The following macros are available: $(CurrentFileName), " -#~ "$(CurrentFilePath), $(User), $(Date), $(Name) $(CurrentFileFullPath), " -#~ "$(CurrentFileExt), $(ProjectName), $(WorkspaceName)" -#~ msgstr "" -#~ "设置生成函数文档的模版为可用时\n" -#~ "以下为可用的宏:" -#~ "$(CurrentFileName),$(CurrentFilePath),$(User),$(Date),$(Name) " -#~ "$(CurrentFileFullPath),$(CurrentFileExt),$(ProjectName),$(WorksapceName)" +#: WebTools/WebToolsBase.cpp:96 +msgid "Chai" +msgstr "Chai" -#~ msgid "MemCheck" -#~ msgstr "MemCheck" +#: WebTools/WebToolsBase.cpp:97 +msgid "Enable code completion for the chain assertion library" +msgstr "为链式断言库启用代码完成" -#~ msgid "Place the Find bar at the bottom" -#~ msgstr "把查找栏置底" +#: WebTools/WebToolsBase.cpp:99 +msgid "QML" +msgstr "QML" -#~ msgid "Also show the 'Replace' section of the Find bar" -#~ msgstr "同时显示查找栏的“替换”部分" +#: WebTools/WebToolsBase.cpp:100 +msgid "Support for Qt's QML extension for JavaScript" +msgstr "对 JavaScript 的 Qt 的 QML 扩展支持 " -#~ msgid "" -#~ "When ticked, extra 'replace' fields will be added. You can also Show/Hide " -#~ "these using a keyboard shortcut." -#~ msgstr "" -#~ "当勾选,将添加额外的 '替换' 字段。您也可以使用键盘快捷方式显示/隐藏这些。" +#: WebTools/WebToolsBase.cpp:105 +msgid "Angular" +msgstr "角度" -#~ msgid "Transparent hint" -#~ msgstr "透明提示" +#: WebTools/WebToolsBase.cpp:106 +msgid "" +"Adds the angular object to the top-level environment, and tries to wire up " +"some of the bizarre dependency management scheme from this library, so that " +"dependency injections get the right types" +msgstr "" +"将 angular 对象添加到顶层环境中,并试图从这个库连接一些奇特的依赖管理方案,这" +"样依赖注入可以得到正确的类型" -#~ msgid "Rectangle hint" -#~ msgstr "矩形提示" +#: WebTools/WebToolsBase.cpp:109 +msgid "" +"When enabled, this plugin will gather (short) strings in your code, and " +"completing when inside a string will try to complete to previously seen " +"strings" +msgstr "" +"当启用时,这个插件将从您的代码中收集(短)字符串,并在再次输入时对之前出现的字" +"符串启用自动补全" -#~ msgid "Venetian blinds hints" -#~ msgstr "百叶窗提示" +#: WebTools/WebToolsBase.cpp:111 +msgid "Node.js" +msgstr "Node.js" -#~ msgid "Glossy" -#~ msgstr "Glossy" +#: WebTools/WebToolsBase.cpp:112 +msgid "" +"Provides variables that are part of the node environment, such as process " +"and require, and hooks up require to try and find the dependencies that are " +"being loaded, and assign them the correct types. It also includes types for " +"the built-in modules that node.js provides (\"fs\", \"http\", etc)" +msgstr "" +"提供 node 环境中的部分变量,如 process 和 require,并挂钩 require 到正在载入" +"的依赖库,然后分配正确的类型。它还包括内置模块的类型,如 node.js 提供的 (\"fs" +"\"、\"http\",等等)" -#~ msgid "Curved" -#~ msgstr "Curved" +#: WebTools/webtools.cpp:25 +msgid "Support for JavScript, HTML and other web development tools" +msgstr "对 JavScript、HTML 和其他 web 开发工具的支持" -#~ msgid "Hide Docking Windows captions" -#~ msgstr "隐藏对接窗口标题" +#: WebTools/webtools.cpp:36 +msgid "Support for JavScript, XML, HTML and other web development tools" +msgstr "对 JavScript、XML、HTML 和其他 web 开发工具的支持" -#~ msgid "Select the folding style" -#~ msgstr "选择折叠样式" +#: WebTools/webtools.cpp:78 +msgid "WebTools" +msgstr "WebTools" -#~ msgid "Highlight Active Fold Block" -#~ msgstr "突出显示折叠块" +#: WordCompletion/UI.h:50 +msgid "Word Completion Settings" +msgstr "单词补全设置" -#~ msgid "" -#~ "Allows to enable/disable the highlight folding block when it is selected. " -#~ "(i.e. block that contains the caret)" -#~ msgstr "当被选中时允许启用/禁用高亮显示折叠块。(即块包含插入符号)" +#: WordCompletion/UI.cpp:39 +msgid "Enable Word Completion plugin?" +msgstr "是否启用单词补全插件?" -#~ msgid "Use Native Toolbar" -#~ msgstr "使用本系统的工具栏" +#: WordCompletion/UI.cpp:43 +msgid "Starts With" +msgstr "以此开头" -#~ msgid "" -#~ "Using the OS native toolbar instead of the generic toolbar\n" -#~ "When enabling this option, CodeLite will not be able to display all " -#~ "plugins\n" -#~ "Tools" -#~ msgstr "" -#~ "使用本操作系统的工具栏而不是通用的工具栏\n" -#~ "当启用此选项,CodeLite 将不能显示所有的插件\n" -#~ "工具" +#: WordCompletion/UI.cpp:44 +msgid "Contains" +msgstr "包含" -#~ msgid "" -#~ "Some files were modified outside of the editor.\n" -#~ "What would you like to do?" -#~ msgstr "" -#~ "文件已经被外部编辑器修改。\n" -#~ "选择您想要重新载入的文件。" +#: WordCompletion/UI.cpp:45 +msgid "Comparison Method" +msgstr "比较方法" -#~ msgid "Reload all the externally modified files" -#~ msgstr "重新加载所有外部修改的文件" +#: WordCompletion/UI.cpp:46 +msgid "" +"Select the word completion comparison method:\n" +"\"Starts With\" - suggest all words that starts with the partial word that " +"the user typed\n" +"\"Contains\" - suggest all words that contains the partial word that the " +"user typed" +msgstr "" +"选择单词补全比较方法:\n" +"\"以此开头\" - 提示以用户键入的部分字词开头的单词\n" +"\"包含\" - 提示所有包含用户键入部分字词的单词" -#~ msgid "Reload." -#~ msgstr "重新加载。" +#: WordCompletion/wordcompletion.cpp:29 WordCompletion/wordcompletion.cpp:39 +msgid "Suggest completion based on words typed in the editor" +msgstr "以编辑器中键入的单词为基础提供补全" -#~ msgid "Choose." -#~ msgstr "选择。" +#: WordCompletion/wordcompletion.cpp:64 +msgid "Show Word Completion" +msgstr "显示单词补全" -#~ msgid "Let me choose which file or files to reload" -#~ msgstr "让我选择重新加载哪一个文件或哪些文件" +#: CodeDesigner/codedesignersettingsbasedlg.cpp:26 +msgid "CodeDesigner path:" +msgstr "CodeDesigner 路径:" -#~ msgid "Don't reload any the externally modified files" -#~ msgstr "不加载任何外部修改的文件" +#: CodeDesigner/codedesignersettingsbasedlg.cpp:38 +msgid "Communication port:" +msgstr "通信端口:" -#~ msgid "Ignore." -#~ msgstr "忽略。" +#: CodeDesigner/codedesignersettingsbasedlg.h:57 +msgid "CodeDesigner RAD Settings..." +msgstr "CodeDesigner 应用程序快速开发设置..." -#~ msgid "Project new name:" -#~ msgstr "项目的新名称:" +#: CodeDesigner/codedesigneritembasedlg.h:66 +msgid "New CodeDesigner project" +msgstr "新建 CodeDesigner 项目" -#~ msgid "Rename project" -#~ msgstr "重命名项目" +#: CodeDesigner/codedesigner.cpp:49 CodeDesigner/codedesigner.cpp:63 +msgid "CodeDesigner RAD integration with CodeLite" +msgstr "CodeDesigner RAD 已集成到 CodeLite" -#~ msgid "You can only drag one folder at a time" -#~ msgstr "您一次只能拖动一个文件夹" +#: CodeDesigner/codedesigner.cpp:136 +msgid "CodeDesigner" +msgstr "CodeDesigner" -#~ msgid "Failed to create workspace:\n" -#~ msgstr "未能创建工作区: \n" +#: CodeDesigner/codedesigner.cpp:173 +msgid "Open with CodeDesigner..." +msgstr "用 CodeDesigner 打开..." -#~ msgid "Can't import files to workspace without projects" -#~ msgstr "工作区没有项目时无法导入文件" +#: CodeDesigner/codedesigner.cpp:248 +msgid "New simple state chart..." +msgstr "新建简单状态表..." -#~ msgid "Import files to project" -#~ msgstr "导入文件到项目" +#: CodeDesigner/codedesigner.cpp:252 +msgid "New hierarchical state chart..." +msgstr "新建分层状态表..." -#~ msgid "Select project:" -#~ msgstr "请选择项目:" +#: CodeDesigner/codedesigner.cpp:256 +msgid "New class diagram..." +msgstr "新建类图..." -#~ msgid "Type a string to search..." -#~ msgstr "键入要搜索的字符串..." +#: CodeDesigner/codedesigner.cpp:315 +msgid "Please select a 'cdp' (CodeDesigner Project) file only" +msgstr "请选择一个“cdp”(构建项目) 文件" -#~ msgid "Reached the end of the 'Find In Files' results" -#~ msgstr "到达’在文件中查找‘搜索结果列表的末尾" +#: CodeDesigner/codedesigner.cpp:327 +msgid "" +"Failed to launch CodeDesigner, no path specified\n" +"Please set CodeDesigner path from Plugins -> CodeDesigner -> Settings..." +msgstr "" +"启动 CodeDesigner 失败,没有指定路径\n" +"请在 插件 -> CodeDesigner -> 设置... 中设置 CodeDesigner 的路径" -#~ msgid "Reached the start of the 'Find In Files' results" -#~ msgstr "到达‘在文件中查找’搜索结果的列表开头" +#: CodeDesigner/codedesigner.cpp:391 +msgid "New Class Diagram" +msgstr "新建类图" -#~ msgid "Search result is no longer valid" -#~ msgstr "搜索结果不再有效" +#: CodeDesigner/codedesigner.cpp:409 +msgid "New Hierarchical State Chart" +msgstr "新建分层状态表" -#~ msgid "Edit::Split selection into multiple carets" -#~ msgstr "Edit::Split 分割选区到多个插入符号" +#: CodeDesigner/codedesigner.cpp:427 +msgid "New Simple State Chart" +msgstr "新建简单状态表" -#~ msgid "Search::Toggle the Quick-Replace Bar" -#~ msgstr "Search::Toggle 切换快速替换栏" +#: CodeDesigner/codedesigner.cpp:475 +#, c-format +msgid "Can't find CodeDesigner template file '%s'" +msgstr "找不到 CodeDesigner 模板文件“%s”" -#~ msgid "Applying your choices and restarting CodeLite" -#~ msgstr "应用您的选择并重新启动 CodeLite" +#: CodeDesigner/codedesigner.cpp:592 +msgid "Insert generated files into..." +msgstr "将生成的文件插入..." -#~ msgid "Applying your choices, this may take a few seconds" -#~ msgstr "应用您的选择,这可能需要几秒钟" +#: CodeDesigner/codedesigneritembasedlg.cpp:20 +msgid "CodeDesigner project settings:" +msgstr "CodeDesigner 项目设置:" -#~ msgid "Build and Execute" -#~ msgstr "构建并执行" +#: CodeDesigner/codedesigneritembasedlg.cpp:27 +msgid "Package name:" +msgstr "包名称:" -#~ msgid "Execute" -#~ msgstr "执行" +#: CodeDesigner/codedesigneritembasedlg.cpp:36 +msgid "Diagram name:" +msgstr "图名:" -#~ msgid "Reload workspace" -#~ msgstr "重新加载工作空间" +#: CodeDesigner/codedesigneritembasedlg.cpp:47 +msgid "C" +msgstr "C" -#~ msgid "Files extension to import (semicolon delimited):" -#~ msgstr "导入文件的扩展名 (用分号分隔):" +#: CodeDesigner/codedesigneritembasedlg.cpp:47 +msgid "Python" +msgstr "Python" -#~ msgid "" -#~ "Failed to locate the configured default terminal application required by " -#~ "CodeLite, please install it or check your configuration!" -#~ msgstr "定位 Codelite 已配置的默认终端程序失败,请安装它或者检查您的配置!" +#: CodeDesigner/codedesigneritembasedlg.cpp:56 +msgid "Application entry point" +msgstr "应用程序入口点" -#~ msgid "Could not launch terminal for debugger" -#~ msgstr "无法启动调试器的终端" +#: CodeDesigner/codedesigneritembasedlg.cpp:62 +msgid "Generate source code" +msgstr "源文件格式化器 (AStyle)" -#~ msgid "Generating compile_commands.json file..." -#~ msgstr "正在生成 compile_commands.json 文件..." +#: CodeDesigner/codedesigneritembasedlg.cpp:70 +msgid "CodeLite settings:" +msgstr "CodeLite 设置:" -#~ msgid "" -#~ "Build cancelled. The following compilers referred by the workspace could " -#~ "not be found:\n" -#~ msgstr "构建被取消。找不到工作区中使用的以下编译器: \n" +#: CodeDesigner/codedesignerdlg.cpp:15 +msgid "Select CodeDesigner executable:" +msgstr "选择 CodeDesigner 可执行文件:" -#~ msgid "Please fix your project settings by selecting a valid compiler" -#~ msgstr "请选择一个有效的编译器来修复您的项目设置" +#: CodeDesigner/codedesigneritemdlg.cpp:41 +msgid "Diagram name cannot be empty" +msgstr "图名不能为空" -#~ msgid "" -#~ "Compilers updated successfully!\n" -#~ "You can now build your workspace" -#~ msgstr "" -#~ "编译器已成功更新 ! \n" -#~ "您现在可以构建您的工作区" +#: CodeDesigner/codedesigneritemdlg.cpp:48 +msgid "Package name cannot be empty" +msgstr "包名称不能为空" -#~ msgid "Explicitly Include PCH" -#~ msgstr "显式包含 PCH" +#: CodeDesigner/codedesigneritemdlg.cpp:55 +#: DatabaseExplorer/ClassGenerateDialog.cpp:131 +msgid "Folder name cannot be empty" +msgstr "文件夹名称不能为空" -#~ msgid "Append" -#~ msgstr "追加" +#: DatabaseExplorer/ErdTable.cpp:308 +msgid "New table" +msgstr "新建目标" -#~ msgid "PCH Compile Flags Policy" -#~ msgstr "PCH 的编译标志规则" +#: DatabaseExplorer/ErdPanel.cpp:164 +msgid "Open diagram" +msgstr "打开图表" -#~ msgid "" -#~ "Set the PCH flags policy to:\n" -#~ "* Append - this means that the flags set in the 'PCH Compile Flags' field " -#~ "will be appended to default flags\n" -#~ "* Replace - the 'PCH Compile Flags' will replace any other flags" -#~ msgstr "" -#~ "PCH 标志规则: \n" -#~ "* 追加 - 这意味着 'PCH 编译标志' 将被追加到编译标志后\n" -#~ "* 替换 - 'PCH 编译标志' 将取代任何其他标志" +#: DatabaseExplorer/ErdPanel.cpp:165 +msgid "Save diagram" +msgstr "保存图表" -#~ msgid "Extended Protocol" -#~ msgstr "扩展协议" +#: DatabaseExplorer/ErdPanel.cpp:166 +msgid "Save SQL" +msgstr "另存为" -#~ msgid "" -#~ "Enable extended mode. In extended mode, the remote server is made " -#~ "persistent.\n" -#~ "i.e. it does not go down after the debug session ends" -#~ msgstr "" -#~ "启用扩展模式。在扩展模式中,远程服务器是持续的。\n" -#~ "它不会在调试会话结束后停止。" +#: DatabaseExplorer/ErdPanel.cpp:167 +msgid "Commit ERD" +msgstr "提交 ERD" -#~ msgid "" -#~ "If checked, pass -std=c++11 to the clang code completion engine to ensure " -#~ "that all c++11 features are recognized properly" -#~ msgstr "" -#~ "如果选中此选项,传送 -std=c++11 到clang代码完成引擎,以确保所有 c++11 特性" -#~ "能被正确识别" +#: DatabaseExplorer/ErdPanel.cpp:168 +msgid "Export canvas to image" +msgstr "导出画布到图片" -#~ msgid "Enable C++14 Standard" -#~ msgstr "启用 C++14 标准" +#: DatabaseExplorer/ErdPanel.cpp:170 +msgid "Print" +msgstr "PRINT" -#~ msgid "" -#~ "If checked, pass -std=c++14 to the clang code completion engine to ensure " -#~ "that all c++14 features are recognized properly" -#~ msgstr "" -#~ "如果选中此选项,传送 -std=c++14 到clang代码完成引擎,以确保所有 c++14 特性" -#~ "能被正确识别" +#: DatabaseExplorer/ErdPanel.cpp:170 +msgid "Print diagram" +msgstr "打印图表" -#~ msgid "Case sensitive match" -#~ msgstr "大小写敏感" +#: DatabaseExplorer/ErdPanel.cpp:171 +msgid "Preview" +msgstr "预览:" -#~ msgid "Match a whole word" -#~ msgstr "匹配整字" +#: DatabaseExplorer/ErdPanel.cpp:171 +msgid "Print preview" +msgstr "预览:" -#~ msgid "Regular expression" -#~ msgstr "正则表达式" +#: DatabaseExplorer/ErdPanel.cpp:173 +msgid "Copy item" +msgstr "复制项" -#~ msgid "Wildcard syntax" -#~ msgstr "通配字符" +#: DatabaseExplorer/ErdPanel.cpp:174 +msgid "Cut item" +msgstr "剪切项" -#~ msgid "Highlight Occurences" -#~ msgstr "高亮匹配" +#: DatabaseExplorer/ErdPanel.cpp:175 +msgid "Paste item" +msgstr "粘贴项目" -#~ msgid "Type to start a search..." -#~ msgstr "键入要搜索的字符串..." +#: DatabaseExplorer/ErdPanel.cpp:180 +msgid "Tool" +msgstr "工具" -#~ msgid "Find Prev" -#~ msgstr "查找上一个" +#: DatabaseExplorer/ErdPanel.cpp:180 +msgid "Design tool" +msgstr "设计工具" -#~ msgid "Find All" -#~ msgstr "查找全部" +#: DatabaseExplorer/ErdPanel.cpp:181 +msgid "DBETable" +msgstr "DBE 表" -#~ msgid "Find and select all occurrences" -#~ msgstr "查找并选择所有" +#: DatabaseExplorer/ErdPanel.cpp:181 +msgid "Database table" +msgstr "无打开的数据库" -#~ msgid "Type the replacement string and hit ENTER to perform the replacement" -#~ msgstr "键入替换字符串并按下回车键来执行更换" +#: DatabaseExplorer/ErdPanel.cpp:182 +msgid "Database view" +msgstr "无打开的数据库" -#~ msgid "Type any replacement string..." -#~ msgstr "键入的替换字符串..." +#: DatabaseExplorer/ErdPanel.cpp:183 +msgid "Constraint 1:N" +msgstr "限制 1:N" -#~ msgid "Replace the current selection" -#~ msgstr "替换当前所选内容" +#: DatabaseExplorer/ErdPanel.cpp:183 +msgid "Foreign key connection" +msgstr "按任意键组合:" -#~ msgid "Case Sensitive" -#~ msgstr "区分大小写" +#: DatabaseExplorer/ErdPanel.cpp:185 +msgid "Align into circle" +msgstr "对齐到圆形" -#~ msgid "Regular Expression" -#~ msgstr "正则表达式" +#: DatabaseExplorer/ErdPanel.cpp:186 +msgid "Align into mesh" +msgstr "对齐到网格" -#~ msgid "Use wildcard syntax" -#~ msgstr "使用通配字符" +#: DatabaseExplorer/ErdPanel.cpp:187 +msgid "Align into vertical tree" +msgstr "对齐到垂直树" -#~ msgid "Enable multiple selections" -#~ msgstr "允许多重选择" +#: DatabaseExplorer/ErdPanel.cpp:188 +msgid "Align into horizontal tree" +msgstr "对齐到水平树" -#~ msgid "Select each match without de-selectiing the previous match" -#~ msgstr "选择任何匹配而无需取消选择前一次匹配" +#: DatabaseExplorer/ErdPanel.cpp:191 +msgid "Zoom to all" +msgstr "应用到全部" -#~ msgid "New Theme..." -#~ msgstr "新建主题..." +#: DatabaseExplorer/ErdPanel.cpp:219 +msgid "Load canvas from file..." +msgstr "加载文件..." -#~ msgid "Export" -#~ msgstr "导出" +#: DatabaseExplorer/ErdPanel.cpp:228 +msgid "Save canvas to file..." +msgstr "保存更改到“" -#~ msgid "Export syntax highlight settings to zip file" -#~ msgstr "语法显示风格设置导出到 zip 文件" +#: DatabaseExplorer/ErdPanel.cpp:237 +msgid "Save SQL create query..." +msgstr "另存为模板..." -#~ msgid "Export All" -#~ msgstr "导出全部" +#: DatabaseExplorer/ErdPanel.cpp:251 +#, c-format +msgid "The SQL script has been saved to '%s'." +msgstr "该 SQL 脚本已被保存到 '%s'。" -#~ msgid "Export specific lexers" -#~ msgstr "导出特定的词法分析器" +#: DatabaseExplorer/ErdPanel.cpp:251 DatabaseExplorer/ErdPanel.cpp:403 +#: DatabaseExplorer/databaseexplorer.cpp:93 +#: DatabaseExplorer/databaseexplorer.cpp:239 +msgid "DatabaseExplorer" +msgstr "资源管理器" -#~ msgid "Import settings from a zip archive" -#~ msgstr "从 zip 文件导入设置" +#: DatabaseExplorer/ErdPanel.cpp:388 +msgid "ERD type doesn't match current database adapter." +msgstr "ERD 类型无法匹配当前数据库适配器。" -#~ msgid "Revert to default settings" -#~ msgstr "还原到默认设置" +#: DatabaseExplorer/ErdPanel.cpp:388 DatabaseExplorer/DbViewerPanel.cpp:804 +#: DatabaseExplorer/DbViewerPanel.cpp:807 +#: DatabaseExplorer/DbViewerPanel.cpp:856 +#: DatabaseExplorer/DbViewerPanel.cpp:863 +#: DatabaseExplorer/SqlCommandPanel.cpp:156 +#: DatabaseExplorer/SqlCommandPanel.cpp:281 +#: DatabaseExplorer/SqlCommandPanel.cpp:286 +#: DatabaseExplorer/ErdCommitWizard.cpp:466 +#: DatabaseExplorer/ErdCommitWizard.cpp:473 +#: DatabaseExplorer/DbSettingDialog.cpp:84 +#: DatabaseExplorer/DbSettingDialog.cpp:87 +#: DatabaseExplorer/DbSettingDialog.cpp:91 +#: DatabaseExplorer/DbSettingDialog.cpp:111 +#: DatabaseExplorer/DbSettingDialog.cpp:114 +#: DatabaseExplorer/DbSettingDialog.cpp:118 +#: DatabaseExplorer/DbSettingDialog.cpp:179 +#: DatabaseExplorer/DbSettingDialog.cpp:182 +#: DatabaseExplorer/DbSettingDialog.cpp:186 +#: DatabaseExplorer/AdapterSelectDlg.cpp:45 +#: DatabaseExplorer/AdapterSelectDlg.cpp:53 +#: DatabaseExplorer/AdapterSelectDlg.cpp:61 +msgid "DB Error" +msgstr "数据库错误" -#~ msgid "Import Eclipse Theme" -#~ msgstr "导入 Eclipse 主题" +#: DatabaseExplorer/ErdPanel.cpp:403 +#, c-format +msgid "The chart has been saved to '%s'." +msgstr "该图表已被保存到 '%s'。" -#~ msgid "Load eclipse theme website" -#~ msgstr "加载 eclipse 主题网站" +#: DatabaseExplorer/TableSettings.cpp:92 +msgid "column" +msgstr "列" -#~ msgid "Available Themes:" -#~ msgstr "可用的主题:" +#: DatabaseExplorer/DbViewerPanel.cpp:69 +msgid "Open connection" +msgstr "打开" -#~ msgid "Styles" -#~ msgstr "样式" +#: DatabaseExplorer/DbViewerPanel.cpp:73 DatabaseExplorer/DbViewerPanel.cpp:74 +msgid "Open new connection" +msgstr "打开" -#~ msgid "Use Custom Selection Forground Colour:" -#~ msgstr "使用自定义选择前景颜色:" +#: DatabaseExplorer/DbViewerPanel.cpp:77 DatabaseExplorer/DbViewerPanel.cpp:85 +msgid "tool" +msgstr "工具" -#~ msgid "" -#~ "You can choose to override the default selection colouring by enabling " -#~ "this checkbox" -#~ msgstr "启用此选框您可以覆盖默认选择区着色" +#: DatabaseExplorer/DbViewerPanel.cpp:81 DatabaseExplorer/DbViewerPanel.cpp:82 +msgid "Close selected connection" +msgstr "关闭已选择连接" -#~ msgid "Selected Text Foreground Colour:" -#~ msgstr "选择文本前景色:" +#: DatabaseExplorer/DbViewerPanel.cpp:93 +msgid "ERD" +msgstr "ERD" -#~ msgid "Global Colours" -#~ msgstr "全局色:" +#: DatabaseExplorer/DbViewerPanel.cpp:97 +msgid "Open ERD View" +msgstr "打开文件" -#~ msgid "Global theme:" -#~ msgstr "全局主题:" +#: DatabaseExplorer/DbViewerPanel.cpp:101 +#: DatabaseExplorer/DbViewerPanel.cpp:103 +msgid "Show ERD Thumbnail" +msgstr "显示 ERD 缩略图" -#~ msgid "" -#~ "Set a global theme for all the supported languages.\n" -#~ "If the theme is not available for a given language, CodeLite will use the " -#~ "next available theme from\n" -#~ "the same family" -#~ msgstr "" -#~ "设置全局主题为所有受支持的语言。 \n" -#~ "If 主题不可用给定语言,CodeLite 将使用下一个可用的主题 from\n" -#~ "the 同一家族" +#: DatabaseExplorer/DbViewerPanel.cpp:409 +#: DatabaseExplorer/DbViewerPanel.cpp:440 +#: DatabaseExplorer/DbViewerPanel.cpp:455 +msgid "Open SQL panel" +msgstr "打开工作区" -#~ msgid "Theme Name:" -#~ msgstr "主题名称:" +#: DatabaseExplorer/DbViewerPanel.cpp:409 +msgid "Open SQL command panel for the database" +msgstr "为该数据库打开 SQL 命令面板" -#~ msgid "Set the theme name" -#~ msgstr "设置主题名称" +#: DatabaseExplorer/DbViewerPanel.cpp:413 +#: DatabaseExplorer/DbViewerPanel.cpp:555 +msgid "Drop database" +msgstr "删除数据库" -#~ msgid "Make this theme for this language" -#~ msgstr "为此语言使用此主题" +#: DatabaseExplorer/DbViewerPanel.cpp:413 +msgid "Run SQL command for deleting Database" +msgstr "为正在删除的数据库运行 SQL 命令" -#~ msgid "Based on Theme:" -#~ msgstr "基于主题:" +#: DatabaseExplorer/DbViewerPanel.cpp:417 +msgid "Create ERD from DB" +msgstr "创建 Diff" -#~ msgid "Set the base theme for this new theme" -#~ msgstr "设置这个新的主题的基本主题" +#: DatabaseExplorer/DbViewerPanel.cpp:417 +msgid "Create ERD diagram from the database" +msgstr "创建 cscope 数据库" -#~ msgid "Applying changes..." -#~ msgstr "正在应用更改..." +#: DatabaseExplorer/DbViewerPanel.cpp:419 +msgid "Create classes from DB" +msgstr "从数据库创建类" -#~ msgid "Export Lexers" -#~ msgstr "导出词法分析器" +#: DatabaseExplorer/DbViewerPanel.cpp:419 +msgid "Create C++ classes for the database" +msgstr "从数据库创建 C++ 类" -#~ msgid "Select which lexers you wish to export" -#~ msgstr "选择要导出的词法分析器" +#: DatabaseExplorer/DbViewerPanel.cpp:423 +msgid "Import database from file" +msgstr "从文件中导入数据库" -#~ msgid "Settings have been saved into:\n" -#~ msgstr "设置已被保存到: \n" +#: DatabaseExplorer/DbViewerPanel.cpp:424 +msgid "Run SQL commands stored in *.sql file" +msgstr "运行储存在 *.sql 文件中的 SQL 命令" -#~ msgid "" -#~ "Are you sure you want to restore colours to factory defaults?\n" -#~ "By choosing 'Yes', you will lose all your local modifications" -#~ msgstr "" -#~ "是否确实要将颜色还原到出厂默认值吗? \n" -#~ "如果选择 '是',你将失去你所有的修改" +#: DatabaseExplorer/DbViewerPanel.cpp:426 +msgid "Export database to file" +msgstr "导出图片" -#~ msgid "Select eclipse XML theme file" -#~ msgstr "选择 eclipse XML 主题文件" +#: DatabaseExplorer/DbViewerPanel.cpp:427 +msgid "Export database CREATE SQL statements into *.sql file" +msgstr "导出数据库中 CREATE SQL 语句到 *.sql 文件" -#~ msgid "File imported successfully!" -#~ msgstr "已成功导入的文件 !" +#: DatabaseExplorer/DbViewerPanel.cpp:431 +msgid "Dump data to file" +msgstr "转储数据到文件" -#~ msgid "Select the file you want to add" -#~ msgstr "选择您想要添加的文件" +#: DatabaseExplorer/DbViewerPanel.cpp:432 +msgid "Dump data from database into .sql file" +msgstr "从数据库中转储数据到 .sql 文件" -#~ msgid "Track PreProcessor blocks" -#~ msgstr "跟踪预处理块" +#: DatabaseExplorer/DbViewerPanel.cpp:440 +msgid "Open SQL command panel for the table" +msgstr "为该表打开 SQL 命令面板" -#~ msgid "" -#~ "Track Pre Processor blocks in the code and colour unreachable code with " -#~ "grey text (\"disabled text\")" -#~ msgstr "跟踪代码中的预处理块并用灰色显示不可接触的代码 (\"失效文本\")" +#: DatabaseExplorer/DbViewerPanel.cpp:443 +#: DatabaseExplorer/DbViewerPanel.cpp:624 +msgid "Drop table" +msgstr "删除表" -#~ msgid "" -#~ "Local variables inside functions will use their own colour to " -#~ "diffrentiate them from other code\n" -#~ "The colour can be selected from the 'Colours and Fonts' menu" -#~ msgstr "" -#~ "函数内的本地变量将使用它们自己的颜色区分其它变量\n" -#~ "颜色可以从‘颜色和字体’菜单中选择" +#: DatabaseExplorer/DbViewerPanel.cpp:443 +msgid "Run SQL command to delete the table" +msgstr "运行 SQL 命令以删除该表" -#~ msgid "Colour workspace symbols" -#~ msgstr "着色工作空间符号" +#: DatabaseExplorer/DbViewerPanel.cpp:447 +msgid "Create ERD from Table" +msgstr "从表中创建 ERD" -#~ msgid "" -#~ "Select from the list below which symbols type should be coloured by " -#~ "codelite with different colour.\n" -#~ "The colour is configurable from the 'Colours and Fonts' dialog" -#~ msgstr "" -#~ "从下面符号类型列表中选择哪些使用不同颜色显示。 \n" -#~ "颜色可从‘颜色和字体’对话框中配置" +#: DatabaseExplorer/DbViewerPanel.cpp:447 +msgid "Create ERD diagram from the table" +msgstr "从表中创建 ERD 表" -#~ msgid "Auto display code completion box when typing" -#~ msgstr "键入时自动显示代码完成框" +#: DatabaseExplorer/DbViewerPanel.cpp:449 +msgid "Create classes from Table" +msgstr "创建类表" -#~ msgid "Minimun chars to type:" -#~ msgstr "最小字符键入:" +#: DatabaseExplorer/DbViewerPanel.cpp:450 +msgid "Create C++ classes for the table" +msgstr "为表创建c++类" -#~ msgid "Auto insert single match" -#~ msgstr "自动插入单个匹配" +#: DatabaseExplorer/DbViewerPanel.cpp:455 +msgid "Open SQL command panel for the view" +msgstr "为该视图打开 SQL 命令面板" -#~ msgid "" -#~ "When there is only a single match don't show the code completion box but " -#~ "rather insert the match" -#~ msgstr "当只有唯一匹配时,不显示代码补全框,直接插入此匹配" +#: DatabaseExplorer/DbViewerPanel.cpp:458 +#: DatabaseExplorer/DbViewerPanel.cpp:643 +msgid "Drop view" +msgstr "删除视图" -#~ msgid "Suggest" -#~ msgstr "建议" +#: DatabaseExplorer/DbViewerPanel.cpp:458 +msgid "Run SQL command to delete the view" +msgstr "运行 SQL 命令以删除该视图" -#~ msgid "Suggest search paths based on the installed compilers" -#~ msgstr "建议编译器搜索路径" +#: DatabaseExplorer/DbViewerPanel.cpp:483 +msgid "Close connection?" +msgstr "关闭连接?" -#~ msgid "" -#~ "Specify here a list of types which are to be specially handled while " -#~ "parsing C and C++\n" -#~ "source files in the format of TYPE1=TYPE2. So when TYPE1 is found, " -#~ "CodeLite will offer\n" -#~ "completion as if it was TYPE2 was found" -#~ msgstr "" -#~ "在这里指定类型的列表将会在分析 C 和 C++ 源文件时对‘格式1=格式2’进行特别处" -#~ "理。\n" -#~ "因此,当发现类型1时,CodeLite 就会像发现类型2一样提供代码补全" +#: DatabaseExplorer/DbViewerPanel.cpp:524 +msgid "Database name" +msgstr "无打开的数据库" -#~ msgid "" -#~ "Accepting this suggestion will replace your old search paths with these " -#~ "paths\n" -#~ "Continue?" -#~ msgstr "" -#~ "接受这项建议,你旧的搜索路径将会被替换\n" -#~ "继续吗?" +#: DatabaseExplorer/DbViewerPanel.cpp:524 +msgid "Add database" +msgstr "添加数据库" -#~ msgid "Create a new workspace" -#~ msgstr "创建新的工作空间" +#: DatabaseExplorer/DbViewerPanel.cpp:534 +msgid "Database created successfully" +msgstr "数据库创建成功" -#~ msgid "Open an existing workspace" -#~ msgstr "打开现有工作空间" +#: DatabaseExplorer/DbViewerPanel.cpp:540 +msgid "Can't create new db in this database engine!" +msgstr "无法创建新数据库在该数据库引擎中!" -#~ msgid "" -#~ "Click to create a new project.\n" -#~ "If NO workspace is open, it will auto create a workspace before creating " -#~ "the project" -#~ msgstr "" -#~ "单击以创建新的项目。 \n" -#~ "如果没有工作区是打开的,它将自动在创建该项目之前创建一个工作区" +#: DatabaseExplorer/DbViewerPanel.cpp:554 +#, c-format +msgid "Remove database '%s'?" +msgstr "移除数据库 '%s'?" -#~ msgid "Open a workspace from a list of recently opened workspaces" -#~ msgstr "从最近打开的工作空间列表中打开工作空间" +#: DatabaseExplorer/DbViewerPanel.cpp:562 +msgid "Database dropped successfully" +msgstr "数据库成功删除" -#~ msgid "Open a file from the revcently opened files" -#~ msgstr "从最近打开的文件列表打开文件" +#: DatabaseExplorer/DbViewerPanel.cpp:623 +#, c-format +msgid "Remove table '%s'?" +msgstr "移除表格 '%s' ?" -#~ msgid "Click to open a web browser in CodeLite's forums" -#~ msgstr "打开浏览器浏览 CodeLite 论坛" +#: DatabaseExplorer/DbViewerPanel.cpp:631 +msgid "Table dropped successfully" +msgstr "构建结束,没有异常。" -#~ msgid "" -#~ "Click to open a web browser in CodeLite's wiki main documentation page" -#~ msgstr "打开浏览器浏览 CodeLite's wiki" +#: DatabaseExplorer/DbViewerPanel.cpp:642 +#, c-format +msgid "Remove view '%s'?" +msgstr "移除视图 '%s' ?" -#~ msgid "" -#~ "Open selected project settings. If there is no project selected, open the " -#~ "parent project of the seleced item in the tree" -#~ msgstr "打开选定的项目设置。如果未选择任何项目,在树中打开所选项目的父项目" +#: DatabaseExplorer/DbViewerPanel.cpp:650 +msgid "View dropped successfully" +msgstr "构建结束,没有异常。" -#~ msgid "Select the active project" -#~ msgstr "选择活动项目" +#: DatabaseExplorer/DbViewerPanel.cpp:710 +msgid "Import database from SQL file ..." +msgstr "从 SQL 文件中导入数据库……" -#~ msgid "Select the project template from the list below" -#~ msgstr "请从下面的列表中选择项目模板" +#: DatabaseExplorer/DbViewerPanel.cpp:728 +msgid "Dump data into file ..." +msgstr "导入文件..." -#~ msgid "Set the project path and name" -#~ msgstr "设置项目的路径和名称" +#: DatabaseExplorer/DbViewerPanel.cpp:736 +msgid "Data was saved to " +msgstr "数据已被保存到" -#~ msgid "" -#~ "Set the project name. A project name can contains A-Z, 0-9 and _ " -#~ "characters only" -#~ msgstr "设置项目名称。项目名称可以包含 A-Z,0-9 和 _ 个字符" +#: DatabaseExplorer/DbViewerPanel.cpp:746 +msgid "Export database..." +msgstr "导出图片" -#~ msgid "Select the location of the project. The location must exist." -#~ msgstr "选择该项目的位置。必须存在该路径。" +#: DatabaseExplorer/DbViewerPanel.cpp:794 +#, c-format +msgid "The database has been exported to '%s'." +msgstr "该数据库已被导出到 “%s”。" -#~ msgid "" -#~ "When checked, codelite will place the project under a separate directory. " -#~ "The full path of the project file is displayed below" -#~ msgstr "" -#~ "选中时,codelite 将把项目放置在一个单独的目录下。项目文件的完整路径显示在" -#~ "下面。" +#: DatabaseExplorer/DbViewerPanel.cpp:795 +msgid "wxDbExplorer" +msgstr "wxDbExplorer" -#~ msgid "Select the project toolchain" -#~ msgstr "选择项目工具链" +#: DatabaseExplorer/DbViewerPanel.cpp:800 +msgid "Sorry, requested feature isn't implemented yet. " +msgstr "抱歉,请求的特性没有执行。" -#~ msgid "Debugger:" -#~ msgstr "调试器:" +#: DatabaseExplorer/DbViewerPanel.cpp:800 +msgid "Sorry" +msgstr "抱歉" -#~ msgid "Enable Clang" -#~ msgstr "启用 clang" +#: DatabaseExplorer/DbViewerPanel.cpp:803 +#: DatabaseExplorer/DbViewerPanel.cpp:852 +#: DatabaseExplorer/SqlCommandPanel.cpp:280 +#: DatabaseExplorer/ErdCommitWizard.cpp:350 +#: DatabaseExplorer/ErdCommitWizard.cpp:462 +#: DatabaseExplorer/DbSettingDialog.cpp:83 +#: DatabaseExplorer/DbSettingDialog.cpp:110 +#: DatabaseExplorer/DbSettingDialog.cpp:178 +#, c-format +msgid "Error (%d): %s" +msgstr "错误 (%d): %s" -#~ msgid "Enable Clang code completion" -#~ msgstr "启用 clang 代码补全" +#: DatabaseExplorer/DbViewerPanel.cpp:807 +#: DatabaseExplorer/DbViewerPanel.cpp:863 +#: DatabaseExplorer/SqlCommandPanel.cpp:286 +#: DatabaseExplorer/ErdCommitWizard.cpp:473 +#: DatabaseExplorer/DbSettingDialog.cpp:87 +#: DatabaseExplorer/DbSettingDialog.cpp:114 +#: DatabaseExplorer/DbSettingDialog.cpp:182 +msgid "Unknown error." +msgstr "未知错误。" -#~ msgid "Inline Errors" -#~ msgstr "内联错误" +#: DatabaseExplorer/DbViewerPanel.cpp:841 +#: DatabaseExplorer/ErdCommitWizard.cpp:451 +msgid "Successful!" +msgstr "操作成功!" -#~ msgid "" -#~ "Display Clang errors as text annotations inside the editor (i.e. as an " -#~ "inline messages)" -#~ msgstr "将 Clang 错误作为文本注释显示在编辑器中 (即作为内联消息)" +#: DatabaseExplorer/DbViewerPanel.cpp:854 +#: DatabaseExplorer/ErdCommitWizard.cpp:464 +msgid "Fail!" +msgstr "失败!" -#~ msgid "Cache policy:" -#~ msgstr "缓存规则:" +#: DatabaseExplorer/GUI.h:79 DatabaseExplorer/imageexportdialog.cpp:49 +#: DatabaseExplorer/imageexportdialog.cpp:59 +msgid "Export image" +msgstr "导出图片" -#~ msgid "Clear Clang Cache" -#~ msgstr "清除 Clang 缓存" +#: DatabaseExplorer/GUI.h:152 +msgid "Select dbAdapter" +msgstr "选择调试器:" -#~ msgid "Go Home" -#~ msgstr "返回首页" +#: DatabaseExplorer/GUI.h:257 +msgid "Connection settings" +msgstr "连接设置" -#~ msgid "Bookmark" -#~ msgstr "书签" +#: DatabaseExplorer/GUI.h:315 +msgid "Create foreign key" +msgstr "为表格创建外部约束" -#~ msgid "Bookmark Selected Folder" -#~ msgstr "书签标记选定的文件夹" +#: DatabaseExplorer/GUI.h:333 +msgid "Database log" +msgstr "无打开的数据库" -#~ msgid "GoTo" -#~ msgstr "转到" +#: DatabaseExplorer/GUI.h:354 +msgid "View settings" +msgstr "Cscope 设置" -#~ msgid "Goto Folder" -#~ msgstr "转到文件夹" +#: DatabaseExplorer/GUI.h:399 +msgid "Class generator dialog" +msgstr "类" -#~ msgid "Goto Folder:" -#~ msgstr "转到文件夹:" +#: DatabaseExplorer/GUI.h:416 +msgid "SQL Preview" +msgstr "预览:" -#~ msgid "Type the folder path" -#~ msgstr "输入文件夹路径" +#: DatabaseExplorer/GUI.h:495 +msgid "Table settings" +msgstr "设置..." -#~ msgid "Run MemCheck" -#~ msgstr "运行 MemCheck" +#: DatabaseExplorer/LogDialog.cpp:32 +msgid " --------------- Log starts at: " +msgstr " --------------- 日志开始于:" -#~ msgid "Stop Check" -#~ msgstr "停止检查" +#: DatabaseExplorer/databaseexplorer.cpp:94 +#: DatabaseExplorer/databaseexplorer.cpp:139 +msgid "DatabaseExplorer for CodeLite" +msgstr "DatabaseExplorer for CodeLite" -#~ msgid "Load MemCheck log from file." -#~ msgstr "从文件中加载 MemCheck 日志。" +#: DatabaseExplorer/databaseexplorer.cpp:114 +#: DatabaseExplorer/databaseexplorer.cpp:123 +#: DatabaseExplorer/databaseexplorer.cpp:228 +msgid "DbExplorer" +msgstr "DbExplorer" -#~ msgid "Launching MemCheck...\n" -#~ msgstr "正在启动内存检测...\n" +#: DatabaseExplorer/databaseexplorer.cpp:202 +msgid "Database Explorer" +msgstr "资源管理器" -#~ msgid "Working directory is set to: " -#~ msgstr "工作目录设置为:" +#: DatabaseExplorer/databaseexplorer.cpp:235 +msgid "" +"Cross-platform database plugin designed for managing data, ERD and code " +"generation.\n" +"\n" +msgstr "" +"用于管理数据、ERD以及代码生成的跨平台数据库插件。\n" +"\n" -#~ msgid "" -#~ "\n" -#~ "-- MemCheck process completed\n" -#~ msgstr "" -#~ "\n" -#~ "-- 内存检测进程已完成\n" +#: DatabaseExplorer/databaseexplorer.cpp:242 +msgid "2011 - 2012 (C) Tomas Bata University, Zlin, Czech Republic" +msgstr "2011 - 2012 (C) Tomas Bata University, Zlin, Czech Republic" -#~ msgid "Run check" -#~ msgstr "运行检查" +#: DatabaseExplorer/SqlCommandPanel.cpp:119 +msgid "Executing sql..." +msgstr "正在执行 SQL..." -#~ msgid "Stop Process" -#~ msgstr "停止进程" +#: DatabaseExplorer/SqlCommandPanel.cpp:156 +msgid "Unknown SQL error." +msgstr "未知 SQL 错误。" -#~ msgid "Expand all" -#~ msgstr "全部展开" +#: DatabaseExplorer/SqlCommandPanel.cpp:272 +#, c-format +msgid "Result: %i rows" +msgstr "结果在: %i 行" -#~ msgid "Jump to next error" -#~ msgstr "跳转到下一个错误" +#: DatabaseExplorer/SqlCommandPanel.cpp:293 +msgid "Cant connect!" +msgstr "无法连接!" -#~ msgid "Jump to previous error" -#~ msgstr "跳转到上一个错误" +#: DatabaseExplorer/SqlCommandPanel.cpp:315 +msgid "Chose a file" +msgstr "选择一个文件" -#~ msgid "Open plain output in editor window." -#~ msgstr "在空的编辑器中打开构建输出" +#: DatabaseExplorer/SqlCommandPanel.cpp:332 +msgid "Insert SELECT SQL template" +msgstr "插入 SQL SELECT 模板" -#~ msgid "Errors" -#~ msgstr "错误" +#: DatabaseExplorer/SqlCommandPanel.cpp:332 +msgid "Insert SELECT SQL statement template into editor." +msgstr "插入 SQL SELECT 语句模板到编辑器。" -#~ msgid "Current" -#~ msgstr "当前" +#: DatabaseExplorer/SqlCommandPanel.cpp:333 +msgid "Insert INSERT SQL template" +msgstr "插入 INSERT SQL 模板" -#~ msgid "Label" -#~ msgstr "标签" +#: DatabaseExplorer/SqlCommandPanel.cpp:333 +msgid "Insert INSERT SQL statement template into editor." +msgstr "插入 INSERT SQL 语句模板到编辑器。" -#~ msgid "Object" -#~ msgstr "对象" +#: DatabaseExplorer/SqlCommandPanel.cpp:334 +msgid "Insert UPDATE SQL template" +msgstr "插入 UPDATE SQL 模板" -#~ msgid "First result page." -#~ msgstr "第一次的结果页面。" +#: DatabaseExplorer/SqlCommandPanel.cpp:334 +msgid "Insert UPDATE SQL statement template into editor." +msgstr "插入 UPDATE SQL 语句模板到编辑器。" -#~ msgid "of" -#~ msgstr "of" +#: DatabaseExplorer/SqlCommandPanel.cpp:335 +msgid "Insert DELETE SQL template" +msgstr "插入 DELETE SQL 模板" -#~ msgid "0" -#~ msgstr "0" +#: DatabaseExplorer/SqlCommandPanel.cpp:335 +msgid "Insert DELETE SQL statement template into editor." +msgstr "插入 DELETE SQL 语句模板到编辑器。" -#~ msgid ".supp" -#~ msgstr ".supp" +#: DatabaseExplorer/ErdCommitWizard.cpp:75 +msgid "Wizard for creating db structure\n" +msgstr "数据库结构创建向导\n" -#~ msgid ".supp:" -#~ msgstr ".supp:" +#: DatabaseExplorer/ErdCommitWizard.cpp:76 +msgid "" +"on ERD diagram base.\n" +"\n" +msgstr "" +"位于 ERD 图表底部。\n" +"\n" -#~ msgid "Choose suppression file to use." -#~ msgstr "选择要使用的抑制文件。" +#: DatabaseExplorer/ErdCommitWizard.cpp:77 +msgid "All tables which really exist in\n" +msgstr "真的存在于所有表中\n" -#~ msgid "Clear filter" -#~ msgstr "清除过滤器" +#: DatabaseExplorer/ErdCommitWizard.cpp:78 +msgid "the database, will be deleted during\n" +msgstr "数据库将被删除时\n" -#~ msgid "Invert" -#~ msgstr "反转" +#: DatabaseExplorer/ErdCommitWizard.cpp:79 +msgid "this process, but you can do a backup\n" +msgstr "在此过程中,你可以做一个备份\n" -#~ msgid "RegExp" -#~ msgstr "正则表达式" +#: DatabaseExplorer/ErdCommitWizard.cpp:80 +msgid "in the second step." +msgstr "编辑所选项" -#~ msgid "Total: 0 Filtered: 0 Selected: 0" -#~ msgstr "总计:0 已过滤:0 已选择:0" +#: DatabaseExplorer/ErdCommitWizard.cpp:99 +msgid "Select target database:" +msgstr "请选择项目路径:" -#~ msgid "Suppress all" -#~ msgstr "抑制全部" +#: DatabaseExplorer/ErdCommitWizard.cpp:160 +msgid "The first time you have to select a target database!" +msgstr "首先你需要选择一个目标数据库!" -#~ msgid "Suppress selected" -#~ msgstr "抑制所选" +#: DatabaseExplorer/ErdCommitWizard.cpp:174 +msgid "Backup data file" +msgstr "备份数据文件" -#~ msgid "Engine:" -#~ msgstr "引擎:" +#: DatabaseExplorer/ErdCommitWizard.cpp:175 +msgid "data.sql" +msgstr "data.sql" -#~ msgid "At this time (1Q 2014) only valgrind supported - development state." -#~ msgstr "此时 (1Q 2014年) 只有 valgrind 在支持-开发状态。" +#: DatabaseExplorer/ErdCommitWizard.cpp:178 +msgid "Backup database structure" +msgstr "备份数据库结构" -#~ msgid "Errors on page:" -#~ msgstr "页面上的错误:" +#: DatabaseExplorer/ErdCommitWizard.cpp:180 +msgid "Backup structure file" +msgstr "备份结构文件" -#~ msgid "Show locations only from my workspace." -#~ msgstr "只从我的工作区中显示位置。" +#: DatabaseExplorer/ErdCommitWizard.cpp:181 +msgid "structure.sql" +msgstr "结构" -#~ msgid "Remove duplicate records." -#~ msgstr "删除重复的记录。" +#: DatabaseExplorer/ErdCommitWizard.cpp:185 +msgid "Backup!" +msgstr "备份!" -#~ msgid "Remove suppressed errors." -#~ msgstr "删除禁止显示的错误。" +#: DatabaseExplorer/ErdCommitWizard.cpp:199 +msgid "" +"Backing up database data before changing the structure is really good idea. " +"Do you want to continue without doing so?" +msgstr "" +"在改变数据库结构前备份数据库数据是个不错的主意。您确定什么也不做就继续?" -#~ msgid "Remove errors only if suppression rule was added without any change." -#~ msgstr "只有抑制规则未作任何更改,请删除错误。" +#: DatabaseExplorer/ErdCommitWizard.cpp:199 +msgid "Backup" +msgstr "备份" -#~ msgid "Valgrind (memcheck)" -#~ msgstr "Valgrind (内存检测)" +#: DatabaseExplorer/ErdCommitWizard.cpp:222 +msgid "Data saved! " +msgstr "数据已保存!" -#~ msgid "Command Line" -#~ msgstr "命令行" +#: DatabaseExplorer/ErdCommitWizard.cpp:268 +msgid "Structure saved!" +msgstr "数据库结构已保存!" -#~ msgid "Valgrind executable:" -#~ msgstr "Valgrind 可执行文件:" +#: DatabaseExplorer/ErdCommitWizard.cpp:294 +msgid "Write log:" +msgstr "写入日志:" -#~ msgid "Select valgrind executable" -#~ msgstr "选择 valgrind 可执行文件" +#: DatabaseExplorer/ErdCommitWizard.cpp:301 +msgid "Write !!" +msgstr "写入!!" -#~ msgid "Command line options" -#~ msgstr "命令行选项" +#: DatabaseExplorer/ErdCommitWizard.cpp:302 +msgid "Show SQL" +msgstr "显示 SQL" -#~ msgid "Mandatory:" -#~ msgstr "强制性:" +#: DatabaseExplorer/ErdCommitWizard.cpp:341 +msgid "Data structure written successfully!" +msgstr "数据结构成功写入!" -#~ msgid "" -#~ "Please do not use these options again and do not change their values!\n" -#~ "Plugin won't work." -#~ msgstr "" -#~ "请不要再使用这些选项且不改变它们的值! \n" -#~ "插件不会工作。" +#: DatabaseExplorer/ErdCommitWizard.cpp:357 +msgid "Unknown error!" +msgstr "未知错误!" -#~ msgid "Regular:" -#~ msgstr "正常:" +#: DatabaseExplorer/ErdCommitWizard.cpp:363 +msgid "Would you like to continue without writing the database structure?" +msgstr "你是否确认不编辑数据库结构就继续?" -#~ msgid "Reload defaults" -#~ msgstr "重新加载默认值" +#: DatabaseExplorer/ErdCommitWizard.cpp:363 +msgid "Question" +msgstr "描述" -#~ msgid "Temporary output file" -#~ msgstr "临时输出文件" +#: DatabaseExplorer/ErdCommitWizard.cpp:379 +msgid "Writing structure ended.\n" +msgstr "编写结构结束。\n" -#~ msgid "Use log file in workspace private folder." -#~ msgstr "使用工作区私有文件夹中的日志文件。" +#: DatabaseExplorer/ErdCommitWizard.cpp:397 +msgid "File for data restore:" +msgstr "数据恢复文件:" -#~ msgid "" -#~ "It is used intenaly by this plugin. Valgrind outputs to this file and " -#~ "afterwards the plugin processes this file and shows result." -#~ msgstr "" -#~ "它是由这个插件的使用的 intenaly。Valgrind 输出到此文件,之后插件处理此文" -#~ "件,并显示结果。" +#: DatabaseExplorer/ErdCommitWizard.cpp:403 +msgid "Restore log:" +msgstr "恢复日志:" -#~ msgid "Supression" -#~ msgstr "抑制" +#: DatabaseExplorer/ErdCommitWizard.cpp:409 +msgid "Restore" +msgstr "恢复全部语法分析器为默认值" -#~ msgid "Suppression files" -#~ msgstr "抑制文件" +#: DatabaseExplorer/GUI.cpp:29 +msgid "Output file:" +msgstr "输出文件:" -#~ msgid "Use workspace specific supp file as default." -#~ msgstr "使用工作区特定supp文件为默认值。" +#: DatabaseExplorer/GUI.cpp:49 +msgid "Scale" +msgstr "比例" -#~ msgid "" -#~ "This file is located in workspace private folder.\n" -#~ "If you don't like this option, you have to add at leas one file to list " -#~ "below." -#~ msgstr "" -#~ "此文件位于工作区私有文件夹 \n" -#~ "如果你不喜欢这个选择,你至少要把一个文件添加到下面的列表中。" +#: DatabaseExplorer/GUI.cpp:53 +msgid "Current canvas scale" +msgstr "当前画布比例" -#~ msgid "Page" -#~ msgstr "页面" +#: DatabaseExplorer/GUI.cpp:62 +msgid "Custom scale" +msgstr "自定义构建" -#~ msgid "Upgrading theme: " -#~ msgstr "升级主题:" +#: DatabaseExplorer/GUI.cpp:75 +msgid "Export canvas background" +msgstr "导出画布背景" -#~ msgid "Upgrading user theme: " -#~ msgstr "升级用户主题:" +#: DatabaseExplorer/GUI.cpp:168 +msgid "Load..." +msgstr "载入……" -#~ msgid "" -#~ "Could not locate any MinGW compiler installed on your machine, would you " -#~ "like to install one now?" -#~ msgstr "找不到您计算机上的任何 MinGW 编译器,你现在想要安装吗?" +#: DatabaseExplorer/GUI.cpp:170 +msgid "Save..." +msgstr "保存为……" -#~ msgid "Select a compiler to download" -#~ msgstr "选择一个编译器下载" +#: DatabaseExplorer/GUI.cpp:172 +msgid "Execute SQL" +msgstr "执行 SQL" -#~ msgid "After install is completed, click the 'Scan' button" -#~ msgstr "安装完成后,单击扫描按钮" +#: DatabaseExplorer/GUI.cpp:176 +msgid "Insert template" +msgstr "插入模板" -#~ msgid "Copy to the right" -#~ msgstr "向右复制" +#: DatabaseExplorer/GUI.cpp:182 +msgid "SQL History" +msgstr "SQL 历史记录" -#~ msgid "Copy to the right and move to the next diff" -#~ msgstr "向右复制并转到下一个差异" +#: DatabaseExplorer/GUI.cpp:259 +msgid "Result:" +msgstr "结果:" -#~ msgid "Copy to the left" -#~ msgstr "向左复制" +#: DatabaseExplorer/GUI.cpp:331 DatabaseExplorer/GUI.cpp:464 +msgid "MySql" +msgstr "MySql" -#~ msgid "Copy to the left and move to the next diff" -#~ msgstr "向左复制并转到下一个差异" +#: DatabaseExplorer/GUI.cpp:335 +msgid "SQLite" +msgstr "SQLite" -#~ msgid "" -#~ "Hit any keyboard key. Don't use the modifier keys (e.g. 'Shift') here, " -#~ "use the checkboxes below" -#~ msgstr "" -#~ "点击任何键盘键。不要在这里使用修改键 (例如 ' 转移') ,使用下面的复选框" +#: DatabaseExplorer/GUI.cpp:341 DatabaseExplorer/GUI.cpp:532 +msgid "PostgreSQL" +msgstr "PostgreSQL" -#~ msgid "Clear the keyboard shortcut" -#~ msgstr "清除键盘快捷键" +#: DatabaseExplorer/GUI.cpp:437 +msgid "Sqlite" +msgstr "Sqlite" -#~ msgid "" -#~ "This wizard will help you setup CodeLite to fit your coding style. Click " -#~ "Next to continue" -#~ msgstr "此向导将帮助您设置 CodeLite 以适合您的编码风格。单击下一步继续" +#: DatabaseExplorer/GUI.cpp:450 +msgid "Database file:" +msgstr "数据库文件:" -#~ msgid "Welcome to the setup wizard" -#~ msgstr "欢迎使用设置向导" +#: DatabaseExplorer/GUI.cpp:476 +msgid "Connection name:" +msgstr "连接名称:" -#~ msgid "" -#~ "If your CodeLite is already configured the way you like it, click to skip " -#~ "the Wizard" -#~ msgstr "如果你 CodeLite 已经配置您喜欢的方式,请单击以跳过向导" +#: DatabaseExplorer/GUI.cpp:481 +msgid "Name for this connection" +msgstr "命名该连接" -#~ msgid "Not this time!" -#~ msgstr "现在不要" +#: DatabaseExplorer/GUI.cpp:489 DatabaseExplorer/GUI.cpp:556 +msgid "Server:" +msgstr "服务器:" -#~ msgid "" -#~ "By default CodeLite comes with many plugins. Here you can disable some if " -#~ "needed" -#~ msgstr "默认情况下,CodeLite 配备了很多插件。如果需要您在这里可以禁用一些" +#: DatabaseExplorer/GUI.cpp:490 DatabaseExplorer/GUI.cpp:495 +msgid "Host name / IP of the server hosting the MySQL server" +msgstr "托管在MySQL服务器中的服务器主机名称/IP地址" -#~ msgid "Plugins" -#~ msgstr "插件" +#: DatabaseExplorer/GUI.cpp:502 DatabaseExplorer/GUI.cpp:578 +msgid "User name:" +msgstr "用户名:" -#~ msgid "X" -#~ msgstr "X" +#: DatabaseExplorer/GUI.cpp:507 +msgid "Database user name" +msgstr "数据库用户名" -#~ msgid "Check all plugins" -#~ msgstr "选中所有的插件" +#: DatabaseExplorer/GUI.cpp:519 +msgid "Database password" +msgstr "数据库密码" -#~ msgid "uncheck all plugins" -#~ msgstr "取消选中所有的插件" +#: DatabaseExplorer/GUI.cpp:600 +msgid "Default database:" +msgstr "默认数据库:" -#~ msgid "C++ Plugins" -#~ msgstr "C + + 插件" +#: DatabaseExplorer/GUI.cpp:752 +msgid "Referencing table:" +msgstr "正在引用的表:" -#~ msgid "Toggle C++ plugins" -#~ msgstr "切换 C++ 插件" +#: DatabaseExplorer/GUI.cpp:763 DatabaseExplorer/GUI.cpp:820 +msgid "Column:" +msgstr "列:" -#~ msgid "" -#~ "Let CodeLite configure your installed compilers or help you install one" -#~ msgstr "让 CodeLite 配置您已安装的编译器或帮助您安装一个" +#: DatabaseExplorer/GUI.cpp:777 +msgid "N :1" +msgstr "N :1" + +#: DatabaseExplorer/GUI.cpp:778 +msgid "N : M" +msgstr "N : M" -#~ msgid "Setup compilers" -#~ msgstr "设置编译器" +#: DatabaseExplorer/GUI.cpp:779 +msgid "Relation" +msgstr "关系" -#~ msgid "Click to scan your compuer for installed compilers" -#~ msgstr "单击此处,扫描你的电脑上安装的编译器" +#: DatabaseExplorer/GUI.cpp:785 DatabaseExplorer/GUI.cpp:795 +#: DatabaseExplorer/GUI.cpp:1416 DatabaseExplorer/GUI.cpp:1426 +msgid "restrict" +msgstr "限制" + +#: DatabaseExplorer/GUI.cpp:786 DatabaseExplorer/GUI.cpp:796 +#: DatabaseExplorer/GUI.cpp:1417 DatabaseExplorer/GUI.cpp:1427 +msgid "cascade" +msgstr "层叠" + +#: DatabaseExplorer/GUI.cpp:787 DatabaseExplorer/GUI.cpp:797 +#: DatabaseExplorer/GUI.cpp:1418 DatabaseExplorer/GUI.cpp:1428 +msgid "set null" +msgstr "设为空" + +#: DatabaseExplorer/GUI.cpp:788 DatabaseExplorer/GUI.cpp:798 +#: DatabaseExplorer/GUI.cpp:1419 DatabaseExplorer/GUI.cpp:1429 +msgid "no action" +msgstr "无动作" -#~ msgid "Scan" -#~ msgstr "扫描" +#: DatabaseExplorer/GUI.cpp:789 +msgid "OnDelete" +msgstr "删除" -#~ msgid "Click to download a MinGW compiler" -#~ msgstr "单击此处,下载 MinGW 编译器" +#: DatabaseExplorer/GUI.cpp:799 +msgid "OnUpdate" +msgstr "更新" -#~ msgid "Compiler Name" -#~ msgstr "编译器名称" +#: DatabaseExplorer/GUI.cpp:809 +msgid "Referenced table:" +msgstr "已引用的表格:" -#~ msgid "Customize colours" -#~ msgstr "自定义颜色" +#: DatabaseExplorer/GUI.cpp:959 +msgid "View name:" +msgstr "显示名称:" -#~ msgid "Select the editor theme from the list below" -#~ msgstr "从下面的列表中选择编辑器主题" +#: DatabaseExplorer/GUI.cpp:1076 +msgid "Class postfix:" +msgstr "类后缀:" -#~ msgid "" -#~ "Select the theme from a list.\n" -#~ "If the selected theme does not exist for a given language, CodeLite will " -#~ "select the closest one available" -#~ msgstr "" -#~ "从列表中选择一个主题 \n" -#~ "如果所选语言无该主题,CodeLite 将选择最接近的一个" +#: DatabaseExplorer/GUI.cpp:1087 +msgid "Folder:" +msgstr "文件夹:" -#~ msgid "Should CodeLite use TABS or SPACES for indentation?" -#~ msgstr "CodeLite 应该使用制表符或空格缩进吗?" +#: DatabaseExplorer/GUI.cpp:1095 +msgid "Virtual folder:" +msgstr "虚拟文件夹:" -#~ msgid "Whitespace & Indentation" -#~ msgstr "空白 & 缩进" +#: DatabaseExplorer/GUI.cpp:1131 +msgid "Log:" +msgstr "日志:" -#~ msgid "Indent using SPACES" -#~ msgstr "使用空格缩进" +#: DatabaseExplorer/GUI.cpp:1292 +msgid "Table name:" +msgstr "表格名称:" -#~ msgid "Indent using TABS" -#~ msgstr "使用Tab缩进" +#: DatabaseExplorer/GUI.cpp:1314 +msgid "Columns:" +msgstr "列:" -#~ msgid "Whitespace Visibility:" -#~ msgstr "空白可见性" +#: DatabaseExplorer/GUI.cpp:1323 +msgid "Add column" +msgstr "添加列" -#~ msgid "" -#~ "You can always run this setup wizard from the menu:\n" -#~ "Help -> Run the Setup Wizard" -#~ msgstr "" -#~ "你可以始终从菜单运行此设置向导: \n" -#~ "帮助 -> 运行设置向导" +#: DatabaseExplorer/GUI.cpp:1323 +msgid "Add new column" +msgstr "添加新列" -#~ msgid "Build ended with errors. Click to view" -#~ msgstr "构建错误,已结束。单击此处可查看" +#: DatabaseExplorer/GUI.cpp:1325 +msgid "Remove column" +msgstr "移除列" -#~ msgid "Build ended with warnings. Click to view" -#~ msgstr "构建结束,但出现警告。单击此处可查看" +#: DatabaseExplorer/GUI.cpp:1325 +msgid "Remove selected column" +msgstr "移除已选择的列" -#~ msgid "" -#~ "Build is in progress\n" -#~ "Click to view the Build Log" -#~ msgstr "" -#~ "正在构建中\n" -#~ "单击此处查看生成的日志" +#: DatabaseExplorer/GUI.cpp:1329 +msgid "Move column up" +msgstr "列上移" -#~ msgid "Add new account" -#~ msgstr "添加新的帐户" +#: DatabaseExplorer/GUI.cpp:1329 +msgid "Move selected column up" +msgstr "选定列上移" -#~ msgid "Delete the selected accounts" -#~ msgstr "删除所选的帐户" +#: DatabaseExplorer/GUI.cpp:1331 +msgid "Move column down" +msgstr "列下移" -#~ msgid "Edit the selected account" -#~ msgstr "编辑所选的帐户" +#: DatabaseExplorer/GUI.cpp:1331 +msgid "Move selected column down" +msgstr "选定列下移" -#~ msgid "Default folder:" -#~ msgstr "默认文件夹:" +#: DatabaseExplorer/GUI.cpp:1338 +msgid "Column name" +msgstr "列名称" -#~ msgid "Set the home folder for this account" -#~ msgstr "设置此帐户的主文件夹" +#: DatabaseExplorer/GUI.cpp:1341 +msgid "Not null" +msgstr "不能为空" -#~ msgid "Type a command and hit ENTER" -#~ msgstr "键入命令并按 enter 键" +#: DatabaseExplorer/GUI.cpp:1342 +msgid "Autoincrement" +msgstr "自动递增" -#~ msgid "Redo " -#~ msgstr "重做" +#: DatabaseExplorer/GUI.cpp:1343 +msgid "Primary key" +msgstr "主关键约束" -#~ msgid "Undo " -#~ msgstr "撤销" +#: DatabaseExplorer/GUI.cpp:1350 +msgid "Foreign keys:" +msgstr "外部约束" -#~ msgid "Undo/Redo to a pre&viously labelled state" -#~ msgstr "撤消/重做到一个过去标记的状态(&V)" +#: DatabaseExplorer/GUI.cpp:1359 +msgid "Add foreign key" +msgstr "添加外键约束" -#~ msgid " Copy" -#~ msgstr "复制" +#: DatabaseExplorer/GUI.cpp:1359 +msgid "Add new foreign key" +msgstr "添加新的外键约束" -#~ msgid "Single" -#~ msgstr "单一" +#: DatabaseExplorer/GUI.cpp:1361 +msgid "Remove foreign key" +msgstr "移除外部约束" -#~ msgid "Single view" -#~ msgstr "单一视图" +#: DatabaseExplorer/GUI.cpp:1361 +msgid "Remove selected foreign key" +msgstr "移除已选择的外部约束" -#~ msgid "Caption" -#~ msgstr "标题" +#: DatabaseExplorer/GUI.cpp:1376 +msgid "Key name" +msgstr "Key 名称" -#~ msgid "Run qmake..." -#~ msgstr "运行 qmake..." +#: DatabaseExplorer/GUI.cpp:1388 +msgid "Local column:" +msgstr "本地列:" -#~ msgid "" -#~ "Could not locate pro file.\n" -#~ "Did you remember to run qmake? (right click on the project" -#~ msgstr "" -#~ "找不到 pro 文件。 \n" -#~ "你记得要运行 qmake 吗?(右键单击该项目" +#: DatabaseExplorer/GUI.cpp:1397 +msgid "Ref. table:" +msgstr "引用表:" -#~ msgid "Create new directory..." -#~ msgstr "创建新目录" +#: DatabaseExplorer/GUI.cpp:1406 +msgid "Ref. column:" +msgstr "参考栏:" -#~ msgid "Create new file..." -#~ msgstr "创建新的文件..." +#: DatabaseExplorer/GUI.cpp:1420 +msgid "On update" +msgstr "正在更新" -#~ msgid "Enter the new file name:" -#~ msgstr "请输入新的文件名:" +#: DatabaseExplorer/GUI.cpp:1430 +msgid "On delete" +msgstr "正在删除" -#~ msgid "Manage bookmarks..." -#~ msgstr "管理书签..." +#: DatabaseExplorer/imageexportdialog.cpp:49 +msgid "Image path cannot be empty." +msgstr "图片路径不能为空。" -#~ msgid "Disconnected. Click to connect" -#~ msgstr "已断开连接。单击此处连接" +#: DatabaseExplorer/imageexportdialog.cpp:59 +msgid "Canvas scale must be decimal value." +msgstr "画布比例必须为十进制值。" -#~ msgid "Connected. Click to disconnect" -#~ msgstr "已连接。单击此处断开连接" +#: DatabaseExplorer/imageexportdialog.cpp:79 +msgid "Export ERD to image..." +msgstr "导出 ERD 到图片…" -#~ msgid "" -#~ "\n" -#~ "(this may take a few seconds)" -#~ msgstr "" -#~ "\n" -#~ " (这可能需要几秒钟)" +#: DatabaseExplorer/ClassGenerateDialog.cpp:126 +msgid "Virtual name cannot be empty" +msgstr "虚拟名称不能为空" -#~ msgid "Connected!" -#~ msgstr "已连接!" +#: DatabaseExplorer/ClassGenerateDialog.cpp:146 +#: DatabaseExplorer/ClassGenerateDialog.cpp:153 +msgid "......... Generated successfully!\n" +msgstr "......... 成功生成文件!\n" -#~ msgid "Authenticating server..." -#~ msgstr "服务器身份验证..." +#: DatabaseExplorer/ClassGenerateDialog.cpp:147 +#: DatabaseExplorer/ClassGenerateDialog.cpp:154 +msgid "......... Error!!!\n" +msgstr "......... 出现错误!!!\n" -#~ msgid "Accepting server authentication server..." -#~ msgstr "接受服务器的身份验证..." +#: DatabaseExplorer/ClassGenerateDialog.cpp:193 +#, c-format +msgid "Table %s has no primary key defined!\n" +msgstr "表格 %s 主关键字未定义!\n" -#~ msgid "Server authenticated" -#~ msgstr "通过服务器的身份验证" +#: DatabaseExplorer/FrameCanvas.cpp:139 +msgid "New view" +msgstr "新的视图" -#~ msgid "Logging..." -#~ msgstr "正在登录..." +#: DatabaseExplorer/FrameCanvas.cpp:178 +msgid "Add new ERD table" +msgstr "添加新的 ERD 表格" -#~ msgid "Fetching directory list..." -#~ msgstr "正在获取目录列表..." +#: DatabaseExplorer/FrameCanvas.cpp:179 +msgid "Add new ERD view" +msgstr "添加新的 ERD 视图" -#~ msgid "Select a folder from the tree view and add it as a bookmark" -#~ msgstr "从树视图中选择一个文件夹并将其添加为书签" +#: DatabaseExplorer/FrameCanvas.cpp:182 +msgid "Copy diagram SQL to the clipboard" +msgstr "复制 SQL 图表到剪贴板" -#~ msgid "Open Terminal" -#~ msgstr "打开终端" +#: DatabaseExplorer/FrameCanvas.cpp:192 +msgid "Create foreign key for table" +msgstr "为表创建外部约束" -#~ msgid "Go to:" -#~ msgstr "转到:" +#: DatabaseExplorer/FrameCanvas.cpp:193 +msgid "Create view for table" +msgstr "为表创建视图" -#~ msgid "Type a path and hit ENTER" -#~ msgstr "键入一个路径,然后按 enter 键" +#: DatabaseExplorer/FrameCanvas.cpp:195 +msgid "Copy table SQL to the clipboard" +msgstr "复制 SQL 表格到剪贴板" -#~ msgid "" -#~ "Use $ as placeholder for the selection and @ to set the caret position.\n" -#~ "e.g. for($ = 0; $ < @; $++)\n" -#~ "NOTE:\n" -#~ "If your snippet contains @ or $, you can escape the placeholders with a " -#~ "backslash: \\@ OR \\$ " -#~ msgstr "" -#~ "使用 $ 作为选择的占位符并使用 @ 来设置插入符号的位置。\n" -#~ "例如:for($ = 0; $ < @; $++)\n" -#~ "注意:\n" -#~ "如果您的片段包含 @ 或 $,您可以通过反斜杠来避免使用占位符: \\@ OR \\$" +#: DatabaseExplorer/FrameCanvas.cpp:214 +msgid "newcol" +msgstr "newcol" -#~ msgid "Could not find aff file!" -#~ msgstr "找不到 aff 文件 !" +#: DatabaseExplorer/FrameCanvas.cpp:220 +msgid "Add drop table statement?" +msgstr "添加 删除表 语句吗?" -#~ msgid "Could not find dictionary file!" -#~ msgstr "找不到字典文件 !" +#: DatabaseExplorer/FrameCanvas.cpp:220 DatabaseExplorer/FrameCanvas.cpp:227 +#: DatabaseExplorer/FrameCanvas.cpp:301 +msgid "SQL export" +msgstr "导出 SQL" -#~ msgid "Could not initialize spelling engine!" -#~ msgstr "不能初始化拼写引擎 !" +#: DatabaseExplorer/FrameCanvas.cpp:227 DatabaseExplorer/FrameCanvas.cpp:301 +msgid "SQL command has been copied to the clipboard." +msgstr "SQL 命令已经复制到剪贴板。" -#~ msgid "No spelling errors found!" -#~ msgstr "未发现拼写错误 !" +#: DatabaseExplorer/DbSettingDialog.cpp:91 +msgid "MySQL connection is not supported." +msgstr "MySQL 连接是不支持的。" -#~ msgid "en_CA" -#~ msgstr "en_CA" +#: DatabaseExplorer/DbSettingDialog.cpp:118 +msgid "SQLite connection is not supported." +msgstr "SQLite 连接是不支持的。" -#~ msgid "Check spelling..." -#~ msgstr "拼写检查" +#: DatabaseExplorer/DbSettingDialog.cpp:186 +msgid "PostgreSQL connection is not supported." +msgstr "PostgreSQL 连接是不支持的。" -#~ msgid "Run spell-checker" -#~ msgstr "运行 spell-checker" +#: DatabaseExplorer/AdapterSelectDlg.cpp:42 +msgid "MySQL ERD" +msgstr "MySQL ERD" -#~ msgid "Check continuous" -#~ msgstr "连续的检查" +#: DatabaseExplorer/AdapterSelectDlg.cpp:45 +msgid "MySQL ERD is not supported." +msgstr "MySQL ERD 是不支持的。" -#~ msgid "Run continuous check" -#~ msgstr "运行连续的检查" +#: DatabaseExplorer/AdapterSelectDlg.cpp:50 +msgid "SQLite ERD" +msgstr "SQLite ERD" -#~ msgid "Start continuous check" -#~ msgstr "开始连续检查" +#: DatabaseExplorer/AdapterSelectDlg.cpp:53 +msgid "SQLite ERD is not supported." +msgstr "SQLite ERD 是不支持的。" -#~ msgid "Check..." -#~ msgstr "检查..." +#: DatabaseExplorer/AdapterSelectDlg.cpp:58 +msgid "PostgreSQL ERD" +msgstr "PostgreSQL ERD" -#~ msgid "No suggestions" -#~ msgstr "无建议" +#: DatabaseExplorer/AdapterSelectDlg.cpp:61 +msgid "PostgreSQL ERD is not supported." +msgstr "PostgreSQL ERD 是不支持的。" -#~ msgid "Spell Checker" -#~ msgstr "拼写检查器" +#: cppchecker/cppcheckreportbasepage.cpp:80 +msgid "Clear the CppCheck report view" +msgstr "清除 CppCheck 报告视图" -#~ msgid "Dictionary path:" -#~ msgstr "词典的路径:" +#: cppchecker/cppcheckreportbasepage.cpp:86 +msgid "Stop the curreny analysis" +msgstr "停止 curreny 分析" + +#: cppchecker/cppcheckreportbasepage.cpp:95 +msgid "Move to previous error" +msgstr "跳转到上一个错误" + +#: cppchecker/cppcheckreportbasepage.cpp:100 +msgid "Move to next error" +msgstr "跳转到下一个错误" -#~ msgid "Select the location of the installed dictionaries" -#~ msgstr "选择安装的词典的位置" +#: cppchecker/cppchecksettingsdlgbase.cpp:35 +msgid "Checks" +msgstr "校验" -#~ msgid "Find dictionaries on the web.." -#~ msgstr "在 web 上查找字典。" +#: cppchecker/cppchecksettingsdlgbase.cpp:40 +msgid "Run the following extra checks:" +msgstr "运行以下附加检查:" -#~ msgid "Dictionary base name:" -#~ msgstr "字典的基本名称:" +#: cppchecker/cppchecksettingsdlgbase.cpp:50 +msgid "Performance" +msgstr "性能" -#~ msgid "Check The Following:" -#~ msgstr "检查以下项目:" +#: cppchecker/cppchecksettingsdlgbase.cpp:51 +msgid "Portability" +msgstr "可移植性" -#~ msgid "Strings" -#~ msgstr "字符串" +#: cppchecker/cppchecksettingsdlgbase.cpp:52 +msgid "Unused functions" +msgstr "未使用的函数" -#~ msgid "CPP comments" -#~ msgstr "CPP 注释" +#: cppchecker/cppchecksettingsdlgbase.cpp:53 +#: cppchecker/cppchecksettingsdlg.cpp:367 +msgid "Missing includes" +msgstr "缺失 includes" -#~ msgid "C comments" -#~ msgstr "C 注释" +#: cppchecker/cppchecksettingsdlgbase.cpp:54 +msgid "Output informative messages" +msgstr "输出有用的消息" -#~ msgid "doxygen */" -#~ msgstr "doxygen */" +#: cppchecker/cppchecksettingsdlgbase.cpp:55 +msgid "Posix standards" +msgstr "Posix 标准" -#~ msgid "doxygen ///" -#~ msgstr "doxygen ///" +#: cppchecker/cppchecksettingsdlgbase.cpp:56 +msgid "C99 standards" +msgstr "C99 标准" -#~ msgid "Clear ignore list" -#~ msgstr "清除忽略列表" +#: cppchecker/cppchecksettingsdlgbase.cpp:57 +msgid "C++11 standards" +msgstr "C++11 标准" -#~ msgid "Clear the ignore list" -#~ msgstr "清除忽略列表" +#: cppchecker/cppchecksettingsdlgbase.cpp:66 +#: cppchecker/cppchecksettingsdlgbase.cpp:182 +msgid "Tick All" +msgstr "选择全部" -#~ msgid "Misspelling:" -#~ msgstr "拼写错误:" +#: cppchecker/cppchecksettingsdlgbase.cpp:67 +#: cppchecker/cppchecksettingsdlgbase.cpp:183 +msgid "Tick all the boxes" +msgstr "勾选所有方框" -#~ msgid "Suggestions:" -#~ msgstr "建议:" +#: cppchecker/cppchecksettingsdlgbase.cpp:71 +#: cppchecker/cppchecksettingsdlgbase.cpp:187 +msgid "Untick All" +msgstr "全部取消" -#~ msgid "" -#~ "The SSH client field should contain the command to be\n" -#~ "used by the SVN command line client for establishing a secured channel.\n" -#~ "\n" -#~ "For example, on Windows it should contain something like:\n" -#~ "/path/to/plink.exe -l -pw \n" -#~ "\n" -#~ "If you don't need SSH channel, leave this field empty" -#~ msgstr "" -#~ "SSH 客户端字段应包含命令被\n" -#~ "SVN 命令行客户端用来建立一个加密管道.\n" -#~ "\n" -#~ "例子,在 Windows 上,它应该类似:\n" -#~ "/path/to/plink.exe-l -pw \n" -#~ "\n" -#~ "如果你不需要 SSH 通道,请将此字段留空" - -#~ msgid "Do not change EOL, apply patch as it is" -#~ msgstr "不更改 EOL,依照原样应用补丁" - -#~ msgid "Change to Windows style (CRLF)" -#~ msgstr "更改为 Windows 风格(CRLF)" - -#~ msgid "Change to UNIX style (LF)" -#~ msgstr "更改为 UNIX 风格(LF)" +#: cppchecker/cppchecksettingsdlgbase.cpp:72 +#: cppchecker/cppchecksettingsdlgbase.cpp:188 +msgid "Untick all the boxes" +msgstr "取消所有的勾选" -#~ msgid "Tab Label Background Colour" -#~ msgstr "选项卡标签背景颜色" +#: cppchecker/cppchecksettingsdlgbase.cpp:80 +msgid "Force checking unlimited numbers of configurations" +msgstr "强制检查文件拥有“太多”的配置" -#~ msgid "Tab Label Text Colour" -#~ msgstr "选项卡标签文本颜色" +#: cppchecker/cppchecksettingsdlgbase.cpp:82 +msgid "" +"By default the maximum number of configurations checked per file is 12. If " +"that might not be enough, tick this box." +msgstr "默认每个文件配置检查数量是 12 个。如果您觉得数量不够,请勾选方框。" -#~ msgid "Project contains 0 tests. Nothing to be done" -#~ msgstr "项目包含 0 的测试。什么都不做" +#: cppchecker/cppchecksettingsdlgbase.cpp:90 +msgid "Multiple jobs (-j)" +msgstr "多个任务(-j)" -#~ msgid "" -#~ "It seems that NodeJS is not installed on your machine\n" -#~ "(Can't find file '/usr/bin/nodejs')\n" -#~ "I have temporarily disabled Code Completion for JavaScript\n" -#~ "Please install NodeJS and try again" -#~ msgstr "" -#~ "看来 NodeJS 没有安装在您的计算机中\n" -#~ " (找不到文件 '/ usr/bin/nodejs') \n" -#~ "已暂时禁用 JavaScript 代码完成\n" -#~ "请安装 NodeJS,再试一次" +#: cppchecker/cppchecksettingsdlgbase.cpp:92 +msgid "" +"Tell Cppcheck to use 'n' CPUs. NB this is incompatible with " +"'unusedFunction', and may give false-positive warnings for e.g. 'Unmatched " +"suppression' ." +msgstr "" +"告诉 Cppcheck 使用“n”个 CPU 。注,这与“unusedFunction”是不兼容的,并且可能给" +"出误报的警告,例如:“Unmatched suppression”。" -#~ msgid "JavaScript" -#~ msgstr "JavaScript" +#: cppchecker/cppchecksettingsdlgbase.cpp:97 +msgid "Number of jobs to try to run in parallel" +msgstr "尝试要并行运行的任务数量" -#~ msgid "Enable Code Completion" -#~ msgstr "启用代码完成" +#: cppchecker/cppchecksettingsdlgbase.cpp:103 +msgid "Check configuration (turns off other checks)" +msgstr "检查配置(关闭其它检查)" -#~ msgid "Enable JavaScript code completion" -#~ msgstr "启用 JavaScript 代码完成" +#: cppchecker/cppchecksettingsdlgbase.cpp:105 +msgid "" +"Pass --check-config to Cppchecker. This is useful if you get a 'Cppcheck " +"cannot find all the include files' warning: it lets you see which #include " +"aren't being located. However it turns off other checks." +msgstr "" +"传送 --check-config 给 Cppchecker。在你得到“Cppcheck cannot find all the " +"include files”警告时这是很有用的:它可以让你看到哪一个 #include 没有被找到。" +"然而它将关闭其他检查。" -#~ msgid "" -#~ "The JavaScript code completion uses the \"tern\" engine.\n" -#~ "Check this option to start tern in verbose mode" -#~ msgstr "" -#~ "JavaScript 代码完成使用\"tern\"引擎。 \n" -#~ "设置此选项在详细模式下启动 tern" +#: cppchecker/cppchecksettingsdlgbase.cpp:110 +msgid "Exclude" +msgstr "排除" -#~ msgid "Enable Code Completion for the selected libraries" -#~ msgstr "为选定的库启用代码完成" +#: cppchecker/cppchecksettingsdlgbase.cpp:115 +msgid "Files to exclude from CppCheck test:" +msgstr "从 CppCheck 测试中排除文件:" -#~ msgid "Ecma5" -#~ msgstr "Ecma5" +#: cppchecker/cppchecksettingsdlgbase.cpp:133 +#: cppchecker/cppchecksettingsdlgbase.cpp:277 +#: cppchecker/cppchecksettingsdlgbase.cpp:310 +msgid "Add file(s) to the excluded files list" +msgstr "添加文件到排除文件列表" -#~ msgid "Ecma6" -#~ msgstr "Ecma6" +#: cppchecker/cppchecksettingsdlgbase.cpp:138 +#: cppchecker/cppchecksettingsdlgbase.cpp:282 +#: cppchecker/cppchecksettingsdlgbase.cpp:315 +msgid "Remove the selected file from the excluded file list" +msgstr "从排除文件列表中移除选择的文件" -#~ msgid "jQuery" -#~ msgstr "jQuery" +#: cppchecker/cppchecksettingsdlgbase.cpp:143 +#: cppchecker/cppchecksettingsdlgbase.cpp:287 +#: cppchecker/cppchecksettingsdlgbase.cpp:320 +msgid "Clear the excluded files list" +msgstr "清除排除文件列表" -#~ msgid "Support Code Completion for jQuery framework" -#~ msgstr "为 JQuery 框架支持代码完成" +#: cppchecker/cppchecksettingsdlgbase.cpp:153 +msgid "Types of warnings NOT to display:" +msgstr "不显示类型的警告:" -#~ msgid "Underscore" -#~ msgstr "下划线" +#: cppchecker/cppchecksettingsdlgbase.cpp:171 +msgid "Add an extra check to suppress. You'll need to know its id..." +msgstr "添加一个额外的检查抑制。你需要知道它的ID..." -#~ msgid "Enable code completion for the Underscore library" -#~ msgstr "启用下划线库的代码完成" +#: cppchecker/cppchecksettingsdlgbase.cpp:176 +msgid "Remove the selected suppression from the list" +msgstr "从列表中移除已选择的限制" -#~ msgid "Browser" -#~ msgstr "浏览器" +#: cppchecker/cppchecksettingsdlgbase.cpp:192 +#: cppchecker/cppchecksettingsdlgbase.cpp:238 +msgid "Remember these settings" +msgstr "记住这些设置" -#~ msgid "Enable code completion for browser mode (DOM, document, window etc)" -#~ msgstr "启用代码完成功能的浏览器模式 (DOM、 文档、 窗口等)" +#: cppchecker/cppchecksettingsdlgbase.cpp:194 +msgid "" +"If ticked, these settings will be saved and be applied in the future. " +"Otherwise the warnings will be back when you restart CodeLite, which may be " +"what you should want." +msgstr "" +"如果勾选此项,这些设置将被保存并在将来使用。否则当您重启 CodeLite 时该警告将" +"会重新出现,哪一个可能是你想要的。" -#~ msgid "Chai" -#~ msgstr "Chai" +#: cppchecker/cppchecksettingsdlgbase.cpp:199 +msgid "Include Dirs" +msgstr "Include 目录" -#~ msgid "Enable code completion for the chain assertion library" -#~ msgstr "为链式断言库启用代码完成" +#: cppchecker/cppchecksettingsdlgbase.cpp:204 +msgid "" +"If the 'Missing Includes' check is enabled, add here any extra\n" +"directories where Cppcheck should search for #includes" +msgstr "" +"如果“Missing Includes”检查被启用,您可以在这里添加任意额外的\n" +"Cppcheck 能够搜索到 #includes 的目录" -#~ msgid "Angular" -#~ msgstr "Angular" +#: cppchecker/cppchecksettingsdlgbase.cpp:222 +msgid "Add the full path to a directory to search for #includes" +msgstr "为 #includes 添加完整的路径来进行搜索" -#~ msgid "" -#~ "Adds the angular object to the top-level environment, and tries to wire " -#~ "up some of the bizarre dependency management scheme from this library, so " -#~ "that dependency injections get the right types" -#~ msgstr "" -#~ "将angular对象添加到顶层环境中,并试图从这个库连接一些奇特的依赖管理方案," -#~ "这样使依赖注入得到正确的类型" +#: cppchecker/cppchecksettingsdlgbase.cpp:232 +msgid "Suppress warnings about 'system' includes" +msgstr "禁止有关“system” includes 的警告" -#~ msgid "" -#~ "When enabled, this plugin will gather (short) strings in your code, and " -#~ "completing when inside a string will try to complete to previously seen " -#~ "strings" -#~ msgstr "" -#~ "当启用时,这个插件从您的代码收集 (短) 字符串,并在再次输入时自动完成" +#: cppchecker/cppchecksettingsdlgbase.cpp:234 +msgid "" +"If ticked, the 'missingIncludeSystem' suppression is passed to Cppcheck. " +"This stops it complaining about a missing #include , while still " +"detecting a missing #include \"bar\"" +msgstr "" +"如果勾选此项,“missingIncludeSystem”抑制将被传递给 Cppcheck。这将停止其警告缺" +"少的 #include ,同时还将检测缺失的 #include \"bar\"" -#~ msgid "Node.js" -#~ msgstr "Node.js" +#: cppchecker/cppchecksettingsdlgbase.cpp:240 +msgid "" +"If ticked, these settings will be saved and be applied in the future. " +"Otherwise the warnings will be back when you restart CodeLite, which may be " +"what you want." +msgstr "" +"如果勾选此项,这些设置将被保存并在将来使用。否则当您重启 CodeLite 时该警告将" +"会重新出现,这可能是您想要的。" -#~ msgid "" -#~ "Provides variables that are part of the node environment, such as process " -#~ "and require, and hooks up require to try and find the dependencies that " -#~ "are being loaded, and assign them the correct types. It also includes " -#~ "types for the built-in modules that node.js provides (\"fs\", \"http\", " -#~ "etc)" -#~ msgstr "" -#~ "提供node环境中的变量,如 process 和 require,并挂钩 require 到已载入的依赖" -#~ "库,分配正确的类型。它还包括内置模块,如 node.js 提供的 (\"fs\"、\"http" -#~ "\",等等)" +#: cppchecker/cppchecksettingsdlgbase.cpp:245 +msgid "Command-line Definitions" +msgstr "命令行定义" -#~ msgid "WebTools" -#~ msgstr "WebTools" +#: cppchecker/cppchecksettingsdlgbase.cpp:250 +msgid "" +"Here you can pass 'configurations' to cppcheck\n" +"e.g. \"Only test code branches where FOO is defined\" or\n" +"\"Don't test code branches where the value of FOO is 2\"" +msgstr "" +"在这里,您可以传送“configurations”到 cppcheck \n" +"例如:\"只测试 FOO 定义处的代码分支\" 或\n" +"\"不要测试 FOO 值为 2 的代码分支\"" -#~ msgid "Words" -#~ msgstr "文字" +#: cppchecker/cppchecksettingsdlgbase.cpp:258 +msgid "Defines to pass e.g. FOO or FOO=1:" +msgstr "定义传送,例如:FOO 或 FOO=1:" -#~ msgid "Numbers" -#~ msgstr "数字" +#: cppchecker/cppchecksettingsdlgbase.cpp:268 +msgid "" +"Add here definitions of code branches you want to be checked e.g. 'FOO' or " +"'BAR=2'. Each will be passed to Cppcheck as '-DFOO' or -D'BAR=2' (so don't " +"write the -D yourself)." +msgstr "" +"在这里添加要检查的代码分支定义,例如:“FOO”或“BAR=2”。每一个都将以“-DFOO”或" +"者 -D'BAR=2' 传递给 Cppcheck(因此不要自己写 -D)。" -#~ msgid "Tokens Type" -#~ msgstr "符号类型" +#: cppchecker/cppchecksettingsdlgbase.cpp:291 +msgid "Undefines to pass:" +msgstr "取消定义传递:" -#~ msgid "CodeLite will suggest word completion for the selected tokens types" -#~ msgstr "CodeLite 将为所选标记类型提示自动完成" +#: cppchecker/cppchecksettingsdlgbase.cpp:301 +msgid "" +"Here you can add undefines (branches you don't want to be checked) e.g. " +"'FOO' or 'BAR=2'. Each will be passed to Cppcheck as '-UFOO' or -" +"U'BAR=2' (so don't write the -U yourself)." +msgstr "" +"在此您可以添加取消定义(您不想检查的代码分支),例如“FOO”或“BAR=2”。每一个都将" +"以“-UFOO”或 -U'BAR=2' 传递给 Cppcheck(因此您无需自己添加 -U )。" -#~ msgid "Starts With" -#~ msgstr "以此开头" +#: cppchecker/cppchecksettingsdlgbase.cpp:445 +msgid "Description to show in the dialog" +msgstr "描述显示在对话框中" -#~ msgid "Contains" -#~ msgstr "包含" +#: cppchecker/cppchecksettingsdlgbase.cpp:450 +msgid "" +"This is what you'll see in the settings dialog. Put whatever you like here; " +"it's not used internally" +msgstr "" +"这就是您将在设置对话框中看到。您可以把任何您喜欢的放在这里;这不是在内部使用" -#~ msgid "Comparison Method" -#~ msgstr "比较方法" +#: cppchecker/cppchecksettingsdlgbase.cpp:457 +msgid "The ID string that cppchecker will recognise" +msgstr "cppchecker 将会识别该 ID 字符串" -#~ msgid "" -#~ "Select the word completion comparison method:\n" -#~ "\"Starts With\" - suggest all words that starts with the partial word " -#~ "that the user typed\n" -#~ "\"Contains\" - suggest all words that contains the partial word that the " -#~ "user typed" -#~ msgstr "" -#~ "选择单词自动完成比较方法: \n" -#~ "\"以此开头\" - 提示以用户键入部分开头的单词\n" -#~ "\"包含\" - 提示所有包含用户键入部分的单词" +#: cppchecker/cppchecksettingsdlgbase.cpp:462 +msgid "" +"Enter here the unique ID string that cppchecker can recognise. Examples are " +"\"operatorEqVarError\" and \"uninitMemberVar\". You can find these by " +"grepping the cppchecker source, or by running cppchecker on your app in a " +"terminal and passing the additional parameter '--xml'." +msgstr "" +"在此处输入 cppchecker 能识别的唯一 ID 字符串。例如:\"operatorEqVarError\" " +"和 \"uninitMemberVar\"。您能够在检索 cppchecker 资源时发现这些,或者通过在终" +"端您的应用程序上运行 cppchecker 并传递附加参数“--xml“。" -#~ msgid "Show Word Completion" -#~ msgstr "显示单词自动完成" +#: cppchecker/cppchecker.cpp:72 +msgid "CppChecker integration for CodeLite IDE" +msgstr "CppChecker 已集成到 CodeLite IDE" -#~ msgid "Plugins::Abbreviations::Show abbrevations completion box" -#~ msgstr "Plugins::Abbreviations::Show 显示缩写自动完成框" +#: cppchecker/cppchecker.cpp:101 +msgid "CppCheck integration for CodeLite IDE" +msgstr "CppCheck 已集成到 CodeLite IDE" -#~ msgid "" -#~ "You can use the '|' (pipe) character to set the caret position\n" -#~ "You may also use any of the known macros to CodeLite (click the 'Help' " -#~ "button)" -#~ msgstr "" -#~ "您可以使用 '|' 字符设置插入符号的位置\n" -#~ "您也可以使用任何Codelite宏 (单击帮助按钮)" +#: cppchecker/cppchecker.cpp:243 +msgid "CppCheckPlugin: Terminating cppcheck daemon..." +msgstr "CppCheckPlugin:终止cppcheck进程..." -#~ msgid "Import" -#~ msgstr "导入" +#: cppchecker/cppchecker.cpp:256 cppchecker/cppchecker.cpp:272 +#: cppchecker/cppchecker.cpp:286 cppchecker/cppchecker.cpp:300 +msgid "Run CppCheck" +msgstr "运行 CppCheck" -#~ msgid "Save changes" -#~ msgstr "保存更改" +#: cppchecker/cppchecker.cpp:312 cppchecker/cppchecker.cpp:332 +#: cppchecker/cppchecker.cpp:352 cppchecker/cppchecker.cpp:408 +msgid "" +"CppCheckPlugin: CppCheck is currently busy please wait for it to complete " +"the current check" +msgstr "CppCheckPlugin: CppCheck 当前正忙,请等待它完成当前检查" -#~ msgid "Show available macros" -#~ msgstr "显示可用宏列表" +#: cppchecker/cppchecker.cpp:512 +#, c-format +msgid "Starting cppcheck: %s\n" +msgstr "启动 cppcheck: %s\n" -#~ msgid "Abbreviation Name:" -#~ msgstr "缩写名称:" +#: cppchecker/cppchecker.cpp:524 +msgid "Failed to launch codelite_cppcheck process!" +msgstr "启动 codelite_cppcheck 进程失败!" -#~ msgid "Scanning for workspace files..." -#~ msgstr "正在扫描工作区文件..." +#: cppchecker/cppchecker.cpp:605 +msgid "No files to check" +msgstr "没有需要检查的文件" -#~ msgid "Updating workspace..." -#~ msgstr "正在更新工作区..." +#: cppchecker/cppchecker.cpp:666 +msgid "Failed to open temporary file " +msgstr "打开临时文件失败" -#~ msgid "" -#~ "'\n" -#~ "to:\n" -#~ "'" -#~ msgstr "" -#~ "'\n" -#~ "到:\n" -#~ "'" +#: cppchecker/cppchecksettingsdlgbase.h:168 +msgid "CppCheck settings" +msgstr "CppCheck 设置" -#~ msgid "" -#~ "Failed to rename workspace file:\n" -#~ "'" -#~ msgstr "" -#~ "无法重命名工作区 file:\n" -#~ "'" +#: cppchecker/cppchecksettingsdlgbase.h:195 +msgid "CppChecker add warning suppression" +msgstr "CppChecker 添加警告限制" -#~ msgid "" -#~ "Workspace file modified externally. Would you like to reload the " -#~ "workspace?" -#~ msgstr "工作空间或项目设置已被外部程序修改,您要重新加载工作空间吗?" +#: cppchecker/cppcheckreportpage.cpp:197 +msgid "cppcheck analysis ended. Found " +msgstr "cppcheck 分析结束。发现" -#~ msgid "A project with similar name already exists in the workspace" -#~ msgstr "工作区中已经存在具有相同名称的项目" +#: cppchecker/cppcheckreportpage.cpp:197 +msgid " possible errors" +msgstr " 可能的错误" -#~ msgid "Path '" -#~ msgstr "路径 '" +#: cppchecker/cppchecksettingsdlg.cpp:147 +msgid "C/C++ Files " +msgstr "C/C++ 文件" -#~ msgid "Unable to create a project at the selected path\n" -#~ msgstr "无法在所选路径创建项目\n" +#: cppchecker/cppchecksettingsdlg.cpp:152 +msgid "Add File(s):" +msgstr "添加文件:" -#~ msgid "' is already part of project '" -#~ msgstr "'已经是项目的一部分 '" +#: cppchecker/cppchecksettingsdlg.cpp:192 +msgid "There is already an entry with ID string. Try again?" +msgstr "同名字符串已存在。再试一次?" -#~ msgid "Project '" -#~ msgstr "项目 '" +#: cppchecker/cppchecksettingsdlg.cpp:214 +msgid "Really remove this warning suppression, rather than just unticking it?" +msgstr "真的要删除此警告的抑制,而不是仅仅不选中它?" -#~ msgid "' is located under this path" -#~ msgstr "' 定位在此路径" +#: cppchecker/cppchecksettingsdlg.cpp:246 +msgid "Select the path containing include files" +msgstr "选择包含头文件的路径" -#~ msgid "Another process is already running" -#~ msgstr "另一个进程已在运行" +#: Copyright/copyrights_proj_sel_base_dlg.h:74 +msgid "Batch Insert Of Copyrights" +msgstr "批量插入版权" -#~ msgid "Please set an index file to execute in the project settings" -#~ msgstr "请设置索引文件来执行项目中的设置" +#: Copyright/copyrights_proj_sel_base_dlg.cpp:44 +msgid "Select projects to insert copyrights block:" +msgstr "选择要插入版权块的项目:" -#~ msgid "" -#~ "Could not find any PHP binary to execute. Please set one in from: 'PHP | " -#~ "Settings'" -#~ msgstr "找不到任何 PHP 二进制文件来执行。请设置一个,从: 'PHP | Settings'" +#: Copyright/copyrights_proj_sel_base_dlg.cpp:66 +msgid "&Un-Check All" +msgstr "取消全部(&U)" -#~ msgid "Place each parent in a separate line" -#~ msgstr "将每个父类放在单独的行" +#: Copyright/copyrights_proj_sel_base_dlg.cpp:76 +msgid "&Insert" +msgstr "插入(&I)" -#~ msgid "Edit Class Extends" -#~ msgstr "编辑类继承" +#: Copyright/copyrights_options_dlg.cpp:49 +msgid "Choose a file:" +msgstr "选择一个文件:" -#~ msgid "Edit Class Interfaces" -#~ msgstr "编辑类接口" +#: Copyright/copyrights_options_base_dlg.cpp:50 +msgid "Template File Path:" +msgstr "模板文件路径:" -#~ msgid "" -#~ "This project has no file mapping defined. This may result in breakpoints " -#~ "not applied\n" -#~ msgstr "本项目没有定义文件映射。这可能会导致断点无法使用\n" +#: Copyright/copyrights_options_base_dlg.cpp:55 +msgid "" +"Select the path to the file containing the template header to be prepended " +"to the source files" +msgstr "选择包含模板标题文件的路径并添加到源文件头" -#~ msgid "To fix this, set file mapping from Project Settings -> Debug" -#~ msgstr "若要解决此问题,设置文件映射,从 项目设置 -> 调试" +#: Copyright/copyrights_options_base_dlg.cpp:63 +msgid "File Masking:" +msgstr "文件掩码:" -#~ msgid "Remember my answer and don't show this message again" -#~ msgstr "记得我的回答,不要再显示此消息" +#: Copyright/copyrights_options_base_dlg.cpp:67 +msgid "*.hpp;*.h;*.hxx;*.inl;*.h++" +msgstr "*.hpp;*.h;*.hxx;*.inl;*.h++" -#~ msgid "OK, Continue to Debug" -#~ msgstr "OK,继续调试" +#: Copyright/copyrights_options_base_dlg.cpp:73 +msgid "Ignore String:" +msgstr "忽略字符串:" -#~ msgid "Stop the debugger" -#~ msgstr "停止调试器" +#: Copyright/copyrights_options_base_dlg.cpp:78 +msgid "" +"Set here a string that once found in the source file CodeLite will not " +"prepend the Copyrights block to the file" +msgstr "" +"在此设置一个字符串,当 CodeLite 找到包含这个字符串文件时,不会在文件插入版权" +"信息" -#~ msgid "Could not open file: " -#~ msgstr "无法打开文件:" +#: Copyright/copyrights_options_base_dlg.cpp:85 +msgid "Backup modified files" +msgstr "备份修改的文件" -#~ msgid "XDebug did not connect in a timely manner" -#~ msgstr "XDebug 没有及时连接" +#: Copyright/copyrights_options_base_dlg.cpp:100 +msgid "&Save" +msgstr "保存(&S)" -#~ msgid "Run XDebug Test" -#~ msgstr "运行 XDebug 测试" +#: Copyright/copyrights_options_base_dlg.h:84 +msgid "Copyrights Settings" +msgstr "版权设置" -#~ msgid "Error evaluating expression " -#~ msgstr "计算表达式时出错" +#: Copyright/copyright.cpp:70 Copyright/copyright.cpp:87 +msgid "" +"Copyright Plugin - a small plugin that allows you to place copyright block " +"on top of your source files" +msgstr "版权插件 - 允许您在源文件头部插入版权信息的小插件" -#~ msgid "Failed to map remote file: " -#~ msgstr "无法映射远程文件:" +#: Copyright/copyright.cpp:106 Copyright/copyright.cpp:130 +#: Copyright/copyright.cpp:151 +msgid "Insert Copyright Block" +msgstr "插入版权块" -#~ msgid "Check your project settings->Debug to define folder mapping" -#~ msgstr "检查您的项目设置-> 调试来定义文件夹映射" +#: Copyright/copyright.cpp:109 Copyright/copyright.cpp:142 +msgid "Batch Insert of Copyright Block" +msgstr "批量插入版权块" -#~ msgid "*** Error evaluating expression: " -#~ msgstr "*** 计算表达式时出错:" +#: Copyright/copyright.cpp:116 +msgid "Copyrights" +msgstr "版权" -#~ msgid "Choose the object type" -#~ msgstr "选择对象类型" +#: Copyright/copyright.cpp:172 Copyright/copyright.cpp:395 +#, c-format +msgid "Template file name '%s', does not exist!" +msgstr "模板文件名“%s”,不存在!" -#~ msgid "The name" -#~ msgstr "名称" +#: Copyright/copyright.cpp:179 Copyright/copyright.cpp:401 +#, c-format +msgid "Failed to read template file '%s'" +msgstr "读取模板文件“%s”失败" -#~ msgid "If set, the generated code will be placed inside this namespace" -#~ msgstr "如果设置,生成的代码将放置在此命名空间内" +#: Copyright/copyright.cpp:196 +msgid "Template file contains text which is not comment, continue anyway?" +msgstr "模板文件包含非注释文本, 是否继续?" -#~ msgid "Extends:" -#~ msgstr "扩展:" +#: Copyright/copyright.cpp:210 +msgid "File contains ignore string, skipping it" +msgstr "文件包含忽略字符串? 跳过它" -#~ msgid "A comma separated list of parents for this class" -#~ msgstr "逗号分隔的父类列表" +#: Copyright/copyright.cpp:229 Copyright/copyright.cpp:287 +msgid "Batch insert requires a workspace to be opened" +msgstr "工作区打开后才能批量插入" -#~ msgid "Edit in a small text editor..." -#~ msgstr "在一个小的文本编辑器中进行编辑..." +#: Copyright/copyright.cpp:342 +#, c-format +msgid "You are about to modify %u files. Continue?" +msgstr "您要修改 %u 文件,是否继续?" -#~ msgid "Implements:" -#~ msgstr "实现:" +#: Copyright/copyright.cpp:347 +msgid "Processing file ..." +msgstr "处理文件..." -#~ msgid "A comma separated list of interfaces for this class" -#~ msgstr "逗号分隔的接口列表" +#: Copyright/copyright.cpp:367 +msgid "File contains ignore string, skipping it: " +msgstr "文件包含忽略字符串,跳过它:" -#~ msgid "Generate consturctor" -#~ msgstr "生成 consturctor" +#: Copyright/copyright.cpp:374 +msgid "Inserting comment to file: " +msgstr "插入注释到文件:" -#~ msgid "Generate desctructor" -#~ msgstr "生成 desctructor" +#: Copyright/copyright.cpp:412 +msgid "Template file contains text which is not comment, continue anyways?" +msgstr "模板文件包含非注释文本,是否继续?" -#~ msgid "Create folder per namespace" -#~ msgstr "为每个命名空间创建文件夹" +#: UnitTestCPP/testclassbasedlg.h:92 +msgid "Create UnitTests for Class.." +msgstr "为类创建单元测试.." -#~ msgid "Make singleton (available for classes only)" -#~ msgstr "使成单体 (仅类可用)" +#: UnitTestCPP/testclassbasedlg.cpp:60 +msgid "&Show Functions..." +msgstr "显示函数(&S)..." -#~ msgid "" -#~ "The generated class will be generated as a singleton\n" -#~ "class" -#~ msgstr "" -#~ "生成的单独类\n" -#~ "class" +#: UnitTestCPP/testclassbasedlg.cpp:71 UnitTestCPP/newunittestbasedlg.cpp:61 +msgid "Fixture name (optional):" +msgstr "固定名称(可选):" -#~ msgid "select a folder" -#~ msgstr "选择文件夹:" +#: UnitTestCPP/testclassbasedlg.cpp:78 UnitTestCPP/newunittestbasedlg.cpp:68 +msgid "Output file name (optional):" +msgstr "输出文件名(可选):" -#~ msgid "Failed to open workspace: corrupted workspace file" -#~ msgstr "未能打开工作区: 损坏工作区文件" +#: UnitTestCPP/testclassbasedlg.cpp:83 UnitTestCPP/newunittestbasedlg.cpp:73 +msgid "" +"The name of the file of which CodeLite will generate the test code.\n" +"When left empty, CodeLite will use the first available source file in target " +"project" +msgstr "" +"CodeLite 生成测试代码得文件名。\n" +"当留空时,CodeLite 将使用目标项目中首个可用源文件" -#~ msgid "Run XDebug Setup Wizard..." -#~ msgstr "运行 XDebug 安装向导..." +#: UnitTestCPP/testclassbasedlg.cpp:87 +msgid "Project to which these unit tests should be added:" +msgstr "项目的这些单元测试应该被添加:" -#~ msgid "P&HP" -#~ msgstr "P&HP" +#: UnitTestCPP/testclassbasedlg.cpp:98 +msgid "Functions to test:" +msgstr "函数测试:" -#~ msgid "Can't create PHP project. Close your current workspace first" -#~ msgstr "无法创建 PHP 项目。首先关闭你当前的工作区" +#: UnitTestCPP/newunittestbasedlg.h:76 +msgid "New Unit Test" +msgstr "新建单元测试" -#~ msgid "&Copy" -#~ msgstr "复制(&C)" +#: UnitTestCPP/unittestpp.cpp:74 UnitTestCPP/unittestpp.cpp:111 +msgid "A Unit test plugin based on the UnitTest++ framework" +msgstr "一个基于 UnitTest++ 框架的单元测试插件" -#~ msgid "&Paste" -#~ msgstr "粘贴(&P)" +#: UnitTestCPP/unittestpp.cpp:107 +msgid "UnitTest++" +msgstr "UnitTest++" -#~ msgid "&Select All" -#~ msgstr "选择全部(&S)" +#: UnitTestCPP/unittestpp.cpp:133 UnitTestCPP/unittestpp.cpp:139 +msgid "Run Unit tests..." +msgstr "运行单元测试..." -#~ msgid "Goto definition" -#~ msgstr "转到定义" +#: UnitTestCPP/unittestpp.cpp:135 UnitTestCPP/unittestpp.cpp:141 +msgid "Run project as unit test project..." +msgstr "项目作为单元测试项目运行..." -#~ msgid "Code Generation" -#~ msgstr "代码生成" +#: UnitTestCPP/unittestpp.cpp:156 UnitTestCPP/unittestpp.cpp:208 +msgid "Create new &test..." +msgstr "创建新测试(&T)" -#~ msgid "Open '%s'" -#~ msgstr "打开 '%s'" +#: UnitTestCPP/unittestpp.cpp:160 UnitTestCPP/unittestpp.cpp:212 +msgid "Create tests for &class..." +msgstr "为类创建测试(&C)" -#~ msgid "Select folder" -#~ msgstr "选择文件夹" +#: UnitTestCPP/unittestpp.cpp:165 +msgid "Mark this project as UnitTest++ project" +msgstr "标记项目为 UnitTest++ 项目" -#~ msgid "C++ Workspace" -#~ msgstr "C + + 工作区" +#: UnitTestCPP/unittestpp.cpp:169 +msgid "Run Project as UnitTest++ and report" +msgstr "项目作为 UnitTest++ 运行并报告" -#~ msgid "PHP Workspace" -#~ msgstr "PHP 工作区" +#: UnitTestCPP/unittestpp.cpp:225 UnitTestCPP/unittestpp.cpp:294 +msgid "" +"There are currently no UnitTest project in your workspace\n" +"Would you like to create one now?" +msgstr "" +"您的工作区当前无单元测试项目\n" +"您要现在创建一个吗?" -#~ msgid "Select the workspace type:" -#~ msgstr "选择工作区类型:" +#: UnitTestCPP/unittestpp.cpp:352 +msgid "Could not find the target project" +msgstr "找不到目标项目" -#~ msgid "Set here the workspace name" -#~ msgstr "在此处设置工作区名称" +#: UnitTestCPP/unittestpp.cpp:418 +#, c-format +msgid "Could not create target file '%s'" +msgstr "无法创建目标文件“%s”" -#~ msgid "Create the workspace in a separate directory" -#~ msgstr "在一个单独的目录中创建工作区" +#: UnitTestCPP/unittestpp.cpp:532 +msgid "Project contains 0 tests. Nothing to be done" +msgstr "项目包含 0 个测试。什么也不做" -#~ msgid "" -#~ "Type the resource name (file, variable, class, function, constant or " -#~ "define):" -#~ msgstr "键入资源的名称 (文件、 变量、 类、 函数、 常量或定义):" +#: UnitTestCPP/testclassdlg.cpp:119 +msgid "There are no tests to generate" +msgstr "没有测试产生" -#~ msgid "PHP Executable:" -#~ msgstr "PHP 可执行文件:" +#: UnitTestCPP/testclassdlg.cpp:153 +msgid "Could not find match for class '" +msgstr "找不到类匹配“" -#~ msgid "" -#~ "Select the PHP executable to use when debugging / running command line " -#~ "scripts" -#~ msgstr "选择 PHP 可执行文件,用来调试运行命令行脚本" +#: UnitTestCPP/testclassdlg.cpp:174 +msgid "Select class:" +msgstr "选择类:" -#~ msgid "error_reporting:" -#~ msgstr "error_reporting:" +#: UnitTestCPP/newunittestbasedlg.cpp:50 +msgid "Test name:" +msgstr "测试名称:" -#~ msgid "Set the PHP error reporting level (affects command line only)" -#~ msgstr "设置 PHP 的错误报告的级别 (仅影响命令行)" +#: UnitTestCPP/newunittestbasedlg.cpp:52 UnitTestCPP/newunittestbasedlg.cpp:57 +msgid "The C++ name of the test" +msgstr "测试的 C++ 名称" -#~ msgid "Add include path:" -#~ msgstr "添加包含路径:" +#: UnitTestCPP/newunittestbasedlg.cpp:77 +msgid "Project to whom this unit test should be added to:" +msgstr "项目的这个单元测试应该被添加到:" -#~ msgid "Add include path for PHP" -#~ msgstr "添加 php 包含路径" +#: UnitTestCPP/unittestreport.cpp:60 +msgid "Passed:" +msgstr "通过:" -#~ msgid "Additional include path for PHP (affects command line runs only)" -#~ msgstr "PHP 附加包含路径(只影响命令行)" +#: UnitTestCPP/unittestreport.cpp:67 +msgid "Failed:" +msgstr "失败:" -#~ msgid "Add include path for code completion:" -#~ msgstr "添加搜索路径到代码补全分析器" +#: UnitTestCPP/unittestreport.cpp:83 +msgid "Total tests:" +msgstr "共测试了:" -#~ msgid "" -#~ "Paths added here will only be used for code completion and NOT during " -#~ "runtime.\n" -#~ "If you want to add search paths for runtime (CLI mode only), Use the 'PHP " -#~ "CLI' tab" -#~ msgstr "" -#~ "在此处添加的路径仅用于代码完成,在程序运行时无作用\n" -#~ "如果您想要添加搜索路径运行 (仅适用于 CLI 模式) 时,在不使用 ' PHP CLI ' " -#~ "选项卡" +#: UnitTestCPP/unittestreport.cpp:94 +msgid "Tests failed:" +msgstr "测试失败:" -#~ msgid "XDebug" -#~ msgstr "XDebug" +#: UnitTestCPP/unittestreport.cpp:105 +msgid "Tests passed:" +msgstr "测试通过:" -#~ msgid "Listen host:" -#~ msgstr "侦听主机:" +#~ msgid "0.5.2 Beta" +#~ msgstr "0.5.1 Beta" -#~ msgid "Wait for connection from XDebug on this host" -#~ msgstr "在此主机上等待 XDebug 的连接" +#~ msgid "Restore Defaults..." +#~ msgstr "恢复默认值..." #~ msgid "" -#~ "The port on which codelite is accepting debug sessions from XDebug\n" -#~ "This value must be the same as the value set in the 'xdebug.remote_port'\n" -#~ "directive" -#~ msgstr "" -#~ "codelite 上接受XDebug调试会话的端口 \n" -#~ "这个值必须和 ' xdebug.remote_port' 的值相同\n" -#~ "directive" +#~ "Revert all the changes and restore all the build settings to the factory " +#~ "defaults" +#~ msgstr "恢复所有的变更并还原所有构建设置为出厂默认值" -#~ msgid "IDE Key:" -#~ msgstr "IDE Key:" +#~ msgid "Are you sure you want to revert to the default settings?" +#~ msgstr "您确定要恢复到默认设置吗?" -#~ msgid "This field defines the session name between CodeLite and XDebug" -#~ msgstr "此字段定义 CodeLite 和 XDebug 之间的会话名称" +#~ msgid "Use asterisk (*) for the clean target (e.g. rm -f *.o)" +#~ msgstr "使用星号(*)来清理目标(如:rm -f *.o)" -#~ msgid "The XDebug session name" -#~ msgstr "XDebug 会话名称" +#~ msgid "Font weight:" +#~ msgstr "字体宽度:" -#~ msgid "Syntax Check" -#~ msgstr "语法检查" +#~ msgid "Compiler errors colour:" +#~ msgstr "编译器错误颜色:" -#~ msgid "Perform syntax check when saving a file" -#~ msgstr "在保存文件时执行语法检查" +#~ msgid "Bold" +#~ msgstr "粗体" -#~ msgid "" -#~ "When saving a PHP script, run syntax check and report errors in the editor" -#~ msgstr "当保存一个 PHP 脚本时,在编辑器中运行语法检查和报告错误" - -#~ msgid "Select the project execution mode:" -#~ msgstr "选择项目的执行模式:" +#~ msgid "Errors / warnings markers:" +#~ msgstr "错误/警告标记:" -#~ msgid "Run project as command line" -#~ msgstr "作为命令行运行项目" +#~ msgid "Compiler errors / warnings marked with bookmarks" +#~ msgstr "用书签标记编译器错误/警告" -#~ msgid "PHP executable:" -#~ msgstr "PHP 可执行文件:" +#~ msgid "Compiler errors / warnings displayed inline" +#~ msgstr "编译器错误/警告显示内联" -#~ msgid "Select the PHP interperter to use for running this project" -#~ msgstr "选择 PHP 解释器来运行这个项目" +#~ msgid "Find Bar:" +#~ msgstr "查找栏:" -#~ msgid "Select PHP INI file:" -#~ msgstr "选择 PHP INI 文件:" +#~ msgid "Debug Pane:" +#~ msgstr "调试面板:" -#~ msgid "Select the PHP INI file to use with PHP (leave empty for default)" -#~ msgstr "选择要 PHP 使用的 INI 文件 (默认为留空) " +#~ msgid "View As" +#~ msgstr "查看为" -#~ msgid "Index File:" -#~ msgstr "索引文件:" +#~ msgid "Close this workspace, and load workspace '" +#~ msgstr "关闭此工作区,并加载工作区“" -#~ msgid "Select the project index file" -#~ msgstr "选择的项目的索引文件" - -#~ msgid "Program arguments" -#~ msgstr "程序参数" +#, fuzzy +#~ msgid "Global Colours" +#~ msgstr "全局标签颜色" #~ msgid "" -#~ "Insert the program arguments here\n" -#~ "Place each argument on a separate line" +#~ "It seems that the wxCrafter plugin is not installed\n" +#~ "What would you like to do?" #~ msgstr "" -#~ "在此处插入程序参数\n" -#~ "每行一个参数" +#~ "wxCrafter 插件似乎没有安装\n" +#~ "您想做点其他什么吗?" -#~ msgid "Run project as web site" -#~ msgstr "作为 web 站点运行项目" +#~ msgid "Plugin is not installed" +#~ msgstr "插件没有被安装" -#~ msgid "Project URL:" -#~ msgstr "项目 URL:" +#~ msgid "Download wxCrafter plugin from codelite's website" +#~ msgstr "从 CodeLite 网址下载 wxCrafter 插件" -#~ msgid "Use system default browser" -#~ msgstr "使用系统默认浏览器" +#~ msgid "Ignore the missing plugin and create the project anyway" +#~ msgstr "忽略丢失的插件并创建项目" -#~ msgid "Include path" -#~ msgstr "头文件路径" +#, fuzzy +#~ msgid "Upgrading theme: " +#~ msgstr "正在上传文件:" -#~ msgid "" -#~ "When running project with PHP CLI tool, pass the following\n" -#~ "include paths" -#~ msgstr "" -#~ "当使用 PHP CLI 工具运行项目,转送以下\n" -#~ "include 路径" +#, fuzzy +#~ msgid "Words" +#~ msgstr "启用下划线分割文件名单词(见工具提示)" -#~ msgid "Project file types" -#~ msgstr "项目文件类型" +#, fuzzy +#~ msgid "Numbers" +#~ msgstr "仅调试行号" -#~ msgid "" -#~ "Set the file extensions to include in this project\n" -#~ "CodeLite will only display these file types in the project view" -#~ msgstr "" -#~ "设置要在此项目中包含的文件扩展名\n" -#~ "CodeLite 只会在项目视图中显示这些类型的文件" +#, fuzzy +#~ msgid "Tokens Type" +#~ msgstr "Tokens" -#~ msgid "Exclude folders" -#~ msgstr "排除的文件夹" +#~ msgid "&Copy" +#~ msgstr "复制(&C)" -#~ msgid "" -#~ "Set a list of folders to exclude from the project.\n" -#~ "If the last part of the folder path is equal to one of the entries in " -#~ "this exclude list, it will not\n" -#~ "be shown in the project view" -#~ msgstr "" -#~ "设置从项目中排除的目录列表。 \n" -#~ "如果路径名的最后一部分等于此排除列表中的一项,它将不会在项目视图中显示\n" -#~ " " +#~ msgid "&Paste" +#~ msgstr "粘贴(&P)" + +#~ msgid "&Select All" +#~ msgstr "选择全部(&A)" -#~ msgid "File mapping" -#~ msgstr "文件映射" +#~ msgid "Files are the same!" +#~ msgstr "文件都是相同的!" -#~ msgid "Source folder" -#~ msgstr "源文件夹" +#~ msgid "Exporting makefile...done\n" +#~ msgstr "导出 Makefile...完成\n" -#~ msgid "Target folder" -#~ msgstr "目标文件夹" +#~ msgid "Reading project dependencies...\n" +#~ msgstr "读取项目依赖...\n" -#~ msgid "Local folder:" -#~ msgstr "本地目录" +#~ msgid "Reading project dependencies...done\n" +#~ msgstr "读取项目依赖...完成\n" -#~ msgid "" -#~ "The source folder usually points to the location where you develop your " -#~ "code" -#~ msgstr "源文件夹通常指向你开发代码的位置" +#~ msgid "Generating makefile for project %s...\n" +#~ msgstr "为项目 %s 生成 Makefile...\n" -#~ msgid "Remote folder:" -#~ msgstr "远程目录" +#~ msgid "Generating makefile for project %s...done\n" +#~ msgstr "为项目 %s 生成 Makefile...完成\n" -#~ msgid "Open Active Project Settings..." -#~ msgstr "打开活动项目设置..." +#~ msgid "Generating makefile...done\n" +#~ msgstr "生成Makefile...完成\n" -#~ msgid "Setup automatic upload" -#~ msgstr "设置自动上载" +#~ msgid "Writing makefile...\n" +#~ msgstr "正在编写 Makefile...\n" -#~ msgid "Setup automatic upload to a remote site" -#~ msgstr "设置自动上载到远程站点" +#~ msgid "Writing makefile...done\n" +#~ msgstr "编写 Makefile... 完成\n" -#~ msgid "Collapse" -#~ msgstr "折叠" +#~ msgid "Looping over the file list...done\n" +#~ msgstr "遍历文件列表...完成\n" -#~ msgid "Where" -#~ msgstr "哪里" +#~ msgid "Creating file targets...done\n" +#~ msgstr "创建文件目标...完成\n" -#~ msgid "Delete the selected breakpoints" -#~ msgstr "删除所选的断点" +#~ msgid "Creating clean targets...\n" +#~ msgstr "创建清理目标...\n" -#~ msgid "Delete all breakpoints" -#~ msgstr "删除全部断点" +#~ msgid "Loading file list for clean...\n" +#~ msgstr "加载要清理的文件列表...\n" -#~ msgid "Classname" -#~ msgstr "类名" +#~ msgid "Loading file list...done\n" +#~ msgstr "加载文件列表...完成\n" -#~ msgid "Eval" -#~ msgstr "Eval" +#~ msgid "wxMiniApp" +#~ msgstr "wxMiniApp" -#~ msgid "" -#~ "Type an expression and hit the 'Send' button\n" -#~ "This works best when wrapping the command inside a print_r function, e." -#~ "g.\n" -#~ "print_r( $mystr, true )" -#~ msgstr "" -#~ "键入表达式并点击 '发送' 按钮\n" -#~ "适合包装在 print_r 函数,如:\n" -#~ "print_r( $mystr, true )" +#~ msgid "Uncrustify Error" +#~ msgstr "Uncrustify 错误" -#~ msgid "XDebug Console" -#~ msgstr "XDebug 控制台" +#~ msgid "Code Beautifier" +#~ msgstr "代码美化" -#~ msgid "Select the debugging method" -#~ msgstr "选择调试方法" +#~ msgid "Center &Line in Editor by Rolling" +#~ msgstr "滚动时行居中(&L)" -#~ msgid "URL to Run / Debug:" -#~ msgstr "要运行 / 调试的 URL:" +#~ msgid "&Go To..." +#~ msgstr "转到(&G)..." -#~ msgid "Enter the URL to debug" -#~ msgstr "输入要调试的 URL" +#~ msgid "&GDB" +#~ msgstr "GDB(&G)" -#~ msgid "File to Run / Debug:" -#~ msgstr "要运行 / 调试的文件:" +#~ msgid "Syntax Highlight and &Fonts..." +#~ msgstr "语法高亮显示与字体(&F)..." -#~ msgid "Use the active file opened in the editor" -#~ msgstr "使用编辑器中打开的活动文件" +#~ msgid "&Tags Settings..." +#~ msgstr "标签设置(&T)..." -#~ msgid "Project Creation" -#~ msgstr "创建项目" +#~ msgid "Re-Tag Project" +#~ msgstr "重建项目标签文件" -#~ msgid "Select the project creation method" -#~ msgstr "选择的项目创建方法" +#~ msgid "Disconnect" +#~ msgstr "断开连接" -#~ msgid "Create an empty PHP project" -#~ msgstr "创建一个空的 PHP 项目" +#~ msgid "Others" +#~ msgstr "其它" -#~ msgid "Create a project from an existing source files" -#~ msgstr "从现有源创建一个项目" +#~ msgid "" +#~ "Project name can only contain alpha numeric characters and/or the " +#~ "underscore '_'" +#~ msgstr "项目名称仅能包含字母、数字以及下划线“_”字符" -#~ msgid "Project Details" -#~ msgstr "项目详细信息" +#~ msgid "Please provide a name for the project" +#~ msgstr "请提供项目名称" -#~ msgid "Set the project name and path" -#~ msgstr "设置项目的名称和路径" +#~ msgid "Failed to load shell terminal" +#~ msgstr "无法加载 SHELL 终端" -#~ msgid "Project Name:" -#~ msgstr "项目名称:" +#~ msgid "Build before execute" +#~ msgstr "执行前构建" -#~ msgid "Set the project name" -#~ msgstr "设置项目名称" +#~ msgid "No, just execute it" +#~ msgstr "没有,只是执行它" -#~ msgid "Select the project path" -#~ msgstr "选择项目路径:" +#~ msgid "Debug without building" +#~ msgstr "调试但不构建" -#~ msgid "Create the project under a separate folder" -#~ msgstr "在独立的目录下创建项目" +#~ msgid "Debugging: '" +#~ msgstr "调试中:“" -#~ msgid "Preview:" -#~ msgstr "预览:" +#~ msgid "' from '" +#~ msgstr "”来自“" -#~ msgid "PHP Execution" -#~ msgstr "PHP 执行" +#~ msgid "Yes, reload the workspace" +#~ msgstr "是的,重新载入工作区" -#~ msgid "Set PHP execution method" -#~ msgstr "设置的 PHP 执行方法" +#~ msgid "Don't reload the workspace" +#~ msgstr "不要重新载入工作区" -#~ msgid "Project type:" -#~ msgstr "项目类型:" +#~ msgid "Maximum number of *workspace* symbols to colour:" +#~ msgstr "“工作区”符号最大配色数目:" -#~ msgid "Select the project type from the list" -#~ msgstr "从列表中选择项目类型" +#~ msgid "" +#~ "Colour macro blocks with gray text colour when the macro is not defined" +#~ msgstr "当宏命令没有定义时将宏命令块着色为灰色文字颜色" -#~ msgid "Select the PHP command line executable to use" -#~ msgstr "选择 PHP 可执行文件,用来调试运行命令行脚本" +#~ msgid "Minimum number of chars to type to show wordcompletion-box:" +#~ msgstr "显示代码补全框前输入的最少字符数目:" -#~ msgid "Add include paths for Code Completion" -#~ msgstr "添加搜索路径到代码补全分析器" +#~ msgid "Cache" +#~ msgstr "缓存" -#~ msgid "Browse for code completion folder..." -#~ msgstr "浏览代码完成文件夹..." +#~ msgid "Linker Name:" +#~ msgstr "链接器名称:" -#~ msgid "" -#~ "You can add folders here for better code completion.\n" -#~ "CodeLite will scan these folder for any PHP files for better code " -#~ "complete\n" -#~ "\n" -#~ "There is no need to add the project folders, these are parsed " -#~ "automatically" -#~ msgstr "" -#~ "为代码完成添加目录\n" -#~ "Codelite将扫描PHP文件用来使用自动完成\n" -#~ " \n" -#~ "无需添加项目目录,这些能自动解析" +#~ msgid "PATH environment variable:" +#~ msgstr "PATH 环境变量:" #~ msgid "" -#~ "Setup XDebug port number\n" -#~ "CodeLite will listen on this port for new incoming messages from XDebug" +#~ "You can set here the PATH environment variable that will be used for this " +#~ "toolset only. The value sets here will override the value set in " +#~ "'Environement Variables' table. To concatenate a value to the current " +#~ "PATH, use the following format: $(PATH);C:\n" +#~ "ewpath (Windows) OR $(PATH):/home/eran/bin (*nix)" #~ msgstr "" -#~ "设置 XDebug 端口\n" -#~ "CodeLite 将在此端口上侦听来自 XDebug 新传入消息" +#~ "您可以在此设置近用于此工具集的 PATH 环境变量。此值会覆盖“环境变量”选项卡中" +#~ "的对应项。如果要连接当前 PATH,请使用以下格式:$(PATH);C:\n" +#~ "ewpath (Windows) 或者 $(PATH):/home/eran/bin (*nix)" -#~ msgid "XDebug Port" -#~ msgstr "XDebug 端口" +#~ msgid "cancel" +#~ msgstr "取消" -#~ msgid "Port number:" -#~ msgstr "端口号:" +#~ msgid "Open Active Project Settings" +#~ msgstr "打开活动项目设置" #~ msgid "" -#~ "Set the port on which CodeLite will be listening for new connections from " -#~ "XDebug. The default port is 9000" -#~ msgstr "设置让CodeLite侦听来自XDebug的新连接的端口。默认端口为9000" - -#~ msgid "CodeLite IP address" -#~ msgstr "CodeLite IP 地址" - -#~ msgid "Set the IP address on which CodeLite is running" -#~ msgstr "设置CodeLite所在计算机的IP地址" - -#~ msgid "IP address:" -#~ msgstr "IP地址:" +#~ "CodeLite contains a built-in doxygen documentation generator which\n" +#~ "adds doxygen comments to your code. Here you can set the prefix \n" +#~ "that will be placed on top of the dynamic content of the comment:" +#~ msgstr "" +#~ "CodeLite 包含内建 doxygen 文档生成器,它将会添加 doxygen 注释到您的代" +#~ "码。\n" +#~ "在此设置动态内容注释顶部的前缀:" #~ msgid "" -#~ "Set the IP address on which CodeLite is listening.\n" -#~ "This IP needs to be visible to the machine where XDebug is running." +#~ "The following macros are available:\n" +#~ "$(CurrentFileName), $(CurrentFilePath),\n" +#~ "$(User), $(Date), $(Name)\n" +#~ "$(CurrentFileFullPath), $(CurrentFileExt),\n" +#~ "$(ProjectName), $(WorkspaceName)" #~ msgstr "" -#~ "设置CodeLite所在机器的IP地址。\n" -#~ "此IP必须对于XDebug运行的机器是可见的。" +#~ "以下宏命令是可用的:\n" +#~ "$(CurrentFileName),$(CurrentFilePath),\n" +#~ "$(User),$(Date),$(Name)\n" +#~ "$(CurrentFileFullPath),$(CurrentFileExt),\n" +#~ "$(ProjectName),$(WorksapceName)" -#~ msgid "IDE Key" -#~ msgstr "IDE Key" +#~ msgid "Enable C++11 Standard (clang)" +#~ msgstr "启用 C++11 标准 (clang)" -#~ msgid "Set the IDE key between CodeLite and XDebug" -#~ msgstr "设置CodeLite和Xdebug之间的 IDE key" +#~ msgid "What to copy/cut when there is no selection:" +#~ msgstr "当没有选择时复制/剪切什么:" -#~ msgid "Setup XDebug INI settings" -#~ msgstr "设置XDebug INI设置" +#~ msgid "Multiple selections && Caret:" +#~ msgstr "多个选项 && 插入符号:" -#~ msgid "XDebug INI Settings" -#~ msgstr "XDebug的INI设置" +#~ msgid "" +#~ "When multiple selection is disabled, it is not possible to select " +#~ "multiple ranges by holding down the Ctrl key while dragging with the " +#~ "mouse." +#~ msgstr "当多个选择被禁用时,通过按住 Ctrl 键拖动鼠标并不能选择多个范围。" -#~ msgid "Copy the below text and paste it in your php.ini file:" -#~ msgstr "复制下面的文本,并将其粘贴在php.ini文件:" +#~ msgid "Disable multi caret paste" +#~ msgstr "禁用多符号粘贴" -#~ msgid "Variable" -#~ msgstr "变量" +#~ msgid "" +#~ "When pasting into multiple selections, the pasted text can go into just " +#~ "the main selection or into each selection" +#~ msgstr "当粘贴到多个选择时,粘贴的文本仅可以进入主要的选择或进入各个选择中" -#~ msgid "Functions start with lowercase" -#~ msgstr "小写字母开头的函数" +#~ msgid "Syntax Highlight:" +#~ msgstr "语法高亮:" -#~ msgid "Generated functions start with lowercase letter" -#~ msgstr "生成小写字母开头的函数" +#~ msgid "Reached the beginning of 'find in files' search results list" +#~ msgstr "到达“在文件中查找”搜索结果的列表开头" -#~ msgid "Prefix getter with 'get' or 'is'" -#~ msgstr "getter前缀使用 'get' 或 'is'" +#~ msgid "Global Windows Colours:" +#~ msgstr "全局窗口颜色:" -#~ msgid "" -#~ "When checked, the getter function is prefixed with 'get', otherwise, the " -#~ "getter is same as the variable name (without the $ sign)" -#~ msgstr "选中时,getter 函数前缀是 'get' , 否则与该变量同名(不带$符号)" +#~ msgid "Apply the current changes to the editor without closing the dialog" +#~ msgstr "应用变更到当前编辑器而不关闭对话框" -#~ msgid "Setter returns $this" -#~ msgstr "Setter 返回 $this" +#~ msgid "Defaults..." +#~ msgstr "默认..." -#~ msgid "The getter returns $this object" -#~ msgstr "getter 返回 $this 对象" +#~ msgid "Restore all lexers to default values" +#~ msgstr "恢复全部语法分析器为默认值" -#~ msgid "Can only import one folder at a time" -#~ msgstr "只能在一次导入一个文件夹" +#~ msgid "Apply these choices to all lexers" +#~ msgstr "应用这些选择到所有的词法分析器" -#~ msgid "Failed to create workspace '" -#~ msgstr "无法创建工作区 '" +#~ msgid "" +#~ "To save having to go through every lexer to set your text selection " +#~ "preferences, click here to apply these settings to all the lexers in this " +#~ "theme" +#~ msgstr "" +#~ "您需要在每一个词法分析器来设置并保存您的文本选择偏好,在这个选项中点击应用" +#~ "这些设置到所有的词法分析器" -#~ msgid "File exists" -#~ msgstr "文件存在" +#~ msgid "Plugin is missing" +#~ msgstr "插件丢失" -#~ msgid "Open in File Explorer" -#~ msgstr "在文件浏览器中打开" +#~ msgid "Find in files" +#~ msgstr "在文件中查找" -#~ msgid "Open Shell Here" -#~ msgstr "在这里打开 Shell " +#~ msgid "Copy / Cut Behavior" +#~ msgstr "复制/剪切行为" -#~ msgid "Open with Default Application" -#~ msgstr "用默认应用打开" +#~ msgid "\n" +#~ msgstr "\n" -#~ msgid "Close workspace" -#~ msgstr "关闭工作空间" +#~ msgid "Hit any keyboard key" +#~ msgstr "按任意键" -#~ msgid "Create a new project..." -#~ msgstr "创建一个新项目..." +#~ msgid "Find..." +#~ msgstr "查找..." -#~ msgid "Add an existing project..." -#~ msgstr "添加现有项目" +#~ msgid "Find:" +#~ msgstr "查找:" -#~ msgid "Parse workspace" -#~ msgstr "分析工作空间" +#~ msgid "Highlight matches" +#~ msgstr "高亮匹配" -#~ msgid "Set as active project" -#~ msgstr "设置为活动项目" +#~ msgid "Replace:" +#~ msgstr "替换:" -#~ msgid "Remove project" -#~ msgstr "移除项目" +#~ msgid "Replace Selection" +#~ msgstr "替代选择" -#~ msgid "New Class..." -#~ msgstr "新建类..." +#~ msgid "Regexp" +#~ msgstr "正则表达式" -#~ msgid "New Folder..." -#~ msgstr "新建文件夹..." +#~ msgid "Type here to find an entry by its action" +#~ msgstr "通过操作查找项" -#~ msgid "New File..." -#~ msgstr "新建文件..." +#~ msgid "What is the filepath to use for the new tabgroup item?" +#~ msgstr "新标签组项的文件路径?" -#~ msgid "Sync project with file system..." -#~ msgstr "从文件系统同步项目..." +#~ msgid "Add a new tabgroup item" +#~ msgstr "添加新的标签组项" -#~ msgid "Run project..." -#~ msgstr "运行项目..." +#~ msgid "Action" +#~ msgstr "动作" -#~ msgid "Project settings..." -#~ msgstr "项目设置..." +#, fuzzy +#~ msgid "Accelerator" +#~ msgstr "快捷键" -#~ msgid "Loading Workspace View..." -#~ msgstr "载入工作空间视图..." +#~ msgid "Turn on indentation highlights guides (small vertical lines)" +#~ msgstr "打开缩进高亮标记(小竖线)" -#~ msgid "Are you sure you want to remove project '" -#~ msgstr "您确定要移除项目吗 '" +#~ msgid "Auto Complete Curly Braces \"{\"" +#~ msgstr "自动补全括号 \"{\"" -#~ msgid "New Folder" -#~ msgstr "新建文件夹" +#~ msgid "Auto add matching close brace" +#~ msgstr "自动添加匹配的右括号" -#~ msgid "New Folder Name:" -#~ msgstr "新建文件夹名称:" +#~ msgid "Auto swap between semicolon and closing brace" +#~ msgstr "自动交换分号与右括号" -#~ msgid "Set the file name:" -#~ msgstr "设置文件名:" +#~ msgid "Auto Complete Braces \"[(\"" +#~ msgstr "自动补全括号 \"[(\"" -#~ msgid "' and its content?" -#~ msgstr "' 和它的内容吗?" +#~ msgid "Auto Complete Double / Single Quotes" +#~ msgstr "自动补全双/单引号" -#~ msgid "Are you sure you want to delete folder '" -#~ msgstr "要删除文件夹吗 '" +#~ msgid "Highlight the caret line" +#~ msgstr "高亮光标所在行" -#~ msgid "Rename file" -#~ msgstr "重命名文件" +#~ msgid "Debugger line colour:" +#~ msgstr "调试器行颜色:" -#~ msgid "" -#~ "This operation will delete the selected items.\n" -#~ "Continue?" -#~ msgstr "" -#~ "此操作将删除所选的项目。\n" -#~ "是否继续?" +#~ msgid "Bookmark type" +#~ msgstr "书签类型" #~ msgid "" -#~ "'%s' is a folder.\n" -#~ "This operation will delete the folder and its content.\n" -#~ "Continue?" +#~ "Too many matches found, displaying %u. Keep typing to narrow the choices\n" +#~ "You can increase the number of displayed items from the menu: 'Settings | " +#~ "Tags Settings'" #~ msgstr "" -#~ "'%s' 是一个文件夹。\n" -#~ "此操作将删除该文件夹及其内容。\n" -#~ "是否继续?" - -#~ msgid "New workspace name:" -#~ msgstr "新的工作空间名称:" +#~ "发现太多的匹配,显示 %u。请保持输入以缩小选择的范围\n" +#~ "您可以从菜单:“设置 | 标签设置”中增加显示条目的数量" -#~ msgid "Rename workspace" -#~ msgstr "重命名工作空间" +#~ msgid "Goto Current Directory" +#~ msgstr "转到当前目录" -#~ msgid "Enable automatic upload" -#~ msgstr "启用自动上传" +#~ msgid "Tags Options" +#~ msgstr "标签文件选项" -#~ msgid "Select the remote folder corrseponding to the current workspace file" -#~ msgstr "选择在当前工作空间生成的远程文件夹" +#~ msgid "subversion2" +#~ msgstr "subversion2" -#~ msgid "No files to check" -#~ msgstr "没有文件检出" +#~ msgid "\n" +#~ msgstr "\n" -#~ msgid "Stop the curreny analysis" -#~ msgstr "停止当前分析" +#~ msgid "excludeBinary=%d\n" +#~ msgstr "excludeBinary=%d\n" -#~ msgid "Move to previous error" -#~ msgstr "跳转到上一个错误" +#~ msgid "rawData=%s\n" +#~ msgstr "rawData=%s\n" -#~ msgid "Move to next error" -#~ msgstr "跳转到下一个错误" +#~ msgid "Please enter the filepath where cscope can be found" +#~ msgstr "请输入 cscope 的文件路径" -#~ msgid "Select the path containing include files" -#~ msgstr "选择包含头文件的路径" +#~ msgid "Where is cscope?" +#~ msgstr "cscope 在哪?" -#~ msgid "Multiple jobs (-j)" -#~ msgstr "多个作业(-j)" +#~ msgid "Use underscores to separate filename words (see tooltip) " +#~ msgstr "启用下划线分割文件名单词(见工具提示)" #~ msgid "" -#~ "Tell Cppcheck to use 'n' CPUs. NB this is incompatible with " -#~ "'unusedFunction', and may give false-positive warnings for e.g. " -#~ "'Unmatched suppression' ." +#~ "If the class name is FooBarBaz, call the files foo_bar_baz.cpp etc " +#~ "instead of foobarbaz.cpp" #~ msgstr "" -#~ "告诉Cppcheck使用 'n' 个CPU。 这与 'unusedFunction' 不兼容,并且可能给出假" -#~ "的显式警告,例如: 'Unmatched suppression'。" +#~ "如果类的名称是 FooBarBaz 之类的,将会使用 foo_bar_baz.cpp 等替换 " +#~ "foobarbaz.cpp" -#~ msgid "Number of jobs to try to run in parallel" -#~ msgstr "要并行运行的任务数" +#~ msgid "Check Interrupted!" +#~ msgstr "检查中断!" -#~ msgid "Check configuration (turns off other checks)" -#~ msgstr "检查设置(关闭其它检查)" +#~ msgid "Queued Files:" +#~ msgstr "已排队文件:" +#, fuzzy #~ msgid "" -#~ "Pass --check-config to Cppchecker. This is useful if you get a 'Cppcheck " -#~ "cannot find all the include files' warning: it lets you see which " -#~ "#include aren't being located. However it turns off other checks." +#~ "Choose one of the following predefined styles.\n" +#~ "You may optionally override one or more of its settings from the next " +#~ "pages" #~ msgstr "" -#~ "传送 --check-config 给 Cppchecker。在你得到'Cppcheck cannot find all the " -#~ "include files' 警告时是很有用的,它可以让你看到哪个#include没有被找到,它" -#~ "将关闭其它检查。" +#~ "选择一个已定义的风格。\n" +#~ "您可以在自定义页面选择覆盖一个或多个设置" -#~ msgid "Include Dirs" -#~ msgstr "include目录" +#~ msgid "Predefined Style:" +#~ msgstr "预定义风格:" -#~ msgid "" -#~ "If the 'Missing Includes' check is enabled, add here any extra\n" -#~ "directories where Cppcheck should search for #includes" -#~ msgstr "" -#~ "如果 'Missing Includes' 检查启用,这里添加任何额外的\n" -#~ "目录,Cppcheck 在哪里搜索 #includes" +#~ msgid "Brackets:" +#~ msgstr "括号:" -#~ msgid "Add the full path to a directory to search for #includes" -#~ msgstr "添加完整的路径名来搜索#includes" +#~ msgid "Indentation:" +#~ msgstr "缩进:" -#~ msgid "Suppress warnings about 'system' includes" -#~ msgstr "禁止有关 'system' 的警告,包括" +#~ msgid "Min Conditional Indent" +#~ msgstr "最小条件缩进" -#~ msgid "" -#~ "If ticked, the 'missingIncludeSystem' suppression is passed to Cppcheck. " -#~ "This stops it complaining about a missing #include , while still " -#~ "detecting a missing #include \"bar\"" -#~ msgstr "" -#~ "如果勾选, 'missingIncludeSystem' 抑制将传递给Cppcheck。这将停止其警告缺少" -#~ "的 #include ,同时还检测缺失的 #include \"bar\"" +#~ msgid "Custom Settings" +#~ msgstr "自定义设置" -#~ msgid "" -#~ "If ticked, these settings will be saved and be applied in the future. " -#~ "Otherwise the warnings will be back when you restart CodeLite, which may " -#~ "be what you want." -#~ msgstr "" -#~ "如果勾选此项,这些设置将被保存并在将来使用。否则当您重启 CodeLite 时该警告" -#~ "将会重新出现,哪一个可能是你想要的。" +#~ msgid "Source Code Formatter based on the open source AStyle tool" +#~ msgstr "基于开放源码的 AStyle工具的源文件格式化器" -#~ msgid "Command-line Definitions" -#~ msgstr "命令行定义" +#~ msgid "Source Code Formatter (AStyle)" +#~ msgstr "源文件格式化器 (AStyle)" -#~ msgid "" -#~ "Here you can pass 'configurations' to cppcheck\n" -#~ "e.g. \"Only test code branches where FOO is defined\" or\n" -#~ "\"Don't test code branches where the value of FOO is 2\"" -#~ msgstr "" -#~ "在这里,您可以传送 'configurations' 到 cppcheck \n" -#~ " 例如 \"只测试FOO定义处的代码分支\" 或\n" -#~ "\"不要测试FOO值为2的代码分支\"" +#~ msgid "GNU style formatting/indenting. Brackets are broken,\n" +#~ msgstr "GNU 风格格式和缩进。括号会被破坏,\n" -#~ msgid "Defines to pass e.g. FOO or FOO=1:" -#~ msgstr "定义传送 例如: FOO or FOO=1:" +#~ msgid "blocks are indented, and indentation is 2 spaces. \n" +#~ msgstr "块使用两个空格缩进。\n" -#~ msgid "" -#~ "Add here definitions of code branches you want to be checked e.g. 'FOO' " -#~ "or 'BAR=2'. Each will be passed to Cppcheck as '-DFOO' or -D'BAR=2' (so " -#~ "don't write the -D yourself)." -#~ msgstr "" -#~ "在这里添加要检查的代码分支 例如: 'FOO' or 'BAR=2'. 任一个都将以 '-DFOO' " -#~ "or -D'BAR=2' 传给Cppcheck ( 所以不要自己写 -D )." +#~ msgid "Namespaces, classes, and switches are NOT indented." +#~ msgstr "Namespaces, classes,和 switches 不会被缩进。" + +#~ msgid "Java style formatting/indenting. Brackets are attached,\n" +#~ msgstr "Java 风格格式和缩进。括号会被连接,\n" -#~ msgid "Undefines to pass:" -#~ msgstr "取消定义传递:" +#~ msgid "indentation is 4 spaces. Switches are NOT indented." +#~ msgstr "用 4 个空格缩进,switchs 不会缩进。" #~ msgid "" -#~ "Here you can add undefines (branches you don't want to be checked) e.g. " -#~ "'FOO' or 'BAR=2'. Each will be passed to Cppcheck as '-UFOO' or -" -#~ "U'BAR=2' (so don't write the -U yourself)." +#~ "Kernighan & Ritchie style formatting/indenting.\n" +#~ "Brackets are attached, indentation is 4 spaces.\n" +#~ "Namespaces, classes, and switches are NOT indented." #~ msgstr "" -#~ "在此您可以添加取消定义 (你不想检查的代码) 例如 'FOO' or 'BAR=2'. 都将以 '-" -#~ "UFOO' or -U'BAR=2' 传递 ( 你无需添加 -U )." +#~ "Kernighan & Ritchie 风格格式和缩进。\n" +#~ "括号会被连接,以 4 个空格缩进。\n" +#~ "Namespaces, classes, 和 switches 不会被缩进。" -#~ msgid "CScope executable:" -#~ msgstr "Cscope的可执行文件:" - -#~ msgid "Set the path to cscope executable" -#~ msgstr "cscope的路径" +#~ msgid "" +#~ "Linux style formatting/indenting.\n" +#~ "All brackets are linux style, indentation is 8 spaces.\n" +#~ "Namespaces, classes, and switches are NOT indented." +#~ msgstr "" +#~ "Linux 风格格式和缩进。\n" +#~ "全部括号会使用 linux 风格,以 8 个空格缩进。\n" +#~ "Namespaces, classes, 和 switches 不会被缩进。" -#~ msgid "Open MSYS Git" -#~ msgstr "打开MSYS Git" +#~ msgid "" +#~ "ANSI style formatting/indenting.\n" +#~ "Brackets are broken, indentation is 4 spaces.\n" +#~ "Namespaces, classes, and switches are NOT indented." +#~ msgstr "" +#~ "ANSI 风格格式和缩进。\n" +#~ "括号会被破坏,以 4 个空格缩进。\n" +#~ "Namespaces, classes 和 switches 不会被缩进。" -#~ msgid "Open MSYS Git at the current file location" -#~ msgstr "在当前文件位置打开MSYS Git" +#~ msgid "ID:" +#~ msgstr "ID:" -#~ msgid "Select git root directory" -#~ msgstr "选择git的根目录" +#~ msgid "Continue updating tool ID '%s'" +#~ msgstr "继续更新工具 ID “%s”" -#~ msgid "Save all changes and rebase?" -#~ msgstr "保存所有变更并拉取远程变更吗?" +#~ msgid "File background colour" +#~ msgstr "文件背景色" -#~ msgid "Don't know how to start MSYSGit..." -#~ msgstr "不知道如何开始MSYSGit ..." +#~ msgid "File text colour" +#~ msgstr "文件文本颜色" -#~ msgid "Stash" -#~ msgstr "隐藏" +#~ msgid "Select git root directory for this workspace" +#~ msgstr "选择此工作区的 git 根目录" -#~ msgid "Stash pop" -#~ msgstr "藏匿流行" +#~ msgid "" +#~ "The selected directory does not contain a .git directory.\n" +#~ "Are you sure this is a git repository?" +#~ msgstr "" +#~ "选定的文件夹不包含 .git 目录。\n" +#~ "您是否确定这是一个 git 仓库?" -#~ msgid "Open git bash" -#~ msgstr "打开MSYS Git bash" +#~ msgid "Pull log" +#~ msgstr "Pull 日志" -#~ msgid "No commit message given, aborting." -#~ msgstr "没有提交信息,正在中止..." +#~ msgid "Modified paths:" +#~ msgstr "已修改的路径:" -#~ msgid "Toggle Check All" -#~ msgstr "全选" +#~ msgid "Commit list:" +#~ msgstr "提交列表:" -#~ msgid "Recent Commits:" -#~ msgstr "最近提交信息:" +#~ msgid "" +#~ "You can use | (pipe) character to indicate where the caret should be " +#~ "placed. \n" +#~ "You can use $(VariableName) to indicate CodeLite to prompt you for " +#~ "suitable replacement" +#~ msgstr "" +#~ "您可以使用 | (管道) 字符来指示光标要放的地方。\n" +#~ "您可以使用 $(VariableName) 来指出 CodeLite 提示的使用替代" -#~ msgid "Type your commit message here" -#~ msgstr "在此输入提交信息:" +#~ msgid "Save the current changes" +#~ msgstr "保存当前变更" -#~ msgid "Amend the previous commit" -#~ msgstr "修改前一次提交" +#~ msgid "Import..." +#~ msgstr "导入..." -#~ msgid "" -#~ "The 'git commit --amend' command is a convenient way to fix up the most " -#~ "recent commit. It lets you combine staged changes with the previous " -#~ "commit instead of committing it as an entirely new snapshot. It can also " -#~ "be used to simply edit the previous commit message without changing its " -#~ "snapshot" -#~ msgstr "" -#~ "'git commit --amend' 是方便的更正前一次提交的命令. 它让你更正部分差异而不" -#~ "必全部重新输入" +#~ msgid "Enter replacement for '%s':" +#~ msgstr "替换“%s”为:" -#~ msgid "" -#~ "Search the commit list\n" -#~ "The search is performed on all columns" -#~ msgstr "" -#~ "搜索提交列表\n" -#~ "该搜索所有列上进行" +#~ msgid "What is the name of the new abbreviation name:" +#~ msgstr "新缩写名称:" #~ msgid "Stage 1/2: Gathering required information..." #~ msgstr "阶段1/2:收集需要的信息" @@ -17897,17 +19175,14 @@ #~ msgid "Parsing..." #~ msgstr "分析..." -#~ msgid "Committing..." -#~ msgstr "提交..." - #~ msgid "Show Symbols of File, Project, or Workspace" -#~ msgstr "显示文件、项目或工作空间中的符号" +#~ msgstr "显示文件、项目或工作区中的符号" #~ msgid "Symbols View Plugin" #~ msgstr "符号视图插件" #~ msgid "Current Workspace" -#~ msgstr "当前工作空间" +#~ msgstr "当前工作区" #~ msgid "Symbols" #~ msgstr "符号" @@ -17949,14 +19224,14 @@ #~ "插件名称包含无效字符\n" #~ "只允许[A-Za-z_0-9]" +#~ msgid "Generated files path (directory)" +#~ msgstr "生成的文件路径(目录)" + #~ msgid "" #~ "Select the virtual folder to place the generated files inside CodeLite's " #~ "project" #~ msgstr "选择虚拟目录,用于放置 CodeLite 项目中生成的文件" -#~ msgid "Use underscores ('_') to separate between word captilizations " -#~ msgstr "使用下划线(”_“)分割单词间隔" - #~ msgid "Build Information:" #~ msgstr "构建信息:" @@ -17964,7 +19239,7 @@ #~ msgstr "CodeLite - 修订版本:" #~ msgid "Find Type In Workspace" -#~ msgstr "在工作空间搜索类型" +#~ msgstr "在工作区搜索类型" #~ msgid "Update Number of Build Processes" #~ msgstr "更新构建进程数目" @@ -17983,7 +19258,7 @@ #~ "This means that CodeLite will *NOT* be able to offer any code completion " #~ "for non-workspace files (e.g. string.h).\n" #~ msgstr "" -#~ "这意味着 CodeLite *不*能为非工作空间的文件提供代码补全(例如:string.h)\n" +#~ "这意味着 CodeLite *不*能为非工作区的文件提供代码补全(例如:string.h)\n" #~ msgid "To fix this, please set search paths for the parser\n" #~ msgstr "为修正这个,请为分析器设置搜索路径\n" @@ -17999,9 +19274,6 @@ #~ msgid "Quick Links:" #~ msgstr "快速链接:" -#~ msgid "CodeLite Wiki" -#~ msgstr "CodeLite Wiki" - #~ msgid "" #~ "Info: CodeLite is up-to-date (or newer), version used: %d, version on " #~ "site:%d" @@ -18019,24 +19291,12 @@ #~ msgid "Show from beginning of errors list" #~ msgstr "从开头显示错误列表" -#~ msgid "When build starts" -#~ msgstr "当构建开始时" - -#~ msgid "When build ends" -#~ msgstr "当构建结束时" - #~ msgid "Compiler errors / warnings shown in text annotations" #~ msgstr "在文本注释中显示编译器错误/警告" -#~ msgid "Auto Complete Braces" -#~ msgstr "自动补全括号" - #~ msgid "Search Tasks in:" #~ msgstr "搜索任务于:" -#~ msgid "Apply to all Files" -#~ msgstr "应用于全部文件" - #~ msgid "Virtual Directory Name:" #~ msgstr "虚拟目录名称:" @@ -18119,9 +19379,6 @@ #~ msgid "Find Previous Match" #~ msgstr "查找上一个匹配" -#~ msgid "Highlight All Matches" -#~ msgstr "高亮全部匹配" - #~ msgid " For no limit, set it to 0" #~ msgstr "没有限制时,设置为 0" @@ -18167,9 +19424,6 @@ #~ msgid "Specify here the pre-compiled header to use" #~ msgstr "这里指定要使用的预编译头文件" -#~ msgid "Library Paths:" -#~ msgstr "库文件路径:" - #~ msgid "" #~ "You may override the global debugger executable path, by selecting " #~ "another one here.\n" @@ -18188,7 +19442,7 @@ #~ "ONLY" #~ msgstr "" #~ "添加搜索路径到代码补全解析器。\n" -#~ "这个搜索路径仅用于为此工作空间定位包含文件" +#~ "这个搜索路径仅用于为此工作区定位包含文件" #~ msgid "&Remove" #~ msgstr "移除(&R)" @@ -18199,7 +19453,7 @@ #~ "include files for this workspace ONLY" #~ msgstr "" #~ "添加排除路径到代码补全分析器。\n" -#~ "CodeLite 将在为此工作空间扫描包含文件时忽略这些路径下面的文件" +#~ "CodeLite 将在为此工作区扫描包含文件时忽略这些路径下面的文件" #~ msgid "Parser Include Files" #~ msgstr "分析器包含文件" @@ -18222,9 +19476,6 @@ #~ msgid "unlimited" #~ msgstr "无限制" -#~ msgid "Edit target" -#~ msgstr "编辑目标" - #~ msgid "Adjust number of build processes according to CPU" #~ msgstr "根据 CPU 调整构建进程数" @@ -18234,9 +19485,6 @@ #~ msgid "Wrap around 'Find' operation" #~ msgstr "重复“查找”操作" -#~ msgid "Always Build before debugging" -#~ msgstr "总在调试前构建" - #~ msgid "If swapped file does not exist, create one" #~ msgstr "如果交换文件不存在,创建之" @@ -18277,9 +19525,6 @@ #~ msgid "Show Item Comments" #~ msgstr "显示项评论" -#~ msgid "Environment Variable" -#~ msgstr "环境变量" - #~ msgid "Display Variable" #~ msgstr "显示变量" @@ -18310,15 +19555,9 @@ #~ msgid "KP_DOWN" #~ msgstr "KP_DOWN" -#~ msgid "KP_PRIOR" -#~ msgstr "KP_PRIOR" - #~ msgid "KP_PAGEUP" #~ msgstr "KP_PAGEUP" -#~ msgid "KP_NEXT" -#~ msgstr "KP_NEXT" - #~ msgid "KP_PAGEDOWN" #~ msgstr "KP_PAGEDOWN" @@ -18394,6 +19633,9 @@ #~ msgid ". Commands: %s" #~ msgstr "。命令:%s" +#~ msgid "Select the breakpoint that you want to alter" +#~ msgstr "选择您要改变的断点" + #~ msgid "Select the breakpoint to have its ignore-count changed" #~ msgstr "选择要改变忽略计数器的断点" @@ -18409,12 +19651,6 @@ #~ msgid "Root" #~ msgstr "根" -#~ msgid "read only" -#~ msgstr "只读" - -#~ msgid "read-write" -#~ msgstr "读写" - #~ msgid "Build ended with %d errors" #~ msgstr "构建结束,有 %d 个错误" @@ -18454,23 +19690,17 @@ #~ msgstr "在文件浏览器里面把用于贡献到标签文件的文件和目录标记为黑体" #~ msgid "Retag workspace on workspace startup" -#~ msgstr "在工作空间启动时重建标签文件" +#~ msgstr "在工作区启动时重建标签文件" #~ msgid "Disable auto parsing of saved files" #~ msgstr "禁用自动分析已保存文件" -#~ msgid "Maixmum number of *workspace* symbols to colour:" -#~ msgstr "工作空间符号最大着色数目:" - #~ msgid "Clea&r All" #~ msgstr "清除全部(&r)" #~ msgid "Bookmarks & Breakpoints" #~ msgstr "书签和断点" -#~ msgid "Dialogs" -#~ msgstr "对话框" - #~ msgid "Please wait, scanning directory..." #~ msgstr "请稍候,扫描目录..." @@ -18478,7 +19708,7 @@ #~ msgstr "不(&N)" #~ msgid "Workspace file" -#~ msgstr "工作空间文件" +#~ msgstr "工作区文件" #~ msgid "Too many matches, please narrow down your search" #~ msgstr "匹配太多,请缩小搜索范围" @@ -18489,14 +19719,6 @@ #~ msgid "Use partial matching" #~ msgstr "使用部分匹配" -#~ msgid "" -#~ "Choose one of the following predefined styles.\n" -#~ "You may optionally override one or more of its settings from the Custom " -#~ "page" -#~ msgstr "" -#~ "选择一个已定义的风格。\n" -#~ "您可以在自定义页面选择覆盖一个或多个设置" - #~ msgid "Custom" #~ msgstr "自定义" @@ -18512,18 +19734,12 @@ #~ msgid "Check if there are unused functions" #~ msgstr "检查是否有未使用函数" -#~ msgid "svn" -#~ msgstr "svn" - #~ msgid "SVN_REVISION" #~ msgstr "SVN_REVISION" #~ msgid "BASE" #~ msgstr "BASE" -#~ msgid "Visible After Indent" -#~ msgstr "缩进后可见" - #~ msgid "Find &Type..." #~ msgstr "查找类型(&T)" @@ -18539,14 +19755,5 @@ #~ msgid "&Debug" #~ msgstr "调试(&D)" -#~ msgid "Disable All Breakpoints" -#~ msgstr "禁用全部断点" - -#~ msgid "Enable All Breakpoints" -#~ msgstr "启用全部断点" - -#~ msgid "&Debugger Settings..." -#~ msgstr "调试器设置(&D)..." - #~ msgid "' =====\n" #~ msgstr "“ =====\n" diff -Nru codelite-8.0.1+dfsg2/Tweaks/CMakeLists.txt codelite-9.0+dfsg/Tweaks/CMakeLists.txt --- codelite-8.0.1+dfsg2/Tweaks/CMakeLists.txt 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Tweaks/CMakeLists.txt 2015-10-11 13:56:07.000000000 +0000 @@ -26,12 +26,6 @@ add_definitions(-Winvalid-pch) endif ( USE_PCH ) -# Add RPATH -if (UNIX) -set (LINKER_OPTIONS -Wl,-rpath,"${PLUGINS_DIR}") -endif (UNIX) - - if (UNIX AND NOT APPLE) set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC" ) set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC" ) @@ -55,7 +49,5 @@ ${wxWidgets_LIBRARIES} libcodelite plugin - wxsqlite3 - sqlite3lib ) CL_INSTALL_PLUGIN(${PLUGIN_NAME}) diff -Nru codelite-8.0.1+dfsg2/Tweaks/tweaks.cpp codelite-9.0+dfsg/Tweaks/tweaks.cpp --- codelite-8.0.1+dfsg2/Tweaks/tweaks.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Tweaks/tweaks.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -35,12 +35,16 @@ static int ID_TWEAKS_SETTINGS = ::wxNewId(); -#define TWEAKS_ENABLED_EVENT_HANDLER() if ( !m_settings.IsEnableTweaks() || !WorkspaceST::Get()->IsOpen() ) { e.Skip(); return; } +#define TWEAKS_ENABLED_EVENT_HANDLER() \ + if(!m_settings.IsEnableTweaks() || !clCxxWorkspaceST::Get()->IsOpen()) { \ + e.Skip(); \ + return; \ + } -//Define the plugin entry point -extern "C" EXPORT IPlugin *CreatePlugin(IManager *manager) +// Define the plugin entry point +extern "C" EXPORT IPlugin* CreatePlugin(IManager* manager) { - if (thePlugin == 0) { + if(thePlugin == 0) { thePlugin = new Tweaks(manager); } return thePlugin; @@ -51,70 +55,75 @@ PluginInfo info; info.SetAuthor(wxT("eran")); info.SetName(wxT("Tweaks")); - info.SetDescription(wxT("Tweak codelite")); + info.SetDescription(_("Tweak codelite")); info.SetVersion(wxT("v1.0")); return info; } -extern "C" EXPORT int GetPluginInterfaceVersion() -{ - return PLUGIN_INTERFACE_VERSION; -} +extern "C" EXPORT int GetPluginInterfaceVersion() { return PLUGIN_INTERFACE_VERSION; } -Tweaks::Tweaks(IManager *manager) +Tweaks::Tweaks(IManager* manager) : IPlugin(manager) { wxPGInitResourceModule(); // Or we crash... - - m_longName = wxT("Tweak codelite"); + + m_longName = _("Tweak codelite"); m_shortName = wxT("Tweaks"); - - m_mgr->GetTheApp()->Connect(ID_TWEAKS_SETTINGS, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(Tweaks::OnSettings), NULL, this); + + m_mgr->GetTheApp()->Connect( + ID_TWEAKS_SETTINGS, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(Tweaks::OnSettings), NULL, this); EventNotifier::Get()->Connect(wxEVT_COLOUR_TAB, clColourEventHandler(Tweaks::OnColourTab), NULL, this); EventNotifier::Get()->Connect(wxEVT_WORKSPACE_LOADED, wxCommandEventHandler(Tweaks::OnWorkspaceLoaded), NULL, this); EventNotifier::Get()->Connect(wxEVT_WORKSPACE_CLOSED, wxCommandEventHandler(Tweaks::OnWorkspaceClosed), NULL, this); - EventNotifier::Get()->Connect(wxEVT_WORKSPACE_VIEW_BUILD_STARTING, clCommandEventHandler(Tweaks::OnFileViewBuildTree), NULL, this); - EventNotifier::Get()->Connect(wxEVT_WORKSPACE_VIEW_CUSTOMIZE_PROJECT, clColourEventHandler(Tweaks::OnCustomizeProject), NULL, this); - EventNotifier::Get()->Connect(wxEVT_GET_TAB_BORDER_COLOUR, clColourEventHandler(Tweaks::OnTabBorderColour), NULL, this); + EventNotifier::Get()->Connect( + wxEVT_WORKSPACE_VIEW_BUILD_STARTING, clCommandEventHandler(Tweaks::OnFileViewBuildTree), NULL, this); + EventNotifier::Get()->Connect( + wxEVT_WORKSPACE_VIEW_CUSTOMIZE_PROJECT, clColourEventHandler(Tweaks::OnCustomizeProject), NULL, this); + EventNotifier::Get()->Connect( + wxEVT_GET_TAB_BORDER_COLOUR, clColourEventHandler(Tweaks::OnTabBorderColour), NULL, this); } void Tweaks::UnPlug() { - m_mgr->GetTheApp()->Disconnect(ID_TWEAKS_SETTINGS, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(Tweaks::OnSettings), NULL, this); + m_mgr->GetTheApp()->Disconnect( + ID_TWEAKS_SETTINGS, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(Tweaks::OnSettings), NULL, this); EventNotifier::Get()->Disconnect(wxEVT_COLOUR_TAB, clColourEventHandler(Tweaks::OnColourTab), NULL, this); - EventNotifier::Get()->Disconnect(wxEVT_WORKSPACE_LOADED, wxCommandEventHandler(Tweaks::OnWorkspaceLoaded), NULL, this); - EventNotifier::Get()->Disconnect(wxEVT_WORKSPACE_CLOSED, wxCommandEventHandler(Tweaks::OnWorkspaceClosed), NULL, this); - EventNotifier::Get()->Disconnect(wxEVT_WORKSPACE_VIEW_BUILD_STARTING, clCommandEventHandler(Tweaks::OnFileViewBuildTree), NULL, this); - EventNotifier::Get()->Disconnect(wxEVT_WORKSPACE_VIEW_CUSTOMIZE_PROJECT, clColourEventHandler(Tweaks::OnCustomizeProject), NULL, this); - EventNotifier::Get()->Disconnect(wxEVT_GET_TAB_BORDER_COLOUR, clColourEventHandler(Tweaks::OnTabBorderColour), NULL, this); + EventNotifier::Get()->Disconnect( + wxEVT_WORKSPACE_LOADED, wxCommandEventHandler(Tweaks::OnWorkspaceLoaded), NULL, this); + EventNotifier::Get()->Disconnect( + wxEVT_WORKSPACE_CLOSED, wxCommandEventHandler(Tweaks::OnWorkspaceClosed), NULL, this); + EventNotifier::Get()->Disconnect( + wxEVT_WORKSPACE_VIEW_BUILD_STARTING, clCommandEventHandler(Tweaks::OnFileViewBuildTree), NULL, this); + EventNotifier::Get()->Disconnect( + wxEVT_WORKSPACE_VIEW_CUSTOMIZE_PROJECT, clColourEventHandler(Tweaks::OnCustomizeProject), NULL, this); + EventNotifier::Get()->Disconnect( + wxEVT_GET_TAB_BORDER_COLOUR, clColourEventHandler(Tweaks::OnTabBorderColour), NULL, this); } -Tweaks::~Tweaks() -{ -} +Tweaks::~Tweaks() {} -clToolBar *Tweaks::CreateToolBar(wxWindow *parent) +clToolBar* Tweaks::CreateToolBar(wxWindow* parent) { // Create the toolbar to be used by the plugin - clToolBar *tb(NULL); + clToolBar* tb(NULL); return tb; } -void Tweaks::CreatePluginMenu(wxMenu *pluginsMenu) +void Tweaks::CreatePluginMenu(wxMenu* pluginsMenu) { wxUnusedVar(pluginsMenu); - wxMenu *menu = new wxMenu; + wxMenu* menu = new wxMenu; menu->Append(ID_TWEAKS_SETTINGS, _("Settings...")); pluginsMenu->AppendSubMenu(menu, _("Tweaks Plugin")); } -void Tweaks::HookPopupMenu(wxMenu *menu, MenuType type) +void Tweaks::HookPopupMenu(wxMenu* menu, MenuType type) { wxUnusedVar(menu); wxUnusedVar(type); } -void Tweaks::UnHookPopupMenu(wxMenu *menu, MenuType type) +void Tweaks::UnHookPopupMenu(wxMenu* menu, MenuType type) { wxUnusedVar(menu); wxUnusedVar(type); @@ -123,11 +132,11 @@ void Tweaks::OnSettings(wxCommandEvent& e) { wxUnusedVar(e); - TweaksSettingsDlg dlg( m_mgr->GetTheApp()->GetTopWindow() ); - if ( dlg.ShowModal() == wxID_OK ) { + TweaksSettingsDlg dlg(m_mgr->GetTheApp()->GetTopWindow()); + if(dlg.ShowModal() == wxID_OK) { dlg.GetSettings().Save(); } - + m_settings.Load(); // Refresh our cached settings // Refresh the drawings m_mgr->GetTheApp()->GetTopWindow()->Refresh(); @@ -135,51 +144,41 @@ void Tweaks::OnColourTab(clColourEvent& e) { -#ifdef __WXGTK__ -#if CL_USE_NATIVEBOOK - // Not supported with native notebooks - e.Skip(); - return; -#endif -#endif - TWEAKS_ENABLED_EVENT_HANDLER(); - - IEditor* editor = FindEditorByPage( e.GetPage() ); - if ( !editor ) { - - if ( m_settings.GetGlobalFgColour().IsOk() && m_settings.GetGlobalBgColour().IsOk() ) { + + IEditor* editor = FindEditorByPage(e.GetPage()); + if(!editor) { + if(m_settings.GetGlobalFgColour().IsOk() && m_settings.GetGlobalBgColour().IsOk()) { // Non editor tab - e.SetBgColour( /*e.IsActiveTab() ? EditorConfigST::Get()->GetCurrentOutputviewBgColour() : */m_settings.GetGlobalBgColour() ); - e.SetFgColour( /*e.IsActiveTab() ? EditorConfigST::Get()->GetCurrentOutputviewFgColour() : */m_settings.GetGlobalFgColour() ); - + e.SetBgColour(m_settings.GetGlobalBgColour()); + e.SetFgColour(m_settings.GetGlobalFgColour()); + } else { e.Skip(); } - + } else { - - const ProjectTweaks& tw = m_settings.GetProjectTweaks( editor->GetProjectName() ); - if ( tw.IsOk() ) { - e.SetBgColour( /*e.IsActiveTab() ? EditorConfigST::Get()->GetCurrentOutputviewBgColour() : */tw.GetTabBgColour() ); - e.SetFgColour( /*e.IsActiveTab() ? EditorConfigST::Get()->GetCurrentOutputviewFgColour() : */tw.GetTabFgColour() ); - - } else if ( m_settings.GetGlobalBgColour().IsOk() && m_settings.GetGlobalFgColour().IsOk() ) { - e.SetBgColour( /*e.IsActiveTab() ? EditorConfigST::Get()->GetCurrentOutputviewBgColour() : */m_settings.GetGlobalBgColour() ); - e.SetFgColour( /*e.IsActiveTab() ? EditorConfigST::Get()->GetCurrentOutputviewFgColour() : */m_settings.GetGlobalFgColour() ); - + + const ProjectTweaks& tw = m_settings.GetProjectTweaks(editor->GetProjectName()); + if(tw.IsOk()) { + e.SetBgColour(tw.GetTabBgColour()); + e.SetFgColour(tw.GetTabFgColour()); + + } else if(m_settings.GetGlobalBgColour().IsOk() && m_settings.GetGlobalFgColour().IsOk()) { + e.SetBgColour(m_settings.GetGlobalBgColour()); + e.SetFgColour(m_settings.GetGlobalFgColour()); + } else { e.Skip(); } - } } IEditor* Tweaks::FindEditorByPage(wxWindow* page) { - for(size_t i=0; iGetPageCount(); ++i) { - if ( m_mgr->GetPage(i) == page ) { - return dynamic_cast( m_mgr->GetPage(i) ); + for(size_t i = 0; i < m_mgr->GetPageCount(); ++i) { + if(m_mgr->GetPage(i) == page) { + return dynamic_cast(m_mgr->GetPage(i)); } } return NULL; @@ -205,53 +204,53 @@ { TWEAKS_ENABLED_EVENT_HANDLER(); m_project2Icon.clear(); - if ( m_settings.GetProjects().empty() ) { + if(m_settings.GetProjects().empty()) { e.Skip(); return; } - + // See if we got a new image for a project - wxImageList *images = new wxImageList(16, 16); - wxImageList *old_images = m_mgr->GetTree(TreeFileView)->GetImageList(); - + wxImageList* images = new wxImageList(16, 16); + wxImageList* old_images = m_mgr->GetTree(TreeFileView)->GetImageList(); + // Copy the old images to the new one - for(int i=0; iGetImageCount(); ++i) { - images->Add( old_images->GetIcon(i) ); + for(int i = 0; i < old_images->GetImageCount(); ++i) { + images->Add(old_images->GetIcon(i)); } - + ProjectTweaks::Map_t::const_iterator iter = m_settings.GetProjects().begin(); - for(; iter != m_settings.GetProjects().end(); ++iter ) { + for(; iter != m_settings.GetProjects().end(); ++iter) { wxString bmpfile = iter->second.GetBitmapFilename(); bmpfile.Trim().Trim(false); - if ( bmpfile.IsEmpty() ) { + if(bmpfile.IsEmpty()) { continue; } wxBitmap bmp(bmpfile, wxBITMAP_TYPE_ANY); - if ( bmp.IsOk() ) { + if(bmp.IsOk()) { wxIcon icn; - icn.CopyFromBitmap( bmp ); - int index = images->Add( icn ); - m_project2Icon.insert( std::make_pair(iter->first, index) ); + icn.CopyFromBitmap(bmp); + int index = images->Add(icn); + m_project2Icon.insert(std::make_pair(iter->first, index)); } } - - if ( m_project2Icon.empty() ) { + + if(m_project2Icon.empty()) { e.Skip(); wxDELETE(images); - + } else { // send back the new image list - e.SetClientData( images ); + e.SetClientData(images); } } void Tweaks::OnCustomizeProject(clColourEvent& e) { TWEAKS_ENABLED_EVENT_HANDLER(); - if ( m_project2Icon.count(e.GetString()) ) { + if(m_project2Icon.count(e.GetString())) { // We got a new icon for this project! - e.SetInt( m_project2Icon.find(e.GetString())->second ); - + e.SetInt(m_project2Icon.find(e.GetString())->second); + } else { e.Skip(); } @@ -267,10 +266,10 @@ #endif #endif TWEAKS_ENABLED_EVENT_HANDLER(); - - if ( m_settings.GetGlobalBgColour().IsOk() ) { + + if(m_settings.GetGlobalBgColour().IsOk()) { // return the tab colour - e.SetBorderColour( DrawingUtils::DarkColour(m_settings.GetGlobalBgColour(), 1.5) ); + e.SetBorderColour(DrawingUtils::DarkColour(m_settings.GetGlobalBgColour(), 1.5)); } else { e.Skip(); } diff -Nru codelite-8.0.1+dfsg2/Tweaks/tweaks_settings.cpp codelite-9.0+dfsg/Tweaks/tweaks_settings.cpp --- codelite-8.0.1+dfsg2/Tweaks/tweaks_settings.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Tweaks/tweaks_settings.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -82,11 +82,11 @@ TweaksSettings& TweaksSettings::Load() { // Get the file name - if(!WorkspaceST::Get()->IsOpen()) { + if(!clCxxWorkspaceST::Get()->IsOpen()) { return *this; } - wxFileName fn(WorkspaceST::Get()->GetPrivateFolder(), "tweaks.conf"); + wxFileName fn(clCxxWorkspaceST::Get()->GetPrivateFolder(), "tweaks.conf"); clConfig conf( fn.GetFullPath() ); conf.ReadItem( this ); return *this; @@ -94,10 +94,10 @@ void TweaksSettings::Save() { - if(!WorkspaceST::Get()->IsOpen()) { + if(!clCxxWorkspaceST::Get()->IsOpen()) { return; } - wxFileName fn(WorkspaceST::Get()->GetPrivateFolder(), "tweaks.conf"); + wxFileName fn(clCxxWorkspaceST::Get()->GetPrivateFolder(), "tweaks.conf"); clConfig conf( fn.GetFullPath() ); conf.WriteItem( this ); } diff -Nru codelite-8.0.1+dfsg2/Tweaks/TweaksSettingsDlg.cpp codelite-9.0+dfsg/Tweaks/TweaksSettingsDlg.cpp --- codelite-8.0.1+dfsg2/Tweaks/TweaksSettingsDlg.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Tweaks/TweaksSettingsDlg.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -52,7 +52,7 @@ void TweaksSettingsDlg::OnWorkspaceOpenUI(wxUpdateUIEvent& event) { - event.Enable( WorkspaceST::Get()->IsOpen() ); + event.Enable( clCxxWorkspaceST::Get()->IsOpen() ); } void TweaksSettingsDlg::DoPopulateList() @@ -60,7 +60,7 @@ m_colourProperties.clear(); // Get list of projects wxArrayString projects; - WorkspaceST::Get()->GetProjectList( projects ); + clCxxWorkspaceST::Get()->GetProjectList( projects ); // ---------------------------------------------------------------------- // Add tab colours properties @@ -112,12 +112,12 @@ void TweaksSettingsDlg::OnEnableTweaksUI(wxUpdateUIEvent& event) { - event.Enable( m_checkBoxEnableTweaks->IsChecked() && WorkspaceST::Get()->IsOpen() ); + event.Enable( m_checkBoxEnableTweaks->IsChecked() && clCxxWorkspaceST::Get()->IsOpen() ); } void TweaksSettingsDlg::OnEnableTweaksCheckboxUI(wxUpdateUIEvent& event) { - event.Enable( WorkspaceST::Get()->IsOpen() ); + event.Enable( clCxxWorkspaceST::Get()->IsOpen() ); } void TweaksSettingsDlg::OnColourChanged(wxPropertyGridEvent& event) @@ -193,5 +193,5 @@ #endif #endif - event.Enable( m_checkBoxEnableTweaks->IsChecked() && WorkspaceST::Get()->IsOpen() ); + event.Enable( m_checkBoxEnableTweaks->IsChecked() && clCxxWorkspaceST::Get()->IsOpen() ); } diff -Nru codelite-8.0.1+dfsg2/Tweaks/wxcrafter.cpp codelite-9.0+dfsg/Tweaks/wxcrafter.cpp --- codelite-8.0.1+dfsg2/Tweaks/wxcrafter.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Tweaks/wxcrafter.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,28 +1,3 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2014 The CodeLite Team -// file name : wxcrafter.cpp -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - ////////////////////////////////////////////////////////////////////// // This file was auto-generated by codelite's wxCrafter Plugin // wxCrafter project file: wxcrafter.wxcp @@ -57,6 +32,7 @@ boxSizer2->Add(m_checkBoxEnableTweaks, 0, wxALL, 5); m_notebook12 = new wxNotebook(this, wxID_ANY, wxDefaultPosition, wxSize(400,-1), wxBK_DEFAULT); + m_notebook12->SetName(wxT("m_notebook12")); boxSizer2->Add(m_notebook12, 1, wxALL|wxEXPAND, 5); @@ -136,7 +112,7 @@ m_button8 = new wxButton(this, wxID_CANCEL, _("&Cancel"), wxDefaultPosition, wxSize(-1,-1), 0); - boxSizer4->Add(m_button8, 0, wxALL|wxALIGN_RIGHT, 5); + boxSizer4->Add(m_button8, 0, wxALL, 5); m_button88 = new wxButton(this, wxID_OK, _("&OK"), wxDefaultPosition, wxSize(-1,-1), 0); m_button88->SetDefault(); @@ -144,11 +120,28 @@ boxSizer4->Add(m_button88, 0, wxALL, 5); + + #if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(m_notebook12)){ + wxPersistenceManager::Get().RegisterAndRestore(m_notebook12); + } else { + wxPersistenceManager::Get().Restore(m_notebook12); + } + #endif + + SetName(wxT("TweaksSettingsDlgBase")); SetSizeHints(-1,-1); if ( GetSizer() ) { GetSizer()->Fit(this); } - Centre(wxBOTH); + CentreOnParent(wxBOTH); +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(this)) { + wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); + } +#endif // Connect events m_checkBoxEnableTweaks->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(TweaksSettingsDlgBase::OnEnableTweaks), NULL, this); m_checkBoxEnableTweaks->Connect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(TweaksSettingsDlgBase::OnEnableTweaksCheckboxUI), NULL, this); diff -Nru codelite-8.0.1+dfsg2/Tweaks/wxcrafter.h codelite-9.0+dfsg/Tweaks/wxcrafter.h --- codelite-8.0.1+dfsg2/Tweaks/wxcrafter.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Tweaks/wxcrafter.h 2015-10-11 13:56:07.000000000 +0000 @@ -1,36 +1,11 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2014 The CodeLite Team -// file name : wxcrafter.h -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - ////////////////////////////////////////////////////////////////////// // This file was auto-generated by codelite's wxCrafter Plugin // wxCrafter project file: wxcrafter.wxcp // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// -#ifndef WXCRAFTER_BASE_CLASSES_H -#define WXCRAFTER_BASE_CLASSES_H +#ifndef CODELITE_TWEAKS_WXCRAFTER_BASE_CLASSES_H +#define CODELITE_TWEAKS_WXCRAFTER_BASE_CLASSES_H #include #include @@ -48,6 +23,12 @@ #include #include #include +#if wxVERSION_NUMBER >= 2900 +#include +#include +#include +#include +#endif class TweaksSettingsDlgBase : public wxDialog { @@ -79,6 +60,17 @@ virtual void OnImageSelected(wxPropertyGridEvent& event) { event.Skip(); } public: + wxCheckBox* GetCheckBoxEnableTweaks() { return m_checkBoxEnableTweaks; } + wxBannerWindow* GetBanner136() { return m_banner136; } + wxPropertyGridManager* GetPgMgrTabColours() { return m_pgMgrTabColours; } + wxButton* GetButton124() { return m_button124; } + wxPanel* GetTabEditorTabsColours() { return m_tabEditorTabsColours; } + wxBannerWindow* GetBanner138() { return m_banner138; } + wxPropertyGridManager* GetPgMgr() { return m_pgMgr; } + wxPanel* GetTabProjectIcons() { return m_tabProjectIcons; } + wxNotebook* GetNotebook12() { return m_notebook12; } + wxButton* GetButton8() { return m_button8; } + wxButton* GetButton88() { return m_button88; } TweaksSettingsDlgBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Tweaks Setting"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER); virtual ~TweaksSettingsDlgBase(); }; diff -Nru codelite-8.0.1+dfsg2/Tweaks/wxcrafter_tweaks_bitmaps.cpp codelite-9.0+dfsg/Tweaks/wxcrafter_tweaks_bitmaps.cpp --- codelite-8.0.1+dfsg2/Tweaks/wxcrafter_tweaks_bitmaps.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Tweaks/wxcrafter_tweaks_bitmaps.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,28 +1,3 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2014 The CodeLite Team -// file name : wxcrafter_tweaks_bitmaps.cpp -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - // // This file was automatically generated by wxrc, do not edit by hand. // @@ -46,14 +21,13 @@ wxMemoryFSHandler::AddFile(name, data, size) #endif -static size_t xml_res_size_0 = 108; +static size_t xml_res_size_0 = 90; static unsigned char xml_res_file_0[] = { 60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, 110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, 115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, 47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, -47,119,120,120,114,99,34,32,118,101,114,115,105,111,110,61,34,50,46,51, -46,48,46,49,34,47,62,10}; +47,119,120,120,114,99,34,47,62,10}; void wxC94E6InitBitmapResources() { diff -Nru codelite-8.0.1+dfsg2/Tweaks/wxcrafter.wxcp codelite-9.0+dfsg/Tweaks/wxcrafter.wxcp --- codelite-8.0.1+dfsg2/Tweaks/wxcrafter.wxcp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/Tweaks/wxcrafter.wxcp 2015-10-11 13:56:07.000000000 +0000 @@ -1,1507 +1,1554 @@ { - "metadata": { - "m_generatedFilesDir": ".", - "m_objCounter": 138, - "m_includeFiles": [], - "m_bitmapFunction": "wxC94E6InitBitmapResources", - "m_bitmapsFile": "wxcrafter_tweaks_bitmaps.cpp", - "m_GenerateCodeTypes": 1, - "m_outputFileName": "", - "m_firstWindowId": 1000, - "m_useEnum": false, - "m_templateClasses": [] - }, - "windows": [{ - "m_type": 4421, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": ["wxDEFAULT_DIALOG_STYLE", "wxRESIZE_BORDER"], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "TweaksSettingsDlgBase" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Title:", - "m_value": "Tweaks Setting" - }, { - "type": "virtualFolderPicker", - "m_label": "Virtual Folder:", - "m_path": "Tweaks:UI" - }, { - "type": "choice", - "m_label": "Centre:", - "m_selection": 1, - "m_options": ["", "wxBOTH", "wxVERTICAL", "wxHORIZONTAL"] - }, { - "type": "string", - "m_label": "Inherited Class", - "m_value": "TweaksSettingsDlg" - }, { - "type": "string", - "m_label": "File:", - "m_value": "TweaksSettingsDlg" - }, { - "type": "string", - "m_label": "Class Decorator", - "m_value": "" - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File (16x16) :", - "m_path": "" - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File (32x32) :", - "m_path": "" - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File (64x64) :", - "m_path": "" - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File (128x128):", - "m_path": "" - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File (256x256):", - "m_path": "" - }], - "m_events": [], - "m_children": [{ - "m_type": 4401, - "proportion": 1, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "boxSizer2" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4415, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_checkBoxEnableTweaks" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "Enable Tweaks" - }, { - "type": "bool", - "m_label": "Value:", - "m_value": false - }], - "m_events": [{ - "m_eventName": "wxEVT_COMMAND_CHECKBOX_CLICKED", - "m_eventClass": "wxCommandEvent", - "m_eventHandler": "wxCommandEventHandler", - "m_functionNameAndSignature": "OnEnableTweaks(wxCommandEvent& event)", - "m_description": "Process a wxEVT_COMMAND_CHECKBOX_CLICKED event, when the checkbox is clicked.", - "m_noBody": false - }, { - "m_eventName": "wxEVT_UPDATE_UI", - "m_eventClass": "wxUpdateUIEvent", - "m_eventHandler": "wxUpdateUIEventHandler", - "m_functionNameAndSignature": "OnEnableTweaksCheckboxUI(wxUpdateUIEvent& event)", - "m_description": "Process a wxEVT_UPDATE_UI event", - "m_noBody": false - }], - "m_children": [] - }, { - "m_type": 4442, - "proportion": 1, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": ["wxBK_DEFAULT"], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "400,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_notebook12" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }], - "m_events": [{ - "m_eventName": "wxEVT_UPDATE_UI", - "m_eventClass": "wxUpdateUIEvent", - "m_eventHandler": "wxUpdateUIEventHandler", - "m_functionNameAndSignature": "OnEnableTweaksUI(wxUpdateUIEvent& event)", - "m_description": "Process a wxEVT_UPDATE_UI event", - "m_noBody": false - }], - "m_children": [{ - "m_type": 4441, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": ["wxTAB_TRAVERSAL"], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_tabEditorTabsColours" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "Editor Tabs" - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File:", - "m_path": "" - }, { - "type": "bool", - "m_label": "Selected", - "m_value": true - }, { - "type": "bool", - "m_label": "Null Page", - "m_value": false - }], - "m_events": [], - "m_children": [{ - "m_type": 4401, - "proportion": 1, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "boxSizer126" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4471, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": ["wxBORDER_THEME"], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_banner136" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "TooltipText" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Title:", - "m_value": "Configure Editor Tab Colours" - }, { - "type": "multi-string", - "m_label": "Message:", - "m_value": "Customize your editor tab colours globally or per project" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["wxTOP", "wxBOTTOM", "wxLEFT", "wxRIGHT"] - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File:", - "m_path": "" - }, { - "type": "colour", - "m_label": "Gradient Start", - "colour": "Tooltip" - }, { - "type": "colour", - "m_label": "Gradient End", - "colour": "Tooltip" - }], - "m_events": [{ - "m_eventName": "wxEVT_UPDATE_UI", - "m_eventClass": "wxUpdateUIEvent", - "m_eventHandler": "wxUpdateUIEventHandler", - "m_functionNameAndSignature": "OnEnableColoursTableUI(wxUpdateUIEvent& event)", - "m_description": "Process a wxEVT_UPDATE_UI event", - "m_noBody": false - }], - "m_children": [] - }, { - "m_type": 4485, - "proportion": 1, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": ["wxPG_SPLITTER_AUTO_CENTER", "wxPG_BOLD_MODIFIED"], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_pgMgrTabColours" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "integer", - "m_label": "Sash Position:", - "m_value": -1 - }], - "m_events": [{ - "m_eventName": "wxEVT_PG_CHANGED", - "m_eventClass": "wxPropertyGridEvent", - "m_eventHandler": "wxPropertyGridEventHandler", - "m_functionNameAndSignature": "OnColourChanged(wxPropertyGridEvent& event)", - "m_description": "Respond to wxEVT_PG_CHANGED event, generated when property value has been changed by the user", - "m_noBody": false - }, { - "m_eventName": "wxEVT_UPDATE_UI", - "m_eventClass": "wxUpdateUIEvent", - "m_eventHandler": "wxUpdateUIEventHandler", - "m_functionNameAndSignature": "OnEnableColoursTableUI(wxUpdateUIEvent& event)", - "m_description": "Process a wxEVT_UPDATE_UI event", - "m_noBody": false - }], - "m_children": [{ - "m_type": 4486, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "m_pgProp114" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "Global Tab Colours" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "choice", - "m_label": "Property Editor Control", - "m_selection": 0, - "m_options": ["", "TextCtrl", "Choice", "ComboBox", "CheckBox", "TextCtrlAndButton", "ChoiceAndButton", "SpinCtrl", "DatePickerCtrl"] - }, { - "type": "choice", - "m_label": "Kind:", - "m_selection": 0, - "m_options": ["wxPropertyCategory", "wxIntProperty", "wxFloatProperty", "wxBoolProperty", "wxStringProperty", "wxLongStringProperty", "wxDirProperty", "wxArrayStringProperty", "wxFileProperty", "wxEnumProperty", "wxEditEnumProperty", "wxFlagsProperty", "wxDateProperty", "wxImageFileProperty", "wxFontProperty", "wxSystemColourProperty"] - }, { - "type": "string", - "m_label": "String Value", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Choices:", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Array Integer Values", - "m_value": "" - }, { - "type": "bool", - "m_label": "Bool Value", - "m_value": true - }, { - "type": "string", - "m_label": "Wildcard", - "m_value": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Initial Colour", - "colour": "" - }], - "m_events": [], - "m_children": [{ - "m_type": 4486, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "m_pgPropGlobalTabBG" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "Tab Label Background Colour" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "choice", - "m_label": "Property Editor Control", - "m_selection": 0, - "m_options": ["", "TextCtrl", "Choice", "ComboBox", "CheckBox", "TextCtrlAndButton", "ChoiceAndButton", "SpinCtrl", "DatePickerCtrl"] - }, { - "type": "choice", - "m_label": "Kind:", - "m_selection": 15, - "m_options": ["wxPropertyCategory", "wxIntProperty", "wxFloatProperty", "wxBoolProperty", "wxStringProperty", "wxLongStringProperty", "wxDirProperty", "wxArrayStringProperty", "wxFileProperty", "wxEnumProperty", "wxEditEnumProperty", "wxFlagsProperty", "wxDateProperty", "wxImageFileProperty", "wxFontProperty", "wxSystemColourProperty"] - }, { - "type": "string", - "m_label": "String Value", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Choices:", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Array Integer Values", - "m_value": "" - }, { - "type": "bool", - "m_label": "Bool Value", - "m_value": true - }, { - "type": "string", - "m_label": "Wildcard", - "m_value": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Initial Colour", - "colour": "" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4486, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "m_pgPropGlobalTabFG" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "Tab Label Text Colour" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "choice", - "m_label": "Property Editor Control", - "m_selection": 0, - "m_options": ["", "TextCtrl", "Choice", "ComboBox", "CheckBox", "TextCtrlAndButton", "ChoiceAndButton", "SpinCtrl", "DatePickerCtrl"] - }, { - "type": "choice", - "m_label": "Kind:", - "m_selection": 15, - "m_options": ["wxPropertyCategory", "wxIntProperty", "wxFloatProperty", "wxBoolProperty", "wxStringProperty", "wxLongStringProperty", "wxDirProperty", "wxArrayStringProperty", "wxFileProperty", "wxEnumProperty", "wxEditEnumProperty", "wxFlagsProperty", "wxDateProperty", "wxImageFileProperty", "wxFontProperty", "wxSystemColourProperty"] - }, { - "type": "string", - "m_label": "String Value", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Choices:", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Array Integer Values", - "m_value": "" - }, { - "type": "bool", - "m_label": "Bool Value", - "m_value": true - }, { - "type": "string", - "m_label": "Wildcard", - "m_value": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Initial Colour", - "colour": "" - }], - "m_events": [], - "m_children": [] - }] - }, { - "m_type": 4486, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "m_pgPropProjectsColours" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "Tab Colours Per Project" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "choice", - "m_label": "Property Editor Control", - "m_selection": 0, - "m_options": ["", "TextCtrl", "Choice", "ComboBox", "CheckBox", "TextCtrlAndButton", "ChoiceAndButton", "SpinCtrl", "DatePickerCtrl"] - }, { - "type": "choice", - "m_label": "Kind:", - "m_selection": 0, - "m_options": ["wxPropertyCategory", "wxIntProperty", "wxFloatProperty", "wxBoolProperty", "wxStringProperty", "wxLongStringProperty", "wxDirProperty", "wxArrayStringProperty", "wxFileProperty", "wxEnumProperty", "wxEditEnumProperty", "wxFlagsProperty", "wxDateProperty", "wxImageFileProperty", "wxFontProperty", "wxSystemColourProperty"] - }, { - "type": "string", - "m_label": "String Value", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Choices:", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Array Integer Values", - "m_value": "" - }, { - "type": "bool", - "m_label": "Bool Value", - "m_value": true - }, { - "type": "string", - "m_label": "Wildcard", - "m_value": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Initial Colour", - "colour": "" - }], - "m_events": [], - "m_children": [] - }] - }, { - "m_type": 4401, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxEXPAND"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "boxSizer122" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4400, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_CLEAR" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_button124" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "Reset colours" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "&Reset colours" - }, { - "type": "bool", - "m_label": "Default Button", - "m_value": false - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File:", - "m_path": "" - }, { - "type": "string", - "m_label": "Margins:", - "m_value": "2,2" - }], - "m_events": [{ - "m_eventName": "wxEVT_COMMAND_BUTTON_CLICKED", - "m_eventClass": "wxCommandEvent", - "m_eventHandler": "wxCommandEventHandler", - "m_functionNameAndSignature": "OnResetColours(wxCommandEvent& event)", - "m_description": "Process a wxEVT_COMMAND_BUTTON_CLICKED event, when the button is clicked.", - "m_noBody": false - }], - "m_children": [] - }] - }] - }] - }, { - "m_type": 4441, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": ["wxTAB_TRAVERSAL"], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_tabProjectIcons" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "Images" - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File:", - "m_path": "" - }, { - "type": "bool", - "m_label": "Selected", - "m_value": false - }, { - "type": "bool", - "m_label": "Null Page", - "m_value": false - }], - "m_events": [], - "m_children": [{ - "m_type": 4401, - "proportion": 1, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxEXPAND"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "boxSizer241" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4471, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": ["wxBORDER_THEME"], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_banner138" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "TooltipText" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Title:", - "m_value": "Configure Project Images" - }, { - "type": "multi-string", - "m_label": "Message:", - "m_value": "Set a different image for a every project in the workspace" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["wxTOP", "wxBOTTOM", "wxLEFT", "wxRIGHT"] - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File:", - "m_path": "" - }, { - "type": "colour", - "m_label": "Gradient Start", - "colour": "Tooltip" - }, { - "type": "colour", - "m_label": "Gradient End", - "colour": "Tooltip" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4485, - "proportion": 1, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": ["wxPG_SPLITTER_AUTO_CENTER", "wxPG_BOLD_MODIFIED"], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_pgMgr" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "integer", - "m_label": "Sash Position:", - "m_value": -1 - }], - "m_events": [{ - "m_eventName": "wxEVT_PG_CHANGED", - "m_eventClass": "wxPropertyGridEvent", - "m_eventHandler": "wxPropertyGridEventHandler", - "m_functionNameAndSignature": "OnImageSelected(wxPropertyGridEvent& event)", - "m_description": "Respond to wxEVT_PG_CHANGED event, generated when property value has been changed by the user", - "m_noBody": false - }], - "m_children": [{ - "m_type": 4486, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "m_pgPropProjects" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "Projects" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "choice", - "m_label": "Property Editor Control", - "m_selection": 0, - "m_options": ["", "TextCtrl", "Choice", "ComboBox", "CheckBox", "TextCtrlAndButton", "ChoiceAndButton", "SpinCtrl", "DatePickerCtrl"] - }, { - "type": "choice", - "m_label": "Kind:", - "m_selection": 0, - "m_options": ["wxPropertyCategory", "wxIntProperty", "wxFloatProperty", "wxBoolProperty", "wxStringProperty", "wxLongStringProperty", "wxDirProperty", "wxArrayStringProperty", "wxFileProperty", "wxEnumProperty", "wxEditEnumProperty", "wxFlagsProperty", "wxDateProperty", "wxImageFileProperty", "wxFontProperty", "wxSystemColourProperty"] - }, { - "type": "string", - "m_label": "String Value", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Choices:", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Array Integer Values", - "m_value": "" - }, { - "type": "bool", - "m_label": "Bool Value", - "m_value": true - }, { - "type": "string", - "m_label": "Wildcard", - "m_value": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Initial Colour", - "colour": "" - }], - "m_events": [], - "m_children": [] - }] - }] - }] - }] - }, { - "m_type": 4401, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_HORIZONTAL"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "boxSizer4" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 1, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4400, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_CANCEL" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_button8" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "&Cancel" - }, { - "type": "bool", - "m_label": "Default Button", - "m_value": false - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File:", - "m_path": "" - }, { - "type": "string", - "m_label": "Margins:", - "m_value": "2,2" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4400, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_OK" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_button88" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": true - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Style:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "&OK" - }, { - "type": "bool", - "m_label": "Default Button", - "m_value": true - }, { - "type": "bitmapPicker", - "m_label": "Bitmap File:", - "m_path": "" - }, { - "type": "string", - "m_label": "Margins:", - "m_value": "2,2" - }], - "m_events": [], - "m_children": [] - }] - }] - }] - }] + "metadata": { + "m_generatedFilesDir": ".", + "m_objCounter": 138, + "m_includeFiles": [], + "m_bitmapFunction": "wxC94E6InitBitmapResources", + "m_bitmapsFile": "wxcrafter_tweaks_bitmaps.cpp", + "m_GenerateCodeTypes": 1, + "m_outputFileName": "", + "m_firstWindowId": 1000, + "m_useEnum": false, + "m_templateClasses": [] + }, + "windows": [{ + "m_type": 4421, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxDEFAULT_DIALOG_STYLE", "wxRESIZE_BORDER"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "TweaksSettingsDlgBase" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Enable Window Persistency:", + "m_value": true + }, { + "type": "string", + "m_label": "Title:", + "m_value": "Tweaks Setting" + }, { + "type": "virtualFolderPicker", + "m_label": "Virtual Folder:", + "m_path": "Tweaks:UI" + }, { + "type": "choice", + "m_label": "Centre:", + "m_selection": 1, + "m_options": ["", "wxBOTH", "wxVERTICAL", "wxHORIZONTAL"] + }, { + "type": "string", + "m_label": "Inherited Class", + "m_value": "TweaksSettingsDlg" + }, { + "type": "string", + "m_label": "File:", + "m_value": "TweaksSettingsDlg" + }, { + "type": "string", + "m_label": "Class Decorator", + "m_value": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (16x16) :", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (32x32) :", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (64x64) :", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (128x128):", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (256x256):", + "m_path": "" + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "boxSizer2" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4415, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_checkBoxEnableTweaks" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Enable Tweaks" + }, { + "type": "bool", + "m_label": "Value:", + "m_value": false + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_CHECKBOX_CLICKED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnEnableTweaks(wxCommandEvent& event)", + "m_description": "Process a wxEVT_COMMAND_CHECKBOX_CLICKED event, when the checkbox is clicked.", + "m_noBody": false + }, { + "m_eventName": "wxEVT_UPDATE_UI", + "m_eventClass": "wxUpdateUIEvent", + "m_eventHandler": "wxUpdateUIEventHandler", + "m_functionNameAndSignature": "OnEnableTweaksCheckboxUI(wxUpdateUIEvent& event)", + "m_description": "Process a wxEVT_UPDATE_UI event", + "m_noBody": false + }], + "m_children": [] + }, { + "m_type": 4442, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxBK_DEFAULT"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "400,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_notebook12" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }], + "m_events": [{ + "m_eventName": "wxEVT_UPDATE_UI", + "m_eventClass": "wxUpdateUIEvent", + "m_eventHandler": "wxUpdateUIEventHandler", + "m_functionNameAndSignature": "OnEnableTweaksUI(wxUpdateUIEvent& event)", + "m_description": "Process a wxEVT_UPDATE_UI event", + "m_noBody": false + }], + "m_children": [{ + "m_type": 4441, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxTAB_TRAVERSAL"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_tabEditorTabsColours" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Editor Tabs" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "bool", + "m_label": "Selected", + "m_value": true + }, { + "type": "bool", + "m_label": "Null Page", + "m_value": false + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "boxSizer126" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4471, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxBORDER_THEME"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_banner136" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "TooltipText" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Title:", + "m_value": "Configure Editor Tab Colours" + }, { + "type": "multi-string", + "m_label": "Message:", + "m_value": "Customize your editor tab colours globally or per project" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxTOP", "wxBOTTOM", "wxLEFT", "wxRIGHT"] + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "colour", + "m_label": "Gradient Start", + "colour": "Tooltip" + }, { + "type": "colour", + "m_label": "Gradient End", + "colour": "Tooltip" + }], + "m_events": [{ + "m_eventName": "wxEVT_UPDATE_UI", + "m_eventClass": "wxUpdateUIEvent", + "m_eventHandler": "wxUpdateUIEventHandler", + "m_functionNameAndSignature": "OnEnableColoursTableUI(wxUpdateUIEvent& event)", + "m_description": "Process a wxEVT_UPDATE_UI event", + "m_noBody": false + }], + "m_children": [] + }, { + "m_type": 4485, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxPG_SPLITTER_AUTO_CENTER", "wxPG_BOLD_MODIFIED"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_pgMgrTabColours" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "integer", + "m_label": "Sash Position:", + "m_value": -1 + }, { + "type": "bool", + "m_label": "Set Splitter Left:", + "m_value": false + }], + "m_events": [{ + "m_eventName": "wxEVT_PG_CHANGED", + "m_eventClass": "wxPropertyGridEvent", + "m_eventHandler": "wxPropertyGridEventHandler", + "m_functionNameAndSignature": "OnColourChanged(wxPropertyGridEvent& event)", + "m_description": "Respond to wxEVT_PG_CHANGED event, generated when property value has been changed by the user", + "m_noBody": false + }, { + "m_eventName": "wxEVT_UPDATE_UI", + "m_eventClass": "wxUpdateUIEvent", + "m_eventHandler": "wxUpdateUIEventHandler", + "m_functionNameAndSignature": "OnEnableColoursTableUI(wxUpdateUIEvent& event)", + "m_description": "Process a wxEVT_UPDATE_UI event", + "m_noBody": false + }], + "m_children": [{ + "m_type": 4486, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "m_pgProp114" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Global Tab Colours" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "choice", + "m_label": "Property Editor Control", + "m_selection": 0, + "m_options": ["", "TextCtrl", "Choice", "ComboBox", "CheckBox", "TextCtrlAndButton", "ChoiceAndButton", "SpinCtrl", "DatePickerCtrl"] + }, { + "type": "choice", + "m_label": "Kind:", + "m_selection": 0, + "m_options": ["wxPropertyCategory", "wxIntProperty", "wxFloatProperty", "wxBoolProperty", "wxStringProperty", "wxLongStringProperty", "wxDirProperty", "wxArrayStringProperty", "wxFileProperty", "wxEnumProperty", "wxEditEnumProperty", "wxFlagsProperty", "wxDateProperty", "wxImageFileProperty", "wxFontProperty", "wxSystemColourProperty"] + }, { + "type": "string", + "m_label": "String Value", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Choices:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Array Integer Values", + "m_value": "" + }, { + "type": "bool", + "m_label": "Bool Value", + "m_value": true + }, { + "type": "string", + "m_label": "Wildcard", + "m_value": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Initial Colour", + "colour": "" + }], + "m_events": [], + "m_children": [{ + "m_type": 4486, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "m_pgPropGlobalTabBG" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Tab Label Background Colour" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "choice", + "m_label": "Property Editor Control", + "m_selection": 0, + "m_options": ["", "TextCtrl", "Choice", "ComboBox", "CheckBox", "TextCtrlAndButton", "ChoiceAndButton", "SpinCtrl", "DatePickerCtrl"] + }, { + "type": "choice", + "m_label": "Kind:", + "m_selection": 15, + "m_options": ["wxPropertyCategory", "wxIntProperty", "wxFloatProperty", "wxBoolProperty", "wxStringProperty", "wxLongStringProperty", "wxDirProperty", "wxArrayStringProperty", "wxFileProperty", "wxEnumProperty", "wxEditEnumProperty", "wxFlagsProperty", "wxDateProperty", "wxImageFileProperty", "wxFontProperty", "wxSystemColourProperty"] + }, { + "type": "string", + "m_label": "String Value", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Choices:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Array Integer Values", + "m_value": "" + }, { + "type": "bool", + "m_label": "Bool Value", + "m_value": true + }, { + "type": "string", + "m_label": "Wildcard", + "m_value": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Initial Colour", + "colour": "" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4486, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "m_pgPropGlobalTabFG" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Tab Label Text Colour" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "choice", + "m_label": "Property Editor Control", + "m_selection": 0, + "m_options": ["", "TextCtrl", "Choice", "ComboBox", "CheckBox", "TextCtrlAndButton", "ChoiceAndButton", "SpinCtrl", "DatePickerCtrl"] + }, { + "type": "choice", + "m_label": "Kind:", + "m_selection": 15, + "m_options": ["wxPropertyCategory", "wxIntProperty", "wxFloatProperty", "wxBoolProperty", "wxStringProperty", "wxLongStringProperty", "wxDirProperty", "wxArrayStringProperty", "wxFileProperty", "wxEnumProperty", "wxEditEnumProperty", "wxFlagsProperty", "wxDateProperty", "wxImageFileProperty", "wxFontProperty", "wxSystemColourProperty"] + }, { + "type": "string", + "m_label": "String Value", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Choices:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Array Integer Values", + "m_value": "" + }, { + "type": "bool", + "m_label": "Bool Value", + "m_value": true + }, { + "type": "string", + "m_label": "Wildcard", + "m_value": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Initial Colour", + "colour": "" + }], + "m_events": [], + "m_children": [] + }] + }, { + "m_type": 4486, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "m_pgPropProjectsColours" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Tab Colours Per Project" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "choice", + "m_label": "Property Editor Control", + "m_selection": 0, + "m_options": ["", "TextCtrl", "Choice", "ComboBox", "CheckBox", "TextCtrlAndButton", "ChoiceAndButton", "SpinCtrl", "DatePickerCtrl"] + }, { + "type": "choice", + "m_label": "Kind:", + "m_selection": 0, + "m_options": ["wxPropertyCategory", "wxIntProperty", "wxFloatProperty", "wxBoolProperty", "wxStringProperty", "wxLongStringProperty", "wxDirProperty", "wxArrayStringProperty", "wxFileProperty", "wxEnumProperty", "wxEditEnumProperty", "wxFlagsProperty", "wxDateProperty", "wxImageFileProperty", "wxFontProperty", "wxSystemColourProperty"] + }, { + "type": "string", + "m_label": "String Value", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Choices:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Array Integer Values", + "m_value": "" + }, { + "type": "bool", + "m_label": "Bool Value", + "m_value": true + }, { + "type": "string", + "m_label": "Wildcard", + "m_value": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Initial Colour", + "colour": "" + }], + "m_events": [], + "m_children": [] + }] + }, { + "m_type": 4401, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "boxSizer122" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4400, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_CLEAR" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_button124" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "Reset colours" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "&Reset colours" + }, { + "type": "bool", + "m_label": "Default Button", + "m_value": false + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Direction", + "m_selection": 0, + "m_options": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"] + }, { + "type": "string", + "m_label": "Margins:", + "m_value": "2,2" + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_BUTTON_CLICKED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnResetColours(wxCommandEvent& event)", + "m_description": "Process a wxEVT_COMMAND_BUTTON_CLICKED event, when the button is clicked.", + "m_noBody": false + }], + "m_children": [] + }] + }] + }] + }, { + "m_type": 4441, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxTAB_TRAVERSAL"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_tabProjectIcons" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Images" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "bool", + "m_label": "Selected", + "m_value": false + }, { + "type": "bool", + "m_label": "Null Page", + "m_value": false + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "boxSizer241" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4471, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxBORDER_THEME"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_banner138" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "TooltipText" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Title:", + "m_value": "Configure Project Images" + }, { + "type": "multi-string", + "m_label": "Message:", + "m_value": "Set a different image for a every project in the workspace" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxTOP", "wxBOTTOM", "wxLEFT", "wxRIGHT"] + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "colour", + "m_label": "Gradient Start", + "colour": "Tooltip" + }, { + "type": "colour", + "m_label": "Gradient End", + "colour": "Tooltip" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4485, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxPG_SPLITTER_AUTO_CENTER", "wxPG_BOLD_MODIFIED"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_pgMgr" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "integer", + "m_label": "Sash Position:", + "m_value": -1 + }, { + "type": "bool", + "m_label": "Set Splitter Left:", + "m_value": false + }], + "m_events": [{ + "m_eventName": "wxEVT_PG_CHANGED", + "m_eventClass": "wxPropertyGridEvent", + "m_eventHandler": "wxPropertyGridEventHandler", + "m_functionNameAndSignature": "OnImageSelected(wxPropertyGridEvent& event)", + "m_description": "Respond to wxEVT_PG_CHANGED event, generated when property value has been changed by the user", + "m_noBody": false + }], + "m_children": [{ + "m_type": 4486, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "m_pgPropProjects" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Projects" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "choice", + "m_label": "Property Editor Control", + "m_selection": 0, + "m_options": ["", "TextCtrl", "Choice", "ComboBox", "CheckBox", "TextCtrlAndButton", "ChoiceAndButton", "SpinCtrl", "DatePickerCtrl"] + }, { + "type": "choice", + "m_label": "Kind:", + "m_selection": 0, + "m_options": ["wxPropertyCategory", "wxIntProperty", "wxFloatProperty", "wxBoolProperty", "wxStringProperty", "wxLongStringProperty", "wxDirProperty", "wxArrayStringProperty", "wxFileProperty", "wxEnumProperty", "wxEditEnumProperty", "wxFlagsProperty", "wxDateProperty", "wxImageFileProperty", "wxFontProperty", "wxSystemColourProperty"] + }, { + "type": "string", + "m_label": "String Value", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Choices:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Array Integer Values", + "m_value": "" + }, { + "type": "bool", + "m_label": "Bool Value", + "m_value": true + }, { + "type": "string", + "m_label": "Wildcard", + "m_value": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Initial Colour", + "colour": "" + }], + "m_events": [], + "m_children": [] + }] + }] + }] + }] + }, { + "m_type": 4401, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_HORIZONTAL"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "boxSizer4" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 1, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4400, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_CANCEL" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_button8" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "&Cancel" + }, { + "type": "bool", + "m_label": "Default Button", + "m_value": false + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Direction", + "m_selection": 0, + "m_options": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"] + }, { + "type": "string", + "m_label": "Margins:", + "m_value": "2,2" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4400, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_OK" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_button88" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": true + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "&OK" + }, { + "type": "bool", + "m_label": "Default Button", + "m_value": true + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Direction", + "m_selection": 0, + "m_options": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"] + }, { + "type": "string", + "m_label": "Margins:", + "m_value": "2,2" + }], + "m_events": [], + "m_children": [] + }] + }] + }] + }] } \ No newline at end of file diff -Nru codelite-8.0.1+dfsg2/UnitTestCPP/CMakeLists.txt codelite-9.0+dfsg/UnitTestCPP/CMakeLists.txt --- codelite-8.0.1+dfsg2/UnitTestCPP/CMakeLists.txt 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/UnitTestCPP/CMakeLists.txt 2015-10-11 13:56:07.000000000 +0000 @@ -26,12 +26,6 @@ add_definitions(-Winvalid-pch) endif ( USE_PCH ) -# Add RPATH -if (UNIX) -set (LINKER_OPTIONS -Wl,-rpath,"${PLUGINS_DIR}") -endif (UNIX) - - if (UNIX AND NOT APPLE) set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC" ) set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC" ) @@ -55,8 +49,6 @@ ${wxWidgets_LIBRARIES} libcodelite plugin - wxsqlite3 - sqlite3lib ) diff -Nru codelite-8.0.1+dfsg2/UnitTestCPP/testclassdlg.cpp codelite-9.0+dfsg/UnitTestCPP/testclassdlg.cpp --- codelite-8.0.1+dfsg2/UnitTestCPP/testclassdlg.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/UnitTestCPP/testclassdlg.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -126,10 +126,10 @@ { m_textCtrlClassName->SetFocus(); OpenResourceDialog dlg(m_manager->GetTheApp()->GetTopWindow(), m_manager, ""); - if(dlg.ShowModal() == wxID_OK) { + if(dlg.ShowModal() == wxID_OK && dlg.GetSelection()) { // do something with the selected text - m_textCtrlClassName->SetValue(dlg.GetSelection().m_name); + m_textCtrlClassName->SetValue(dlg.GetSelection()->m_name); // display the class methods DoRefreshFunctions(); diff -Nru codelite-8.0.1+dfsg2/UnitTestCPP/unittestpp.cpp codelite-9.0+dfsg/UnitTestCPP/unittestpp.cpp --- codelite-8.0.1+dfsg2/UnitTestCPP/unittestpp.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/UnitTestCPP/unittestpp.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -78,11 +78,6 @@ extern "C" EXPORT int GetPluginInterfaceVersion() { return PLUGIN_INTERFACE_VERSION; } -BEGIN_EVENT_TABLE(UnitTestPP, IPlugin) -EVT_COMMAND(wxID_ANY, wxEVT_PROC_TERMINATED, UnitTestPP::OnProcessTerminated) -EVT_COMMAND(wxID_ANY, wxEVT_PROC_DATA_READ, UnitTestPP::OnProcessRead) -END_EVENT_TABLE() - UnitTestPP::UnitTestPP(IManager* manager) : IPlugin(manager) , m_proc(NULL) @@ -111,6 +106,9 @@ m_longName = _("A Unit test plugin based on the UnitTest++ framework"); m_shortName = wxT("UnitTestPP"); m_topWindow = m_mgr->GetTheApp(); + + Bind(wxEVT_ASYNC_PROCESS_OUTPUT, &UnitTestPP::OnProcessRead, this); + Bind(wxEVT_ASYNC_PROCESS_TERMINATED, &UnitTestPP::OnProcessTerminated, this); } UnitTestPP::~UnitTestPP() {} @@ -192,6 +190,9 @@ void UnitTestPP::UnPlug() { + Unbind(wxEVT_ASYNC_PROCESS_OUTPUT, &UnitTestPP::OnProcessRead, this); + Unbind(wxEVT_ASYNC_PROCESS_TERMINATED, &UnitTestPP::OnProcessTerminated, this); + EventNotifier::Get()->Unbind(wxEVT_CONTEXT_MENU_EDITOR, &UnitTestPP::OnEditorContextMenu, this); wxDELETE(m_proc); m_output.Clear(); @@ -507,18 +508,13 @@ p->Save(); } -void UnitTestPP::OnProcessRead(wxCommandEvent& e) +void UnitTestPP::OnProcessRead(clProcessEvent& e) { - ProcessEventData* ped = (ProcessEventData*)e.GetClientData(); - m_output << ped->GetData(); - delete ped; + m_output << e.GetOutput(); } -void UnitTestPP::OnProcessTerminated(wxCommandEvent& e) +void UnitTestPP::OnProcessTerminated(clProcessEvent& e) { - ProcessEventData* ped = (ProcessEventData*)e.GetClientData(); - delete ped; - wxDELETE(m_proc); wxArrayString arr = wxStringTokenize(m_output, wxT("\r\n")); @@ -566,10 +562,10 @@ { e.Skip(); // Sanity - if(!WorkspaceST::Get()->IsOpen()) return; + if(!clCxxWorkspaceST::Get()->IsOpen()) return; if(e.GetTargetName().IsEmpty()) return; - ProjectPtr pProj = WorkspaceST::Get()->GetProject(e.GetTargetName()); + ProjectPtr pProj = clCxxWorkspaceST::Get()->GetProject(e.GetTargetName()); CHECK_PTR_RET(pProj); if(pProj->GetProjectInternalType() != "UnitTest++") { @@ -599,14 +595,14 @@ m_output.Clear(); m_proc = ::CreateAsyncProcess(this, cmd); } - -void UnitTestPP::OnEditorContextMenu(clContextMenuEvent& e) + +void UnitTestPP::OnEditorContextMenu(clContextMenuEvent& e) { e.Skip(); IEditor* editor = m_mgr->GetActiveEditor(); CHECK_PTR_RET(editor); - + if(FileExtManager::IsCxxFile(editor->GetFileName())) { - e.GetMenu()->Append(wxID_ANY, "UnitTest++", CreateEditorPopMenu()); - } -} + e.GetMenu()->Append(wxID_ANY, "UnitTest++", CreateEditorPopMenu()); + } +} diff -Nru codelite-8.0.1+dfsg2/UnitTestCPP/unittestpp.h codelite-9.0+dfsg/UnitTestCPP/unittestpp.h --- codelite-8.0.1+dfsg2/UnitTestCPP/unittestpp.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/UnitTestCPP/unittestpp.h 2015-10-11 13:56:07.000000000 +0000 @@ -66,15 +66,14 @@ void DoRunProject(ProjectPtr project); protected: - DECLARE_EVENT_TABLE() void OnNewSimpleTest(wxCommandEvent& e); void OnNewClassTest(wxCommandEvent& e); void OnRunUnitTests(wxCommandEvent& e); void OnRunProject(clExecuteEvent& e); void OnMarkProjectAsUT(wxCommandEvent& e); void OnRunUnitTestsUI(wxUpdateUIEvent& e); - void OnProcessTerminated(wxCommandEvent& e); - void OnProcessRead(wxCommandEvent& e); + void OnProcessTerminated(clProcessEvent& e); + void OnProcessRead(clProcessEvent& e); void OnEditorContextMenu(clContextMenuEvent& e); void DoCreateSimpleTest(const wxString& name, const wxString& projectName, const wxString& filename); void DoCreateFixtureTest(const wxString& name, diff -Nru codelite-8.0.1+dfsg2/UnitTestCPP/unittestreport.cpp codelite-9.0+dfsg/UnitTestCPP/unittestreport.cpp --- codelite-8.0.1+dfsg2/UnitTestCPP/unittestreport.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/UnitTestCPP/unittestreport.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,30 +1,6 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2014 The CodeLite Team -// file name : unittestreport.cpp -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - ////////////////////////////////////////////////////////////////////// // This file was auto-generated by codelite's wxCrafter Plugin +// wxCrafter project file: unittestreport.wxcp // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// @@ -50,7 +26,7 @@ wxBoxSizer* bSizer8 = new wxBoxSizer(wxVERTICAL); this->SetSizer(bSizer8); - wxFlexGridSizer* fgSizer3 = new wxFlexGridSizer( 2, 2, 0, 0); + wxFlexGridSizer* fgSizer3 = new wxFlexGridSizer(2, 2, 0, 0); fgSizer3->SetFlexibleDirection( wxBOTH ); fgSizer3->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); fgSizer3->AddGrowableCol(1); @@ -71,7 +47,7 @@ m_progressFailed = new ProgressCtrl(this); fgSizer3->Add(m_progressFailed, 0, wxALL|wxEXPAND, 5); - wxFlexGridSizer* fgSizer4 = new wxFlexGridSizer( 0, 6, 0, 0); + wxFlexGridSizer* fgSizer4 = new wxFlexGridSizer(0, 6, 0, 0); fgSizer4->SetFlexibleDirection( wxBOTH ); fgSizer4->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); fgSizer4->AddGrowableCol(1); @@ -117,12 +93,12 @@ bSizer8->Add(m_listCtrlErrors, 1, wxALL|wxEXPAND, 5); - + SetName(wxT("UnitTestsBasePage")); SetSizeHints(-1,-1); if ( GetSizer() ) { GetSizer()->Fit(this); } - Centre(wxBOTH); + CentreOnParent(wxBOTH); // Connect events m_listCtrlErrors->Connect(wxEVT_COMMAND_LIST_ITEM_ACTIVATED, wxListEventHandler(UnitTestsBasePage::OnItemActivated), NULL, this); diff -Nru codelite-8.0.1+dfsg2/UnitTestCPP/unittestreport.h codelite-9.0+dfsg/UnitTestCPP/unittestreport.h --- codelite-8.0.1+dfsg2/UnitTestCPP/unittestreport.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/UnitTestCPP/unittestreport.h 2015-10-11 13:56:07.000000000 +0000 @@ -1,44 +1,27 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2014 The CodeLite Team -// file name : unittestreport.h -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - ////////////////////////////////////////////////////////////////////// // This file was auto-generated by codelite's wxCrafter Plugin +// wxCrafter project file: unittestreport.wxcp // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// -#ifndef UNITTESTREPORT_BASE_CLASSES_H -#define UNITTESTREPORT_BASE_CLASSES_H +#ifndef CODELITE_UNITTESTCPP_UNITTESTREPORT_BASE_CLASSES_H +#define CODELITE_UNITTESTCPP_UNITTESTREPORT_BASE_CLASSES_H #include #include #include #include +#include #include #include #include "progressctrl.h" #include +#if wxVERSION_NUMBER >= 2900 +#include +#include +#include +#include +#endif class UnitTestsBasePage : public wxPanel { @@ -59,6 +42,17 @@ virtual void OnItemActivated(wxListEvent& event) { event.Skip(); } public: + wxStaticText* GetStaticText7() { return m_staticText7; } + ProgressCtrl* GetProgressPassed() { return m_progressPassed; } + wxStaticText* GetStaticText8() { return m_staticText8; } + ProgressCtrl* GetProgressFailed() { return m_progressFailed; } + wxStaticText* GetStaticText10() { return m_staticText10; } + wxStaticText* GetStaticTextTotalTests() { return m_staticTextTotalTests; } + wxStaticText* GetStaticText12() { return m_staticText12; } + wxStaticText* GetStaticTextFailTestsNum() { return m_staticTextFailTestsNum; } + wxStaticText* GetStaticText14() { return m_staticText14; } + wxStaticText* GetStaticTextSuccessTestsNum() { return m_staticTextSuccessTestsNum; } + wxListCtrl* GetListCtrlErrors() { return m_listCtrlErrors; } UnitTestsBasePage(wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxTAB_TRAVERSAL); virtual ~UnitTestsBasePage(); }; diff -Nru codelite-8.0.1+dfsg2/UnitTestCPP/unittestreport_unittestcpp_bitmaps.cpp codelite-9.0+dfsg/UnitTestCPP/unittestreport_unittestcpp_bitmaps.cpp --- codelite-8.0.1+dfsg2/UnitTestCPP/unittestreport_unittestcpp_bitmaps.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/UnitTestCPP/unittestreport_unittestcpp_bitmaps.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,28 +1,3 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2014 The CodeLite Team -// file name : unittestreport_unittestcpp_bitmaps.cpp -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - // // This file was automatically generated by wxrc, do not edit by hand. // @@ -46,14 +21,13 @@ wxMemoryFSHandler::AddFile(name, data, size) #endif -static size_t xml_res_size_0 = 108; +static size_t xml_res_size_0 = 90; static unsigned char xml_res_file_0[] = { 60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, 110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, 115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, 47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, -47,119,120,120,114,99,34,32,118,101,114,115,105,111,110,61,34,50,46,51, -46,48,46,49,34,47,62,10}; +47,119,120,120,114,99,34,47,62,10}; void wxC52E5InitBitmapResources() { @@ -68,6 +42,6 @@ else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase); } - XRC_ADD_FILE(wxT("XRC_resource/unittestreport_unittestcpp_bitmaps.cpp$._unittestreport_unittestcpp_bitmaps.xrc"), xml_res_file_0, xml_res_size_0, wxT("text/xml")); - wxXmlResource::Get()->Load(wxT("memory:XRC_resource/unittestreport_unittestcpp_bitmaps.cpp$._unittestreport_unittestcpp_bitmaps.xrc")); + XRC_ADD_FILE(wxT("XRC_resource/unittestreport_unittestcpp_bitmaps.cpp$C__src_codelite_UnitTestCPP_unittestreport_unittestcpp_bitmaps.xrc"), xml_res_file_0, xml_res_size_0, wxT("text/xml")); + wxXmlResource::Get()->Load(wxT("memory:XRC_resource/unittestreport_unittestcpp_bitmaps.cpp$C__src_codelite_UnitTestCPP_unittestreport_unittestcpp_bitmaps.xrc")); } diff -Nru codelite-8.0.1+dfsg2/UnitTestCPP/unittestreport.wxcp codelite-9.0+dfsg/UnitTestCPP/unittestreport.wxcp --- codelite-8.0.1+dfsg2/UnitTestCPP/unittestreport.wxcp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/UnitTestCPP/unittestreport.wxcp 2015-10-11 13:56:07.000000000 +0000 @@ -1,968 +1,1041 @@ { - "metadata": { - "m_generatedFilesDir": "", - "m_objCounter": 0, - "m_includeFiles": [], - "m_bitmapFunction": "wxC52E5InitBitmapResources", - "m_bitmapsFile": "", - "m_GenerateCodeTypes": 1981716697, - "m_outputFileName": "", - "m_firstWindowId": 1000, - "m_useEnum": false, - "m_templateClasses": [{ - "m_includeFile": "#include \"progressctrl.h\"", - "m_allocationLine": "$name = new ProgressCtrl($parent);", - "m_className": "ProgressCtrl", - "m_xrcPreviewClass": "ProgressCtrl", - "m_events": [] - }] - }, - "windows": [{ - "m_type": 4407, - "proportion": 0, - "border": 0, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": ["wxTAB_TRAVERSAL"], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "UnitTestsBasePage" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Title:", - "m_value": "" - }, { - "type": "virtualFolderPicker", - "m_label": "Virtual Folder:", - "m_path": "" - }, { - "type": "choice", - "m_label": "Centre:", - "m_selection": 1, - "m_options": ["", "wxBOTH", "wxVERTICAL", "wxHORIZONTAL"] - }, { - "type": "string", - "m_label": "File:", - "m_value": "unittestspage" - }, { - "type": "string", - "m_label": "Inherited Class", - "m_value": "UnitTestsPage" - }, { - "type": "string", - "m_label": "Class Decorator", - "m_value": "" - }], - "m_events": [], - "m_children": [{ - "m_type": 4401, - "proportion": 0, - "border": 0, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "bSizer8" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4403, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxEXPAND"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "fgSizer3" - }, { - "type": "string", - "m_label": "# Columns:", - "m_value": "2" - }, { - "type": "string", - "m_label": "# Rows:", - "m_value": "2" - }, { - "type": "string", - "m_label": "Growable columns:", - "m_value": "1" - }, { - "type": "string", - "m_label": "Growable rows:", - "m_value": "" - }, { - "type": "string", - "m_label": "Horizontal gap:", - "m_value": "0" - }, { - "type": "string", - "m_label": "Vertical gap:", - "m_value": "0" - }], - "m_events": [], - "m_children": [{ - "m_type": 4405, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT", "wxALIGN_CENTER_VERTICAL"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_staticText7" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Label:", - "m_value": "Passed:" - }, { - "type": "string", - "m_label": "Wrap:", - "m_value": "-1" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4465, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_progressPassed" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }], - "m_events": [], - "m_children": [], - "m_templInfoName": "ProgressCtrl" - }, { - "m_type": 4405, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT", "wxALIGN_CENTER_VERTICAL"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_staticText8" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Label:", - "m_value": "Failed:" - }, { - "type": "string", - "m_label": "Wrap:", - "m_value": "-1" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4465, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_progressFailed" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }], - "m_events": [], - "m_children": [], - "m_templInfoName": "ProgressCtrl" - }] - }, { - "m_type": 4403, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": [], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "fgSizer4" - }, { - "type": "string", - "m_label": "# Columns:", - "m_value": "6" - }, { - "type": "string", - "m_label": "# Rows:", - "m_value": "0" - }, { - "type": "string", - "m_label": "Growable columns:", - "m_value": "1,3,5" - }, { - "type": "string", - "m_label": "Growable rows:", - "m_value": "" - }, { - "type": "string", - "m_label": "Horizontal gap:", - "m_value": "0" - }, { - "type": "string", - "m_label": "Vertical gap:", - "m_value": "0" - }], - "m_events": [], - "m_children": [{ - "m_type": 4405, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT", "wxALIGN_CENTER_VERTICAL"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_staticText10" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Label:", - "m_value": "Total tests:" - }, { - "type": "string", - "m_label": "Wrap:", - "m_value": "-1" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4405, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_LEFT", "wxALIGN_CENTER_VERTICAL"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "50,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_staticTextTotalTests" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "wxSYS_DEFAULT_GUI_FONT,normal,bold,normal" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Label:", - "m_value": "" - }, { - "type": "string", - "m_label": "Wrap:", - "m_value": "-1" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4405, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT", "wxALIGN_CENTER_VERTICAL"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_staticText12" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Label:", - "m_value": "Tests failed:" - }, { - "type": "string", - "m_label": "Wrap:", - "m_value": "-1" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4405, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_LEFT", "wxALIGN_CENTER_VERTICAL"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "50,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_staticTextFailTestsNum" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "wxSYS_DEFAULT_GUI_FONT,normal,bold,normal" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Label:", - "m_value": "" - }, { - "type": "string", - "m_label": "Wrap:", - "m_value": "-1" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4405, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_staticText14" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Label:", - "m_value": "Tests passed:" - }, { - "type": "string", - "m_label": "Wrap:", - "m_value": "-1" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4405, - "proportion": 0, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_LEFT"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "50,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_staticTextSuccessTestsNum" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "wxSYS_DEFAULT_GUI_FONT,normal,bold,normal" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Label:", - "m_value": "" - }, { - "type": "string", - "m_label": "Wrap:", - "m_value": "-1" - }], - "m_events": [], - "m_children": [] - }] - }, { - "m_type": 4413, - "proportion": 1, - "border": 5, - "gbSpan": ",", - "gbPosition": ",", - "m_styles": ["wxLC_SINGLE_SEL", "wxLC_REPORT"], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_listCtrlErrors" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "bool", - "m_label": "Hidden", - "m_value": false - }, { - "type": "bool", - "m_label": "Disabled", - "m_value": false - }, { - "type": "bool", - "m_label": "Focused", - "m_value": false - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }], - "m_events": [{ - "m_eventName": "wxEVT_COMMAND_LIST_ITEM_ACTIVATED", - "m_eventClass": "wxListEvent", - "m_eventHandler": "wxListEventHandler", - "m_functionNameAndSignature": "OnItemActivated(wxListEvent& event)", - "m_description": "The item has been activated (ENTER or double click)" - }], - "m_children": [] - }] - }] - }] + "metadata": { + "m_generatedFilesDir": ".", + "m_objCounter": 0, + "m_includeFiles": [], + "m_bitmapFunction": "wxC52E5InitBitmapResources", + "m_bitmapsFile": "unittestreport_unittestcpp_bitmaps.cpp", + "m_GenerateCodeTypes": 1981716697, + "m_outputFileName": "", + "m_firstWindowId": 1000, + "m_useEnum": false, + "m_templateClasses": [{ + "m_includeFile": "#include \"progressctrl.h\"", + "m_allocationLine": "$name = new ProgressCtrl($parent);", + "m_className": "ProgressCtrl", + "m_xrcPreviewClass": "ProgressCtrl", + "m_events": [] + }] + }, + "windows": [{ + "m_type": 4407, + "proportion": 0, + "border": 0, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": ["wxTAB_TRAVERSAL"], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "UnitTestsBasePage" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Title:", + "m_value": "" + }, { + "type": "virtualFolderPicker", + "m_label": "Virtual Folder:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Centre:", + "m_selection": 1, + "m_options": ["", "wxBOTH", "wxVERTICAL", "wxHORIZONTAL"] + }, { + "type": "string", + "m_label": "Inherited Class", + "m_value": "UnitTestsPage" + }, { + "type": "string", + "m_label": "File:", + "m_value": "unittestspage" + }, { + "type": "string", + "m_label": "Class Decorator", + "m_value": "" + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 0, + "border": 0, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "bSizer8" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4403, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "fgSizer3" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "# Columns:", + "m_value": "2" + }, { + "type": "string", + "m_label": "# Rows:", + "m_value": "2" + }, { + "type": "string", + "m_label": "Growable columns:", + "m_value": "1" + }, { + "type": "string", + "m_label": "Growable rows:", + "m_value": "" + }, { + "type": "string", + "m_label": "Horizontal gap:", + "m_value": "0" + }, { + "type": "string", + "m_label": "Vertical gap:", + "m_value": "0" + }], + "m_events": [], + "m_children": [{ + "m_type": 4405, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT", "wxALIGN_CENTER_VERTICAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_staticText7" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Label:", + "m_value": "Passed:" + }, { + "type": "string", + "m_label": "Wrap:", + "m_value": "-1" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4465, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_progressPassed" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }], + "m_events": [], + "m_children": [], + "m_templInfoName": "ProgressCtrl" + }, { + "m_type": 4405, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT", "wxALIGN_CENTER_VERTICAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_staticText8" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Label:", + "m_value": "Failed:" + }, { + "type": "string", + "m_label": "Wrap:", + "m_value": "-1" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4465, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_progressFailed" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }], + "m_events": [], + "m_children": [], + "m_templInfoName": "ProgressCtrl" + }] + }, { + "m_type": 4403, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "fgSizer4" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "# Columns:", + "m_value": "6" + }, { + "type": "string", + "m_label": "# Rows:", + "m_value": "0" + }, { + "type": "string", + "m_label": "Growable columns:", + "m_value": "1,3,5" + }, { + "type": "string", + "m_label": "Growable rows:", + "m_value": "" + }, { + "type": "string", + "m_label": "Horizontal gap:", + "m_value": "0" + }, { + "type": "string", + "m_label": "Vertical gap:", + "m_value": "0" + }], + "m_events": [], + "m_children": [{ + "m_type": 4405, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT", "wxALIGN_CENTER_VERTICAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_staticText10" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Label:", + "m_value": "Total tests:" + }, { + "type": "string", + "m_label": "Wrap:", + "m_value": "-1" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4405, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_LEFT", "wxALIGN_CENTER_VERTICAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "50,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_staticTextTotalTests" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "wxSYS_DEFAULT_GUI_FONT,normal,bold,normal" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Label:", + "m_value": "" + }, { + "type": "string", + "m_label": "Wrap:", + "m_value": "-1" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4405, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT", "wxALIGN_CENTER_VERTICAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_staticText12" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Label:", + "m_value": "Tests failed:" + }, { + "type": "string", + "m_label": "Wrap:", + "m_value": "-1" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4405, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_LEFT", "wxALIGN_CENTER_VERTICAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "50,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_staticTextFailTestsNum" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "wxSYS_DEFAULT_GUI_FONT,normal,bold,normal" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Label:", + "m_value": "" + }, { + "type": "string", + "m_label": "Wrap:", + "m_value": "-1" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4405, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_staticText14" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Label:", + "m_value": "Tests passed:" + }, { + "type": "string", + "m_label": "Wrap:", + "m_value": "-1" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4405, + "proportion": 0, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_LEFT"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "50,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_staticTextSuccessTestsNum" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "wxSYS_DEFAULT_GUI_FONT,normal,bold,normal" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Label:", + "m_value": "" + }, { + "type": "string", + "m_label": "Wrap:", + "m_value": "-1" + }], + "m_events": [], + "m_children": [] + }] + }, { + "m_type": 4413, + "proportion": 1, + "border": 5, + "gbSpan": ",", + "gbPosition": ",", + "m_styles": ["wxLC_SINGLE_SEL", "wxLC_REPORT"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_listCtrlErrors" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_LIST_ITEM_ACTIVATED", + "m_eventClass": "wxListEvent", + "m_eventHandler": "wxListEventHandler", + "m_functionNameAndSignature": "OnItemActivated(wxListEvent& event)", + "m_description": "The item has been activated (ENTER or double click)", + "m_noBody": false + }], + "m_children": [] + }] + }] + }] } \ No newline at end of file diff -Nru codelite-8.0.1+dfsg2/WebTools/clTernServer.cpp codelite-9.0+dfsg/WebTools/clTernServer.cpp --- codelite-8.0.1+dfsg2/WebTools/clTernServer.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/WebTools/clTernServer.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -16,11 +16,8 @@ #include "fileutils.h" #include "ieditor.h" #include - -BEGIN_EVENT_TABLE(clTernServer, wxEvtHandler) -EVT_COMMAND(wxID_ANY, wxEVT_PROC_TERMINATED, clTernServer::OnTernTerminated) -EVT_COMMAND(wxID_ANY, wxEVT_PROC_DATA_READ, clTernServer::OnTernOutput) -END_EVENT_TABLE() +#include +#include "NoteJSWorkspace.h" clTernServer::clTernServer(JSCodeCompletion* cc) : m_jsCCManager(cc) @@ -31,39 +28,46 @@ , m_port(wxNOT_FOUND) , m_recycleCount(0) { + Bind(wxEVT_ASYNC_PROCESS_OUTPUT, &clTernServer::OnTernOutput, this); + Bind(wxEVT_ASYNC_PROCESS_TERMINATED, &clTernServer::OnTernTerminated, this); } clTernServer::~clTernServer() {} -void clTernServer::OnTernOutput(wxCommandEvent& event) +void clTernServer::OnTernOutput(clProcessEvent& event) { - ProcessEventData* ped = reinterpret_cast(event.GetClientData()); static wxRegEx rePort("Listening on port ([0-9]+)"); - if(rePort.IsValid() && rePort.Matches(ped->GetData())) { - wxString strPort = rePort.GetMatch(ped->GetData(), 1); + if(rePort.IsValid() && rePort.Matches(event.GetOutput())) { + wxString strPort = rePort.GetMatch(event.GetOutput(), 1); strPort.ToCLong(&m_port); } - PrintMessage(ped->GetData()); - wxDELETE(ped); + PrintMessage(event.GetOutput()); } -void clTernServer::OnTernTerminated(wxCommandEvent& event) +void clTernServer::OnTernTerminated(clProcessEvent& event) { - ProcessEventData* ped = reinterpret_cast(event.GetClientData()); - wxDELETE(ped); + wxDELETE(m_tern); if(m_goingDown || !m_jsCCManager->IsEnabled()) { - wxDELETE(m_tern); return; } +#if defined(__WXMSW__) && !defined(NDEBUG) + HANDLE hProcess = ::GetCurrentProcess(); + DWORD handleCount; + ::GetProcessHandleCount(hProcess, &handleCount); + CL_DEBUG("Tern process termianted. Number of handles %d", (int)handleCount); + ::CloseHandle(hProcess); +#endif + PrintMessage("Tern server terminated, will restart it\n"); - Start(); + Start(m_workingDirectory); } -bool clTernServer::Start() +bool clTernServer::Start(const wxString& workingDirectory) { if(m_fatalError) return false; if(!m_jsCCManager->IsEnabled()) return true; + m_workingDirectory = workingDirectory; WebToolsConfig conf; conf.Load(); @@ -86,21 +90,37 @@ wxString nodeExe = nodeJS.GetFullPath(); ::WrapWithQuotes(nodeExe); + wxFileName ternScript = ternFolder; + ternScript.AppendDir("bin"); + ternScript.SetFullName("tern"); + wxString ternScriptString = ternScript.GetFullPath(); + ::WrapWithQuotes(ternScriptString); + wxString command; - command << nodeExe << " " - << "bin" << wxFileName::GetPathSeparator() << "tern --persist "; + command << nodeExe << " " << ternScriptString << " --persistent "; if(conf.HasJavaScriptFlag(WebToolsConfig::kJSEnableVerboseLogging)) { command << " --verbose"; } // Create a .tern-project file - wxFileName ternConfig(ternFolder.GetPath(), ".tern-project"); + if(m_workingDirectory.IsEmpty()) { + m_workingDirectory = clStandardPaths::Get().GetUserDataDir(); + } + + wxFileName ternConfig(m_workingDirectory, ".tern-project"); wxString content = conf.GetTernProjectFile(); - FileUtils::WriteFileContent(ternConfig, content); + if(!FileUtils::WriteFileContent(ternConfig, content)) { + ::wxMessageBox(_("Could not write tern project file: ") + ternConfig.GetFullPath(), + "CodeLite", + wxICON_ERROR | wxOK | wxCENTER); + PrintMessage("Could not write tern project file: " + ternConfig.GetFullPath()); + m_fatalError = true; + return false; + } PrintMessage(wxString() << "Starting " << command << "\n"); - m_tern = ::CreateAsyncProcess(this, command, IProcessCreateDefault, ternFolder.GetPath()); + m_tern = ::CreateAsyncProcess(this, command, IProcessCreateDefault, m_workingDirectory); if(!m_tern) { PrintMessage("Failed to start Tern server!"); return false; @@ -144,13 +164,13 @@ query.addProperty("includeKeywords", true); query.addProperty("types", true); - JSONElement files = CreateFilesArray(ctrl); + JSONElement files = CreateFilesArray(editor); root.toElement().append(files); clTernWorkerThread::Request* req = new clTernWorkerThread::Request; req->jsonRequest = root.toElement().FormatRawString(); req->filename = editor->GetFileName().GetFullPath(); - req->isFunctionTip = false; + req->type = clTernWorkerThread::kCodeCompletion; // Create the worker thread and start the request m_workerThread = new clTernWorkerThread(this); @@ -175,7 +195,7 @@ } else if(!m_tern) { // Tern was never started, start it now - Start(); + Start(m_workingDirectory); } } @@ -321,11 +341,28 @@ RecycleIfNeeded(); m_entries.clear(); - if(reply.isFunctionTip) { + CL_DEBUG(reply.json); + + switch(reply.requestType) { + case clTernWorkerThread::kFunctionTip: m_jsCCManager->OnFunctionTipReady(ProcessCalltip(reply.json), reply.filename); - } else { + break; + case clTernWorkerThread::kCodeCompletion: ProcessOutput(reply.json, m_entries); m_jsCCManager->OnCodeCompleteReady(m_entries, reply.filename); + break; + case clTernWorkerThread::kFindDefinition: { + clTernDefinition loc; + if(ProcessDefinitionOutput(reply.json, loc)) { + m_jsCCManager->OnDefinitionFound(loc); + } + } break; + case clTernWorkerThread::kReparse: { + CL_DEBUG("Tern reparse:\n%s\n", reply.json); + } break; + case clTernWorkerThread::kReset: + CL_DEBUG("Tern reset:\n%s\n", reply.json); + break; } } @@ -397,13 +434,13 @@ query.append(CreateLocation(ctrl, pos)); // Creae the files array - JSONElement files = CreateFilesArray(ctrl); + JSONElement files = CreateFilesArray(editor); root.toElement().append(files); clTernWorkerThread::Request* req = new clTernWorkerThread::Request; req->jsonRequest = root.toElement().FormatRawString(); req->filename = editor->GetFileName().GetFullPath(); - req->isFunctionTip = true; + req->type = clTernWorkerThread::kFunctionTip; // Create the worker thread and start the request m_workerThread = new clTernWorkerThread(this); @@ -412,17 +449,32 @@ return true; } -JSONElement clTernServer::CreateFilesArray(wxStyledTextCtrl* ctrl) +JSONElement clTernServer::CreateFilesArray(IEditor* editor, bool forDelete) { - const wxString fileContent = ctrl->GetText(); + const wxString fileContent = editor->GetCtrl()->GetText(); JSONElement files = JSONElement::createArray("files"); JSONElement file = JSONElement::createObject(); files.arrayAppend(file); - file.addProperty("type", wxString("full")); - file.addProperty("name", wxString("[doc]")); - file.addProperty("text", fileContent); + wxString filename; + if(NodeJSWorkspace::Get()->IsOpen()) { + wxFileName fn(editor->GetFileName()); + fn.MakeRelativeTo(NodeJSWorkspace::Get()->GetFilename().GetPath()); + filename = fn.GetFullPath(); + } else { + filename = editor->GetFileName().GetFullName(); + } + + if(forDelete) { + file.addProperty("type", wxString("delete")); + file.addProperty("name", filename); + + } else { + file.addProperty("type", wxString("full")); + file.addProperty("name", filename); + file.addProperty("text", fileContent); + } return files; } @@ -455,3 +507,111 @@ return true; #endif } + +void clTernServer::ClearFatalErrorFlag() { m_fatalError = false; } + +bool clTernServer::PostFindDefinitionRequest(IEditor* editor) +{ + // Sanity + if(m_workerThread) return false; // another request is in progress + if(m_port == wxNOT_FOUND) return false; // don't know tern's port + ++m_recycleCount; + + wxStyledTextCtrl* ctrl = editor->GetCtrl(); + + // Prepare the request + JSONRoot root(cJSON_Object); + JSONElement query = JSONElement::createObject("query"); + root.toElement().append(query); + query.addProperty("type", wxString("definition")); + query.addProperty("file", wxString("#0")); + query.append(CreateLocation(ctrl)); + + // Creae the files array + JSONElement files = CreateFilesArray(editor); + root.toElement().append(files); + + clTernWorkerThread::Request* req = new clTernWorkerThread::Request; + req->jsonRequest = root.toElement().FormatRawString(); + req->filename = editor->GetFileName().GetFullPath(); + req->type = clTernWorkerThread::kFindDefinition; + + // Create the worker thread and start the request + m_workerThread = new clTernWorkerThread(this); + m_workerThread->Start(); + m_workerThread->Add(req); + return true; +} + +bool clTernServer::ProcessDefinitionOutput(const wxString& output, clTernDefinition& loc) +{ + JSONRoot root(output); + JSONElement json = root.toElement(); + + if(json.hasNamedObject("file")) { + wxFileName fn(json.namedObject("file").toString()); + if(NodeJSWorkspace::Get()->IsOpen()) { + fn.MakeAbsolute(NodeJSWorkspace::Get()->GetFilename().GetPath()); + } + loc.file = fn.GetFullPath(); + loc.start = json.namedObject("start").toInt(); + loc.end = json.namedObject("end").toInt(); + return true; + + } else if(json.hasNamedObject("url")) { + loc.url = json.namedObject("url").toString(); + return true; + } + return false; +} + +bool clTernServer::PostResetCommand(bool forgetFiles) +{ + // Sanity + if(m_workerThread) return false; // another request is in progress + if(m_port == wxNOT_FOUND) return false; // don't know tern's port + ++m_recycleCount; + + // Prepare the request + JSONRoot root(cJSON_Object); + JSONElement query = JSONElement::createObject("query"); + root.toElement().append(query); + query.addProperty("type", wxString("reset")); + if(forgetFiles) { + query.addProperty("forgetFiles", true); + } + + clTernWorkerThread::Request* req = new clTernWorkerThread::Request; + req->jsonRequest = root.toElement().FormatRawString(); + req->type = clTernWorkerThread::kReset; + + // Create the worker thread and start the request + m_workerThread = new clTernWorkerThread(this); + m_workerThread->Start(); + m_workerThread->Add(req); + return true; +} + +bool clTernServer::PostReparseCommand(IEditor* editor) +{ + // Sanity + if(!editor) return false; + if(m_workerThread) return false; // another request is in progress + if(m_port == wxNOT_FOUND) return false; // don't know tern's port + ++m_recycleCount; + + // Prepare the request + JSONRoot root(cJSON_Object); + JSONElement files = CreateFilesArray(editor); + root.toElement().append(files); + + clTernWorkerThread::Request* req = new clTernWorkerThread::Request; + req->jsonRequest = root.toElement().FormatRawString(); + req->type = clTernWorkerThread::kReparse; + + // Create the worker thread and start the request + m_workerThread = new clTernWorkerThread(this); + m_workerThread->Start(); + m_workerThread->Add(req); + return true; +} diff -Nru codelite-8.0.1+dfsg2/WebTools/clTernServer.h codelite-9.0+dfsg/WebTools/clTernServer.h --- codelite-8.0.1+dfsg2/WebTools/clTernServer.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/WebTools/clTernServer.h 2015-10-11 13:56:07.000000000 +0000 @@ -8,12 +8,35 @@ #include "clTernWorkerThread.h" #include "cl_calltip.h" #include "json_node.h" +#include "cl_command_event.h" class IEditor; class wxStyledTextCtrl; class JSCodeCompletion; class IProcess; class clTernWorkerThread; + +struct clTernDefinition { + wxString url; + wxString file; + int start; + int end; + + clTernDefinition() + : start(wxNOT_FOUND) + , end(wxNOT_FOUND) + { + } + + /** + * @brief is this location defined on the web? + */ + bool IsURL() const { + return !url.IsEmpty(); + } + +}; + class clTernServer : public wxEvtHandler { friend class clTernWorkerThread; @@ -28,14 +51,15 @@ bool m_fatalError; long m_port; size_t m_recycleCount; + wxString m_workingDirectory; protected: - DECLARE_EVENT_TABLE() - void OnTernTerminated(wxCommandEvent& event); - void OnTernOutput(wxCommandEvent& event); + void OnTernTerminated(clProcessEvent& event); + void OnTernOutput(clProcessEvent& event); void PrintMessage(const wxString& message); void ProcessOutput(const wxString& output, wxCodeCompletionBoxEntry::Vec_t& entries); + bool ProcessDefinitionOutput(const wxString& output, clTernDefinition& loc); clCallTipPtr ProcessCalltip(const wxString& output); wxString PrepareDoc(const wxString& doc, const wxString& url); @@ -45,27 +69,44 @@ void OnTernWorkerThreadDone(const clTernWorkerThread::Reply& reply); void OnError(const wxString& why); JSONElement CreateLocation(wxStyledTextCtrl* ctrl, int pos = wxNOT_FOUND); - JSONElement CreateFilesArray(wxStyledTextCtrl* ctrl); - + JSONElement CreateFilesArray(IEditor *editor, bool forDelete = false); + public: void RecycleIfNeeded(bool force = false); clTernServer(JSCodeCompletion* cc); virtual ~clTernServer(); long GetPort() const { return m_port; } - bool Start(); + bool Start(const wxString& workingDirectory); void Terminate(); + void ClearFatalErrorFlag(); + + /** + * @brief tell tern to reset the server + */ + bool PostResetCommand(bool forgetFiles); + /** + * @brief reparse the current file + */ + bool PostReparseCommand(IEditor *editor); + /** * @brief post a CC request at the current editor position */ - bool PostCCRequest(IEditor *editor); + bool PostCCRequest(IEditor* editor); /** * @brief post a function calltip at a given position. pos is the first position * before the open brace */ bool PostFunctionTipRequest(IEditor* editor, int pos); - const wxCodeCompletionBoxEntry::Vec_t& GetEntries() const { return m_entries; } + + /** + * @brief locate a definition of expression under the caret + */ + bool PostFindDefinitionRequest(IEditor* editor); + const wxCodeCompletionBoxEntry::Vec_t& GetEntries() const { return m_entries; } + /** * @brief locate nodejs executable on this machine */ diff -Nru codelite-8.0.1+dfsg2/WebTools/clTernWorkerThread.cpp codelite-9.0+dfsg/WebTools/clTernWorkerThread.cpp --- codelite-8.0.1+dfsg2/WebTools/clTernWorkerThread.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/WebTools/clTernWorkerThread.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -3,6 +3,7 @@ #include "clTernServer.h" #include #include +#include "file_logger.h" clTernWorkerThread::clTernWorkerThread(clTernServer* ternServer) : m_ternSerer(ternServer) @@ -63,15 +64,18 @@ std::string strBuffer = ss.str(); buffer.AppendData(strBuffer.c_str(), strBuffer.length()); - + + CL_DEBUG("[WebTools] %s", strBuffer.c_str()); + client->Send(buffer); wxMemoryBuffer output; client->Read(output, 5); - // Stip the HTTP headers and send only the JSON reply back to the main thread + // Strip the HTTP headers and send only the JSON reply back to the main thread wxString str = wxString::From8BitData((const char*)output.GetData(), output.GetDataLen()); int where = str.Find("\r\n\r\n"); if(where == wxNOT_FOUND) { + CL_DEBUG("Tern invalid output:\n%s\n", str); m_ternSerer->CallAfter(&clTernServer::OnError, "Invalid output"); return; } @@ -84,7 +88,7 @@ clTernWorkerThread::Reply reply; reply.json.swap(json); reply.filename.swap(r->filename); - reply.isFunctionTip = r->isFunctionTip; + reply.requestType = r->type; m_ternSerer->CallAfter(&clTernServer::OnTernWorkerThreadDone, reply); diff -Nru codelite-8.0.1+dfsg2/WebTools/clTernWorkerThread.h codelite-9.0+dfsg/WebTools/clTernWorkerThread.h --- codelite-8.0.1+dfsg2/WebTools/clTernWorkerThread.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/WebTools/clTernWorkerThread.h 2015-10-11 13:56:07.000000000 +0000 @@ -8,19 +8,28 @@ { clTernServer* m_ternSerer; int m_port; + public: + enum eRequestType { + kCodeCompletion, + kFunctionTip, + kFindDefinition, + kReset, + kReparse, + }; + struct Request : public ThreadRequest { char* jsonRequest; wxString filename; - bool isFunctionTip; + eRequestType type; }; - + struct Reply { wxString json; wxString filename; - bool isFunctionTip; + eRequestType requestType; }; - + public: clTernWorkerThread(clTernServer* ternServer); virtual ~clTernWorkerThread(); diff -Nru codelite-8.0.1+dfsg2/WebTools/CMakeLists.txt codelite-9.0+dfsg/WebTools/CMakeLists.txt --- codelite-8.0.1+dfsg2/WebTools/CMakeLists.txt 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/WebTools/CMakeLists.txt 2015-10-11 13:56:07.000000000 +0000 @@ -30,11 +30,6 @@ add_definitions(-Winvalid-pch) endif ( USE_PCH ) -# Add RPATH -if (UNIX) - set (LINKER_OPTIONS -Wl,-rpath,"${PLUGINS_DIR}") -endif (UNIX) - if (UNIX AND NOT APPLE) set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC" ) set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC" ) @@ -57,8 +52,6 @@ ${wxWidgets_LIBRARIES} libcodelite plugin - wxsqlite3 - sqlite3lib ) CL_INSTALL_PLUGIN(${PLUGIN_NAME}) diff -Nru codelite-8.0.1+dfsg2/WebTools/CSSCodeCompletion.cpp codelite-9.0+dfsg/WebTools/CSSCodeCompletion.cpp --- codelite-8.0.1+dfsg2/WebTools/CSSCodeCompletion.cpp 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/WebTools/CSSCodeCompletion.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,120 @@ +#include "CSSCodeCompletion.h" +#include "ieditor.h" +#include "css.json" +#include +#include "wxCodeCompletionBox.h" +#include +#include "wxCodeCompletionBoxEntry.h" +#include "wxCodeCompletionBoxManager.h" +#include "json_node.h" +#include +#include +#include + +CSSCodeCompletion::CSSCodeCompletion() + : m_isEnabled(true) +{ + JSONRoot root(CSS_JSON); + JSONElement arr = root.toElement(); + int count = arr.arraySize(); + std::set valuesSet; + for(int i = 0; i < count; ++i) { + JSONElement entry = arr.arrayItem(i); + if(!entry.hasNamedObject("name")) continue; + + Entry e; + e.property = entry.namedObject("name").toString(); + e.values = entry.namedObject("values").toArrayString(); + m_entries.push_back(e); + + // collect the values and make them a unique set + for(size_t i = 0; i < e.values.size(); ++i) { + valuesSet.insert(e.values.Item(i)); + } + } + + std::for_each(valuesSet.begin(), valuesSet.end(), [&](const wxString& v) { + Entry e; + e.property = v; + m_entries.push_back(e); + }); +} + +CSSCodeCompletion::~CSSCodeCompletion() {} + +void CSSCodeCompletion::CssCodeComplete(IEditor* editor) +{ + if(!m_isEnabled) return; + + // Perform HTML code completion + wxStyledTextCtrl* ctrl = editor->GetCtrl(); + int currentLine = ctrl->GetCurrentLine(); + int minPos = ctrl->PositionFromLine(currentLine); + + wxChar nonWhitespaceChar = 0; + int nonWhitespaceCharPos = wxNOT_FOUND; + int curpos = ctrl->GetCurrentPos(); + + while((curpos > minPos)) { + nonWhitespaceChar = ctrl->GetCharAt(curpos); + switch(nonWhitespaceChar) { + case '\n': + case '\r': + case '\t': + case ' ': + break; + default: + nonWhitespaceCharPos = curpos; + break; + } + if(nonWhitespaceCharPos != wxNOT_FOUND) break; + curpos = ctrl->PositionBefore(curpos); + } + + if(nonWhitespaceCharPos != wxNOT_FOUND && nonWhitespaceChar == ':') { + // Suggest values of the given properties + wxString word = GetPreviousWord(editor, nonWhitespaceCharPos); + if(word.IsEmpty()) return; + Entry::Vec_t::const_iterator iter = + std::find_if(m_entries.begin(), m_entries.end(), [&](const Entry& e) { return (e.property == word); }); + if(iter != m_entries.end()) { + wxCodeCompletionBox::BmpVec_t bitmaps; + bitmaps.push_back(wxXmlResource::Get()->LoadBitmap("code-tags")); + + wxCodeCompletionBoxEntry::Vec_t entries; + const wxArrayString& values = (*iter).values; + + for(size_t i = 0; i < values.size(); ++i) { + wxCodeCompletionBoxEntry::Ptr_t entry = wxCodeCompletionBoxEntry::New(values.Item(i), 0); + entries.push_back(entry); + } + wxCodeCompletionBoxManager::Get().ShowCompletionBox( + editor->GetCtrl(), entries, bitmaps, 0, editor->GetCurrentPosition(), this); + } + } else { + wxCodeCompletionBox::BmpVec_t bitmaps; + bitmaps.push_back(wxXmlResource::Get()->LoadBitmap("code-tags")); + + wxCodeCompletionBoxEntry::Vec_t entries; + for(size_t i = 0; i < m_entries.size(); ++i) { + wxCodeCompletionBoxEntry::Ptr_t entry = wxCodeCompletionBoxEntry::New(m_entries.at(i).property, 0); + // entry->SetComment(m_entries.at(i).m_comment); + entries.push_back(entry); + } + wxCodeCompletionBoxManager::Get().ShowCompletionBox( + editor->GetCtrl(), entries, bitmaps, 0, editor->WordStartPos(editor->GetCurrentPosition(), false), this); + } +} + +wxString CSSCodeCompletion::GetPreviousWord(IEditor* editor, int pos) +{ + int lineStartPos = editor->GetCtrl()->PositionFromLine(editor->GetCtrl()->LineFromPosition(pos)); + + // get the line from the start up until the ":" + wxString line = editor->GetCtrl()->GetTextRange(lineStartPos, pos); + if(line.IsEmpty()) return ""; + + wxArrayString words = ::wxStringTokenize(line, "\r\n \t", wxTOKEN_STRTOK); + if(words.IsEmpty()) return ""; + return words.Last(); +} diff -Nru codelite-8.0.1+dfsg2/WebTools/CSSCodeCompletion.h codelite-9.0+dfsg/WebTools/CSSCodeCompletion.h --- codelite-8.0.1+dfsg2/WebTools/CSSCodeCompletion.h 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/WebTools/CSSCodeCompletion.h 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,35 @@ +#ifndef CSSCODECOMPLETION_H +#define CSSCODECOMPLETION_H + +#include // Base class: wxEvtHandler +#include "smart_ptr.h" +#include +#include + +class IEditor; +class CSSCodeCompletion : public wxEvtHandler +{ + +public: + typedef SmartPtr Ptr_t; + struct Entry { + wxString property; + wxArrayString values; + typedef std::vector Vec_t; + }; + +protected: + bool m_isEnabled; + Entry::Vec_t m_entries; + +protected: + wxString GetPreviousWord(IEditor* editor, int pos); + +public: + CSSCodeCompletion(); + virtual ~CSSCodeCompletion(); + + void CssCodeComplete(IEditor* editor); +}; + +#endif // CSSCODECOMPLETION_H diff -Nru codelite-8.0.1+dfsg2/WebTools/css.json codelite-9.0+dfsg/WebTools/css.json --- codelite-8.0.1+dfsg2/WebTools/css.json 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/WebTools/css.json 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,181 @@ +#include +const wxString CSS_JSON = +"[\ + {\"name\": \"align-content\", \"values\": [\"stretch\",\"center\",\"flex-start\",\"flex-end\",\"space-between\",\"space-around\",\"initial\",\"inherit\"]},\ + {\"name\": \"align-items\", \"values\": [\"stretch\",\"center\",\"flex-start\",\"flex-end\",\"baseline\",\"initial\",\"inherit\"]},\ + {\"name\": \"align-self\", \"values\": [\"auto\",\"stretch\",\"center\",\"flex-start\",\"flex-end\",\"baseline\",\"initial\",\"inherit\"]},\ + {\"name\": \"animation\", \"values\": [\"initial\",\"inherit\"]},\ + {\"name\": \"animation-delay\", \"values\": [\"initial\",\"inherit\"]},\ + {\"name\": \"animation-direction\", \"values\": [\"normal\",\"reverse\",\"alternate\",\"alternate-reverse\",\"initial\",\"inherit\"]},\ + {\"name\": \"animation-duration\", \"values\": [\"initial\",\"inherit\"]},\ + {\"name\": \"animation-fill-mode\", \"values\": [\"none\",\"forwards\",\"backwards\",\"both\",\"initial\",\"inherit\"]},\ + {\"name\": \"animation-iteration-count\", \"values\": [\"infinite\",\"initial\",\"inherit\"]},\ + {\"name\": \"animation-name\", \"values\": [\"none\",\"initial\",\"inherit\"]},\ + {\"name\": \"animation-play-state\", \"values\": [\"paused\",\"running\",\"initial\",\"inherit\"]},\ + {},\ + {\"name\": \"backface-visibility\", \"values\": [\"visible\",\"hidden\",\"initial\",\"inherit\"]},\ + {\"name\": \"background\", \"values\": [\"initial\",\"inherit\"]},\ + {\"name\": \"background-attachment\", \"values\": [\"scroll\",\"fixed\",\"local\",\"initial\",\"inherit\"]},\ + {\"name\": \"background-clip\", \"values\": [\"border-box\",\"padding-box\",\"content-box\",\"initial\",\"inherit\"]},\ + {\"name\": \"background-color\", \"values\": [\"transparent\",\"initial\",\"inherit\"]},\ + {\"name\": \"background-image\", \"values\": [\"none\",\"initial\",\"inherit\"]},\ + {\"name\": \"background-origin\", \"values\": [\"padding-box\",\"border-box\",\"content-box\",\"initial\",\"inherit\"]},\ + {\"name\": \"background-position\", \"values\": [\"initial\",\"inherit\"]},\ + {\"name\": \"background-repeat\", \"values\": [\"repeat\",\"repeat-x\",\"repeat-y\",\"no-repeat\",\"initial\",\"inherit\"]},\ + {\"name\": \"background-size\", \"values\": [\"auto\",\"initial\",\"inherit\"]},\ + {\"name\": \"border\", \"values\": [\"initial\",\"inherit\"]},\ + {\"name\": \"border-bottom\", \"values\": [\"initial\",\"inherit\"]},\ + {\"name\": \"border-bottom-color\", \"values\": [\"transparent\",\"initial\",\"inherit\"]},\ + {\"name\": \"border-bottom-left-radius\", \"values\": [\"initial\",\"inherit\"]},\ + {\"name\": \"border-bottom-right-radius\", \"values\": [\"initial\",\"inherit\"]},\ + {\"name\": \"border-bottom-style\", \"values\": [\"none\",\"hidden\",\"dotted\",\"dashed\",\"solid\",\"double\",\"groove\",\"ridge\",\"inset\",\"outset\",\"initial\",\"inherit\"]},\ + {\"name\": \"border-bottom-width\", \"values\": [\"medium\",\"thin\",\"thick\",\"initial\",\"inherit\"]},\ + {\"name\": \"border-collapse\", \"values\": [\"separate\",\"collapse\",\"initial\",\"inherit\"]},\ + {\"name\": \"border-color\", \"values\": [\"transparent\",\"initial\",\"inherit\"]},\ + {\"name\": \"border-image\", \"values\": [\"initial\",\"inherit\"]},\ + {\"name\": \"border-image-outset\", \"values\": [\"initial\",\"inherit\"]},\ + {\"name\": \"border-image-repeat\", \"values\": [\"space\",\"initial\",\"inherit\"]},\ + {\"name\": \"border-image-slice\", \"values\": [\"initial\",\"inherit\"]},\ + {\"name\": \"border-image-source\", \"values\": [\"initial\",\"inherit\"]},\ + {\"name\": \"border-image-width\", \"values\": [\"auto\",\"initial\",\"inherit\"]},\ + {\"name\": \"border-left\", \"values\": [\"initial\",\"inherit\"]},\ + {\"name\": \"border-left-color\", \"values\": [\"transparent\",\"initial\",\"inherit\"]},\ + {\"name\": \"border-left-style\", \"values\": [\"none\",\"hidden\",\"dotted\",\"dashed\",\"solid\",\"double\",\"groove\",\"ridge\",\"inset\",\"outset\",\"initial\",\"inherit\"]},\ + {\"name\": \"border-left-width\", \"values\": [\"medium\",\"thin\",\"thick\",\"initial\",\"inherit\"]},\ + {\"name\": \"border-radius\", \"values\": [\"initial\",\"inherit\"]},\ + {\"name\": \"border-right\", \"values\": [\"initial\",\"inherit\"]},\ + {\"name\": \"border-right-color\", \"values\": [\"transparent\",\"initial\",\"inherit\"]},\ + {\"name\": \"border-right-style\", \"values\": [\"none\",\"hidden\",\"dotted\",\"dashed\",\"solid\",\"double\",\"groove\",\"ridge\",\"inset\",\"outset\",\"initial\",\"inherit\"]},\ + {\"name\": \"border-right-width\", \"values\": [\"medium\",\"thin\",\"thick\",\"initial\",\"inherit\"]},\ + {\"name\": \"border-spacing\", \"values\": [\"initial\",\"inherit\"]},\ + {\"name\": \"border-style\", \"values\": [\"none\",\"hidden\",\"dotted\",\"dashed\",\"solid\",\"double\",\"groove\",\"ridge\",\"inset\",\"outset\",\"initial\",\"inherit\"]},\ + {\"name\": \"border-top\", \"values\": [\"initial\",\"inherit\"]},\ + {\"name\": \"border-top-color\", \"values\": [\"transparent\",\"initial\",\"inherit\"]},\ + {\"name\": \"border-top-left-radius\", \"values\": [\"initial\",\"inherit\"]},\ + {\"name\": \"border-top-right-radius\", \"values\": [\"initial\",\"inherit\"]},\ + {\"name\": \"border-top-style\", \"values\": [\"none\",\"hidden\",\"dotted\",\"dashed\",\"solid\",\"double\",\"groove\",\"ridge\",\"inset\",\"outset\",\"initial\",\"inherit\"]},\ + {\"name\": \"border-top-width\", \"values\": [\"medium\",\"thin\",\"thick\",\"initial\",\"inherit\"]},\ + {\"name\": \"border-width\", \"values\": [\"medium\",\"thin\",\"thick\",\"initial\",\"inherit\"]},\ + {\"name\": \"bottom\", \"values\": [\"auto\",\"initial\",\"inherit\"]},\ + {\"name\": \"box-shadow\", \"values\": [\"none\",\"inset\",\"initial\",\"inherit\"]},\ + {\"name\": \"box-sizing\", \"values\": [\"initial\",\"inherit\"]},\ + {\"name\": \"caption-side\", \"values\": [\"top\",\"bottom\",\"initial\",\"inherit\"]},\ + {\"name\": \"clear\", \"values\": [\"none\",\"left\",\"right\",\"both\",\"initial\",\"inherit\"]},\ + {\"name\": \"clip\", \"values\": [\"auto\",\"initial\",\"inherit\"]},\ + {\"name\": \"color\", \"values\": [\"initial\",\"inherit\"]},\ + {\"name\": \"column-count\", \"values\": [\"auto\",\"initial\",\"inherit\"]},\ + {\"name\": \"column-fill\", \"values\": [\"balance\",\"auto\",\"initial\",\"inherit\"]},\ + {\"name\": \"column-gap\", \"values\": [\"normal\",\"initial\",\"inherit\"]},\ + {\"name\": \"column-rule\", \"values\": [\"initial\",\"inherit\"]},\ + {\"name\": \"column-rule-color\", \"values\": [\"initial\",\"inherit\"]},\ + {\"name\": \"column-rule-style\", \"values\": [\"initial\",\"inherit\"]},\ + {\"name\": \"column-rule-width\", \"values\": [\"initial\",\"inherit\"]},\ + {\"name\": \"column-span\", \"values\": [\"1\",\"all\",\"initial\",\"inherit\"]},\ + {\"name\": \"column-width\", \"values\": [\"auto\",\"initial\",\"inherit\"]},\ + {\"name\": \"columns\", \"values\": [\"auto\",\"initial\",\"inherit\"]},\ + {\"name\": \"content\", \"values\": [\"normal\",\"none\",\"counter\",\"open-quote\",\"close-quote\",\"no-open-quote\",\"no-close-quote\",\"initial\",\"inherit\"]},\ + {\"name\": \"counter-increment\", \"values\": [\"none\",\"initial\",\"inherit\"]},\ + {\"name\": \"counter-reset\", \"values\": [\"none\",\"initial\",\"inherit\"]},\ + {\"name\": \"cursor\", \"values\": [\"alias\",\"all-scroll\",\"auto\",\"cell\",\"context-menu\",\"col-resize\",\"copy\",\"crosshair\",\"default\",\"e-resize\",\"ew-resize\",\"grab\",\"grabbing\",\"help\",\"move\",\"n-resize\",\"ne-resize\",\"nesw-resize\",\"ns-resize\",\"nw-resize\",\"nwse-resize\",\"no-drop\",\"none\",\"not-allowed\",\"pointer\",\"progress\",\"row-resize\",\"s-resize\",\"se-resize\",\"sw-resize\",\"text\",\"vertical-text\",\"w-resize\",\"wait\",\"zoom-in\",\"zoom-out\",\"initial\",\"inherit\"]},\ + {\"name\": \"direction\", \"values\": [\"ltr\",\"rtl\",\"initial\",\"inherit\"]},\ + {\"name\": \"display\", \"values\": [\"inline\",\"block\",\"flex\",\"inline-block\",\"inline-flex\",\"inline-table\",\"list-item\",\"run-in\",\"table\",\"table-caption\",\"table-header-group\",\"table-footer-group\",\"table-row-group\",\"table-cell\",\"table-column\",\"table-row\",\"none\",\"initial\",\"inherit\"]},\ + {\"name\": \"empty-cells\", \"values\": [\"show\",\"hide\",\"initial\",\"inherit\"]},\ + {\"name\": \"flex\", \"values\": [\"auto\",\"initial\",\"none\",\"inherit\"]},\ + {\"name\": \"flex-basis\", \"values\": [\"auto\",\"initial\",\"inherit\"]},\ + {\"name\": \"flex-direction\", \"values\": [\"row\",\"row-reverse\",\"column\",\"column-reverse\",\"initial\",\"inherit\"]},\ + {\"name\": \"flex-flow\", \"values\": [\"initial\",\"inherit\"]},\ + {\"name\": \"flex-grow\", \"values\": [\"initial\",\"inherit\"]},\ + {\"name\": \"flex-shrink\", \"values\": [\"initial\",\"inherit\"]},\ + {\"name\": \"flex-wrap\", \"values\": [\"nowrap\",\"wrap\",\"wrap-reverse\",\"initial\",\"inherit\"]},\ + {\"name\": \"float\", \"values\": [\"none\",\"left\",\"right\",\"initial\",\"inherit\"]},\ + {\"name\": \"font\", \"values\": [\"caption\",\"icon\",\"menu\",\"message-box\",\"small-caption\",\"status-bar\",\"initial\",\"inherit\"]},\ + {\"name\": \"@font-face\", \"values\": []},\ + {\"name\": \"font-family\", \"values\": [\"initial\",\"inherit\"]},\ + {\"name\": \"font-size\", \"values\": [\"medium\",\"xx-small\",\"x-small\",\"small\",\"large\",\"x-large\",\"xx-large\",\"smaller\",\"larger\",\"initial\",\"inherit\"]},\ + {\"name\": \"font-size-adjust\", \"values\": [\"none\",\"initial\",\"inherit\"]},\ + {\"name\": \"font-stretch\", \"values\": [\"ultra-condensed\",\"extra-condensed\",\"condensed\",\"semi-condensed\",\"normal\",\"semi-expanded\",\"expanded\",\"extra-expanded\",\"ultra-expanded\",\"initial\",\"inherit\"]},\ + {\"name\": \"font-style\", \"values\": [\"normal\",\"italic\",\"oblique\",\"initial\",\"inherit\"]},\ + {\"name\": \"font-variant\", \"values\": [\"normal\",\"small-caps\",\"initial\",\"inherit\"]},\ + {\"name\": \"font-weight\", \"values\": [\"normal\",\"bold\",\"bolder\",\"lighter\",\"initial\",\"inherit\"]},\ + {\"name\": \"hanging-punctuation\", \"values\": [\"none\",\"first\",\"last\",\"allow-end\",\"force-end\",\"initial\",\"inherit\"]},\ + {\"name\": \"height\", \"values\": [\"auto\",\"initial\",\"inherit\"]},\ + {\"name\": \"justify-content\", \"values\": [\"flex-start\",\"flex-end\",\"center\",\"space-between\",\"space-around\",\"initial\",\"inherit\"]},\ + {\"name\": \"@keyframes\", \"values\": []},\ + {\"name\": \"left\", \"values\": [\"auto\",\"initial\",\"inherit\"]},\ + {\"name\": \"letter-spacing\", \"values\": [\"normal\",\"initial\",\"inherit\"]},\ + {\"name\": \"line-height\", \"values\": [\"normal\",\"initial\",\"inherit\"]},\ + {\"name\": \"list-style\", \"values\": [\"initial\",\"inherit\"]},\ + {\"name\": \"list-style-image\", \"values\": [\"none\",\"url\",\"initial\",\"inherit\"]},\ + {\"name\": \"list-style-position\", \"values\": [\"inside\",\"outside\",\"initial\",\"inherit\"]},\ + {\"name\": \"list-style-type\", \"values\": [\"disc\",\"armenian\",\"circle\",\"cjk-ideographic\",\"decimal\",\"decimal-leading-zero\",\"georgian\",\"hebrew\",\"hiragana\",\"hiragana-iroha\",\"katakana\",\"katakana-iroha\",\"lower-alpha\",\"lower-greek\",\"lower-latin\",\"lower-roman\",\"none\",\"square\",\"upper-alpha\",\"upper-latin\",\"upper-roman\",\"initial\",\"inherit\"]},\ + {\"name\": \"margin\", \"values\": [\"auto\",\"initial\",\"inherit\"]},\ + {\"name\": \"margin-bottom\", \"values\": [\"auto\",\"initial\",\"inherit\"]},\ + {\"name\": \"margin-left\", \"values\": [\"auto\",\"initial\",\"inherit\"]},\ + {\"name\": \"margin-right\", \"values\": [\"auto\",\"initial\",\"inherit\"]},\ + {\"name\": \"margin-top\", \"values\": [\"auto\",\"initial\",\"inherit\"]},\ + {\"name\": \"max-height\", \"values\": [\"none\",\"initial\",\"inherit\"]},\ + {\"name\": \"max-width\", \"values\": [\"none\",\"initial\",\"inherit\"]},\ + {\"name\": \"@media\", \"values\": []},\ + {\"name\": \"min-height\", \"values\": [\"initial\",\"inherit\"]},\ + {\"name\": \"min-width\", \"values\": [\"initial\",\"inherit\"]},\ + {\"name\": \"nav-down\", \"values\": [\"auto\",\"initial\",\"inherit\"]},\ + {\"name\": \"nav-index\", \"values\": [\"auto\",\"initial\",\"inherit\"]},\ + {\"name\": \"nav-left\", \"values\": [\"auto\",\"initial\",\"inherit\"]},\ + {\"name\": \"nav-right\", \"values\": [\"auto\",\"initial\",\"inherit\"]},\ + {\"name\": \"nav-up\", \"values\": [\"auto\",\"initial\",\"inherit\"]},\ + {\"name\": \"opacity\", \"values\": [\"initial\",\"inherit\"]},\ + {\"name\": \"order\", \"values\": [\"initial\",\"inherit\"]},\ + {\"name\": \"outline\", \"values\": [\"initial\",\"inherit\"]},\ + {\"name\": \"outline-color\", \"values\": [\"invert\",\"initial\",\"inherit\"]},\ + {\"name\": \"outline-offset\", \"values\": [\"initial\",\"inherit\"]},\ + {\"name\": \"outline-style\", \"values\": [\"none\",\"hidden\",\"dotted\",\"dashed\",\"solid\",\"double\",\"groove\",\"ridge\",\"inset\",\"outset\",\"initial\",\"inherit\"]},\ + {\"name\": \"outline-width\", \"values\": [\"medium\",\"thin\",\"thick\",\"initial\",\"inherit\"]},\ + {\"name\": \"overflow\", \"values\": [\"visible\",\"hidden\",\"scroll\",\"auto\",\"initial\",\"inherit\"]},\ + {\"name\": \"overflow-x\", \"values\": [\"visible\",\"hidden\",\"scroll\",\"auto\",\"initial\",\"inherit\"]},\ + {\"name\": \"overflow-y\", \"values\": [\"visible\",\"hidden\",\"scroll\",\"auto\",\"initial\",\"inherit\"]},\ + {\"name\": \"padding\", \"values\": [\"initial\",\"inherit\"]},\ + {\"name\": \"padding-bottom\", \"values\": [\"initial\",\"inherit\"]},\ + {\"name\": \"padding-left\", \"values\": [\"initial\",\"inherit\"]},\ + {\"name\": \"padding-right\", \"values\": [\"initial\",\"inherit\"]},\ + {\"name\": \"padding-top\", \"values\": [\"initial\",\"inherit\"]},\ + {\"name\": \"page-break-after\", \"values\": [\"auto\",\"always\",\"avoid\",\"left\",\"right\",\"initial\",\"inherit\"]},\ + {\"name\": \"page-break-before\", \"values\": [\"auto\",\"always\",\"avoid\",\"left\",\"right\",\"initial\",\"inherit\"]},\ + {\"name\": \"page-break-inside\", \"values\": [\"auto\",\"avoid\",\"initial\",\"inherit\"]},\ + {\"name\": \"perspective\", \"values\": [\"none\",\"initial\",\"inherit\"]},\ + {\"name\": \"perspective-origin\", \"values\": [\"initial\",\"inherit\"]},\ + {\"name\": \"position\", \"values\": [\"static\",\"absolute\",\"fixed\",\"relative\",\"initial\",\"inherit\"]},\ + {\"name\": \"quotes\", \"values\": [\"none\",\"initial\",\"inherit\"]},\ + {\"name\": \"resize\", \"values\": [\"initial\",\"inherit\"]},\ + {\"name\": \"right\", \"values\": [\"auto\",\"initial\",\"inherit\"]},\ + {\"name\": \"tab-size\", \"values\": [\"initial\",\"inherit\"]},\ + {\"name\": \"table-layout\", \"values\": [\"auto\",\"fixed\",\"initial\",\"inherit\"]},\ + {\"name\": \"text-align\", \"values\": [\"left\",\"right\",\"center\",\"justify\",\"initial\",\"inherit\"]},\ + {\"name\": \"text-align-last\", \"values\": [\"auto\",\"left\",\"right\",\"center\",\"justify\",\"start\",\"end\",\"initial\",\"inherit\"]},\ + {\"name\": \"text-decoration\", \"values\": [\"none\",\"underline\",\"overline\",\"line-through\",\"initial\",\"inherit\"]},\ + {\"name\": \"text-decoration-color\", \"values\": [\"initial\",\"inherit\"]},\ + {\"name\": \"text-decoration-line\", \"values\": [\"none\",\"underline\",\"overline\",\"line-through\",\"initial\",\"inherit\"]},\ + {\"name\": \"text-decoration-style\", \"values\": [\"solid\",\"double\",\"dotted\",\"dashed\",\"wavy\",\"initial\",\"inherit\"]},\ + {\"name\": \"text-indent\", \"values\": [\"initial\",\"inherit\"]},\ + {\"name\": \"text-justify\", \"values\": [\"auto\",\"inter-word\",\"inter-ideograph\",\"inter-cluster\",\"distribute\",\"kashida\",\"trim\",\"none\",\"initial\",\"inherit\"]},\ + {\"name\": \"text-overflow\", \"values\": [\"clip\",\"ellipsis\",\"initial\",\"inherit\"]},\ + {\"name\": \"text-shadow\", \"values\": [\"none\",\"initial\",\"inherit\"]},\ + {\"name\": \"text-transform\", \"values\": [\"none\",\"capitalize\",\"uppercase\",\"lowercase\",\"initial\",\"inherit\"]},\ + {\"name\": \"top\", \"values\": [\"auto\",\"initial\",\"inherit\"]},\ + {\"name\": \"transform\", \"values\": [\"none\",\"initial\",\"inherit\"]},\ + {\"name\": \"transform-origin\", \"values\": [\"initial\",\"inherit\"]},\ + {\"name\": \"transform-style\", \"values\": [\"flat\",\"preserve-3d\",\"initial\",\"inherit\"]},\ + {\"name\": \"transition\", \"values\": [\"initial\",\"inherit\"]},\ + {\"name\": \"transition-delay\", \"values\": [\"initial\",\"inherit\"]},\ + {\"name\": \"transition-duration\", \"values\": [\"initial\",\"inherit\"]},\ + {\"name\": \"transition-property\", \"values\": [\"none\",\"all\",\"initial\",\"inherit\"]},\ + {\"name\": \"transition-timing-function\", \"values\": [\"ease\",\"linear\",\"ease-in\",\"ease-out\",\"ease-in-out\",\"initial\",\"inherit\"]},\ + {\"name\": \"unicode-bidi\", \"values\": [\"normal\",\"embed\",\"bidi-override\",\"initial\",\"inherit\"]},\ + {\"name\": \"vertical-align\", \"values\": [\"baseline\",\"sub\",\"super\",\"top\",\"text-top\",\"middle\",\"bottom\",\"text-bottom\",\"initial\",\"inherit\"]},\ + {\"name\": \"visibility\", \"values\": [\"visible\",\"hidden\",\"collapse\",\"initial\",\"inherit\"]},\ + {\"name\": \"white-space\", \"values\": [\"normal\",\"nowrap\",\"pre\",\"pre-line\",\"pre-wrap\",\"initial\",\"inherit\"]},\ + {\"name\": \"width\", \"values\": [\"auto\",\"initial\",\"inherit\"]},\ + {\"name\": \"word-break\", \"values\": [\"normal\",\"break-all\",\"initial\",\"inherit\"]},\ + {\"name\": \"word-spacing\", \"values\": [\"normal\",\"initial\",\"inherit\"]},\ + {\"name\": \"word-wrap\", \"values\": [\"normal\",\"break-word\",\"initial\",\"inherit\"]},\ + {\"name\": \"z-index\", \"values\": [\"auto\",\"initial\",\"inherit\"]}\ +]"; Binary files /tmp/0wlVVhsoFK/codelite-8.0.1+dfsg2/WebTools/javascript.zip and /tmp/qKeBoHmecl/codelite-9.0+dfsg/WebTools/javascript.zip differ diff -Nru codelite-8.0.1+dfsg2/WebTools/JSCodeCompletion.cpp codelite-9.0+dfsg/WebTools/JSCodeCompletion.cpp --- codelite-8.0.1+dfsg2/WebTools/JSCodeCompletion.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/WebTools/JSCodeCompletion.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -18,6 +18,9 @@ #include "globals.h" #include "imanager.h" #include "WebToolsConfig.h" +#include +#include +#include "navigationmanager.h" #ifdef __WXMSW__ #define ZIP_NAME "javascript-win.zip" @@ -27,10 +30,12 @@ #define ZIP_NAME "javascript-osx.zip" #endif -JSCodeCompletion::JSCodeCompletion() +JSCodeCompletion::JSCodeCompletion(const wxString& workingDirectory) : m_ternServer(this) , m_ccPos(wxNOT_FOUND) + , m_workingDirectory(workingDirectory) { + wxTheApp->Bind(wxEVT_MENU, &JSCodeCompletion::OnGotoDefinition, this, XRCID("ID_MENU_JS_GOTO_DEFINITION")); wxFileName jsResources(clStandardPaths::Get().GetDataDir(), ZIP_NAME); if(jsResources.Exists()) { @@ -42,19 +47,18 @@ targetDir.Mkdir(wxS_DIR_DEFAULT, wxPATH_MKDIR_FULL); zipReader.Extract("*", targetDir.GetPath()); - m_ternServer.Start(); + m_ternServer.Start(m_workingDirectory); } } -JSCodeCompletion::~JSCodeCompletion() { m_ternServer.Terminate(); } - -void JSCodeCompletion::CodeComplete(IEditor* editor) +JSCodeCompletion::~JSCodeCompletion() { - if(!IsEnabled()) { - TriggerWordCompletion(); - return; - } + m_ternServer.Terminate(); + wxTheApp->Unbind(wxEVT_MENU, &JSCodeCompletion::OnGotoDefinition, this, XRCID("ID_MENU_JS_GOTO_DEFINITION")); +} +bool JSCodeCompletion::SanityCheck() +{ #ifdef __WXGTK__ wxFileName nodeJS; if(!clTernServer::LocateNodeJS(nodeJS)) { @@ -69,9 +73,20 @@ WebToolsConfig conf; conf.Load().EnableJavaScriptFlag(WebToolsConfig::kJSEnableCC, false); conf.Save(); - return; + return false; } #endif + return true; +} + +void JSCodeCompletion::CodeComplete(IEditor* editor) +{ + if(!IsEnabled()) { + TriggerWordCompletion(); + return; + } + + if(!SanityCheck()) return; // Sanity CHECK_PTR_RET(editor); @@ -144,3 +159,85 @@ wxCommandEvent wordCompleteEvent(wxEVT_MENU, XRCID("word_complete_no_single_insert")); wxTheApp->ProcessEvent(wordCompleteEvent); } + +void JSCodeCompletion::FindDefinition(IEditor* editor) +{ + if(!IsEnabled()) { + return; + } + + if(!SanityCheck()) return; + + // Sanity + CHECK_PTR_RET(editor); + + wxStyledTextCtrl* ctrl = editor->GetCtrl(); + m_ccPos = ctrl->GetCurrentPos(); + m_ternServer.PostFindDefinitionRequest(editor); +} + +void JSCodeCompletion::OnDefinitionFound(const clTernDefinition& loc) +{ + if(loc.IsURL()) { + ::wxLaunchDefaultBrowser(loc.url); + } else { + BrowseRecord from, to; + wxString pattern; + if(clGetManager()->GetActiveEditor()) { + pattern = clGetManager()->GetActiveEditor()->GetWordAtCaret(); + from = clGetManager()->GetActiveEditor()->CreateBrowseRecord(); + } + IEditor* editor = clGetManager()->OpenFile(loc.file); + if(editor) { + editor->CenterLine(editor->LineFromPos(loc.start)); + if(editor->FindAndSelect(pattern, pattern, loc.start, NULL)) { + to = editor->CreateBrowseRecord(); + // Record this jump + clGetManager()->GetNavigationMgr()->AddJump(from, to); + } + } + } +} + +void JSCodeCompletion::ResetTern() +{ + if(!IsEnabled()) { + return; + } + + if(!SanityCheck()) return; + + // Sanity + m_ccPos = wxNOT_FOUND; + + // recycle tern + //m_ternServer.PostResetCommand(true); + m_ternServer.RecycleIfNeeded(true); +} + +void JSCodeCompletion::AddContextMenu(wxMenu* menu, IEditor* editor) +{ + wxUnusedVar(editor); + menu->PrependSeparator(); + menu->Prepend(XRCID("ID_MENU_JS_GOTO_DEFINITION"), _("Find Definition")); +} + +void JSCodeCompletion::OnGotoDefinition(wxCommandEvent& event) +{ + wxUnusedVar(event); + FindDefinition(clGetManager()->GetActiveEditor()); +} + +void JSCodeCompletion::ReparseFile(IEditor* editor) +{ + if(!IsEnabled()) { + return; + } + CHECK_PTR_RET(editor); + + if(!SanityCheck()) return; + + // Sanity + m_ccPos = wxNOT_FOUND; + m_ternServer.PostReparseCommand(editor); +} diff -Nru codelite-8.0.1+dfsg2/WebTools/JSCodeCompletion.h codelite-9.0+dfsg/WebTools/JSCodeCompletion.h --- codelite-8.0.1+dfsg2/WebTools/JSCodeCompletion.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/WebTools/JSCodeCompletion.h 2015-10-11 13:56:07.000000000 +0000 @@ -12,34 +12,64 @@ { clTernServer m_ternServer; int m_ccPos; + wxString m_workingDirectory; public: typedef SmartPtr Ptr_t; void OnCodeCompleteReady(const wxCodeCompletionBoxEntry::Vec_t& entries, const wxString& filename); void OnFunctionTipReady(clCallTipPtr calltip, const wxString& filename); + void OnDefinitionFound(const clTernDefinition& loc); + void OnGotoDefinition(wxCommandEvent& event); + /** * @brief start code completion based on the word completion plugin */ void TriggerWordCompletion(); - + +protected: + bool SanityCheck(); + public: - JSCodeCompletion(); + JSCodeCompletion(const wxString& workingDirectory); virtual ~JSCodeCompletion(); - + /** * @brief Is Java Script code completion enabled? */ bool IsEnabled() const; - + /** * @brief code complete the current expression */ void CodeComplete(IEditor* editor); /** + * @brief find definition of selected expression or the word under the caret + */ + void FindDefinition(IEditor* editor); + + /** + * @brief notify tern to clear the cache + * @param editor + */ + void ResetTern(); + + /** + * @brief reparse the file + */ + void ReparseFile(IEditor* editor); + + /** + * @brief add java script context menu entries + */ + void AddContextMenu(wxMenu* menu, IEditor* editor); + + /** * @brief restart the tern server */ void Reload(); + + void ClearFatalError() { m_ternServer.ClearFatalErrorFlag(); } }; #endif // JSCODECOMPLETION_H diff -Nru codelite-8.0.1+dfsg2/WebTools/m_dataview126model.cpp codelite-9.0+dfsg/WebTools/m_dataview126model.cpp --- codelite-8.0.1+dfsg2/WebTools/m_dataview126model.cpp 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/WebTools/m_dataview126model.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,324 @@ +////////////////////////////////////////////////////////////////////// +// This file was auto-generated by codelite's wxCrafter Plugin +// Do not modify this file by hand! +////////////////////////////////////////////////////////////////////// + +#include "m_dataview126model.h" +#include +#include + +////////////////////////////////////////// +// Implementation +////////////////////////////////////////// + +// ------------------------------------------------- +// Help method +// ------------------------------------------------- +wxVariant m_dataview126Model::CreateIconTextVariant(const wxString &text, const wxBitmap& bmp) +{ + wxIcon icn; + icn.CopyFromBitmap( bmp); + wxDataViewIconText ict(text, icn); + wxVariant v; + v << ict; + return v; +} + +// ------------------------------------------------- +// The model class +// ------------------------------------------------- + +m_dataview126Model::m_dataview126Model() + : m_colCount(0) +{ +} + +m_dataview126Model::~m_dataview126Model() +{ + for(size_t i=0; i(item.m_pItem); + if ( node ) { + for(size_t i=0; iGetChildren().size(); ++i) { + children.Add( wxDataViewItem( node->GetChildren().at(i) ) ); + } + } + return children.GetCount(); +} + +unsigned int m_dataview126Model::GetColumnCount() const +{ + return m_colCount; +} + +wxString m_dataview126Model::GetColumnType(unsigned int col) const +{ + if ( !m_data.empty() && m_data.at(0)->GetData().size() > col ) { + return m_data.at(0)->GetData().at(col).GetType(); + } + return "string"; +} + +wxDataViewItem m_dataview126Model::GetParent(const wxDataViewItem& item) const +{ + if ( IsEmpty() ) { + return wxDataViewItem(NULL); + } + + m_dataview126Model_Item* node = reinterpret_cast(item.m_pItem); + if ( node ) { + return wxDataViewItem(node->GetParent()); + } + return wxDataViewItem(NULL); +} + +bool m_dataview126Model::IsContainer(const wxDataViewItem& item) const +{ + m_dataview126Model_Item* node = reinterpret_cast(item.m_pItem); + if ( node ) { + return node->IsContainer(); + } + return false; +} + +void m_dataview126Model::GetValue(wxVariant& variant, const wxDataViewItem& item, unsigned int col) const +{ + m_dataview126Model_Item* node = reinterpret_cast(item.m_pItem); + if ( node && node->GetData().size() > col ) { + variant = node->GetData().at(col); + } +} +wxDataViewItem m_dataview126Model::DoAppendItem(const wxDataViewItem& parent, const wxVector& data, bool isContainer, wxClientData *clientData) +{ + m_dataview126Model_Item* parentNode = reinterpret_cast(parent.m_pItem); + DoChangeItemType(parent, true); + + m_dataview126Model_Item* child = new m_dataview126Model_Item(); + child->SetIsContainer(isContainer); + child->SetClientObject( clientData ); + child->SetData( data ); + if ( parentNode ) { + parentNode->AddChild( child ); + + } else { + m_data.push_back( child ); + } + + return wxDataViewItem(child); +} + +wxDataViewItem m_dataview126Model::DoInsertItem(const wxDataViewItem& insertBeforeMe, const wxVector& data, bool isContainer, wxClientData *clientData) +{ + m_dataview126Model_Item* child = new m_dataview126Model_Item(); + child->SetIsContainer(isContainer); + child->SetClientObject( clientData ); + child->SetData( data ); + + // find the location where to insert the new item + m_dataview126Model_Item* node = reinterpret_cast(insertBeforeMe.m_pItem); + if ( !node ) + return wxDataViewItem(); + + wxVector::iterator where = std::find(m_data.begin(), m_data.end(), node); + + if ( where != m_data.end() ) { + // top level item + m_data.insert( where, child ); + + } else { + + if ( !node->GetParent() ) + return wxDataViewItem(); + + child->SetParent(node->GetParent()); + where = std::find(node->GetParent()->GetChildren().begin(), node->GetParent()->GetChildren().end(), node); + if ( where == node->GetParent()->GetChildren().end() ) { + node->GetParent()->GetChildren().push_back( child ); + + } else { + node->GetParent()->GetChildren().insert(where, child); + + } + } + + return wxDataViewItem(child); +} + +wxDataViewItem m_dataview126Model::AppendItem(const wxDataViewItem &parent, const wxVector& data, wxClientData *clientData) +{ + wxDataViewItem ch = DoAppendItem(parent, data, false, clientData); + ItemAdded(parent, ch); + return ch; +} + +wxDataViewItemArray m_dataview126Model::AppendItems(const wxDataViewItem &parent, const wxVector >& data) +{ + wxDataViewItemArray items; + for(size_t i=0; i(item.m_pItem); + if ( node && node->GetData().size() > col ) { + node->GetData().at(col) = variant; + } + return true; +} + +void m_dataview126Model::DeleteItem(const wxDataViewItem& item) +{ + m_dataview126Model_Item* node = reinterpret_cast(item.m_pItem); + if ( node ) { + + m_dataview126Model_Item* parent = node->GetParent(); + wxDataViewItem parentItem(parent); + ItemDeleted(parentItem, item); + + // this will also remove it from its model parent children list + if ( parent == NULL ) { + // root item, remove it from the roots array + wxVector::iterator where = std::find(m_data.begin(), m_data.end(), node); + if ( where != m_data.end() ) { + m_data.erase(where); + } + } + + // If there are no more children, change the item back to 'normal' + if ( parent && parent->GetChildren().empty() ) + DoChangeItemType(parentItem, false); + + wxDELETE(node); + } + + if ( IsEmpty() ) + Cleared(); +} + +void m_dataview126Model::DeleteItems(const wxDataViewItem& parent, const wxDataViewItemArray& items) +{ + // sanity + for(size_t i=0; i(items.Item(i).m_pItem); + wxUnusedVar(node); + wxASSERT(node && node->GetParent() == parent.m_pItem); + DeleteItem(items.Item(i)); + } +} + +void m_dataview126Model::Clear() +{ + wxVector roots = m_data; + wxVector::iterator iter = roots.begin(); + for(; iter != roots.end(); ++iter) { + DeleteItem( wxDataViewItem(*iter) ); + } + m_data.clear(); + Cleared(); +} + +bool m_dataview126Model::IsEmpty() const +{ + return m_data.empty(); +} + +wxClientData* m_dataview126Model::GetClientObject(const wxDataViewItem& item) const +{ + m_dataview126Model_Item* node = reinterpret_cast(item.GetID()); + if ( node ) { + return node->GetClientObject(); + } + return NULL; +} + +void m_dataview126Model::SetClientObject(const wxDataViewItem& item, wxClientData *data) +{ + m_dataview126Model_Item* node = reinterpret_cast(item.GetID()); + if ( node ) { + node->SetClientObject(data); + } +} + +void m_dataview126Model::UpdateItem(const wxDataViewItem& item, const wxVector& data) +{ + m_dataview126Model_Item* node = reinterpret_cast(item.GetID()); + if ( node ) { + node->SetData( data ); + ItemChanged( item ); + } +} + +wxDataViewItem m_dataview126Model::InsertItem(const wxDataViewItem& insertBeforeMe, const wxVector& data, wxClientData *clientData) +{ + wxDataViewItem ch = DoInsertItem(insertBeforeMe, data, false, clientData); + if ( ch.IsOk() ) { + m_dataview126Model_Item* node = reinterpret_cast(ch.GetID()); + ItemAdded(wxDataViewItem(node->GetParent()), ch); + } + return ch; +} + +wxVector m_dataview126Model::GetItemColumnsData(const wxDataViewItem& item) const +{ + if ( !item.IsOk() ) + return wxVector(); + + m_dataview126Model_Item* node = reinterpret_cast(item.GetID()); + if ( !node ) { + return wxVector(); + } + return node->GetData(); +} + +bool m_dataview126Model::HasChildren(const wxDataViewItem& item) const +{ + if ( !item.IsOk() ) + return false; + + m_dataview126Model_Item* node = reinterpret_cast(item.GetID()); + if ( !node ) { + return false; + } + return !node->GetChildren().empty(); +} + +void m_dataview126Model::DoChangeItemType(const wxDataViewItem& item, bool changeToContainer) +{ + m_dataview126Model_Item* node = reinterpret_cast(item.GetID()); + if ( !node ) + return; + + if ( ( changeToContainer && !node->IsContainer()) || // change an item from non-container to container type + ( !changeToContainer && node->IsContainer()) ) { // change an item from container to non-container type +#if defined(__WXGTK__) || defined(__WXMAC__) + // change the item to container type: + // 1st we need to delete it + ItemDeleted(wxDataViewItem(node->GetParent()), item); + + // update the node type + node->SetIsContainer(changeToContainer); + ItemAdded(wxDataViewItem(node->GetParent()), item); +#else + node->SetIsContainer(changeToContainer); +#endif + } +} diff -Nru codelite-8.0.1+dfsg2/WebTools/m_dataview126model.h codelite-9.0+dfsg/WebTools/m_dataview126model.h --- codelite-8.0.1+dfsg2/WebTools/m_dataview126model.h 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/WebTools/m_dataview126model.h 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,276 @@ +////////////////////////////////////////////////////////////////////// +// This file was auto-generated by codelite's wxCrafter Plugin +// Do not modify this file by hand! +////////////////////////////////////////////////////////////////////// + +#ifndef __m_dataview126Model_GUARD__H__ +#define __m_dataview126Model_GUARD__H__ + +#include +#include +#include +#include + +/** + * @brief each item in the wxDataViewCtrl is represented in the model by this class. + * m_data - contains the data (columns values) as passed when adding an item to the wxDataViewCtrl model class + * m_clientData - is the user client data (owned by the model) + * To convert between a wxDataViewItem to a m_dataview126Model_Item class, simply use: + * @code + * m_dataview126Model_Item* itemData = reinterpret_cast( item.GetID() ); + * if ( itemData ) { + * // you can now traverese the tree or have a direct access to the model internal data + * // note that you must not delete itemData as it is owned by the model and + * } + * @endcode + */ +class m_dataview126Model_Item +{ +protected: + wxVector m_data; + m_dataview126Model_Item* m_parent; + wxVector m_children; + bool m_isContainer; + wxClientData* m_clientData; + +public: + m_dataview126Model_Item() + : m_parent(NULL) + , m_isContainer(false) + , m_clientData(NULL) + {} + virtual ~m_dataview126Model_Item() { + if ( m_clientData ) { + delete m_clientData; + m_clientData = NULL; + } + m_data.clear(); + + // Delete our children + // since the deletion of a child may alter its parent m_children array + // we use a temporary vector for the loop + wxVector tmpChildren = m_children; + while ( !tmpChildren.empty() ) { + delete (*tmpChildren.begin()); + tmpChildren.erase(tmpChildren.begin()); + } + m_children.clear(); + + // Remove us from the parent + if ( m_parent ) { + m_parent->RemoveChild(this); + } + } + + void SetIsContainer(bool b) { + m_isContainer = b; + } + + bool IsContainer() const { + return m_isContainer; + } + + /** + * @brief remove a child from this node and free its memory + * @param child + */ + void DeleteChild(m_dataview126Model_Item* child) { + wxVector::iterator iter = std::find(m_children.begin(), m_children.end(), child); + if ( iter != m_children.end() ) { + delete *iter; + m_children.erase(iter); + } + } + + /** + * @brief remove child from this node without freeing its memory + * @param child + */ + void RemoveChild(m_dataview126Model_Item* child) { + wxVector::iterator iter = std::find(m_children.begin(), m_children.end(), child); + if ( iter != m_children.end() ) { + m_children.erase(iter); + } + } + + /** + * @brief add child to this node + */ + void AddChild(m_dataview126Model_Item* child) { + m_children.push_back(child); + child->m_parent = this; + } + + bool IsRoot() const { + return m_parent == NULL; + } + + // Setters / Getters + void SetChildren(const wxVector& children) { + this->m_children = children; + } + void SetData(const wxVector& data) { + this->m_data = data; + } + void SetParent(m_dataview126Model_Item* parent) { + this->m_parent = parent; + } + const wxVector& GetChildren() const { + return m_children; + } + wxVector& GetChildren() { + return m_children; + } + const wxVector& GetData() const { + return m_data; + } + wxVector& GetData() { + return m_data; + } + m_dataview126Model_Item* GetParent() { + return m_parent; + } + + void SetClientObject(wxClientData *data) { + if ( m_clientData ) { + delete m_clientData; + } + m_clientData = data; + } + + wxClientData* GetClientObject() const { + return m_clientData; + } +}; + +////////////////////////////////////////////// +// The TreeListCtrl model +////////////////////////////////////////////// + +class m_dataview126Model : public wxDataViewModel +{ +protected: + wxVector m_data; + unsigned int m_colCount; + +public: + m_dataview126Model(); + virtual ~m_dataview126Model(); + + /** + * @brief a helper method creating a wxVariant containing both bitmap and text + * this is useful when mostly when populating a column of type 'icontext' + */ + static wxVariant CreateIconTextVariant(const wxString &text, const wxBitmap& bmp); + + void SetColCount(unsigned int colCount) { + this->m_colCount = colCount; + } + void SetData(const wxVector data) { + this->m_data = data; + } + unsigned int GetColCount() const { + return m_colCount; + } + const wxVector& GetData() const { + return m_data; + } + wxVector& GetData() { + return m_data; + } + + virtual bool HasContainerColumns (const wxDataViewItem& item) const { + return true; + } + +public: + // Make the functions below 'virtual' so the user may override them + virtual unsigned int GetColumnCount() const; + virtual wxString GetColumnType(unsigned int col) const; + virtual void GetValue(wxVariant& variant, const wxDataViewItem& item, unsigned int col) const; + virtual bool SetValue(const wxVariant &variant, const wxDataViewItem &item, unsigned int col); + +protected: + // Helpers + virtual wxDataViewItem DoAppendItem(const wxDataViewItem& parent, const wxVector& data, bool isContainer, wxClientData *clientData = NULL); + virtual wxDataViewItem DoInsertItem(const wxDataViewItem& insertBeforeMe, const wxVector& data, bool isContainer, wxClientData *clientData); + virtual void DoChangeItemType(const wxDataViewItem& item, bool changeToContainer); + +public: + /** + * @brief Append a line to the model + * clientData will be owned by the model once added (i.e. the clientData must be allocated on the heap and it will be freed by the model) + */ + virtual wxDataViewItem AppendItem(const wxDataViewItem& parent, const wxVector& data, wxClientData *clientData = NULL); + + /** + * @brief Append a lines to the model + */ + virtual wxDataViewItemArray AppendItems(const wxDataViewItem& parent, const wxVector >& data); + + /** + * @brief delete an item and all its children + * @param parent + */ + virtual void DeleteItem(const wxDataViewItem& item); + + /** + * @brief delete an item + * @param parent + */ + virtual void DeleteItems(const wxDataViewItem& parent, const wxDataViewItemArray& items); + + /** + * @brief update an item data + client-data + */ + virtual void UpdateItem(const wxDataViewItem& item, const wxVector& data); + + /** + * @brief insert an item into the model before 'insertBeforeMe' item. Return the newly inserted item on success + */ + virtual wxDataViewItem InsertItem (const wxDataViewItem& insertBeforeMe, const wxVector& data, wxClientData *clientData = NULL); + + /** + * @brief clear the control and delete all its content + */ + virtual void Clear(); + + virtual bool IsEmpty() const; + + /** + * @brief returns the client data associated with this item + **/ + wxClientData* GetClientObject(const wxDataViewItem& item) const; + + /** + * @brief set the client data for an item. The item data will be freed by the model + */ + void SetClientObject(const wxDataViewItem& item, wxClientData *data); + + /** + * @brief returns the item columns data (as passed to AppendItem(..) / InsertItem(...)) + */ + wxVector GetItemColumnsData(const wxDataViewItem& item) const; + + /** + * @brief return true if this node is a container (i.e. has children) + */ + virtual bool IsContainer(const wxDataViewItem& item) const; + + /** + * @brief return true if item has children + */ + virtual bool HasChildren(const wxDataViewItem& item) const; + + /** + * @brief return the item parent. Return an invalid item if this item has no parent (item.IsOk() = false) + */ + virtual wxDataViewItem GetParent(const wxDataViewItem& item) const; + + /** + * @brief return the item's children as an array. + * @return children count + */ + virtual unsigned int GetChildren(const wxDataViewItem& item, wxDataViewItemArray& children) const; +}; +#endif // __m_dataview126Model_GUARD__H__ Binary files /tmp/0wlVVhsoFK/codelite-8.0.1+dfsg2/WebTools/nodejs-32.png and /tmp/qKeBoHmecl/codelite-9.0+dfsg/WebTools/nodejs-32.png differ diff -Nru codelite-8.0.1+dfsg2/WebTools/NodeJSCallstackHandler.cpp codelite-9.0+dfsg/WebTools/NodeJSCallstackHandler.cpp --- codelite-8.0.1+dfsg2/WebTools/NodeJSCallstackHandler.cpp 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/WebTools/NodeJSCallstackHandler.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,19 @@ +#include "NodeJSCallstackHandler.h" +#include "NodeJSDebugger.h" +#include "NodeJSEvents.h" +#include "event_notifier.h" + +NodeJSCallstackHandler::NodeJSCallstackHandler() +{ +} + +NodeJSCallstackHandler::~NodeJSCallstackHandler() +{ +} + +void NodeJSCallstackHandler::Process(NodeJSDebugger* debugger, const wxString& output) +{ + clDebugEvent event(wxEVT_NODEJS_DEBUGGER_UPDATE_CALLSTACK); + event.SetString(output); + EventNotifier::Get()->ProcessEvent(event); +} diff -Nru codelite-8.0.1+dfsg2/WebTools/NodeJSCallstackHandler.h codelite-9.0+dfsg/WebTools/NodeJSCallstackHandler.h --- codelite-8.0.1+dfsg2/WebTools/NodeJSCallstackHandler.h 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/WebTools/NodeJSCallstackHandler.h 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,16 @@ +#ifndef NODEJSCALLSTACKHANDLER_H +#define NODEJSCALLSTACKHANDLER_H + +#include "NodeJSHandlerBase.h" // Base class: NodeJSHandlerBase + +class NodeJSCallstackHandler : public NodeJSHandlerBase +{ +public: + NodeJSCallstackHandler(); + virtual ~NodeJSCallstackHandler(); + +public: + virtual void Process(NodeJSDebugger* debugger, const wxString& output); +}; + +#endif // NODEJSCALLSTACKHANDLER_H diff -Nru codelite-8.0.1+dfsg2/WebTools/NodeJSContinueHandler.cpp codelite-9.0+dfsg/WebTools/NodeJSContinueHandler.cpp --- codelite-8.0.1+dfsg2/WebTools/NodeJSContinueHandler.cpp 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/WebTools/NodeJSContinueHandler.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,17 @@ +#include "NodeJSContinueHandler.h" +#include "json_node.h" +#include "NodeJSDebugger.h" + +NodeJSContinueHandler::NodeJSContinueHandler() +{ +} + +NodeJSContinueHandler::~NodeJSContinueHandler() +{ +} + +void NodeJSContinueHandler::Process(NodeJSDebugger* debugger, const wxString& output) +{ + wxUnusedVar(debugger); + wxUnusedVar(output); +} diff -Nru codelite-8.0.1+dfsg2/WebTools/NodeJSContinueHandler.h codelite-9.0+dfsg/WebTools/NodeJSContinueHandler.h --- codelite-8.0.1+dfsg2/WebTools/NodeJSContinueHandler.h 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/WebTools/NodeJSContinueHandler.h 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,15 @@ +#ifndef NODEJSCONTINUEHANDLER_H +#define NODEJSCONTINUEHANDLER_H + +#include "NodeJSHandlerBase.h" // Base class: NodeJSHandlerBase + +class NodeJSContinueHandler : public NodeJSHandlerBase +{ +public: + NodeJSContinueHandler(); + virtual ~NodeJSContinueHandler(); +public: + virtual void Process(NodeJSDebugger* debugger, const wxString& output); +}; + +#endif // NODEJSCONTINUEHANDLER_H diff -Nru codelite-8.0.1+dfsg2/WebTools/NodeJSDebuggerBreakpoint.cpp codelite-9.0+dfsg/WebTools/NodeJSDebuggerBreakpoint.cpp --- codelite-8.0.1+dfsg2/WebTools/NodeJSDebuggerBreakpoint.cpp 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/WebTools/NodeJSDebuggerBreakpoint.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,23 @@ +#include "NodeJSDebuggerBreakpoint.h" + +NodeJSBreakpoint::NodeJSBreakpoint() + : m_line(wxNOT_FOUND) + , m_nodeBpID(wxNOT_FOUND) +{ +} + +NodeJSBreakpoint::~NodeJSBreakpoint() {} + +void NodeJSBreakpoint::FromJSON(const JSONElement& json) +{ + m_filename = json.namedObject("file").toString(); + m_line = json.namedObject("line").toInt(); +} + +JSONElement NodeJSBreakpoint::ToJSON() const +{ + JSONElement json = JSONElement::createObject(); + json.addProperty("file", m_filename); + json.addProperty("line", m_line); + return json; +} diff -Nru codelite-8.0.1+dfsg2/WebTools/NodeJSDebuggerBreakpoint.h codelite-9.0+dfsg/WebTools/NodeJSDebuggerBreakpoint.h --- codelite-8.0.1+dfsg2/WebTools/NodeJSDebuggerBreakpoint.h 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/WebTools/NodeJSDebuggerBreakpoint.h 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,42 @@ +#ifndef NODEJSDEBUGGERBREAKPOINT_H +#define NODEJSDEBUGGERBREAKPOINT_H + +#include +#include "json_node.h" +#include + +class NodeJSBreakpoint +{ + wxString m_filename; + int m_line; + int m_nodeBpID; // If applied, this will contain V8 breakpoint ID + +public: + typedef std::list List_t; + +public: + NodeJSBreakpoint(); + virtual ~NodeJSBreakpoint(); + + JSONElement ToJSON() const; + void FromJSON(const JSONElement& json); + + bool IsOk() const { + return !m_filename.IsEmpty() && (m_line != wxNOT_FOUND); + } + + /** + * @brief is this breakpoint was already applied in NodeJS? + */ + bool IsApplied() const { return m_nodeBpID != wxNOT_FOUND; } + void SetFilename(const wxString& filename) { this->m_filename = filename; } + void SetLine(int line) { this->m_line = line; } + + const wxString& GetFilename() const { return m_filename; } + int GetLine() const { return m_line; } + + void SetNodeBpID(int nodeBpID) { this->m_nodeBpID = nodeBpID; } + int GetNodeBpID() const { return m_nodeBpID; } +}; + +#endif // NODEJSDEBUGGERBREAKPOINT_H diff -Nru codelite-8.0.1+dfsg2/WebTools/NodeJSDebuggerBreakpointManager.cpp codelite-9.0+dfsg/WebTools/NodeJSDebuggerBreakpointManager.cpp --- codelite-8.0.1+dfsg2/WebTools/NodeJSDebuggerBreakpointManager.cpp 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/WebTools/NodeJSDebuggerBreakpointManager.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,179 @@ +#include "NodeJSDebuggerBreakpointManager.h" +#include "globals.h" +#include "imanager.h" +#include "ieditor.h" +#include "bookmark_manager.h" +#include "codelite_events.h" +#include "event_notifier.h" +#include "NodeJSWorkspaceUserConfiguration.h" +#include "NoteJSWorkspace.h" +#include "bookmark_manager.h" +#include "macros.h" +#include +#include "ieditor.h" +#include + +NodeJSBptManager::NodeJSBptManager() +{ + EventNotifier::Get()->Bind(wxEVT_WORKSPACE_LOADED, &NodeJSBptManager::OnWorkspaceOpened, this); + EventNotifier::Get()->Bind(wxEVT_WORKSPACE_CLOSED, &NodeJSBptManager::OnWorkspaceClosed, this); + EventNotifier::Get()->Bind(wxEVT_ACTIVE_EDITOR_CHANGED, &NodeJSBptManager::OnEditorChanged, this); +} + +NodeJSBptManager::~NodeJSBptManager() +{ + EventNotifier::Get()->Unbind(wxEVT_WORKSPACE_LOADED, &NodeJSBptManager::OnWorkspaceOpened, this); + EventNotifier::Get()->Unbind(wxEVT_WORKSPACE_CLOSED, &NodeJSBptManager::OnWorkspaceClosed, this); + EventNotifier::Get()->Unbind(wxEVT_ACTIVE_EDITOR_CHANGED, &NodeJSBptManager::OnEditorChanged, this); +} + +void NodeJSBptManager::OnEditorChanged(wxCommandEvent& e) +{ + e.Skip(); + + // Apply breakpoints for this editor + if(clGetManager()) { + IEditor* editor = clGetManager()->GetActiveEditor(); + if(editor) { + NodeJSBreakpoint::List_t bps; + if(GetBreakpointsForFile(editor->GetFileName().GetFullPath(), bps)) { + NodeJSBreakpoint::List_t::iterator iter = bps.begin(); + for(; iter != bps.end(); ++iter) { + int markerMask = editor->GetCtrl()->MarkerGet(iter->GetLine() - 1); + if(!(markerMask & mmt_breakpoint)) { + // No marker on this line yet + // add one + editor->GetCtrl()->MarkerAdd(iter->GetLine() - 1, smt_breakpoint); + } + } + } + } + } +} + +size_t NodeJSBptManager::GetBreakpointsForFile(const wxString& filename, NodeJSBreakpoint::List_t& bps) const +{ + bps.clear(); + NodeJSBreakpoint::List_t::const_iterator iter = m_breakpoints.begin(); + for(; iter != m_breakpoints.end(); ++iter) { + if(iter->GetFilename() == filename) { + bps.push_back(*iter); + } + } + return bps.size(); +} + +void NodeJSBptManager::OnWorkspaceClosed(wxCommandEvent& event) +{ + event.Skip(); + + // Save the breakpoints to the file system + if(m_workspaceFile.IsOk() && m_workspaceFile.Exists()) { + NodeJSWorkspaceUser userWorkspace(m_workspaceFile.GetFullPath()); + userWorkspace.Load().SetBreakpoints(m_breakpoints).Save(); + m_workspaceFile.Clear(); + } +} + +void NodeJSBptManager::OnWorkspaceOpened(wxCommandEvent& event) +{ + event.Skip(); + m_workspaceFile.Clear(); + + wxFileName fileName = event.GetString(); + if(FileExtManager::GetType(fileName.GetFullPath()) == FileExtManager::TypeWorkspaceNodeJS) { + m_workspaceFile = fileName; + NodeJSWorkspaceUser userConf(m_workspaceFile.GetFullPath()); + m_breakpoints = userConf.Load().GetBreakpoints(); + } +} + +void NodeJSBptManager::SetBreakpoints(IEditor* editor) +{ + CHECK_PTR_RET(editor); + editor->GetCtrl()->MarkerDeleteAll(smt_breakpoint); + + NodeJSBreakpoint::List_t bps; + GetBreakpointsForFile(editor->GetFileName().GetFullPath(), bps); + NodeJSBreakpoint::List_t::const_iterator iter = bps.begin(); + for(; iter != bps.end(); ++iter) { + editor->GetCtrl()->MarkerAdd(iter->GetLine() - 1, smt_breakpoint); + } +} + +void NodeJSBptManager::AddBreakpoint(const wxFileName& filename, int line) +{ + NodeJSBreakpoint::List_t::const_iterator iter = + std::find_if(m_breakpoints.begin(), m_breakpoints.end(), [&](const NodeJSBreakpoint& bp) { + if(bp.GetFilename() == filename.GetFullPath() && bp.GetLine() == line) return true; + return false; + }); + if(iter == m_breakpoints.end()) { + // new breakpoint + NodeJSBreakpoint bp; + bp.SetFilename(filename.GetFullPath()); + bp.SetLine(line); + m_breakpoints.push_back(bp); + } +} + +void NodeJSBptManager::DeleteBreakpoint(const wxFileName& filename, int line) +{ + NodeJSBreakpoint::List_t::iterator iter = + std::find_if(m_breakpoints.begin(), m_breakpoints.end(), [&](const NodeJSBreakpoint& bp) { + if(bp.GetFilename() == filename.GetFullPath() && bp.GetLine() == line) return true; + return false; + }); + if(iter != m_breakpoints.end()) { + m_breakpoints.erase(iter); + } +} + +bool NodeJSBptManager::HasBreakpoint(const wxFileName& filename, int line) const +{ + NodeJSBreakpoint::List_t::const_iterator iter = + std::find_if(m_breakpoints.begin(), m_breakpoints.end(), [&](const NodeJSBreakpoint& bp) { + if(bp.GetFilename() == filename.GetFullPath() && bp.GetLine() == line) return true; + return false; + }); + return iter != m_breakpoints.end(); +} + +const NodeJSBreakpoint& NodeJSBptManager::GetBreakpoint(const wxFileName& filename, int line) const +{ + static NodeJSBreakpoint nullBreakpoint; + + NodeJSBreakpoint::List_t::const_iterator iter = + std::find_if(m_breakpoints.begin(), m_breakpoints.end(), [&](const NodeJSBreakpoint& bp) { + if(bp.GetFilename() == filename.GetFullPath() && bp.GetLine() == line) return true; + return false; + }); + if(m_breakpoints.end() == iter) { + return nullBreakpoint; + } + return *iter; +} + +NodeJSBreakpoint& NodeJSBptManager::GetBreakpoint(const wxFileName& filename, int line) +{ + static NodeJSBreakpoint nullBreakpoint; + + NodeJSBreakpoint::List_t::iterator iter = + std::find_if(m_breakpoints.begin(), m_breakpoints.end(), [&](const NodeJSBreakpoint& bp) { + if(bp.GetFilename() == filename.GetFullPath() && bp.GetLine() == line) return true; + return false; + }); + if(m_breakpoints.end() == iter) { + return nullBreakpoint; + } + return *iter; +} + +void NodeJSBptManager::Save() +{ + // Save the breakpoints to the file system + if(m_workspaceFile.Exists()) { + NodeJSWorkspaceUser userWorkspace(m_workspaceFile.GetFullPath()); + userWorkspace.Load().SetBreakpoints(m_breakpoints).Save(); + } +} diff -Nru codelite-8.0.1+dfsg2/WebTools/NodeJSDebuggerBreakpointManager.h codelite-9.0+dfsg/WebTools/NodeJSDebuggerBreakpointManager.h --- codelite-8.0.1+dfsg2/WebTools/NodeJSDebuggerBreakpointManager.h 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/WebTools/NodeJSDebuggerBreakpointManager.h 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,53 @@ +#ifndef NODEJSDEBUGGERBREAKPOINTMANAGER_H +#define NODEJSDEBUGGERBREAKPOINTMANAGER_H + +#include "NodeJSDebuggerBreakpoint.h" +#include + +class IEditor; +class NodeJSBptManager : public wxEvtHandler +{ + NodeJSBreakpoint::List_t m_breakpoints; + wxFileName m_workspaceFile; + +protected: + void OnEditorChanged(wxCommandEvent& e); + void OnWorkspaceOpened(wxCommandEvent& event); + void OnWorkspaceClosed(wxCommandEvent& event); + +public: + NodeJSBptManager(); + virtual ~NodeJSBptManager(); + void Save(); + + /** + * @brief return breakpoints for a given file + */ + size_t GetBreakpointsForFile(const wxString& filename, NodeJSBreakpoint::List_t& bps) const; + + /** + * @brief set all breakpoints for the given file + */ + void SetBreakpoints(IEditor* editor); + /** + * @brief do we have a breakpoint for a given file and line? + */ + bool HasBreakpoint(const wxFileName& filename, int line) const; + /** + * @brief get the breakpoint for a give file and line + */ + const NodeJSBreakpoint& GetBreakpoint(const wxFileName& filename, int line) const; + NodeJSBreakpoint& GetBreakpoint(const wxFileName& filename, int line); + /** + * @brief delete a breakpoint by file and line + */ + void DeleteBreakpoint(const wxFileName& filename, int line); + /** + * @brief add breakpoint by file and line + */ + void AddBreakpoint(const wxFileName& filename, int line); + + const NodeJSBreakpoint::List_t& GetBreakpoints() const { return m_breakpoints; } +}; + +#endif // NODEJSDEBUGGERBREAKPOINTMANAGER_H diff -Nru codelite-8.0.1+dfsg2/WebTools/NodeJSDebugger.cpp codelite-9.0+dfsg/WebTools/NodeJSDebugger.cpp --- codelite-8.0.1+dfsg2/WebTools/NodeJSDebugger.cpp 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/WebTools/NodeJSDebugger.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,671 @@ +#include "NodeJSDebugger.h" +#include "event_notifier.h" +#include "codelite_events.h" +#include "macros.h" +#include "NoteJSWorkspace.h" +#include +#include "asyncprocess.h" +#include "NodeJSDebuggerDlg.h" +#include "processreaderthread.h" +#include "file_logger.h" +#include "globals.h" +#include "imanager.h" +#include "ieditor.h" +#include "NodeJSSetBreakpointHandler.h" +#include +#include "NodeJSContinueHandler.h" +#include "NodeJSCallstackHandler.h" +#include "NodeJSSelectFrameHandler.h" +#include "NodeJSGetScriptHandler.h" +#include "NodeJSEvents.h" +#include "bookmark_manager.h" +#include "NodeJSWorkspaceUserConfiguration.h" +#include +#include "NodeJSEvaluateExprHandler.h" +#include "NodeJSLookupHandler.h" +#include "NodeJSDebuggerTooltip.h" +#include + +#define CHECK_RUNNING() \ + if(!IsConnected()) return + +NodeJSDebugger::NodeJSDebugger() + : m_canInteract(false) + , m_tooltip(NULL) +{ + EventNotifier::Get()->Bind(wxEVT_DBG_UI_START, &NodeJSDebugger::OnDebugStart, this); + EventNotifier::Get()->Bind(wxEVT_DBG_UI_CONTINUE, &NodeJSDebugger::OnDebugContinue, this); + EventNotifier::Get()->Bind(wxEVT_DBG_UI_STOP, &NodeJSDebugger::OnStopDebugger, this); + EventNotifier::Get()->Bind(wxEVT_DBG_IS_RUNNING, &NodeJSDebugger::OnDebugIsRunning, this); + EventNotifier::Get()->Bind(wxEVT_DBG_UI_TOGGLE_BREAKPOINT, &NodeJSDebugger::OnToggleBreakpoint, this); + EventNotifier::Get()->Bind(wxEVT_DBG_UI_NEXT, &NodeJSDebugger::OnDebugNext, this); + EventNotifier::Get()->Bind(wxEVT_DBG_UI_NEXT_INST, &NodeJSDebugger::OnVoid, this); + EventNotifier::Get()->Bind(wxEVT_DBG_UI_STEP_IN, &NodeJSDebugger::OnDebugStepIn, this); + EventNotifier::Get()->Bind(wxEVT_DBG_UI_STEP_OUT, &NodeJSDebugger::OnDebugStepOut, this); + EventNotifier::Get()->Bind(wxEVT_DBG_EXPR_TOOLTIP, &NodeJSDebugger::OnTooltip, this); + EventNotifier::Get()->Bind(wxEVT_DBG_CAN_INTERACT, &NodeJSDebugger::OnCanInteract, this); + EventNotifier::Get()->Bind(wxEVT_DBG_UI_ATTACH_TO_PROCESS, &NodeJSDebugger::OnAttach, this); + + EventNotifier::Get()->Bind(wxEVT_WORKSPACE_LOADED, &NodeJSDebugger::OnWorkspaceOpened, this); + EventNotifier::Get()->Bind(wxEVT_WORKSPACE_CLOSED, &NodeJSDebugger::OnWorkspaceClosed, this); + EventNotifier::Get()->Bind(wxEVT_NODEJS_DEBUGGER_MARK_LINE, &NodeJSDebugger::OnHighlightLine, this); + EventNotifier::Get()->Bind(wxEVT_NODEJS_DEBUGGER_EVAL_EXPRESSION, &NodeJSDebugger::OnEvalExpression, this); + + EventNotifier::Get()->Bind(wxEVT_ACTIVE_EDITOR_CHANGED, &NodeJSDebugger::OnEditorChanged, this); + + Bind(wxEVT_TOOLTIP_DESTROY, &NodeJSDebugger::OnDestroyTip, this); + m_node.Bind(wxEVT_TERMINAL_COMMAND_EXIT, &NodeJSDebugger::OnNodeTerminated, this); + m_node.Bind(wxEVT_TERMINAL_COMMAND_OUTPUT, &NodeJSDebugger::OnNodeOutput, this); +} + +NodeJSDebugger::~NodeJSDebugger() +{ + m_socket.Reset(NULL); + EventNotifier::Get()->Unbind(wxEVT_DBG_UI_START, &NodeJSDebugger::OnDebugStart, this); + EventNotifier::Get()->Unbind(wxEVT_DBG_UI_CONTINUE, &NodeJSDebugger::OnDebugContinue, this); + EventNotifier::Get()->Unbind(wxEVT_DBG_UI_STOP, &NodeJSDebugger::OnStopDebugger, this); + EventNotifier::Get()->Unbind(wxEVT_DBG_IS_RUNNING, &NodeJSDebugger::OnDebugIsRunning, this); + EventNotifier::Get()->Unbind(wxEVT_DBG_UI_TOGGLE_BREAKPOINT, &NodeJSDebugger::OnToggleBreakpoint, this); + EventNotifier::Get()->Unbind(wxEVT_DBG_UI_NEXT, &NodeJSDebugger::OnDebugNext, this); + EventNotifier::Get()->Unbind(wxEVT_DBG_UI_NEXT_INST, &NodeJSDebugger::OnVoid, this); + EventNotifier::Get()->Unbind(wxEVT_DBG_UI_STEP_IN, &NodeJSDebugger::OnDebugStepIn, this); + EventNotifier::Get()->Unbind(wxEVT_DBG_UI_STEP_OUT, &NodeJSDebugger::OnDebugStepOut, this); + EventNotifier::Get()->Unbind(wxEVT_DBG_EXPR_TOOLTIP, &NodeJSDebugger::OnTooltip, this); + EventNotifier::Get()->Unbind(wxEVT_DBG_CAN_INTERACT, &NodeJSDebugger::OnCanInteract, this); + EventNotifier::Get()->Unbind(wxEVT_DBG_UI_ATTACH_TO_PROCESS, &NodeJSDebugger::OnAttach, this); + + EventNotifier::Get()->Unbind(wxEVT_WORKSPACE_LOADED, &NodeJSDebugger::OnWorkspaceOpened, this); + EventNotifier::Get()->Unbind(wxEVT_WORKSPACE_CLOSED, &NodeJSDebugger::OnWorkspaceClosed, this); + EventNotifier::Get()->Unbind(wxEVT_NODEJS_DEBUGGER_MARK_LINE, &NodeJSDebugger::OnHighlightLine, this); + EventNotifier::Get()->Unbind(wxEVT_NODEJS_DEBUGGER_EVAL_EXPRESSION, &NodeJSDebugger::OnEvalExpression, this); + EventNotifier::Get()->Unbind(wxEVT_ACTIVE_EDITOR_CHANGED, &NodeJSDebugger::OnEditorChanged, this); + + m_node.Unbind(wxEVT_TERMINAL_COMMAND_EXIT, &NodeJSDebugger::OnNodeTerminated, this); + m_node.Unbind(wxEVT_TERMINAL_COMMAND_OUTPUT, &NodeJSDebugger::OnNodeOutput, this); + Unbind(wxEVT_TOOLTIP_DESTROY, &NodeJSDebugger::OnDestroyTip, this); + + m_node.Terminate(); + + m_bptManager.Save(); + DoDeleteTempFiles(m_tempFiles); + m_tempFiles.clear(); + + if(m_tooltip) { + m_tooltip->Destroy(); + m_tooltip = NULL; + } + + // fire stop event (needed to reload the normal layout) + clDebugEvent event(wxEVT_NODEJS_DEBUGGER_STOPPED); + EventNotifier::Get()->AddPendingEvent(event); +} + +void NodeJSDebugger::OnCanInteract(clDebugEvent& event) +{ + event.Skip(); + CHECK_RUNNING(); + event.Skip(false); + event.SetAnswer(IsCanInteract()); +} + +void NodeJSDebugger::OnDebugContinue(clDebugEvent& event) +{ + event.Skip(); + CHECK_RUNNING(); + event.Skip(false); + Continue(); +} + +void NodeJSDebugger::OnDebugIsRunning(clDebugEvent& event) +{ + if(m_socket && m_socket->IsConnected()) { + event.SetAnswer(true); + + } else { + event.Skip(); + } +} + +void NodeJSDebugger::OnDebugNext(clDebugEvent& event) +{ + event.Skip(); + CHECK_RUNNING(); + + event.Skip(false); + // Build the request + JSONElement request = JSONElement::createObject(); + request.addProperty("type", "request"); + request.addProperty("command", "continue"); + JSONElement args = JSONElement::createObject("arguments"); + request.append(args); + args.addProperty("stepaction", "next"); + args.addProperty("stepcount", 1); // how we tell nodejs to continue until next bp is hit? + + // Write the command + m_socket->WriteRequest(request, new NodeJSContinueHandler()); +} + +void NodeJSDebugger::OnDebugStart(clDebugEvent& event) +{ + event.Skip(); + CHECK_COND_RET(NodeJSWorkspace::Get()->IsOpen()); + + // Our to handle + event.Skip(false); + if(m_socket && m_socket->IsConnected()) { + Continue(); + return; + }; + + NodeJSDebuggerDlg dlg(EventNotifier::Get()->TopFrame(), NodeJSDebuggerDlg::kDebug); + if(dlg.ShowModal() != wxID_OK) { + return; + } + + wxString command = dlg.GetCommand(); + + if(!m_node.ExecuteConsole(command, "", false, command)) { + ::wxMessageBox(_("Failed to start NodeJS application"), "CodeLite", wxOK | wxICON_ERROR | wxCENTER); + m_socket.Reset(NULL); + } + + // already connected? + m_socket.Reset(new NodeJSSocket(this)); + NodeJSWorkspaceUser userConf(NodeJSWorkspace::Get()->GetFilename().GetFullPath()); + userConf.Load(); + m_socket->Connect("127.0.0.1", userConf.GetDebuggerPort()); +} + +void NodeJSDebugger::OnDebugStepIn(clDebugEvent& event) +{ + event.Skip(); + CHECK_RUNNING(); + + event.Skip(false); + // Build the request + JSONElement request = JSONElement::createObject(); + request.addProperty("type", "request"); + request.addProperty("command", "continue"); + JSONElement args = JSONElement::createObject("arguments"); + request.append(args); + args.addProperty("stepaction", "in"); + args.addProperty("stepcount", 1); // how we tell nodejs to continue until next bp is hit? + + // Write the command + m_socket->WriteRequest(request, new NodeJSContinueHandler()); +} + +void NodeJSDebugger::OnDebugStepOut(clDebugEvent& event) +{ + event.Skip(); + CHECK_RUNNING(); + + event.Skip(false); + // Build the request + JSONElement request = JSONElement::createObject(); + request.addProperty("type", "request"); + request.addProperty("command", "continue"); + JSONElement args = JSONElement::createObject("arguments"); + request.append(args); + args.addProperty("stepaction", "out"); + args.addProperty("stepcount", 1); // how we tell nodejs to continue until next bp is hit? + + // Write the command + m_socket->WriteRequest(request, new NodeJSContinueHandler()); +} + +void NodeJSDebugger::OnStopDebugger(clDebugEvent& event) +{ + event.Skip(); + CHECK_RUNNING(); + + event.Skip(false); + m_node.Terminate(); +#if defined(__WXGTK__) || defined(__WXOSX__) + ConnectionLost("Debug session stopped"); +#endif +} + +void NodeJSDebugger::OnToggleBreakpoint(clDebugEvent& event) +{ + event.Skip(); + if(NodeJSWorkspace::Get()->IsOpen()) { + event.Skip(false); + IEditor* editor = clGetManager()->GetActiveEditor(); + if(editor && (editor->GetFileName().GetFullPath() == event.GetFileName())) { + // Correct editor + // add marker + NodeJSBreakpoint bp = m_bptManager.GetBreakpoint(event.GetFileName(), event.GetInt()); + if(bp.IsOk()) { + if(bp.IsApplied() && IsConnected()) { + // Tell NodeJS to delete this breakpoint + DeleteBreakpoint(bp); + } + m_bptManager.DeleteBreakpoint(event.GetFileName(), event.GetInt()); + } else { + // We have no breakpoint on this file/line (yet) + m_bptManager.AddBreakpoint(event.GetFileName(), event.GetInt()); + bp = m_bptManager.GetBreakpoint(event.GetFileName(), event.GetInt()); + if(IsConnected()) { + SetBreakpoint(bp); + } + } + + // Update the UI + m_bptManager.SetBreakpoints(editor); + clDebugEvent event(wxEVT_NODEJS_DEBUGGER_UPDATE_BREAKPOINTS_VIEW); + EventNotifier::Get()->AddPendingEvent(event); + } + } +} + +void NodeJSDebugger::OnTooltip(clDebugEvent& event) +{ + event.Skip(); + CHECK_RUNNING(); + event.Skip(false); + + CHECK_PTR_RET(clGetManager()->GetActiveEditor()); + + wxString selection = event.GetString(); + CHECK_COND_RET(!selection.IsEmpty()); + + // Build the request + JSONElement request = JSONElement::createObject(); + request.addProperty("type", "request"); + request.addProperty("command", "evaluate"); + JSONElement args = JSONElement::createObject("arguments"); + request.append(args); + args.addProperty("expression", selection); + + // Write the command + m_socket->WriteRequest(request, new NodeJSEvaluateExprHandler(selection)); +} + +void NodeJSDebugger::OnVoid(clDebugEvent& event) +{ + event.Skip(); + CHECK_RUNNING(); + event.Skip(false); + wxUnusedVar(event); +} + +bool NodeJSDebugger::IsConnected() { return m_socket && m_socket->IsConnected(); } + +void NodeJSDebugger::ConnectionEstablished() +{ + clDebugEvent eventStart(wxEVT_NODEJS_DEBUGGER_STARTED); + eventStart.SetDebuggerName("Node.js"); + EventNotifier::Get()->AddPendingEvent(eventStart); +} + +void NodeJSDebugger::ConnectionLost(const wxString& errmsg) +{ + wxUnusedVar(errmsg); + m_node.Terminate(); + m_socket.Reset(NULL); + + clDebugEvent event(wxEVT_NODEJS_DEBUGGER_STOPPED); + event.SetDebuggerName("Node.js"); + EventNotifier::Get()->AddPendingEvent(event); + + // Clear the debugger markers + ClearDebuggerMarker(); +} + +void NodeJSDebugger::OnNodeOutput(clCommandEvent& event) +{ + wxUnusedVar(event); + CL_DEBUG("Node debugger:\n%s", event.GetString()); + + clDebugEvent eventLog(wxEVT_NODEJS_DEBUGGER_CONSOLE_LOG); + eventLog.SetString(event.GetString()); + EventNotifier::Get()->AddPendingEvent(eventLog); +} + +void NodeJSDebugger::OnNodeTerminated(clCommandEvent& event) +{ + wxUnusedVar(event); + EventNotifier::Get()->TopFrame()->Raise(); +} + +void NodeJSDebugger::OnWorkspaceClosed(wxCommandEvent& event) { event.Skip(); } + +void NodeJSDebugger::OnWorkspaceOpened(wxCommandEvent& event) { event.Skip(); } + +void NodeJSDebugger::DeleteBreakpoint(const NodeJSBreakpoint& bp) +{ + // Sanity + if(!IsConnected()) return; + if(!bp.IsApplied()) return; + + // Build the request + JSONElement request = JSONElement::createObject(); + request.addProperty("type", "request"); + request.addProperty("command", "clearbreakpoint"); + JSONElement args = JSONElement::createObject("arguments"); + request.append(args); + args.addProperty("breakpoint", bp.GetNodeBpID()); + + // Write the command + m_socket->WriteRequest(request, new NodeJSSetBreakpointHandler(bp)); +} + +void NodeJSDebugger::SetBreakpoint(const NodeJSBreakpoint& bp) +{ + // Sanity + if(!IsConnected()) return; + + // Build the request + JSONElement request = JSONElement::createObject(); + request.addProperty("type", "request"); + request.addProperty("command", "setbreakpoint"); + JSONElement args = JSONElement::createObject("arguments"); + request.append(args); + args.addProperty("type", "script"); + args.addProperty("target", bp.GetFilename()); + args.addProperty("line", bp.GetLine() - 1); + args.addProperty("column", 0); + + // Write the command + m_socket->WriteRequest(request, new NodeJSSetBreakpointHandler(bp)); +} + +void NodeJSDebugger::Continue() +{ + // Sanity + if(!IsConnected()) return; + + // Build the request + JSONElement request = JSONElement::createObject(); + request.addProperty("type", "request"); + request.addProperty("command", "continue"); + + // Write the command + m_socket->WriteRequest(request, new NodeJSContinueHandler()); +} + +void NodeJSDebugger::SetBreakpoints() +{ + // Sanity + if(!IsConnected()) return; + const NodeJSBreakpoint::List_t& bps = m_bptManager.GetBreakpoints(); + std::for_each(bps.begin(), bps.end(), [&](const NodeJSBreakpoint& bp) { SetBreakpoint(bp); }); +} + +void NodeJSDebugger::GotControl(bool requestBacktrace) +{ + SetCanInteract(true); + EventNotifier::Get()->TopFrame()->Raise(); + if(requestBacktrace) { + Callstack(); + } +} + +void NodeJSDebugger::Callstack() +{ + // Sanity + if(!IsConnected()) return; + + // Build the request + JSONElement request = JSONElement::createObject(); + request.addProperty("type", "request"); + request.addProperty("command", "backtrace"); + + // Write the command + m_socket->WriteRequest(request, new NodeJSCallstackHandler()); +} + +void NodeJSDebugger::SelectFrame(int frameId) +{ + // Sanity + if(!IsConnected()) return; + + // Build the request + JSONElement request = JSONElement::createObject(); + request.addProperty("type", "request"); + request.addProperty("command", "frame"); + + JSONElement args = JSONElement::createObject("arguments"); + request.append(args); + args.addProperty("number", frameId); + + // Write the command + m_socket->WriteRequest(request, new NodeJSSelectFrameHandler()); +} + +void NodeJSDebugger::SetCanInteract(bool canInteract) +{ + clDebugEvent event(canInteract ? wxEVT_NODEJS_DEBUGGER_CAN_INTERACT : wxEVT_NODEJS_DEBUGGER_LOST_INTERACT); + EventNotifier::Get()->ProcessEvent(event); + this->m_canInteract = canInteract; + if(!canInteract) { + ClearDebuggerMarker(); + } +} + +void NodeJSDebugger::SetDebuggerMarker(IEditor* editor, int lineno) +{ + wxStyledTextCtrl* stc = editor->GetCtrl(); + stc->MarkerDeleteAll(smt_indicator); + stc->MarkerAdd(lineno, smt_indicator); + int caretPos = stc->PositionFromLine(lineno); + stc->SetSelection(caretPos, caretPos); + stc->SetCurrentPos(caretPos); + stc->EnsureCaretVisible(); + editor->CenterLine(lineno); +#ifdef __WXOSX__ + stc->Refresh(); +#endif +} + +void NodeJSDebugger::ClearDebuggerMarker() +{ + IEditor::List_t editors; + clGetManager()->GetAllEditors(editors); + std::for_each( + editors.begin(), editors.end(), [&](IEditor* editor) { editor->GetCtrl()->MarkerDeleteAll(smt_indicator); }); +} + +void NodeJSDebugger::DoHighlightLine(const wxString& filename, int lineNo) +{ + IEditor* activeEditor = clGetManager()->OpenFile(filename, "", lineNo - 1); + if(activeEditor) { + SetDebuggerMarker(activeEditor, lineNo - 1); + } +} + +void NodeJSDebugger::OnHighlightLine(clDebugEvent& event) +{ + event.Skip(); + int line = event.GetLineNumber(); + wxFileName file = event.GetFileName(); + + ClearDebuggerMarker(); + if(file.Exists()) { + CallAfter(&NodeJSDebugger::DoHighlightLine, file.GetFullPath(), line); + + } else { + // Probably a node.js internal file + wxFileName fn(clStandardPaths::Get().GetUserDataDir(), file.GetFullPath()); + fn.AppendDir("webtools"); + fn.AppendDir("tmp"); + if(fn.Exists()) { + CallAfter(&NodeJSDebugger::DoHighlightLine, fn.GetFullPath(), line); + } else { + // Ask the file from nodejs + GetCurrentFrameSource(file.GetFullPath(), line); + } + } +} + +void NodeJSDebugger::ExceptionThrown() +{ + // Switch to the 'Console' view + clDebugEvent event(wxEVT_NODEJS_DEBUGGER_EXCEPTION_THROWN); + EventNotifier::Get()->AddPendingEvent(event); +} + +void NodeJSDebugger::ConnectError(const wxString& errmsg) +{ + ::wxMessageBox(wxString::Format(_("Failed to connect to Node.js debugger:\n'%s'"), errmsg), + "CodeLite", + wxOK | wxICON_ERROR | wxCENTER); + m_socket.Reset(NULL); +} + +void NodeJSDebugger::BreakOnException(bool b) +{ + // Sanity + if(!IsConnected()) return; + + // Build the request + JSONElement request = JSONElement::createObject(); + request.addProperty("type", "request"); + request.addProperty("command", "setexceptionbreak"); + + JSONElement args = JSONElement::createObject("arguments"); + request.append(args); + args.addProperty("type", "uncaught"); + args.addProperty("enabled", b); + + // Write the command + m_socket->WriteRequest(request, NULL); +} + +void NodeJSDebugger::GetCurrentFrameSource(const wxString& filename, int line) +{ + // Sanity + if(!IsConnected()) return; + + // Build the request + JSONElement request = JSONElement::createObject(); + request.addProperty("type", "request"); + request.addProperty("command", "source"); + + // Write the command + m_socket->WriteRequest(request, new NodeJSGetScriptHandler(filename, line)); +} + +void NodeJSDebugger::OnEditorChanged(wxCommandEvent& event) +{ + event.Skip(); + IEditor::List_t editors; + clGetManager()->GetAllEditors(editors); + + wxStringSet_t tmpFiles = m_tempFiles; + wxStringSet_t closedTempEditors; + // Loop over the temp files list + std::for_each(tmpFiles.begin(), tmpFiles.end(), [&](const wxString& filename) { + // If the temp file does not match one of the editors, assume it was closed and delete + // the temporary file + IEditor::List_t::iterator iter = std::find_if(editors.begin(), editors.end(), [&](IEditor* editor) { + if(editor->GetFileName().GetFullPath() == filename) return true; + return false; + }); + if(iter == editors.end()) { + closedTempEditors.insert(filename); + m_tempFiles.erase(filename); + } + }); + + if(!closedTempEditors.empty()) { + DoDeleteTempFiles(closedTempEditors); + } +} + +void NodeJSDebugger::DoDeleteTempFiles(const wxStringSet_t& files) +{ + std::for_each(files.begin(), files.end(), [&](const wxString& filename) { + wxLogNull noLog; + ::wxRemoveFile(filename); + }); +} + +void NodeJSDebugger::OnEvalExpression(clDebugEvent& event) +{ + event.Skip(); + + // Build the request + JSONElement request = JSONElement::createObject(); + request.addProperty("type", "request"); + request.addProperty("command", "evaluate"); + JSONElement args = JSONElement::createObject("arguments"); + request.append(args); + args.addProperty("expression", event.GetString()); + + // Write the command + m_socket->WriteRequest(request, new NodeJSEvaluateExprHandler(event.GetString(), kNodeJSContextConsole)); +} + +void NodeJSDebugger::Lookup(const std::vector& handles, eNodeJSContext context) +{ + JSONElement request = JSONElement::createObject(); + request.addProperty("type", "request"); + request.addProperty("command", "lookup"); + + JSONElement args = JSONElement::createObject("arguments"); + request.append(args); + + JSONElement arrHandles = JSONElement::createArray("handles"); + args.append(arrHandles); + + for(size_t i = 0; i < handles.size(); ++i) { + arrHandles.arrayAppend(JSONElement("", handles.at(i), cJSON_Number)); + } + + // Write the command + m_socket->WriteRequest(request, new NodeJSLookupHandler(context)); +} + +void NodeJSDebugger::ShowTooltip(const wxString& expression, const wxString& jsonOutput) +{ + if(m_tooltip) { + m_tooltip->Destroy(); + m_tooltip = NULL; + } + + m_tooltip = new NodeJSDebuggerTooltip(this, expression); + m_tooltip->ShowTip(jsonOutput); +} + +void NodeJSDebugger::OnDestroyTip(clCommandEvent& event) +{ + if(m_tooltip) { + m_tooltip->Destroy(); + m_tooltip = NULL; + } +} + +void NodeJSDebugger::OnAttach(clDebugEvent& event) +{ +#ifdef __WXMSW__ + if(event.GetDebuggerName() != "NodeJS Debugger") { + event.Skip(); + return; + } + event.Skip(false); + ::wxMessageBox(_("Debugging a running Node.js process is only available on Linux / OSX"), + "CodeLite", + wxICON_WARNING | wxCENTER | wxOK); +#else + + if(event.GetDebuggerName() != "NodeJS Debugger") { + event.Skip(); + return; + } + + event.Skip(false); // ours to handle, stop the event chain + + if(m_socket && m_socket->IsConnected()) { + ::wxMessageBox(_("An active debug session is already running"), "CodeLite", wxICON_WARNING | wxCENTER | wxOK); + return; + }; + + ::kill(event.GetInt(), SIGUSR1); + // already connected? + m_socket.Reset(new NodeJSSocket(this)); + m_socket->Connect("127.0.0.1", 5858); +#endif +} + diff -Nru codelite-8.0.1+dfsg2/WebTools/NodeJSDebuggerDlg.cpp codelite-9.0+dfsg/WebTools/NodeJSDebuggerDlg.cpp --- codelite-8.0.1+dfsg2/WebTools/NodeJSDebuggerDlg.cpp 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/WebTools/NodeJSDebuggerDlg.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,102 @@ +#include "NodeJSDebuggerDlg.h" +#include +#include "cl_config.h" +#include "clTernServer.h" +#include "globals.h" +#include "imanager.h" +#include "NodeJSWorkspaceUserConfiguration.h" +#include "NoteJSWorkspace.h" +#include "ColoursAndFontsManager.h" + +NodeJSDebuggerDlg::NodeJSDebuggerDlg(wxWindow* parent, eDialogType type) + : NodeJSDebuggerDlgBase(parent) + , m_type(type) +{ + if(m_type == kDebug) { + SetLabel(_("Debug script")); + m_staticTextScript->SetLabel(_("Script to debug:")); + } else { + SetLabel(_("Execute script")); + m_staticTextScript->SetLabel(_("Script to execute:")); + m_staticTextDebuggerPort->Disable(); + m_textCtrlPort->Disable(); + } + + m_stcCommandLineArguments->SetEOLMode(wxSTC_EOL_LF); + wxFileName fnNodejs; + wxString nodejs = clConfig::Get().Read("webtools/nodejs/debugger/executable", wxString()); + if(nodejs.IsEmpty()) { + if(clTernServer::LocateNodeJS(fnNodejs)) { + nodejs = fnNodejs.GetFullPath(); + } + } + + NodeJSWorkspaceUser userConf(NodeJSWorkspace::Get()->GetFilename().GetFullPath()); + userConf.Load(); + wxString script = userConf.GetScriptToExecute(); + if(script.IsEmpty()) { + if(clGetManager()->GetActiveEditor()) { + script = clGetManager()->GetActiveEditor()->GetFileName().GetFullPath(); + } + } + + m_filePickerNodeJS->SetPath(nodejs); + m_filePickerScript->SetPath(script); + m_textCtrlPort->ChangeValue(wxString() << userConf.GetDebuggerPort()); + m_stcCommandLineArguments->SetText(::wxJoin(userConf.GetCommandLineArgs(), '\n')); + LexerConf::Ptr_t lexer = ColoursAndFontsManager::Get().GetLexer("javascript"); + if(lexer) { + lexer->Apply(m_stcCommandLineArguments); + } + CenterOnParent(); +} + +NodeJSDebuggerDlg::~NodeJSDebuggerDlg() +{ + clConfig::Get().Write("webtools/nodejs/debugger/executable", m_filePickerNodeJS->GetPath()); + NodeJSWorkspaceUser userConf(NodeJSWorkspace::Get()->GetFilename().GetFullPath()); + userConf.Load(); + userConf.SetScriptToExecute(m_filePickerScript->GetPath()); + + long nPort; + m_textCtrlPort->GetValue().ToCLong(&nPort); + userConf.SetDebuggerPort(nPort); + wxArrayString commandLineArgs = ::wxStringTokenize(m_stcCommandLineArguments->GetText(), "\n", wxTOKEN_STRTOK); + userConf.SetCommandLineArgs(commandLineArgs); + userConf.Save(); +} + +void NodeJSDebuggerDlg::OnOKUI(wxUpdateUIEvent& event) +{ + event.Enable(wxFileName::Exists(m_filePickerNodeJS->GetPath()) && + wxFileName::Exists(m_filePickerScript->GetPath())); +} + +wxString NodeJSDebuggerDlg::GetCommand() +{ + wxString command, nodejs, script; + nodejs << m_filePickerNodeJS->GetPath(); + script << m_filePickerScript->GetPath(); + ::WrapWithQuotes(nodejs); + ::WrapWithQuotes(script); + + if(m_type == kDebug) { + wxString sport = m_textCtrlPort->GetValue(); + long port = 5858; + if(!sport.Trim().ToCLong(&port)) { + port = 5858; + } + command << nodejs << " --debug-brk=" << port << " " << script; + } else { + command << nodejs << " " << script; + } + + wxArrayString args = ::wxStringTokenize(m_stcCommandLineArguments->GetText(), "\n", wxTOKEN_STRTOK); + if(!args.IsEmpty()) { + command << " "; + } + for(size_t i = 0; i < args.size(); ++i) { + command << ::WrapWithQuotes(args.Item(i)) << " "; + } + return command; +} diff -Nru codelite-8.0.1+dfsg2/WebTools/NodeJSDebuggerDlg.h codelite-9.0+dfsg/WebTools/NodeJSDebuggerDlg.h --- codelite-8.0.1+dfsg2/WebTools/NodeJSDebuggerDlg.h 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/WebTools/NodeJSDebuggerDlg.h 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,21 @@ +#ifndef NODEJSDEBUGGERDLG_H +#define NODEJSDEBUGGERDLG_H +#include "WebToolsBase.h" + +class NodeJSDebuggerDlg : public NodeJSDebuggerDlgBase +{ +public: + enum eDialogType { + kDebug, + kExecute, + }; + eDialogType m_type; +public: + NodeJSDebuggerDlg(wxWindow* parent, eDialogType type); + virtual ~NodeJSDebuggerDlg(); + wxString GetCommand(); + +protected: + virtual void OnOKUI(wxUpdateUIEvent& event); +}; +#endif // NODEJSDEBUGGERDLG_H diff -Nru codelite-8.0.1+dfsg2/WebTools/NodeJSDebugger.h codelite-9.0+dfsg/WebTools/NodeJSDebugger.h --- codelite-8.0.1+dfsg2/WebTools/NodeJSDebugger.h 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/WebTools/NodeJSDebugger.h 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,157 @@ +#ifndef NODEJSDEBUGGER_H +#define NODEJSDEBUGGER_H + +#include +#include "cl_command_event.h" +#include +#include "NodeJSSocket.h" +#include "NodeJSDebuggerBreakpointManager.h" +#include "TerminalEmulator.h" +#include "NodeJS.h" + +class NodeJSDebuggerTooltip; +class NodeJSDebugger : public wxEvtHandler +{ + NodeJSSocket::Ptr_t m_socket; + TerminalEmulator m_node; + NodeJSBptManager m_bptManager; + bool m_canInteract; + wxStringSet_t m_tempFiles; + NodeJSDebuggerTooltip* m_tooltip; + +public: + typedef SmartPtr Ptr_t; + +protected: + // Debugger event handlers + void OnDebugStart(clDebugEvent& event); + void OnDebugContinue(clDebugEvent& event); + void OnStopDebugger(clDebugEvent& event); + void OnDebugIsRunning(clDebugEvent& event); + void OnToggleBreakpoint(clDebugEvent& event); + void OnDebugNext(clDebugEvent& event); + void OnVoid(clDebugEvent& event); + void OnDebugStepIn(clDebugEvent& event); + void OnDebugStepOut(clDebugEvent& event); + void OnTooltip(clDebugEvent& event); + void OnCanInteract(clDebugEvent& event); + void OnAttach(clDebugEvent& event); + + // CodeLite events + void OnWorkspaceOpened(wxCommandEvent& event); + void OnWorkspaceClosed(wxCommandEvent& event); + void OnEditorChanged(wxCommandEvent& event); + + // Process event + void OnNodeTerminated(clCommandEvent& event); + void OnNodeOutput(clCommandEvent& event); + void OnHighlightLine(clDebugEvent& event); + void OnEvalExpression(clDebugEvent& event); + + // The tip needs to be destroyed + void OnDestroyTip(clCommandEvent& event); + +protected: + bool IsConnected(); + void DoHighlightLine(const wxString& filename, int lineNo); + void DoDeleteTempFiles(const wxStringSet_t& files); + +public: + NodeJSDebugger(); + virtual ~NodeJSDebugger(); + void ShowTooltip(const wxString& expression, const wxString& jsonOutput); + + void AddTempFile(const wxString& filename) { m_tempFiles.insert(filename); } + + void SetDebuggerMarker(IEditor* editor, int lineno); + void ClearDebuggerMarker(); + + void SetCanInteract(bool canInteract); + bool IsCanInteract() const { return m_canInteract; } + + //-------------------------------------------------- + // API + //-------------------------------------------------- + + /** + * @brief delete breakpoint from NodeJS. This function does not updat the breakpoint manager + * nor it does not update the UI + */ + void DeleteBreakpoint(const NodeJSBreakpoint& bp); + + /** + * @brief set a breakpoint in nodejs debugger + */ + void SetBreakpoint(const NodeJSBreakpoint& bp); + + /** + * @brief set all breakpoints + */ + void SetBreakpoints(); + + /** + * @brief continue execution + */ + void Continue(); + + /** + * @brief break on exception + */ + void BreakOnException(bool b = true); + + /** + * @brief request for callstack + */ + void Callstack(); + + /** + * @brief select new frame (usually by d-clicking a frame entry in the callstack view) + */ + void SelectFrame(int frameId); + + /** + * @brief load the content of a given file name + */ + void GetCurrentFrameSource(const wxString& filename, int line); + + /** + * @brief The request lookup is used to lookup objects based on their handle + */ + void Lookup(const std::vector& handles, eNodeJSContext context); + + //-------------------------------------------------- + // API END + //-------------------------------------------------- + + /** + * @brief return the breakpoints manager + */ + NodeJSBptManager* GetBreakpointsMgr() { return &m_bptManager; } + + /** + * @brief nodejs debugger socket connected + */ + void ConnectionEstablished(); + /** + * @brief nodejs debugger socket disconnected + */ + void ConnectionLost(const wxString& errmsg); + + /** + * @brief could not connect to NodeJS + */ + void ConnectError(const wxString& errmsg); + + /** + * @brief this function is called by the various handlers whenever the CodeLite + * gets the control from NodeJS + */ + void GotControl(bool requestBacktrace); + + /** + * @brief the execution in the VM has stopped due to an exception + */ + void ExceptionThrown(); +}; + +#endif // NODEJSDEBUGGER_H diff -Nru codelite-8.0.1+dfsg2/WebTools/NodeJSDebuggerPane.cpp codelite-9.0+dfsg/WebTools/NodeJSDebuggerPane.cpp --- codelite-8.0.1+dfsg2/WebTools/NodeJSDebuggerPane.cpp 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/WebTools/NodeJSDebuggerPane.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,489 @@ +#include "NodeJSDebuggerPane.h" +#include "event_notifier.h" +#include "json_node.h" +#include "macros.h" +#include +#include "ColoursAndFontsManager.h" +#include +#include +#include "globals.h" +#include "NodeJSDebugger.h" +#include "NoteJSWorkspace.h" +#include "imanager.h" +#include "NodeJSOuptutParser.h" + +class NodeJSLocalClientData : public wxClientData +{ + NodeJSHandle m_handle; + bool m_expanded; + +public: + NodeJSLocalClientData(const NodeJSHandle& h) + : m_handle(h) + , m_expanded(false) + { + } + void SetHandle(const NodeJSHandle& handle) { this->m_handle = handle; } + const NodeJSHandle& GetHandle() const { return m_handle; } + void SetExpanded(bool expanded) { this->m_expanded = expanded; } + bool IsExpanded() const { return m_expanded; } +}; + +NodeJSDebuggerPane::NodeJSDebuggerPane(wxWindow* parent) + : NodeJSDebuggerPaneBase(parent) +{ + EventNotifier::Get()->Bind( + wxEVT_NODEJS_DEBUGGER_EXPRESSION_EVALUATED, &NodeJSDebuggerPane::OnExpressionEvaluated, this); + EventNotifier::Get()->Bind(wxEVT_NODEJS_DEBUGGER_UPDATE_CALLSTACK, &NodeJSDebuggerPane::OnUpdateCallstack, this); + EventNotifier::Get()->Bind(wxEVT_NODEJS_DEBUGGER_LOST_INTERACT, &NodeJSDebuggerPane::OnLostControl, this); + EventNotifier::Get()->Bind(wxEVT_NODEJS_DEBUGGER_LOCALS_LOOKUP, &NodeJSDebuggerPane::OnLookup, this); + EventNotifier::Get()->Bind(wxEVT_NODEJS_DEBUGGER_CONSOLE_LOG, &NodeJSDebuggerPane::OnConsoleLog, this); + EventNotifier::Get()->Bind(wxEVT_NODEJS_DEBUGGER_STARTED, &NodeJSDebuggerPane::OnSessionStarted, this); + EventNotifier::Get()->Bind(wxEVT_NODEJS_DEBUGGER_STOPPED, &NodeJSDebuggerPane::OnSessionStopped, this); + EventNotifier::Get()->Bind(wxEVT_NODEJS_DEBUGGER_EXCEPTION_THROWN, &NodeJSDebuggerPane::OnExceptionThrown, this); + EventNotifier::Get()->Bind(wxEVT_NODEJS_DEBUGGER_SELECT_FRAME, &NodeJSDebuggerPane::OnFrameSelected, this); + EventNotifier::Get()->Bind( + wxEVT_NODEJS_DEBUGGER_UPDATE_BREAKPOINTS_VIEW, &NodeJSDebuggerPane::OnUpdateDebuggerView, this); + + LexerConf::Ptr_t lexer = ColoursAndFontsManager::Get().GetLexer("text"); + if(lexer) { + lexer->Apply(m_consoleLog); + } + m_dataviewLocals->SetIndent(16); + m_dataviewLocals->GetColumn(0)->SetWidth(150); + m_dataviewLocals->GetColumn(1)->SetWidth(100); + m_dataviewLocals->GetColumn(2)->SetWidth(500); + + m_dvListCtrlCallstack->GetColumn(0)->SetWidth(30); + m_dvListCtrlCallstack->GetColumn(1)->SetWidth(200); + m_dvListCtrlCallstack->GetColumn(2)->SetWidth(300); + m_dvListCtrlCallstack->GetColumn(3)->SetWidth(100); +} + +NodeJSDebuggerPane::~NodeJSDebuggerPane() +{ + EventNotifier::Get()->Unbind( + wxEVT_NODEJS_DEBUGGER_EXPRESSION_EVALUATED, &NodeJSDebuggerPane::OnExpressionEvaluated, this); + EventNotifier::Get()->Unbind(wxEVT_NODEJS_DEBUGGER_UPDATE_CALLSTACK, &NodeJSDebuggerPane::OnUpdateCallstack, this); + EventNotifier::Get()->Unbind(wxEVT_NODEJS_DEBUGGER_LOST_INTERACT, &NodeJSDebuggerPane::OnLostControl, this); + EventNotifier::Get()->Unbind(wxEVT_NODEJS_DEBUGGER_CONSOLE_LOG, &NodeJSDebuggerPane::OnConsoleLog, this); + EventNotifier::Get()->Unbind(wxEVT_NODEJS_DEBUGGER_STARTED, &NodeJSDebuggerPane::OnSessionStarted, this); + EventNotifier::Get()->Unbind(wxEVT_NODEJS_DEBUGGER_EXCEPTION_THROWN, &NodeJSDebuggerPane::OnExceptionThrown, this); + EventNotifier::Get()->Unbind(wxEVT_NODEJS_DEBUGGER_SELECT_FRAME, &NodeJSDebuggerPane::OnFrameSelected, this); + EventNotifier::Get()->Unbind( + wxEVT_NODEJS_DEBUGGER_UPDATE_BREAKPOINTS_VIEW, &NodeJSDebuggerPane::OnUpdateDebuggerView, this); + + ClearCallstack(); +} + +NodeJSHandle NodeJSDebuggerPane::ParseRef(const JSONElement& ref) +{ + NodeJSOuptutParser p; + return p.ParseRef(ref, m_handles); +} + +void NodeJSDebuggerPane::ParseRefsArray(const JSONElement& refs) +{ + int refsCount = refs.arraySize(); + for(int i = 0; i < refsCount; ++i) { + JSONElement ref = refs.arrayItem(i); + ParseRef(ref); + } +} + +void NodeJSDebuggerPane::OnUpdateCallstack(clDebugEvent& event) +{ + event.Skip(); + wxWindowUpdateLocker locker(m_dataviewLocals); + Clear(); + + JSONRoot root(event.GetString()); + JSONElement frames = root.toElement().namedObject("body").namedObject("frames"); + JSONElement refs = root.toElement().namedObject("refs"); + + // Load the handlers into a map + m_handles.clear(); + ParseRefsArray(refs); + + int count = frames.arraySize(); + for(int i = 0; i < count; ++i) { + JSONElement frame = frames.arrayItem(i); + int index = frame.namedObject("index").toInt(); + int funcRef = frame.namedObject("func").namedObject("ref").toInt(); + int fileRef = frame.namedObject("script").namedObject("ref").toInt(); + int line = frame.namedObject("line").toInt() + 1; + + wxVector cols; + cols.push_back(wxString() << index); + wxString file, func; + if(m_handles.count(funcRef)) { + func = m_handles.find(funcRef)->second.value; + } + if(m_handles.count(funcRef)) { + file = m_handles.find(fileRef)->second.value; + } + cols.push_back(func); + cols.push_back(file); + cols.push_back(wxString() << line); + + FrameData* cd = new FrameData(); + cd->file = file; + cd->line = line; + cd->function = func; + cd->index = i; + m_dvListCtrlCallstack->AppendItem(cols, (wxUIntPtr)cd); + + if(i == 0) { + // Notify the debugger to use frame #0 for the indicator + clDebugEvent event(wxEVT_NODEJS_DEBUGGER_MARK_LINE); + event.SetLineNumber(line); + event.SetFileName(file); + EventNotifier::Get()->AddPendingEvent(event); + BuildLocals(frame); + BuildArguments(frame); + } + } +} + +void NodeJSDebuggerPane::OnLostControl(clDebugEvent& event) +{ + event.Skip(); +#ifndef __WXGTK__ + m_dataviewLocals->Enable(false); + m_dvListCtrlCallstack->Enable(false); +#endif +} + +void NodeJSDebuggerPane::OnConsoleLog(clDebugEvent& event) +{ + event.Skip(); + m_consoleLog->AppendText(event.GetString()); + ::clRecalculateSTCHScrollBar(m_consoleLog); + m_consoleLog->ScrollToEnd(); +} + +void NodeJSDebuggerPane::OnSessionStarted(clDebugEvent& event) +{ + event.Skip(); + m_consoleLog->ClearAll(); + LexerConf::Ptr_t lexer = ColoursAndFontsManager::Get().GetLexer("text"); + if(lexer) { + lexer->Apply(m_consoleLog); + } +} + +void NodeJSDebuggerPane::OnItemActivated(wxDataViewEvent& event) +{ + CHECK_ITEM_RET(event.GetItem()); + FrameData* cd = (FrameData*)m_dvListCtrlCallstack->GetItemData(event.GetItem()); + CHECK_PTR_RET(cd); + NodeJSDebugger::Ptr_t debugger = NodeJSWorkspace::Get()->GetDebugger(); + if(!debugger) return; + debugger->SelectFrame(cd->index); +} + +void NodeJSDebuggerPane::ClearCallstack() +{ + for(int i = 0; i < m_dvListCtrlCallstack->GetItemCount(); ++i) { + FrameData* cd = (FrameData*)m_dvListCtrlCallstack->GetItemData(m_dvListCtrlCallstack->RowToItem(i)); + wxDELETE(cd); + } + m_dvListCtrlCallstack->DeleteAllItems(); + m_dataviewLocalsModel->Clear(); + m_dataviewLocals->Enable(true); + m_dvListCtrlCallstack->Enable(true); +} + +wxDataViewItem NodeJSDebuggerPane::AddLocal(const wxDataViewItem& parent, const wxString& name, int refId) +{ + // extract the value + if(m_handles.count(refId)) { + wxVector cols; + NodeJSHandle h = m_handles.find(refId)->second; + cols.push_back(name); + cols.push_back(h.type); + cols.push_back(h.value); + wxDataViewItem child = m_dataviewLocalsModel->AppendItem(parent, cols, new NodeJSLocalClientData(h)); + + if(!h.properties.empty()) { + cols.clear(); + cols.push_back("Loading..."); + cols.push_back("?"); + cols.push_back("?"); + m_dataviewLocalsModel->AppendItem(child, cols); + } + return child; + } + return wxDataViewItem(); +} + +void NodeJSDebuggerPane::BuildArguments(const JSONElement& json) +{ + wxVector cols; + cols.push_back("Arguments"); + cols.push_back(wxEmptyString); + cols.push_back(wxEmptyString); + + wxDataViewItem locals = m_dataviewLocalsModel->AppendItem(wxDataViewItem(NULL), cols); + JSONElement arr = json.namedObject("arguments"); + int count = arr.arraySize(); + for(int i = 0; i < count; ++i) { + JSONElement local = arr.arrayItem(i); + AddLocal(locals, local.namedObject("name").toString(), local.namedObject("value").namedObject("ref").toInt()); + } + + if(m_dataviewLocalsModel->HasChildren(locals)) { + m_dataviewLocals->Expand(locals); + } +} + +void NodeJSDebuggerPane::BuildLocals(const JSONElement& json) +{ + wxVector cols; + cols.push_back("Locals"); + cols.push_back(wxEmptyString); + cols.push_back(wxEmptyString); + + wxDataViewItem locals = m_dataviewLocalsModel->AppendItem(wxDataViewItem(NULL), cols); + JSONElement arr = json.namedObject("locals"); + int count = arr.arraySize(); + for(int i = 0; i < count; ++i) { + JSONElement local = arr.arrayItem(i); + AddLocal(locals, local.namedObject("name").toString(), local.namedObject("value").namedObject("ref").toInt()); + } + + if(m_dataviewLocalsModel->HasChildren(locals)) { + m_dataviewLocals->Expand(locals); + } +} + +void NodeJSDebuggerPane::OnExceptionThrown(clDebugEvent& event) +{ + event.Skip(); + ::wxMessageBox(_("An uncaught exception thrown!"), "CodeLite", wxICON_ERROR | wxOK | wxCENTER); + NodeJSDebugger::Ptr_t debugger = NodeJSWorkspace::Get()->GetDebugger(); + if(!debugger) return; + debugger->Callstack(); +} + +void NodeJSDebuggerPane::OnUpdateDebuggerView(clDebugEvent& event) +{ + event.Skip(); + NodeJSDebugger::Ptr_t debugger = NodeJSWorkspace::Get()->GetDebugger(); + if(!debugger) return; + m_dvListCtrlBreakpoints->DeleteAllItems(); + const NodeJSBreakpoint::List_t& breakpoints = debugger->GetBreakpointsMgr()->GetBreakpoints(); + std::for_each(breakpoints.begin(), breakpoints.end(), [&](const NodeJSBreakpoint& bp) { + wxVector cols; + cols.push_back(wxString() << bp.GetNodeBpID()); + cols.push_back(wxString() << bp.GetLine()); + cols.push_back(bp.GetFilename()); + m_dvListCtrlBreakpoints->AppendItem(cols); + }); +} + +void NodeJSDebuggerPane::OnFrameSelected(clDebugEvent& event) +{ + event.Skip(); + wxWindowUpdateLocker locker(m_dataviewLocals); + m_dataviewLocalsModel->Clear(); + m_dataviewLocals->Enable(true); + + JSONRoot root(event.GetString()); + JSONElement json = root.toElement(); + JSONElement frame = json.namedObject("body"); + JSONElement refs = json.namedObject("refs"); + + // Load the handlers into a map + m_handles.clear(); + ParseRefsArray(refs); + + int index = frame.namedObject("index").toInt(); + int funcRef = frame.namedObject("func").namedObject("ref").toInt(); + int fileRef = frame.namedObject("script").namedObject("ref").toInt(); + int line = frame.namedObject("line").toInt() + 1; + + wxVector cols; + cols.push_back(wxString() << index); + wxString file, func; + if(m_handles.count(funcRef)) { + func = m_handles.find(funcRef)->second.value; + } + if(m_handles.count(funcRef)) { + file = m_handles.find(fileRef)->second.value; + } + cols.push_back(func); + cols.push_back(file); + cols.push_back(wxString() << line); + + // Notify the debugger to use frame #0 for the indicator + clDebugEvent eventHighlight(wxEVT_NODEJS_DEBUGGER_MARK_LINE); + eventHighlight.SetLineNumber(line); + eventHighlight.SetFileName(file); + EventNotifier::Get()->AddPendingEvent(eventHighlight); + BuildLocals(frame); + BuildArguments(frame); +} + +void NodeJSDebuggerPane::OnBreakpointSelected(wxDataViewEvent& event) +{ + wxVariant v; + int line; + wxString file; + // sanity + CHECK_ITEM_RET(event.GetItem()); + wxDataViewItem item = event.GetItem(); + int row = m_dvListCtrlBreakpoints->ItemToRow(item); + // sanity + if(row >= m_dvListCtrlBreakpoints->GetItemCount()) return; + + m_dvListCtrlBreakpoints->GetValue(v, row, 1); + line = v.GetInteger(); + + m_dvListCtrlBreakpoints->GetValue(v, row, 2); + file = v.GetString(); + + CallAfter(&NodeJSDebuggerPane::DoOpenFile, file, line); +} + +void NodeJSDebuggerPane::DoOpenFile(const wxString& filename, int line) +{ + clGetManager()->OpenFile(filename, "", line - 1); +} +void NodeJSDebuggerPane::OnEvaluateExpression(wxCommandEvent& event) +{ + if(m_textCtrlExpression->IsEmpty()) return; + + clDebugEvent evalEvent(wxEVT_NODEJS_DEBUGGER_EVAL_EXPRESSION); + evalEvent.SetString(m_textCtrlExpression->GetValue()); + EventNotifier::Get()->AddPendingEvent(evalEvent); +} + +void NodeJSDebuggerPane::OnExpressionEvaluated(clDebugEvent& event) +{ + event.Skip(); + wxString message; + message << "eval(" << m_textCtrlExpression->GetValue() << "):\n" << event.GetString(); + + wxString currentText = m_consoleLog->GetValue(); + if(!currentText.EndsWith("\n")) { + message.Prepend("\n"); + } + if(!message.EndsWith("\n")) { + message << "\n"; + } + m_consoleLog->AppendText(message); + m_consoleLog->ScrollToEnd(); + + // Restore the focus to the text control + m_textCtrlExpression->CallAfter(&wxTextCtrl::SetFocus); +} + +void NodeJSDebuggerPane::OnLocalExpanding(wxDataViewEvent& event) +{ + event.Skip(); + CHECK_ITEM_RET(event.GetItem()); + NodeJSLocalClientData* d = + dynamic_cast(m_dataviewLocalsModel->GetClientObject(event.GetItem())); + + CHECK_PTR_RET(d); + if(d->IsExpanded()) { + // nothing to be done here + return; + } + + wxDataViewItemArray children; + if(m_dataviewLocalsModel->GetChildren(event.GetItem(), children) != 1) return; + + d->SetExpanded(true); + + // Prepare list of refs that we don't have + std::map unknownRefs; + std::map knownRefs; + const NodeJSHandle& h = d->GetHandle(); + std::for_each(h.properties.begin(), h.properties.end(), [&](const std::pair& p) { + if(m_handles.count(p.first) == 0) { + unknownRefs.insert(p); + } else { + knownRefs.insert(p); + } + }); + CallAfter(&NodeJSDebuggerPane::DoAddKnownRefs, knownRefs, event.GetItem()); + CallAfter(&NodeJSDebuggerPane::DoAddUnKnownRefs, unknownRefs, event.GetItem()); + // Delete the dummy node + CallAfter(&NodeJSDebuggerPane::DoDeleteLocalItemAfter, children.Item(0)); +} + +void NodeJSDebuggerPane::DoDeleteLocalItemAfter(const wxDataViewItem& item) { m_dataviewLocalsModel->DeleteItem(item); } + +void NodeJSDebuggerPane::DoAddKnownRefs(const std::map& refs, const wxDataViewItem& parent) +{ + std::for_each( + refs.begin(), refs.end(), [&](const std::pair& p) { AddLocal(parent, p.second, p.first); }); +} + +void NodeJSDebuggerPane::DoAddUnKnownRefs(const std::map& refs, const wxDataViewItem& parent) +{ + if(!NodeJSWorkspace::Get()->GetDebugger()) return; + + std::vector handles; + std::for_each(refs.begin(), refs.end(), [&](const std::pair& p) { + PendingLookupDV pl; + pl.parent = parent; + pl.name = p.second; + pl.refID = p.first; + m_pendingLookupRefs.push_back(pl); + handles.push_back(p.first); + }); + NodeJSWorkspace::Get()->GetDebugger()->Lookup(handles, kNodeJSContextLocals); +} + +void NodeJSDebuggerPane::OnSessionStopped(clDebugEvent& event) +{ + event.Skip(); + Clear(); +} + +void NodeJSDebuggerPane::Clear() +{ + ClearCallstack(); + m_dataviewLocalsModel->Clear(); + m_pendingLookupRefs.clear(); + m_handles.clear(); +} + +void NodeJSDebuggerPane::OnLookup(clDebugEvent& event) +{ + JSONRoot root(event.GetString()); + JSONElement body = root.toElement().namedObject("body"); + std::vector unresolved; + + wxDataViewItem parent; + for(size_t i = 0; i < m_pendingLookupRefs.size(); ++i) { + const PendingLookupDV& pl = m_pendingLookupRefs.at(i); + if(!parent.IsOk()) { + parent = pl.parent; + } + wxString nameID; + nameID << pl.refID; + + if(!body.hasNamedObject(nameID)) { + unresolved.push_back(pl); + continue; + } + + // Parse and add this ref to the global m_handles map + JSONElement ref = body.namedObject(nameID); + NodeJSHandle h = ParseRef(ref); + h.name = pl.name; + if(!h.IsOk()) continue; + + // Add the local + AddLocal(pl.parent, pl.name, pl.refID); + } + + if(parent.IsOk() && m_dataviewLocalsModel->HasChildren(parent) && !m_dataviewLocals->IsExpanded(parent)) { + m_dataviewLocals->Expand(parent); + } + m_pendingLookupRefs.clear(); +} diff -Nru codelite-8.0.1+dfsg2/WebTools/NodeJSDebuggerPane.h codelite-9.0+dfsg/WebTools/NodeJSDebuggerPane.h --- codelite-8.0.1+dfsg2/WebTools/NodeJSDebuggerPane.h 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/WebTools/NodeJSDebuggerPane.h 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,62 @@ +#ifndef NODEJSDEBUGGERPANE_H +#define NODEJSDEBUGGERPANE_H + +#include "WebToolsBase.h" +#include "NodeJSEvents.h" +#include +#include "json_node.h" +#include "NodeJSOuptutParser.h" + +class NodeJSDebuggerPane : public NodeJSDebuggerPaneBase +{ + struct FrameData + { + int index; + int line; + wxString file; + wxString function; + FrameData() + : index(wxNOT_FOUND) + , line(wxNOT_FOUND) + { + } + }; + +public: + std::map m_handles; + std::vector m_pendingLookupRefs; + +protected: + virtual void OnLocalExpanding(wxDataViewEvent& event); + virtual void OnEvaluateExpression(wxCommandEvent& event); + virtual void OnBreakpointSelected(wxDataViewEvent& event); + void ClearCallstack(); + void BuildLocals(const JSONElement& json); + void BuildArguments(const JSONElement& json); + wxDataViewItem AddLocal(const wxDataViewItem& parent, const wxString& name, int refId); + void ParseRefsArray(const JSONElement& refs); + NodeJSHandle ParseRef(const JSONElement& ref); + void DoOpenFile(const wxString& filename, int line); + void DoDeleteLocalItemAfter(const wxDataViewItem& item); + void DoAddKnownRefs(const std::map& refs, const wxDataViewItem& parent); + void DoAddUnKnownRefs(const std::map& refs, const wxDataViewItem& parent); + void Clear(); + +protected: + void OnItemActivated(wxDataViewEvent& event); + void OnUpdateCallstack(clDebugEvent& event); + void OnExpressionEvaluated(clDebugEvent& event); + void OnLostControl(clDebugEvent& event); + void OnLookup(clDebugEvent& event); + void OnConsoleLog(clDebugEvent& event); + void OnSessionStarted(clDebugEvent& event); + void OnSessionStopped(clDebugEvent& event); + void OnExceptionThrown(clDebugEvent& event); + void OnUpdateDebuggerView(clDebugEvent& event); + void OnFrameSelected(clDebugEvent& event); + +public: + NodeJSDebuggerPane(wxWindow* parent); + virtual ~NodeJSDebuggerPane(); +}; +#endif // NODEJSDEBUGGERPANE_H diff -Nru codelite-8.0.1+dfsg2/WebTools/NodeJSDebuggerTooltip.cpp codelite-9.0+dfsg/WebTools/NodeJSDebuggerTooltip.cpp --- codelite-8.0.1+dfsg2/WebTools/NodeJSDebuggerTooltip.cpp 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/WebTools/NodeJSDebuggerTooltip.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,156 @@ +#include +#include "NodeJSDebuggerTooltip.h" +#include "json_node.h" +#include "NodeJSOuptutParser.h" +#include "globals.h" +#include "macros.h" +#include "NoteJSWorkspace.h" +#include "event_notifier.h" +#include "NodeJSEvents.h" + +NodeJSDebuggerTooltip::NodeJSDebuggerTooltip(wxEvtHandler* owner, const wxString& expression) + : clResizableTooltip(owner) + , m_expression(expression) +{ + MSWSetNativeTheme(m_treeCtrl); + EventNotifier::Get()->Bind(wxEVT_NODEJS_DEBUGGER_TOOLTIP_LOOKUP, &NodeJSDebuggerTooltip::OnLookup, this); +} + +NodeJSDebuggerTooltip::~NodeJSDebuggerTooltip() +{ + EventNotifier::Get()->Unbind(wxEVT_NODEJS_DEBUGGER_TOOLTIP_LOOKUP, &NodeJSDebuggerTooltip::OnLookup, this); +} + +void NodeJSDebuggerTooltip::OnItemExpanding(wxTreeEvent& event) +{ + event.Skip(); + CHECK_ITEM_RET(event.GetItem()); + + ClientData* d = dynamic_cast(m_treeCtrl->GetItemData(event.GetItem())); + + CHECK_PTR_RET(d); + if(d->IsExpanded()) { + // nothing to be done here + return; + } + + d->SetExpanded(true); + + // Prepare list of refs that we don't have + std::map unknownRefs; + std::map knownRefs; + const NodeJSHandle& h = d->GetHandle(); + std::for_each(h.properties.begin(), h.properties.end(), [&](const std::pair& p) { + if(m_handles.count(p.first) == 0) { + unknownRefs.insert(p); + } else { + knownRefs.insert(p); + } + }); + CallAfter(&NodeJSDebuggerTooltip::DoAddKnownRefs, knownRefs, event.GetItem()); + CallAfter(&NodeJSDebuggerTooltip::DoAddUnKnownRefs, unknownRefs, event.GetItem()); + + // Delete the dummy node + m_treeCtrl->CallAfter(&wxTreeCtrl::DeleteChildren, event.GetItem()); +} + +void NodeJSDebuggerTooltip::ShowTip(const wxString& jsonOutput) +{ + JSONRoot root(jsonOutput); + JSONElement body = root.toElement().namedObject("body"); + + NodeJSOuptutParser p; + NodeJSHandle h = p.ParseRef(body, m_handles); + + wxString rootText; + rootText << m_expression; + if(!h.value.IsEmpty()) { + rootText << " = " << h.value; + } + + wxTreeItemId rootItem = m_treeCtrl->AddRoot(rootText, -1, -1, new ClientData(h)); + if(!h.properties.empty()) { + m_treeCtrl->AppendItem(rootItem, "Loading..."); + } + + // Add this handle + clResizableTooltip::ShowTip(); +} + +void NodeJSDebuggerTooltip::DoAddKnownRefs(const std::map& refs, const wxTreeItemId& parent) +{ + std::for_each( + refs.begin(), refs.end(), [&](const std::pair& p) { AddLocal(parent, p.second, p.first); }); +} + +void NodeJSDebuggerTooltip::DoAddUnKnownRefs(const std::map& refs, const wxTreeItemId& parent) +{ + if(!NodeJSWorkspace::Get()->GetDebugger()) return; + + std::vector handles; + std::for_each(refs.begin(), refs.end(), [&](const std::pair& p) { + PendingLookupT pl; + pl.parent = parent; + pl.name = p.second; + pl.refID = p.first; + m_pendingLookupRefs.push_back(pl); + handles.push_back(p.first); + }); + NodeJSWorkspace::Get()->GetDebugger()->Lookup(handles, kNodeJSContextTooltip); +} + +wxTreeItemId NodeJSDebuggerTooltip::AddLocal(const wxTreeItemId& parent, const wxString& name, int refId) +{ + // extract the value + if(m_handles.count(refId)) { + NodeJSHandle h = m_handles.find(refId)->second; + wxString text; + text << name; + if(!h.value.IsEmpty()) { + text << " = " << h.value; + } + wxTreeItemId child = m_treeCtrl->AppendItem(parent, text, -1, -1, new ClientData(h)); + if(!h.properties.empty()) { + m_treeCtrl->AppendItem(child, "Loading..."); + } + return child; + } + return wxTreeItemId(); +} + +void NodeJSDebuggerTooltip::OnLookup(clDebugEvent& event) +{ + JSONRoot root(event.GetString()); + JSONElement body = root.toElement().namedObject("body"); + std::vector unresolved; + + wxTreeItemId parent; + NodeJSOuptutParser p; + for(size_t i = 0; i < m_pendingLookupRefs.size(); ++i) { + const PendingLookupT& pl = m_pendingLookupRefs.at(i); + if(!parent.IsOk()) { + parent = pl.parent; + } + wxString nameID; + nameID << pl.refID; + + if(!body.hasNamedObject(nameID)) { + unresolved.push_back(pl); + continue; + } + + // Parse and add this ref to the global m_handles map + JSONElement ref = body.namedObject(nameID); + NodeJSHandle h = p.ParseRef(ref, m_handles); + h.name = pl.name; + if(!h.IsOk()) continue; + + // Add the local + AddLocal(pl.parent, pl.name, pl.refID); + } + + if(parent.IsOk() && m_treeCtrl->HasChildren(parent) && !m_treeCtrl->IsExpanded(parent)) { + m_treeCtrl->Expand(parent); + } + m_pendingLookupRefs.clear(); +} diff -Nru codelite-8.0.1+dfsg2/WebTools/NodeJSDebuggerTooltip.h codelite-9.0+dfsg/WebTools/NodeJSDebuggerTooltip.h --- codelite-8.0.1+dfsg2/WebTools/NodeJSDebuggerTooltip.h 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/WebTools/NodeJSDebuggerTooltip.h 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,47 @@ +#ifndef NODEJSDEBUGGERTOOLTIP_H +#define NODEJSDEBUGGERTOOLTIP_H + +#include "clResizableTooltip.h" +#include "NodeJSOuptutParser.h" + +class NodeJSDebuggerTooltip : public clResizableTooltip +{ + std::map m_handles; + wxString m_expression; + std::vector m_pendingLookupRefs; + +protected: + class ClientData : public wxTreeItemData + { + NodeJSHandle m_handle; + bool m_expanded; + + public: + ClientData(const NodeJSHandle& h, bool expanded = false) + : m_handle(h) + , m_expanded(expanded) + { + } + virtual ~ClientData() {} + + void SetExpanded(bool expanded) { this->m_expanded = expanded; } + bool IsExpanded() const { return m_expanded; } + const NodeJSHandle& GetHandle() const { return m_handle; } + }; + +protected: + void DoAddKnownRefs(const std::map& refs, const wxTreeItemId& parent); + void DoAddUnKnownRefs(const std::map& refs, const wxTreeItemId& parent); + wxTreeItemId AddLocal(const wxTreeItemId& parent, const wxString& name, int refId); + +public: + NodeJSDebuggerTooltip(wxEvtHandler* owner, const wxString& expression); + virtual ~NodeJSDebuggerTooltip(); + void ShowTip(const wxString& jsonOutput); + +protected: + virtual void OnItemExpanding(wxTreeEvent& event); + void OnLookup(clDebugEvent& event); +}; + +#endif // NODEJSDEBUGGERTOOLTIP_H diff -Nru codelite-8.0.1+dfsg2/WebTools/NodeJSEvaluateExprHandler.cpp codelite-9.0+dfsg/WebTools/NodeJSEvaluateExprHandler.cpp --- codelite-8.0.1+dfsg2/WebTools/NodeJSEvaluateExprHandler.cpp 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/WebTools/NodeJSEvaluateExprHandler.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,41 @@ +#include "NodeJSEvaluateExprHandler.h" +#include +#include "globals.h" +#include "json_node.h" +#include "ieditor.h" +#include +#include "NodeJSEvents.h" +#include "event_notifier.h" +#include "cl_command_event.h" +#include "NodeJSDebugger.h" + +NodeJSEvaluateExprHandler::NodeJSEvaluateExprHandler(const wxString& expression, eNodeJSContext context) + : m_expression(expression) + , m_context(context) +{ +} + +NodeJSEvaluateExprHandler::~NodeJSEvaluateExprHandler() {} + +void NodeJSEvaluateExprHandler::Process(NodeJSDebugger* debugger, const wxString& output) +{ + JSONRoot root(output); + JSONElement json = root.toElement(); + if(json.namedObject("body").hasNamedObject("text") && clGetManager()->GetActiveEditor()) { + wxString title = m_expression; + wxString content = json.namedObject("body").namedObject("text").toString(); + wxString type = json.namedObject("body").namedObject("type").toString(); + + if(type == "string") { + content.Prepend("\"").Append("\""); + } + if(m_context == kNodeJSContextTooltip) { + debugger->ShowTooltip(m_expression, output); + + } else { + clDebugEvent event(wxEVT_NODEJS_DEBUGGER_EXPRESSION_EVALUATED); + event.SetString(content); + EventNotifier::Get()->ProcessEvent(event); + } + } +} diff -Nru codelite-8.0.1+dfsg2/WebTools/NodeJSEvaluateExprHandler.h codelite-9.0+dfsg/WebTools/NodeJSEvaluateExprHandler.h --- codelite-8.0.1+dfsg2/WebTools/NodeJSEvaluateExprHandler.h 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/WebTools/NodeJSEvaluateExprHandler.h 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,20 @@ +#ifndef NODEJSEVALUATEEXPRHANDLER_H +#define NODEJSEVALUATEEXPRHANDLER_H + +#include "NodeJSHandlerBase.h" // Base class: NodeJSHandlerBase +#include "NodeJS.h" + +class NodeJSEvaluateExprHandler : public NodeJSHandlerBase +{ + wxString m_expression; + eNodeJSContext m_context; + +public: + NodeJSEvaluateExprHandler(const wxString& expression, eNodeJSContext context = kNodeJSContextTooltip); + virtual ~NodeJSEvaluateExprHandler(); + +public: + virtual void Process(NodeJSDebugger* debugger, const wxString& output); +}; + +#endif // NODEJSEVALUATEEXPRHANDLER_H diff -Nru codelite-8.0.1+dfsg2/WebTools/NodeJSEvents.cpp codelite-9.0+dfsg/WebTools/NodeJSEvents.cpp --- codelite-8.0.1+dfsg2/WebTools/NodeJSEvents.cpp 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/WebTools/NodeJSEvents.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,16 @@ +#include "NodeJSEvents.h" + +wxDEFINE_EVENT(wxEVT_NODEJS_DEBUGGER_STARTED, clDebugEvent); +wxDEFINE_EVENT(wxEVT_NODEJS_DEBUGGER_STOPPED, clDebugEvent); +wxDEFINE_EVENT(wxEVT_NODEJS_DEBUGGER_UPDATE_CALLSTACK, clDebugEvent); +wxDEFINE_EVENT(wxEVT_NODEJS_DEBUGGER_LOCALS_LOOKUP, clDebugEvent); +wxDEFINE_EVENT(wxEVT_NODEJS_DEBUGGER_TOOLTIP_LOOKUP, clDebugEvent); +wxDEFINE_EVENT(wxEVT_NODEJS_DEBUGGER_CAN_INTERACT, clDebugEvent); +wxDEFINE_EVENT(wxEVT_NODEJS_DEBUGGER_LOST_INTERACT, clDebugEvent); +wxDEFINE_EVENT(wxEVT_NODEJS_DEBUGGER_MARK_LINE, clDebugEvent); +wxDEFINE_EVENT(wxEVT_NODEJS_DEBUGGER_CONSOLE_LOG, clDebugEvent); +wxDEFINE_EVENT(wxEVT_NODEJS_DEBUGGER_SELECT_FRAME, clDebugEvent); +wxDEFINE_EVENT(wxEVT_NODEJS_DEBUGGER_EXCEPTION_THROWN, clDebugEvent); +wxDEFINE_EVENT(wxEVT_NODEJS_DEBUGGER_UPDATE_BREAKPOINTS_VIEW, clDebugEvent); +wxDEFINE_EVENT(wxEVT_NODEJS_DEBUGGER_EVAL_EXPRESSION, clDebugEvent); +wxDEFINE_EVENT(wxEVT_NODEJS_DEBUGGER_EXPRESSION_EVALUATED, clDebugEvent); diff -Nru codelite-8.0.1+dfsg2/WebTools/NodeJSEvents.h codelite-9.0+dfsg/WebTools/NodeJSEvents.h --- codelite-8.0.1+dfsg2/WebTools/NodeJSEvents.h 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/WebTools/NodeJSEvents.h 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,21 @@ +#ifndef NODEJSEVENTS_H +#define NODEJSEVENTS_H + +#include "cl_command_event.h" + +wxDECLARE_EVENT(wxEVT_NODEJS_DEBUGGER_STARTED, clDebugEvent); +wxDECLARE_EVENT(wxEVT_NODEJS_DEBUGGER_STOPPED, clDebugEvent); +wxDECLARE_EVENT(wxEVT_NODEJS_DEBUGGER_UPDATE_CALLSTACK, clDebugEvent); +wxDECLARE_EVENT(wxEVT_NODEJS_DEBUGGER_LOCALS_LOOKUP, clDebugEvent); +wxDECLARE_EVENT(wxEVT_NODEJS_DEBUGGER_TOOLTIP_LOOKUP, clDebugEvent); +wxDECLARE_EVENT(wxEVT_NODEJS_DEBUGGER_CAN_INTERACT, clDebugEvent); +wxDECLARE_EVENT(wxEVT_NODEJS_DEBUGGER_LOST_INTERACT, clDebugEvent); +wxDECLARE_EVENT(wxEVT_NODEJS_DEBUGGER_MARK_LINE, clDebugEvent); +wxDECLARE_EVENT(wxEVT_NODEJS_DEBUGGER_CONSOLE_LOG, clDebugEvent); +wxDECLARE_EVENT(wxEVT_NODEJS_DEBUGGER_SELECT_FRAME, clDebugEvent); +wxDECLARE_EVENT(wxEVT_NODEJS_DEBUGGER_EXCEPTION_THROWN, clDebugEvent); +wxDECLARE_EVENT(wxEVT_NODEJS_DEBUGGER_UPDATE_BREAKPOINTS_VIEW, clDebugEvent); +wxDECLARE_EVENT(wxEVT_NODEJS_DEBUGGER_EVAL_EXPRESSION, clDebugEvent); +wxDECLARE_EVENT(wxEVT_NODEJS_DEBUGGER_EXPRESSION_EVALUATED, clDebugEvent); + +#endif diff -Nru codelite-8.0.1+dfsg2/WebTools/NodeJSGetScriptHandler.cpp codelite-9.0+dfsg/WebTools/NodeJSGetScriptHandler.cpp --- codelite-8.0.1+dfsg2/WebTools/NodeJSGetScriptHandler.cpp 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/WebTools/NodeJSGetScriptHandler.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,40 @@ +#include "NodeJSGetScriptHandler.h" +#include "fileutils.h" +#include +#include "json_node.h" +#include "cl_standard_paths.h" +#include "cl_command_event.h" +#include "event_notifier.h" +#include "NodeJSEvents.h" +#include "NodeJSDebugger.h" +#include "file_logger.h" + +NodeJSGetScriptHandler::NodeJSGetScriptHandler(const wxString& filename, int line) + : m_filename(filename) + , m_line(line) +{ +} + +NodeJSGetScriptHandler::~NodeJSGetScriptHandler() +{ +} + +void NodeJSGetScriptHandler::Process(NodeJSDebugger* debugger, const wxString& output) +{ + JSONRoot root(output); + wxString sourceFile = root.toElement().namedObject("body").namedObject("source").toString(); + if(!sourceFile.IsEmpty()) { + wxFileName fn(clStandardPaths::Get().GetUserDataDir(), m_filename); + fn.AppendDir("webtools"); + fn.AppendDir("tmp"); + fn.Mkdir(wxS_DIR_DEFAULT, wxPATH_MKDIR_FULL); + if(FileUtils::WriteFileContent(fn, sourceFile)) { + CL_DEBUG("Calling marking line for %s:%d", fn.GetFullPath(), m_line); + debugger->AddTempFile(fn.GetFullPath()); + clDebugEvent eventHighlight(wxEVT_NODEJS_DEBUGGER_MARK_LINE); + eventHighlight.SetLineNumber(m_line); + eventHighlight.SetFileName(fn.GetFullPath()); + EventNotifier::Get()->AddPendingEvent(eventHighlight); + } + } +} diff -Nru codelite-8.0.1+dfsg2/WebTools/NodeJSGetScriptHandler.h codelite-9.0+dfsg/WebTools/NodeJSGetScriptHandler.h --- codelite-8.0.1+dfsg2/WebTools/NodeJSGetScriptHandler.h 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/WebTools/NodeJSGetScriptHandler.h 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,19 @@ +#ifndef NODEJSGETSCRIPTHANDLER_H +#define NODEJSGETSCRIPTHANDLER_H + +#include "NodeJSHandlerBase.h" // Base class: NodeJSHandlerBase + +class NodeJSGetScriptHandler : public NodeJSHandlerBase +{ + wxString m_filename; + int m_line; + +public: + NodeJSGetScriptHandler(const wxString& filename, int line); + virtual ~NodeJSGetScriptHandler(); + +public: + virtual void Process(NodeJSDebugger* debugger, const wxString& output); +}; + +#endif // NODEJSGETSCRIPTHANDLER_H diff -Nru codelite-8.0.1+dfsg2/WebTools/NodeJS.h codelite-9.0+dfsg/WebTools/NodeJS.h --- codelite-8.0.1+dfsg2/WebTools/NodeJS.h 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/WebTools/NodeJS.h 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,10 @@ +#ifndef NODEJS_H +#define NODEJS_H + +enum eNodeJSContext { + kNodeJSContextTooltip, + kNodeJSContextConsole, + kNodeJSContextLocals, +}; + +#endif diff -Nru codelite-8.0.1+dfsg2/WebTools/NodeJSHandlerBase.cpp codelite-9.0+dfsg/WebTools/NodeJSHandlerBase.cpp --- codelite-8.0.1+dfsg2/WebTools/NodeJSHandlerBase.cpp 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/WebTools/NodeJSHandlerBase.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,10 @@ +#include "NodeJSHandlerBase.h" + +NodeJSHandlerBase::NodeJSHandlerBase() +{ +} + +NodeJSHandlerBase::~NodeJSHandlerBase() +{ +} + diff -Nru codelite-8.0.1+dfsg2/WebTools/NodeJSHandlerBase.h codelite-9.0+dfsg/WebTools/NodeJSHandlerBase.h --- codelite-8.0.1+dfsg2/WebTools/NodeJSHandlerBase.h 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/WebTools/NodeJSHandlerBase.h 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,19 @@ +#ifndef NODEJSHANDLERBASE_H +#define NODEJSHANDLERBASE_H + +#include "smart_ptr.h" +#include + +class NodeJSDebugger; +class NodeJSHandlerBase +{ +public: + typedef SmartPtr Ptr_t; + + NodeJSHandlerBase(); + virtual ~NodeJSHandlerBase(); + + virtual void Process(NodeJSDebugger* debugger, const wxString& output) = 0; +}; + +#endif // NODEJSHANDLERBASE_H diff -Nru codelite-8.0.1+dfsg2/WebTools/NodeJSLookupHandler.cpp codelite-9.0+dfsg/WebTools/NodeJSLookupHandler.cpp --- codelite-8.0.1+dfsg2/WebTools/NodeJSLookupHandler.cpp 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/WebTools/NodeJSLookupHandler.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,25 @@ +#include "NodeJSLookupHandler.h" +#include "file_logger.h" +#include "event_notifier.h" +#include "NodeJSEvents.h" + +NodeJSLookupHandler::NodeJSLookupHandler(eNodeJSContext context) + : m_context(context) +{ +} + +NodeJSLookupHandler::~NodeJSLookupHandler() {} + +void NodeJSLookupHandler::Process(NodeJSDebugger* debugger, const wxString& output) +{ + wxUnusedVar(debugger); + if(m_context == kNodeJSContextLocals) { + clDebugEvent event(wxEVT_NODEJS_DEBUGGER_LOCALS_LOOKUP); + event.SetString(output); + EventNotifier::Get()->ProcessEvent(event); + } else { + clDebugEvent event(wxEVT_NODEJS_DEBUGGER_TOOLTIP_LOOKUP); + event.SetString(output); + EventNotifier::Get()->ProcessEvent(event); + } +} diff -Nru codelite-8.0.1+dfsg2/WebTools/NodeJSLookupHandler.h codelite-9.0+dfsg/WebTools/NodeJSLookupHandler.h --- codelite-8.0.1+dfsg2/WebTools/NodeJSLookupHandler.h 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/WebTools/NodeJSLookupHandler.h 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,18 @@ +#ifndef NODEJSLOOKUPHANDLER_H +#define NODEJSLOOKUPHANDLER_H + +#include "NodeJSHandlerBase.h" // Base class: NodeJSHandlerBase +#include "NodeJS.h" + +class NodeJSLookupHandler : public NodeJSHandlerBase +{ + eNodeJSContext m_context; +public: + NodeJSLookupHandler(eNodeJSContext context); + virtual ~NodeJSLookupHandler(); + +public: + virtual void Process(NodeJSDebugger* debugger, const wxString& output); +}; + +#endif // NODEJSLOOKUPHANDLER_H diff -Nru codelite-8.0.1+dfsg2/WebTools/NodeJSNewWorkspaceDlg.cpp codelite-9.0+dfsg/WebTools/NodeJSNewWorkspaceDlg.cpp --- codelite-8.0.1+dfsg2/WebTools/NodeJSNewWorkspaceDlg.cpp 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/WebTools/NodeJSNewWorkspaceDlg.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,50 @@ +#include "NodeJSNewWorkspaceDlg.h" +#include "cl_standard_paths.h" + +NodeJSNewWorkspaceDlg::NodeJSNewWorkspaceDlg(wxWindow* parent) + : NodeJSNewWorkspaceDlgBase(parent) +{ + m_dirPickerFolder->SetPath(clStandardPaths::Get().GetDocumentsDir()); + CenterOnParent(); +} + +NodeJSNewWorkspaceDlg::~NodeJSNewWorkspaceDlg() {} + +void NodeJSNewWorkspaceDlg::OnFolderSelected(wxFileDirPickerEvent& event) +{ + event.Skip(); + if(m_textCtrllName->IsEmpty()) { + wxFileName fn(m_dirPickerFolder->GetPath(), ""); + if(fn.GetDirCount()) { + m_textCtrllName->ChangeValue(fn.GetDirs().Last()); + } + } + UpdatePreview(); +} + +void NodeJSNewWorkspaceDlg::OnOKUI(wxUpdateUIEvent& event) +{ + wxFileName fn(m_staticTextPreview->GetLabel()); + event.Enable(fn.IsOk() && !m_textCtrllName->GetValue().IsEmpty()); +} + +void NodeJSNewWorkspaceDlg::OnTextUpdate(wxCommandEvent& event) +{ + event.Skip(); + UpdatePreview(); +} + +void NodeJSNewWorkspaceDlg::UpdatePreview() +{ + // An empty new workspace + wxFileName fn(m_dirPickerFolder->GetPath(), m_textCtrllName->GetValue()); + fn.SetExt("workspace"); + if(m_checkBoxNewFolder->IsChecked() && !m_textCtrllName->GetValue().IsEmpty()) { + fn.AppendDir(m_textCtrllName->GetValue()); + } + m_staticTextPreview->SetLabel(fn.GetFullPath()); + GetSizer()->Layout(); +} + +void NodeJSNewWorkspaceDlg::OnCheckNewFolder(wxCommandEvent& event) { UpdatePreview(); } +void NodeJSNewWorkspaceDlg::OnExistingFolderSelected(wxFileDirPickerEvent& event) { UpdatePreview(); } diff -Nru codelite-8.0.1+dfsg2/WebTools/NodeJSNewWorkspaceDlg.h codelite-9.0+dfsg/WebTools/NodeJSNewWorkspaceDlg.h --- codelite-8.0.1+dfsg2/WebTools/NodeJSNewWorkspaceDlg.h 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/WebTools/NodeJSNewWorkspaceDlg.h 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,22 @@ +#ifndef NODEJSNEWWORKSPACEDLG_H +#define NODEJSNEWWORKSPACEDLG_H +#include "WebToolsBase.h" + +class NodeJSNewWorkspaceDlg : public NodeJSNewWorkspaceDlgBase +{ +protected: + virtual void OnExistingFolderSelected(wxFileDirPickerEvent& event); + virtual void OnCheckNewFolder(wxCommandEvent& event); + void UpdatePreview(); + +public: + NodeJSNewWorkspaceDlg(wxWindow* parent); + virtual ~NodeJSNewWorkspaceDlg(); + wxString GetWorkspaceFilename() const { return m_staticTextPreview->GetLabel(); } + +protected: + virtual void OnFolderSelected(wxFileDirPickerEvent& event); + virtual void OnOKUI(wxUpdateUIEvent& event); + virtual void OnTextUpdate(wxCommandEvent& event); +}; +#endif // NODEJSNEWWORKSPACEDLG_H diff -Nru codelite-8.0.1+dfsg2/WebTools/NodeJSOuptutParser.cpp codelite-9.0+dfsg/WebTools/NodeJSOuptutParser.cpp --- codelite-8.0.1+dfsg2/WebTools/NodeJSOuptutParser.cpp 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/WebTools/NodeJSOuptutParser.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,51 @@ +#include "NodeJSOuptutParser.h" + +NodeJSOuptutParser::NodeJSOuptutParser() {} + +NodeJSOuptutParser::~NodeJSOuptutParser() {} + +NodeJSHandle NodeJSOuptutParser::ParseRef(const JSONElement& ref, std::map& handles) +{ + int handleId = ref.namedObject("handle").toInt(); + NodeJSHandle h; + h.handleID = handleId; + h.type = ref.namedObject("type").toString(); + if(h.type == "undefined") { + h.value = "undefined"; + } else if(h.type == "number" || h.type == "boolean") { + h.value = ref.namedObject("text").toString(); + } else if(h.type == "string") { + // Make this string repesentable in a single line + h.value << "\"" << ref.namedObject("text").toString() << "\""; + h.value.Replace("\n", "\\n"); + h.value.Replace("\t", "\\t"); + h.value.Replace("\r", "\\r"); + } else if(h.type == "script" || h.type == "function") { + h.value = ref.namedObject("name").toString(); + } else if(h.type == "null") { + h.value = "null"; + } else if(h.type == "object") { + if(ref.hasNamedObject("className") && ref.namedObject("className").toString() == "Array") { + h.type = "Array"; + h.value = "[]"; + } else { + h.value = "{...}"; + } + JSONElement props = ref.namedObject("properties"); + int propsCount = props.arraySize(); + for(int n = 0; n < propsCount; ++n) { + JSONElement prop = props.arrayItem(n); + wxString propName; + if(prop.namedObject("name").isString()) { + propName = prop.namedObject("name").toString(); + } else if(prop.namedObject("name").isNumber()) { + propName << "[" << prop.namedObject("name").toInt() << "]"; + } + + int propId = prop.namedObject("ref").toInt(); + h.properties.insert(std::make_pair(propId, propName)); + } + } + handles.insert(std::make_pair(handleId, h)); + return h; +} diff -Nru codelite-8.0.1+dfsg2/WebTools/NodeJSOuptutParser.h codelite-9.0+dfsg/WebTools/NodeJSOuptutParser.h --- codelite-8.0.1+dfsg2/WebTools/NodeJSOuptutParser.h 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/WebTools/NodeJSOuptutParser.h 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,52 @@ +#ifndef NODEJSOUPTUTPARSER_H +#define NODEJSOUPTUTPARSER_H + +#include +#include +#include "json_node.h" +#include +#include + +struct PendingLookupDV { + wxDataViewItem parent; + int refID; + wxString name; +}; + +struct PendingLookupT { + wxTreeItemId parent; + int refID; + wxString name; +}; + +struct NodeJSHandle { + int handleID; + wxString name; + wxString value; + wxString type; + std::map properties; // ref:name + NodeJSHandle() + : handleID(wxNOT_FOUND) + { + } + + bool IsOk() const { return handleID != wxNOT_FOUND; } + bool IsString() const { return type.Lower() == "string"; } + bool IsArray() const { return type.Lower() == "Array"; } +}; + +class NodeJSOuptutParser +{ +public: + NodeJSOuptutParser(); + virtual ~NodeJSOuptutParser(); + + /** + * @brief parse node js debugger "ref" object and return a handle + * @param ref JSON object as returned by NodeJS debugger + * @param handles [output] add the handle to the map + */ + NodeJSHandle ParseRef(const JSONElement& ref, std::map& handles); +}; + +#endif // NODEJSOUPTUTPARSER_H Binary files /tmp/0wlVVhsoFK/codelite-8.0.1+dfsg2/WebTools/nodejs.png and /tmp/qKeBoHmecl/codelite-9.0+dfsg/WebTools/nodejs.png differ diff -Nru codelite-8.0.1+dfsg2/WebTools/NodeJSSelectFrameHandler.cpp codelite-9.0+dfsg/WebTools/NodeJSSelectFrameHandler.cpp --- codelite-8.0.1+dfsg2/WebTools/NodeJSSelectFrameHandler.cpp 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/WebTools/NodeJSSelectFrameHandler.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,15 @@ +#include "NodeJSSelectFrameHandler.h" +#include "NodeJSEvents.h" +#include "event_notifier.h" +#include "cl_command_event.h" + +NodeJSSelectFrameHandler::NodeJSSelectFrameHandler() {} + +NodeJSSelectFrameHandler::~NodeJSSelectFrameHandler() {} + +void NodeJSSelectFrameHandler::Process(NodeJSDebugger* debugger, const wxString& output) +{ + clDebugEvent event(wxEVT_NODEJS_DEBUGGER_SELECT_FRAME); + event.SetString(output); + EventNotifier::Get()->AddPendingEvent(event); +} diff -Nru codelite-8.0.1+dfsg2/WebTools/NodeJSSelectFrameHandler.h codelite-9.0+dfsg/WebTools/NodeJSSelectFrameHandler.h --- codelite-8.0.1+dfsg2/WebTools/NodeJSSelectFrameHandler.h 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/WebTools/NodeJSSelectFrameHandler.h 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,16 @@ +#ifndef NODEJSSELECTFRAMEHANDLER_H +#define NODEJSSELECTFRAMEHANDLER_H + +#include "NodeJSHandlerBase.h" // Base class: NodeJSHandlerBase + +class NodeJSSelectFrameHandler : public NodeJSHandlerBase +{ +public: + NodeJSSelectFrameHandler(); + virtual ~NodeJSSelectFrameHandler(); + +public: + virtual void Process(NodeJSDebugger* debugger, const wxString& output); +}; + +#endif // NODEJSSELECTFRAMEHANDLER_H diff -Nru codelite-8.0.1+dfsg2/WebTools/NodeJSSetBreakpointHandler.cpp codelite-9.0+dfsg/WebTools/NodeJSSetBreakpointHandler.cpp --- codelite-8.0.1+dfsg2/WebTools/NodeJSSetBreakpointHandler.cpp 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/WebTools/NodeJSSetBreakpointHandler.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,32 @@ +#include "NodeJSSetBreakpointHandler.h" +#include "NodeJSDebugger.h" +#include "json_node.h" +#include "file_logger.h" +#include "cl_command_event.h" +#include "NodeJSEvents.h" +#include "event_notifier.h" + +NodeJSSetBreakpointHandler::NodeJSSetBreakpointHandler(const NodeJSBreakpoint& bp) + : m_breakpoint(bp) +{ +} + +NodeJSSetBreakpointHandler::~NodeJSSetBreakpointHandler() {} +void NodeJSSetBreakpointHandler::Process(NodeJSDebugger* debugger, const wxString& output) +{ + JSONRoot root(output); + JSONElement json = root.toElement(); + int bpId = json.namedObject("body").namedObject("breakpoint").toInt(); + bool success = json.namedObject("success").toBool(); + if(success) { + NodeJSBreakpoint& bp = + debugger->GetBreakpointsMgr()->GetBreakpoint(m_breakpoint.GetFilename(), m_breakpoint.GetLine()); + if(bp.IsOk()) { + bp.SetNodeBpID(bpId); + CL_DEBUG("CodeLite: Found breakpoint ID: %d", bpId); + + clDebugEvent event(wxEVT_NODEJS_DEBUGGER_UPDATE_BREAKPOINTS_VIEW); + EventNotifier::Get()->AddPendingEvent(event); + } + } +} diff -Nru codelite-8.0.1+dfsg2/WebTools/NodeJSSetBreakpointHandler.h codelite-9.0+dfsg/WebTools/NodeJSSetBreakpointHandler.h --- codelite-8.0.1+dfsg2/WebTools/NodeJSSetBreakpointHandler.h 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/WebTools/NodeJSSetBreakpointHandler.h 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,18 @@ +#ifndef NODEJSSETBREAKPOINTHANDLER_H +#define NODEJSSETBREAKPOINTHANDLER_H + +#include "NodeJSHandlerBase.h" +#include "NodeJSDebuggerBreakpoint.h" + +class NodeJSDebugger; +class NodeJSSetBreakpointHandler : public NodeJSHandlerBase +{ + NodeJSBreakpoint m_breakpoint; + +public: + virtual void Process(NodeJSDebugger* debugger, const wxString& output); + NodeJSSetBreakpointHandler(const NodeJSBreakpoint& bp); + virtual ~NodeJSSetBreakpointHandler(); +}; + +#endif // NODEJSSETBREAKPOINTHANDLER_H diff -Nru codelite-8.0.1+dfsg2/WebTools/NodeJSSocket.cpp codelite-9.0+dfsg/WebTools/NodeJSSocket.cpp --- codelite-8.0.1+dfsg2/WebTools/NodeJSSocket.cpp 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/WebTools/NodeJSSocket.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,214 @@ +#include "NodeJSSocket.h" +#include "NodeJSDebugger.h" +#include "file_logger.h" +#include "NodeJSHandlerBase.h" +#include + +NodeJSSocket::NodeJSSocket(NodeJSDebugger* debugger) + : m_socket(this) + , m_connected(false) + , m_sequence(0) + , m_debugger(debugger) + , m_firstTimeConnected(true) +{ + Bind(wxEVT_ASYNC_SOCKET_CONNECTED, &NodeJSSocket::OnSocketConnected, this); + Bind(wxEVT_ASYNC_SOCKET_ERROR, &NodeJSSocket::OnSocketError, this); + Bind(wxEVT_ASYNC_SOCKET_CONNECTION_LOST, &NodeJSSocket::OnSocketConnectionLost, this); + Bind(wxEVT_ASYNC_SOCKET_INPUT, &NodeJSSocket::OnSocketInput, this); + Bind(wxEVT_ASYNC_SOCKET_CONNECT_ERROR, &NodeJSSocket::OnSocketConnectError, this); + + // set of commands that we don't ask for backtrace + // from Node.js after their execution + m_noBacktraceCommands.insert("backtrace"); + m_noBacktraceCommands.insert("setbreakpoint"); + m_noBacktraceCommands.insert("frame"); + m_noBacktraceCommands.insert("source"); + m_noBacktraceCommands.insert("evaluate"); + m_noBacktraceCommands.insert("lookup"); +} + +NodeJSSocket::~NodeJSSocket() { Destroy(); } + +void NodeJSSocket::OnSocketConnected(clCommandEvent& event) +{ + CL_DEBUG("CodeLite >>>> Connection established with Node.js"); + // socket is now connected + m_debugger->CallAfter(&NodeJSDebugger::ConnectionEstablished); + m_connected = true; +} + +void NodeJSSocket::OnSocketError(clCommandEvent& event) +{ + m_errorString = event.GetString(); + CL_DEBUG("Socket error: %s", m_errorString); + Destroy(); + m_debugger->CallAfter(&NodeJSDebugger::ConnectionLost, m_errorString); +} + +void NodeJSSocket::OnSocketConnectionLost(clCommandEvent& event) +{ + CL_DEBUG("CodeLite >>>> Lost connection to Node.js"); + Destroy(); + m_debugger->CallAfter(&NodeJSDebugger::ConnectionLost, m_errorString); +} + +void NodeJSSocket::OnSocketInput(clCommandEvent& event) +{ + CL_DEBUG("CodeLite >>>> Got something on the socket..."); + m_inBuffer << event.GetString(); + CL_DEBUG("Node.js <<<< %s", m_inBuffer); + ProcessInputBuffer(); +} + +void NodeJSSocket::OnSocketConnectError(clCommandEvent& event) +{ + CL_DEBUG("CodeLite >>>> connect error"); + m_errorString = event.GetString(); + m_debugger->CallAfter(&NodeJSDebugger::ConnectError, m_errorString); + Destroy(); +} + +void NodeJSSocket::Destroy() +{ + Unbind(wxEVT_ASYNC_SOCKET_CONNECTED, &NodeJSSocket::OnSocketConnected, this); + Unbind(wxEVT_ASYNC_SOCKET_ERROR, &NodeJSSocket::OnSocketError, this); + Unbind(wxEVT_ASYNC_SOCKET_CONNECTION_LOST, &NodeJSSocket::OnSocketConnectionLost, this); + Unbind(wxEVT_ASYNC_SOCKET_INPUT, &NodeJSSocket::OnSocketInput, this); + Unbind(wxEVT_ASYNC_SOCKET_CONNECT_ERROR, &NodeJSSocket::OnSocketInput, this); + + m_socket.Disconnect(); + m_firstTimeConnected = true; + m_connected = false; + CL_DEBUG("CodeLite >>>> Cleaning up socket with Node.js"); +} + +void NodeJSSocket::WriteReply(const wxString& reply) +{ + if(!IsConnected()) return; + wxString content; + content << "Content-Length:" << reply.length() << "\r\n\r\n"; + content << reply; + m_socket.Send(content); +} + +void NodeJSSocket::ProcessInputBuffer() +{ + if(m_firstTimeConnected) { + m_firstTimeConnected = false; + // Apply breakpoints + m_debugger->SetBreakpoints(); + // When an uncaught exception is thrown, break + m_debugger->BreakOnException(); + m_inBuffer.Clear(); + // Let codelite know that we have control + m_debugger->GotControl(true); + } else { + + wxString buffer = GetResponse(); + while(!buffer.IsEmpty()) { + JSONRoot root(buffer); + JSONElement json = root.toElement(); + int reqSeq = json.namedObject("request_seq").toInt(); + if(reqSeq != wxNOT_FOUND) { + std::map::iterator iter = m_handlers.find((size_t)reqSeq); + if(iter != m_handlers.end()) { + NodeJSHandlerBase::Ptr_t handler = iter->second; + handler->Process(m_debugger, buffer); + m_handlers.erase(iter); + } + + if(json.hasNamedObject("running") && !json.namedObject("running").toBool()) { + wxString responseCommand = json.namedObject("command").toString(); + m_debugger->GotControl((m_noBacktraceCommands.count(responseCommand) == 0)); + } else { + m_debugger->SetCanInteract(false); + } + } else { + + // Notify the debugger that we got control + if((json.namedObject("type").toString() == "event")) { + if(json.namedObject("event").toString() == "break") { + // breakpoint hit, notify we got control + request for backtrace + m_debugger->GotControl(true); + } else if(json.namedObject("event").toString() == "exception") { + // the vm execution stopped due to an exception + m_debugger->ExceptionThrown(); + } + } else { + m_debugger->SetCanInteract(false); + } + } + // Check to see if we got more reponses in the in-buffer + buffer = GetResponse(); + } + } +} + +void NodeJSSocket::Connect(const wxString& ip, int port) { m_socket.Connect(ip, port, ""); } + +void NodeJSSocket::WriteRequest(JSONElement& request, NodeJSHandlerBase::Ptr_t handler) +{ + if(!IsConnected()) return; + size_t seq = NextSequence(); + request.addProperty("seq", seq); + + wxString content, str; + str = request.format(); + content << "Content-Length:" << str.length() << "\r\n\r\n"; + content << str; + + CL_DEBUG("CodeLite >>>> %s", content); + m_socket.Send(content); + + // Keep the handler + if(handler) { + m_handlers.insert(std::make_pair(seq, handler)); + } +} + +wxString NodeJSSocket::GetResponse() +{ + wxRegEx re("Content-Length:[ ]*([0-9]+)", wxRE_ADVANCED); + if(re.Matches(m_inBuffer)) { + size_t start, wholeline_len; + if(!re.GetMatch(&start, &wholeline_len, 0)) { + return ""; + } + + // Remove anything before the 'start' position + m_inBuffer = m_inBuffer.Mid(start); + + // At this point, start = 0 + start = 0; + wxString wholine = m_inBuffer.Mid(start, wholeline_len); + + // wholine should now contains a string like: + // Content-Length: 1234 + // Extract the message length + wxRegEx reContentLen("[0-9]+"); + if(!reContentLen.Matches(wholine)) return ""; // Can't happen... + long messageLength; + if(!reContentLen.GetMatch(wholine).ToCLong(&messageLength)) { + // just to be safe + return ""; + } + + // Remove the "Content-Length: NN\r\n\r\n" + size_t headerLen = wholeline_len + 4; + + // Did we read enough from the socket to process? + if(m_inBuffer.length() >= (messageLength + headerLen)) { + m_inBuffer = m_inBuffer.Mid(headerLen); + wxString response = m_inBuffer.Mid(0, messageLength); + // Remove this message from the input buffer + m_inBuffer = m_inBuffer.Mid(messageLength); + return response; + + } else { + return ""; + } + } + return ""; +} + +void NodeJSSocket::Shutdown() { m_socket.Disconnect(); } diff -Nru codelite-8.0.1+dfsg2/WebTools/NodeJSSocket.h codelite-9.0+dfsg/WebTools/NodeJSSocket.h --- codelite-8.0.1+dfsg2/WebTools/NodeJSSocket.h 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/WebTools/NodeJSSocket.h 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,66 @@ +#ifndef NODEJSSOCKET_H +#define NODEJSSOCKET_H + +#include +#include "smart_ptr.h" +#include "NodeJSHandlerBase.h" +#include "json_node.h" +#include +#include "SocketAPI/clSocketClientAsync.h" +#include "macros.h" + +class NodeJSDebugger; +class NodeJSSocket : public wxEvtHandler +{ + clSocketClientAsync m_socket; + bool m_connected; + wxString m_inBuffer; + size_t m_sequence; + NodeJSDebugger* m_debugger; + std::map m_handlers; + bool m_firstTimeConnected; + wxString m_errorString; + wxStringSet_t m_noBacktraceCommands; + +public: + typedef SmartPtr Ptr_t; + +protected: + void Destroy(); + void OnSocketConnected(clCommandEvent& event); + void OnSocketError(clCommandEvent& event); + void OnSocketConnectionLost(clCommandEvent& event); + void OnSocketInput(clCommandEvent& event); + void OnSocketConnectError(clCommandEvent& event); + + void WriteReply(const wxString& reply); + void ProcessInputBuffer(); + wxString GetResponse(); + +public: + void WriteRequest(JSONElement& request, NodeJSHandlerBase::Ptr_t handler); + + NodeJSSocket(NodeJSDebugger* debugger); + virtual ~NodeJSSocket(); + + /** + * @brief do we have an active to the debuger? + */ + bool IsConnected() const { return m_connected; } + + /** + * @brief connect to nodejs debugger on a given IP and port + */ + void Connect(const wxString& ip, int port); + + /** + * @brief disconnect the debugger + */ + void Shutdown(); + + const wxString& GetErrorString() const { return m_errorString; } + + size_t NextSequence() { return ++m_sequence; } +}; + +#endif // NODEJSSOCKET_H diff -Nru codelite-8.0.1+dfsg2/WebTools/NodeJSWorkspaceConfiguration.cpp codelite-9.0+dfsg/WebTools/NodeJSWorkspaceConfiguration.cpp --- codelite-8.0.1+dfsg2/WebTools/NodeJSWorkspaceConfiguration.cpp 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/WebTools/NodeJSWorkspaceConfiguration.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,54 @@ +#include "NodeJSWorkspaceConfiguration.h" + +NodeJSWorkspaceConfiguration::NodeJSWorkspaceConfiguration() + : clConfigItem("NodeJS") + , m_isOk(false) + , m_showHiddenFiles(false) +{ +} + +NodeJSWorkspaceConfiguration::~NodeJSWorkspaceConfiguration() {} + +void NodeJSWorkspaceConfiguration::FromJSON(const JSONElement& json) +{ + m_folders = json.namedObject("folders").toArrayString(); + m_showHiddenFiles = json.namedObject("m_showHiddenFiles").toBool(m_showHiddenFiles); + + m_isOk = false; + if(json.hasNamedObject("metadata")) { + JSONElement e = json.namedObject("metadata"); + if(e.hasNamedObject("type")) { + m_isOk = (e.namedObject("type").toString() == "NodeJS"); + } + } +} + +JSONElement NodeJSWorkspaceConfiguration::ToJSON() const +{ + // add the metadata + JSONElement json = JSONElement::createObject(GetName()); + JSONElement metadata = JSONElement::createObject("metadata"); + json.append(metadata); + metadata.addProperty("version", "1.0"); + metadata.addProperty("ide", "CodeLite"); + metadata.addProperty("type", "NodeJS"); + + // now add some real properties + json.addProperty("folders", m_folders); + json.addProperty("m_showHiddenFiles", m_showHiddenFiles); + return json; +} + +NodeJSWorkspaceConfiguration& NodeJSWorkspaceConfiguration::Load(const wxFileName& filename) +{ + clConfig conf(filename.GetFullPath()); + conf.ReadItem(this); + return *this; +} + +NodeJSWorkspaceConfiguration& NodeJSWorkspaceConfiguration::Save(const wxFileName& filename) +{ + clConfig conf(filename.GetFullPath()); + conf.WriteItem(this); + return *this; +} diff -Nru codelite-8.0.1+dfsg2/WebTools/NodeJSWorkspaceConfiguration.h codelite-9.0+dfsg/WebTools/NodeJSWorkspaceConfiguration.h --- codelite-8.0.1+dfsg2/WebTools/NodeJSWorkspaceConfiguration.h 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/WebTools/NodeJSWorkspaceConfiguration.h 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,43 @@ +#ifndef NODEJSWORKSPACECONFIGURATION_H +#define NODEJSWORKSPACECONFIGURATION_H + +#include "cl_config.h" +#include + +class NodeJSWorkspaceConfiguration : public clConfigItem +{ + wxArrayString m_folders; + bool m_isOk; + bool m_showHiddenFiles; + +public: + virtual void FromJSON(const JSONElement& json); + virtual JSONElement ToJSON() const; + + NodeJSWorkspaceConfiguration(); + virtual ~NodeJSWorkspaceConfiguration(); + + NodeJSWorkspaceConfiguration& Load(const wxFileName& filename); + NodeJSWorkspaceConfiguration& Save(const wxFileName& filename); + NodeJSWorkspaceConfiguration& SetFolders(const wxArrayString& folders) + { + this->m_folders = folders; + return *this; + } + + NodeJSWorkspaceConfiguration& SetIsOk(bool isOk) + { + this->m_isOk = isOk; + return *this; + } + NodeJSWorkspaceConfiguration& SetShowHiddenFiles(bool showHiddenFiles) + { + this->m_showHiddenFiles = showHiddenFiles; + return *this; + } + bool IsShowHiddenFiles() const { return m_showHiddenFiles; } + const wxArrayString& GetFolders() const { return m_folders; } + bool IsOk() const { return m_isOk; } +}; + +#endif // NODEJSWORKSPACECONFIGURATION_H diff -Nru codelite-8.0.1+dfsg2/WebTools/NodeJSWorkspaceUserConfiguration.cpp codelite-9.0+dfsg/WebTools/NodeJSWorkspaceUserConfiguration.cpp --- codelite-8.0.1+dfsg2/WebTools/NodeJSWorkspaceUserConfiguration.cpp 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/WebTools/NodeJSWorkspaceUserConfiguration.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,65 @@ +#include "NodeJSWorkspaceUserConfiguration.h" +#include +#include + +NodeJSWorkspaceUser::NodeJSWorkspaceUser(const wxString& workspacePath) + : m_workspacePath(workspacePath) + , m_debuggerPort(5858) + , m_debuggerHost("127.0.0.1") +{ +} + +NodeJSWorkspaceUser::~NodeJSWorkspaceUser() {} + +wxFileName NodeJSWorkspaceUser::GetFileName() const +{ + wxFileName workspaceFile(m_workspacePath); + wxFileName fn(workspaceFile.GetPath(), workspaceFile.GetFullName() + ".nodejs." + clGetUserName()); + fn.AppendDir(".codelite"); + if(!fn.FileExists()) { + fn.Mkdir(wxS_DIR_DEFAULT, wxPATH_MKDIR_FULL); + } + return fn; +} + +NodeJSWorkspaceUser& NodeJSWorkspaceUser::Load() +{ + wxFileName fn = GetFileName(); + JSONRoot root(fn); + JSONElement element = root.toElement(); + + m_debuggerPort = element.namedObject("m_debuggerPort").toInt(m_debuggerPort); + m_debuggerHost = element.namedObject("m_debuggerHost").toString(m_debuggerHost); + m_scriptToExecute = element.namedObject("m_scriptToExecute").toString(m_scriptToExecute); + m_commandLineArgs = element.namedObject("m_commandLineArgs").toArrayString(); + + m_breakpoints.clear(); + JSONElement bpArr = element.namedObject("m_breakpoints"); + int bpcount = bpArr.arraySize(); + for(int i = 0; i < bpcount; ++i) { + NodeJSBreakpoint bp; + bp.FromJSON(bpArr.arrayItem(i)); + m_breakpoints.push_back(bp); + } + return *this; +} + +NodeJSWorkspaceUser& NodeJSWorkspaceUser::Save() +{ + // Serialize the breakpoints + JSONRoot root(cJSON_Object); + JSONElement json = root.toElement(); + json.addProperty("m_debuggerPort", m_debuggerPort); + json.addProperty("m_debuggerHost", m_debuggerHost); + json.addProperty("m_scriptToExecute", m_scriptToExecute); + json.addProperty("m_commandLineArgs", m_commandLineArgs); + JSONElement bpArr = JSONElement::createArray("m_breakpoints"); + json.append(bpArr); + + NodeJSBreakpoint::List_t::const_iterator iter = m_breakpoints.begin(); + for(; iter != m_breakpoints.end(); ++iter) { + bpArr.arrayAppend(iter->ToJSON()); + } + root.save(GetFileName()); + return *this; +} diff -Nru codelite-8.0.1+dfsg2/WebTools/NodeJSWorkspaceUserConfiguration.h codelite-9.0+dfsg/WebTools/NodeJSWorkspaceUserConfiguration.h --- codelite-8.0.1+dfsg2/WebTools/NodeJSWorkspaceUserConfiguration.h 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/WebTools/NodeJSWorkspaceUserConfiguration.h 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,64 @@ +#ifndef NODEJSWORKSPACEUSERCONFIGURATION_H +#define NODEJSWORKSPACEUSERCONFIGURATION_H + +#include "NodeJSDebuggerBreakpoint.h" +#include +#include + +class NodeJSWorkspaceUser +{ + NodeJSBreakpoint::List_t m_breakpoints; + wxString m_workspacePath; + wxString m_scriptToExecute; + int m_debuggerPort; + wxString m_debuggerHost; + wxArrayString m_commandLineArgs; + +protected: + wxFileName GetFileName() const; + +public: + NodeJSWorkspaceUser(const wxString& workspacePath); + virtual ~NodeJSWorkspaceUser(); + + NodeJSWorkspaceUser& Load(); + NodeJSWorkspaceUser& Save(); + NodeJSWorkspaceUser& SetBreakpoints(const NodeJSBreakpoint::List_t& breakpoints) + { + this->m_breakpoints = breakpoints; + return *this; + } + const NodeJSBreakpoint::List_t& GetBreakpoints() const { return m_breakpoints; } + NodeJSWorkspaceUser& SetDebuggerHost(const wxString& debuggerHost) + { + this->m_debuggerHost = debuggerHost; + return *this; + } + NodeJSWorkspaceUser& SetDebuggerPort(int debuggerPort) + { + this->m_debuggerPort = debuggerPort; + return *this; + } + NodeJSWorkspaceUser& SetScriptToExecute(const wxString& scriptToExecute) + { + this->m_scriptToExecute = scriptToExecute; + return *this; + } + NodeJSWorkspaceUser& SetWorkspacePath(const wxString& workspacePath) + { + this->m_workspacePath = workspacePath; + return *this; + } + NodeJSWorkspaceUser& SetCommandLineArgs(const wxArrayString& commandLineArgs) + { + this->m_commandLineArgs = commandLineArgs; + return *this; + } + const wxArrayString& GetCommandLineArgs() const { return m_commandLineArgs; } + const wxString& GetDebuggerHost() const { return m_debuggerHost; } + int GetDebuggerPort() const { return m_debuggerPort; } + const wxString& GetScriptToExecute() const { return m_scriptToExecute; } + const wxString& GetWorkspacePath() const { return m_workspacePath; } +}; + +#endif // NODEJSWORKSPACEUSERCONFIGURATION_H diff -Nru codelite-8.0.1+dfsg2/WebTools/NodeJSWorkspaceView.cpp codelite-9.0+dfsg/WebTools/NodeJSWorkspaceView.cpp --- codelite-8.0.1+dfsg2/WebTools/NodeJSWorkspaceView.cpp 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/WebTools/NodeJSWorkspaceView.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,152 @@ +#include "NodeJSWorkspaceView.h" +#include "NoteJSWorkspace.h" +#include "event_notifier.h" +#include "codelite_events.h" +#include +#include +#include +#include "globals.h" +#include "clWorkspaceView.h" +#include "imanager.h" +#include "NodeJSWorkspaceConfiguration.h" +#include "ieditor.h" +#include + +NodeJSWorkspaceView::NodeJSWorkspaceView(wxWindow* parent, const wxString& viewName) + : clTreeCtrlPanel(parent) +{ + SetNewFileTemplate("Untitled.js", wxStrlen("Untitled")); + SetViewName(viewName); + EventNotifier::Get()->Bind(wxEVT_CONTEXT_MENU_FOLDER, &NodeJSWorkspaceView::OnContextMenu, this); + EventNotifier::Get()->Bind(wxEVT_CONTEXT_MENU_FILE, &NodeJSWorkspaceView::OnContextMenuFile, this); +} + +NodeJSWorkspaceView::~NodeJSWorkspaceView() +{ + EventNotifier::Get()->Bind(wxEVT_CONTEXT_MENU_FOLDER, &NodeJSWorkspaceView::OnContextMenu, this); + EventNotifier::Get()->Bind(wxEVT_CONTEXT_MENU_FILE, &NodeJSWorkspaceView::OnContextMenuFile, this); +} + +void NodeJSWorkspaceView::OnContextMenu(clContextMenuEvent& event) +{ + event.Skip(); + if(event.GetEventObject() == this) { + wxMenu* menu = event.GetMenu(); + + // Locate the "Close" menu entry + int pos = wxNOT_FOUND; + wxMenuItem* closeItem = NULL; + for(size_t i = 0; i < menu->GetMenuItemCount(); ++i) { + wxMenuItem* mi = menu->FindItemByPosition(i); + if(mi && mi->GetId() == XRCID("tree_ctrl_close_folder")) { + pos = i; + closeItem = mi; + break; + } + } + + if((pos != wxNOT_FOUND) && closeItem) { + wxMenuItem* showHiddenItem = + menu->Insert(pos, XRCID("nodejs_show_hidden_files"), _("Show hidden files"), "", wxITEM_CHECK); + NodeJSWorkspaceConfiguration conf; + showHiddenItem->Check(conf.Load(NodeJSWorkspace::Get()->GetFilename()).IsShowHiddenFiles()); + menu->Bind(wxEVT_MENU, &NodeJSWorkspaceView::OnShowHiddenFiles, this, XRCID("nodejs_show_hidden_files")); + + menu->InsertSeparator(pos); + menu->Insert(pos, XRCID("nodejs_close_workspace"), _("Close Workspace")); + menu->Bind(wxEVT_MENU, &NodeJSWorkspaceView::OnCloseWorkspace, this, XRCID("nodejs_close_workspace")); + + // Remove the 'close' menu item + menu->Remove(closeItem); + } + } +} + +void NodeJSWorkspaceView::OnFolderDropped(clCommandEvent& event) +{ + // Add only non existent folders to the workspace + const wxArrayString& folders = event.GetStrings(); + if(folders.IsEmpty()) return; + + if(!NodeJSWorkspace::Get()->IsOpen()) { + wxFileName workspaceFile(folders.Item(0), ""); + if(!workspaceFile.GetDirCount()) { + ::wxMessageBox( + _("Can not create workspace in the root folder"), _("New Workspace"), wxICON_ERROR | wxOK | wxCENTER); + return; + } + workspaceFile.SetName(workspaceFile.GetDirs().Last()); + workspaceFile.SetExt("workspace"); + // Create will fail if a file with this name already exists + NodeJSWorkspace::Get()->Create(workspaceFile); + // Load the workspace, again, it will fail if this is not a valid + // NodeJS workspace + NodeJSWorkspace::Get()->Open(workspaceFile); + } + + if(NodeJSWorkspace::Get()->IsOpen()) { + wxArrayString& workspaceFolders = NodeJSWorkspace::Get()->GetFolders(); + for(size_t i = 0; i < folders.size(); ++i) { + if(workspaceFolders.Index(folders.Item(i)) == wxNOT_FOUND) { + // New folder, add it to the workspace + workspaceFolders.Add(folders.Item(i)); + AddFolder(folders.Item(i)); + } + } + NodeJSWorkspace::Get()->Save(); + } + ::clGetManager()->GetWorkspaceView()->SelectPage(GetViewName()); +} + +void NodeJSWorkspaceView::RebuildTree() +{ + wxWindowUpdateLocker locker(this); + wxArrayString paths; + wxArrayTreeItemIds items; + GetTopLevelFolders(paths, items); + + Clear(); + + for(size_t i = 0; i < paths.size(); ++i) { + AddFolder(paths.Item(i)); + } + + IEditor* editor = clGetManager()->GetActiveEditor(); + if(editor) { + ExpandToFile(editor->GetFileName()); + } +} + +void NodeJSWorkspaceView::ShowHiddenFiles(bool show) +{ + if(show) { + m_options |= kShowHiddenFiles; + m_options |= kShowHiddenFolders; + } else { + m_options &= ~kShowHiddenFiles; + m_options &= ~kShowHiddenFolders; + } +} + +void NodeJSWorkspaceView::OnShowHiddenFiles(wxCommandEvent& event) +{ + NodeJSWorkspaceConfiguration conf; + const wxFileName& filename = NodeJSWorkspace::Get()->GetFilename(); + conf.Load(filename).SetShowHiddenFiles(event.IsChecked()).Save(filename); + ShowHiddenFiles(event.IsChecked()); + RebuildTree(); +} + +void NodeJSWorkspaceView::OnCloseWorkspace(wxCommandEvent& event) +{ + // Simulate the menu event "Close Workspace" + wxUnusedVar(event); + wxCommandEvent eventCloseWorkspace(wxEVT_MENU, XRCID("close_workspace")); + eventCloseWorkspace.SetEventObject(EventNotifier::Get()->TopFrame()); + EventNotifier::Get()->TopFrame()->GetEventHandler()->AddPendingEvent(eventCloseWorkspace); +} + +void NodeJSWorkspaceView::OnContextMenuFile(clContextMenuEvent& event) +{ + event.Skip(); +} diff -Nru codelite-8.0.1+dfsg2/WebTools/NodeJSWorkspaceView.h codelite-9.0+dfsg/WebTools/NodeJSWorkspaceView.h --- codelite-8.0.1+dfsg2/WebTools/NodeJSWorkspaceView.h 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/WebTools/NodeJSWorkspaceView.h 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,24 @@ +#ifndef NODEJSWORKSPACEVIEW_H +#define NODEJSWORKSPACEVIEW_H + +#include "clTreeCtrlPanel.h" +#include "cl_command_event.h" + +class NodeJSWorkspaceView : public clTreeCtrlPanel +{ +protected: + void OnContextMenu(clContextMenuEvent& event); + void OnContextMenuFile(clContextMenuEvent& event); + void OnFolderDropped(clCommandEvent& event); + void OnShowHiddenFiles(wxCommandEvent& event); + void OnCloseWorkspace(wxCommandEvent& event); + +public: + NodeJSWorkspaceView(wxWindow* parent, const wxString& viewName); + virtual ~NodeJSWorkspaceView(); + + void RebuildTree(); + void ShowHiddenFiles(bool show); +}; + +#endif // NODEJSWORKSPACEVIEW_H diff -Nru codelite-8.0.1+dfsg2/WebTools/NoteJSWorkspace.cpp codelite-9.0+dfsg/WebTools/NoteJSWorkspace.cpp --- codelite-8.0.1+dfsg2/WebTools/NoteJSWorkspace.cpp 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/WebTools/NoteJSWorkspace.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,361 @@ +#include "NoteJSWorkspace.h" +#include "NodeJSWorkspaceConfiguration.h" +#include "event_notifier.h" +#include "codelite_events.h" +#include "NodeJSWorkspaceView.h" +#include "globals.h" +#include "imanager.h" +#include "clWorkspaceView.h" +#include "event_notifier.h" +#include "codelite_events.h" +#include +#include "ctags_manager.h" +#include "clWorkspaceManager.h" +#include +#include "NodeJSDebuggerDlg.h" +#include "asyncprocess.h" +#include "processreaderthread.h" +#include "NodeJSNewWorkspaceDlg.h" +#include + +NodeJSWorkspace* NodeJSWorkspace::ms_workspace = NULL; + +NodeJSWorkspace::NodeJSWorkspace(bool dummy) +{ + m_dummy = true; + SetWorkspaceType("Node.js"); +} + +NodeJSWorkspace::NodeJSWorkspace() + : m_clangOldFlag(false) + , m_showWelcomePage(false) +{ + SetWorkspaceType("Node.js"); + m_debugger.Reset(new NodeJSDebugger()); + + m_view = new NodeJSWorkspaceView(clGetManager()->GetWorkspaceView()->GetBook(), GetWorkspaceType()); + clGetManager()->GetWorkspaceView()->AddPage(m_view, GetWorkspaceType()); + + EventNotifier::Get()->Bind(wxEVT_CMD_CLOSE_WORKSPACE, &NodeJSWorkspace::OnCloseWorkspace, this); + EventNotifier::Get()->Bind(wxEVT_CMD_CREATE_NEW_WORKSPACE, &NodeJSWorkspace::OnNewWorkspace, this); + EventNotifier::Get()->Bind(wxEVT_CMD_OPEN_WORKSPACE, &NodeJSWorkspace::OnOpenWorkspace, this); + EventNotifier::Get()->Bind(wxEVT_ALL_EDITORS_CLOSED, &NodeJSWorkspace::OnAllEditorsClosed, this); + EventNotifier::Get()->Bind(wxEVT_SAVE_SESSION_NEEDED, &NodeJSWorkspace::OnSaveSession, this); + EventNotifier::Get()->Bind(wxEVT_CMD_EXECUTE_ACTIVE_PROJECT, &NodeJSWorkspace::OnExecute, this); + EventNotifier::Get()->Bind(wxEVT_CMD_STOP_EXECUTED_PROGRAM, &NodeJSWorkspace::OnStopExecute, this); + EventNotifier::Get()->Bind(wxEVT_CMD_IS_PROGRAM_RUNNING, &NodeJSWorkspace::OnIsExecuteInProgress, this); + + m_terminal.Bind(wxEVT_TERMINAL_COMMAND_EXIT, &NodeJSWorkspace::OnProcessTerminated, this); + m_terminal.Bind(wxEVT_TERMINAL_COMMAND_OUTPUT, &NodeJSWorkspace::OnProcessOutput, this); +} + +NodeJSWorkspace::~NodeJSWorkspace() +{ + if(!m_dummy) { + EventNotifier::Get()->Unbind(wxEVT_CMD_CLOSE_WORKSPACE, &NodeJSWorkspace::OnCloseWorkspace, this); + EventNotifier::Get()->Unbind(wxEVT_CMD_CREATE_NEW_WORKSPACE, &NodeJSWorkspace::OnNewWorkspace, this); + EventNotifier::Get()->Unbind(wxEVT_CMD_OPEN_WORKSPACE, &NodeJSWorkspace::OnOpenWorkspace, this); + EventNotifier::Get()->Unbind(wxEVT_ALL_EDITORS_CLOSED, &NodeJSWorkspace::OnAllEditorsClosed, this); + EventNotifier::Get()->Unbind(wxEVT_SAVE_SESSION_NEEDED, &NodeJSWorkspace::OnSaveSession, this); + EventNotifier::Get()->Unbind(wxEVT_CMD_EXECUTE_ACTIVE_PROJECT, &NodeJSWorkspace::OnExecute, this); + EventNotifier::Get()->Unbind(wxEVT_CMD_STOP_EXECUTED_PROGRAM, &NodeJSWorkspace::OnStopExecute, this); + EventNotifier::Get()->Unbind(wxEVT_CMD_IS_PROGRAM_RUNNING, &NodeJSWorkspace::OnIsExecuteInProgress, this); + m_debugger.Reset(NULL); + m_terminal.Unbind(wxEVT_TERMINAL_COMMAND_EXIT, &NodeJSWorkspace::OnProcessTerminated, this); + m_terminal.Unbind(wxEVT_TERMINAL_COMMAND_OUTPUT, &NodeJSWorkspace::OnProcessOutput, this); + + m_terminal.Terminate(); + } +} + +bool NodeJSWorkspace::IsBuildSupported() const { return false; } +bool NodeJSWorkspace::IsProjectSupported() const { return false; } + +void NodeJSWorkspace::Free() +{ + if(ms_workspace) { + delete ms_workspace; + } + ms_workspace = NULL; +} + +NodeJSWorkspace* NodeJSWorkspace::Get() +{ + if(!ms_workspace) { + ms_workspace = new NodeJSWorkspace(); + } + return ms_workspace; +} + +bool NodeJSWorkspace::IsOpen() const { return m_filename.IsOk() && m_filename.Exists(); } + +bool NodeJSWorkspace::Create(const wxFileName& filename) +{ + if(IsOpen()) return false; + if(filename.Exists()) return false; + DoClear(); + m_filename = filename; + + // By default add the workspace path + m_folders.Add(m_filename.GetPath()); + Save(); + + // We dont load the workspace + DoClear(); + return true; +} + +bool NodeJSWorkspace::Open(const wxFileName& filename) +{ + if(IsOpen()) return false; + m_filename = filename; + return DoOpen(m_filename); +} + +void NodeJSWorkspace::Close() +{ + if(!IsOpen()) return; + + // Store the session + clGetManager()->StoreWorkspaceSession(m_filename); + + Save(); + DoClear(); + + // disable clang for NodeJS + clGetManager()->EnableClangCodeCompletion(m_clangOldFlag); + + // Clear the UI + GetView()->Clear(); + + // Notify workspace closed event + wxCommandEvent event(wxEVT_WORKSPACE_CLOSED); + EventNotifier::Get()->ProcessEvent(event); + + m_debugger.Reset(NULL); + + // notify codelite to close the currently opened workspace + wxCommandEvent eventClose(wxEVT_MENU, wxID_CLOSE_ALL); + eventClose.SetEventObject(EventNotifier::Get()->TopFrame()); + EventNotifier::Get()->TopFrame()->GetEventHandler()->ProcessEvent(eventClose); + m_showWelcomePage = true; +} + +void NodeJSWorkspace::DoClear() +{ + m_filename.Clear(); + m_folders.Clear(); +} + +void NodeJSWorkspace::Save() +{ + NodeJSWorkspaceConfiguration conf; + conf.SetFolders(m_folders); + conf.Save(m_filename); +} + +void NodeJSWorkspace::OnCloseWorkspace(clCommandEvent& e) +{ + e.Skip(); + if(IsOpen()) { + e.Skip(false); + Close(); + } +} + +void NodeJSWorkspace::OnNewWorkspace(clCommandEvent& e) +{ + e.Skip(); + if(e.GetString() == GetWorkspaceType()) { + e.Skip(false); + // Create a new NodeJS workspace + NodeJSNewWorkspaceDlg dlg(NULL); + if(dlg.ShowModal() != wxID_OK) return; + + wxFileName workspaceFile = dlg.GetWorkspaceFilename(); + if(!workspaceFile.GetDirCount()) { + ::wxMessageBox( + _("Can not create workspace in the root folder"), _("New Workspace"), wxICON_ERROR | wxOK | wxCENTER); + return; + } + + // Ensure that the path the workspace exists + workspaceFile.Mkdir(wxS_DIR_DEFAULT, wxPATH_MKDIR_FULL); + + if(!Create(workspaceFile)) { + ::wxMessageBox(_("Failed to create workspace\nWorkspace already exists"), + _("New Workspace"), + wxICON_ERROR | wxOK | wxCENTER); + return; + } + Open(workspaceFile); + } +} + +bool NodeJSWorkspace::DoOpen(const wxFileName& filename) +{ + NodeJSWorkspaceConfiguration conf; + conf.Load(m_filename); + if(!conf.IsOk()) { + DoClear(); + return false; + } + + m_folders = conf.GetFolders(); + GetView()->Clear(); + GetView()->ShowHiddenFiles(conf.IsShowHiddenFiles()); + + const wxArrayString& folders = GetFolders(); + for(size_t i = 0; i < folders.size(); ++i) { + GetView()->AddFolder(folders.Item(i)); + } + + // Notify codelite that NodeJS workspace is opened + clGetManager()->GetWorkspaceView()->SelectPage(GetWorkspaceType()); + clWorkspaceManager::Get().SetWorkspace(this); + + // Keep the old clang state before we disable it + const TagsOptionsData& options = TagsManagerST::Get()->GetCtagsOptions(); + m_clangOldFlag = (options.GetClangOptions() & CC_CLANG_ENABLED); + + clGetManager()->EnableClangCodeCompletion(false); + + // Notify that the a new workspace is loaded + wxCommandEvent event(wxEVT_WORKSPACE_LOADED); + event.SetString(filename.GetFullPath()); + EventNotifier::Get()->AddPendingEvent(event); + + // and finally, request codelite to keep this workspace in the recently opened workspace list + clGetManager()->AddWorkspaceToRecentlyUsedList(m_filename); + + // Load the workspace session (if any) + CallAfter(&NodeJSWorkspace::RestoreSession); + + // Create new debugger for this workspace + m_debugger.Reset(new NodeJSDebugger()); + return true; +} + +void NodeJSWorkspace::OnOpenWorkspace(clCommandEvent& event) +{ + event.Skip(); + wxFileName workspaceFile(event.GetFileName()); + + // Test that this is our workspace + NodeJSWorkspaceConfiguration conf; + conf.Load(workspaceFile); + if(!conf.IsOk()) { + return; + } + // This is a NodeJS workspace, stop event processing by calling + // event.Skip(false) + event.Skip(false); + + // Check if this is a PHP workspace + if(IsOpen()) { + Close(); + } + Open(workspaceFile); +} + +void NodeJSWorkspace::OnAllEditorsClosed(wxCommandEvent& event) +{ + event.Skip(); + if(m_showWelcomePage) { + m_showWelcomePage = false; + // Show the 'Welcome Page' + wxFrame* frame = EventNotifier::Get()->TopFrame(); + wxCommandEvent eventShowWelcomePage(wxEVT_MENU, XRCID("view_welcome_page")); + eventShowWelcomePage.SetEventObject(frame); + frame->GetEventHandler()->AddPendingEvent(eventShowWelcomePage); + } +} + +void NodeJSWorkspace::RestoreSession() +{ + if(IsOpen()) { + clGetManager()->LoadWorkspaceSession(m_filename); + } +} + +void NodeJSWorkspace::OnSaveSession(clCommandEvent& event) +{ + event.Skip(); + if(IsOpen()) { + // Call event.Skip(false) so no other session are kept beside ours + event.Skip(false); + clGetManager()->StoreWorkspaceSession(m_filename); + } +} + +wxString NodeJSWorkspace::GetFilesMask() const +{ + return "*.js;*.html;*.css;*.scss;*.json;*.xml;*.ini;*.md;*.txt;*.text;*.javascript"; +} + +void NodeJSWorkspace::OnExecute(clExecuteEvent& event) +{ + event.Skip(); + if(IsOpen()) { + if(m_terminal.IsRunning()) { + ::wxMessageBox(_("Another instance is already running. Please stop it before executing another one"), + "CodeLite", + wxICON_WARNING | wxCENTER | wxOK); + return; + } + event.Skip(false); + NodeJSDebuggerDlg dlg(EventNotifier::Get()->TopFrame(), NodeJSDebuggerDlg::kExecute); + if(dlg.ShowModal() != wxID_OK) { + return; + } + wxString cmd = dlg.GetCommand(); + m_terminal.ExecuteConsole(cmd, "", true, cmd); + } +} + +void NodeJSWorkspace::OnProcessOutput(clCommandEvent& event) +{ + clGetManager()->AppendOutputTabText(kOutputTab_Output, event.GetString()); +} + +void NodeJSWorkspace::OnProcessTerminated(clCommandEvent& event) +{ + wxUnusedVar(event); + EventNotifier::Get()->TopFrame()->Raise(); +} + +void NodeJSWorkspace::OnIsExecuteInProgress(clExecuteEvent& event) +{ + event.Skip(); + if(IsOpen()) { + event.Skip(false); + event.SetAnswer(m_terminal.IsRunning()); + } +} + +void NodeJSWorkspace::OnStopExecute(clExecuteEvent& event) +{ + event.Skip(); + if(IsOpen()) { + event.Skip(false); + m_terminal.Terminate(); + } +} + +wxString NodeJSWorkspace::GetProjectFromFile(const wxFileName& filename) const +{ + // projects are not supported in NodeJS + return ""; +} +void NodeJSWorkspace::GetProjectFiles(const wxString& projectName, wxArrayString& files) const +{ + wxUnusedVar(files); + wxUnusedVar(projectName); +} + +void NodeJSWorkspace::GetWorkspaceFiles(wxArrayString& files) const +{ + // Return all the files + wxDir::GetAllFiles(GetFilename().GetPath(), &files); +} + diff -Nru codelite-8.0.1+dfsg2/WebTools/NoteJSWorkspace.h codelite-9.0+dfsg/WebTools/NoteJSWorkspace.h --- codelite-8.0.1+dfsg2/WebTools/NoteJSWorkspace.h 1970-01-01 00:00:00.000000000 +0000 +++ codelite-9.0+dfsg/WebTools/NoteJSWorkspace.h 2015-10-11 13:56:07.000000000 +0000 @@ -0,0 +1,123 @@ +#ifndef NOTEJSWORKSPACE_H +#define NOTEJSWORKSPACE_H + +#include "IWorkspace.h" +#include +#include "cl_command_event.h" +#include "NodeJSDebugger.h" +#include "TerminalEmulator.h" + +class NodeJSWorkspaceView; +class NodeJSWorkspace : public IWorkspace +{ +protected: + wxFileName m_filename; + wxArrayString m_folders; + NodeJSWorkspaceView* m_view; + bool m_clangOldFlag; + bool m_dummy; + bool m_showWelcomePage; + NodeJSDebugger::Ptr_t m_debugger; + TerminalEmulator m_terminal; + static NodeJSWorkspace* ms_workspace; + +protected: + void DoClear(); + bool DoOpen(const wxFileName& filename); + + //-------------------------------------------------- + // Event handlers + //-------------------------------------------------- + /** + * @brief CodeLite requests to close the workspace + */ + void OnCloseWorkspace(clCommandEvent& e); + /** + * @brief create new workspace (originated from the menu bar) + */ + void OnNewWorkspace(clCommandEvent& e); + + /** + * @brief open a workspace + */ + void OnOpenWorkspace(clCommandEvent& event); + + /** + * @brief all editors have been closed + */ + void OnAllEditorsClosed(wxCommandEvent& event); + + /** + * @brief handle save session command from CodeLite + */ + void OnSaveSession(clCommandEvent& event); + + /** + * @brief execute the current script + */ + void OnExecute(clExecuteEvent& event); + + void OnStopExecute(clExecuteEvent& event); + void OnIsExecuteInProgress(clExecuteEvent& event); + void OnProcessOutput(clCommandEvent& event); + void OnProcessTerminated(clCommandEvent& event); + + /** + * @brief restore the workspace session + */ + void RestoreSession(); + + NodeJSWorkspace(); // default ctor is private + +public: + virtual void GetProjectFiles(const wxString& projectName, wxArrayString& files) const; + virtual void GetWorkspaceFiles(wxArrayString& files) const; + virtual wxString GetProjectFromFile(const wxFileName& filename) const; + virtual wxString GetFilesMask() const; + NodeJSWorkspace(bool dummy); + virtual ~NodeJSWorkspace(); + + static NodeJSWorkspace* Get(); + static void Free(); + +public: + virtual bool IsBuildSupported() const; + virtual bool IsProjectSupported() const; + + NodeJSWorkspaceView* GetView() { return m_view; } + NodeJSDebugger::Ptr_t GetDebugger() { return m_debugger; } + /** + * @brief is this workspace opened? + */ + bool IsOpen() const; + + /** + * @brief create nodejs at the given path + */ + bool Create(const wxFileName& filename); + + /** + * @brief open nodejs workspace and load its view + */ + bool Open(const wxFileName& filename); + + /** + * @brief close the current workspace + * this function fires the wxEVT_WORKSPACE_CLOSED event + */ + void Close(); + + /** + * @brief save the workspace content to the file system + */ + void Save(); + + void SetFilename(const wxFileName& filename) { this->m_filename = filename; } + const wxFileName& GetFilename() const { return m_filename; } + + void SetFolders(const wxArrayString& folders) { this->m_folders = folders; } + const wxArrayString& GetFolders() const { return m_folders; } + wxArrayString& GetFolders() { return m_folders; } +}; + +#endif // NOTEJSWORKSPACE_H diff -Nru codelite-8.0.1+dfsg2/WebTools/WebToolsBase.cpp codelite-9.0+dfsg/WebTools/WebToolsBase.cpp --- codelite-8.0.1+dfsg2/WebTools/WebToolsBase.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/WebTools/WebToolsBase.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -111,6 +111,9 @@ m_pgPropNode = m_pgMgr->AppendIn( m_pgProp46, new wxBoolProperty( _("Node.js"), wxPG_LABEL, 1) ); m_pgPropNode->SetHelpString(_("Provides variables that are part of the node environment, such as process and require, and hooks up require to try and find the dependencies that are being loaded, and assign them the correct types. It also includes types for the built-in modules that node.js provides (\"fs\", \"http\", etc)")); + m_pgPropRequireJS = m_pgMgr->AppendIn( m_pgProp46, new wxBoolProperty( _("RequireJS"), wxPG_LABEL, 1) ); + m_pgPropRequireJS->SetHelpString(_("This plugin (\"requirejs\") teaches the server to understand RequireJS-style dependency management. It defines the global functions define and requirejs, and will do its best to resolve dependencies and give them their proper types")); + m_stdBtnSizer4 = new wxStdDialogButtonSizer(); boxSizer2->Add(m_stdBtnSizer4, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 5); @@ -134,10 +137,14 @@ SetName(wxT("WebToolsSettingsBase")); SetSizeHints(-1,-1); - if ( GetSizer() ) { + if (GetSizer()) { GetSizer()->Fit(this); } - CentreOnParent(wxBOTH); + if(GetParent()) { + CentreOnParent(wxBOTH); + } else { + CentreOnScreen(wxBOTH); + } #if wxVERSION_NUMBER >= 2900 if(!wxPersistenceManager::Get().Find(this)) { wxPersistenceManager::Get().RegisterAndRestore(this); @@ -165,3 +172,438 @@ m_buttonOK->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(WebToolsSettingsBase::OnOK), NULL, this); } + +NodeJSDebuggerDlgBase::NodeJSDebuggerDlgBase(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style) + : wxDialog(parent, id, title, pos, size, style) +{ + if ( !bBitmapLoaded ) { + // We need to initialise the default bitmap handler + wxXmlResource::Get()->AddHandler(new wxBitmapXmlHandler); + wxCD9C6InitBitmapResources(); + bBitmapLoaded = true; + } + // Set icon(s) to the application/dialog + wxIconBundle app_icons; + { + wxBitmap iconBmp = wxXmlResource::Get()->LoadBitmap(wxT("nodejs")); + wxIcon icn; + icn.CopyFromBitmap(iconBmp); + app_icons.AddIcon( icn ); + } + { + wxBitmap iconBmp = wxXmlResource::Get()->LoadBitmap(wxT("nodejs-32")); + wxIcon icn; + icn.CopyFromBitmap(iconBmp); + app_icons.AddIcon( icn ); + } + SetIcons( app_icons ); + + + wxBoxSizer* boxSizer68 = new wxBoxSizer(wxVERTICAL); + this->SetSizer(boxSizer68); + + wxFlexGridSizer* flexGridSizer76 = new wxFlexGridSizer(0, 2, 0, 0); + flexGridSizer76->SetFlexibleDirection( wxBOTH ); + flexGridSizer76->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); + flexGridSizer76->AddGrowableCol(1); + + boxSizer68->Add(flexGridSizer76, 0, wxALL|wxEXPAND, 5); + + m_staticText78 = new wxStaticText(this, wxID_ANY, _("Node.js executable:"), wxDefaultPosition, wxSize(-1,-1), 0); + + flexGridSizer76->Add(m_staticText78, 0, wxALL|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5); + + m_filePickerNodeJS = new wxFilePickerCtrl(this, wxID_ANY, wxEmptyString, _("Select a file"), wxT("*"), wxDefaultPosition, wxSize(-1,-1), wxFLP_DEFAULT_STYLE|wxFLP_USE_TEXTCTRL|wxFLP_SMALL); + m_filePickerNodeJS->SetToolTip(_("Select Node.js executable")); + m_filePickerNodeJS->SetFocus(); + + flexGridSizer76->Add(m_filePickerNodeJS, 0, wxALL|wxEXPAND, 5); + + m_staticTextScript = new wxStaticText(this, wxID_ANY, _("Script to debug:"), wxDefaultPosition, wxSize(-1,-1), 0); + + flexGridSizer76->Add(m_staticTextScript, 0, wxALL|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5); + + m_filePickerScript = new wxFilePickerCtrl(this, wxID_ANY, wxEmptyString, _("Select a file"), wxT("*"), wxDefaultPosition, wxSize(-1,-1), wxFLP_DEFAULT_STYLE|wxFLP_USE_TEXTCTRL|wxFLP_SMALL); + m_filePickerScript->SetToolTip(_("Select the script to execute")); + + flexGridSizer76->Add(m_filePickerScript, 0, wxALL|wxEXPAND, 5); + + m_staticTextDebuggerPort = new wxStaticText(this, wxID_ANY, _("Debugger port:"), wxDefaultPosition, wxSize(-1,-1), 0); + + flexGridSizer76->Add(m_staticTextDebuggerPort, 0, wxALL|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5); + + m_textCtrlPort = new wxTextCtrl(this, wxID_ANY, wxT("5858"), wxDefaultPosition, wxSize(-1,-1), 0); + #if wxVERSION_NUMBER >= 3000 + m_textCtrlPort->SetHint(wxT("")); + #endif + + flexGridSizer76->Add(m_textCtrlPort, 0, wxALL|wxEXPAND, 5); + + m_staticText132 = new wxStaticText(this, wxID_ANY, _("Command line arguments:"), wxDefaultPosition, wxSize(-1,-1), 0); + + boxSizer68->Add(m_staticText132, 0, wxALL, 5); + + m_stcCommandLineArguments = new wxStyledTextCtrl(this, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), 0); + m_stcCommandLineArguments->SetToolTip(_("Pass command line arguments to Node.js\nPlace each argument on its own line")); + // Configure the fold margin + m_stcCommandLineArguments->SetMarginType (4, wxSTC_MARGIN_SYMBOL); + m_stcCommandLineArguments->SetMarginMask (4, wxSTC_MASK_FOLDERS); + m_stcCommandLineArguments->SetMarginSensitive(4, true); + m_stcCommandLineArguments->SetMarginWidth (4, 0); + + // Configure the tracker margin + m_stcCommandLineArguments->SetMarginWidth(1, 0); + + // Configure the symbol margin + m_stcCommandLineArguments->SetMarginType (2, wxSTC_MARGIN_SYMBOL); + m_stcCommandLineArguments->SetMarginMask (2, ~(wxSTC_MASK_FOLDERS)); + m_stcCommandLineArguments->SetMarginWidth(2, 0); + m_stcCommandLineArguments->SetMarginSensitive(2, true); + + // Configure the line numbers margin + m_stcCommandLineArguments->SetMarginType(0, wxSTC_MARGIN_NUMBER); + m_stcCommandLineArguments->SetMarginWidth(0,0); + + // Configure the line symbol margin + m_stcCommandLineArguments->SetMarginType(3, wxSTC_MARGIN_FORE); + m_stcCommandLineArguments->SetMarginMask(3, 0); + m_stcCommandLineArguments->SetMarginWidth(3,0); + // Select the lexer + m_stcCommandLineArguments->SetLexer(wxSTC_LEX_NULL); + // Set default font / styles + m_stcCommandLineArguments->StyleClearAll(); + m_stcCommandLineArguments->SetWrapMode(0); + m_stcCommandLineArguments->SetIndentationGuides(0); + m_stcCommandLineArguments->SetKeyWords(0, wxT("")); + m_stcCommandLineArguments->SetKeyWords(1, wxT("")); + m_stcCommandLineArguments->SetKeyWords(2, wxT("")); + m_stcCommandLineArguments->SetKeyWords(3, wxT("")); + m_stcCommandLineArguments->SetKeyWords(4, wxT("")); + + boxSizer68->Add(m_stcCommandLineArguments, 1, wxALL|wxEXPAND, 5); + + m_stdBtnSizer70 = new wxStdDialogButtonSizer(); + + boxSizer68->Add(m_stdBtnSizer70, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 10); + + m_buttonOK = new wxButton(this, wxID_OK, wxT(""), wxDefaultPosition, wxSize(-1, -1), 0); + m_buttonOK->SetDefault(); + m_stdBtnSizer70->AddButton(m_buttonOK); + + m_button74 = new wxButton(this, wxID_CANCEL, wxT(""), wxDefaultPosition, wxSize(-1, -1), 0); + m_stdBtnSizer70->AddButton(m_button74); + m_stdBtnSizer70->Realize(); + + SetName(wxT("NodeJSDebuggerDlgBase")); + SetSizeHints(-1,-1); + if (GetSizer()) { + GetSizer()->Fit(this); + } + if(GetParent()) { + CentreOnParent(wxBOTH); + } else { + CentreOnScreen(wxBOTH); + } +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(this)) { + wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); + } +#endif + // Connect events + m_buttonOK->Connect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(NodeJSDebuggerDlgBase::OnOKUI), NULL, this); + +} + +NodeJSDebuggerDlgBase::~NodeJSDebuggerDlgBase() +{ + m_buttonOK->Disconnect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(NodeJSDebuggerDlgBase::OnOKUI), NULL, this); + +} + +NodeJSDebuggerPaneBase::NodeJSDebuggerPaneBase(wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style) + : wxPanel(parent, id, pos, size, style) +{ + if ( !bBitmapLoaded ) { + // We need to initialise the default bitmap handler + wxXmlResource::Get()->AddHandler(new wxBitmapXmlHandler); + wxCD9C6InitBitmapResources(); + bBitmapLoaded = true; + } + + wxBoxSizer* boxSizer88 = new wxBoxSizer(wxVERTICAL); + this->SetSizer(boxSizer88); + + m_splitter104 = new wxSplitterWindow(this, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxSP_LIVE_UPDATE); + m_splitter104->SetSashGravity(0.33); + m_splitter104->SetMinimumPaneSize(10); + + boxSizer88->Add(m_splitter104, 1, wxALL|wxEXPAND, 0); + + m_splitterPage112 = new wxPanel(m_splitter104, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxTAB_TRAVERSAL); + + wxBoxSizer* boxSizer120 = new wxBoxSizer(wxVERTICAL); + m_splitterPage112->SetSizer(boxSizer120); + + m_dataviewLocals = new wxDataViewCtrl(m_splitterPage112, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxDV_VERT_RULES|wxDV_HORIZ_RULES|wxDV_ROW_LINES|wxDV_SINGLE|wxBORDER_SIMPLE); + + m_dataviewLocalsModel = new m_dataview126Model; + m_dataviewLocalsModel->SetColCount( 3 ); + m_dataviewLocals->AssociateModel(m_dataviewLocalsModel.get() ); + + boxSizer120->Add(m_dataviewLocals, 1, wxALL|wxEXPAND, 2); + + m_dataviewLocals->AppendTextColumn(_("Name"), m_dataviewLocals->GetColumnCount(), wxDATAVIEW_CELL_INERT, 200, wxALIGN_LEFT); + m_dataviewLocals->AppendTextColumn(_("Type"), m_dataviewLocals->GetColumnCount(), wxDATAVIEW_CELL_INERT, 100, wxALIGN_LEFT); + m_dataviewLocals->AppendTextColumn(_("Value"), m_dataviewLocals->GetColumnCount(), wxDATAVIEW_CELL_INERT, 500, wxALIGN_LEFT); + m_splitterPage108 = new wxPanel(m_splitter104, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxTAB_TRAVERSAL); + m_splitter104->SplitVertically(m_splitterPage112, m_splitterPage108, 0); + + wxBoxSizer* boxSizer118 = new wxBoxSizer(wxVERTICAL); + m_splitterPage108->SetSizer(boxSizer118); + + m_splitter168 = new wxSplitterWindow(m_splitterPage108, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxSP_LIVE_UPDATE); + m_splitter168->SetSashGravity(0.5); + m_splitter168->SetMinimumPaneSize(10); + + boxSizer118->Add(m_splitter168, 1, wxEXPAND, 5); + + m_splitterPage172 = new wxPanel(m_splitter168, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxTAB_TRAVERSAL); + + wxBoxSizer* boxSizer178 = new wxBoxSizer(wxVERTICAL); + m_splitterPage172->SetSizer(boxSizer178); + + m_dvListCtrlCallstack = new wxDataViewListCtrl(m_splitterPage172, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxDV_VERT_RULES|wxDV_HORIZ_RULES|wxDV_ROW_LINES|wxDV_SINGLE|wxBORDER_SIMPLE); + + boxSizer178->Add(m_dvListCtrlCallstack, 1, wxALL|wxEXPAND, 2); + + m_dvListCtrlCallstack->AppendTextColumn(_("#"), wxDATAVIEW_CELL_INERT, 40, wxALIGN_LEFT); + m_dvListCtrlCallstack->AppendTextColumn(_("Function"), wxDATAVIEW_CELL_INERT, 200, wxALIGN_LEFT); + m_dvListCtrlCallstack->AppendTextColumn(_("File"), wxDATAVIEW_CELL_INERT, 300, wxALIGN_LEFT); + m_dvListCtrlCallstack->AppendTextColumn(_("Line"), wxDATAVIEW_CELL_INERT, 50, wxALIGN_LEFT); + m_splitterPage176 = new wxPanel(m_splitter168, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxTAB_TRAVERSAL); + m_splitter168->SplitVertically(m_splitterPage172, m_splitterPage176, 0); + + wxBoxSizer* boxSizer180 = new wxBoxSizer(wxVERTICAL); + m_splitterPage176->SetSizer(boxSizer180); + + m_notebook = new Notebook(m_splitterPage176, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxBK_DEFAULT); + m_notebook->SetName(wxT("m_notebook")); + + boxSizer180->Add(m_notebook, 1, wxALL|wxEXPAND, 2); + + m_panelConsoleLog = new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxTAB_TRAVERSAL); + m_notebook->AddPage(m_panelConsoleLog, _("Console"), true); + + wxBoxSizer* boxSizer188 = new wxBoxSizer(wxVERTICAL); + m_panelConsoleLog->SetSizer(boxSizer188); + + m_consoleLog = new wxStyledTextCtrl(m_panelConsoleLog, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), 0); + // Configure the fold margin + m_consoleLog->SetMarginType (4, wxSTC_MARGIN_SYMBOL); + m_consoleLog->SetMarginMask (4, wxSTC_MASK_FOLDERS); + m_consoleLog->SetMarginSensitive(4, true); + m_consoleLog->SetMarginWidth (4, 0); + + // Configure the tracker margin + m_consoleLog->SetMarginWidth(1, 0); + + // Configure the symbol margin + m_consoleLog->SetMarginType (2, wxSTC_MARGIN_SYMBOL); + m_consoleLog->SetMarginMask (2, ~(wxSTC_MASK_FOLDERS)); + m_consoleLog->SetMarginWidth(2, 0); + m_consoleLog->SetMarginSensitive(2, true); + + // Configure the line numbers margin + m_consoleLog->SetMarginType(0, wxSTC_MARGIN_NUMBER); + m_consoleLog->SetMarginWidth(0,0); + + // Configure the line symbol margin + m_consoleLog->SetMarginType(3, wxSTC_MARGIN_FORE); + m_consoleLog->SetMarginMask(3, 0); + m_consoleLog->SetMarginWidth(3,0); + // Select the lexer + m_consoleLog->SetLexer(wxSTC_LEX_NULL); + // Set default font / styles + m_consoleLog->StyleClearAll(); + m_consoleLog->SetWrapMode(0); + m_consoleLog->SetIndentationGuides(0); + m_consoleLog->SetKeyWords(0, wxT("")); + m_consoleLog->SetKeyWords(1, wxT("")); + m_consoleLog->SetKeyWords(2, wxT("")); + m_consoleLog->SetKeyWords(3, wxT("")); + m_consoleLog->SetKeyWords(4, wxT("")); + + boxSizer188->Add(m_consoleLog, 1, wxALL|wxEXPAND, 2); + + m_textCtrlExpression = new wxTextCtrl(m_panelConsoleLog, wxID_ANY, wxT(""), wxDefaultPosition, wxSize(-1,-1), wxTE_PROCESS_ENTER); + m_textCtrlExpression->SetFocus(); + #if wxVERSION_NUMBER >= 3000 + m_textCtrlExpression->SetHint(_("Evaluate expression")); + #endif + + boxSizer188->Add(m_textCtrlExpression, 0, wxALL|wxEXPAND, 2); + + m_panelBreakpoints = new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxTAB_TRAVERSAL); + m_notebook->AddPage(m_panelBreakpoints, _("Breakpoints"), false); + + wxBoxSizer* boxSizer190 = new wxBoxSizer(wxVERTICAL); + m_panelBreakpoints->SetSizer(boxSizer190); + + m_dvListCtrlBreakpoints = new wxDataViewListCtrl(m_panelBreakpoints, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxDV_VERT_RULES|wxDV_HORIZ_RULES|wxDV_ROW_LINES|wxDV_SINGLE); + + boxSizer190->Add(m_dvListCtrlBreakpoints, 1, wxALL|wxEXPAND, 2); + + m_dvListCtrlBreakpoints->AppendTextColumn(_("ID"), wxDATAVIEW_CELL_INERT, 40, wxALIGN_LEFT); + m_dvListCtrlBreakpoints->AppendTextColumn(_("Line"), wxDATAVIEW_CELL_INERT, 50, wxALIGN_LEFT); + m_dvListCtrlBreakpoints->AppendTextColumn(_("File"), wxDATAVIEW_CELL_INERT, 250, wxALIGN_LEFT); + + SetName(wxT("NodeJSDebuggerPaneBase")); + SetSizeHints(500,250); + if (GetSizer()) { + GetSizer()->Fit(this); + } + // Connect events + m_dataviewLocals->Connect(wxEVT_COMMAND_DATAVIEW_ITEM_EXPANDING, wxDataViewEventHandler(NodeJSDebuggerPaneBase::OnLocalExpanding), NULL, this); + m_dvListCtrlCallstack->Connect(wxEVT_COMMAND_DATAVIEW_ITEM_ACTIVATED, wxDataViewEventHandler(NodeJSDebuggerPaneBase::OnItemActivated), NULL, this); + m_dvListCtrlCallstack->Connect(wxEVT_COMMAND_DATAVIEW_SELECTION_CHANGED, wxDataViewEventHandler(NodeJSDebuggerPaneBase::OnItemActivated), NULL, this); + m_textCtrlExpression->Connect(wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler(NodeJSDebuggerPaneBase::OnEvaluateExpression), NULL, this); + m_dvListCtrlBreakpoints->Connect(wxEVT_COMMAND_DATAVIEW_SELECTION_CHANGED, wxDataViewEventHandler(NodeJSDebuggerPaneBase::OnBreakpointSelected), NULL, this); + m_dvListCtrlBreakpoints->Connect(wxEVT_COMMAND_DATAVIEW_ITEM_ACTIVATED, wxDataViewEventHandler(NodeJSDebuggerPaneBase::OnBreakpointSelected), NULL, this); + +} + +NodeJSDebuggerPaneBase::~NodeJSDebuggerPaneBase() +{ + m_dataviewLocals->Disconnect(wxEVT_COMMAND_DATAVIEW_ITEM_EXPANDING, wxDataViewEventHandler(NodeJSDebuggerPaneBase::OnLocalExpanding), NULL, this); + m_dvListCtrlCallstack->Disconnect(wxEVT_COMMAND_DATAVIEW_ITEM_ACTIVATED, wxDataViewEventHandler(NodeJSDebuggerPaneBase::OnItemActivated), NULL, this); + m_dvListCtrlCallstack->Disconnect(wxEVT_COMMAND_DATAVIEW_SELECTION_CHANGED, wxDataViewEventHandler(NodeJSDebuggerPaneBase::OnItemActivated), NULL, this); + m_textCtrlExpression->Disconnect(wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler(NodeJSDebuggerPaneBase::OnEvaluateExpression), NULL, this); + m_dvListCtrlBreakpoints->Disconnect(wxEVT_COMMAND_DATAVIEW_SELECTION_CHANGED, wxDataViewEventHandler(NodeJSDebuggerPaneBase::OnBreakpointSelected), NULL, this); + m_dvListCtrlBreakpoints->Disconnect(wxEVT_COMMAND_DATAVIEW_ITEM_ACTIVATED, wxDataViewEventHandler(NodeJSDebuggerPaneBase::OnBreakpointSelected), NULL, this); + +} + +NodeJSNewWorkspaceDlgBase::NodeJSNewWorkspaceDlgBase(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style) + : wxDialog(parent, id, title, pos, size, style) +{ + if ( !bBitmapLoaded ) { + // We need to initialise the default bitmap handler + wxXmlResource::Get()->AddHandler(new wxBitmapXmlHandler); + wxCD9C6InitBitmapResources(); + bBitmapLoaded = true; + } + + wxBoxSizer* boxSizer140 = new wxBoxSizer(wxVERTICAL); + this->SetSizer(boxSizer140); + + wxFlexGridSizer* flexGridSizer148 = new wxFlexGridSizer(0, 2, 0, 0); + flexGridSizer148->SetFlexibleDirection( wxBOTH ); + flexGridSizer148->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); + flexGridSizer148->AddGrowableCol(1); + + boxSizer140->Add(flexGridSizer148, 1, wxALL|wxEXPAND, 5); + + m_staticText160 = new wxStaticText(this, wxID_ANY, _("Name:"), wxDefaultPosition, wxSize(-1,-1), 0); + + flexGridSizer148->Add(m_staticText160, 0, wxALL|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5); + + m_textCtrllName = new wxTextCtrl(this, wxID_ANY, wxT(""), wxDefaultPosition, wxSize(-1,-1), 0); + m_textCtrllName->SetFocus(); + #if wxVERSION_NUMBER >= 3000 + m_textCtrllName->SetHint(wxT("")); + #endif + + flexGridSizer148->Add(m_textCtrllName, 0, wxALL|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5); + + m_staticText150 = new wxStaticText(this, wxID_ANY, _("Path:"), wxDefaultPosition, wxSize(-1,-1), 0); + + flexGridSizer148->Add(m_staticText150, 0, wxALL|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5); + + m_dirPickerFolder = new wxDirPickerCtrl(this, wxID_ANY, wxEmptyString, _("Select a folder"), wxDefaultPosition, wxSize(-1,-1), wxDIRP_SMALL|wxDIRP_DEFAULT_STYLE|wxDIRP_USE_TEXTCTRL); + + flexGridSizer148->Add(m_dirPickerFolder, 0, wxALL|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5); + + flexGridSizer148->Add(0, 0, 1, wxALL, 5); + + m_checkBoxNewFolder = new wxCheckBox(this, wxID_ANY, _("Create the workspace in a separate directory"), wxDefaultPosition, wxSize(-1,-1), 0); + m_checkBoxNewFolder->SetValue(true); + + flexGridSizer148->Add(m_checkBoxNewFolder, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5); + + m_staticTextPreview = new wxStaticText(this, wxID_ANY, wxT(""), wxDefaultPosition, wxSize(-1,-1), wxALIGN_CENTRE); + m_staticTextPreview->SetForegroundColour(wxColour(wxT("rgb(21,144,18)"))); + + boxSizer140->Add(m_staticTextPreview, 0, wxALL|wxEXPAND, 5); + + m_stdBtnSizer142 = new wxStdDialogButtonSizer(); + + boxSizer140->Add(m_stdBtnSizer142, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 10); + + m_button144 = new wxButton(this, wxID_OK, wxT(""), wxDefaultPosition, wxSize(-1, -1), 0); + m_button144->SetDefault(); + m_stdBtnSizer142->AddButton(m_button144); + + m_button146 = new wxButton(this, wxID_CANCEL, wxT(""), wxDefaultPosition, wxSize(-1, -1), 0); + m_stdBtnSizer142->AddButton(m_button146); + m_stdBtnSizer142->Realize(); + + SetName(wxT("NodeJSNewWorkspaceDlgBase")); + SetSizeHints(-1,-1); + if (GetSizer()) { + GetSizer()->Fit(this); + } + if(GetParent()) { + CentreOnParent(wxBOTH); + } else { + CentreOnScreen(wxBOTH); + } +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(this)) { + wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); + } +#endif + // Connect events + m_textCtrllName->Connect(wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler(NodeJSNewWorkspaceDlgBase::OnTextUpdate), NULL, this); + m_dirPickerFolder->Connect(wxEVT_COMMAND_DIRPICKER_CHANGED, wxFileDirPickerEventHandler(NodeJSNewWorkspaceDlgBase::OnFolderSelected), NULL, this); + m_checkBoxNewFolder->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(NodeJSNewWorkspaceDlgBase::OnCheckNewFolder), NULL, this); + m_button144->Connect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(NodeJSNewWorkspaceDlgBase::OnOKUI), NULL, this); + +} + +NodeJSNewWorkspaceDlgBase::~NodeJSNewWorkspaceDlgBase() +{ + m_textCtrllName->Disconnect(wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler(NodeJSNewWorkspaceDlgBase::OnTextUpdate), NULL, this); + m_dirPickerFolder->Disconnect(wxEVT_COMMAND_DIRPICKER_CHANGED, wxFileDirPickerEventHandler(NodeJSNewWorkspaceDlgBase::OnFolderSelected), NULL, this); + m_checkBoxNewFolder->Disconnect(wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(NodeJSNewWorkspaceDlgBase::OnCheckNewFolder), NULL, this); + m_button144->Disconnect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(NodeJSNewWorkspaceDlgBase::OnOKUI), NULL, this); + +} + +WebToolsImages::WebToolsImages() + : wxImageList(16, 16, true) +{ + if ( !bBitmapLoaded ) { + // We need to initialise the default bitmap handler + wxXmlResource::Get()->AddHandler(new wxBitmapXmlHandler); + wxCD9C6InitBitmapResources(); + bBitmapLoaded = true; + } + + { + wxBitmap bmp; + wxIcon icn; + bmp = wxXmlResource::Get()->LoadBitmap(wxT("m_bmpNodeJS")); + icn.CopyFromBitmap( bmp ); + this->Add( icn ); + m_bitmaps.insert( std::make_pair(wxT("m_bmpNodeJS"), bmp ) ); + } + +} + +WebToolsImages::~WebToolsImages() +{ +} diff -Nru codelite-8.0.1+dfsg2/WebTools/WebToolsBase.h codelite-9.0+dfsg/WebTools/WebToolsBase.h --- codelite-8.0.1+dfsg2/WebTools/WebToolsBase.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/WebTools/WebToolsBase.h 2015-10-11 13:56:07.000000000 +0000 @@ -4,8 +4,8 @@ // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// -#ifndef WEBTOOLSBASE_BASE_CLASSES_H -#define WEBTOOLSBASE_BASE_CLASSES_H +#ifndef CODELITE_WEBTOOLS_WEBTOOLSBASE_BASE_CLASSES_H +#define CODELITE_WEBTOOLS_WEBTOOLSBASE_BASE_CLASSES_H #include #include @@ -22,6 +22,17 @@ #include #include #include +#include +#include +#include +#include +#include +#include +#include "m_dataview126model.h" +#include "Notebook.h" +#include +#include +#include #if wxVERSION_NUMBER >= 2900 #include #include @@ -53,6 +64,7 @@ wxPGProperty* m_pgPropAngular; wxPGProperty* m_pgPropStrings; wxPGProperty* m_pgPropNode; + wxPGProperty* m_pgPropRequireJS; wxStdDialogButtonSizer* m_stdBtnSizer4; wxButton* m_buttonCancel; wxButton* m_buttonOK; @@ -75,4 +87,133 @@ virtual ~WebToolsSettingsBase(); }; + +class NodeJSDebuggerDlgBase : public wxDialog +{ +protected: + wxStaticText* m_staticText78; + wxFilePickerCtrl* m_filePickerNodeJS; + wxStaticText* m_staticTextScript; + wxFilePickerCtrl* m_filePickerScript; + wxStaticText* m_staticTextDebuggerPort; + wxTextCtrl* m_textCtrlPort; + wxStaticText* m_staticText132; + wxStyledTextCtrl* m_stcCommandLineArguments; + wxStdDialogButtonSizer* m_stdBtnSizer70; + wxButton* m_buttonOK; + wxButton* m_button74; + +protected: + virtual void OnOKUI(wxUpdateUIEvent& event) { event.Skip(); } + +public: + wxStaticText* GetStaticText78() { return m_staticText78; } + wxFilePickerCtrl* GetFilePickerNodeJS() { return m_filePickerNodeJS; } + wxStaticText* GetStaticTextScript() { return m_staticTextScript; } + wxFilePickerCtrl* GetFilePickerScript() { return m_filePickerScript; } + wxStaticText* GetStaticTextDebuggerPort() { return m_staticTextDebuggerPort; } + wxTextCtrl* GetTextCtrlPort() { return m_textCtrlPort; } + wxStaticText* GetStaticText132() { return m_staticText132; } + wxStyledTextCtrl* GetStcCommandLineArguments() { return m_stcCommandLineArguments; } + NodeJSDebuggerDlgBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Node.js Debugger"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER); + virtual ~NodeJSDebuggerDlgBase(); +}; + + +class NodeJSDebuggerPaneBase : public wxPanel +{ +protected: + wxSplitterWindow* m_splitter104; + wxPanel* m_splitterPage112; + wxDataViewCtrl* m_dataviewLocals; + wxObjectDataPtr m_dataviewLocalsModel; + + wxPanel* m_splitterPage108; + wxSplitterWindow* m_splitter168; + wxPanel* m_splitterPage172; + wxDataViewListCtrl* m_dvListCtrlCallstack; + wxPanel* m_splitterPage176; + Notebook* m_notebook; + wxPanel* m_panelConsoleLog; + wxStyledTextCtrl* m_consoleLog; + wxTextCtrl* m_textCtrlExpression; + wxPanel* m_panelBreakpoints; + wxDataViewListCtrl* m_dvListCtrlBreakpoints; + +protected: + virtual void OnLocalExpanding(wxDataViewEvent& event) { event.Skip(); } + virtual void OnItemActivated(wxDataViewEvent& event) { event.Skip(); } + virtual void OnEvaluateExpression(wxCommandEvent& event) { event.Skip(); } + virtual void OnBreakpointSelected(wxDataViewEvent& event) { event.Skip(); } + +public: + wxDataViewCtrl* GetDataviewLocals() { return m_dataviewLocals; } + wxPanel* GetSplitterPage112() { return m_splitterPage112; } + wxDataViewListCtrl* GetDvListCtrlCallstack() { return m_dvListCtrlCallstack; } + wxPanel* GetSplitterPage172() { return m_splitterPage172; } + wxStyledTextCtrl* GetConsoleLog() { return m_consoleLog; } + wxTextCtrl* GetTextCtrlExpression() { return m_textCtrlExpression; } + wxPanel* GetPanelConsoleLog() { return m_panelConsoleLog; } + wxDataViewListCtrl* GetDvListCtrlBreakpoints() { return m_dvListCtrlBreakpoints; } + wxPanel* GetPanelBreakpoints() { return m_panelBreakpoints; } + Notebook* GetNotebook() { return m_notebook; } + wxPanel* GetSplitterPage176() { return m_splitterPage176; } + wxSplitterWindow* GetSplitter168() { return m_splitter168; } + wxPanel* GetSplitterPage108() { return m_splitterPage108; } + wxSplitterWindow* GetSplitter104() { return m_splitter104; } + NodeJSDebuggerPaneBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(500,250), long style = wxTAB_TRAVERSAL); + virtual ~NodeJSDebuggerPaneBase(); +}; + + +class NodeJSNewWorkspaceDlgBase : public wxDialog +{ +protected: + wxStaticText* m_staticText160; + wxTextCtrl* m_textCtrllName; + wxStaticText* m_staticText150; + wxDirPickerCtrl* m_dirPickerFolder; + wxCheckBox* m_checkBoxNewFolder; + wxStaticText* m_staticTextPreview; + wxStdDialogButtonSizer* m_stdBtnSizer142; + wxButton* m_button144; + wxButton* m_button146; + +protected: + virtual void OnTextUpdate(wxCommandEvent& event) { event.Skip(); } + virtual void OnFolderSelected(wxFileDirPickerEvent& event) { event.Skip(); } + virtual void OnCheckNewFolder(wxCommandEvent& event) { event.Skip(); } + virtual void OnOKUI(wxUpdateUIEvent& event) { event.Skip(); } + +public: + wxStaticText* GetStaticText160() { return m_staticText160; } + wxTextCtrl* GetTextCtrllName() { return m_textCtrllName; } + wxStaticText* GetStaticText150() { return m_staticText150; } + wxDirPickerCtrl* GetDirPickerFolder() { return m_dirPickerFolder; } + wxCheckBox* GetCheckBoxNewFolder() { return m_checkBoxNewFolder; } + wxStaticText* GetStaticTextPreview() { return m_staticTextPreview; } + NodeJSNewWorkspaceDlgBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("New Workspace"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER); + virtual ~NodeJSNewWorkspaceDlgBase(); +}; + + +class WebToolsImages : public wxImageList +{ +protected: + // Maintain a map of all bitmaps representd by their name + std::map m_bitmaps; + + +protected: + +public: + WebToolsImages(); + const wxBitmap& Bitmap(const wxString &name) const { + if ( !m_bitmaps.count(name) ) + return wxNullBitmap; + return m_bitmaps.find(name)->second; + } + virtual ~WebToolsImages(); +}; + #endif diff -Nru codelite-8.0.1+dfsg2/WebTools/WebToolsBase_webtools_bitmaps.cpp codelite-9.0+dfsg/WebTools/WebToolsBase_webtools_bitmaps.cpp --- codelite-8.0.1+dfsg2/WebTools/WebToolsBase_webtools_bitmaps.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/WebTools/WebToolsBase_webtools_bitmaps.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -21,13 +21,91 @@ wxMemoryFSHandler::AddFile(name, data, size) #endif -static size_t xml_res_size_0 = 90; +static size_t xml_res_size_0 = 408; static unsigned char xml_res_file_0[] = { +137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, +0,31,243,255,97,0,0,0,6,98,75,71,68,0,255,0,255,0,255,160,189,167,147,0, +0,0,9,112,72,89,115,0,0,13,215,0,0,13,215,1,66,40,155,120,0,0,0,7,116,73, +77,69,7,223,9,20,12,24,27,252,179,14,50,0,0,1,37,73,68,65,84,56,203,229, +146,191,75,2,113,24,135,159,239,143,187,211,75,189,210,161,6,79,147,160, +166,72,195,146,6,215,32,168,134,138,230,254,144,254,135,150,254,130,126, +80,107,144,75,83,65,80,82,155,75,184,8,146,212,82,212,80,201,209,121,77, +34,82,160,112,99,159,233,195,59,60,188,47,239,35,246,110,215,3,66,68,18, +50,255,5,96,170,40,249,137,213,193,0,45,205,63,187,33,35,204,36,203,191, +230,0,186,91,202,238,14,211,169,50,55,205,83,70,204,36,139,238,38,215,141, +67,132,144,148,220,45,94,191,90,204,166,86,40,101,182,169,61,95,80,125, +58,233,223,96,114,180,200,81,117,151,116,108,142,156,83,196,144,22,153, +68,129,172,51,207,85,253,152,142,31,224,38,10,84,106,251,60,180,238,240, +218,62,0,162,43,82,130,44,143,47,117,198,227,83,40,169,201,167,151,185, +111,158,163,164,102,41,183,65,181,113,134,231,183,89,200,174,113,89,63, +224,211,123,35,54,102,245,0,65,39,224,227,221,195,247,135,23,83,105,217, +59,65,72,129,237,152,72,33,134,6,248,223,157,254,47,72,41,176,29,3,17,198, +3,165,37,209,184,17,78,36,195,82,68,108,29,206,68,203,214,24,150,26,8,248, +1,152,135,72,228,248,224,163,127,0,0,0,0,73,69,78,68,174,66,96,130}; + +static size_t xml_res_size_1 = 791; +static unsigned char xml_res_file_1[] = { +137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0, +0,115,122,122,244,0,0,0,6,98,75,71,68,0,255,0,255,0,255,160,189,167,147, +0,0,0,9,112,72,89,115,0,0,13,215,0,0,13,215,1,66,40,155,120,0,0,0,7,116, +73,77,69,7,223,10,8,16,52,11,144,102,189,27,0,0,2,164,73,68,65,84,88,195, +237,214,75,72,85,65,28,199,241,239,204,156,57,15,207,189,87,203,155,166, +137,102,153,25,68,65,8,73,89,22,17,4,65,129,65,212,46,66,10,106,209,38, +218,5,209,166,101,171,130,192,69,109,140,162,54,81,214,162,85,5,122,35, +74,139,90,72,152,145,138,154,61,52,175,93,239,227,76,11,3,51,31,45,82,206, +198,89,254,56,103,248,48,255,115,254,243,23,151,219,15,24,66,92,146,144, +215,18,96,9,176,4,88,2,44,40,192,81,62,229,249,155,67,4,88,17,26,107,46, +178,165,228,96,184,37,240,245,178,255,7,196,156,34,44,233,204,186,185,163, +252,25,185,150,46,142,202,155,145,91,210,198,181,162,115,2,172,191,131, +60,93,192,142,242,99,212,196,119,49,145,29,35,209,119,139,206,193,86,164, +80,212,150,30,162,182,164,145,156,201,208,222,123,147,142,193,7,24,19,80, +93,88,207,206,242,227,56,214,20,76,8,201,198,21,123,169,91,117,4,199,242, +233,24,184,79,162,255,54,153,92,106,126,192,238,213,39,88,183,124,59,67, +99,61,196,156,56,13,21,77,12,143,12,82,150,191,129,173,171,26,127,191,100, +211,80,209,68,42,149,70,162,216,91,117,146,241,204,40,233,236,79,180,237, +146,77,7,172,241,235,217,83,121,138,159,153,81,198,38,190,81,91,122,8,97, +108,158,246,54,207,95,2,41,20,96,184,246,228,52,173,111,175,76,134,57,137, +156,105,69,6,26,75,120,0,180,60,63,207,141,182,115,147,143,231,12,210,104, +0,238,188,188,68,243,179,51,124,252,250,134,23,221,15,73,167,114,243,159, +128,49,96,140,33,48,89,114,65,102,222,15,200,48,53,203,212,175,61,76,54, +72,79,219,7,96,71,213,81,30,189,187,202,245,182,179,147,165,1,44,45,145, +74,0,160,246,53,173,191,240,231,166,113,119,45,137,238,123,12,253,232,97, +36,245,25,75,106,134,147,159,232,26,76,176,204,47,161,208,47,195,24,195, +235,190,199,180,117,223,101,56,249,137,120,164,140,234,226,58,138,162,149, +244,124,233,228,201,251,22,250,71,186,240,116,148,154,149,219,168,45,223, +207,151,100,63,67,63,122,38,79,40,107,208,142,66,8,16,127,143,100,65,206, +144,252,158,38,48,179,79,106,21,133,155,152,200,140,51,48,250,126,90,190, +38,190,5,75,106,186,134,18,211,242,226,88,37,121,118,1,31,134,95,77,203, +109,71,225,69,245,76,0,64,46,19,144,28,73,179,216,195,162,23,209,179,247, +1,165,37,174,175,23,253,30,72,141,101,230,110,68,182,167,112,60,107,81, +1,230,95,173,216,245,45,180,163,194,189,13,189,136,198,178,100,120,0,33, +32,47,166,145,82,132,55,15,8,41,240,243,109,164,16,225,0,0,164,18,120,49, +29,30,128,223,45,212,139,232,240,0,0,182,171,112,92,21,30,0,192,141,104, +180,45,195,3,0,120,81,27,181,0,191,231,47,61,175,202,183,200,107,38,88, +0,0,0,0,73,69,78,68,174,66,96,130}; + +static size_t xml_res_size_2 = 397; +static unsigned char xml_res_file_2[] = { 60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, 110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, 115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, -47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, -47,119,120,120,114,99,34,47,62,10}; +47,47,119,119,119,46,119,120,119,105,100,103,101,116,115,46,111,114,103, +47,119,120,120,114,99,34,62,10,32,32,60,111,98,106,101,99,116,32,99,108, +97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61, +34,109,95,98,109,112,78,111,100,101,74,83,34,62,87,101,98,84,111,111,108, +115,66,97,115,101,95,119,101,98,116,111,111,108,115,95,98,105,116,109,97, +112,115,46,99,112,112,36,110,111,100,101,106,115,46,112,110,103,60,47,111, +98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115, +115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,110, +111,100,101,106,115,34,62,87,101,98,84,111,111,108,115,66,97,115,101,95, +119,101,98,116,111,111,108,115,95,98,105,116,109,97,112,115,46,99,112,112, +36,110,111,100,101,106,115,46,112,110,103,60,47,111,98,106,101,99,116,62, +10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66, +105,116,109,97,112,34,32,110,97,109,101,61,34,110,111,100,101,106,115,45, +51,50,34,62,87,101,98,84,111,111,108,115,66,97,115,101,95,119,101,98,116, +111,111,108,115,95,98,105,116,109,97,112,115,46,99,112,112,36,110,111,100, +101,106,115,45,51,50,46,112,110,103,60,47,111,98,106,101,99,116,62,10,60, +47,114,101,115,111,117,114,99,101,62,10}; void wxCD9C6InitBitmapResources() { @@ -42,6 +120,8 @@ else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase); } - XRC_ADD_FILE(wxT("XRC_resource/WebToolsBase_webtools_bitmaps.cpp$C__src_codelite_WebTools_WebToolsBase_webtools_bitmaps.xrc"), xml_res_file_0, xml_res_size_0, wxT("text/xml")); + XRC_ADD_FILE(wxT("XRC_resource/WebToolsBase_webtools_bitmaps.cpp$nodejs.png"), xml_res_file_0, xml_res_size_0, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/WebToolsBase_webtools_bitmaps.cpp$nodejs-32.png"), xml_res_file_1, xml_res_size_1, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/WebToolsBase_webtools_bitmaps.cpp$C__src_codelite_WebTools_WebToolsBase_webtools_bitmaps.xrc"), xml_res_file_2, xml_res_size_2, wxT("text/xml")); wxXmlResource::Get()->Load(wxT("memory:XRC_resource/WebToolsBase_webtools_bitmaps.cpp$C__src_codelite_WebTools_WebToolsBase_webtools_bitmaps.xrc")); } diff -Nru codelite-8.0.1+dfsg2/WebTools/WebToolsBase.wxcp codelite-9.0+dfsg/WebTools/WebToolsBase.wxcp --- codelite-8.0.1+dfsg2/WebTools/WebToolsBase.wxcp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/WebTools/WebToolsBase.wxcp 2015-10-11 13:56:07.000000000 +0000 @@ -1,7 +1,7 @@ { "metadata": { "m_generatedFilesDir": ".", - "m_objCounter": 64, + "m_objCounter": 235, "m_includeFiles": [], "m_bitmapFunction": "wxCD9C6InitBitmapResources", "m_bitmapsFile": "WebToolsBase_webtools_bitmaps.cpp", @@ -1671,6 +1671,71 @@ }], "m_events": [], "m_children": [] + }, { + "m_type": 4486, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "m_pgPropRequireJS" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "RequireJS" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "This plugin (\"requirejs\") teaches the server to understand RequireJS-style dependency management. It defines the global functions define and requirejs, and will do its best to resolve dependencies and give them their proper types" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "choice", + "m_label": "Property Editor Control", + "m_selection": 0, + "m_options": ["", "TextCtrl", "Choice", "ComboBox", "CheckBox", "TextCtrlAndButton", "ChoiceAndButton", "SpinCtrl", "DatePickerCtrl"] + }, { + "type": "choice", + "m_label": "Kind:", + "m_selection": 3, + "m_options": ["wxPropertyCategory", "wxIntProperty", "wxFloatProperty", "wxBoolProperty", "wxStringProperty", "wxLongStringProperty", "wxDirProperty", "wxArrayStringProperty", "wxFileProperty", "wxEnumProperty", "wxEditEnumProperty", "wxFlagsProperty", "wxDateProperty", "wxImageFileProperty", "wxFontProperty", "wxSystemColourProperty"] + }, { + "type": "string", + "m_label": "String Value", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Choices:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Array Integer Values", + "m_value": "" + }, { + "type": "bool", + "m_label": "Bool Value", + "m_value": true + }, { + "type": "string", + "m_label": "Wildcard", + "m_value": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Initial Colour", + "colour": "" + }], + "m_events": [], + "m_children": [] }] }] }] @@ -1815,5 +1880,3649 @@ }] }] }] + }, { + "m_type": 4421, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxDEFAULT_DIALOG_STYLE", "wxRESIZE_BORDER"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "NodeJSDebuggerDlgBase" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Enable Window Persistency:", + "m_value": true + }, { + "type": "string", + "m_label": "Title:", + "m_value": "Node.js Debugger" + }, { + "type": "virtualFolderPicker", + "m_label": "Virtual Folder:", + "m_path": "WebTools:NodeJS:Debugger" + }, { + "type": "choice", + "m_label": "Centre:", + "m_selection": 1, + "m_options": ["", "wxBOTH", "wxVERTICAL", "wxHORIZONTAL"] + }, { + "type": "string", + "m_label": "Inherited Class", + "m_value": "NodeJSDebuggerDlg" + }, { + "type": "string", + "m_label": "File:", + "m_value": "NodeJSDebuggerDlg" + }, { + "type": "string", + "m_label": "Class Decorator", + "m_value": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (16x16) :", + "m_path": "nodejs.png" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (32x32) :", + "m_path": "nodejs-32.png" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (64x64) :", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (128x128):", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (256x256):", + "m_path": "" + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "boxSizer68" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4403, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "flexGridSizer76" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "# Columns:", + "m_value": "2" + }, { + "type": "string", + "m_label": "# Rows:", + "m_value": "0" + }, { + "type": "string", + "m_label": "Growable columns:", + "m_value": "1" + }, { + "type": "string", + "m_label": "Growable rows:", + "m_value": "" + }, { + "type": "string", + "m_label": "Horizontal gap:", + "m_value": "0" + }, { + "type": "string", + "m_label": "Vertical gap:", + "m_value": "0" + }], + "m_events": [], + "m_children": [{ + "m_type": 4405, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT", "wxALIGN_CENTER_VERTICAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_staticText78" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Label:", + "m_value": "Node.js executable:" + }, { + "type": "string", + "m_label": "Wrap:", + "m_value": "-1" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4431, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxFLP_DEFAULT_STYLE", "wxFLP_USE_TEXTCTRL", "wxFLP_SMALL"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_filePickerNodeJS" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "Select Node.js executable" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": true + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Value:", + "m_value": "" + }, { + "type": "string", + "m_label": "Message:", + "m_value": "Select a file" + }, { + "type": "string", + "m_label": "Wildcard:", + "m_value": "*" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4405, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT", "wxALIGN_CENTER_VERTICAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_staticTextScript" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Label:", + "m_value": "Script to debug:" + }, { + "type": "string", + "m_label": "Wrap:", + "m_value": "-1" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4431, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxFLP_DEFAULT_STYLE", "wxFLP_USE_TEXTCTRL", "wxFLP_SMALL"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_filePickerScript" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "Select the script to execute" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Value:", + "m_value": "" + }, { + "type": "string", + "m_label": "Message:", + "m_value": "Select a file" + }, { + "type": "string", + "m_label": "Wildcard:", + "m_value": "*" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4405, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT", "wxALIGN_CENTER_VERTICAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_staticTextDebuggerPort" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Label:", + "m_value": "Debugger port:" + }, { + "type": "string", + "m_label": "Wrap:", + "m_value": "-1" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4406, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_textCtrlPort" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Value:", + "m_value": "5858" + }, { + "type": "string", + "m_label": "Text Hint", + "m_value": "" + }, { + "type": "string", + "m_label": "Max Length:", + "m_value": "0" + }, { + "type": "bool", + "m_label": "Auto Complete Directories:", + "m_value": false + }, { + "type": "bool", + "m_label": "Auto Complete Files:", + "m_value": false + }], + "m_events": [], + "m_children": [] + }] + }, { + "m_type": 4405, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_staticText132" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Label:", + "m_value": "Command line arguments:" + }, { + "type": "string", + "m_label": "Wrap:", + "m_value": "-1" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4466, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_stcCommandLineArguments" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "Pass command line arguments to Node.js\\nPlace each argument on its own line" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Fold Margin", + "m_value": false + }, { + "type": "bool", + "m_label": "Line Number Margin", + "m_value": false + }, { + "type": "bool", + "m_label": "Separator Margin", + "m_value": false + }, { + "type": "bool", + "m_label": "Symbol Margin", + "m_value": false + }, { + "type": "choice", + "m_label": "Wrap Text", + "m_selection": 0, + "m_options": ["None", "Word", "Char"] + }, { + "type": "choice", + "m_label": "Indentation Guides", + "m_selection": 0, + "m_options": ["None", "Real", "Look Forward", "Look Both"] + }, { + "type": "choice", + "m_label": "EOL Mode", + "m_selection": 3, + "m_options": ["CRLF", "CR", "LF", "Default"] + }, { + "type": "bool", + "m_label": "Display EOL Markers", + "m_value": false + }, { + "type": "choice", + "m_label": "Lexer", + "m_selection": 58, + "m_options": ["wxSTC_LEX_ABAQUS", "wxSTC_LEX_ADA", "wxSTC_LEX_APDL", "wxSTC_LEX_ASM", "wxSTC_LEX_ASN1", "wxSTC_LEX_ASYMPTOTE", "wxSTC_LEX_AUTOMATIC", "wxSTC_LEX_AVE", "wxSTC_LEX_BAAN", "wxSTC_LEX_BASH", "wxSTC_LEX_BATCH", "wxSTC_LEX_BLITZBASIC", "wxSTC_LEX_BULLANT", "wxSTC_LEX_CAML", "wxSTC_LEX_CLW", "wxSTC_LEX_CLWNOCASE", "wxSTC_LEX_CMAKE", "wxSTC_LEX_COBOL", "wxSTC_LEX_CONF", "wxSTC_LEX_CONTAINER", "wxSTC_LEX_CPP", "wxSTC_LEX_CPPNOCASE", "wxSTC_LEX_CSOUND", "wxSTC_LEX_CSS", "wxSTC_LEX_D", "wxSTC_LEX_DIFF", "wxSTC_LEX_EIFFEL", "wxSTC_LEX_EIFFELKW", "wxSTC_LEX_ERLANG", "wxSTC_LEX_ERRORLIST", "wxSTC_LEX_ESCRIPT", "wxSTC_LEX_F77", "wxSTC_LEX_FLAGSHIP", "wxSTC_LEX_FORTH", "wxSTC_LEX_FORTRAN", "wxSTC_LEX_FREEBASIC", "wxSTC_LEX_GAP", "wxSTC_LEX_GUI4CLI", "wxSTC_LEX_HASKELL", "wxSTC_LEX_HTML", "wxSTC_LEX_INNOSETUP", "wxSTC_LEX_KIX", "wxSTC_LEX_LATEX", "wxSTC_LEX_LISP", "wxSTC_LEX_LOT", "wxSTC_LEX_LOUT", "wxSTC_LEX_LUA", "wxSTC_LEX_MAGIK", "wxSTC_LEX_MAKEFILE", "wxSTC_LEX_MARKDOWN", "wxSTC_LEX_MATLAB", "wxSTC_LEX_METAPOST", "wxSTC_LEX_MMIXAL", "wxSTC_LEX_MSSQL", "wxSTC_LEX_MYSQL", "wxSTC_LEX_NIMROD", "wxSTC_LEX_NNCRONTAB", "wxSTC_LEX_NSIS", "wxSTC_LEX_NULL", "wxSTC_LEX_OCTAVE", "wxSTC_LEX_OPAL", "wxSTC_LEX_PASCAL", "wxSTC_LEX_PERL", "wxSTC_LEX_PHPSCRIPT", "wxSTC_LEX_PLM", "wxSTC_LEX_PO", "wxSTC_LEX_POV", "wxSTC_LEX_POWERBASIC", "wxSTC_LEX_POWERPRO", "wxSTC_LEX_POWERSHELL", "wxSTC_LEX_PROGRESS", "wxSTC_LEX_PROPERTIES", "wxSTC_LEX_PS", "wxSTC_LEX_PUREBASIC", "wxSTC_LEX_PYTHON", "wxSTC_LEX_R", "wxSTC_LEX_REBOL", "wxSTC_LEX_RUBY", "wxSTC_LEX_SCRIPTOL", "wxSTC_LEX_SMALLTALK", "wxSTC_LEX_SML", "wxSTC_LEX_SORCUS", "wxSTC_LEX_SPECMAN", "wxSTC_LEX_SPICE", "wxSTC_LEX_SQL", "wxSTC_LEX_TACL", "wxSTC_LEX_TADS3", "wxSTC_LEX_TAL", "wxSTC_LEX_TCL", "wxSTC_LEX_TEX", "wxSTC_LEX_VB", "wxSTC_LEX_VBSCRIPT", "wxSTC_LEX_VERILOG", "wxSTC_LEX_VHDL", "wxSTC_LEX_XCODE", "wxSTC_LEX_XML", "wxSTC_LEX_YAML"] + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Keywords Set 1", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Keywords Set 2", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Keywords Set 3", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Keywords Set 4", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Keywords Set 5", + "m_value": "" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4467, + "proportion": 0, + "border": 10, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_HORIZONTAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_stdBtnSizer70" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }], + "m_events": [], + "m_children": [{ + "m_type": 4468, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "choice", + "m_label": "ID:", + "m_selection": 0, + "m_options": ["wxID_OK", "wxID_YES", "wxID_SAVE", "wxID_APPLY", "wxID_CLOSE", "wxID_NO", "wxID_CANCEL", "wxID_HELP", "wxID_CONTEXT_HELP"] + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_buttonOK" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Default Button", + "m_value": true + }], + "m_events": [{ + "m_eventName": "wxEVT_UPDATE_UI", + "m_eventClass": "wxUpdateUIEvent", + "m_eventHandler": "wxUpdateUIEventHandler", + "m_functionNameAndSignature": "OnOKUI(wxUpdateUIEvent& event)", + "m_description": "Process a wxEVT_UPDATE_UI event", + "m_noBody": false + }], + "m_children": [] + }, { + "m_type": 4468, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "choice", + "m_label": "ID:", + "m_selection": 6, + "m_options": ["wxID_OK", "wxID_YES", "wxID_SAVE", "wxID_APPLY", "wxID_CLOSE", "wxID_NO", "wxID_CANCEL", "wxID_HELP", "wxID_CONTEXT_HELP"] + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_button74" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Default Button", + "m_value": false + }], + "m_events": [], + "m_children": [] + }] + }] + }] + }, { + "m_type": 4407, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxTAB_TRAVERSAL"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "string", + "m_label": "Size:", + "m_value": "500,250" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "NodeJSDebuggerPaneBase" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Title:", + "m_value": "" + }, { + "type": "virtualFolderPicker", + "m_label": "Virtual Folder:", + "m_path": "WebTools:NodeJS:Debugger" + }, { + "type": "choice", + "m_label": "Centre:", + "m_selection": 1, + "m_options": ["", "wxBOTH", "wxVERTICAL", "wxHORIZONTAL"] + }, { + "type": "string", + "m_label": "Inherited Class", + "m_value": "NodeJSDebuggerPane" + }, { + "type": "string", + "m_label": "File:", + "m_value": "NodeJSDebuggerPane" + }, { + "type": "string", + "m_label": "Class Decorator", + "m_value": "" + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "boxSizer88" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4447, + "proportion": 1, + "border": 0, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxSP_LIVE_UPDATE"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_splitter104" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Split Mode:", + "m_selection": 0, + "m_options": ["wxSPLIT_VERTICAL", "wxSPLIT_HORIZONTAL"] + }, { + "type": "string", + "m_label": "Sash Gravity:", + "m_value": "0.33" + }, { + "type": "string", + "m_label": "Minimum Pane Size:", + "m_value": "10" + }, { + "type": "string", + "m_label": "Sash Position:", + "m_value": "0" + }], + "m_events": [], + "m_children": [{ + "m_type": 4448, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxTAB_TRAVERSAL"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_splitterPage112" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "boxSizer120" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4473, + "proportion": 1, + "border": 2, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxDV_VERT_RULES", "wxDV_HORIZ_RULES", "wxDV_ROW_LINES", "wxDV_SINGLE", "wxBORDER_SIMPLE"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_dataviewLocals" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Generated Model Class Name", + "m_value": "m_dataview126Model" + }, { + "type": "bool", + "m_label": "Container Item Has Columns", + "m_value": true + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_DATAVIEW_ITEM_EXPANDING", + "m_eventClass": "wxDataViewEvent", + "m_eventHandler": "wxDataViewEventHandler", + "m_functionNameAndSignature": "OnLocalExpanding(wxDataViewEvent& event)", + "m_description": "Process a wxEVT_COMMAND_DATAVIEW_ITEM_EXPANDING event", + "m_noBody": false + }], + "m_children": [{ + "m_type": 4472, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "Name" + }, { + "type": "string", + "m_label": "Width:", + "m_value": "200" + }, { + "type": "choice", + "m_label": "Column Type", + "m_selection": 2, + "m_options": ["bitmap", "check", "text", "icontext", "progress", "choice"] + }, { + "type": "multi-string", + "m_label": "Choices:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Alignment", + "m_selection": 0, + "m_options": ["wxALIGN_LEFT", "wxALIGN_RIGHT", "wxALIGN_CENTER"] + }, { + "type": "choice", + "m_label": "Cell Mode", + "m_selection": 0, + "m_options": ["wxDATAVIEW_CELL_INERT", "wxDATAVIEW_CELL_ACTIVATABLE", "wxDATAVIEW_CELL_EDITABLE"] + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4472, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "Type" + }, { + "type": "string", + "m_label": "Width:", + "m_value": "100" + }, { + "type": "choice", + "m_label": "Column Type", + "m_selection": 2, + "m_options": ["bitmap", "check", "text", "icontext", "progress", "choice"] + }, { + "type": "multi-string", + "m_label": "Choices:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Alignment", + "m_selection": 0, + "m_options": ["wxALIGN_LEFT", "wxALIGN_RIGHT", "wxALIGN_CENTER"] + }, { + "type": "choice", + "m_label": "Cell Mode", + "m_selection": 0, + "m_options": ["wxDATAVIEW_CELL_INERT", "wxDATAVIEW_CELL_ACTIVATABLE", "wxDATAVIEW_CELL_EDITABLE"] + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4472, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "Value" + }, { + "type": "string", + "m_label": "Width:", + "m_value": "500" + }, { + "type": "choice", + "m_label": "Column Type", + "m_selection": 2, + "m_options": ["bitmap", "check", "text", "icontext", "progress", "choice"] + }, { + "type": "multi-string", + "m_label": "Choices:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Alignment", + "m_selection": 0, + "m_options": ["wxALIGN_LEFT", "wxALIGN_RIGHT", "wxALIGN_CENTER"] + }, { + "type": "choice", + "m_label": "Cell Mode", + "m_selection": 0, + "m_options": ["wxDATAVIEW_CELL_INERT", "wxDATAVIEW_CELL_ACTIVATABLE", "wxDATAVIEW_CELL_EDITABLE"] + }], + "m_events": [], + "m_children": [] + }] + }] + }] + }, { + "m_type": 4448, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxTAB_TRAVERSAL"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_splitterPage108" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "boxSizer118" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4447, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxSP_LIVE_UPDATE"], + "m_sizerFlags": ["wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_splitter168" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Split Mode:", + "m_selection": 0, + "m_options": ["wxSPLIT_VERTICAL", "wxSPLIT_HORIZONTAL"] + }, { + "type": "string", + "m_label": "Sash Gravity:", + "m_value": "0.5" + }, { + "type": "string", + "m_label": "Minimum Pane Size:", + "m_value": "10" + }, { + "type": "string", + "m_label": "Sash Position:", + "m_value": "0" + }], + "m_events": [], + "m_children": [{ + "m_type": 4448, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxTAB_TRAVERSAL"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_splitterPage172" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "boxSizer178" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4469, + "proportion": 1, + "border": 2, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxDV_VERT_RULES", "wxDV_HORIZ_RULES", "wxDV_ROW_LINES", "wxDV_SINGLE", "wxBORDER_SIMPLE"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_dvListCtrlCallstack" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_DATAVIEW_ITEM_ACTIVATED", + "m_eventClass": "wxDataViewEvent", + "m_eventHandler": "wxDataViewEventHandler", + "m_functionNameAndSignature": "OnItemActivated(wxDataViewEvent& event)", + "m_description": "Process a wxEVT_COMMAND_DATAVIEW_ITEM_ACTIVATED event.\nThis event is triggered by double clicking an item or pressing some special key (usually \"Enter\") when it is focused", + "m_noBody": false + }, { + "m_eventName": "wxEVT_COMMAND_DATAVIEW_SELECTION_CHANGED", + "m_eventClass": "wxDataViewEvent", + "m_eventHandler": "wxDataViewEventHandler", + "m_functionNameAndSignature": "OnItemActivated(wxDataViewEvent& event)", + "m_description": "Process a wxEVT_COMMAND_DATAVIEW_SELECTION_CHANGED event", + "m_noBody": false + }], + "m_children": [{ + "m_type": 4472, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "#" + }, { + "type": "string", + "m_label": "Width:", + "m_value": "40" + }, { + "type": "choice", + "m_label": "Column Type", + "m_selection": 2, + "m_options": ["bitmap", "check", "text", "icontext", "progress", "choice"] + }, { + "type": "multi-string", + "m_label": "Choices:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Alignment", + "m_selection": 0, + "m_options": ["wxALIGN_LEFT", "wxALIGN_RIGHT", "wxALIGN_CENTER"] + }, { + "type": "choice", + "m_label": "Cell Mode", + "m_selection": 0, + "m_options": ["wxDATAVIEW_CELL_INERT", "wxDATAVIEW_CELL_ACTIVATABLE", "wxDATAVIEW_CELL_EDITABLE"] + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4472, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "Function" + }, { + "type": "string", + "m_label": "Width:", + "m_value": "200" + }, { + "type": "choice", + "m_label": "Column Type", + "m_selection": 2, + "m_options": ["bitmap", "check", "text", "icontext", "progress", "choice"] + }, { + "type": "multi-string", + "m_label": "Choices:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Alignment", + "m_selection": 0, + "m_options": ["wxALIGN_LEFT", "wxALIGN_RIGHT", "wxALIGN_CENTER"] + }, { + "type": "choice", + "m_label": "Cell Mode", + "m_selection": 0, + "m_options": ["wxDATAVIEW_CELL_INERT", "wxDATAVIEW_CELL_ACTIVATABLE", "wxDATAVIEW_CELL_EDITABLE"] + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4472, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "File" + }, { + "type": "string", + "m_label": "Width:", + "m_value": "300" + }, { + "type": "choice", + "m_label": "Column Type", + "m_selection": 2, + "m_options": ["bitmap", "check", "text", "icontext", "progress", "choice"] + }, { + "type": "multi-string", + "m_label": "Choices:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Alignment", + "m_selection": 0, + "m_options": ["wxALIGN_LEFT", "wxALIGN_RIGHT", "wxALIGN_CENTER"] + }, { + "type": "choice", + "m_label": "Cell Mode", + "m_selection": 0, + "m_options": ["wxDATAVIEW_CELL_INERT", "wxDATAVIEW_CELL_ACTIVATABLE", "wxDATAVIEW_CELL_EDITABLE"] + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4472, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "Line" + }, { + "type": "string", + "m_label": "Width:", + "m_value": "50" + }, { + "type": "choice", + "m_label": "Column Type", + "m_selection": 2, + "m_options": ["bitmap", "check", "text", "icontext", "progress", "choice"] + }, { + "type": "multi-string", + "m_label": "Choices:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Alignment", + "m_selection": 0, + "m_options": ["wxALIGN_LEFT", "wxALIGN_RIGHT", "wxALIGN_CENTER"] + }, { + "type": "choice", + "m_label": "Cell Mode", + "m_selection": 0, + "m_options": ["wxDATAVIEW_CELL_INERT", "wxDATAVIEW_CELL_ACTIVATABLE", "wxDATAVIEW_CELL_EDITABLE"] + }], + "m_events": [], + "m_children": [] + }] + }] + }] + }, { + "m_type": 4448, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxTAB_TRAVERSAL"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_splitterPage176" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "boxSizer180" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4442, + "proportion": 1, + "border": 2, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxBK_DEFAULT"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_notebook" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "Notebook" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "Notebook.h" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }], + "m_events": [], + "m_children": [{ + "m_type": 4441, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxTAB_TRAVERSAL"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_panelConsoleLog" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Console" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "bool", + "m_label": "Selected", + "m_value": true + }, { + "type": "bool", + "m_label": "Null Page", + "m_value": false + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "boxSizer188" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4466, + "proportion": 1, + "border": 2, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_consoleLog" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Fold Margin", + "m_value": false + }, { + "type": "bool", + "m_label": "Line Number Margin", + "m_value": false + }, { + "type": "bool", + "m_label": "Separator Margin", + "m_value": false + }, { + "type": "bool", + "m_label": "Symbol Margin", + "m_value": false + }, { + "type": "choice", + "m_label": "Wrap Text", + "m_selection": 0, + "m_options": ["None", "Word", "Char"] + }, { + "type": "choice", + "m_label": "Indentation Guides", + "m_selection": 0, + "m_options": ["None", "Real", "Look Forward", "Look Both"] + }, { + "type": "choice", + "m_label": "EOL Mode", + "m_selection": 3, + "m_options": ["CRLF", "CR", "LF", "Default"] + }, { + "type": "bool", + "m_label": "Display EOL Markers", + "m_value": false + }, { + "type": "choice", + "m_label": "Lexer", + "m_selection": 58, + "m_options": ["wxSTC_LEX_ABAQUS", "wxSTC_LEX_ADA", "wxSTC_LEX_APDL", "wxSTC_LEX_ASM", "wxSTC_LEX_ASN1", "wxSTC_LEX_ASYMPTOTE", "wxSTC_LEX_AUTOMATIC", "wxSTC_LEX_AVE", "wxSTC_LEX_BAAN", "wxSTC_LEX_BASH", "wxSTC_LEX_BATCH", "wxSTC_LEX_BLITZBASIC", "wxSTC_LEX_BULLANT", "wxSTC_LEX_CAML", "wxSTC_LEX_CLW", "wxSTC_LEX_CLWNOCASE", "wxSTC_LEX_CMAKE", "wxSTC_LEX_COBOL", "wxSTC_LEX_CONF", "wxSTC_LEX_CONTAINER", "wxSTC_LEX_CPP", "wxSTC_LEX_CPPNOCASE", "wxSTC_LEX_CSOUND", "wxSTC_LEX_CSS", "wxSTC_LEX_D", "wxSTC_LEX_DIFF", "wxSTC_LEX_EIFFEL", "wxSTC_LEX_EIFFELKW", "wxSTC_LEX_ERLANG", "wxSTC_LEX_ERRORLIST", "wxSTC_LEX_ESCRIPT", "wxSTC_LEX_F77", "wxSTC_LEX_FLAGSHIP", "wxSTC_LEX_FORTH", "wxSTC_LEX_FORTRAN", "wxSTC_LEX_FREEBASIC", "wxSTC_LEX_GAP", "wxSTC_LEX_GUI4CLI", "wxSTC_LEX_HASKELL", "wxSTC_LEX_HTML", "wxSTC_LEX_INNOSETUP", "wxSTC_LEX_KIX", "wxSTC_LEX_LATEX", "wxSTC_LEX_LISP", "wxSTC_LEX_LOT", "wxSTC_LEX_LOUT", "wxSTC_LEX_LUA", "wxSTC_LEX_MAGIK", "wxSTC_LEX_MAKEFILE", "wxSTC_LEX_MARKDOWN", "wxSTC_LEX_MATLAB", "wxSTC_LEX_METAPOST", "wxSTC_LEX_MMIXAL", "wxSTC_LEX_MSSQL", "wxSTC_LEX_MYSQL", "wxSTC_LEX_NIMROD", "wxSTC_LEX_NNCRONTAB", "wxSTC_LEX_NSIS", "wxSTC_LEX_NULL", "wxSTC_LEX_OCTAVE", "wxSTC_LEX_OPAL", "wxSTC_LEX_PASCAL", "wxSTC_LEX_PERL", "wxSTC_LEX_PHPSCRIPT", "wxSTC_LEX_PLM", "wxSTC_LEX_PO", "wxSTC_LEX_POV", "wxSTC_LEX_POWERBASIC", "wxSTC_LEX_POWERPRO", "wxSTC_LEX_POWERSHELL", "wxSTC_LEX_PROGRESS", "wxSTC_LEX_PROPERTIES", "wxSTC_LEX_PS", "wxSTC_LEX_PUREBASIC", "wxSTC_LEX_PYTHON", "wxSTC_LEX_R", "wxSTC_LEX_REBOL", "wxSTC_LEX_RUBY", "wxSTC_LEX_SCRIPTOL", "wxSTC_LEX_SMALLTALK", "wxSTC_LEX_SML", "wxSTC_LEX_SORCUS", "wxSTC_LEX_SPECMAN", "wxSTC_LEX_SPICE", "wxSTC_LEX_SQL", "wxSTC_LEX_TACL", "wxSTC_LEX_TADS3", "wxSTC_LEX_TAL", "wxSTC_LEX_TCL", "wxSTC_LEX_TEX", "wxSTC_LEX_VB", "wxSTC_LEX_VBSCRIPT", "wxSTC_LEX_VERILOG", "wxSTC_LEX_VHDL", "wxSTC_LEX_XCODE", "wxSTC_LEX_XML", "wxSTC_LEX_YAML"] + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Keywords Set 1", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Keywords Set 2", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Keywords Set 3", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Keywords Set 4", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Keywords Set 5", + "m_value": "" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4406, + "proportion": 0, + "border": 2, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxTE_PROCESS_ENTER"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_textCtrlExpression" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": true + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Value:", + "m_value": "" + }, { + "type": "string", + "m_label": "Text Hint", + "m_value": "Evaluate expression" + }, { + "type": "string", + "m_label": "Max Length:", + "m_value": "0" + }, { + "type": "bool", + "m_label": "Auto Complete Directories:", + "m_value": false + }, { + "type": "bool", + "m_label": "Auto Complete Files:", + "m_value": false + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_TEXT_ENTER", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnEvaluateExpression(wxCommandEvent& event)", + "m_description": "Respond to a wxEVT_COMMAND_TEXT_ENTER event, generated when enter is pressed in a text control\n(which must have wxTE_PROCESS_ENTER style for this event to be generated).", + "m_noBody": false + }], + "m_children": [] + }] + }] + }, { + "m_type": 4441, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxTAB_TRAVERSAL"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_panelBreakpoints" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Breakpoints" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "bool", + "m_label": "Selected", + "m_value": false + }, { + "type": "bool", + "m_label": "Null Page", + "m_value": false + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "boxSizer190" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4469, + "proportion": 1, + "border": 2, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxDV_VERT_RULES", "wxDV_HORIZ_RULES", "wxDV_ROW_LINES", "wxDV_SINGLE"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_dvListCtrlBreakpoints" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_DATAVIEW_SELECTION_CHANGED", + "m_eventClass": "wxDataViewEvent", + "m_eventHandler": "wxDataViewEventHandler", + "m_functionNameAndSignature": "OnBreakpointSelected(wxDataViewEvent& event)", + "m_description": "Process a wxEVT_COMMAND_DATAVIEW_SELECTION_CHANGED event", + "m_noBody": false + }, { + "m_eventName": "wxEVT_COMMAND_DATAVIEW_ITEM_ACTIVATED", + "m_eventClass": "wxDataViewEvent", + "m_eventHandler": "wxDataViewEventHandler", + "m_functionNameAndSignature": "OnBreakpointSelected(wxDataViewEvent& event)", + "m_description": "Process a wxEVT_COMMAND_DATAVIEW_ITEM_ACTIVATED event.\nThis event is triggered by double clicking an item or pressing some special key (usually \"Enter\") when it is focused", + "m_noBody": false + }], + "m_children": [{ + "m_type": 4472, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "ID" + }, { + "type": "string", + "m_label": "Width:", + "m_value": "40" + }, { + "type": "choice", + "m_label": "Column Type", + "m_selection": 2, + "m_options": ["bitmap", "check", "text", "icontext", "progress", "choice"] + }, { + "type": "multi-string", + "m_label": "Choices:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Alignment", + "m_selection": 0, + "m_options": ["wxALIGN_LEFT", "wxALIGN_RIGHT", "wxALIGN_CENTER"] + }, { + "type": "choice", + "m_label": "Cell Mode", + "m_selection": 0, + "m_options": ["wxDATAVIEW_CELL_INERT", "wxDATAVIEW_CELL_ACTIVATABLE", "wxDATAVIEW_CELL_EDITABLE"] + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4472, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "Line" + }, { + "type": "string", + "m_label": "Width:", + "m_value": "50" + }, { + "type": "choice", + "m_label": "Column Type", + "m_selection": 2, + "m_options": ["bitmap", "check", "text", "icontext", "progress", "choice"] + }, { + "type": "multi-string", + "m_label": "Choices:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Alignment", + "m_selection": 0, + "m_options": ["wxALIGN_LEFT", "wxALIGN_RIGHT", "wxALIGN_CENTER"] + }, { + "type": "choice", + "m_label": "Cell Mode", + "m_selection": 0, + "m_options": ["wxDATAVIEW_CELL_INERT", "wxDATAVIEW_CELL_ACTIVATABLE", "wxDATAVIEW_CELL_EDITABLE"] + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4472, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "File" + }, { + "type": "string", + "m_label": "Width:", + "m_value": "250" + }, { + "type": "choice", + "m_label": "Column Type", + "m_selection": 2, + "m_options": ["bitmap", "check", "text", "icontext", "progress", "choice"] + }, { + "type": "multi-string", + "m_label": "Choices:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Alignment", + "m_selection": 0, + "m_options": ["wxALIGN_LEFT", "wxALIGN_RIGHT", "wxALIGN_CENTER"] + }, { + "type": "choice", + "m_label": "Cell Mode", + "m_selection": 0, + "m_options": ["wxDATAVIEW_CELL_INERT", "wxDATAVIEW_CELL_ACTIVATABLE", "wxDATAVIEW_CELL_EDITABLE"] + }], + "m_events": [], + "m_children": [] + }] + }] + }] + }] + }] + }] + }] + }] + }] + }] + }] + }] + }, { + "m_type": 4421, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxDEFAULT_DIALOG_STYLE", "wxRESIZE_BORDER"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "NodeJSNewWorkspaceDlgBase" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Enable Window Persistency:", + "m_value": true + }, { + "type": "string", + "m_label": "Title:", + "m_value": "New Workspace" + }, { + "type": "virtualFolderPicker", + "m_label": "Virtual Folder:", + "m_path": "WebTools:NodeJS" + }, { + "type": "choice", + "m_label": "Centre:", + "m_selection": 1, + "m_options": ["", "wxBOTH", "wxVERTICAL", "wxHORIZONTAL"] + }, { + "type": "string", + "m_label": "Inherited Class", + "m_value": "NodeJSNewWorkspaceDlg" + }, { + "type": "string", + "m_label": "File:", + "m_value": "NodeJSNewWorkspaceDlg" + }, { + "type": "string", + "m_label": "Class Decorator", + "m_value": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (16x16) :", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (32x32) :", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (64x64) :", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (128x128):", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (256x256):", + "m_path": "" + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "boxSizer140" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4403, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "flexGridSizer148" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "# Columns:", + "m_value": "2" + }, { + "type": "string", + "m_label": "# Rows:", + "m_value": "0" + }, { + "type": "string", + "m_label": "Growable columns:", + "m_value": "1" + }, { + "type": "string", + "m_label": "Growable rows:", + "m_value": "" + }, { + "type": "string", + "m_label": "Horizontal gap:", + "m_value": "0" + }, { + "type": "string", + "m_label": "Vertical gap:", + "m_value": "0" + }], + "m_events": [], + "m_children": [{ + "m_type": 4405, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT", "wxALIGN_CENTER_VERTICAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_staticText160" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Label:", + "m_value": "Name:" + }, { + "type": "string", + "m_label": "Wrap:", + "m_value": "-1" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4406, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND", "wxALIGN_CENTER_VERTICAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_textCtrllName" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": true + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Value:", + "m_value": "" + }, { + "type": "string", + "m_label": "Text Hint", + "m_value": "" + }, { + "type": "string", + "m_label": "Max Length:", + "m_value": "0" + }, { + "type": "bool", + "m_label": "Auto Complete Directories:", + "m_value": false + }, { + "type": "bool", + "m_label": "Auto Complete Files:", + "m_value": false + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_TEXT_UPDATED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnTextUpdate(wxCommandEvent& event)", + "m_description": "Respond to a wxEVT_COMMAND_TEXT_UPDATED event, generated when the text changes.\nNotice that this event will be sent when the text controls contents changes\n - whether this is due to user input or comes from the program itself\n(for example, if SetValue() is called); see ChangeValue() for a function which does not send this event.", + "m_noBody": false + }], + "m_children": [] + }, { + "m_type": 4405, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT", "wxALIGN_CENTER_VERTICAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_staticText150" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Label:", + "m_value": "Path:" + }, { + "type": "string", + "m_label": "Wrap:", + "m_value": "-1" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4432, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxDIRP_SMALL", "wxDIRP_DEFAULT_STYLE", "wxDIRP_USE_TEXTCTRL"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND", "wxALIGN_CENTER_VERTICAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_dirPickerFolder" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Value:", + "m_value": "" + }, { + "type": "string", + "m_label": "Message:", + "m_value": "Select a folder" + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_DIRPICKER_CHANGED", + "m_eventClass": "wxFileDirPickerEvent", + "m_eventHandler": "wxFileDirPickerEventHandler", + "m_functionNameAndSignature": "OnFolderSelected(wxFileDirPickerEvent& event)", + "m_description": "The user changed the directory selected in the control either using the button or using text control\n(see wxDIRP_USE_TEXTCTRL; note that in this case the event is fired only if the user's input is valid, e.g. an existing directory path).", + "m_noBody": false + }], + "m_children": [] + }, { + "m_type": 4454, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "Spacer156" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "0,0" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4415, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_VERTICAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_checkBoxNewFolder" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Create the workspace in a separate directory" + }, { + "type": "bool", + "m_label": "Value:", + "m_value": true + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_CHECKBOX_CLICKED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnCheckNewFolder(wxCommandEvent& event)", + "m_description": "Process a wxEVT_COMMAND_CHECKBOX_CLICKED event, when the checkbox is clicked.", + "m_noBody": false + }], + "m_children": [] + }] + }, { + "m_type": 4405, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxALIGN_CENTRE"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_staticTextPreview" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "(21,144,18)" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Label:", + "m_value": "" + }, { + "type": "string", + "m_label": "Wrap:", + "m_value": "-1" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4467, + "proportion": 0, + "border": 10, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_HORIZONTAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_stdBtnSizer142" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }], + "m_events": [], + "m_children": [{ + "m_type": 4468, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "choice", + "m_label": "ID:", + "m_selection": 0, + "m_options": ["wxID_OK", "wxID_YES", "wxID_SAVE", "wxID_APPLY", "wxID_CLOSE", "wxID_NO", "wxID_CANCEL", "wxID_HELP", "wxID_CONTEXT_HELP"] + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_button144" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Default Button", + "m_value": true + }], + "m_events": [{ + "m_eventName": "wxEVT_UPDATE_UI", + "m_eventClass": "wxUpdateUIEvent", + "m_eventHandler": "wxUpdateUIEventHandler", + "m_functionNameAndSignature": "OnOKUI(wxUpdateUIEvent& event)", + "m_description": "Process a wxEVT_UPDATE_UI event", + "m_noBody": false + }], + "m_children": [] + }, { + "m_type": 4468, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "choice", + "m_label": "ID:", + "m_selection": 6, + "m_options": ["wxID_OK", "wxID_YES", "wxID_SAVE", "wxID_APPLY", "wxID_CLOSE", "wxID_NO", "wxID_CANCEL", "wxID_HELP", "wxID_CONTEXT_HELP"] + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_button146" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Default Button", + "m_value": false + }], + "m_events": [], + "m_children": [] + }] + }] + }] + }, { + "m_type": 4481, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "WebToolsImages" + }, { + "type": "string", + "m_label": "File:", + "m_value": "" + }, { + "type": "virtualFolderPicker", + "m_label": "Virtual Folder:", + "m_path": "WebTools:UI" + }, { + "type": "string", + "m_label": "Class Decorator", + "m_value": "" + }, { + "type": "integer", + "m_label": "Bitmap Size:", + "m_value": 16 + }, { + "type": "bool", + "m_label": "Bitmap Mask", + "m_value": true + }], + "m_events": [], + "m_children": [{ + "m_type": 4482, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "m_bmpNodeJS" + }, { + "type": "filePicker", + "m_label": "Bitmap File:", + "m_path": "nodejs.png" + }], + "m_events": [], + "m_children": [] + }] }] } \ No newline at end of file diff -Nru codelite-8.0.1+dfsg2/WebTools/WebToolsConfig.cpp codelite-9.0+dfsg/WebTools/WebToolsConfig.cpp --- codelite-8.0.1+dfsg2/WebTools/WebToolsConfig.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/WebTools/WebToolsConfig.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -64,6 +64,11 @@ JSONElement node = JSONElement::createObject("node"); plugins.append(node); } + + if(m_jsFlags & kJSPluginRequireJS) { + JSONElement node = JSONElement::createObject("requirejs"); + plugins.append(node); + } if(m_jsFlags & kJSPluginStrings) { JSONElement complete_strings = JSONElement::createObject("complete_strings"); diff -Nru codelite-8.0.1+dfsg2/WebTools/WebToolsConfig.h codelite-9.0+dfsg/WebTools/WebToolsConfig.h --- codelite-8.0.1+dfsg2/WebTools/WebToolsConfig.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/WebTools/WebToolsConfig.h 2015-10-11 13:56:07.000000000 +0000 @@ -26,6 +26,7 @@ kJSPluginStrings = (1 << 9), kJSPluginAngular = (1 << 10), kJSPluginQML = (1 << 11), + kJSPluginRequireJS = (1 << 12), }; diff -Nru codelite-8.0.1+dfsg2/WebTools/webtools.cpp codelite-9.0+dfsg/WebTools/webtools.cpp --- codelite-8.0.1+dfsg2/WebTools/webtools.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/WebTools/webtools.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -5,6 +5,23 @@ #include "event_notifier.h" #include "codelite_events.h" #include "WebToolsSettings.h" +#include +#include "NoteJSWorkspace.h" +#include "NodeJSWorkspaceView.h" +#include "clWorkspaceManager.h" +#include "globals.h" +#include "clWorkspaceView.h" +#include +#include "tags_options_data.h" +#include "ctags_manager.h" +#include "PhpLexerAPI.h" +#include "PHPSourceFile.h" +#include "NodeJSDebuggerPane.h" +#include "WebToolsConfig.h" +#include "fileutils.h" +#include "NodeJSEvents.h" +#include "WebToolsBase.h" +#include "bitmap_loader.h" static WebTools* thePlugin = NULL; @@ -22,7 +39,7 @@ PluginInfo info; info.SetAuthor(wxT("eran")); info.SetName(wxT("WebTools")); - info.SetDescription(wxT("Support for JavScript, HTML and other web development tools")); + info.SetDescription(_("Support for JavScript, HTML and other web development tools")); info.SetVersion(wxT("v1.0")); return info; } @@ -32,28 +49,55 @@ WebTools::WebTools(IManager* manager) : IPlugin(manager) , m_lastColourUpdate(0) + , m_clangOldFlag(false) + , m_nodejsDebuggerPane(NULL) + , m_hideToolBarOnDebugStop(false) { - m_longName = wxT("Support for JavScript, XML, HTML and other web development tools"); + m_longName = _("Support for JavScript, XML, HTML, CSS and other web development tools"); m_shortName = wxT("WebTools"); + // Register our new workspace type + NodeJSWorkspace::Get(); // Instantiate the singleton by faking a call + clWorkspaceManager::Get().RegisterWorkspace(new NodeJSWorkspace(true)); + + WebToolsImages images; + BitmapLoader::RegisterImage(FileExtManager::TypeWorkspaceNodeJS, images.Bitmap("m_bmpNodeJS")); + // Create the syntax highligher worker thread m_jsColourThread = new JavaScriptSyntaxColourThread(this); m_jsColourThread->Create(); m_jsColourThread->Run(); - EventNotifier::Get()->Bind(wxEVT_FILE_LOADED, &WebTools::OnRefreshColours, this); - EventNotifier::Get()->Bind(wxEVT_FILE_SAVED, &WebTools::OnRefreshColours, this); + EventNotifier::Get()->Bind(wxEVT_FILE_LOADED, &WebTools::OnFileLoaded, this); + EventNotifier::Get()->Bind(wxEVT_FILE_SAVED, &WebTools::OnFileSaved, this); EventNotifier::Get()->Bind(wxEVT_CL_THEME_CHANGED, &WebTools::OnThemeChanged, this); + + // Context menu + EventNotifier::Get()->Bind(wxEVT_CONTEXT_MENU_EDITOR, &WebTools::OnEditorContextMenu, this); + + // Code completion related events EventNotifier::Get()->Bind(wxEVT_CC_CODE_COMPLETE, &WebTools::OnCodeComplete, this); EventNotifier::Get()->Bind(wxEVT_CC_CODE_COMPLETE_LANG_KEYWORD, &WebTools::OnCodeComplete, this); EventNotifier::Get()->Bind(wxEVT_CC_CODE_COMPLETE_FUNCTION_CALLTIP, &WebTools::OnCodeCompleteFunctionCalltip, this); + EventNotifier::Get()->Bind(wxEVT_CC_FIND_SYMBOL, &WebTools::OnFindSymbol, this); + + // Workspace related events EventNotifier::Get()->Bind(wxEVT_WORKSPACE_CLOSED, &WebTools::OnWorkspaceClosed, this); + EventNotifier::Get()->Bind(wxEVT_WORKSPACE_LOADED, &WebTools::OnWorkspaceLoaded, this); + + // Theme management EventNotifier::Get()->Bind(wxEVT_ACTIVE_EDITOR_CHANGED, &WebTools::OnEditorChanged, this); + // Debugger related + EventNotifier::Get()->Bind(wxEVT_NODEJS_DEBUGGER_STARTED, &WebTools::OnNodeJSDebuggerStarted, this); + EventNotifier::Get()->Bind(wxEVT_NODEJS_DEBUGGER_STOPPED, &WebTools::OnNodeJSDebuggerStopped, this); + EventNotifier::Get()->Bind(wxEVT_DBG_IS_PLUGIN_DEBUGGER, &WebTools::OnIsDebugger, this); + Bind(wxEVT_MENU, &WebTools::OnSettings, this, XRCID("webtools_settings")); - m_jsCodeComplete.Reset(new JSCodeCompletion()); + m_jsCodeComplete.Reset(new JSCodeCompletion("")); m_xmlCodeComplete.Reset(new XMLCodeCompletion()); - + m_cssCodeComplete.Reset(new CSSCodeCompletion()); + // Connect the timer m_timer = new wxTimer(this); m_timer->Start(3000); @@ -62,7 +106,8 @@ wxTheApp->Bind(wxEVT_MENU, &WebTools::OnCommentSelection, this, XRCID("comment_selection")); } -WebTools::~WebTools() {} +WebTools::~WebTools() { NodeJSWorkspace::Free(); } + clToolBar* WebTools::CreateToolBar(wxWindow* parent) { @@ -82,19 +127,24 @@ void WebTools::UnPlug() { - EventNotifier::Get()->Unbind(wxEVT_FILE_LOADED, &WebTools::OnRefreshColours, this); - EventNotifier::Get()->Unbind(wxEVT_FILE_SAVED, &WebTools::OnRefreshColours, this); + EventNotifier::Get()->Unbind(wxEVT_CONTEXT_MENU_EDITOR, &WebTools::OnEditorContextMenu, this); + EventNotifier::Get()->Unbind(wxEVT_FILE_LOADED, &WebTools::OnFileLoaded, this); + EventNotifier::Get()->Unbind(wxEVT_FILE_SAVED, &WebTools::OnFileSaved, this); EventNotifier::Get()->Unbind(wxEVT_CL_THEME_CHANGED, &WebTools::OnThemeChanged, this); EventNotifier::Get()->Unbind(wxEVT_CC_CODE_COMPLETE, &WebTools::OnCodeComplete, this); EventNotifier::Get()->Unbind(wxEVT_CC_CODE_COMPLETE_LANG_KEYWORD, &WebTools::OnCodeComplete, this); EventNotifier::Get()->Unbind( wxEVT_CC_CODE_COMPLETE_FUNCTION_CALLTIP, &WebTools::OnCodeCompleteFunctionCalltip, this); EventNotifier::Get()->Unbind(wxEVT_WORKSPACE_CLOSED, &WebTools::OnWorkspaceClosed, this); + EventNotifier::Get()->Unbind(wxEVT_WORKSPACE_LOADED, &WebTools::OnWorkspaceLoaded, this); EventNotifier::Get()->Unbind(wxEVT_ACTIVE_EDITOR_CHANGED, &WebTools::OnEditorChanged, this); + EventNotifier::Get()->Unbind(wxEVT_NODEJS_DEBUGGER_STARTED, &WebTools::OnNodeJSDebuggerStarted, this); + EventNotifier::Get()->Unbind(wxEVT_NODEJS_DEBUGGER_STOPPED, &WebTools::OnNodeJSDebuggerStopped, this); + EventNotifier::Get()->Unbind(wxEVT_DBG_IS_PLUGIN_DEBUGGER, &WebTools::OnIsDebugger, this); wxTheApp->Unbind(wxEVT_MENU, &WebTools::OnCommentLine, this, XRCID("comment_line")); wxTheApp->Unbind(wxEVT_MENU, &WebTools::OnCommentSelection, this, XRCID("comment_selection")); - + // Disconnect the timer events Unbind(wxEVT_TIMER, &WebTools::OnTimer, this, m_timer->GetId()); m_timer->Stop(); @@ -105,11 +155,10 @@ m_jsCodeComplete.Reset(NULL); } -void WebTools::OnRefreshColours(clCommandEvent& event) +void WebTools::DoRefreshColours(const wxString& filename) { - event.Skip(); - if(FileExtManager::GetType(event.GetFileName()) == FileExtManager::TypeJS) { - m_jsColourThread->QueueFile(event.GetFileName()); + if(FileExtManager::GetType(filename) == FileExtManager::TypeJS) { + m_jsColourThread->QueueFile(filename); } } @@ -158,6 +207,10 @@ // Html code completion event.Skip(false); m_xmlCodeComplete->HtmlCodeComplete(editor); + } else if(editor && m_cssCodeComplete && IsCSSFile(editor)) { + // CSS code completion + event.Skip(false); + m_cssCodeComplete->CssCodeComplete(editor); } } @@ -195,9 +248,11 @@ if(settings.ShowModal() == wxID_OK) { if(m_jsCodeComplete) { m_jsCodeComplete->Reload(); + m_jsCodeComplete->ClearFatalError(); } if(m_xmlCodeComplete) { m_xmlCodeComplete->Reload(); + m_jsCodeComplete->ClearFatalError(); } } } @@ -278,7 +333,7 @@ e.Skip(); IEditor* editor = m_mgr->GetActiveEditor(); CHECK_PTR_RET(editor); - + if(IsJavaScriptFile(editor)) { e.Skip(false); editor->ToggleLineComment("//", wxSTC_C_COMMENTLINE); @@ -290,7 +345,7 @@ e.Skip(); IEditor* editor = m_mgr->GetActiveEditor(); CHECK_PTR_RET(editor); - + if(IsJavaScriptFile(editor)) { e.Skip(false); editor->CommentBlockSelection("/*", "*/"); @@ -304,11 +359,136 @@ // We should also support Code Completion when inside a mixed PHP and HTML file if(FileExtManager::IsPHPFile(editor->GetFileName())) { + + // Check to see if we are inside a PHP section or not wxStyledTextCtrl* ctrl = editor->GetCtrl(); - int styleAtCurPos = ctrl->GetStyleAt(ctrl->GetCurrentPos()); - if(styleAtCurPos >= wxSTC_H_DEFAULT && styleAtCurPos <= wxSTC_H_ENTITY) { - return true; - } + wxString buffer = ctrl->GetTextRange(0, ctrl->GetCurrentPos()); + return !PHPSourceFile::IsInPHPSection(buffer); } return false; } + +void WebTools::OnNodeJSDebuggerStarted(clDebugEvent& event) +{ + event.Skip(); + m_savePerspective = clGetManager()->GetDockingManager()->SavePerspective(); + + // Show the debugger pane + if(!m_nodejsDebuggerPane) { + m_nodejsDebuggerPane = new NodeJSDebuggerPane(EventNotifier::Get()->TopFrame()); + clGetManager()->GetDockingManager()->AddPane(m_nodejsDebuggerPane, + wxAuiPaneInfo() + .Layer(5) + .Name("nodejs_debugger") + .Caption("Node.js Debugger") + .CloseButton(false) + .MaximizeButton() + .Bottom() + .Position(0)); + } + + wxString layout; + wxFileName fnNodeJSLayout(clStandardPaths::Get().GetUserDataDir(), "nodejs.layout"); + fnNodeJSLayout.AppendDir("config"); + if(FileUtils::ReadFileContent(fnNodeJSLayout, layout)) { + m_mgr->GetDockingManager()->LoadPerspective(layout); + } + EnsureAuiPaneIsVisible("nodejs_debugger", true); + + m_hideToolBarOnDebugStop = false; + if(!m_mgr->AllowToolbar()) { + // Using native toolbar + m_hideToolBarOnDebugStop = !m_mgr->IsToolBarShown(); + m_mgr->ShowToolBar(true); + } +} + +void WebTools::OnNodeJSDebuggerStopped(clDebugEvent& event) +{ + event.Skip(); + + wxFileName fnNodeJSLayout(clStandardPaths::Get().GetUserDataDir(), "nodejs.layout"); + fnNodeJSLayout.AppendDir("config"); + FileUtils::WriteFileContent(fnNodeJSLayout, m_mgr->GetDockingManager()->SavePerspective()); + + if(!m_savePerspective.IsEmpty()) { + m_mgr->GetDockingManager()->LoadPerspective(m_savePerspective); + m_savePerspective.clear(); + } + + if(m_hideToolBarOnDebugStop) { + m_mgr->ShowToolBar(false); + } +} + +void WebTools::EnsureAuiPaneIsVisible(const wxString& paneName, bool update) +{ + wxAuiPaneInfo& pi = m_mgr->GetDockingManager()->GetPane(paneName); + if(pi.IsOk() && !pi.IsShown()) { + pi.Show(); + } + if(update) { + m_mgr->GetDockingManager()->Update(); + } +} + +void WebTools::OnWorkspaceLoaded(wxCommandEvent& event) +{ + event.Skip(); + wxFileName workspaceFile = event.GetString(); + if(FileExtManager::GetType(workspaceFile.GetFullPath()) == FileExtManager::TypeWorkspaceNodeJS) { + m_jsCodeComplete.Reset(new JSCodeCompletion(workspaceFile.GetPath())); + } else { + // For non NodeJS workspaces, create the .tern files under + // the .codelite folder + workspaceFile.AppendDir(".codelite"); + m_jsCodeComplete.Reset(new JSCodeCompletion(workspaceFile.GetPath())); + } +} + +bool WebTools::IsCSSFile(IEditor* editor) +{ + return (FileExtManager::GetType(editor->GetFileName().GetFullName()) == FileExtManager::TypeCSS); +} + +void WebTools::OnFindSymbol(clCodeCompletionEvent& event) +{ + event.Skip(); + IEditor* editor = m_mgr->GetActiveEditor(); + if(editor && m_jsCodeComplete && IsJavaScriptFile(editor) && !InsideJSComment(editor)) { + event.Skip(false); + m_jsCodeComplete->FindDefinition(editor); + } +} + +void WebTools::OnFileLoaded(clCommandEvent& event) +{ + event.Skip(); + DoRefreshColours(event.GetFileName()); +} + +void WebTools::OnFileSaved(clCommandEvent& event) +{ + event.Skip(); + DoRefreshColours(event.GetFileName()); + IEditor* editor = m_mgr->GetActiveEditor(); + if(editor && m_jsCodeComplete && IsJavaScriptFile(editor) && !InsideJSComment(editor)) { + //m_jsCodeComplete->ReparseFile(editor); + m_jsCodeComplete->ResetTern(); + } +} + +void WebTools::OnEditorContextMenu(clContextMenuEvent& event) +{ + event.Skip(); + IEditor* editor = m_mgr->GetActiveEditor(); + if(editor && m_jsCodeComplete && IsJavaScriptFile(editor) && !InsideJSComment(editor)) { + m_jsCodeComplete->AddContextMenu(event.GetMenu(), editor); + } +} + +void WebTools::OnIsDebugger(clDebugEvent& event) +{ + event.Skip(); // always call skip + //event.GetStrings().Add("NodeJS Debugger"); +} diff -Nru codelite-8.0.1+dfsg2/WebTools/webtools.h codelite-9.0+dfsg/WebTools/webtools.h --- codelite-8.0.1+dfsg2/WebTools/webtools.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/WebTools/webtools.h 2015-10-11 13:56:07.000000000 +0000 @@ -8,7 +8,10 @@ #include #include "ieditor.h" #include "XMLCodeCompletion.h" +#include "CSSCodeCompletion.h" +class NodeJSDebuggerPane; +class NodeJSWorkspaceView; class JavaScriptSyntaxColourThread; class WebTools : public IPlugin { @@ -17,29 +20,47 @@ JavaScriptSyntaxColourThread* m_jsColourThread; JSCodeCompletion::Ptr_t m_jsCodeComplete; XMLCodeCompletion::Ptr_t m_xmlCodeComplete; - + CSSCodeCompletion::Ptr_t m_cssCodeComplete; + time_t m_lastColourUpdate; wxTimer* m_timer; + /// Node.js + bool m_clangOldFlag; + NodeJSDebuggerPane* m_nodejsDebuggerPane; + wxString m_savePerspective; + bool m_hideToolBarOnDebugStop; + protected: void OnWorkspaceClosed(wxCommandEvent& event); + void OnWorkspaceLoaded(wxCommandEvent& event); void OnEditorChanged(wxCommandEvent& event); - void OnRefreshColours(clCommandEvent& event); + void DoRefreshColours(const wxString& filename); + void OnFileLoaded(clCommandEvent& event); + void OnEditorContextMenu(clContextMenuEvent& event); + void OnFileSaved(clCommandEvent& event); void OnThemeChanged(wxCommandEvent& event); void OnCodeComplete(clCodeCompletionEvent& event); void OnCodeCompleteFunctionCalltip(clCodeCompletionEvent& event); + void OnFindSymbol(clCodeCompletionEvent& event); void ColourJavaScript(const JavaScriptSyntaxColourThread::Reply& reply); void OnSettings(wxCommandEvent& event); void OnTimer(wxTimerEvent& event); - void OnCommentLine(wxCommandEvent &e); - void OnCommentSelection(wxCommandEvent &e); + void OnCommentLine(wxCommandEvent& e); + void OnCommentSelection(wxCommandEvent& e); + void OnNodeJSDebuggerStarted(clDebugEvent& event); + void OnNodeJSDebuggerStopped(clDebugEvent& event); + void OnIsDebugger(clDebugEvent& event); + private: bool IsJavaScriptFile(const wxString& filename); bool IsJavaScriptFile(const wxFileName& filename); bool IsJavaScriptFile(IEditor* editor); bool IsHTMLFile(IEditor* editor); + bool IsCSSFile(IEditor* editor); bool InsideJSComment(IEditor* editor); bool InsideJSString(IEditor* editor); + void EnsureAuiPaneIsVisible(const wxString& paneName, bool update); public: WebTools(IManager* manager); diff -Nru codelite-8.0.1+dfsg2/WebTools/WebTools.project codelite-9.0+dfsg/WebTools/WebTools.project --- codelite-8.0.1+dfsg2/WebTools/WebTools.project 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/WebTools/WebTools.project 2015-10-11 13:56:07.000000000 +0000 @@ -2,7 +2,7 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -128,7 +187,7 @@ - + @@ -177,7 +236,7 @@ - + @@ -185,7 +244,7 @@ - + @@ -228,7 +287,7 @@ - + @@ -283,7 +342,7 @@ - + @@ -291,10 +350,9 @@ - - - - - + + + + diff -Nru codelite-8.0.1+dfsg2/WebTools/WebToolsSettings.cpp codelite-9.0+dfsg/WebTools/WebToolsSettings.cpp --- codelite-8.0.1+dfsg2/WebTools/WebToolsSettings.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/WebTools/WebToolsSettings.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -22,6 +22,7 @@ m_pgPropUnderscore->SetValue(config.HasJavaScriptFlag(WebToolsConfig::kJSLibraryUnderscore)); m_pgPropAngular->SetValue(config.HasJavaScriptFlag(WebToolsConfig::kJSPluginAngular)); m_pgPropNode->SetValue(config.HasJavaScriptFlag(WebToolsConfig::kJSPluginNode)); + m_pgPropRequireJS->SetValue(config.HasJavaScriptFlag(WebToolsConfig::kJSPluginRequireJS)); m_pgPropStrings->SetValue(config.HasJavaScriptFlag(WebToolsConfig::kJSPluginStrings)); m_pgPropQML->SetValue(config.HasJavaScriptFlag(WebToolsConfig::kJSPluginQML)); @@ -65,6 +66,7 @@ config.EnableJavaScriptFlag(WebToolsConfig::kJSLibraryUnderscore, m_pgPropUnderscore->GetValue().GetBool()); config.EnableJavaScriptFlag(WebToolsConfig::kJSPluginAngular, m_pgPropAngular->GetValue().GetBool()); config.EnableJavaScriptFlag(WebToolsConfig::kJSPluginNode, m_pgPropNode->GetValue().GetBool()); + config.EnableJavaScriptFlag(WebToolsConfig::kJSPluginRequireJS, m_pgPropRequireJS->GetValue().GetBool()); config.EnableJavaScriptFlag(WebToolsConfig::kJSPluginStrings, m_pgPropStrings->GetValue().GetBool()); config.EnableJavaScriptFlag(WebToolsConfig::kJSPluginQML, m_pgPropQML->GetValue().GetBool()); // XML diff -Nru codelite-8.0.1+dfsg2/WebTools/XMLBuffer.cpp codelite-9.0+dfsg/WebTools/XMLBuffer.cpp --- codelite-8.0.1+dfsg2/WebTools/XMLBuffer.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/WebTools/XMLBuffer.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -26,38 +26,66 @@ XMLLexerToken token; m_state = kNormal; while(::xmlLexerNext(m_scanner, token)) { - switch(token.type) { - case kXML_T_CDATA_START: - m_state = kCdata; - if(ConsumeUntil(kXML_T_CDATA_END)) { + switch(m_state) { + case kNormal: { + switch(token.type) { + case kXML_T_XML_OPEN_TAG: + m_state = kNonXmlSection; + break; + case kXML_T_CDATA_START: + m_state = kCdata; + break; + case kXML_T_COMMENT_START: + m_state = kComment; + break; + case '<': + // "<" was found + OnOpenTag(); + break; + case '>': + // ">" was found. If in HTML mode and the current scope is an open tag + // pop it + OnCloseTag(); + break; + case kXML_T_CLOSE_TAG_PREFIX: + // "" closing tag was found + if(!m_elements.empty()) m_elements.pop_back(); + break; + default: + break; + } + } break; + case kCdata: { + switch(token.type) { + case kXML_T_CDATA_END: + m_state = kNormal; + break; + default: + break; + } + } break; + case kComment: { + switch(token.type) { + case kXML_T_COMMENT_END: m_state = kNormal; + break; + default: + break; } - break; - case kXML_T_COMMENT_START: - m_state = kComment; - if(ConsumeUntil(kXML_T_COMMENT_END)) { + } break; + case kNonXmlSection: { + switch(token.type) { + case kXML_T_XML_CLOSE_TAG: m_state = kNormal; + break; + default: + break; } - break; - case '<': - // "<" was found - OnOpenTag(); - break; - case '>': - // ">" was found. If in HTML mode and the current scope is an open tag - // pop it - OnCloseTag(); - break; - case kXML_T_CLOSE_TAG_PREFIX: - // "" closing tag was found - if(!m_elements.empty()) m_elements.pop_back(); - break; - default: - break; + } break; } } } diff -Nru codelite-8.0.1+dfsg2/WebTools/XMLBuffer.h codelite-9.0+dfsg/WebTools/XMLBuffer.h --- codelite-8.0.1+dfsg2/WebTools/XMLBuffer.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/WebTools/XMLBuffer.h 2015-10-11 13:56:07.000000000 +0000 @@ -23,7 +23,8 @@ }; enum eState { - kNormal = 0, + kNonXmlSection = -1, + kNormal, kCdata, kComment, }; diff -Nru codelite-8.0.1+dfsg2/WordCompletion/CMakeLists.txt codelite-9.0+dfsg/WordCompletion/CMakeLists.txt --- codelite-8.0.1+dfsg2/WordCompletion/CMakeLists.txt 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/WordCompletion/CMakeLists.txt 2015-10-11 13:56:07.000000000 +0000 @@ -26,12 +26,6 @@ add_definitions(-Winvalid-pch) endif ( USE_PCH ) -# Add RPATH -if (UNIX) -set (LINKER_OPTIONS -Wl,-rpath,"${PLUGINS_DIR}") -endif (UNIX) - - if (UNIX AND NOT APPLE) set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC" ) set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC" ) @@ -53,7 +47,5 @@ ${wxWidgets_LIBRARIES} libcodelite plugin - wxsqlite3 - sqlite3lib ) -CL_INSTALL_PLUGIN(${PLUGIN_NAME}) \ No newline at end of file +CL_INSTALL_PLUGIN(${PLUGIN_NAME}) diff -Nru codelite-8.0.1+dfsg2/WordCompletion/UI.h codelite-9.0+dfsg/WordCompletion/UI.h --- codelite-8.0.1+dfsg2/WordCompletion/UI.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/WordCompletion/UI.h 2015-10-11 13:56:07.000000000 +0000 @@ -4,8 +4,8 @@ // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// -#ifndef UI_BASE_CLASSES_H -#define UI_BASE_CLASSES_H +#ifndef CODELITE_WORDCOMPLETION_UI_BASE_CLASSES_H +#define CODELITE_WORDCOMPLETION_UI_BASE_CLASSES_H #include #include diff -Nru codelite-8.0.1+dfsg2/WordCompletion/wordcompletion.cpp codelite-9.0+dfsg/WordCompletion/wordcompletion.cpp --- codelite-8.0.1+dfsg2/WordCompletion/wordcompletion.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/WordCompletion/wordcompletion.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -9,6 +9,8 @@ #include "cl_command_event.h" #include "wxCodeCompletionBoxManager.h" #include "WordCompletionDictionary.h" +#include "lexer_configuration.h" +#include "ColoursAndFontsManager.h" static WordCompletionPlugin* thePlugin = NULL; @@ -26,7 +28,7 @@ PluginInfo info; info.SetAuthor(wxT("Eran Ifrah")); info.SetName(wxT("Word Completion")); - info.SetDescription(wxT("Suggest completion based on words typed in the editor")); + info.SetDescription(_("Suggest completion based on words typed in the editors")); info.SetVersion(wxT("v1.0")); return info; } @@ -36,7 +38,7 @@ WordCompletionPlugin::WordCompletionPlugin(IManager* manager) : IPlugin(manager) { - m_longName = wxT("Suggest completion based on words typed in the editor"); + m_longName = _("Suggest completion based on words typed in the editor"); m_shortName = wxT("Word Completion"); wxTheApp->Bind(wxEVT_MENU, &WordCompletionPlugin::OnWordComplete, this, XRCID("text_word_complete")); @@ -83,17 +85,16 @@ WordCompletionSettings settings; settings.Load(); - + // Enabled? if(!settings.IsEnabled()) return; - + // Build the suggetsion list wxString suggestString; wxCodeCompletionBoxEntry::Vec_t entries; wxCodeCompletionBox::BmpVec_t bitmaps; bitmaps.push_back(m_images.Bitmap("m_bmpWord")); - // Filter (what the user has typed so far) wxStyledTextCtrl* stc = activeEditor->GetCtrl(); int curPos = stc->GetCurrentPos(); @@ -108,11 +109,22 @@ if(activeEditor->IsModified()) { wxStringSet_t unsavedBufferWords; WordCompletionThread::ParseBuffer(stc->GetText(), unsavedBufferWords); - + // Merge the results words.insert(unsavedBufferWords.begin(), unsavedBufferWords.end()); } - + + // Get the editor keywords and add them + LexerConf::Ptr_t lexer = ColoursAndFontsManager::Get().GetLexerForFile(activeEditor->GetFileName().GetFullName()); + if(lexer) { + wxString keywords; + for(size_t i = 0; i < wxSTC_KEYWORDSET_MAX; ++i) { + keywords << lexer->GetKeyWords(i) << " "; + } + wxArrayString langWords = ::wxStringTokenize(keywords, "\n\t \r", wxTOKEN_STRTOK); + words.insert(langWords.begin(), langWords.end()); + } + wxStringSet_t filterdSet; if(lcFilter.IsEmpty()) { filterdSet.swap(words); diff -Nru codelite-8.0.1+dfsg2/WordCompletion/WordCompletionThread.cpp codelite-9.0+dfsg/WordCompletion/WordCompletionThread.cpp --- codelite-8.0.1+dfsg2/WordCompletion/WordCompletionThread.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/WordCompletion/WordCompletionThread.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -30,7 +30,7 @@ void WordCompletionThread::ParseBuffer(const wxString& buffer, wxStringSet_t& suggest) { wxArrayString filteredWords; - wxArrayString words = ::wxStringTokenize(buffer, "\r\n \t->./\\'\"[]()<>*&^%#!@+=:,;{}", wxTOKEN_STRTOK); + wxArrayString words = ::wxStringTokenize(buffer, "\r\n \t->./\\'\"[]()<>*&^%#!@+=:,;{}|/", wxTOKEN_STRTOK); for(size_t i=0; iGetTheApp(); @@ -391,7 +389,7 @@ if(fullpath.GetExt().MakeLower() != wxT("fbp")) { return; } - + #ifdef __WXGTK__ e.Skip(false); // Under Linux, use xdg-open @@ -413,12 +411,10 @@ #endif } -void wxFormBuilder::OnWxFBTerminated(wxCommandEvent& e) +void wxFormBuilder::OnWxFBTerminated(clProcessEvent& e) { - ProcessEventData* ped = (ProcessEventData*)e.GetClientData(); - if(ped) { - if(ped->GetProcess()) delete ped->GetProcess(); - delete ped; + if(e.GetProcess()) { + delete e.GetProcess(); } } diff -Nru codelite-8.0.1+dfsg2/wxformbuilder/wxformbuilder.h codelite-9.0+dfsg/wxformbuilder/wxformbuilder.h --- codelite-8.0.1+dfsg2/wxformbuilder/wxformbuilder.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/wxformbuilder/wxformbuilder.h 2015-10-11 13:56:07.000000000 +0000 @@ -43,7 +43,6 @@ ~wxFormBuilder(); protected: - DECLARE_EVENT_TABLE() void OnSettings(wxCommandEvent& e); void OnNewDialog(wxCommandEvent& e); @@ -52,7 +51,7 @@ void OnNewPanel(wxCommandEvent& e); void OpenWithWxFb(wxCommandEvent& e); void OnOpenFile(clCommandEvent& e); - void OnWxFBTerminated(wxCommandEvent& e); + void OnWxFBTerminated(clProcessEvent& e); void OnShowFileContextMenu(clContextMenuEvent &event); wxMenu* CreatePopupMenu(); diff -Nru codelite-8.0.1+dfsg2/ZoomNavigator/CMakeLists.txt codelite-9.0+dfsg/ZoomNavigator/CMakeLists.txt --- codelite-8.0.1+dfsg2/ZoomNavigator/CMakeLists.txt 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/ZoomNavigator/CMakeLists.txt 2015-10-11 13:56:07.000000000 +0000 @@ -26,12 +26,6 @@ add_definitions(-Winvalid-pch) endif ( USE_PCH ) -# Add RPATH -if (UNIX) -set (LINKER_OPTIONS -Wl,-rpath,"${PLUGINS_DIR}") -endif (UNIX) - - if (UNIX AND NOT APPLE) set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC" ) set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC" ) @@ -54,7 +48,5 @@ ${wxWidgets_LIBRARIES} libcodelite plugin - wxsqlite3 - sqlite3lib ) -CL_INSTALL_PLUGIN(${PLUGIN_NAME}) \ No newline at end of file +CL_INSTALL_PLUGIN(${PLUGIN_NAME}) diff -Nru codelite-8.0.1+dfsg2/ZoomNavigator/zoom_navigator.cpp codelite-9.0+dfsg/ZoomNavigator/zoom_navigator.cpp --- codelite-8.0.1+dfsg2/ZoomNavigator/zoom_navigator.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/ZoomNavigator/zoom_navigator.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,30 +1,6 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2014 The CodeLite Team -// file name : zoom_navigator.cpp -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - ////////////////////////////////////////////////////////////////////// // This file was auto-generated by codelite's wxCrafter Plugin +// wxCrafter project file: zoom_navigator.wxcp // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// @@ -55,7 +31,7 @@ boxSizer2->Add(m_checkBoxEnableZN, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 5); - wxFlexGridSizer* flexGridSizer12 = new wxFlexGridSizer( 0, 2, 0, 0); + wxFlexGridSizer* flexGridSizer12 = new wxFlexGridSizer(0, 2, 0, 0); flexGridSizer12->SetFlexibleDirection( wxBOTH ); flexGridSizer12->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); flexGridSizer12->AddGrowableCol(1); @@ -78,6 +54,7 @@ m_spinCtrlZoomFactor = new wxSpinCtrl(this, wxID_ANY, wxT("-10"), wxDefaultPosition, wxSize(-1,-1), wxSP_ARROW_KEYS); m_spinCtrlZoomFactor->SetToolTip(_("Sets the preview pane zoom factor.\nValid values should be in the range of -10 and 20")); m_spinCtrlZoomFactor->SetRange(-10, 20); + m_spinCtrlZoomFactor->SetValue(-10); flexGridSizer12->Add(m_spinCtrlZoomFactor, 0, wxALL|wxEXPAND, 5); @@ -96,12 +73,19 @@ boxSizer4->Add(m_button8, 0, wxALL, 5); - + SetName(wxT("znSettingsDlgBase")); SetSizeHints(-1,-1); if ( GetSizer() ) { GetSizer()->Fit(this); } - Centre(wxBOTH); + CentreOnParent(wxBOTH); +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(this)) { + wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); + } +#endif // Connect events m_button6->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(znSettingsDlgBase::OnOK), NULL, this); diff -Nru codelite-8.0.1+dfsg2/ZoomNavigator/zoomnavigator.cpp codelite-9.0+dfsg/ZoomNavigator/zoomnavigator.cpp --- codelite-8.0.1+dfsg2/ZoomNavigator/zoomnavigator.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/ZoomNavigator/zoomnavigator.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -43,14 +43,15 @@ #include static ZoomNavigator* thePlugin = NULL; -#define CHECK_CONDITION( cond ) if ( !cond ) return; +#define CHECK_CONDITION(cond) \ + if(!cond) return; -const char* ZOOM_PANE_TITLE = "Zoom Navigator"; +const wxString ZOOM_PANE_TITLE(_("Zoom Navigator")); -//Define the plugin entry point -extern "C" EXPORT IPlugin *CreatePlugin(IManager *manager) +// Define the plugin entry point +extern "C" EXPORT IPlugin* CreatePlugin(IManager* manager) { - if (thePlugin == 0) { + if(thePlugin == 0) { thePlugin = new ZoomNavigator(manager); } return thePlugin; @@ -61,22 +62,19 @@ PluginInfo info; info.SetAuthor(wxT("Brandon Captain")); info.SetName(wxT("ZoomNavigator")); - info.SetDescription(wxT("A dockable pane that shows a zoomed-out view of your code.")); + info.SetDescription(_("A dockable pane that shows a zoomed-out view of your code.")); info.SetVersion(wxT("v1.0")); return info; } -extern "C" EXPORT int GetPluginInterfaceVersion() -{ - return PLUGIN_INTERFACE_VERSION; -} +extern "C" EXPORT int GetPluginInterfaceVersion() { return PLUGIN_INTERFACE_VERSION; } -ZoomNavigator::ZoomNavigator(IManager *manager) +ZoomNavigator::ZoomNavigator(IManager* manager) : IPlugin(manager) - , mgr( manager ) - , zoompane( NULL ) + , mgr(manager) + , zoompane(NULL) , m_topWindow(NULL) - , m_text( NULL ) + , m_text(NULL) , m_markerFirstLine(wxNOT_FOUND) , m_markerLastLine(wxNOT_FOUND) , m_enabled(false) @@ -84,91 +82,104 @@ , m_startupCompleted(false) { m_config = new clConfig("zoom-navigator.conf"); - m_longName = wxT("Zoom Navigator"); + m_longName = _("Zoom Navigator"); m_shortName = wxT("ZoomNavigator"); m_topWindow = m_mgr->GetTheApp(); - + m_topWindow->Connect(wxEVT_IDLE, wxIdleEventHandler(ZoomNavigator::OnIdle), NULL, this); EventNotifier::Get()->Connect(wxEVT_INIT_DONE, wxCommandEventHandler(ZoomNavigator::OnInitDone), NULL, this); EventNotifier::Get()->Connect(wxEVT_FILE_SAVED, clCommandEventHandler(ZoomNavigator::OnFileSaved), NULL, this); - EventNotifier::Get()->Connect(wxEVT_ZN_SETTINGS_UPDATED, wxCommandEventHandler(ZoomNavigator::OnSettingsChanged), NULL, this); - m_topWindow->Connect(XRCID("zn_settings"), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(ZoomNavigator::OnSettings), NULL, this); + EventNotifier::Get()->Connect( + wxEVT_ZN_SETTINGS_UPDATED, wxCommandEventHandler(ZoomNavigator::OnSettingsChanged), NULL, this); + m_topWindow->Connect(XRCID("zn_settings"), + wxEVT_COMMAND_MENU_SELECTED, + wxCommandEventHandler(ZoomNavigator::OnSettings), + NULL, + this); + EventNotifier::Get()->Bind(wxEVT_SHOW_WORKSPACE_TAB, &ZoomNavigator::OnToggleTab, this); DoInitialize(); } -ZoomNavigator::~ZoomNavigator() -{ -} +ZoomNavigator::~ZoomNavigator() {} void ZoomNavigator::UnPlug() { EventNotifier::Get()->Disconnect(wxEVT_INIT_DONE, wxCommandEventHandler(ZoomNavigator::OnInitDone), NULL, this); - EventNotifier::Get()->Disconnect(wxEVT_ZN_SETTINGS_UPDATED, wxCommandEventHandler(ZoomNavigator::OnSettingsChanged), NULL, this); + EventNotifier::Get()->Disconnect( + wxEVT_ZN_SETTINGS_UPDATED, wxCommandEventHandler(ZoomNavigator::OnSettingsChanged), NULL, this); EventNotifier::Get()->Disconnect(wxEVT_FILE_SAVED, clCommandEventHandler(ZoomNavigator::OnFileSaved), NULL, this); - + m_topWindow->Disconnect(wxEVT_IDLE, wxIdleEventHandler(ZoomNavigator::OnIdle), NULL, this); - m_topWindow->Disconnect(XRCID("zn_settings"), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(ZoomNavigator::OnSettings), NULL, this); + m_topWindow->Disconnect(XRCID("zn_settings"), + wxEVT_COMMAND_MENU_SELECTED, + wxCommandEventHandler(ZoomNavigator::OnSettings), + NULL, + this); + EventNotifier::Get()->Unbind(wxEVT_SHOW_WORKSPACE_TAB, &ZoomNavigator::OnToggleTab, this); + // Remove the tab if it's actually docked in the workspace pane - size_t index(Notebook::npos); + int index(wxNOT_FOUND); index = m_mgr->GetWorkspacePaneNotebook()->GetPageIndex(zoompane); - if (index != Notebook::npos) { - m_mgr->GetWorkspacePaneNotebook()->RemovePage(index, false); + if(index != wxNOT_FOUND) { + m_mgr->GetWorkspacePaneNotebook()->RemovePage(index); } zoompane->Destroy(); } -clToolBar *ZoomNavigator::CreateToolBar(wxWindow *parent) +clToolBar* ZoomNavigator::CreateToolBar(wxWindow* parent) { // Create the toolbar to be used by the plugin - clToolBar *tb(NULL); + clToolBar* tb(NULL); return tb; } -void ZoomNavigator::CreatePluginMenu(wxMenu *pluginsMenu) +void ZoomNavigator::CreatePluginMenu(wxMenu* pluginsMenu) { - wxMenu *menu = new wxMenu(); - wxMenuItem *item(NULL); + wxMenu* menu = new wxMenu(); + wxMenuItem* item(NULL); item = new wxMenuItem(menu, XRCID("zn_settings"), _("Settings"), _("Settings"), wxITEM_NORMAL); menu->Append(item); pluginsMenu->Append(wxID_ANY, _("Zoom Navigator"), menu); } -void ZoomNavigator::OnShowHideClick( wxCommandEvent& e ) -{ } +void ZoomNavigator::OnShowHideClick(wxCommandEvent& e) {} void ZoomNavigator::DoInitialize() { znConfigItem data; - if ( m_config->ReadItem( &data ) ) { + if(m_config->ReadItem(&data)) { m_enabled = data.IsEnabled(); } - + // create tab (possibly detached) - Notebook *book = m_mgr->GetWorkspacePaneNotebook(); - if( IsZoomPaneDetached() ) { + Notebook* book = m_mgr->GetWorkspacePaneNotebook(); + if(IsZoomPaneDetached()) { // Make the window child of the main panel (which is the grand parent of the notebook) - DockablePane *cp = new DockablePane(book->GetParent()->GetParent(), book, ZOOM_PANE_TITLE, wxNullBitmap, wxSize(200, 200)); - zoompane = new wxPanel( cp ); + DockablePane* cp = + new DockablePane(book->GetParent()->GetParent(), book, ZOOM_PANE_TITLE, wxNullBitmap, wxSize(200, 200)); + zoompane = new wxPanel(cp); cp->SetChildNoReparent(zoompane); } else { - zoompane = new wxPanel( book ); - book->AddPage( zoompane, ZOOM_PANE_TITLE, false); + zoompane = new wxPanel(book); + book->AddPage(zoompane, ZOOM_PANE_TITLE, false); } - - m_text = new ZoomText( zoompane ); + m_mgr->AddWorkspaceTab(ZOOM_PANE_TITLE); + + m_text = new ZoomText(zoompane); m_text->Connect(wxEVT_LEFT_DOWN, wxMouseEventHandler(ZoomNavigator::OnPreviewClicked), NULL, this); m_text->Connect(wxEVT_LEFT_DCLICK, wxMouseEventHandler(ZoomNavigator::OnPreviewClicked), NULL, this); m_text->SetCursor(wxCURSOR_POINT_LEFT); - wxBoxSizer* bs = new wxBoxSizer( wxVERTICAL ); - bs->Add( m_text, 1, wxEXPAND, 0 ); + wxBoxSizer* bs = new wxBoxSizer(wxVERTICAL); + bs->Add(m_text, 1, wxEXPAND, 0); wxCheckBox* cbEnablePlugin = new wxCheckBox(zoompane, wxID_ANY, _("Enable plugin")); - cbEnablePlugin->SetValue( data.IsEnabled() ); - bs->Add( cbEnablePlugin, 0, wxEXPAND); - - cbEnablePlugin->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(ZoomNavigator::OnEnablePlugin), NULL, this); - zoompane->SetSizer( bs ); + cbEnablePlugin->SetValue(data.IsEnabled()); + bs->Add(cbEnablePlugin, 0, wxEXPAND); + + cbEnablePlugin->Connect( + wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(ZoomNavigator::OnEnablePlugin), NULL, this); + zoompane->SetSizer(bs); } bool ZoomNavigator::IsZoomPaneDetached() @@ -182,42 +193,42 @@ void ZoomNavigator::DoUpdate() { // sanity tests - CHECK_CONDITION( m_enabled ); - CHECK_CONDITION( !m_mgr->IsShutdownInProgress() ); - + CHECK_CONDITION(m_enabled); + CHECK_CONDITION(!m_mgr->IsShutdownInProgress()); + IEditor* curEditor = m_mgr->GetActiveEditor(); - if ( !curEditor && !m_text->IsEmpty()) { + if(!curEditor && !m_text->IsEmpty()) { DoCleanup(); } CHECK_CONDITION(curEditor); - + wxStyledTextCtrl* stc = curEditor->GetCtrl(); - CHECK_CONDITION( stc ); - - if ( curEditor->GetFileName().GetFullPath() != m_curfile ) { - SetEditorText( curEditor ); + CHECK_CONDITION(stc); + + if(curEditor->GetFileName().GetFullPath() != m_curfile) { + SetEditorText(curEditor); } - + int first = stc->GetFirstVisibleLine(); - int last = stc->LinesOnScreen()+first; + int last = stc->LinesOnScreen() + first; - if ( m_markerFirstLine != first || m_markerLastLine != last ) { - PatchUpHighlights( first, last ); - SetZoomTextScrollPosToMiddle( stc ); + if(m_markerFirstLine != first || m_markerLastLine != last) { + PatchUpHighlights(first, last); + SetZoomTextScrollPosToMiddle(stc); } } -void ZoomNavigator::SetEditorText( IEditor* editor ) +void ZoomNavigator::SetEditorText(IEditor* editor) { m_curfile.Clear(); - m_text->UpdateText( editor ); - if ( editor ) { + m_text->UpdateText(editor); + if(editor) { m_curfile = editor->GetFileName().GetFullPath(); - m_text->UpdateLexer( m_curfile ); + m_text->UpdateLexer(m_curfile); } } -void ZoomNavigator::SetZoomTextScrollPosToMiddle( wxStyledTextCtrl* stc ) +void ZoomNavigator::SetZoomTextScrollPosToMiddle(wxStyledTextCtrl* stc) { int first; first = stc->GetFirstVisibleLine(); @@ -227,63 +238,59 @@ int linesAboveIt = numLinesOnScreen / 2; first = first - linesAboveIt; - if ( first < 0 ) - first = 0; + if(first < 0) first = 0; - m_text->SetFirstVisibleLine( first ); + m_text->SetFirstVisibleLine(first); m_text->ClearSelections(); } -void ZoomNavigator::PatchUpHighlights( const int first, const int last ) +void ZoomNavigator::PatchUpHighlights(const int first, const int last) { - m_text->HighlightLines( first, last ); + m_text->HighlightLines(first, last); m_markerFirstLine = first; - m_markerLastLine = last; + m_markerLastLine = last; } -void ZoomNavigator::HookPopupMenu(wxMenu *menu, MenuType type) -{ } - -void ZoomNavigator::UnHookPopupMenu(wxMenu *menu, MenuType type) -{ } +void ZoomNavigator::HookPopupMenu(wxMenu* menu, MenuType type) {} +void ZoomNavigator::UnHookPopupMenu(wxMenu* menu, MenuType type) {} void ZoomNavigator::OnPreviewClicked(wxMouseEvent& e) { - IEditor *curEditor = m_mgr->GetActiveEditor(); - + IEditor* curEditor = m_mgr->GetActiveEditor(); + // user clicked on the preview CHECK_CONDITION(m_startupCompleted); CHECK_CONDITION(curEditor); CHECK_CONDITION(m_enabled); - + // the first line is taken from the preview int pos = m_text->PositionFromPoint(e.GetPosition()); - if ( pos == wxSTC_INVALID_POSITION ) { + if(pos == wxSTC_INVALID_POSITION) { return; } - int first = m_text->LineFromPosition( pos ); + int first = m_text->LineFromPosition(pos); int nLinesOnScreen = curEditor->GetCtrl()->LinesOnScreen(); - first -= (nLinesOnScreen/2); - if ( first < 0 ) first = 0; - + first -= (nLinesOnScreen / 2); + if(first < 0) first = 0; + // however, the last line is set according to the actual editor - int last = nLinesOnScreen + first; + int last = nLinesOnScreen + first; - PatchUpHighlights( first, last ); - curEditor->GetCtrl()->SetFirstVisibleLine( first ); - curEditor->SetCaretAt( curEditor->PosFromLine( first + (nLinesOnScreen / 2) ) ) ; + PatchUpHighlights(first, last); + curEditor->GetCtrl()->SetFirstVisibleLine(first); + curEditor->SetCaretAt(curEditor->PosFromLine(first + (nLinesOnScreen / 2))); // reset the from/last members to avoid unwanted movements in the 'OnTimer' function m_markerFirstLine = curEditor->GetCtrl()->GetFirstVisibleLine(); - m_markerLastLine = m_markerFirstLine + curEditor->GetCtrl()->LinesOnScreen(); + m_markerLastLine = m_markerFirstLine + curEditor->GetCtrl()->LinesOnScreen(); } void ZoomNavigator::DoCleanup() { SetEditorText(NULL); m_markerFirstLine = wxNOT_FOUND; - m_markerLastLine = wxNOT_FOUND; + m_markerLastLine = wxNOT_FOUND; m_text->UpdateLexer(""); } @@ -298,13 +305,13 @@ e.Skip(); m_config->Reload(); znConfigItem data; - if ( m_config->ReadItem( &data ) ) { + if(m_config->ReadItem(&data)) { m_enabled = data.IsEnabled(); - - if ( !m_enabled ) { + + if(!m_enabled) { // Clear selection m_text->UpdateText(NULL); - + } else { DoCleanup(); DoUpdate(); @@ -315,8 +322,8 @@ void ZoomNavigator::OnFileSaved(clCommandEvent& e) { e.Skip(); - - if ( e.GetString() == m_curfile ) { + + if(e.GetString() == m_curfile) { // Update the file content m_curfile.Clear(); DoUpdate(); @@ -333,13 +340,13 @@ { znConfigItem data; m_config->Reload(); - m_config->ReadItem( &data ); - data.SetEnabled( e.IsChecked() ); - m_config->WriteItem( &data ); - + m_config->ReadItem(&data); + data.SetEnabled(e.IsChecked()); + m_config->WriteItem(&data); + // Notify about the settings changed wxCommandEvent evt(wxEVT_ZN_SETTINGS_UPDATED); - EventNotifier::Get()->AddPendingEvent( evt ); + EventNotifier::Get()->AddPendingEvent(evt); } void ZoomNavigator::OnInitDone(wxCommandEvent& e) @@ -353,3 +360,21 @@ e.Skip(); DoUpdate(); } + +void ZoomNavigator::OnToggleTab(clCommandEvent& event) +{ + if(event.GetString() != ZOOM_PANE_TITLE) { + event.Skip(); + return; + } + + if(event.IsSelected()) { + // show it + m_mgr->GetWorkspacePaneNotebook()->InsertPage(0, zoompane, ZOOM_PANE_TITLE, true); + } else { + int where = m_mgr->GetWorkspacePaneNotebook()->GetPageIndex(ZOOM_PANE_TITLE); + if(where != wxNOT_FOUND) { + m_mgr->GetWorkspacePaneNotebook()->RemovePage(where); + } + } +} diff -Nru codelite-8.0.1+dfsg2/ZoomNavigator/zoom_navigator.h codelite-9.0+dfsg/ZoomNavigator/zoom_navigator.h --- codelite-8.0.1+dfsg2/ZoomNavigator/zoom_navigator.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/ZoomNavigator/zoom_navigator.h 2015-10-11 13:56:07.000000000 +0000 @@ -1,46 +1,30 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2014 The CodeLite Team -// file name : zoom_navigator.h -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - ////////////////////////////////////////////////////////////////////// // This file was auto-generated by codelite's wxCrafter Plugin +// wxCrafter project file: zoom_navigator.wxcp // Do not modify this file by hand! ////////////////////////////////////////////////////////////////////// -#ifndef ZOOM_NAVIGATOR_BASE_CLASSES_H -#define ZOOM_NAVIGATOR_BASE_CLASSES_H +#ifndef CODELITE_ZOOMNAVIGATOR_ZOOM_NAVIGATOR_BASE_CLASSES_H +#define CODELITE_ZOOMNAVIGATOR_ZOOM_NAVIGATOR_BASE_CLASSES_H #include #include #include #include +#include +#include #include #include #include #include #include #include +#if wxVERSION_NUMBER >= 2900 +#include +#include +#include +#include +#endif class znSettingsDlgBase : public wxDialog { @@ -57,6 +41,13 @@ virtual void OnOK(wxCommandEvent& event) { event.Skip(); } public: + wxCheckBox* GetCheckBoxEnableZN() { return m_checkBoxEnableZN; } + wxStaticText* GetStaticText14() { return m_staticText14; } + wxColourPickerCtrl* GetColourPickerHighlightColour() { return m_colourPickerHighlightColour; } + wxStaticText* GetStaticText22() { return m_staticText22; } + wxSpinCtrl* GetSpinCtrlZoomFactor() { return m_spinCtrlZoomFactor; } + wxButton* GetButton6() { return m_button6; } + wxButton* GetButton8() { return m_button8; } znSettingsDlgBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("ZoomNavigator Settings"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER); virtual ~znSettingsDlgBase(); }; diff -Nru codelite-8.0.1+dfsg2/ZoomNavigator/zoomnavigator.h codelite-9.0+dfsg/ZoomNavigator/zoomnavigator.h --- codelite-8.0.1+dfsg2/ZoomNavigator/zoomnavigator.h 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/ZoomNavigator/zoomnavigator.h 2015-10-11 13:56:07.000000000 +0000 @@ -39,56 +39,57 @@ #include #include "cl_command_event.h" -extern const char* ZOOM_PANE_TITLE; +extern const wxString ZOOM_PANE_TITLE; class ZoomNavUpdateTimer; class ZoomNavigator : public IPlugin { - IManager* mgr; - wxPanel* zoompane; - wxEvtHandler* m_topWindow; - ZoomText* m_text; - int m_markerFirstLine; - int m_markerLastLine; - bool m_enabled; - clConfig * m_config; - int m_lastLine; - bool m_startupCompleted; - wxString m_curfile; - + IManager* mgr; + wxPanel* zoompane; + wxEvtHandler* m_topWindow; + ZoomText* m_text; + int m_markerFirstLine; + int m_markerLastLine; + bool m_enabled; + clConfig* m_config; + int m_lastLine; + bool m_startupCompleted; + wxString m_curfile; + protected: void DoInitialize(); bool IsZoomPaneDetached(); - void PatchUpHighlights( const int first, const int last ); - void SetEditorText( IEditor* editor ); - void SetZoomTextScrollPosToMiddle( wxStyledTextCtrl* stc ); + void PatchUpHighlights(const int first, const int last); + void SetEditorText(IEditor* editor); + void SetZoomTextScrollPosToMiddle(wxStyledTextCtrl* stc); void DoUpdate(); void DoCleanup(); - + public: - ZoomNavigator(IManager *manager); + ZoomNavigator(IManager* manager); ~ZoomNavigator(); //-------------------------------------------- - //Abstract methods + // Abstract methods //-------------------------------------------- - virtual clToolBar *CreateToolBar(wxWindow *parent); - virtual void CreatePluginMenu(wxMenu *pluginsMenu); - virtual void HookPopupMenu(wxMenu *menu, MenuType type); - virtual void UnHookPopupMenu(wxMenu *menu, MenuType type); + virtual clToolBar* CreateToolBar(wxWindow* parent); + virtual void CreatePluginMenu(wxMenu* pluginsMenu); + virtual void HookPopupMenu(wxMenu* menu, MenuType type); + virtual void UnHookPopupMenu(wxMenu* menu, MenuType type); virtual void UnPlug(); - + void OnIdle(wxIdleEvent& e); - + void OnShowHideClick(wxCommandEvent& e); - void OnPreviewClicked(wxMouseEvent &e); - void OnSettings(wxCommandEvent &e); - void OnSettingsChanged(wxCommandEvent &e); + void OnPreviewClicked(wxMouseEvent& e); + void OnSettings(wxCommandEvent& e); + void OnSettingsChanged(wxCommandEvent& e); void OnFileSaved(clCommandEvent& e); - void OnWorkspaceClosed(wxCommandEvent &e); - void OnEnablePlugin(wxCommandEvent &e); - void OnInitDone(wxCommandEvent &e); + void OnWorkspaceClosed(wxCommandEvent& e); + void OnEnablePlugin(wxCommandEvent& e); + void OnInitDone(wxCommandEvent& e); + void OnToggleTab(clCommandEvent& event); }; -#endif //ZoomNavigator +#endif // ZoomNavigator diff -Nru codelite-8.0.1+dfsg2/ZoomNavigator/zoom_navigator.wxcp codelite-9.0+dfsg/ZoomNavigator/zoom_navigator.wxcp --- codelite-8.0.1+dfsg2/ZoomNavigator/zoom_navigator.wxcp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/ZoomNavigator/zoom_navigator.wxcp 2015-10-11 13:56:07.000000000 +0000 @@ -1,618 +1,807 @@ { - "metadata": { - "m_generatedFilesDir": "", - "m_objCounter": 24, - "m_includeFiles": [], - "m_bitmapFunction": "wxC6745InitBitmapResources", - "m_bitmapsFile": "", - "m_GenerateCodeTypes": 1, - "m_outputFileName": "", - "m_templateClasses": [] - }, - "windows": [{ - "m_type": 4421, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": ["wxDEFAULT_DIALOG_STYLE", "wxRESIZE_BORDER"], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "znSettingsDlgBase" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Title:", - "m_value": "ZoomNavigator Settings" - }, { - "type": "virtualFolderPicker", - "m_label": "Virtual Folder:", - "m_path": "ZoomNavigator:src" - }, { - "type": "choice", - "m_label": "Centre:", - "m_selection": 1, - "m_options": ["", "wxBOTH", "wxVERTICAL", "wxHORIZONTAL"] - }, { - "type": "string", - "m_label": "File:", - "m_value": "znSettingsDlg" - }, { - "type": "string", - "m_label": "Inherited Class", - "m_value": "znSettingsDlg" - }, { - "type": "string", - "m_label": "Class Decorator", - "m_value": "" - }], - "m_events": [], - "m_children": [{ - "m_type": 4401, - "proportion": 1, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "boxSizer2" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 0, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4415, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_HORIZONTAL"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_checkBoxEnableZN" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "Enable ZoomNavigator" - }, { - "type": "bool", - "m_label": "Value:", - "m_value": true - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4403, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "flexGridSizer12" - }, { - "type": "string", - "m_label": "# Columns:", - "m_value": "2" - }, { - "type": "string", - "m_label": "# Rows:", - "m_value": "0" - }, { - "type": "string", - "m_label": "Growable columns:", - "m_value": "1" - }, { - "type": "string", - "m_label": "Growable rows:", - "m_value": "" - }, { - "type": "string", - "m_label": "Horizontal gap:", - "m_value": "0" - }, { - "type": "string", - "m_label": "Vertical gap:", - "m_value": "0" - }], - "m_events": [], - "m_children": [{ - "m_type": 4405, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT", "wxALIGN_CENTER_VERTICAL"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_staticText14" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Label:", - "m_value": "Highlight colour:" - }, { - "type": "string", - "m_label": "Wrap:", - "m_value": "-1" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4429, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": ["wxCLRP_SHOW_LABEL", "wxCLRP_DEFAULT_STYLE"], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_colourPickerHighlightColour" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Value:", - "colour": "(128,255,255)" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4405, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT", "wxALIGN_CENTER_VERTICAL"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_staticText22" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "Sets the preview pane zoom factor.\\nValid values should be in the range of -10 and 20" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "multi-string", - "m_label": "Label:", - "m_value": "Zoom factor:" - }, { - "type": "string", - "m_label": "Wrap:", - "m_value": "-1" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4436, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": ["wxSP_ARROW_KEYS"], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_ANY" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_spinCtrlZoomFactor" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "Sets the preview pane zoom factor.\\nValid values should be in the range of -10 and 20" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Value:", - "m_value": "-10" - }, { - "type": "string", - "m_label": "Min value:", - "m_value": "-10" - }, { - "type": "string", - "m_label": "Max value:", - "m_value": "20" - }], - "m_events": [], - "m_children": [] - }] - }, { - "m_type": 4454, - "proportion": 1, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "Spacer20" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "0,0" - }], - "m_events": [], - "m_children": [] - }, { - "m_type": 4401, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_HORIZONTAL"], - "m_properties": [{ - "type": "string", - "m_label": "Name:", - "m_value": "boxSizer4" - }, { - "type": "choice", - "m_label": "Orientation:", - "m_selection": 1, - "m_options": ["wxVERTICAL", "wxHORIZONTAL"] - }], - "m_events": [], - "m_children": [{ - "m_type": 4400, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_OK" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_button6" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "&OK" - }, { - "type": "bool", - "m_label": "Default Button", - "m_value": true - }, { - "type": "filePicker", - "m_label": "Bitmap File:", - "m_path": "" - }, { - "type": "string", - "m_label": "Margins:", - "m_value": "2,2" - }], - "m_events": [{ - "m_eventName": "wxEVT_COMMAND_BUTTON_CLICKED", - "m_eventClass": "wxCommandEvent", - "m_eventHandler": "wxCommandEventHandler", - "m_functionNameAndSignature": "OnOK(wxCommandEvent& event)", - "m_description": "Process a wxEVT_COMMAND_BUTTON_CLICKED event, when the button is clicked." - }], - "m_children": [] - }, { - "m_type": 4400, - "proportion": 0, - "border": 5, - "gbSpan": "1,1", - "gbPosition": "0,0", - "m_styles": [], - "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], - "m_properties": [{ - "type": "winid", - "m_label": "ID:", - "m_winid": "wxID_CANCEL" - }, { - "type": "string", - "m_label": "Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Minimum Size:", - "m_value": "-1,-1" - }, { - "type": "string", - "m_label": "Name:", - "m_value": "m_button8" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "string", - "m_label": "Class Name:", - "m_value": "" - }, { - "type": "string", - "m_label": "Include File:", - "m_value": "" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "&Cancel" - }, { - "type": "bool", - "m_label": "Default Button", - "m_value": false - }, { - "type": "filePicker", - "m_label": "Bitmap File:", - "m_path": "" - }, { - "type": "string", - "m_label": "Margins:", - "m_value": "2,2" - }], - "m_events": [], - "m_children": [] - }] - }] - }] - }] + "metadata": { + "m_generatedFilesDir": ".", + "m_objCounter": 24, + "m_includeFiles": [], + "m_bitmapFunction": "wxC6745InitBitmapResources", + "m_bitmapsFile": "zoom_navigator_zoomnavigator_bitmaps.cpp", + "m_GenerateCodeTypes": 1, + "m_outputFileName": "", + "m_firstWindowId": 1000, + "m_useEnum": true, + "m_templateClasses": [] + }, + "windows": [{ + "m_type": 4421, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxDEFAULT_DIALOG_STYLE", "wxRESIZE_BORDER"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "znSettingsDlgBase" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Enable Window Persistency:", + "m_value": true + }, { + "type": "string", + "m_label": "Title:", + "m_value": "ZoomNavigator Settings" + }, { + "type": "virtualFolderPicker", + "m_label": "Virtual Folder:", + "m_path": "ZoomNavigator:src" + }, { + "type": "choice", + "m_label": "Centre:", + "m_selection": 1, + "m_options": ["", "wxBOTH", "wxVERTICAL", "wxHORIZONTAL"] + }, { + "type": "string", + "m_label": "Inherited Class", + "m_value": "znSettingsDlg" + }, { + "type": "string", + "m_label": "File:", + "m_value": "znSettingsDlg" + }, { + "type": "string", + "m_label": "Class Decorator", + "m_value": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (16x16) :", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (32x32) :", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (64x64) :", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (128x128):", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (256x256):", + "m_path": "" + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "boxSizer2" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4415, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_HORIZONTAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_checkBoxEnableZN" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Enable ZoomNavigator" + }, { + "type": "bool", + "m_label": "Value:", + "m_value": true + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4403, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "flexGridSizer12" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "# Columns:", + "m_value": "2" + }, { + "type": "string", + "m_label": "# Rows:", + "m_value": "0" + }, { + "type": "string", + "m_label": "Growable columns:", + "m_value": "1" + }, { + "type": "string", + "m_label": "Growable rows:", + "m_value": "" + }, { + "type": "string", + "m_label": "Horizontal gap:", + "m_value": "0" + }, { + "type": "string", + "m_label": "Vertical gap:", + "m_value": "0" + }], + "m_events": [], + "m_children": [{ + "m_type": 4405, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT", "wxALIGN_CENTER_VERTICAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_staticText14" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Label:", + "m_value": "Highlight colour:" + }, { + "type": "string", + "m_label": "Wrap:", + "m_value": "-1" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4429, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxCLRP_SHOW_LABEL", "wxCLRP_DEFAULT_STYLE"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_colourPickerHighlightColour" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Value:", + "colour": "(128,255,255)" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4405, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT", "wxALIGN_CENTER_VERTICAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_staticText22" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "Sets the preview pane zoom factor.\\nValid values should be in the range of -10 and 20" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Label:", + "m_value": "Zoom factor:" + }, { + "type": "string", + "m_label": "Wrap:", + "m_value": "-1" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4436, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxSP_ARROW_KEYS"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_spinCtrlZoomFactor" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "Sets the preview pane zoom factor.\\nValid values should be in the range of -10 and 20" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Value:", + "m_value": "-10" + }, { + "type": "string", + "m_label": "Min value:", + "m_value": "-10" + }, { + "type": "string", + "m_label": "Max value:", + "m_value": "20" + }], + "m_events": [], + "m_children": [] + }] + }, { + "m_type": 4454, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "Spacer20" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "0,0" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4401, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_HORIZONTAL"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "boxSizer4" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 1, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4400, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_OK" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_button6" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "&OK" + }, { + "type": "bool", + "m_label": "Default Button", + "m_value": true + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Direction", + "m_selection": 0, + "m_options": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"] + }, { + "type": "string", + "m_label": "Margins:", + "m_value": "2,2" + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_BUTTON_CLICKED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnOK(wxCommandEvent& event)", + "m_description": "Process a wxEVT_COMMAND_BUTTON_CLICKED event, when the button is clicked.", + "m_noBody": false + }], + "m_children": [] + }, { + "m_type": 4400, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_CANCEL" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_button8" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "&Cancel" + }, { + "type": "bool", + "m_label": "Default Button", + "m_value": false + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Direction", + "m_selection": 0, + "m_options": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"] + }, { + "type": "string", + "m_label": "Margins:", + "m_value": "2,2" + }], + "m_events": [], + "m_children": [] + }] + }] + }] + }] } \ No newline at end of file diff -Nru codelite-8.0.1+dfsg2/ZoomNavigator/zoom_navigator_zoomnavigator_bitmaps.cpp codelite-9.0+dfsg/ZoomNavigator/zoom_navigator_zoomnavigator_bitmaps.cpp --- codelite-8.0.1+dfsg2/ZoomNavigator/zoom_navigator_zoomnavigator_bitmaps.cpp 2015-05-09 14:05:17.000000000 +0000 +++ codelite-9.0+dfsg/ZoomNavigator/zoom_navigator_zoomnavigator_bitmaps.cpp 2015-10-11 13:56:07.000000000 +0000 @@ -1,73 +1,47 @@ -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -// copyright : (C) 2014 The CodeLite Team -// file name : zoom_navigator_zoomnavigator_bitmaps.cpp -// -// ------------------------------------------------------------------------- -// A -// _____ _ _ _ _ -// / __ \ | | | | (_) | -// | / \/ ___ __| | ___| | _| |_ ___ -// | | / _ \ / _ |/ _ \ | | | __/ _ ) -// | \__/\ (_) | (_| | __/ |___| | || __/ -// \____/\___/ \__,_|\___\_____/_|\__\___| -// -// F i l e -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - -// -// This file was automatically generated by wxrc, do not edit by hand. -// - -#include - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#include -#include -#include -#include - -#if wxCHECK_VERSION(2,8,5) && wxABI_VERSION >= 20805 - #define XRC_ADD_FILE(name, data, size, mime) \ - wxMemoryFSHandler::AddFileWithMimeType(name, data, size, mime) -#else - #define XRC_ADD_FILE(name, data, size, mime) \ - wxMemoryFSHandler::AddFile(name, data, size) -#endif - -static size_t xml_res_size_0 = 108; -static unsigned char xml_res_file_0[] = { -60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, -110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, -115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, -47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, -47,119,120,120,114,99,34,32,118,101,114,115,105,111,110,61,34,50,46,51, -46,48,46,49,34,47,62,10}; - -void wxC6745InitBitmapResources() -{ - - // Check for memory FS. If not present, load the handler: - { - wxMemoryFSHandler::AddFile(wxT("XRC_resource/dummy_file"), wxT("dummy one")); - wxFileSystem fsys; - wxFSFile *f = fsys.OpenFile(wxT("memory:XRC_resource/dummy_file")); - wxMemoryFSHandler::RemoveFile(wxT("XRC_resource/dummy_file")); - if (f) delete f; - else wxFileSystem::AddHandler(new wxMemoryFSHandler); - } - - XRC_ADD_FILE(wxT("XRC_resource/zoom_navigator_zoomnavigator_bitmaps.cpp$zoom_navigator_zoomnavigator_bitmaps.xrc"), xml_res_file_0, xml_res_size_0, wxT("text/xml")); - wxXmlResource::Get()->Load(wxT("memory:XRC_resource/zoom_navigator_zoomnavigator_bitmaps.cpp$zoom_navigator_zoomnavigator_bitmaps.xrc")); -} +// +// This file was automatically generated by wxrc, do not edit by hand. +// + +#include + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +#include +#include +#include +#include + +#if wxCHECK_VERSION(2,8,5) && wxABI_VERSION >= 20805 + #define XRC_ADD_FILE(name, data, size, mime) \ + wxMemoryFSHandler::AddFileWithMimeType(name, data, size, mime) +#else + #define XRC_ADD_FILE(name, data, size, mime) \ + wxMemoryFSHandler::AddFile(name, data, size) +#endif + +static size_t xml_res_size_0 = 90; +static unsigned char xml_res_file_0[] = { +60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, +110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, +115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, +47,47,119,119,119,46,119,120,119,105,110,100,111,119,115,46,111,114,103, +47,119,120,120,114,99,34,47,62,10}; + +void wxC6745InitBitmapResources() +{ + + // Check for memory FS. If not present, load the handler: + { + wxMemoryFSHandler::AddFile(wxT("XRC_resource/dummy_file"), wxT("dummy one")); + wxFileSystem fsys; + wxFSFile *f = fsys.OpenFile(wxT("memory:XRC_resource/dummy_file")); + wxMemoryFSHandler::RemoveFile(wxT("XRC_resource/dummy_file")); + if (f) delete f; + else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase); + } + + XRC_ADD_FILE(wxT("XRC_resource/zoom_navigator_zoomnavigator_bitmaps.cpp$C__src_codelite_ZoomNavigator_zoom_navigator_zoomnavigator_bitmaps.xrc"), xml_res_file_0, xml_res_size_0, wxT("text/xml")); + wxXmlResource::Get()->Load(wxT("memory:XRC_resource/zoom_navigator_zoomnavigator_bitmaps.cpp$C__src_codelite_ZoomNavigator_zoom_navigator_zoomnavigator_bitmaps.xrc")); +}